@atlaskit/renderer 109.53.1 → 109.53.3
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/enums.js +0 -1
- package/dist/cjs/react/nodes/codeBlock/components/codeBlockCopyButton.js +1 -1
- package/dist/cjs/react/nodes/codeBlock/components/codeBlockWrapButton.js +1 -1
- package/dist/cjs/steps/index.js +1 -0
- package/dist/cjs/ui/Renderer/index.js +6 -17
- package/dist/cjs/ui/annotations/hooks/user-selection.js +23 -0
- package/dist/es2019/analytics/enums.js +0 -1
- package/dist/es2019/react/nodes/codeBlock/components/codeBlockCopyButton.js +1 -1
- package/dist/es2019/react/nodes/codeBlock/components/codeBlockWrapButton.js +1 -1
- package/dist/es2019/steps/index.js +1 -1
- package/dist/es2019/ui/Renderer/index.js +6 -17
- package/dist/es2019/ui/annotations/hooks/user-selection.js +25 -0
- package/dist/esm/analytics/enums.js +0 -1
- package/dist/esm/react/nodes/codeBlock/components/codeBlockCopyButton.js +1 -1
- package/dist/esm/react/nodes/codeBlock/components/codeBlockWrapButton.js +1 -1
- package/dist/esm/steps/index.js +1 -1
- package/dist/esm/ui/Renderer/index.js +6 -17
- package/dist/esm/ui/annotations/hooks/user-selection.js +23 -0
- package/dist/types/analytics/enums.d.ts +0 -1
- package/dist/types/analytics/events.d.ts +3 -7
- package/dist/types/steps/index.d.ts +1 -0
- package/dist/types/ui/renderer-props.d.ts +0 -9
- package/dist/types-ts4.5/analytics/enums.d.ts +0 -1
- package/dist/types-ts4.5/analytics/events.d.ts +3 -7
- package/dist/types-ts4.5/steps/index.d.ts +1 -0
- package/dist/types-ts4.5/ui/renderer-props.d.ts +0 -9
- package/package.json +5 -2
- package/dist/cjs/react/utils/performance/RenderTracking.js +0 -44
- package/dist/es2019/react/utils/performance/RenderTracking.js +0 -36
- package/dist/esm/react/utils/performance/RenderTracking.js +0 -37
- package/dist/types/react/utils/performance/RenderTracking.d.ts +0 -15
- package/dist/types-ts4.5/react/utils/performance/RenderTracking.d.ts +0 -15
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/renderer
|
|
2
2
|
|
|
3
|
+
## 109.53.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#138899](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/138899)
|
|
8
|
+
[`e18d6c037fd51`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/e18d6c037fd51) -
|
|
9
|
+
Fix comment button disabled on triple click
|
|
10
|
+
|
|
11
|
+
## 109.53.2
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [#139453](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/139453)
|
|
16
|
+
[`6ca31cec5324f`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/6ca31cec5324f) -
|
|
17
|
+
EDF-957 Removed renderer re-render tracking analytics.
|
|
18
|
+
|
|
3
19
|
## 109.53.1
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -14,7 +14,6 @@ var EVENT_TYPE = exports.EVENT_TYPE = /*#__PURE__*/function (EVENT_TYPE) {
|
|
|
14
14
|
var ACTION = exports.ACTION = /*#__PURE__*/function (ACTION) {
|
|
15
15
|
ACTION["STARTED"] = "started";
|
|
16
16
|
ACTION["RENDERED"] = "rendered";
|
|
17
|
-
ACTION["RE_RENDERED"] = "reRendered";
|
|
18
17
|
ACTION["RENDERER_TTI"] = "tti";
|
|
19
18
|
ACTION["CRASHED"] = "unhandledErrorCaught";
|
|
20
19
|
ACTION["INVALID_PROSEMIRROR_DOCUMENT"] = "invalidProsemirrorDocument";
|
|
@@ -57,7 +57,7 @@ var CopyButton = function CopyButton(_ref) {
|
|
|
57
57
|
}),
|
|
58
58
|
onClick: function onClick(event) {
|
|
59
59
|
fireAnalyticsEvent({
|
|
60
|
-
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.
|
|
60
|
+
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.MEDIA_LINK_TRANSFORMED | ACTION.STARTED | ACTION.TOGGLE_EXPAND | ACTION.UNSUPPORTED_CONTENT_ENCOUNTERED | ACTION.VISITED | ACTION.RENDERED | ACTION.INVALID_PROSEMIRROR_DOCUMENT | ACTION.CRASHED | ... 6 more ... | AnnotationActionType'.
|
|
61
61
|
// This error was introduced after upgrading to TypeScript 5
|
|
62
62
|
action: _enums.ACTION.CLICKED,
|
|
63
63
|
actionSubject: _enums.ACTION_SUBJECT.BUTTON,
|
|
@@ -59,7 +59,7 @@ var CodeBlockWrapButton = function CodeBlockWrapButton(_ref) {
|
|
|
59
59
|
isSelected: wrapLongLines,
|
|
60
60
|
onClick: function onClick(event) {
|
|
61
61
|
fireAnalyticsEvent({
|
|
62
|
-
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.
|
|
62
|
+
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.MEDIA_LINK_TRANSFORMED | ACTION.STARTED | ACTION.TOGGLE_EXPAND | ACTION.UNSUPPORTED_CONTENT_ENCOUNTERED | ACTION.VISITED | ACTION.RENDERED | ACTION.INVALID_PROSEMIRROR_DOCUMENT | ACTION.CRASHED | ... 6 more ... | AnnotationActionType'
|
|
63
63
|
// This error was introduced after upgrading to TypeScript 5
|
|
64
64
|
action: _enums.ACTION.CLICKED,
|
|
65
65
|
actionSubject: _enums.ACTION_SUBJECT.BUTTON,
|
package/dist/cjs/steps/index.js
CHANGED
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createAnnotationStep = createAnnotationStep;
|
|
7
7
|
exports.getPosFromRange = getPosFromRange;
|
|
8
|
+
exports.isRoot = isRoot;
|
|
8
9
|
exports.resolvePos = resolvePos;
|
|
9
10
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
10
11
|
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
@@ -49,7 +49,6 @@ var _clickToEdit = require("./click-to-edit");
|
|
|
49
49
|
var _rendererContext = require("../../renderer-context");
|
|
50
50
|
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
51
51
|
var _ErrorBoundary = require("./ErrorBoundary");
|
|
52
|
-
var _RenderTracking = require("../../react/utils/performance/RenderTracking");
|
|
53
52
|
var _EditorMediaClientProvider = require("../../react/utils/EditorMediaClientProvider");
|
|
54
53
|
var _nodes = require("../../react/nodes");
|
|
55
54
|
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); }
|
|
@@ -64,7 +63,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
64
63
|
var NORMAL_SEVERITY_THRESHOLD = exports.NORMAL_SEVERITY_THRESHOLD = 2000;
|
|
65
64
|
var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
66
65
|
var packageName = "@atlaskit/renderer";
|
|
67
|
-
var packageVersion = "109.53.
|
|
66
|
+
var packageVersion = "109.53.3";
|
|
68
67
|
var defaultNodeComponents = exports.defaultNodeComponents = _nodes.nodeToReact;
|
|
69
68
|
var Renderer = exports.Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
70
69
|
(0, _inherits2.default)(Renderer, _PureComponent);
|
|
@@ -79,9 +78,7 @@ var Renderer = exports.Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
|
79
78
|
*/
|
|
80
79
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderedMeasurementDistortedDurationMonitor", (0, _measureRender.getDistortedDurationMonitor)());
|
|
81
80
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "featureFlags", (0, _memoizeOne.default)(function (featureFlags) {
|
|
82
|
-
var normalizedFeatureFlags = (0, _normalizeFeatureFlags.normalizeFeatureFlags)(featureFlags
|
|
83
|
-
objectFlagKeys: ['rendererRenderTracking']
|
|
84
|
-
});
|
|
81
|
+
var normalizedFeatureFlags = (0, _normalizeFeatureFlags.normalizeFeatureFlags)(featureFlags);
|
|
85
82
|
return {
|
|
86
83
|
featureFlags: normalizedFeatureFlags
|
|
87
84
|
};
|
|
@@ -368,7 +365,7 @@ var Renderer = exports.Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
|
368
365
|
}
|
|
369
366
|
};
|
|
370
367
|
try {
|
|
371
|
-
var _featureFlags$feature
|
|
368
|
+
var _featureFlags$feature;
|
|
372
369
|
var schema = this.getSchema(this.props.schema, this.props.adfStage);
|
|
373
370
|
var _renderDocument = (0, _.renderDocument)(adfDocument, this.serializer, schema, adfStage, this.props.useSpecBasedValidator, this.id, this.fireAnalyticsEvent, this.props.unsupportedContentLevelsTracking, this.props.appearance),
|
|
374
371
|
result = _renderDocument.result,
|
|
@@ -414,17 +411,9 @@ var Renderer = exports.Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
|
414
411
|
height: maxHeight,
|
|
415
412
|
fadeHeight: fadeOutHeight
|
|
416
413
|
}, rendererOutput) : rendererOutput;
|
|
417
|
-
|
|
418
|
-
var reRenderTracking = (rendererRenderTracking === null || rendererRenderTracking === void 0 ? void 0 : rendererRenderTracking.enabled) && (0, _react2.jsx)(_RenderTracking.RenderTracking, {
|
|
419
|
-
componentProps: this.props,
|
|
420
|
-
action: _analytics.ACTION.RE_RENDERED,
|
|
421
|
-
actionSubject: _analytics.ACTION_SUBJECT.RENDERER,
|
|
422
|
-
handleAnalyticsEvent: this.fireAnalyticsEvent,
|
|
423
|
-
useShallow: rendererRenderTracking.useShallow
|
|
424
|
-
});
|
|
425
|
-
return (0, _react2.jsx)(_react.Fragment, null, reRenderTracking, rendererResult);
|
|
414
|
+
return (0, _react2.jsx)(_react.Fragment, null, rendererResult);
|
|
426
415
|
} catch (e) {
|
|
427
|
-
var _featureFlags$
|
|
416
|
+
var _featureFlags$feature2;
|
|
428
417
|
if (onError) {
|
|
429
418
|
onError(e);
|
|
430
419
|
}
|
|
@@ -436,7 +425,7 @@ var Renderer = exports.Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
|
436
425
|
allowPlaceholderText: allowPlaceholderText,
|
|
437
426
|
allowColumnSorting: allowColumnSorting,
|
|
438
427
|
allowNestedHeaderLinks: allowNestedHeaderLinks,
|
|
439
|
-
useBlockRenderForCodeBlock: (_featureFlags$
|
|
428
|
+
useBlockRenderForCodeBlock: (_featureFlags$feature2 = featureFlags.featureFlags.useBlockRenderForCodeBlock) !== null && _featureFlags$feature2 !== void 0 ? _featureFlags$feature2 : true,
|
|
440
429
|
addTelepointer: this.props.addTelepointer,
|
|
441
430
|
onClick: handleWrapperOnClick
|
|
442
431
|
}, (0, _react2.jsx)(_ui.UnsupportedBlock, null));
|
|
@@ -5,8 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useUserSelectionRange = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
8
9
|
var _AnnotationRangeContext = require("../contexts/AnnotationRangeContext");
|
|
9
10
|
var _utils = require("./utils");
|
|
11
|
+
var _steps = require("../../../steps");
|
|
10
12
|
var useUserSelectionRange = exports.useUserSelectionRange = function useUserSelectionRange(props) {
|
|
11
13
|
var rendererDOM = props.rendererRef.current;
|
|
12
14
|
var selectionTimeoutRef = (0, _react.useRef)();
|
|
@@ -32,6 +34,27 @@ var useUserSelectionRange = exports.useUserSelectionRange = function useUserSele
|
|
|
32
34
|
}
|
|
33
35
|
var _range = sel.getRangeAt(0);
|
|
34
36
|
if (rendererDOM && (0, _utils.isRangeInsideOfRendererContainer)(rendererDOM, _range)) {
|
|
37
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_allow_annotation_triple_click')) {
|
|
38
|
+
var startContainer = _range.startContainer,
|
|
39
|
+
endContainer = _range.endContainer,
|
|
40
|
+
commonAncestorContainer = _range.commonAncestorContainer;
|
|
41
|
+
|
|
42
|
+
// ED-23493
|
|
43
|
+
// On triple-click in Chrome and Safari, the native Selection API's range has endContainer as a non-text node
|
|
44
|
+
// and commonAncestorContainer as root level div.ak-renderer-document when the node is followed by div or hr.
|
|
45
|
+
|
|
46
|
+
// Triple clicks are the only case that can cause the endContainer to be a non-text node
|
|
47
|
+
// Same check for highlight range logic in confluence/next/packages/comments-util/src/domUtils.ts Line 180
|
|
48
|
+
var isTripleClick = endContainer.nodeType !== Node.TEXT_NODE;
|
|
49
|
+
|
|
50
|
+
// isAnnotationAllowedOnRange range validation is checking if the parent container is root element and disable the comment if it is.
|
|
51
|
+
// platform/packages/editor/renderer/src/steps/index.ts Line 180
|
|
52
|
+
|
|
53
|
+
// This workaround ensures the endContainer is set to a text node when endContainer is non-text and the parent container is the root element
|
|
54
|
+
if (isTripleClick && (0, _steps.isRoot)(commonAncestorContainer)) {
|
|
55
|
+
_range.setEnd(startContainer, startContainer.length || 0);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
35
58
|
setRange(_range.cloneRange());
|
|
36
59
|
}
|
|
37
60
|
}, 250);
|
|
@@ -8,7 +8,6 @@ export let EVENT_TYPE = /*#__PURE__*/function (EVENT_TYPE) {
|
|
|
8
8
|
export let ACTION = /*#__PURE__*/function (ACTION) {
|
|
9
9
|
ACTION["STARTED"] = "started";
|
|
10
10
|
ACTION["RENDERED"] = "rendered";
|
|
11
|
-
ACTION["RE_RENDERED"] = "reRendered";
|
|
12
11
|
ACTION["RENDERER_TTI"] = "tti";
|
|
13
12
|
ACTION["CRASHED"] = "unhandledErrorCaught";
|
|
14
13
|
ACTION["INVALID_PROSEMIRROR_DOCUMENT"] = "invalidProsemirrorDocument";
|
|
@@ -43,7 +43,7 @@ const CopyButton = ({
|
|
|
43
43
|
}),
|
|
44
44
|
onClick: event => {
|
|
45
45
|
fireAnalyticsEvent({
|
|
46
|
-
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.
|
|
46
|
+
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.MEDIA_LINK_TRANSFORMED | ACTION.STARTED | ACTION.TOGGLE_EXPAND | ACTION.UNSUPPORTED_CONTENT_ENCOUNTERED | ACTION.VISITED | ACTION.RENDERED | ACTION.INVALID_PROSEMIRROR_DOCUMENT | ACTION.CRASHED | ... 6 more ... | AnnotationActionType'.
|
|
47
47
|
// This error was introduced after upgrading to TypeScript 5
|
|
48
48
|
action: ACTION.CLICKED,
|
|
49
49
|
actionSubject: ACTION_SUBJECT.BUTTON,
|
|
@@ -52,7 +52,7 @@ const CodeBlockWrapButton = ({
|
|
|
52
52
|
isSelected: wrapLongLines,
|
|
53
53
|
onClick: event => {
|
|
54
54
|
fireAnalyticsEvent({
|
|
55
|
-
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.
|
|
55
|
+
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.MEDIA_LINK_TRANSFORMED | ACTION.STARTED | ACTION.TOGGLE_EXPAND | ACTION.UNSUPPORTED_CONTENT_ENCOUNTERED | ACTION.VISITED | ACTION.RENDERED | ACTION.INVALID_PROSEMIRROR_DOCUMENT | ACTION.CRASHED | ... 6 more ... | AnnotationActionType'
|
|
56
56
|
// This error was introduced after upgrading to TypeScript 5
|
|
57
57
|
action: ACTION.CLICKED,
|
|
58
58
|
actionSubject: ACTION_SUBJECT.BUTTON,
|
|
@@ -124,7 +124,7 @@ function resolveNodePos(node) {
|
|
|
124
124
|
}
|
|
125
125
|
return resolvedPos;
|
|
126
126
|
}
|
|
127
|
-
function isRoot(element) {
|
|
127
|
+
export function isRoot(element) {
|
|
128
128
|
return !!element && element.classList.contains('ak-renderer-document');
|
|
129
129
|
}
|
|
130
130
|
export function resolvePos(node, offset, findEnd = false) {
|
|
@@ -40,13 +40,12 @@ import { isInteractiveElement } from './click-to-edit';
|
|
|
40
40
|
import { RendererContextProvider } from '../../renderer-context';
|
|
41
41
|
import memoizeOne from 'memoize-one';
|
|
42
42
|
import { ErrorBoundary } from './ErrorBoundary';
|
|
43
|
-
import { RenderTracking } from '../../react/utils/performance/RenderTracking';
|
|
44
43
|
import { EditorMediaClientProvider } from '../../react/utils/EditorMediaClientProvider';
|
|
45
44
|
import { nodeToReact } from '../../react/nodes';
|
|
46
45
|
export const NORMAL_SEVERITY_THRESHOLD = 2000;
|
|
47
46
|
export const DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
48
47
|
const packageName = "@atlaskit/renderer";
|
|
49
|
-
const packageVersion = "109.53.
|
|
48
|
+
const packageVersion = "109.53.3";
|
|
50
49
|
export const defaultNodeComponents = nodeToReact;
|
|
51
50
|
export class Renderer extends PureComponent {
|
|
52
51
|
constructor(props) {
|
|
@@ -57,9 +56,7 @@ export class Renderer extends PureComponent {
|
|
|
57
56
|
*/
|
|
58
57
|
_defineProperty(this, "renderedMeasurementDistortedDurationMonitor", getDistortedDurationMonitor());
|
|
59
58
|
_defineProperty(this, "featureFlags", memoizeOne(featureFlags => {
|
|
60
|
-
const normalizedFeatureFlags = normalizeFeatureFlags(featureFlags
|
|
61
|
-
objectFlagKeys: ['rendererRenderTracking']
|
|
62
|
-
});
|
|
59
|
+
const normalizedFeatureFlags = normalizeFeatureFlags(featureFlags);
|
|
63
60
|
return {
|
|
64
61
|
featureFlags: normalizedFeatureFlags
|
|
65
62
|
};
|
|
@@ -346,7 +343,7 @@ export class Renderer extends PureComponent {
|
|
|
346
343
|
}
|
|
347
344
|
};
|
|
348
345
|
try {
|
|
349
|
-
var _featureFlags$feature
|
|
346
|
+
var _featureFlags$feature;
|
|
350
347
|
const schema = this.getSchema(this.props.schema, this.props.adfStage);
|
|
351
348
|
const {
|
|
352
349
|
result,
|
|
@@ -391,17 +388,9 @@ export class Renderer extends PureComponent {
|
|
|
391
388
|
height: maxHeight,
|
|
392
389
|
fadeHeight: fadeOutHeight
|
|
393
390
|
}, rendererOutput) : rendererOutput;
|
|
394
|
-
|
|
395
|
-
const reRenderTracking = (rendererRenderTracking === null || rendererRenderTracking === void 0 ? void 0 : rendererRenderTracking.enabled) && jsx(RenderTracking, {
|
|
396
|
-
componentProps: this.props,
|
|
397
|
-
action: ACTION.RE_RENDERED,
|
|
398
|
-
actionSubject: ACTION_SUBJECT.RENDERER,
|
|
399
|
-
handleAnalyticsEvent: this.fireAnalyticsEvent,
|
|
400
|
-
useShallow: rendererRenderTracking.useShallow
|
|
401
|
-
});
|
|
402
|
-
return jsx(Fragment, null, reRenderTracking, rendererResult);
|
|
391
|
+
return jsx(Fragment, null, rendererResult);
|
|
403
392
|
} catch (e) {
|
|
404
|
-
var _featureFlags$
|
|
393
|
+
var _featureFlags$feature2;
|
|
405
394
|
if (onError) {
|
|
406
395
|
onError(e);
|
|
407
396
|
}
|
|
@@ -413,7 +402,7 @@ export class Renderer extends PureComponent {
|
|
|
413
402
|
allowPlaceholderText: allowPlaceholderText,
|
|
414
403
|
allowColumnSorting: allowColumnSorting,
|
|
415
404
|
allowNestedHeaderLinks: allowNestedHeaderLinks,
|
|
416
|
-
useBlockRenderForCodeBlock: (_featureFlags$
|
|
405
|
+
useBlockRenderForCodeBlock: (_featureFlags$feature2 = featureFlags.featureFlags.useBlockRenderForCodeBlock) !== null && _featureFlags$feature2 !== void 0 ? _featureFlags$feature2 : true,
|
|
417
406
|
addTelepointer: this.props.addTelepointer,
|
|
418
407
|
onClick: handleWrapperOnClick
|
|
419
408
|
}, jsx(UnsupportedBlock, null));
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
2
3
|
import { useAnnotationRangeDispatch, useAnnotationRangeState } from '../contexts/AnnotationRangeContext';
|
|
3
4
|
import { isRangeInsideOfRendererContainer } from './utils';
|
|
5
|
+
import { isRoot } from '../../../steps';
|
|
4
6
|
export const useUserSelectionRange = props => {
|
|
5
7
|
const {
|
|
6
8
|
rendererRef: {
|
|
@@ -32,6 +34,29 @@ export const useUserSelectionRange = props => {
|
|
|
32
34
|
}
|
|
33
35
|
const _range = sel.getRangeAt(0);
|
|
34
36
|
if (rendererDOM && isRangeInsideOfRendererContainer(rendererDOM, _range)) {
|
|
37
|
+
if (fg('platform_editor_allow_annotation_triple_click')) {
|
|
38
|
+
const {
|
|
39
|
+
startContainer,
|
|
40
|
+
endContainer,
|
|
41
|
+
commonAncestorContainer
|
|
42
|
+
} = _range;
|
|
43
|
+
|
|
44
|
+
// ED-23493
|
|
45
|
+
// On triple-click in Chrome and Safari, the native Selection API's range has endContainer as a non-text node
|
|
46
|
+
// and commonAncestorContainer as root level div.ak-renderer-document when the node is followed by div or hr.
|
|
47
|
+
|
|
48
|
+
// Triple clicks are the only case that can cause the endContainer to be a non-text node
|
|
49
|
+
// Same check for highlight range logic in confluence/next/packages/comments-util/src/domUtils.ts Line 180
|
|
50
|
+
const isTripleClick = endContainer.nodeType !== Node.TEXT_NODE;
|
|
51
|
+
|
|
52
|
+
// isAnnotationAllowedOnRange range validation is checking if the parent container is root element and disable the comment if it is.
|
|
53
|
+
// platform/packages/editor/renderer/src/steps/index.ts Line 180
|
|
54
|
+
|
|
55
|
+
// This workaround ensures the endContainer is set to a text node when endContainer is non-text and the parent container is the root element
|
|
56
|
+
if (isTripleClick && isRoot(commonAncestorContainer)) {
|
|
57
|
+
_range.setEnd(startContainer, startContainer.length || 0);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
35
60
|
setRange(_range.cloneRange());
|
|
36
61
|
}
|
|
37
62
|
}, 250);
|
|
@@ -8,7 +8,6 @@ export var EVENT_TYPE = /*#__PURE__*/function (EVENT_TYPE) {
|
|
|
8
8
|
export var ACTION = /*#__PURE__*/function (ACTION) {
|
|
9
9
|
ACTION["STARTED"] = "started";
|
|
10
10
|
ACTION["RENDERED"] = "rendered";
|
|
11
|
-
ACTION["RE_RENDERED"] = "reRendered";
|
|
12
11
|
ACTION["RENDERER_TTI"] = "tti";
|
|
13
12
|
ACTION["CRASHED"] = "unhandledErrorCaught";
|
|
14
13
|
ACTION["INVALID_PROSEMIRROR_DOCUMENT"] = "invalidProsemirrorDocument";
|
|
@@ -49,7 +49,7 @@ var CopyButton = function CopyButton(_ref) {
|
|
|
49
49
|
}),
|
|
50
50
|
onClick: function onClick(event) {
|
|
51
51
|
fireAnalyticsEvent({
|
|
52
|
-
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.
|
|
52
|
+
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.MEDIA_LINK_TRANSFORMED | ACTION.STARTED | ACTION.TOGGLE_EXPAND | ACTION.UNSUPPORTED_CONTENT_ENCOUNTERED | ACTION.VISITED | ACTION.RENDERED | ACTION.INVALID_PROSEMIRROR_DOCUMENT | ACTION.CRASHED | ... 6 more ... | AnnotationActionType'.
|
|
53
53
|
// This error was introduced after upgrading to TypeScript 5
|
|
54
54
|
action: ACTION.CLICKED,
|
|
55
55
|
actionSubject: ACTION_SUBJECT.BUTTON,
|
|
@@ -51,7 +51,7 @@ var CodeBlockWrapButton = function CodeBlockWrapButton(_ref) {
|
|
|
51
51
|
isSelected: wrapLongLines,
|
|
52
52
|
onClick: function onClick(event) {
|
|
53
53
|
fireAnalyticsEvent({
|
|
54
|
-
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.
|
|
54
|
+
// @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.EDITOR_TTI | ACTION.MEDIA_LINK_TRANSFORMED | ACTION.STARTED | ACTION.TOGGLE_EXPAND | ACTION.UNSUPPORTED_CONTENT_ENCOUNTERED | ACTION.VISITED | ACTION.RENDERED | ACTION.INVALID_PROSEMIRROR_DOCUMENT | ACTION.CRASHED | ... 6 more ... | AnnotationActionType'
|
|
55
55
|
// This error was introduced after upgrading to TypeScript 5
|
|
56
56
|
action: ACTION.CLICKED,
|
|
57
57
|
actionSubject: ACTION_SUBJECT.BUTTON,
|
package/dist/esm/steps/index.js
CHANGED
|
@@ -120,7 +120,7 @@ function resolveNodePos(node) {
|
|
|
120
120
|
}
|
|
121
121
|
return resolvedPos;
|
|
122
122
|
}
|
|
123
|
-
function isRoot(element) {
|
|
123
|
+
export function isRoot(element) {
|
|
124
124
|
return !!element && element.classList.contains('ak-renderer-document');
|
|
125
125
|
}
|
|
126
126
|
export function resolvePos(node, offset) {
|
|
@@ -50,13 +50,12 @@ import { isInteractiveElement } from './click-to-edit';
|
|
|
50
50
|
import { RendererContextProvider } from '../../renderer-context';
|
|
51
51
|
import memoizeOne from 'memoize-one';
|
|
52
52
|
import { ErrorBoundary } from './ErrorBoundary';
|
|
53
|
-
import { RenderTracking } from '../../react/utils/performance/RenderTracking';
|
|
54
53
|
import { EditorMediaClientProvider } from '../../react/utils/EditorMediaClientProvider';
|
|
55
54
|
import { nodeToReact } from '../../react/nodes';
|
|
56
55
|
export var NORMAL_SEVERITY_THRESHOLD = 2000;
|
|
57
56
|
export var DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
58
57
|
var packageName = "@atlaskit/renderer";
|
|
59
|
-
var packageVersion = "109.53.
|
|
58
|
+
var packageVersion = "109.53.3";
|
|
60
59
|
export var defaultNodeComponents = nodeToReact;
|
|
61
60
|
export var Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
62
61
|
_inherits(Renderer, _PureComponent);
|
|
@@ -71,9 +70,7 @@ export var Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
|
71
70
|
*/
|
|
72
71
|
_defineProperty(_assertThisInitialized(_this), "renderedMeasurementDistortedDurationMonitor", getDistortedDurationMonitor());
|
|
73
72
|
_defineProperty(_assertThisInitialized(_this), "featureFlags", memoizeOne(function (featureFlags) {
|
|
74
|
-
var normalizedFeatureFlags = normalizeFeatureFlags(featureFlags
|
|
75
|
-
objectFlagKeys: ['rendererRenderTracking']
|
|
76
|
-
});
|
|
73
|
+
var normalizedFeatureFlags = normalizeFeatureFlags(featureFlags);
|
|
77
74
|
return {
|
|
78
75
|
featureFlags: normalizedFeatureFlags
|
|
79
76
|
};
|
|
@@ -360,7 +357,7 @@ export var Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
|
360
357
|
}
|
|
361
358
|
};
|
|
362
359
|
try {
|
|
363
|
-
var _featureFlags$feature
|
|
360
|
+
var _featureFlags$feature;
|
|
364
361
|
var schema = this.getSchema(this.props.schema, this.props.adfStage);
|
|
365
362
|
var _renderDocument = renderDocument(adfDocument, this.serializer, schema, adfStage, this.props.useSpecBasedValidator, this.id, this.fireAnalyticsEvent, this.props.unsupportedContentLevelsTracking, this.props.appearance),
|
|
366
363
|
result = _renderDocument.result,
|
|
@@ -406,17 +403,9 @@ export var Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
|
406
403
|
height: maxHeight,
|
|
407
404
|
fadeHeight: fadeOutHeight
|
|
408
405
|
}, rendererOutput) : rendererOutput;
|
|
409
|
-
|
|
410
|
-
var reRenderTracking = (rendererRenderTracking === null || rendererRenderTracking === void 0 ? void 0 : rendererRenderTracking.enabled) && jsx(RenderTracking, {
|
|
411
|
-
componentProps: this.props,
|
|
412
|
-
action: ACTION.RE_RENDERED,
|
|
413
|
-
actionSubject: ACTION_SUBJECT.RENDERER,
|
|
414
|
-
handleAnalyticsEvent: this.fireAnalyticsEvent,
|
|
415
|
-
useShallow: rendererRenderTracking.useShallow
|
|
416
|
-
});
|
|
417
|
-
return jsx(Fragment, null, reRenderTracking, rendererResult);
|
|
406
|
+
return jsx(Fragment, null, rendererResult);
|
|
418
407
|
} catch (e) {
|
|
419
|
-
var _featureFlags$
|
|
408
|
+
var _featureFlags$feature2;
|
|
420
409
|
if (onError) {
|
|
421
410
|
onError(e);
|
|
422
411
|
}
|
|
@@ -428,7 +417,7 @@ export var Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
|
428
417
|
allowPlaceholderText: allowPlaceholderText,
|
|
429
418
|
allowColumnSorting: allowColumnSorting,
|
|
430
419
|
allowNestedHeaderLinks: allowNestedHeaderLinks,
|
|
431
|
-
useBlockRenderForCodeBlock: (_featureFlags$
|
|
420
|
+
useBlockRenderForCodeBlock: (_featureFlags$feature2 = featureFlags.featureFlags.useBlockRenderForCodeBlock) !== null && _featureFlags$feature2 !== void 0 ? _featureFlags$feature2 : true,
|
|
432
421
|
addTelepointer: this.props.addTelepointer,
|
|
433
422
|
onClick: handleWrapperOnClick
|
|
434
423
|
}, jsx(UnsupportedBlock, null));
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
2
3
|
import { useAnnotationRangeDispatch, useAnnotationRangeState } from '../contexts/AnnotationRangeContext';
|
|
3
4
|
import { isRangeInsideOfRendererContainer } from './utils';
|
|
5
|
+
import { isRoot } from '../../../steps';
|
|
4
6
|
export var useUserSelectionRange = function useUserSelectionRange(props) {
|
|
5
7
|
var rendererDOM = props.rendererRef.current;
|
|
6
8
|
var selectionTimeoutRef = useRef();
|
|
@@ -26,6 +28,27 @@ export var useUserSelectionRange = function useUserSelectionRange(props) {
|
|
|
26
28
|
}
|
|
27
29
|
var _range = sel.getRangeAt(0);
|
|
28
30
|
if (rendererDOM && isRangeInsideOfRendererContainer(rendererDOM, _range)) {
|
|
31
|
+
if (fg('platform_editor_allow_annotation_triple_click')) {
|
|
32
|
+
var startContainer = _range.startContainer,
|
|
33
|
+
endContainer = _range.endContainer,
|
|
34
|
+
commonAncestorContainer = _range.commonAncestorContainer;
|
|
35
|
+
|
|
36
|
+
// ED-23493
|
|
37
|
+
// On triple-click in Chrome and Safari, the native Selection API's range has endContainer as a non-text node
|
|
38
|
+
// and commonAncestorContainer as root level div.ak-renderer-document when the node is followed by div or hr.
|
|
39
|
+
|
|
40
|
+
// Triple clicks are the only case that can cause the endContainer to be a non-text node
|
|
41
|
+
// Same check for highlight range logic in confluence/next/packages/comments-util/src/domUtils.ts Line 180
|
|
42
|
+
var isTripleClick = endContainer.nodeType !== Node.TEXT_NODE;
|
|
43
|
+
|
|
44
|
+
// isAnnotationAllowedOnRange range validation is checking if the parent container is root element and disable the comment if it is.
|
|
45
|
+
// platform/packages/editor/renderer/src/steps/index.ts Line 180
|
|
46
|
+
|
|
47
|
+
// This workaround ensures the endContainer is set to a text node when endContainer is non-text and the parent container is the root element
|
|
48
|
+
if (isTripleClick && isRoot(commonAncestorContainer)) {
|
|
49
|
+
_range.setEnd(startContainer, startContainer.length || 0);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
29
52
|
setRange(_range.cloneRange());
|
|
30
53
|
}
|
|
31
54
|
}, 250);
|
|
@@ -7,7 +7,6 @@ export declare enum EVENT_TYPE {
|
|
|
7
7
|
export declare enum ACTION {
|
|
8
8
|
STARTED = "started",
|
|
9
9
|
RENDERED = "rendered",
|
|
10
|
-
RE_RENDERED = "reRendered",
|
|
11
10
|
RENDERER_TTI = "tti",
|
|
12
11
|
CRASHED = "unhandledErrorCaught",
|
|
13
12
|
INVALID_PROSEMIRROR_DOCUMENT = "invalidProsemirrorDocument",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, OperationalAEP } from '@atlaskit/editor-common/analytics';
|
|
2
2
|
import type { AEP } from './enums';
|
|
3
|
-
import type {
|
|
3
|
+
import type { SEVERITY, UNSUPPORTED_CONTENT_LEVEL_SEVERITY } from '@atlaskit/editor-common/utils';
|
|
4
4
|
import type { UnsupportedContentPayload, UnsupportedContentTooltipPayload } from '@atlaskit/editor-common/utils';
|
|
5
5
|
import type { SortOrder } from '@atlaskit/editor-common/types';
|
|
6
6
|
export declare enum PLATFORM {
|
|
@@ -23,11 +23,6 @@ type RendererRenderedAEP = AEP<ACTION.RENDERED, ACTION_SUBJECT.RENDERER, undefin
|
|
|
23
23
|
nodes: Record<string, number>;
|
|
24
24
|
severity?: SEVERITY;
|
|
25
25
|
}, EVENT_TYPE.OPERATIONAL>;
|
|
26
|
-
type RendererReRenderedAEP<Props> = AEP<ACTION.RE_RENDERED, ACTION_SUBJECT.RENDERER, undefined, {
|
|
27
|
-
propsDifference: PropsDifference<Props> | ShallowPropsDifference<Props>;
|
|
28
|
-
count: number;
|
|
29
|
-
componentId?: string;
|
|
30
|
-
}, EVENT_TYPE.OPERATIONAL>;
|
|
31
26
|
export type ComponentCrashErrorAEP = OperationalAEP<ACTION.CRASHED, ACTION_SUBJECT.RENDERER, ACTION_SUBJECT_ID, {
|
|
32
27
|
platform: PLATFORM.WEB;
|
|
33
28
|
errorMessage?: string;
|
|
@@ -119,5 +114,6 @@ type RendererTTIAEP = AEP<ACTION.RENDERER_TTI, ACTION_SUBJECT.RENDERER, undefine
|
|
|
119
114
|
ttiFromInvocation: number;
|
|
120
115
|
canceled: boolean;
|
|
121
116
|
}, EVENT_TYPE.OPERATIONAL>;
|
|
122
|
-
export type AnalyticsEventPayload<T = void> = RendererStartAEP | RendererRenderedAEP |
|
|
117
|
+
export type AnalyticsEventPayload<T = void> = RendererStartAEP | RendererRenderedAEP | ComponentCrashErrorAEP | RendererUnsupportedContentLevelsTrackingSucceeded | RendererUnsupportedContentLevelsTrackingErrored | RendererSelectAllCaughtAEP | RendererSelectAllEscapedAEP | CodeBlockCopyAEP | CodeBlockWrapAEP | HeadingAnchorLinkButtonAEP | AnchorLinkAEP | TableSortColumnNotAllowedAEP | TableSortColumnAEP | VisitLinkAEP | VisitMediaLinkAEP | ExpandAEP | UnsupportedContentPayload | UnsupportedContentTooltipPayload | AnnotationAEP | AnnotationDeleteAEP | MediaLnkTransformedAEP | InvalidProsemirrorDocumentErrorAEP | RendererTTIAEP;
|
|
118
|
+
export type FireAnalyticsCallback = <T = void>(payload: AnalyticsEventPayload<T>) => void | undefined;
|
|
123
119
|
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Schema } from '@atlaskit/editor-prosemirror/model';
|
|
2
2
|
import { AddMarkStep } from '@atlaskit/editor-prosemirror/transform';
|
|
3
|
+
export declare function isRoot(element: HTMLElement | null): boolean;
|
|
3
4
|
export declare function resolvePos(node: Node | null, offset: number, findEnd?: boolean): number | false;
|
|
4
5
|
interface AnnotationStepOptions {
|
|
5
6
|
schema: Schema;
|
|
@@ -13,21 +13,12 @@ import type { RenderOutputStat } from '../render-document';
|
|
|
13
13
|
import type { RendererAppearance, StickyHeaderProps, HeadingAnchorLinksProps, NodeComponentsProps } from './Renderer/types';
|
|
14
14
|
import type { MediaOptions } from '../types/mediaOptions';
|
|
15
15
|
import type { SmartLinksOptions } from '../types/smartLinksOptions';
|
|
16
|
-
import type { ACTION_SUBJECT } from '@atlaskit/editor-common/analytics';
|
|
17
16
|
import type { DocNode } from '@atlaskit/adf-schema';
|
|
18
17
|
import type { TextHighlighter } from '../react/types';
|
|
19
18
|
export type { NodeComponentsProps } from './Renderer/types';
|
|
20
19
|
interface RawObjectFeatureFlags {
|
|
21
20
|
['renderer-render-tracking']: string;
|
|
22
21
|
}
|
|
23
|
-
export interface NormalizedObjectFeatureFlags {
|
|
24
|
-
rendererRenderTracking: {
|
|
25
|
-
[ACTION_SUBJECT.RENDERER]: {
|
|
26
|
-
enabled: boolean;
|
|
27
|
-
useShallow: boolean;
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
22
|
export interface RendererProps {
|
|
32
23
|
document: DocNode;
|
|
33
24
|
dataProviders?: ProviderFactory;
|
|
@@ -7,7 +7,6 @@ export declare enum EVENT_TYPE {
|
|
|
7
7
|
export declare enum ACTION {
|
|
8
8
|
STARTED = "started",
|
|
9
9
|
RENDERED = "rendered",
|
|
10
|
-
RE_RENDERED = "reRendered",
|
|
11
10
|
RENDERER_TTI = "tti",
|
|
12
11
|
CRASHED = "unhandledErrorCaught",
|
|
13
12
|
INVALID_PROSEMIRROR_DOCUMENT = "invalidProsemirrorDocument",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, OperationalAEP } from '@atlaskit/editor-common/analytics';
|
|
2
2
|
import type { AEP } from './enums';
|
|
3
|
-
import type {
|
|
3
|
+
import type { SEVERITY, UNSUPPORTED_CONTENT_LEVEL_SEVERITY } from '@atlaskit/editor-common/utils';
|
|
4
4
|
import type { UnsupportedContentPayload, UnsupportedContentTooltipPayload } from '@atlaskit/editor-common/utils';
|
|
5
5
|
import type { SortOrder } from '@atlaskit/editor-common/types';
|
|
6
6
|
export declare enum PLATFORM {
|
|
@@ -23,11 +23,6 @@ type RendererRenderedAEP = AEP<ACTION.RENDERED, ACTION_SUBJECT.RENDERER, undefin
|
|
|
23
23
|
nodes: Record<string, number>;
|
|
24
24
|
severity?: SEVERITY;
|
|
25
25
|
}, EVENT_TYPE.OPERATIONAL>;
|
|
26
|
-
type RendererReRenderedAEP<Props> = AEP<ACTION.RE_RENDERED, ACTION_SUBJECT.RENDERER, undefined, {
|
|
27
|
-
propsDifference: PropsDifference<Props> | ShallowPropsDifference<Props>;
|
|
28
|
-
count: number;
|
|
29
|
-
componentId?: string;
|
|
30
|
-
}, EVENT_TYPE.OPERATIONAL>;
|
|
31
26
|
export type ComponentCrashErrorAEP = OperationalAEP<ACTION.CRASHED, ACTION_SUBJECT.RENDERER, ACTION_SUBJECT_ID, {
|
|
32
27
|
platform: PLATFORM.WEB;
|
|
33
28
|
errorMessage?: string;
|
|
@@ -119,5 +114,6 @@ type RendererTTIAEP = AEP<ACTION.RENDERER_TTI, ACTION_SUBJECT.RENDERER, undefine
|
|
|
119
114
|
ttiFromInvocation: number;
|
|
120
115
|
canceled: boolean;
|
|
121
116
|
}, EVENT_TYPE.OPERATIONAL>;
|
|
122
|
-
export type AnalyticsEventPayload<T = void> = RendererStartAEP | RendererRenderedAEP |
|
|
117
|
+
export type AnalyticsEventPayload<T = void> = RendererStartAEP | RendererRenderedAEP | ComponentCrashErrorAEP | RendererUnsupportedContentLevelsTrackingSucceeded | RendererUnsupportedContentLevelsTrackingErrored | RendererSelectAllCaughtAEP | RendererSelectAllEscapedAEP | CodeBlockCopyAEP | CodeBlockWrapAEP | HeadingAnchorLinkButtonAEP | AnchorLinkAEP | TableSortColumnNotAllowedAEP | TableSortColumnAEP | VisitLinkAEP | VisitMediaLinkAEP | ExpandAEP | UnsupportedContentPayload | UnsupportedContentTooltipPayload | AnnotationAEP | AnnotationDeleteAEP | MediaLnkTransformedAEP | InvalidProsemirrorDocumentErrorAEP | RendererTTIAEP;
|
|
118
|
+
export type FireAnalyticsCallback = <T = void>(payload: AnalyticsEventPayload<T>) => void | undefined;
|
|
123
119
|
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Schema } from '@atlaskit/editor-prosemirror/model';
|
|
2
2
|
import { AddMarkStep } from '@atlaskit/editor-prosemirror/transform';
|
|
3
|
+
export declare function isRoot(element: HTMLElement | null): boolean;
|
|
3
4
|
export declare function resolvePos(node: Node | null, offset: number, findEnd?: boolean): number | false;
|
|
4
5
|
interface AnnotationStepOptions {
|
|
5
6
|
schema: Schema;
|
|
@@ -13,21 +13,12 @@ import type { RenderOutputStat } from '../render-document';
|
|
|
13
13
|
import type { RendererAppearance, StickyHeaderProps, HeadingAnchorLinksProps, NodeComponentsProps } from './Renderer/types';
|
|
14
14
|
import type { MediaOptions } from '../types/mediaOptions';
|
|
15
15
|
import type { SmartLinksOptions } from '../types/smartLinksOptions';
|
|
16
|
-
import type { ACTION_SUBJECT } from '@atlaskit/editor-common/analytics';
|
|
17
16
|
import type { DocNode } from '@atlaskit/adf-schema';
|
|
18
17
|
import type { TextHighlighter } from '../react/types';
|
|
19
18
|
export type { NodeComponentsProps } from './Renderer/types';
|
|
20
19
|
interface RawObjectFeatureFlags {
|
|
21
20
|
['renderer-render-tracking']: string;
|
|
22
21
|
}
|
|
23
|
-
export interface NormalizedObjectFeatureFlags {
|
|
24
|
-
rendererRenderTracking: {
|
|
25
|
-
[ACTION_SUBJECT.RENDERER]: {
|
|
26
|
-
enabled: boolean;
|
|
27
|
-
useShallow: boolean;
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
22
|
export interface RendererProps {
|
|
32
23
|
document: DocNode;
|
|
33
24
|
dataProviders?: ProviderFactory;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/renderer",
|
|
3
|
-
"version": "109.53.
|
|
3
|
+
"version": "109.53.3",
|
|
4
4
|
"description": "Renderer component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@atlaskit/media-ui": "^25.11.0",
|
|
47
47
|
"@atlaskit/media-viewer": "^48.7.0",
|
|
48
48
|
"@atlaskit/platform-feature-flags": "^0.3.0",
|
|
49
|
-
"@atlaskit/smart-card": "^28.
|
|
49
|
+
"@atlaskit/smart-card": "^28.1.0",
|
|
50
50
|
"@atlaskit/status": "^1.4.0",
|
|
51
51
|
"@atlaskit/task-decision": "^17.10.0",
|
|
52
52
|
"@atlaskit/theme": "^13.0.0",
|
|
@@ -145,6 +145,9 @@
|
|
|
145
145
|
},
|
|
146
146
|
"platform-fix-table-ssr-resizing": {
|
|
147
147
|
"type": "boolean"
|
|
148
|
+
},
|
|
149
|
+
"platform_editor_allow_annotation_triple_click": {
|
|
150
|
+
"type": "boolean"
|
|
148
151
|
}
|
|
149
152
|
},
|
|
150
153
|
"af:exports": {
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.RenderTracking = RenderTracking;
|
|
8
|
-
var _react = require("react");
|
|
9
|
-
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
10
|
-
var _useComponentRenderTracking = require("@atlaskit/editor-common/use-component-render-tracking");
|
|
11
|
-
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
12
|
-
function RenderTracking(props) {
|
|
13
|
-
var debouncedHandleAnalyticsEvent = (0, _react.useMemo)(function () {
|
|
14
|
-
return (0, _debounce.default)(props.handleAnalyticsEvent, 500);
|
|
15
|
-
}, [props.handleAnalyticsEvent]);
|
|
16
|
-
(0, _useComponentRenderTracking.useComponentRenderTracking)({
|
|
17
|
-
onRender: function onRender(_ref) {
|
|
18
|
-
var renderCount = _ref.renderCount,
|
|
19
|
-
propsDifference = _ref.propsDifference,
|
|
20
|
-
componentId = _ref.componentId;
|
|
21
|
-
if (!renderCount) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
debouncedHandleAnalyticsEvent({
|
|
25
|
-
action: props.action,
|
|
26
|
-
actionSubject: props.actionSubject,
|
|
27
|
-
attributes: {
|
|
28
|
-
count: renderCount,
|
|
29
|
-
propsDifference: propsDifference,
|
|
30
|
-
componentId: componentId
|
|
31
|
-
},
|
|
32
|
-
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
33
|
-
});
|
|
34
|
-
},
|
|
35
|
-
propsDiffingOptions: {
|
|
36
|
-
enabled: true,
|
|
37
|
-
props: props.componentProps,
|
|
38
|
-
propsToIgnore: props.propsToIgnore,
|
|
39
|
-
useShallow: props.useShallow
|
|
40
|
-
},
|
|
41
|
-
zeroBasedCount: true
|
|
42
|
-
});
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { useMemo } from 'react';
|
|
2
|
-
import debounce from 'lodash/debounce';
|
|
3
|
-
import { useComponentRenderTracking } from '@atlaskit/editor-common/use-component-render-tracking';
|
|
4
|
-
import { EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
5
|
-
export function RenderTracking(props) {
|
|
6
|
-
const debouncedHandleAnalyticsEvent = useMemo(() => debounce(props.handleAnalyticsEvent, 500), [props.handleAnalyticsEvent]);
|
|
7
|
-
useComponentRenderTracking({
|
|
8
|
-
onRender: ({
|
|
9
|
-
renderCount,
|
|
10
|
-
propsDifference,
|
|
11
|
-
componentId
|
|
12
|
-
}) => {
|
|
13
|
-
if (!renderCount) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
debouncedHandleAnalyticsEvent({
|
|
17
|
-
action: props.action,
|
|
18
|
-
actionSubject: props.actionSubject,
|
|
19
|
-
attributes: {
|
|
20
|
-
count: renderCount,
|
|
21
|
-
propsDifference: propsDifference,
|
|
22
|
-
componentId
|
|
23
|
-
},
|
|
24
|
-
eventType: EVENT_TYPE.OPERATIONAL
|
|
25
|
-
});
|
|
26
|
-
},
|
|
27
|
-
propsDiffingOptions: {
|
|
28
|
-
enabled: true,
|
|
29
|
-
props: props.componentProps,
|
|
30
|
-
propsToIgnore: props.propsToIgnore,
|
|
31
|
-
useShallow: props.useShallow
|
|
32
|
-
},
|
|
33
|
-
zeroBasedCount: true
|
|
34
|
-
});
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { useMemo } from 'react';
|
|
2
|
-
import debounce from 'lodash/debounce';
|
|
3
|
-
import { useComponentRenderTracking } from '@atlaskit/editor-common/use-component-render-tracking';
|
|
4
|
-
import { EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
5
|
-
export function RenderTracking(props) {
|
|
6
|
-
var debouncedHandleAnalyticsEvent = useMemo(function () {
|
|
7
|
-
return debounce(props.handleAnalyticsEvent, 500);
|
|
8
|
-
}, [props.handleAnalyticsEvent]);
|
|
9
|
-
useComponentRenderTracking({
|
|
10
|
-
onRender: function onRender(_ref) {
|
|
11
|
-
var renderCount = _ref.renderCount,
|
|
12
|
-
propsDifference = _ref.propsDifference,
|
|
13
|
-
componentId = _ref.componentId;
|
|
14
|
-
if (!renderCount) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
debouncedHandleAnalyticsEvent({
|
|
18
|
-
action: props.action,
|
|
19
|
-
actionSubject: props.actionSubject,
|
|
20
|
-
attributes: {
|
|
21
|
-
count: renderCount,
|
|
22
|
-
propsDifference: propsDifference,
|
|
23
|
-
componentId: componentId
|
|
24
|
-
},
|
|
25
|
-
eventType: EVENT_TYPE.OPERATIONAL
|
|
26
|
-
});
|
|
27
|
-
},
|
|
28
|
-
propsDiffingOptions: {
|
|
29
|
-
enabled: true,
|
|
30
|
-
props: props.componentProps,
|
|
31
|
-
propsToIgnore: props.propsToIgnore,
|
|
32
|
-
useShallow: props.useShallow
|
|
33
|
-
},
|
|
34
|
-
zeroBasedCount: true
|
|
35
|
-
});
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { AnalyticsEventPayload } from '../../../analytics/events';
|
|
2
|
-
import { type ACTION_SUBJECT, type ACTION } from '@atlaskit/editor-common/analytics';
|
|
3
|
-
export type FireAnalyticsCallback = <T = void>(payload: AnalyticsEventPayload<T>) => void | undefined;
|
|
4
|
-
type RenderActions = ACTION.RE_RENDERED;
|
|
5
|
-
type RenderActionSubjects = ACTION_SUBJECT.RENDERER;
|
|
6
|
-
type RenderTrackingProps<ComponentProps> = {
|
|
7
|
-
componentProps: ComponentProps;
|
|
8
|
-
action: RenderActions;
|
|
9
|
-
actionSubject: RenderActionSubjects;
|
|
10
|
-
handleAnalyticsEvent: FireAnalyticsCallback;
|
|
11
|
-
propsToIgnore?: Array<keyof ComponentProps>;
|
|
12
|
-
useShallow?: boolean;
|
|
13
|
-
};
|
|
14
|
-
export declare function RenderTracking<Props>(props: RenderTrackingProps<Props>): null;
|
|
15
|
-
export {};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { AnalyticsEventPayload } from '../../../analytics/events';
|
|
2
|
-
import { type ACTION_SUBJECT, type ACTION } from '@atlaskit/editor-common/analytics';
|
|
3
|
-
export type FireAnalyticsCallback = <T = void>(payload: AnalyticsEventPayload<T>) => void | undefined;
|
|
4
|
-
type RenderActions = ACTION.RE_RENDERED;
|
|
5
|
-
type RenderActionSubjects = ACTION_SUBJECT.RENDERER;
|
|
6
|
-
type RenderTrackingProps<ComponentProps> = {
|
|
7
|
-
componentProps: ComponentProps;
|
|
8
|
-
action: RenderActions;
|
|
9
|
-
actionSubject: RenderActionSubjects;
|
|
10
|
-
handleAnalyticsEvent: FireAnalyticsCallback;
|
|
11
|
-
propsToIgnore?: Array<keyof ComponentProps>;
|
|
12
|
-
useShallow?: boolean;
|
|
13
|
-
};
|
|
14
|
-
export declare function RenderTracking<Props>(props: RenderTrackingProps<Props>): null;
|
|
15
|
-
export {};
|