@atlaskit/editor-plugin-insert-block 30.0.5 → 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 +9 -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
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import React, { createContext, useCallback, useContext, useMemo } from 'react';
|
|
2
|
-
import { INPUT_METHOD } from '@atlaskit/editor-common/analytics/types/enums';
|
|
3
|
-
import { insertSelectedItem } from '@atlaskit/editor-common/insert';
|
|
4
|
-
import { QuickInsertProvider } from '@atlaskit/editor-common/quick-insert/provider';
|
|
5
|
-
// Preview updates must remain live while react-virtualized caches row elements during scrolling.
|
|
6
|
-
export var RegisteredInsertMenuPreviewContext = /*#__PURE__*/createContext(undefined);
|
|
7
|
-
export var RegisteredInsertMenuItem = function RegisteredInsertMenuItem(_ref) {
|
|
8
|
-
var _registration$compone;
|
|
9
|
-
var editorView = _ref.editorView,
|
|
10
|
-
id = _ref.id,
|
|
11
|
-
isOffline = _ref.isOffline,
|
|
12
|
-
isSelected = _ref.isSelected,
|
|
13
|
-
menuOpenId = _ref.menuOpenId,
|
|
14
|
-
onClose = _ref.onClose,
|
|
15
|
-
registration = _ref.registration,
|
|
16
|
-
surfaceContext = _ref.surfaceContext;
|
|
17
|
-
var Component = (_registration$compone = registration.component) !== null && _registration$compone !== void 0 ? _registration$compone : React.Fragment;
|
|
18
|
-
var activePreviewItemKey = useContext(RegisteredInsertMenuPreviewContext);
|
|
19
|
-
var isPreviewActive = activePreviewItemKey === registration.key;
|
|
20
|
-
var select = useCallback(function (selectionHandler) {
|
|
21
|
-
// Close first so a registered item may safely focus the editor or open its picker.
|
|
22
|
-
onClose();
|
|
23
|
-
queueMicrotask(function () {
|
|
24
|
-
var state = editorView.state;
|
|
25
|
-
var insert = function insert(content) {
|
|
26
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
27
|
-
return insertSelectedItem(content, options)(state, state.tr, state.selection.head);
|
|
28
|
-
};
|
|
29
|
-
var transaction = selectionHandler({
|
|
30
|
-
insert: insert,
|
|
31
|
-
source: INPUT_METHOD.INSERT_MENU
|
|
32
|
-
});
|
|
33
|
-
if (transaction) {
|
|
34
|
-
editorView.dispatch(transaction);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}, [editorView, onClose]);
|
|
38
|
-
var contextValue = useMemo(function () {
|
|
39
|
-
return {
|
|
40
|
-
editorView: editorView,
|
|
41
|
-
isOffline: isOffline,
|
|
42
|
-
item: {
|
|
43
|
-
id: id,
|
|
44
|
-
isPreviewActive: isPreviewActive,
|
|
45
|
-
isSelected: isSelected
|
|
46
|
-
},
|
|
47
|
-
menuOpenId: menuOpenId,
|
|
48
|
-
select: select,
|
|
49
|
-
surface: 'toolbar',
|
|
50
|
-
surfaceContext: surfaceContext
|
|
51
|
-
};
|
|
52
|
-
}, [editorView, id, isOffline, isPreviewActive, isSelected, menuOpenId, select, surfaceContext]);
|
|
53
|
-
return /*#__PURE__*/React.createElement(QuickInsertProvider, {
|
|
54
|
-
value: contextValue
|
|
55
|
-
}, /*#__PURE__*/React.createElement(Component, null, null));
|
|
56
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
._15a5nqa1{border-top-style:solid}
|
|
2
|
-
._16jlkb7n{flex-grow:1}
|
|
3
|
-
._18m91wug{overflow-y:auto}
|
|
4
|
-
._1e0c1txw{display:flex}
|
|
5
|
-
._1i531l7x{border-top-color:var(--ds-border,#0b120e24)}
|
|
6
|
-
._1o9zidpf{flex-shrink:0}
|
|
7
|
-
._1q51u2gc{padding-block-start:var(--ds-space-100,8px)}
|
|
8
|
-
._1tkeidpf{min-height:0}
|
|
9
|
-
._2lx21bp4{flex-direction:column}
|
|
10
|
-
._85i5u2gc{padding-block-end:var(--ds-space-100,8px)}
|
|
11
|
-
._uwhke4h9{border-top-width:var(--ds-border-width,1px)}
|
|
@@ -1,317 +0,0 @@
|
|
|
1
|
-
/* RegisteredInsertMenuList.tsx generated by @compiled/babel-plugin v3.0.2 */
|
|
2
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
3
|
-
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
4
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
5
|
-
import "./RegisteredInsertMenuList.compiled.css";
|
|
6
|
-
import { ax, ix } from "@compiled/react/runtime";
|
|
7
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
8
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
9
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
10
|
-
import React, { useCallback, useLayoutEffect, useMemo, useRef } from 'react';
|
|
11
|
-
import { CellMeasurer, CellMeasurerCache } from 'react-virtualized/dist/commonjs/CellMeasurer';
|
|
12
|
-
import { List } from 'react-virtualized/dist/commonjs/List';
|
|
13
|
-
import { QuickInsertEmptyState } from '@atlaskit/editor-common/quick-insert/empty-state';
|
|
14
|
-
import { getQuickInsertMenuRows } from '@atlaskit/editor-common/quick-insert/registered-menu-model';
|
|
15
|
-
import { useMenuListHeight } from '@atlaskit/editor-common/quick-insert/use-menu-list-height';
|
|
16
|
-
// eslint-disable-next-line @atlaskit/platform/no-barrel-entry-imports
|
|
17
|
-
|
|
18
|
-
import { Box } from '@atlaskit/primitives/compiled/box';
|
|
19
|
-
import { RegisteredInsertMenuItem, RegisteredInsertMenuPreviewContext } from './RegisteredInsertMenuItem';
|
|
20
|
-
var ESTIMATED_ROW_HEIGHT = 44;
|
|
21
|
-
// 44px item + 1px separator.
|
|
22
|
-
var MENU_FOOTER_HEIGHT = 45;
|
|
23
|
-
var MENU_SEARCH_HEIGHT = 64;
|
|
24
|
-
var LIST_WIDTH = 350;
|
|
25
|
-
var listAriaProps = {
|
|
26
|
-
// @ts-expect-error react-virtualized forwards null to omit its grid-only default; its types exclude null.
|
|
27
|
-
'aria-readonly': null
|
|
28
|
-
};
|
|
29
|
-
var styles = {
|
|
30
|
-
content: "_1e0c1txw _2lx21bp4 _1tkeidpf",
|
|
31
|
-
scrollable: "_16jlkb7n _1tkeidpf _18m91wug",
|
|
32
|
-
footer: "_1o9zidpf",
|
|
33
|
-
footerWithDivider: "_1i531l7x _15a5nqa1 _uwhke4h9 _1o9zidpf",
|
|
34
|
-
externalControls: "_1i531l7x _15a5nqa1 _uwhke4h9 _1q51u2gc _85i5u2gc"
|
|
35
|
-
};
|
|
36
|
-
var RegisteredInsertMenuItemRow = function RegisteredInsertMenuItemRow(_ref) {
|
|
37
|
-
var editorView = _ref.editorView,
|
|
38
|
-
id = _ref.id,
|
|
39
|
-
isOffline = _ref.isOffline,
|
|
40
|
-
isSelected = _ref.isSelected,
|
|
41
|
-
itemIndex = _ref.itemIndex,
|
|
42
|
-
menuOpenId = _ref.menuOpenId,
|
|
43
|
-
onClose = _ref.onClose,
|
|
44
|
-
onItemFocus = _ref.onItemFocus,
|
|
45
|
-
onItemBlur = _ref.onItemBlur,
|
|
46
|
-
onItemHover = _ref.onItemHover,
|
|
47
|
-
onItemLeave = _ref.onItemLeave,
|
|
48
|
-
registration = _ref.registration,
|
|
49
|
-
surfaceContext = _ref.surfaceContext;
|
|
50
|
-
useLayoutEffect(function () {
|
|
51
|
-
return function () {
|
|
52
|
-
return onItemLeave(registration.key);
|
|
53
|
-
};
|
|
54
|
-
}, [onItemLeave, registration.key]);
|
|
55
|
-
var onBlur = useCallback(function (event) {
|
|
56
|
-
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
57
|
-
onItemBlur(registration.key);
|
|
58
|
-
}
|
|
59
|
-
}, [onItemBlur, registration.key]);
|
|
60
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
61
|
-
onBlur: onBlur,
|
|
62
|
-
onFocus: function onFocus() {
|
|
63
|
-
return onItemFocus(itemIndex, registration.key);
|
|
64
|
-
},
|
|
65
|
-
onMouseLeave: function onMouseLeave() {
|
|
66
|
-
return onItemLeave(registration.key);
|
|
67
|
-
},
|
|
68
|
-
onMouseMove: function onMouseMove() {
|
|
69
|
-
return onItemHover(itemIndex, registration.key);
|
|
70
|
-
}
|
|
71
|
-
}, /*#__PURE__*/React.createElement(RegisteredInsertMenuItem, {
|
|
72
|
-
editorView: editorView,
|
|
73
|
-
id: id,
|
|
74
|
-
isOffline: isOffline,
|
|
75
|
-
isSelected: isSelected,
|
|
76
|
-
menuOpenId: menuOpenId,
|
|
77
|
-
onClose: onClose,
|
|
78
|
-
registration: registration,
|
|
79
|
-
surfaceContext: surfaceContext
|
|
80
|
-
}));
|
|
81
|
-
};
|
|
82
|
-
export var RegisteredInsertMenuList = function RegisteredInsertMenuList(_ref2) {
|
|
83
|
-
var _model$root$component, _model$root;
|
|
84
|
-
var editorView = _ref2.editorView,
|
|
85
|
-
emptyStateHandler = _ref2.emptyStateHandler,
|
|
86
|
-
isOffline = _ref2.isOffline,
|
|
87
|
-
listId = _ref2.listId,
|
|
88
|
-
listLabel = _ref2.listLabel,
|
|
89
|
-
maxHeight = _ref2.maxHeight,
|
|
90
|
-
menuOpenId = _ref2.menuOpenId,
|
|
91
|
-
model = _ref2.model,
|
|
92
|
-
onClose = _ref2.onClose,
|
|
93
|
-
onItemFocus = _ref2.onItemFocus,
|
|
94
|
-
onItemBlur = _ref2.onItemBlur,
|
|
95
|
-
query = _ref2.query,
|
|
96
|
-
onItemHover = _ref2.onItemHover,
|
|
97
|
-
onItemLeave = _ref2.onItemLeave,
|
|
98
|
-
onItemVisibilityChange = _ref2.onItemVisibilityChange,
|
|
99
|
-
onRenderedItemsChange = _ref2.onRenderedItemsChange,
|
|
100
|
-
selectedItemIndex = _ref2.selectedItemIndex,
|
|
101
|
-
surfaceContext = _ref2.surfaceContext,
|
|
102
|
-
activePreviewItemKey = _ref2.activePreviewItemKey;
|
|
103
|
-
var Root = (_model$root$component = (_model$root = model.root) === null || _model$root === void 0 ? void 0 : _model$root.component) !== null && _model$root$component !== void 0 ? _model$root$component : React.Fragment;
|
|
104
|
-
var listRef = useRef(null);
|
|
105
|
-
var setListRef = useCallback(function (list) {
|
|
106
|
-
listRef.current = list;
|
|
107
|
-
}, []);
|
|
108
|
-
var rows = useMemo(function () {
|
|
109
|
-
return getQuickInsertMenuRows(model);
|
|
110
|
-
}, [model]);
|
|
111
|
-
var cache = useMemo(function () {
|
|
112
|
-
return new CellMeasurerCache({
|
|
113
|
-
defaultHeight: ESTIMATED_ROW_HEIGHT,
|
|
114
|
-
fixedWidth: true
|
|
115
|
-
});
|
|
116
|
-
}, []);
|
|
117
|
-
var itemIndexByRowIndex = useMemo(function () {
|
|
118
|
-
var indexes = new Map();
|
|
119
|
-
var itemIndex = 0;
|
|
120
|
-
rows.forEach(function (registration, rowIndex) {
|
|
121
|
-
if (registration.type === 'menu-item') {
|
|
122
|
-
indexes.set(rowIndex, itemIndex++);
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
return indexes;
|
|
126
|
-
}, [rows]);
|
|
127
|
-
var selectedRowIndex = useMemo(function () {
|
|
128
|
-
var _iterator = _createForOfIteratorHelper(itemIndexByRowIndex),
|
|
129
|
-
_step;
|
|
130
|
-
try {
|
|
131
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
132
|
-
var _step$value = _slicedToArray(_step.value, 2),
|
|
133
|
-
rowIndex = _step$value[0],
|
|
134
|
-
itemIndex = _step$value[1];
|
|
135
|
-
if (itemIndex === selectedItemIndex) {
|
|
136
|
-
return rowIndex;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
} catch (err) {
|
|
140
|
-
_iterator.e(err);
|
|
141
|
-
} finally {
|
|
142
|
-
_iterator.f();
|
|
143
|
-
}
|
|
144
|
-
return -1;
|
|
145
|
-
}, [itemIndexByRowIndex, selectedItemIndex]);
|
|
146
|
-
var rowKeySignature = useMemo(function () {
|
|
147
|
-
return rows.map(function (_ref3) {
|
|
148
|
-
var key = _ref3.key,
|
|
149
|
-
type = _ref3.type;
|
|
150
|
-
return "".concat(type, ":").concat(key);
|
|
151
|
-
}).join('\0');
|
|
152
|
-
}, [rows]);
|
|
153
|
-
var _useMenuListHeight = useMenuListHeight(cache, rows.length, rowKeySignature),
|
|
154
|
-
measuredHeight = _useMenuListHeight.height,
|
|
155
|
-
updateHeight = _useMenuListHeight.updateHeight;
|
|
156
|
-
useLayoutEffect(function () {
|
|
157
|
-
var _listRef$current, _listRef$current2;
|
|
158
|
-
cache.clearAll();
|
|
159
|
-
(_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.recomputeRowHeights();
|
|
160
|
-
(_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 || _listRef$current2.scrollToPosition(0);
|
|
161
|
-
}, [cache, rowKeySignature]);
|
|
162
|
-
var onRowsRendered = useCallback(function (_ref4) {
|
|
163
|
-
var _indexes$, _indexes;
|
|
164
|
-
var overscanStartIndex = _ref4.overscanStartIndex,
|
|
165
|
-
overscanStopIndex = _ref4.overscanStopIndex,
|
|
166
|
-
startIndex = _ref4.startIndex,
|
|
167
|
-
stopIndex = _ref4.stopIndex;
|
|
168
|
-
if (activePreviewItemKey) {
|
|
169
|
-
var previewRowIndex = rows.findIndex(function (_ref5) {
|
|
170
|
-
var key = _ref5.key;
|
|
171
|
-
return key === activePreviewItemKey;
|
|
172
|
-
});
|
|
173
|
-
if (previewRowIndex < startIndex || previewRowIndex > stopIndex) {
|
|
174
|
-
onItemVisibilityChange(activePreviewItemKey, false);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
updateHeight();
|
|
178
|
-
var indexes = _toConsumableArray(itemIndexByRowIndex).filter(function (_ref6) {
|
|
179
|
-
var _ref7 = _slicedToArray(_ref6, 1),
|
|
180
|
-
rowIndex = _ref7[0];
|
|
181
|
-
return rowIndex >= overscanStartIndex && rowIndex <= overscanStopIndex;
|
|
182
|
-
}).map(function (_ref8) {
|
|
183
|
-
var _ref9 = _slicedToArray(_ref8, 2),
|
|
184
|
-
itemIndex = _ref9[1];
|
|
185
|
-
return itemIndex;
|
|
186
|
-
});
|
|
187
|
-
onRenderedItemsChange({
|
|
188
|
-
startIndex: (_indexes$ = indexes[0]) !== null && _indexes$ !== void 0 ? _indexes$ : -1,
|
|
189
|
-
stopIndex: (_indexes = indexes[indexes.length - 1]) !== null && _indexes !== void 0 ? _indexes : -1
|
|
190
|
-
});
|
|
191
|
-
}, [activePreviewItemKey, itemIndexByRowIndex, onItemVisibilityChange, onRenderedItemsChange, rows, updateHeight]);
|
|
192
|
-
var onScrollableContentScroll = useCallback(function (event) {
|
|
193
|
-
if (event.target === event.currentTarget && activePreviewItemKey) {
|
|
194
|
-
onItemVisibilityChange(activePreviewItemKey, false);
|
|
195
|
-
}
|
|
196
|
-
}, [activePreviewItemKey, onItemVisibilityChange]);
|
|
197
|
-
var renderRow = useCallback(function (_ref0) {
|
|
198
|
-
var _registration$compone;
|
|
199
|
-
var index = _ref0.index,
|
|
200
|
-
key = _ref0.key,
|
|
201
|
-
parent = _ref0.parent,
|
|
202
|
-
style = _ref0.style;
|
|
203
|
-
var registration = rows[index];
|
|
204
|
-
if (!registration) {
|
|
205
|
-
return null;
|
|
206
|
-
}
|
|
207
|
-
var itemIndex = itemIndexByRowIndex.get(index);
|
|
208
|
-
var rowContent = registration.type === 'menu-section' ? ( /*#__PURE__*/React.createElement((_registration$compone = registration.component) !== null && _registration$compone !== void 0 ? _registration$compone : React.Fragment, null, null)) : /*#__PURE__*/React.createElement(RegisteredInsertMenuItemRow, {
|
|
209
|
-
editorView: editorView,
|
|
210
|
-
id: "".concat(listId, "-").concat(itemIndex),
|
|
211
|
-
isOffline: isOffline,
|
|
212
|
-
isSelected: itemIndex === selectedItemIndex,
|
|
213
|
-
itemIndex: itemIndex !== null && itemIndex !== void 0 ? itemIndex : 0,
|
|
214
|
-
menuOpenId: menuOpenId,
|
|
215
|
-
onClose: onClose,
|
|
216
|
-
onItemFocus: onItemFocus,
|
|
217
|
-
onItemBlur: onItemBlur,
|
|
218
|
-
onItemHover: onItemHover,
|
|
219
|
-
onItemLeave: onItemLeave,
|
|
220
|
-
registration: registration,
|
|
221
|
-
surfaceContext: surfaceContext
|
|
222
|
-
});
|
|
223
|
-
return /*#__PURE__*/React.createElement(CellMeasurer, {
|
|
224
|
-
key: key,
|
|
225
|
-
cache: cache,
|
|
226
|
-
parent: parent,
|
|
227
|
-
columnIndex: 0,
|
|
228
|
-
rowIndex: index
|
|
229
|
-
}, function (_ref1) {
|
|
230
|
-
var registerChild = _ref1.registerChild;
|
|
231
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
232
|
-
ref: function ref(element) {
|
|
233
|
-
return registerChild === null || registerChild === void 0 ? void 0 : registerChild(element !== null && element !== void 0 ? element : undefined);
|
|
234
|
-
}
|
|
235
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
|
|
236
|
-
,
|
|
237
|
-
style: style
|
|
238
|
-
}, /*#__PURE__*/React.createElement(Box, {
|
|
239
|
-
paddingBlockEnd: index === rows.length - 1 ? 'space.100' : undefined
|
|
240
|
-
}, rowContent));
|
|
241
|
-
});
|
|
242
|
-
}, [cache, editorView, isOffline, itemIndexByRowIndex, listId, menuOpenId, onClose, onItemFocus, onItemBlur, onItemHover, onItemLeave, rows, selectedItemIndex, surfaceContext]);
|
|
243
|
-
var footerItemIndex = itemIndexByRowIndex.size;
|
|
244
|
-
var footerItemId = "".concat(listId, "-").concat(footerItemIndex);
|
|
245
|
-
var hasExternalControls = model.fallbackItems !== undefined && emptyStateHandler !== undefined;
|
|
246
|
-
var hasNoSearchResults = query !== '' && rows.length === 0;
|
|
247
|
-
var externalControls = hasExternalControls && emptyStateHandler ? emptyStateHandler({
|
|
248
|
-
mode: 'inline',
|
|
249
|
-
searchTerm: query,
|
|
250
|
-
showNoResultsMessage: false
|
|
251
|
-
}) : null;
|
|
252
|
-
var showFooterDivider = !hasNoSearchResults || Boolean(externalControls);
|
|
253
|
-
var listMaxHeight = Math.max(0, maxHeight - MENU_SEARCH_HEIGHT - (model.footer ? MENU_FOOTER_HEIGHT : 0));
|
|
254
|
-
var contentStyle = {
|
|
255
|
-
maxHeight: Math.max(0, maxHeight - MENU_SEARCH_HEIGHT)
|
|
256
|
-
};
|
|
257
|
-
var onFooterItemHover = useCallback(function () {
|
|
258
|
-
return onItemHover(footerItemIndex);
|
|
259
|
-
}, [footerItemIndex, onItemHover]);
|
|
260
|
-
var onFooterItemFocus = useCallback(function () {
|
|
261
|
-
return onItemFocus(footerItemIndex);
|
|
262
|
-
}, [footerItemIndex, onItemFocus]);
|
|
263
|
-
var footer = model.footer ? /*#__PURE__*/React.createElement(Box, {
|
|
264
|
-
testId: "registered-insert-menu-footer",
|
|
265
|
-
xcss: showFooterDivider ? styles.footerWithDivider : styles.footer,
|
|
266
|
-
onFocus: onFooterItemFocus,
|
|
267
|
-
onMouseMove: onFooterItemHover
|
|
268
|
-
}, /*#__PURE__*/React.createElement(RegisteredInsertMenuItem, {
|
|
269
|
-
editorView: editorView,
|
|
270
|
-
id: footerItemId,
|
|
271
|
-
isOffline: isOffline,
|
|
272
|
-
isSelected: footerItemIndex === selectedItemIndex,
|
|
273
|
-
menuOpenId: menuOpenId,
|
|
274
|
-
onClose: onClose,
|
|
275
|
-
registration: model.footer,
|
|
276
|
-
surfaceContext: surfaceContext
|
|
277
|
-
})) : null;
|
|
278
|
-
if (!model.root) {
|
|
279
|
-
return null;
|
|
280
|
-
}
|
|
281
|
-
return /*#__PURE__*/React.createElement(Root, null, /*#__PURE__*/React.createElement(RegisteredInsertMenuPreviewContext.Provider, {
|
|
282
|
-
value: activePreviewItemKey
|
|
283
|
-
}, /*#__PURE__*/React.createElement(Box, {
|
|
284
|
-
xcss: styles.content,
|
|
285
|
-
style: contentStyle
|
|
286
|
-
}, /*#__PURE__*/React.createElement(Box, {
|
|
287
|
-
xcss: styles.scrollable,
|
|
288
|
-
onScroll: onScrollableContentScroll
|
|
289
|
-
}, /*#__PURE__*/React.createElement(Box, {
|
|
290
|
-
"aria-label": listLabel,
|
|
291
|
-
"aria-owns": model.footer ? footerItemId : undefined,
|
|
292
|
-
id: listId,
|
|
293
|
-
role: "listbox"
|
|
294
|
-
}, rows.length > 0 && /*#__PURE__*/React.createElement(List
|
|
295
|
-
// eslint-disable-next-line react/jsx-props-no-spreading -- Omits the library's grid-only ARIA default without declaring it on the group role.
|
|
296
|
-
, _extends({}, listAriaProps, {
|
|
297
|
-
tabIndex: null,
|
|
298
|
-
containerRole: "presentation",
|
|
299
|
-
height: Math.min(measuredHeight, listMaxHeight),
|
|
300
|
-
overscanRowCount: 3,
|
|
301
|
-
onRowsRendered: onRowsRendered,
|
|
302
|
-
ref: setListRef,
|
|
303
|
-
role: "group",
|
|
304
|
-
rowCount: rows.length,
|
|
305
|
-
rowHeight: cache.rowHeight,
|
|
306
|
-
rowRenderer: renderRow,
|
|
307
|
-
scrollToAlignment: "auto",
|
|
308
|
-
scrollToIndex: selectedRowIndex,
|
|
309
|
-
width: LIST_WIDTH
|
|
310
|
-
}))), hasNoSearchResults && /*#__PURE__*/React.createElement(QuickInsertEmptyState, {
|
|
311
|
-
mode: "inline",
|
|
312
|
-
spacing: "compact"
|
|
313
|
-
}), externalControls && /*#__PURE__*/React.createElement(Box, {
|
|
314
|
-
testId: "registered-insert-menu-external-controls",
|
|
315
|
-
xcss: styles.externalControls
|
|
316
|
-
}, externalControls)), footer)));
|
|
317
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
3
|
-
import type { SurfaceContext, RegisterMenuItem } from '@atlaskit/editor-ui-control-model/types';
|
|
4
|
-
export declare const RegisteredInsertMenuPreviewContext: React.Context<string | undefined>;
|
|
5
|
-
type Props = {
|
|
6
|
-
editorView: EditorView;
|
|
7
|
-
id: string;
|
|
8
|
-
isOffline: boolean;
|
|
9
|
-
isSelected: boolean;
|
|
10
|
-
menuOpenId: symbol;
|
|
11
|
-
onClose: () => void;
|
|
12
|
-
registration: RegisterMenuItem;
|
|
13
|
-
surfaceContext: SurfaceContext;
|
|
14
|
-
};
|
|
15
|
-
export declare const RegisteredInsertMenuItem: ({ editorView, id, isOffline, isSelected, menuOpenId, onClose, registration, surfaceContext, }: Props) => React.JSX.Element;
|
|
16
|
-
export {};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type QuickInsertMenuModel } from '@atlaskit/editor-common/quick-insert/registered-menu-model';
|
|
3
|
-
import type { EmptyStateHandler } from '@atlaskit/editor-common/types';
|
|
4
|
-
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
|
|
5
|
-
import type { SurfaceContext } from '@atlaskit/editor-ui-control-model/types';
|
|
6
|
-
type Props = {
|
|
7
|
-
activePreviewItemKey?: string;
|
|
8
|
-
editorView: EditorView;
|
|
9
|
-
emptyStateHandler?: EmptyStateHandler;
|
|
10
|
-
isOffline: boolean;
|
|
11
|
-
listId: string;
|
|
12
|
-
listLabel: string;
|
|
13
|
-
maxHeight: number;
|
|
14
|
-
menuOpenId: symbol;
|
|
15
|
-
model: QuickInsertMenuModel;
|
|
16
|
-
onClose: () => void;
|
|
17
|
-
onItemBlur: (itemKey: string) => void;
|
|
18
|
-
onItemFocus: (index: number, itemKey?: string) => void;
|
|
19
|
-
onItemHover: (index: number, itemKey?: string) => void;
|
|
20
|
-
onItemLeave: (itemKey: string) => void;
|
|
21
|
-
onItemVisibilityChange: (itemKey: string, isVisible: boolean) => void;
|
|
22
|
-
onRenderedItemsChange: (range: {
|
|
23
|
-
startIndex: number;
|
|
24
|
-
stopIndex: number;
|
|
25
|
-
}) => void;
|
|
26
|
-
query: string;
|
|
27
|
-
selectedItemIndex: number;
|
|
28
|
-
surfaceContext: SurfaceContext;
|
|
29
|
-
};
|
|
30
|
-
export declare const RegisteredInsertMenuList: ({ editorView, emptyStateHandler, isOffline, listId, listLabel, maxHeight, menuOpenId, model, onClose, onItemFocus, onItemBlur, query, onItemHover, onItemLeave, onItemVisibilityChange, onRenderedItemsChange, selectedItemIndex, surfaceContext, activePreviewItemKey, }: Props) => React.JSX.Element | null;
|
|
31
|
-
export {};
|