@atlaskit/link-datasource 7.12.2 → 7.13.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.
Files changed (69) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/dist/cjs/ui/assets-modal/search-container/loading-state.js +12 -1
  3. package/dist/cjs/ui/common/modal/basic-search-input/index.js +8 -3
  4. package/dist/cjs/ui/common/modal/mode-switcher/ModeSwitcher.compiled.css +1 -0
  5. package/dist/cjs/ui/common/modal/mode-switcher/ModeSwitcher.js +3 -1
  6. package/dist/cjs/ui/common/modal/popup-select/index.js +34 -5
  7. package/dist/cjs/ui/common/modal/popup-select/useInlinePopupLayout.js +123 -0
  8. package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +9 -3
  9. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +4 -1
  10. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/index.js +5 -1
  11. package/dist/cjs/ui/jira-issues-modal/jira-search-container/JiraSearchContainerWithWrappers.js +19 -0
  12. package/dist/cjs/ui/jira-issues-modal/jira-search-container/buildJQL.js +12 -2
  13. package/dist/cjs/ui/jira-issues-modal/jira-search-container/embedded.compiled.css +11 -0
  14. package/dist/cjs/ui/jira-issues-modal/jira-search-container/embedded.js +321 -0
  15. package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +12 -0
  16. package/dist/cjs/ui/jira-issues-modal/jql-editor/index.js +9 -1
  17. package/dist/cjs/ui/jira-search-state/index.compiled.css +12 -0
  18. package/dist/cjs/ui/jira-search-state/index.js +90 -0
  19. package/dist/es2019/ui/assets-modal/search-container/loading-state.js +12 -1
  20. package/dist/es2019/ui/common/modal/basic-search-input/index.js +5 -2
  21. package/dist/es2019/ui/common/modal/mode-switcher/ModeSwitcher.compiled.css +1 -0
  22. package/dist/es2019/ui/common/modal/mode-switcher/ModeSwitcher.js +3 -1
  23. package/dist/es2019/ui/common/modal/popup-select/index.js +34 -4
  24. package/dist/es2019/ui/common/modal/popup-select/useInlinePopupLayout.js +103 -0
  25. package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +8 -3
  26. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +3 -1
  27. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/index.js +4 -1
  28. package/dist/es2019/ui/jira-issues-modal/jira-search-container/JiraSearchContainerWithWrappers.js +11 -0
  29. package/dist/es2019/ui/jira-issues-modal/jira-search-container/buildJQL.js +10 -2
  30. package/dist/es2019/ui/jira-issues-modal/jira-search-container/embedded.compiled.css +11 -0
  31. package/dist/es2019/ui/jira-issues-modal/jira-search-container/embedded.js +283 -0
  32. package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +12 -0
  33. package/dist/es2019/ui/jira-issues-modal/jql-editor/index.js +7 -1
  34. package/dist/es2019/ui/jira-search-state/index.compiled.css +12 -0
  35. package/dist/es2019/ui/jira-search-state/index.js +82 -0
  36. package/dist/esm/ui/assets-modal/search-container/loading-state.js +12 -1
  37. package/dist/esm/ui/common/modal/basic-search-input/index.js +8 -3
  38. package/dist/esm/ui/common/modal/mode-switcher/ModeSwitcher.compiled.css +1 -0
  39. package/dist/esm/ui/common/modal/mode-switcher/ModeSwitcher.js +3 -1
  40. package/dist/esm/ui/common/modal/popup-select/index.js +35 -5
  41. package/dist/esm/ui/common/modal/popup-select/useInlinePopupLayout.js +116 -0
  42. package/dist/esm/ui/datasource-table-view/datasourceTableView.js +9 -3
  43. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +4 -1
  44. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/index.js +5 -1
  45. package/dist/esm/ui/jira-issues-modal/jira-search-container/JiraSearchContainerWithWrappers.js +13 -0
  46. package/dist/esm/ui/jira-issues-modal/jira-search-container/buildJQL.js +12 -2
  47. package/dist/esm/ui/jira-issues-modal/jira-search-container/embedded.compiled.css +11 -0
  48. package/dist/esm/ui/jira-issues-modal/jira-search-container/embedded.js +312 -0
  49. package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +12 -0
  50. package/dist/esm/ui/jira-issues-modal/jql-editor/index.js +9 -1
  51. package/dist/esm/ui/jira-search-state/index.compiled.css +12 -0
  52. package/dist/esm/ui/jira-search-state/index.js +83 -0
  53. package/dist/types/ui/common/modal/basic-search-input/index.d.ts +5 -1
  54. package/dist/types/ui/common/modal/mode-switcher/ModeSwitcher.d.ts +1 -0
  55. package/dist/types/ui/common/modal/popup-select/index.d.ts +2 -1
  56. package/dist/types/ui/common/modal/popup-select/useInlinePopupLayout.d.ts +9 -0
  57. package/dist/types/ui/datasource-table-view/datasourceTableView.d.ts +5 -1
  58. package/dist/types/ui/datasource-table-view/types.d.ts +5 -0
  59. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +2 -1
  60. package/dist/types/ui/jira-issues-modal/basic-filters/ui/index.d.ts +2 -1
  61. package/dist/types/ui/jira-issues-modal/jira-search-container/JiraSearchContainerWithWrappers.d.ts +4 -0
  62. package/dist/types/ui/jira-issues-modal/jira-search-container/buildJQL.d.ts +1 -0
  63. package/dist/types/ui/jira-issues-modal/jira-search-container/embedded.d.ts +9 -0
  64. package/dist/types/ui/jira-issues-modal/jira-search-container/index.d.ts +11 -0
  65. package/dist/types/ui/jira-issues-modal/jql-editor/index.d.ts +4 -1
  66. package/dist/types/ui/jira-search-state/index.d.ts +9 -0
  67. package/jira-search-container/package.json +10 -0
  68. package/jira-search-state/package.json +10 -0
  69. package/package.json +4 -4
@@ -0,0 +1,321 @@
1
+ /* embedded.tsx generated by @compiled/babel-plugin v3.0.2 */
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.EmbeddedJiraSearchContainer = void 0;
10
+ require("./embedded.compiled.css");
11
+ var _runtime = require("@compiled/react/runtime");
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _reactIntl = require("react-intl");
17
+ var _useDebounce = require("use-debounce");
18
+ var _box = require("@atlaskit/primitives/compiled/box");
19
+ var _flex = require("@atlaskit/primitives/compiled/flex");
20
+ var _text = require("@atlaskit/primitives/compiled/text");
21
+ var _analytics = require("../../../analytics");
22
+ var _basicSearchInput = require("../../common/modal/basic-search-input");
23
+ var _messages = require("../../common/modal/basic-search-input/messages");
24
+ var _ModeSwitcher = require("../../common/modal/mode-switcher/ModeSwitcher");
25
+ var _constants = require("../../common/modal/popup-select/constants");
26
+ var _useHydrateJqlQuery2 = require("../basic-filters/hooks/useHydrateJqlQuery");
27
+ var _index = _interopRequireDefault(require("../basic-filters/ui/index"));
28
+ var _isQueryTooComplex = require("../basic-filters/utils/isQueryTooComplex");
29
+ var _jqlEditor = require("../jql-editor");
30
+ var _buildJQL = require("./buildJQL");
31
+ var _messages2 = require("./messages");
32
+ var _excluded = ["basicInputTextValue"];
33
+ 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); }
34
+ 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; }
35
+ 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; }
36
+ var styles = {
37
+ inlineSearch: "_16jlkb7n _i0dlghg7 _1ul9idpf",
38
+ inlineSwitcher: "_1o9zidpf",
39
+ basicSearchInputBoxStyles: "_1bsb1osq",
40
+ basicSearchInputContainerStyles: "_16jlkb7n _1n261g80 _1p57u2gc",
41
+ inputContainerStyles: "_4cvr1y6m _1e0c1txw _1tket9kd",
42
+ modeSwitcherContainerStyles: "_19pk1b66"
43
+ };
44
+ var EmbeddedJiraSearchContainer = exports.EmbeddedJiraSearchContainer = function EmbeddedJiraSearchContainer(props) {
45
+ var DEFAULT_JQL_QUERY = props.defaultJql,
46
+ ALLOWED_ORDER_BY_KEYS = props.allowedOrderByKeys,
47
+ isSearching = props.isSearching,
48
+ parameters = props.parameters,
49
+ onSearch = props.onSearch,
50
+ onSearchMethodChangeCallback = props.onSearchMethodChange,
51
+ initialSearchMethod = props.initialSearchMethod,
52
+ setSearchBarJql = props.setSearchBarJql,
53
+ _props$searchBarJql = props.searchBarJql,
54
+ searchBarJql = _props$searchBarJql === void 0 ? DEFAULT_JQL_QUERY : _props$searchBarJql,
55
+ site = props.site,
56
+ setHasJqlSyntaxErrors = props.setHasJqlSyntaxErrors,
57
+ _props$layout = props.layout,
58
+ layout = _props$layout === void 0 ? 'modal' : _props$layout,
59
+ _props$initialBasicSe = props.initialBasicSearchTerm,
60
+ initialBasicSearchTerm = _props$initialBasicSe === void 0 ? '' : _props$initialBasicSe,
61
+ _props$allowBasicMode = props.allowBasicModeReset,
62
+ allowBasicModeReset = _props$allowBasicMode === void 0 ? false : _props$allowBasicMode,
63
+ _props$showBasicSearc = props.showBasicSearchButton,
64
+ showBasicSearchButton = _props$showBasicSearc === void 0 ? true : _props$showBasicSearc,
65
+ textSearchField = props.textSearchField;
66
+ var _ref = parameters || {},
67
+ currentCloudId = _ref.cloudId;
68
+ var _useIntl = (0, _reactIntl.useIntl)(),
69
+ formatMessage = _useIntl.formatMessage;
70
+ var _useDatasourceAnalyti = (0, _analytics.useDatasourceAnalyticsEvents)(),
71
+ fireEvent = _useDatasourceAnalyti.fireEvent;
72
+ var _useState = (0, _react.useState)(initialBasicSearchTerm),
73
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
74
+ basicSearchTerm = _useState2[0],
75
+ setBasicSearchTerm = _useState2[1];
76
+ var _useState3 = (0, _react.useState)(initialSearchMethod),
77
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
78
+ currentSearchMethod = _useState4[0],
79
+ setCurrentSearchMethod = _useState4[1];
80
+ var _useState5 = (0, _react.useState)(currentCloudId),
81
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
82
+ cloudId = _useState6[0],
83
+ setCloudId = _useState6[1];
84
+ var _useState7 = (0, _react.useState)(false),
85
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
86
+ isComplexQuery = _useState8[0],
87
+ setIsComplexQuery = _useState8[1];
88
+ var _useState9 = (0, _react.useState)(),
89
+ _useState0 = (0, _slicedToArray2.default)(_useState9, 2),
90
+ orderKey = _useState0[0],
91
+ setOrderKey = _useState0[1];
92
+ var _useState1 = (0, _react.useState)(),
93
+ _useState10 = (0, _slicedToArray2.default)(_useState1, 2),
94
+ orderDirection = _useState10[0],
95
+ setOrderDirection = _useState10[1];
96
+ var _useState11 = (0, _react.useState)({}),
97
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
98
+ filterSelections = _useState12[0],
99
+ setFilterSelections = _useState12[1];
100
+ var basicDraft = (0, _react.useRef)({
101
+ jql: initialSearchMethod === 'basic' ? searchBarJql : (0, _buildJQL.buildJQL)({
102
+ rawSearch: initialBasicSearchTerm,
103
+ textSearchField: textSearchField
104
+ }),
105
+ term: initialBasicSearchTerm,
106
+ selections: {}
107
+ });
108
+ var advancedDraft = (0, _react.useRef)();
109
+ var modeSwitcherOptionsMap = (0, _react.useMemo)(function () {
110
+ return {
111
+ jql: {
112
+ label: 'JQL',
113
+ value: 'jql'
114
+ },
115
+ basic: {
116
+ label: formatMessage(_messages2.modeSwitcherMessages.basicTextSearchLabel),
117
+ value: 'basic',
118
+ disabled: isComplexQuery && !allowBasicModeReset,
119
+ tooltipText: isComplexQuery && !allowBasicModeReset ? formatMessage(_messages2.modeSwitcherMessages.basicModeSwitchDisabledTooltipText) : ''
120
+ }
121
+ };
122
+ }, [formatMessage, isComplexQuery, allowBasicModeReset]);
123
+ var modeSwitcherOptions = (0, _react.useMemo)(function () {
124
+ return [modeSwitcherOptionsMap.basic, modeSwitcherOptionsMap.jql];
125
+ }, [modeSwitcherOptionsMap]);
126
+ var _useHydrateJqlQuery = (0, _useHydrateJqlQuery2.useHydrateJqlQuery)(cloudId || '', searchBarJql),
127
+ hydratedOptions = _useHydrateJqlQuery.hydratedOptions,
128
+ fetchHydratedJqlOptions = _useHydrateJqlQuery.fetchHydratedJqlOptions,
129
+ basicFilterHydrationStatus = _useHydrateJqlQuery.status;
130
+ var onSearchMethodChange = (0, _react.useCallback)(function (searchMethod) {
131
+ if (allowBasicModeReset) {
132
+ if (searchMethod === 'jql') {
133
+ var _advancedDraft$curren;
134
+ basicDraft.current = {
135
+ jql: searchBarJql,
136
+ term: basicSearchTerm,
137
+ selections: filterSelections
138
+ };
139
+ setSearchBarJql((_advancedDraft$curren = advancedDraft.current) !== null && _advancedDraft$curren !== void 0 ? _advancedDraft$curren : searchBarJql);
140
+ } else if ((0, _isQueryTooComplex.isQueryTooComplex)(searchBarJql)) {
141
+ advancedDraft.current = searchBarJql;
142
+ setSearchBarJql(basicDraft.current.jql);
143
+ setBasicSearchTerm(basicDraft.current.term);
144
+ setFilterSelections(basicDraft.current.selections);
145
+ }
146
+ }
147
+ onSearchMethodChangeCallback(searchMethod);
148
+ setCurrentSearchMethod(searchMethod);
149
+ }, [onSearchMethodChangeCallback, allowBasicModeReset, searchBarJql, basicSearchTerm, filterSelections, setSearchBarJql]);
150
+ var handleBasicSearchChange = (0, _react.useCallback)(function (e) {
151
+ var rawSearch = e.currentTarget.value;
152
+ setBasicSearchTerm(rawSearch);
153
+ setSearchBarJql((0, _buildJQL.buildJQL)({
154
+ rawSearch: rawSearch,
155
+ textSearchField: textSearchField,
156
+ filterValues: filterSelections,
157
+ orderDirection: orderDirection,
158
+ orderKey: orderKey
159
+ }));
160
+ }, [setSearchBarJql, filterSelections, orderDirection, orderKey, textSearchField]);
161
+ var onQueryChange = (0, _react.useCallback)(function (query, jast) {
162
+ var _query$split$map$filt, _fragments$at, _fragments$at2, _fragments$at3;
163
+ setHasJqlSyntaxErrors === null || setHasJqlSyntaxErrors === void 0 || setHasJqlSyntaxErrors(jast.errors.length > 0);
164
+ // determine if order keys have been set so they can be saved and persisted when changes occur in basic search
165
+ var fragments = (_query$split$map$filt = query === null || query === void 0 ? void 0 : query.split(/(^| )(order by)( |$)/i).map(function (item) {
166
+ return item.trim();
167
+ }).filter(Boolean)) !== null && _query$split$map$filt !== void 0 ? _query$split$map$filt : [];
168
+ var hasOrder = ((_fragments$at = fragments.at(-2)) === null || _fragments$at === void 0 ? void 0 : _fragments$at.toLowerCase()) === 'order by';
169
+ var key = hasOrder ? (_fragments$at2 = fragments.at(-1)) === null || _fragments$at2 === void 0 ? void 0 : _fragments$at2.split(' ').at(-2) : undefined;
170
+ var order = hasOrder ? (_fragments$at3 = fragments.at(-1)) === null || _fragments$at3 === void 0 ? void 0 : _fragments$at3.split(' ').at(-1) : undefined;
171
+
172
+ // TODO: confirm if these are the only order keys we want to preserve - existing whiteboard logic
173
+ if (key && ALLOWED_ORDER_BY_KEYS.includes(key)) {
174
+ setOrderKey(key);
175
+ setOrderDirection(order);
176
+ }
177
+ setSearchBarJql(query);
178
+ }, [setSearchBarJql, setHasJqlSyntaxErrors]);
179
+ var handleSearch = (0, _react.useCallback)(function () {
180
+ var isCurrentQueryComplex = (0, _isQueryTooComplex.isQueryTooComplex)(searchBarJql);
181
+ if (currentSearchMethod === 'basic') {
182
+ advancedDraft.current = undefined;
183
+ }
184
+ onSearch({
185
+ jql: searchBarJql
186
+ }, {
187
+ searchMethod: currentSearchMethod,
188
+ basicFilterSelections: filterSelections,
189
+ isQueryComplex: isCurrentQueryComplex
190
+ });
191
+ if (currentSearchMethod === 'jql') {
192
+ fireEvent('ui.jqlEditor.searched', {
193
+ isQueryComplex: isCurrentQueryComplex
194
+ });
195
+ setIsComplexQuery(isCurrentQueryComplex);
196
+ if (!isCurrentQueryComplex) {
197
+ fetchHydratedJqlOptions();
198
+ }
199
+ }
200
+ }, [currentSearchMethod, fetchHydratedJqlOptions, filterSelections, fireEvent, searchBarJql, onSearch]);
201
+ var _useDebouncedCallback = (0, _useDebounce.useDebouncedCallback)(function (filterValues) {
202
+ var jqlWithFilterValues = (0, _buildJQL.buildJQL)({
203
+ rawSearch: basicSearchTerm,
204
+ textSearchField: textSearchField,
205
+ filterValues: filterValues,
206
+ orderDirection: orderDirection,
207
+ orderKey: orderKey
208
+ });
209
+ advancedDraft.current = undefined;
210
+ setSearchBarJql(jqlWithFilterValues);
211
+ var isCurrentQueryComplex = (0, _isQueryTooComplex.isQueryTooComplex)(jqlWithFilterValues);
212
+ onSearch({
213
+ jql: jqlWithFilterValues
214
+ }, {
215
+ searchMethod: currentSearchMethod,
216
+ basicFilterSelections: filterValues,
217
+ isQueryComplex: isCurrentQueryComplex
218
+ });
219
+ }, _constants.FILTER_SELECTION_DEBOUNCE_MS),
220
+ _useDebouncedCallback2 = (0, _slicedToArray2.default)(_useDebouncedCallback, 1),
221
+ debouncedBasicFilterSelectionChange = _useDebouncedCallback2[0];
222
+ var handleBasicFilterSelectionChange = (0, _react.useCallback)(function (filterType, options) {
223
+ var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, (0, _defineProperty2.default)({}, filterType, options));
224
+ setFilterSelections(updatedSelection);
225
+ debouncedBasicFilterSelectionChange(updatedSelection);
226
+ }, [debouncedBasicFilterSelectionChange, filterSelections]);
227
+ (0, _react.useEffect)(function () {
228
+ var isCurrentQueryComplex = (0, _isQueryTooComplex.isQueryTooComplex)(searchBarJql);
229
+ setIsComplexQuery(isCurrentQueryComplex);
230
+ if (!isCurrentQueryComplex && searchBarJql !== DEFAULT_JQL_QUERY) {
231
+ fetchHydratedJqlOptions();
232
+ }
233
+ // eslint-disable-next-line react-hooks/exhaustive-deps
234
+ }, []);
235
+ (0, _react.useEffect)(function () {
236
+ if (basicFilterHydrationStatus === 'resolved') {
237
+ var basicInputTextValue = hydratedOptions.basicInputTextValue,
238
+ hydratedFilterOptions = (0, _objectWithoutProperties2.default)(hydratedOptions, _excluded);
239
+ setFilterSelections(hydratedFilterOptions);
240
+ if (basicInputTextValue) {
241
+ setBasicSearchTerm(basicInputTextValue);
242
+ }
243
+ }
244
+ }, [hydratedOptions, basicFilterHydrationStatus]);
245
+ (0, _react.useEffect)(function () {
246
+ if (currentCloudId !== cloudId) {
247
+ basicDraft.current = {
248
+ jql: DEFAULT_JQL_QUERY,
249
+ term: '',
250
+ selections: {}
251
+ };
252
+ advancedDraft.current = undefined;
253
+ setBasicSearchTerm('');
254
+ setSearchBarJql(DEFAULT_JQL_QUERY);
255
+ setIsComplexQuery(false);
256
+ setOrderKey(undefined);
257
+ setOrderDirection(undefined);
258
+ setFilterSelections({});
259
+ setCloudId(currentCloudId);
260
+ }
261
+ }, [currentCloudId, cloudId, setSearchBarJql]);
262
+ var searchInput = currentSearchMethod === 'basic' ? /*#__PURE__*/_react.default.createElement(_box.Box, {
263
+ xcss: layout === 'inline' ? styles.inlineSearch : styles.basicSearchInputBoxStyles
264
+ }, /*#__PURE__*/_react.default.createElement(_flex.Flex, {
265
+ alignItems: "center",
266
+ xcss: styles.basicSearchInputContainerStyles
267
+ }, /*#__PURE__*/_react.default.createElement(_basicSearchInput.BasicSearchInput, {
268
+ isCompact: layout === 'inline',
269
+ isSearching: isSearching,
270
+ onChange: handleBasicSearchChange,
271
+ onSearch: handleSearch,
272
+ searchTerm: basicSearchTerm,
273
+ showSearchButton: showBasicSearchButton,
274
+ ariaLabel: _messages.basicSearchInputMessages.basicTextSearchLabel,
275
+ testId: "jira-datasource-modal",
276
+ fullWidth: false
277
+ }), /*#__PURE__*/_react.default.createElement(_index.default, {
278
+ jql: searchBarJql,
279
+ site: site,
280
+ onChange: handleBasicFilterSelectionChange,
281
+ selections: filterSelections,
282
+ isJQLHydrating: basicFilterHydrationStatus === 'loading',
283
+ isInline: layout === 'inline'
284
+ })), layout !== 'inline' && /*#__PURE__*/_react.default.createElement(_text.Text, {
285
+ size: "small",
286
+ color: "color.text.subtlest",
287
+ testId: "jira-search-placeholder"
288
+ }, formatMessage(_messages.basicSearchInputMessages.basicTextSearchLabel))) : /*#__PURE__*/_react.default.createElement(_jqlEditor.JiraJQLEditor, {
289
+ isCompact: layout === 'inline',
290
+ cloudId: cloudId || '',
291
+ autoFocus: layout !== 'inline',
292
+ isSearching: isSearching,
293
+ onChange: onQueryChange,
294
+ onSearch: handleSearch,
295
+ query: searchBarJql
296
+ });
297
+ var modeSwitcher = /*#__PURE__*/_react.default.createElement(_ModeSwitcher.ModeSwitcher, {
298
+ isInline: layout === 'inline',
299
+ onOptionValueChange: onSearchMethodChange,
300
+ selectedOptionValue: currentSearchMethod,
301
+ options: modeSwitcherOptions
302
+ });
303
+ if (layout === 'inline') {
304
+ return /*#__PURE__*/_react.default.createElement(_flex.Flex, {
305
+ alignItems: "start",
306
+ gap: "space.100",
307
+ wrap: "wrap",
308
+ testId: "jira-search-container"
309
+ }, /*#__PURE__*/_react.default.createElement(_box.Box, {
310
+ xcss: styles.inlineSwitcher
311
+ }, modeSwitcher), currentSearchMethod === 'basic' ? searchInput : /*#__PURE__*/_react.default.createElement(_box.Box, {
312
+ xcss: styles.inlineSearch
313
+ }, searchInput));
314
+ }
315
+ return /*#__PURE__*/_react.default.createElement("div", {
316
+ "data-testid": "jira-search-container",
317
+ className: (0, _runtime.ax)([styles.inputContainerStyles])
318
+ }, searchInput, /*#__PURE__*/_react.default.createElement(_box.Box, {
319
+ xcss: styles.modeSwitcherContainerStyles
320
+ }, modeSwitcher));
321
+ };
@@ -12,6 +12,7 @@ var _runtime = require("@compiled/react/runtime");
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
16
  var _react = _interopRequireWildcard(require("react"));
16
17
  var _reactIntl = require("react-intl");
17
18
  var _useDebounce = require("use-debounce");
@@ -28,6 +29,7 @@ var _index = _interopRequireDefault(require("../basic-filters/ui/index"));
28
29
  var _isQueryTooComplex = require("../basic-filters/utils/isQueryTooComplex");
29
30
  var _jqlEditor = require("../jql-editor");
30
31
  var _buildJQL = require("./buildJQL");
32
+ var _embedded = require("./embedded");
31
33
  var _messages2 = require("./messages");
32
34
  var _excluded = ["basicInputTextValue"];
33
35
  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); }
@@ -41,7 +43,17 @@ var styles = {
41
43
  };
42
44
  var DEFAULT_JQL_QUERY = exports.DEFAULT_JQL_QUERY = 'ORDER BY created DESC';
43
45
  var ALLOWED_ORDER_BY_KEYS = exports.ALLOWED_ORDER_BY_KEYS = ['key', 'summary', 'assignee', 'status', 'created'];
46
+ /** Opt-in consumers use a separate component; the configuration modal retains its existing path. */
44
47
  var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchContainer(props) {
48
+ if (props.layout === 'inline' || props.allowBasicModeReset || props.initialBasicSearchTerm !== undefined || props.showBasicSearchButton === false || props.textSearchField !== undefined) {
49
+ return /*#__PURE__*/_react.default.createElement(_embedded.EmbeddedJiraSearchContainer, (0, _extends2.default)({}, props, {
50
+ defaultJql: DEFAULT_JQL_QUERY,
51
+ allowedOrderByKeys: ALLOWED_ORDER_BY_KEYS
52
+ }));
53
+ }
54
+ return /*#__PURE__*/_react.default.createElement(ModalJiraSearchContainer, props);
55
+ };
56
+ var ModalJiraSearchContainer = function ModalJiraSearchContainer(props) {
45
57
  var isSearching = props.isSearching,
46
58
  parameters = props.parameters,
47
59
  onSearch = props.onSearch,
@@ -15,6 +15,10 @@ var _makeGetJqlSuggestionsData = require("../../../services/makeGetJqlSuggestion
15
15
  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); }
16
16
  var JiraJQLEditor = exports.JiraJQLEditor = function JiraJQLEditor(_ref) {
17
17
  var cloudId = _ref.cloudId,
18
+ _ref$autoFocus = _ref.autoFocus,
19
+ autoFocus = _ref$autoFocus === void 0 ? true : _ref$autoFocus,
20
+ _ref$isCompact = _ref.isCompact,
21
+ isCompact = _ref$isCompact === void 0 ? false : _ref$isCompact,
18
22
  isSearching = _ref.isSearching,
19
23
  onChange = _ref.onChange,
20
24
  onSearch = _ref.onSearch,
@@ -26,11 +30,14 @@ var JiraJQLEditor = exports.JiraJQLEditor = function JiraJQLEditor(_ref) {
26
30
  focus: function focus() {}
27
31
  });
28
32
  (0, _react.useEffect)(function () {
33
+ if (!autoFocus) {
34
+ return;
35
+ }
29
36
  requestAnimationFrame(function () {
30
37
  var _inputRef$current;
31
38
  (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
32
39
  });
33
- }, []);
40
+ }, [autoFocus]);
34
41
  var searchIfValidJql = function searchIfValidJql(_, jast) {
35
42
  if (jast.errors.length === 0) {
36
43
  onSearch();
@@ -42,6 +49,7 @@ var JiraJQLEditor = exports.JiraJQLEditor = function JiraJQLEditor(_ref) {
42
49
  onSearch: searchIfValidJql,
43
50
  onUpdate: onChange,
44
51
  isSearching: isSearching,
52
+ isCompact: isCompact,
45
53
  inputRef: inputRef,
46
54
  query: query,
47
55
  "aria-label": /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
@@ -0,0 +1,12 @@
1
+ ._18zrpxbi{padding-inline:var(--ds-space-200,1pc)}
2
+ ._1rjcpxbi{padding-block:var(--ds-space-200,1pc)}._18m915vq{overflow-y:hidden}
3
+ ._1pglindk{animation-timing-function:var(--ds-easing-out-practical,cubic-bezier(.4,1,.6,1))}
4
+ ._1reo15vq{overflow-x:hidden}
5
+ ._1tke194s{min-height:14pc}
6
+ ._1tkeva7c{min-height:281px}
7
+ ._4t3i1osq{height:100%}
8
+ ._5sag1ign{animation-duration:var(--ds-duration-short,.15s)}
9
+ ._j7hq1bym{animation-name:var(--ds-keyframe-fade-in,FadeIn0to100)}
10
+ ._p12f1gwv{max-width:360px}
11
+ ._y3gn1h6o{text-align:center}
12
+ @media (prefers-reduced-motion:reduce){._bl8aglyw{animation-name:none}}
@@ -0,0 +1,90 @@
1
+ /* index.tsx generated by @compiled/babel-plugin v3.0.2 */
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.JiraSearchState = void 0;
9
+ require("./index.compiled.css");
10
+ var _runtime = require("@compiled/react/runtime");
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _reactIntl = require("react-intl");
13
+ var _css = require("@atlaskit/css");
14
+ var _heading = _interopRequireDefault(require("@atlaskit/heading/heading"));
15
+ var _main = _interopRequireDefault(require("@atlaskit/intl-messages-provider/main"));
16
+ var _box = require("@atlaskit/primitives/compiled/box");
17
+ var _flex = require("@atlaskit/primitives/compiled/flex");
18
+ var _text = require("@atlaskit/primitives/compiled/text");
19
+ var _visuallyHidden = _interopRequireDefault(require("@atlaskit/visually-hidden/visually-hidden"));
20
+ var _search = require("../../common/ui/rich-icon/search");
21
+ var _searchNoResult = require("../../common/ui/spot/error-state/search-no-result");
22
+ var _fetchMessagesForLocale = require("../../common/utils/locale/fetch-messages-for-locale");
23
+ var _en = _interopRequireDefault(require("../../i18n/en"));
24
+ var _messages = require("../common/error-state/messages");
25
+ var _messages2 = require("../common/initial-state-view/messages");
26
+ var _emptyState = _interopRequireDefault(require("../issue-like-table/empty-state"));
27
+ var messages = (0, _reactIntl.defineMessages)({
28
+ loading: {
29
+ id: 'link-datasource.jira-search-state.loading',
30
+ defaultMessage: 'Searching for work items…',
31
+ description: 'Loading label while an embedded Jira work-item search is running.'
32
+ }
33
+ });
34
+ var styles = {
35
+ loading: "_1reo15vq _18m915vq _4t3i1osq",
36
+ canvas: "_1rjcpxbi _18zrpxbi _1tkeva7c",
37
+ compactCanvas: "_1tke194s",
38
+ resolvedEmpty: "_j7hq1bym _5sag1ign _1pglindk _bl8aglyw",
39
+ content: "_p12f1gwv _y3gn1h6o"
40
+ };
41
+ var SearchState = function SearchState(_ref) {
42
+ var variant = _ref.variant,
43
+ _ref$isCompact = _ref.isCompact,
44
+ isCompact = _ref$isCompact === void 0 ? false : _ref$isCompact;
45
+ var _useIntl = (0, _reactIntl.useIntl)(),
46
+ formatMessage = _useIntl.formatMessage;
47
+ var isEmpty = variant === 'empty';
48
+ if (variant === 'loading') {
49
+ return /*#__PURE__*/_react.default.createElement(_box.Box, {
50
+ xcss: styles.loading,
51
+ testId: "jira-search-state-loading"
52
+ }, /*#__PURE__*/_react.default.createElement(_visuallyHidden.default, null, formatMessage(messages.loading)), /*#__PURE__*/_react.default.createElement("div", {
53
+ "aria-hidden": "true"
54
+ }, /*#__PURE__*/_react.default.createElement(_emptyState.default, {
55
+ isCompact: true,
56
+ testId: "jira-search-table-skeleton"
57
+ })));
58
+ }
59
+ return /*#__PURE__*/_react.default.createElement(_flex.Flex, {
60
+ direction: "column",
61
+ alignItems: "center",
62
+ justifyContent: "center",
63
+ gap: isCompact ? 'space.100' : 'space.200',
64
+ xcss: (0, _css.cx)(styles.canvas, isCompact && styles.compactCanvas, isEmpty && styles.resolvedEmpty),
65
+ testId: "jira-search-state-".concat(variant)
66
+ }, isEmpty ? /*#__PURE__*/_react.default.createElement(_searchNoResult.SpotSearchNoResult, {
67
+ size: isCompact ? 'large' : 'xlarge',
68
+ alt: ""
69
+ }) : /*#__PURE__*/_react.default.createElement(_search.RichIconSearch, {
70
+ size: isCompact ? 'large' : 'xlarge',
71
+ alt: ""
72
+ }), /*#__PURE__*/_react.default.createElement(_box.Box, {
73
+ xcss: styles.content
74
+ }, /*#__PURE__*/_react.default.createElement(_heading.default, {
75
+ as: "h3",
76
+ size: "small"
77
+ }, formatMessage(isEmpty ? _messages.loadingErrorMessages.noResultsFound : _messages2.initialStateViewMessages.jiraSearchTitle))), /*#__PURE__*/_react.default.createElement(_box.Box, {
78
+ xcss: styles.content
79
+ }, /*#__PURE__*/_react.default.createElement(_text.Text, {
80
+ color: "color.text.subtle"
81
+ }, formatMessage(isEmpty ? _messages.loadingErrorMessages.noResultsFoundDescription : _messages2.initialStateViewMessages.searchDescriptionForBasicSearchSllv))));
82
+ };
83
+
84
+ /** Reuses the work-item picker's illustrations and copy without emitting datasource analytics. */
85
+ var JiraSearchState = exports.JiraSearchState = function JiraSearchState(props) {
86
+ return /*#__PURE__*/_react.default.createElement(_main.default, {
87
+ defaultMessages: _en.default,
88
+ loaderFn: _fetchMessagesForLocale.fetchMessagesForLocale
89
+ }, /*#__PURE__*/_react.default.createElement(SearchState, props));
90
+ };
@@ -4,9 +4,15 @@ import "./loading-state.compiled.css";
4
4
  import { forwardRef } from 'react';
5
5
  import * as React from 'react';
6
6
  import { ax, ix } from "@compiled/react/runtime";
7
+ import { fg } from '@atlaskit/platform-feature-flags/fg';
8
+ import { Flex } from '@atlaskit/primitives/compiled/flex';
7
9
  import { AssetsAqlSearchInputSkeleton } from './aql-search-input/loading-state';
8
10
  import { AssetsObjectSchemaSelectSkeleton } from './object-schema-select/loading-state';
9
11
  import { FormRowContainer } from './styled';
12
+ const styles = {
13
+ flexStyles: "_1bsb1osq"
14
+ };
15
+
10
16
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled
11
17
  const SchemaSelectContainer = forwardRef(({
12
18
  as: C = "div",
@@ -42,7 +48,12 @@ export const AssetsSearchContainerLoading = ({
42
48
  }) => {
43
49
  return /*#__PURE__*/React.createElement(FormContainer, {
44
50
  "data-testid": "assets-datasource-modal--search-container-skeleton"
45
- }, /*#__PURE__*/React.createElement(FormRowContainer, {
51
+ }, fg('astral_assets_macro_table_ui_uplift') ? /*#__PURE__*/React.createElement(Flex, {
52
+ gap: "space.100",
53
+ alignItems: "center",
54
+ justifyContent: "space-between",
55
+ xcss: styles.flexStyles
56
+ }, modalTitle, /*#__PURE__*/React.createElement(SchemaSelectContainer, null, /*#__PURE__*/React.createElement(AssetsObjectSchemaSelectSkeleton, null))) : /*#__PURE__*/React.createElement(FormRowContainer, {
46
57
  isNarrowGap: true
47
58
  }, modalTitle, /*#__PURE__*/React.createElement(SchemaSelectContainer, null, /*#__PURE__*/React.createElement(AssetsObjectSchemaSelectSkeleton, null))), /*#__PURE__*/React.createElement(FormRowContainer, null, /*#__PURE__*/React.createElement(AssetsAqlSearchInputSkeleton, null)));
48
59
  };
@@ -17,11 +17,13 @@ const styles = {
17
17
  const formStyles = null;
18
18
  const formWithMaxWidthStyles = null;
19
19
  export const BasicSearchInput = ({
20
+ isCompact = false,
20
21
  isDisabled,
21
22
  isSearching,
22
23
  onChange,
23
24
  onSearch,
24
25
  searchTerm,
26
+ showSearchButton = true,
25
27
  fullWidth,
26
28
  testId,
27
29
  ariaLabel
@@ -44,7 +46,8 @@ export const BasicSearchInput = ({
44
46
  onSubmit: handleFormSubmit,
45
47
  className: ax([fullWidth ? "_16jlkb7n _1o9zkb7n _i0dlf1ug" : "_16jlkb7n _1o9zkb7n _i0dlf1ug _p12f1mjv"])
46
48
  }, /*#__PURE__*/React.createElement(Textfield, {
47
- elemAfterInput: /*#__PURE__*/React.createElement(Box, {
49
+ isCompact: isCompact,
50
+ elemAfterInput: showSearchButton ? /*#__PURE__*/React.createElement(Box, {
48
51
  xcss: styles.searchButtonContainer
49
52
  }, /*#__PURE__*/React.createElement(IconButton, {
50
53
  appearance: "primary",
@@ -59,7 +62,7 @@ export const BasicSearchInput = ({
59
62
  isDisabled: isDisabled,
60
63
  testId: `${testId}--basic-search-button`,
61
64
  onClick: handleSearchWithAnalytics
62
- })),
65
+ })) : undefined,
63
66
  autoFocus: true,
64
67
  onChange: onChange,
65
68
  testId: `${testId}--basic-search-input`,
@@ -7,6 +7,7 @@
7
7
  ._1h6d1l7x{border-color:var(--ds-border,#0b120e24)}
8
8
  ._1h6dq98m{border-color:var(--ds-border-selected,#1868db)}
9
9
  ._18u0v47k{margin-left:var(--ds-space-250,20px)}
10
+ ._18u0ze3t{margin-left:var(--ds-space-0,0)}
10
11
  ._19bv1b66{padding-left:var(--ds-space-050,4px)}
11
12
  ._19bvutpp{padding-left:var(--ds-space-150,9pt)}
12
13
  ._1bah1h6o{justify-content:center}
@@ -6,6 +6,7 @@ import React from 'react';
6
6
  import Tooltip from '@atlaskit/tooltip/Tooltip';
7
7
  import VisuallyHidden from '@atlaskit/visually-hidden/visually-hidden';
8
8
  const modeSwitcherStyles = null;
9
+ const inlineModeSwitcherStyles = null;
9
10
  const compactModeSwitcherStyles = null;
10
11
  const modeFocusStyles = null;
11
12
  const modeSwitcherLabelStyles = null;
@@ -17,6 +18,7 @@ export const ModeSwitcher = props => {
17
18
  var _options$;
18
19
  const {
19
20
  isCompact,
21
+ isInline,
20
22
  isDisabled,
21
23
  onOptionValueChange,
22
24
  options,
@@ -28,7 +30,7 @@ export const ModeSwitcher = props => {
28
30
  return options.length > 0 ? /*#__PURE__*/React.createElement("fieldset", {
29
31
  "data-testid": "mode-toggle-container",
30
32
  disabled: isDisabled,
31
- className: ax(["_2rko1b66 _1h6d1l7x _189ee4h9 _1dqonqa1 _4cvr1h6o _vchhusvi _1e0c116y _u5f31b66 _19bv1b66 _18u0v47k _4t3izwfg _1j55105o", isCompact && "_zulpv77o _ca0q1b66 _u5f31b66 _n3td1b66 _19bv1b66"])
33
+ className: ax(["_2rko1b66 _1h6d1l7x _189ee4h9 _1dqonqa1 _4cvr1h6o _vchhusvi _1e0c116y _u5f31b66 _19bv1b66 _18u0v47k _4t3izwfg _1j55105o", isCompact && "_zulpv77o _ca0q1b66 _u5f31b66 _n3td1b66 _19bv1b66", isInline && "_18u0ze3t"])
32
34
  }, options.map(({
33
35
  value,
34
36
  label,
@@ -12,9 +12,38 @@ import formatOptionLabel from './formatOptionLabel';
12
12
  import CustomMenuList from './menu-list';
13
13
  import { asyncPopupSelectMessages } from './messages';
14
14
  import PopupTrigger from './trigger';
15
+ import { useInlinePopupLayout } from './useInlinePopupLayout';
16
+
15
17
  // Needed to disable filtering from react-select
16
18
  const noFilterOptions = () => true;
17
- export const FilterPopupSelect = ({
19
+ export const FilterPopupSelect = props => props.isInline ? /*#__PURE__*/React.createElement(InlineFilterPopupSelect, props) : /*#__PURE__*/React.createElement(FilterPopupSelectBase, props);
20
+ const InlineFilterPopupSelect = props => {
21
+ const popupRef = useRef(null);
22
+ const layout = useInlinePopupLayout(true, popupRef);
23
+ const {
24
+ onMenuOpen,
25
+ onMenuClose
26
+ } = props;
27
+ const handleOpen = useCallback(() => {
28
+ layout.onOpen();
29
+ onMenuOpen === null || onMenuOpen === void 0 ? void 0 : onMenuOpen();
30
+ }, [layout.onOpen, onMenuOpen]);
31
+ const handleClose = useCallback(() => {
32
+ layout.onClose();
33
+ onMenuClose === null || onMenuClose === void 0 ? void 0 : onMenuClose();
34
+ }, [layout.onClose, onMenuClose]);
35
+ return /*#__PURE__*/React.createElement(FilterPopupSelectBase, _extends({}, props, {
36
+ onMenuOpen: handleOpen,
37
+ onMenuClose: handleClose,
38
+ inlinePopupProps: {
39
+ ref: popupRef,
40
+ maxMenuHeight: layout.maxMenuHeight,
41
+ minMenuHeight: 0,
42
+ popperProps: layout.popperProps
43
+ }
44
+ }));
45
+ };
46
+ const FilterPopupSelectBase = ({
18
47
  filterName,
19
48
  totalCount = 0,
20
49
  status,
@@ -30,7 +59,8 @@ export const FilterPopupSelect = ({
30
59
  onSelectionChange,
31
60
  onInputChange,
32
61
  onMenuClose,
33
- onMenuOpen
62
+ onMenuOpen,
63
+ inlinePopupProps
34
64
  }) => {
35
65
  const {
36
66
  formatMessage
@@ -122,7 +152,7 @@ export const FilterPopupSelect = ({
122
152
  sortPaginatedResults.current = true;
123
153
  }
124
154
  }, [status]);
125
- return /*#__PURE__*/React.createElement(PopupSelect, {
155
+ return /*#__PURE__*/React.createElement(PopupSelect, _extends({}, inlinePopupProps, {
126
156
  isMulti: true,
127
157
  maxMenuWidth: 300,
128
158
  minMenuWidth: 300,
@@ -187,5 +217,5 @@ export const FilterPopupSelect = ({
187
217
  totalCount: totalCount,
188
218
  filterName: filterName
189
219
  })
190
- });
220
+ }));
191
221
  };