@atlaskit/editor-plugin-card 18.1.7 → 18.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/cjs/ui/PasteDisplayAsMenu.js +9 -1
- package/dist/cjs/ui/currentPastedSmartLink.js +6 -6
- package/dist/cjs/ui/pasteDisplayAsUtils.js +15 -0
- package/dist/es2019/ui/PasteDisplayAsMenu.js +9 -1
- package/dist/es2019/ui/currentPastedSmartLink.js +6 -6
- package/dist/es2019/ui/pasteDisplayAsUtils.js +14 -0
- package/dist/esm/ui/PasteDisplayAsMenu.js +9 -1
- package/dist/esm/ui/currentPastedSmartLink.js +6 -6
- package/dist/esm/ui/pasteDisplayAsUtils.js +15 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-card
|
|
2
2
|
|
|
3
|
+
## 18.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`06c7a1c8b9f35`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/06c7a1c8b9f35) -
|
|
8
|
+
Fix Ask Rovo context for pasted Smart Links and hide single-link AI actions in comments
|
|
9
|
+
|
|
3
10
|
## 18.1.7
|
|
4
11
|
|
|
5
12
|
### Patch Changes
|
|
@@ -220,6 +220,7 @@ var PasteDisplayAsMenuHorizontalView = function PasteDisplayAsMenuHorizontalView
|
|
|
220
220
|
var currentAppearance = editorView && pasteRange ? (_getCardAtPasteRange$ = (_getCardAtPasteRange = (0, _pasteDisplayAsUtils.getCardAtPasteRange)(editorView.state, pasteRange.pasteStartPos, pasteRange.pasteEndPos)) === null || _getCardAtPasteRange === void 0 ? void 0 : _getCardAtPasteRange.appearance) !== null && _getCardAtPasteRange$ !== void 0 ? _getCardAtPasteRange$ : 'url' : undefined;
|
|
221
221
|
var handleClick = (0, _react.useCallback)(function (appearance) {
|
|
222
222
|
return function () {
|
|
223
|
+
var _state$doc$nodeAt2, _targetNodeAttrs$url, _targetNodeAttrs$data;
|
|
223
224
|
if (!editorView || !pasteRange || !pastedLinkUrl || !currentAppearance || isApplyingRef.current) {
|
|
224
225
|
return;
|
|
225
226
|
}
|
|
@@ -239,7 +240,10 @@ var PasteDisplayAsMenuHorizontalView = function PasteDisplayAsMenuHorizontalView
|
|
|
239
240
|
return;
|
|
240
241
|
}
|
|
241
242
|
var targetPos = cardAtPasteRange === null || cardAtPasteRange === void 0 ? void 0 : cardAtPasteRange.pos;
|
|
242
|
-
|
|
243
|
+
var targetNodeAttrs = targetPos === undefined ? undefined : (_state$doc$nodeAt2 = state.doc.nodeAt(targetPos)) === null || _state$doc$nodeAt2 === void 0 ? void 0 : _state$doc$nodeAt2.attrs;
|
|
244
|
+
var targetNodeUrl = (_targetNodeAttrs$url = targetNodeAttrs === null || targetNodeAttrs === void 0 ? void 0 : targetNodeAttrs.url) !== null && _targetNodeAttrs$url !== void 0 ? _targetNodeAttrs$url : targetNodeAttrs === null || targetNodeAttrs === void 0 || (_targetNodeAttrs$data = targetNodeAttrs.data) === null || _targetNodeAttrs$data === void 0 ? void 0 : _targetNodeAttrs$data.url;
|
|
245
|
+
var isRecoveredAdjacentPastedCard = (0, _expValEqualsNoExposure.expValEqualsNoExposure)('confluence_editor_paste_3p_link_actions_menu', 'isEnabled', true) && targetPos === pasteStartPos - 1 && pasteStartPos === pasteEndPos && targetNodeUrl === pastedLinkUrl;
|
|
246
|
+
if (targetPos !== undefined && targetPos < pasteStartPos && !isRecoveredAdjacentPastedCard) {
|
|
243
247
|
isApplyingRef.current = false;
|
|
244
248
|
return;
|
|
245
249
|
}
|
|
@@ -406,6 +410,10 @@ var getPasteDisplayAsMenuComponents = exports.getPasteDisplayAsMenuComponents =
|
|
|
406
410
|
if (!rules || rules.notSingleLinkRule()) {
|
|
407
411
|
return true;
|
|
408
412
|
}
|
|
413
|
+
var urlFromSlice = (0, _currentPastedSmartLink.getSingleSmartLinkUrlFromSlice)(getCurrentPastedSlice(api));
|
|
414
|
+
if (urlFromSlice) {
|
|
415
|
+
return false;
|
|
416
|
+
}
|
|
409
417
|
|
|
410
418
|
// Fallback: plain-text URL paste that the card plugin already resolved into a card node in the doc.
|
|
411
419
|
var urlFromCard = getCardUrlAtPasteRange({
|
|
@@ -12,12 +12,12 @@ var getUrlFromTextLinkNode = function getUrlFromTextLinkNode(node) {
|
|
|
12
12
|
var href = (_node$marks$0$attrs = node.marks[0].attrs) === null || _node$marks$0$attrs === void 0 ? void 0 : _node$marks$0$attrs.href;
|
|
13
13
|
return typeof href === 'string' && node.text === href ? href : undefined;
|
|
14
14
|
};
|
|
15
|
-
var
|
|
16
|
-
var _node$attrs;
|
|
17
|
-
if (node.type.name !== 'inlineCard') {
|
|
15
|
+
var getUrlFromCardNode = function getUrlFromCardNode(node) {
|
|
16
|
+
var _node$attrs$url, _node$attrs, _node$attrs2;
|
|
17
|
+
if (node.type.name !== 'inlineCard' && node.type.name !== 'blockCard' && node.type.name !== 'embedCard') {
|
|
18
18
|
return undefined;
|
|
19
19
|
}
|
|
20
|
-
var url = (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.url;
|
|
20
|
+
var url = (_node$attrs$url = (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.url) !== null && _node$attrs$url !== void 0 ? _node$attrs$url : (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2.data) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.url;
|
|
21
21
|
return typeof url === 'string' ? url : undefined;
|
|
22
22
|
};
|
|
23
23
|
var significantChildren = function significantChildren(fragment) {
|
|
@@ -37,7 +37,7 @@ var getSingleSmartLinkUrlFromSlice = exports.getSingleSmartLinkUrlFromSlice = fu
|
|
|
37
37
|
return undefined;
|
|
38
38
|
}
|
|
39
39
|
var topNode = slice.content.child(0);
|
|
40
|
-
var topNodeUrl = (_getUrlFromTextLinkNo = getUrlFromTextLinkNode(topNode)) !== null && _getUrlFromTextLinkNo !== void 0 ? _getUrlFromTextLinkNo :
|
|
40
|
+
var topNodeUrl = (_getUrlFromTextLinkNo = getUrlFromTextLinkNode(topNode)) !== null && _getUrlFromTextLinkNo !== void 0 ? _getUrlFromTextLinkNo : getUrlFromCardNode(topNode);
|
|
41
41
|
if (topNodeUrl) {
|
|
42
42
|
return topNodeUrl;
|
|
43
43
|
}
|
|
@@ -48,5 +48,5 @@ var getSingleSmartLinkUrlFromSlice = exports.getSingleSmartLinkUrlFromSlice = fu
|
|
|
48
48
|
if (children.length !== 1) {
|
|
49
49
|
return undefined;
|
|
50
50
|
}
|
|
51
|
-
return (_getUrlFromTextLinkNo2 = getUrlFromTextLinkNode(children[0])) !== null && _getUrlFromTextLinkNo2 !== void 0 ? _getUrlFromTextLinkNo2 :
|
|
51
|
+
return (_getUrlFromTextLinkNo2 = getUrlFromTextLinkNode(children[0])) !== null && _getUrlFromTextLinkNo2 !== void 0 ? _getUrlFromTextLinkNo2 : getUrlFromCardNode(children[0]);
|
|
52
52
|
};
|
|
@@ -13,6 +13,21 @@ var getCardAtPasteRange = exports.getCardAtPasteRange = function getCardAtPasteR
|
|
|
13
13
|
var from = Math.min(clampedStart, clampedEnd);
|
|
14
14
|
var to = Math.max(clampedStart, clampedEnd);
|
|
15
15
|
try {
|
|
16
|
+
if (from === to) {
|
|
17
|
+
for (var _i = 0, _arr = [from - 1, from]; _i < _arr.length; _i++) {
|
|
18
|
+
var pos = _arr[_i];
|
|
19
|
+
if (pos < 0 || pos >= docContentSize) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
var node = state.doc.nodeAt(pos);
|
|
23
|
+
if ((node === null || node === void 0 ? void 0 : node.type.name) === 'inlineCard' || (node === null || node === void 0 ? void 0 : node.type.name) === 'blockCard' || (node === null || node === void 0 ? void 0 : node.type.name) === 'embedCard') {
|
|
24
|
+
return {
|
|
25
|
+
appearance: node.type.name === 'inlineCard' ? 'inline' : node.type.name === 'blockCard' ? 'block' : 'embed',
|
|
26
|
+
pos: pos
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
16
31
|
state.doc.nodesBetween(from, to, function (node, pos) {
|
|
17
32
|
if (node.type.name === 'inlineCard' || node.type.name === 'blockCard' || node.type.name === 'embedCard') {
|
|
18
33
|
result = {
|
|
@@ -215,6 +215,7 @@ const PasteDisplayAsMenuHorizontalView = ({
|
|
|
215
215
|
const hasResolvedSmartLinkData = Boolean(pastedLinkUrlState === null || pastedLinkUrlState === void 0 ? void 0 : pastedLinkUrlState.details);
|
|
216
216
|
const currentAppearance = editorView && pasteRange ? (_getCardAtPasteRange$ = (_getCardAtPasteRange = getCardAtPasteRange(editorView.state, pasteRange.pasteStartPos, pasteRange.pasteEndPos)) === null || _getCardAtPasteRange === void 0 ? void 0 : _getCardAtPasteRange.appearance) !== null && _getCardAtPasteRange$ !== void 0 ? _getCardAtPasteRange$ : 'url' : undefined;
|
|
217
217
|
const handleClick = useCallback(appearance => () => {
|
|
218
|
+
var _state$doc$nodeAt2, _targetNodeAttrs$url, _targetNodeAttrs$data;
|
|
218
219
|
if (!editorView || !pasteRange || !pastedLinkUrl || !currentAppearance || isApplyingRef.current) {
|
|
219
220
|
return;
|
|
220
221
|
}
|
|
@@ -238,7 +239,10 @@ const PasteDisplayAsMenuHorizontalView = ({
|
|
|
238
239
|
return;
|
|
239
240
|
}
|
|
240
241
|
const targetPos = cardAtPasteRange === null || cardAtPasteRange === void 0 ? void 0 : cardAtPasteRange.pos;
|
|
241
|
-
|
|
242
|
+
const targetNodeAttrs = targetPos === undefined ? undefined : (_state$doc$nodeAt2 = state.doc.nodeAt(targetPos)) === null || _state$doc$nodeAt2 === void 0 ? void 0 : _state$doc$nodeAt2.attrs;
|
|
243
|
+
const targetNodeUrl = (_targetNodeAttrs$url = targetNodeAttrs === null || targetNodeAttrs === void 0 ? void 0 : targetNodeAttrs.url) !== null && _targetNodeAttrs$url !== void 0 ? _targetNodeAttrs$url : targetNodeAttrs === null || targetNodeAttrs === void 0 ? void 0 : (_targetNodeAttrs$data = targetNodeAttrs.data) === null || _targetNodeAttrs$data === void 0 ? void 0 : _targetNodeAttrs$data.url;
|
|
244
|
+
const isRecoveredAdjacentPastedCard = expValEqualsNoExposure('confluence_editor_paste_3p_link_actions_menu', 'isEnabled', true) && targetPos === pasteStartPos - 1 && pasteStartPos === pasteEndPos && targetNodeUrl === pastedLinkUrl;
|
|
245
|
+
if (targetPos !== undefined && targetPos < pasteStartPos && !isRecoveredAdjacentPastedCard) {
|
|
242
246
|
isApplyingRef.current = false;
|
|
243
247
|
return;
|
|
244
248
|
}
|
|
@@ -386,6 +390,10 @@ export const getPasteDisplayAsMenuComponents = ({
|
|
|
386
390
|
if (!rules || rules.notSingleLinkRule()) {
|
|
387
391
|
return true;
|
|
388
392
|
}
|
|
393
|
+
const urlFromSlice = getSingleSmartLinkUrlFromSlice(getCurrentPastedSlice(api));
|
|
394
|
+
if (urlFromSlice) {
|
|
395
|
+
return false;
|
|
396
|
+
}
|
|
389
397
|
|
|
390
398
|
// Fallback: plain-text URL paste that the card plugin already resolved into a card node in the doc.
|
|
391
399
|
const urlFromCard = getCardUrlAtPasteRange({
|
|
@@ -6,12 +6,12 @@ const getUrlFromTextLinkNode = node => {
|
|
|
6
6
|
const href = (_node$marks$0$attrs = node.marks[0].attrs) === null || _node$marks$0$attrs === void 0 ? void 0 : _node$marks$0$attrs.href;
|
|
7
7
|
return typeof href === 'string' && node.text === href ? href : undefined;
|
|
8
8
|
};
|
|
9
|
-
const
|
|
10
|
-
var _node$attrs;
|
|
11
|
-
if (node.type.name !== 'inlineCard') {
|
|
9
|
+
const getUrlFromCardNode = node => {
|
|
10
|
+
var _node$attrs$url, _node$attrs, _node$attrs2, _node$attrs2$data;
|
|
11
|
+
if (node.type.name !== 'inlineCard' && node.type.name !== 'blockCard' && node.type.name !== 'embedCard') {
|
|
12
12
|
return undefined;
|
|
13
13
|
}
|
|
14
|
-
const url = (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.url;
|
|
14
|
+
const url = (_node$attrs$url = (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.url) !== null && _node$attrs$url !== void 0 ? _node$attrs$url : (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 ? void 0 : (_node$attrs2$data = _node$attrs2.data) === null || _node$attrs2$data === void 0 ? void 0 : _node$attrs2$data.url;
|
|
15
15
|
return typeof url === 'string' ? url : undefined;
|
|
16
16
|
};
|
|
17
17
|
const significantChildren = fragment => {
|
|
@@ -31,7 +31,7 @@ export const getSingleSmartLinkUrlFromSlice = slice => {
|
|
|
31
31
|
return undefined;
|
|
32
32
|
}
|
|
33
33
|
const topNode = slice.content.child(0);
|
|
34
|
-
const topNodeUrl = (_getUrlFromTextLinkNo = getUrlFromTextLinkNode(topNode)) !== null && _getUrlFromTextLinkNo !== void 0 ? _getUrlFromTextLinkNo :
|
|
34
|
+
const topNodeUrl = (_getUrlFromTextLinkNo = getUrlFromTextLinkNode(topNode)) !== null && _getUrlFromTextLinkNo !== void 0 ? _getUrlFromTextLinkNo : getUrlFromCardNode(topNode);
|
|
35
35
|
if (topNodeUrl) {
|
|
36
36
|
return topNodeUrl;
|
|
37
37
|
}
|
|
@@ -42,5 +42,5 @@ export const getSingleSmartLinkUrlFromSlice = slice => {
|
|
|
42
42
|
if (children.length !== 1) {
|
|
43
43
|
return undefined;
|
|
44
44
|
}
|
|
45
|
-
return (_getUrlFromTextLinkNo2 = getUrlFromTextLinkNode(children[0])) !== null && _getUrlFromTextLinkNo2 !== void 0 ? _getUrlFromTextLinkNo2 :
|
|
45
|
+
return (_getUrlFromTextLinkNo2 = getUrlFromTextLinkNode(children[0])) !== null && _getUrlFromTextLinkNo2 !== void 0 ? _getUrlFromTextLinkNo2 : getUrlFromCardNode(children[0]);
|
|
46
46
|
};
|
|
@@ -7,6 +7,20 @@ export const getCardAtPasteRange = (state, pasteStartPos, pasteEndPos) => {
|
|
|
7
7
|
const from = Math.min(clampedStart, clampedEnd);
|
|
8
8
|
const to = Math.max(clampedStart, clampedEnd);
|
|
9
9
|
try {
|
|
10
|
+
if (from === to) {
|
|
11
|
+
for (const pos of [from - 1, from]) {
|
|
12
|
+
if (pos < 0 || pos >= docContentSize) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const node = state.doc.nodeAt(pos);
|
|
16
|
+
if ((node === null || node === void 0 ? void 0 : node.type.name) === 'inlineCard' || (node === null || node === void 0 ? void 0 : node.type.name) === 'blockCard' || (node === null || node === void 0 ? void 0 : node.type.name) === 'embedCard') {
|
|
17
|
+
return {
|
|
18
|
+
appearance: node.type.name === 'inlineCard' ? 'inline' : node.type.name === 'blockCard' ? 'block' : 'embed',
|
|
19
|
+
pos
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
10
24
|
state.doc.nodesBetween(from, to, (node, pos) => {
|
|
11
25
|
if (node.type.name === 'inlineCard' || node.type.name === 'blockCard' || node.type.name === 'embedCard') {
|
|
12
26
|
result = {
|
|
@@ -211,6 +211,7 @@ var PasteDisplayAsMenuHorizontalView = function PasteDisplayAsMenuHorizontalView
|
|
|
211
211
|
var currentAppearance = editorView && pasteRange ? (_getCardAtPasteRange$ = (_getCardAtPasteRange = getCardAtPasteRange(editorView.state, pasteRange.pasteStartPos, pasteRange.pasteEndPos)) === null || _getCardAtPasteRange === void 0 ? void 0 : _getCardAtPasteRange.appearance) !== null && _getCardAtPasteRange$ !== void 0 ? _getCardAtPasteRange$ : 'url' : undefined;
|
|
212
212
|
var handleClick = useCallback(function (appearance) {
|
|
213
213
|
return function () {
|
|
214
|
+
var _state$doc$nodeAt2, _targetNodeAttrs$url, _targetNodeAttrs$data;
|
|
214
215
|
if (!editorView || !pasteRange || !pastedLinkUrl || !currentAppearance || isApplyingRef.current) {
|
|
215
216
|
return;
|
|
216
217
|
}
|
|
@@ -230,7 +231,10 @@ var PasteDisplayAsMenuHorizontalView = function PasteDisplayAsMenuHorizontalView
|
|
|
230
231
|
return;
|
|
231
232
|
}
|
|
232
233
|
var targetPos = cardAtPasteRange === null || cardAtPasteRange === void 0 ? void 0 : cardAtPasteRange.pos;
|
|
233
|
-
|
|
234
|
+
var targetNodeAttrs = targetPos === undefined ? undefined : (_state$doc$nodeAt2 = state.doc.nodeAt(targetPos)) === null || _state$doc$nodeAt2 === void 0 ? void 0 : _state$doc$nodeAt2.attrs;
|
|
235
|
+
var targetNodeUrl = (_targetNodeAttrs$url = targetNodeAttrs === null || targetNodeAttrs === void 0 ? void 0 : targetNodeAttrs.url) !== null && _targetNodeAttrs$url !== void 0 ? _targetNodeAttrs$url : targetNodeAttrs === null || targetNodeAttrs === void 0 || (_targetNodeAttrs$data = targetNodeAttrs.data) === null || _targetNodeAttrs$data === void 0 ? void 0 : _targetNodeAttrs$data.url;
|
|
236
|
+
var isRecoveredAdjacentPastedCard = expValEqualsNoExposure('confluence_editor_paste_3p_link_actions_menu', 'isEnabled', true) && targetPos === pasteStartPos - 1 && pasteStartPos === pasteEndPos && targetNodeUrl === pastedLinkUrl;
|
|
237
|
+
if (targetPos !== undefined && targetPos < pasteStartPos && !isRecoveredAdjacentPastedCard) {
|
|
234
238
|
isApplyingRef.current = false;
|
|
235
239
|
return;
|
|
236
240
|
}
|
|
@@ -397,6 +401,10 @@ export var getPasteDisplayAsMenuComponents = function getPasteDisplayAsMenuCompo
|
|
|
397
401
|
if (!rules || rules.notSingleLinkRule()) {
|
|
398
402
|
return true;
|
|
399
403
|
}
|
|
404
|
+
var urlFromSlice = getSingleSmartLinkUrlFromSlice(getCurrentPastedSlice(api));
|
|
405
|
+
if (urlFromSlice) {
|
|
406
|
+
return false;
|
|
407
|
+
}
|
|
400
408
|
|
|
401
409
|
// Fallback: plain-text URL paste that the card plugin already resolved into a card node in the doc.
|
|
402
410
|
var urlFromCard = getCardUrlAtPasteRange({
|
|
@@ -6,12 +6,12 @@ var getUrlFromTextLinkNode = function getUrlFromTextLinkNode(node) {
|
|
|
6
6
|
var href = (_node$marks$0$attrs = node.marks[0].attrs) === null || _node$marks$0$attrs === void 0 ? void 0 : _node$marks$0$attrs.href;
|
|
7
7
|
return typeof href === 'string' && node.text === href ? href : undefined;
|
|
8
8
|
};
|
|
9
|
-
var
|
|
10
|
-
var _node$attrs;
|
|
11
|
-
if (node.type.name !== 'inlineCard') {
|
|
9
|
+
var getUrlFromCardNode = function getUrlFromCardNode(node) {
|
|
10
|
+
var _node$attrs$url, _node$attrs, _node$attrs2;
|
|
11
|
+
if (node.type.name !== 'inlineCard' && node.type.name !== 'blockCard' && node.type.name !== 'embedCard') {
|
|
12
12
|
return undefined;
|
|
13
13
|
}
|
|
14
|
-
var url = (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.url;
|
|
14
|
+
var url = (_node$attrs$url = (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.url) !== null && _node$attrs$url !== void 0 ? _node$attrs$url : (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 || (_node$attrs2 = _node$attrs2.data) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.url;
|
|
15
15
|
return typeof url === 'string' ? url : undefined;
|
|
16
16
|
};
|
|
17
17
|
var significantChildren = function significantChildren(fragment) {
|
|
@@ -31,7 +31,7 @@ export var getSingleSmartLinkUrlFromSlice = function getSingleSmartLinkUrlFromSl
|
|
|
31
31
|
return undefined;
|
|
32
32
|
}
|
|
33
33
|
var topNode = slice.content.child(0);
|
|
34
|
-
var topNodeUrl = (_getUrlFromTextLinkNo = getUrlFromTextLinkNode(topNode)) !== null && _getUrlFromTextLinkNo !== void 0 ? _getUrlFromTextLinkNo :
|
|
34
|
+
var topNodeUrl = (_getUrlFromTextLinkNo = getUrlFromTextLinkNode(topNode)) !== null && _getUrlFromTextLinkNo !== void 0 ? _getUrlFromTextLinkNo : getUrlFromCardNode(topNode);
|
|
35
35
|
if (topNodeUrl) {
|
|
36
36
|
return topNodeUrl;
|
|
37
37
|
}
|
|
@@ -42,5 +42,5 @@ export var getSingleSmartLinkUrlFromSlice = function getSingleSmartLinkUrlFromSl
|
|
|
42
42
|
if (children.length !== 1) {
|
|
43
43
|
return undefined;
|
|
44
44
|
}
|
|
45
|
-
return (_getUrlFromTextLinkNo2 = getUrlFromTextLinkNode(children[0])) !== null && _getUrlFromTextLinkNo2 !== void 0 ? _getUrlFromTextLinkNo2 :
|
|
45
|
+
return (_getUrlFromTextLinkNo2 = getUrlFromTextLinkNode(children[0])) !== null && _getUrlFromTextLinkNo2 !== void 0 ? _getUrlFromTextLinkNo2 : getUrlFromCardNode(children[0]);
|
|
46
46
|
};
|
|
@@ -7,6 +7,21 @@ export var getCardAtPasteRange = function getCardAtPasteRange(state, pasteStartP
|
|
|
7
7
|
var from = Math.min(clampedStart, clampedEnd);
|
|
8
8
|
var to = Math.max(clampedStart, clampedEnd);
|
|
9
9
|
try {
|
|
10
|
+
if (from === to) {
|
|
11
|
+
for (var _i = 0, _arr = [from - 1, from]; _i < _arr.length; _i++) {
|
|
12
|
+
var pos = _arr[_i];
|
|
13
|
+
if (pos < 0 || pos >= docContentSize) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
var node = state.doc.nodeAt(pos);
|
|
17
|
+
if ((node === null || node === void 0 ? void 0 : node.type.name) === 'inlineCard' || (node === null || node === void 0 ? void 0 : node.type.name) === 'blockCard' || (node === null || node === void 0 ? void 0 : node.type.name) === 'embedCard') {
|
|
18
|
+
return {
|
|
19
|
+
appearance: node.type.name === 'inlineCard' ? 'inline' : node.type.name === 'blockCard' ? 'block' : 'embed',
|
|
20
|
+
pos: pos
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
10
25
|
state.doc.nodesBetween(from, to, function (node, pos) {
|
|
11
26
|
if (node.type.name === 'inlineCard' || node.type.name === 'blockCard' || node.type.name === 'embedCard') {
|
|
12
27
|
result = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-card",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.2.0",
|
|
4
4
|
"description": "Card plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"@atlaskit/primitives": "^21.0.0",
|
|
60
60
|
"@atlaskit/prosemirror-history": "^1.0.0",
|
|
61
61
|
"@atlaskit/smart-card": "^45.9.0",
|
|
62
|
-
"@atlaskit/tmp-editor-statsig": "^126.
|
|
62
|
+
"@atlaskit/tmp-editor-statsig": "^126.1.0",
|
|
63
63
|
"@atlaskit/tokens": "^15.8.0",
|
|
64
64
|
"@babel/runtime": "^7.0.0",
|
|
65
65
|
"@emotion/react": "^11.7.1",
|