@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.
- package/CHANGELOG.md +68 -0
- package/dist/cjs/ui/assets-modal/search-container/loading-state.js +12 -1
- package/dist/cjs/ui/common/modal/basic-search-input/index.js +8 -3
- package/dist/cjs/ui/common/modal/mode-switcher/ModeSwitcher.compiled.css +1 -0
- package/dist/cjs/ui/common/modal/mode-switcher/ModeSwitcher.js +3 -1
- package/dist/cjs/ui/common/modal/popup-select/index.js +34 -5
- package/dist/cjs/ui/common/modal/popup-select/useInlinePopupLayout.js +123 -0
- package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +9 -3
- package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +4 -1
- package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/index.js +5 -1
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/JiraSearchContainerWithWrappers.js +19 -0
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/buildJQL.js +12 -2
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/embedded.compiled.css +11 -0
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/embedded.js +321 -0
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +12 -0
- package/dist/cjs/ui/jira-issues-modal/jql-editor/index.js +9 -1
- package/dist/cjs/ui/jira-search-state/index.compiled.css +12 -0
- package/dist/cjs/ui/jira-search-state/index.js +90 -0
- package/dist/es2019/ui/assets-modal/search-container/loading-state.js +12 -1
- package/dist/es2019/ui/common/modal/basic-search-input/index.js +5 -2
- package/dist/es2019/ui/common/modal/mode-switcher/ModeSwitcher.compiled.css +1 -0
- package/dist/es2019/ui/common/modal/mode-switcher/ModeSwitcher.js +3 -1
- package/dist/es2019/ui/common/modal/popup-select/index.js +34 -4
- package/dist/es2019/ui/common/modal/popup-select/useInlinePopupLayout.js +103 -0
- package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +8 -3
- package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +3 -1
- package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/index.js +4 -1
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/JiraSearchContainerWithWrappers.js +11 -0
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/buildJQL.js +10 -2
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/embedded.compiled.css +11 -0
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/embedded.js +283 -0
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +12 -0
- package/dist/es2019/ui/jira-issues-modal/jql-editor/index.js +7 -1
- package/dist/es2019/ui/jira-search-state/index.compiled.css +12 -0
- package/dist/es2019/ui/jira-search-state/index.js +82 -0
- package/dist/esm/ui/assets-modal/search-container/loading-state.js +12 -1
- package/dist/esm/ui/common/modal/basic-search-input/index.js +8 -3
- package/dist/esm/ui/common/modal/mode-switcher/ModeSwitcher.compiled.css +1 -0
- package/dist/esm/ui/common/modal/mode-switcher/ModeSwitcher.js +3 -1
- package/dist/esm/ui/common/modal/popup-select/index.js +35 -5
- package/dist/esm/ui/common/modal/popup-select/useInlinePopupLayout.js +116 -0
- package/dist/esm/ui/datasource-table-view/datasourceTableView.js +9 -3
- package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +4 -1
- package/dist/esm/ui/jira-issues-modal/basic-filters/ui/index.js +5 -1
- package/dist/esm/ui/jira-issues-modal/jira-search-container/JiraSearchContainerWithWrappers.js +13 -0
- package/dist/esm/ui/jira-issues-modal/jira-search-container/buildJQL.js +12 -2
- package/dist/esm/ui/jira-issues-modal/jira-search-container/embedded.compiled.css +11 -0
- package/dist/esm/ui/jira-issues-modal/jira-search-container/embedded.js +312 -0
- package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +12 -0
- package/dist/esm/ui/jira-issues-modal/jql-editor/index.js +9 -1
- package/dist/esm/ui/jira-search-state/index.compiled.css +12 -0
- package/dist/esm/ui/jira-search-state/index.js +83 -0
- package/dist/types/ui/common/modal/basic-search-input/index.d.ts +5 -1
- package/dist/types/ui/common/modal/mode-switcher/ModeSwitcher.d.ts +1 -0
- package/dist/types/ui/common/modal/popup-select/index.d.ts +2 -1
- package/dist/types/ui/common/modal/popup-select/useInlinePopupLayout.d.ts +9 -0
- package/dist/types/ui/datasource-table-view/datasourceTableView.d.ts +5 -1
- package/dist/types/ui/datasource-table-view/types.d.ts +5 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +2 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/ui/index.d.ts +2 -1
- package/dist/types/ui/jira-issues-modal/jira-search-container/JiraSearchContainerWithWrappers.d.ts +4 -0
- package/dist/types/ui/jira-issues-modal/jira-search-container/buildJQL.d.ts +1 -0
- package/dist/types/ui/jira-issues-modal/jira-search-container/embedded.d.ts +9 -0
- package/dist/types/ui/jira-issues-modal/jira-search-container/index.d.ts +11 -0
- package/dist/types/ui/jira-issues-modal/jql-editor/index.d.ts +4 -1
- package/dist/types/ui/jira-search-state/index.d.ts +9 -0
- package/jira-search-container/package.json +10 -0
- package/jira-search-state/package.json +10 -0
- 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(
|
|
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
|
-
|
|
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
|
};
|