@atlaskit/link-datasource 1.19.0 → 1.19.2

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 (23) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/analytics/constants.js +1 -1
  3. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/index.js +2 -2
  4. package/dist/cjs/ui/jira-issues-modal/jira-search-container/buildJQL.js +6 -3
  5. package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +9 -3
  6. package/dist/cjs/ui/jira-issues-modal/modal/index.js +11 -2
  7. package/dist/es2019/analytics/constants.js +1 -1
  8. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/index.js +1 -1
  9. package/dist/es2019/ui/jira-issues-modal/jira-search-container/buildJQL.js +4 -3
  10. package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +9 -3
  11. package/dist/es2019/ui/jira-issues-modal/modal/index.js +18 -2
  12. package/dist/esm/analytics/constants.js +1 -1
  13. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/index.js +1 -1
  14. package/dist/esm/ui/jira-issues-modal/jira-search-container/buildJQL.js +6 -3
  15. package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +9 -3
  16. package/dist/esm/ui/jira-issues-modal/modal/index.js +11 -2
  17. package/dist/types/analytics/generated/analytics.types.d.ts +5 -1
  18. package/dist/types/ui/jira-issues-modal/basic-filters/ui/index.d.ts +1 -0
  19. package/dist/types/ui/jira-issues-modal/jira-search-container/index.d.ts +5 -1
  20. package/dist/types-ts4.5/analytics/generated/analytics.types.d.ts +5 -1
  21. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/index.d.ts +1 -0
  22. package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/index.d.ts +5 -1
  23. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 1.19.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#43713](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/43713) [`2fa24eb9ab7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2fa24eb9ab7) - Update JQL generation logic to create query to search for all issues when only filter values are present.
8
+ - Updated dependencies
9
+
10
+ ## 1.19.1
11
+
12
+ ### Patch Changes
13
+
14
+ - [#43693](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/43693) [`01533fad7e6`](https://bitbucket.org/atlassian/atlassian-frontend/commits/01533fad7e6) - Add basic filter selection count to insert event.
15
+
3
16
  ## 1.19.0
4
17
 
5
18
  ### Minor 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.0"
10
+ packageVersion: "1.19.2"
11
11
  };
@@ -4,11 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
7
+ exports.default = exports.availableBasicFilterTypes = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _primitives = require("@atlaskit/primitives");
10
10
  var _asyncPopupSelect = _interopRequireDefault(require("./async-popup-select"));
11
- var availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
11
+ var availableBasicFilterTypes = exports.availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
12
12
  var basicFilterContainerStyles = (0, _primitives.xcss)({
13
13
  paddingLeft: "var(--ds-space-100, 8px)"
14
14
  });
@@ -27,6 +27,9 @@ var buildJQL = exports.buildJQL = function buildJQL(input) {
27
27
  orderKey = _input$orderKey === void 0 ? 'created' : _input$orderKey,
28
28
  filterValues = input.filterValues;
29
29
  var trimmedRawSearch = rawSearch.trim();
30
+ var hasFilterSelectionValues = filterValues && Object.values(filterValues).some(function (value) {
31
+ return value.length > 0;
32
+ });
30
33
  if (!query) {
31
34
  return '';
32
35
  }
@@ -43,12 +46,12 @@ var buildJQL = exports.buildJQL = function buildJQL(input) {
43
46
  var orClause = _jqlAst.creators.compoundClause(_jqlAst.creators.compoundOperator(_jqlAst.COMPOUND_OPERATOR_OR), orClauseFields);
44
47
  query.appendClause(orClause, _jqlAst.COMPOUND_OPERATOR_AND);
45
48
  }
46
- if (filterValues) {
49
+ if (hasFilterSelectionValues) {
47
50
  Object.entries(filterValues).forEach(function (_ref) {
48
51
  var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
49
52
  key = _ref2[0],
50
53
  filterFieldValues = _ref2[1];
51
- if (!key || filterFieldValues.length === 0) {
54
+ if (filterFieldValues.length === 0) {
52
55
  return;
53
56
  }
54
57
  var filterInClause = _jqlAst.creators.terminalClause(_jqlAst.creators.field(key), _jqlAst.creators.operator(_jqlAst.OPERATOR_IN), _jqlAst.creators.listOperand(filterFieldValues.map(function (filterFieldValue) {
@@ -57,7 +60,7 @@ var buildJQL = exports.buildJQL = function buildJQL(input) {
57
60
  query.appendClause(filterInClause, _jqlAst.COMPOUND_OPERATOR_AND);
58
61
  });
59
62
  }
60
- if (!trimmedRawSearch) {
63
+ if (!trimmedRawSearch && !hasFilterSelectionValues) {
61
64
  var created = constructTerminalClause('created', _jqlAst.OPERATOR_GT_EQUALS, '-30d');
62
65
  query.appendClause(created, _jqlAst.COMPOUND_OPERATOR_AND);
63
66
  }
@@ -124,7 +124,10 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
124
124
  var handleSearch = (0, _react.useCallback)(function () {
125
125
  onSearch({
126
126
  jql: jql
127
- }, currentSearchMethod);
127
+ }, {
128
+ searchMethod: currentSearchMethod,
129
+ basicFilterSelections: filterSelections
130
+ });
128
131
  if (currentSearchMethod === 'basic') {
129
132
  fireEvent('ui.form.submitted.basicSearch', {});
130
133
  } else if (currentSearchMethod === 'jql') {
@@ -135,7 +138,7 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
135
138
  fetchHydratedJqlOptions();
136
139
  }
137
140
  }
138
- }, [currentSearchMethod, fetchHydratedJqlOptions, fireEvent, jql, onSearch, showBasicFilters]);
141
+ }, [currentSearchMethod, fetchHydratedJqlOptions, filterSelections, fireEvent, jql, onSearch, showBasicFilters]);
139
142
  var _useDebouncedCallback = (0, _useDebounce.useDebouncedCallback)(function (filterValues) {
140
143
  var jqlWithFilterValues = (0, _buildJQL.buildJQL)({
141
144
  rawSearch: basicSearchTerm,
@@ -146,7 +149,10 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
146
149
  setJql(jqlWithFilterValues);
147
150
  onSearch({
148
151
  jql: jqlWithFilterValues
149
- }, currentSearchMethod);
152
+ }, {
153
+ searchMethod: currentSearchMethod,
154
+ basicFilterSelections: filterSelections
155
+ });
150
156
  }, _asyncPopupSelect.SEARCH_DEBOUNCE_MS),
151
157
  _useDebouncedCallback2 = (0, _slicedToArray2.default)(_useDebouncedCallback, 1),
152
158
  debouncedBasicFilterSelectionChange = _useDebouncedCallback2[0];
@@ -36,6 +36,7 @@ var _noInstances = require("../../common/error-state/no-instances");
36
36
  var _noResults = require("../../common/error-state/no-results");
37
37
  var _issueLikeTable = require("../../issue-like-table");
38
38
  var _link = _interopRequireDefault(require("../../issue-like-table/render-type/link"));
39
+ var _ui = require("../basic-filters/ui");
39
40
  var _initialStateView = require("../initial-state-view");
40
41
  var _jiraSearchContainer = require("../jira-search-container");
41
42
  var _modeSwitcher = require("../mode-switcher");
@@ -140,6 +141,7 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
140
141
  setCurrentSearchMethod = _useState12[1];
141
142
  var searchMethodSearchedWith = (0, _react.useRef)(null);
142
143
  var visibleColumnCount = (0, _react.useRef)((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
144
+ var basicFilterSelectionsSearchedWith = (0, _react.useRef)({});
143
145
  var parameters = (0, _react.useMemo)(function () {
144
146
  return !!cloudId ? {
145
147
  cloudId: cloudId,
@@ -304,9 +306,12 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
304
306
  }
305
307
  }, [currentViewMode, status, fireIssueViewAnalytics, fireCountViewedEvent]);
306
308
  (0, _useColumnPickerRenderedFailedUfoExperience.useColumnPickerRenderedFailedUfoExperience)(status, modalRenderInstanceId);
307
- var onSearch = (0, _react.useCallback)(function (newParameters, searchMethod) {
309
+ var onSearch = (0, _react.useCallback)(function (newParameters, _ref2) {
310
+ var searchMethod = _ref2.searchMethod,
311
+ basicFilterSelections = _ref2.basicFilterSelections;
308
312
  searchCount.current++;
309
313
  searchMethodSearchedWith.current = searchMethod;
314
+ basicFilterSelectionsSearchedWith.current = basicFilterSelections;
310
315
  if (jql !== newParameters.jql) {
311
316
  userInteractionActions.current.add(_types.DatasourceAction.QUERY_UPDATED);
312
317
  }
@@ -345,6 +350,10 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
345
350
  if (!isParametersSet || !jql || !selectedJiraSite) {
346
351
  return;
347
352
  }
353
+ var filterSelectionCount = _ui.availableBasicFilterTypes.reduce(function (current, filter) {
354
+ var _basicFilterSelection;
355
+ return _objectSpread(_objectSpread({}, current), {}, (0, _defineProperty2.default)({}, "".concat(filter, "BasicFilterSelectionCount"), ((_basicFilterSelection = basicFilterSelectionsSearchedWith.current[filter]) === null || _basicFilterSelection === void 0 ? void 0 : _basicFilterSelection.length) || 0));
356
+ }, {});
348
357
  var insertButtonClickedEvent = analyticsEvent.update({
349
358
  actionSubjectId: 'insert',
350
359
  attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
@@ -354,7 +363,7 @@ var PlainJiraIssuesConfigModal = exports.PlainJiraIssuesConfigModal = function P
354
363
  searchCount: searchCount.current,
355
364
  searchMethod: (0, _utils.mapSearchMethod)(searchMethodSearchedWith.current),
356
365
  actions: Array.from(userInteractionActions.current)
357
- }),
366
+ }, searchMethodSearchedWith.current === 'basic' ? _objectSpread({}, filterSelectionCount) : {}),
358
367
  eventType: 'ui'
359
368
  });
360
369
 
@@ -1,5 +1,5 @@
1
1
  export const EVENT_CHANNEL = 'media';
2
2
  export const packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.19.0"
4
+ packageVersion: "1.19.2"
5
5
  };
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Flex, xcss } from '@atlaskit/primitives';
3
3
  import AsyncPopupSelect from './async-popup-select';
4
- const availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
4
+ export const availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
5
5
  const basicFilterContainerStyles = xcss({
6
6
  paddingLeft: "var(--ds-space-100, 8px)"
7
7
  });
@@ -19,6 +19,7 @@ export const buildJQL = input => {
19
19
  filterValues
20
20
  } = input;
21
21
  const trimmedRawSearch = rawSearch.trim();
22
+ const hasFilterSelectionValues = filterValues && Object.values(filterValues).some(value => value.length > 0);
22
23
  if (!query) {
23
24
  return '';
24
25
  }
@@ -35,16 +36,16 @@ export const buildJQL = input => {
35
36
  const orClause = creators.compoundClause(creators.compoundOperator(COMPOUND_OPERATOR_OR), orClauseFields);
36
37
  query.appendClause(orClause, COMPOUND_OPERATOR_AND);
37
38
  }
38
- if (filterValues) {
39
+ if (hasFilterSelectionValues) {
39
40
  Object.entries(filterValues).forEach(([key, filterFieldValues]) => {
40
- if (!key || filterFieldValues.length === 0) {
41
+ if (filterFieldValues.length === 0) {
41
42
  return;
42
43
  }
43
44
  const filterInClause = creators.terminalClause(creators.field(key), creators.operator(OPERATOR_IN), creators.listOperand(filterFieldValues.map(filterFieldValue => creators.valueOperand(filterFieldValue.value))));
44
45
  query.appendClause(filterInClause, COMPOUND_OPERATOR_AND);
45
46
  });
46
47
  }
47
- if (!trimmedRawSearch) {
48
+ if (!trimmedRawSearch && !hasFilterSelectionValues) {
48
49
  const created = constructTerminalClause('created', OPERATOR_GT_EQUALS, '-30d');
49
50
  query.appendClause(created, COMPOUND_OPERATOR_AND);
50
51
  }
@@ -94,7 +94,10 @@ export const JiraSearchContainer = props => {
94
94
  const handleSearch = useCallback(() => {
95
95
  onSearch({
96
96
  jql
97
- }, currentSearchMethod);
97
+ }, {
98
+ searchMethod: currentSearchMethod,
99
+ basicFilterSelections: filterSelections
100
+ });
98
101
  if (currentSearchMethod === 'basic') {
99
102
  fireEvent('ui.form.submitted.basicSearch', {});
100
103
  } else if (currentSearchMethod === 'jql') {
@@ -105,7 +108,7 @@ export const JiraSearchContainer = props => {
105
108
  fetchHydratedJqlOptions();
106
109
  }
107
110
  }
108
- }, [currentSearchMethod, fetchHydratedJqlOptions, fireEvent, jql, onSearch, showBasicFilters]);
111
+ }, [currentSearchMethod, fetchHydratedJqlOptions, filterSelections, fireEvent, jql, onSearch, showBasicFilters]);
109
112
  const [debouncedBasicFilterSelectionChange] = useDebouncedCallback(filterValues => {
110
113
  const jqlWithFilterValues = buildJQL({
111
114
  rawSearch: basicSearchTerm,
@@ -116,7 +119,10 @@ export const JiraSearchContainer = props => {
116
119
  setJql(jqlWithFilterValues);
117
120
  onSearch({
118
121
  jql: jqlWithFilterValues
119
- }, currentSearchMethod);
122
+ }, {
123
+ searchMethod: currentSearchMethod,
124
+ basicFilterSelections: filterSelections
125
+ });
120
126
  }, SEARCH_DEBOUNCE_MS);
121
127
  const handleBasicFilterSelectionChange = useCallback(filterValues => {
122
128
  setFilterSelections(filterValues);
@@ -24,6 +24,7 @@ import { NoInstancesView } from '../../common/error-state/no-instances';
24
24
  import { NoResults } from '../../common/error-state/no-results';
25
25
  import { EmptyState, IssueLikeDataTableView } from '../../issue-like-table';
26
26
  import LinkRenderType from '../../issue-like-table/render-type/link';
27
+ import { availableBasicFilterTypes } from '../basic-filters/ui';
27
28
  import { InitialStateView } from '../initial-state-view';
28
29
  import { JiraSearchContainer } from '../jira-search-container';
29
30
  import { ModeSwitcher } from '../mode-switcher';
@@ -107,6 +108,7 @@ export const PlainJiraIssuesConfigModal = props => {
107
108
  const [currentSearchMethod, setCurrentSearchMethod] = useState(initialSearchMethod);
108
109
  const searchMethodSearchedWith = useRef(null);
109
110
  const visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
111
+ const basicFilterSelectionsSearchedWith = useRef({});
110
112
  const parameters = useMemo(() => !!cloudId ? {
111
113
  cloudId,
112
114
  jql: jql || ''
@@ -252,9 +254,13 @@ export const PlainJiraIssuesConfigModal = props => {
252
254
  }
253
255
  }, [currentViewMode, status, fireIssueViewAnalytics, fireCountViewedEvent]);
254
256
  useColumnPickerRenderedFailedUfoExperience(status, modalRenderInstanceId);
255
- const onSearch = useCallback((newParameters, searchMethod) => {
257
+ const onSearch = useCallback((newParameters, {
258
+ searchMethod,
259
+ basicFilterSelections
260
+ }) => {
256
261
  searchCount.current++;
257
262
  searchMethodSearchedWith.current = searchMethod;
263
+ basicFilterSelectionsSearchedWith.current = basicFilterSelections;
258
264
  if (jql !== newParameters.jql) {
259
265
  userInteractionActions.current.add(DatasourceAction.QUERY_UPDATED);
260
266
  }
@@ -293,6 +299,13 @@ export const PlainJiraIssuesConfigModal = props => {
293
299
  if (!isParametersSet || !jql || !selectedJiraSite) {
294
300
  return;
295
301
  }
302
+ const filterSelectionCount = availableBasicFilterTypes.reduce((current, filter) => {
303
+ var _basicFilterSelection;
304
+ return {
305
+ ...current,
306
+ [`${filter}BasicFilterSelectionCount`]: ((_basicFilterSelection = basicFilterSelectionsSearchedWith.current[filter]) === null || _basicFilterSelection === void 0 ? void 0 : _basicFilterSelection.length) || 0
307
+ };
308
+ }, {});
296
309
  const insertButtonClickedEvent = analyticsEvent.update({
297
310
  actionSubjectId: 'insert',
298
311
  attributes: {
@@ -302,7 +315,10 @@ export const PlainJiraIssuesConfigModal = props => {
302
315
  display: getDisplayValue(currentViewMode, totalCount || 0),
303
316
  searchCount: searchCount.current,
304
317
  searchMethod: mapSearchMethod(searchMethodSearchedWith.current),
305
- actions: Array.from(userInteractionActions.current)
318
+ actions: Array.from(userInteractionActions.current),
319
+ ...(searchMethodSearchedWith.current === 'basic' ? {
320
+ ...filterSelectionCount
321
+ } : {})
306
322
  },
307
323
  eventType: 'ui'
308
324
  });
@@ -1,5 +1,5 @@
1
1
  export var EVENT_CHANNEL = 'media';
2
2
  export var packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.19.0"
4
+ packageVersion: "1.19.2"
5
5
  };
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Flex, xcss } from '@atlaskit/primitives';
3
3
  import AsyncPopupSelect from './async-popup-select';
4
- var availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
4
+ export var availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
5
5
  var basicFilterContainerStyles = xcss({
6
6
  paddingLeft: "var(--ds-space-100, 8px)"
7
7
  });
@@ -20,6 +20,9 @@ export var buildJQL = function buildJQL(input) {
20
20
  orderKey = _input$orderKey === void 0 ? 'created' : _input$orderKey,
21
21
  filterValues = input.filterValues;
22
22
  var trimmedRawSearch = rawSearch.trim();
23
+ var hasFilterSelectionValues = filterValues && Object.values(filterValues).some(function (value) {
24
+ return value.length > 0;
25
+ });
23
26
  if (!query) {
24
27
  return '';
25
28
  }
@@ -36,12 +39,12 @@ export var buildJQL = function buildJQL(input) {
36
39
  var orClause = creators.compoundClause(creators.compoundOperator(COMPOUND_OPERATOR_OR), orClauseFields);
37
40
  query.appendClause(orClause, COMPOUND_OPERATOR_AND);
38
41
  }
39
- if (filterValues) {
42
+ if (hasFilterSelectionValues) {
40
43
  Object.entries(filterValues).forEach(function (_ref) {
41
44
  var _ref2 = _slicedToArray(_ref, 2),
42
45
  key = _ref2[0],
43
46
  filterFieldValues = _ref2[1];
44
- if (!key || filterFieldValues.length === 0) {
47
+ if (filterFieldValues.length === 0) {
45
48
  return;
46
49
  }
47
50
  var filterInClause = creators.terminalClause(creators.field(key), creators.operator(OPERATOR_IN), creators.listOperand(filterFieldValues.map(function (filterFieldValue) {
@@ -50,7 +53,7 @@ export var buildJQL = function buildJQL(input) {
50
53
  query.appendClause(filterInClause, COMPOUND_OPERATOR_AND);
51
54
  });
52
55
  }
53
- if (!trimmedRawSearch) {
56
+ if (!trimmedRawSearch && !hasFilterSelectionValues) {
54
57
  var created = constructTerminalClause('created', OPERATOR_GT_EQUALS, '-30d');
55
58
  query.appendClause(created, COMPOUND_OPERATOR_AND);
56
59
  }
@@ -115,7 +115,10 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
115
115
  var handleSearch = useCallback(function () {
116
116
  onSearch({
117
117
  jql: jql
118
- }, currentSearchMethod);
118
+ }, {
119
+ searchMethod: currentSearchMethod,
120
+ basicFilterSelections: filterSelections
121
+ });
119
122
  if (currentSearchMethod === 'basic') {
120
123
  fireEvent('ui.form.submitted.basicSearch', {});
121
124
  } else if (currentSearchMethod === 'jql') {
@@ -126,7 +129,7 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
126
129
  fetchHydratedJqlOptions();
127
130
  }
128
131
  }
129
- }, [currentSearchMethod, fetchHydratedJqlOptions, fireEvent, jql, onSearch, showBasicFilters]);
132
+ }, [currentSearchMethod, fetchHydratedJqlOptions, filterSelections, fireEvent, jql, onSearch, showBasicFilters]);
130
133
  var _useDebouncedCallback = useDebouncedCallback(function (filterValues) {
131
134
  var jqlWithFilterValues = buildJQL({
132
135
  rawSearch: basicSearchTerm,
@@ -137,7 +140,10 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
137
140
  setJql(jqlWithFilterValues);
138
141
  onSearch({
139
142
  jql: jqlWithFilterValues
140
- }, currentSearchMethod);
143
+ }, {
144
+ searchMethod: currentSearchMethod,
145
+ basicFilterSelections: filterSelections
146
+ });
141
147
  }, SEARCH_DEBOUNCE_MS),
142
148
  _useDebouncedCallback2 = _slicedToArray(_useDebouncedCallback, 1),
143
149
  debouncedBasicFilterSelectionChange = _useDebouncedCallback2[0];
@@ -31,6 +31,7 @@ import { NoInstancesView } from '../../common/error-state/no-instances';
31
31
  import { NoResults } from '../../common/error-state/no-results';
32
32
  import { EmptyState, IssueLikeDataTableView } from '../../issue-like-table';
33
33
  import LinkRenderType from '../../issue-like-table/render-type/link';
34
+ import { availableBasicFilterTypes } from '../basic-filters/ui';
34
35
  import { InitialStateView } from '../initial-state-view';
35
36
  import { JiraSearchContainer } from '../jira-search-container';
36
37
  import { ModeSwitcher } from '../mode-switcher';
@@ -131,6 +132,7 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
131
132
  setCurrentSearchMethod = _useState12[1];
132
133
  var searchMethodSearchedWith = useRef(null);
133
134
  var visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
135
+ var basicFilterSelectionsSearchedWith = useRef({});
134
136
  var parameters = useMemo(function () {
135
137
  return !!cloudId ? {
136
138
  cloudId: cloudId,
@@ -295,9 +297,12 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
295
297
  }
296
298
  }, [currentViewMode, status, fireIssueViewAnalytics, fireCountViewedEvent]);
297
299
  useColumnPickerRenderedFailedUfoExperience(status, modalRenderInstanceId);
298
- var onSearch = useCallback(function (newParameters, searchMethod) {
300
+ var onSearch = useCallback(function (newParameters, _ref2) {
301
+ var searchMethod = _ref2.searchMethod,
302
+ basicFilterSelections = _ref2.basicFilterSelections;
299
303
  searchCount.current++;
300
304
  searchMethodSearchedWith.current = searchMethod;
305
+ basicFilterSelectionsSearchedWith.current = basicFilterSelections;
301
306
  if (jql !== newParameters.jql) {
302
307
  userInteractionActions.current.add(DatasourceAction.QUERY_UPDATED);
303
308
  }
@@ -336,6 +341,10 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
336
341
  if (!isParametersSet || !jql || !selectedJiraSite) {
337
342
  return;
338
343
  }
344
+ var filterSelectionCount = availableBasicFilterTypes.reduce(function (current, filter) {
345
+ var _basicFilterSelection;
346
+ return _objectSpread(_objectSpread({}, current), {}, _defineProperty({}, "".concat(filter, "BasicFilterSelectionCount"), ((_basicFilterSelection = basicFilterSelectionsSearchedWith.current[filter]) === null || _basicFilterSelection === void 0 ? void 0 : _basicFilterSelection.length) || 0));
347
+ }, {});
339
348
  var insertButtonClickedEvent = analyticsEvent.update({
340
349
  actionSubjectId: 'insert',
341
350
  attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
@@ -345,7 +354,7 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
345
354
  searchCount: searchCount.current,
346
355
  searchMethod: mapSearchMethod(searchMethodSearchedWith.current),
347
356
  actions: Array.from(userInteractionActions.current)
348
- }),
357
+ }, searchMethodSearchedWith.current === 'basic' ? _objectSpread({}, filterSelectionCount) : {}),
349
358
  eventType: 'ui'
350
359
  });
351
360
 
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generates Typescript types for analytics events from analytics.spec.yaml
5
5
  *
6
- * @codegen <<SignedSource::4e6414d2c19c29a67f20beee73d4b788>>
6
+ * @codegen <<SignedSource::650bd05729c6d9d8eb143f643a8c34c2>>
7
7
  * @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen link-datasource
8
8
  */
9
9
  export type PackageMetaDataType = {
@@ -46,6 +46,10 @@ export type ButtonClickedCancelAttributesType = {
46
46
  destinationObjectTypes: unknown[];
47
47
  extensionKey: string | null;
48
48
  actions: unknown[];
49
+ projectBasicFilterSelectionCount: number;
50
+ statusBasicFilterSelectionCount: number;
51
+ issuetypeBasicFilterSelectionCount: number;
52
+ assigneeBasicFilterSelectionCount: number;
49
53
  };
50
54
  export type LinkClickedSingleItemAttributesType = {
51
55
  extensionKey: string | null;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import type { BasicFilterFieldType, SelectedOptionsMap, SelectOption } from '../types';
3
+ export declare const availableBasicFilterTypes: BasicFilterFieldType[];
3
4
  export interface BasicFilterContainerProps {
4
5
  cloudId: string;
5
6
  selections: SelectedOptionsMap;
@@ -1,10 +1,14 @@
1
1
  import { jsx } from '@emotion/react';
2
2
  import type { JiraSearchMethod } from '../../../common/types';
3
+ import { SelectedOptionsMap } from '../basic-filters/types';
3
4
  import { JiraIssueDatasourceParameters, JiraIssueDatasourceParametersQuery } from '../types';
4
5
  export declare const ALLOWED_ORDER_BY_KEYS: string[];
5
6
  export interface SearchContainerProps {
6
7
  isSearching?: boolean;
7
- onSearch: (query: JiraIssueDatasourceParametersQuery, searchMethod: JiraSearchMethod) => void;
8
+ onSearch: (query: JiraIssueDatasourceParametersQuery, { searchMethod, basicFilterSelections, }: {
9
+ searchMethod: JiraSearchMethod;
10
+ basicFilterSelections: SelectedOptionsMap;
11
+ }) => void;
8
12
  initialSearchMethod: JiraSearchMethod;
9
13
  onSearchMethodChange: (searchMethod: JiraSearchMethod) => void;
10
14
  parameters?: JiraIssueDatasourceParameters;
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generates Typescript types for analytics events from analytics.spec.yaml
5
5
  *
6
- * @codegen <<SignedSource::4e6414d2c19c29a67f20beee73d4b788>>
6
+ * @codegen <<SignedSource::650bd05729c6d9d8eb143f643a8c34c2>>
7
7
  * @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen link-datasource
8
8
  */
9
9
  export type PackageMetaDataType = {
@@ -46,6 +46,10 @@ export type ButtonClickedCancelAttributesType = {
46
46
  destinationObjectTypes: unknown[];
47
47
  extensionKey: string | null;
48
48
  actions: unknown[];
49
+ projectBasicFilterSelectionCount: number;
50
+ statusBasicFilterSelectionCount: number;
51
+ issuetypeBasicFilterSelectionCount: number;
52
+ assigneeBasicFilterSelectionCount: number;
49
53
  };
50
54
  export type LinkClickedSingleItemAttributesType = {
51
55
  extensionKey: string | null;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import type { BasicFilterFieldType, SelectedOptionsMap, SelectOption } from '../types';
3
+ export declare const availableBasicFilterTypes: BasicFilterFieldType[];
3
4
  export interface BasicFilterContainerProps {
4
5
  cloudId: string;
5
6
  selections: SelectedOptionsMap;
@@ -1,10 +1,14 @@
1
1
  import { jsx } from '@emotion/react';
2
2
  import type { JiraSearchMethod } from '../../../common/types';
3
+ import { SelectedOptionsMap } from '../basic-filters/types';
3
4
  import { JiraIssueDatasourceParameters, JiraIssueDatasourceParametersQuery } from '../types';
4
5
  export declare const ALLOWED_ORDER_BY_KEYS: string[];
5
6
  export interface SearchContainerProps {
6
7
  isSearching?: boolean;
7
- onSearch: (query: JiraIssueDatasourceParametersQuery, searchMethod: JiraSearchMethod) => void;
8
+ onSearch: (query: JiraIssueDatasourceParametersQuery, { searchMethod, basicFilterSelections, }: {
9
+ searchMethod: JiraSearchMethod;
10
+ basicFilterSelections: SelectedOptionsMap;
11
+ }) => void;
8
12
  initialSearchMethod: JiraSearchMethod;
9
13
  onSearchMethodChange: (searchMethod: JiraSearchMethod) => void;
10
14
  parameters?: JiraIssueDatasourceParameters;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "1.19.0",
3
+ "version": "1.19.2",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -46,7 +46,7 @@
46
46
  "@atlaskit/jql-ast": "^3.0.0",
47
47
  "@atlaskit/jql-editor-autocomplete-rest": "^2.0.0",
48
48
  "@atlaskit/link-client-extension": "^1.8.0",
49
- "@atlaskit/linking-common": "^4.19.0",
49
+ "@atlaskit/linking-common": "^4.20.0",
50
50
  "@atlaskit/linking-types": "^8.5.0",
51
51
  "@atlaskit/lozenge": "^11.4.0",
52
52
  "@atlaskit/modal-dialog": "^12.8.0",
@@ -62,7 +62,7 @@
62
62
  "@atlaskit/tag": "^12.0.0",
63
63
  "@atlaskit/textfield": "6.0.0",
64
64
  "@atlaskit/theme": "^12.6.0",
65
- "@atlaskit/tokens": "^1.28.0",
65
+ "@atlaskit/tokens": "^1.29.0",
66
66
  "@atlaskit/tooltip": "^18.0.0",
67
67
  "@atlaskit/ufo": "^0.2.4",
68
68
  "@atlassianlabs/jql-editor": "^2.0.1",