@atlaskit/editor-common 88.11.0 → 88.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/cjs/analytics/types/enums.js +1 -0
- package/dist/cjs/insert/index.js +27 -1
- package/dist/cjs/media-single/CommentBadgeNext.js +61 -0
- package/dist/cjs/media-single/ExternalImageBadge.js +5 -48
- package/dist/cjs/media-single/MediaBadges.js +76 -0
- package/dist/cjs/media-single/index.js +15 -1
- package/dist/cjs/messages/insert-block.js +10 -0
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui/MediaSingle/styled.js +1 -1
- package/dist/es2019/analytics/types/enums.js +1 -0
- package/dist/es2019/insert/index.js +30 -1
- package/dist/es2019/media-single/CommentBadgeNext.js +51 -0
- package/dist/es2019/media-single/ExternalImageBadge.js +5 -40
- package/dist/es2019/media-single/MediaBadges.js +63 -0
- package/dist/es2019/media-single/index.js +3 -1
- package/dist/es2019/messages/insert-block.js +10 -0
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui/MediaSingle/styled.js +2 -1
- package/dist/esm/analytics/types/enums.js +1 -0
- package/dist/esm/insert/index.js +27 -1
- package/dist/esm/media-single/CommentBadgeNext.js +51 -0
- package/dist/esm/media-single/ExternalImageBadge.js +5 -45
- package/dist/esm/media-single/MediaBadges.js +66 -0
- package/dist/esm/media-single/index.js +3 -1
- package/dist/esm/messages/insert-block.js +10 -0
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui/MediaSingle/styled.js +1 -1
- package/dist/types/analytics/types/enums.d.ts +1 -0
- package/dist/types/media-single/CommentBadgeNext.d.ts +11 -0
- package/dist/types/media-single/ExternalImageBadge.d.ts +2 -5
- package/dist/types/media-single/MediaBadges.d.ts +12 -0
- package/dist/types/media-single/index.d.ts +2 -0
- package/dist/types/messages/insert-block.d.ts +10 -0
- package/dist/types-ts4.5/analytics/types/enums.d.ts +1 -0
- package/dist/types-ts4.5/media-single/CommentBadgeNext.d.ts +11 -0
- package/dist/types-ts4.5/media-single/ExternalImageBadge.d.ts +2 -5
- package/dist/types-ts4.5/media-single/MediaBadges.d.ts +12 -0
- package/dist/types-ts4.5/media-single/index.d.ts +2 -0
- package/dist/types-ts4.5/messages/insert-block.d.ts +10 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 88.12.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#137821](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/137821)
|
|
8
|
+
[`e26174c7d02a6`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/e26174c7d02a6) -
|
|
9
|
+
ED-24631 Refactor how ExternalImageBadge and CommentBadge are rendered
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#138136](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/138136)
|
|
14
|
+
[`35938ecf46ba7`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/35938ecf46ba7) -
|
|
15
|
+
[ED-24755] Implement insert functionality of element templates and fire document inserted event
|
|
16
|
+
with template IDs
|
|
17
|
+
- [#138270](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/138270)
|
|
18
|
+
[`0acb3673d32d9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/0acb3673d32d9) -
|
|
19
|
+
Add insert menu to right rail for experiment
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
|
|
3
22
|
## 88.11.0
|
|
4
23
|
|
|
5
24
|
### Minor Changes
|
|
@@ -169,6 +169,7 @@ var INPUT_METHOD = exports.INPUT_METHOD = /*#__PURE__*/function (INPUT_METHOD) {
|
|
|
169
169
|
INPUT_METHOD["FLOATING_TB"] = "floatingToolbar";
|
|
170
170
|
INPUT_METHOD["FORMATTING"] = "autoformatting";
|
|
171
171
|
INPUT_METHOD["INSERT_MENU"] = "insertMenu";
|
|
172
|
+
INPUT_METHOD["INSERT_MENU_RIGHT_RAIL"] = "insertMenuRightRail";
|
|
172
173
|
INPUT_METHOD["KEYBOARD"] = "keyboard";
|
|
173
174
|
INPUT_METHOD["MEDIA_PICKER"] = "mediaPicker";
|
|
174
175
|
INPUT_METHOD["MACRO_BROWSER"] = "macroBrowser";
|
package/dist/cjs/insert/index.js
CHANGED
|
@@ -246,6 +246,20 @@ var insertSelectedItem = exports.insertSelectedItem = function insertSelectedIte
|
|
|
246
246
|
*/
|
|
247
247
|
} else if (node instanceof _model.Node && node.isInline || isInputFragment) {
|
|
248
248
|
var fragment = isInputFragment ? node : _model.Fragment.fromArray([node, state.schema.text(' ')]);
|
|
249
|
+
|
|
250
|
+
// For platform_editor_element_level_templates experiment only
|
|
251
|
+
// clean up ticket ED-24873
|
|
252
|
+
// @ts-ignore
|
|
253
|
+
if (opts.isTemplate) {
|
|
254
|
+
return insertTemplateFragment({
|
|
255
|
+
fragment: fragment,
|
|
256
|
+
tr: tr,
|
|
257
|
+
position: {
|
|
258
|
+
start: start,
|
|
259
|
+
end: start
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}
|
|
249
263
|
tr = tr.replaceWith(start, start, fragment);
|
|
250
264
|
if (opts.selectInlineNode) {
|
|
251
265
|
// Select inserted node
|
|
@@ -291,4 +305,16 @@ function contentAllowedInCodeBlock(state) {
|
|
|
291
305
|
return isAllowedChild = node.type === state.schema.nodes.listItem || node.type === state.schema.nodes.bulletList || node.type === state.schema.nodes.orderedList || node.type === state.schema.nodes.paragraph || node.isInline || node.type === state.schema.nodes.panel || node.isText;
|
|
292
306
|
});
|
|
293
307
|
return isAllowedChild;
|
|
294
|
-
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// For platform_editor_element_level_templates experiment only
|
|
311
|
+
// clean up ticket ED-24873
|
|
312
|
+
var insertTemplateFragment = function insertTemplateFragment(_ref3) {
|
|
313
|
+
var fragment = _ref3.fragment,
|
|
314
|
+
tr = _ref3.tr,
|
|
315
|
+
position = _ref3.position;
|
|
316
|
+
var start = position.start;
|
|
317
|
+
var trWithInsert = (0, _utils.safeInsert)(fragment, start)(tr);
|
|
318
|
+
tr.setSelection(trWithInsert.selection);
|
|
319
|
+
return tr;
|
|
320
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.CommentBadgeNext = void 0;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _reactIntlNext = require("react-intl-next");
|
|
11
|
+
var _comment = _interopRequireDefault(require("@atlaskit/icon/glyph/comment"));
|
|
12
|
+
var _primitives = require("@atlaskit/primitives");
|
|
13
|
+
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
14
|
+
var _media = require("../media");
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
|
+
var baseStyles = (0, _primitives.xcss)({
|
|
18
|
+
borderRadius: 'border.radius'
|
|
19
|
+
});
|
|
20
|
+
var smallBadgeStyles = (0, _primitives.xcss)({
|
|
21
|
+
height: 'space.200',
|
|
22
|
+
width: 'space.200'
|
|
23
|
+
});
|
|
24
|
+
var mediumBadgeStyles = (0, _primitives.xcss)({
|
|
25
|
+
height: 'space.300',
|
|
26
|
+
width: 'space.300'
|
|
27
|
+
});
|
|
28
|
+
var CommentBadgeNext = exports.CommentBadgeNext = function CommentBadgeNext(_ref) {
|
|
29
|
+
var _ref$status = _ref.status,
|
|
30
|
+
status = _ref$status === void 0 ? 'default' : _ref$status,
|
|
31
|
+
onClick = _ref.onClick,
|
|
32
|
+
onMouseEnter = _ref.onMouseEnter,
|
|
33
|
+
onMouseLeave = _ref.onMouseLeave,
|
|
34
|
+
badgeSize = _ref.badgeSize;
|
|
35
|
+
var intl = (0, _reactIntlNext.useIntl)();
|
|
36
|
+
var title = intl.formatMessage(_media.commentMessages.viewCommentsOnMedia);
|
|
37
|
+
var colourToken = (0, _react.useMemo)(function () {
|
|
38
|
+
switch (status) {
|
|
39
|
+
case 'active':
|
|
40
|
+
return 'color.background.accent.yellow.subtlest.pressed';
|
|
41
|
+
case 'entered':
|
|
42
|
+
return 'color.background.accent.yellow.subtlest.hovered';
|
|
43
|
+
default:
|
|
44
|
+
return 'color.background.accent.yellow.subtlest';
|
|
45
|
+
}
|
|
46
|
+
}, [status]);
|
|
47
|
+
return /*#__PURE__*/_react.default.createElement(_tooltip.default, {
|
|
48
|
+
position: "top",
|
|
49
|
+
content: title
|
|
50
|
+
}, /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
|
|
51
|
+
xcss: [baseStyles, badgeSize === 'medium' ? mediumBadgeStyles : smallBadgeStyles],
|
|
52
|
+
padding: "space.0",
|
|
53
|
+
onClick: onClick,
|
|
54
|
+
onMouseEnter: onMouseEnter,
|
|
55
|
+
onMouseLeave: onMouseLeave,
|
|
56
|
+
backgroundColor: colourToken
|
|
57
|
+
}, /*#__PURE__*/_react.default.createElement(_comment.default, {
|
|
58
|
+
label: title,
|
|
59
|
+
size: badgeSize
|
|
60
|
+
})));
|
|
61
|
+
};
|
|
@@ -1,76 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.ExternalImageBadge = void 0;
|
|
9
|
-
var
|
|
10
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
9
|
var _reactIntlNext = require("react-intl-next");
|
|
13
10
|
var _info = _interopRequireDefault(require("@atlaskit/icon/glyph/info"));
|
|
14
11
|
var _primitives = require("@atlaskit/primitives");
|
|
15
12
|
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
16
13
|
var _media = require("../media");
|
|
17
|
-
var _CommentBadge = require("./CommentBadge");
|
|
18
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
19
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
14
|
var baseStyles = (0, _primitives.xcss)({
|
|
21
|
-
position: 'absolute',
|
|
22
|
-
top: 'space.025',
|
|
23
15
|
borderRadius: 'border.radius',
|
|
24
16
|
backgroundColor: 'elevation.surface',
|
|
25
|
-
zIndex: 'tooltip',
|
|
26
17
|
lineHeight: "var(--ds-space-200, 16px)",
|
|
27
|
-
right: 'var(--right-offset)',
|
|
28
18
|
cursor: 'pointer'
|
|
29
19
|
});
|
|
30
20
|
var ExternalImageBadge = exports.ExternalImageBadge = function ExternalImageBadge(_ref) {
|
|
31
|
-
var
|
|
32
|
-
mediaHeight = _ref.mediaHeight,
|
|
33
|
-
_ref$commentBadgeRigh = _ref.commentBadgeRightOffset,
|
|
34
|
-
commentBadgeRightOffset = _ref$commentBadgeRigh === void 0 ? 0 : _ref$commentBadgeRigh,
|
|
35
|
-
mediaElement = _ref.mediaElement;
|
|
21
|
+
var badgeSize = _ref.badgeSize;
|
|
36
22
|
var intl = (0, _reactIntlNext.useIntl)();
|
|
37
23
|
var message = intl.formatMessage(_media.externalMediaMessages.externalMediaFile);
|
|
38
|
-
|
|
39
|
-
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
40
|
-
badgeSize = _useState2[0],
|
|
41
|
-
setBadgeSize = _useState2[1];
|
|
42
|
-
// detect resize of media element to adjust badge size
|
|
43
|
-
// will combine with the comment badge resize observer when refactoring in the future to avoid multiple resize observers
|
|
44
|
-
(0, _react.useEffect)(function () {
|
|
45
|
-
var observer = new ResizeObserver((0, _debounce.default)(function (entries) {
|
|
46
|
-
var _entries = (0, _slicedToArray2.default)(entries, 1),
|
|
47
|
-
entry = _entries[0];
|
|
48
|
-
var _entry$contentRect = entry.contentRect,
|
|
49
|
-
width = _entry$contentRect.width,
|
|
50
|
-
height = _entry$contentRect.height;
|
|
51
|
-
setBadgeSize((0, _CommentBadge.getBadgeSize)(width, height));
|
|
52
|
-
}));
|
|
53
|
-
if (mediaElement) {
|
|
54
|
-
observer.observe(mediaElement);
|
|
55
|
-
}
|
|
56
|
-
return function () {
|
|
57
|
-
observer.disconnect();
|
|
58
|
-
};
|
|
59
|
-
}, [mediaElement]);
|
|
60
|
-
var baseRightOffset = badgeSize === 'medium' ? 4 : 2;
|
|
61
|
-
var rightOffset = baseRightOffset + commentBadgeRightOffset;
|
|
62
|
-
return /*#__PURE__*/_react.default.createElement(_primitives.Box
|
|
63
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
|
|
64
|
-
, {
|
|
65
|
-
style: {
|
|
66
|
-
'--right-offset': "".concat(rightOffset, "px")
|
|
67
|
-
},
|
|
24
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
68
25
|
padding: badgeSize === 'medium' ? 'space.050' : 'space.0',
|
|
69
|
-
"data-external-image-badge": "true",
|
|
70
26
|
xcss: baseStyles,
|
|
71
27
|
tabIndex: 0
|
|
72
28
|
}, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
|
|
73
|
-
content: message
|
|
29
|
+
content: message,
|
|
30
|
+
position: "top"
|
|
74
31
|
}, /*#__PURE__*/_react.default.createElement(_info.default, {
|
|
75
32
|
size: "small",
|
|
76
33
|
label: message
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.MediaBadges = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
12
|
+
var _primitives = require("@atlaskit/primitives");
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
+
var containerStyles = (0, _primitives.xcss)({
|
|
16
|
+
display: 'flex',
|
|
17
|
+
position: 'absolute',
|
|
18
|
+
top: 'space.0',
|
|
19
|
+
right: 'space.0',
|
|
20
|
+
lineHeight: "var(--ds-space-200, 16px)",
|
|
21
|
+
gap: 'space.025',
|
|
22
|
+
zIndex: 'card',
|
|
23
|
+
height: 'fit-content',
|
|
24
|
+
width: 'fit-content',
|
|
25
|
+
margin: 'space.075'
|
|
26
|
+
});
|
|
27
|
+
var resizeOffsetStyles = (0, _primitives.xcss)({
|
|
28
|
+
right: 'space.150'
|
|
29
|
+
});
|
|
30
|
+
var smallBadgeStyles = (0, _primitives.xcss)({
|
|
31
|
+
margin: 'space.025'
|
|
32
|
+
});
|
|
33
|
+
var getBadgeSize = function getBadgeSize(width, height) {
|
|
34
|
+
// width is the original width of image, not resized or currently rendered to user. Defaulting to medium for now
|
|
35
|
+
return width && width < 70 || height && height < 70 ? 'small' : 'medium';
|
|
36
|
+
};
|
|
37
|
+
var MediaBadges = exports.MediaBadges = function MediaBadges(_ref) {
|
|
38
|
+
var children = _ref.children,
|
|
39
|
+
mediaElement = _ref.mediaElement,
|
|
40
|
+
mediaWidth = _ref.mediaWidth,
|
|
41
|
+
mediaHeight = _ref.mediaHeight,
|
|
42
|
+
extendedResizeOffset = _ref.extendedResizeOffset;
|
|
43
|
+
var _useState = (0, _react.useState)(getBadgeSize(mediaWidth, mediaHeight)),
|
|
44
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
45
|
+
badgeSize = _useState2[0],
|
|
46
|
+
setBadgeSize = _useState2[1];
|
|
47
|
+
(0, _react.useEffect)(function () {
|
|
48
|
+
var observer = new ResizeObserver((0, _debounce.default)(function (entries) {
|
|
49
|
+
var _entries = (0, _slicedToArray2.default)(entries, 1),
|
|
50
|
+
entry = _entries[0];
|
|
51
|
+
var _entry$contentRect = entry.contentRect,
|
|
52
|
+
width = _entry$contentRect.width,
|
|
53
|
+
height = _entry$contentRect.height;
|
|
54
|
+
setBadgeSize(getBadgeSize(width, height));
|
|
55
|
+
}));
|
|
56
|
+
if (mediaElement) {
|
|
57
|
+
observer.observe(mediaElement);
|
|
58
|
+
}
|
|
59
|
+
return function () {
|
|
60
|
+
observer.disconnect();
|
|
61
|
+
};
|
|
62
|
+
}, [mediaElement]);
|
|
63
|
+
if (typeof children === 'function') {
|
|
64
|
+
children = children({
|
|
65
|
+
badgeSize: badgeSize
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
if (!mediaElement || _react.default.Children.count(children) === 0) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
72
|
+
testId: "media-badges",
|
|
73
|
+
"data-media-badges": "true",
|
|
74
|
+
xcss: [containerStyles, extendedResizeOffset && resizeOffsetStyles, badgeSize === 'small' && smallBadgeStyles]
|
|
75
|
+
}, children);
|
|
76
|
+
};
|
|
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "CommentBadge", {
|
|
|
15
15
|
return _CommentBadge.CommentBadge;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "CommentBadgeNext", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _CommentBadgeNext.CommentBadgeNext;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
18
24
|
Object.defineProperty(exports, "DEFAULT_IMAGE_HEIGHT", {
|
|
19
25
|
enumerable: true,
|
|
20
26
|
get: function get() {
|
|
@@ -69,6 +75,12 @@ Object.defineProperty(exports, "MEDIA_SINGLE_VIDEO_MIN_PIXEL_WIDTH", {
|
|
|
69
75
|
return _constants.MEDIA_SINGLE_VIDEO_MIN_PIXEL_WIDTH;
|
|
70
76
|
}
|
|
71
77
|
});
|
|
78
|
+
Object.defineProperty(exports, "MediaBadges", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function get() {
|
|
81
|
+
return _MediaBadges.MediaBadges;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
72
84
|
Object.defineProperty(exports, "MediaSingleLayout", {
|
|
73
85
|
enumerable: true,
|
|
74
86
|
get: function get() {
|
|
@@ -144,4 +156,6 @@ Object.defineProperty(exports, "wrappedLayouts", {
|
|
|
144
156
|
var _constants = require("./constants");
|
|
145
157
|
var _utils = require("./utils");
|
|
146
158
|
var _CommentBadge = require("./CommentBadge");
|
|
147
|
-
var
|
|
159
|
+
var _CommentBadgeNext = require("./CommentBadgeNext");
|
|
160
|
+
var _ExternalImageBadge = require("./ExternalImageBadge");
|
|
161
|
+
var _MediaBadges = require("./MediaBadges");
|
|
@@ -16,6 +16,11 @@ var toolbarInsertBlockMessages = exports.toolbarInsertBlockMessages = (0, _react
|
|
|
16
16
|
defaultMessage: 'Create and assign action items',
|
|
17
17
|
description: ''
|
|
18
18
|
},
|
|
19
|
+
closeInsertRightRail: {
|
|
20
|
+
id: 'fabric.editor.insertRightRail.close',
|
|
21
|
+
defaultMessage: 'Close',
|
|
22
|
+
description: 'Close button label'
|
|
23
|
+
},
|
|
19
24
|
link: {
|
|
20
25
|
id: 'fabric.editor.link',
|
|
21
26
|
defaultMessage: 'Link',
|
|
@@ -36,6 +41,11 @@ var toolbarInsertBlockMessages = exports.toolbarInsertBlockMessages = (0, _react
|
|
|
36
41
|
defaultMessage: 'Add image, video, or file',
|
|
37
42
|
description: 'Insert one or more files, videos or images'
|
|
38
43
|
},
|
|
44
|
+
insertRightRailTitle: {
|
|
45
|
+
id: 'fabric.editor.insertRightRail.title',
|
|
46
|
+
defaultMessage: 'Insert',
|
|
47
|
+
description: 'Insert a node into the document'
|
|
48
|
+
},
|
|
39
49
|
insertMediaFromUrl: {
|
|
40
50
|
id: 'fabric.editor.insertMediaFromUrl',
|
|
41
51
|
defaultMessage: 'Image from link',
|
|
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
|
|
|
17
17
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
18
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
19
19
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
20
|
-
var packageVersion = "88.
|
|
20
|
+
var packageVersion = "88.12.0";
|
|
21
21
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
22
22
|
// Remove URL as it has UGC
|
|
23
23
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -25,7 +25,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
25
25
|
* @jsx jsx
|
|
26
26
|
*/ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
27
27
|
var packageName = "@atlaskit/editor-common";
|
|
28
|
-
var packageVersion = "88.
|
|
28
|
+
var packageVersion = "88.12.0";
|
|
29
29
|
var halfFocusRing = 1;
|
|
30
30
|
var dropOffset = '0, 8';
|
|
31
31
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -211,7 +211,7 @@ var RenderFallbackContainer = function RenderFallbackContainer(_ref2) {
|
|
|
211
211
|
|
|
212
212
|
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Needs manual remediation
|
|
213
213
|
var mediaWrapperStyle = exports.mediaWrapperStyle = function mediaWrapperStyle(props) {
|
|
214
|
-
return (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n\tposition: relative;\n\n\t", "\n\n\t/* Editor */\n & > figure {\n\t\tposition: ", ";\n\t\theight: 100%;\n\t\twidth: 100%;\n\t}\n\n\t// Comments on media project adds comment badge as child of the media wrapper,\n\t// thus we need to exclude it so that style is applied to intended div\n\t& > div:not([data-comment-badge='true'], [data-
|
|
214
|
+
return (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n\tposition: relative;\n\n\t", "\n\n\t/* Editor */\n & > figure {\n\t\tposition: ", ";\n\t\theight: 100%;\n\t\twidth: 100%;\n\t}\n\n\t// Comments on media project adds comment badge as child of the media wrapper,\n\t// thus we need to exclude it so that style is applied to intended div\n\t// remove [data-comment-badge='true'] when ff platform_editor_insert_media_plugin_phase_one is cleaned up\n\t& > div:not([data-comment-badge='true'], [data-media-badges='true']) {\n\t\tposition: ", ";\n\t\theight: 100%;\n\t\twidth: 100%;\n\t}\n\n\t& * [data-mark-annotation-type='inlineComment'] {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n\n\t&[data-node-type='embedCard'] > div {\n\t\twidth: 100%;\n\t}\n\n\t/* Renderer */\n\t[data-node-type='media'] {\n\t\tposition: static !important;\n\n\t\t> div {\n\t\t\tposition: absolute;\n\t\t\theight: 100%;\n\t\t}\n\t}\n"])), RenderFallbackContainer(props), props.hasFallbackContainer ? 'absolute' : 'relative', props.hasFallbackContainer ? 'absolute' : 'relative');
|
|
215
215
|
};
|
|
216
216
|
var MediaWrapper = exports.MediaWrapper = function MediaWrapper(_ref3) {
|
|
217
217
|
var children = _ref3.children,
|
|
@@ -163,6 +163,7 @@ export let INPUT_METHOD = /*#__PURE__*/function (INPUT_METHOD) {
|
|
|
163
163
|
INPUT_METHOD["FLOATING_TB"] = "floatingToolbar";
|
|
164
164
|
INPUT_METHOD["FORMATTING"] = "autoformatting";
|
|
165
165
|
INPUT_METHOD["INSERT_MENU"] = "insertMenu";
|
|
166
|
+
INPUT_METHOD["INSERT_MENU_RIGHT_RAIL"] = "insertMenuRightRail";
|
|
166
167
|
INPUT_METHOD["KEYBOARD"] = "keyboard";
|
|
167
168
|
INPUT_METHOD["MEDIA_PICKER"] = "mediaPicker";
|
|
168
169
|
INPUT_METHOD["MACRO_BROWSER"] = "macroBrowser";
|
|
@@ -239,6 +239,20 @@ export const insertSelectedItem = (maybeNode, opts = {}) => (state, tr, start) =
|
|
|
239
239
|
*/
|
|
240
240
|
} else if (node instanceof Node && node.isInline || isInputFragment) {
|
|
241
241
|
const fragment = isInputFragment ? node : Fragment.fromArray([node, state.schema.text(' ')]);
|
|
242
|
+
|
|
243
|
+
// For platform_editor_element_level_templates experiment only
|
|
244
|
+
// clean up ticket ED-24873
|
|
245
|
+
// @ts-ignore
|
|
246
|
+
if (opts.isTemplate) {
|
|
247
|
+
return insertTemplateFragment({
|
|
248
|
+
fragment,
|
|
249
|
+
tr,
|
|
250
|
+
position: {
|
|
251
|
+
start,
|
|
252
|
+
end: start
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
}
|
|
242
256
|
tr = tr.replaceWith(start, start, fragment);
|
|
243
257
|
if (opts.selectInlineNode) {
|
|
244
258
|
// Select inserted node
|
|
@@ -285,4 +299,19 @@ export function contentAllowedInCodeBlock(state) {
|
|
|
285
299
|
return isAllowedChild = node.type === state.schema.nodes.listItem || node.type === state.schema.nodes.bulletList || node.type === state.schema.nodes.orderedList || node.type === state.schema.nodes.paragraph || node.isInline || node.type === state.schema.nodes.panel || node.isText;
|
|
286
300
|
});
|
|
287
301
|
return isAllowedChild;
|
|
288
|
-
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
// For platform_editor_element_level_templates experiment only
|
|
305
|
+
// clean up ticket ED-24873
|
|
306
|
+
const insertTemplateFragment = ({
|
|
307
|
+
fragment,
|
|
308
|
+
tr,
|
|
309
|
+
position
|
|
310
|
+
}) => {
|
|
311
|
+
const {
|
|
312
|
+
start
|
|
313
|
+
} = position;
|
|
314
|
+
const trWithInsert = pmSafeInsert(fragment, start)(tr);
|
|
315
|
+
tr.setSelection(trWithInsert.selection);
|
|
316
|
+
return tr;
|
|
317
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { useIntl } from 'react-intl-next';
|
|
3
|
+
import CommentIcon from '@atlaskit/icon/glyph/comment';
|
|
4
|
+
import { Pressable, xcss } from '@atlaskit/primitives';
|
|
5
|
+
import Tooltip from '@atlaskit/tooltip';
|
|
6
|
+
import { commentMessages as messages } from '../media';
|
|
7
|
+
const baseStyles = xcss({
|
|
8
|
+
borderRadius: 'border.radius'
|
|
9
|
+
});
|
|
10
|
+
const smallBadgeStyles = xcss({
|
|
11
|
+
height: 'space.200',
|
|
12
|
+
width: 'space.200'
|
|
13
|
+
});
|
|
14
|
+
const mediumBadgeStyles = xcss({
|
|
15
|
+
height: 'space.300',
|
|
16
|
+
width: 'space.300'
|
|
17
|
+
});
|
|
18
|
+
export const CommentBadgeNext = ({
|
|
19
|
+
status = 'default',
|
|
20
|
+
onClick,
|
|
21
|
+
onMouseEnter,
|
|
22
|
+
onMouseLeave,
|
|
23
|
+
badgeSize
|
|
24
|
+
}) => {
|
|
25
|
+
const intl = useIntl();
|
|
26
|
+
const title = intl.formatMessage(messages.viewCommentsOnMedia);
|
|
27
|
+
const colourToken = useMemo(() => {
|
|
28
|
+
switch (status) {
|
|
29
|
+
case 'active':
|
|
30
|
+
return 'color.background.accent.yellow.subtlest.pressed';
|
|
31
|
+
case 'entered':
|
|
32
|
+
return 'color.background.accent.yellow.subtlest.hovered';
|
|
33
|
+
default:
|
|
34
|
+
return 'color.background.accent.yellow.subtlest';
|
|
35
|
+
}
|
|
36
|
+
}, [status]);
|
|
37
|
+
return /*#__PURE__*/React.createElement(Tooltip, {
|
|
38
|
+
position: "top",
|
|
39
|
+
content: title
|
|
40
|
+
}, /*#__PURE__*/React.createElement(Pressable, {
|
|
41
|
+
xcss: [baseStyles, badgeSize === 'medium' ? mediumBadgeStyles : smallBadgeStyles],
|
|
42
|
+
padding: "space.0",
|
|
43
|
+
onClick: onClick,
|
|
44
|
+
onMouseEnter: onMouseEnter,
|
|
45
|
+
onMouseLeave: onMouseLeave,
|
|
46
|
+
backgroundColor: colourToken
|
|
47
|
+
}, /*#__PURE__*/React.createElement(CommentIcon, {
|
|
48
|
+
label: title,
|
|
49
|
+
size: badgeSize
|
|
50
|
+
})));
|
|
51
|
+
};
|
|
@@ -1,62 +1,27 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import debounce from 'lodash/debounce';
|
|
1
|
+
import React from 'react';
|
|
3
2
|
import { useIntl } from 'react-intl-next';
|
|
4
3
|
import InfoIcon from '@atlaskit/icon/glyph/info';
|
|
5
4
|
import { Box, xcss } from '@atlaskit/primitives';
|
|
6
5
|
import Tooltip from '@atlaskit/tooltip';
|
|
7
6
|
import { externalMediaMessages } from '../media';
|
|
8
|
-
import { getBadgeSize } from './CommentBadge';
|
|
9
7
|
const baseStyles = xcss({
|
|
10
|
-
position: 'absolute',
|
|
11
|
-
top: 'space.025',
|
|
12
8
|
borderRadius: 'border.radius',
|
|
13
9
|
backgroundColor: 'elevation.surface',
|
|
14
|
-
zIndex: 'tooltip',
|
|
15
10
|
lineHeight: "var(--ds-space-200, 16px)",
|
|
16
|
-
right: 'var(--right-offset)',
|
|
17
11
|
cursor: 'pointer'
|
|
18
12
|
});
|
|
19
13
|
export const ExternalImageBadge = ({
|
|
20
|
-
|
|
21
|
-
mediaHeight,
|
|
22
|
-
commentBadgeRightOffset = 0,
|
|
23
|
-
mediaElement
|
|
14
|
+
badgeSize
|
|
24
15
|
}) => {
|
|
25
16
|
const intl = useIntl();
|
|
26
17
|
const message = intl.formatMessage(externalMediaMessages.externalMediaFile);
|
|
27
|
-
|
|
28
|
-
// detect resize of media element to adjust badge size
|
|
29
|
-
// will combine with the comment badge resize observer when refactoring in the future to avoid multiple resize observers
|
|
30
|
-
useEffect(() => {
|
|
31
|
-
const observer = new ResizeObserver(debounce(entries => {
|
|
32
|
-
const [entry] = entries;
|
|
33
|
-
const {
|
|
34
|
-
width,
|
|
35
|
-
height
|
|
36
|
-
} = entry.contentRect;
|
|
37
|
-
setBadgeSize(getBadgeSize(width, height));
|
|
38
|
-
}));
|
|
39
|
-
if (mediaElement) {
|
|
40
|
-
observer.observe(mediaElement);
|
|
41
|
-
}
|
|
42
|
-
return () => {
|
|
43
|
-
observer.disconnect();
|
|
44
|
-
};
|
|
45
|
-
}, [mediaElement]);
|
|
46
|
-
const baseRightOffset = badgeSize === 'medium' ? 4 : 2;
|
|
47
|
-
const rightOffset = baseRightOffset + commentBadgeRightOffset;
|
|
48
|
-
return /*#__PURE__*/React.createElement(Box
|
|
49
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
|
|
50
|
-
, {
|
|
51
|
-
style: {
|
|
52
|
-
'--right-offset': `${rightOffset}px`
|
|
53
|
-
},
|
|
18
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
54
19
|
padding: badgeSize === 'medium' ? 'space.050' : 'space.0',
|
|
55
|
-
"data-external-image-badge": "true",
|
|
56
20
|
xcss: baseStyles,
|
|
57
21
|
tabIndex: 0
|
|
58
22
|
}, /*#__PURE__*/React.createElement(Tooltip, {
|
|
59
|
-
content: message
|
|
23
|
+
content: message,
|
|
24
|
+
position: "top"
|
|
60
25
|
}, /*#__PURE__*/React.createElement(InfoIcon, {
|
|
61
26
|
size: "small",
|
|
62
27
|
label: message
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import debounce from 'lodash/debounce';
|
|
3
|
+
import { Box, xcss } from '@atlaskit/primitives';
|
|
4
|
+
const containerStyles = xcss({
|
|
5
|
+
display: 'flex',
|
|
6
|
+
position: 'absolute',
|
|
7
|
+
top: 'space.0',
|
|
8
|
+
right: 'space.0',
|
|
9
|
+
lineHeight: "var(--ds-space-200, 16px)",
|
|
10
|
+
gap: 'space.025',
|
|
11
|
+
zIndex: 'card',
|
|
12
|
+
height: 'fit-content',
|
|
13
|
+
width: 'fit-content',
|
|
14
|
+
margin: 'space.075'
|
|
15
|
+
});
|
|
16
|
+
const resizeOffsetStyles = xcss({
|
|
17
|
+
right: 'space.150'
|
|
18
|
+
});
|
|
19
|
+
const smallBadgeStyles = xcss({
|
|
20
|
+
margin: 'space.025'
|
|
21
|
+
});
|
|
22
|
+
const getBadgeSize = (width, height) => {
|
|
23
|
+
// width is the original width of image, not resized or currently rendered to user. Defaulting to medium for now
|
|
24
|
+
return width && width < 70 || height && height < 70 ? 'small' : 'medium';
|
|
25
|
+
};
|
|
26
|
+
export const MediaBadges = ({
|
|
27
|
+
children,
|
|
28
|
+
mediaElement,
|
|
29
|
+
mediaWidth,
|
|
30
|
+
mediaHeight,
|
|
31
|
+
extendedResizeOffset
|
|
32
|
+
}) => {
|
|
33
|
+
const [badgeSize, setBadgeSize] = useState(getBadgeSize(mediaWidth, mediaHeight));
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
const observer = new ResizeObserver(debounce(entries => {
|
|
36
|
+
const [entry] = entries;
|
|
37
|
+
const {
|
|
38
|
+
width,
|
|
39
|
+
height
|
|
40
|
+
} = entry.contentRect;
|
|
41
|
+
setBadgeSize(getBadgeSize(width, height));
|
|
42
|
+
}));
|
|
43
|
+
if (mediaElement) {
|
|
44
|
+
observer.observe(mediaElement);
|
|
45
|
+
}
|
|
46
|
+
return () => {
|
|
47
|
+
observer.disconnect();
|
|
48
|
+
};
|
|
49
|
+
}, [mediaElement]);
|
|
50
|
+
if (typeof children === 'function') {
|
|
51
|
+
children = children({
|
|
52
|
+
badgeSize
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
if (!mediaElement || React.Children.count(children) === 0) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
59
|
+
testId: "media-badges",
|
|
60
|
+
"data-media-badges": "true",
|
|
61
|
+
xcss: [containerStyles, extendedResizeOffset && resizeOffsetStyles, badgeSize === 'small' && smallBadgeStyles]
|
|
62
|
+
}, children);
|
|
63
|
+
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { MEDIA_SINGLE_DEFAULT_MIN_PIXEL_WIDTH, MEDIA_SINGLE_VIDEO_MIN_PIXEL_WIDTH, MEDIA_SINGLE_SNAP_GAP, MEDIA_SINGLE_HIGHLIGHT_GAP, MEDIA_SINGLE_GUTTER_SIZE, MEDIA_SINGLE_RESIZE_THROTTLE_TIME, Layout as MediaSingleLayout, DEFAULT_IMAGE_WIDTH, DEFAULT_IMAGE_HEIGHT, wrappedLayouts, CAPTION_PLACEHOLDER_ID } from './constants';
|
|
2
2
|
export { getMediaSinglePixelWidth, calcMediaSinglePixelWidth, calcMediaSingleMaxWidth, getMediaSingleInitialWidth, calculateOffsetLeft, roundToNearest, calcMinWidth, getMaxWidthForNestedNode, getMaxWidthForNestedNodeNext, currentMediaNodeWithPos } from './utils';
|
|
3
3
|
export { CommentBadge } from './CommentBadge';
|
|
4
|
-
export {
|
|
4
|
+
export { CommentBadgeNext } from './CommentBadgeNext';
|
|
5
|
+
export { ExternalImageBadge } from './ExternalImageBadge';
|
|
6
|
+
export { MediaBadges } from './MediaBadges';
|
|
@@ -10,6 +10,11 @@ export const toolbarInsertBlockMessages = defineMessages({
|
|
|
10
10
|
defaultMessage: 'Create and assign action items',
|
|
11
11
|
description: ''
|
|
12
12
|
},
|
|
13
|
+
closeInsertRightRail: {
|
|
14
|
+
id: 'fabric.editor.insertRightRail.close',
|
|
15
|
+
defaultMessage: 'Close',
|
|
16
|
+
description: 'Close button label'
|
|
17
|
+
},
|
|
13
18
|
link: {
|
|
14
19
|
id: 'fabric.editor.link',
|
|
15
20
|
defaultMessage: 'Link',
|
|
@@ -30,6 +35,11 @@ export const toolbarInsertBlockMessages = defineMessages({
|
|
|
30
35
|
defaultMessage: 'Add image, video, or file',
|
|
31
36
|
description: 'Insert one or more files, videos or images'
|
|
32
37
|
},
|
|
38
|
+
insertRightRailTitle: {
|
|
39
|
+
id: 'fabric.editor.insertRightRail.title',
|
|
40
|
+
defaultMessage: 'Insert',
|
|
41
|
+
description: 'Insert a node into the document'
|
|
42
|
+
},
|
|
33
43
|
insertMediaFromUrl: {
|
|
34
44
|
id: 'fabric.editor.insertMediaFromUrl',
|
|
35
45
|
defaultMessage: 'Image from link',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isFedRamp } from './environment';
|
|
2
2
|
const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
3
3
|
const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
4
|
-
const packageVersion = "88.
|
|
4
|
+
const packageVersion = "88.12.0";
|
|
5
5
|
const sanitiseSentryEvents = (data, _hint) => {
|
|
6
6
|
// Remove URL as it has UGC
|
|
7
7
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -14,7 +14,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
|
14
14
|
import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
|
|
15
15
|
import Layer from '../Layer';
|
|
16
16
|
const packageName = "@atlaskit/editor-common";
|
|
17
|
-
const packageVersion = "88.
|
|
17
|
+
const packageVersion = "88.12.0";
|
|
18
18
|
const halfFocusRing = 1;
|
|
19
19
|
const dropOffset = '0, 8';
|
|
20
20
|
class DropList extends Component {
|
|
@@ -249,7 +249,8 @@ export const mediaWrapperStyle = props => css`
|
|
|
249
249
|
|
|
250
250
|
// Comments on media project adds comment badge as child of the media wrapper,
|
|
251
251
|
// thus we need to exclude it so that style is applied to intended div
|
|
252
|
-
|
|
252
|
+
// remove [data-comment-badge='true'] when ff platform_editor_insert_media_plugin_phase_one is cleaned up
|
|
253
|
+
& > div:not([data-comment-badge='true'], [data-media-badges='true']) {
|
|
253
254
|
position: ${props.hasFallbackContainer ? 'absolute' : 'relative'};
|
|
254
255
|
height: 100%;
|
|
255
256
|
width: 100%;
|
|
@@ -163,6 +163,7 @@ export var INPUT_METHOD = /*#__PURE__*/function (INPUT_METHOD) {
|
|
|
163
163
|
INPUT_METHOD["FLOATING_TB"] = "floatingToolbar";
|
|
164
164
|
INPUT_METHOD["FORMATTING"] = "autoformatting";
|
|
165
165
|
INPUT_METHOD["INSERT_MENU"] = "insertMenu";
|
|
166
|
+
INPUT_METHOD["INSERT_MENU_RIGHT_RAIL"] = "insertMenuRightRail";
|
|
166
167
|
INPUT_METHOD["KEYBOARD"] = "keyboard";
|
|
167
168
|
INPUT_METHOD["MEDIA_PICKER"] = "mediaPicker";
|
|
168
169
|
INPUT_METHOD["MACRO_BROWSER"] = "macroBrowser";
|
package/dist/esm/insert/index.js
CHANGED
|
@@ -237,6 +237,20 @@ export var insertSelectedItem = function insertSelectedItem(maybeNode) {
|
|
|
237
237
|
*/
|
|
238
238
|
} else if (node instanceof Node && node.isInline || isInputFragment) {
|
|
239
239
|
var fragment = isInputFragment ? node : Fragment.fromArray([node, state.schema.text(' ')]);
|
|
240
|
+
|
|
241
|
+
// For platform_editor_element_level_templates experiment only
|
|
242
|
+
// clean up ticket ED-24873
|
|
243
|
+
// @ts-ignore
|
|
244
|
+
if (opts.isTemplate) {
|
|
245
|
+
return insertTemplateFragment({
|
|
246
|
+
fragment: fragment,
|
|
247
|
+
tr: tr,
|
|
248
|
+
position: {
|
|
249
|
+
start: start,
|
|
250
|
+
end: start
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
}
|
|
240
254
|
tr = tr.replaceWith(start, start, fragment);
|
|
241
255
|
if (opts.selectInlineNode) {
|
|
242
256
|
// Select inserted node
|
|
@@ -282,4 +296,16 @@ export function contentAllowedInCodeBlock(state) {
|
|
|
282
296
|
return isAllowedChild = node.type === state.schema.nodes.listItem || node.type === state.schema.nodes.bulletList || node.type === state.schema.nodes.orderedList || node.type === state.schema.nodes.paragraph || node.isInline || node.type === state.schema.nodes.panel || node.isText;
|
|
283
297
|
});
|
|
284
298
|
return isAllowedChild;
|
|
285
|
-
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// For platform_editor_element_level_templates experiment only
|
|
302
|
+
// clean up ticket ED-24873
|
|
303
|
+
var insertTemplateFragment = function insertTemplateFragment(_ref3) {
|
|
304
|
+
var fragment = _ref3.fragment,
|
|
305
|
+
tr = _ref3.tr,
|
|
306
|
+
position = _ref3.position;
|
|
307
|
+
var start = position.start;
|
|
308
|
+
var trWithInsert = pmSafeInsert(fragment, start)(tr);
|
|
309
|
+
tr.setSelection(trWithInsert.selection);
|
|
310
|
+
return tr;
|
|
311
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { useIntl } from 'react-intl-next';
|
|
3
|
+
import CommentIcon from '@atlaskit/icon/glyph/comment';
|
|
4
|
+
import { Pressable, xcss } from '@atlaskit/primitives';
|
|
5
|
+
import Tooltip from '@atlaskit/tooltip';
|
|
6
|
+
import { commentMessages as messages } from '../media';
|
|
7
|
+
var baseStyles = xcss({
|
|
8
|
+
borderRadius: 'border.radius'
|
|
9
|
+
});
|
|
10
|
+
var smallBadgeStyles = xcss({
|
|
11
|
+
height: 'space.200',
|
|
12
|
+
width: 'space.200'
|
|
13
|
+
});
|
|
14
|
+
var mediumBadgeStyles = xcss({
|
|
15
|
+
height: 'space.300',
|
|
16
|
+
width: 'space.300'
|
|
17
|
+
});
|
|
18
|
+
export var CommentBadgeNext = function CommentBadgeNext(_ref) {
|
|
19
|
+
var _ref$status = _ref.status,
|
|
20
|
+
status = _ref$status === void 0 ? 'default' : _ref$status,
|
|
21
|
+
onClick = _ref.onClick,
|
|
22
|
+
onMouseEnter = _ref.onMouseEnter,
|
|
23
|
+
onMouseLeave = _ref.onMouseLeave,
|
|
24
|
+
badgeSize = _ref.badgeSize;
|
|
25
|
+
var intl = useIntl();
|
|
26
|
+
var title = intl.formatMessage(messages.viewCommentsOnMedia);
|
|
27
|
+
var colourToken = useMemo(function () {
|
|
28
|
+
switch (status) {
|
|
29
|
+
case 'active':
|
|
30
|
+
return 'color.background.accent.yellow.subtlest.pressed';
|
|
31
|
+
case 'entered':
|
|
32
|
+
return 'color.background.accent.yellow.subtlest.hovered';
|
|
33
|
+
default:
|
|
34
|
+
return 'color.background.accent.yellow.subtlest';
|
|
35
|
+
}
|
|
36
|
+
}, [status]);
|
|
37
|
+
return /*#__PURE__*/React.createElement(Tooltip, {
|
|
38
|
+
position: "top",
|
|
39
|
+
content: title
|
|
40
|
+
}, /*#__PURE__*/React.createElement(Pressable, {
|
|
41
|
+
xcss: [baseStyles, badgeSize === 'medium' ? mediumBadgeStyles : smallBadgeStyles],
|
|
42
|
+
padding: "space.0",
|
|
43
|
+
onClick: onClick,
|
|
44
|
+
onMouseEnter: onMouseEnter,
|
|
45
|
+
onMouseLeave: onMouseLeave,
|
|
46
|
+
backgroundColor: colourToken
|
|
47
|
+
}, /*#__PURE__*/React.createElement(CommentIcon, {
|
|
48
|
+
label: title,
|
|
49
|
+
size: badgeSize
|
|
50
|
+
})));
|
|
51
|
+
};
|
|
@@ -1,66 +1,26 @@
|
|
|
1
|
-
import
|
|
2
|
-
import React, { useEffect, useState } from 'react';
|
|
3
|
-
import debounce from 'lodash/debounce';
|
|
1
|
+
import React from 'react';
|
|
4
2
|
import { useIntl } from 'react-intl-next';
|
|
5
3
|
import InfoIcon from '@atlaskit/icon/glyph/info';
|
|
6
4
|
import { Box, xcss } from '@atlaskit/primitives';
|
|
7
5
|
import Tooltip from '@atlaskit/tooltip';
|
|
8
6
|
import { externalMediaMessages } from '../media';
|
|
9
|
-
import { getBadgeSize } from './CommentBadge';
|
|
10
7
|
var baseStyles = xcss({
|
|
11
|
-
position: 'absolute',
|
|
12
|
-
top: 'space.025',
|
|
13
8
|
borderRadius: 'border.radius',
|
|
14
9
|
backgroundColor: 'elevation.surface',
|
|
15
|
-
zIndex: 'tooltip',
|
|
16
10
|
lineHeight: "var(--ds-space-200, 16px)",
|
|
17
|
-
right: 'var(--right-offset)',
|
|
18
11
|
cursor: 'pointer'
|
|
19
12
|
});
|
|
20
13
|
export var ExternalImageBadge = function ExternalImageBadge(_ref) {
|
|
21
|
-
var
|
|
22
|
-
mediaHeight = _ref.mediaHeight,
|
|
23
|
-
_ref$commentBadgeRigh = _ref.commentBadgeRightOffset,
|
|
24
|
-
commentBadgeRightOffset = _ref$commentBadgeRigh === void 0 ? 0 : _ref$commentBadgeRigh,
|
|
25
|
-
mediaElement = _ref.mediaElement;
|
|
14
|
+
var badgeSize = _ref.badgeSize;
|
|
26
15
|
var intl = useIntl();
|
|
27
16
|
var message = intl.formatMessage(externalMediaMessages.externalMediaFile);
|
|
28
|
-
|
|
29
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
30
|
-
badgeSize = _useState2[0],
|
|
31
|
-
setBadgeSize = _useState2[1];
|
|
32
|
-
// detect resize of media element to adjust badge size
|
|
33
|
-
// will combine with the comment badge resize observer when refactoring in the future to avoid multiple resize observers
|
|
34
|
-
useEffect(function () {
|
|
35
|
-
var observer = new ResizeObserver(debounce(function (entries) {
|
|
36
|
-
var _entries = _slicedToArray(entries, 1),
|
|
37
|
-
entry = _entries[0];
|
|
38
|
-
var _entry$contentRect = entry.contentRect,
|
|
39
|
-
width = _entry$contentRect.width,
|
|
40
|
-
height = _entry$contentRect.height;
|
|
41
|
-
setBadgeSize(getBadgeSize(width, height));
|
|
42
|
-
}));
|
|
43
|
-
if (mediaElement) {
|
|
44
|
-
observer.observe(mediaElement);
|
|
45
|
-
}
|
|
46
|
-
return function () {
|
|
47
|
-
observer.disconnect();
|
|
48
|
-
};
|
|
49
|
-
}, [mediaElement]);
|
|
50
|
-
var baseRightOffset = badgeSize === 'medium' ? 4 : 2;
|
|
51
|
-
var rightOffset = baseRightOffset + commentBadgeRightOffset;
|
|
52
|
-
return /*#__PURE__*/React.createElement(Box
|
|
53
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
|
|
54
|
-
, {
|
|
55
|
-
style: {
|
|
56
|
-
'--right-offset': "".concat(rightOffset, "px")
|
|
57
|
-
},
|
|
17
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
58
18
|
padding: badgeSize === 'medium' ? 'space.050' : 'space.0',
|
|
59
|
-
"data-external-image-badge": "true",
|
|
60
19
|
xcss: baseStyles,
|
|
61
20
|
tabIndex: 0
|
|
62
21
|
}, /*#__PURE__*/React.createElement(Tooltip, {
|
|
63
|
-
content: message
|
|
22
|
+
content: message,
|
|
23
|
+
position: "top"
|
|
64
24
|
}, /*#__PURE__*/React.createElement(InfoIcon, {
|
|
65
25
|
size: "small",
|
|
66
26
|
label: message
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import React, { useEffect, useState } from 'react';
|
|
3
|
+
import debounce from 'lodash/debounce';
|
|
4
|
+
import { Box, xcss } from '@atlaskit/primitives';
|
|
5
|
+
var containerStyles = xcss({
|
|
6
|
+
display: 'flex',
|
|
7
|
+
position: 'absolute',
|
|
8
|
+
top: 'space.0',
|
|
9
|
+
right: 'space.0',
|
|
10
|
+
lineHeight: "var(--ds-space-200, 16px)",
|
|
11
|
+
gap: 'space.025',
|
|
12
|
+
zIndex: 'card',
|
|
13
|
+
height: 'fit-content',
|
|
14
|
+
width: 'fit-content',
|
|
15
|
+
margin: 'space.075'
|
|
16
|
+
});
|
|
17
|
+
var resizeOffsetStyles = xcss({
|
|
18
|
+
right: 'space.150'
|
|
19
|
+
});
|
|
20
|
+
var smallBadgeStyles = xcss({
|
|
21
|
+
margin: 'space.025'
|
|
22
|
+
});
|
|
23
|
+
var getBadgeSize = function getBadgeSize(width, height) {
|
|
24
|
+
// width is the original width of image, not resized or currently rendered to user. Defaulting to medium for now
|
|
25
|
+
return width && width < 70 || height && height < 70 ? 'small' : 'medium';
|
|
26
|
+
};
|
|
27
|
+
export var MediaBadges = function MediaBadges(_ref) {
|
|
28
|
+
var children = _ref.children,
|
|
29
|
+
mediaElement = _ref.mediaElement,
|
|
30
|
+
mediaWidth = _ref.mediaWidth,
|
|
31
|
+
mediaHeight = _ref.mediaHeight,
|
|
32
|
+
extendedResizeOffset = _ref.extendedResizeOffset;
|
|
33
|
+
var _useState = useState(getBadgeSize(mediaWidth, mediaHeight)),
|
|
34
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
35
|
+
badgeSize = _useState2[0],
|
|
36
|
+
setBadgeSize = _useState2[1];
|
|
37
|
+
useEffect(function () {
|
|
38
|
+
var observer = new ResizeObserver(debounce(function (entries) {
|
|
39
|
+
var _entries = _slicedToArray(entries, 1),
|
|
40
|
+
entry = _entries[0];
|
|
41
|
+
var _entry$contentRect = entry.contentRect,
|
|
42
|
+
width = _entry$contentRect.width,
|
|
43
|
+
height = _entry$contentRect.height;
|
|
44
|
+
setBadgeSize(getBadgeSize(width, height));
|
|
45
|
+
}));
|
|
46
|
+
if (mediaElement) {
|
|
47
|
+
observer.observe(mediaElement);
|
|
48
|
+
}
|
|
49
|
+
return function () {
|
|
50
|
+
observer.disconnect();
|
|
51
|
+
};
|
|
52
|
+
}, [mediaElement]);
|
|
53
|
+
if (typeof children === 'function') {
|
|
54
|
+
children = children({
|
|
55
|
+
badgeSize: badgeSize
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (!mediaElement || React.Children.count(children) === 0) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
62
|
+
testId: "media-badges",
|
|
63
|
+
"data-media-badges": "true",
|
|
64
|
+
xcss: [containerStyles, extendedResizeOffset && resizeOffsetStyles, badgeSize === 'small' && smallBadgeStyles]
|
|
65
|
+
}, children);
|
|
66
|
+
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { MEDIA_SINGLE_DEFAULT_MIN_PIXEL_WIDTH, MEDIA_SINGLE_VIDEO_MIN_PIXEL_WIDTH, MEDIA_SINGLE_SNAP_GAP, MEDIA_SINGLE_HIGHLIGHT_GAP, MEDIA_SINGLE_GUTTER_SIZE, MEDIA_SINGLE_RESIZE_THROTTLE_TIME, Layout as MediaSingleLayout, DEFAULT_IMAGE_WIDTH, DEFAULT_IMAGE_HEIGHT, wrappedLayouts, CAPTION_PLACEHOLDER_ID } from './constants';
|
|
2
2
|
export { getMediaSinglePixelWidth, calcMediaSinglePixelWidth, calcMediaSingleMaxWidth, getMediaSingleInitialWidth, calculateOffsetLeft, roundToNearest, calcMinWidth, getMaxWidthForNestedNode, getMaxWidthForNestedNodeNext, currentMediaNodeWithPos } from './utils';
|
|
3
3
|
export { CommentBadge } from './CommentBadge';
|
|
4
|
-
export {
|
|
4
|
+
export { CommentBadgeNext } from './CommentBadgeNext';
|
|
5
|
+
export { ExternalImageBadge } from './ExternalImageBadge';
|
|
6
|
+
export { MediaBadges } from './MediaBadges';
|
|
@@ -10,6 +10,11 @@ export var toolbarInsertBlockMessages = defineMessages({
|
|
|
10
10
|
defaultMessage: 'Create and assign action items',
|
|
11
11
|
description: ''
|
|
12
12
|
},
|
|
13
|
+
closeInsertRightRail: {
|
|
14
|
+
id: 'fabric.editor.insertRightRail.close',
|
|
15
|
+
defaultMessage: 'Close',
|
|
16
|
+
description: 'Close button label'
|
|
17
|
+
},
|
|
13
18
|
link: {
|
|
14
19
|
id: 'fabric.editor.link',
|
|
15
20
|
defaultMessage: 'Link',
|
|
@@ -30,6 +35,11 @@ export var toolbarInsertBlockMessages = defineMessages({
|
|
|
30
35
|
defaultMessage: 'Add image, video, or file',
|
|
31
36
|
description: 'Insert one or more files, videos or images'
|
|
32
37
|
},
|
|
38
|
+
insertRightRailTitle: {
|
|
39
|
+
id: 'fabric.editor.insertRightRail.title',
|
|
40
|
+
defaultMessage: 'Insert',
|
|
41
|
+
description: 'Insert a node into the document'
|
|
42
|
+
},
|
|
33
43
|
insertMediaFromUrl: {
|
|
34
44
|
id: 'fabric.editor.insertMediaFromUrl',
|
|
35
45
|
defaultMessage: 'Image from link',
|
|
@@ -7,7 +7,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
7
7
|
import { isFedRamp } from './environment';
|
|
8
8
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
9
9
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
10
|
-
var packageVersion = "88.
|
|
10
|
+
var packageVersion = "88.12.0";
|
|
11
11
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
12
12
|
// Remove URL as it has UGC
|
|
13
13
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -22,7 +22,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
|
22
22
|
import { N0, N50A, N60A, N900 } from '@atlaskit/theme/colors';
|
|
23
23
|
import Layer from '../Layer';
|
|
24
24
|
var packageName = "@atlaskit/editor-common";
|
|
25
|
-
var packageVersion = "88.
|
|
25
|
+
var packageVersion = "88.12.0";
|
|
26
26
|
var halfFocusRing = 1;
|
|
27
27
|
var dropOffset = '0, 8';
|
|
28
28
|
var DropList = /*#__PURE__*/function (_Component) {
|
|
@@ -201,7 +201,7 @@ var RenderFallbackContainer = function RenderFallbackContainer(_ref2) {
|
|
|
201
201
|
|
|
202
202
|
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Needs manual remediation
|
|
203
203
|
export var mediaWrapperStyle = function mediaWrapperStyle(props) {
|
|
204
|
-
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\tposition: relative;\n\n\t", "\n\n\t/* Editor */\n & > figure {\n\t\tposition: ", ";\n\t\theight: 100%;\n\t\twidth: 100%;\n\t}\n\n\t// Comments on media project adds comment badge as child of the media wrapper,\n\t// thus we need to exclude it so that style is applied to intended div\n\t& > div:not([data-comment-badge='true'], [data-
|
|
204
|
+
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\tposition: relative;\n\n\t", "\n\n\t/* Editor */\n & > figure {\n\t\tposition: ", ";\n\t\theight: 100%;\n\t\twidth: 100%;\n\t}\n\n\t// Comments on media project adds comment badge as child of the media wrapper,\n\t// thus we need to exclude it so that style is applied to intended div\n\t// remove [data-comment-badge='true'] when ff platform_editor_insert_media_plugin_phase_one is cleaned up\n\t& > div:not([data-comment-badge='true'], [data-media-badges='true']) {\n\t\tposition: ", ";\n\t\theight: 100%;\n\t\twidth: 100%;\n\t}\n\n\t& * [data-mark-annotation-type='inlineComment'] {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n\n\t&[data-node-type='embedCard'] > div {\n\t\twidth: 100%;\n\t}\n\n\t/* Renderer */\n\t[data-node-type='media'] {\n\t\tposition: static !important;\n\n\t\t> div {\n\t\t\tposition: absolute;\n\t\t\theight: 100%;\n\t\t}\n\t}\n"])), RenderFallbackContainer(props), props.hasFallbackContainer ? 'absolute' : 'relative', props.hasFallbackContainer ? 'absolute' : 'relative');
|
|
205
205
|
};
|
|
206
206
|
export var MediaWrapper = function MediaWrapper(_ref3) {
|
|
207
207
|
var children = _ref3.children,
|
|
@@ -169,6 +169,7 @@ export declare enum INPUT_METHOD {
|
|
|
169
169
|
FLOATING_TB = "floatingToolbar",
|
|
170
170
|
FORMATTING = "autoformatting",
|
|
171
171
|
INSERT_MENU = "insertMenu",
|
|
172
|
+
INSERT_MENU_RIGHT_RAIL = "insertMenuRightRail",
|
|
172
173
|
KEYBOARD = "keyboard",
|
|
173
174
|
MEDIA_PICKER = "mediaPicker",
|
|
174
175
|
MACRO_BROWSER = "macroBrowser",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type CommentBadgeProps = {
|
|
3
|
+
status?: 'default' | 'entered' | 'active';
|
|
4
|
+
mediaSingleElement?: HTMLElement | null;
|
|
5
|
+
onClick: (e: React.MouseEvent) => void;
|
|
6
|
+
onMouseEnter?: (e: React.MouseEvent) => void;
|
|
7
|
+
onMouseLeave?: (e: React.MouseEvent) => void;
|
|
8
|
+
badgeSize: 'small' | 'medium';
|
|
9
|
+
};
|
|
10
|
+
export declare const CommentBadgeNext: ({ status, onClick, onMouseEnter, onMouseLeave, badgeSize, }: CommentBadgeProps) => JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
type ExternalImageBadgeProps = {
|
|
3
|
-
|
|
4
|
-
commentBadgeRightOffset?: number;
|
|
5
|
-
mediaHeight?: number;
|
|
6
|
-
mediaWidth?: number;
|
|
3
|
+
badgeSize: 'medium' | 'small';
|
|
7
4
|
};
|
|
8
|
-
export declare const ExternalImageBadge: ({
|
|
5
|
+
export declare const ExternalImageBadge: ({ badgeSize }: ExternalImageBadgeProps) => JSX.Element;
|
|
9
6
|
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
type ExternalImageBadgeProps = {
|
|
3
|
+
mediaElement?: HTMLElement | null;
|
|
4
|
+
mediaHeight?: number;
|
|
5
|
+
mediaWidth?: number;
|
|
6
|
+
extendedResizeOffset?: boolean;
|
|
7
|
+
children: ReactNode | ((props: {
|
|
8
|
+
badgeSize: 'medium' | 'small';
|
|
9
|
+
}) => ReactNode);
|
|
10
|
+
};
|
|
11
|
+
export declare const MediaBadges: ({ children, mediaElement, mediaWidth, mediaHeight, extendedResizeOffset, }: ExternalImageBadgeProps) => JSX.Element | null;
|
|
12
|
+
export {};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { MEDIA_SINGLE_DEFAULT_MIN_PIXEL_WIDTH, MEDIA_SINGLE_VIDEO_MIN_PIXEL_WIDTH, MEDIA_SINGLE_SNAP_GAP, MEDIA_SINGLE_HIGHLIGHT_GAP, MEDIA_SINGLE_GUTTER_SIZE, MEDIA_SINGLE_RESIZE_THROTTLE_TIME, Layout as MediaSingleLayout, DEFAULT_IMAGE_WIDTH, DEFAULT_IMAGE_HEIGHT, wrappedLayouts, CAPTION_PLACEHOLDER_ID, } from './constants';
|
|
2
2
|
export { getMediaSinglePixelWidth, calcMediaSinglePixelWidth, calcMediaSingleMaxWidth, getMediaSingleInitialWidth, calculateOffsetLeft, roundToNearest, calcMinWidth, getMaxWidthForNestedNode, getMaxWidthForNestedNodeNext, currentMediaNodeWithPos, } from './utils';
|
|
3
3
|
export { CommentBadge } from './CommentBadge';
|
|
4
|
+
export { CommentBadgeNext } from './CommentBadgeNext';
|
|
4
5
|
export { ExternalImageBadge } from './ExternalImageBadge';
|
|
6
|
+
export { MediaBadges } from './MediaBadges';
|
|
5
7
|
export type { CommentBadgeProps } from './CommentBadge';
|
|
@@ -9,6 +9,11 @@ export declare const toolbarInsertBlockMessages: {
|
|
|
9
9
|
defaultMessage: string;
|
|
10
10
|
description: string;
|
|
11
11
|
};
|
|
12
|
+
closeInsertRightRail: {
|
|
13
|
+
id: string;
|
|
14
|
+
defaultMessage: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
12
17
|
link: {
|
|
13
18
|
id: string;
|
|
14
19
|
defaultMessage: string;
|
|
@@ -29,6 +34,11 @@ export declare const toolbarInsertBlockMessages: {
|
|
|
29
34
|
defaultMessage: string;
|
|
30
35
|
description: string;
|
|
31
36
|
};
|
|
37
|
+
insertRightRailTitle: {
|
|
38
|
+
id: string;
|
|
39
|
+
defaultMessage: string;
|
|
40
|
+
description: string;
|
|
41
|
+
};
|
|
32
42
|
insertMediaFromUrl: {
|
|
33
43
|
id: string;
|
|
34
44
|
defaultMessage: string;
|
|
@@ -169,6 +169,7 @@ export declare enum INPUT_METHOD {
|
|
|
169
169
|
FLOATING_TB = "floatingToolbar",
|
|
170
170
|
FORMATTING = "autoformatting",
|
|
171
171
|
INSERT_MENU = "insertMenu",
|
|
172
|
+
INSERT_MENU_RIGHT_RAIL = "insertMenuRightRail",
|
|
172
173
|
KEYBOARD = "keyboard",
|
|
173
174
|
MEDIA_PICKER = "mediaPicker",
|
|
174
175
|
MACRO_BROWSER = "macroBrowser",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type CommentBadgeProps = {
|
|
3
|
+
status?: 'default' | 'entered' | 'active';
|
|
4
|
+
mediaSingleElement?: HTMLElement | null;
|
|
5
|
+
onClick: (e: React.MouseEvent) => void;
|
|
6
|
+
onMouseEnter?: (e: React.MouseEvent) => void;
|
|
7
|
+
onMouseLeave?: (e: React.MouseEvent) => void;
|
|
8
|
+
badgeSize: 'small' | 'medium';
|
|
9
|
+
};
|
|
10
|
+
export declare const CommentBadgeNext: ({ status, onClick, onMouseEnter, onMouseLeave, badgeSize, }: CommentBadgeProps) => JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
type ExternalImageBadgeProps = {
|
|
3
|
-
|
|
4
|
-
commentBadgeRightOffset?: number;
|
|
5
|
-
mediaHeight?: number;
|
|
6
|
-
mediaWidth?: number;
|
|
3
|
+
badgeSize: 'medium' | 'small';
|
|
7
4
|
};
|
|
8
|
-
export declare const ExternalImageBadge: ({
|
|
5
|
+
export declare const ExternalImageBadge: ({ badgeSize }: ExternalImageBadgeProps) => JSX.Element;
|
|
9
6
|
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
type ExternalImageBadgeProps = {
|
|
3
|
+
mediaElement?: HTMLElement | null;
|
|
4
|
+
mediaHeight?: number;
|
|
5
|
+
mediaWidth?: number;
|
|
6
|
+
extendedResizeOffset?: boolean;
|
|
7
|
+
children: ReactNode | ((props: {
|
|
8
|
+
badgeSize: 'medium' | 'small';
|
|
9
|
+
}) => ReactNode);
|
|
10
|
+
};
|
|
11
|
+
export declare const MediaBadges: ({ children, mediaElement, mediaWidth, mediaHeight, extendedResizeOffset, }: ExternalImageBadgeProps) => JSX.Element | null;
|
|
12
|
+
export {};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { MEDIA_SINGLE_DEFAULT_MIN_PIXEL_WIDTH, MEDIA_SINGLE_VIDEO_MIN_PIXEL_WIDTH, MEDIA_SINGLE_SNAP_GAP, MEDIA_SINGLE_HIGHLIGHT_GAP, MEDIA_SINGLE_GUTTER_SIZE, MEDIA_SINGLE_RESIZE_THROTTLE_TIME, Layout as MediaSingleLayout, DEFAULT_IMAGE_WIDTH, DEFAULT_IMAGE_HEIGHT, wrappedLayouts, CAPTION_PLACEHOLDER_ID, } from './constants';
|
|
2
2
|
export { getMediaSinglePixelWidth, calcMediaSinglePixelWidth, calcMediaSingleMaxWidth, getMediaSingleInitialWidth, calculateOffsetLeft, roundToNearest, calcMinWidth, getMaxWidthForNestedNode, getMaxWidthForNestedNodeNext, currentMediaNodeWithPos, } from './utils';
|
|
3
3
|
export { CommentBadge } from './CommentBadge';
|
|
4
|
+
export { CommentBadgeNext } from './CommentBadgeNext';
|
|
4
5
|
export { ExternalImageBadge } from './ExternalImageBadge';
|
|
6
|
+
export { MediaBadges } from './MediaBadges';
|
|
5
7
|
export type { CommentBadgeProps } from './CommentBadge';
|
|
@@ -9,6 +9,11 @@ export declare const toolbarInsertBlockMessages: {
|
|
|
9
9
|
defaultMessage: string;
|
|
10
10
|
description: string;
|
|
11
11
|
};
|
|
12
|
+
closeInsertRightRail: {
|
|
13
|
+
id: string;
|
|
14
|
+
defaultMessage: string;
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
12
17
|
link: {
|
|
13
18
|
id: string;
|
|
14
19
|
defaultMessage: string;
|
|
@@ -29,6 +34,11 @@ export declare const toolbarInsertBlockMessages: {
|
|
|
29
34
|
defaultMessage: string;
|
|
30
35
|
description: string;
|
|
31
36
|
};
|
|
37
|
+
insertRightRailTitle: {
|
|
38
|
+
id: string;
|
|
39
|
+
defaultMessage: string;
|
|
40
|
+
description: string;
|
|
41
|
+
};
|
|
32
42
|
insertMediaFromUrl: {
|
|
33
43
|
id: string;
|
|
34
44
|
defaultMessage: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-common",
|
|
3
|
-
"version": "88.
|
|
3
|
+
"version": "88.12.0",
|
|
4
4
|
"description": "A package that contains common classes and components for editor and renderer",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
"@atlaskit/primitives": "^12.1.0",
|
|
141
141
|
"@atlaskit/profilecard": "^19.26.0",
|
|
142
142
|
"@atlaskit/section-message": "^6.6.0",
|
|
143
|
-
"@atlaskit/smart-card": "^
|
|
143
|
+
"@atlaskit/smart-card": "^28.0.0",
|
|
144
144
|
"@atlaskit/smart-user-picker": "^6.10.0",
|
|
145
145
|
"@atlaskit/spinner": "^16.3.0",
|
|
146
146
|
"@atlaskit/task-decision": "^17.10.0",
|