@atlaskit/editor-common 111.12.6 → 111.13.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 +16 -0
- package/dist/cjs/analytics/types/enums.js +1 -0
- package/dist/cjs/extensions/extension-handlers.js +14 -7
- package/dist/cjs/extensions.js +6 -0
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui/HoverLinkOverlay/index.js +9 -186
- package/dist/cjs/utils/compareNodes.js +2 -2
- package/dist/es2019/analytics/types/enums.js +1 -0
- package/dist/es2019/extensions/extension-handlers.js +4 -0
- package/dist/es2019/extensions.js +1 -1
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui/HoverLinkOverlay/index.js +9 -170
- package/dist/esm/analytics/types/enums.js +1 -0
- package/dist/esm/extensions/extension-handlers.js +13 -7
- package/dist/esm/extensions.js +1 -1
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui/HoverLinkOverlay/index.js +9 -186
- package/dist/esm/utils/compareNodes.js +2 -2
- package/dist/types/analytics/types/enums.d.ts +1 -0
- package/dist/types/analytics/types/extension-events.d.ts +8 -2
- package/dist/types/extensions/extension-handlers.d.ts +2 -1
- package/dist/types/extensions.d.ts +1 -1
- package/dist/types/types/copy-button.d.ts +1 -0
- package/dist/types/ui/HoverLinkOverlay/index.d.ts +2 -1
- package/dist/types-ts4.5/analytics/types/enums.d.ts +1 -0
- package/dist/types-ts4.5/analytics/types/extension-events.d.ts +8 -2
- package/dist/types-ts4.5/extensions/extension-handlers.d.ts +2 -1
- package/dist/types-ts4.5/extensions.d.ts +1 -1
- package/dist/types-ts4.5/types/copy-button.d.ts +1 -0
- package/dist/types-ts4.5/ui/HoverLinkOverlay/index.d.ts +2 -1
- package/package.json +2 -2
|
@@ -14,7 +14,6 @@ import GrowDiagonalIcon from '@atlaskit/icon/core/grow-diagonal';
|
|
|
14
14
|
import LinkExternalIcon from '@atlaskit/icon/core/link-external';
|
|
15
15
|
import PanelRightIcon from '@atlaskit/icon/core/panel-right';
|
|
16
16
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
17
|
-
import { componentWithCondition } from '@atlaskit/platform-feature-flags-react';
|
|
18
17
|
// eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
|
|
19
18
|
import { Anchor, Box, Text, xcss } from '@atlaskit/primitives';
|
|
20
19
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
@@ -27,25 +26,16 @@ import { cardMessages } from '../../messages';
|
|
|
27
26
|
* Otherwise, uses default value with token('space.025').
|
|
28
27
|
*/
|
|
29
28
|
const DYNAMIC_PADDING_BLOCK = `clamp(1px, calc((var(--ak-editor-base-font-size, ${akEditorFullPageDefaultFontSize}px) - ${akEditorFullPageDenseFontSize}px) * 999), ${"var(--ds-space-025, 2px)"})`;
|
|
30
|
-
const containerStylesOld = css({
|
|
31
|
-
position: 'relative'
|
|
32
|
-
});
|
|
33
29
|
const containerStyles = css({
|
|
34
|
-
position: 'relative'
|
|
35
|
-
whiteSpace: 'nowrap'
|
|
30
|
+
position: 'relative'
|
|
36
31
|
});
|
|
37
|
-
const
|
|
32
|
+
const iconWrapperStyles = xcss({
|
|
38
33
|
display: 'inline-flex',
|
|
39
34
|
justifyContent: 'center',
|
|
40
35
|
alignItems: 'center',
|
|
41
36
|
height: '17px',
|
|
42
37
|
width: '17px'
|
|
43
38
|
});
|
|
44
|
-
const iconWrapperStyles = xcss({
|
|
45
|
-
display: 'inline-flex',
|
|
46
|
-
justifyContent: 'center',
|
|
47
|
-
alignItems: 'center'
|
|
48
|
-
});
|
|
49
39
|
const hiddenTextStyle = css({
|
|
50
40
|
overflow: 'hidden',
|
|
51
41
|
whiteSpace: 'nowrap',
|
|
@@ -68,37 +58,18 @@ const linkStylesCommon = xcss({
|
|
|
68
58
|
color: 'color.text.subtle',
|
|
69
59
|
textDecoration: 'none',
|
|
70
60
|
whiteSpace: 'nowrap',
|
|
61
|
+
top: '0px',
|
|
62
|
+
height: '1.2em',
|
|
71
63
|
':hover': {
|
|
72
64
|
backgroundColor: 'elevation.surface.hovered',
|
|
73
65
|
color: 'color.text.subtle',
|
|
74
66
|
textDecoration: 'none'
|
|
75
67
|
}
|
|
76
68
|
});
|
|
77
|
-
const linkStylesOld = xcss({
|
|
78
|
-
top: '-1px'
|
|
79
|
-
});
|
|
80
|
-
const linkStylesHeightFix = xcss({
|
|
81
|
-
top: '0px',
|
|
82
|
-
height: '1.2em'
|
|
83
|
-
});
|
|
84
|
-
const linkStylesNewWithHeightFix = xcss({
|
|
85
|
-
top: '0px',
|
|
86
|
-
visibility: 'hidden',
|
|
87
|
-
height: '1.2em'
|
|
88
|
-
});
|
|
89
|
-
const linkStylesVisible = xcss({
|
|
90
|
-
visibility: 'visible'
|
|
91
|
-
});
|
|
92
|
-
const iconAndLabelStyles = xcss({
|
|
93
|
-
display: 'flex',
|
|
94
|
-
alignItems: 'center',
|
|
95
|
-
height: '100%',
|
|
96
|
-
gap: 'space.025'
|
|
97
|
-
});
|
|
98
69
|
const MIN_AVAILABLE_SPACE_WITH_LABEL_OVERLAY = 45;
|
|
99
70
|
const ICON_WIDTH = 16;
|
|
100
71
|
const DEFAULT_OPEN_TEXT_WIDTH = 28; // Default open text width in English
|
|
101
|
-
|
|
72
|
+
|
|
102
73
|
const visitCardLinkAnalytics = (editorAnalyticsApi, inputMethod) => (state, dispatch) => {
|
|
103
74
|
if (!(state.selection instanceof NodeSelection)) {
|
|
104
75
|
return false;
|
|
@@ -115,7 +86,7 @@ const visitCardLinkAnalytics = (editorAnalyticsApi, inputMethod) => (state, disp
|
|
|
115
86
|
}
|
|
116
87
|
return true;
|
|
117
88
|
};
|
|
118
|
-
const
|
|
89
|
+
const HoverLinkOverlay = ({
|
|
119
90
|
children,
|
|
120
91
|
isVisible = false,
|
|
121
92
|
url,
|
|
@@ -228,7 +199,7 @@ const HoverLinkOverlayOriginal = ({
|
|
|
228
199
|
}
|
|
229
200
|
return jsx("span", {
|
|
230
201
|
ref: containerRef,
|
|
231
|
-
css:
|
|
202
|
+
css: containerStyles,
|
|
232
203
|
onDoubleClick: handleDoubleClick
|
|
233
204
|
// eslint-disable-next-line @atlassian/a11y/mouse-events-have-key-events
|
|
234
205
|
,
|
|
@@ -245,7 +216,7 @@ const HoverLinkOverlayOriginal = ({
|
|
|
245
216
|
maxLines: 1
|
|
246
217
|
}, label)), isHovered && jsx(Anchor, {
|
|
247
218
|
ref: hoverLinkButtonRef,
|
|
248
|
-
xcss:
|
|
219
|
+
xcss: linkStylesCommon,
|
|
249
220
|
href: url,
|
|
250
221
|
target: "_blank",
|
|
251
222
|
style: {
|
|
@@ -254,7 +225,7 @@ const HoverLinkOverlayOriginal = ({
|
|
|
254
225
|
onClick: handleClick,
|
|
255
226
|
testId: "inline-card-hoverlink-overlay"
|
|
256
227
|
}, jsx(Box, {
|
|
257
|
-
xcss:
|
|
228
|
+
xcss: iconWrapperStyles,
|
|
258
229
|
"data-inlinecard-button-overlay": "icon-wrapper-line-height",
|
|
259
230
|
testId: "inline-card-hoverlink-overlay-icon"
|
|
260
231
|
}, icon), showLabel && jsx(Text, {
|
|
@@ -264,136 +235,4 @@ const HoverLinkOverlayOriginal = ({
|
|
|
264
235
|
testId: "inline-card-hoverlink-overlay-label"
|
|
265
236
|
}, label)));
|
|
266
237
|
};
|
|
267
|
-
const HoverLinkOverlayNew = ({
|
|
268
|
-
children,
|
|
269
|
-
isVisible = false,
|
|
270
|
-
url,
|
|
271
|
-
compactPadding = false,
|
|
272
|
-
editorAnalyticsApi,
|
|
273
|
-
view,
|
|
274
|
-
onClick,
|
|
275
|
-
showPanelButton = false,
|
|
276
|
-
showPanelButtonIcon
|
|
277
|
-
}) => {
|
|
278
|
-
const {
|
|
279
|
-
formatMessage
|
|
280
|
-
} = useIntl();
|
|
281
|
-
const containerRef = useRef(null);
|
|
282
|
-
const iconRef = useRef(null);
|
|
283
|
-
const iconLeftRef = useRef(0);
|
|
284
|
-
const iconAndLabelRef = useRef(null);
|
|
285
|
-
const minMaxWidthRef = useRef();
|
|
286
|
-
const [showLabel, setShowLabel] = useState(false);
|
|
287
|
-
const [isHovered, setHovered] = useState(false);
|
|
288
|
-
const [showOverlay, setShowOverlay] = useState(false);
|
|
289
|
-
useLayoutEffect(() => {
|
|
290
|
-
if (!isVisible && !isHovered) {
|
|
291
|
-
return;
|
|
292
|
-
}
|
|
293
|
-
if (!containerRef.current) {
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
296
|
-
if (iconRef.current && iconAndLabelRef.current) {
|
|
297
|
-
const iconRect = iconRef.current.getBoundingClientRect();
|
|
298
|
-
iconLeftRef.current = iconRect.left;
|
|
299
|
-
minMaxWidthRef.current = {
|
|
300
|
-
min: iconRect.width,
|
|
301
|
-
max: iconAndLabelRef.current.getBoundingClientRect().width
|
|
302
|
-
};
|
|
303
|
-
}
|
|
304
|
-
if (!iconLeftRef.current || !minMaxWidthRef.current) {
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
const containerDomRect = containerRef.current.getBoundingClientRect();
|
|
308
|
-
const containerStyles = getComputedStyle(containerRef.current);
|
|
309
|
-
const containerHeight = containerDomRect.height - parseFloat(containerStyles.paddingTop) - parseFloat(containerStyles.paddingBottom) - parseFloat(containerStyles.borderTopWidth) - parseFloat(containerStyles.borderBottomWidth);
|
|
310
|
-
const oneLine = parseFloat(containerStyles.lineHeight) >= containerHeight;
|
|
311
|
-
const firstLineWidth = containerDomRect.right - iconLeftRef.current;
|
|
312
|
-
|
|
313
|
-
// We don't want HoverLinkOverlay to cover the entire card if it is oneline. It allows the user to click on the card itself.
|
|
314
|
-
const reservedWidth = oneLine ? MIN_CARD_WIDTH_NOT_COVERED_BY_OVERLAY : 0;
|
|
315
|
-
const availableWidth = firstLineWidth - reservedWidth;
|
|
316
|
-
|
|
317
|
-
// True when icon and label can be shown
|
|
318
|
-
setShowLabel(availableWidth >= minMaxWidthRef.current.max);
|
|
319
|
-
// True when at least an icon can be shown
|
|
320
|
-
setShowOverlay(availableWidth >= minMaxWidthRef.current.min);
|
|
321
|
-
}, [isVisible, isHovered]);
|
|
322
|
-
const handleOverlayChange = isHovered => {
|
|
323
|
-
setHovered(isHovered);
|
|
324
|
-
};
|
|
325
|
-
const sendVisitLinkAnalytics = inputMethod => {
|
|
326
|
-
if (editorAnalyticsApi && view) {
|
|
327
|
-
visitCardLinkAnalytics(editorAnalyticsApi, inputMethod)(view.state, view.dispatch);
|
|
328
|
-
}
|
|
329
|
-
};
|
|
330
|
-
const handleDoubleClick = () => {
|
|
331
|
-
if (!showPanelButton) {
|
|
332
|
-
sendVisitLinkAnalytics(INPUT_METHOD.DOUBLE_CLICK);
|
|
333
|
-
|
|
334
|
-
// Double click opens the link in a new tab
|
|
335
|
-
window.open(url, '_blank');
|
|
336
|
-
}
|
|
337
|
-
};
|
|
338
|
-
const handleClick = event => {
|
|
339
|
-
if (showPanelButton && onClick) {
|
|
340
|
-
onClick(event);
|
|
341
|
-
} else {
|
|
342
|
-
sendVisitLinkAnalytics(INPUT_METHOD.BUTTON);
|
|
343
|
-
}
|
|
344
|
-
};
|
|
345
|
-
const isPreviewButton = showPanelButton && editorExperiment('platform_editor_preview_panel_linking_exp', true);
|
|
346
|
-
const label = isPreviewButton ? formatMessage(cardMessages.previewButtonTitle) : formatMessage(cardMessages.openButtonTitle);
|
|
347
|
-
let icon = null;
|
|
348
|
-
if (isPreviewButton && showPanelButtonIcon === 'panel') {
|
|
349
|
-
icon = jsx(PanelRightIcon, {
|
|
350
|
-
label: ""
|
|
351
|
-
});
|
|
352
|
-
} else if (isPreviewButton && showPanelButtonIcon === 'modal') {
|
|
353
|
-
icon = jsx(GrowDiagonalIcon, {
|
|
354
|
-
label: ""
|
|
355
|
-
});
|
|
356
|
-
} else {
|
|
357
|
-
icon = jsx(LinkExternalIcon, {
|
|
358
|
-
label: ""
|
|
359
|
-
});
|
|
360
|
-
}
|
|
361
|
-
return jsx("span", {
|
|
362
|
-
ref: containerRef,
|
|
363
|
-
css: containerStyles,
|
|
364
|
-
onDoubleClick: handleDoubleClick,
|
|
365
|
-
onMouseEnter: () => handleOverlayChange(true),
|
|
366
|
-
onMouseLeave: () => handleOverlayChange(false),
|
|
367
|
-
role: "presentation" // remove as part of platform_editor_hoverlink_ui_fixes_exp cleanup
|
|
368
|
-
,
|
|
369
|
-
onFocus: () => {} // remove as part of platform_editor_hoverlink_ui_fixes_exp cleanup
|
|
370
|
-
,
|
|
371
|
-
onBlur: () => {} // remove as part of platform_editor_hoverlink_ui_fixes_exp cleanup
|
|
372
|
-
}, isHovered && jsx(Anchor, {
|
|
373
|
-
xcss: [linkStylesCommon, linkStylesNewWithHeightFix, showOverlay && linkStylesVisible],
|
|
374
|
-
href: url,
|
|
375
|
-
target: "_blank",
|
|
376
|
-
style: {
|
|
377
|
-
paddingBlock: compactPadding ? '1px' : expValEquals('confluence_compact_text_format', 'isEnabled', true) || expValEquals('cc_editor_ai_content_mode', 'variant', 'test') && fg('platform_editor_content_mode_button_mvp') ? DYNAMIC_PADDING_BLOCK : "var(--ds-space-025, 2px)"
|
|
378
|
-
},
|
|
379
|
-
onClick: handleClick,
|
|
380
|
-
testId: "inline-card-hoverlink-overlay"
|
|
381
|
-
}, jsx(Box, {
|
|
382
|
-
as: "span",
|
|
383
|
-
xcss: iconAndLabelStyles,
|
|
384
|
-
ref: iconAndLabelRef
|
|
385
|
-
}, jsx(Box, {
|
|
386
|
-
ref: iconRef,
|
|
387
|
-
as: "span",
|
|
388
|
-
xcss: iconWrapperStyles,
|
|
389
|
-
"data-inlinecard-button-overlay": "icon-wrapper-line-height",
|
|
390
|
-
testId: "inline-card-hoverlink-overlay-icon"
|
|
391
|
-
}, icon), (showLabel || !minMaxWidthRef.current) && jsx(Text, {
|
|
392
|
-
size: "small",
|
|
393
|
-
color: "color.text.subtle",
|
|
394
|
-
maxLines: 1,
|
|
395
|
-
testId: "inline-card-hoverlink-overlay-label"
|
|
396
|
-
}, label))), children);
|
|
397
|
-
};
|
|
398
|
-
const HoverLinkOverlay = componentWithCondition(() => expValEquals('platform_editor_hoverlink_ui_fixes_exp', 'cohort', 'css_js_changes'), HoverLinkOverlayNew, HoverLinkOverlayOriginal);
|
|
399
238
|
export default HoverLinkOverlay;
|
|
@@ -32,6 +32,7 @@ export var ACTION = /*#__PURE__*/function (ACTION) {
|
|
|
32
32
|
ACTION["CONNECTED_NODES"] = "connectedNodes";
|
|
33
33
|
ACTION["CONVERTED"] = "converted";
|
|
34
34
|
ACTION["COPIED"] = "copied";
|
|
35
|
+
ACTION["COPY_FAILED"] = "copyFailed";
|
|
35
36
|
ACTION["CUT"] = "cut";
|
|
36
37
|
ACTION["DEACTIVATED"] = "deactivated";
|
|
37
38
|
ACTION["DECREMENTED"] = "decremented";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { useIntl } from 'react-intl-next';
|
|
@@ -22,16 +22,22 @@ manifest, extKey, nodeKey, extensionType, extensionKey) {
|
|
|
22
22
|
}
|
|
23
23
|
return node;
|
|
24
24
|
}
|
|
25
|
+
export function getExtensionManifest(extensionProvider, extensionType, extensionKey) {
|
|
26
|
+
var _getExtensionKeyAndNo = getExtensionKeyAndNodeKey(extensionKey, extensionType),
|
|
27
|
+
_getExtensionKeyAndNo2 = _slicedToArray(_getExtensionKeyAndNo, 1),
|
|
28
|
+
extKey = _getExtensionKeyAndNo2[0];
|
|
29
|
+
return extensionProvider.getExtension(extensionType, extKey);
|
|
30
|
+
}
|
|
25
31
|
export function getExtensionModuleNode(_x, _x2, _x3) {
|
|
26
32
|
return _getExtensionModuleNode.apply(this, arguments);
|
|
27
33
|
}
|
|
28
34
|
function _getExtensionModuleNode() {
|
|
29
35
|
_getExtensionModuleNode = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(extensionProvider, extensionType, extensionKey) {
|
|
30
|
-
var
|
|
36
|
+
var _getExtensionKeyAndNo5, _getExtensionKeyAndNo6, extKey, nodeKey, manifest;
|
|
31
37
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
32
38
|
while (1) switch (_context.prev = _context.next) {
|
|
33
39
|
case 0:
|
|
34
|
-
|
|
40
|
+
_getExtensionKeyAndNo5 = getExtensionKeyAndNodeKey(extensionKey, extensionType), _getExtensionKeyAndNo6 = _slicedToArray(_getExtensionKeyAndNo5, 2), extKey = _getExtensionKeyAndNo6[0], nodeKey = _getExtensionKeyAndNo6[1];
|
|
35
41
|
_context.next = 3;
|
|
36
42
|
return extensionProvider.getExtension(extensionType, extKey);
|
|
37
43
|
case 3:
|
|
@@ -49,10 +55,10 @@ export function getExtensionModuleNodeMaybePreloaded(extensionProvider, extensio
|
|
|
49
55
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
56
|
) {
|
|
51
57
|
var _extensionProvider$ge;
|
|
52
|
-
var
|
|
53
|
-
|
|
54
|
-
extKey =
|
|
55
|
-
nodeKey =
|
|
58
|
+
var _getExtensionKeyAndNo3 = getExtensionKeyAndNodeKey(extensionKey, extensionType),
|
|
59
|
+
_getExtensionKeyAndNo4 = _slicedToArray(_getExtensionKeyAndNo3, 2),
|
|
60
|
+
extKey = _getExtensionKeyAndNo4[0],
|
|
61
|
+
nodeKey = _getExtensionKeyAndNo4[1];
|
|
56
62
|
var manifest = extensionProvider === null || extensionProvider === void 0 || (_extensionProvider$ge = extensionProvider.getPreloadedExtension) === null || _extensionProvider$ge === void 0 ? void 0 : _extensionProvider$ge.call(extensionProvider, extensionType, extKey);
|
|
57
63
|
if (manifest) {
|
|
58
64
|
return getNodeFromManifest(manifest, extKey, nodeKey, extensionType, extensionKey);
|
package/dist/esm/extensions.js
CHANGED
|
@@ -6,6 +6,6 @@ export { createAutoConverterRunner, getExtensionAutoConvertersFromProvider, getQ
|
|
|
6
6
|
export { default as DefaultExtensionProvider } from './extensions/default-extension-provider';
|
|
7
7
|
export { default as combineExtensionProviders } from './extensions/combine-extension-providers';
|
|
8
8
|
export { getExtensionKeyAndNodeKey, resolveImport } from './extensions/manifest-helpers';
|
|
9
|
-
export { getExtensionModuleNode, getNodeRenderer, getExtensionModuleNodePrivateProps } from './extensions/extension-handlers';
|
|
9
|
+
export { getExtensionModuleNode, getNodeRenderer, getExtensionModuleNodePrivateProps, getExtensionManifest } from './extensions/extension-handlers';
|
|
10
10
|
export { getCustomFieldResolver, getFieldSerializer, getFieldDeserializer, getUserFieldContextProvider } from './extensions/extension-fields-helpers';
|
|
11
11
|
export { configPanelMessages, messages } from './extensions/messages';
|
|
@@ -10,7 +10,7 @@ import { isFedRamp } from './environment';
|
|
|
10
10
|
import { normaliseSentryBreadcrumbs, SERIALIZABLE_ATTRIBUTES } from './normalise-sentry-breadcrumbs';
|
|
11
11
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
12
12
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
13
|
-
var packageVersion = "111.12.
|
|
13
|
+
var packageVersion = "111.12.7";
|
|
14
14
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
15
15
|
// Remove URL as it has UGC
|
|
16
16
|
// Ignored via go/ees007
|
|
@@ -21,7 +21,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
|
21
21
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
22
22
|
import Layer from '../Layer';
|
|
23
23
|
var packageName = "@atlaskit/editor-common";
|
|
24
|
-
var packageVersion = "111.12.
|
|
24
|
+
var packageVersion = "111.12.7";
|
|
25
25
|
var halfFocusRing = 1;
|
|
26
26
|
var dropOffset = '0, 8';
|
|
27
27
|
var fadeIn = keyframes({
|
|
@@ -15,7 +15,6 @@ import GrowDiagonalIcon from '@atlaskit/icon/core/grow-diagonal';
|
|
|
15
15
|
import LinkExternalIcon from '@atlaskit/icon/core/link-external';
|
|
16
16
|
import PanelRightIcon from '@atlaskit/icon/core/panel-right';
|
|
17
17
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
18
|
-
import { componentWithCondition } from '@atlaskit/platform-feature-flags-react';
|
|
19
18
|
// eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
|
|
20
19
|
import { Anchor, Box, Text, xcss } from '@atlaskit/primitives';
|
|
21
20
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
@@ -28,25 +27,16 @@ import { cardMessages } from '../../messages';
|
|
|
28
27
|
* Otherwise, uses default value with token('space.025').
|
|
29
28
|
*/
|
|
30
29
|
var DYNAMIC_PADDING_BLOCK = "clamp(1px, calc((var(--ak-editor-base-font-size, ".concat(akEditorFullPageDefaultFontSize, "px) - ").concat(akEditorFullPageDenseFontSize, "px) * 999), ", "var(--ds-space-025, 2px)", ")");
|
|
31
|
-
var containerStylesOld = css({
|
|
32
|
-
position: 'relative'
|
|
33
|
-
});
|
|
34
30
|
var containerStyles = css({
|
|
35
|
-
position: 'relative'
|
|
36
|
-
whiteSpace: 'nowrap'
|
|
31
|
+
position: 'relative'
|
|
37
32
|
});
|
|
38
|
-
var
|
|
33
|
+
var iconWrapperStyles = xcss({
|
|
39
34
|
display: 'inline-flex',
|
|
40
35
|
justifyContent: 'center',
|
|
41
36
|
alignItems: 'center',
|
|
42
37
|
height: '17px',
|
|
43
38
|
width: '17px'
|
|
44
39
|
});
|
|
45
|
-
var iconWrapperStyles = xcss({
|
|
46
|
-
display: 'inline-flex',
|
|
47
|
-
justifyContent: 'center',
|
|
48
|
-
alignItems: 'center'
|
|
49
|
-
});
|
|
50
40
|
var hiddenTextStyle = css({
|
|
51
41
|
overflow: 'hidden',
|
|
52
42
|
whiteSpace: 'nowrap',
|
|
@@ -69,37 +59,18 @@ var linkStylesCommon = xcss({
|
|
|
69
59
|
color: 'color.text.subtle',
|
|
70
60
|
textDecoration: 'none',
|
|
71
61
|
whiteSpace: 'nowrap',
|
|
62
|
+
top: '0px',
|
|
63
|
+
height: '1.2em',
|
|
72
64
|
':hover': {
|
|
73
65
|
backgroundColor: 'elevation.surface.hovered',
|
|
74
66
|
color: 'color.text.subtle',
|
|
75
67
|
textDecoration: 'none'
|
|
76
68
|
}
|
|
77
69
|
});
|
|
78
|
-
var linkStylesOld = xcss({
|
|
79
|
-
top: '-1px'
|
|
80
|
-
});
|
|
81
|
-
var linkStylesHeightFix = xcss({
|
|
82
|
-
top: '0px',
|
|
83
|
-
height: '1.2em'
|
|
84
|
-
});
|
|
85
|
-
var linkStylesNewWithHeightFix = xcss({
|
|
86
|
-
top: '0px',
|
|
87
|
-
visibility: 'hidden',
|
|
88
|
-
height: '1.2em'
|
|
89
|
-
});
|
|
90
|
-
var linkStylesVisible = xcss({
|
|
91
|
-
visibility: 'visible'
|
|
92
|
-
});
|
|
93
|
-
var iconAndLabelStyles = xcss({
|
|
94
|
-
display: 'flex',
|
|
95
|
-
alignItems: 'center',
|
|
96
|
-
height: '100%',
|
|
97
|
-
gap: 'space.025'
|
|
98
|
-
});
|
|
99
70
|
var MIN_AVAILABLE_SPACE_WITH_LABEL_OVERLAY = 45;
|
|
100
71
|
var ICON_WIDTH = 16;
|
|
101
72
|
var DEFAULT_OPEN_TEXT_WIDTH = 28; // Default open text width in English
|
|
102
|
-
|
|
73
|
+
|
|
103
74
|
var visitCardLinkAnalytics = function visitCardLinkAnalytics(editorAnalyticsApi, inputMethod) {
|
|
104
75
|
return function (state, dispatch) {
|
|
105
76
|
if (!(state.selection instanceof NodeSelection)) {
|
|
@@ -114,7 +85,7 @@ var visitCardLinkAnalytics = function visitCardLinkAnalytics(editorAnalyticsApi,
|
|
|
114
85
|
return true;
|
|
115
86
|
};
|
|
116
87
|
};
|
|
117
|
-
var
|
|
88
|
+
var HoverLinkOverlay = function HoverLinkOverlay(_ref) {
|
|
118
89
|
var children = _ref.children,
|
|
119
90
|
_ref$isVisible = _ref.isVisible,
|
|
120
91
|
isVisible = _ref$isVisible === void 0 ? false : _ref$isVisible,
|
|
@@ -234,7 +205,7 @@ var HoverLinkOverlayOriginal = function HoverLinkOverlayOriginal(_ref) {
|
|
|
234
205
|
}
|
|
235
206
|
return jsx("span", {
|
|
236
207
|
ref: containerRef,
|
|
237
|
-
css:
|
|
208
|
+
css: containerStyles,
|
|
238
209
|
onDoubleClick: handleDoubleClick
|
|
239
210
|
// eslint-disable-next-line @atlassian/a11y/mouse-events-have-key-events
|
|
240
211
|
,
|
|
@@ -255,7 +226,7 @@ var HoverLinkOverlayOriginal = function HoverLinkOverlayOriginal(_ref) {
|
|
|
255
226
|
maxLines: 1
|
|
256
227
|
}, label)), isHovered && jsx(Anchor, {
|
|
257
228
|
ref: hoverLinkButtonRef,
|
|
258
|
-
xcss:
|
|
229
|
+
xcss: linkStylesCommon,
|
|
259
230
|
href: url,
|
|
260
231
|
target: "_blank",
|
|
261
232
|
style: {
|
|
@@ -264,7 +235,7 @@ var HoverLinkOverlayOriginal = function HoverLinkOverlayOriginal(_ref) {
|
|
|
264
235
|
onClick: handleClick,
|
|
265
236
|
testId: "inline-card-hoverlink-overlay"
|
|
266
237
|
}, jsx(Box, {
|
|
267
|
-
xcss:
|
|
238
|
+
xcss: iconWrapperStyles,
|
|
268
239
|
"data-inlinecard-button-overlay": "icon-wrapper-line-height",
|
|
269
240
|
testId: "inline-card-hoverlink-overlay-icon"
|
|
270
241
|
}, icon), showLabel && jsx(Text, {
|
|
@@ -274,152 +245,4 @@ var HoverLinkOverlayOriginal = function HoverLinkOverlayOriginal(_ref) {
|
|
|
274
245
|
testId: "inline-card-hoverlink-overlay-label"
|
|
275
246
|
}, label)));
|
|
276
247
|
};
|
|
277
|
-
var HoverLinkOverlayNew = function HoverLinkOverlayNew(_ref2) {
|
|
278
|
-
var children = _ref2.children,
|
|
279
|
-
_ref2$isVisible = _ref2.isVisible,
|
|
280
|
-
isVisible = _ref2$isVisible === void 0 ? false : _ref2$isVisible,
|
|
281
|
-
url = _ref2.url,
|
|
282
|
-
_ref2$compactPadding = _ref2.compactPadding,
|
|
283
|
-
compactPadding = _ref2$compactPadding === void 0 ? false : _ref2$compactPadding,
|
|
284
|
-
editorAnalyticsApi = _ref2.editorAnalyticsApi,
|
|
285
|
-
view = _ref2.view,
|
|
286
|
-
onClick = _ref2.onClick,
|
|
287
|
-
_ref2$showPanelButton = _ref2.showPanelButton,
|
|
288
|
-
showPanelButton = _ref2$showPanelButton === void 0 ? false : _ref2$showPanelButton,
|
|
289
|
-
showPanelButtonIcon = _ref2.showPanelButtonIcon;
|
|
290
|
-
var _useIntl2 = useIntl(),
|
|
291
|
-
formatMessage = _useIntl2.formatMessage;
|
|
292
|
-
var containerRef = useRef(null);
|
|
293
|
-
var iconRef = useRef(null);
|
|
294
|
-
var iconLeftRef = useRef(0);
|
|
295
|
-
var iconAndLabelRef = useRef(null);
|
|
296
|
-
var minMaxWidthRef = useRef();
|
|
297
|
-
var _useState5 = useState(false),
|
|
298
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
299
|
-
showLabel = _useState6[0],
|
|
300
|
-
setShowLabel = _useState6[1];
|
|
301
|
-
var _useState7 = useState(false),
|
|
302
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
303
|
-
isHovered = _useState8[0],
|
|
304
|
-
setHovered = _useState8[1];
|
|
305
|
-
var _useState9 = useState(false),
|
|
306
|
-
_useState0 = _slicedToArray(_useState9, 2),
|
|
307
|
-
showOverlay = _useState0[0],
|
|
308
|
-
setShowOverlay = _useState0[1];
|
|
309
|
-
useLayoutEffect(function () {
|
|
310
|
-
if (!isVisible && !isHovered) {
|
|
311
|
-
return;
|
|
312
|
-
}
|
|
313
|
-
if (!containerRef.current) {
|
|
314
|
-
return;
|
|
315
|
-
}
|
|
316
|
-
if (iconRef.current && iconAndLabelRef.current) {
|
|
317
|
-
var iconRect = iconRef.current.getBoundingClientRect();
|
|
318
|
-
iconLeftRef.current = iconRect.left;
|
|
319
|
-
minMaxWidthRef.current = {
|
|
320
|
-
min: iconRect.width,
|
|
321
|
-
max: iconAndLabelRef.current.getBoundingClientRect().width
|
|
322
|
-
};
|
|
323
|
-
}
|
|
324
|
-
if (!iconLeftRef.current || !minMaxWidthRef.current) {
|
|
325
|
-
return;
|
|
326
|
-
}
|
|
327
|
-
var containerDomRect = containerRef.current.getBoundingClientRect();
|
|
328
|
-
var containerStyles = getComputedStyle(containerRef.current);
|
|
329
|
-
var containerHeight = containerDomRect.height - parseFloat(containerStyles.paddingTop) - parseFloat(containerStyles.paddingBottom) - parseFloat(containerStyles.borderTopWidth) - parseFloat(containerStyles.borderBottomWidth);
|
|
330
|
-
var oneLine = parseFloat(containerStyles.lineHeight) >= containerHeight;
|
|
331
|
-
var firstLineWidth = containerDomRect.right - iconLeftRef.current;
|
|
332
|
-
|
|
333
|
-
// We don't want HoverLinkOverlay to cover the entire card if it is oneline. It allows the user to click on the card itself.
|
|
334
|
-
var reservedWidth = oneLine ? MIN_CARD_WIDTH_NOT_COVERED_BY_OVERLAY : 0;
|
|
335
|
-
var availableWidth = firstLineWidth - reservedWidth;
|
|
336
|
-
|
|
337
|
-
// True when icon and label can be shown
|
|
338
|
-
setShowLabel(availableWidth >= minMaxWidthRef.current.max);
|
|
339
|
-
// True when at least an icon can be shown
|
|
340
|
-
setShowOverlay(availableWidth >= minMaxWidthRef.current.min);
|
|
341
|
-
}, [isVisible, isHovered]);
|
|
342
|
-
var handleOverlayChange = function handleOverlayChange(isHovered) {
|
|
343
|
-
setHovered(isHovered);
|
|
344
|
-
};
|
|
345
|
-
var sendVisitLinkAnalytics = function sendVisitLinkAnalytics(inputMethod) {
|
|
346
|
-
if (editorAnalyticsApi && view) {
|
|
347
|
-
visitCardLinkAnalytics(editorAnalyticsApi, inputMethod)(view.state, view.dispatch);
|
|
348
|
-
}
|
|
349
|
-
};
|
|
350
|
-
var handleDoubleClick = function handleDoubleClick() {
|
|
351
|
-
if (!showPanelButton) {
|
|
352
|
-
sendVisitLinkAnalytics(INPUT_METHOD.DOUBLE_CLICK);
|
|
353
|
-
|
|
354
|
-
// Double click opens the link in a new tab
|
|
355
|
-
window.open(url, '_blank');
|
|
356
|
-
}
|
|
357
|
-
};
|
|
358
|
-
var handleClick = function handleClick(event) {
|
|
359
|
-
if (showPanelButton && onClick) {
|
|
360
|
-
onClick(event);
|
|
361
|
-
} else {
|
|
362
|
-
sendVisitLinkAnalytics(INPUT_METHOD.BUTTON);
|
|
363
|
-
}
|
|
364
|
-
};
|
|
365
|
-
var isPreviewButton = showPanelButton && editorExperiment('platform_editor_preview_panel_linking_exp', true);
|
|
366
|
-
var label = isPreviewButton ? formatMessage(cardMessages.previewButtonTitle) : formatMessage(cardMessages.openButtonTitle);
|
|
367
|
-
var icon = null;
|
|
368
|
-
if (isPreviewButton && showPanelButtonIcon === 'panel') {
|
|
369
|
-
icon = jsx(PanelRightIcon, {
|
|
370
|
-
label: ""
|
|
371
|
-
});
|
|
372
|
-
} else if (isPreviewButton && showPanelButtonIcon === 'modal') {
|
|
373
|
-
icon = jsx(GrowDiagonalIcon, {
|
|
374
|
-
label: ""
|
|
375
|
-
});
|
|
376
|
-
} else {
|
|
377
|
-
icon = jsx(LinkExternalIcon, {
|
|
378
|
-
label: ""
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
return jsx("span", {
|
|
382
|
-
ref: containerRef,
|
|
383
|
-
css: containerStyles,
|
|
384
|
-
onDoubleClick: handleDoubleClick,
|
|
385
|
-
onMouseEnter: function onMouseEnter() {
|
|
386
|
-
return handleOverlayChange(true);
|
|
387
|
-
},
|
|
388
|
-
onMouseLeave: function onMouseLeave() {
|
|
389
|
-
return handleOverlayChange(false);
|
|
390
|
-
},
|
|
391
|
-
role: "presentation" // remove as part of platform_editor_hoverlink_ui_fixes_exp cleanup
|
|
392
|
-
,
|
|
393
|
-
onFocus: function onFocus() {} // remove as part of platform_editor_hoverlink_ui_fixes_exp cleanup
|
|
394
|
-
,
|
|
395
|
-
onBlur: function onBlur() {} // remove as part of platform_editor_hoverlink_ui_fixes_exp cleanup
|
|
396
|
-
}, isHovered && jsx(Anchor, {
|
|
397
|
-
xcss: [linkStylesCommon, linkStylesNewWithHeightFix, showOverlay && linkStylesVisible],
|
|
398
|
-
href: url,
|
|
399
|
-
target: "_blank",
|
|
400
|
-
style: {
|
|
401
|
-
paddingBlock: compactPadding ? '1px' : expValEquals('confluence_compact_text_format', 'isEnabled', true) || expValEquals('cc_editor_ai_content_mode', 'variant', 'test') && fg('platform_editor_content_mode_button_mvp') ? DYNAMIC_PADDING_BLOCK : "var(--ds-space-025, 2px)"
|
|
402
|
-
},
|
|
403
|
-
onClick: handleClick,
|
|
404
|
-
testId: "inline-card-hoverlink-overlay"
|
|
405
|
-
}, jsx(Box, {
|
|
406
|
-
as: "span",
|
|
407
|
-
xcss: iconAndLabelStyles,
|
|
408
|
-
ref: iconAndLabelRef
|
|
409
|
-
}, jsx(Box, {
|
|
410
|
-
ref: iconRef,
|
|
411
|
-
as: "span",
|
|
412
|
-
xcss: iconWrapperStyles,
|
|
413
|
-
"data-inlinecard-button-overlay": "icon-wrapper-line-height",
|
|
414
|
-
testId: "inline-card-hoverlink-overlay-icon"
|
|
415
|
-
}, icon), (showLabel || !minMaxWidthRef.current) && jsx(Text, {
|
|
416
|
-
size: "small",
|
|
417
|
-
color: "color.text.subtle",
|
|
418
|
-
maxLines: 1,
|
|
419
|
-
testId: "inline-card-hoverlink-overlay-label"
|
|
420
|
-
}, label))), children);
|
|
421
|
-
};
|
|
422
|
-
var HoverLinkOverlay = componentWithCondition(function () {
|
|
423
|
-
return expValEquals('platform_editor_hoverlink_ui_fixes_exp', 'cohort', 'css_js_changes');
|
|
424
|
-
}, HoverLinkOverlayNew, HoverLinkOverlayOriginal);
|
|
425
248
|
export default HoverLinkOverlay;
|
|
@@ -33,10 +33,10 @@ export function createNormalizeTextParser() {
|
|
|
33
33
|
var locale = window.navigator.language;
|
|
34
34
|
var thousandSeparator = Intl.NumberFormat(locale).format(11111)
|
|
35
35
|
// @ts-ignore - TS1501 TypeScript 5.9.2 upgrade
|
|
36
|
-
.replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDD40-\uDD49\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDED0-\uDEE3\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59\uDFF0-\uDFF9]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD818[\uDD30-\uDD39]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDD70-\uDD79\uDE80-\uDE96]|\uD833[\uDCF0-\uDCF9]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9\uDDF1-\uDDFA]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
|
|
36
|
+
.replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDD40-\uDD49\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDED0-\uDEE3\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59\uDFF0-\uDFF9]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDDE0-\uDDE9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD818[\uDD30-\uDD39]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDD70-\uDD79\uDE80-\uDE96\uDFF4-\uDFF6]|\uD833[\uDCF0-\uDCF9]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9\uDDF1-\uDDFA]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
|
|
37
37
|
var decimalSeparator = Intl.NumberFormat(locale).format(1.1)
|
|
38
38
|
// @ts-ignore - TS1501 TypeScript 5.9.2 upgrade
|
|
39
|
-
.replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDD40-\uDD49\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDED0-\uDEE3\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59\uDFF0-\uDFF9]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD818[\uDD30-\uDD39]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDD70-\uDD79\uDE80-\uDE96]|\uD833[\uDCF0-\uDCF9]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9\uDDF1-\uDDFA]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
|
|
39
|
+
.replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDD40-\uDD49\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDED0-\uDEE3\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59\uDFF0-\uDFF9]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDDE0-\uDDE9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD818[\uDD30-\uDD39]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDD70-\uDD79\uDE80-\uDE96\uDFF4-\uDFF6]|\uD833[\uDCF0-\uDCF9]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9\uDDF1-\uDDFA]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
|
|
40
40
|
|
|
41
41
|
// Ignored via go/ees005
|
|
42
42
|
// eslint-disable-next-line require-unicode-regexp
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ExtensionLayout } from '@atlaskit/adf-schema';
|
|
2
2
|
import type { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, INPUT_METHOD } from './enums';
|
|
3
|
-
import type { SELECTION_TYPE, TrackAEP } from './utils';
|
|
3
|
+
import type { SELECTION_TYPE, OperationalAEP, TrackAEP } from './utils';
|
|
4
4
|
export declare enum GAP_CURSOR_POSITION {
|
|
5
5
|
LEFT = "left",
|
|
6
6
|
RIGHT = "right"
|
|
@@ -36,8 +36,14 @@ type ExtensionDeletedAEP = TrackAEP<ACTION.DELETED, ACTION_SUBJECT.EXTENSION, Ex
|
|
|
36
36
|
inputMethod?: INPUT_METHOD.TOOLBAR | INPUT_METHOD.FLOATING_TB;
|
|
37
37
|
localId: string;
|
|
38
38
|
}, INPUT_METHOD.TOOLBAR | INPUT_METHOD.FLOATING_TB>;
|
|
39
|
+
type ExtensionCopyFailedAEP = OperationalAEP<ACTION.COPY_FAILED, ACTION_SUBJECT.EXTENSION, ExtensionType, {
|
|
40
|
+
errorMessage: string;
|
|
41
|
+
errorStack?: string;
|
|
42
|
+
extensionKey: string;
|
|
43
|
+
extensionType: string;
|
|
44
|
+
}>;
|
|
39
45
|
type ExtensionAPICalledPayload = TrackAEP<ACTION.INVOKED, ACTION_SUBJECT.EXTENSION, ACTION_SUBJECT_ID.EXTENSION_API, {
|
|
40
46
|
functionName: string;
|
|
41
47
|
}, INPUT_METHOD.EXTENSION_API>;
|
|
42
|
-
export type ExtensionEventPayload = ExtensionUpdateAEP | ExtensionDeletedAEP | ExtensionAPICalledPayload;
|
|
48
|
+
export type ExtensionEventPayload = ExtensionUpdateAEP | ExtensionDeletedAEP | ExtensionCopyFailedAEP | ExtensionAPICalledPayload;
|
|
43
49
|
export {};
|