@atlaskit/link-datasource 1.12.3 → 1.12.4

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 (84) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/analytics/constants.js +1 -1
  3. package/dist/cjs/services/useBasicFilterAGG.js +40 -82
  4. package/dist/cjs/services/utils.js +1 -1
  5. package/dist/cjs/ui/issue-like-table/draggable-table-heading.js +0 -12
  6. package/dist/cjs/ui/issue-like-table/styled.js +1 -1
  7. package/dist/cjs/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.js +94 -0
  8. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +24 -13
  9. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/index.js +3 -1
  10. package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/transformers.js +15 -3
  11. package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +2 -1
  12. package/dist/es2019/analytics/constants.js +1 -1
  13. package/dist/es2019/services/useBasicFilterAGG.js +30 -53
  14. package/dist/es2019/services/utils.js +1 -1
  15. package/dist/es2019/ui/issue-like-table/draggable-table-heading.js +0 -12
  16. package/dist/es2019/ui/issue-like-table/styled.js +16 -4
  17. package/dist/es2019/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.js +52 -0
  18. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +15 -7
  19. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/index.js +3 -1
  20. package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/transformers.js +14 -2
  21. package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +2 -1
  22. package/dist/esm/analytics/constants.js +1 -1
  23. package/dist/esm/services/useBasicFilterAGG.js +41 -83
  24. package/dist/esm/services/utils.js +1 -1
  25. package/dist/esm/ui/issue-like-table/draggable-table-heading.js +0 -12
  26. package/dist/esm/ui/issue-like-table/styled.js +1 -1
  27. package/dist/esm/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.js +87 -0
  28. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +24 -13
  29. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/index.js +3 -1
  30. package/dist/esm/ui/jira-issues-modal/basic-filters/utils/transformers.js +12 -2
  31. package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +2 -1
  32. package/dist/types/services/useBasicFilterAGG.d.ts +9 -1
  33. package/dist/types/services/utils.d.ts +1 -1
  34. package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.d.ts +18 -0
  35. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +2 -1
  36. package/dist/types/ui/jira-issues-modal/basic-filters/ui/index.d.ts +2 -1
  37. package/dist/types/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +3 -1
  38. package/dist/types-ts4.5/services/useBasicFilterAGG.d.ts +9 -1
  39. package/dist/types-ts4.5/services/utils.d.ts +1 -1
  40. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.d.ts +18 -0
  41. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +2 -1
  42. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/index.d.ts +2 -1
  43. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +3 -1
  44. package/package.json +1 -1
  45. package/dist/cjs/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.js +0 -75
  46. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +0 -20
  47. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +0 -155
  48. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +0 -82
  49. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +0 -87
  50. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +0 -97
  51. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +0 -18
  52. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +0 -111
  53. package/dist/es2019/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.js +0 -39
  54. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +0 -14
  55. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +0 -149
  56. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +0 -76
  57. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +0 -81
  58. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +0 -91
  59. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +0 -12
  60. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +0 -105
  61. package/dist/esm/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.js +0 -68
  62. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +0 -14
  63. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +0 -149
  64. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +0 -76
  65. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +0 -81
  66. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +0 -91
  67. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +0 -12
  68. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +0 -105
  69. package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +0 -12
  70. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +0 -3
  71. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +0 -17
  72. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +0 -8
  73. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +0 -8
  74. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +0 -8
  75. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +0 -3
  76. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +0 -29
  77. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +0 -12
  78. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +0 -3
  79. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +0 -17
  80. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +0 -8
  81. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +0 -8
  82. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +0 -8
  83. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +0 -3
  84. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +0 -29
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 1.12.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [#42612](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42612) [`eb39b74b03b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/eb39b74b03b) - Adds hook to get field values from graphQL for basic filters.
8
+ - [#42598](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42598) [`6105d017042`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6105d017042) - [ux] Updated styles of the table header.
9
+
3
10
  ## 1.12.3
4
11
 
5
12
  ### 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.12.3"
10
+ packageVersion: "1.12.4"
11
11
  };
@@ -19,97 +19,55 @@ var useBasicFilterAGG = exports.useBasicFilterAGG = function useBasicFilterAGG()
19
19
  var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
20
20
  client = _useSmartLinkContext.connections.client;
21
21
  var gatewayGraphqlUrl = getGraphqlUrl(client.envKey, client.baseUrlOverride);
22
- var aggHeaders = (0, _react.useMemo)(function () {
23
- return new Headers({
24
- 'Content-Type': 'application/json',
25
- 'X-ExperimentalApi': 'JiraJqlBuilder'
26
- });
27
- }, []);
28
- var getHydratedJQL = (0, _react.useCallback)( /*#__PURE__*/function () {
29
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(cloudId, jql) {
30
- var body, request, response;
22
+ var requestCall = (0, _react.useCallback)( /*#__PURE__*/function () {
23
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(body) {
31
24
  return _regenerator.default.wrap(function _callee$(_context) {
32
25
  while (1) switch (_context.prev = _context.next) {
33
26
  case 0:
34
- body = JSON.stringify({
35
- variables: {
36
- cloudId: cloudId,
37
- jql: jql
38
- },
39
- operationName: 'hydrate',
40
- query: _utils.hydrateJQLQuery
41
- });
42
- request = new Request(gatewayGraphqlUrl, {
43
- method: 'POST',
44
- headers: aggHeaders,
45
- body: body
46
- });
47
- _context.prev = 2;
48
- _context.next = 5;
49
- return fetch(request);
50
- case 5:
51
- response = _context.sent;
52
- return _context.abrupt("return", response.json());
53
- case 9:
54
- _context.prev = 9;
55
- _context.t0 = _context["catch"](2);
56
- throw new Error(_context.t0);
57
- case 12:
27
+ return _context.abrupt("return", (0, _linkingCommon.request)('post', gatewayGraphqlUrl, body, {
28
+ 'X-ExperimentalApi': 'JiraJqlBuilder'
29
+ }, [200, 201, 202, 203, 204]));
30
+ case 1:
58
31
  case "end":
59
32
  return _context.stop();
60
33
  }
61
- }, _callee, null, [[2, 9]]);
34
+ }, _callee);
62
35
  }));
63
- return function (_x, _x2) {
36
+ return function (_x) {
64
37
  return _ref.apply(this, arguments);
65
38
  };
66
- }(), [gatewayGraphqlUrl, aggHeaders]);
67
- var getFieldValues = (0, _react.useCallback)( /*#__PURE__*/function () {
68
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(cloudId, jql, jqlTerm, searchString, pageCursor) {
69
- var body, request, response;
70
- return _regenerator.default.wrap(function _callee2$(_context2) {
71
- while (1) switch (_context2.prev = _context2.next) {
72
- case 0:
73
- body = JSON.stringify({
74
- variables: {
75
- cloudId: cloudId,
76
- jql: jql,
77
- first: 10,
78
- jqlTerm: jqlTerm,
79
- searchString: searchString,
80
- after: pageCursor
81
- },
82
- operationName: 'fieldValues',
83
- query: _utils.fieldValuesQuery
84
- });
85
- request = new Request(gatewayGraphqlUrl, {
86
- method: 'POST',
87
- headers: aggHeaders,
88
- body: body
89
- });
90
- _context2.prev = 2;
91
- _context2.next = 5;
92
- return fetch(request);
93
- case 5:
94
- response = _context2.sent;
95
- _context2.next = 8;
96
- return response.json();
97
- case 8:
98
- return _context2.abrupt("return", _context2.sent);
99
- case 11:
100
- _context2.prev = 11;
101
- _context2.t0 = _context2["catch"](2);
102
- throw new Error(_context2.t0);
103
- case 14:
104
- case "end":
105
- return _context2.stop();
106
- }
107
- }, _callee2, null, [[2, 11]]);
108
- }));
109
- return function (_x3, _x4, _x5, _x6, _x7) {
110
- return _ref2.apply(this, arguments);
111
- };
112
- }(), [gatewayGraphqlUrl, aggHeaders]);
39
+ }(), [gatewayGraphqlUrl]);
40
+ var getHydratedJQL = (0, _react.useCallback)(function (cloudId, jql) {
41
+ return requestCall({
42
+ variables: {
43
+ cloudId: cloudId,
44
+ jql: jql
45
+ },
46
+ operationName: 'hydrate',
47
+ query: _utils.hydrateJQLQuery
48
+ });
49
+ }, [requestCall]);
50
+ var getFieldValues = (0, _react.useCallback)(function (_ref2) {
51
+ var cloudId = _ref2.cloudId,
52
+ _ref2$jql = _ref2.jql,
53
+ jql = _ref2$jql === void 0 ? '' : _ref2$jql,
54
+ jqlTerm = _ref2.jqlTerm,
55
+ _ref2$searchString = _ref2.searchString,
56
+ searchString = _ref2$searchString === void 0 ? '' : _ref2$searchString,
57
+ pageCursor = _ref2.pageCursor;
58
+ return requestCall({
59
+ variables: {
60
+ cloudId: cloudId,
61
+ jql: jql,
62
+ first: 10,
63
+ jqlTerm: jqlTerm,
64
+ searchString: searchString,
65
+ after: pageCursor
66
+ },
67
+ operationName: 'fieldValues',
68
+ query: _utils.fieldValuesQuery
69
+ });
70
+ }, [requestCall]);
113
71
  return (0, _react.useMemo)(function () {
114
72
  return {
115
73
  getHydratedJQL: getHydratedJQL,
@@ -5,4 +5,4 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.hydrateJQLQuery = exports.fieldValuesQuery = void 0;
7
7
  var hydrateJQLQuery = exports.hydrateJQLQuery = "query hydrate($cloudId: ID!, $jql: String!) {\n jira {\n jqlBuilder(cloudId: $cloudId) {\n hydrateJqlQuery(query: $jql) {\n ... on JiraJqlHydratedQuery {\n fields {\n ... on JiraJqlQueryHydratedField {\n jqlTerm\n values {\n ... on JiraJqlQueryHydratedValue {\n values {\n ... on JiraJqlProjectFieldValue {\n jqlTerm\n displayName\n project {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlStatusFieldValue {\n jqlTerm\n displayName\n statusCategory {\n colorName\n }\n }\n ... on JiraJqlIssueTypeFieldValue {\n jqlTerm\n displayName\n issueTypes {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlUserFieldValue {\n jqlTerm\n displayName\n user {\n picture\n }\n }\n ... on JiraJqlGroupFieldValue {\n jqlTerm\n displayName\n group {\n name\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}";
8
- var fieldValuesQuery = exports.fieldValuesQuery = "query fieldValues($cloudId: ID!, $first: Int = 10, $jqlTerm: String!, $jql: String!, $searchString: String!, $after: String, $projectOptions: JiraProjectOptions) {\n jira {\n jqlBuilder(cloudId: $cloudId) {\n fieldValues(\n first: $first\n jqlTerm: $jqlTerm\n jqlContext: $jql\n searchString: $searchString\n after: $after\n ) {\n totalCount\n pageInfo {\n endCursor\n }\n edges {\n node {\n jqlTerm\n displayName\n ... on JiraJqlProjectFieldValue {\n project {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlIssueTypeFieldValue {\n issueTypes {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlStatusFieldValue {\n statusCategory {\n colorName\n }\n }\n ... on JiraJqlUserFieldValue {\n user {\n picture\n }\n }\n ... on JiraJqlGroupFieldValue {\n group {\n name\n }\n }\n }\n }\n }\n }\n }\n}";
8
+ var fieldValuesQuery = exports.fieldValuesQuery = "query fieldValues($cloudId: ID!, $first: Int = 10, $jqlTerm: String!, $jql: String!, $searchString: String!, $after: String) {\n jira {\n jqlBuilder(cloudId: $cloudId) {\n fieldValues(\n first: $first\n jqlTerm: $jqlTerm\n jqlContext: $jql\n searchString: $searchString\n after: $after\n ) {\n totalCount\n pageInfo {\n endCursor\n }\n edges {\n node {\n jqlTerm\n displayName\n ... on JiraJqlProjectFieldValue {\n project {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlIssueTypeFieldValue {\n issueTypes {\n avatar {\n small\n }\n }\n }\n ... on JiraJqlStatusFieldValue {\n statusCategory {\n colorName\n }\n }\n ... on JiraJqlUserFieldValue {\n user {\n picture\n }\n }\n ... on JiraJqlGroupFieldValue {\n group {\n name\n }\n }\n }\n }\n }\n }\n }\n}";
@@ -22,17 +22,6 @@ var _styled = require("./styled");
22
22
  var _index = require("./index");
23
23
  /** @jsx jsx */
24
24
 
25
- var tableHeadingStatusStyles = {
26
- idle: (0, _react2.css)({
27
- ':hover': {
28
- background: "var(--ds-surface-hovered, #091E4224)"
29
- }
30
- }),
31
- dragging: (0, _react2.css)({
32
- background: "var(--ds-background-disabled, #091E4224)",
33
- color: "var(--ds-text-disabled, #091E424F)"
34
- })
35
- };
36
25
  var verticallyAlignedStyles = (0, _react2.css)({
37
26
  display: 'flex',
38
27
  alignItems: 'center',
@@ -275,7 +264,6 @@ var DraggableTableHeading = exports.DraggableTableHeading = function DraggableTa
275
264
  }, [id, index, onWidthChange, state, tableId, width]);
276
265
  return (0, _react2.jsx)(_styled.TableHeading, {
277
266
  ref: mainHeaderCellRef,
278
- css: [tableHeadingStatusStyles[state.type]],
279
267
  "data-testid": "".concat(id, "-column-heading"),
280
268
  style: {
281
269
  width: width,
@@ -12,4 +12,4 @@ var _templateObject, _templateObject2;
12
12
  var ScrollableContainerHeight = exports.ScrollableContainerHeight = 590;
13
13
  var FieldTextFontSize = exports.FieldTextFontSize = '14px';
14
14
  var Table = exports.Table = _styled.default.table(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n"])));
15
- var TableHeading = exports.TableHeading = _styled.default.th(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n padding-block: ", " ", ";\n line-height: ", ";\n border-bottom: 2px solid ", ";\n & [data-testid='datasource-header-content--container'] {\n margin-top: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n"])), "var(--ds-space-300, 24px)", "var(--ds-space-100, 8px)", "var(--ds-font-lineHeight-300, 16px)", "var(--ds-background-accent-gray-subtler, ".concat(_colors.N40, ")"));
15
+ var TableHeading = exports.TableHeading = _styled.default.th(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n line-height: ", ";\n border-bottom: 2px solid ", ";\n height: calc(52px - ", " * 2 - 2px);\n vertical-align: bottom;\n\n & [data-testid='datasource-header-content--container'] {\n width: 100%;\n padding: ", " ", ";\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n white-space: normal;\n overflow: hidden;\n max-height: 2.5rem;\n word-wrap: break-word;\n\n &:hover {\n background: ", ";\n border-radius: 3px;\n }\n }\n"])), "var(--ds-font-lineHeight-300, 16px)", "var(--ds-background-accent-gray-subtler, ".concat(_colors.N40, ")"), "var(--ds-space-050, 4px)", "var(--ds-space-100, 4px)", "var(--ds-space-050, 2px)", "var(--ds-background-input-hovered, #F7F8F9)");
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useFilterOptions = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+ var _react = require("react");
13
+ var _useBasicFilterAGG2 = require("../../../../services/useBasicFilterAGG");
14
+ var _transformers = require("../utils/transformers");
15
+ var useFilterOptions = exports.useFilterOptions = function useFilterOptions(_ref) {
16
+ var filterType = _ref.filterType,
17
+ cloudId = _ref.cloudId;
18
+ var _useState = (0, _react.useState)([]),
19
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
20
+ filterOptions = _useState2[0],
21
+ setFilterOptions = _useState2[1];
22
+ var _useState3 = (0, _react.useState)(0),
23
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
24
+ totalCount = _useState4[0],
25
+ setTotalCount = _useState4[1];
26
+ var _useState5 = (0, _react.useState)('empty'),
27
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
28
+ status = _useState6[0],
29
+ setStatus = _useState6[1];
30
+ var _useState7 = (0, _react.useState)(undefined),
31
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
32
+ nextPageCursor = _useState8[0],
33
+ setNextPageCursor = _useState8[1];
34
+ var _useBasicFilterAGG = (0, _useBasicFilterAGG2.useBasicFilterAGG)(),
35
+ getFieldValues = _useBasicFilterAGG.getFieldValues;
36
+ var fetchFilterOptions = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
37
+ var _ref3,
38
+ pageCursor,
39
+ searchString,
40
+ response,
41
+ isNewSearch,
42
+ _args = arguments;
43
+ return _regenerator.default.wrap(function _callee$(_context) {
44
+ while (1) switch (_context.prev = _context.next) {
45
+ case 0:
46
+ _ref3 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, pageCursor = _ref3.pageCursor, searchString = _ref3.searchString;
47
+ setStatus('loading');
48
+ _context.prev = 2;
49
+ _context.next = 5;
50
+ return getFieldValues({
51
+ cloudId: cloudId,
52
+ jql: '',
53
+ jqlTerm: filterType,
54
+ searchString: searchString,
55
+ pageCursor: pageCursor
56
+ });
57
+ case 5:
58
+ response = _context.sent;
59
+ if (!(response.errors && response.errors.length > 0)) {
60
+ _context.next = 9;
61
+ break;
62
+ }
63
+ setStatus('rejected');
64
+ return _context.abrupt("return");
65
+ case 9:
66
+ isNewSearch = !pageCursor;
67
+ if (isNewSearch) {
68
+ setFilterOptions((0, _transformers.mapFieldValuesToFilterOptions)(response));
69
+ } else {
70
+ setFilterOptions([].concat((0, _toConsumableArray2.default)(filterOptions), (0, _toConsumableArray2.default)((0, _transformers.mapFieldValuesToFilterOptions)(response))));
71
+ }
72
+ setTotalCount((0, _transformers.mapFieldValuesToTotalCount)(response));
73
+ setNextPageCursor((0, _transformers.mapFieldValuesToPageCursor)(response));
74
+ setStatus('resolved');
75
+ _context.next = 19;
76
+ break;
77
+ case 16:
78
+ _context.prev = 16;
79
+ _context.t0 = _context["catch"](2);
80
+ setStatus('rejected');
81
+ case 19:
82
+ case "end":
83
+ return _context.stop();
84
+ }
85
+ }, _callee, null, [[2, 16]]);
86
+ })), [cloudId, filterOptions, filterType, getFieldValues]);
87
+ return {
88
+ filterOptions: filterOptions,
89
+ fetchFilterOptions: fetchFilterOptions,
90
+ totalCount: totalCount,
91
+ pageCursor: nextPageCursor,
92
+ status: status
93
+ };
94
+ };
@@ -14,7 +14,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
  var _reactIntlNext = require("react-intl-next");
16
16
  var _select = require("@atlaskit/select");
17
- var _useFieldValues2 = require("../../hooks/useFieldValues");
17
+ var _useFilterOptions2 = require("../../hooks/useFilterOptions");
18
18
  var _control = _interopRequireDefault(require("./control"));
19
19
  var _footer = _interopRequireDefault(require("./footer"));
20
20
  var _formatOptionLabel = _interopRequireDefault(require("./formatOptionLabel"));
@@ -29,6 +29,7 @@ var noFilterOptions = function noFilterOptions() {
29
29
  };
30
30
  var AsyncPopupSelect = function AsyncPopupSelect(_ref) {
31
31
  var filterType = _ref.filterType,
32
+ cloudId = _ref.cloudId,
32
33
  selection = _ref.selection,
33
34
  _ref$onSelectionChang = _ref.onSelectionChange,
34
35
  onSelectionChange = _ref$onSelectionChang === void 0 ? function () {} : _ref$onSelectionChang;
@@ -43,13 +44,14 @@ var AsyncPopupSelect = function AsyncPopupSelect(_ref) {
43
44
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
44
45
  selectedOptions = _useState4[0],
45
46
  setSelectedOptions = _useState4[1];
46
- var _useFieldValues = (0, _useFieldValues2.useFieldValues)({
47
- filterType: filterType
47
+ var _useFilterOptions = (0, _useFilterOptions2.useFilterOptions)({
48
+ filterType: filterType,
49
+ cloudId: cloudId
48
50
  }),
49
- filterOptions = _useFieldValues.filterOptions,
50
- fetchFilterOptions = _useFieldValues.fetchFilterOptions,
51
- totalCount = _useFieldValues.totalCount,
52
- status = _useFieldValues.status;
51
+ filterOptions = _useFilterOptions.filterOptions,
52
+ fetchFilterOptions = _useFilterOptions.fetchFilterOptions,
53
+ totalCount = _useFilterOptions.totalCount,
54
+ status = _useFilterOptions.status;
53
55
  var handleInputChange = (0, _react.useCallback)(function (searchString, actionMeta) {
54
56
  if (actionMeta.action === 'input-change' && searchString !== searchTerm) {
55
57
  setSearchTerm(searchString);
@@ -63,10 +65,13 @@ var AsyncPopupSelect = function AsyncPopupSelect(_ref) {
63
65
  return _regenerator.default.wrap(function _callee$(_context) {
64
66
  while (1) switch (_context.prev = _context.next) {
65
67
  case 0:
66
- if (status === 'empty') {
67
- fetchFilterOptions();
68
+ if (!(status === 'empty')) {
69
+ _context.next = 3;
70
+ break;
68
71
  }
69
- case 1:
72
+ _context.next = 3;
73
+ return fetchFilterOptions();
74
+ case 3:
70
75
  case "end":
71
76
  return _context.stop();
72
77
  }
@@ -79,18 +84,24 @@ var AsyncPopupSelect = function AsyncPopupSelect(_ref) {
79
84
  pickerRef === null || pickerRef === void 0 || (_pickerRef$current = pickerRef.current) === null || _pickerRef$current === void 0 || (_pickerRef$current = _pickerRef$current.selectRef) === null || _pickerRef$current === void 0 || (_pickerRef$current = _pickerRef$current.inputRef) === null || _pickerRef$current === void 0 || _pickerRef$current.focus();
80
85
  }
81
86
  }, [status]);
87
+ var isLoading = status === 'loading' || status === 'empty';
82
88
  return /*#__PURE__*/_react.default.createElement(_select.PopupSelect, {
83
89
  isMulti: true,
84
90
  maxMenuWidth: 300,
85
91
  minMenuWidth: 300,
86
92
  ref: pickerRef,
87
93
  testId: "jlol-basic-filter-popup-select",
88
- inputId: "jlol-basic-filter-popup-select--input",
89
- searchThreshold: 0,
94
+ inputId: "jlol-basic-filter-popup-select--input"
95
+ /*
96
+ this threshold controls the display of the search control (input field for search)
97
+ if this threshold is less than 0, when typing a search string that returns no results it will not remove the search control
98
+ if this threshold is 0 or higher, it will remove the search control when there are no results, the user will be unable to clear the search to see more results
99
+ */,
100
+ searchThreshold: -1,
90
101
  inputValue: searchTerm,
91
102
  closeMenuOnSelect: false,
92
103
  hideSelectedOptions: false,
93
- isLoading: status === 'loading',
104
+ isLoading: isLoading,
94
105
  placeholder: formatMessage(_messages.asyncPopupSelectMessages.selectPlaceholder),
95
106
  components: {
96
107
  /* @ts-expect-error - This component has stricter OptionType, hence a temp setup untill its made generic */
@@ -15,7 +15,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
15
15
  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; }
16
16
  var availableBasicFilterTypes = ['project', 'issuetype', 'status', 'assignee'];
17
17
  var BasicFilterContainer = function BasicFilterContainer(_ref) {
18
- var jql = _ref.jql;
18
+ var jql = _ref.jql,
19
+ cloudId = _ref.cloudId;
19
20
  var _useState = (0, _react.useState)([]),
20
21
  _useState2 = (0, _slicedToArray2.default)(_useState, 1),
21
22
  selection = _useState2[0];
@@ -30,6 +31,7 @@ var BasicFilterContainer = function BasicFilterContainer(_ref) {
30
31
  testId: "jlol-basic-filter-container"
31
32
  }, availableBasicFilterTypes.map(function (filter) {
32
33
  return /*#__PURE__*/_react.default.createElement(_asyncPopupSelect.default, {
34
+ cloudId: cloudId,
33
35
  filterType: filter,
34
36
  key: filter,
35
37
  selection: selection,
@@ -4,7 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.mapFieldValuesResponseData = mapFieldValuesResponseData;
7
+ exports.mapFieldValuesToFilterOptions = mapFieldValuesToFilterOptions;
8
+ exports.mapFieldValuesToPageCursor = mapFieldValuesToPageCursor;
9
+ exports.mapFieldValuesToTotalCount = mapFieldValuesToTotalCount;
8
10
  exports.mapHydrateResponseData = mapHydrateResponseData;
9
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
12
  var _types = require("../types");
@@ -38,7 +40,7 @@ function mapNodeToOption(_ref) {
38
40
  return _objectSpread(_objectSpread({}, baseProps), {}, {
39
41
  optionType: 'avatarLabel',
40
42
  avatar: user.picture,
41
- isSquare: true
43
+ isSquare: false
42
44
  });
43
45
  }
44
46
  if (group) {
@@ -88,10 +90,20 @@ function mapHydrateResponseData(_ref2) {
88
90
  });
89
91
  return transformedHydrateResponseData;
90
92
  }
91
- function mapFieldValuesResponseData(_ref5) {
93
+ function mapFieldValuesToFilterOptions(_ref5) {
92
94
  var _data$jira2;
93
95
  var data = _ref5.data;
94
96
  return (data === null || data === void 0 || (_data$jira2 = data.jira) === null || _data$jira2 === void 0 || (_data$jira2 = _data$jira2.jqlBuilder) === null || _data$jira2 === void 0 || (_data$jira2 = _data$jira2.fieldValues) === null || _data$jira2 === void 0 || (_data$jira2 = _data$jira2.edges) === null || _data$jira2 === void 0 ? void 0 : _data$jira2.map(function (edge) {
95
97
  return edge.node ? mapNodeToOption(edge.node) : null;
96
98
  }).filter(isNonNullSelectOption)) || [];
99
+ }
100
+ function mapFieldValuesToTotalCount(_ref6) {
101
+ var _data$jira3;
102
+ var data = _ref6.data;
103
+ return (data === null || data === void 0 || (_data$jira3 = data.jira) === null || _data$jira3 === void 0 || (_data$jira3 = _data$jira3.jqlBuilder) === null || _data$jira3 === void 0 || (_data$jira3 = _data$jira3.fieldValues) === null || _data$jira3 === void 0 ? void 0 : _data$jira3.totalCount) || 0;
104
+ }
105
+ function mapFieldValuesToPageCursor(_ref7) {
106
+ var _data$jira4;
107
+ var data = _ref7.data;
108
+ return data === null || data === void 0 || (_data$jira4 = data.jira) === null || _data$jira4 === void 0 || (_data$jira4 = _data$jira4.jqlBuilder) === null || _data$jira4 === void 0 || (_data$jira4 = _data$jira4.fieldValues) === null || _data$jira4 === void 0 || (_data$jira4 = _data$jira4.pageInfo) === null || _data$jira4 === void 0 ? void 0 : _data$jira4.endCursor;
97
109
  }
@@ -117,7 +117,8 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
117
117
  onSearch: handleSearch,
118
118
  searchTerm: basicSearchTerm
119
119
  }), showBasicFilters && (0, _react2.jsx)(_basicFilters.BasicFilters, {
120
- jql: jql
120
+ jql: jql,
121
+ cloudId: cloudId || ''
121
122
  })), currentSearchMethod === 'jql' && (0, _react2.jsx)(_jqlEditor.JiraJQLEditor, {
122
123
  cloudId: cloudId || '',
123
124
  isSearching: isSearching,
@@ -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.12.3"
4
+ packageVersion: "1.12.4"
5
5
  };
@@ -1,6 +1,6 @@
1
1
  import { useCallback, useMemo } from 'react';
2
2
  import { useSmartLinkContext } from '@atlaskit/link-provider';
3
- import { getBaseUrl } from '@atlaskit/linking-common';
3
+ import { getBaseUrl, request } from '@atlaskit/linking-common';
4
4
  import { fieldValuesQuery, hydrateJQLQuery } from './utils';
5
5
  const getGraphqlUrl = (envKey, baseUrlOverride) => {
6
6
  const baseUrl = baseUrlOverride || getBaseUrl(envKey);
@@ -13,58 +13,35 @@ export const useBasicFilterAGG = () => {
13
13
  }
14
14
  } = useSmartLinkContext();
15
15
  const gatewayGraphqlUrl = getGraphqlUrl(client.envKey, client.baseUrlOverride);
16
- const aggHeaders = useMemo(() => {
17
- return new Headers({
18
- 'Content-Type': 'application/json',
19
- 'X-ExperimentalApi': 'JiraJqlBuilder'
20
- });
21
- }, []);
22
- const getHydratedJQL = useCallback(async (cloudId, jql) => {
23
- const body = JSON.stringify({
24
- variables: {
25
- cloudId,
26
- jql
27
- },
28
- operationName: 'hydrate',
29
- query: hydrateJQLQuery
30
- });
31
- const request = new Request(gatewayGraphqlUrl, {
32
- method: 'POST',
33
- headers: aggHeaders,
34
- body
35
- });
36
- try {
37
- const response = await fetch(request);
38
- return response.json();
39
- } catch (e) {
40
- throw new Error(e);
41
- }
42
- }, [gatewayGraphqlUrl, aggHeaders]);
43
- const getFieldValues = useCallback(async (cloudId, jql, jqlTerm, searchString, pageCursor) => {
44
- const body = JSON.stringify({
45
- variables: {
46
- cloudId,
47
- jql,
48
- first: 10,
49
- jqlTerm,
50
- searchString,
51
- after: pageCursor
52
- },
53
- operationName: 'fieldValues',
54
- query: fieldValuesQuery
55
- });
56
- const request = new Request(gatewayGraphqlUrl, {
57
- method: 'POST',
58
- headers: aggHeaders,
59
- body
60
- });
61
- try {
62
- const response = await fetch(request);
63
- return await response.json();
64
- } catch (e) {
65
- throw new Error(e);
66
- }
67
- }, [gatewayGraphqlUrl, aggHeaders]);
16
+ const requestCall = useCallback(async body => request('post', gatewayGraphqlUrl, body, {
17
+ 'X-ExperimentalApi': 'JiraJqlBuilder'
18
+ }, [200, 201, 202, 203, 204]), [gatewayGraphqlUrl]);
19
+ const getHydratedJQL = useCallback((cloudId, jql) => requestCall({
20
+ variables: {
21
+ cloudId,
22
+ jql
23
+ },
24
+ operationName: 'hydrate',
25
+ query: hydrateJQLQuery
26
+ }), [requestCall]);
27
+ const getFieldValues = useCallback(({
28
+ cloudId,
29
+ jql = '',
30
+ jqlTerm,
31
+ searchString = '',
32
+ pageCursor
33
+ }) => requestCall({
34
+ variables: {
35
+ cloudId,
36
+ jql,
37
+ first: 10,
38
+ jqlTerm,
39
+ searchString,
40
+ after: pageCursor
41
+ },
42
+ operationName: 'fieldValues',
43
+ query: fieldValuesQuery
44
+ }), [requestCall]);
68
45
  return useMemo(() => ({
69
46
  getHydratedJQL,
70
47
  getFieldValues
@@ -58,7 +58,7 @@ export const hydrateJQLQuery = `query hydrate($cloudId: ID!, $jql: String!) {
58
58
  }
59
59
  }
60
60
  }`;
61
- export const fieldValuesQuery = `query fieldValues($cloudId: ID!, $first: Int = 10, $jqlTerm: String!, $jql: String!, $searchString: String!, $after: String, $projectOptions: JiraProjectOptions) {
61
+ export const fieldValuesQuery = `query fieldValues($cloudId: ID!, $first: Int = 10, $jqlTerm: String!, $jql: String!, $searchString: String!, $after: String) {
62
62
  jira {
63
63
  jqlBuilder(cloudId: $cloudId) {
64
64
  fieldValues(
@@ -13,17 +13,6 @@ import { offsetFromPointer } from '@atlaskit/pragmatic-drag-and-drop/util/offset
13
13
  import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/util/set-custom-native-drag-preview';
14
14
  import { TableHeading } from './styled';
15
15
  import { COLUMN_MIN_WIDTH } from './index';
16
- const tableHeadingStatusStyles = {
17
- idle: css({
18
- ':hover': {
19
- background: "var(--ds-surface-hovered, #091E4224)"
20
- }
21
- }),
22
- dragging: css({
23
- background: "var(--ds-background-disabled, #091E4224)",
24
- color: "var(--ds-text-disabled, #091E424F)"
25
- })
26
- };
27
16
  const verticallyAlignedStyles = css({
28
17
  display: 'flex',
29
18
  alignItems: 'center',
@@ -264,7 +253,6 @@ export const DraggableTableHeading = ({
264
253
  }, [id, index, onWidthChange, state, tableId, width]);
265
254
  return jsx(TableHeading, {
266
255
  ref: mainHeaderCellRef,
267
- css: [tableHeadingStatusStyles[state.type]],
268
256
  "data-testid": `${id}-column-heading`,
269
257
  style: {
270
258
  width,
@@ -7,13 +7,25 @@ export const Table = styled.table`
7
7
  `;
8
8
  export const TableHeading = styled.th`
9
9
  position: relative;
10
- padding-block: ${"var(--ds-space-300, 24px)"} ${"var(--ds-space-100, 8px)"};
11
10
  line-height: ${"var(--ds-font-lineHeight-300, 16px)"};
12
11
  border-bottom: 2px solid ${`var(--ds-background-accent-gray-subtler, ${N40})`};
12
+ height: calc(52px - ${"var(--ds-space-050, 4px)"} * 2 - 2px);
13
+ vertical-align: bottom;
14
+
13
15
  & [data-testid='datasource-header-content--container'] {
14
- margin-top: 0;
16
+ width: 100%;
17
+ padding: ${"var(--ds-space-100, 4px)"} ${"var(--ds-space-050, 2px)"};
18
+ display: -webkit-box;
19
+ -webkit-line-clamp: 2;
20
+ -webkit-box-orient: vertical;
21
+ white-space: normal;
15
22
  overflow: hidden;
16
- text-overflow: ellipsis;
17
- white-space: nowrap;
23
+ max-height: 2.5rem;
24
+ word-wrap: break-word;
25
+
26
+ &:hover {
27
+ background: ${"var(--ds-background-input-hovered, #F7F8F9)"};
28
+ border-radius: 3px;
29
+ }
18
30
  }
19
31
  `;