@atlaskit/link-datasource 1.11.1 → 1.12.1

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 (114) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/analytics/constants.js +1 -1
  3. package/dist/cjs/services/mocks.js +134 -0
  4. package/dist/cjs/services/useBasicFilterAGG.js +119 -0
  5. package/dist/cjs/services/utils.js +8 -0
  6. package/dist/cjs/ui/assets-modal/modal/index.js +2 -2
  7. package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +5 -1
  8. package/dist/cjs/ui/issue-like-table/draggable-table-heading.js +109 -5
  9. package/dist/cjs/ui/issue-like-table/index.js +109 -95
  10. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +20 -0
  11. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +155 -0
  12. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +82 -0
  13. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +87 -0
  14. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +97 -0
  15. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +18 -0
  16. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +111 -0
  17. package/dist/cjs/ui/jira-issues-modal/basic-filters/types.js +15 -0
  18. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
  19. package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/transformers.js +97 -0
  20. package/dist/cjs/ui/jira-issues-modal/modal/index.js +16 -5
  21. package/dist/es2019/analytics/constants.js +1 -1
  22. package/dist/es2019/services/mocks.js +128 -0
  23. package/dist/es2019/services/useBasicFilterAGG.js +72 -0
  24. package/dist/es2019/services/utils.js +113 -0
  25. package/dist/es2019/ui/assets-modal/modal/index.js +2 -2
  26. package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +5 -1
  27. package/dist/es2019/ui/issue-like-table/draggable-table-heading.js +113 -5
  28. package/dist/es2019/ui/issue-like-table/index.js +82 -72
  29. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +14 -0
  30. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +149 -0
  31. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +76 -0
  32. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +81 -0
  33. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +91 -0
  34. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +12 -0
  35. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +105 -0
  36. package/dist/es2019/ui/jira-issues-modal/basic-filters/types.js +9 -0
  37. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
  38. package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/transformers.js +91 -0
  39. package/dist/es2019/ui/jira-issues-modal/modal/index.js +15 -4
  40. package/dist/esm/analytics/constants.js +1 -1
  41. package/dist/esm/services/mocks.js +128 -0
  42. package/dist/esm/services/useBasicFilterAGG.js +112 -0
  43. package/dist/esm/services/utils.js +2 -0
  44. package/dist/esm/ui/assets-modal/modal/index.js +2 -2
  45. package/dist/esm/ui/datasource-table-view/datasourceTableView.js +5 -1
  46. package/dist/esm/ui/issue-like-table/draggable-table-heading.js +109 -5
  47. package/dist/esm/ui/issue-like-table/index.js +108 -94
  48. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +14 -0
  49. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +149 -0
  50. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +76 -0
  51. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +81 -0
  52. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +91 -0
  53. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +12 -0
  54. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +105 -0
  55. package/dist/esm/ui/jira-issues-modal/basic-filters/types.js +9 -0
  56. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
  57. package/dist/esm/ui/jira-issues-modal/basic-filters/utils/transformers.js +89 -0
  58. package/dist/esm/ui/jira-issues-modal/modal/index.js +17 -6
  59. package/dist/types/services/mocks.d.ts +3 -0
  60. package/dist/types/services/useBasicFilterAGG.d.ts +5 -0
  61. package/dist/types/services/utils.d.ts +2 -0
  62. package/dist/types/ui/datasource-table-view/types.d.ts +4 -0
  63. package/dist/types/ui/issue-like-table/draggable-table-heading.d.ts +3 -2
  64. package/dist/types/ui/issue-like-table/index.d.ts +5 -3
  65. package/dist/types/ui/issue-like-table/types.d.ts +5 -0
  66. package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +1 -1
  67. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +3 -0
  68. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +17 -0
  69. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +8 -0
  70. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +8 -0
  71. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +8 -0
  72. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +3 -0
  73. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +29 -0
  74. package/dist/types/ui/jira-issues-modal/basic-filters/types.d.ts +93 -0
  75. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.d.ts +1 -1
  76. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.d.ts +1 -1
  77. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +1 -1
  78. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +1 -1
  79. package/dist/types/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +8 -0
  80. package/dist/types/ui/jira-issues-modal/jira-search-container/buildJQL.d.ts +1 -1
  81. package/dist/types/ui/jira-issues-modal/types.d.ts +4 -0
  82. package/dist/types-ts4.5/services/mocks.d.ts +3 -0
  83. package/dist/types-ts4.5/services/useBasicFilterAGG.d.ts +5 -0
  84. package/dist/types-ts4.5/services/utils.d.ts +2 -0
  85. package/dist/types-ts4.5/ui/datasource-table-view/types.d.ts +4 -0
  86. package/dist/types-ts4.5/ui/issue-like-table/draggable-table-heading.d.ts +3 -2
  87. package/dist/types-ts4.5/ui/issue-like-table/index.d.ts +5 -3
  88. package/dist/types-ts4.5/ui/issue-like-table/types.d.ts +5 -0
  89. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +1 -1
  90. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +3 -0
  91. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +17 -0
  92. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +8 -0
  93. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +8 -0
  94. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +8 -0
  95. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +3 -0
  96. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +29 -0
  97. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/types.d.ts +93 -0
  98. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.d.ts +1 -1
  99. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.d.ts +1 -1
  100. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +1 -1
  101. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +1 -1
  102. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +8 -0
  103. package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/buildJQL.d.ts +1 -1
  104. package/dist/types-ts4.5/ui/jira-issues-modal/types.d.ts +4 -0
  105. package/examples-helpers/buildIssueLikeTable.tsx +15 -1
  106. package/examples-helpers/buildJiraIssuesTable.tsx +15 -1
  107. package/package.json +6 -6
  108. package/report.api.md +11 -0
  109. package/tmp/api-report-tmp.d.ts +11 -0
  110. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -5
  111. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -1
  112. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -1
  113. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.d.ts +0 -23
  114. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.d.ts +0 -23
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 1.12.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 1.12.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#38725](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38725) [`da6ee1eea9c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/da6ee1eea9c) - [ux] `JiraIssuesConfigModal` now has new optional prop `columnCustomSizes` which is an object with keys representing column key and value being a width of that column.
14
+ `DatasourceTableView` now has two new props: `columnCustomSizes` with same type and `onColumnResize` callback of shape `(key: string, width: number) => void;` that will be called
15
+ every time customer resizing a column.
16
+
17
+ ### Patch Changes
18
+
19
+ - [#42539](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42539) [`581b3f7a822`](https://bitbucket.org/atlassian/atlassian-frontend/commits/581b3f7a822) - [ux] Assets Config Modal now allows users to search again when datasource is 'rejected'
20
+ - [#42383](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42383) [`624c5e73c9d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/624c5e73c9d) - Add transformers for mapping the AGG response for field values and hydrated JQL values to arrays of SelectOption for use within basic filters. Add new types defining each potential lozenge appearance and their mappings to status category colors.
21
+ - Updated dependencies
22
+
3
23
  ## 1.11.1
4
24
 
5
25
  ### 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.11.1"
10
+ packageVersion: "1.12.1"
11
11
  };
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mockHydrateJqlResponse = exports.mockFieldValuesResponse = void 0;
7
+ var mockHydrateJqlResponse = exports.mockHydrateJqlResponse = {
8
+ data: {
9
+ jira: {
10
+ jqlBuilder: {
11
+ hydrateJqlQuery: {
12
+ fields: [{
13
+ jqlTerm: 'issuetype',
14
+ values: [{
15
+ values: [{
16
+ displayName: 'Category',
17
+ jqlTerm: 'Category',
18
+ issueTypes: [{
19
+ avatar: {
20
+ small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/16627?size=medium'
21
+ }
22
+ }]
23
+ }]
24
+ }, {
25
+ values: [{
26
+ displayName: '!disturbed',
27
+ jqlTerm: '"!disturbed"',
28
+ issueTypes: [{
29
+ avatar: {
30
+ small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/16640?size=medium'
31
+ }
32
+ }, {
33
+ avatar: {
34
+ small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/16628?size=medium'
35
+ }
36
+ }]
37
+ }]
38
+ }]
39
+ }, {
40
+ jqlTerm: 'project',
41
+ values: [{
42
+ values: [{
43
+ displayName: '(Deprecated) Koopa Troopas',
44
+ jqlTerm: '"(Deprecated) Koopa Troopas"',
45
+ project: {
46
+ avatar: {
47
+ small: 'https://hello.atlassian.net/rest/api/2/universal_avatar/view/type/project/avatar/36328?size=small'
48
+ }
49
+ }
50
+ }]
51
+ }]
52
+ }, {
53
+ jqlTerm: 'assignee',
54
+ values: [{
55
+ values: [{
56
+ displayName: 'Nidhin Joseph',
57
+ jqlTerm: '70121:97052100-1513-42bc-a2f0-d77e71f0b7eb',
58
+ user: {
59
+ picture: 'https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/70121:97052100-1513-42bc-a2f0-d77e71f0b7eb/3d737224-7e8f-4e0c-888c-d5ff6044d484/128'
60
+ }
61
+ }]
62
+ }]
63
+ }, {
64
+ jqlTerm: 'status',
65
+ values: [{
66
+ values: [{
67
+ displayName: 'Done',
68
+ jqlTerm: 'Done',
69
+ statusCategory: {
70
+ colorName: 'GREEN'
71
+ }
72
+ }]
73
+ }]
74
+ }]
75
+ }
76
+ }
77
+ }
78
+ }
79
+ };
80
+ var mockFieldValuesResponse = exports.mockFieldValuesResponse = {
81
+ data: {
82
+ jira: {
83
+ jqlBuilder: {
84
+ fieldValues: {
85
+ totalCount: 4,
86
+ pageInfo: {
87
+ endCursor: 'YXJyYXljb25uZWN0aW9uOjM='
88
+ },
89
+ edges: [{
90
+ node: {
91
+ jqlTerm: '"My IT TEST"',
92
+ displayName: 'My IT TEST',
93
+ project: {
94
+ avatar: {
95
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10403?size=small'
96
+ }
97
+ }
98
+ }
99
+ }, {
100
+ node: {
101
+ jqlTerm: 'Test',
102
+ displayName: 'Test',
103
+ project: {
104
+ avatar: {
105
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10411?size=small'
106
+ }
107
+ }
108
+ }
109
+ }, {
110
+ node: {
111
+ jqlTerm: '"Test rights"',
112
+ displayName: 'Test rights',
113
+ project: {
114
+ avatar: {
115
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10405?size=small'
116
+ }
117
+ }
118
+ }
119
+ }, {
120
+ node: {
121
+ jqlTerm: 'Test2',
122
+ displayName: 'Test2',
123
+ project: {
124
+ avatar: {
125
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10410?size=small'
126
+ }
127
+ }
128
+ }
129
+ }]
130
+ }
131
+ }
132
+ }
133
+ }
134
+ };
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useBasicFilterAGG = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _react = require("react");
11
+ var _linkProvider = require("@atlaskit/link-provider");
12
+ var _linkingCommon = require("@atlaskit/linking-common");
13
+ var _utils = require("./utils");
14
+ var getGraphqlUrl = function getGraphqlUrl(envKey, baseUrlOverride) {
15
+ var baseUrl = baseUrlOverride || (0, _linkingCommon.getBaseUrl)(envKey);
16
+ return baseUrl ? "".concat(baseUrl, "/graphql") : '/gateway/api/graphql';
17
+ };
18
+ var useBasicFilterAGG = exports.useBasicFilterAGG = function useBasicFilterAGG() {
19
+ var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
20
+ client = _useSmartLinkContext.connections.client;
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;
31
+ return _regenerator.default.wrap(function _callee$(_context) {
32
+ while (1) switch (_context.prev = _context.next) {
33
+ 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:
58
+ case "end":
59
+ return _context.stop();
60
+ }
61
+ }, _callee, null, [[2, 9]]);
62
+ }));
63
+ return function (_x, _x2) {
64
+ return _ref.apply(this, arguments);
65
+ };
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]);
113
+ return (0, _react.useMemo)(function () {
114
+ return {
115
+ getHydratedJQL: getHydratedJQL,
116
+ getFieldValues: getFieldValues
117
+ };
118
+ }, [getHydratedJQL, getFieldValues]);
119
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.hydrateJQLQuery = exports.fieldValuesQuery = void 0;
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}";
@@ -244,7 +244,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
244
244
  return _regenerator.default.wrap(function _callee$(_context) {
245
245
  while (1) switch (_context.prev = _context.next) {
246
246
  case 0:
247
- if (schemaId !== searchSchemaId || aql !== searchAql) {
247
+ if (schemaId !== searchSchemaId || aql !== searchAql || status === 'rejected') {
248
248
  searchCount.current++;
249
249
  if (schemaId !== searchSchemaId) {
250
250
  userInteractionActions.current.add(_types.DatasourceAction.SCHEMA_UPDATED);
@@ -268,7 +268,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
268
268
  return function (_x, _x2) {
269
269
  return _ref.apply(this, arguments);
270
270
  };
271
- }(), [aql, reset, schemaId]);
271
+ }(), [aql, reset, schemaId, status]);
272
272
  var renderModalTitleContent = (0, _react.useCallback)(function () {
273
273
  if (workspaceError) {
274
274
  return undefined;
@@ -29,7 +29,9 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
29
29
  parameters = _ref.parameters,
30
30
  visibleColumnKeys = _ref.visibleColumnKeys,
31
31
  onVisibleColumnKeysChange = _ref.onVisibleColumnKeysChange,
32
- url = _ref.url;
32
+ url = _ref.url,
33
+ columnCustomSizes = _ref.columnCustomSizes,
34
+ onColumnResize = _ref.onColumnResize;
33
35
  var _useDatasourceTableSt = (0, _useDatasourceTableState.useDatasourceTableState)({
34
36
  datasourceId: datasourceId,
35
37
  parameters: parameters,
@@ -137,6 +139,8 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
137
139
  columns: columns,
138
140
  visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
139
141
  onVisibleColumnKeysChange: onVisibleColumnKeysChange,
142
+ columnCustomSizes: columnCustomSizes,
143
+ onColumnResize: onColumnResize,
140
144
  scrollableContainerHeight: _styled.ScrollableContainerHeight,
141
145
  parentContainerRenderInstanceId: tableRenderInstanceId,
142
146
  extensionKey: extensionKey
@@ -13,10 +13,13 @@ var _tinyInvariant = _interopRequireDefault(require("tiny-invariant"));
13
13
  var _closestEdge = require("@atlaskit/pragmatic-drag-and-drop-hitbox/addon/closest-edge");
14
14
  var _boxWithoutTerminal = require("@atlaskit/pragmatic-drag-and-drop-react-indicator/box-without-terminal");
15
15
  var _element = require("@atlaskit/pragmatic-drag-and-drop/adapter/element");
16
+ var _cancelUnhandled = require("@atlaskit/pragmatic-drag-and-drop/addon/cancel-unhandled");
16
17
  var _combine = require("@atlaskit/pragmatic-drag-and-drop/util/combine");
18
+ var _disableNativeDragPreview = require("@atlaskit/pragmatic-drag-and-drop/util/disable-native-drag-preview");
17
19
  var _offsetFromPointer = require("@atlaskit/pragmatic-drag-and-drop/util/offset-from-pointer");
18
20
  var _setCustomNativeDragPreview = require("@atlaskit/pragmatic-drag-and-drop/util/set-custom-native-drag-preview");
19
21
  var _styled = require("./styled");
22
+ var _index = require("./index");
20
23
  /** @jsx jsx */
21
24
 
22
25
  var tableHeadingStatusStyles = {
@@ -44,6 +47,40 @@ var dropTargetStyles = (0, _react2.css)({
44
47
  var noPointerEventsStyles = (0, _react2.css)({
45
48
  pointerEvents: 'none'
46
49
  });
50
+ var resizerStyles = (0, _react2.css)({
51
+ '--local-hitbox-width': "var(--ds-space-300, 24px)",
52
+ width: 'var(--local-hitbox-width)',
53
+ cursor: 'col-resize',
54
+ flexGrow: '0',
55
+ position: 'absolute',
56
+ zIndex: 1,
57
+ // we want this to sit on top of adjacent column headers
58
+ right: 'calc(-1 * calc(var(--local-hitbox-width) / 2))',
59
+ top: 0,
60
+ '::before': {
61
+ opacity: 0,
62
+ '--local-line-width': "var(--ds-border-width, 2px)",
63
+ content: '""',
64
+ position: 'absolute',
65
+ background: "var(--ds-border-brand, #0052CC)",
66
+ width: 'var(--local-line-width)',
67
+ inset: 0,
68
+ left: "calc(50% - calc(var(--local-line-width) / 2))",
69
+ transition: 'opacity 0.2s ease'
70
+ },
71
+ ':hover::before': {
72
+ opacity: 1
73
+ }
74
+ });
75
+ var resizingStyles = (0, _react2.css)({
76
+ // turning off the resizing cursor as sometimes it can cause the cursor to flicker
77
+ // while resizing. The browser controls the cursor while dragging, but the browser
78
+ // can sometimes bug out.
79
+ cursor: 'unset',
80
+ '::before': {
81
+ opacity: 1
82
+ }
83
+ });
47
84
  var idleState = {
48
85
  type: 'idle'
49
86
  };
@@ -57,8 +94,10 @@ var DraggableTableHeading = exports.DraggableTableHeading = function DraggableTa
57
94
  tableId = _ref.tableId,
58
95
  dndPreviewHeight = _ref.dndPreviewHeight,
59
96
  dragPreview = _ref.dragPreview,
60
- maxWidth = _ref.maxWidth;
61
- var ref = (0, _react.useRef)(null);
97
+ width = _ref.width,
98
+ onWidthChange = _ref.onWidthChange;
99
+ var mainHeaderCellRef = (0, _react.useRef)(null);
100
+ var columnResizeHandleRef = (0, _react.useRef)(null);
62
101
  var _useState = (0, _react.useState)(idleState),
63
102
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
64
103
  state = _useState2[0],
@@ -73,7 +112,7 @@ var DraggableTableHeading = exports.DraggableTableHeading = function DraggableTa
73
112
  setClosestEdge = _useState6[1];
74
113
  var dropTargetRef = (0, _react.useRef)(null);
75
114
  (0, _react.useEffect)(function () {
76
- var cell = ref.current;
115
+ var cell = mainHeaderCellRef.current;
77
116
  (0, _tinyInvariant.default)(cell);
78
117
  return (0, _combine.combine)((0, _element.draggable)({
79
118
  element: cell,
@@ -176,15 +215,80 @@ var DraggableTableHeading = exports.DraggableTableHeading = function DraggableTa
176
215
  }
177
216
  });
178
217
  }, [tableId]);
218
+
219
+ // Handling column resizing
220
+ (0, _react.useEffect)(function () {
221
+ var resizeHandle = columnResizeHandleRef.current;
222
+ (0, _tinyInvariant.default)(resizeHandle);
223
+ var mainHeaderCell = mainHeaderCellRef.current;
224
+ (0, _tinyInvariant.default)(mainHeaderCell);
225
+ return (0, _element.draggable)({
226
+ element: resizeHandle,
227
+ getInitialData: function getInitialData() {
228
+ // metadata related to currently dragging item (can be read by drop events etc)
229
+ return {
230
+ type: 'column-resize',
231
+ id: id,
232
+ index: index,
233
+ tableId: tableId
234
+ };
235
+ },
236
+ // Is called when dragging started
237
+ onGenerateDragPreview: function onGenerateDragPreview(_ref6) {
238
+ var nativeSetDragImage = _ref6.nativeSetDragImage;
239
+ // We don't show any preview, since column separator (handle) is moving with the cursor
240
+ (0, _disableNativeDragPreview.disableNativeDragPreview)({
241
+ nativeSetDragImage: nativeSetDragImage
242
+ });
243
+ // Block drag operations outside `@atlaskit/pragmatic-drag-and-drop`
244
+ _cancelUnhandled.cancelUnhandled.start();
245
+ setState({
246
+ type: 'resizing',
247
+ initialWidth: width
248
+ });
249
+ },
250
+ onDrag: function onDrag(_ref7) {
251
+ var location = _ref7.location;
252
+ var relativeDistanceX = location.current.input.clientX - location.initial.input.clientX;
253
+ (0, _tinyInvariant.default)(state.type === 'resizing');
254
+ var initialWidth = state.initialWidth;
255
+
256
+ // Set the width of our header being resized
257
+ var proposedWidth = initialWidth + relativeDistanceX;
258
+ if (initialWidth >= _index.COLUMN_MIN_WIDTH && proposedWidth < _index.COLUMN_MIN_WIDTH) {
259
+ proposedWidth = _index.COLUMN_MIN_WIDTH;
260
+ }
261
+
262
+ // We update width css directly live
263
+ mainHeaderCell.style.setProperty('width', "".concat(proposedWidth, "px"));
264
+ },
265
+ onDrop: function onDrop() {
266
+ _cancelUnhandled.cancelUnhandled.stop();
267
+ setState(idleState);
268
+ if (onWidthChange) {
269
+ // We use element's css value as a source of truth (compare to another Ref)
270
+ var currentWidthPx = mainHeaderCell.style.getPropertyValue('width');
271
+ onWidthChange(+currentWidthPx.slice(0, -2));
272
+ }
273
+ }
274
+ });
275
+ }, [id, index, onWidthChange, state, tableId, width]);
179
276
  return (0, _react2.jsx)(_styled.TableHeading, {
180
- ref: ref,
277
+ ref: mainHeaderCellRef,
181
278
  css: [tableHeadingStatusStyles[state.type]],
182
279
  "data-testid": "".concat(id, "-column-heading"),
183
280
  style: {
184
- maxWidth: maxWidth,
281
+ width: width,
185
282
  cursor: 'grab'
186
283
  }
187
284
  }, (0, _react2.jsx)("div", {
285
+ ref: columnResizeHandleRef,
286
+ css: [resizerStyles, state.type === 'resizing' && resizingStyles],
287
+ style: {
288
+ height: "".concat(dndPreviewHeight, "px")
289
+ },
290
+ "data-testid": "column-resize-handle"
291
+ }), (0, _react2.jsx)("div", {
188
292
  ref: dropTargetRef,
189
293
  css: [dropTargetStyles, isDraggingAnyColumn ? null : noPointerEventsStyles],
190
294
  style: {