@atlaskit/editor-common 84.5.1 → 85.0.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.
Files changed (57) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/analytics/types/enums.js +2 -0
  3. package/dist/cjs/extensibility/extensionNodeView.js +1 -2
  4. package/dist/cjs/keymaps/keymap.js +25 -43
  5. package/dist/cjs/link/ConfigureLinkOverlay/Dropdown.js +34 -9
  6. package/dist/cjs/link/ConfigureLinkOverlay/index.js +15 -5
  7. package/dist/cjs/link/ConfigureLinkOverlay/useLinkOverlayAnalyticsEvents.js +46 -0
  8. package/dist/cjs/monitoring/error.js +1 -1
  9. package/dist/cjs/react-node-view/getInlineNodeViewProducer.js +2 -4
  10. package/dist/cjs/react-node-view/index.js +4 -10
  11. package/dist/cjs/selection-based-node-view/SelectionBasedNodeView.js +2 -5
  12. package/dist/cjs/ui/DropList/index.js +1 -1
  13. package/dist/es2019/analytics/types/enums.js +2 -0
  14. package/dist/es2019/extensibility/extensionNodeView.js +1 -2
  15. package/dist/es2019/keymaps/keymap.js +25 -43
  16. package/dist/es2019/link/ConfigureLinkOverlay/Dropdown.js +33 -7
  17. package/dist/es2019/link/ConfigureLinkOverlay/index.js +16 -5
  18. package/dist/es2019/link/ConfigureLinkOverlay/useLinkOverlayAnalyticsEvents.js +39 -0
  19. package/dist/es2019/monitoring/error.js +1 -1
  20. package/dist/es2019/react-node-view/getInlineNodeViewProducer.js +2 -4
  21. package/dist/es2019/react-node-view/index.js +5 -7
  22. package/dist/es2019/selection-based-node-view/SelectionBasedNodeView.js +3 -2
  23. package/dist/es2019/ui/DropList/index.js +1 -1
  24. package/dist/esm/analytics/types/enums.js +2 -0
  25. package/dist/esm/extensibility/extensionNodeView.js +1 -2
  26. package/dist/esm/keymaps/keymap.js +25 -43
  27. package/dist/esm/link/ConfigureLinkOverlay/Dropdown.js +34 -9
  28. package/dist/esm/link/ConfigureLinkOverlay/index.js +15 -5
  29. package/dist/esm/link/ConfigureLinkOverlay/useLinkOverlayAnalyticsEvents.js +40 -0
  30. package/dist/esm/monitoring/error.js +1 -1
  31. package/dist/esm/react-node-view/getInlineNodeViewProducer.js +2 -4
  32. package/dist/esm/react-node-view/index.js +4 -10
  33. package/dist/esm/selection-based-node-view/SelectionBasedNodeView.js +3 -5
  34. package/dist/esm/ui/DropList/index.js +1 -1
  35. package/dist/types/analytics/types/enums.d.ts +3 -1
  36. package/dist/types/extensibility/extensionNodeView.d.ts +1 -2
  37. package/dist/types/link/ConfigureLinkOverlay/Dropdown.d.ts +5 -4
  38. package/dist/types/link/ConfigureLinkOverlay/index.d.ts +2 -2
  39. package/dist/types/link/ConfigureLinkOverlay/useLinkOverlayAnalyticsEvents.d.ts +5 -0
  40. package/dist/types/react-node-view/index.d.ts +2 -5
  41. package/dist/types/selection-based-node-view/SelectionBasedNodeView.d.ts +1 -2
  42. package/dist/types/types/plugin-factory.d.ts +1 -2
  43. package/dist/types-ts4.5/analytics/types/enums.d.ts +3 -1
  44. package/dist/types-ts4.5/extensibility/extensionNodeView.d.ts +1 -2
  45. package/dist/types-ts4.5/link/ConfigureLinkOverlay/Dropdown.d.ts +5 -4
  46. package/dist/types-ts4.5/link/ConfigureLinkOverlay/index.d.ts +2 -2
  47. package/dist/types-ts4.5/link/ConfigureLinkOverlay/useLinkOverlayAnalyticsEvents.d.ts +5 -0
  48. package/dist/types-ts4.5/react-node-view/index.d.ts +2 -5
  49. package/dist/types-ts4.5/selection-based-node-view/SelectionBasedNodeView.d.ts +1 -2
  50. package/dist/types-ts4.5/types/plugin-factory.d.ts +1 -2
  51. package/package.json +3 -8
  52. package/dist/cjs/ui/PortalProvider/index.js +0 -235
  53. package/dist/es2019/ui/PortalProvider/index.js +0 -171
  54. package/dist/esm/ui/PortalProvider/index.js +0 -229
  55. package/dist/types/ui/PortalProvider/index.d.ts +0 -48
  56. package/dist/types-ts4.5/ui/PortalProvider/index.d.ts +0 -48
  57. package/portal-provider/package.json +0 -15
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 85.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#119966](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/119966)
8
+ [`596ad24e38929`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/596ad24e38929) -
9
+ Clean up typescript references to LegacyPortalProviderAPI
10
+
11
+ ### Minor Changes
12
+
13
+ - [#120060](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/120060)
14
+ [`932c75860b5c2`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/932c75860b5c2) -
15
+ Add card plugin analytics for live pages
16
+
17
+ ### Patch Changes
18
+
19
+ - [#119412](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/119412)
20
+ [`a714be7c47d68`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a714be7c47d68) -
21
+ [ux] [ED-23047] Remove FF platform.editor.text-alignment-keyboard-shortcuts and make feature
22
+ flagged functionality default
23
+ - Updated dependencies
24
+
3
25
  ## 84.5.1
4
26
 
5
27
  ### Patch Changes
@@ -241,6 +241,7 @@ var ACTION_SUBJECT = exports.ACTION_SUBJECT = /*#__PURE__*/function (ACTION_SUBJ
241
241
  ACTION_SUBJECT["DRAG"] = "drag";
242
242
  ACTION_SUBJECT["ELEMENT"] = "element";
243
243
  ACTION_SUBJECT["CONTEXT_MENU"] = "contextMenu";
244
+ ACTION_SUBJECT["INLINE_DIALOG"] = "inlineDialog";
244
245
  return ACTION_SUBJECT;
245
246
  }({});
246
247
  var ACTION_SUBJECT_ID = exports.ACTION_SUBJECT_ID = /*#__PURE__*/function (ACTION_SUBJECT_ID) {
@@ -355,6 +356,7 @@ var ACTION_SUBJECT_ID = exports.ACTION_SUBJECT_ID = /*#__PURE__*/function (ACTIO
355
356
  ACTION_SUBJECT_ID["SAVE"] = "save";
356
357
  ACTION_SUBJECT_ID["SECTION"] = "section";
357
358
  ACTION_SUBJECT_ID["SMART_LINK"] = "smartLink";
359
+ ACTION_SUBJECT_ID["SMART_LINK_TOOLBAR"] = "smartLinkToolbar";
358
360
  ACTION_SUBJECT_ID["STATUS"] = "status";
359
361
  ACTION_SUBJECT_ID["SYMBOL"] = "symbol";
360
362
  ACTION_SUBJECT_ID["TABLE"] = "table";
@@ -82,13 +82,12 @@ var ExtensionNode = exports.ExtensionNode = /*#__PURE__*/function (_ReactNodeVie
82
82
  }(_reactNodeView.default);
83
83
  function ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags) {
84
84
  return function (node, view, getPos) {
85
- var hasIntlContext = true;
86
85
  return new ExtensionNode(node, view, getPos, portalProviderAPI, eventDispatcher, {
87
86
  providerFactory: providerFactory,
88
87
  extensionHandlers: extensionHandlers,
89
88
  extensionNodeViewOptions: extensionNodeViewOptions,
90
89
  pluginInjectionApi: pluginInjectionApi,
91
90
  macroInteractionDesignFeatureFlags: macroInteractionDesignFeatureFlags
92
- }, undefined, undefined, undefined, hasIntlContext).init();
91
+ }).init();
93
92
  };
94
93
  }
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.keymap = keymap;
7
7
  var _w3cKeyname = require("w3c-keyname");
8
8
  var _keymap = require("@atlaskit/editor-prosemirror/keymap");
9
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
9
  var _safePlugin = require("../safe-plugin");
11
10
  /**
12
11
  * A workaround for mostly Cyrillic but should have a positive affect
@@ -19,52 +18,35 @@ function keymap(bindings) {
19
18
  return new _safePlugin.SafePlugin({
20
19
  props: {
21
20
  handleKeyDown: function handleKeyDown(view, event) {
22
- if ((0, _platformFeatureFlags.getBooleanFF)('platform.editor.text-alignment-keyboard-shortcuts')) {
23
- var name = (0, _w3cKeyname.keyName)(event);
24
- var keyboardEvent = event;
21
+ var name = (0, _w3cKeyname.keyName)(event);
22
+ var keyboardEvent = event;
25
23
 
26
- // We will try to bypass the keycode only if any of mod keys are pressed,
27
- // to allow users to use non-latin and Dead characters.
28
- var isModKeyPressed = event.ctrlKey || event.metaKey;
24
+ // We will try to bypass the keycode only if any of mod keys are pressed,
25
+ // to allow users to use non-latin and Dead characters.
26
+ var isModKeyPressed = event.ctrlKey || event.metaKey;
29
27
 
30
- // Check the unicode of the character to assert that it's not an ASCII character.
31
- // These are characters outside latin's range.
32
- var isNonLatinKey = name.length === 1 && /[^\u0000-\u007f]/.test(name);
28
+ // Check the unicode of the character to assert that it's not an ASCII character.
29
+ // These are characters outside latin's range.
30
+ var isNonLatinKey = name.length === 1 && /[^\u0000-\u007f]/.test(name);
33
31
 
34
- // The `Dead` key is a key that combines with a following key to produce a combined character.
35
- // It will have `even.key === 'Dead'` in some browsers but the `keyCode` will be the same as in a qwerty-keyboard.
36
- // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key and https://en.wikipedia.org/wiki/Dead_key
37
- var isDeadKey = name === 'Dead';
38
- if (isModKeyPressed && (isNonLatinKey || isDeadKey)) {
39
- keyboardEvent = new KeyboardEvent(event.type, {
40
- // FIXME: The event.keyCode is deprecated (see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode),
41
- // and could be removed in any time, but the w3c-keyname library doesn't provide a way to get
42
- // a key by event.code.
43
- key: _w3cKeyname.base[event.keyCode],
44
- code: event.code,
45
- ctrlKey: event.ctrlKey,
46
- altKey: event.altKey,
47
- metaKey: event.metaKey,
48
- shiftKey: event.shiftKey
49
- });
50
- }
51
- return (0, _keymap.keydownHandler)(bindings)(view, keyboardEvent);
52
- } else {
53
- var _name = (0, _w3cKeyname.keyName)(event);
54
- var _keyboardEvent = event;
55
- if (event.ctrlKey && _name.length === 1 &&
56
- // Check the unicode of the character to
57
- // assert that its not an ASCII character.
58
- // These are characters outside Latin's range.
59
- /[^\u0000-\u007f]/.test(_name)) {
60
- _keyboardEvent = new KeyboardEvent('keydown', {
61
- key: _w3cKeyname.base[event.keyCode],
62
- code: event.code,
63
- ctrlKey: true
64
- });
65
- }
66
- return (0, _keymap.keydownHandler)(bindings)(view, _keyboardEvent);
32
+ // The `Dead` key is a key that combines with a following key to produce a combined character.
33
+ // It will have `even.key === 'Dead'` in some browsers but the `keyCode` will be the same as in a qwerty-keyboard.
34
+ // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key and https://en.wikipedia.org/wiki/Dead_key
35
+ var isDeadKey = name === 'Dead';
36
+ if (isModKeyPressed && (isNonLatinKey || isDeadKey)) {
37
+ keyboardEvent = new KeyboardEvent(event.type, {
38
+ // FIXME: The event.keyCode is deprecated (see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode),
39
+ // and could be removed in any time, but the w3c-keyname library doesn't provide a way to get
40
+ // a key by event.code.
41
+ key: _w3cKeyname.base[event.keyCode],
42
+ code: event.code,
43
+ ctrlKey: event.ctrlKey,
44
+ altKey: event.altKey,
45
+ metaKey: event.metaKey,
46
+ shiftKey: event.shiftKey
47
+ });
67
48
  }
49
+ return (0, _keymap.keydownHandler)(bindings)(view, keyboardEvent);
68
50
  }
69
51
  }
70
52
  });
@@ -11,31 +11,48 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
11
11
  var _react = require("react");
12
12
  var _react2 = require("@emotion/react");
13
13
  var _reactIntlNext = require("react-intl-next");
14
+ var _analyticsNext = require("@atlaskit/analytics-next");
14
15
  var _dropdownMenu = _interopRequireWildcard(require("@atlaskit/dropdown-menu"));
15
16
  var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
16
17
  var _preferences = _interopRequireDefault(require("@atlaskit/icon/glyph/preferences"));
17
18
  var _shortcut = _interopRequireDefault(require("@atlaskit/icon/glyph/shortcut"));
18
19
  var _messages = require("../../messages");
19
20
  var _StyledButton = require("./StyledButton");
20
- var _excluded = ["triggerRef"];
21
+ var _useLinkOverlayAnalyticsEvents = require("./useLinkOverlayAnalyticsEvents");
22
+ var _excluded = ["onClick", "triggerRef"];
21
23
  /** @jsx jsx */
22
24
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
23
25
  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); }
24
26
  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 && Object.prototype.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; }
27
+ var SMALL_LINK_TOOLBAR_ANALYTICS_SOURCE = 'smallLinkToolbar';
25
28
  var Dropdown = function Dropdown(_ref) {
26
- var testId = _ref.testId,
27
- onDropdownChange = _ref.onDropdownChange;
29
+ var onDropdownChange = _ref.onDropdownChange,
30
+ testId = _ref.testId;
28
31
  var _useIntl = (0, _reactIntlNext.useIntl)(),
29
32
  formatMessage = _useIntl.formatMessage;
30
33
  var configureLinkLabel = formatMessage(_messages.cardMessages.inlineConfigureLink);
31
34
  var goToLinkLabel = formatMessage(_messages.cardMessages.inlineGoToLink);
35
+ var _useLinkOverlayAnalyt = (0, _useLinkOverlayAnalyticsEvents.useLinkOverlayAnalyticsEvents)(),
36
+ fireActionClickEvent = _useLinkOverlayAnalyt.fireActionClickEvent,
37
+ fireLinkClickEvent = _useLinkOverlayAnalyt.fireLinkClickEvent,
38
+ fireToolbarViewEvent = _useLinkOverlayAnalyt.fireToolbarViewEvent;
32
39
  var onOpenChange = (0, _react.useCallback)(function (_ref2) {
33
40
  var isOpen = _ref2.isOpen;
34
41
  onDropdownChange === null || onDropdownChange === void 0 || onDropdownChange(isOpen);
35
- }, [onDropdownChange]);
42
+ if (isOpen) {
43
+ fireToolbarViewEvent();
44
+ }
45
+ }, [fireToolbarViewEvent, onDropdownChange]);
46
+ var onGoToLinkClick = (0, _react.useCallback)(function () {
47
+ fireActionClickEvent('goToLink');
48
+ }, [fireActionClickEvent]);
49
+ var onConfigureClick = (0, _react.useCallback)(function () {
50
+ fireActionClickEvent('configureLink');
51
+ }, [fireActionClickEvent]);
36
52
  return (0, _react2.jsx)(_dropdownMenu.default, {
37
53
  trigger: function trigger(_ref3) {
38
- var triggerRef = _ref3.triggerRef,
54
+ var _onClick = _ref3.onClick,
55
+ triggerRef = _ref3.triggerRef,
39
56
  props = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
40
57
  return (0, _react2.jsx)(_StyledButton.StyledButton, (0, _extends2.default)({
41
58
  innerRef: triggerRef
@@ -43,7 +60,11 @@ var Dropdown = function Dropdown(_ref) {
43
60
  iconBefore: (0, _react2.jsx)(_chevronDown.default, {
44
61
  label: configureLinkLabel,
45
62
  size: 'small'
46
- })
63
+ }),
64
+ onClick: function onClick(e) {
65
+ _onClick === null || _onClick === void 0 || _onClick(e);
66
+ fireLinkClickEvent();
67
+ }
47
68
  }));
48
69
  },
49
70
  testId: "".concat(testId, "-dropdown"),
@@ -52,12 +73,16 @@ var Dropdown = function Dropdown(_ref) {
52
73
  elemBefore: (0, _react2.jsx)(_shortcut.default, {
53
74
  label: goToLinkLabel,
54
75
  size: 'medium'
55
- })
76
+ }),
77
+ onClick: onGoToLinkClick
56
78
  }, goToLinkLabel), (0, _react2.jsx)(_dropdownMenu.DropdownItem, {
57
79
  elemBefore: (0, _react2.jsx)(_preferences.default, {
58
80
  label: configureLinkLabel,
59
81
  size: 'medium'
60
- })
82
+ }),
83
+ onClick: onConfigureClick
61
84
  }, configureLinkLabel)));
62
85
  };
63
- var _default = exports.default = Dropdown;
86
+ var _default = exports.default = (0, _analyticsNext.withAnalyticsContext)({
87
+ source: SMALL_LINK_TOOLBAR_ANALYTICS_SOURCE
88
+ })(Dropdown);
@@ -9,6 +9,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
9
9
  var _react = require("react");
10
10
  var _react2 = require("@emotion/react");
11
11
  var _reactIntlNext = require("react-intl-next");
12
+ var _analyticsNext = require("@atlaskit/analytics-next");
12
13
  var _state = require("@atlaskit/editor-prosemirror/state");
13
14
  var _preferences = _interopRequireDefault(require("@atlaskit/icon/glyph/preferences"));
14
15
  var _colors = require("@atlaskit/theme/colors");
@@ -17,6 +18,7 @@ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
17
18
  var _messages = require("../../messages");
18
19
  var _Dropdown = _interopRequireDefault(require("./Dropdown"));
19
20
  var _StyledButton = require("./StyledButton");
21
+ var _useLinkOverlayAnalyticsEvents = require("./useLinkOverlayAnalyticsEvents");
20
22
  /** @jsx jsx */
21
23
 
22
24
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
@@ -31,7 +33,7 @@ var buttonWrapperStyles = (0, _react2.css)({
31
33
  borderRadius: "var(--ds-border-radius, 3px)"
32
34
  });
33
35
  var showDropdownThresholdPx = 50;
34
- var OverlayButton = exports.OverlayButton = function OverlayButton(_ref) {
36
+ var OverlayButton = exports.OverlayButton = (0, _analyticsNext.withAnalyticsContext)()(function (_ref) {
35
37
  var _docNode$nodeSize;
36
38
  var editorView = _ref.editorView,
37
39
  _ref$testId = _ref.testId,
@@ -46,6 +48,9 @@ var OverlayButton = exports.OverlayButton = function OverlayButton(_ref) {
46
48
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
47
49
  showDropdown = _useState2[0],
48
50
  setShowDropdown = _useState2[1];
51
+ var _useLinkOverlayAnalyt = (0, _useLinkOverlayAnalyticsEvents.useLinkOverlayAnalyticsEvents)(),
52
+ fireLinkClickEvent = _useLinkOverlayAnalyt.fireLinkClickEvent,
53
+ fireActionClickEvent = _useLinkOverlayAnalyt.fireActionClickEvent;
49
54
  (0, _react.useLayoutEffect)(function () {
50
55
  var _domNode;
51
56
  var domNode = editorView.nodeDOM(targetElementPos);
@@ -63,7 +68,7 @@ var OverlayButton = exports.OverlayButton = function OverlayButton(_ref) {
63
68
  var docNode = editorView.state.doc.nodeAt(targetElementPos);
64
69
  var nodeEnd = targetElementPos + ((_docNode$nodeSize = docNode === null || docNode === void 0 ? void 0 : docNode.nodeSize) !== null && _docNode$nodeSize !== void 0 ? _docNode$nodeSize : 0);
65
70
  var isText = docNode === null || docNode === void 0 ? void 0 : docNode.isText;
66
- var handleClick = (0, _react.useCallback)(function () {
71
+ var handleConfigureClick = (0, _react.useCallback)(function () {
67
72
  var tr = editorView.state.tr;
68
73
  if (isText) {
69
74
  tr.setSelection(_state.TextSelection.create(tr.doc, targetElementPos, Math.min(nodeEnd, tr.doc.nodeSize)));
@@ -71,7 +76,12 @@ var OverlayButton = exports.OverlayButton = function OverlayButton(_ref) {
71
76
  tr.setSelection(_state.NodeSelection.create(tr.doc, targetElementPos));
72
77
  }
73
78
  editorView.dispatch(tr);
74
- }, [isText, editorView, nodeEnd, targetElementPos]);
79
+ }, [editorView, isText, targetElementPos, nodeEnd]);
80
+ var handleConfigureClickWithAnalytics = (0, _react.useCallback)(function () {
81
+ fireLinkClickEvent();
82
+ fireActionClickEvent('configureLink');
83
+ handleConfigureClick();
84
+ }, [fireActionClickEvent, fireLinkClickEvent, handleConfigureClick]);
75
85
  var _editorView$state$sel = editorView.state.selection,
76
86
  from = _editorView$state$sel.from,
77
87
  to = _editorView$state$sel.to;
@@ -90,11 +100,11 @@ var OverlayButton = exports.OverlayButton = function OverlayButton(_ref) {
90
100
  hideTooltipOnClick: true,
91
101
  testId: "".concat(testId, "-tooltip")
92
102
  }, (0, _react2.jsx)(_StyledButton.StyledButton, {
93
- onClick: handleClick,
103
+ onClick: handleConfigureClickWithAnalytics,
94
104
  iconBefore: (0, _react2.jsx)(_preferences.default, {
95
105
  label: configureLinkLabel,
96
106
  size: "small",
97
107
  testId: "".concat(testId, "-configure-icon")
98
108
  })
99
109
  })));
100
- };
110
+ });
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useLinkOverlayAnalyticsEvents = void 0;
7
+ var _react = require("react");
8
+ var _analyticsListeners = require("@atlaskit/analytics-listeners");
9
+ var _analyticsNext = require("@atlaskit/analytics-next");
10
+ var _analytics = require("../../analytics");
11
+ var useLinkOverlayAnalyticsEvents = exports.useLinkOverlayAnalyticsEvents = function useLinkOverlayAnalyticsEvents() {
12
+ var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
13
+ createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
14
+ return (0, _react.useMemo)(function () {
15
+ return {
16
+ fireActionClickEvent: function fireActionClickEvent(linkAction) {
17
+ createAnalyticsEvent({
18
+ action: _analytics.ACTION.CLICKED,
19
+ actionSubject: _analytics.ACTION_SUBJECT.BUTTON,
20
+ eventType: _analytics.EVENT_TYPE.UI,
21
+ attributes: {
22
+ action: linkAction
23
+ }
24
+ }).fire(_analyticsListeners.FabricChannel.media);
25
+ },
26
+ fireLinkClickEvent: function fireLinkClickEvent() {
27
+ createAnalyticsEvent({
28
+ action: _analytics.ACTION.CLICKED,
29
+ actionSubject: _analytics.ACTION_SUBJECT.LINK,
30
+ eventType: _analytics.EVENT_TYPE.UI
31
+ }).fire(_analyticsListeners.FabricChannel.media);
32
+ },
33
+ fireToolbarViewEvent: function fireToolbarViewEvent() {
34
+ createAnalyticsEvent({
35
+ action: _analytics.ACTION.VIEWED,
36
+ actionSubject: _analytics.ACTION_SUBJECT.INLINE_DIALOG,
37
+ actionSubjectId: _analytics.ACTION_SUBJECT_ID.SMART_LINK_TOOLBAR,
38
+ eventType: _analytics.EVENT_TYPE.SCREEN,
39
+ attributes: {
40
+ linkType: 'smallLink'
41
+ }
42
+ }).fire(_analyticsListeners.FabricChannel.media);
43
+ }
44
+ };
45
+ }, [createAnalyticsEvent]);
46
+ };
@@ -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 && Object.prototype.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 = "84.5.1";
20
+ var packageVersion = "85.0.0";
21
21
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
22
22
  // Remove URL as it has UGC
23
23
  // TODO: Sanitise the URL instead of just removing it
@@ -65,9 +65,7 @@ function createNodeView(_ref) {
65
65
  nodeViewParams: nodeViewParams,
66
66
  Component: Component,
67
67
  extraComponentProps: extraComponentProps
68
- }), domRef, key, false,
69
- // node views should be rendered with intl context
70
- true);
68
+ }), domRef, key);
71
69
  }
72
70
  var _getPerformanceOption = (0, _utils.getPerformanceOptions)(nodeViewParams.view),
73
71
  samplingRate = _getPerformanceOption.samplingRate,
@@ -123,7 +121,7 @@ function createNodeView(_ref) {
123
121
  // When prosemirror destroys the node view, we need to clean up
124
122
  // what we have previously rendered using the editor portal
125
123
  // provider api.
126
- pmPluginFactoryParams.portalProviderAPI.remove(key, domRef);
124
+ pmPluginFactoryParams.portalProviderAPI.remove(key);
127
125
  // @ts-expect-error Expect an error as domRef is expected to be
128
126
  // of HTMLSpanElement type however once the node view has
129
127
  // been destroyed no other consumers should still be using it.
@@ -30,11 +30,8 @@ var _analytics2 = require("../utils/analytics");
30
30
  var _generateUniqueNodeKey = require("./generateUniqueNodeKey");
31
31
  var _getInlineNodeViewProducer = require("./getInlineNodeViewProducer");
32
32
  var ReactNodeView = exports.default = /*#__PURE__*/function () {
33
- function ReactNodeView(_node, view, getPos, portalProviderAPI, eventDispatcher, reactComponentProps, reactComponent) {
33
+ function ReactNodeView(_node, view, getPos, portalProviderAPI, eventDispatcher, reactComponentProps, reactComponent, viewShouldUpdate) {
34
34
  var _this = this;
35
- var hasAnalyticsContext = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
36
- var viewShouldUpdate = arguments.length > 8 ? arguments[8] : undefined;
37
- var hasIntlContext = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;
38
35
  (0, _classCallCheck2.default)(this, ReactNodeView);
39
36
  (0, _defineProperty2.default)(this, "decorations", []);
40
37
  (0, _defineProperty2.default)(this, "handleRef", function (node) {
@@ -54,10 +51,8 @@ var ReactNodeView = exports.default = /*#__PURE__*/function () {
54
51
  this.portalProviderAPI = portalProviderAPI;
55
52
  this.reactComponentProps = reactComponentProps || {};
56
53
  this.reactComponent = reactComponent;
57
- this.hasAnalyticsContext = hasAnalyticsContext;
58
54
  this._viewShouldUpdate = viewShouldUpdate;
59
55
  this.eventDispatcher = eventDispatcher;
60
- this.hasIntlContext = hasIntlContext;
61
56
  this.key = (0, _generateUniqueNodeKey.generateUniqueNodeKey)();
62
57
  }
63
58
 
@@ -126,7 +121,7 @@ var ReactNodeView = exports.default = /*#__PURE__*/function () {
126
121
  dispatchAnalyticsEvent: _this3.dispatchAnalyticsEvent
127
122
  }, component());
128
123
  };
129
- this.portalProviderAPI.render(componentWithErrorBoundary, this.domRef, this.key, this.hasAnalyticsContext, this.hasIntlContext);
124
+ this.portalProviderAPI.render(componentWithErrorBoundary, this.domRef, this.key);
130
125
  }
131
126
  }, {
132
127
  key: "createDomRef",
@@ -223,16 +218,15 @@ var ReactNodeView = exports.default = /*#__PURE__*/function () {
223
218
  if (!this.domRef) {
224
219
  return;
225
220
  }
226
- this.portalProviderAPI.remove(this.key, this.domRef);
221
+ this.portalProviderAPI.remove(this.key);
227
222
  this.domRef = undefined;
228
223
  this.contentDOM = undefined;
229
224
  }
230
225
  }], [{
231
226
  key: "fromComponent",
232
227
  value: function fromComponent(component, portalProviderAPI, eventDispatcher, props, viewShouldUpdate) {
233
- var hasIntlContext = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
234
228
  return function (node, view, getPos) {
235
- return new ReactNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, props, component, false, viewShouldUpdate, hasIntlContext).init();
229
+ return new ReactNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, props, component, viewShouldUpdate).init();
236
230
  };
237
231
  }
238
232
  }]);
@@ -41,13 +41,10 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
41
41
  var SelectionBasedNodeView = exports.SelectionBasedNodeView = /*#__PURE__*/function (_ReactNodeView) {
42
42
  (0, _inherits2.default)(SelectionBasedNodeView, _ReactNodeView);
43
43
  var _super = _createSuper(SelectionBasedNodeView);
44
- function SelectionBasedNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, reactComponentProps, reactComponent) {
44
+ function SelectionBasedNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, reactComponentProps, reactComponent, viewShouldUpdate) {
45
45
  var _this;
46
- var hasContext = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
47
- var viewShouldUpdate = arguments.length > 8 ? arguments[8] : undefined;
48
- var hasIntlContext = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;
49
46
  (0, _classCallCheck2.default)(this, SelectionBasedNodeView);
50
- _this = _super.call(this, node, view, getPos, portalProviderAPI, eventDispatcher, reactComponentProps, reactComponent, hasContext, viewShouldUpdate, hasIntlContext);
47
+ _this = _super.call(this, node, view, getPos, portalProviderAPI, eventDispatcher, reactComponentProps, reactComponent, viewShouldUpdate);
51
48
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isSelectedNode", false);
52
49
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isNodeInsideSelection", function (from, to, pos, posEnd) {
53
50
  var _this$getPositionsWit = _this.getPositionsWithDefault(pos, posEnd);
@@ -20,7 +20,7 @@ var _Layer = _interopRequireDefault(require("../Layer"));
20
20
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
21
21
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
22
22
  var packageName = "@atlaskit/editor-common";
23
- var packageVersion = "84.5.1";
23
+ var packageVersion = "85.0.0";
24
24
  var halfFocusRing = 1;
25
25
  var dropOffset = '0, 8';
26
26
  var DropList = /*#__PURE__*/function (_Component) {
@@ -235,6 +235,7 @@ export let ACTION_SUBJECT = /*#__PURE__*/function (ACTION_SUBJECT) {
235
235
  ACTION_SUBJECT["DRAG"] = "drag";
236
236
  ACTION_SUBJECT["ELEMENT"] = "element";
237
237
  ACTION_SUBJECT["CONTEXT_MENU"] = "contextMenu";
238
+ ACTION_SUBJECT["INLINE_DIALOG"] = "inlineDialog";
238
239
  return ACTION_SUBJECT;
239
240
  }({});
240
241
  export let ACTION_SUBJECT_ID = /*#__PURE__*/function (ACTION_SUBJECT_ID) {
@@ -349,6 +350,7 @@ export let ACTION_SUBJECT_ID = /*#__PURE__*/function (ACTION_SUBJECT_ID) {
349
350
  ACTION_SUBJECT_ID["SAVE"] = "save";
350
351
  ACTION_SUBJECT_ID["SECTION"] = "section";
351
352
  ACTION_SUBJECT_ID["SMART_LINK"] = "smartLink";
353
+ ACTION_SUBJECT_ID["SMART_LINK_TOOLBAR"] = "smartLinkToolbar";
352
354
  ACTION_SUBJECT_ID["STATUS"] = "status";
353
355
  ACTION_SUBJECT_ID["SYMBOL"] = "symbol";
354
356
  ACTION_SUBJECT_ID["TABLE"] = "table";
@@ -53,13 +53,12 @@ export class ExtensionNode extends ReactNodeView {
53
53
  }
54
54
  export default function ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags) {
55
55
  return (node, view, getPos) => {
56
- const hasIntlContext = true;
57
56
  return new ExtensionNode(node, view, getPos, portalProviderAPI, eventDispatcher, {
58
57
  providerFactory,
59
58
  extensionHandlers,
60
59
  extensionNodeViewOptions,
61
60
  pluginInjectionApi,
62
61
  macroInteractionDesignFeatureFlags
63
- }, undefined, undefined, undefined, hasIntlContext).init();
62
+ }).init();
64
63
  };
65
64
  }
@@ -1,6 +1,5 @@
1
1
  import { base, keyName } from 'w3c-keyname';
2
2
  import { keydownHandler } from '@atlaskit/editor-prosemirror/keymap';
3
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
4
3
  import { SafePlugin } from '../safe-plugin';
5
4
 
6
5
  /**
@@ -14,52 +13,35 @@ export function keymap(bindings) {
14
13
  return new SafePlugin({
15
14
  props: {
16
15
  handleKeyDown(view, event) {
17
- if (getBooleanFF('platform.editor.text-alignment-keyboard-shortcuts')) {
18
- const name = keyName(event);
19
- let keyboardEvent = event;
16
+ const name = keyName(event);
17
+ let keyboardEvent = event;
20
18
 
21
- // We will try to bypass the keycode only if any of mod keys are pressed,
22
- // to allow users to use non-latin and Dead characters.
23
- const isModKeyPressed = event.ctrlKey || event.metaKey;
19
+ // We will try to bypass the keycode only if any of mod keys are pressed,
20
+ // to allow users to use non-latin and Dead characters.
21
+ const isModKeyPressed = event.ctrlKey || event.metaKey;
24
22
 
25
- // Check the unicode of the character to assert that it's not an ASCII character.
26
- // These are characters outside latin's range.
27
- const isNonLatinKey = name.length === 1 && /[^\u0000-\u007f]/.test(name);
23
+ // Check the unicode of the character to assert that it's not an ASCII character.
24
+ // These are characters outside latin's range.
25
+ const isNonLatinKey = name.length === 1 && /[^\u0000-\u007f]/.test(name);
28
26
 
29
- // The `Dead` key is a key that combines with a following key to produce a combined character.
30
- // It will have `even.key === 'Dead'` in some browsers but the `keyCode` will be the same as in a qwerty-keyboard.
31
- // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key and https://en.wikipedia.org/wiki/Dead_key
32
- const isDeadKey = name === 'Dead';
33
- if (isModKeyPressed && (isNonLatinKey || isDeadKey)) {
34
- keyboardEvent = new KeyboardEvent(event.type, {
35
- // FIXME: The event.keyCode is deprecated (see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode),
36
- // and could be removed in any time, but the w3c-keyname library doesn't provide a way to get
37
- // a key by event.code.
38
- key: base[event.keyCode],
39
- code: event.code,
40
- ctrlKey: event.ctrlKey,
41
- altKey: event.altKey,
42
- metaKey: event.metaKey,
43
- shiftKey: event.shiftKey
44
- });
45
- }
46
- return keydownHandler(bindings)(view, keyboardEvent);
47
- } else {
48
- const name = keyName(event);
49
- let keyboardEvent = event;
50
- if (event.ctrlKey && name.length === 1 &&
51
- // Check the unicode of the character to
52
- // assert that its not an ASCII character.
53
- // These are characters outside Latin's range.
54
- /[^\u0000-\u007f]/.test(name)) {
55
- keyboardEvent = new KeyboardEvent('keydown', {
56
- key: base[event.keyCode],
57
- code: event.code,
58
- ctrlKey: true
59
- });
60
- }
61
- return keydownHandler(bindings)(view, keyboardEvent);
27
+ // The `Dead` key is a key that combines with a following key to produce a combined character.
28
+ // It will have `even.key === 'Dead'` in some browsers but the `keyCode` will be the same as in a qwerty-keyboard.
29
+ // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key and https://en.wikipedia.org/wiki/Dead_key
30
+ const isDeadKey = name === 'Dead';
31
+ if (isModKeyPressed && (isNonLatinKey || isDeadKey)) {
32
+ keyboardEvent = new KeyboardEvent(event.type, {
33
+ // FIXME: The event.keyCode is deprecated (see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode),
34
+ // and could be removed in any time, but the w3c-keyname library doesn't provide a way to get
35
+ // a key by event.code.
36
+ key: base[event.keyCode],
37
+ code: event.code,
38
+ ctrlKey: event.ctrlKey,
39
+ altKey: event.altKey,
40
+ metaKey: event.metaKey,
41
+ shiftKey: event.shiftKey
42
+ });
62
43
  }
44
+ return keydownHandler(bindings)(view, keyboardEvent);
63
45
  }
64
46
  }
65
47
  });