@atlaskit/renderer 109.53.2 → 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 +8 -0
- package/dist/cjs/steps/index.js +1 -0
- package/dist/cjs/ui/Renderer/index.js +1 -1
- package/dist/cjs/ui/annotations/hooks/user-selection.js +23 -0
- package/dist/es2019/steps/index.js +1 -1
- package/dist/es2019/ui/Renderer/index.js +1 -1
- package/dist/es2019/ui/annotations/hooks/user-selection.js +25 -0
- package/dist/esm/steps/index.js +1 -1
- package/dist/esm/ui/Renderer/index.js +1 -1
- package/dist/esm/ui/annotations/hooks/user-selection.js +23 -0
- package/dist/types/steps/index.d.ts +1 -0
- package/dist/types-ts4.5/steps/index.d.ts +1 -0
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
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
|
+
|
|
3
11
|
## 109.53.2
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
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");
|
|
@@ -63,7 +63,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
63
63
|
var NORMAL_SEVERITY_THRESHOLD = exports.NORMAL_SEVERITY_THRESHOLD = 2000;
|
|
64
64
|
var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
65
65
|
var packageName = "@atlaskit/renderer";
|
|
66
|
-
var packageVersion = "109.53.
|
|
66
|
+
var packageVersion = "109.53.3";
|
|
67
67
|
var defaultNodeComponents = exports.defaultNodeComponents = _nodes.nodeToReact;
|
|
68
68
|
var Renderer = exports.Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
69
69
|
(0, _inherits2.default)(Renderer, _PureComponent);
|
|
@@ -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);
|
|
@@ -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) {
|
|
@@ -45,7 +45,7 @@ import { nodeToReact } from '../../react/nodes';
|
|
|
45
45
|
export const NORMAL_SEVERITY_THRESHOLD = 2000;
|
|
46
46
|
export const DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
47
47
|
const packageName = "@atlaskit/renderer";
|
|
48
|
-
const packageVersion = "109.53.
|
|
48
|
+
const packageVersion = "109.53.3";
|
|
49
49
|
export const defaultNodeComponents = nodeToReact;
|
|
50
50
|
export class Renderer extends PureComponent {
|
|
51
51
|
constructor(props) {
|
|
@@ -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);
|
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) {
|
|
@@ -55,7 +55,7 @@ import { nodeToReact } from '../../react/nodes';
|
|
|
55
55
|
export var NORMAL_SEVERITY_THRESHOLD = 2000;
|
|
56
56
|
export var DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
57
57
|
var packageName = "@atlaskit/renderer";
|
|
58
|
-
var packageVersion = "109.53.
|
|
58
|
+
var packageVersion = "109.53.3";
|
|
59
59
|
export var defaultNodeComponents = nodeToReact;
|
|
60
60
|
export var Renderer = /*#__PURE__*/function (_PureComponent) {
|
|
61
61
|
_inherits(Renderer, _PureComponent);
|
|
@@ -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);
|
|
@@ -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;
|
|
@@ -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;
|
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/"
|
|
@@ -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": {
|