@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.
- package/CHANGELOG.md +20 -0
- package/dist/cjs/analytics/constants.js +1 -1
- package/dist/cjs/services/mocks.js +134 -0
- package/dist/cjs/services/useBasicFilterAGG.js +119 -0
- package/dist/cjs/services/utils.js +8 -0
- package/dist/cjs/ui/assets-modal/modal/index.js +2 -2
- package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +5 -1
- package/dist/cjs/ui/issue-like-table/draggable-table-heading.js +109 -5
- package/dist/cjs/ui/issue-like-table/index.js +109 -95
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +20 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +155 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +82 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +87 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +97 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +18 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +111 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/types.js +15 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/transformers.js +97 -0
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +16 -5
- package/dist/es2019/analytics/constants.js +1 -1
- package/dist/es2019/services/mocks.js +128 -0
- package/dist/es2019/services/useBasicFilterAGG.js +72 -0
- package/dist/es2019/services/utils.js +113 -0
- package/dist/es2019/ui/assets-modal/modal/index.js +2 -2
- package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +5 -1
- package/dist/es2019/ui/issue-like-table/draggable-table-heading.js +113 -5
- package/dist/es2019/ui/issue-like-table/index.js +82 -72
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +14 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +149 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +76 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +81 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +91 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +12 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +105 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/types.js +9 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/transformers.js +91 -0
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +15 -4
- package/dist/esm/analytics/constants.js +1 -1
- package/dist/esm/services/mocks.js +128 -0
- package/dist/esm/services/useBasicFilterAGG.js +112 -0
- package/dist/esm/services/utils.js +2 -0
- package/dist/esm/ui/assets-modal/modal/index.js +2 -2
- package/dist/esm/ui/datasource-table-view/datasourceTableView.js +5 -1
- package/dist/esm/ui/issue-like-table/draggable-table-heading.js +109 -5
- package/dist/esm/ui/issue-like-table/index.js +108 -94
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +14 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +149 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +76 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +81 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +91 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +12 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +105 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/types.js +9 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/transformers.js +89 -0
- package/dist/esm/ui/jira-issues-modal/modal/index.js +17 -6
- package/dist/types/services/mocks.d.ts +3 -0
- package/dist/types/services/useBasicFilterAGG.d.ts +5 -0
- package/dist/types/services/utils.d.ts +2 -0
- package/dist/types/ui/datasource-table-view/types.d.ts +4 -0
- package/dist/types/ui/issue-like-table/draggable-table-heading.d.ts +3 -2
- package/dist/types/ui/issue-like-table/index.d.ts +5 -3
- package/dist/types/ui/issue-like-table/types.d.ts +5 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +1 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +3 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +17 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +8 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +8 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +8 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +3 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +29 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/types.d.ts +93 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.d.ts +1 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.d.ts +1 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +1 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +1 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +8 -0
- package/dist/types/ui/jira-issues-modal/jira-search-container/buildJQL.d.ts +1 -1
- package/dist/types/ui/jira-issues-modal/types.d.ts +4 -0
- package/dist/types-ts4.5/services/mocks.d.ts +3 -0
- package/dist/types-ts4.5/services/useBasicFilterAGG.d.ts +5 -0
- package/dist/types-ts4.5/services/utils.d.ts +2 -0
- package/dist/types-ts4.5/ui/datasource-table-view/types.d.ts +4 -0
- package/dist/types-ts4.5/ui/issue-like-table/draggable-table-heading.d.ts +3 -2
- package/dist/types-ts4.5/ui/issue-like-table/index.d.ts +5 -3
- package/dist/types-ts4.5/ui/issue-like-table/types.d.ts +5 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +1 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +3 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +17 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +8 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +8 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +8 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +3 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +29 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/types.d.ts +93 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.d.ts +1 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.d.ts +1 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +1 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +1 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +8 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/buildJQL.d.ts +1 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/types.d.ts +4 -0
- package/examples-helpers/buildIssueLikeTable.tsx +15 -1
- package/examples-helpers/buildJiraIssuesTable.tsx +15 -1
- package/package.json +6 -6
- package/report.api.md +11 -0
- package/tmp/api-report-tmp.d.ts +11 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -5
- package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -1
- package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.d.ts +0 -23
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.d.ts +0 -23
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
export var mockHydrateJqlResponse = {
|
|
2
|
+
data: {
|
|
3
|
+
jira: {
|
|
4
|
+
jqlBuilder: {
|
|
5
|
+
hydrateJqlQuery: {
|
|
6
|
+
fields: [{
|
|
7
|
+
jqlTerm: 'issuetype',
|
|
8
|
+
values: [{
|
|
9
|
+
values: [{
|
|
10
|
+
displayName: 'Category',
|
|
11
|
+
jqlTerm: 'Category',
|
|
12
|
+
issueTypes: [{
|
|
13
|
+
avatar: {
|
|
14
|
+
small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/16627?size=medium'
|
|
15
|
+
}
|
|
16
|
+
}]
|
|
17
|
+
}]
|
|
18
|
+
}, {
|
|
19
|
+
values: [{
|
|
20
|
+
displayName: '!disturbed',
|
|
21
|
+
jqlTerm: '"!disturbed"',
|
|
22
|
+
issueTypes: [{
|
|
23
|
+
avatar: {
|
|
24
|
+
small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/16640?size=medium'
|
|
25
|
+
}
|
|
26
|
+
}, {
|
|
27
|
+
avatar: {
|
|
28
|
+
small: '/rest/api/2/universal_avatar/view/type/issuetype/avatar/16628?size=medium'
|
|
29
|
+
}
|
|
30
|
+
}]
|
|
31
|
+
}]
|
|
32
|
+
}]
|
|
33
|
+
}, {
|
|
34
|
+
jqlTerm: 'project',
|
|
35
|
+
values: [{
|
|
36
|
+
values: [{
|
|
37
|
+
displayName: '(Deprecated) Koopa Troopas',
|
|
38
|
+
jqlTerm: '"(Deprecated) Koopa Troopas"',
|
|
39
|
+
project: {
|
|
40
|
+
avatar: {
|
|
41
|
+
small: 'https://hello.atlassian.net/rest/api/2/universal_avatar/view/type/project/avatar/36328?size=small'
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}]
|
|
45
|
+
}]
|
|
46
|
+
}, {
|
|
47
|
+
jqlTerm: 'assignee',
|
|
48
|
+
values: [{
|
|
49
|
+
values: [{
|
|
50
|
+
displayName: 'Nidhin Joseph',
|
|
51
|
+
jqlTerm: '70121:97052100-1513-42bc-a2f0-d77e71f0b7eb',
|
|
52
|
+
user: {
|
|
53
|
+
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'
|
|
54
|
+
}
|
|
55
|
+
}]
|
|
56
|
+
}]
|
|
57
|
+
}, {
|
|
58
|
+
jqlTerm: 'status',
|
|
59
|
+
values: [{
|
|
60
|
+
values: [{
|
|
61
|
+
displayName: 'Done',
|
|
62
|
+
jqlTerm: 'Done',
|
|
63
|
+
statusCategory: {
|
|
64
|
+
colorName: 'GREEN'
|
|
65
|
+
}
|
|
66
|
+
}]
|
|
67
|
+
}]
|
|
68
|
+
}]
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
export var mockFieldValuesResponse = {
|
|
75
|
+
data: {
|
|
76
|
+
jira: {
|
|
77
|
+
jqlBuilder: {
|
|
78
|
+
fieldValues: {
|
|
79
|
+
totalCount: 4,
|
|
80
|
+
pageInfo: {
|
|
81
|
+
endCursor: 'YXJyYXljb25uZWN0aW9uOjM='
|
|
82
|
+
},
|
|
83
|
+
edges: [{
|
|
84
|
+
node: {
|
|
85
|
+
jqlTerm: '"My IT TEST"',
|
|
86
|
+
displayName: 'My IT TEST',
|
|
87
|
+
project: {
|
|
88
|
+
avatar: {
|
|
89
|
+
small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10403?size=small'
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}, {
|
|
94
|
+
node: {
|
|
95
|
+
jqlTerm: 'Test',
|
|
96
|
+
displayName: 'Test',
|
|
97
|
+
project: {
|
|
98
|
+
avatar: {
|
|
99
|
+
small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10411?size=small'
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}, {
|
|
104
|
+
node: {
|
|
105
|
+
jqlTerm: '"Test rights"',
|
|
106
|
+
displayName: 'Test rights',
|
|
107
|
+
project: {
|
|
108
|
+
avatar: {
|
|
109
|
+
small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10405?size=small'
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}, {
|
|
114
|
+
node: {
|
|
115
|
+
jqlTerm: 'Test2',
|
|
116
|
+
displayName: 'Test2',
|
|
117
|
+
project: {
|
|
118
|
+
avatar: {
|
|
119
|
+
small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10410?size=small'
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}]
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
import { useCallback, useMemo } from 'react';
|
|
4
|
+
import { useSmartLinkContext } from '@atlaskit/link-provider';
|
|
5
|
+
import { getBaseUrl } from '@atlaskit/linking-common';
|
|
6
|
+
import { fieldValuesQuery, hydrateJQLQuery } from './utils';
|
|
7
|
+
var getGraphqlUrl = function getGraphqlUrl(envKey, baseUrlOverride) {
|
|
8
|
+
var baseUrl = baseUrlOverride || getBaseUrl(envKey);
|
|
9
|
+
return baseUrl ? "".concat(baseUrl, "/graphql") : '/gateway/api/graphql';
|
|
10
|
+
};
|
|
11
|
+
export var useBasicFilterAGG = function useBasicFilterAGG() {
|
|
12
|
+
var _useSmartLinkContext = useSmartLinkContext(),
|
|
13
|
+
client = _useSmartLinkContext.connections.client;
|
|
14
|
+
var gatewayGraphqlUrl = getGraphqlUrl(client.envKey, client.baseUrlOverride);
|
|
15
|
+
var aggHeaders = useMemo(function () {
|
|
16
|
+
return new Headers({
|
|
17
|
+
'Content-Type': 'application/json',
|
|
18
|
+
'X-ExperimentalApi': 'JiraJqlBuilder'
|
|
19
|
+
});
|
|
20
|
+
}, []);
|
|
21
|
+
var getHydratedJQL = useCallback( /*#__PURE__*/function () {
|
|
22
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(cloudId, jql) {
|
|
23
|
+
var body, request, response;
|
|
24
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
25
|
+
while (1) switch (_context.prev = _context.next) {
|
|
26
|
+
case 0:
|
|
27
|
+
body = JSON.stringify({
|
|
28
|
+
variables: {
|
|
29
|
+
cloudId: cloudId,
|
|
30
|
+
jql: jql
|
|
31
|
+
},
|
|
32
|
+
operationName: 'hydrate',
|
|
33
|
+
query: hydrateJQLQuery
|
|
34
|
+
});
|
|
35
|
+
request = new Request(gatewayGraphqlUrl, {
|
|
36
|
+
method: 'POST',
|
|
37
|
+
headers: aggHeaders,
|
|
38
|
+
body: body
|
|
39
|
+
});
|
|
40
|
+
_context.prev = 2;
|
|
41
|
+
_context.next = 5;
|
|
42
|
+
return fetch(request);
|
|
43
|
+
case 5:
|
|
44
|
+
response = _context.sent;
|
|
45
|
+
return _context.abrupt("return", response.json());
|
|
46
|
+
case 9:
|
|
47
|
+
_context.prev = 9;
|
|
48
|
+
_context.t0 = _context["catch"](2);
|
|
49
|
+
throw new Error(_context.t0);
|
|
50
|
+
case 12:
|
|
51
|
+
case "end":
|
|
52
|
+
return _context.stop();
|
|
53
|
+
}
|
|
54
|
+
}, _callee, null, [[2, 9]]);
|
|
55
|
+
}));
|
|
56
|
+
return function (_x, _x2) {
|
|
57
|
+
return _ref.apply(this, arguments);
|
|
58
|
+
};
|
|
59
|
+
}(), [gatewayGraphqlUrl, aggHeaders]);
|
|
60
|
+
var getFieldValues = useCallback( /*#__PURE__*/function () {
|
|
61
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(cloudId, jql, jqlTerm, searchString, pageCursor) {
|
|
62
|
+
var body, request, response;
|
|
63
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
64
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
65
|
+
case 0:
|
|
66
|
+
body = JSON.stringify({
|
|
67
|
+
variables: {
|
|
68
|
+
cloudId: cloudId,
|
|
69
|
+
jql: jql,
|
|
70
|
+
first: 10,
|
|
71
|
+
jqlTerm: jqlTerm,
|
|
72
|
+
searchString: searchString,
|
|
73
|
+
after: pageCursor
|
|
74
|
+
},
|
|
75
|
+
operationName: 'fieldValues',
|
|
76
|
+
query: fieldValuesQuery
|
|
77
|
+
});
|
|
78
|
+
request = new Request(gatewayGraphqlUrl, {
|
|
79
|
+
method: 'POST',
|
|
80
|
+
headers: aggHeaders,
|
|
81
|
+
body: body
|
|
82
|
+
});
|
|
83
|
+
_context2.prev = 2;
|
|
84
|
+
_context2.next = 5;
|
|
85
|
+
return fetch(request);
|
|
86
|
+
case 5:
|
|
87
|
+
response = _context2.sent;
|
|
88
|
+
_context2.next = 8;
|
|
89
|
+
return response.json();
|
|
90
|
+
case 8:
|
|
91
|
+
return _context2.abrupt("return", _context2.sent);
|
|
92
|
+
case 11:
|
|
93
|
+
_context2.prev = 11;
|
|
94
|
+
_context2.t0 = _context2["catch"](2);
|
|
95
|
+
throw new Error(_context2.t0);
|
|
96
|
+
case 14:
|
|
97
|
+
case "end":
|
|
98
|
+
return _context2.stop();
|
|
99
|
+
}
|
|
100
|
+
}, _callee2, null, [[2, 11]]);
|
|
101
|
+
}));
|
|
102
|
+
return function (_x3, _x4, _x5, _x6, _x7) {
|
|
103
|
+
return _ref2.apply(this, arguments);
|
|
104
|
+
};
|
|
105
|
+
}(), [gatewayGraphqlUrl, aggHeaders]);
|
|
106
|
+
return useMemo(function () {
|
|
107
|
+
return {
|
|
108
|
+
getHydratedJQL: getHydratedJQL,
|
|
109
|
+
getFieldValues: getFieldValues
|
|
110
|
+
};
|
|
111
|
+
}, [getHydratedJQL, getFieldValues]);
|
|
112
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export var 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}";
|
|
2
|
+
export var 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}";
|
|
@@ -235,7 +235,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
235
235
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
236
236
|
while (1) switch (_context.prev = _context.next) {
|
|
237
237
|
case 0:
|
|
238
|
-
if (schemaId !== searchSchemaId || aql !== searchAql) {
|
|
238
|
+
if (schemaId !== searchSchemaId || aql !== searchAql || status === 'rejected') {
|
|
239
239
|
searchCount.current++;
|
|
240
240
|
if (schemaId !== searchSchemaId) {
|
|
241
241
|
userInteractionActions.current.add(DatasourceAction.SCHEMA_UPDATED);
|
|
@@ -259,7 +259,7 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
259
259
|
return function (_x, _x2) {
|
|
260
260
|
return _ref.apply(this, arguments);
|
|
261
261
|
};
|
|
262
|
-
}(), [aql, reset, schemaId]);
|
|
262
|
+
}(), [aql, reset, schemaId, status]);
|
|
263
263
|
var renderModalTitleContent = useCallback(function () {
|
|
264
264
|
if (workspaceError) {
|
|
265
265
|
return undefined;
|
|
@@ -21,7 +21,9 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
|
|
|
21
21
|
parameters = _ref.parameters,
|
|
22
22
|
visibleColumnKeys = _ref.visibleColumnKeys,
|
|
23
23
|
onVisibleColumnKeysChange = _ref.onVisibleColumnKeysChange,
|
|
24
|
-
url = _ref.url
|
|
24
|
+
url = _ref.url,
|
|
25
|
+
columnCustomSizes = _ref.columnCustomSizes,
|
|
26
|
+
onColumnResize = _ref.onColumnResize;
|
|
25
27
|
var _useDatasourceTableSt = useDatasourceTableState({
|
|
26
28
|
datasourceId: datasourceId,
|
|
27
29
|
parameters: parameters,
|
|
@@ -129,6 +131,8 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
|
|
|
129
131
|
columns: columns,
|
|
130
132
|
visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
|
|
131
133
|
onVisibleColumnKeysChange: onVisibleColumnKeysChange,
|
|
134
|
+
columnCustomSizes: columnCustomSizes,
|
|
135
|
+
onColumnResize: onColumnResize,
|
|
132
136
|
scrollableContainerHeight: ScrollableContainerHeight,
|
|
133
137
|
parentContainerRenderInstanceId: tableRenderInstanceId,
|
|
134
138
|
extensionKey: extensionKey
|
|
@@ -7,10 +7,13 @@ import invariant from 'tiny-invariant';
|
|
|
7
7
|
import { attachClosestEdge, extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/addon/closest-edge';
|
|
8
8
|
import { DropIndicator } from '@atlaskit/pragmatic-drag-and-drop-react-indicator/box-without-terminal';
|
|
9
9
|
import { draggable, dropTargetForElements, monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/adapter/element';
|
|
10
|
+
import { cancelUnhandled } from '@atlaskit/pragmatic-drag-and-drop/addon/cancel-unhandled';
|
|
10
11
|
import { combine } from '@atlaskit/pragmatic-drag-and-drop/util/combine';
|
|
12
|
+
import { disableNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/util/disable-native-drag-preview';
|
|
11
13
|
import { offsetFromPointer } from '@atlaskit/pragmatic-drag-and-drop/util/offset-from-pointer';
|
|
12
14
|
import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/util/set-custom-native-drag-preview';
|
|
13
15
|
import { TableHeading } from './styled';
|
|
16
|
+
import { COLUMN_MIN_WIDTH } from './index';
|
|
14
17
|
var tableHeadingStatusStyles = {
|
|
15
18
|
idle: css({
|
|
16
19
|
':hover': {
|
|
@@ -36,6 +39,40 @@ var dropTargetStyles = css({
|
|
|
36
39
|
var noPointerEventsStyles = css({
|
|
37
40
|
pointerEvents: 'none'
|
|
38
41
|
});
|
|
42
|
+
var resizerStyles = css({
|
|
43
|
+
'--local-hitbox-width': "var(--ds-space-300, 24px)",
|
|
44
|
+
width: 'var(--local-hitbox-width)',
|
|
45
|
+
cursor: 'col-resize',
|
|
46
|
+
flexGrow: '0',
|
|
47
|
+
position: 'absolute',
|
|
48
|
+
zIndex: 1,
|
|
49
|
+
// we want this to sit on top of adjacent column headers
|
|
50
|
+
right: 'calc(-1 * calc(var(--local-hitbox-width) / 2))',
|
|
51
|
+
top: 0,
|
|
52
|
+
'::before': {
|
|
53
|
+
opacity: 0,
|
|
54
|
+
'--local-line-width': "var(--ds-border-width, 2px)",
|
|
55
|
+
content: '""',
|
|
56
|
+
position: 'absolute',
|
|
57
|
+
background: "var(--ds-border-brand, #0052CC)",
|
|
58
|
+
width: 'var(--local-line-width)',
|
|
59
|
+
inset: 0,
|
|
60
|
+
left: "calc(50% - calc(var(--local-line-width) / 2))",
|
|
61
|
+
transition: 'opacity 0.2s ease'
|
|
62
|
+
},
|
|
63
|
+
':hover::before': {
|
|
64
|
+
opacity: 1
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
var resizingStyles = css({
|
|
68
|
+
// turning off the resizing cursor as sometimes it can cause the cursor to flicker
|
|
69
|
+
// while resizing. The browser controls the cursor while dragging, but the browser
|
|
70
|
+
// can sometimes bug out.
|
|
71
|
+
cursor: 'unset',
|
|
72
|
+
'::before': {
|
|
73
|
+
opacity: 1
|
|
74
|
+
}
|
|
75
|
+
});
|
|
39
76
|
var idleState = {
|
|
40
77
|
type: 'idle'
|
|
41
78
|
};
|
|
@@ -49,8 +86,10 @@ export var DraggableTableHeading = function DraggableTableHeading(_ref) {
|
|
|
49
86
|
tableId = _ref.tableId,
|
|
50
87
|
dndPreviewHeight = _ref.dndPreviewHeight,
|
|
51
88
|
dragPreview = _ref.dragPreview,
|
|
52
|
-
|
|
53
|
-
|
|
89
|
+
width = _ref.width,
|
|
90
|
+
onWidthChange = _ref.onWidthChange;
|
|
91
|
+
var mainHeaderCellRef = useRef(null);
|
|
92
|
+
var columnResizeHandleRef = useRef(null);
|
|
54
93
|
var _useState = useState(idleState),
|
|
55
94
|
_useState2 = _slicedToArray(_useState, 2),
|
|
56
95
|
state = _useState2[0],
|
|
@@ -65,7 +104,7 @@ export var DraggableTableHeading = function DraggableTableHeading(_ref) {
|
|
|
65
104
|
setClosestEdge = _useState6[1];
|
|
66
105
|
var dropTargetRef = useRef(null);
|
|
67
106
|
useEffect(function () {
|
|
68
|
-
var cell =
|
|
107
|
+
var cell = mainHeaderCellRef.current;
|
|
69
108
|
invariant(cell);
|
|
70
109
|
return combine(draggable({
|
|
71
110
|
element: cell,
|
|
@@ -168,15 +207,80 @@ export var DraggableTableHeading = function DraggableTableHeading(_ref) {
|
|
|
168
207
|
}
|
|
169
208
|
});
|
|
170
209
|
}, [tableId]);
|
|
210
|
+
|
|
211
|
+
// Handling column resizing
|
|
212
|
+
useEffect(function () {
|
|
213
|
+
var resizeHandle = columnResizeHandleRef.current;
|
|
214
|
+
invariant(resizeHandle);
|
|
215
|
+
var mainHeaderCell = mainHeaderCellRef.current;
|
|
216
|
+
invariant(mainHeaderCell);
|
|
217
|
+
return draggable({
|
|
218
|
+
element: resizeHandle,
|
|
219
|
+
getInitialData: function getInitialData() {
|
|
220
|
+
// metadata related to currently dragging item (can be read by drop events etc)
|
|
221
|
+
return {
|
|
222
|
+
type: 'column-resize',
|
|
223
|
+
id: id,
|
|
224
|
+
index: index,
|
|
225
|
+
tableId: tableId
|
|
226
|
+
};
|
|
227
|
+
},
|
|
228
|
+
// Is called when dragging started
|
|
229
|
+
onGenerateDragPreview: function onGenerateDragPreview(_ref6) {
|
|
230
|
+
var nativeSetDragImage = _ref6.nativeSetDragImage;
|
|
231
|
+
// We don't show any preview, since column separator (handle) is moving with the cursor
|
|
232
|
+
disableNativeDragPreview({
|
|
233
|
+
nativeSetDragImage: nativeSetDragImage
|
|
234
|
+
});
|
|
235
|
+
// Block drag operations outside `@atlaskit/pragmatic-drag-and-drop`
|
|
236
|
+
cancelUnhandled.start();
|
|
237
|
+
setState({
|
|
238
|
+
type: 'resizing',
|
|
239
|
+
initialWidth: width
|
|
240
|
+
});
|
|
241
|
+
},
|
|
242
|
+
onDrag: function onDrag(_ref7) {
|
|
243
|
+
var location = _ref7.location;
|
|
244
|
+
var relativeDistanceX = location.current.input.clientX - location.initial.input.clientX;
|
|
245
|
+
invariant(state.type === 'resizing');
|
|
246
|
+
var initialWidth = state.initialWidth;
|
|
247
|
+
|
|
248
|
+
// Set the width of our header being resized
|
|
249
|
+
var proposedWidth = initialWidth + relativeDistanceX;
|
|
250
|
+
if (initialWidth >= COLUMN_MIN_WIDTH && proposedWidth < COLUMN_MIN_WIDTH) {
|
|
251
|
+
proposedWidth = COLUMN_MIN_WIDTH;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// We update width css directly live
|
|
255
|
+
mainHeaderCell.style.setProperty('width', "".concat(proposedWidth, "px"));
|
|
256
|
+
},
|
|
257
|
+
onDrop: function onDrop() {
|
|
258
|
+
cancelUnhandled.stop();
|
|
259
|
+
setState(idleState);
|
|
260
|
+
if (onWidthChange) {
|
|
261
|
+
// We use element's css value as a source of truth (compare to another Ref)
|
|
262
|
+
var currentWidthPx = mainHeaderCell.style.getPropertyValue('width');
|
|
263
|
+
onWidthChange(+currentWidthPx.slice(0, -2));
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
}, [id, index, onWidthChange, state, tableId, width]);
|
|
171
268
|
return jsx(TableHeading, {
|
|
172
|
-
ref:
|
|
269
|
+
ref: mainHeaderCellRef,
|
|
173
270
|
css: [tableHeadingStatusStyles[state.type]],
|
|
174
271
|
"data-testid": "".concat(id, "-column-heading"),
|
|
175
272
|
style: {
|
|
176
|
-
|
|
273
|
+
width: width,
|
|
177
274
|
cursor: 'grab'
|
|
178
275
|
}
|
|
179
276
|
}, jsx("div", {
|
|
277
|
+
ref: columnResizeHandleRef,
|
|
278
|
+
css: [resizerStyles, state.type === 'resizing' && resizingStyles],
|
|
279
|
+
style: {
|
|
280
|
+
height: "".concat(dndPreviewHeight, "px")
|
|
281
|
+
},
|
|
282
|
+
"data-testid": "column-resize-handle"
|
|
283
|
+
}), jsx("div", {
|
|
180
284
|
ref: dropTargetRef,
|
|
181
285
|
css: [dropTargetStyles, isDraggingAnyColumn ? null : noPointerEventsStyles],
|
|
182
286
|
style: {
|