@atlaskit/editor-plugin-quick-insert 15.1.3 → 16.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 +26 -0
- package/dist/cjs/entry-points/registry-element-browser.js +12 -0
- package/dist/cjs/quickInsertPlugin.js +10 -3
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowser.compiled.css +2 -0
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowser.js +176 -0
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowserCategories.compiled.css +2 -0
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowserCategories.js +52 -0
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowserFooter.js +40 -0
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.compiled.css +2 -0
- package/dist/cjs/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.js +123 -0
- package/dist/cjs/ui/RegistryElementBrowser/index.js +144 -0
- package/dist/cjs/ui/RegistryElementBrowser/model.js +129 -0
- package/dist/es2019/entry-points/registry-element-browser.js +2 -0
- package/dist/es2019/quickInsertPlugin.js +8 -3
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowser.compiled.css +2 -0
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowser.js +147 -0
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowserCategories.compiled.css +2 -0
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowserCategories.js +55 -0
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowserFooter.js +35 -0
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.compiled.css +2 -0
- package/dist/es2019/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.js +112 -0
- package/dist/es2019/ui/RegistryElementBrowser/index.js +123 -0
- package/dist/es2019/ui/RegistryElementBrowser/model.js +97 -0
- package/dist/esm/entry-points/registry-element-browser.js +2 -0
- package/dist/esm/quickInsertPlugin.js +10 -3
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowser.compiled.css +2 -0
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowser.js +167 -0
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowserCategories.compiled.css +2 -0
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowserCategories.js +45 -0
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowserFooter.js +33 -0
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.compiled.css +2 -0
- package/dist/esm/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.js +114 -0
- package/dist/esm/ui/RegistryElementBrowser/index.js +135 -0
- package/dist/esm/ui/RegistryElementBrowser/model.js +122 -0
- package/dist/types/entry-points/registry-element-browser.d.ts +1 -0
- package/dist/types/ui/RegistryElementBrowser/RegistryElementBrowser.d.ts +25 -0
- package/dist/types/ui/RegistryElementBrowser/RegistryElementBrowserCategories.d.ts +14 -0
- package/dist/types/ui/RegistryElementBrowser/RegistryElementBrowserFooter.d.ts +9 -0
- package/dist/types/ui/RegistryElementBrowser/RegistryElementBrowserSearchResults.d.ts +31 -0
- package/dist/types/ui/RegistryElementBrowser/index.d.ts +9 -0
- package/dist/types/ui/RegistryElementBrowser/model.d.ts +31 -0
- package/package.json +13 -8
- package/registry-element-browser/package.json +10 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-quick-insert
|
|
2
2
|
|
|
3
|
+
## 16.0.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`82fd62dcd2841`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/82fd62dcd2841) -
|
|
8
|
+
Add the experiment-gated registry-native Element Browser treatment for
|
|
9
|
+
`platform_editor_slash_command`.
|
|
10
|
+
|
|
11
|
+
`QuickInsertProvider` values must now provide a `surface` of either `typeahead` or
|
|
12
|
+
`element-browser`.
|
|
13
|
+
|
|
14
|
+
Prepare surface-specific Quick Insert item renderers for the `platform_editor_slash_command`
|
|
15
|
+
experiment.
|
|
16
|
+
|
|
17
|
+
Fix the registry Element Browser opening from View more and localize its accessibility labels.
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
|
|
23
|
+
## 15.1.4
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- Updated dependencies
|
|
28
|
+
|
|
3
29
|
## 15.1.3
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "RegistryElementBrowser", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _RegistryElementBrowser.RegistryElementBrowser;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _RegistryElementBrowser = require("../ui/RegistryElementBrowser/RegistryElementBrowser");
|
|
@@ -27,6 +27,7 @@ var _pluginKey = require("./pm-plugins/plugin-key");
|
|
|
27
27
|
var _getLegacyCompatibleComponents = require("./ui/getLegacyCompatibleComponents");
|
|
28
28
|
var _getQuickInsertComponents = require("./ui/getQuickInsertComponents");
|
|
29
29
|
var _ModalElementBrowser = _interopRequireDefault(require("./ui/ModalElementBrowser"));
|
|
30
|
+
var _RegistryElementBrowser = require("./ui/RegistryElementBrowser");
|
|
30
31
|
var _search = require("./ui/search");
|
|
31
32
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
32
33
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -88,7 +89,9 @@ var quickInsertPlugin = exports.quickInsertPlugin = function quickInsertPlugin(_
|
|
|
88
89
|
return {
|
|
89
90
|
title: formatMessage(_messages.toolbarInsertBlockMessages.viewMore),
|
|
90
91
|
ariaLabel: formatMessage(_messages.toolbarInsertBlockMessages.viewMoreAriaLabel),
|
|
91
|
-
onClick:
|
|
92
|
+
onClick: function onClick(props) {
|
|
93
|
+
return openElementBrowser()(props);
|
|
94
|
+
},
|
|
92
95
|
iconBefore: /*#__PURE__*/_react.default.createElement(_showMoreHorizontal.default, {
|
|
93
96
|
label: ""
|
|
94
97
|
})
|
|
@@ -115,7 +118,7 @@ var quickInsertPlugin = exports.quickInsertPlugin = function quickInsertPlugin(_
|
|
|
115
118
|
tr: tr
|
|
116
119
|
});
|
|
117
120
|
}
|
|
118
|
-
return (0, _commands.openElementBrowser)(options)({
|
|
121
|
+
return ((0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_slash_command') ? (0, _commands.openElementBrowser)(options) : _commands.openElementBrowserModal)({
|
|
119
122
|
tr: tr
|
|
120
123
|
});
|
|
121
124
|
};
|
|
@@ -160,7 +163,11 @@ var quickInsertPlugin = exports.quickInsertPlugin = function quickInsertPlugin(_
|
|
|
160
163
|
return null;
|
|
161
164
|
}
|
|
162
165
|
if (options !== null && options !== void 0 && options.enableElementBrowser) {
|
|
163
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
166
|
+
return (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_slash_command') && api !== null && api !== void 0 && api.uiControlRegistry ? /*#__PURE__*/_react.default.createElement(_RegistryElementBrowser.RegistryElementBrowserContainer, {
|
|
167
|
+
editorView: editorView,
|
|
168
|
+
helpUrl: options === null || options === void 0 ? void 0 : options.elementBrowserHelpUrl,
|
|
169
|
+
pluginInjectionAPI: api
|
|
170
|
+
}) : /*#__PURE__*/_react.default.createElement(_ModalElementBrowser.default, {
|
|
164
171
|
editorView: editorView,
|
|
165
172
|
helpUrl: options === null || options === void 0 ? void 0 : options.elementBrowserHelpUrl,
|
|
166
173
|
pluginInjectionAPI: api
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/* RegistryElementBrowser.tsx generated by @compiled/babel-plugin v2.0.0 */
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.RegistryElementBrowser = void 0;
|
|
10
|
+
require("./RegistryElementBrowser.compiled.css");
|
|
11
|
+
var _runtime = require("@compiled/react/runtime");
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
14
|
+
var _reactIntl = require("react-intl");
|
|
15
|
+
var _heading = _interopRequireDefault(require("@atlaskit/heading/heading"));
|
|
16
|
+
var _keys = require("@atlaskit/editor-common/quick-insert/keys");
|
|
17
|
+
var _typeAheadGetMenuFooterSectionKey = require("@atlaskit/editor-common/type-ahead-get-menu-footer-section-key");
|
|
18
|
+
var _typeAheadGetSectionOverflowItemKey = require("@atlaskit/editor-common/type-ahead-get-section-overflow-item-key");
|
|
19
|
+
var _modalDialog = _interopRequireWildcard(require("@atlaskit/modal-dialog"));
|
|
20
|
+
var _model = require("./model");
|
|
21
|
+
var _RegistryElementBrowserCategories = require("./RegistryElementBrowserCategories");
|
|
22
|
+
var _RegistryElementBrowserFooter = require("./RegistryElementBrowserFooter");
|
|
23
|
+
var _RegistryElementBrowserSearchResults = require("./RegistryElementBrowserSearchResults");
|
|
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); }
|
|
25
|
+
var browserLayoutStyles = null;
|
|
26
|
+
var resultsId = 'registry-element-browser-results';
|
|
27
|
+
var RegistryElementBrowser = exports.RegistryElementBrowser = function RegistryElementBrowser(_ref) {
|
|
28
|
+
var components = _ref.components,
|
|
29
|
+
emptyStateHandler = _ref.emptyStateHandler,
|
|
30
|
+
defaultSection = _ref.defaultSection,
|
|
31
|
+
helpUrl = _ref.helpUrl,
|
|
32
|
+
editorView = _ref.editorView,
|
|
33
|
+
isOffline = _ref.isOffline,
|
|
34
|
+
isOpen = _ref.isOpen,
|
|
35
|
+
onClearSelection = _ref.onClearSelection,
|
|
36
|
+
onClose = _ref.onClose,
|
|
37
|
+
onCloseComplete = _ref.onCloseComplete,
|
|
38
|
+
onConfirmInsert = _ref.onConfirmInsert,
|
|
39
|
+
onSelect = _ref.onSelect;
|
|
40
|
+
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
41
|
+
formatMessage = _useIntl.formatMessage;
|
|
42
|
+
var model = (0, _react.useMemo)(function () {
|
|
43
|
+
return (0, _model.createRegistryElementBrowserModel)(components, {
|
|
44
|
+
footerKey: (0, _typeAheadGetMenuFooterSectionKey.getMenuFooterSectionKey)(_keys.MENU.key),
|
|
45
|
+
overflowKeys: new Set(components.filter(function (component) {
|
|
46
|
+
return component.type === 'menu-section';
|
|
47
|
+
}).map(function (component) {
|
|
48
|
+
return (0, _typeAheadGetSectionOverflowItemKey.getSectionOverflowItemKey)(component.key);
|
|
49
|
+
})),
|
|
50
|
+
recommendedSectionKey: _keys.RECOMMENDED_SECTION.key,
|
|
51
|
+
rootKey: _keys.MENU.key
|
|
52
|
+
});
|
|
53
|
+
}, [components]);
|
|
54
|
+
var _useState = (0, _react.useState)(''),
|
|
55
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
56
|
+
query = _useState2[0],
|
|
57
|
+
setQuery = _useState2[1];
|
|
58
|
+
var _useState3 = (0, _react.useState)(function () {
|
|
59
|
+
return (0, _model.getInitialRegistryElementBrowserSection)(model, defaultSection);
|
|
60
|
+
}),
|
|
61
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
62
|
+
section = _useState4[0],
|
|
63
|
+
setSection = _useState4[1];
|
|
64
|
+
var _useState5 = (0, _react.useState)(),
|
|
65
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
66
|
+
selectedKey = _useState6[0],
|
|
67
|
+
setSelectedKey = _useState6[1];
|
|
68
|
+
var wasOpen = (0, _react.useRef)(false);
|
|
69
|
+
var previousIsOffline = (0, _react.useRef)(isOffline);
|
|
70
|
+
(0, _react.useEffect)(function () {
|
|
71
|
+
if (isOpen && !wasOpen.current) {
|
|
72
|
+
setQuery('');
|
|
73
|
+
setSection((0, _model.getInitialRegistryElementBrowserSection)(model, defaultSection));
|
|
74
|
+
// This clears local visual state and the parent-held insertion handler together.
|
|
75
|
+
// eslint-disable-next-line @atlassian/perf-linting/no-chain-state-updates
|
|
76
|
+
setSelectedKey(undefined);
|
|
77
|
+
onClearSelection();
|
|
78
|
+
}
|
|
79
|
+
wasOpen.current = isOpen;
|
|
80
|
+
}, [defaultSection, isOpen, model, onClearSelection]);
|
|
81
|
+
var items = (0, _react.useMemo)(function () {
|
|
82
|
+
return (0, _model.getRegistryElementBrowserItems)({
|
|
83
|
+
formatMessage: formatMessage,
|
|
84
|
+
model: model,
|
|
85
|
+
query: query,
|
|
86
|
+
section: query ? undefined : section
|
|
87
|
+
});
|
|
88
|
+
}, [formatMessage, model, query, section]);
|
|
89
|
+
(0, _react.useEffect)(function () {
|
|
90
|
+
if (previousIsOffline.current !== isOffline) {
|
|
91
|
+
setSelectedKey(undefined);
|
|
92
|
+
onClearSelection();
|
|
93
|
+
}
|
|
94
|
+
previousIsOffline.current = isOffline;
|
|
95
|
+
}, [isOffline, onClearSelection]);
|
|
96
|
+
var onSearchChange = (0, _react.useCallback)(function (event) {
|
|
97
|
+
setQuery(event.currentTarget.value);
|
|
98
|
+
setSection(undefined);
|
|
99
|
+
setSelectedKey(undefined);
|
|
100
|
+
onClearSelection();
|
|
101
|
+
}, [onClearSelection]);
|
|
102
|
+
var onSectionClick = (0, _react.useCallback)(function (event) {
|
|
103
|
+
setQuery('');
|
|
104
|
+
setSection(event.currentTarget.dataset.section || undefined);
|
|
105
|
+
setSelectedKey(undefined);
|
|
106
|
+
onClearSelection();
|
|
107
|
+
}, [onClearSelection]);
|
|
108
|
+
var onRegistrySelect = (0, _react.useCallback)(function (key, handler) {
|
|
109
|
+
setSelectedKey(key);
|
|
110
|
+
onSelect(handler);
|
|
111
|
+
}, [onSelect]);
|
|
112
|
+
var onKeyDown = (0, _react.useCallback)(function (event) {
|
|
113
|
+
if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
|
|
114
|
+
var _resultCollection$que;
|
|
115
|
+
var resultCollection = event.currentTarget.ownerDocument.getElementById(resultsId);
|
|
116
|
+
var options = Array.from((_resultCollection$que = resultCollection === null || resultCollection === void 0 ? void 0 : resultCollection.querySelectorAll('[role="option"]:not([aria-disabled="true"]):not([disabled])')) !== null && _resultCollection$que !== void 0 ? _resultCollection$que : []);
|
|
117
|
+
var currentIndex = options.findIndex(function (option) {
|
|
118
|
+
return option === event.currentTarget.ownerDocument.activeElement;
|
|
119
|
+
});
|
|
120
|
+
var nextIndex = event.key === 'ArrowDown' ? currentIndex + 1 : currentIndex - 1;
|
|
121
|
+
var nextOption = options.at(nextIndex);
|
|
122
|
+
if (nextOption) {
|
|
123
|
+
event.preventDefault();
|
|
124
|
+
nextOption.focus();
|
|
125
|
+
}
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (event.key === 'Escape') {
|
|
129
|
+
event.preventDefault();
|
|
130
|
+
onClose();
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (event.key === 'Enter' && selectedKey) {
|
|
134
|
+
event.preventDefault();
|
|
135
|
+
onConfirmInsert();
|
|
136
|
+
}
|
|
137
|
+
}, [onClose, onConfirmInsert, selectedKey]);
|
|
138
|
+
return /*#__PURE__*/_react.default.createElement(_modalDialog.ModalTransition, null, isOpen && /*#__PURE__*/_react.default.createElement(_modalDialog.default, {
|
|
139
|
+
label: formatMessage({
|
|
140
|
+
defaultMessage: 'Insert elements',
|
|
141
|
+
id: 'editor.quick-insert.title'
|
|
142
|
+
}),
|
|
143
|
+
onClose: onClose,
|
|
144
|
+
onCloseComplete: onCloseComplete,
|
|
145
|
+
width: "x-large"
|
|
146
|
+
}, /*#__PURE__*/_react.default.createElement(_modalDialog.ModalHeader, null, /*#__PURE__*/_react.default.createElement(_heading.default, {
|
|
147
|
+
size: "medium"
|
|
148
|
+
}, formatMessage({
|
|
149
|
+
defaultMessage: 'Insert elements',
|
|
150
|
+
id: 'editor.quick-insert.title'
|
|
151
|
+
}))), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalBody, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
152
|
+
className: (0, _runtime.ax)(["_zulp1ejb _1e0c11p5 _yv0eo9bh"])
|
|
153
|
+
}, /*#__PURE__*/_react.default.createElement(_RegistryElementBrowserCategories.RegistryElementBrowserCategories, {
|
|
154
|
+
query: query,
|
|
155
|
+
section: section,
|
|
156
|
+
sections: model.sections,
|
|
157
|
+
onSectionClick: onSectionClick
|
|
158
|
+
}), /*#__PURE__*/_react.default.createElement(_RegistryElementBrowserSearchResults.RegistryElementBrowserSearchResults, {
|
|
159
|
+
editorView: editorView,
|
|
160
|
+
emptyStateHandler: emptyStateHandler,
|
|
161
|
+
isOffline: isOffline,
|
|
162
|
+
items: items,
|
|
163
|
+
query: query,
|
|
164
|
+
resultsId: resultsId,
|
|
165
|
+
section: section,
|
|
166
|
+
selectedKey: selectedKey,
|
|
167
|
+
onKeyDown: onKeyDown,
|
|
168
|
+
onSearchChange: onSearchChange,
|
|
169
|
+
onSelect: onRegistrySelect
|
|
170
|
+
}))), /*#__PURE__*/_react.default.createElement(_modalDialog.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_RegistryElementBrowserFooter.RegistryElementBrowserFooter, {
|
|
171
|
+
helpUrl: helpUrl,
|
|
172
|
+
isInsertEnabled: Boolean(selectedKey),
|
|
173
|
+
onClose: onClose,
|
|
174
|
+
onConfirmInsert: onConfirmInsert
|
|
175
|
+
}))));
|
|
176
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* RegistryElementBrowserCategories.tsx generated by @compiled/babel-plugin v2.0.0 */
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.RegistryElementBrowserCategories = void 0;
|
|
9
|
+
require("./RegistryElementBrowserCategories.compiled.css");
|
|
10
|
+
var _runtime = require("@compiled/react/runtime");
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
var _reactIntl = require("react-intl");
|
|
14
|
+
var _button = _interopRequireDefault(require("@atlaskit/button/default/button"));
|
|
15
|
+
var _keys = require("@atlaskit/editor-common/quick-insert/keys");
|
|
16
|
+
var _messages = require("@atlaskit/editor-common/quick-insert/messages");
|
|
17
|
+
var sectionMessages = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _keys.BLOCK_TEMPLATES_SECTION.key, _messages.messages.categoryBlockTemplates), _keys.DATA_AND_CHARTS_SECTION.key, _messages.messages.categoryDataAndCharts), _keys.EMBED_SECTION.key, _messages.messages.categoryEmbed), _keys.MEDIA_SECTION.key, _messages.messages.categoryMedia), _keys.OTHER_SECTION.key, _messages.messages.categoryOther), _keys.ROVO_SECTION.key, _messages.messages.categoryRovo), _keys.STRUCTURE_SECTION.key, _messages.messages.categoryStructure), _keys.TEXT_FORMATTING_SECTION.key, _messages.messages.categoryTextFormatting);
|
|
18
|
+
var categoryGridStyles = null;
|
|
19
|
+
var RegistryElementBrowserCategories = exports.RegistryElementBrowserCategories = function RegistryElementBrowserCategories(_ref) {
|
|
20
|
+
var query = _ref.query,
|
|
21
|
+
section = _ref.section,
|
|
22
|
+
sections = _ref.sections,
|
|
23
|
+
onSectionClick = _ref.onSectionClick;
|
|
24
|
+
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
25
|
+
formatMessage = _useIntl.formatMessage;
|
|
26
|
+
var isAllSelected = section === undefined && !query;
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
28
|
+
"aria-label": formatMessage({
|
|
29
|
+
defaultMessage: 'Element categories',
|
|
30
|
+
id: 'editor.quick-insert.categories-label'
|
|
31
|
+
}),
|
|
32
|
+
"data-testid": "registry-element-browser-categories",
|
|
33
|
+
className: (0, _runtime.ax)(["_zulpu2gc _1e0c11p5 _yv0e9sye"])
|
|
34
|
+
}, /*#__PURE__*/_react.default.createElement(_button.default, {
|
|
35
|
+
appearance: isAllSelected ? 'primary' : 'subtle',
|
|
36
|
+
"aria-pressed": isAllSelected,
|
|
37
|
+
"data-section": "",
|
|
38
|
+
onClick: onSectionClick
|
|
39
|
+
}, formatMessage({
|
|
40
|
+
defaultMessage: 'All',
|
|
41
|
+
id: 'editor.quick-insert.all'
|
|
42
|
+
})), sections.map(function (entry) {
|
|
43
|
+
var _sectionMessages2;
|
|
44
|
+
return /*#__PURE__*/_react.default.createElement(_button.default, {
|
|
45
|
+
appearance: section === entry.key && !query ? 'primary' : 'subtle',
|
|
46
|
+
"aria-pressed": section === entry.key && !query,
|
|
47
|
+
"data-section": entry.key,
|
|
48
|
+
key: entry.key,
|
|
49
|
+
onClick: onSectionClick
|
|
50
|
+
}, formatMessage((_sectionMessages2 = sectionMessages[entry.key]) !== null && _sectionMessages2 !== void 0 ? _sectionMessages2 : _messages.messages.categoryOther));
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.RegistryElementBrowserFooter = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactIntl = require("react-intl");
|
|
10
|
+
var _button = _interopRequireDefault(require("@atlaskit/button/default/button"));
|
|
11
|
+
var _link = _interopRequireDefault(require("@atlaskit/button/link"));
|
|
12
|
+
var RegistryElementBrowserFooter = exports.RegistryElementBrowserFooter = function RegistryElementBrowserFooter(_ref) {
|
|
13
|
+
var helpUrl = _ref.helpUrl,
|
|
14
|
+
isInsertEnabled = _ref.isInsertEnabled,
|
|
15
|
+
onClose = _ref.onClose,
|
|
16
|
+
onConfirmInsert = _ref.onConfirmInsert;
|
|
17
|
+
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
18
|
+
formatMessage = _useIntl.formatMessage;
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, helpUrl && /*#__PURE__*/_react.default.createElement(_link.default, {
|
|
20
|
+
appearance: "subtle",
|
|
21
|
+
href: helpUrl,
|
|
22
|
+
target: "_blank"
|
|
23
|
+
}, formatMessage({
|
|
24
|
+
defaultMessage: 'Help',
|
|
25
|
+
id: 'editor.quick-insert.help'
|
|
26
|
+
})), /*#__PURE__*/_react.default.createElement(_button.default, {
|
|
27
|
+
appearance: "subtle",
|
|
28
|
+
onClick: onClose
|
|
29
|
+
}, formatMessage({
|
|
30
|
+
defaultMessage: 'Close',
|
|
31
|
+
id: 'editor.quick-insert.close'
|
|
32
|
+
})), /*#__PURE__*/_react.default.createElement(_button.default, {
|
|
33
|
+
appearance: "primary",
|
|
34
|
+
isDisabled: !isInsertEnabled,
|
|
35
|
+
onClick: onConfirmInsert
|
|
36
|
+
}, formatMessage({
|
|
37
|
+
defaultMessage: 'Insert',
|
|
38
|
+
id: 'editor.quick-insert.insert'
|
|
39
|
+
})));
|
|
40
|
+
};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/* RegistryElementBrowserSearchResults.tsx generated by @compiled/babel-plugin v2.0.0 */
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.RegistryElementBrowserSearchResults = void 0;
|
|
10
|
+
require("./RegistryElementBrowserSearchResults.compiled.css");
|
|
11
|
+
var _runtime = require("@compiled/react/runtime");
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _reactIntl = require("react-intl");
|
|
14
|
+
var _link = _interopRequireDefault(require("@atlaskit/button/link"));
|
|
15
|
+
var _provider = require("@atlaskit/editor-common/quick-insert/provider");
|
|
16
|
+
var _compiled = require("@atlaskit/primitives/compiled");
|
|
17
|
+
var _textfield = _interopRequireDefault(require("@atlaskit/textfield"));
|
|
18
|
+
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); }
|
|
19
|
+
var resultsGridStyles = null;
|
|
20
|
+
var RegistryElementBrowserItem = function RegistryElementBrowserItem(_ref) {
|
|
21
|
+
var editorView = _ref.editorView,
|
|
22
|
+
isOffline = _ref.isOffline,
|
|
23
|
+
isSelected = _ref.isSelected,
|
|
24
|
+
item = _ref.item,
|
|
25
|
+
onSelect = _ref.onSelect;
|
|
26
|
+
var _item$registration = item.registration,
|
|
27
|
+
Component = _item$registration.component,
|
|
28
|
+
key = _item$registration.key;
|
|
29
|
+
var contextValue = (0, _react.useMemo)(function () {
|
|
30
|
+
return {
|
|
31
|
+
editorView: editorView,
|
|
32
|
+
isOffline: isOffline,
|
|
33
|
+
item: {
|
|
34
|
+
id: key,
|
|
35
|
+
isSelected: isSelected
|
|
36
|
+
},
|
|
37
|
+
select: function select(handler) {
|
|
38
|
+
return onSelect(key, handler);
|
|
39
|
+
},
|
|
40
|
+
surface: 'element-browser'
|
|
41
|
+
};
|
|
42
|
+
}, [editorView, isOffline, isSelected, key, onSelect]);
|
|
43
|
+
if (!Component) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement(_provider.QuickInsertProvider, {
|
|
47
|
+
value: contextValue
|
|
48
|
+
}, /*#__PURE__*/_react.default.createElement(Component, undefined, null));
|
|
49
|
+
};
|
|
50
|
+
var RegistryElementBrowserSearchResults = exports.RegistryElementBrowserSearchResults = function RegistryElementBrowserSearchResults(_ref2) {
|
|
51
|
+
var _emptyStateHandler;
|
|
52
|
+
var editorView = _ref2.editorView,
|
|
53
|
+
emptyStateHandler = _ref2.emptyStateHandler,
|
|
54
|
+
isOffline = _ref2.isOffline,
|
|
55
|
+
items = _ref2.items,
|
|
56
|
+
query = _ref2.query,
|
|
57
|
+
resultsId = _ref2.resultsId,
|
|
58
|
+
section = _ref2.section,
|
|
59
|
+
selectedKey = _ref2.selectedKey,
|
|
60
|
+
onKeyDown = _ref2.onKeyDown,
|
|
61
|
+
onSearchChange = _ref2.onSearchChange,
|
|
62
|
+
onSelect = _ref2.onSelect;
|
|
63
|
+
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
64
|
+
formatMessage = _useIntl.formatMessage;
|
|
65
|
+
return /*#__PURE__*/_react.default.createElement(_compiled.Stack, {
|
|
66
|
+
space: "space.200"
|
|
67
|
+
}, /*#__PURE__*/_react.default.createElement(_textfield.default, {
|
|
68
|
+
autoFocus: true,
|
|
69
|
+
"aria-controls": resultsId,
|
|
70
|
+
"aria-label": formatMessage({
|
|
71
|
+
defaultMessage: 'Search elements',
|
|
72
|
+
id: 'editor.quick-insert.search'
|
|
73
|
+
}),
|
|
74
|
+
name: "registry-element-browser-search",
|
|
75
|
+
onChange: onSearchChange,
|
|
76
|
+
onKeyDown: onKeyDown,
|
|
77
|
+
value: query
|
|
78
|
+
}), /*#__PURE__*/_react.default.createElement(_compiled.Text, {
|
|
79
|
+
"aria-live": "polite"
|
|
80
|
+
}, formatMessage({
|
|
81
|
+
defaultMessage: '{count} results',
|
|
82
|
+
id: 'editor.quick-insert.results'
|
|
83
|
+
}, {
|
|
84
|
+
count: items.length
|
|
85
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
86
|
+
"aria-label": formatMessage({
|
|
87
|
+
defaultMessage: 'Element results',
|
|
88
|
+
id: 'editor.quick-insert.results-label'
|
|
89
|
+
}),
|
|
90
|
+
"data-testid": "registry-element-browser-results",
|
|
91
|
+
id: resultsId,
|
|
92
|
+
onKeyDown: onKeyDown,
|
|
93
|
+
tabIndex: -1,
|
|
94
|
+
role: items.length ? 'listbox' : undefined,
|
|
95
|
+
className: (0, _runtime.ax)(["_zulpu2gc _1e0c11p5 _yv0e13mt"])
|
|
96
|
+
}, items.length ? items.map(function (item) {
|
|
97
|
+
return /*#__PURE__*/_react.default.createElement(RegistryElementBrowserItem, {
|
|
98
|
+
editorView: editorView,
|
|
99
|
+
isOffline: isOffline,
|
|
100
|
+
isSelected: selectedKey === item.registration.key,
|
|
101
|
+
item: item,
|
|
102
|
+
key: item.registration.key,
|
|
103
|
+
onSelect: onSelect
|
|
104
|
+
});
|
|
105
|
+
}) : (_emptyStateHandler = emptyStateHandler === null || emptyStateHandler === void 0 ? void 0 : emptyStateHandler({
|
|
106
|
+
mode: 'full',
|
|
107
|
+
searchTerm: query,
|
|
108
|
+
selectedCategory: section
|
|
109
|
+
})) !== null && _emptyStateHandler !== void 0 ? _emptyStateHandler : /*#__PURE__*/_react.default.createElement(_compiled.Stack, {
|
|
110
|
+
alignInline: "center",
|
|
111
|
+
space: "space.100"
|
|
112
|
+
}, /*#__PURE__*/_react.default.createElement(_compiled.Text, null, formatMessage({
|
|
113
|
+
defaultMessage: 'Nothing matches your search',
|
|
114
|
+
id: 'editor.quick-insert.empty'
|
|
115
|
+
})), /*#__PURE__*/_react.default.createElement(_link.default, {
|
|
116
|
+
appearance: "primary",
|
|
117
|
+
href: "https://marketplace.atlassian.com/search?category=Macros&hosting=cloud&product=confluence",
|
|
118
|
+
target: "_blank"
|
|
119
|
+
}, formatMessage({
|
|
120
|
+
defaultMessage: 'Explore Atlassian Marketplace',
|
|
121
|
+
id: 'editor.quick-insert.explore-marketplace'
|
|
122
|
+
})))));
|
|
123
|
+
};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.RegistryElementBrowserContainer = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
12
|
+
var _isOfflineMode = require("@atlaskit/editor-common/connectivity/isOfflineMode");
|
|
13
|
+
var _insert = require("@atlaskit/editor-common/insert");
|
|
14
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
15
|
+
var _keys = require("@atlaskit/editor-common/quick-insert/keys");
|
|
16
|
+
var _commands = require("../../pm-plugins/commands");
|
|
17
|
+
var _pluginKey = require("../../pm-plugins/plugin-key");
|
|
18
|
+
var _RegistryElementBrowser = require("./RegistryElementBrowser");
|
|
19
|
+
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); }
|
|
20
|
+
var RegistryElementBrowserContainer = exports.RegistryElementBrowserContainer = function RegistryElementBrowserContainer(_ref) {
|
|
21
|
+
var _pluginKey$getState;
|
|
22
|
+
var editorView = _ref.editorView,
|
|
23
|
+
pluginInjectionAPI = _ref.pluginInjectionAPI,
|
|
24
|
+
helpUrl = _ref.helpUrl;
|
|
25
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(pluginInjectionAPI, ['quickInsert', 'connectivity'], function (state) {
|
|
26
|
+
var _state$quickInsertSta, _state$quickInsertSta2, _state$quickInsertSta3, _state$connectivitySt;
|
|
27
|
+
return {
|
|
28
|
+
isElementBrowserOpen: (_state$quickInsertSta = (_state$quickInsertSta2 = state.quickInsertState) === null || _state$quickInsertSta2 === void 0 ? void 0 : _state$quickInsertSta2.isElementBrowserOpen) !== null && _state$quickInsertSta !== void 0 ? _state$quickInsertSta : false,
|
|
29
|
+
emptyStateHandler: (_state$quickInsertSta3 = state.quickInsertState) === null || _state$quickInsertSta3 === void 0 ? void 0 : _state$quickInsertSta3.emptyStateHandler,
|
|
30
|
+
mode: (_state$connectivitySt = state.connectivityState) === null || _state$connectivitySt === void 0 ? void 0 : _state$connectivitySt.mode
|
|
31
|
+
};
|
|
32
|
+
}),
|
|
33
|
+
currentEmptyStateHandler = _useSharedPluginState.emptyStateHandler,
|
|
34
|
+
isElementBrowserOpen = _useSharedPluginState.isElementBrowserOpen,
|
|
35
|
+
mode = _useSharedPluginState.mode;
|
|
36
|
+
var _useState = (0, _react.useState)([]),
|
|
37
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
38
|
+
snapshot = _useState2[0],
|
|
39
|
+
setSnapshot = _useState2[1];
|
|
40
|
+
var _useState3 = (0, _react.useState)(),
|
|
41
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
42
|
+
emptyStateHandler = _useState4[0],
|
|
43
|
+
setEmptyStateHandler = _useState4[1];
|
|
44
|
+
var wasOpen = (0, _react.useRef)(false);
|
|
45
|
+
var selectionHandler = (0, _react.useRef)(undefined);
|
|
46
|
+
var isInsertConfirmed = (0, _react.useRef)(false);
|
|
47
|
+
var lifecycleOpen = (0, _react.useRef)(false);
|
|
48
|
+
var fireLifecycleEvent = (0, _react.useCallback)(function (action) {
|
|
49
|
+
var _pluginInjectionAPI$a;
|
|
50
|
+
pluginInjectionAPI === null || pluginInjectionAPI === void 0 || (_pluginInjectionAPI$a = pluginInjectionAPI.analytics) === null || _pluginInjectionAPI$a === void 0 || _pluginInjectionAPI$a.actions.fireAnalyticsEvent({
|
|
51
|
+
action: action,
|
|
52
|
+
actionSubject: _analytics.ACTION_SUBJECT.ELEMENT_BROWSER,
|
|
53
|
+
attributes: {
|
|
54
|
+
mode: 'full'
|
|
55
|
+
},
|
|
56
|
+
eventType: _analytics.EVENT_TYPE.UI
|
|
57
|
+
});
|
|
58
|
+
}, [pluginInjectionAPI]);
|
|
59
|
+
(0, _react.useEffect)(function () {
|
|
60
|
+
if (isElementBrowserOpen && !wasOpen.current) {
|
|
61
|
+
var _pluginInjectionAPI$u, _pluginInjectionAPI$u2;
|
|
62
|
+
setSnapshot((_pluginInjectionAPI$u = pluginInjectionAPI === null || pluginInjectionAPI === void 0 || (_pluginInjectionAPI$u2 = pluginInjectionAPI.uiControlRegistry) === null || _pluginInjectionAPI$u2 === void 0 ? void 0 : _pluginInjectionAPI$u2.actions.getComponents(_keys.MENU.key)) !== null && _pluginInjectionAPI$u !== void 0 ? _pluginInjectionAPI$u : []);
|
|
63
|
+
selectionHandler.current = undefined;
|
|
64
|
+
setEmptyStateHandler(function () {
|
|
65
|
+
return currentEmptyStateHandler;
|
|
66
|
+
});
|
|
67
|
+
isInsertConfirmed.current = false;
|
|
68
|
+
lifecycleOpen.current = true;
|
|
69
|
+
fireLifecycleEvent(_analytics.ACTION.OPENED);
|
|
70
|
+
} else if (!isElementBrowserOpen && wasOpen.current && lifecycleOpen.current) {
|
|
71
|
+
lifecycleOpen.current = false;
|
|
72
|
+
fireLifecycleEvent(_analytics.ACTION.CLOSED);
|
|
73
|
+
}
|
|
74
|
+
wasOpen.current = isElementBrowserOpen;
|
|
75
|
+
}, [currentEmptyStateHandler, fireLifecycleEvent, isElementBrowserOpen, pluginInjectionAPI]);
|
|
76
|
+
(0, _react.useEffect)(function () {
|
|
77
|
+
return function () {
|
|
78
|
+
if (lifecycleOpen.current) {
|
|
79
|
+
lifecycleOpen.current = false;
|
|
80
|
+
fireLifecycleEvent(_analytics.ACTION.CLOSED);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
}, [fireLifecycleEvent]);
|
|
84
|
+
var focusInEditor = (0, _react.useCallback)(function () {
|
|
85
|
+
if (!editorView.hasFocus()) {
|
|
86
|
+
editorView.focus();
|
|
87
|
+
}
|
|
88
|
+
}, [editorView]);
|
|
89
|
+
var onClose = (0, _react.useCallback)(function () {
|
|
90
|
+
if (!isInsertConfirmed.current) {
|
|
91
|
+
selectionHandler.current = undefined;
|
|
92
|
+
}
|
|
93
|
+
(0, _commands.closeElementBrowser)()(editorView.state, editorView.dispatch);
|
|
94
|
+
focusInEditor();
|
|
95
|
+
}, [editorView, focusInEditor]);
|
|
96
|
+
var onCloseComplete = (0, _react.useCallback)(function () {
|
|
97
|
+
var handler = isInsertConfirmed.current ? selectionHandler.current : undefined;
|
|
98
|
+
selectionHandler.current = undefined;
|
|
99
|
+
isInsertConfirmed.current = false;
|
|
100
|
+
focusInEditor();
|
|
101
|
+
if (!handler) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
var insert = function insert(maybeNode) {
|
|
105
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
106
|
+
return (0, _insert.insertSelectedItem)(maybeNode, options)(editorView.state, editorView.state.tr, editorView.state.selection.head);
|
|
107
|
+
};
|
|
108
|
+
var transaction = handler({
|
|
109
|
+
insert: insert,
|
|
110
|
+
source: _analytics.INPUT_METHOD.ELEMENT_BROWSER
|
|
111
|
+
});
|
|
112
|
+
if (transaction) {
|
|
113
|
+
editorView.dispatch(transaction);
|
|
114
|
+
}
|
|
115
|
+
}, [editorView, focusInEditor]);
|
|
116
|
+
var onSelect = (0, _react.useCallback)(function (handler) {
|
|
117
|
+
selectionHandler.current = handler;
|
|
118
|
+
}, []);
|
|
119
|
+
var onClearSelection = (0, _react.useCallback)(function () {
|
|
120
|
+
selectionHandler.current = undefined;
|
|
121
|
+
isInsertConfirmed.current = false;
|
|
122
|
+
}, []);
|
|
123
|
+
var onConfirmInsert = (0, _react.useCallback)(function () {
|
|
124
|
+
if (!selectionHandler.current) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
isInsertConfirmed.current = true;
|
|
128
|
+
onClose();
|
|
129
|
+
}, [onClose]);
|
|
130
|
+
return /*#__PURE__*/_react.default.createElement(_RegistryElementBrowser.RegistryElementBrowser, {
|
|
131
|
+
components: snapshot,
|
|
132
|
+
emptyStateHandler: emptyStateHandler,
|
|
133
|
+
helpUrl: helpUrl,
|
|
134
|
+
defaultSection: (_pluginKey$getState = _pluginKey.pluginKey.getState(editorView.state)) === null || _pluginKey$getState === void 0 ? void 0 : _pluginKey$getState.elementBrowserInitialCategory,
|
|
135
|
+
editorView: editorView,
|
|
136
|
+
isOffline: (0, _isOfflineMode.isOfflineMode)(mode),
|
|
137
|
+
isOpen: isElementBrowserOpen,
|
|
138
|
+
onClearSelection: onClearSelection,
|
|
139
|
+
onClose: onClose,
|
|
140
|
+
onCloseComplete: onCloseComplete,
|
|
141
|
+
onConfirmInsert: onConfirmInsert,
|
|
142
|
+
onSelect: onSelect
|
|
143
|
+
});
|
|
144
|
+
};
|