@atlaskit/editor-core 187.14.7 → 187.14.8
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 +7 -0
- package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +17 -5
- package/dist/cjs/plugins/media/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +11 -7
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +17 -5
- package/dist/es2019/plugins/media/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +12 -8
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/plugins/media/nodeviews/mediaSingle.js +17 -5
- package/dist/esm/plugins/media/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +12 -8
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/plugins/media/nodeviews/mediaSingle.d.ts +6 -0
- package/dist/types/plugins/media/ui/ResizableMediaSingle/ResizableMediaSingleNext.d.ts +1 -0
- package/dist/types-ts4.5/plugins/media/nodeviews/mediaSingle.d.ts +6 -0
- package/dist/types-ts4.5/plugins/media/ui/ResizableMediaSingle/ResizableMediaSingleNext.d.ts +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @atlaskit/editor-core
|
|
2
2
|
|
|
3
|
+
## 187.14.8
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`8fe864e4f7a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8fe864e4f7a) - [ux] ED-19336: Fixed insert column button not visible when sticky header is enabled."
|
|
8
|
+
- [`4cbae03c15c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/4cbae03c15c) - Set maxWidth for ResizerNext to stop lable updating when reaching max width
|
|
9
|
+
|
|
3
10
|
## 187.14.7
|
|
4
11
|
|
|
5
12
|
### Patch Changes
|
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.default = exports.ReactMediaSingleNode = void 0;
|
|
9
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
10
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
11
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
13
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -247,11 +248,17 @@ var MediaSingleNode = /*#__PURE__*/function (_Component) {
|
|
|
247
248
|
}
|
|
248
249
|
(0, _captions.insertAndSelectCaptionFromMediaSinglePos)(getPos(), node)(view.state, view.dispatch);
|
|
249
250
|
});
|
|
250
|
-
|
|
251
|
+
/**
|
|
252
|
+
* Get parent width for a nested media single node
|
|
253
|
+
* @param view Editor view
|
|
254
|
+
* @param pos node position
|
|
255
|
+
* @param includeMoreParentNodeTypes should consider table and list as parent nodes(only true for new experience)
|
|
256
|
+
*/
|
|
257
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getLineLength", function (view, pos, includeMoreParentNodeTypes) {
|
|
251
258
|
if (typeof pos !== 'number') {
|
|
252
259
|
return null;
|
|
253
260
|
}
|
|
254
|
-
if ((0, _utils.isRichMediaInsideOfBlockNode)(view, pos)) {
|
|
261
|
+
if ((0, _utils.isRichMediaInsideOfBlockNode)(view, pos, includeMoreParentNodeTypes)) {
|
|
255
262
|
var $pos = view.state.doc.resolve(pos);
|
|
256
263
|
var domNode = view.nodeDOM($pos.pos);
|
|
257
264
|
if ($pos.nodeAfter && _utils.floatingLayouts.indexOf($pos.nodeAfter.attrs.layout) > -1 && domNode && domNode.parentElement) {
|
|
@@ -363,7 +370,8 @@ var MediaSingleNode = /*#__PURE__*/function (_Component) {
|
|
|
363
370
|
height = _mediaSingle.DEFAULT_IMAGE_HEIGHT;
|
|
364
371
|
}
|
|
365
372
|
var isSelected = selected();
|
|
366
|
-
var
|
|
373
|
+
var contentWidthForLegacyExperience = this.getLineLength(view, getPos()) || lineLength;
|
|
374
|
+
var contentWidth = this.getLineLength(view, getPos(), true) || lineLength;
|
|
367
375
|
var mediaSingleProps = {
|
|
368
376
|
layout: layout,
|
|
369
377
|
width: width,
|
|
@@ -378,7 +386,9 @@ var MediaSingleNode = /*#__PURE__*/function (_Component) {
|
|
|
378
386
|
widthType: widthType,
|
|
379
387
|
origWidth: width,
|
|
380
388
|
layout: layout,
|
|
381
|
-
|
|
389
|
+
// This will only be used when calculating legacy media single width
|
|
390
|
+
// thus we use the legecy value (exclude table as container node)
|
|
391
|
+
contentWidth: contentWidthForLegacyExperience,
|
|
382
392
|
containerWidth: containerWidth,
|
|
383
393
|
gutterOffset: _mediaSingle.MEDIA_SINGLE_GUTTER_SIZE
|
|
384
394
|
})
|
|
@@ -417,7 +427,9 @@ var MediaSingleNode = /*#__PURE__*/function (_Component) {
|
|
|
417
427
|
ref: this.captionPlaceHolderRef,
|
|
418
428
|
onClick: this.clickPlaceholder
|
|
419
429
|
}));
|
|
420
|
-
return canResize ? (0, _platformFeatureFlags.getBooleanFF)('platform.editor.media.extended-resize-experience') ? (0, _react.jsx)(_ResizableMediaSingleNext.default, ResizableMediaSingleProps, MediaChildren) : (0, _react.jsx)(_ResizableMediaSingle.default,
|
|
430
|
+
return canResize ? (0, _platformFeatureFlags.getBooleanFF)('platform.editor.media.extended-resize-experience') ? (0, _react.jsx)(_ResizableMediaSingleNext.default, ResizableMediaSingleProps, MediaChildren) : (0, _react.jsx)(_ResizableMediaSingle.default, (0, _extends2.default)({}, ResizableMediaSingleProps, {
|
|
431
|
+
lineLength: contentWidthForLegacyExperience
|
|
432
|
+
}), MediaChildren) : (0, _react.jsx)(_ui.MediaSingle, mediaSingleProps, MediaChildren);
|
|
421
433
|
}
|
|
422
434
|
}]);
|
|
423
435
|
return MediaSingleNode;
|
|
@@ -32,6 +32,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
32
32
|
var _styles = require("@atlaskit/editor-common/styles");
|
|
33
33
|
var _mediaSingle = require("@atlaskit/editor-common/media-single");
|
|
34
34
|
var _guideline = require("@atlaskit/editor-common/guideline");
|
|
35
|
+
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
35
36
|
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); }; }
|
|
36
37
|
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; } } /** @jsx jsx */
|
|
37
38
|
var resizerNextTestId = 'mediaSingle.resizerNext.testid';
|
|
@@ -142,6 +143,12 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
142
143
|
tr.setMeta('mediaSinglePlugin.isResizing', isResizing);
|
|
143
144
|
return dispatch(tr);
|
|
144
145
|
});
|
|
146
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "calcMaxWidth", (0, _memoizeOne.default)(function (contentWidth, containerWidth, fullWidthMode) {
|
|
147
|
+
if (_this.isNestedNode() || fullWidthMode) {
|
|
148
|
+
return contentWidth;
|
|
149
|
+
}
|
|
150
|
+
return (0, _mediaSingle.calcMediaSingleMaxWidth)(containerWidth);
|
|
151
|
+
}));
|
|
145
152
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updateActiveGuidelines", function () {
|
|
146
153
|
var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
147
154
|
var guidelines = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -214,9 +221,6 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
214
221
|
if (calculatedWidthWithLayout.layout !== layout) {
|
|
215
222
|
updateSize(width, calculatedWidthWithLayout.layout);
|
|
216
223
|
}
|
|
217
|
-
|
|
218
|
-
// TODO: Update once type updated from editor common resizer
|
|
219
|
-
return 0;
|
|
220
224
|
});
|
|
221
225
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleResizeStop", function (size, delta) {
|
|
222
226
|
var _this$props5 = _this.props,
|
|
@@ -243,9 +247,6 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
243
247
|
}, function () {
|
|
244
248
|
updateSize(width, calculatedWidthWithLayout.layout);
|
|
245
249
|
});
|
|
246
|
-
|
|
247
|
-
// TODO: Update once type updated from editor common resizer
|
|
248
|
-
return 0;
|
|
249
250
|
});
|
|
250
251
|
var initialWidth = props.mediaSingleWidth || _mediaSingle.DEFAULT_IMAGE_WIDTH;
|
|
251
252
|
_this.state = {
|
|
@@ -473,7 +474,8 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
473
474
|
fullWidthMode = _this$props8.fullWidthMode,
|
|
474
475
|
selected = _this$props8.selected,
|
|
475
476
|
children = _this$props8.children,
|
|
476
|
-
intl = _this$props8.intl
|
|
477
|
+
intl = _this$props8.intl,
|
|
478
|
+
lineLength = _this$props8.lineLength;
|
|
477
479
|
var _this$state = this.state,
|
|
478
480
|
isResizing = _this$state.isResizing,
|
|
479
481
|
size = _this$state.size;
|
|
@@ -495,6 +497,7 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
495
497
|
var resizerNextClassName = (0, _classnames.default)(className, _styles.resizerStyles);
|
|
496
498
|
var showSizeGuide = selected || isResizing;
|
|
497
499
|
var label = layout === 'full-width' ? intl.formatMessage(_resizableMediaSingleMessages.messages.fullWidthImage) : "".concat(this.state.size.width, " x ").concat(this.state.size.height);
|
|
500
|
+
var maxWidth = this.calcMaxWidth(lineLength, containerWidth, fullWidthMode);
|
|
498
501
|
return (0, _react2.jsx)("div", {
|
|
499
502
|
ref: this.saveWrapper,
|
|
500
503
|
css: (0, _styled.wrapperStyle)({
|
|
@@ -508,6 +511,7 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
508
511
|
})
|
|
509
512
|
}, (0, _react2.jsx)(_resizer.ResizerNext, {
|
|
510
513
|
minWidth: _mediaSingle.MEDIA_SINGLE_MIN_PIXEL_WIDTH,
|
|
514
|
+
maxWidth: maxWidth,
|
|
511
515
|
className: resizerNextClassName,
|
|
512
516
|
snapGap: _mediaSingle.MEDIA_SINGLE_SNAP_GAP,
|
|
513
517
|
enable: enable,
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.version = exports.nextMajorVersion = exports.name = void 0;
|
|
7
7
|
var name = "@atlaskit/editor-core";
|
|
8
8
|
exports.name = name;
|
|
9
|
-
var version = "187.14.
|
|
9
|
+
var version = "187.14.8";
|
|
10
10
|
exports.version = version;
|
|
11
11
|
var nextMajorVersion = function nextMajorVersion() {
|
|
12
12
|
return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
|
package/dist/cjs/version.json
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
1
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
3
|
/** @jsx jsx */
|
|
3
4
|
import { jsx } from '@emotion/react';
|
|
@@ -173,11 +174,17 @@ export default class MediaSingleNode extends Component {
|
|
|
173
174
|
}
|
|
174
175
|
insertAndSelectCaptionFromMediaSinglePos(getPos(), node)(view.state, view.dispatch);
|
|
175
176
|
});
|
|
176
|
-
|
|
177
|
+
/**
|
|
178
|
+
* Get parent width for a nested media single node
|
|
179
|
+
* @param view Editor view
|
|
180
|
+
* @param pos node position
|
|
181
|
+
* @param includeMoreParentNodeTypes should consider table and list as parent nodes(only true for new experience)
|
|
182
|
+
*/
|
|
183
|
+
_defineProperty(this, "getLineLength", (view, pos, includeMoreParentNodeTypes) => {
|
|
177
184
|
if (typeof pos !== 'number') {
|
|
178
185
|
return null;
|
|
179
186
|
}
|
|
180
|
-
if (isRichMediaInsideOfBlockNode(view, pos)) {
|
|
187
|
+
if (isRichMediaInsideOfBlockNode(view, pos, includeMoreParentNodeTypes)) {
|
|
181
188
|
const $pos = view.state.doc.resolve(pos);
|
|
182
189
|
const domNode = view.nodeDOM($pos.pos);
|
|
183
190
|
if ($pos.nodeAfter && floatingLayouts.indexOf($pos.nodeAfter.attrs.layout) > -1 && domNode && domNode.parentElement) {
|
|
@@ -270,7 +277,8 @@ export default class MediaSingleNode extends Component {
|
|
|
270
277
|
height = DEFAULT_IMAGE_HEIGHT;
|
|
271
278
|
}
|
|
272
279
|
const isSelected = selected();
|
|
273
|
-
const
|
|
280
|
+
const contentWidthForLegacyExperience = this.getLineLength(view, getPos()) || lineLength;
|
|
281
|
+
const contentWidth = this.getLineLength(view, getPos(), true) || lineLength;
|
|
274
282
|
const mediaSingleProps = {
|
|
275
283
|
layout,
|
|
276
284
|
width,
|
|
@@ -285,7 +293,9 @@ export default class MediaSingleNode extends Component {
|
|
|
285
293
|
widthType,
|
|
286
294
|
origWidth: width,
|
|
287
295
|
layout,
|
|
288
|
-
|
|
296
|
+
// This will only be used when calculating legacy media single width
|
|
297
|
+
// thus we use the legecy value (exclude table as container node)
|
|
298
|
+
contentWidth: contentWidthForLegacyExperience,
|
|
289
299
|
containerWidth,
|
|
290
300
|
gutterOffset: MEDIA_SINGLE_GUTTER_SIZE
|
|
291
301
|
})
|
|
@@ -327,7 +337,9 @@ export default class MediaSingleNode extends Component {
|
|
|
327
337
|
ref: this.captionPlaceHolderRef,
|
|
328
338
|
onClick: this.clickPlaceholder
|
|
329
339
|
}));
|
|
330
|
-
return canResize ? getBooleanFF('platform.editor.media.extended-resize-experience') ? jsx(ResizableMediaSingleNext, ResizableMediaSingleProps, MediaChildren) : jsx(ResizableMediaSingle,
|
|
340
|
+
return canResize ? getBooleanFF('platform.editor.media.extended-resize-experience') ? jsx(ResizableMediaSingleNext, ResizableMediaSingleProps, MediaChildren) : jsx(ResizableMediaSingle, _extends({}, ResizableMediaSingleProps, {
|
|
341
|
+
lineLength: contentWidthForLegacyExperience
|
|
342
|
+
}), MediaChildren) : jsx(MediaSingle, mediaSingleProps, MediaChildren);
|
|
331
343
|
}
|
|
332
344
|
}
|
|
333
345
|
_defineProperty(MediaSingleNode, "defaultProps", {
|
|
@@ -15,8 +15,9 @@ import { messages } from './resizable-media-single-messages';
|
|
|
15
15
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
16
16
|
import classnames from 'classnames';
|
|
17
17
|
import { richMediaClassName, resizerStyles } from '@atlaskit/editor-common/styles';
|
|
18
|
-
import { MEDIA_SINGLE_MIN_PIXEL_WIDTH, MEDIA_SINGLE_SNAP_GAP, calculateOffsetLeft, DEFAULT_IMAGE_WIDTH } from '@atlaskit/editor-common/media-single';
|
|
18
|
+
import { MEDIA_SINGLE_MIN_PIXEL_WIDTH, MEDIA_SINGLE_SNAP_GAP, calculateOffsetLeft, DEFAULT_IMAGE_WIDTH, calcMediaSingleMaxWidth } from '@atlaskit/editor-common/media-single';
|
|
19
19
|
import { findClosestSnap, getGuidelinesWithHighlights, generateDefaultGuidelines, generateDynamicGuidelines, getGuidelineSnaps } from '@atlaskit/editor-common/guideline';
|
|
20
|
+
import memoizeOne from 'memoize-one';
|
|
20
21
|
export const resizerNextTestId = 'mediaSingle.resizerNext.testid';
|
|
21
22
|
|
|
22
23
|
// TODO: Create new fixed image size event
|
|
@@ -127,6 +128,12 @@ class ResizableMediaSingleNext extends React.Component {
|
|
|
127
128
|
tr.setMeta('mediaSinglePlugin.isResizing', isResizing);
|
|
128
129
|
return dispatch(tr);
|
|
129
130
|
});
|
|
131
|
+
_defineProperty(this, "calcMaxWidth", memoizeOne((contentWidth, containerWidth, fullWidthMode) => {
|
|
132
|
+
if (this.isNestedNode() || fullWidthMode) {
|
|
133
|
+
return contentWidth;
|
|
134
|
+
}
|
|
135
|
+
return calcMediaSingleMaxWidth(containerWidth);
|
|
136
|
+
}));
|
|
130
137
|
_defineProperty(this, "updateActiveGuidelines", (width = 0, guidelines, guidelineSnapsReference) => {
|
|
131
138
|
if (guidelineSnapsReference.snaps.x) {
|
|
132
139
|
const {
|
|
@@ -192,9 +199,6 @@ class ResizableMediaSingleNext extends React.Component {
|
|
|
192
199
|
if (calculatedWidthWithLayout.layout !== layout) {
|
|
193
200
|
updateSize(width, calculatedWidthWithLayout.layout);
|
|
194
201
|
}
|
|
195
|
-
|
|
196
|
-
// TODO: Update once type updated from editor common resizer
|
|
197
|
-
return 0;
|
|
198
202
|
});
|
|
199
203
|
_defineProperty(this, "handleResizeStop", (size, delta) => {
|
|
200
204
|
const {
|
|
@@ -223,9 +227,6 @@ class ResizableMediaSingleNext extends React.Component {
|
|
|
223
227
|
}, () => {
|
|
224
228
|
updateSize(width, calculatedWidthWithLayout.layout);
|
|
225
229
|
});
|
|
226
|
-
|
|
227
|
-
// TODO: Update once type updated from editor common resizer
|
|
228
|
-
return 0;
|
|
229
230
|
});
|
|
230
231
|
const initialWidth = props.mediaSingleWidth || DEFAULT_IMAGE_WIDTH;
|
|
231
232
|
this.state = {
|
|
@@ -390,7 +391,8 @@ class ResizableMediaSingleNext extends React.Component {
|
|
|
390
391
|
fullWidthMode,
|
|
391
392
|
selected,
|
|
392
393
|
children,
|
|
393
|
-
intl
|
|
394
|
+
intl,
|
|
395
|
+
lineLength
|
|
394
396
|
} = this.props;
|
|
395
397
|
const {
|
|
396
398
|
isResizing,
|
|
@@ -414,6 +416,7 @@ class ResizableMediaSingleNext extends React.Component {
|
|
|
414
416
|
const resizerNextClassName = classnames(className, resizerStyles);
|
|
415
417
|
const showSizeGuide = selected || isResizing;
|
|
416
418
|
const label = layout === 'full-width' ? intl.formatMessage(messages.fullWidthImage) : `${this.state.size.width} x ${this.state.size.height}`;
|
|
419
|
+
const maxWidth = this.calcMaxWidth(lineLength, containerWidth, fullWidthMode);
|
|
417
420
|
return jsx("div", {
|
|
418
421
|
ref: this.saveWrapper,
|
|
419
422
|
css: wrapperStyle({
|
|
@@ -427,6 +430,7 @@ class ResizableMediaSingleNext extends React.Component {
|
|
|
427
430
|
})
|
|
428
431
|
}, jsx(ResizerNext, {
|
|
429
432
|
minWidth: MEDIA_SINGLE_MIN_PIXEL_WIDTH,
|
|
433
|
+
maxWidth: maxWidth,
|
|
430
434
|
className: resizerNextClassName,
|
|
431
435
|
snapGap: MEDIA_SINGLE_SNAP_GAP,
|
|
432
436
|
enable: enable,
|
package/dist/es2019/version.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _get from "@babel/runtime/helpers/get";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
3
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
4
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
4
5
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
@@ -238,11 +239,17 @@ var MediaSingleNode = /*#__PURE__*/function (_Component) {
|
|
|
238
239
|
}
|
|
239
240
|
insertAndSelectCaptionFromMediaSinglePos(getPos(), node)(view.state, view.dispatch);
|
|
240
241
|
});
|
|
241
|
-
|
|
242
|
+
/**
|
|
243
|
+
* Get parent width for a nested media single node
|
|
244
|
+
* @param view Editor view
|
|
245
|
+
* @param pos node position
|
|
246
|
+
* @param includeMoreParentNodeTypes should consider table and list as parent nodes(only true for new experience)
|
|
247
|
+
*/
|
|
248
|
+
_defineProperty(_assertThisInitialized(_this), "getLineLength", function (view, pos, includeMoreParentNodeTypes) {
|
|
242
249
|
if (typeof pos !== 'number') {
|
|
243
250
|
return null;
|
|
244
251
|
}
|
|
245
|
-
if (isRichMediaInsideOfBlockNode(view, pos)) {
|
|
252
|
+
if (isRichMediaInsideOfBlockNode(view, pos, includeMoreParentNodeTypes)) {
|
|
246
253
|
var $pos = view.state.doc.resolve(pos);
|
|
247
254
|
var domNode = view.nodeDOM($pos.pos);
|
|
248
255
|
if ($pos.nodeAfter && floatingLayouts.indexOf($pos.nodeAfter.attrs.layout) > -1 && domNode && domNode.parentElement) {
|
|
@@ -354,7 +361,8 @@ var MediaSingleNode = /*#__PURE__*/function (_Component) {
|
|
|
354
361
|
height = DEFAULT_IMAGE_HEIGHT;
|
|
355
362
|
}
|
|
356
363
|
var isSelected = selected();
|
|
357
|
-
var
|
|
364
|
+
var contentWidthForLegacyExperience = this.getLineLength(view, getPos()) || lineLength;
|
|
365
|
+
var contentWidth = this.getLineLength(view, getPos(), true) || lineLength;
|
|
358
366
|
var mediaSingleProps = {
|
|
359
367
|
layout: layout,
|
|
360
368
|
width: width,
|
|
@@ -369,7 +377,9 @@ var MediaSingleNode = /*#__PURE__*/function (_Component) {
|
|
|
369
377
|
widthType: widthType,
|
|
370
378
|
origWidth: width,
|
|
371
379
|
layout: layout,
|
|
372
|
-
|
|
380
|
+
// This will only be used when calculating legacy media single width
|
|
381
|
+
// thus we use the legecy value (exclude table as container node)
|
|
382
|
+
contentWidth: contentWidthForLegacyExperience,
|
|
373
383
|
containerWidth: containerWidth,
|
|
374
384
|
gutterOffset: MEDIA_SINGLE_GUTTER_SIZE
|
|
375
385
|
})
|
|
@@ -408,7 +418,9 @@ var MediaSingleNode = /*#__PURE__*/function (_Component) {
|
|
|
408
418
|
ref: this.captionPlaceHolderRef,
|
|
409
419
|
onClick: this.clickPlaceholder
|
|
410
420
|
}));
|
|
411
|
-
return canResize ? getBooleanFF('platform.editor.media.extended-resize-experience') ? jsx(ResizableMediaSingleNext, ResizableMediaSingleProps, MediaChildren) : jsx(ResizableMediaSingle,
|
|
421
|
+
return canResize ? getBooleanFF('platform.editor.media.extended-resize-experience') ? jsx(ResizableMediaSingleNext, ResizableMediaSingleProps, MediaChildren) : jsx(ResizableMediaSingle, _extends({}, ResizableMediaSingleProps, {
|
|
422
|
+
lineLength: contentWidthForLegacyExperience
|
|
423
|
+
}), MediaChildren) : jsx(MediaSingle, mediaSingleProps, MediaChildren);
|
|
412
424
|
}
|
|
413
425
|
}]);
|
|
414
426
|
return MediaSingleNode;
|
|
@@ -26,8 +26,9 @@ import { messages } from './resizable-media-single-messages';
|
|
|
26
26
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
27
27
|
import classnames from 'classnames';
|
|
28
28
|
import { richMediaClassName, resizerStyles } from '@atlaskit/editor-common/styles';
|
|
29
|
-
import { MEDIA_SINGLE_MIN_PIXEL_WIDTH, MEDIA_SINGLE_SNAP_GAP, calculateOffsetLeft, DEFAULT_IMAGE_WIDTH } from '@atlaskit/editor-common/media-single';
|
|
29
|
+
import { MEDIA_SINGLE_MIN_PIXEL_WIDTH, MEDIA_SINGLE_SNAP_GAP, calculateOffsetLeft, DEFAULT_IMAGE_WIDTH, calcMediaSingleMaxWidth } from '@atlaskit/editor-common/media-single';
|
|
30
30
|
import { findClosestSnap, getGuidelinesWithHighlights, generateDefaultGuidelines, generateDynamicGuidelines, getGuidelineSnaps } from '@atlaskit/editor-common/guideline';
|
|
31
|
+
import memoizeOne from 'memoize-one';
|
|
31
32
|
export var resizerNextTestId = 'mediaSingle.resizerNext.testid';
|
|
32
33
|
|
|
33
34
|
// TODO: Create new fixed image size event
|
|
@@ -135,6 +136,12 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
135
136
|
tr.setMeta('mediaSinglePlugin.isResizing', isResizing);
|
|
136
137
|
return dispatch(tr);
|
|
137
138
|
});
|
|
139
|
+
_defineProperty(_assertThisInitialized(_this), "calcMaxWidth", memoizeOne(function (contentWidth, containerWidth, fullWidthMode) {
|
|
140
|
+
if (_this.isNestedNode() || fullWidthMode) {
|
|
141
|
+
return contentWidth;
|
|
142
|
+
}
|
|
143
|
+
return calcMediaSingleMaxWidth(containerWidth);
|
|
144
|
+
}));
|
|
138
145
|
_defineProperty(_assertThisInitialized(_this), "updateActiveGuidelines", function () {
|
|
139
146
|
var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
140
147
|
var guidelines = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -207,9 +214,6 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
207
214
|
if (calculatedWidthWithLayout.layout !== layout) {
|
|
208
215
|
updateSize(width, calculatedWidthWithLayout.layout);
|
|
209
216
|
}
|
|
210
|
-
|
|
211
|
-
// TODO: Update once type updated from editor common resizer
|
|
212
|
-
return 0;
|
|
213
217
|
});
|
|
214
218
|
_defineProperty(_assertThisInitialized(_this), "handleResizeStop", function (size, delta) {
|
|
215
219
|
var _this$props5 = _this.props,
|
|
@@ -236,9 +240,6 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
236
240
|
}, function () {
|
|
237
241
|
updateSize(width, calculatedWidthWithLayout.layout);
|
|
238
242
|
});
|
|
239
|
-
|
|
240
|
-
// TODO: Update once type updated from editor common resizer
|
|
241
|
-
return 0;
|
|
242
243
|
});
|
|
243
244
|
var initialWidth = props.mediaSingleWidth || DEFAULT_IMAGE_WIDTH;
|
|
244
245
|
_this.state = {
|
|
@@ -466,7 +467,8 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
466
467
|
fullWidthMode = _this$props8.fullWidthMode,
|
|
467
468
|
selected = _this$props8.selected,
|
|
468
469
|
children = _this$props8.children,
|
|
469
|
-
intl = _this$props8.intl
|
|
470
|
+
intl = _this$props8.intl,
|
|
471
|
+
lineLength = _this$props8.lineLength;
|
|
470
472
|
var _this$state = this.state,
|
|
471
473
|
isResizing = _this$state.isResizing,
|
|
472
474
|
size = _this$state.size;
|
|
@@ -488,6 +490,7 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
488
490
|
var resizerNextClassName = classnames(className, resizerStyles);
|
|
489
491
|
var showSizeGuide = selected || isResizing;
|
|
490
492
|
var label = layout === 'full-width' ? intl.formatMessage(messages.fullWidthImage) : "".concat(this.state.size.width, " x ").concat(this.state.size.height);
|
|
493
|
+
var maxWidth = this.calcMaxWidth(lineLength, containerWidth, fullWidthMode);
|
|
491
494
|
return jsx("div", {
|
|
492
495
|
ref: this.saveWrapper,
|
|
493
496
|
css: wrapperStyle({
|
|
@@ -501,6 +504,7 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
501
504
|
})
|
|
502
505
|
}, jsx(ResizerNext, {
|
|
503
506
|
minWidth: MEDIA_SINGLE_MIN_PIXEL_WIDTH,
|
|
507
|
+
maxWidth: maxWidth,
|
|
504
508
|
className: resizerNextClassName,
|
|
505
509
|
snapGap: MEDIA_SINGLE_SNAP_GAP,
|
|
506
510
|
enable: enable,
|
package/dist/esm/version.json
CHANGED
|
@@ -41,6 +41,12 @@ export default class MediaSingleNode extends Component<MediaSingleNodeProps, Med
|
|
|
41
41
|
onMediaSingleClicked: (event: MouseEvent) => void;
|
|
42
42
|
render(): jsx.JSX.Element;
|
|
43
43
|
private clickPlaceholder;
|
|
44
|
+
/**
|
|
45
|
+
* Get parent width for a nested media single node
|
|
46
|
+
* @param view Editor view
|
|
47
|
+
* @param pos node position
|
|
48
|
+
* @param includeMoreParentNodeTypes should consider table and list as parent nodes(only true for new experience)
|
|
49
|
+
*/
|
|
44
50
|
private getLineLength;
|
|
45
51
|
}
|
|
46
52
|
declare class MediaSingleNodeView extends ReactNodeView<MediaSingleNodeViewProps> {
|
|
@@ -54,6 +54,7 @@ declare class ResizableMediaSingleNext extends React.Component<ResizableMediaSin
|
|
|
54
54
|
private saveWrapper;
|
|
55
55
|
private displayGuideline;
|
|
56
56
|
private setIsResizing;
|
|
57
|
+
private calcMaxWidth;
|
|
57
58
|
updateActiveGuidelines: (width: number | undefined, guidelines: GuidelineConfig[], guidelineSnapsReference: GuidelineSnapsReference) => void;
|
|
58
59
|
roundPixelValue: (value: number) => number;
|
|
59
60
|
getHeightFromNewWidth: (originalWidth: number, originalHeight: number, newWidth: number) => number;
|
|
@@ -41,6 +41,12 @@ export default class MediaSingleNode extends Component<MediaSingleNodeProps, Med
|
|
|
41
41
|
onMediaSingleClicked: (event: MouseEvent) => void;
|
|
42
42
|
render(): jsx.JSX.Element;
|
|
43
43
|
private clickPlaceholder;
|
|
44
|
+
/**
|
|
45
|
+
* Get parent width for a nested media single node
|
|
46
|
+
* @param view Editor view
|
|
47
|
+
* @param pos node position
|
|
48
|
+
* @param includeMoreParentNodeTypes should consider table and list as parent nodes(only true for new experience)
|
|
49
|
+
*/
|
|
44
50
|
private getLineLength;
|
|
45
51
|
}
|
|
46
52
|
declare class MediaSingleNodeView extends ReactNodeView<MediaSingleNodeViewProps> {
|
package/dist/types-ts4.5/plugins/media/ui/ResizableMediaSingle/ResizableMediaSingleNext.d.ts
CHANGED
|
@@ -54,6 +54,7 @@ declare class ResizableMediaSingleNext extends React.Component<ResizableMediaSin
|
|
|
54
54
|
private saveWrapper;
|
|
55
55
|
private displayGuideline;
|
|
56
56
|
private setIsResizing;
|
|
57
|
+
private calcMaxWidth;
|
|
57
58
|
updateActiveGuidelines: (width: number | undefined, guidelines: GuidelineConfig[], guidelineSnapsReference: GuidelineSnapsReference) => void;
|
|
58
59
|
roundPixelValue: (value: number) => number;
|
|
59
60
|
getHeightFromNewWidth: (originalWidth: number, originalHeight: number, newWidth: number) => number;
|