@atlaskit/editor-plugin-type-ahead 2.7.9 → 2.7.11
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 +16 -0
- package/dist/cjs/ui/InputQuery.js +1 -2
- package/dist/cjs/ui/ListRow.js +1 -2
- package/dist/cjs/ui/MoreOptions.js +78 -0
- package/dist/cjs/ui/TypeAheadErrorFallback/MinHeightContainer.js +1 -2
- package/dist/cjs/ui/TypeAheadList.js +45 -24
- package/dist/cjs/ui/TypeAheadListItem.js +1 -2
- package/dist/cjs/ui/TypeAheadMenu.js +11 -3
- package/dist/cjs/ui/TypeAheadPopup.js +16 -16
- package/dist/cjs/ui/WrapperTypeAhead.js +10 -4
- package/dist/cjs/ui/modern/TypeAheadPopup.js +1 -2
- package/dist/es2019/ui/MoreOptions.js +74 -0
- package/dist/es2019/ui/TypeAheadList.js +35 -12
- package/dist/es2019/ui/TypeAheadMenu.js +11 -3
- package/dist/es2019/ui/TypeAheadPopup.js +15 -14
- package/dist/es2019/ui/WrapperTypeAhead.js +9 -2
- package/dist/esm/ui/MoreOptions.js +71 -0
- package/dist/esm/ui/TypeAheadList.js +44 -22
- package/dist/esm/ui/TypeAheadMenu.js +11 -3
- package/dist/esm/ui/TypeAheadPopup.js +15 -14
- package/dist/esm/ui/WrapperTypeAhead.js +9 -2
- package/dist/types/ui/MoreOptions.d.ts +11 -0
- package/dist/types/ui/TypeAheadList.d.ts +4 -4
- package/dist/types/ui/TypeAheadPopup.d.ts +1 -1
- package/dist/types-ts4.5/ui/MoreOptions.d.ts +11 -0
- package/dist/types-ts4.5/ui/TypeAheadList.d.ts +4 -4
- package/dist/types-ts4.5/ui/TypeAheadPopup.d.ts +1 -1
- package/package.json +7 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-type-ahead
|
|
2
2
|
|
|
3
|
+
## 2.7.11
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#164625](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/164625)
|
|
8
|
+
[`aac10c2d4c08d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/aac10c2d4c08d) -
|
|
9
|
+
[ED-26900] Add a new config, getMoreOptionsButtonConfig, to TypeAheadHandler so that it can
|
|
10
|
+
support adding a more option button to typeahead list
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
|
|
13
|
+
## 2.7.10
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
|
|
3
19
|
## 2.7.9
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -20,8 +20,7 @@ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
|
20
20
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
21
21
|
var _constants = require("../pm-plugins/constants");
|
|
22
22
|
var _utils2 = require("../pm-plugins/utils");
|
|
23
|
-
function
|
|
24
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
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); }
|
|
25
24
|
/**
|
|
26
25
|
* @jsxRuntime classic
|
|
27
26
|
* @jsx jsx
|
package/dist/cjs/ui/ListRow.js
CHANGED
|
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.ListRow = ListRow;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
function
|
|
10
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
9
|
+
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); }
|
|
11
10
|
/**
|
|
12
11
|
*
|
|
13
12
|
* @param root0
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MoreOptions = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _react2 = require("@emotion/react");
|
|
9
|
+
var _menu = require("@atlaskit/menu");
|
|
10
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
11
|
+
/**
|
|
12
|
+
* @jsxRuntime classic
|
|
13
|
+
* @jsx jsx
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
17
|
+
|
|
18
|
+
var buttonStyles = (0, _react2.css)({
|
|
19
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
|
|
20
|
+
'& > button:hover': {
|
|
21
|
+
backgroundColor: "var(--ds-background-neutral-subtle-hovered, ".concat(_colors.N30, ")")
|
|
22
|
+
},
|
|
23
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
|
|
24
|
+
'& > button:focus': {
|
|
25
|
+
backgroundColor: "var(--ds-background-neutral-subtle-hovered, ".concat(_colors.N30, ")")
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
var MoreOptions = exports.MoreOptions = function MoreOptions(_ref) {
|
|
29
|
+
var onClick = _ref.onClick,
|
|
30
|
+
isFocused = _ref.isFocused,
|
|
31
|
+
title = _ref.title,
|
|
32
|
+
ariaLabel = _ref.ariaLabel,
|
|
33
|
+
iconBefore = _ref.iconBefore;
|
|
34
|
+
var ref = (0, _react.useRef)(null);
|
|
35
|
+
(0, _react.useEffect)(function () {
|
|
36
|
+
if (isFocused && ref.current) {
|
|
37
|
+
ref.current.focus();
|
|
38
|
+
}
|
|
39
|
+
}, [isFocused]);
|
|
40
|
+
(0, _react.useEffect)(function () {
|
|
41
|
+
if (!ref.current) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
var element = ref.current;
|
|
45
|
+
var handleEnter = function handleEnter(e) {
|
|
46
|
+
if (e.key === 'Enter') {
|
|
47
|
+
onClick();
|
|
48
|
+
// Prevent keydown listener in TypeaheadList from handling Enter pressed
|
|
49
|
+
e.stopPropagation();
|
|
50
|
+
} else if (e.key === 'Tab') {
|
|
51
|
+
// TypeaheadList will try to insert selected item on Tab press
|
|
52
|
+
// hence stop propagation to prevent that and treat this as noop
|
|
53
|
+
e.stopPropagation();
|
|
54
|
+
e.preventDefault();
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// Ignored via go/ees005
|
|
59
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
60
|
+
element === null || element === void 0 || element.addEventListener('keydown', handleEnter);
|
|
61
|
+
return function () {
|
|
62
|
+
// Ignored via go/ees005
|
|
63
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
64
|
+
element === null || element === void 0 || element.removeEventListener('keydown', handleEnter);
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
return (0, _react2.jsx)(_menu.Section, {
|
|
68
|
+
hasSeparator: true
|
|
69
|
+
}, (0, _react2.jsx)("span", {
|
|
70
|
+
css: buttonStyles
|
|
71
|
+
}, (0, _react2.jsx)(_menu.ButtonItem, {
|
|
72
|
+
ref: ref,
|
|
73
|
+
onClick: onClick,
|
|
74
|
+
iconBefore: iconBefore,
|
|
75
|
+
"aria-label": ariaLabel,
|
|
76
|
+
testId: "type-ahead-more-options-button"
|
|
77
|
+
}, title)));
|
|
78
|
+
};
|
|
@@ -17,8 +17,7 @@ var _excluded = ["minHeight"];
|
|
|
17
17
|
* @jsx jsx
|
|
18
18
|
*/
|
|
19
19
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
20
|
-
function
|
|
21
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
+
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); }
|
|
22
21
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles -- Ignored via go/DSP-18766
|
|
23
22
|
var minHeightComponentStyles = exports.minHeightComponentStyles = (0, _react2.css)({
|
|
24
23
|
display: 'flex',
|
|
@@ -19,14 +19,15 @@ var _ui = require("@atlaskit/editor-common/ui");
|
|
|
19
19
|
var _menu = require("@atlaskit/menu");
|
|
20
20
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
21
21
|
var _compiled = require("@atlaskit/primitives/compiled");
|
|
22
|
+
var _closeTypeAhead = require("../pm-plugins/commands/close-type-ahead");
|
|
22
23
|
var _updateSelectedIndex = require("../pm-plugins/commands/update-selected-index");
|
|
23
24
|
var _constants = require("../pm-plugins/constants");
|
|
24
25
|
var _utils = require("../pm-plugins/utils");
|
|
25
26
|
var _ListRow = require("./ListRow");
|
|
27
|
+
var _MoreOptions = require("./MoreOptions");
|
|
26
28
|
var _TypeAheadListItem = require("./TypeAheadListItem");
|
|
27
29
|
var _ViewMore = require("./ViewMore");
|
|
28
|
-
function
|
|
29
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
30
|
+
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); }
|
|
30
31
|
/**
|
|
31
32
|
* @jsxRuntime classic
|
|
32
33
|
* @jsx jsx
|
|
@@ -56,7 +57,7 @@ var TypeaheadAssistiveTextPureComponent = /*#__PURE__*/_react.default.memo(funct
|
|
|
56
57
|
});
|
|
57
58
|
});
|
|
58
59
|
var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
|
|
59
|
-
var _decorationElement$qu2;
|
|
60
|
+
var _triggerHandler$getMo, _decorationElement$qu2;
|
|
60
61
|
var items = _ref2.items,
|
|
61
62
|
selectedIndex = _ref2.selectedIndex,
|
|
62
63
|
editorView = _ref2.editorView,
|
|
@@ -67,8 +68,8 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
|
|
|
67
68
|
triggerHandler = _ref2.triggerHandler,
|
|
68
69
|
moreElementsInQuickInsertViewEnabled = _ref2.moreElementsInQuickInsertViewEnabled,
|
|
69
70
|
api = _ref2.api,
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
showMoreOptionsButton = _ref2.showMoreOptionsButton,
|
|
72
|
+
onMoreOptionsClicked = _ref2.onMoreOptionsClicked;
|
|
72
73
|
var listRef = (0, _react.useRef)();
|
|
73
74
|
var listContainerRef = (0, _react.useRef)(null);
|
|
74
75
|
var lastVisibleIndexes = (0, _react.useRef)({
|
|
@@ -79,7 +80,7 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
|
|
|
79
80
|
});
|
|
80
81
|
|
|
81
82
|
// Exclude view more item from the count
|
|
82
|
-
var itemsLength =
|
|
83
|
+
var itemsLength = showMoreOptionsButton ? Math.max(items.length - 1, 0) : items.length;
|
|
83
84
|
var estimatedHeight = itemsLength * LIST_ITEM_ESTIMATED_HEIGHT;
|
|
84
85
|
var _useState = (0, _react.useState)(Math.min(estimatedHeight, fitHeight)),
|
|
85
86
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -146,7 +147,7 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
|
|
|
146
147
|
// to calculate each height. THen, we can schedule a new frame when this one finishs.
|
|
147
148
|
requestAnimationFrame(function () {
|
|
148
149
|
requestAnimationFrame(function () {
|
|
149
|
-
var isViewMoreSelected =
|
|
150
|
+
var isViewMoreSelected = showMoreOptionsButton && selectedIndex === itemsLength;
|
|
150
151
|
var isSelectedItemVisible = selectedIndex >= lastVisibleStartIndex && selectedIndex <= lastVisibleStopIndex ||
|
|
151
152
|
// view more is always visible, hence no scrolling
|
|
152
153
|
isViewMoreSelected;
|
|
@@ -159,7 +160,7 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
|
|
|
159
160
|
}
|
|
160
161
|
});
|
|
161
162
|
});
|
|
162
|
-
}, [selectedIndex, lastVisibleStartIndex, lastVisibleStopIndex, itemsLength,
|
|
163
|
+
}, [selectedIndex, lastVisibleStartIndex, lastVisibleStopIndex, itemsLength, showMoreOptionsButton]);
|
|
163
164
|
var _onMouseMove = function onMouseMove(event, index) {
|
|
164
165
|
event.preventDefault();
|
|
165
166
|
event.stopPropagation();
|
|
@@ -172,7 +173,7 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
|
|
|
172
173
|
if (!listRef.current) {
|
|
173
174
|
return;
|
|
174
175
|
}
|
|
175
|
-
var isViewMoreSelected =
|
|
176
|
+
var isViewMoreSelected = showMoreOptionsButton && selectedIndex === itemsLength;
|
|
176
177
|
var isSelectedItemVisible = selectedIndex >= lastVisibleStartIndex && selectedIndex <= lastVisibleStopIndex ||
|
|
177
178
|
// view more is always visible, hence no scrolling
|
|
178
179
|
isViewMoreSelected;
|
|
@@ -183,7 +184,7 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
|
|
|
183
184
|
} else if (selectedIndex === -1) {
|
|
184
185
|
listRef.current.scrollToRow(0);
|
|
185
186
|
}
|
|
186
|
-
}, [selectedIndex, lastVisibleStartIndex, lastVisibleStopIndex, itemsLength,
|
|
187
|
+
}, [selectedIndex, lastVisibleStartIndex, lastVisibleStopIndex, itemsLength, showMoreOptionsButton]);
|
|
187
188
|
(0, _react.useLayoutEffect)(function () {
|
|
188
189
|
setCache(new _CellMeasurer.CellMeasurerCache({
|
|
189
190
|
fixedWidth: true,
|
|
@@ -202,14 +203,14 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
|
|
|
202
203
|
}, [items]);
|
|
203
204
|
(0, _react.useLayoutEffect)(function () {
|
|
204
205
|
// Exclude view more item from the count
|
|
205
|
-
var itemsToRender =
|
|
206
|
+
var itemsToRender = showMoreOptionsButton ? items.slice(0, -1) : items;
|
|
206
207
|
var height = Math.min(itemsToRender.reduce(function (prevValue, currentValue, index) {
|
|
207
208
|
return prevValue + cache.rowHeight({
|
|
208
209
|
index: index
|
|
209
210
|
});
|
|
210
211
|
}, 0), fitHeight);
|
|
211
212
|
setHeight(height);
|
|
212
|
-
}, [items, cache, fitHeight,
|
|
213
|
+
}, [items, cache, fitHeight, showMoreOptionsButton]);
|
|
213
214
|
(0, _react.useLayoutEffect)(function () {
|
|
214
215
|
if (!listContainerRef.current) {
|
|
215
216
|
return;
|
|
@@ -269,13 +270,27 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
|
|
|
269
270
|
return item.isDisabledOffline !== true;
|
|
270
271
|
});
|
|
271
272
|
}, [items]);
|
|
272
|
-
var
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
273
|
+
var config = triggerHandler === null || triggerHandler === void 0 || (_triggerHandler$getMo = triggerHandler.getMoreOptionsButtonConfig) === null || _triggerHandler$getMo === void 0 ? void 0 : _triggerHandler$getMo.call(triggerHandler, intl);
|
|
274
|
+
var handleClick = function handleClick() {
|
|
275
|
+
if (onMoreOptionsClicked) {
|
|
276
|
+
onMoreOptionsClicked();
|
|
277
|
+
}
|
|
278
|
+
api === null || api === void 0 || api.core.actions.execute(function (_ref4) {
|
|
279
|
+
var tr = _ref4.tr;
|
|
280
|
+
(0, _closeTypeAhead.closeTypeAhead)(tr);
|
|
281
|
+
config === null || config === void 0 || config.onClick({
|
|
282
|
+
tr: tr
|
|
283
|
+
});
|
|
284
|
+
return tr;
|
|
285
|
+
});
|
|
286
|
+
};
|
|
287
|
+
var renderRow = function renderRow(_ref5) {
|
|
288
|
+
var index = _ref5.index,
|
|
289
|
+
key = _ref5.key,
|
|
290
|
+
style = _ref5.style,
|
|
291
|
+
parent = _ref5.parent,
|
|
292
|
+
isScrolling = _ref5.isScrolling,
|
|
293
|
+
isVisible = _ref5.isVisible;
|
|
279
294
|
var currentItem = items[index];
|
|
280
295
|
return (0, _react2.jsx)(_CellMeasurer.CellMeasurer, {
|
|
281
296
|
key: key,
|
|
@@ -283,9 +298,9 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
|
|
|
283
298
|
parent: parent,
|
|
284
299
|
columnIndex: 0,
|
|
285
300
|
rowIndex: index
|
|
286
|
-
}, (0, _platformFeatureFlags.fg)('platform_editor_typeahead_dynamic_height_fix') ? function (
|
|
287
|
-
var measure =
|
|
288
|
-
registerChild =
|
|
301
|
+
}, (0, _platformFeatureFlags.fg)('platform_editor_typeahead_dynamic_height_fix') ? function (_ref6) {
|
|
302
|
+
var measure = _ref6.measure,
|
|
303
|
+
registerChild = _ref6.registerChild;
|
|
289
304
|
return (0, _react2.jsx)(_ListRow.ListRow, {
|
|
290
305
|
registerChild: registerChild,
|
|
291
306
|
measure: measure,
|
|
@@ -394,8 +409,14 @@ var TypeAheadListComponent = /*#__PURE__*/_react.default.memo(function (_ref2) {
|
|
|
394
409
|
}, (0, _react2.jsx)("div", {
|
|
395
410
|
id: menuGroupId,
|
|
396
411
|
ref: listContainerRef
|
|
397
|
-
}, !
|
|
398
|
-
|
|
412
|
+
}, !showMoreOptionsButton || itemsLength ? ListContent : EmptyResultView, (0, _platformFeatureFlags.fg)('platform_editor_controls_patch_12') ? showMoreOptionsButton && config && (0, _react2.jsx)(_MoreOptions.MoreOptions, {
|
|
413
|
+
title: config.title,
|
|
414
|
+
ariaLabel: config.ariaLabel,
|
|
415
|
+
onClick: handleClick,
|
|
416
|
+
isFocused: selectedIndex === itemsLength,
|
|
417
|
+
iconBefore: config.iconBefore
|
|
418
|
+
}) : showMoreOptionsButton && onMoreOptionsClicked && (0, _react2.jsx)(_ViewMore.ViewMore, {
|
|
419
|
+
onClick: onMoreOptionsClicked,
|
|
399
420
|
isFocused: selectedIndex === itemsLength
|
|
400
421
|
}), (0, _react2.jsx)(TypeaheadAssistiveTextPureComponent, {
|
|
401
422
|
numberOfResults: itemsLength.toString()
|
|
@@ -24,8 +24,7 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
|
24
24
|
* @jsx jsx
|
|
25
25
|
*/
|
|
26
26
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
27
|
-
function
|
|
28
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
27
|
+
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); }
|
|
29
28
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles -- Ignored via go/DSP-18766
|
|
30
29
|
var itemIcon = exports.itemIcon = (0, _react2.css)({
|
|
31
30
|
width: "var(--ds-space-500, 40px)",
|
|
@@ -8,6 +8,7 @@ exports.TypeAheadMenu = void 0;
|
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _typeAhead = require("@atlaskit/editor-common/type-ahead");
|
|
11
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
11
12
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
12
13
|
var _updateSelectedIndex = require("../pm-plugins/commands/update-selected-index");
|
|
13
14
|
var _useItemInsert3 = require("./hooks/use-item-insert");
|
|
@@ -81,8 +82,15 @@ var TypeAheadMenu = exports.TypeAheadMenu = /*#__PURE__*/_react.default.memo(fun
|
|
|
81
82
|
|
|
82
83
|
// @ts-ignore
|
|
83
84
|
var openElementBrowserModal = triggerHandler === null || triggerHandler === void 0 ? void 0 : triggerHandler.openElementBrowserModal;
|
|
84
|
-
var
|
|
85
|
-
if (
|
|
85
|
+
var showMoreOptionsButton = false;
|
|
86
|
+
if ((0, _experiments.editorExperiment)('platform_editor_controls', 'variant1')) {
|
|
87
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_controls_patch_12')) {
|
|
88
|
+
showMoreOptionsButton = !!(triggerHandler !== null && triggerHandler !== void 0 && triggerHandler.getMoreOptionsButtonConfig);
|
|
89
|
+
} else {
|
|
90
|
+
showMoreOptionsButton = (triggerHandler === null || triggerHandler === void 0 ? void 0 : triggerHandler.id) === _typeAhead.TypeAheadAvailableNodes.QUICK_INSERT && !!openElementBrowserModal;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (!isOpen || !triggerHandler || !(decorationElement instanceof HTMLElement) || !openElementBrowserModal && items.length === 0 && !errorInfo) {
|
|
86
94
|
return null;
|
|
87
95
|
}
|
|
88
96
|
return /*#__PURE__*/_react.default.createElement(_TypeAheadPopup.TypeAheadPopup, {
|
|
@@ -101,6 +109,6 @@ var TypeAheadMenu = exports.TypeAheadMenu = /*#__PURE__*/_react.default.memo(fun
|
|
|
101
109
|
isEmptyQuery: !query,
|
|
102
110
|
cancel: cancel,
|
|
103
111
|
api: api,
|
|
104
|
-
|
|
112
|
+
showMoreOptionsButton: showMoreOptionsButton
|
|
105
113
|
});
|
|
106
114
|
});
|
|
@@ -25,8 +25,7 @@ var _constants = require("../pm-plugins/constants");
|
|
|
25
25
|
var _utils = require("../pm-plugins/utils");
|
|
26
26
|
var _TypeAheadErrorFallback = require("./TypeAheadErrorFallback");
|
|
27
27
|
var _TypeAheadList = require("./TypeAheadList");
|
|
28
|
-
function
|
|
29
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
28
|
+
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); }
|
|
30
29
|
/**
|
|
31
30
|
* @jsxRuntime classic
|
|
32
31
|
* @jsx jsx
|
|
@@ -92,7 +91,7 @@ var TypeAheadPopup = exports.TypeAheadPopup = /*#__PURE__*/_react.default.memo(f
|
|
|
92
91
|
isEmptyQuery = props.isEmptyQuery,
|
|
93
92
|
cancel = props.cancel,
|
|
94
93
|
api = props.api,
|
|
95
|
-
|
|
94
|
+
showMoreOptionsButton = props.showMoreOptionsButton;
|
|
96
95
|
var ref = (0, _react.useRef)(null);
|
|
97
96
|
var _useSharedState = useSharedState(api),
|
|
98
97
|
moreElementsInQuickInsertView = _useSharedState.moreElementsInQuickInsertView;
|
|
@@ -161,11 +160,11 @@ var TypeAheadPopup = exports.TypeAheadPopup = /*#__PURE__*/_react.default.memo(f
|
|
|
161
160
|
fitHeight = _useState2[0],
|
|
162
161
|
setFitHeight = _useState2[1];
|
|
163
162
|
var fitHeightWithViewMore = (0, _react.useMemo)(function () {
|
|
164
|
-
if (
|
|
163
|
+
if (showMoreOptionsButton) {
|
|
165
164
|
return fitHeight - VIEWMORE_BUTTON_HEIGHT;
|
|
166
165
|
}
|
|
167
166
|
return fitHeight;
|
|
168
|
-
}, [fitHeight,
|
|
167
|
+
}, [fitHeight, showMoreOptionsButton]);
|
|
169
168
|
var getFitHeight = (0, _react.useCallback)(function () {
|
|
170
169
|
if (!anchorElement || !popupsMountPoint) {
|
|
171
170
|
return;
|
|
@@ -314,20 +313,21 @@ var TypeAheadPopup = exports.TypeAheadPopup = /*#__PURE__*/_react.default.memo(f
|
|
|
314
313
|
(0, _closeTypeAhead.closeTypeAhead)(tr);
|
|
315
314
|
editorView.dispatch(tr);
|
|
316
315
|
};
|
|
317
|
-
var
|
|
318
|
-
|
|
319
|
-
|
|
316
|
+
var onMoreOptionsClicked = (0, _react.useCallback)(function () {
|
|
317
|
+
if (
|
|
318
|
+
// eslint-disable-next-line @atlaskit/platform/no-preconditioning
|
|
319
|
+
openElementBrowserModal && (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') && (0, _platformFeatureFlags.fg)('platform_editor_controls_patch_4') && (!(0, _platformFeatureFlags.fg)('platform_editor_controls_patch_12') || triggerHandler.id === _typeAhead.TypeAheadAvailableNodes.QUICK_INSERT)) {
|
|
320
320
|
activityStateRef.current = {
|
|
321
321
|
inputMethod: _analytics.INPUT_METHOD.MOUSE,
|
|
322
322
|
closeAction: _analytics.ACTION.VIEW_MORE,
|
|
323
323
|
invocationMethod: activityStateRef.current.invocationMethod
|
|
324
324
|
};
|
|
325
325
|
}
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
}, [editorView, openElementBrowserModal]);
|
|
326
|
+
if (!(0, _platformFeatureFlags.fg)('platform_editor_controls_patch_12')) {
|
|
327
|
+
close(editorView);
|
|
328
|
+
openElementBrowserModal === null || openElementBrowserModal === void 0 || openElementBrowserModal();
|
|
329
|
+
}
|
|
330
|
+
}, [editorView, openElementBrowserModal, triggerHandler.id]);
|
|
331
331
|
return (0, _react2.jsx)(_ui.Popup, {
|
|
332
332
|
zIndex: _editorSharedStyles.akEditorFloatingDialogZIndex,
|
|
333
333
|
target: anchorElement,
|
|
@@ -354,7 +354,7 @@ var TypeAheadPopup = exports.TypeAheadPopup = /*#__PURE__*/_react.default.memo(f
|
|
|
354
354
|
}
|
|
355
355
|
}
|
|
356
356
|
}, (0, _react2.jsx)("div", {
|
|
357
|
-
css: [typeAheadContent, moreElementsInQuickInsertViewEnabled && typeAheadContentOverride,
|
|
357
|
+
css: [typeAheadContent, moreElementsInQuickInsertViewEnabled && typeAheadContentOverride, showMoreOptionsButton && typeAheadWrapperWithViewMoreOverride]
|
|
358
358
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
359
359
|
,
|
|
360
360
|
tabIndex: 0
|
|
@@ -384,8 +384,8 @@ var TypeAheadPopup = exports.TypeAheadPopup = /*#__PURE__*/_react.default.memo(f
|
|
|
384
384
|
triggerHandler: triggerHandler,
|
|
385
385
|
moreElementsInQuickInsertViewEnabled: moreElementsInQuickInsertViewEnabled,
|
|
386
386
|
api: api,
|
|
387
|
-
|
|
388
|
-
|
|
387
|
+
showMoreOptionsButton: showMoreOptionsButton,
|
|
388
|
+
onMoreOptionsClicked: onMoreOptionsClicked
|
|
389
389
|
}))));
|
|
390
390
|
});
|
|
391
391
|
TypeAheadPopup.displayName = 'TypeAheadPopup';
|
|
@@ -20,8 +20,7 @@ var _useItemInsert3 = require("./hooks/use-item-insert");
|
|
|
20
20
|
var _useLoadItems = require("./hooks/use-load-items");
|
|
21
21
|
var _useOnForceSelect = require("./hooks/use-on-force-select");
|
|
22
22
|
var _InputQuery = require("./InputQuery");
|
|
23
|
-
function
|
|
24
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
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); }
|
|
25
24
|
var WrapperTypeAhead = exports.WrapperTypeAhead = /*#__PURE__*/_react.default.memo(function (_ref) {
|
|
26
25
|
var triggerHandler = _ref.triggerHandler,
|
|
27
26
|
editorView = _ref.editorView,
|
|
@@ -37,7 +36,14 @@ var WrapperTypeAhead = exports.WrapperTypeAhead = /*#__PURE__*/_react.default.me
|
|
|
37
36
|
api = _ref.api;
|
|
38
37
|
// @ts-ignore
|
|
39
38
|
var openElementBrowserModal = triggerHandler === null || triggerHandler === void 0 ? void 0 : triggerHandler.openElementBrowserModal;
|
|
40
|
-
var
|
|
39
|
+
var showMoreOptionsButton = false;
|
|
40
|
+
if ((0, _experiments.editorExperiment)('platform_editor_controls', 'variant1')) {
|
|
41
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_controls_patch_12')) {
|
|
42
|
+
showMoreOptionsButton = !!(triggerHandler !== null && triggerHandler !== void 0 && triggerHandler.getMoreOptionsButtonConfig);
|
|
43
|
+
} else {
|
|
44
|
+
showMoreOptionsButton = (triggerHandler === null || triggerHandler === void 0 ? void 0 : triggerHandler.id) === _typeAhead.TypeAheadAvailableNodes.QUICK_INSERT && !!openElementBrowserModal;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
41
47
|
var _useState = (0, _react.useState)(false),
|
|
42
48
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
43
49
|
closed = _useState2[0],
|
|
@@ -48,7 +54,7 @@ var WrapperTypeAhead = exports.WrapperTypeAhead = /*#__PURE__*/_react.default.me
|
|
|
48
54
|
setQuery = _useState4[1];
|
|
49
55
|
var queryRef = (0, _react.useRef)(query);
|
|
50
56
|
var editorViewRef = (0, _react.useRef)(editorView);
|
|
51
|
-
var items = (0, _useLoadItems.useLoadItems)(triggerHandler, editorView, query,
|
|
57
|
+
var items = (0, _useLoadItems.useLoadItems)(triggerHandler, editorView, query, showMoreOptionsButton);
|
|
52
58
|
(0, _react.useEffect)(function () {
|
|
53
59
|
if (!closed && (0, _platformFeatureFlags.fg)('platform_editor_ease_of_use_metrics')) {
|
|
54
60
|
var _api$metrics;
|
|
@@ -21,8 +21,7 @@ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
|
21
21
|
var _colors = require("@atlaskit/theme/colors");
|
|
22
22
|
var _constants = require("../../pm-plugins/constants");
|
|
23
23
|
var _TypeAheadErrorFallback = require("../TypeAheadErrorFallback");
|
|
24
|
-
function
|
|
25
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
24
|
+
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); }
|
|
26
25
|
/* eslint-disable @atlaskit/ui-styling-standard/use-compiled */
|
|
27
26
|
/**
|
|
28
27
|
* @jsxRuntime classic
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jsxRuntime classic
|
|
3
|
+
* @jsx jsx
|
|
4
|
+
*/
|
|
5
|
+
import { useEffect, useRef } from 'react';
|
|
6
|
+
|
|
7
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
8
|
+
import { css, jsx } from '@emotion/react';
|
|
9
|
+
import { ButtonItem, Section } from '@atlaskit/menu';
|
|
10
|
+
import { N30 } from '@atlaskit/theme/colors';
|
|
11
|
+
const buttonStyles = css({
|
|
12
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
|
|
13
|
+
'& > button:hover': {
|
|
14
|
+
backgroundColor: `var(--ds-background-neutral-subtle-hovered, ${N30})`
|
|
15
|
+
},
|
|
16
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
|
|
17
|
+
'& > button:focus': {
|
|
18
|
+
backgroundColor: `var(--ds-background-neutral-subtle-hovered, ${N30})`
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
export const MoreOptions = ({
|
|
22
|
+
onClick,
|
|
23
|
+
isFocused,
|
|
24
|
+
title,
|
|
25
|
+
ariaLabel,
|
|
26
|
+
iconBefore
|
|
27
|
+
}) => {
|
|
28
|
+
const ref = useRef(null);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (isFocused && ref.current) {
|
|
31
|
+
ref.current.focus();
|
|
32
|
+
}
|
|
33
|
+
}, [isFocused]);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (!ref.current) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const {
|
|
39
|
+
current: element
|
|
40
|
+
} = ref;
|
|
41
|
+
const handleEnter = e => {
|
|
42
|
+
if (e.key === 'Enter') {
|
|
43
|
+
onClick();
|
|
44
|
+
// Prevent keydown listener in TypeaheadList from handling Enter pressed
|
|
45
|
+
e.stopPropagation();
|
|
46
|
+
} else if (e.key === 'Tab') {
|
|
47
|
+
// TypeaheadList will try to insert selected item on Tab press
|
|
48
|
+
// hence stop propagation to prevent that and treat this as noop
|
|
49
|
+
e.stopPropagation();
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// Ignored via go/ees005
|
|
55
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
56
|
+
element === null || element === void 0 ? void 0 : element.addEventListener('keydown', handleEnter);
|
|
57
|
+
return () => {
|
|
58
|
+
// Ignored via go/ees005
|
|
59
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
60
|
+
element === null || element === void 0 ? void 0 : element.removeEventListener('keydown', handleEnter);
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
return jsx(Section, {
|
|
64
|
+
hasSeparator: true
|
|
65
|
+
}, jsx("span", {
|
|
66
|
+
css: buttonStyles
|
|
67
|
+
}, jsx(ButtonItem, {
|
|
68
|
+
ref: ref,
|
|
69
|
+
onClick: onClick,
|
|
70
|
+
iconBefore: iconBefore,
|
|
71
|
+
"aria-label": ariaLabel,
|
|
72
|
+
testId: "type-ahead-more-options-button"
|
|
73
|
+
}, title)));
|
|
74
|
+
};
|