@atlaskit/renderer 80.0.0 → 82.0.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.
Files changed (46) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/dist/cjs/react/index.js +12 -1
  3. package/dist/cjs/react/nodes/index.js +15 -1
  4. package/dist/cjs/react/nodes/media.js +4 -2
  5. package/dist/cjs/react/nodes/mediaGroup.js +6 -3
  6. package/dist/cjs/react/nodes/mediaInline.js +104 -0
  7. package/dist/cjs/react/nodes/panel.js +3 -1
  8. package/dist/cjs/react/nodes/table/colgroup.js +6 -6
  9. package/dist/cjs/ui/ExtensionRenderer.js +4 -2
  10. package/dist/cjs/ui/MediaCard.js +4 -2
  11. package/dist/cjs/ui/Renderer/index.js +1 -1
  12. package/dist/cjs/version.json +1 -1
  13. package/dist/es2019/react/index.js +12 -1
  14. package/dist/es2019/react/nodes/index.js +8 -1
  15. package/dist/es2019/react/nodes/media.js +4 -2
  16. package/dist/es2019/react/nodes/mediaGroup.js +6 -3
  17. package/dist/es2019/react/nodes/mediaInline.js +53 -0
  18. package/dist/es2019/react/nodes/panel.js +3 -1
  19. package/dist/es2019/react/nodes/table/colgroup.js +6 -6
  20. package/dist/es2019/ui/ExtensionRenderer.js +4 -2
  21. package/dist/es2019/ui/MediaCard.js +4 -2
  22. package/dist/es2019/ui/Renderer/index.js +1 -1
  23. package/dist/es2019/version.json +1 -1
  24. package/dist/esm/react/index.js +12 -1
  25. package/dist/esm/react/nodes/index.js +14 -1
  26. package/dist/esm/react/nodes/media.js +4 -2
  27. package/dist/esm/react/nodes/mediaGroup.js +6 -3
  28. package/dist/esm/react/nodes/mediaInline.js +80 -0
  29. package/dist/esm/react/nodes/panel.js +3 -1
  30. package/dist/esm/react/nodes/table/colgroup.js +6 -6
  31. package/dist/esm/ui/ExtensionRenderer.js +4 -2
  32. package/dist/esm/ui/MediaCard.js +4 -2
  33. package/dist/esm/ui/Renderer/index.js +1 -1
  34. package/dist/esm/version.json +1 -1
  35. package/dist/types/react/index.d.ts +1 -0
  36. package/dist/types/react/nodes/bodiedExtension.d.ts +1 -0
  37. package/dist/types/react/nodes/extension.d.ts +3 -1
  38. package/dist/types/react/nodes/index.d.ts +2 -1
  39. package/dist/types/react/nodes/inlineExtension.d.ts +1 -0
  40. package/dist/types/react/nodes/media.d.ts +1 -0
  41. package/dist/types/react/nodes/mediaGroup.d.ts +1 -0
  42. package/dist/types/react/nodes/mediaInline.d.ts +17 -0
  43. package/dist/types/types/mediaOptions.d.ts +1 -0
  44. package/dist/types/ui/ExtensionRenderer.d.ts +2 -1
  45. package/dist/types/ui/MediaCard.d.ts +1 -0
  46. package/package.json +23 -23
package/CHANGELOG.md CHANGED
@@ -1,5 +1,58 @@
1
1
  # @atlaskit/renderer
2
2
 
3
+ ## 82.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [`3c5548e50da`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3c5548e50da) - [ux] Introducing new Media Inline component to renderer
8
+
9
+ ### Minor Changes
10
+
11
+ - [`971845eac0d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/971845eac0d) - CETI-96 Added new rule to emoji to solve the duplicate icon issue when we copy from renderer
12
+
13
+ ### Patch Changes
14
+
15
+ - [`f897443ad45`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f897443ad45) - Revert AK-279
16
+ - [`87865d3284f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/87865d3284f) - CETI-122 Fix Rendering of hybrid renderer when the prop UNSAFE_allowCustomPanels changed.
17
+ - [`a554946e674`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a554946e674) - Skipping flakey tests to unblock the weasal release
18
+ - [`33bca2a18bb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/33bca2a18bb) - Skipping a flaky test to unblock the weasal release
19
+ - Updated dependencies
20
+
21
+ ## 81.1.1
22
+
23
+ ### Patch Changes
24
+
25
+ - [`b85e7ce12cd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b85e7ce12cd) - Internal upgrade of memoize-one to 6.0.0
26
+
27
+ ## 81.1.0
28
+
29
+ ### Minor Changes
30
+
31
+ - [`cf853e39278`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cf853e39278) - CETI-72 Web: Copy from renderer loses custom panel attributes
32
+ - [`cf853e39278`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cf853e39278) - AK-279 Moved copy button outside of heading, that made heading accessible
33
+ - [`6840e64d105`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6840e64d105) - CETI-124: Revert panel content wrapper from span to div
34
+
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies
38
+
39
+ ## 81.0.0
40
+
41
+ ### Minor Changes
42
+
43
+ - [`511f07f7f7b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/511f07f7f7b) - allow enabling download for media card via enableDownloadButton feature prop
44
+
45
+ ### Patch Changes
46
+
47
+ - [`5fe6e21a9a0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5fe6e21a9a0) - [ux] Upgrade to the latest version of @atlaskit/modal-dialog. This change includes shifting the primary button in the footer of the modal to be on the right instead of the left.
48
+ - [`b90c0237824`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b90c0237824) - Update package.jsons to remove unused dependencies.
49
+ - [`b95863772be`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b95863772be) - Support external observers.
50
+ Use better naming for refNode (refNode => reference).
51
+ In favor of further work (supporting multiple references) pass array of references to Extension component.
52
+ Expand node with localId for extentions.
53
+ - [`0bbd13a9a9c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0bbd13a9a9c) - Temporarily disabling VR tests (ED-13530)
54
+ - Updated dependencies
55
+
3
56
  ## 80.0.0
4
57
 
5
58
  ### Minor Changes
@@ -220,6 +220,9 @@ var ReactSerializer = /*#__PURE__*/function () {
220
220
  case 'mediaGroup':
221
221
  return this.getMediaGroupProps(node);
222
222
 
223
+ case 'mediaInline':
224
+ return this.getMediaInlineProps(node);
225
+
223
226
  case 'mediaSingle':
224
227
  return this.getMediaSingleProps(node, path);
225
228
 
@@ -469,12 +472,20 @@ var ReactSerializer = /*#__PURE__*/function () {
469
472
  }, {
470
473
  key: "getMediaGroupProps",
471
474
  value: function getMediaGroupProps(node) {
475
+ var _this$media;
476
+
472
477
  return _objectSpread(_objectSpread({}, this.getProps(node)), {}, {
473
478
  shouldOpenMediaViewer: this.shouldOpenMediaViewer,
474
479
  allowAltTextOnImages: this.allowAltTextOnImages,
475
- featureFlags: this.media && this.media.featureFlags
480
+ featureFlags: this.media && this.media.featureFlags,
481
+ enableDownloadButton: (_this$media = this.media) === null || _this$media === void 0 ? void 0 : _this$media.enableDownloadButton
476
482
  });
477
483
  }
484
+ }, {
485
+ key: "getMediaInlineProps",
486
+ value: function getMediaInlineProps(node) {
487
+ return _objectSpread({}, this.getProps(node));
488
+ }
478
489
  }, {
479
490
  key: "getTaskItemProps",
480
491
  value: function getTaskItemProps(node) {
@@ -162,7 +162,7 @@ Object.defineProperty(exports, "EmbedCard", {
162
162
  return _embedCard.default;
163
163
  }
164
164
  });
165
- exports.TaskItem = exports.Status = exports.Mention = exports.MediaGroup = exports.Media = exports.InlineCard = exports.Expand = exports.Emoji = exports.DecisionItem = exports.Date = exports.CodeBlock = exports.BlockCard = exports.isEmojiDoc = exports.isTextWrapper = exports.isText = exports.mergeTextNodes = exports.toReact = exports.nodeToReact = void 0;
165
+ exports.TaskItem = exports.Status = exports.Mention = exports.MediaInline = exports.MediaGroup = exports.Media = exports.InlineCard = exports.Expand = exports.Emoji = exports.DecisionItem = exports.Date = exports.CodeBlock = exports.BlockCard = exports.isEmojiDoc = exports.isTextWrapper = exports.isText = exports.mergeTextNodes = exports.toReact = exports.nodeToReact = void 0;
166
166
 
167
167
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
168
168
 
@@ -354,6 +354,19 @@ var MediaGroup = (0, _reactLoadable.default)({
354
354
  }
355
355
  });
356
356
  exports.MediaGroup = MediaGroup;
357
+ var MediaInline = (0, _reactLoadable.default)({
358
+ loader: function loader() {
359
+ return Promise.resolve().then(function () {
360
+ return _interopRequireWildcard(require('./mediaInline'));
361
+ }).then(function (mod) {
362
+ return mod.default;
363
+ });
364
+ },
365
+ loading: function loading() {
366
+ return null;
367
+ }
368
+ });
369
+ exports.MediaInline = MediaInline;
357
370
  var Mention = (0, _reactLoadable.default)({
358
371
  loader: function loader() {
359
372
  return Promise.resolve().then(function () {
@@ -402,6 +415,7 @@ var nodeToReact = {
402
415
  listItem: _listItem.default,
403
416
  media: Media,
404
417
  mediaGroup: MediaGroup,
418
+ mediaInline: MediaInline,
405
419
  mediaSingle: _mediaSingle.default,
406
420
  mention: Mention,
407
421
  orderedList: _orderedList.default,
@@ -68,7 +68,8 @@ var Media = /*#__PURE__*/function (_PureComponent) {
68
68
  allowAltTextOnImages = _this$props.allowAltTextOnImages,
69
69
  alt = _this$props.alt,
70
70
  featureFlags = _this$props.featureFlags,
71
- allowMediaViewer = _this$props.shouldOpenMediaViewer;
71
+ allowMediaViewer = _this$props.shouldOpenMediaViewer,
72
+ enableDownloadButton = _this$props.enableDownloadButton;
72
73
 
73
74
  var linkMark = _this.props.marks.find(_this.props.isLinkMark);
74
75
 
@@ -83,7 +84,8 @@ var Media = /*#__PURE__*/function (_PureComponent) {
83
84
  shouldOpenMediaViewer: shouldOpenMediaViewer,
84
85
  eventHandlers: eventHandlers,
85
86
  alt: allowAltTextOnImages ? alt : undefined,
86
- featureFlags: featureFlags
87
+ featureFlags: featureFlags,
88
+ shouldEnableDownloadButton: enableDownloadButton
87
89
  }));
88
90
 
89
91
  return linkHref ? /*#__PURE__*/_react.default.createElement(_editorCommon.MediaLink, {
@@ -123,7 +123,8 @@ var MediaGroup = /*#__PURE__*/function (_PureComponent) {
123
123
  resizeMode: 'stretchy-fit',
124
124
  cardDimensions: _mediaCard.defaultImageCardDimensions,
125
125
  useInlinePlayer: false,
126
- featureFlags: this.props.featureFlags
126
+ featureFlags: this.props.featureFlags,
127
+ enableDownloadButton: this.props.enableDownloadButton
127
128
  });
128
129
  }
129
130
  }, {
@@ -146,7 +147,8 @@ var MediaGroup = /*#__PURE__*/function (_PureComponent) {
146
147
  onClick: onClick
147
148
  }
148
149
  }),
149
- featureFlags: this.props.featureFlags
150
+ featureFlags: this.props.featureFlags,
151
+ enableDownloadButton: this.props.enableDownloadButton
150
152
  });
151
153
  }
152
154
  }, {
@@ -182,7 +184,8 @@ var MediaGroup = /*#__PURE__*/function (_PureComponent) {
182
184
 
183
185
  default:
184
186
  return /*#__PURE__*/_react.default.cloneElement(child, {
185
- featureFlags: _this2.props.featureFlags
187
+ featureFlags: _this2.props.featureFlags,
188
+ enableDownloadButton: _this2.props.enableDownloadButton
186
189
  });
187
190
  }
188
191
  }));
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = exports.RenderMediaInline = void 0;
11
+
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _mediaCard = require("@atlaskit/media-card");
21
+
22
+ var _editorCommon = require("@atlaskit/editor-common");
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ var RenderMediaInline = function RenderMediaInline(props) {
29
+ var mediaProvider = props.mediaProvider;
30
+
31
+ var _useState = (0, _react.useState)({}),
32
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
33
+ viewMediaClientConfigState = _useState2[0],
34
+ setViewMediaClientConfigState = _useState2[1];
35
+
36
+ (0, _react.useEffect)(function () {
37
+ updateViewMediaClientConfigState(mediaProvider);
38
+ }, [mediaProvider]);
39
+
40
+ var updateViewMediaClientConfigState = /*#__PURE__*/function () {
41
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(mediaProvider) {
42
+ var mediaClientConfig;
43
+ return _regenerator.default.wrap(function _callee$(_context) {
44
+ while (1) {
45
+ switch (_context.prev = _context.next) {
46
+ case 0:
47
+ if (!mediaProvider) {
48
+ _context.next = 5;
49
+ break;
50
+ }
51
+
52
+ _context.next = 3;
53
+ return mediaProvider;
54
+
55
+ case 3:
56
+ mediaClientConfig = _context.sent;
57
+ setViewMediaClientConfigState(mediaClientConfig.viewMediaClientConfig);
58
+
59
+ case 5:
60
+ case "end":
61
+ return _context.stop();
62
+ }
63
+ }
64
+ }, _callee);
65
+ }));
66
+
67
+ return function updateViewMediaClientConfigState(_x) {
68
+ return _ref.apply(this, arguments);
69
+ };
70
+ }();
71
+
72
+ return /*#__PURE__*/_react.default.createElement(_mediaCard.MediaInlineCard, {
73
+ identifier: props.identifier,
74
+ shouldOpenMediaViewer: true,
75
+ mediaClientConfig: viewMediaClientConfigState
76
+ });
77
+ };
78
+
79
+ exports.RenderMediaInline = RenderMediaInline;
80
+
81
+ var MediaInline = function MediaInline(props) {
82
+ var collection = props.collection,
83
+ id = props.id,
84
+ providers = props.providers;
85
+ var identifier = {
86
+ id: id,
87
+ mediaItemType: 'file',
88
+ collectionName: collection
89
+ };
90
+ return /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_editorCommon.WithProviders, {
91
+ providers: ['mediaProvider'],
92
+ providerFactory: providers,
93
+ renderNode: function renderNode(providers) {
94
+ var mediaProvider = providers.mediaProvider;
95
+ return /*#__PURE__*/_react.default.createElement(RenderMediaInline, {
96
+ identifier: identifier,
97
+ mediaProvider: mediaProvider
98
+ });
99
+ }
100
+ }));
101
+ };
102
+
103
+ var _default = MediaInline;
104
+ exports.default = _default;
@@ -93,7 +93,7 @@ var Panel = function Panel(props) {
93
93
  var icon = getIcon();
94
94
 
95
95
  if (icon) {
96
- return /*#__PURE__*/_react.default.createElement("span", {
96
+ return /*#__PURE__*/_react.default.createElement("div", {
97
97
  className: _editorCommon.PanelSharedCssClassName.icon
98
98
  }, icon);
99
99
  }
@@ -102,6 +102,8 @@ var Panel = function Panel(props) {
102
102
  return /*#__PURE__*/_react.default.createElement(PanelStyled, {
103
103
  className: _editorCommon.PanelSharedCssClassName.prefix,
104
104
  "data-panel-type": panelType,
105
+ "data-panel-color": panelColor,
106
+ "data-panel-icon": panelIcon,
105
107
  backgroundColor: panelColor
106
108
  }, renderIcon(), /*#__PURE__*/_react.default.createElement("div", {
107
109
  className: _editorCommon.PanelSharedCssClassName.content
@@ -113,12 +113,12 @@ var Colgroup = function Colgroup(props) {
113
113
  }
114
114
  } // scaling down
115
115
  else if (renderWidth < tableWidth) {
116
- scaleDownPercent = calcScalePercent({
117
- renderWidth: renderWidth,
118
- tableWidth: tableWidth,
119
- maxScale: MAX_SCALING_PERCENT
120
- });
121
- }
116
+ scaleDownPercent = calcScalePercent({
117
+ renderWidth: renderWidth,
118
+ tableWidth: tableWidth,
119
+ maxScale: MAX_SCALING_PERCENT
120
+ });
121
+ }
122
122
 
123
123
  return /*#__PURE__*/_react.default.createElement("colgroup", null, isNumberColumnEnabled && /*#__PURE__*/_react.default.createElement("col", {
124
124
  style: {
@@ -67,13 +67,15 @@ var ExtensionRenderer = /*#__PURE__*/function (_React$Component) {
67
67
  parameters = _this$props.parameters,
68
68
  content = _this$props.content,
69
69
  text = _this$props.text,
70
- type = _this$props.type;
70
+ type = _this$props.type,
71
+ localId = _this$props.localId;
71
72
  var node = {
72
73
  type: type,
73
74
  extensionKey: extensionKey,
74
75
  extensionType: extensionType,
75
76
  parameters: parameters,
76
- content: content || text
77
+ content: content || text,
78
+ localId: localId
77
79
  };
78
80
  var result = null;
79
81
 
@@ -345,7 +345,8 @@ var MediaCardInternal = /*#__PURE__*/function (_Component) {
345
345
  useInlinePlayer = _this$props5.useInlinePlayer,
346
346
  originalDimensions = _this$props5.originalDimensions,
347
347
  forceOpenMediaViewer = _this$props5.shouldOpenMediaViewer,
348
- featureFlags = _this$props5.featureFlags;
348
+ featureFlags = _this$props5.featureFlags,
349
+ shouldEnableDownloadButton = _this$props5.shouldEnableDownloadButton;
349
350
  var isMobile = rendererAppearance === 'mobile';
350
351
  var shouldPlayInline = useInlinePlayer !== undefined ? useInlinePlayer : true;
351
352
  var isInlinePlayer = isMobile ? false : shouldPlayInline;
@@ -400,7 +401,8 @@ var MediaCardInternal = /*#__PURE__*/function (_Component) {
400
401
  mediaViewerDataSource: {
401
402
  list: Array.from(mediaIdentifierMap.values())
402
403
  },
403
- featureFlags: featureFlags
404
+ featureFlags: featureFlags,
405
+ shouldEnableDownloadButton: shouldEnableDownloadButton
404
406
  }));
405
407
  }
406
408
  }]);
@@ -223,7 +223,7 @@ var Renderer = /*#__PURE__*/function (_PureComponent) {
223
223
  var nextMedia = nextProps.media || {};
224
224
  var media = this.props.media || {};
225
225
 
226
- if (nextProps.portal !== this.props.portal || nextProps.appearance !== this.props.appearance || nextProps.stickyHeaders !== this.props.stickyHeaders || nextProps.disableActions !== this.props.disableActions || nextProps.allowHeadingAnchorLinks !== this.props.allowHeadingAnchorLinks || nextMedia.allowLinking !== media.allowLinking) {
226
+ if (nextProps.portal !== this.props.portal || nextProps.appearance !== this.props.appearance || nextProps.stickyHeaders !== this.props.stickyHeaders || nextProps.disableActions !== this.props.disableActions || nextProps.UNSAFE_allowCustomPanels !== this.props.UNSAFE_allowCustomPanels || nextProps.allowHeadingAnchorLinks !== this.props.allowHeadingAnchorLinks || nextMedia.allowLinking !== media.allowLinking) {
227
227
  this.serializer = new _.ReactSerializer(this.deriveSerializerProps(nextProps));
228
228
  }
229
229
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "80.0.0",
3
+ "version": "82.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -192,6 +192,9 @@ export default class ReactSerializer {
192
192
  case 'mediaGroup':
193
193
  return this.getMediaGroupProps(node);
194
194
 
195
+ case 'mediaInline':
196
+ return this.getMediaInlineProps(node);
197
+
195
198
  case 'mediaSingle':
196
199
  return this.getMediaSingleProps(node, path);
197
200
 
@@ -400,10 +403,18 @@ export default class ReactSerializer {
400
403
  }
401
404
 
402
405
  getMediaGroupProps(node) {
406
+ var _this$media;
407
+
403
408
  return { ...this.getProps(node),
404
409
  shouldOpenMediaViewer: this.shouldOpenMediaViewer,
405
410
  allowAltTextOnImages: this.allowAltTextOnImages,
406
- featureFlags: this.media && this.media.featureFlags
411
+ featureFlags: this.media && this.media.featureFlags,
412
+ enableDownloadButton: (_this$media = this.media) === null || _this$media === void 0 ? void 0 : _this$media.enableDownloadButton
413
+ };
414
+ }
415
+
416
+ getMediaInlineProps(node) {
417
+ return { ...this.getProps(node)
407
418
  };
408
419
  }
409
420
 
@@ -85,6 +85,12 @@ const MediaGroup = Loadable({
85
85
  './mediaGroup').then(mod => mod.default),
86
86
  loading: () => null
87
87
  });
88
+ const MediaInline = Loadable({
89
+ loader: () => import(
90
+ /* webpackChunkName: "@atlaskit-internal_renderer-node_MediaInline" */
91
+ './mediaInline').then(mod => mod.default),
92
+ loading: () => null
93
+ });
88
94
  const Mention = Loadable({
89
95
  loader: () => import(
90
96
  /* webpackChunkName: "@atlaskit-internal_renderer-node_Mention" */
@@ -119,6 +125,7 @@ export const nodeToReact = {
119
125
  listItem: ListItem,
120
126
  media: Media,
121
127
  mediaGroup: MediaGroup,
128
+ mediaInline: MediaInline,
122
129
  mediaSingle: MediaSingle,
123
130
  mention: Mention,
124
131
  orderedList: OrderedList,
@@ -278,4 +285,4 @@ const isEmojiBlock = pnode => {
278
285
  return emojiCount > 0;
279
286
  };
280
287
 
281
- export { Blockquote, BodiedExtension, BulletList, BlockCard, Caption, CodeBlock, Date, DecisionItem, DecisionList, Doc, DocWithSelectAllTrap, Emoji, Extension, Expand, HardBreak, Heading, ListItem, InlineCard, InlineExtension, LayoutSection, LayoutColumn, Media, MediaGroup, MediaSingle, Mention, OrderedList, Panel, Paragraph, Placeholder, Rule, Status, TaskItem, TaskList, Table, TableCell, TableRow, UnknownBlock, EmbedCard };
288
+ export { Blockquote, BodiedExtension, BulletList, BlockCard, Caption, CodeBlock, Date, DecisionItem, DecisionList, Doc, DocWithSelectAllTrap, Emoji, Extension, Expand, HardBreak, Heading, ListItem, InlineCard, InlineExtension, LayoutSection, LayoutColumn, Media, MediaGroup, MediaInline, MediaSingle, Mention, OrderedList, Panel, Paragraph, Placeholder, Rule, Status, TaskItem, TaskList, Table, TableCell, TableRow, UnknownBlock, EmbedCard };
@@ -20,7 +20,8 @@ export default class Media extends PureComponent {
20
20
  allowAltTextOnImages,
21
21
  alt,
22
22
  featureFlags,
23
- shouldOpenMediaViewer: allowMediaViewer
23
+ shouldOpenMediaViewer: allowMediaViewer,
24
+ enableDownloadButton
24
25
  } = this.props;
25
26
  const linkMark = this.props.marks.find(this.props.isLinkMark);
26
27
  const linkHref = linkMark === null || linkMark === void 0 ? void 0 : linkMark.attrs.href;
@@ -33,7 +34,8 @@ export default class Media extends PureComponent {
33
34
  shouldOpenMediaViewer: shouldOpenMediaViewer,
34
35
  eventHandlers: eventHandlers,
35
36
  alt: allowAltTextOnImages ? alt : undefined,
36
- featureFlags: featureFlags
37
+ featureFlags: featureFlags,
38
+ shouldEnableDownloadButton: enableDownloadButton
37
39
  }));
38
40
  return linkHref ? /*#__PURE__*/React.createElement(MediaLink, {
39
41
  href: linkHref,
@@ -68,7 +68,8 @@ export default class MediaGroup extends PureComponent {
68
68
  resizeMode: 'stretchy-fit',
69
69
  cardDimensions: defaultImageCardDimensions,
70
70
  useInlinePlayer: false,
71
- featureFlags: this.props.featureFlags
71
+ featureFlags: this.props.featureFlags,
72
+ enableDownloadButton: this.props.enableDownloadButton
72
73
  });
73
74
  }
74
75
 
@@ -89,7 +90,8 @@ export default class MediaGroup extends PureComponent {
89
90
  onClick
90
91
  }
91
92
  },
92
- featureFlags: this.props.featureFlags
93
+ featureFlags: this.props.featureFlags,
94
+ enableDownloadButton: this.props.enableDownloadButton
93
95
  });
94
96
  }
95
97
 
@@ -119,7 +121,8 @@ export default class MediaGroup extends PureComponent {
119
121
 
120
122
  default:
121
123
  return /*#__PURE__*/React.cloneElement(child, {
122
- featureFlags: this.props.featureFlags
124
+ featureFlags: this.props.featureFlags,
125
+ enableDownloadButton: this.props.enableDownloadButton
123
126
  });
124
127
  }
125
128
  }));
@@ -0,0 +1,53 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { MediaInlineCard } from '@atlaskit/media-card';
3
+ import { WithProviders } from '@atlaskit/editor-common';
4
+ export const RenderMediaInline = props => {
5
+ const {
6
+ mediaProvider
7
+ } = props;
8
+ const [viewMediaClientConfigState, setViewMediaClientConfigState] = useState({});
9
+ useEffect(() => {
10
+ updateViewMediaClientConfigState(mediaProvider);
11
+ }, [mediaProvider]);
12
+
13
+ const updateViewMediaClientConfigState = async mediaProvider => {
14
+ if (mediaProvider) {
15
+ const mediaClientConfig = await mediaProvider;
16
+ setViewMediaClientConfigState(mediaClientConfig.viewMediaClientConfig);
17
+ }
18
+ };
19
+
20
+ return /*#__PURE__*/React.createElement(MediaInlineCard, {
21
+ identifier: props.identifier,
22
+ shouldOpenMediaViewer: true,
23
+ mediaClientConfig: viewMediaClientConfigState
24
+ });
25
+ };
26
+
27
+ const MediaInline = props => {
28
+ const {
29
+ collection,
30
+ id,
31
+ providers
32
+ } = props;
33
+ const identifier = {
34
+ id,
35
+ mediaItemType: 'file',
36
+ collectionName: collection
37
+ };
38
+ return /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(WithProviders, {
39
+ providers: ['mediaProvider'],
40
+ providerFactory: providers,
41
+ renderNode: providers => {
42
+ const {
43
+ mediaProvider
44
+ } = providers;
45
+ return /*#__PURE__*/React.createElement(RenderMediaInline, {
46
+ identifier: identifier,
47
+ mediaProvider: mediaProvider
48
+ });
49
+ }
50
+ }));
51
+ };
52
+
53
+ export default MediaInline;
@@ -77,7 +77,7 @@ const Panel = props => {
77
77
  const icon = getIcon();
78
78
 
79
79
  if (icon) {
80
- return /*#__PURE__*/React.createElement("span", {
80
+ return /*#__PURE__*/React.createElement("div", {
81
81
  className: PanelSharedCssClassName.icon
82
82
  }, icon);
83
83
  }
@@ -86,6 +86,8 @@ const Panel = props => {
86
86
  return /*#__PURE__*/React.createElement(PanelStyled, {
87
87
  className: PanelSharedCssClassName.prefix,
88
88
  "data-panel-type": panelType,
89
+ "data-panel-color": panelColor,
90
+ "data-panel-icon": panelIcon,
89
91
  backgroundColor: panelColor
90
92
  }, renderIcon(), /*#__PURE__*/React.createElement("div", {
91
93
  className: PanelSharedCssClassName.content
@@ -98,12 +98,12 @@ export const Colgroup = props => {
98
98
  }
99
99
  } // scaling down
100
100
  else if (renderWidth < tableWidth) {
101
- scaleDownPercent = calcScalePercent({
102
- renderWidth,
103
- tableWidth,
104
- maxScale: MAX_SCALING_PERCENT
105
- });
106
- }
101
+ scaleDownPercent = calcScalePercent({
102
+ renderWidth,
103
+ tableWidth,
104
+ maxScale: MAX_SCALING_PERCENT
105
+ });
106
+ }
107
107
 
108
108
  return /*#__PURE__*/React.createElement("colgroup", null, isNumberColumnEnabled && /*#__PURE__*/React.createElement("col", {
109
109
  style: {
@@ -33,14 +33,16 @@ export default class ExtensionRenderer extends React.Component {
33
33
  parameters,
34
34
  content,
35
35
  text,
36
- type
36
+ type,
37
+ localId
37
38
  } = this.props;
38
39
  const node = {
39
40
  type,
40
41
  extensionKey,
41
42
  extensionType,
42
43
  parameters,
43
- content: content || text
44
+ content: content || text,
45
+ localId
44
46
  };
45
47
  let result = null;
46
48
 
@@ -230,7 +230,8 @@ export class MediaCardInternal extends Component {
230
230
  useInlinePlayer,
231
231
  originalDimensions,
232
232
  shouldOpenMediaViewer: forceOpenMediaViewer,
233
- featureFlags
233
+ featureFlags,
234
+ shouldEnableDownloadButton
234
235
  } = this.props;
235
236
  const isMobile = rendererAppearance === 'mobile';
236
237
  const shouldPlayInline = useInlinePlayer !== undefined ? useInlinePlayer : true;
@@ -286,7 +287,8 @@ export class MediaCardInternal extends Component {
286
287
  mediaViewerDataSource: {
287
288
  list: Array.from(mediaIdentifierMap.values())
288
289
  },
289
- featureFlags: featureFlags
290
+ featureFlags: featureFlags,
291
+ shouldEnableDownloadButton: shouldEnableDownloadButton
290
292
  }));
291
293
  }
292
294
 
@@ -147,7 +147,7 @@ export class Renderer extends PureComponent {
147
147
  const nextMedia = nextProps.media || {};
148
148
  const media = this.props.media || {};
149
149
 
150
- if (nextProps.portal !== this.props.portal || nextProps.appearance !== this.props.appearance || nextProps.stickyHeaders !== this.props.stickyHeaders || nextProps.disableActions !== this.props.disableActions || nextProps.allowHeadingAnchorLinks !== this.props.allowHeadingAnchorLinks || nextMedia.allowLinking !== media.allowLinking) {
150
+ if (nextProps.portal !== this.props.portal || nextProps.appearance !== this.props.appearance || nextProps.stickyHeaders !== this.props.stickyHeaders || nextProps.disableActions !== this.props.disableActions || nextProps.UNSAFE_allowCustomPanels !== this.props.UNSAFE_allowCustomPanels || nextProps.allowHeadingAnchorLinks !== this.props.allowHeadingAnchorLinks || nextMedia.allowLinking !== media.allowLinking) {
151
151
  this.serializer = new ReactSerializer(this.deriveSerializerProps(nextProps));
152
152
  }
153
153
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "80.0.0",
3
+ "version": "82.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -212,6 +212,9 @@ var ReactSerializer = /*#__PURE__*/function () {
212
212
  case 'mediaGroup':
213
213
  return this.getMediaGroupProps(node);
214
214
 
215
+ case 'mediaInline':
216
+ return this.getMediaInlineProps(node);
217
+
215
218
  case 'mediaSingle':
216
219
  return this.getMediaSingleProps(node, path);
217
220
 
@@ -461,12 +464,20 @@ var ReactSerializer = /*#__PURE__*/function () {
461
464
  }, {
462
465
  key: "getMediaGroupProps",
463
466
  value: function getMediaGroupProps(node) {
467
+ var _this$media;
468
+
464
469
  return _objectSpread(_objectSpread({}, this.getProps(node)), {}, {
465
470
  shouldOpenMediaViewer: this.shouldOpenMediaViewer,
466
471
  allowAltTextOnImages: this.allowAltTextOnImages,
467
- featureFlags: this.media && this.media.featureFlags
472
+ featureFlags: this.media && this.media.featureFlags,
473
+ enableDownloadButton: (_this$media = this.media) === null || _this$media === void 0 ? void 0 : _this$media.enableDownloadButton
468
474
  });
469
475
  }
476
+ }, {
477
+ key: "getMediaInlineProps",
478
+ value: function getMediaInlineProps(node) {
479
+ return _objectSpread({}, this.getProps(node));
480
+ }
470
481
  }, {
471
482
  key: "getTaskItemProps",
472
483
  value: function getTaskItemProps(node) {
@@ -145,6 +145,18 @@ var MediaGroup = Loadable({
145
145
  return null;
146
146
  }
147
147
  });
148
+ var MediaInline = Loadable({
149
+ loader: function loader() {
150
+ return import(
151
+ /* webpackChunkName: "@atlaskit-internal_renderer-node_MediaInline" */
152
+ './mediaInline').then(function (mod) {
153
+ return mod.default;
154
+ });
155
+ },
156
+ loading: function loading() {
157
+ return null;
158
+ }
159
+ });
148
160
  var Mention = Loadable({
149
161
  loader: function loader() {
150
162
  return import(
@@ -191,6 +203,7 @@ export var nodeToReact = {
191
203
  listItem: ListItem,
192
204
  media: Media,
193
205
  mediaGroup: MediaGroup,
206
+ mediaInline: MediaInline,
194
207
  mediaSingle: MediaSingle,
195
208
  mention: Mention,
196
209
  orderedList: OrderedList,
@@ -354,4 +367,4 @@ var isEmojiBlock = function isEmojiBlock(pnode) {
354
367
  return emojiCount > 0;
355
368
  };
356
369
 
357
- export { Blockquote, BodiedExtension, BulletList, BlockCard, Caption, CodeBlock, Date, DecisionItem, DecisionList, Doc, DocWithSelectAllTrap, Emoji, Extension, Expand, HardBreak, Heading, ListItem, InlineCard, InlineExtension, LayoutSection, LayoutColumn, Media, MediaGroup, MediaSingle, Mention, OrderedList, Panel, Paragraph, Placeholder, Rule, Status, TaskItem, TaskList, Table, TableCell, TableRow, UnknownBlock, EmbedCard };
370
+ export { Blockquote, BodiedExtension, BulletList, BlockCard, Caption, CodeBlock, Date, DecisionItem, DecisionList, Doc, DocWithSelectAllTrap, Emoji, Extension, Expand, HardBreak, Heading, ListItem, InlineCard, InlineExtension, LayoutSection, LayoutColumn, Media, MediaGroup, MediaInline, MediaSingle, Mention, OrderedList, Panel, Paragraph, Placeholder, Rule, Status, TaskItem, TaskList, Table, TableCell, TableRow, UnknownBlock, EmbedCard };
@@ -43,7 +43,8 @@ var Media = /*#__PURE__*/function (_PureComponent) {
43
43
  allowAltTextOnImages = _this$props.allowAltTextOnImages,
44
44
  alt = _this$props.alt,
45
45
  featureFlags = _this$props.featureFlags,
46
- allowMediaViewer = _this$props.shouldOpenMediaViewer;
46
+ allowMediaViewer = _this$props.shouldOpenMediaViewer,
47
+ enableDownloadButton = _this$props.enableDownloadButton;
47
48
 
48
49
  var linkMark = _this.props.marks.find(_this.props.isLinkMark);
49
50
 
@@ -57,7 +58,8 @@ var Media = /*#__PURE__*/function (_PureComponent) {
57
58
  shouldOpenMediaViewer: shouldOpenMediaViewer,
58
59
  eventHandlers: eventHandlers,
59
60
  alt: allowAltTextOnImages ? alt : undefined,
60
- featureFlags: featureFlags
61
+ featureFlags: featureFlags,
62
+ shouldEnableDownloadButton: enableDownloadButton
61
63
  }));
62
64
  return linkHref ? /*#__PURE__*/React.createElement(MediaLink, {
63
65
  href: linkHref,
@@ -105,7 +105,8 @@ var MediaGroup = /*#__PURE__*/function (_PureComponent) {
105
105
  resizeMode: 'stretchy-fit',
106
106
  cardDimensions: defaultImageCardDimensions,
107
107
  useInlinePlayer: false,
108
- featureFlags: this.props.featureFlags
108
+ featureFlags: this.props.featureFlags,
109
+ enableDownloadButton: this.props.enableDownloadButton
109
110
  });
110
111
  }
111
112
  }, {
@@ -128,7 +129,8 @@ var MediaGroup = /*#__PURE__*/function (_PureComponent) {
128
129
  onClick: onClick
129
130
  }
130
131
  }),
131
- featureFlags: this.props.featureFlags
132
+ featureFlags: this.props.featureFlags,
133
+ enableDownloadButton: this.props.enableDownloadButton
132
134
  });
133
135
  }
134
136
  }, {
@@ -162,7 +164,8 @@ var MediaGroup = /*#__PURE__*/function (_PureComponent) {
162
164
 
163
165
  default:
164
166
  return /*#__PURE__*/React.cloneElement(child, {
165
- featureFlags: _this2.props.featureFlags
167
+ featureFlags: _this2.props.featureFlags,
168
+ enableDownloadButton: _this2.props.enableDownloadButton
166
169
  });
167
170
  }
168
171
  }));
@@ -0,0 +1,80 @@
1
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import React, { useEffect, useState } from 'react';
5
+ import { MediaInlineCard } from '@atlaskit/media-card';
6
+ import { WithProviders } from '@atlaskit/editor-common';
7
+ export var RenderMediaInline = function RenderMediaInline(props) {
8
+ var mediaProvider = props.mediaProvider;
9
+
10
+ var _useState = useState({}),
11
+ _useState2 = _slicedToArray(_useState, 2),
12
+ viewMediaClientConfigState = _useState2[0],
13
+ setViewMediaClientConfigState = _useState2[1];
14
+
15
+ useEffect(function () {
16
+ updateViewMediaClientConfigState(mediaProvider);
17
+ }, [mediaProvider]);
18
+
19
+ var updateViewMediaClientConfigState = /*#__PURE__*/function () {
20
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(mediaProvider) {
21
+ var mediaClientConfig;
22
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
23
+ while (1) {
24
+ switch (_context.prev = _context.next) {
25
+ case 0:
26
+ if (!mediaProvider) {
27
+ _context.next = 5;
28
+ break;
29
+ }
30
+
31
+ _context.next = 3;
32
+ return mediaProvider;
33
+
34
+ case 3:
35
+ mediaClientConfig = _context.sent;
36
+ setViewMediaClientConfigState(mediaClientConfig.viewMediaClientConfig);
37
+
38
+ case 5:
39
+ case "end":
40
+ return _context.stop();
41
+ }
42
+ }
43
+ }, _callee);
44
+ }));
45
+
46
+ return function updateViewMediaClientConfigState(_x) {
47
+ return _ref.apply(this, arguments);
48
+ };
49
+ }();
50
+
51
+ return /*#__PURE__*/React.createElement(MediaInlineCard, {
52
+ identifier: props.identifier,
53
+ shouldOpenMediaViewer: true,
54
+ mediaClientConfig: viewMediaClientConfigState
55
+ });
56
+ };
57
+
58
+ var MediaInline = function MediaInline(props) {
59
+ var collection = props.collection,
60
+ id = props.id,
61
+ providers = props.providers;
62
+ var identifier = {
63
+ id: id,
64
+ mediaItemType: 'file',
65
+ collectionName: collection
66
+ };
67
+ return /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(WithProviders, {
68
+ providers: ['mediaProvider'],
69
+ providerFactory: providers,
70
+ renderNode: function renderNode(providers) {
71
+ var mediaProvider = providers.mediaProvider;
72
+ return /*#__PURE__*/React.createElement(RenderMediaInline, {
73
+ identifier: identifier,
74
+ mediaProvider: mediaProvider
75
+ });
76
+ }
77
+ }));
78
+ };
79
+
80
+ export default MediaInline;
@@ -72,7 +72,7 @@ var Panel = function Panel(props) {
72
72
  var icon = getIcon();
73
73
 
74
74
  if (icon) {
75
- return /*#__PURE__*/React.createElement("span", {
75
+ return /*#__PURE__*/React.createElement("div", {
76
76
  className: PanelSharedCssClassName.icon
77
77
  }, icon);
78
78
  }
@@ -81,6 +81,8 @@ var Panel = function Panel(props) {
81
81
  return /*#__PURE__*/React.createElement(PanelStyled, {
82
82
  className: PanelSharedCssClassName.prefix,
83
83
  "data-panel-type": panelType,
84
+ "data-panel-color": panelColor,
85
+ "data-panel-icon": panelIcon,
84
86
  backgroundColor: panelColor
85
87
  }, renderIcon(), /*#__PURE__*/React.createElement("div", {
86
88
  className: PanelSharedCssClassName.content
@@ -97,12 +97,12 @@ export var Colgroup = function Colgroup(props) {
97
97
  }
98
98
  } // scaling down
99
99
  else if (renderWidth < tableWidth) {
100
- scaleDownPercent = calcScalePercent({
101
- renderWidth: renderWidth,
102
- tableWidth: tableWidth,
103
- maxScale: MAX_SCALING_PERCENT
104
- });
105
- }
100
+ scaleDownPercent = calcScalePercent({
101
+ renderWidth: renderWidth,
102
+ tableWidth: tableWidth,
103
+ maxScale: MAX_SCALING_PERCENT
104
+ });
105
+ }
106
106
 
107
107
  return /*#__PURE__*/React.createElement("colgroup", null, isNumberColumnEnabled && /*#__PURE__*/React.createElement("col", {
108
108
  style: {
@@ -55,13 +55,15 @@ var ExtensionRenderer = /*#__PURE__*/function (_React$Component) {
55
55
  parameters = _this$props.parameters,
56
56
  content = _this$props.content,
57
57
  text = _this$props.text,
58
- type = _this$props.type;
58
+ type = _this$props.type,
59
+ localId = _this$props.localId;
59
60
  var node = {
60
61
  type: type,
61
62
  extensionKey: extensionKey,
62
63
  extensionType: extensionType,
63
64
  parameters: parameters,
64
- content: content || text
65
+ content: content || text,
66
+ localId: localId
65
67
  };
66
68
  var result = null;
67
69
 
@@ -317,7 +317,8 @@ export var MediaCardInternal = /*#__PURE__*/function (_Component) {
317
317
  useInlinePlayer = _this$props5.useInlinePlayer,
318
318
  originalDimensions = _this$props5.originalDimensions,
319
319
  forceOpenMediaViewer = _this$props5.shouldOpenMediaViewer,
320
- featureFlags = _this$props5.featureFlags;
320
+ featureFlags = _this$props5.featureFlags,
321
+ shouldEnableDownloadButton = _this$props5.shouldEnableDownloadButton;
321
322
  var isMobile = rendererAppearance === 'mobile';
322
323
  var shouldPlayInline = useInlinePlayer !== undefined ? useInlinePlayer : true;
323
324
  var isInlinePlayer = isMobile ? false : shouldPlayInline;
@@ -372,7 +373,8 @@ export var MediaCardInternal = /*#__PURE__*/function (_Component) {
372
373
  mediaViewerDataSource: {
373
374
  list: Array.from(mediaIdentifierMap.values())
374
375
  },
375
- featureFlags: featureFlags
376
+ featureFlags: featureFlags,
377
+ shouldEnableDownloadButton: shouldEnableDownloadButton
376
378
  }));
377
379
  }
378
380
  }]);
@@ -174,7 +174,7 @@ export var Renderer = /*#__PURE__*/function (_PureComponent) {
174
174
  var nextMedia = nextProps.media || {};
175
175
  var media = this.props.media || {};
176
176
 
177
- if (nextProps.portal !== this.props.portal || nextProps.appearance !== this.props.appearance || nextProps.stickyHeaders !== this.props.stickyHeaders || nextProps.disableActions !== this.props.disableActions || nextProps.allowHeadingAnchorLinks !== this.props.allowHeadingAnchorLinks || nextMedia.allowLinking !== media.allowLinking) {
177
+ if (nextProps.portal !== this.props.portal || nextProps.appearance !== this.props.appearance || nextProps.stickyHeaders !== this.props.stickyHeaders || nextProps.disableActions !== this.props.disableActions || nextProps.UNSAFE_allowCustomPanels !== this.props.UNSAFE_allowCustomPanels || nextProps.allowHeadingAnchorLinks !== this.props.allowHeadingAnchorLinks || nextMedia.allowLinking !== media.allowLinking) {
178
178
  this.serializer = new ReactSerializer(this.deriveSerializerProps(nextProps));
179
179
  }
180
180
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "80.0.0",
3
+ "version": "82.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -88,6 +88,7 @@ export default class ReactSerializer implements Serializer<JSX.Element> {
88
88
  private getMediaProps;
89
89
  private getEmbedCardProps;
90
90
  private getMediaGroupProps;
91
+ private getMediaInlineProps;
91
92
  private getTaskItemProps;
92
93
  private getHardBreakProps;
93
94
  private getCodeBlockProps;
@@ -16,6 +16,7 @@ export interface Props {
16
16
  parameters?: any;
17
17
  content?: any;
18
18
  layout?: ExtensionLayout;
19
+ localId?: string;
19
20
  }
20
21
  declare const BodiedExtension: React.FunctionComponent<Props>;
21
22
  export default BodiedExtension;
@@ -13,6 +13,7 @@ export interface Props {
13
13
  text?: string;
14
14
  parameters?: any;
15
15
  layout?: ExtensionLayout;
16
+ localId?: string;
16
17
  }
17
18
  declare type AllOrNone<T> = T | {
18
19
  [K in keyof T]?: never;
@@ -56,7 +57,8 @@ declare const _default: {
56
57
  componentWillMount?(): void;
57
58
  UNSAFE_componentWillMount?(): void;
58
59
  componentWillReceiveProps?(nextProps: Readonly<Props>, nextContext: any): void;
59
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Props>, nextContext: any): void;
60
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Props>, nextContext: any): void; /** We don't want this error to block renderer */
61
+ /** We keep rendering the default content */
60
62
  componentWillUpdate?(nextProps: Readonly<Props>, nextState: Readonly<import("@atlaskit/editor-common").OverflowShadowState>, nextContext: any): void;
61
63
  UNSAFE_componentWillUpdate?(nextProps: Readonly<Props>, nextState: Readonly<import("@atlaskit/editor-common").OverflowShadowState>, nextContext: any): void;
62
64
  };
@@ -60,6 +60,7 @@ declare const BlockCard: (React.ComponentClass<{
60
60
  }> & Loadable.LoadableComponent);
61
61
  declare const Media: (React.ComponentClass<import("./media").MediaProps, any> & Loadable.LoadableComponent) | (React.FunctionComponent<import("./media").MediaProps> & Loadable.LoadableComponent);
62
62
  declare const MediaGroup: (React.ComponentClass<import("./mediaGroup").MediaGroupProps, any> & Loadable.LoadableComponent) | (React.FunctionComponent<import("./mediaGroup").MediaGroupProps> & Loadable.LoadableComponent);
63
+ declare const MediaInline: (React.ComponentClass<import("./mediaInline").MediaInlineProps, any> & Loadable.LoadableComponent) | (React.FunctionComponent<import("./mediaInline").MediaInlineProps> & Loadable.LoadableComponent);
63
64
  declare const Mention: (React.ComponentClass<import("./mention").Props, any> & Loadable.LoadableComponent) | (React.FunctionComponent<import("./mention").Props> & Loadable.LoadableComponent);
64
65
  declare const Expand: (React.ComponentClass<import("../../ui/Expand").ExpandProps, any> & Loadable.LoadableComponent) | (React.FunctionComponent<import("../../ui/Expand").ExpandProps> & Loadable.LoadableComponent);
65
66
  export declare const nodeToReact: {
@@ -93,5 +94,5 @@ export declare function isTextNode(node: Node | Mark): node is Node;
93
94
  * whose content satisfies the condition for an emoji block
94
95
  */
95
96
  export declare const isEmojiDoc: (doc: Fragment) => boolean;
96
- export { Blockquote, BodiedExtension, BulletList, BlockCard, Caption, CodeBlock, Date, DecisionItem, DecisionList, Doc, DocWithSelectAllTrap, Emoji, Extension, Expand, HardBreak, Heading, ListItem, InlineCard, InlineExtension, LayoutSection, LayoutColumn, Media, MediaGroup, MediaSingle, Mention, OrderedList, Panel, Paragraph, Placeholder, Rule, Status, TaskItem, TaskList, Table, TableCell, TableRow, UnknownBlock, EmbedCard, };
97
+ export { Blockquote, BodiedExtension, BulletList, BlockCard, Caption, CodeBlock, Date, DecisionItem, DecisionList, Doc, DocWithSelectAllTrap, Emoji, Extension, Expand, HardBreak, Heading, ListItem, InlineCard, InlineExtension, LayoutSection, LayoutColumn, Media, MediaGroup, MediaInline, MediaSingle, Mention, OrderedList, Panel, Paragraph, Placeholder, Rule, Status, TaskItem, TaskList, Table, TableCell, TableRow, UnknownBlock, EmbedCard, };
97
98
  export type { BodiedExtensionProps, ExtensionProps, InlineExtensionProps };
@@ -9,6 +9,7 @@ export interface Props {
9
9
  extensionKey: string;
10
10
  text?: string;
11
11
  parameters?: any;
12
+ localId?: string;
12
13
  }
13
14
  declare const InlineExtension: React.StatelessComponent<Props>;
14
15
  export default InlineExtension;
@@ -17,6 +17,7 @@ export declare type MediaProps = MediaCardProps & {
17
17
  fireAnalyticsEvent?: (event: AnalyticsEventPayload) => void;
18
18
  featureFlags?: MediaFeatureFlags;
19
19
  eventHandlers?: EventHandlers;
20
+ enableDownloadButton?: boolean;
20
21
  };
21
22
  export default class Media extends PureComponent<MediaProps, {}> {
22
23
  private renderCard;
@@ -9,6 +9,7 @@ export interface MediaGroupProps {
9
9
  children?: React.ReactNode;
10
10
  eventHandlers?: EventHandlers;
11
11
  featureFlags?: MediaFeatureFlags;
12
+ enableDownloadButton?: boolean;
12
13
  }
13
14
  export interface MediaGroupState {
14
15
  animate: boolean;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { ProviderFactory } from '@atlaskit/editor-common';
3
+ import { FileIdentifier } from '@atlaskit/media-client';
4
+ import { MediaProvider } from '../../ui/MediaCard';
5
+ export declare type RenderMediaInlineProps = {
6
+ identifier: FileIdentifier;
7
+ mediaProvider?: Promise<MediaProvider>;
8
+ children?: React.ReactNode;
9
+ };
10
+ export declare type MediaInlineProps = {
11
+ id: string;
12
+ collection?: string;
13
+ providers: ProviderFactory;
14
+ };
15
+ export declare const RenderMediaInline: React.FC<RenderMediaInlineProps>;
16
+ declare const MediaInline: React.FC<MediaInlineProps>;
17
+ export default MediaInline;
@@ -1,5 +1,6 @@
1
1
  import { MediaFeatureFlags } from '@atlaskit/media-common';
2
2
  export interface MediaOptions {
3
3
  allowLinking?: boolean;
4
+ enableDownloadButton?: boolean;
4
5
  featureFlags?: MediaFeatureFlags;
5
6
  }
@@ -13,6 +13,7 @@ export interface Props {
13
13
  parameters?: any;
14
14
  content?: any;
15
15
  layout?: ExtensionLayout;
16
+ localId?: string;
16
17
  children: ({ result }: {
17
18
  result?: JSX.Element | null;
18
19
  }) => JSX.Element;
@@ -28,7 +29,7 @@ export default class ExtensionRenderer extends React.Component<Props, State> {
28
29
  UNSAFE_componentWillMount(): void;
29
30
  componentWillUnmount(): void;
30
31
  handleProvider: (name: keyof State, providerPromise?: Promise<any> | undefined) => void;
31
- getNodeRenderer: typeof getNodeRenderer;
32
+ getNodeRenderer: import("memoize-one").MemoizedFn<typeof getNodeRenderer>;
32
33
  renderExtensionNode: (extensionProvider?: ExtensionProvider<any> | null | undefined) => JSX.Element;
33
34
  setupAndRenderExtensionNode: (providers: {
34
35
  extensionProvider?: Promise<ExtensionProvider<any>> | undefined;
@@ -37,6 +37,7 @@ export interface MediaCardProps {
37
37
  rendererContext?: RendererContext;
38
38
  alt?: string;
39
39
  featureFlags?: MediaFeatureFlags;
40
+ shouldEnableDownloadButton?: boolean;
40
41
  }
41
42
  export interface State {
42
43
  mediaClientConfig?: MediaClientConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "80.0.0",
3
+ "version": "82.0.0",
4
4
  "description": "Renderer component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -24,31 +24,30 @@
24
24
  }
25
25
  },
26
26
  "dependencies": {
27
- "@atlaskit/adf-schema": "^19.0.0",
28
- "@atlaskit/adf-utils": "^14.1.0",
27
+ "@atlaskit/adf-schema": "^19.3.0",
28
+ "@atlaskit/adf-utils": "^14.3.0",
29
29
  "@atlaskit/analytics-listeners": "^8.0.0",
30
30
  "@atlaskit/analytics-namespaced-context": "^6.3.0",
31
31
  "@atlaskit/analytics-next": "^8.2.0",
32
32
  "@atlaskit/button": "^16.1.0",
33
33
  "@atlaskit/code": "^14.1.0",
34
- "@atlaskit/editor-common": "^59.1.0",
34
+ "@atlaskit/editor-common": "^60.2.0",
35
35
  "@atlaskit/editor-json-transformer": "^8.6.0",
36
- "@atlaskit/editor-shared-styles": "^1.5.0",
37
- "@atlaskit/icon": "^21.7.0",
38
- "@atlaskit/media-card": "^70.10.0",
39
- "@atlaskit/media-client": "^14.1.0",
40
- "@atlaskit/media-common": "^2.8.0",
41
- "@atlaskit/media-filmstrip": "^42.0.0",
36
+ "@atlaskit/editor-shared-styles": "^1.6.0",
37
+ "@atlaskit/icon": "^21.9.0",
38
+ "@atlaskit/media-card": "^72.0.0",
39
+ "@atlaskit/media-client": "^14.3.0",
40
+ "@atlaskit/media-common": "^2.9.0",
41
+ "@atlaskit/media-filmstrip": "^42.1.0",
42
42
  "@atlaskit/media-viewer": "^45.8.0",
43
- "@atlaskit/mention": "^19.6.0",
44
43
  "@atlaskit/status": "^0.11.0",
45
44
  "@atlaskit/task-decision": "^17.2.0",
46
- "@atlaskit/theme": "^11.4.0",
47
- "@atlaskit/tooltip": "^17.4.0",
45
+ "@atlaskit/theme": "^12.0.0",
46
+ "@atlaskit/tooltip": "^17.5.0",
48
47
  "@atlaskit/width-detector": "^3.0.0",
49
48
  "@babel/runtime": "^7.0.0",
50
49
  "lodash": "^4.17.15",
51
- "memoize-one": "^5.1.0",
50
+ "memoize-one": "^6.0.0",
52
51
  "prosemirror-model": "1.11.0",
53
52
  "prosemirror-transform": "1.2.8",
54
53
  "prosemirror-utils": "^1.0.0-0",
@@ -59,30 +58,31 @@
59
58
  },
60
59
  "peerDependencies": {
61
60
  "@atlaskit/media-core": "^32.2.0",
62
- "@atlaskit/smart-card": "^16.0.0",
61
+ "@atlaskit/smart-card": "^16.2.0",
63
62
  "react": "^16.8.0",
64
63
  "react-dom": "^16.8.0",
65
64
  "styled-components": "^3.2.6"
66
65
  },
67
66
  "devDependencies": {
68
67
  "@atlaskit/analytics-gas-types": "^5.0.5",
69
- "@atlaskit/avatar": "^20.4.0",
68
+ "@atlaskit/avatar": "^20.5.0",
70
69
  "@atlaskit/build-utils": "^2.6.2",
71
- "@atlaskit/css-reset": "^6.1.0",
70
+ "@atlaskit/css-reset": "^6.2.0",
72
71
  "@atlaskit/docs": "*",
73
- "@atlaskit/editor-core": "^148.0.0",
74
- "@atlaskit/editor-test-helpers": "^15.3.0",
72
+ "@atlaskit/editor-core": "^151.0.0",
73
+ "@atlaskit/editor-test-helpers": "^15.5.0",
75
74
  "@atlaskit/field-range": "^9.0.0",
76
75
  "@atlaskit/logo": "^13.5.0",
77
76
  "@atlaskit/media-core": "^32.2.0",
78
77
  "@atlaskit/media-integration-test-helpers": "^2.5.0",
79
- "@atlaskit/media-test-helpers": "^28.7.0",
78
+ "@atlaskit/media-test-helpers": "^28.8.0",
79
+ "@atlaskit/mention": "^19.7.0",
80
80
  "@atlaskit/navigation-next": "^9.0.0",
81
- "@atlaskit/profilecard": "^15.0.0",
81
+ "@atlaskit/profilecard": "^15.8.0",
82
82
  "@atlaskit/radio": "^5.3.0",
83
- "@atlaskit/smart-card": "^16.0.0",
83
+ "@atlaskit/smart-card": "^16.2.0",
84
84
  "@atlaskit/ssr": "^0.2.0",
85
- "@atlaskit/util-data-test": "^15.0.0",
85
+ "@atlaskit/util-data-test": "^16.0.0",
86
86
  "@atlaskit/visual-regression": "*",
87
87
  "@atlaskit/webdriver-runner": "*",
88
88
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",