@atlaskit/link-datasource 1.19.11 → 1.19.13
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 +15 -0
- package/dist/cjs/analytics/constants.js +1 -1
- package/dist/cjs/ui/assets-modal/search-container/styled.js +1 -1
- package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +14 -1
- package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +11 -1
- package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +8 -5
- package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/index.js +13 -3
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +9 -13
- package/dist/es2019/analytics/constants.js +1 -1
- package/dist/es2019/ui/assets-modal/search-container/styled.js +2 -1
- package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +14 -1
- package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +11 -1
- package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +8 -5
- package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/index.js +7 -2
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +10 -13
- package/dist/esm/analytics/constants.js +1 -1
- package/dist/esm/ui/assets-modal/search-container/styled.js +1 -1
- package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +14 -1
- package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +11 -1
- package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +8 -5
- package/dist/esm/ui/jira-issues-modal/basic-filters/ui/index.js +10 -3
- package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +8 -11
- package/dist/types/ui/jira-issues-modal/basic-filters/ui/index.d.ts +2 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/index.d.ts +2 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @atlaskit/link-datasource
|
|
2
2
|
|
|
3
|
+
## 1.19.13
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#57773](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/57773) [`a2e16053a3dd`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a2e16053a3dd) - Added group icon and clear search text when popup opens.
|
|
8
|
+
- [#57739](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/57739) [`c1ca80ef5958`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c1ca80ef5958) - Update filter tigger button logic to show hydration loader only if the filter has value.
|
|
9
|
+
- [#57513](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/57513) [`e0ce3402d2c9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/e0ce3402d2c9) - [ux] make schema drop down selector wider
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
12
|
+
## 1.19.12
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- [#57143](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/57143) [`9b8b89c7c87e`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/9b8b89c7c87e) - Remove redundant selection handler for basic filter selection.
|
|
17
|
+
|
|
3
18
|
## 1.19.11
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -7,5 +7,5 @@ exports.packageMetaData = exports.EVENT_CHANNEL = void 0;
|
|
|
7
7
|
var EVENT_CHANNEL = exports.EVENT_CHANNEL = 'media';
|
|
8
8
|
var packageMetaData = exports.packageMetaData = {
|
|
9
9
|
packageName: "@atlaskit/link-datasource",
|
|
10
|
-
packageVersion: "1.19.
|
|
10
|
+
packageVersion: "1.19.13"
|
|
11
11
|
};
|
|
@@ -15,4 +15,4 @@ var FormContainer = exports.FormContainer = _styled.default.form(_templateObject
|
|
|
15
15
|
|
|
16
16
|
// Override the top margin of fields
|
|
17
17
|
var FieldContainer = exports.FieldContainer = _styled.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1;\n margin-top: ", ";\n"])), "var(--ds-space-negative-100, -8px)");
|
|
18
|
-
var SchemaSelectContainer = exports.SchemaSelectContainer = _styled.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n width:
|
|
18
|
+
var SchemaSelectContainer = exports.SchemaSelectContainer = _styled.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n max-width: 386px;\n"])));
|
package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js
CHANGED
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _avatar = _interopRequireDefault(require("@atlaskit/avatar"));
|
|
10
|
+
var _peopleGroup = _interopRequireDefault(require("@atlaskit/icon/glyph/people-group"));
|
|
10
11
|
var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
|
|
11
12
|
var _primitives = require("@atlaskit/primitives");
|
|
12
13
|
var commonLabelStyles = (0, _primitives.xcss)({
|
|
@@ -16,6 +17,11 @@ var commonLabelStyles = (0, _primitives.xcss)({
|
|
|
16
17
|
var avatarOptionLabelStyles = (0, _primitives.xcss)({
|
|
17
18
|
marginLeft: 'space.050'
|
|
18
19
|
});
|
|
20
|
+
var groupWrapperStyles = (0, _primitives.xcss)({
|
|
21
|
+
width: "var(--ds-space-250, 20px)",
|
|
22
|
+
minWidth: "var(--ds-space-250, 20px)",
|
|
23
|
+
height: "var(--ds-space-250, 20px)"
|
|
24
|
+
});
|
|
19
25
|
var IconOptionLabel = function IconOptionLabel(_ref) {
|
|
20
26
|
var data = _ref.data;
|
|
21
27
|
var label = data.label,
|
|
@@ -48,7 +54,14 @@ var AvatarOptionLabel = function AvatarOptionLabel(_ref3) {
|
|
|
48
54
|
return /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
|
|
49
55
|
alignItems: "center",
|
|
50
56
|
testId: testId || 'jlol-basic-filter-popup-select-option--avatar'
|
|
51
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
57
|
+
}, data.isGroup ? /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
|
|
58
|
+
alignItems: "center",
|
|
59
|
+
justifyContent: "center",
|
|
60
|
+
xcss: groupWrapperStyles
|
|
61
|
+
}, /*#__PURE__*/_react.default.createElement(_peopleGroup.default, {
|
|
62
|
+
size: "small",
|
|
63
|
+
label: ""
|
|
64
|
+
})) : /*#__PURE__*/_react.default.createElement(_avatar.default, {
|
|
52
65
|
appearance: data.isSquare ? 'square' : 'circle',
|
|
53
66
|
src: data.avatar,
|
|
54
67
|
size: "xsmall"
|
|
@@ -172,11 +172,21 @@ var AsyncPopupSelect = function AsyncPopupSelect(_ref) {
|
|
|
172
172
|
});
|
|
173
173
|
}, [fetchFilterOptions, filterType, fireEvent, searchTerm, selectedOptions.length, sortOptionsOnPopupOpen, status]);
|
|
174
174
|
var handleMenuClose = (0, _react.useCallback)(function () {
|
|
175
|
+
/**
|
|
176
|
+
* Clearing the search is to ensure that the sortOptionsOnPopupOpen logic does not mess up.
|
|
177
|
+
* Without this, when the user opens, sortOptionsOnPopupOpen will inject the selected options to the list and the list count and values will be off
|
|
178
|
+
*/
|
|
179
|
+
if (searchTerm) {
|
|
180
|
+
handleInputChange('', {
|
|
181
|
+
action: 'input-change',
|
|
182
|
+
prevInputValue: searchTerm
|
|
183
|
+
});
|
|
184
|
+
}
|
|
175
185
|
fireEvent('ui.dropdown.closed.basicSearchDropdown', {
|
|
176
186
|
filterType: filterType,
|
|
177
187
|
selectionCount: selectedOptions.length
|
|
178
188
|
});
|
|
179
|
-
}, [filterType, fireEvent, selectedOptions.length]);
|
|
189
|
+
}, [filterType, fireEvent, handleInputChange, searchTerm, selectedOptions.length]);
|
|
180
190
|
(0, _react.useEffect)(function () {
|
|
181
191
|
if (status === 'resolved') {
|
|
182
192
|
sortOptionsOnResolve();
|
|
@@ -52,13 +52,15 @@ var PopupTrigger = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
52
52
|
firstOption = _ref3[0];
|
|
53
53
|
var hasOptions = selectedOptions && selectedOptions.length > 0;
|
|
54
54
|
var showButtonLoading = !isDisabled && isLoading;
|
|
55
|
+
var testId = "jlol-basic-filter-".concat(filterType, "-trigger");
|
|
55
56
|
var LoadingButton = (0, _react.useCallback)(function () {
|
|
56
57
|
return /*#__PURE__*/_react.default.createElement(LoadingStateAnimationWrapper, null, /*#__PURE__*/_react.default.createElement(_standardButton.default, {
|
|
57
58
|
iconAfter: /*#__PURE__*/_react.default.createElement(_spinner.default, {
|
|
58
59
|
size: 'xsmall'
|
|
59
|
-
})
|
|
60
|
+
}),
|
|
61
|
+
testId: "".concat(testId, "--loading-button")
|
|
60
62
|
}, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.asyncPopupSelectMessages["".concat(filterType, "Label")])));
|
|
61
|
-
}, [filterType]);
|
|
63
|
+
}, [filterType, testId]);
|
|
62
64
|
var DefaultButton = (0, _react.useCallback)(function () {
|
|
63
65
|
return /*#__PURE__*/_react.default.createElement(_standardButton.default, {
|
|
64
66
|
appearance: "default",
|
|
@@ -66,7 +68,8 @@ var PopupTrigger = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
66
68
|
isDisabled: isDisabled,
|
|
67
69
|
iconAfter: /*#__PURE__*/_react.default.createElement(_chevronDown.default, {
|
|
68
70
|
label: ""
|
|
69
|
-
})
|
|
71
|
+
}),
|
|
72
|
+
testId: "".concat(testId, "--button")
|
|
70
73
|
}, /*#__PURE__*/_react.default.createElement(_primitives.Flex, null, /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
71
74
|
xcss: triggerButtonLabelStyles
|
|
72
75
|
}, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.asyncPopupSelectMessages["".concat(filterType, "Label")]), firstOption && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, ": ", firstOption.label)), selectedOptions && selectedOptions.length > 1 && /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
|
|
@@ -75,7 +78,7 @@ var PopupTrigger = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
75
78
|
}, /*#__PURE__*/_react.default.createElement(_badge.default, {
|
|
76
79
|
appearance: "primary"
|
|
77
80
|
}, "+", selectedOptions.length - 1))));
|
|
78
|
-
}, [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions]);
|
|
81
|
+
}, [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions, testId]);
|
|
79
82
|
|
|
80
83
|
/**
|
|
81
84
|
* We had an issue with the popup component referencing a stale DOM ref for the trigger button.
|
|
@@ -83,7 +86,7 @@ var PopupTrigger = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
83
86
|
*/
|
|
84
87
|
return /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
85
88
|
ref: ref,
|
|
86
|
-
testId:
|
|
89
|
+
testId: testId
|
|
87
90
|
}, showButtonLoading ? /*#__PURE__*/_react.default.createElement(LoadingButton, null) : /*#__PURE__*/_react.default.createElement(DefaultButton, null));
|
|
88
91
|
});
|
|
89
92
|
var _default = exports.default = PopupTrigger;
|
|
@@ -1,33 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.default = exports.availableBasicFilterTypes = void 0;
|
|
8
|
-
var _react =
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
10
|
var _primitives = require("@atlaskit/primitives");
|
|
11
|
+
var _extractValuesFromNonComplexJQL = require("../utils/extractValuesFromNonComplexJQL");
|
|
10
12
|
var _asyncPopupSelect = _interopRequireDefault(require("./async-popup-select"));
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
15
|
var availableBasicFilterTypes = exports.availableBasicFilterTypes = ['project', 'type', 'status', 'assignee'];
|
|
12
16
|
var basicFilterContainerStyles = (0, _primitives.xcss)({
|
|
13
17
|
paddingLeft: "var(--ds-space-100, 8px)"
|
|
14
18
|
});
|
|
15
19
|
var BasicFilterContainer = function BasicFilterContainer(_ref) {
|
|
16
|
-
var
|
|
20
|
+
var jql = _ref.jql,
|
|
21
|
+
cloudId = _ref.cloudId,
|
|
17
22
|
onChange = _ref.onChange,
|
|
18
23
|
selections = _ref.selections,
|
|
19
24
|
isJQLHydrating = _ref.isJQLHydrating;
|
|
25
|
+
var extractedFilterValues = (0, _react.useMemo)(function () {
|
|
26
|
+
return isJQLHydrating ? (0, _extractValuesFromNonComplexJQL.extractValuesFromNonComplexJQL)(jql) : {};
|
|
27
|
+
}, [isJQLHydrating, jql]);
|
|
20
28
|
return /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
|
|
21
29
|
xcss: basicFilterContainerStyles,
|
|
22
30
|
gap: "space.100",
|
|
23
31
|
testId: "jlol-basic-filter-container"
|
|
24
32
|
}, availableBasicFilterTypes.map(function (filter) {
|
|
33
|
+
var _extractedFilterValue;
|
|
34
|
+
var shouldShowHydrationLoader = isJQLHydrating && ((_extractedFilterValue = extractedFilterValues[filter]) === null || _extractedFilterValue === void 0 ? void 0 : _extractedFilterValue.length) > 0;
|
|
25
35
|
return /*#__PURE__*/_react.default.createElement(_asyncPopupSelect.default, {
|
|
26
36
|
cloudId: cloudId,
|
|
27
37
|
filterType: filter,
|
|
28
38
|
key: filter,
|
|
29
39
|
selection: selections[filter] || [],
|
|
30
|
-
isJQLHydrating:
|
|
40
|
+
isJQLHydrating: shouldShowHydrationLoader,
|
|
31
41
|
isDisabled: !cloudId,
|
|
32
42
|
onSelectionChange: onChange
|
|
33
43
|
});
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.JiraSearchContainer = exports.DEFAULT_JQL_QUERY = exports.ALLOWED_ORDER_BY_KEYS = void 0;
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _react2 = require("@emotion/react");
|
|
@@ -26,11 +26,10 @@ var _modeSwitcher = require("../mode-switcher");
|
|
|
26
26
|
var _buildJQL = require("./buildJQL");
|
|
27
27
|
var _messages = require("./messages");
|
|
28
28
|
var _excluded = ["basicInputTextValue"];
|
|
29
|
-
/** @jsx jsx */
|
|
30
29
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
30
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
32
31
|
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; }
|
|
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; }
|
|
32
|
+
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; } /** @jsx jsx */
|
|
34
33
|
var inputContainerStyles = (0, _react2.css)({
|
|
35
34
|
alignItems: 'baseline',
|
|
36
35
|
display: 'flex',
|
|
@@ -168,10 +167,11 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
|
|
|
168
167
|
}, _asyncPopupSelect.SEARCH_DEBOUNCE_MS),
|
|
169
168
|
_useDebouncedCallback2 = (0, _slicedToArray2.default)(_useDebouncedCallback, 1),
|
|
170
169
|
debouncedBasicFilterSelectionChange = _useDebouncedCallback2[0];
|
|
171
|
-
var handleBasicFilterSelectionChange = (0, _react.useCallback)(function (
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
170
|
+
var handleBasicFilterSelectionChange = (0, _react.useCallback)(function (filterType, options) {
|
|
171
|
+
var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, (0, _defineProperty2.default)({}, filterType, options));
|
|
172
|
+
setFilterSelections(updatedSelection);
|
|
173
|
+
debouncedBasicFilterSelectionChange(updatedSelection);
|
|
174
|
+
}, [debouncedBasicFilterSelectionChange, filterSelections]);
|
|
175
175
|
(0, _react.useEffect)(function () {
|
|
176
176
|
var isCurrentQueryComplex = (0, _isQueryTooComplex.isQueryTooComplex)(jql);
|
|
177
177
|
setIsComplexQuery(isCurrentQueryComplex);
|
|
@@ -190,11 +190,6 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
}, [hydratedOptions, basicFilterHydrationStatus]);
|
|
193
|
-
var handleSelectionChange = (0, _react.useCallback)(function (filterType, options) {
|
|
194
|
-
var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, (0, _defineProperty2.default)({}, filterType, options));
|
|
195
|
-
setFilterSelections(updatedSelection);
|
|
196
|
-
handleBasicFilterSelectionChange(updatedSelection);
|
|
197
|
-
}, [handleBasicFilterSelectionChange, filterSelections]);
|
|
198
193
|
(0, _react.useEffect)(function () {
|
|
199
194
|
if (currentCloudId !== cloudId) {
|
|
200
195
|
setBasicSearchTerm('');
|
|
@@ -218,8 +213,9 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
|
|
|
218
213
|
onSearch: handleSearch,
|
|
219
214
|
searchTerm: basicSearchTerm
|
|
220
215
|
}), showBasicFilters && (0, _react2.jsx)(_basicFilters.BasicFilters, {
|
|
216
|
+
jql: jql,
|
|
221
217
|
cloudId: cloudId || '',
|
|
222
|
-
onChange:
|
|
218
|
+
onChange: handleBasicFilterSelectionChange,
|
|
223
219
|
selections: filterSelections,
|
|
224
220
|
isJQLHydrating: basicFilterHydrationStatus === 'loading'
|
|
225
221
|
})), currentSearchMethod === 'jql' && (0, _react2.jsx)(_jqlEditor.JiraJQLEditor, {
|
package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Avatar from '@atlaskit/avatar';
|
|
3
|
+
import PeopleGroupIcon from '@atlaskit/icon/glyph/people-group';
|
|
3
4
|
import Lozenge from '@atlaskit/lozenge';
|
|
4
5
|
import { Box, Flex, xcss } from '@atlaskit/primitives';
|
|
5
6
|
const commonLabelStyles = xcss({
|
|
@@ -9,6 +10,11 @@ const commonLabelStyles = xcss({
|
|
|
9
10
|
const avatarOptionLabelStyles = xcss({
|
|
10
11
|
marginLeft: 'space.050'
|
|
11
12
|
});
|
|
13
|
+
const groupWrapperStyles = xcss({
|
|
14
|
+
width: "var(--ds-space-250, 20px)",
|
|
15
|
+
minWidth: "var(--ds-space-250, 20px)",
|
|
16
|
+
height: "var(--ds-space-250, 20px)"
|
|
17
|
+
});
|
|
12
18
|
const IconOptionLabel = ({
|
|
13
19
|
data
|
|
14
20
|
}) => {
|
|
@@ -46,7 +52,14 @@ const AvatarOptionLabel = ({
|
|
|
46
52
|
return /*#__PURE__*/React.createElement(Flex, {
|
|
47
53
|
alignItems: "center",
|
|
48
54
|
testId: testId || 'jlol-basic-filter-popup-select-option--avatar'
|
|
49
|
-
}, /*#__PURE__*/React.createElement(
|
|
55
|
+
}, data.isGroup ? /*#__PURE__*/React.createElement(Flex, {
|
|
56
|
+
alignItems: "center",
|
|
57
|
+
justifyContent: "center",
|
|
58
|
+
xcss: groupWrapperStyles
|
|
59
|
+
}, /*#__PURE__*/React.createElement(PeopleGroupIcon, {
|
|
60
|
+
size: "small",
|
|
61
|
+
label: ""
|
|
62
|
+
})) : /*#__PURE__*/React.createElement(Avatar, {
|
|
50
63
|
appearance: data.isSquare ? 'square' : 'circle',
|
|
51
64
|
src: data.avatar,
|
|
52
65
|
size: "xsmall"
|
|
@@ -124,11 +124,21 @@ const AsyncPopupSelect = ({
|
|
|
124
124
|
});
|
|
125
125
|
}, [fetchFilterOptions, filterType, fireEvent, searchTerm, selectedOptions.length, sortOptionsOnPopupOpen, status]);
|
|
126
126
|
const handleMenuClose = useCallback(() => {
|
|
127
|
+
/**
|
|
128
|
+
* Clearing the search is to ensure that the sortOptionsOnPopupOpen logic does not mess up.
|
|
129
|
+
* Without this, when the user opens, sortOptionsOnPopupOpen will inject the selected options to the list and the list count and values will be off
|
|
130
|
+
*/
|
|
131
|
+
if (searchTerm) {
|
|
132
|
+
handleInputChange('', {
|
|
133
|
+
action: 'input-change',
|
|
134
|
+
prevInputValue: searchTerm
|
|
135
|
+
});
|
|
136
|
+
}
|
|
127
137
|
fireEvent('ui.dropdown.closed.basicSearchDropdown', {
|
|
128
138
|
filterType,
|
|
129
139
|
selectionCount: selectedOptions.length
|
|
130
140
|
});
|
|
131
|
-
}, [filterType, fireEvent, selectedOptions.length]);
|
|
141
|
+
}, [filterType, fireEvent, handleInputChange, searchTerm, selectedOptions.length]);
|
|
132
142
|
useEffect(() => {
|
|
133
143
|
if (status === 'resolved') {
|
|
134
144
|
sortOptionsOnResolve();
|
|
@@ -40,18 +40,21 @@ const PopupTrigger = /*#__PURE__*/forwardRef(({
|
|
|
40
40
|
const [firstOption] = selectedOptions || [];
|
|
41
41
|
const hasOptions = selectedOptions && selectedOptions.length > 0;
|
|
42
42
|
const showButtonLoading = !isDisabled && isLoading;
|
|
43
|
+
const testId = `jlol-basic-filter-${filterType}-trigger`;
|
|
43
44
|
const LoadingButton = useCallback(() => /*#__PURE__*/React.createElement(LoadingStateAnimationWrapper, null, /*#__PURE__*/React.createElement(Button, {
|
|
44
45
|
iconAfter: /*#__PURE__*/React.createElement(Spinner, {
|
|
45
46
|
size: 'xsmall'
|
|
46
|
-
})
|
|
47
|
-
|
|
47
|
+
}),
|
|
48
|
+
testId: `${testId}--loading-button`
|
|
49
|
+
}, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages[`${filterType}Label`]))), [filterType, testId]);
|
|
48
50
|
const DefaultButton = useCallback(() => /*#__PURE__*/React.createElement(Button, {
|
|
49
51
|
appearance: "default",
|
|
50
52
|
isSelected: isSelected || hasOptions,
|
|
51
53
|
isDisabled: isDisabled,
|
|
52
54
|
iconAfter: /*#__PURE__*/React.createElement(ChevronDownIcon, {
|
|
53
55
|
label: ""
|
|
54
|
-
})
|
|
56
|
+
}),
|
|
57
|
+
testId: `${testId}--button`
|
|
55
58
|
}, /*#__PURE__*/React.createElement(Flex, null, /*#__PURE__*/React.createElement(Box, {
|
|
56
59
|
xcss: triggerButtonLabelStyles
|
|
57
60
|
}, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages[`${filterType}Label`]), firstOption && /*#__PURE__*/React.createElement(React.Fragment, null, ": ", firstOption.label)), selectedOptions && selectedOptions.length > 1 && /*#__PURE__*/React.createElement(Flex, {
|
|
@@ -59,7 +62,7 @@ const PopupTrigger = /*#__PURE__*/forwardRef(({
|
|
|
59
62
|
alignItems: "center"
|
|
60
63
|
}, /*#__PURE__*/React.createElement(Badge, {
|
|
61
64
|
appearance: "primary"
|
|
62
|
-
}, "+", selectedOptions.length - 1)))), [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions]);
|
|
65
|
+
}, "+", selectedOptions.length - 1)))), [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions, testId]);
|
|
63
66
|
|
|
64
67
|
/**
|
|
65
68
|
* We had an issue with the popup component referencing a stale DOM ref for the trigger button.
|
|
@@ -67,7 +70,7 @@ const PopupTrigger = /*#__PURE__*/forwardRef(({
|
|
|
67
70
|
*/
|
|
68
71
|
return /*#__PURE__*/React.createElement(Box, {
|
|
69
72
|
ref: ref,
|
|
70
|
-
testId:
|
|
73
|
+
testId: testId
|
|
71
74
|
}, showButtonLoading ? /*#__PURE__*/React.createElement(LoadingButton, null) : /*#__PURE__*/React.createElement(DefaultButton, null));
|
|
72
75
|
});
|
|
73
76
|
export default PopupTrigger;
|
|
@@ -1,27 +1,32 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
2
|
import { Flex, xcss } from '@atlaskit/primitives';
|
|
3
|
+
import { extractValuesFromNonComplexJQL } from '../utils/extractValuesFromNonComplexJQL';
|
|
3
4
|
import AsyncPopupSelect from './async-popup-select';
|
|
4
5
|
export const availableBasicFilterTypes = ['project', 'type', 'status', 'assignee'];
|
|
5
6
|
const basicFilterContainerStyles = xcss({
|
|
6
7
|
paddingLeft: "var(--ds-space-100, 8px)"
|
|
7
8
|
});
|
|
8
9
|
const BasicFilterContainer = ({
|
|
10
|
+
jql,
|
|
9
11
|
cloudId,
|
|
10
12
|
onChange,
|
|
11
13
|
selections,
|
|
12
14
|
isJQLHydrating
|
|
13
15
|
}) => {
|
|
16
|
+
const extractedFilterValues = useMemo(() => isJQLHydrating ? extractValuesFromNonComplexJQL(jql) : {}, [isJQLHydrating, jql]);
|
|
14
17
|
return /*#__PURE__*/React.createElement(Flex, {
|
|
15
18
|
xcss: basicFilterContainerStyles,
|
|
16
19
|
gap: "space.100",
|
|
17
20
|
testId: "jlol-basic-filter-container"
|
|
18
21
|
}, availableBasicFilterTypes.map(filter => {
|
|
22
|
+
var _extractedFilterValue;
|
|
23
|
+
const shouldShowHydrationLoader = isJQLHydrating && ((_extractedFilterValue = extractedFilterValues[filter]) === null || _extractedFilterValue === void 0 ? void 0 : _extractedFilterValue.length) > 0;
|
|
19
24
|
return /*#__PURE__*/React.createElement(AsyncPopupSelect, {
|
|
20
25
|
cloudId: cloudId,
|
|
21
26
|
filterType: filter,
|
|
22
27
|
key: filter,
|
|
23
28
|
selection: selections[filter] || [],
|
|
24
|
-
isJQLHydrating:
|
|
29
|
+
isJQLHydrating: shouldShowHydrationLoader,
|
|
25
30
|
isDisabled: !cloudId,
|
|
26
31
|
onSelectionChange: onChange
|
|
27
32
|
});
|
|
@@ -130,10 +130,14 @@ export const JiraSearchContainer = props => {
|
|
|
130
130
|
isQueryComplex: isCurrentQueryComplex
|
|
131
131
|
});
|
|
132
132
|
}, SEARCH_DEBOUNCE_MS);
|
|
133
|
-
const handleBasicFilterSelectionChange = useCallback(
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
133
|
+
const handleBasicFilterSelectionChange = useCallback((filterType, options) => {
|
|
134
|
+
const updatedSelection = {
|
|
135
|
+
...filterSelections,
|
|
136
|
+
[filterType]: options
|
|
137
|
+
};
|
|
138
|
+
setFilterSelections(updatedSelection);
|
|
139
|
+
debouncedBasicFilterSelectionChange(updatedSelection);
|
|
140
|
+
}, [debouncedBasicFilterSelectionChange, filterSelections]);
|
|
137
141
|
useEffect(() => {
|
|
138
142
|
const isCurrentQueryComplex = isQueryTooComplex(jql);
|
|
139
143
|
setIsComplexQuery(isCurrentQueryComplex);
|
|
@@ -154,14 +158,6 @@ export const JiraSearchContainer = props => {
|
|
|
154
158
|
}
|
|
155
159
|
}
|
|
156
160
|
}, [hydratedOptions, basicFilterHydrationStatus]);
|
|
157
|
-
const handleSelectionChange = useCallback((filterType, options) => {
|
|
158
|
-
const updatedSelection = {
|
|
159
|
-
...filterSelections,
|
|
160
|
-
[filterType]: options
|
|
161
|
-
};
|
|
162
|
-
setFilterSelections(updatedSelection);
|
|
163
|
-
handleBasicFilterSelectionChange(updatedSelection);
|
|
164
|
-
}, [handleBasicFilterSelectionChange, filterSelections]);
|
|
165
161
|
useEffect(() => {
|
|
166
162
|
if (currentCloudId !== cloudId) {
|
|
167
163
|
setBasicSearchTerm('');
|
|
@@ -185,8 +181,9 @@ export const JiraSearchContainer = props => {
|
|
|
185
181
|
onSearch: handleSearch,
|
|
186
182
|
searchTerm: basicSearchTerm
|
|
187
183
|
}), showBasicFilters && jsx(BasicFilters, {
|
|
184
|
+
jql: jql,
|
|
188
185
|
cloudId: cloudId || '',
|
|
189
|
-
onChange:
|
|
186
|
+
onChange: handleBasicFilterSelectionChange,
|
|
190
187
|
selections: filterSelections,
|
|
191
188
|
isJQLHydrating: basicFilterHydrationStatus === 'loading'
|
|
192
189
|
})), currentSearchMethod === 'jql' && jsx(JiraJQLEditor, {
|
|
@@ -8,4 +8,4 @@ export var FormContainer = styled.form(_templateObject2 || (_templateObject2 = _
|
|
|
8
8
|
|
|
9
9
|
// Override the top margin of fields
|
|
10
10
|
export var FieldContainer = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n flex: 1;\n margin-top: ", ";\n"])), "var(--ds-space-negative-100, -8px)");
|
|
11
|
-
export var SchemaSelectContainer = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width:
|
|
11
|
+
export var SchemaSelectContainer = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: 100%;\n max-width: 386px;\n"])));
|
package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Avatar from '@atlaskit/avatar';
|
|
3
|
+
import PeopleGroupIcon from '@atlaskit/icon/glyph/people-group';
|
|
3
4
|
import Lozenge from '@atlaskit/lozenge';
|
|
4
5
|
import { Box, Flex, xcss } from '@atlaskit/primitives';
|
|
5
6
|
var commonLabelStyles = xcss({
|
|
@@ -9,6 +10,11 @@ var commonLabelStyles = xcss({
|
|
|
9
10
|
var avatarOptionLabelStyles = xcss({
|
|
10
11
|
marginLeft: 'space.050'
|
|
11
12
|
});
|
|
13
|
+
var groupWrapperStyles = xcss({
|
|
14
|
+
width: "var(--ds-space-250, 20px)",
|
|
15
|
+
minWidth: "var(--ds-space-250, 20px)",
|
|
16
|
+
height: "var(--ds-space-250, 20px)"
|
|
17
|
+
});
|
|
12
18
|
var IconOptionLabel = function IconOptionLabel(_ref) {
|
|
13
19
|
var data = _ref.data;
|
|
14
20
|
var label = data.label,
|
|
@@ -41,7 +47,14 @@ var AvatarOptionLabel = function AvatarOptionLabel(_ref3) {
|
|
|
41
47
|
return /*#__PURE__*/React.createElement(Flex, {
|
|
42
48
|
alignItems: "center",
|
|
43
49
|
testId: testId || 'jlol-basic-filter-popup-select-option--avatar'
|
|
44
|
-
}, /*#__PURE__*/React.createElement(
|
|
50
|
+
}, data.isGroup ? /*#__PURE__*/React.createElement(Flex, {
|
|
51
|
+
alignItems: "center",
|
|
52
|
+
justifyContent: "center",
|
|
53
|
+
xcss: groupWrapperStyles
|
|
54
|
+
}, /*#__PURE__*/React.createElement(PeopleGroupIcon, {
|
|
55
|
+
size: "small",
|
|
56
|
+
label: ""
|
|
57
|
+
})) : /*#__PURE__*/React.createElement(Avatar, {
|
|
45
58
|
appearance: data.isSquare ? 'square' : 'circle',
|
|
46
59
|
src: data.avatar,
|
|
47
60
|
size: "xsmall"
|
|
@@ -162,11 +162,21 @@ var AsyncPopupSelect = function AsyncPopupSelect(_ref) {
|
|
|
162
162
|
});
|
|
163
163
|
}, [fetchFilterOptions, filterType, fireEvent, searchTerm, selectedOptions.length, sortOptionsOnPopupOpen, status]);
|
|
164
164
|
var handleMenuClose = useCallback(function () {
|
|
165
|
+
/**
|
|
166
|
+
* Clearing the search is to ensure that the sortOptionsOnPopupOpen logic does not mess up.
|
|
167
|
+
* Without this, when the user opens, sortOptionsOnPopupOpen will inject the selected options to the list and the list count and values will be off
|
|
168
|
+
*/
|
|
169
|
+
if (searchTerm) {
|
|
170
|
+
handleInputChange('', {
|
|
171
|
+
action: 'input-change',
|
|
172
|
+
prevInputValue: searchTerm
|
|
173
|
+
});
|
|
174
|
+
}
|
|
165
175
|
fireEvent('ui.dropdown.closed.basicSearchDropdown', {
|
|
166
176
|
filterType: filterType,
|
|
167
177
|
selectionCount: selectedOptions.length
|
|
168
178
|
});
|
|
169
|
-
}, [filterType, fireEvent, selectedOptions.length]);
|
|
179
|
+
}, [filterType, fireEvent, handleInputChange, searchTerm, selectedOptions.length]);
|
|
170
180
|
useEffect(function () {
|
|
171
181
|
if (status === 'resolved') {
|
|
172
182
|
sortOptionsOnResolve();
|
|
@@ -42,13 +42,15 @@ var PopupTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
42
42
|
firstOption = _ref3[0];
|
|
43
43
|
var hasOptions = selectedOptions && selectedOptions.length > 0;
|
|
44
44
|
var showButtonLoading = !isDisabled && isLoading;
|
|
45
|
+
var testId = "jlol-basic-filter-".concat(filterType, "-trigger");
|
|
45
46
|
var LoadingButton = useCallback(function () {
|
|
46
47
|
return /*#__PURE__*/React.createElement(LoadingStateAnimationWrapper, null, /*#__PURE__*/React.createElement(Button, {
|
|
47
48
|
iconAfter: /*#__PURE__*/React.createElement(Spinner, {
|
|
48
49
|
size: 'xsmall'
|
|
49
|
-
})
|
|
50
|
+
}),
|
|
51
|
+
testId: "".concat(testId, "--loading-button")
|
|
50
52
|
}, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages["".concat(filterType, "Label")])));
|
|
51
|
-
}, [filterType]);
|
|
53
|
+
}, [filterType, testId]);
|
|
52
54
|
var DefaultButton = useCallback(function () {
|
|
53
55
|
return /*#__PURE__*/React.createElement(Button, {
|
|
54
56
|
appearance: "default",
|
|
@@ -56,7 +58,8 @@ var PopupTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
56
58
|
isDisabled: isDisabled,
|
|
57
59
|
iconAfter: /*#__PURE__*/React.createElement(ChevronDownIcon, {
|
|
58
60
|
label: ""
|
|
59
|
-
})
|
|
61
|
+
}),
|
|
62
|
+
testId: "".concat(testId, "--button")
|
|
60
63
|
}, /*#__PURE__*/React.createElement(Flex, null, /*#__PURE__*/React.createElement(Box, {
|
|
61
64
|
xcss: triggerButtonLabelStyles
|
|
62
65
|
}, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages["".concat(filterType, "Label")]), firstOption && /*#__PURE__*/React.createElement(React.Fragment, null, ": ", firstOption.label)), selectedOptions && selectedOptions.length > 1 && /*#__PURE__*/React.createElement(Flex, {
|
|
@@ -65,7 +68,7 @@ var PopupTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
65
68
|
}, /*#__PURE__*/React.createElement(Badge, {
|
|
66
69
|
appearance: "primary"
|
|
67
70
|
}, "+", selectedOptions.length - 1))));
|
|
68
|
-
}, [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions]);
|
|
71
|
+
}, [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions, testId]);
|
|
69
72
|
|
|
70
73
|
/**
|
|
71
74
|
* We had an issue with the popup component referencing a stale DOM ref for the trigger button.
|
|
@@ -73,7 +76,7 @@ var PopupTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
73
76
|
*/
|
|
74
77
|
return /*#__PURE__*/React.createElement(Box, {
|
|
75
78
|
ref: ref,
|
|
76
|
-
testId:
|
|
79
|
+
testId: testId
|
|
77
80
|
}, showButtonLoading ? /*#__PURE__*/React.createElement(LoadingButton, null) : /*#__PURE__*/React.createElement(DefaultButton, null));
|
|
78
81
|
});
|
|
79
82
|
export default PopupTrigger;
|
|
@@ -1,26 +1,33 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
2
|
import { Flex, xcss } from '@atlaskit/primitives';
|
|
3
|
+
import { extractValuesFromNonComplexJQL } from '../utils/extractValuesFromNonComplexJQL';
|
|
3
4
|
import AsyncPopupSelect from './async-popup-select';
|
|
4
5
|
export var availableBasicFilterTypes = ['project', 'type', 'status', 'assignee'];
|
|
5
6
|
var basicFilterContainerStyles = xcss({
|
|
6
7
|
paddingLeft: "var(--ds-space-100, 8px)"
|
|
7
8
|
});
|
|
8
9
|
var BasicFilterContainer = function BasicFilterContainer(_ref) {
|
|
9
|
-
var
|
|
10
|
+
var jql = _ref.jql,
|
|
11
|
+
cloudId = _ref.cloudId,
|
|
10
12
|
onChange = _ref.onChange,
|
|
11
13
|
selections = _ref.selections,
|
|
12
14
|
isJQLHydrating = _ref.isJQLHydrating;
|
|
15
|
+
var extractedFilterValues = useMemo(function () {
|
|
16
|
+
return isJQLHydrating ? extractValuesFromNonComplexJQL(jql) : {};
|
|
17
|
+
}, [isJQLHydrating, jql]);
|
|
13
18
|
return /*#__PURE__*/React.createElement(Flex, {
|
|
14
19
|
xcss: basicFilterContainerStyles,
|
|
15
20
|
gap: "space.100",
|
|
16
21
|
testId: "jlol-basic-filter-container"
|
|
17
22
|
}, availableBasicFilterTypes.map(function (filter) {
|
|
23
|
+
var _extractedFilterValue;
|
|
24
|
+
var shouldShowHydrationLoader = isJQLHydrating && ((_extractedFilterValue = extractedFilterValues[filter]) === null || _extractedFilterValue === void 0 ? void 0 : _extractedFilterValue.length) > 0;
|
|
18
25
|
return /*#__PURE__*/React.createElement(AsyncPopupSelect, {
|
|
19
26
|
cloudId: cloudId,
|
|
20
27
|
filterType: filter,
|
|
21
28
|
key: filter,
|
|
22
29
|
selection: selections[filter] || [],
|
|
23
|
-
isJQLHydrating:
|
|
30
|
+
isJQLHydrating: shouldShowHydrationLoader,
|
|
24
31
|
isDisabled: !cloudId,
|
|
25
32
|
onSelectionChange: onChange
|
|
26
33
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
1
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
3
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
4
4
|
var _excluded = ["basicInputTextValue"];
|
|
5
5
|
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; }
|
|
@@ -158,10 +158,11 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
|
|
|
158
158
|
}, SEARCH_DEBOUNCE_MS),
|
|
159
159
|
_useDebouncedCallback2 = _slicedToArray(_useDebouncedCallback, 1),
|
|
160
160
|
debouncedBasicFilterSelectionChange = _useDebouncedCallback2[0];
|
|
161
|
-
var handleBasicFilterSelectionChange = useCallback(function (
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
161
|
+
var handleBasicFilterSelectionChange = useCallback(function (filterType, options) {
|
|
162
|
+
var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, _defineProperty({}, filterType, options));
|
|
163
|
+
setFilterSelections(updatedSelection);
|
|
164
|
+
debouncedBasicFilterSelectionChange(updatedSelection);
|
|
165
|
+
}, [debouncedBasicFilterSelectionChange, filterSelections]);
|
|
165
166
|
useEffect(function () {
|
|
166
167
|
var isCurrentQueryComplex = isQueryTooComplex(jql);
|
|
167
168
|
setIsComplexQuery(isCurrentQueryComplex);
|
|
@@ -180,11 +181,6 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
|
|
|
180
181
|
}
|
|
181
182
|
}
|
|
182
183
|
}, [hydratedOptions, basicFilterHydrationStatus]);
|
|
183
|
-
var handleSelectionChange = useCallback(function (filterType, options) {
|
|
184
|
-
var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, _defineProperty({}, filterType, options));
|
|
185
|
-
setFilterSelections(updatedSelection);
|
|
186
|
-
handleBasicFilterSelectionChange(updatedSelection);
|
|
187
|
-
}, [handleBasicFilterSelectionChange, filterSelections]);
|
|
188
184
|
useEffect(function () {
|
|
189
185
|
if (currentCloudId !== cloudId) {
|
|
190
186
|
setBasicSearchTerm('');
|
|
@@ -208,8 +204,9 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
|
|
|
208
204
|
onSearch: handleSearch,
|
|
209
205
|
searchTerm: basicSearchTerm
|
|
210
206
|
}), showBasicFilters && jsx(BasicFilters, {
|
|
207
|
+
jql: jql,
|
|
211
208
|
cloudId: cloudId || '',
|
|
212
|
-
onChange:
|
|
209
|
+
onChange: handleBasicFilterSelectionChange,
|
|
213
210
|
selections: filterSelections,
|
|
214
211
|
isJQLHydrating: basicFilterHydrationStatus === 'loading'
|
|
215
212
|
})), currentSearchMethod === 'jql' && jsx(JiraJQLEditor, {
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
import type { BasicFilterFieldType, SelectedOptionsMap, SelectOption } from '../types';
|
|
3
3
|
export declare const availableBasicFilterTypes: BasicFilterFieldType[];
|
|
4
4
|
export interface BasicFilterContainerProps {
|
|
5
|
+
jql: string;
|
|
5
6
|
cloudId: string;
|
|
6
7
|
selections: SelectedOptionsMap;
|
|
7
8
|
onChange: (filterType: BasicFilterFieldType, options: SelectOption[]) => void;
|
|
8
9
|
isJQLHydrating: boolean;
|
|
9
10
|
}
|
|
10
|
-
declare const BasicFilterContainer: ({ cloudId, onChange, selections, isJQLHydrating, }: BasicFilterContainerProps) => JSX.Element;
|
|
11
|
+
declare const BasicFilterContainer: ({ jql, cloudId, onChange, selections, isJQLHydrating, }: BasicFilterContainerProps) => JSX.Element;
|
|
11
12
|
export default BasicFilterContainer;
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
import type { BasicFilterFieldType, SelectedOptionsMap, SelectOption } from '../types';
|
|
3
3
|
export declare const availableBasicFilterTypes: BasicFilterFieldType[];
|
|
4
4
|
export interface BasicFilterContainerProps {
|
|
5
|
+
jql: string;
|
|
5
6
|
cloudId: string;
|
|
6
7
|
selections: SelectedOptionsMap;
|
|
7
8
|
onChange: (filterType: BasicFilterFieldType, options: SelectOption[]) => void;
|
|
8
9
|
isJQLHydrating: boolean;
|
|
9
10
|
}
|
|
10
|
-
declare const BasicFilterContainer: ({ cloudId, onChange, selections, isJQLHydrating, }: BasicFilterContainerProps) => JSX.Element;
|
|
11
|
+
declare const BasicFilterContainer: ({ jql, cloudId, onChange, selections, isJQLHydrating, }: BasicFilterContainerProps) => JSX.Element;
|
|
11
12
|
export default BasicFilterContainer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/link-datasource",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.13",
|
|
4
4
|
"description": "UI Components to support linking platform dataset feature",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^0.12.0",
|
|
56
56
|
"@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll": "^0.6.0",
|
|
57
57
|
"@atlaskit/pragmatic-drag-and-drop-react-indicator": "^0.17.0",
|
|
58
|
-
"@atlaskit/primitives": "^1.
|
|
58
|
+
"@atlaskit/primitives": "^1.13.0",
|
|
59
59
|
"@atlaskit/select": "^17.0.0",
|
|
60
60
|
"@atlaskit/smart-card": "^26.42.0",
|
|
61
61
|
"@atlaskit/spinner": "^16.0.0",
|