@atlaskit/editor-common 72.8.0 → 72.9.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.
- package/CHANGELOG.md +6 -0
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.js +10 -4
- package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +8 -4
- package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/index.js +19 -7
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.js +7 -5
- package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +6 -4
- package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/index.js +14 -4
- package/dist/es2019/version.json +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.js +10 -5
- package/dist/esm/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +8 -4
- package/dist/esm/ui-menu/ArrowKeyNavigationProvider/index.js +19 -7
- package/dist/esm/version.json +1 -1
- package/dist/types/ui-menu/ArrowKeyNavigationProvider/types.d.ts +4 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 72.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`135df1a1e78`](https://bitbucket.org/atlassian/atlassian-frontend/commits/135df1a1e78) - [ux] ED-17405 - Bugfix: Editor toolbar dropdown menus not receiving keyboard events for navigation
|
|
8
|
+
|
|
3
9
|
## 72.8.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
|
@@ -24,7 +24,7 @@ var _templateObject, _templateObject2, _templateObject3;
|
|
|
24
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); }; }
|
|
25
25
|
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; } } /** @jsx jsx */
|
|
26
26
|
var packageName = "@atlaskit/editor-common";
|
|
27
|
-
var packageVersion = "72.
|
|
27
|
+
var packageVersion = "72.9.0";
|
|
28
28
|
var halfFocusRing = 1;
|
|
29
29
|
var dropOffset = "0, ".concat((0, _constants.gridSize)(), "px");
|
|
30
30
|
var DropList = /*#__PURE__*/function (_Component) {
|
package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.ColorPaletteArrowKeyNavigationProvider = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
11
|
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
12
|
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; }
|
|
@@ -19,10 +21,14 @@ var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKeyNaviga
|
|
|
19
21
|
isOpenedByKeyboard = _ref.isOpenedByKeyboard,
|
|
20
22
|
isPopupPositioned = _ref.isPopupPositioned,
|
|
21
23
|
handleClose = _ref.handleClose,
|
|
22
|
-
closeOnTab = _ref.closeOnTab
|
|
24
|
+
closeOnTab = _ref.closeOnTab,
|
|
25
|
+
editorRef = _ref.editorRef;
|
|
23
26
|
var wrapperRef = (0, _react.useRef)(null);
|
|
24
27
|
var currentSelectedColumnIndex = (0, _react.useRef)(selectedColumnIndex === -1 ? 0 : selectedColumnIndex);
|
|
25
28
|
var currentSelectedRowIndex = (0, _react.useRef)(selectedRowIndex === -1 ? 0 : selectedRowIndex);
|
|
29
|
+
var _useState = (0, _react.useState)(editorRef.current),
|
|
30
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 1),
|
|
31
|
+
listenerTargetElement = _useState2[0];
|
|
26
32
|
var incrementRowIndex = function incrementRowIndex(rowElements, columnElements) {
|
|
27
33
|
if (currentSelectedRowIndex.current === rowElements.length - 1) {
|
|
28
34
|
currentSelectedRowIndex.current = 0;
|
|
@@ -105,7 +111,7 @@ var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKeyNaviga
|
|
|
105
111
|
return;
|
|
106
112
|
}
|
|
107
113
|
};
|
|
108
|
-
|
|
114
|
+
listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
|
|
109
115
|
// set focus to current selected color swatch if only opened by keyboard
|
|
110
116
|
if (isOpenedByKeyboard && isPopupPositioned) {
|
|
111
117
|
// Using timeout because, we need to wait till color palette is rendered
|
|
@@ -116,9 +122,9 @@ var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKeyNaviga
|
|
|
116
122
|
});
|
|
117
123
|
}
|
|
118
124
|
return function () {
|
|
119
|
-
|
|
125
|
+
listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
|
|
120
126
|
};
|
|
121
|
-
}, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab]);
|
|
127
|
+
}, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab, listenerTargetElement]);
|
|
122
128
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
123
129
|
className: "custom-key-handler-wrapper",
|
|
124
130
|
ref: wrapperRef
|
|
@@ -20,12 +20,16 @@ var MenuArrowKeyNavigationProvider = function MenuArrowKeyNavigationProvider(_re
|
|
|
20
20
|
disableArrowKeyNavigation = _ref.disableArrowKeyNavigation,
|
|
21
21
|
keyDownHandlerContext = _ref.keyDownHandlerContext,
|
|
22
22
|
closeOnTab = _ref.closeOnTab,
|
|
23
|
-
onSelection = _ref.onSelection
|
|
23
|
+
onSelection = _ref.onSelection,
|
|
24
|
+
editorRef = _ref.editorRef;
|
|
24
25
|
var wrapperRef = (0, _react.useRef)(null);
|
|
25
26
|
var _useState = (0, _react.useState)(-1),
|
|
26
27
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
27
28
|
currentSelectedItemIndex = _useState2[0],
|
|
28
29
|
setCurrentSelectedItemIndex = _useState2[1];
|
|
30
|
+
var _useState3 = (0, _react.useState)(editorRef.current),
|
|
31
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 1),
|
|
32
|
+
listenerTargetElement = _useState4[0];
|
|
29
33
|
var incrementIndex = (0, _react.useCallback)(function (list) {
|
|
30
34
|
var currentIndex = currentSelectedItemIndex;
|
|
31
35
|
var nextIndex = (currentIndex + 1) % list.length;
|
|
@@ -141,11 +145,11 @@ var MenuArrowKeyNavigationProvider = function MenuArrowKeyNavigationProvider(_re
|
|
|
141
145
|
return;
|
|
142
146
|
}
|
|
143
147
|
};
|
|
144
|
-
|
|
148
|
+
listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
|
|
145
149
|
return function () {
|
|
146
|
-
|
|
150
|
+
listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
|
|
147
151
|
};
|
|
148
|
-
}, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex]);
|
|
152
|
+
}, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex, listenerTargetElement]);
|
|
149
153
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
150
154
|
className: "menu-key-handler-wrapper custom-key-handler-wrapper",
|
|
151
155
|
ref: wrapperRef
|
|
@@ -8,6 +8,7 @@ exports.ArrowKeyNavigationProvider = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
var _uiReact = require("../../ui-react");
|
|
11
12
|
var _ColorPaletteArrowKeyNavigationProvider = require("./ColorPaletteArrowKeyNavigationProvider");
|
|
12
13
|
var _MenuArrowKeyNavigationProvider = require("./MenuArrowKeyNavigationProvider");
|
|
13
14
|
var _types = require("./types");
|
|
@@ -17,13 +18,24 @@ var ArrowKeyNavigationProvider = function ArrowKeyNavigationProvider(props) {
|
|
|
17
18
|
type = props.type,
|
|
18
19
|
restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
19
20
|
if (type === _types.ArrowKeyNavigationType.COLOR) {
|
|
20
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
return /*#__PURE__*/_react.default.createElement(_uiReact.ReactEditorViewContext.Consumer, null, function (_ref) {
|
|
22
|
+
var editorView = _ref.editorView,
|
|
23
|
+
editorRef = _ref.editorRef;
|
|
24
|
+
return editorRef && /*#__PURE__*/_react.default.createElement(_ColorPaletteArrowKeyNavigationProvider.ColorPaletteArrowKeyNavigationProvider, (0, _extends2.default)({
|
|
25
|
+
selectedRowIndex: props.selectedRowIndex,
|
|
26
|
+
selectedColumnIndex: props.selectedColumnIndex,
|
|
27
|
+
isOpenedByKeyboard: props.isOpenedByKeyboard,
|
|
28
|
+
isPopupPositioned: props.isPopupPositioned,
|
|
29
|
+
editorRef: editorRef
|
|
30
|
+
}, restProps), children);
|
|
31
|
+
});
|
|
26
32
|
}
|
|
27
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement(_uiReact.ReactEditorViewContext.Consumer, null, function (_ref2) {
|
|
34
|
+
var editorView = _ref2.editorView,
|
|
35
|
+
editorRef = _ref2.editorRef;
|
|
36
|
+
return editorRef && /*#__PURE__*/_react.default.createElement(_MenuArrowKeyNavigationProvider.MenuArrowKeyNavigationProvider, (0, _extends2.default)({
|
|
37
|
+
editorRef: editorRef
|
|
38
|
+
}, restProps), children);
|
|
39
|
+
});
|
|
28
40
|
};
|
|
29
41
|
exports.ArrowKeyNavigationProvider = ArrowKeyNavigationProvider;
|
package/dist/cjs/version.json
CHANGED
|
@@ -8,7 +8,7 @@ import { themed } from '@atlaskit/theme/components';
|
|
|
8
8
|
import { borderRadius, gridSize } from '@atlaskit/theme/constants';
|
|
9
9
|
import Layer from '../Layer';
|
|
10
10
|
const packageName = "@atlaskit/editor-common";
|
|
11
|
-
const packageVersion = "72.
|
|
11
|
+
const packageVersion = "72.9.0";
|
|
12
12
|
const halfFocusRing = 1;
|
|
13
13
|
const dropOffset = `0, ${gridSize()}px`;
|
|
14
14
|
class DropList extends Component {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useLayoutEffect, useRef } from 'react';
|
|
1
|
+
import React, { useLayoutEffect, useRef, useState } from 'react';
|
|
2
2
|
/**
|
|
3
3
|
* This component is a wrapper for color picker which listens to keydown events of children
|
|
4
4
|
* and handles arrow key navigation
|
|
@@ -10,11 +10,13 @@ export const ColorPaletteArrowKeyNavigationProvider = ({
|
|
|
10
10
|
isOpenedByKeyboard,
|
|
11
11
|
isPopupPositioned,
|
|
12
12
|
handleClose,
|
|
13
|
-
closeOnTab
|
|
13
|
+
closeOnTab,
|
|
14
|
+
editorRef
|
|
14
15
|
}) => {
|
|
15
16
|
const wrapperRef = useRef(null);
|
|
16
17
|
const currentSelectedColumnIndex = useRef(selectedColumnIndex === -1 ? 0 : selectedColumnIndex);
|
|
17
18
|
const currentSelectedRowIndex = useRef(selectedRowIndex === -1 ? 0 : selectedRowIndex);
|
|
19
|
+
const [listenerTargetElement] = useState(editorRef.current);
|
|
18
20
|
const incrementRowIndex = (rowElements, columnElements) => {
|
|
19
21
|
if (currentSelectedRowIndex.current === rowElements.length - 1) {
|
|
20
22
|
currentSelectedRowIndex.current = 0;
|
|
@@ -97,7 +99,7 @@ export const ColorPaletteArrowKeyNavigationProvider = ({
|
|
|
97
99
|
return;
|
|
98
100
|
}
|
|
99
101
|
};
|
|
100
|
-
|
|
102
|
+
listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
|
|
101
103
|
// set focus to current selected color swatch if only opened by keyboard
|
|
102
104
|
if (isOpenedByKeyboard && isPopupPositioned) {
|
|
103
105
|
// Using timeout because, we need to wait till color palette is rendered
|
|
@@ -108,9 +110,9 @@ export const ColorPaletteArrowKeyNavigationProvider = ({
|
|
|
108
110
|
});
|
|
109
111
|
}
|
|
110
112
|
return () => {
|
|
111
|
-
|
|
113
|
+
listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
|
|
112
114
|
};
|
|
113
|
-
}, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab]);
|
|
115
|
+
}, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab, listenerTargetElement]);
|
|
114
116
|
return /*#__PURE__*/React.createElement("div", {
|
|
115
117
|
className: "custom-key-handler-wrapper",
|
|
116
118
|
ref: wrapperRef
|
package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js
CHANGED
|
@@ -9,10 +9,12 @@ export const MenuArrowKeyNavigationProvider = ({
|
|
|
9
9
|
disableArrowKeyNavigation,
|
|
10
10
|
keyDownHandlerContext,
|
|
11
11
|
closeOnTab,
|
|
12
|
-
onSelection
|
|
12
|
+
onSelection,
|
|
13
|
+
editorRef
|
|
13
14
|
}) => {
|
|
14
15
|
const wrapperRef = useRef(null);
|
|
15
16
|
const [currentSelectedItemIndex, setCurrentSelectedItemIndex] = useState(-1);
|
|
17
|
+
const [listenerTargetElement] = useState(editorRef.current);
|
|
16
18
|
const incrementIndex = useCallback(list => {
|
|
17
19
|
const currentIndex = currentSelectedItemIndex;
|
|
18
20
|
let nextIndex = (currentIndex + 1) % list.length;
|
|
@@ -128,11 +130,11 @@ export const MenuArrowKeyNavigationProvider = ({
|
|
|
128
130
|
return;
|
|
129
131
|
}
|
|
130
132
|
};
|
|
131
|
-
|
|
133
|
+
listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
|
|
132
134
|
return () => {
|
|
133
|
-
|
|
135
|
+
listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
|
|
134
136
|
};
|
|
135
|
-
}, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex]);
|
|
137
|
+
}, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex, listenerTargetElement]);
|
|
136
138
|
return /*#__PURE__*/React.createElement("div", {
|
|
137
139
|
className: "menu-key-handler-wrapper custom-key-handler-wrapper",
|
|
138
140
|
ref: wrapperRef
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { ReactEditorViewContext } from '../../ui-react';
|
|
3
4
|
import { ColorPaletteArrowKeyNavigationProvider } from './ColorPaletteArrowKeyNavigationProvider';
|
|
4
5
|
import { MenuArrowKeyNavigationProvider } from './MenuArrowKeyNavigationProvider';
|
|
5
6
|
import { ArrowKeyNavigationType } from './types';
|
|
@@ -10,12 +11,21 @@ export const ArrowKeyNavigationProvider = props => {
|
|
|
10
11
|
...restProps
|
|
11
12
|
} = props;
|
|
12
13
|
if (type === ArrowKeyNavigationType.COLOR) {
|
|
13
|
-
return /*#__PURE__*/React.createElement(
|
|
14
|
+
return /*#__PURE__*/React.createElement(ReactEditorViewContext.Consumer, null, ({
|
|
15
|
+
editorView,
|
|
16
|
+
editorRef
|
|
17
|
+
}) => editorRef && /*#__PURE__*/React.createElement(ColorPaletteArrowKeyNavigationProvider, _extends({
|
|
14
18
|
selectedRowIndex: props.selectedRowIndex,
|
|
15
19
|
selectedColumnIndex: props.selectedColumnIndex,
|
|
16
20
|
isOpenedByKeyboard: props.isOpenedByKeyboard,
|
|
17
|
-
isPopupPositioned: props.isPopupPositioned
|
|
18
|
-
|
|
21
|
+
isPopupPositioned: props.isPopupPositioned,
|
|
22
|
+
editorRef: editorRef
|
|
23
|
+
}, restProps), children));
|
|
19
24
|
}
|
|
20
|
-
return /*#__PURE__*/React.createElement(
|
|
25
|
+
return /*#__PURE__*/React.createElement(ReactEditorViewContext.Consumer, null, ({
|
|
26
|
+
editorView,
|
|
27
|
+
editorRef
|
|
28
|
+
}) => editorRef && /*#__PURE__*/React.createElement(MenuArrowKeyNavigationProvider, _extends({
|
|
29
|
+
editorRef: editorRef
|
|
30
|
+
}, restProps), children));
|
|
21
31
|
};
|
package/dist/es2019/version.json
CHANGED
|
@@ -18,7 +18,7 @@ import { themed } from '@atlaskit/theme/components';
|
|
|
18
18
|
import { borderRadius, gridSize } from '@atlaskit/theme/constants';
|
|
19
19
|
import Layer from '../Layer';
|
|
20
20
|
var packageName = "@atlaskit/editor-common";
|
|
21
|
-
var packageVersion = "72.
|
|
21
|
+
var packageVersion = "72.9.0";
|
|
22
22
|
var halfFocusRing = 1;
|
|
23
23
|
var dropOffset = "0, ".concat(gridSize(), "px");
|
|
24
24
|
var DropList = /*#__PURE__*/function (_Component) {
|
package/dist/esm/ui-menu/ArrowKeyNavigationProvider/ColorPaletteArrowKeyNavigationProvider/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import React, { useLayoutEffect, useRef, useState } from 'react';
|
|
2
3
|
/**
|
|
3
4
|
* This component is a wrapper for color picker which listens to keydown events of children
|
|
4
5
|
* and handles arrow key navigation
|
|
@@ -10,10 +11,14 @@ export var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKe
|
|
|
10
11
|
isOpenedByKeyboard = _ref.isOpenedByKeyboard,
|
|
11
12
|
isPopupPositioned = _ref.isPopupPositioned,
|
|
12
13
|
handleClose = _ref.handleClose,
|
|
13
|
-
closeOnTab = _ref.closeOnTab
|
|
14
|
+
closeOnTab = _ref.closeOnTab,
|
|
15
|
+
editorRef = _ref.editorRef;
|
|
14
16
|
var wrapperRef = useRef(null);
|
|
15
17
|
var currentSelectedColumnIndex = useRef(selectedColumnIndex === -1 ? 0 : selectedColumnIndex);
|
|
16
18
|
var currentSelectedRowIndex = useRef(selectedRowIndex === -1 ? 0 : selectedRowIndex);
|
|
19
|
+
var _useState = useState(editorRef.current),
|
|
20
|
+
_useState2 = _slicedToArray(_useState, 1),
|
|
21
|
+
listenerTargetElement = _useState2[0];
|
|
17
22
|
var incrementRowIndex = function incrementRowIndex(rowElements, columnElements) {
|
|
18
23
|
if (currentSelectedRowIndex.current === rowElements.length - 1) {
|
|
19
24
|
currentSelectedRowIndex.current = 0;
|
|
@@ -96,7 +101,7 @@ export var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKe
|
|
|
96
101
|
return;
|
|
97
102
|
}
|
|
98
103
|
};
|
|
99
|
-
|
|
104
|
+
listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
|
|
100
105
|
// set focus to current selected color swatch if only opened by keyboard
|
|
101
106
|
if (isOpenedByKeyboard && isPopupPositioned) {
|
|
102
107
|
// Using timeout because, we need to wait till color palette is rendered
|
|
@@ -107,9 +112,9 @@ export var ColorPaletteArrowKeyNavigationProvider = function ColorPaletteArrowKe
|
|
|
107
112
|
});
|
|
108
113
|
}
|
|
109
114
|
return function () {
|
|
110
|
-
|
|
115
|
+
listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
|
|
111
116
|
};
|
|
112
|
-
}, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab]);
|
|
117
|
+
}, [currentSelectedColumnIndex, isOpenedByKeyboard, isPopupPositioned, wrapperRef, handleClose, closeOnTab, listenerTargetElement]);
|
|
113
118
|
return /*#__PURE__*/React.createElement("div", {
|
|
114
119
|
className: "custom-key-handler-wrapper",
|
|
115
120
|
ref: wrapperRef
|
|
@@ -10,12 +10,16 @@ export var MenuArrowKeyNavigationProvider = function MenuArrowKeyNavigationProvi
|
|
|
10
10
|
disableArrowKeyNavigation = _ref.disableArrowKeyNavigation,
|
|
11
11
|
keyDownHandlerContext = _ref.keyDownHandlerContext,
|
|
12
12
|
closeOnTab = _ref.closeOnTab,
|
|
13
|
-
onSelection = _ref.onSelection
|
|
13
|
+
onSelection = _ref.onSelection,
|
|
14
|
+
editorRef = _ref.editorRef;
|
|
14
15
|
var wrapperRef = useRef(null);
|
|
15
16
|
var _useState = useState(-1),
|
|
16
17
|
_useState2 = _slicedToArray(_useState, 2),
|
|
17
18
|
currentSelectedItemIndex = _useState2[0],
|
|
18
19
|
setCurrentSelectedItemIndex = _useState2[1];
|
|
20
|
+
var _useState3 = useState(editorRef.current),
|
|
21
|
+
_useState4 = _slicedToArray(_useState3, 1),
|
|
22
|
+
listenerTargetElement = _useState4[0];
|
|
19
23
|
var incrementIndex = useCallback(function (list) {
|
|
20
24
|
var currentIndex = currentSelectedItemIndex;
|
|
21
25
|
var nextIndex = (currentIndex + 1) % list.length;
|
|
@@ -131,11 +135,11 @@ export var MenuArrowKeyNavigationProvider = function MenuArrowKeyNavigationProvi
|
|
|
131
135
|
return;
|
|
132
136
|
}
|
|
133
137
|
};
|
|
134
|
-
|
|
138
|
+
listenerTargetElement && listenerTargetElement.addEventListener('keydown', handleKeyDown);
|
|
135
139
|
return function () {
|
|
136
|
-
|
|
140
|
+
listenerTargetElement && listenerTargetElement.removeEventListener('keydown', handleKeyDown);
|
|
137
141
|
};
|
|
138
|
-
}, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex]);
|
|
142
|
+
}, [currentSelectedItemIndex, wrapperRef, handleClose, disableArrowKeyNavigation, keyDownHandlerContext, closeOnTab, onSelection, incrementIndex, decrementIndex, listenerTargetElement]);
|
|
139
143
|
return /*#__PURE__*/React.createElement("div", {
|
|
140
144
|
className: "menu-key-handler-wrapper custom-key-handler-wrapper",
|
|
141
145
|
ref: wrapperRef
|
|
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
3
|
var _excluded = ["children", "type"];
|
|
4
4
|
import React from 'react';
|
|
5
|
+
import { ReactEditorViewContext } from '../../ui-react';
|
|
5
6
|
import { ColorPaletteArrowKeyNavigationProvider } from './ColorPaletteArrowKeyNavigationProvider';
|
|
6
7
|
import { MenuArrowKeyNavigationProvider } from './MenuArrowKeyNavigationProvider';
|
|
7
8
|
import { ArrowKeyNavigationType } from './types';
|
|
@@ -10,12 +11,23 @@ export var ArrowKeyNavigationProvider = function ArrowKeyNavigationProvider(prop
|
|
|
10
11
|
type = props.type,
|
|
11
12
|
restProps = _objectWithoutProperties(props, _excluded);
|
|
12
13
|
if (type === ArrowKeyNavigationType.COLOR) {
|
|
13
|
-
return /*#__PURE__*/React.createElement(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
return /*#__PURE__*/React.createElement(ReactEditorViewContext.Consumer, null, function (_ref) {
|
|
15
|
+
var editorView = _ref.editorView,
|
|
16
|
+
editorRef = _ref.editorRef;
|
|
17
|
+
return editorRef && /*#__PURE__*/React.createElement(ColorPaletteArrowKeyNavigationProvider, _extends({
|
|
18
|
+
selectedRowIndex: props.selectedRowIndex,
|
|
19
|
+
selectedColumnIndex: props.selectedColumnIndex,
|
|
20
|
+
isOpenedByKeyboard: props.isOpenedByKeyboard,
|
|
21
|
+
isPopupPositioned: props.isPopupPositioned,
|
|
22
|
+
editorRef: editorRef
|
|
23
|
+
}, restProps), children);
|
|
24
|
+
});
|
|
19
25
|
}
|
|
20
|
-
return /*#__PURE__*/React.createElement(
|
|
26
|
+
return /*#__PURE__*/React.createElement(ReactEditorViewContext.Consumer, null, function (_ref2) {
|
|
27
|
+
var editorView = _ref2.editorView,
|
|
28
|
+
editorRef = _ref2.editorRef;
|
|
29
|
+
return editorRef && /*#__PURE__*/React.createElement(MenuArrowKeyNavigationProvider, _extends({
|
|
30
|
+
editorRef: editorRef
|
|
31
|
+
}, restProps), children);
|
|
32
|
+
});
|
|
21
33
|
};
|
package/dist/esm/version.json
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
export interface KeyDownHandlerContext {
|
|
2
3
|
handleArrowRight: () => void;
|
|
3
4
|
handleArrowLeft: () => void;
|
|
@@ -18,6 +19,7 @@ export declare type ColorPaletteArrowKeyNavigationOptions = {
|
|
|
18
19
|
export declare type ColorPaletteArrowKeyNavigationProps = ColorPaletteArrowKeyNavigationOptions & {
|
|
19
20
|
handleClose?: SimpleEventHandler<KeyboardEvent>;
|
|
20
21
|
closeOnTab?: boolean;
|
|
22
|
+
editorRef: React.RefObject<HTMLDivElement>;
|
|
21
23
|
};
|
|
22
24
|
export declare type MenuArrowKeyNavigationOptions = {
|
|
23
25
|
type: ArrowKeyNavigationType.MENU;
|
|
@@ -28,6 +30,7 @@ export declare type MenuArrowKeyNavigationProviderProps = MenuArrowKeyNavigation
|
|
|
28
30
|
handleClose?: SimpleEventHandler<KeyboardEvent>;
|
|
29
31
|
onSelection?: (index: number) => void;
|
|
30
32
|
closeOnTab?: boolean;
|
|
33
|
+
editorRef: React.RefObject<HTMLDivElement>;
|
|
31
34
|
};
|
|
32
35
|
export declare type ArrowKeyNavigationProviderOptions = ColorPaletteArrowKeyNavigationOptions | MenuArrowKeyNavigationOptions;
|
|
33
|
-
export declare type ArrowKeyNavigationProviderProps = ColorPaletteArrowKeyNavigationProps | MenuArrowKeyNavigationProviderProps
|
|
36
|
+
export declare type ArrowKeyNavigationProviderProps = Omit<ColorPaletteArrowKeyNavigationProps, 'editorRef'> | Omit<MenuArrowKeyNavigationProviderProps, 'editorRef'>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-common",
|
|
3
|
-
"version": "72.
|
|
3
|
+
"version": "72.9.0",
|
|
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/"
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"@atlaskit/mention": "^22.0.0",
|
|
81
81
|
"@atlaskit/menu": "^1.5.0",
|
|
82
82
|
"@atlaskit/profilecard": "^19.2.0",
|
|
83
|
-
"@atlaskit/smart-card": "^25.
|
|
83
|
+
"@atlaskit/smart-card": "^25.5.0",
|
|
84
84
|
"@atlaskit/smart-user-picker": "^6.0.0",
|
|
85
85
|
"@atlaskit/task-decision": "^17.5.0",
|
|
86
86
|
"@atlaskit/theme": "^12.4.0",
|