@atlaskit/renderer 85.0.0 → 86.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 (74) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/dist/cjs/analytics/enums.js +1 -0
  3. package/dist/cjs/messages.js +47 -1
  4. package/dist/cjs/react/hooks/use-observed-width.js +94 -0
  5. package/dist/cjs/react/index.js +2 -0
  6. package/dist/cjs/react/nodes/copy-text-provider.js +2 -1
  7. package/dist/cjs/react/nodes/heading-anchor.js +8 -2
  8. package/dist/cjs/react/nodes/inlineCard.js +12 -1
  9. package/dist/cjs/react/nodes/mediaSingle/index.js +145 -151
  10. package/dist/cjs/react/nodes/mention.js +0 -2
  11. package/dist/cjs/react/nodes/status.js +2 -1
  12. package/dist/cjs/react/nodes/tableCell.js +19 -8
  13. package/dist/cjs/react/nodes/task-item-with-providers.js +4 -2
  14. package/dist/cjs/react/nodes/taskItem.js +1 -0
  15. package/dist/cjs/render-document.js +17 -1
  16. package/dist/cjs/types/smartLinksOptions.js +5 -0
  17. package/dist/cjs/ui/Renderer/breakout-ssr.js +47 -4
  18. package/dist/cjs/ui/Renderer/index.js +1 -0
  19. package/dist/cjs/ui/SortingIcon.js +22 -9
  20. package/dist/cjs/version.json +1 -1
  21. package/dist/es2019/analytics/enums.js +1 -0
  22. package/dist/es2019/messages.js +44 -0
  23. package/dist/es2019/react/hooks/use-observed-width.js +59 -0
  24. package/dist/es2019/react/index.js +2 -0
  25. package/dist/es2019/react/nodes/copy-text-provider.js +2 -1
  26. package/dist/es2019/react/nodes/heading-anchor.js +11 -2
  27. package/dist/es2019/react/nodes/inlineCard.js +11 -1
  28. package/dist/es2019/react/nodes/mediaSingle/index.js +132 -112
  29. package/dist/es2019/react/nodes/mention.js +0 -2
  30. package/dist/es2019/react/nodes/status.js +2 -1
  31. package/dist/es2019/react/nodes/tableCell.js +20 -9
  32. package/dist/es2019/react/nodes/task-item-with-providers.js +3 -1
  33. package/dist/es2019/react/nodes/taskItem.js +1 -0
  34. package/dist/es2019/render-document.js +17 -1
  35. package/dist/es2019/types/smartLinksOptions.js +1 -0
  36. package/dist/es2019/ui/Renderer/breakout-ssr.js +45 -4
  37. package/dist/es2019/ui/Renderer/index.js +1 -0
  38. package/dist/es2019/ui/SortingIcon.js +22 -10
  39. package/dist/es2019/version.json +1 -1
  40. package/dist/esm/analytics/enums.js +1 -0
  41. package/dist/esm/messages.js +44 -0
  42. package/dist/esm/react/hooks/use-observed-width.js +80 -0
  43. package/dist/esm/react/index.js +2 -0
  44. package/dist/esm/react/nodes/copy-text-provider.js +2 -1
  45. package/dist/esm/react/nodes/heading-anchor.js +9 -2
  46. package/dist/esm/react/nodes/inlineCard.js +11 -1
  47. package/dist/esm/react/nodes/mediaSingle/index.js +140 -141
  48. package/dist/esm/react/nodes/mention.js +0 -2
  49. package/dist/esm/react/nodes/status.js +2 -1
  50. package/dist/esm/react/nodes/tableCell.js +17 -8
  51. package/dist/esm/react/nodes/task-item-with-providers.js +4 -2
  52. package/dist/esm/react/nodes/taskItem.js +1 -0
  53. package/dist/esm/render-document.js +16 -1
  54. package/dist/esm/types/smartLinksOptions.js +1 -0
  55. package/dist/esm/ui/Renderer/breakout-ssr.js +47 -4
  56. package/dist/esm/ui/Renderer/index.js +1 -0
  57. package/dist/esm/ui/SortingIcon.js +20 -10
  58. package/dist/esm/version.json +1 -1
  59. package/dist/types/analytics/enums.d.ts +2 -1
  60. package/dist/types/analytics/events.d.ts +2 -1
  61. package/dist/types/messages.d.ts +44 -0
  62. package/dist/types/react/hooks/use-observed-width.d.ts +3 -0
  63. package/dist/types/react/index.d.ts +3 -0
  64. package/dist/types/react/nodes/index.d.ts +1 -1
  65. package/dist/types/react/nodes/inlineCard.d.ts +22 -20
  66. package/dist/types/react/nodes/mediaSingle/index.d.ts +3 -7
  67. package/dist/types/react/nodes/mediaSingle/styles.d.ts +1 -1
  68. package/dist/types/react/nodes/mention.d.ts +0 -1
  69. package/dist/types/react/nodes/tableCell.d.ts +6 -59
  70. package/dist/types/react/nodes/task-item-with-providers.d.ts +1 -0
  71. package/dist/types/types/smartLinksOptions.d.ts +3 -0
  72. package/dist/types/ui/SortingIcon.d.ts +6 -3
  73. package/dist/types/ui/renderer-props.d.ts +2 -0
  74. package/package.json +14 -14
@@ -2,50 +2,28 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.getMediaContainerWidth = exports.default = void 0;
11
9
 
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
21
11
 
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _react = _interopRequireDefault(require("react"));
23
13
 
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _reactIntlNext = require("react-intl-next");
25
15
 
26
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
+ var _mediaCommon = require("@atlaskit/media-common");
27
17
 
28
18
  var _ui = require("@atlaskit/editor-common/ui");
29
19
 
30
20
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
31
21
 
32
- var _react = _interopRequireWildcard(require("react"));
33
-
34
- var _reactIntlNext = require("react-intl-next");
35
-
36
22
  var _style = require("../../../ui/Renderer/style");
37
23
 
38
- var _styles = require("./styles");
39
-
40
- var _mediaCommon = require("@atlaskit/media-common");
41
-
42
- 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); }
43
-
44
- 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; }
24
+ var _useObservedWidth2 = require("../../hooks/use-observed-width");
45
25
 
46
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
47
-
48
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
26
+ var _styles = require("./styles");
49
27
 
50
28
  var DEFAULT_WIDTH = 250;
51
29
  var DEFAULT_HEIGHT = 200;
@@ -84,144 +62,160 @@ var getMediaContainerWidth = function getMediaContainerWidth(currentContainerWid
84
62
 
85
63
  exports.getMediaContainerWidth = getMediaContainerWidth;
86
64
 
87
- var MediaSingle = /*#__PURE__*/function (_Component) {
88
- (0, _inherits2.default)(MediaSingle, _Component);
65
+ var MediaSingle = function MediaSingle(props) {
66
+ var _ref$current;
67
+
68
+ var rendererAppearance = props.rendererAppearance,
69
+ featureFlags = props.featureFlags,
70
+ isInsideOfBlockNode = props.isInsideOfBlockNode,
71
+ allowDynamicTextSizing = props.allowDynamicTextSizing,
72
+ layout = props.layout,
73
+ children = props.children,
74
+ pctWidth = props.width;
75
+ var isCaptionsFlaggedOn = (0, _mediaCommon.getMediaFeatureFlag)('captions', featureFlags);
76
+
77
+ var _React$useState = _react.default.useState({
78
+ width: 0,
79
+ height: 0
80
+ }),
81
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
82
+ externalImageDimensions = _React$useState2[0],
83
+ setExternalImageDimensions = _React$useState2[1];
84
+
85
+ var ref = _react.default.useRef(null);
86
+
87
+ var onExternalImageLoaded = _react.default.useCallback(function (_ref2) {
88
+ var width = _ref2.width,
89
+ height = _ref2.height;
90
+ setExternalImageDimensions({
91
+ width: width,
92
+ height: height
93
+ });
94
+ }, []);
89
95
 
90
- var _super = _createSuper(MediaSingle);
96
+ var observedWidthFlag = (0, _mediaCommon.getMediaFeatureFlag)('observedWidth', featureFlags);
91
97
 
92
- function MediaSingle(props) {
93
- var _this;
98
+ var _useObservedWidth = (0, _useObservedWidth2.useObservedWidth)((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.parentElement, observedWidthFlag),
99
+ observedWidth = _useObservedWidth.width;
94
100
 
95
- (0, _classCallCheck2.default)(this, MediaSingle);
96
- _this = _super.call(this, props);
97
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onExternalImageLoaded", function (_ref2) {
98
- var width = _ref2.width,
99
- height = _ref2.height;
101
+ var media;
100
102
 
101
- _this.setState({
102
- width: width,
103
- height: height
104
- });
105
- });
106
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isCaptionsFlaggedOn", (0, _mediaCommon.getMediaFeatureFlag)('captions', _this.props.featureFlags));
107
- _this.state = {}; // Need to initialize with empty state.
103
+ var _React$Children$toArr3 = _react.default.Children.toArray(children),
104
+ _React$Children$toArr4 = (0, _slicedToArray2.default)(_React$Children$toArr3, 2),
105
+ node = _React$Children$toArr4[0],
106
+ caption = _React$Children$toArr4[1];
108
107
 
109
- return _this;
110
- }
108
+ if (!isMediaElement(node)) {
109
+ var mediaElement = checkForMediaElement(node.props.children);
110
+
111
+ if (!mediaElement) {
112
+ return node;
113
+ }
111
114
 
112
- (0, _createClass2.default)(MediaSingle, [{
113
- key: "render",
114
- value: function render() {
115
- var _this2 = this;
115
+ media = mediaElement;
116
+ } else {
117
+ media = node;
118
+ }
116
119
 
117
- var props = this.props;
118
- var media;
120
+ var _media$props = media.props,
121
+ _media$props$width = _media$props.width,
122
+ width = _media$props$width === void 0 ? DEFAULT_WIDTH : _media$props$width,
123
+ _media$props$height = _media$props.height,
124
+ height = _media$props$height === void 0 ? DEFAULT_HEIGHT : _media$props$height,
125
+ type = _media$props.type;
119
126
 
120
- var _React$Children$toArr3 = _react.default.Children.toArray(props.children),
121
- _React$Children$toArr4 = (0, _slicedToArray2.default)(_React$Children$toArr3, 2),
122
- node = _React$Children$toArr4[0],
123
- caption = _React$Children$toArr4[1];
127
+ if (type === 'external') {
128
+ var stateWidth = externalImageDimensions.width,
129
+ stateHeight = externalImageDimensions.height;
124
130
 
125
- if (!isMediaElement(node)) {
126
- var mediaElement = checkForMediaElement(node.props.children);
131
+ if (width === null) {
132
+ width = stateWidth || DEFAULT_WIDTH;
133
+ }
127
134
 
128
- if (!mediaElement) {
129
- return node;
130
- }
135
+ if (height === null) {
136
+ height = stateHeight || DEFAULT_HEIGHT;
137
+ }
138
+ }
131
139
 
132
- media = mediaElement;
140
+ if (width === null) {
141
+ width = DEFAULT_WIDTH;
142
+ height = DEFAULT_HEIGHT;
143
+ } // TODO: put appearance-based padding into theme instead
144
+
145
+
146
+ var padding = rendererAppearance === 'full-page' ? _style.FullPagePadding * 2 : 0;
147
+ var isFullWidth = rendererAppearance === 'full-width';
148
+
149
+ var calcDimensions = function calcDimensions(mediaContainerWidth, mediaBreakpoint) {
150
+ var containerWidth = getMediaContainerWidth(mediaContainerWidth, layout);
151
+ var breakpoint = mediaBreakpoint || (0, _ui.getBreakpoint)(containerWidth);
152
+ var maxWidth = containerWidth;
153
+ var maxHeight = height / width * maxWidth;
154
+ var cardDimensions = {
155
+ width: "".concat(maxWidth, "px"),
156
+ height: "".concat(maxHeight, "px")
157
+ };
158
+ var nonFullWidthSize = containerWidth;
159
+
160
+ if (!isInsideOfBlockNode && rendererAppearance !== 'comment') {
161
+ var isContainerSizeGreaterThanMaxFullPageWidth = containerWidth - padding >= (0, _editorSharedStyles.getAkEditorFullPageMaxWidth)(allowDynamicTextSizing);
162
+
163
+ if (isContainerSizeGreaterThanMaxFullPageWidth && allowDynamicTextSizing) {
164
+ nonFullWidthSize = (0, _ui.mapBreakpointToLayoutMaxWidth)(breakpoint);
165
+ } else if (isContainerSizeGreaterThanMaxFullPageWidth) {
166
+ nonFullWidthSize = (0, _editorSharedStyles.getAkEditorFullPageMaxWidth)(allowDynamicTextSizing);
133
167
  } else {
134
- media = node;
168
+ nonFullWidthSize = containerWidth - padding;
135
169
  }
170
+ }
136
171
 
137
- var _media$props = media.props,
138
- _media$props$width = _media$props.width,
139
- width = _media$props$width === void 0 ? DEFAULT_WIDTH : _media$props$width,
140
- _media$props$height = _media$props.height,
141
- height = _media$props$height === void 0 ? DEFAULT_HEIGHT : _media$props$height,
142
- type = _media$props.type;
143
-
144
- if (type === 'external') {
145
- var _this$state = this.state,
146
- stateWidth = _this$state.width,
147
- stateHeight = _this$state.height;
148
-
149
- if (width === null) {
150
- width = stateWidth || DEFAULT_WIDTH;
151
- }
152
-
153
- if (height === null) {
154
- height = stateHeight || DEFAULT_HEIGHT;
155
- }
156
- }
172
+ var minWidth = Math.min(_editorSharedStyles.akEditorFullWidthLayoutWidth, containerWidth - padding);
173
+ var lineLength = isFullWidth ? minWidth : nonFullWidthSize;
174
+ return {
175
+ cardDimensions: cardDimensions,
176
+ lineLength: lineLength,
177
+ containerWidth: containerWidth
178
+ };
179
+ };
180
+
181
+ var originalDimensions = {
182
+ height: height,
183
+ width: width
184
+ };
185
+
186
+ var renderMediaSingle = function renderMediaSingle(renderWidth, mediaBreakpoint) {
187
+ var _calcDimensions = calcDimensions(renderWidth, mediaBreakpoint),
188
+ cardDimensions = _calcDimensions.cardDimensions,
189
+ lineLength = _calcDimensions.lineLength,
190
+ containerWidth = _calcDimensions.containerWidth;
191
+
192
+ var mediaComponent = /*#__PURE__*/_react.default.cloneElement(media, {
193
+ resizeMode: 'stretchy-fit',
194
+ cardDimensions: cardDimensions,
195
+ originalDimensions: originalDimensions,
196
+ onExternalImageLoaded: onExternalImageLoaded,
197
+ disableOverlay: true,
198
+ featureFlags: featureFlags
199
+ });
157
200
 
158
- if (width === null) {
159
- width = DEFAULT_WIDTH;
160
- height = DEFAULT_HEIGHT;
161
- } // TODO: put appearance-based padding into theme instead
162
-
163
-
164
- var _this$props = this.props,
165
- rendererAppearance = _this$props.rendererAppearance,
166
- featureFlags = _this$props.featureFlags;
167
- var padding = rendererAppearance === 'full-page' ? _style.FullPagePadding * 2 : 0;
168
- return /*#__PURE__*/_react.default.createElement(_ui.WidthConsumer, null, function (_ref3) {
169
- var widthConsumerValue = _ref3.width,
170
- breakpoint = _ref3.breakpoint;
171
- var containerWidth = getMediaContainerWidth(widthConsumerValue, props.layout);
172
- var _this2$props = _this2.props,
173
- isInsideOfBlockNode = _this2$props.isInsideOfBlockNode,
174
- allowDynamicTextSizing = _this2$props.allowDynamicTextSizing;
175
- var maxWidth = containerWidth;
176
- var maxHeight = height / width * maxWidth;
177
- var cardDimensions = {
178
- width: "".concat(maxWidth, "px"),
179
- height: "".concat(maxHeight, "px")
180
- };
181
- var isFullWidth = rendererAppearance === 'full-width';
182
- var nonFullWidthSize = containerWidth;
183
-
184
- if (!isInsideOfBlockNode && rendererAppearance !== 'comment') {
185
- var isContainerSizeGreaterThanMaxFullPageWidth = containerWidth - padding >= (0, _editorSharedStyles.getAkEditorFullPageMaxWidth)(allowDynamicTextSizing);
186
-
187
- if (isContainerSizeGreaterThanMaxFullPageWidth && allowDynamicTextSizing) {
188
- nonFullWidthSize = (0, _ui.mapBreakpointToLayoutMaxWidth)(breakpoint);
189
- } else if (isContainerSizeGreaterThanMaxFullPageWidth) {
190
- nonFullWidthSize = (0, _editorSharedStyles.getAkEditorFullPageMaxWidth)(allowDynamicTextSizing);
191
- } else {
192
- nonFullWidthSize = containerWidth - padding;
193
- }
194
- }
195
-
196
- var lineLength = isFullWidth ? Math.min(_editorSharedStyles.akEditorFullWidthLayoutWidth, containerWidth - padding) : nonFullWidthSize;
197
- var originalDimensions = {
198
- height: height,
199
- width: width
200
- };
201
-
202
- var mediaComponent = /*#__PURE__*/_react.default.cloneElement(media, {
203
- resizeMode: 'stretchy-fit',
204
- cardDimensions: cardDimensions,
205
- originalDimensions: originalDimensions,
206
- onExternalImageLoaded: _this2.onExternalImageLoaded,
207
- disableOverlay: true,
208
- featureFlags: featureFlags
209
- });
210
-
211
- return /*#__PURE__*/_react.default.createElement(_styles.ExtendedUIMediaSingle, {
212
- layout: props.layout,
213
- width: width,
214
- height: height,
215
- lineLength: isInsideOfBlockNode ? containerWidth : lineLength,
216
- containerWidth: containerWidth,
217
- pctWidth: props.width,
218
- fullWidthMode: isFullWidth
219
- }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, mediaComponent), _this2.isCaptionsFlaggedOn && caption);
220
- });
221
- }
222
- }]);
223
- return MediaSingle;
224
- }(_react.Component);
201
+ return /*#__PURE__*/_react.default.createElement(_styles.ExtendedUIMediaSingle, {
202
+ handleMediaSingleRef: ref,
203
+ layout: layout,
204
+ width: width,
205
+ height: height,
206
+ lineLength: isInsideOfBlockNode ? containerWidth : lineLength,
207
+ containerWidth: containerWidth,
208
+ pctWidth: pctWidth,
209
+ fullWidthMode: isFullWidth
210
+ }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, mediaComponent), isCaptionsFlaggedOn && caption);
211
+ };
212
+
213
+ return observedWidthFlag ? renderMediaSingle(observedWidth || document.body.offsetWidth) : /*#__PURE__*/_react.default.createElement(_ui.WidthConsumer, null, function (_ref3) {
214
+ var width = _ref3.width,
215
+ breakpoint = _ref3.breakpoint;
216
+ return renderMediaSingle(width, breakpoint);
217
+ });
218
+ };
225
219
 
226
220
  var _default = (0, _reactIntlNext.injectIntl)(MediaSingle);
227
221
 
@@ -47,7 +47,6 @@ var MentionItem = /*#__PURE__*/function (_PureComponent) {
47
47
  var _this$props = this.props,
48
48
  eventHandlers = _this$props.eventHandlers,
49
49
  id = _this$props.id,
50
- portal = _this$props.portal,
51
50
  providers = _this$props.providers,
52
51
  text = _this$props.text,
53
52
  accessLevel = _this$props.accessLevel;
@@ -56,7 +55,6 @@ var MentionItem = /*#__PURE__*/function (_PureComponent) {
56
55
  text: text,
57
56
  accessLevel: accessLevel,
58
57
  providers: providers,
59
- portal: portal,
60
58
  eventHandlers: eventHandlers && eventHandlers.mention
61
59
  });
62
60
  }
@@ -57,7 +57,8 @@ var Status = /*#__PURE__*/function (_PureComponent) {
57
57
  }, /*#__PURE__*/_react.default.createElement(_element.Status, {
58
58
  text: text,
59
59
  color: color,
60
- localId: localId
60
+ localId: localId,
61
+ role: "presentation"
61
62
  }));
62
63
  }
63
64
  }]);
@@ -39,6 +39,10 @@ var _enums = require("../../analytics/enums");
39
39
 
40
40
  var _consts = require("../../consts");
41
41
 
42
+ var _reactIntlNext = require("react-intl-next");
43
+
44
+ var _messages = require("../../messages");
45
+
42
46
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
43
47
 
44
48
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -60,19 +64,23 @@ var nextStatusOrder = function nextStatusOrder(currentSortOrder) {
60
64
  return _types.SortOrder.NO_ORDER;
61
65
  };
62
66
 
63
- var getSortOrderLabel = function getSortOrderLabel(currentSortOrder) {
67
+ var getSortOrderLabel = function getSortOrderLabel(intl, currentSortOrder) {
68
+ var noneSortingLabel = _messages.tableCellMessages.noneSortingLabel,
69
+ ascSortingLabel = _messages.tableCellMessages.ascSortingLabel,
70
+ descSortingLabel = _messages.tableCellMessages.descSortingLabel;
71
+
64
72
  switch (currentSortOrder) {
65
73
  case _types.SortOrder.NO_ORDER:
66
- return 'none';
74
+ return intl.formatMessage(noneSortingLabel);
67
75
 
68
76
  case _types.SortOrder.ASC:
69
- return 'ascending';
77
+ return intl.formatMessage(ascSortingLabel);
70
78
 
71
79
  case _types.SortOrder.DESC:
72
- return 'descending';
80
+ return intl.formatMessage(descSortingLabel);
73
81
 
74
82
  default:
75
- return 'none';
83
+ return intl.formatMessage(noneSortingLabel);
76
84
  }
77
85
  };
78
86
 
@@ -148,7 +156,7 @@ var withCellProps = function withCellProps(WrapperComponent) {
148
156
  };
149
157
 
150
158
  var withSortableColumn = function withSortableColumn(WrapperComponent) {
151
- return /*#__PURE__*/function (_React$Component2) {
159
+ var WithSortableColumn = /*#__PURE__*/function (_React$Component2) {
152
160
  (0, _inherits2.default)(WithSortableColumn, _React$Component2);
153
161
 
154
162
  var _super2 = _createSuper(WithSortableColumn);
@@ -219,7 +227,8 @@ var withSortableColumn = function withSortableColumn(WrapperComponent) {
219
227
  onSorting = _this$props3.onSorting,
220
228
  children = _this$props3.children,
221
229
  sortOrdered = _this$props3.sortOrdered,
222
- isHeaderRow = _this$props3.isHeaderRow;
230
+ isHeaderRow = _this$props3.isHeaderRow,
231
+ intl = _this$props3.intl;
223
232
  var sortOrderedClassName = sortOrdered === _types.SortOrder.NO_ORDER ? _consts.RendererCssClassName.SORTABLE_COLUMN_NO_ORDER : '';
224
233
 
225
234
  if (!allowColumnSorting || !isHeaderRow) {
@@ -234,7 +243,7 @@ var withSortableColumn = function withSortableColumn(WrapperComponent) {
234
243
 
235
244
  return /*#__PURE__*/_react.default.createElement(WrapperComponent, (0, _extends2.default)({}, this.props, {
236
245
  className: className,
237
- ariaSort: getSortOrderLabel(sortOrdered)
246
+ ariaSort: getSortOrderLabel(intl, sortOrdered)
238
247
  }), /*#__PURE__*/_react.default.createElement("div", {
239
248
  className: _consts.RendererCssClassName.SORTABLE_COLUMN_BUTTON,
240
249
  role: "button",
@@ -253,6 +262,8 @@ var withSortableColumn = function withSortableColumn(WrapperComponent) {
253
262
  }]);
254
263
  return WithSortableColumn;
255
264
  }(_react.default.Component);
265
+
266
+ return (0, _reactIntlNext.injectIntl)(WithSortableColumn);
256
267
  };
257
268
 
258
269
  exports.withSortableColumn = withSortableColumn;
@@ -35,7 +35,7 @@ var _react = _interopRequireWildcard(require("react"));
35
35
 
36
36
  var _taskDecision = require("@atlaskit/task-decision");
37
37
 
38
- var _excluded = ["contextIdentifierProvider", "objectAri"];
38
+ var _excluded = ["contextIdentifierProvider", "objectAri", "isRenderer"];
39
39
 
40
40
  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); }
41
41
 
@@ -140,10 +140,12 @@ var TaskItemWithProviders = /*#__PURE__*/function (_Component) {
140
140
  var _this$props = this.props,
141
141
  contextIdentifierProvider = _this$props.contextIdentifierProvider,
142
142
  objectAri = _this$props.objectAri,
143
+ isRenderer = _this$props.isRenderer,
143
144
  otherProps = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
144
145
  var resolvedObjectId = this.state.resolvedContextProvider && this.state.resolvedContextProvider.objectId || objectAri;
145
146
  return /*#__PURE__*/_react.default.createElement(_taskDecision.ResourcedTaskItem, (0, _extends2.default)({}, otherProps, {
146
- objectAri: resolvedObjectId
147
+ objectAri: resolvedObjectId,
148
+ isRenderer: isRenderer
147
149
  }));
148
150
  }
149
151
  }]);
@@ -73,6 +73,7 @@ var TaskItem = /*#__PURE__*/function (_PureComponent) {
73
73
  objectAri: objectAri,
74
74
  taskId: localId,
75
75
  isDone: state === 'DONE',
76
+ isRenderer: true,
76
77
  disabled: disabled,
77
78
  taskDecisionProvider: taskDecisionProvider,
78
79
  contextIdentifierProvider: contextIdentifierProvider,
@@ -17,6 +17,8 @@ var _events = require("./analytics/events");
17
17
 
18
18
  var _unsupportedContent = require("./analytics/unsupported-content");
19
19
 
20
+ var _adfUtils = require("@atlaskit/adf-utils");
21
+
20
22
  var SUPPORTS_HIRES_TIMER_API = !!(window.performance && performance.now);
21
23
 
22
24
  var withStopwatch = function withStopwatch(cb) {
@@ -44,7 +46,21 @@ var renderDocument = function renderDocument(doc, serializer) {
44
46
 
45
47
  var _withStopwatch = withStopwatch(function () {
46
48
  if (useSpecBasedValidator) {
47
- return (0, _utils.validateADFEntity)(schema, doc, dispatchAnalyticsEvent);
49
+ // link mark on mediaSingle is deprecated, need to move link mark to child media node
50
+ // https://product-fabric.atlassian.net/browse/ED-14043
51
+ var _transformMediaLinkMa = (0, _adfUtils.transformMediaLinkMarks)(doc),
52
+ transformedAdf = _transformMediaLinkMa.transformedAdf,
53
+ isTransformed = _transformMediaLinkMa.isTransformed;
54
+
55
+ if (isTransformed && dispatchAnalyticsEvent) {
56
+ dispatchAnalyticsEvent({
57
+ action: _enums.ACTION.MEDIA_LINK_TRANSFORMED,
58
+ actionSubject: _enums.ACTION_SUBJECT.RENDERER,
59
+ eventType: _enums.EVENT_TYPE.OPERATIONAL
60
+ });
61
+ }
62
+
63
+ return (0, _utils.validateADFEntity)(schema, transformedAdf || doc, dispatchAnalyticsEvent);
48
64
  }
49
65
 
50
66
  return (0, _validator.getValidDocument)(doc, schema, adfStage);
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -48,13 +48,16 @@ var breakoutInlineScriptContext = "\n var breakoutConsts = ".concat(JSON.string
48
48
  exports.breakoutInlineScriptContext = breakoutInlineScriptContext;
49
49
 
50
50
  function applyBreakoutAfterSSR(id, allowDynamicTextSizing, breakoutConsts) {
51
- function findUp(element, selector) {
51
+ var MEDIA_NODE_TYPE = 'mediaSingle';
52
+ var WIDE_LAYOUT_MODES = ['full-width', 'wide'];
53
+
54
+ function findUp(element, condition) {
52
55
  if (!element) {
53
56
  return;
54
57
  }
55
58
 
56
59
  while (element.parentElement) {
57
- if (element.parentElement.classList.contains(selector)) {
60
+ if (condition(element)) {
58
61
  return element.parentElement;
59
62
  }
60
63
 
@@ -62,7 +65,11 @@ function applyBreakoutAfterSSR(id, allowDynamicTextSizing, breakoutConsts) {
62
65
  }
63
66
  }
64
67
 
65
- var renderer = findUp(document.querySelector('[data-breakout-script-id="' + id + '"]'), 'ak-renderer-wrapper');
68
+ var renderer = findUp(document.querySelector('[data-breakout-script-id="' + id + '"]'), function (elem) {
69
+ var _elem$parentElement;
70
+
71
+ return !!((_elem$parentElement = elem.parentElement) !== null && _elem$parentElement !== void 0 && _elem$parentElement.classList.contains('ak-renderer-wrapper'));
72
+ });
66
73
 
67
74
  if (!renderer) {
68
75
  return;
@@ -79,7 +86,7 @@ function applyBreakoutAfterSSR(id, allowDynamicTextSizing, breakoutConsts) {
79
86
  var node = maybeNode;
80
87
  var mode = node.dataset.mode || node.dataset.layout || '';
81
88
 
82
- if (!mode || !['full-width', 'wide'].includes(mode)) {
89
+ if (!mode || !WIDE_LAYOUT_MODES.includes(mode)) {
83
90
  return;
84
91
  }
85
92
 
@@ -102,9 +109,45 @@ function applyBreakoutAfterSSR(id, allowDynamicTextSizing, breakoutConsts) {
102
109
  }
103
110
  }
104
111
  });
112
+ } else if (
113
+ /**
114
+ * The mutation observer is only called once per added node.
115
+ * The above condition only deals with direct children of <div class="ak-renderer-document" />
116
+ * When it is initially called on the direct children, not all the sub children have loaded.
117
+ * So nested media elements which are not immediately loaded as sub children are not availabe in the above conditional.
118
+ * Thus adding this conditional to deal with all meida elements directly.
119
+ */
120
+ item.target.dataset.nodeType === MEDIA_NODE_TYPE) {
121
+ applyMediaBreakout(item.target);
105
122
  }
106
123
  });
107
124
  });
125
+
126
+ var applyMediaBreakout = function applyMediaBreakout(card) {
127
+ // width was already set by another breakout script
128
+ if (card.style.width) {
129
+ return;
130
+ }
131
+
132
+ var tableParent = findUp(card, function (elem) {
133
+ return elem instanceof HTMLTableCellElement;
134
+ }); // only apply the breakout to media elements not nested inside table
135
+ // table sizing is not based on percentage width
136
+
137
+ if (tableParent) {
138
+ return;
139
+ }
140
+
141
+ var mode = card.dataset.mode || card.dataset.layout || '';
142
+ var width = card.dataset.width;
143
+
144
+ if (WIDE_LAYOUT_MODES.includes(mode)) {
145
+ card.style.width = '100%';
146
+ } else if (width) {
147
+ card.style.width = "".concat(width, "%");
148
+ }
149
+ };
150
+
108
151
  observer.observe(renderer, {
109
152
  childList: true,
110
153
  subtree: true
@@ -259,6 +259,7 @@ var Renderer = /*#__PURE__*/function (_PureComponent) {
259
259
  allowMediaLinking: props.media && props.media.allowLinking,
260
260
  surroundTextNodesWithTextWrapper: allowAnnotationsDraftMode,
261
261
  media: props.media,
262
+ smartLinks: props.smartLinks,
262
263
  allowCopyToClipboard: props.allowCopyToClipboard,
263
264
  allowCustomPanels: props.allowCustomPanels,
264
265
  allowAnnotations: props.allowAnnotations,