@atlaskit/editor-common 72.4.0 → 72.5.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 (130) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/cjs/analytics/analytics-queue.js +79 -0
  3. package/dist/cjs/analytics/fire-analytics-event.js +36 -0
  4. package/dist/cjs/analytics/index.js +15 -1
  5. package/dist/cjs/analytics/types/enums.js +4 -0
  6. package/dist/cjs/analytics/utils.js +16 -0
  7. package/dist/cjs/hooks/index.js +20 -0
  8. package/dist/cjs/hooks/useConstructor.js +22 -0
  9. package/dist/cjs/hooks/usePreviousState.js +23 -0
  10. package/dist/cjs/keymaps/index.js +1 -1
  11. package/dist/cjs/styles/index.js +6 -0
  12. package/dist/cjs/styles/shared/table.js +3 -1
  13. package/dist/cjs/ui/DropList/index.js +1 -1
  14. package/dist/cjs/ui/index.js +6 -0
  15. package/dist/cjs/ui-color/ColorPalette/Color/index.js +2 -3
  16. package/dist/cjs/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +1 -1
  17. package/dist/cjs/ui-color/ColorPalette/index.js +9 -11
  18. package/dist/cjs/ui-color/ColorPalette/utils.js +42 -0
  19. package/dist/cjs/ui-color/index.js +25 -0
  20. package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.js +141 -0
  21. package/dist/cjs/ui-menu/{MenuArrowKeyNavigationProvider → ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider}/index.js +15 -0
  22. package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/index.js +29 -0
  23. package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/types.js +12 -0
  24. package/dist/cjs/ui-menu/Dropdown/index.js +5 -7
  25. package/dist/cjs/ui-menu/DropdownMenu/index.js +50 -24
  26. package/dist/cjs/ui-menu/ToolbarButton/index.js +3 -1
  27. package/dist/cjs/ui-menu/index.js +21 -0
  28. package/dist/cjs/utils/analytics.js +5 -1
  29. package/dist/cjs/utils/index.js +6 -0
  30. package/dist/cjs/utils/referentiality.js +29 -15
  31. package/dist/cjs/version.json +1 -1
  32. package/dist/es2019/analytics/analytics-queue.js +53 -0
  33. package/dist/es2019/analytics/fire-analytics-event.js +27 -0
  34. package/dist/es2019/analytics/index.js +3 -1
  35. package/dist/es2019/analytics/types/enums.js +4 -0
  36. package/dist/es2019/analytics/utils.js +4 -0
  37. package/dist/es2019/hooks/index.js +2 -0
  38. package/dist/es2019/hooks/useConstructor.js +17 -0
  39. package/dist/es2019/hooks/usePreviousState.js +18 -0
  40. package/dist/es2019/keymaps/index.js +1 -1
  41. package/dist/es2019/styles/index.js +1 -1
  42. package/dist/es2019/styles/shared/table.js +1 -0
  43. package/dist/es2019/ui/DropList/index.js +1 -1
  44. package/dist/es2019/ui/index.js +1 -1
  45. package/dist/es2019/ui-color/ColorPalette/Color/index.js +7 -4
  46. package/dist/es2019/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +1 -1
  47. package/dist/es2019/ui-color/ColorPalette/index.js +9 -11
  48. package/dist/es2019/ui-color/ColorPalette/utils.js +31 -0
  49. package/dist/es2019/ui-color/index.js +1 -0
  50. package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.js +132 -0
  51. package/dist/es2019/ui-menu/{MenuArrowKeyNavigationProvider → ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider}/index.js +16 -1
  52. package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/index.js +21 -0
  53. package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/types.js +5 -0
  54. package/dist/es2019/ui-menu/Dropdown/index.js +5 -7
  55. package/dist/es2019/ui-menu/DropdownMenu/index.js +46 -23
  56. package/dist/es2019/ui-menu/ToolbarButton/index.js +3 -1
  57. package/dist/es2019/ui-menu/index.js +3 -0
  58. package/dist/es2019/utils/analytics.js +1 -0
  59. package/dist/es2019/utils/index.js +1 -1
  60. package/dist/es2019/utils/referentiality.js +19 -15
  61. package/dist/es2019/version.json +1 -1
  62. package/dist/esm/analytics/analytics-queue.js +71 -0
  63. package/dist/esm/analytics/fire-analytics-event.js +29 -0
  64. package/dist/esm/analytics/index.js +3 -1
  65. package/dist/esm/analytics/types/enums.js +4 -0
  66. package/dist/esm/analytics/utils.js +9 -0
  67. package/dist/esm/hooks/index.js +2 -0
  68. package/dist/esm/hooks/useConstructor.js +17 -0
  69. package/dist/esm/hooks/usePreviousState.js +18 -0
  70. package/dist/esm/keymaps/index.js +1 -1
  71. package/dist/esm/styles/index.js +1 -1
  72. package/dist/esm/styles/shared/table.js +1 -0
  73. package/dist/esm/ui/DropList/index.js +1 -1
  74. package/dist/esm/ui/index.js +1 -1
  75. package/dist/esm/ui-color/ColorPalette/Color/index.js +2 -3
  76. package/dist/esm/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +1 -1
  77. package/dist/esm/ui-color/ColorPalette/index.js +9 -11
  78. package/dist/esm/ui-color/ColorPalette/utils.js +32 -0
  79. package/dist/esm/ui-color/index.js +1 -0
  80. package/dist/esm/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.js +131 -0
  81. package/dist/esm/ui-menu/{MenuArrowKeyNavigationProvider → ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider}/index.js +16 -1
  82. package/dist/esm/ui-menu/ArrowKeyNavigationProvider/index.js +21 -0
  83. package/dist/esm/ui-menu/ArrowKeyNavigationProvider/types.js +5 -0
  84. package/dist/esm/ui-menu/Dropdown/index.js +5 -7
  85. package/dist/esm/ui-menu/DropdownMenu/index.js +50 -24
  86. package/dist/esm/ui-menu/ToolbarButton/index.js +3 -1
  87. package/dist/esm/ui-menu/index.js +3 -0
  88. package/dist/esm/utils/analytics.js +3 -0
  89. package/dist/esm/utils/index.js +1 -1
  90. package/dist/esm/utils/referentiality.js +28 -15
  91. package/dist/esm/version.json +1 -1
  92. package/dist/types/analytics/analytics-queue.d.ts +10 -0
  93. package/dist/types/analytics/fire-analytics-event.d.ts +2 -0
  94. package/dist/types/analytics/index.d.ts +3 -1
  95. package/dist/types/analytics/types/enums.d.ts +4 -0
  96. package/dist/types/analytics/types/events.d.ts +2 -1
  97. package/dist/types/analytics/types/general-events.d.ts +2 -2
  98. package/dist/types/analytics/types/index.d.ts +1 -1
  99. package/dist/types/analytics/utils.d.ts +3 -0
  100. package/dist/types/extensions/types/extension-manifest.d.ts +1 -1
  101. package/dist/types/hooks/index.d.ts +2 -0
  102. package/dist/types/hooks/useConstructor.d.ts +9 -0
  103. package/dist/types/hooks/usePreviousState.d.ts +11 -0
  104. package/dist/types/styles/index.d.ts +1 -1
  105. package/dist/types/styles/shared/table.d.ts +1 -0
  106. package/dist/types/types/editor-actions.d.ts +2 -1
  107. package/dist/types/types/feature-flags.d.ts +11 -0
  108. package/dist/types/types/floating-toolbar.d.ts +1 -1
  109. package/dist/types/types/index.d.ts +2 -2
  110. package/dist/types/types/next-editor-plugin.d.ts +37 -32
  111. package/dist/types/ui/index.d.ts +1 -1
  112. package/dist/types/ui-color/ColorPalette/Color/index.d.ts +1 -5
  113. package/dist/types/ui-color/ColorPalette/index.d.ts +1 -0
  114. package/dist/types/ui-color/ColorPalette/utils.d.ts +11 -0
  115. package/dist/types/ui-color/index.d.ts +1 -0
  116. package/dist/types/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.d.ts +7 -0
  117. package/dist/types/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.d.ts +7 -0
  118. package/dist/types/ui-menu/ArrowKeyNavigationProvider/index.d.ts +3 -0
  119. package/dist/types/ui-menu/ArrowKeyNavigationProvider/types.d.ts +33 -0
  120. package/dist/types/ui-menu/Dropdown/index.d.ts +2 -3
  121. package/dist/types/ui-menu/DropdownMenu/index.d.ts +2 -0
  122. package/dist/types/ui-menu/DropdownMenu/types.d.ts +3 -6
  123. package/dist/types/ui-menu/ToolbarButton/index.d.ts +2 -0
  124. package/dist/types/ui-menu/index.d.ts +3 -0
  125. package/dist/types/utils/analytics.d.ts +1 -0
  126. package/dist/types/utils/index.d.ts +1 -1
  127. package/dist/types/utils/referentiality.d.ts +11 -0
  128. package/hooks/package.json +15 -0
  129. package/package.json +18 -14
  130. package/dist/types/ui-menu/MenuArrowKeyNavigationProvider/index.d.ts +0 -16
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ColorPaletteArrowKeyNavigationProvider = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
+ /**
12
+ * This component is a wrapper for color picker which listens to keydown events of children
13
+ * and handles arrow key navigation
14
+ */
15
+ var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKeyNavigationProvider(_ref) {
16
+ var children = _ref.children,
17
+ selectedRowIndex = _ref.selectedRowIndex,
18
+ selectedColumnIndex = _ref.selectedColumnIndex,
19
+ isOpenedByKeyboard = _ref.isOpenedByKeyboard,
20
+ isPopupPositioned = _ref.isPopupPositioned,
21
+ handleClose = _ref.handleClose,
22
+ closeOnTab = _ref.closeOnTab;
23
+ var wrapperRef = (0, _react.useRef)(null);
24
+ var currentSelectedColumnIndex = (0, _react.useRef)(selectedColumnIndex === -1 ? 0 : selectedColumnIndex);
25
+ var currentSelectedRowIndex = (0, _react.useRef)(selectedRowIndex === -1 ? 0 : selectedRowIndex);
26
+ var incrementRowIndex = function incrementRowIndex(rowElements, columnElements) {
27
+ if (currentSelectedRowIndex.current === rowElements.length - 1) {
28
+ currentSelectedRowIndex.current = 0;
29
+ } else {
30
+ currentSelectedRowIndex.current = currentSelectedRowIndex.current + 1;
31
+ }
32
+ };
33
+ var decrementRowIndex = function decrementRowIndex(rowElements, columnElements) {
34
+ if (currentSelectedRowIndex.current === 0) {
35
+ currentSelectedRowIndex.current = rowElements.length - 1;
36
+ } else {
37
+ currentSelectedRowIndex.current = currentSelectedRowIndex.current - 1;
38
+ }
39
+ };
40
+ (0, _react.useLayoutEffect)(function () {
41
+ var incrementColumnIndex = function incrementColumnIndex(rowElements, columnElements) {
42
+ if (currentSelectedColumnIndex.current === columnElements.length - 1) {
43
+ incrementRowIndex(rowElements, columnElements);
44
+ currentSelectedColumnIndex.current = 0;
45
+ } else {
46
+ currentSelectedColumnIndex.current = currentSelectedColumnIndex.current + 1;
47
+ }
48
+ };
49
+ var decrementColumnIndex = function decrementColumnIndex(rowElements, columnElements) {
50
+ if (currentSelectedColumnIndex.current === 0) {
51
+ decrementRowIndex(rowElements, columnElements);
52
+ currentSelectedColumnIndex.current = columnElements.length - 1;
53
+ } else {
54
+ currentSelectedColumnIndex.current = currentSelectedColumnIndex.current - 1;
55
+ }
56
+ };
57
+ var focusColorSwatch = function focusColorSwatch() {
58
+ var _focusableElements$cu;
59
+ var colorSwatchesRowElements = getColorSwatchesRows(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
60
+ var currentSelectedColorSwatchRowElement = colorSwatchesRowElements[currentSelectedRowIndex.current];
61
+ var focusableElements = getFocusableElements(currentSelectedColorSwatchRowElement);
62
+ if (!focusableElements || (focusableElements === null || focusableElements === void 0 ? void 0 : focusableElements.length) === 0) {
63
+ return;
64
+ }
65
+ (_focusableElements$cu = focusableElements[currentSelectedColumnIndex.current]) === null || _focusableElements$cu === void 0 ? void 0 : _focusableElements$cu.focus();
66
+ };
67
+
68
+ /**
69
+ * To handle the key events on the list
70
+ * @param event
71
+ */
72
+ var handleKeyDown = function handleKeyDown(event) {
73
+ if (event.key === 'Tab' && closeOnTab) {
74
+ handleClose(event);
75
+ return;
76
+ }
77
+ var colorSwatchesRowElements = getColorSwatchesRows(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
78
+ var currentSelectedColorSwatchRowElement = colorSwatchesRowElements[currentSelectedRowIndex.current];
79
+ var focusableElements = getFocusableElements(currentSelectedColorSwatchRowElement);
80
+ switch (event.key) {
81
+ case 'ArrowDown':
82
+ incrementRowIndex(colorSwatchesRowElements, focusableElements);
83
+ focusColorSwatch();
84
+ event.preventDefault();
85
+ break;
86
+ case 'ArrowUp':
87
+ decrementRowIndex(colorSwatchesRowElements, focusableElements);
88
+ focusColorSwatch();
89
+ event.preventDefault();
90
+ break;
91
+ case 'ArrowLeft':
92
+ decrementColumnIndex(colorSwatchesRowElements, focusableElements);
93
+ focusColorSwatch();
94
+ event.preventDefault();
95
+ break;
96
+ case 'ArrowRight':
97
+ incrementColumnIndex(colorSwatchesRowElements, focusableElements);
98
+ focusColorSwatch();
99
+ event.preventDefault();
100
+ break;
101
+ case 'Escape':
102
+ handleClose(event);
103
+ break;
104
+ default:
105
+ return;
106
+ }
107
+ };
108
+ document.addEventListener('keydown', handleKeyDown);
109
+ // set focus to current selected color swatch if only opened by keyboard
110
+ if (isOpenedByKeyboard && isPopupPositioned) {
111
+ // Using timeout because, we need to wait till color palette is rendered
112
+ // and visible on screen, then only focus color swatch, otherwise focus will be
113
+ // moved to body
114
+ setTimeout(function () {
115
+ focusColorSwatch();
116
+ });
117
+ }
118
+ return function () {
119
+ document.removeEventListener('keydown', handleKeyDown);
120
+ };
121
+ }, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab]);
122
+ return /*#__PURE__*/_react.default.createElement("div", {
123
+ className: "custom-key-handler-wrapper",
124
+ ref: wrapperRef
125
+ }, children);
126
+ };
127
+ exports.ColorPaletteArrowKeyNavigationProvider = ColorPaletteArrowKeyNavigationProvider;
128
+ function getColorSwatchesRows(rootNode) {
129
+ if (!rootNode) {
130
+ return [];
131
+ }
132
+ var colorSwatchesRowElements = rootNode.querySelectorAll('div[role=radiogroup]') || [];
133
+ return Array.from(colorSwatchesRowElements);
134
+ }
135
+ function getFocusableElements(rootNode) {
136
+ if (!rootNode) {
137
+ return [];
138
+ }
139
+ var focusableModalElements = rootNode.querySelectorAll('button[role=radio]:not([disabled])') || [];
140
+ return Array.from(focusableModalElements);
141
+ }
@@ -46,6 +46,21 @@ var MenuArrowKeyNavigationProvider = function MenuArrowKeyNavigationProvider(_re
46
46
  setCurrentSelectedItemIndex(nextIndex);
47
47
  return nextIndex;
48
48
  }, [currentSelectedItemIndex]);
49
+
50
+ // this useEffect uses onSelection in it's dependency list which gets
51
+ // changed as a result of the dropdown menu getting re-rendered in it's
52
+ // parent component. Note that if onSelection gets updated to useMemo
53
+ // this will no longer work.
54
+ (0, _react.useEffect)(function () {
55
+ var currentIndex = currentSelectedItemIndex;
56
+ var list = getFocusableElements(wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current);
57
+ var currentElement = list[currentIndex];
58
+ if (currentElement && currentElement.getAttribute('aria-disabled') === 'true') {
59
+ var _list$focusIndex;
60
+ var focusIndex = incrementIndex(list);
61
+ (_list$focusIndex = list[focusIndex]) === null || _list$focusIndex === void 0 ? void 0 : _list$focusIndex.focus();
62
+ }
63
+ }, [currentSelectedItemIndex, onSelection, incrementIndex, decrementIndex]);
49
64
  (0, _react.useLayoutEffect)(function () {
50
65
  if (disableArrowKeyNavigation) {
51
66
  return;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ArrowKeyNavigationProvider = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _ColorPaletteArrowKeyNavigationProvider = require("./ColorPaletteArrowKeyNavigationProvider");
12
+ var _MenuArrowKeyNavigationProvider = require("./MenuArrowKeyNavigationProvider");
13
+ var _types = require("./types");
14
+ var _excluded = ["children", "type"];
15
+ var ArrowKeyNavigationProvider = function ArrowKeyNavigationProvider(props) {
16
+ var children = props.children,
17
+ type = props.type,
18
+ restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
19
+ if (type === _types.ArrowKeyNavigationType.COLOR) {
20
+ return /*#__PURE__*/_react.default.createElement(_ColorPaletteArrowKeyNavigationProvider.ColorPaletteArrowKeyNavigationProvider, (0, _extends2.default)({
21
+ selectedRowIndex: props.selectedRowIndex,
22
+ selectedColumnIndex: props.selectedColumnIndex,
23
+ isOpenedByKeyboard: props.isOpenedByKeyboard,
24
+ isPopupPositioned: props.isPopupPositioned
25
+ }, restProps), children);
26
+ }
27
+ return /*#__PURE__*/_react.default.createElement(_MenuArrowKeyNavigationProvider.MenuArrowKeyNavigationProvider, restProps, children);
28
+ };
29
+ exports.ArrowKeyNavigationProvider = ArrowKeyNavigationProvider;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ArrowKeyNavigationType = void 0;
7
+ var ArrowKeyNavigationType;
8
+ exports.ArrowKeyNavigationType = ArrowKeyNavigationType;
9
+ (function (ArrowKeyNavigationType) {
10
+ ArrowKeyNavigationType["COLOR"] = "color";
11
+ ArrowKeyNavigationType["MENU"] = "menu";
12
+ })(ArrowKeyNavigationType || (exports.ArrowKeyNavigationType = ArrowKeyNavigationType = {}));
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = exports.Dropdown = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
12
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
@@ -17,7 +18,7 @@ var _react = _interopRequireWildcard(require("react"));
17
18
  var _uiReact = require("../../ui-react");
18
19
  var _DropList = _interopRequireDefault(require("../../ui/DropList"));
19
20
  var _Popup = _interopRequireDefault(require("../../ui/Popup"));
20
- var _MenuArrowKeyNavigationProvider = require("../MenuArrowKeyNavigationProvider");
21
+ var _ArrowKeyNavigationProvider = require("../ArrowKeyNavigationProvider");
21
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
24
  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); }; }
@@ -65,8 +66,7 @@ var Dropdown = /*#__PURE__*/function (_PureComponent) {
65
66
  fitHeight = _this$props.fitHeight,
66
67
  fitWidth = _this$props.fitWidth,
67
68
  zIndex = _this$props.zIndex,
68
- disableArrowKeyNavigation = _this$props.disableArrowKeyNavigation,
69
- keyDownHandlerContext = _this$props.keyDownHandlerContext;
69
+ arrowKeyNavigationProviderOptions = _this$props.arrowKeyNavigationProviderOptions;
70
70
  return /*#__PURE__*/_react.default.createElement(_Popup.default, {
71
71
  target: target,
72
72
  mountTo: mountTo,
@@ -76,9 +76,7 @@ var Dropdown = /*#__PURE__*/function (_PureComponent) {
76
76
  fitHeight: fitHeight,
77
77
  fitWidth: fitWidth,
78
78
  zIndex: zIndex
79
- }, /*#__PURE__*/_react.default.createElement(_MenuArrowKeyNavigationProvider.MenuArrowKeyNavigationProvider, {
80
- disableArrowKeyNavigation: disableArrowKeyNavigation,
81
- keyDownHandlerContext: keyDownHandlerContext,
79
+ }, /*#__PURE__*/_react.default.createElement(_ArrowKeyNavigationProvider.ArrowKeyNavigationProvider, (0, _extends2.default)({}, arrowKeyNavigationProviderOptions, {
82
80
  closeOnTab: true,
83
81
  handleClose: function handleClose(event) {
84
82
  return onOpenChange && onOpenChange({
@@ -86,7 +84,7 @@ var Dropdown = /*#__PURE__*/function (_PureComponent) {
86
84
  event: event
87
85
  });
88
86
  }
89
- }, /*#__PURE__*/_react.default.createElement("div", {
87
+ }), /*#__PURE__*/_react.default.createElement("div", {
90
88
  style: {
91
89
  height: 0,
92
90
  minWidth: fitWidth || 0
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
14
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
@@ -28,11 +28,14 @@ var _styles = require("../../styles");
28
28
  var _uiReact = require("../../ui-react");
29
29
  var _DropList = _interopRequireDefault(require("../../ui/DropList"));
30
30
  var _Popup = _interopRequireDefault(require("../../ui/Popup"));
31
- var _MenuArrowKeyNavigationProvider = require("../MenuArrowKeyNavigationProvider");
31
+ var _ArrowKeyNavigationProvider = require("../ArrowKeyNavigationProvider");
32
+ var _types = require("../ArrowKeyNavigationProvider/types");
32
33
  var _excluded = ["children"];
33
34
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
34
35
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
36
39
  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); }; }
37
40
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
38
41
  var wrapper = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n /* tooltip in ToolbarButton is display:block */\n & > div > div {\n display: flex;\n }\n"])));
@@ -57,7 +60,7 @@ var buttonStyles = function buttonStyles(isActive, submenuActive) {
57
60
  })(theme), ";\n }"), (0, _components.themed)({
58
61
  light: "var(--ds-text-disabled, ".concat(_colors.N70, ")"),
59
62
  dark: "var(--ds-text-disabled, ".concat(_colors.DN80, ")")
60
- })(theme), focusedMenuItemStyle); // The deafut focus-visible style is removed to ensure consistency across browsers
63
+ })(theme), focusedMenuItemStyle); // The default focus-visible style is removed to ensure consistency across browsers
61
64
  }
62
65
  };
63
66
  };
@@ -84,6 +87,7 @@ var DropdownMenuWrapper = /*#__PURE__*/function (_PureComponent) {
84
87
  popupPlacement: ['bottom', 'left'],
85
88
  selectionIndex: -1
86
89
  });
90
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "popupRef", /*#__PURE__*/_react.default.createRef());
87
91
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleRef", function (target) {
88
92
  _this.setState({
89
93
  target: target || undefined
@@ -129,23 +133,15 @@ var DropdownMenuWrapper = /*#__PURE__*/function (_PureComponent) {
129
133
  isOpen = _this$props.isOpen,
130
134
  zIndex = _this$props.zIndex,
131
135
  shouldUseDefaultRole = _this$props.shouldUseDefaultRole,
132
- disableArrowKeyNavigation = _this$props.disableArrowKeyNavigation,
133
- keyDownHandlerContext = _this$props.keyDownHandlerContext,
134
- onItemActivated = _this$props.onItemActivated;
135
- return (0, _react2.jsx)(_Popup.default, {
136
- target: isOpen ? target : undefined,
137
- mountTo: mountTo,
138
- boundariesElement: boundariesElement,
139
- scrollableElement: scrollableElement,
140
- onPlacementChanged: this.updatePopupPlacement,
141
- fitHeight: fitHeight,
142
- fitWidth: fitWidth,
143
- zIndex: zIndex || _editorSharedStyles.akEditorFloatingPanelZIndex,
144
- offset: offset
145
- }, (0, _react2.jsx)(_MenuArrowKeyNavigationProvider.MenuArrowKeyNavigationProvider, {
146
- disableArrowKeyNavigation: disableArrowKeyNavigation,
147
- handleClose: this.handleCloseAndFocus,
148
- keyDownHandlerContext: keyDownHandlerContext,
136
+ onItemActivated = _this$props.onItemActivated,
137
+ arrowKeyNavigationProviderOptions = _this$props.arrowKeyNavigationProviderOptions;
138
+
139
+ // Note that this onSelection function can't be refactored to useMemo for
140
+ // performance gains as it is being used as a dependency in a useEffect in
141
+ // MenuArrowKeyNavigationProvider in order to check for re-renders to adjust
142
+ // focus for accessibility. If this needs to be refactored in future refer
143
+ // back to ED-16740 for context.
144
+ var navigationProviderProps = arrowKeyNavigationProviderOptions.type === _types.ArrowKeyNavigationType.COLOR ? arrowKeyNavigationProviderOptions : _objectSpread(_objectSpread({}, arrowKeyNavigationProviderOptions), {}, {
149
145
  onSelection: function onSelection(index) {
150
146
  var result = [];
151
147
  if (typeof onItemActivated === 'function') {
@@ -157,9 +153,22 @@ var DropdownMenuWrapper = /*#__PURE__*/function (_PureComponent) {
157
153
  shouldCloseMenu: false
158
154
  });
159
155
  }
160
- },
156
+ }
157
+ });
158
+ return (0, _react2.jsx)(_Popup.default, {
159
+ target: isOpen ? target : undefined,
160
+ mountTo: mountTo,
161
+ boundariesElement: boundariesElement,
162
+ scrollableElement: scrollableElement,
163
+ onPlacementChanged: this.updatePopupPlacement,
164
+ fitHeight: fitHeight,
165
+ fitWidth: fitWidth,
166
+ zIndex: zIndex || _editorSharedStyles.akEditorFloatingPanelZIndex,
167
+ offset: offset
168
+ }, (0, _react2.jsx)(_ArrowKeyNavigationProvider.ArrowKeyNavigationProvider, (0, _extends2.default)({}, navigationProviderProps, {
169
+ handleClose: this.handleCloseAndFocus,
161
170
  closeOnTab: true
162
- }, (0, _react2.jsx)(DropListWithOutsideListeners, {
171
+ }), (0, _react2.jsx)(DropListWithOutsideListeners, {
163
172
  isOpen: true,
164
173
  appearance: "tall",
165
174
  position: popupPlacement.join(' '),
@@ -174,7 +183,9 @@ var DropdownMenuWrapper = /*#__PURE__*/function (_PureComponent) {
174
183
  height: 0,
175
184
  minWidth: fitWidth || 0
176
185
  }
177
- }), items.map(function (group, index) {
186
+ }), (0, _react2.jsx)("div", {
187
+ ref: this.popupRef
188
+ }, items.map(function (group, index) {
178
189
  return (0, _react2.jsx)(_menu.MenuGroup, {
179
190
  key: index,
180
191
  role: shouldUseDefaultRole ? 'group' : 'menu'
@@ -189,7 +200,7 @@ var DropdownMenuWrapper = /*#__PURE__*/function (_PureComponent) {
189
200
  onMouseLeave: _this2.props.onMouseLeave
190
201
  });
191
202
  }));
192
- }))));
203
+ })))));
193
204
  }
194
205
  }, {
195
206
  key: "render",
@@ -203,6 +214,21 @@ var DropdownMenuWrapper = /*#__PURE__*/function (_PureComponent) {
203
214
  ref: this.handleRef
204
215
  }, children), isOpen ? this.renderDropdownMenu() : null);
205
216
  }
217
+ }, {
218
+ key: "componentDidUpdate",
219
+ value: function componentDidUpdate(previousProps) {
220
+ var isOpenToggled = this.props.isOpen !== previousProps.isOpen;
221
+ if (this.props.isOpen && isOpenToggled) {
222
+ if (typeof this.props.shouldFocusFirstItem === 'function' && this.props.shouldFocusFirstItem()) {
223
+ var _this$state$target2;
224
+ var keyboardEvent = new KeyboardEvent('keydown', {
225
+ key: 'ArrowDown',
226
+ bubbles: true
227
+ });
228
+ (_this$state$target2 = this.state.target) === null || _this$state$target2 === void 0 ? void 0 : _this$state$target2.dispatchEvent(keyboardEvent);
229
+ }
230
+ }
231
+ }
206
232
  }]);
207
233
  return DropdownMenuWrapper;
208
234
  }(_react.PureComponent);
@@ -46,6 +46,7 @@ var ToolbarButton = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
46
46
  ariaPressed = props['aria-pressed'],
47
47
  ariaKeyShortcuts = props['aria-keyshortcuts'],
48
48
  onClick = props.onClick,
49
+ onKeyDown = props.onKeyDown,
49
50
  onItemClick = props.onItemClick;
50
51
  var handleClick = (0, _react.useCallback)(function (event, analyticsEvent) {
51
52
  if (disabled) {
@@ -88,7 +89,8 @@ var ToolbarButton = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
88
89
  "aria-haspopup": ariaHasPopup,
89
90
  "aria-label": ariaLabel,
90
91
  "aria-pressed": ariaPressed,
91
- "aria-keyshortcuts": ariaKeyShortcuts
92
+ "aria-keyshortcuts": ariaKeyShortcuts,
93
+ onKeyDown: onKeyDown
92
94
  }, children);
93
95
  if (!title) {
94
96
  return button;
@@ -5,6 +5,24 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ Object.defineProperty(exports, "ArrowKeyNavigationProvider", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _ArrowKeyNavigationProvider.ArrowKeyNavigationProvider;
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "ArrowKeyNavigationType", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _types.ArrowKeyNavigationType;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "ColorPaletteArrowKeyNavigationProvider", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _ColorPaletteArrowKeyNavigationProvider.ColorPaletteArrowKeyNavigationProvider;
24
+ }
25
+ });
8
26
  Object.defineProperty(exports, "Dropdown", {
9
27
  enumerable: true,
10
28
  get: function get() {
@@ -31,6 +49,9 @@ Object.defineProperty(exports, "ToolbarButton", {
31
49
  });
32
50
  var _DropdownMenu = _interopRequireDefault(require("../ui-menu/DropdownMenu"));
33
51
  var _ToolbarButton = _interopRequireWildcard(require("../ui-menu/ToolbarButton"));
52
+ var _ArrowKeyNavigationProvider = require("../ui-menu/ArrowKeyNavigationProvider");
53
+ var _types = require("../ui-menu/ArrowKeyNavigationProvider/types");
54
+ var _ColorPaletteArrowKeyNavigationProvider = require("./ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider");
34
55
  var _Dropdown = _interopRequireDefault(require("./Dropdown"));
35
56
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
36
57
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "UNSUPPORTED_CONTENT_LEVEL_SEVERITY_THRESHOLD_DEF
16
16
  return _getUnsupportedContentLevelData.UNSUPPORTED_CONTENT_LEVEL_SEVERITY_THRESHOLD_DEFAULTS;
17
17
  }
18
18
  });
19
- exports.getAnalyticsEventSeverity = exports.getAnalyticsAppearance = exports.analyticsEventKey = void 0;
19
+ exports.getAnalyticsEventSeverity = exports.getAnalyticsEditorAppearance = exports.getAnalyticsAppearance = exports.analyticsEventKey = void 0;
20
20
  Object.defineProperty(exports, "getUnsupportedContentLevelData", {
21
21
  enumerable: true,
22
22
  get: function get() {
@@ -40,6 +40,10 @@ var getAnalyticsAppearance = function getAnalyticsAppearance(appearance) {
40
40
  }
41
41
  };
42
42
  exports.getAnalyticsAppearance = getAnalyticsAppearance;
43
+ var getAnalyticsEditorAppearance = function getAnalyticsEditorAppearance(editorAppearance) {
44
+ return editorAppearance ? "editor_".concat(getAnalyticsAppearance(editorAppearance)) : '_unknown';
45
+ };
46
+ exports.getAnalyticsEditorAppearance = getAnalyticsEditorAppearance;
43
47
  var getAnalyticsEventSeverity = function getAnalyticsEventSeverity(duration, normalThreshold, degradedThreshold) {
44
48
  if (duration > normalThreshold && duration <= degradedThreshold) {
45
49
  return SEVERITY.DEGRADED;
@@ -208,6 +208,12 @@ Object.defineProperty(exports, "getAnalyticsAppearance", {
208
208
  return _analytics.getAnalyticsAppearance;
209
209
  }
210
210
  });
211
+ Object.defineProperty(exports, "getAnalyticsEditorAppearance", {
212
+ enumerable: true,
213
+ get: function get() {
214
+ return _analytics.getAnalyticsEditorAppearance;
215
+ }
216
+ });
211
217
  Object.defineProperty(exports, "getAnalyticsEventSeverity", {
212
218
  enumerable: true,
213
219
  get: function get() {
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.removeConnectedNodes = exports.isReferencedSource = exports.getNodeName = exports.getChildrenInfo = void 0;
7
+ exports.removeConnectedNodes = exports.isReferencedSource = exports.getNodeName = exports.getConnections = exports.getChildrenInfo = void 0;
8
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -60,7 +60,7 @@ var getConnections = function getConnections(state) {
60
60
  // Perform a prelim scan creating the initial id to connection link mappings.
61
61
  // This will also save a list of data sources consumed per node.
62
62
  doc.descendants(function (node, pos) {
63
- var _node$attrs2, _fragmentMark$attrs$l, _fragmentMark, _fragmentMark$attrs, _node$attrs3, _fragmentMark2, _fragmentMark2$attrs, _node$attrs4, _fragmentMark$attrs$n, _fragmentMark3, _fragmentMark3$attrs;
63
+ var _node$attrs2, _fragmentMark$attrs$l, _fragmentMark, _fragmentMark$attrs, _node$attrs3, _fragmentMark2, _fragmentMark2$attrs, _node$attrs4, _fragmentMark3, _fragmentMark3$attrs;
64
64
  var dataConsumer;
65
65
  var fragmentMark;
66
66
  node.marks.some(function (mark) {
@@ -94,7 +94,7 @@ var getConnections = function getConnections(state) {
94
94
  }
95
95
  result[normalizedId] = {
96
96
  localId: normalizedId,
97
- name: (_fragmentMark$attrs$n = (_fragmentMark3 = fragmentMark) === null || _fragmentMark3 === void 0 ? void 0 : (_fragmentMark3$attrs = _fragmentMark3.attrs) === null || _fragmentMark3$attrs === void 0 ? void 0 : _fragmentMark3$attrs.name) !== null && _fragmentMark$attrs$n !== void 0 ? _fragmentMark$attrs$n : normalizedId,
97
+ name: (_fragmentMark3 = fragmentMark) === null || _fragmentMark3 === void 0 ? void 0 : (_fragmentMark3$attrs = _fragmentMark3.attrs) === null || _fragmentMark3$attrs === void 0 ? void 0 : _fragmentMark3$attrs.name,
98
98
  node: node,
99
99
  pos: pos,
100
100
  targets: []
@@ -137,6 +137,7 @@ var getConnections = function getConnections(state) {
137
137
  }
138
138
  return result;
139
139
  };
140
+ exports.getConnections = getConnections;
140
141
  var removeConnectedNodes = function removeConnectedNodes(state, node) {
141
142
  if (!node) {
142
143
  return state.tr;
@@ -185,6 +186,7 @@ var getIdsToBeDeleted = function getIdsToBeDeleted(selectedIds, allNodes) {
185
186
 
186
187
  // for get children info for confirmation dialog
187
188
  var getChildrenInfo = function getChildrenInfo(state, node) {
189
+ var allChildrenHadName = true;
188
190
  if (!node) {
189
191
  return [];
190
192
  }
@@ -197,14 +199,28 @@ var getChildrenInfo = function getChildrenInfo(state, node) {
197
199
  allNodes[id].targets.forEach(childrenIdSet.add, childrenIdSet);
198
200
  }
199
201
  });
200
- childrenIdSet.forEach(function (id) {
201
- childrenInfoArray.push({
202
- id: id,
203
- name: getNodeNameById(id, allNodes),
204
- amount: getChildrenNodeAmount(id, allNodes)
205
- });
206
- });
207
- return childrenInfoArray;
202
+ var _iterator2 = _createForOfIteratorHelper(childrenIdSet),
203
+ _step2;
204
+ try {
205
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
206
+ var id = _step2.value;
207
+ if (!getNodeNameById(id, allNodes)) {
208
+ allChildrenHadName = false;
209
+ break;
210
+ } else {
211
+ childrenInfoArray.push({
212
+ id: id,
213
+ name: getNodeNameById(id, allNodes),
214
+ amount: getChildrenNodeAmount(id, allNodes)
215
+ });
216
+ }
217
+ }
218
+ } catch (err) {
219
+ _iterator2.e(err);
220
+ } finally {
221
+ _iterator2.f();
222
+ }
223
+ return allChildrenHadName ? childrenInfoArray : [];
208
224
  };
209
225
  exports.getChildrenInfo = getChildrenInfo;
210
226
  var getChildrenNodeAmount = function getChildrenNodeAmount(id, allNodes) {
@@ -235,19 +251,17 @@ var getNodeTargetsById = function getNodeTargetsById(id, allNodes) {
235
251
  }
236
252
  return allNodes[id].targets;
237
253
  };
238
- var DEFAULT_EXTENSION_NAME = 'Default extension';
239
254
  var getNodeNameById = function getNodeNameById(id, allNodes) {
240
255
  if ((0, _typeof2.default)(id) === 'object') {
241
- var _name2;
242
256
  var name;
243
257
  id.forEach(function (localId) {
244
258
  var _name, _allNodes$localId;
245
259
  name = (_name = name) !== null && _name !== void 0 ? _name : (_allNodes$localId = allNodes[localId]) === null || _allNodes$localId === void 0 ? void 0 : _allNodes$localId.name;
246
260
  });
247
- return (_name2 = name) !== null && _name2 !== void 0 ? _name2 : DEFAULT_EXTENSION_NAME;
261
+ return name || null;
248
262
  }
249
263
  if (!id || !allNodes[id]) {
250
- return DEFAULT_EXTENSION_NAME;
264
+ return null;
251
265
  }
252
266
  return allNodes[id].name;
253
267
  };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "72.4.0",
3
+ "version": "72.5.0",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1,53 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import memoizeOne from 'memoize-one';
3
+ export class AnalyticsQueue {
4
+ constructor() {
5
+ _defineProperty(this, "tasks", []);
6
+ _defineProperty(this, "running", false);
7
+ }
8
+ request(fn) {
9
+ if (window.requestIdleCallback) {
10
+ window.requestIdleCallback(fn);
11
+ } else {
12
+ const start = performance.now();
13
+ setTimeout(() => {
14
+ fn({
15
+ didTimeout: false,
16
+ timeRemaining: () => Math.max(0, 50 - (performance.now() - start))
17
+ });
18
+ }, 0);
19
+ }
20
+ }
21
+ pending() {
22
+ var _window$navigator, _window$navigator$sch;
23
+ // Defensive coding as navigator.scheduling.isInputPending is an experimental API
24
+ if (typeof ((_window$navigator = window.navigator) === null || _window$navigator === void 0 ? void 0 : (_window$navigator$sch = _window$navigator.scheduling) === null || _window$navigator$sch === void 0 ? void 0 : _window$navigator$sch.isInputPending) === 'function') {
25
+ var _window$navigator2, _window$navigator2$sc;
26
+ return ((_window$navigator2 = window.navigator) === null || _window$navigator2 === void 0 ? void 0 : (_window$navigator2$sc = _window$navigator2.scheduling) === null || _window$navigator2$sc === void 0 ? void 0 : _window$navigator2$sc.isInputPending()) === true;
27
+ }
28
+ return false;
29
+ }
30
+ process() {
31
+ if (this.running) {
32
+ return;
33
+ }
34
+ this.running = true;
35
+ this.request(deadline => {
36
+ while (deadline.timeRemaining() > 0 && this.tasks.length > 0 && !this.pending()) {
37
+ const task = this.tasks.shift();
38
+ if (task) {
39
+ task();
40
+ }
41
+ }
42
+ this.running = false;
43
+ if (this.tasks.length > 0) {
44
+ this.process();
45
+ }
46
+ });
47
+ }
48
+ schedule(task) {
49
+ this.tasks.push(task);
50
+ this.process();
51
+ }
52
+ }
53
+ _defineProperty(AnalyticsQueue, "get", memoizeOne(() => new AnalyticsQueue()));