@atlaskit/link-datasource 1.12.2 → 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.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/analytics/constants.js +1 -1
- package/dist/cjs/services/useBasicFilterAGG.js +40 -82
- package/dist/cjs/services/utils.js +1 -1
- package/dist/cjs/ui/issue-like-table/draggable-table-heading.js +0 -12
- package/dist/cjs/ui/issue-like-table/index.js +5 -0
- package/dist/cjs/ui/issue-like-table/styled.js +1 -1
- package/dist/cjs/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.js +94 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +24 -13
- package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/index.js +3 -1
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/transformers.js +15 -3
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +2 -1
- package/dist/es2019/analytics/constants.js +1 -1
- package/dist/es2019/services/useBasicFilterAGG.js +30 -53
- package/dist/es2019/services/utils.js +1 -1
- package/dist/es2019/ui/issue-like-table/draggable-table-heading.js +0 -12
- package/dist/es2019/ui/issue-like-table/index.js +5 -0
- package/dist/es2019/ui/issue-like-table/styled.js +16 -4
- package/dist/es2019/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.js +52 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +15 -7
- package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/index.js +3 -1
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/transformers.js +14 -2
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +2 -1
- package/dist/esm/analytics/constants.js +1 -1
- package/dist/esm/services/useBasicFilterAGG.js +41 -83
- package/dist/esm/services/utils.js +1 -1
- package/dist/esm/ui/issue-like-table/draggable-table-heading.js +0 -12
- package/dist/esm/ui/issue-like-table/index.js +5 -0
- package/dist/esm/ui/issue-like-table/styled.js +1 -1
- package/dist/esm/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.js +87 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +24 -13
- package/dist/esm/ui/jira-issues-modal/basic-filters/ui/index.js +3 -1
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/transformers.js +12 -2
- package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +2 -1
- package/dist/types/services/useBasicFilterAGG.d.ts +9 -1
- package/dist/types/services/utils.d.ts +1 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.d.ts +18 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +2 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/ui/index.d.ts +2 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +3 -1
- package/dist/types-ts4.5/services/useBasicFilterAGG.d.ts +9 -1
- package/dist/types-ts4.5/services/utils.d.ts +1 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.d.ts +18 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +2 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/index.d.ts +2 -1
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +3 -1
- package/package.json +1 -1
- package/dist/cjs/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.js +0 -75
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +0 -20
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +0 -155
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +0 -82
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +0 -87
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +0 -97
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +0 -18
- package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +0 -111
- package/dist/es2019/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.js +0 -39
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +0 -14
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +0 -149
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +0 -76
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +0 -81
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +0 -91
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +0 -12
- package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +0 -105
- package/dist/esm/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.js +0 -68
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +0 -14
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +0 -149
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +0 -76
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +0 -81
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +0 -91
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +0 -12
- package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +0 -105
- package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +0 -12
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +0 -3
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +0 -17
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +0 -8
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +0 -8
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +0 -8
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +0 -3
- package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +0 -29
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +0 -12
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +0 -3
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +0 -17
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +0 -8
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +0 -8
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +0 -8
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +0 -3
- package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +0 -29
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
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
|
+
|
|
10
|
+
## 1.12.3
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [#42706](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42706) [`c3c9a5ec9c9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c3c9a5ec9c9) - Fix a problem where when column dragging start on top of a label - it drags whole table
|
|
15
|
+
|
|
3
16
|
## 1.12.2
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -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
|
|
23
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
|
34
|
+
}, _callee);
|
|
62
35
|
}));
|
|
63
|
-
return function (_x
|
|
36
|
+
return function (_x) {
|
|
64
37
|
return _ref.apply(this, arguments);
|
|
65
38
|
};
|
|
66
|
-
}(), [gatewayGraphqlUrl
|
|
67
|
-
var
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
|
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,
|
|
@@ -373,6 +373,11 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
|
|
|
373
373
|
}, _callee, null, [[3, 9]]);
|
|
374
374
|
})), [parentContainerRenderInstanceId, extensionKey, hasFullSchema, onLoadDatasourceDetails]);
|
|
375
375
|
return (0, _react2.jsx)("div", {
|
|
376
|
+
/* There is required contentEditable={true} in editor-card-plugin
|
|
377
|
+
* But this brakes how DND works. We set contentEditable={false} to allow DND to work
|
|
378
|
+
* when dragging is initiated on top of a column label.
|
|
379
|
+
*/
|
|
380
|
+
contentEditable: false,
|
|
376
381
|
ref: containerRef,
|
|
377
382
|
css: scrollableContainerHeight ? scrollableContainerStyles : null,
|
|
378
383
|
style: scrollableContainerHeight ? {
|
|
@@ -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
|
|
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
|
|
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
|
|
47
|
-
filterType: filterType
|
|
47
|
+
var _useFilterOptions = (0, _useFilterOptions2.useFilterOptions)({
|
|
48
|
+
filterType: filterType,
|
|
49
|
+
cloudId: cloudId
|
|
48
50
|
}),
|
|
49
|
-
filterOptions =
|
|
50
|
-
fetchFilterOptions =
|
|
51
|
-
totalCount =
|
|
52
|
-
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
|
-
|
|
68
|
+
if (!(status === 'empty')) {
|
|
69
|
+
_context.next = 3;
|
|
70
|
+
break;
|
|
68
71
|
}
|
|
69
|
-
|
|
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
|
-
|
|
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:
|
|
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.
|
|
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:
|
|
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
|
|
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,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
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
|
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,
|
|
@@ -326,6 +326,11 @@ export const IssueLikeDataTableView = ({
|
|
|
326
326
|
}
|
|
327
327
|
}, [parentContainerRenderInstanceId, extensionKey, hasFullSchema, onLoadDatasourceDetails]);
|
|
328
328
|
return jsx("div", {
|
|
329
|
+
/* There is required contentEditable={true} in editor-card-plugin
|
|
330
|
+
* But this brakes how DND works. We set contentEditable={false} to allow DND to work
|
|
331
|
+
* when dragging is initiated on top of a column label.
|
|
332
|
+
*/
|
|
333
|
+
contentEditable: false,
|
|
329
334
|
ref: containerRef,
|
|
330
335
|
css: scrollableContainerHeight ? scrollableContainerStyles : null,
|
|
331
336
|
style: scrollableContainerHeight ? {
|