@atlaskit/editor-plugin-insert-block 30.0.4 → 31.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.
- package/CHANGELOG.md +15 -0
- package/dist/cjs/ui/ToolbarInsertBlock/block-insert-element-browser.js +2 -2
- package/dist/cjs/ui/registered-insert-menu/RegisteredInsertButton.js +2 -2
- package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenu.compiled.css +1 -0
- package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenu.js +113 -238
- package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenuContent.js +1 -4
- package/dist/es2019/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -1
- package/dist/es2019/ui/registered-insert-menu/RegisteredInsertButton.js +1 -1
- package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenu.compiled.css +1 -0
- package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenu.js +97 -204
- package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenuContent.js +1 -4
- package/dist/esm/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -1
- package/dist/esm/ui/registered-insert-menu/RegisteredInsertButton.js +1 -1
- package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenu.compiled.css +1 -0
- package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenu.js +115 -240
- package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenuContent.js +1 -4
- package/dist/types/ui/registered-insert-menu/RegisteredInsertMenu.d.ts +5 -7
- package/package.json +31 -31
- package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenuItem.js +0 -64
- package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenuList.compiled.css +0 -11
- package/dist/cjs/ui/registered-insert-menu/RegisteredInsertMenuList.js +0 -324
- package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenuItem.js +0 -54
- package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenuList.compiled.css +0 -11
- package/dist/es2019/ui/registered-insert-menu/RegisteredInsertMenuList.js +0 -273
- package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenuItem.js +0 -56
- package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenuList.compiled.css +0 -11
- package/dist/esm/ui/registered-insert-menu/RegisteredInsertMenuList.js +0 -317
- package/dist/types/ui/registered-insert-menu/RegisteredInsertMenuItem.d.ts +0 -16
- package/dist/types/ui/registered-insert-menu/RegisteredInsertMenuList.d.ts +0 -31
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-insert-block
|
|
2
2
|
|
|
3
|
+
## 31.0.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`7e91f3141329d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7e91f3141329d) -
|
|
8
|
+
Decouple Quick Insert menu rendering and interaction from typeahead under the existing
|
|
9
|
+
`platform_editor_slash_command` experiment.
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
12
|
+
## 30.0.5
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
|
|
3
18
|
## 30.0.4
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.BlockInsertElementBrowser = void 0;
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _Popup = _interopRequireDefault(require("@atlaskit/editor-common/Popup"));
|
|
11
|
-
var
|
|
11
|
+
var _popupSizing = require("@atlaskit/editor-common/registered-menu/popup-sizing");
|
|
12
12
|
var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
|
|
13
13
|
var _InsertMenu = _interopRequireWildcard(require("../ElementBrowser/InsertMenu"));
|
|
14
14
|
var _RegisteredInsertMenuContent = require("../registered-insert-menu/RegisteredInsertMenuContent");
|
|
@@ -22,7 +22,7 @@ var BlockInsertElementBrowser = exports.BlockInsertElementBrowser = function Blo
|
|
|
22
22
|
var togglePlusMenuVisibility = props.togglePlusMenuVisibility,
|
|
23
23
|
plusButtonRef = props.plusButtonRef;
|
|
24
24
|
var isRegisteredMenu = (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_slash_command');
|
|
25
|
-
var menuHeight = (0,
|
|
25
|
+
var menuHeight = (0, _popupSizing.useMenuPopupSizing)({
|
|
26
26
|
target: plusButtonRef,
|
|
27
27
|
boundariesElement: props.popupsBoundariesElement,
|
|
28
28
|
scrollableElement: props.popupsScrollableElement,
|
|
@@ -13,7 +13,7 @@ var _isOfflineMode = require("@atlaskit/editor-common/connectivity/isOfflineMode
|
|
|
13
13
|
var _keymaps = require("@atlaskit/editor-common/keymaps");
|
|
14
14
|
var _insertBlock = require("@atlaskit/editor-common/messages/insert-block");
|
|
15
15
|
var _Popup = _interopRequireDefault(require("@atlaskit/editor-common/Popup"));
|
|
16
|
-
var
|
|
16
|
+
var _popupSizing = require("@atlaskit/editor-common/registered-menu/popup-sizing");
|
|
17
17
|
var _context = require("@atlaskit/editor-common/toolbar/context");
|
|
18
18
|
var _keys = require("@atlaskit/editor-common/toolbar/keys");
|
|
19
19
|
var _useSharedPluginStateWithSelector = require("@atlaskit/editor-common/useSharedPluginStateWithSelector");
|
|
@@ -48,7 +48,7 @@ var RegisteredInsertButton = exports.RegisteredInsertButton = function Registere
|
|
|
48
48
|
isOpen = _useState2[0],
|
|
49
49
|
setIsOpen = _useState2[1];
|
|
50
50
|
var buttonRef = (0, _react.useRef)(null);
|
|
51
|
-
var menuHeight = (0,
|
|
51
|
+
var menuHeight = (0, _popupSizing.useMenuPopupSizing)({
|
|
52
52
|
target: buttonRef.current,
|
|
53
53
|
boundariesElement: popupsBoundariesElement,
|
|
54
54
|
scrollableElement: popupsScrollableElement,
|
|
@@ -9,285 +9,160 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
exports.RegisteredInsertMenu = void 0;
|
|
10
10
|
require("./RegisteredInsertMenu.compiled.css");
|
|
11
11
|
var _runtime = require("@compiled/react/runtime");
|
|
12
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
14
|
var _reactIntl = require("react-intl");
|
|
16
|
-
var
|
|
15
|
+
var _insert = require("@atlaskit/editor-common/insert");
|
|
17
16
|
var _insertBlock = require("@atlaskit/editor-common/messages/insert-block");
|
|
18
17
|
var _keys = require("@atlaskit/editor-common/quick-insert/keys");
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
var
|
|
22
|
-
var _typeAheadSurfaceContext = require("@atlaskit/editor-common/type-ahead-surface-context");
|
|
23
|
-
var _createSurfaceContext = require("@atlaskit/editor-ui-control-model/create-surface-context");
|
|
18
|
+
var _context = require("@atlaskit/editor-common/registered-menu/context");
|
|
19
|
+
var _surfaceContext = require("@atlaskit/editor-common/registered-menu/surface-context");
|
|
20
|
+
var _messages = require("@atlaskit/editor-common/type-ahead/messages");
|
|
24
21
|
var _box = require("@atlaskit/primitives/compiled/box");
|
|
25
22
|
var _textField = _interopRequireDefault(require("@atlaskit/textfield/text-field"));
|
|
26
|
-
var _RegisteredInsertMenuList = require("./RegisteredInsertMenuList");
|
|
27
23
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
28
24
|
var DEFAULT_MENU_MAX_HEIGHT = 520;
|
|
25
|
+
var SEARCH_HEIGHT = 64;
|
|
29
26
|
var styles = {
|
|
30
27
|
menu: "_2rko1mok _1reo15vq _18m915vq _bfhk1bhr _16qs130s _1e0c1txw _2lx21bp4 _1bsb1edt",
|
|
28
|
+
hidden: "_1e0cglyw",
|
|
31
29
|
search: "_18zrutpp _1o9zidpf _1q51utpp _85i5u2gc"
|
|
32
30
|
};
|
|
33
|
-
var RegisteredInsertMenu = exports.RegisteredInsertMenu = function RegisteredInsertMenu(
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
isOffline = _ref.isOffline,
|
|
40
|
-
_ref$maxHeight = _ref.maxHeight,
|
|
41
|
-
maxHeight = _ref$maxHeight === void 0 ? DEFAULT_MENU_MAX_HEIGHT : _ref$maxHeight,
|
|
42
|
-
onClose = _ref.onClose,
|
|
43
|
-
onSelect = _ref.onSelect;
|
|
44
|
-
var menuStyle = {
|
|
45
|
-
maxHeight: maxHeight
|
|
46
|
-
};
|
|
31
|
+
var RegisteredInsertMenu = exports.RegisteredInsertMenu = function RegisteredInsertMenu(props) {
|
|
32
|
+
var _props$maxHeight, _interaction$expanded;
|
|
33
|
+
var components = props.components,
|
|
34
|
+
editorView = props.editorView,
|
|
35
|
+
isOffline = props.isOffline,
|
|
36
|
+
onSelect = props.onSelect;
|
|
47
37
|
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
48
38
|
formatMessage = _useIntl.formatMessage;
|
|
49
|
-
var
|
|
50
|
-
|
|
39
|
+
var _useState = (0, _react.useState)(),
|
|
40
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
41
|
+
interaction = _useState2[0],
|
|
42
|
+
setInteraction = _useState2[1];
|
|
43
|
+
var registerInteraction = (0, _react.useCallback)(function (next) {
|
|
44
|
+
setInteraction(next);
|
|
45
|
+
return function () {
|
|
46
|
+
return setInteraction(function (current) {
|
|
47
|
+
return current === next ? undefined : current;
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
}, []);
|
|
51
|
+
var searchRef = (0, _react.useRef)(null);
|
|
52
|
+
var hasInteraction = Boolean(interaction);
|
|
53
|
+
(0, _react.useLayoutEffect)(function () {
|
|
54
|
+
if (hasInteraction) {
|
|
55
|
+
var _searchRef$current;
|
|
56
|
+
(_searchRef$current = searchRef.current) === null || _searchRef$current === void 0 || _searchRef$current.focus({
|
|
57
|
+
preventScroll: true
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}, [hasInteraction]);
|
|
61
|
+
var maxHeight = (_props$maxHeight = props.maxHeight) !== null && _props$maxHeight !== void 0 ? _props$maxHeight : DEFAULT_MENU_MAX_HEIGHT;
|
|
62
|
+
var menuStyle = (0, _react.useMemo)(function () {
|
|
63
|
+
return {
|
|
64
|
+
maxHeight: maxHeight
|
|
65
|
+
};
|
|
66
|
+
}, [maxHeight]);
|
|
67
|
+
var _useState3 = (0, _react.useState)(function () {
|
|
51
68
|
return Symbol('registered-insert-menu-open');
|
|
52
69
|
}),
|
|
53
|
-
|
|
54
|
-
menuOpenId =
|
|
55
|
-
var
|
|
56
|
-
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
57
|
-
query = _useState4[0],
|
|
58
|
-
setQuery = _useState4[1];
|
|
59
|
-
var _useState5 = (0, _react.useState)(0),
|
|
70
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 1),
|
|
71
|
+
menuOpenId = _useState4[0];
|
|
72
|
+
var _useState5 = (0, _react.useState)(''),
|
|
60
73
|
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
var selectedItemIndexRef = (0, _react.useRef)(selectedItemIndex);
|
|
64
|
-
var _useState7 = (0, _react.useState)({
|
|
65
|
-
startIndex: -1,
|
|
66
|
-
stopIndex: -1
|
|
67
|
-
}),
|
|
68
|
-
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
69
|
-
renderedItems = _useState8[0],
|
|
70
|
-
setRenderedItems = _useState8[1];
|
|
71
|
-
var searchRef = (0, _react.useRef)(null);
|
|
72
|
-
(0, _react.useLayoutEffect)(function () {
|
|
73
|
-
var _searchRef$current;
|
|
74
|
-
// Popup positions on the next frame; focusing must not scroll to its initial location.
|
|
75
|
-
(_searchRef$current = searchRef.current) === null || _searchRef$current === void 0 || _searchRef$current.focus({
|
|
76
|
-
preventScroll: true
|
|
77
|
-
});
|
|
78
|
-
}, []);
|
|
74
|
+
query = _useState6[0],
|
|
75
|
+
setQuery = _useState6[1];
|
|
79
76
|
var surfaceContext = (0, _react.useMemo)(function () {
|
|
80
|
-
return (0,
|
|
81
|
-
menuOpenId: menuOpenId
|
|
77
|
+
return (0, _surfaceContext.createRegisteredMenuSurfaceContext)({
|
|
78
|
+
menuOpenId: menuOpenId,
|
|
79
|
+
surface: 'toolbar'
|
|
82
80
|
});
|
|
83
81
|
}, [menuOpenId]);
|
|
84
|
-
var
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
var Root = (0, _react.useMemo)(function () {
|
|
83
|
+
var _components$find;
|
|
84
|
+
return (_components$find = components.find(function (_ref) {
|
|
85
|
+
var key = _ref.key,
|
|
86
|
+
type = _ref.type,
|
|
87
|
+
parents = _ref.parents;
|
|
88
|
+
return key === _keys.MENU.key && type === _keys.MENU.type && !(parents !== null && parents !== void 0 && parents.length);
|
|
89
|
+
})) === null || _components$find === void 0 ? void 0 : _components$find.component;
|
|
89
90
|
}, [components]);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
query: query,
|
|
96
|
-
rootComponent: _keys.MENU,
|
|
97
|
-
selectCategoryItems: hasSectionOverflowItems ? _registeredMenuModel.selectQuickInsertCategoryItems : undefined,
|
|
98
|
-
surfaceContext: surfaceContext
|
|
99
|
-
});
|
|
100
|
-
}, [components, formatMessage, getItemRank, hasSectionOverflowItems, query, surfaceContext]);
|
|
101
|
-
var _useState9 = (0, _react.useState)(),
|
|
102
|
-
_useState0 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
103
|
-
previewActivation = _useState0[0],
|
|
104
|
-
setPreviewActivation = _useState0[1];
|
|
105
|
-
var activePreviewItemKey = (previewActivation === null || previewActivation === void 0 ? void 0 : previewActivation.model) === model ? previewActivation.itemKey : undefined;
|
|
106
|
-
var searchResultCount = (0, _react.useMemo)(function () {
|
|
107
|
-
return model.sections.reduce(function (count, section) {
|
|
108
|
-
return count + section.filter(function (_ref3) {
|
|
109
|
-
var key = _ref3.key,
|
|
110
|
-
type = _ref3.type;
|
|
111
|
-
return type === 'menu-item' && !(0, _typeAheadIsSectionOverflowItemKey.isSectionOverflowItemKey)(key);
|
|
112
|
-
}).length;
|
|
113
|
-
}, 0);
|
|
114
|
-
}, [model.sections]);
|
|
115
|
-
var flushSearchAnalytics = (0, _useSearchAnalytics.useQuickInsertSearchAnalytics)({
|
|
116
|
-
fireAnalyticsEvent: fireAnalyticsEvent,
|
|
117
|
-
query: query,
|
|
118
|
-
resultCount: searchResultCount,
|
|
119
|
-
surface: 'toolbar'
|
|
120
|
-
});
|
|
121
|
-
var closeWithAnalytics = (0, _react.useCallback)(function () {
|
|
122
|
-
flushSearchAnalytics();
|
|
123
|
-
onClose();
|
|
124
|
-
}, [flushSearchAnalytics, onClose]);
|
|
125
|
-
var selectWithAnalytics = (0, _react.useCallback)(function () {
|
|
126
|
-
flushSearchAnalytics();
|
|
91
|
+
// Interaction updates should not recreate the registered component's own props.
|
|
92
|
+
var menu = (0, _react.useMemo)(function () {
|
|
93
|
+
return Root && /*#__PURE__*/_react.default.createElement(Root, null, null);
|
|
94
|
+
}, [Root]);
|
|
95
|
+
var select = (0, _react.useCallback)(function (selection) {
|
|
127
96
|
onSelect();
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
var key = _ref4.key;
|
|
138
|
-
return key;
|
|
139
|
-
}).join(',');
|
|
140
|
-
}, [model.footer, selectableItems]);
|
|
141
|
-
(0, _react.useLayoutEffect)(function () {
|
|
142
|
-
var initialItemIndex = itemCount > 0 ? 0 : -1;
|
|
143
|
-
selectedItemIndexRef.current = initialItemIndex;
|
|
144
|
-
setSelectedItemIndex(initialItemIndex);
|
|
145
|
-
}, [itemCount, query, selectableItemKeys]);
|
|
146
|
-
(0, _react.useLayoutEffect)(function () {
|
|
147
|
-
setPreviewActivation(undefined);
|
|
148
|
-
}, [model, query]);
|
|
149
|
-
var isActiveItemMounted = selectedItemIndex >= 0 && selectedItemIndex < itemCount && (selectedItemIndex >= renderedItems.startIndex && selectedItemIndex <= renderedItems.stopIndex || Boolean(model.footer) && selectedItemIndex === itemCount - 1);
|
|
150
|
-
var activeItemId = "".concat(listId, "-").concat(selectedItemIndex);
|
|
151
|
-
var setKeyboardPreview = (0, _react.useCallback)(function (itemIndex) {
|
|
152
|
-
var item = selectableItems[itemIndex];
|
|
153
|
-
setPreviewActivation(item ? {
|
|
154
|
-
itemKey: item.key,
|
|
155
|
-
model: model,
|
|
156
|
-
source: 'keyboard'
|
|
157
|
-
} : undefined);
|
|
158
|
-
}, [model, selectableItems]);
|
|
159
|
-
var selectNextItem = (0, _react.useCallback)(function () {
|
|
160
|
-
var currentIndex = selectedItemIndexRef.current;
|
|
161
|
-
var nextIndex = itemCount === 0 ? -1 : currentIndex < 0 ? 0 : (currentIndex + 1) % itemCount;
|
|
162
|
-
selectedItemIndexRef.current = nextIndex;
|
|
163
|
-
setSelectedItemIndex(nextIndex);
|
|
164
|
-
setKeyboardPreview(nextIndex);
|
|
165
|
-
}, [itemCount, setKeyboardPreview]);
|
|
166
|
-
var selectPreviousItem = (0, _react.useCallback)(function () {
|
|
167
|
-
var currentIndex = selectedItemIndexRef.current;
|
|
168
|
-
var previousIndex = itemCount === 0 ? -1 : currentIndex <= 0 ? itemCount - 1 : currentIndex - 1;
|
|
169
|
-
selectedItemIndexRef.current = previousIndex;
|
|
170
|
-
setSelectedItemIndex(previousIndex);
|
|
171
|
-
setKeyboardPreview(previousIndex);
|
|
172
|
-
}, [itemCount, setKeyboardPreview]);
|
|
173
|
-
var onItemHover = (0, _react.useCallback)(function (itemIndex, itemKey) {
|
|
174
|
-
selectedItemIndexRef.current = itemIndex;
|
|
175
|
-
setSelectedItemIndex(itemIndex);
|
|
176
|
-
setPreviewActivation(function (current) {
|
|
177
|
-
if ((current === null || current === void 0 ? void 0 : current.itemKey) === itemKey && (current === null || current === void 0 ? void 0 : current.model) === model && (current === null || current === void 0 ? void 0 : current.source) === 'pointer') {
|
|
178
|
-
return current;
|
|
179
|
-
}
|
|
180
|
-
return itemKey ? {
|
|
181
|
-
itemKey: itemKey,
|
|
182
|
-
model: model,
|
|
183
|
-
source: 'pointer'
|
|
184
|
-
} : undefined;
|
|
185
|
-
});
|
|
186
|
-
}, [model]);
|
|
187
|
-
var onItemFocus = (0, _react.useCallback)(function (itemIndex, itemKey) {
|
|
188
|
-
selectedItemIndexRef.current = itemIndex;
|
|
189
|
-
setSelectedItemIndex(itemIndex);
|
|
190
|
-
setPreviewActivation(function (current) {
|
|
191
|
-
if ((current === null || current === void 0 ? void 0 : current.itemKey) === itemKey && (current === null || current === void 0 ? void 0 : current.model) === model) {
|
|
192
|
-
return current;
|
|
97
|
+
queueMicrotask(function () {
|
|
98
|
+
var state = editorView.state;
|
|
99
|
+
var insert = function insert(content) {
|
|
100
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
101
|
+
return (0, _insert.insertSelectedItem)(content, options)(state, state.tr, state.selection.head);
|
|
102
|
+
};
|
|
103
|
+
var transaction = selection(insert);
|
|
104
|
+
if (transaction) {
|
|
105
|
+
editorView.dispatch(transaction);
|
|
193
106
|
}
|
|
194
|
-
return itemKey ? {
|
|
195
|
-
itemKey: itemKey,
|
|
196
|
-
model: model,
|
|
197
|
-
source: 'keyboard'
|
|
198
|
-
} : undefined;
|
|
199
|
-
});
|
|
200
|
-
}, [model]);
|
|
201
|
-
var onItemLeave = (0, _react.useCallback)(function (itemKey) {
|
|
202
|
-
setPreviewActivation(function (current) {
|
|
203
|
-
return (current === null || current === void 0 ? void 0 : current.source) === 'pointer' && current.itemKey === itemKey ? undefined : current;
|
|
204
|
-
});
|
|
205
|
-
}, []);
|
|
206
|
-
var onItemBlur = (0, _react.useCallback)(function (itemKey) {
|
|
207
|
-
setPreviewActivation(function (current) {
|
|
208
|
-
return (current === null || current === void 0 ? void 0 : current.itemKey) === itemKey ? undefined : current;
|
|
209
107
|
});
|
|
210
|
-
}, []);
|
|
211
|
-
var
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
108
|
+
}, [editorView, onSelect]);
|
|
109
|
+
var registeredMenu = (0, _react.useMemo)(function () {
|
|
110
|
+
return {
|
|
111
|
+
components: components,
|
|
112
|
+
onClose: props.onClose,
|
|
113
|
+
maxHeight: Math.max(0, maxHeight - SEARCH_HEIGHT),
|
|
114
|
+
registerInteraction: registerInteraction,
|
|
115
|
+
editorView: editorView,
|
|
116
|
+
isOffline: isOffline,
|
|
117
|
+
menuOpenId: menuOpenId,
|
|
118
|
+
rootComponent: _keys.MENU,
|
|
119
|
+
query: query,
|
|
120
|
+
select: select,
|
|
121
|
+
surfaceContext: surfaceContext
|
|
122
|
+
};
|
|
123
|
+
}, [components, props.onClose, maxHeight, registerInteraction, editorView, isOffline, menuOpenId, query, select, surfaceContext]);
|
|
224
124
|
var onQueryChange = (0, _react.useCallback)(function (event) {
|
|
225
|
-
setQuery(event.currentTarget.value);
|
|
125
|
+
return setQuery(event.currentTarget.value);
|
|
226
126
|
}, []);
|
|
227
127
|
var onKeyDown = (0, _react.useCallback)(function (event) {
|
|
228
128
|
if (event.key === 'Escape') {
|
|
129
|
+
var _interaction$onClose;
|
|
229
130
|
event.preventDefault();
|
|
230
|
-
|
|
131
|
+
interaction === null || interaction === void 0 || (_interaction$onClose = interaction.onClose) === null || _interaction$onClose === void 0 || _interaction$onClose.call(interaction);
|
|
132
|
+
props.onClose();
|
|
231
133
|
return;
|
|
232
134
|
}
|
|
233
|
-
|
|
234
|
-
//
|
|
235
|
-
|
|
236
|
-
// to retain their native keyboard behaviour.
|
|
237
|
-
if (event.target !== searchRef.current) {
|
|
135
|
+
// Some IME key events report 229 without setting isComposing. Let the input finish
|
|
136
|
+
// composing text before handling menu navigation or selection.
|
|
137
|
+
if (event.target !== searchRef.current || event.nativeEvent.isComposing || event.keyCode === 229) {
|
|
238
138
|
return;
|
|
239
139
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
event.preventDefault();
|
|
243
|
-
selectNextItem();
|
|
244
|
-
break;
|
|
245
|
-
case 'ArrowUp':
|
|
246
|
-
event.preventDefault();
|
|
247
|
-
selectPreviousItem();
|
|
248
|
-
break;
|
|
249
|
-
case 'Enter':
|
|
250
|
-
event.preventDefault();
|
|
251
|
-
selectActiveItem();
|
|
252
|
-
break;
|
|
140
|
+
if (interaction !== null && interaction !== void 0 && interaction.onKeyDown(event.nativeEvent)) {
|
|
141
|
+
event.preventDefault();
|
|
253
142
|
}
|
|
254
|
-
}, [
|
|
255
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
256
|
-
|
|
257
|
-
|
|
143
|
+
}, [interaction, props.onClose]);
|
|
144
|
+
return /*#__PURE__*/_react.default.createElement(_context.RegisteredMenuContext.Provider, {
|
|
145
|
+
value: registeredMenu
|
|
146
|
+
}, Root && /*#__PURE__*/_react.default.createElement("div", {
|
|
147
|
+
"data-registered-insert-menu-root": "",
|
|
258
148
|
onKeyDownCapture: onKeyDown,
|
|
259
|
-
|
|
260
|
-
|
|
149
|
+
"data-keyboard-navigation-independent": "",
|
|
150
|
+
"data-testid": "registered-insert-menu",
|
|
151
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- The popup supplies the available height at runtime.
|
|
152
|
+
style: menuStyle,
|
|
153
|
+
className: (0, _runtime.ax)([styles.menu, !interaction && styles.hidden])
|
|
261
154
|
}, /*#__PURE__*/_react.default.createElement(_box.Box, {
|
|
262
155
|
xcss: styles.search
|
|
263
156
|
}, /*#__PURE__*/_react.default.createElement(_textField.default, {
|
|
264
|
-
"aria-
|
|
265
|
-
"aria-
|
|
266
|
-
"aria-
|
|
267
|
-
|
|
157
|
+
"aria-label": (interaction === null || interaction === void 0 ? void 0 : interaction.label) || formatMessage(_insertBlock.toolbarInsertBlockMessages.insertMenu),
|
|
158
|
+
"aria-activedescendant": interaction === null || interaction === void 0 ? void 0 : interaction.activeDescendantId,
|
|
159
|
+
"aria-controls": interaction === null || interaction === void 0 ? void 0 : interaction.listId,
|
|
160
|
+
"aria-expanded": (_interaction$expanded = interaction === null || interaction === void 0 ? void 0 : interaction.expanded) !== null && _interaction$expanded !== void 0 ? _interaction$expanded : false,
|
|
161
|
+
"aria-autocomplete": "list",
|
|
162
|
+
placeholder: formatMessage(_messages.typeAheadListMessages.quickInsertInputPlaceholderLabel),
|
|
268
163
|
ref: searchRef,
|
|
269
164
|
role: "combobox",
|
|
270
165
|
value: query,
|
|
271
166
|
onChange: onQueryChange
|
|
272
|
-
})),
|
|
273
|
-
editorView: editorView,
|
|
274
|
-
emptyStateHandler: emptyStateHandler,
|
|
275
|
-
isOffline: isOffline,
|
|
276
|
-
listId: listId,
|
|
277
|
-
listLabel: formatMessage(_insertBlock.toolbarInsertBlockMessages.insertMenu),
|
|
278
|
-
maxHeight: maxHeight,
|
|
279
|
-
menuOpenId: menuOpenId,
|
|
280
|
-
model: model,
|
|
281
|
-
onClose: selectWithAnalytics,
|
|
282
|
-
onItemFocus: onItemFocus,
|
|
283
|
-
onItemHover: onItemHover,
|
|
284
|
-
onItemBlur: onItemBlur,
|
|
285
|
-
onItemLeave: onItemLeave,
|
|
286
|
-
onItemVisibilityChange: onItemVisibilityChange,
|
|
287
|
-
onRenderedItemsChange: setRenderedItems,
|
|
288
|
-
query: query,
|
|
289
|
-
selectedItemIndex: selectedItemIndex,
|
|
290
|
-
surfaceContext: surfaceContext,
|
|
291
|
-
activePreviewItemKey: activePreviewItemKey
|
|
292
|
-
}));
|
|
167
|
+
})), menu));
|
|
293
168
|
};
|
|
@@ -25,7 +25,7 @@ var RegisteredInsertMenuContainer = function RegisteredInsertMenuContainer(_ref)
|
|
|
25
25
|
};
|
|
26
26
|
var RegisteredInsertMenuWithListeners = (0, _withOuterListeners.default)(RegisteredInsertMenuContainer);
|
|
27
27
|
var RegisteredInsertMenuContent = exports.RegisteredInsertMenuContent = function RegisteredInsertMenuContent(_ref2) {
|
|
28
|
-
var _api$uiControlRegistr2, _api$uiControlRegistr3
|
|
28
|
+
var _api$uiControlRegistr2, _api$uiControlRegistr3;
|
|
29
29
|
var api = _ref2.api,
|
|
30
30
|
editorView = _ref2.editorView,
|
|
31
31
|
isOffline = _ref2.isOffline,
|
|
@@ -51,9 +51,6 @@ var RegisteredInsertMenuContent = exports.RegisteredInsertMenuContent = function
|
|
|
51
51
|
}, /*#__PURE__*/_react.default.createElement(_RegisteredInsertMenu.RegisteredInsertMenu, {
|
|
52
52
|
components: components,
|
|
53
53
|
editorView: editorView,
|
|
54
|
-
emptyStateHandler: api === null || api === void 0 || (_api$quickInsert = api.quickInsert) === null || _api$quickInsert === void 0 || (_api$quickInsert = _api$quickInsert.sharedState.currentState()) === null || _api$quickInsert === void 0 ? void 0 : _api$quickInsert.emptyStateHandler,
|
|
55
|
-
fireAnalyticsEvent: api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions.fireAnalyticsEvent,
|
|
56
|
-
getItemRank: api === null || api === void 0 || (_api$quickInsert2 = api.quickInsert) === null || _api$quickInsert2 === void 0 || (_api$quickInsert2 = _api$quickInsert2.sharedState.currentState()) === null || _api$quickInsert2 === void 0 ? void 0 : _api$quickInsert2.getItemRank,
|
|
57
54
|
isOffline: isOffline,
|
|
58
55
|
maxHeight: maxHeight,
|
|
59
56
|
onClose: onClose,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import Popup from '@atlaskit/editor-common/Popup';
|
|
3
|
-
import { useMenuPopupSizing } from '@atlaskit/editor-common/
|
|
3
|
+
import { useMenuPopupSizing } from '@atlaskit/editor-common/registered-menu/popup-sizing';
|
|
4
4
|
import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
|
|
5
5
|
import InsertMenu, { DEFAULT_HEIGHT } from '../ElementBrowser/InsertMenu';
|
|
6
6
|
import { RegisteredInsertMenuContent } from '../registered-insert-menu/RegisteredInsertMenuContent';
|
|
@@ -4,7 +4,7 @@ import { isOfflineMode } from '@atlaskit/editor-common/connectivity/isOfflineMod
|
|
|
4
4
|
import { getAriaKeyshortcuts, insertElements, ToolTipContent } from '@atlaskit/editor-common/keymaps';
|
|
5
5
|
import { toolbarInsertBlockMessages as messages } from '@atlaskit/editor-common/messages/insert-block';
|
|
6
6
|
import Popup from '@atlaskit/editor-common/Popup';
|
|
7
|
-
import { useMenuPopupSizing } from '@atlaskit/editor-common/
|
|
7
|
+
import { useMenuPopupSizing } from '@atlaskit/editor-common/registered-menu/popup-sizing';
|
|
8
8
|
import { useEditorToolbar } from '@atlaskit/editor-common/toolbar/context';
|
|
9
9
|
import { TOOLBAR_BUTTON_TEST_ID } from '@atlaskit/editor-common/toolbar/keys';
|
|
10
10
|
import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/useSharedPluginStateWithSelector';
|