@atlaskit/editor-common 102.18.3 → 102.19.1

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 CHANGED
@@ -1,5 +1,22 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 102.19.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#136939](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/136939)
8
+ [`960086975117b`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/960086975117b) -
9
+ EDITOR-566 Cleaned up platform_editor_allow_annotation_triple_click and defaulted to true
10
+ behaviour.
11
+
12
+ ## 102.19.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [#137043](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/137043)
17
+ [`616c9cd4a2c60`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/616c9cd4a2c60) -
18
+ Adding inner decorations parameter for lazy node view
19
+
3
20
  ## 102.18.3
4
21
 
5
22
  ### Patch Changes
@@ -132,7 +132,7 @@ var withLazyLoading = exports.withLazyLoading = function withLazyLoading(_ref) {
132
132
  var nodeName = _ref.nodeName,
133
133
  loader = _ref.loader,
134
134
  getNodeViewOptions = _ref.getNodeViewOptions;
135
- return function (node, view, getPos, decorations) {
135
+ return function (node, view, getPos, decorations, innerDecorations) {
136
136
  var _node$type;
137
137
  var requestedNodes = requestedNodesPerEditorView.get(view);
138
138
  if (!requestedNodes) {
@@ -147,14 +147,14 @@ var withLazyLoading = exports.withLazyLoading = function withLazyLoading(_ref) {
147
147
  if (wasAlreadyRequested) {
148
148
  var resolvedNodeView = resolvedNodeViews === null || resolvedNodeViews === void 0 ? void 0 : resolvedNodeViews.get(nodeName);
149
149
  if (resolvedNodeView && !testOnlyIgnoreLazyNodeViewSet.has(view)) {
150
- return resolvedNodeView(node, view, getPos, decorations);
150
+ return resolvedNodeView(node, view, getPos, decorations, innerDecorations);
151
151
  }
152
152
  return new _nodeView.LazyNodeView(node, view, getPos, decorations);
153
153
  }
154
154
  var loaderPromise = loader().then(function (nodeViewFuncModule) {
155
155
  var _resolvedNodesPerEdit;
156
- var nodeViewFunc = function nodeViewFunc(node, view, getPos, decorations) {
157
- var nodeView = nodeViewFuncModule(node, view, getPos, decorations, getNodeViewOptions);
156
+ var nodeViewFunc = function nodeViewFunc(node, view, getPos, decorations, innerDecorations) {
157
+ var nodeView = nodeViewFuncModule(node, view, getPos, decorations, getNodeViewOptions, innerDecorations);
158
158
  // eslint-disable-next-line @atlaskit/editor/no-as-casting
159
159
  var dom = nodeView.dom;
160
160
  dom.setAttribute('data-vc', "editor-lnv-loaded--".concat(node.type.name));
@@ -83,6 +83,12 @@ Object.defineProperty(exports, "containerWithProvider", {
83
83
  return _ToolbarComponents.containerWithProvider;
84
84
  }
85
85
  });
86
+ Object.defineProperty(exports, "getActiveLinkMark", {
87
+ enumerable: true,
88
+ get: function get() {
89
+ return _utils2.getActiveLinkMark;
90
+ }
91
+ });
86
92
  Object.defineProperty(exports, "getLinkPreferencesURLFromENV", {
87
93
  enumerable: true,
88
94
  get: function get() {
@@ -3,10 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getLinkPreferencesURLFromENV = void 0;
6
+ exports.getLinkPreferencesURLFromENV = exports.getActiveLinkMark = void 0;
7
7
  exports.isLinkAtPos = isLinkAtPos;
8
8
  exports.isTextAtPos = isTextAtPos;
9
9
  var _atlassianContext = require("@atlaskit/atlassian-context");
10
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
+ var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
10
12
  var _constants = require("./constants");
11
13
  function isTextAtPos(pos) {
12
14
  return function (_ref) {
@@ -23,4 +25,59 @@ function isLinkAtPos(pos) {
23
25
  }
24
26
  var getLinkPreferencesURLFromENV = exports.getLinkPreferencesURLFromENV = function getLinkPreferencesURLFromENV() {
25
27
  return (0, _atlassianContext.getATLContextUrl)('id') + _constants.linkPreferencesPath;
28
+ };
29
+ var isSelectionInsideLink = function isSelectionInsideLink(state) {
30
+ return !!state.doc.type.schema.marks.link.isInSet(state.selection.$from.marks());
31
+ };
32
+ var isEmptySelectionBeforeLink = function isEmptySelectionBeforeLink(state) {
33
+ var _$from$nodeAfter;
34
+ var _state$selection = state.selection,
35
+ $from = _state$selection.$from,
36
+ $to = _state$selection.$to;
37
+ return $from === $to && !!state.doc.type.schema.marks.link.isInSet(((_$from$nodeAfter = $from.nodeAfter) === null || _$from$nodeAfter === void 0 ? void 0 : _$from$nodeAfter.marks) || []);
38
+ };
39
+ var isEmptySelectionAfterLink = function isEmptySelectionAfterLink(state) {
40
+ var _$from$nodeBefore;
41
+ var _state$selection2 = state.selection,
42
+ $from = _state$selection2.$from,
43
+ $to = _state$selection2.$to;
44
+ return $from === $to && !!state.doc.type.schema.marks.link.isInSet(((_$from$nodeBefore = $from.nodeBefore) === null || _$from$nodeBefore === void 0 ? void 0 : _$from$nodeBefore.marks) || []);
45
+ };
46
+ var isSelectionAroundLink = function isSelectionAroundLink(state) {
47
+ var _state$selection3 = state.selection,
48
+ $from = _state$selection3.$from,
49
+ $to = _state$selection3.$to;
50
+ var node = $from.nodeAfter;
51
+ return !!node && $from.textOffset === 0 && $to.pos - $from.pos === node.nodeSize && !!state.doc.type.schema.marks.link.isInSet(node.marks);
52
+ };
53
+ var getActiveLinkMark = exports.getActiveLinkMark = function getActiveLinkMark(state) {
54
+ var $from = state.selection.$from;
55
+ if (isSelectionInsideLink(state) || isSelectionAroundLink(state)) {
56
+ var pos = $from.pos - $from.textOffset;
57
+ var node = state.doc.nodeAt(pos);
58
+ return node && node.isText ? {
59
+ node: node,
60
+ pos: pos
61
+ } : undefined;
62
+ }
63
+ if (isEmptySelectionBeforeLink(state) && (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') && (0, _platformFeatureFlags.fg)('platform_editor_controls_patch_3')) {
64
+ // if user clicks right before the link, we want to show the toolbar for the link
65
+ // but only if the link is a single character
66
+ var _node = state.doc.nodeAt($from.pos);
67
+ return _node && _node.isText && _node.nodeSize === 1 ? {
68
+ node: _node,
69
+ pos: $from.pos
70
+ } : undefined;
71
+ }
72
+ if (isEmptySelectionAfterLink(state) && (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') && (0, _platformFeatureFlags.fg)('platform_editor_controls_patch_3')) {
73
+ // if user clicks right after the link, we want to show the toolbar for the link
74
+ // but only if the link is a single character
75
+ // and we return the position of the link
76
+ var _node2 = state.doc.nodeAt($from.pos - 1);
77
+ return _node2 && _node2.isText && _node2.nodeSize === 1 ? {
78
+ node: _node2,
79
+ pos: $from.pos - 1
80
+ } : undefined;
81
+ }
82
+ return undefined;
26
83
  };
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
19
19
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
20
- var packageVersion = "102.18.3";
20
+ var packageVersion = "102.19.1";
21
21
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
22
22
  // Remove URL as it has UGC
23
23
  // Ignored via go/ees007
@@ -19,9 +19,6 @@ var _templateObject, _templateObject2;
19
19
  * @jsx jsx
20
20
  */
21
21
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
22
- var annotationRangeFixStyle = (0, _react.css)({
23
- userSelect: 'none'
24
- });
25
22
  var StatusClassNames = exports.StatusClassNames = /*#__PURE__*/function (StatusClassNames) {
26
23
  StatusClassNames["ASC"] = "sorting-icon-svg__asc";
27
24
  StatusClassNames["DESC"] = "sorting-icon-svg__desc";
@@ -42,6 +39,7 @@ var iconStyles = (0, _react.css)({
42
39
  width: '2px',
43
40
  borderRadius: '50px',
44
41
  background: "var(--ds-icon, #42526E)",
42
+ userSelect: 'none',
45
43
  '&::before, &::after': {
46
44
  background: "var(--ds-icon, #42526E)",
47
45
  content: "''",
@@ -150,7 +148,7 @@ var SortingIcon = function SortingIcon(_ref) {
150
148
  ,
151
149
  className: getIconClassName(isSortingAllowed, sortOrdered)
152
150
  }, (0, _react.jsx)("div", {
153
- css: [iconStyles, (0, _platformFeatureFlags.fg)('platform_editor_allow_annotation_triple_click') && annotationRangeFixStyle]
151
+ css: [iconStyles]
154
152
  }))));
155
153
  };
156
154
  var _default = exports.default = (0, _reactIntlNext.injectIntl)(SortingIcon);
@@ -23,7 +23,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
23
23
  * @jsx jsx
24
24
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
25
25
  var packageName = "@atlaskit/editor-common";
26
- var packageVersion = "102.18.3";
26
+ var packageVersion = "102.19.1";
27
27
  var halfFocusRing = 1;
28
28
  var dropOffset = '0, 8';
29
29
  // Ignored via go/ees005
@@ -113,7 +113,7 @@ export const withLazyLoading = ({
113
113
  loader,
114
114
  getNodeViewOptions
115
115
  }) => {
116
- return (node, view, getPos, decorations) => {
116
+ return (node, view, getPos, decorations, innerDecorations) => {
117
117
  var _node$type, _node$type$spec;
118
118
  let requestedNodes = requestedNodesPerEditorView.get(view);
119
119
  if (!requestedNodes) {
@@ -128,14 +128,14 @@ export const withLazyLoading = ({
128
128
  if (wasAlreadyRequested) {
129
129
  const resolvedNodeView = resolvedNodeViews === null || resolvedNodeViews === void 0 ? void 0 : resolvedNodeViews.get(nodeName);
130
130
  if (resolvedNodeView && !testOnlyIgnoreLazyNodeViewSet.has(view)) {
131
- return resolvedNodeView(node, view, getPos, decorations);
131
+ return resolvedNodeView(node, view, getPos, decorations, innerDecorations);
132
132
  }
133
133
  return new LazyNodeView(node, view, getPos, decorations);
134
134
  }
135
135
  const loaderPromise = loader().then(nodeViewFuncModule => {
136
136
  var _resolvedNodesPerEdit;
137
- const nodeViewFunc = (node, view, getPos, decorations) => {
138
- const nodeView = nodeViewFuncModule(node, view, getPos, decorations, getNodeViewOptions);
137
+ const nodeViewFunc = (node, view, getPos, decorations, innerDecorations) => {
138
+ const nodeView = nodeViewFuncModule(node, view, getPos, decorations, getNodeViewOptions, innerDecorations);
139
139
  // eslint-disable-next-line @atlaskit/editor/no-as-casting
140
140
  const dom = nodeView.dom;
141
141
  dom.setAttribute('data-vc', `editor-lnv-loaded--${node.type.name}`);
@@ -11,6 +11,6 @@ export { EditorLinkPicker } from './LinkPicker/EditorLinkPicker';
11
11
  export { HyperlinkAddToolbar } from './LinkPicker/HyperlinkAddToolbar';
12
12
  export { default as HyperlinkLinkAddToolbar, HyperlinkLinkAddToolbarWithIntl, RECENT_SEARCH_LIST_SIZE } from './LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar';
13
13
  export { sha1 } from './LinkPicker/HyperlinkAddToolbar/utils';
14
- export { isLinkAtPos, isTextAtPos, getLinkPreferencesURLFromENV } from './utils';
14
+ export { isLinkAtPos, isTextAtPos, getLinkPreferencesURLFromENV, getActiveLinkMark } from './utils';
15
15
  export { OverlayButton } from './ConfigureLinkOverlay';
16
16
  export { handleNavigation } from './ConfigureLinkOverlay/handleNavigation';
@@ -1,4 +1,6 @@
1
1
  import { getATLContextUrl } from '@atlaskit/atlassian-context';
2
+ import { fg } from '@atlaskit/platform-feature-flags';
3
+ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
2
4
  import { linkPreferencesPath } from './constants';
3
5
  export function isTextAtPos(pos) {
4
6
  return ({
@@ -16,4 +18,64 @@ export function isLinkAtPos(pos) {
16
18
  }
17
19
  export const getLinkPreferencesURLFromENV = () => {
18
20
  return getATLContextUrl('id') + linkPreferencesPath;
21
+ };
22
+ const isSelectionInsideLink = state => !!state.doc.type.schema.marks.link.isInSet(state.selection.$from.marks());
23
+ const isEmptySelectionBeforeLink = state => {
24
+ var _$from$nodeAfter;
25
+ const {
26
+ $from,
27
+ $to
28
+ } = state.selection;
29
+ return $from === $to && !!state.doc.type.schema.marks.link.isInSet(((_$from$nodeAfter = $from.nodeAfter) === null || _$from$nodeAfter === void 0 ? void 0 : _$from$nodeAfter.marks) || []);
30
+ };
31
+ const isEmptySelectionAfterLink = state => {
32
+ var _$from$nodeBefore;
33
+ const {
34
+ $from,
35
+ $to
36
+ } = state.selection;
37
+ return $from === $to && !!state.doc.type.schema.marks.link.isInSet(((_$from$nodeBefore = $from.nodeBefore) === null || _$from$nodeBefore === void 0 ? void 0 : _$from$nodeBefore.marks) || []);
38
+ };
39
+ const isSelectionAroundLink = state => {
40
+ const {
41
+ $from,
42
+ $to
43
+ } = state.selection;
44
+ const node = $from.nodeAfter;
45
+ return !!node && $from.textOffset === 0 && $to.pos - $from.pos === node.nodeSize && !!state.doc.type.schema.marks.link.isInSet(node.marks);
46
+ };
47
+ export const getActiveLinkMark = state => {
48
+ const {
49
+ selection: {
50
+ $from
51
+ }
52
+ } = state;
53
+ if (isSelectionInsideLink(state) || isSelectionAroundLink(state)) {
54
+ const pos = $from.pos - $from.textOffset;
55
+ const node = state.doc.nodeAt(pos);
56
+ return node && node.isText ? {
57
+ node,
58
+ pos
59
+ } : undefined;
60
+ }
61
+ if (isEmptySelectionBeforeLink(state) && editorExperiment('platform_editor_controls', 'variant1') && fg('platform_editor_controls_patch_3')) {
62
+ // if user clicks right before the link, we want to show the toolbar for the link
63
+ // but only if the link is a single character
64
+ const node = state.doc.nodeAt($from.pos);
65
+ return node && node.isText && node.nodeSize === 1 ? {
66
+ node,
67
+ pos: $from.pos
68
+ } : undefined;
69
+ }
70
+ if (isEmptySelectionAfterLink(state) && editorExperiment('platform_editor_controls', 'variant1') && fg('platform_editor_controls_patch_3')) {
71
+ // if user clicks right after the link, we want to show the toolbar for the link
72
+ // but only if the link is a single character
73
+ // and we return the position of the link
74
+ const node = state.doc.nodeAt($from.pos - 1);
75
+ return node && node.isText && node.nodeSize === 1 ? {
76
+ node,
77
+ pos: $from.pos - 1
78
+ } : undefined;
79
+ }
80
+ return undefined;
19
81
  };
@@ -1,7 +1,7 @@
1
1
  import { isFedRamp } from './environment';
2
2
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
3
3
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
4
- const packageVersion = "102.18.3";
4
+ const packageVersion = "102.19.1";
5
5
  const sanitiseSentryEvents = (data, _hint) => {
6
6
  // Remove URL as it has UGC
7
7
  // Ignored via go/ees007
@@ -10,9 +10,6 @@ import Tooltip from '@atlaskit/tooltip';
10
10
  import { SortOrder } from '../types';
11
11
  import { SORTABLE_COLUMN_ICON_CLASSNAME } from './consts';
12
12
  import { sortingAriaLabelMessages, sortingIconMessages } from './messages';
13
- const annotationRangeFixStyle = css({
14
- userSelect: 'none'
15
- });
16
13
  export let StatusClassNames = /*#__PURE__*/function (StatusClassNames) {
17
14
  StatusClassNames["ASC"] = "sorting-icon-svg__asc";
18
15
  StatusClassNames["DESC"] = "sorting-icon-svg__desc";
@@ -76,6 +73,7 @@ const iconStyles = css({
76
73
  width: '2px',
77
74
  borderRadius: '50px',
78
75
  background: "var(--ds-icon, #42526E)",
76
+ userSelect: 'none',
79
77
  '&::before, &::after': {
80
78
  background: "var(--ds-icon, #42526E)",
81
79
  content: "''",
@@ -189,7 +187,7 @@ const SortingIcon = ({
189
187
  ,
190
188
  className: getIconClassName(isSortingAllowed, sortOrdered)
191
189
  }, jsx("div", {
192
- css: [iconStyles, fg('platform_editor_allow_annotation_triple_click') && annotationRangeFixStyle]
190
+ css: [iconStyles]
193
191
  }))));
194
192
  };
195
193
  export default injectIntl(SortingIcon);
@@ -13,7 +13,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
13
13
  import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
14
14
  import Layer from '../Layer';
15
15
  const packageName = "@atlaskit/editor-common";
16
- const packageVersion = "102.18.3";
16
+ const packageVersion = "102.19.1";
17
17
  const halfFocusRing = 1;
18
18
  const dropOffset = '0, 8';
19
19
  // Ignored via go/ees005
@@ -113,7 +113,7 @@ export var withLazyLoading = function withLazyLoading(_ref) {
113
113
  var nodeName = _ref.nodeName,
114
114
  loader = _ref.loader,
115
115
  getNodeViewOptions = _ref.getNodeViewOptions;
116
- return function (node, view, getPos, decorations) {
116
+ return function (node, view, getPos, decorations, innerDecorations) {
117
117
  var _node$type;
118
118
  var requestedNodes = requestedNodesPerEditorView.get(view);
119
119
  if (!requestedNodes) {
@@ -128,14 +128,14 @@ export var withLazyLoading = function withLazyLoading(_ref) {
128
128
  if (wasAlreadyRequested) {
129
129
  var resolvedNodeView = resolvedNodeViews === null || resolvedNodeViews === void 0 ? void 0 : resolvedNodeViews.get(nodeName);
130
130
  if (resolvedNodeView && !testOnlyIgnoreLazyNodeViewSet.has(view)) {
131
- return resolvedNodeView(node, view, getPos, decorations);
131
+ return resolvedNodeView(node, view, getPos, decorations, innerDecorations);
132
132
  }
133
133
  return new LazyNodeView(node, view, getPos, decorations);
134
134
  }
135
135
  var loaderPromise = loader().then(function (nodeViewFuncModule) {
136
136
  var _resolvedNodesPerEdit;
137
- var nodeViewFunc = function nodeViewFunc(node, view, getPos, decorations) {
138
- var nodeView = nodeViewFuncModule(node, view, getPos, decorations, getNodeViewOptions);
137
+ var nodeViewFunc = function nodeViewFunc(node, view, getPos, decorations, innerDecorations) {
138
+ var nodeView = nodeViewFuncModule(node, view, getPos, decorations, getNodeViewOptions, innerDecorations);
139
139
  // eslint-disable-next-line @atlaskit/editor/no-as-casting
140
140
  var dom = nodeView.dom;
141
141
  dom.setAttribute('data-vc', "editor-lnv-loaded--".concat(node.type.name));
@@ -11,6 +11,6 @@ export { EditorLinkPicker } from './LinkPicker/EditorLinkPicker';
11
11
  export { HyperlinkAddToolbar } from './LinkPicker/HyperlinkAddToolbar';
12
12
  export { default as HyperlinkLinkAddToolbar, HyperlinkLinkAddToolbarWithIntl, RECENT_SEARCH_LIST_SIZE } from './LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar';
13
13
  export { sha1 } from './LinkPicker/HyperlinkAddToolbar/utils';
14
- export { isLinkAtPos, isTextAtPos, getLinkPreferencesURLFromENV } from './utils';
14
+ export { isLinkAtPos, isTextAtPos, getLinkPreferencesURLFromENV, getActiveLinkMark } from './utils';
15
15
  export { OverlayButton } from './ConfigureLinkOverlay';
16
16
  export { handleNavigation } from './ConfigureLinkOverlay/handleNavigation';
@@ -1,4 +1,6 @@
1
1
  import { getATLContextUrl } from '@atlaskit/atlassian-context';
2
+ import { fg } from '@atlaskit/platform-feature-flags';
3
+ import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
2
4
  import { linkPreferencesPath } from './constants';
3
5
  export function isTextAtPos(pos) {
4
6
  return function (_ref) {
@@ -15,4 +17,59 @@ export function isLinkAtPos(pos) {
15
17
  }
16
18
  export var getLinkPreferencesURLFromENV = function getLinkPreferencesURLFromENV() {
17
19
  return getATLContextUrl('id') + linkPreferencesPath;
20
+ };
21
+ var isSelectionInsideLink = function isSelectionInsideLink(state) {
22
+ return !!state.doc.type.schema.marks.link.isInSet(state.selection.$from.marks());
23
+ };
24
+ var isEmptySelectionBeforeLink = function isEmptySelectionBeforeLink(state) {
25
+ var _$from$nodeAfter;
26
+ var _state$selection = state.selection,
27
+ $from = _state$selection.$from,
28
+ $to = _state$selection.$to;
29
+ return $from === $to && !!state.doc.type.schema.marks.link.isInSet(((_$from$nodeAfter = $from.nodeAfter) === null || _$from$nodeAfter === void 0 ? void 0 : _$from$nodeAfter.marks) || []);
30
+ };
31
+ var isEmptySelectionAfterLink = function isEmptySelectionAfterLink(state) {
32
+ var _$from$nodeBefore;
33
+ var _state$selection2 = state.selection,
34
+ $from = _state$selection2.$from,
35
+ $to = _state$selection2.$to;
36
+ return $from === $to && !!state.doc.type.schema.marks.link.isInSet(((_$from$nodeBefore = $from.nodeBefore) === null || _$from$nodeBefore === void 0 ? void 0 : _$from$nodeBefore.marks) || []);
37
+ };
38
+ var isSelectionAroundLink = function isSelectionAroundLink(state) {
39
+ var _state$selection3 = state.selection,
40
+ $from = _state$selection3.$from,
41
+ $to = _state$selection3.$to;
42
+ var node = $from.nodeAfter;
43
+ return !!node && $from.textOffset === 0 && $to.pos - $from.pos === node.nodeSize && !!state.doc.type.schema.marks.link.isInSet(node.marks);
44
+ };
45
+ export var getActiveLinkMark = function getActiveLinkMark(state) {
46
+ var $from = state.selection.$from;
47
+ if (isSelectionInsideLink(state) || isSelectionAroundLink(state)) {
48
+ var pos = $from.pos - $from.textOffset;
49
+ var node = state.doc.nodeAt(pos);
50
+ return node && node.isText ? {
51
+ node: node,
52
+ pos: pos
53
+ } : undefined;
54
+ }
55
+ if (isEmptySelectionBeforeLink(state) && editorExperiment('platform_editor_controls', 'variant1') && fg('platform_editor_controls_patch_3')) {
56
+ // if user clicks right before the link, we want to show the toolbar for the link
57
+ // but only if the link is a single character
58
+ var _node = state.doc.nodeAt($from.pos);
59
+ return _node && _node.isText && _node.nodeSize === 1 ? {
60
+ node: _node,
61
+ pos: $from.pos
62
+ } : undefined;
63
+ }
64
+ if (isEmptySelectionAfterLink(state) && editorExperiment('platform_editor_controls', 'variant1') && fg('platform_editor_controls_patch_3')) {
65
+ // if user clicks right after the link, we want to show the toolbar for the link
66
+ // but only if the link is a single character
67
+ // and we return the position of the link
68
+ var _node2 = state.doc.nodeAt($from.pos - 1);
69
+ return _node2 && _node2.isText && _node2.nodeSize === 1 ? {
70
+ node: _node2,
71
+ pos: $from.pos - 1
72
+ } : undefined;
73
+ }
74
+ return undefined;
18
75
  };
@@ -7,7 +7,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
7
7
  import { isFedRamp } from './environment';
8
8
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
9
9
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
10
- var packageVersion = "102.18.3";
10
+ var packageVersion = "102.19.1";
11
11
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
12
12
  // Remove URL as it has UGC
13
13
  // Ignored via go/ees007
@@ -12,9 +12,6 @@ import Tooltip from '@atlaskit/tooltip';
12
12
  import { SortOrder } from '../types';
13
13
  import { SORTABLE_COLUMN_ICON_CLASSNAME } from './consts';
14
14
  import { sortingAriaLabelMessages, sortingIconMessages } from './messages';
15
- var annotationRangeFixStyle = css({
16
- userSelect: 'none'
17
- });
18
15
  export var StatusClassNames = /*#__PURE__*/function (StatusClassNames) {
19
16
  StatusClassNames["ASC"] = "sorting-icon-svg__asc";
20
17
  StatusClassNames["DESC"] = "sorting-icon-svg__desc";
@@ -37,6 +34,7 @@ var iconStyles = css({
37
34
  width: '2px',
38
35
  borderRadius: '50px',
39
36
  background: "var(--ds-icon, #42526E)",
37
+ userSelect: 'none',
40
38
  '&::before, &::after': {
41
39
  background: "var(--ds-icon, #42526E)",
42
40
  content: "''",
@@ -145,7 +143,7 @@ var SortingIcon = function SortingIcon(_ref) {
145
143
  ,
146
144
  className: getIconClassName(isSortingAllowed, sortOrdered)
147
145
  }, jsx("div", {
148
- css: [iconStyles, fg('platform_editor_allow_annotation_triple_click') && annotationRangeFixStyle]
146
+ css: [iconStyles]
149
147
  }))));
150
148
  };
151
149
  export default injectIntl(SortingIcon);
@@ -20,7 +20,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
20
20
  import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
21
21
  import Layer from '../Layer';
22
22
  var packageName = "@atlaskit/editor-common";
23
- var packageVersion = "102.18.3";
23
+ var packageVersion = "102.19.1";
24
24
  var halfFocusRing = 1;
25
25
  var dropOffset = '0, 8';
26
26
  // Ignored via go/ees005
@@ -1,6 +1,6 @@
1
1
  import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
2
2
  import { PluginKey } from '@atlaskit/editor-prosemirror/state';
3
- import type { Decoration, EditorView, NodeView } from '@atlaskit/editor-prosemirror/view';
3
+ import type { Decoration, DecorationSource, EditorView, NodeView } from '@atlaskit/editor-prosemirror/view';
4
4
  import type { DispatchAnalyticsEvent } from '../analytics';
5
5
  import { LazyNodeView } from './node-view';
6
6
  import type { LazyNodeViewToDOMConfiguration, NodeViewConstructor } from './types';
@@ -18,7 +18,7 @@ export declare const lazyNodeViewDecorationPluginKey: PluginKey<any>;
18
18
  *
19
19
  * @see {withLazyLoading}
20
20
  */
21
- export type CreateReactNodeViewProps<NodeViewOptions> = (node: PMNode, view: EditorView, getPos: () => number | undefined, decorations: readonly Decoration[], getNodeViewOptions: () => NodeViewOptions) => NodeView;
21
+ export type CreateReactNodeViewProps<NodeViewOptions> = (node: PMNode, view: EditorView, getPos: () => number | undefined, decorations: readonly Decoration[], getNodeViewOptions: () => NodeViewOptions, innerDecorations: DecorationSource) => NodeView;
22
22
  /**
23
23
  * 📢 Public Type
24
24
  *
@@ -13,7 +13,7 @@ export { default as HyperlinkLinkAddToolbar, HyperlinkLinkAddToolbarWithIntl, RE
13
13
  export type { Props as HyperlinkLinkAddToolbarProps } from './LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar';
14
14
  export type { HyperlinkAddToolbarProps } from './LinkPicker/HyperlinkAddToolbar';
15
15
  export { sha1 } from './LinkPicker/HyperlinkAddToolbar/utils';
16
- export { isLinkAtPos, isTextAtPos, getLinkPreferencesURLFromENV } from './utils';
16
+ export { isLinkAtPos, isTextAtPos, getLinkPreferencesURLFromENV, getActiveLinkMark } from './utils';
17
17
  export { OverlayButton } from './ConfigureLinkOverlay';
18
18
  export type { OverlayButtonProps } from './ConfigureLinkOverlay';
19
19
  export { handleNavigation } from './ConfigureLinkOverlay/handleNavigation';
@@ -1,7 +1,12 @@
1
- import type { Transaction } from '@atlaskit/editor-prosemirror/state';
1
+ import { type Node } from '@atlaskit/editor-prosemirror/model';
2
+ import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
2
3
  import type { Predicate } from '../types';
3
4
  export declare function isTextAtPos(pos: number): (props: {
4
5
  tr: Transaction;
5
6
  }) => boolean;
6
7
  export declare function isLinkAtPos(pos: number): Predicate;
7
8
  export declare const getLinkPreferencesURLFromENV: () => string;
9
+ export declare const getActiveLinkMark: (state: EditorState | Transaction) => {
10
+ node: Node;
11
+ pos: number;
12
+ } | undefined;
@@ -1,6 +1,6 @@
1
1
  import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
2
2
  import { PluginKey } from '@atlaskit/editor-prosemirror/state';
3
- import type { Decoration, EditorView, NodeView } from '@atlaskit/editor-prosemirror/view';
3
+ import type { Decoration, DecorationSource, EditorView, NodeView } from '@atlaskit/editor-prosemirror/view';
4
4
  import type { DispatchAnalyticsEvent } from '../analytics';
5
5
  import { LazyNodeView } from './node-view';
6
6
  import type { LazyNodeViewToDOMConfiguration, NodeViewConstructor } from './types';
@@ -18,7 +18,7 @@ export declare const lazyNodeViewDecorationPluginKey: PluginKey<any>;
18
18
  *
19
19
  * @see {withLazyLoading}
20
20
  */
21
- export type CreateReactNodeViewProps<NodeViewOptions> = (node: PMNode, view: EditorView, getPos: () => number | undefined, decorations: readonly Decoration[], getNodeViewOptions: () => NodeViewOptions) => NodeView;
21
+ export type CreateReactNodeViewProps<NodeViewOptions> = (node: PMNode, view: EditorView, getPos: () => number | undefined, decorations: readonly Decoration[], getNodeViewOptions: () => NodeViewOptions, innerDecorations: DecorationSource) => NodeView;
22
22
  /**
23
23
  * 📢 Public Type
24
24
  *
@@ -13,7 +13,7 @@ export { default as HyperlinkLinkAddToolbar, HyperlinkLinkAddToolbarWithIntl, RE
13
13
  export type { Props as HyperlinkLinkAddToolbarProps } from './LinkPicker/HyperlinkAddToolbar/HyperlinkAddToolbar';
14
14
  export type { HyperlinkAddToolbarProps } from './LinkPicker/HyperlinkAddToolbar';
15
15
  export { sha1 } from './LinkPicker/HyperlinkAddToolbar/utils';
16
- export { isLinkAtPos, isTextAtPos, getLinkPreferencesURLFromENV } from './utils';
16
+ export { isLinkAtPos, isTextAtPos, getLinkPreferencesURLFromENV, getActiveLinkMark } from './utils';
17
17
  export { OverlayButton } from './ConfigureLinkOverlay';
18
18
  export type { OverlayButtonProps } from './ConfigureLinkOverlay';
19
19
  export { handleNavigation } from './ConfigureLinkOverlay/handleNavigation';
@@ -1,7 +1,12 @@
1
- import type { Transaction } from '@atlaskit/editor-prosemirror/state';
1
+ import { type Node } from '@atlaskit/editor-prosemirror/model';
2
+ import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
2
3
  import type { Predicate } from '../types';
3
4
  export declare function isTextAtPos(pos: number): (props: {
4
5
  tr: Transaction;
5
6
  }) => boolean;
6
7
  export declare function isLinkAtPos(pos: number): Predicate;
7
8
  export declare const getLinkPreferencesURLFromENV: () => string;
9
+ export declare const getActiveLinkMark: (state: EditorState | Transaction) => {
10
+ node: Node;
11
+ pos: number;
12
+ } | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "102.18.3",
3
+ "version": "102.19.1",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -263,9 +263,6 @@
263
263
  "platform_editor_react18_phase2_v2_extended": {
264
264
  "type": "boolean"
265
265
  },
266
- "platform_editor_allow_annotation_triple_click": {
267
- "type": "boolean"
268
- },
269
266
  "platform_editor_typography_ugc": {
270
267
  "type": "boolean"
271
268
  },
@@ -341,6 +338,9 @@
341
338
  "platform_editor_controls_patch_2": {
342
339
  "type": "boolean"
343
340
  },
341
+ "platform_editor_controls_patch_3": {
342
+ "type": "boolean"
343
+ },
344
344
  "platform_editor_lcm_nested_panel_icon_fix": {
345
345
  "type": "boolean"
346
346
  }