@atlaskit/link-datasource 1.6.0 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/analytics/constants.js +1 -1
- package/dist/cjs/hooks/useDatasourceTableState.js +1 -0
- package/dist/cjs/ui/assets-modal/modal/index.js +31 -28
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/buildJQL.js +34 -11
- package/dist/es2019/analytics/constants.js +1 -1
- package/dist/es2019/hooks/useDatasourceTableState.js +1 -0
- package/dist/es2019/ui/assets-modal/modal/index.js +7 -18
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/buildJQL.js +34 -11
- package/dist/esm/analytics/constants.js +1 -1
- package/dist/esm/hooks/useDatasourceTableState.js +1 -0
- package/dist/esm/ui/assets-modal/modal/index.js +31 -28
- package/dist/esm/ui/jira-issues-modal/jira-search-container/buildJQL.js +34 -11
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlaskit/link-datasource
|
|
2
2
|
|
|
3
|
+
## 1.6.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#40759](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/40759) [`2e42297cee1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2e42297cee1) - Reset default visible column keys when `shouldResetColumns` is `true`
|
|
8
|
+
|
|
9
|
+
## 1.6.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#40923](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/40923) [`1eaceeae0b0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1eaceeae0b0) - Use jql-ast to build jql
|
|
14
|
+
|
|
3
15
|
## 1.6.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -246,6 +246,7 @@ var useDatasourceTableState = exports.useDatasourceTableState = function useData
|
|
|
246
246
|
setShouldForceRequest((options === null || options === void 0 ? void 0 : options.shouldForceRequest) || false);
|
|
247
247
|
if (options !== null && options !== void 0 && options.shouldResetColumns) {
|
|
248
248
|
setColumns([]);
|
|
249
|
+
setDefaultVisibleColumnKeys([]);
|
|
249
250
|
}
|
|
250
251
|
}, []);
|
|
251
252
|
|
|
@@ -6,8 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.AssetsConfigModal = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
11
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
13
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
14
|
var _react = require("react");
|
|
13
15
|
var _react2 = require("@emotion/react");
|
|
@@ -94,24 +96,18 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
94
96
|
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
95
97
|
}, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
|
|
96
98
|
(0, _react.useEffect)(function () {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if (data && isNewSearch) {
|
|
100
|
-
setVisibleColumnKeys(Object.keys(data));
|
|
101
|
-
} else if (data && (visibleColumnKeys || []).length) {
|
|
102
|
-
setVisibleColumnKeys(visibleColumnKeys);
|
|
99
|
+
if (isNewSearch) {
|
|
100
|
+
setVisibleColumnKeys(defaultVisibleColumnKeys);
|
|
103
101
|
}
|
|
104
|
-
|
|
105
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
106
|
-
}, [responseItems, isNewSearch]);
|
|
102
|
+
}, [defaultVisibleColumnKeys, isNewSearch]);
|
|
107
103
|
(0, _react.useEffect)(function () {
|
|
108
104
|
fireEvent('screen.datasourceModalDialog.viewed', {});
|
|
109
105
|
}, [fireEvent]);
|
|
110
106
|
var isDisabled = !!workspaceError || status === 'rejected' || status === 'loading' || status === 'empty' || !!workspaceError || assetsClientLoading || !aql || !schemaId;
|
|
111
107
|
var retrieveUrlForSmartCardRender = (0, _react.useCallback)(function () {
|
|
112
108
|
var _data$key;
|
|
113
|
-
var
|
|
114
|
-
data =
|
|
109
|
+
var _responseItems = (0, _slicedToArray2.default)(responseItems, 1),
|
|
110
|
+
data = _responseItems[0];
|
|
115
111
|
// agreement with BE that we will use `key` for rendering smartlink
|
|
116
112
|
return data === null || data === void 0 || (_data$key = data.key) === null || _data$key === void 0 || (_data$key = _data$key.data) === null || _data$key === void 0 ? void 0 : _data$key.url;
|
|
117
113
|
}, [responseItems]);
|
|
@@ -153,22 +149,29 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
153
149
|
});
|
|
154
150
|
}
|
|
155
151
|
}, [aql, schemaId, workspaceId, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, visibleColumnKeys]);
|
|
156
|
-
var handleOnSearch = (0, _react.useCallback)(function (
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
152
|
+
var handleOnSearch = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
153
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(searchAql, searchSchemaId) {
|
|
154
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
155
|
+
while (1) switch (_context.prev = _context.next) {
|
|
156
|
+
case 0:
|
|
157
|
+
if (schemaId !== searchSchemaId || aql !== searchAql) {
|
|
158
|
+
reset({
|
|
159
|
+
shouldResetColumns: true
|
|
160
|
+
});
|
|
161
|
+
setAql(searchAql);
|
|
162
|
+
setSchemaId(searchSchemaId);
|
|
163
|
+
setIsNewSearch(true);
|
|
164
|
+
}
|
|
165
|
+
case 1:
|
|
166
|
+
case "end":
|
|
167
|
+
return _context.stop();
|
|
168
|
+
}
|
|
169
|
+
}, _callee);
|
|
170
|
+
}));
|
|
171
|
+
return function (_x, _x2) {
|
|
172
|
+
return _ref.apply(this, arguments);
|
|
173
|
+
};
|
|
174
|
+
}(), [aql, reset, schemaId]);
|
|
172
175
|
var renderModalTitleContent = (0, _react.useCallback)(function () {
|
|
173
176
|
if (workspaceError) {
|
|
174
177
|
return undefined;
|
|
@@ -231,7 +234,7 @@ var analyticsContextAttributes = {
|
|
|
231
234
|
};
|
|
232
235
|
var analyticsContextData = {
|
|
233
236
|
packageName: "@atlaskit/link-datasource",
|
|
234
|
-
packageVersion: "1.6.
|
|
237
|
+
packageVersion: "1.6.2",
|
|
235
238
|
source: 'datasourceConfigModal'
|
|
236
239
|
};
|
|
237
240
|
var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
|
|
@@ -4,23 +4,46 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.buildJQL = void 0;
|
|
7
|
+
var _jqlAst = require("@atlaskit/jql-ast");
|
|
7
8
|
var fuzzySearchRegExp = /^"(.+)"$/;
|
|
8
9
|
var jiraIssueKeyRegExp = /[A-Z]+-\d+/;
|
|
10
|
+
var constructTerminalClause = function constructTerminalClause(field, operator, value) {
|
|
11
|
+
return _jqlAst.creators.terminalClause(_jqlAst.creators.field(field), _jqlAst.creators.operator(operator), _jqlAst.creators.valueOperand(value));
|
|
12
|
+
};
|
|
9
13
|
var buildJQL = exports.buildJQL = function buildJQL(input) {
|
|
14
|
+
/**
|
|
15
|
+
* Jql ast - Transforming the ast
|
|
16
|
+
* https://atlaskit.atlassian.com/packages/jql/jql-ast/docs/transforming-the-ast
|
|
17
|
+
*/
|
|
18
|
+
var jast = new _jqlAst.JastBuilder().build('');
|
|
19
|
+
var query = jast.query;
|
|
10
20
|
var rawSearch = input.rawSearch,
|
|
11
21
|
_input$orderDirection = input.orderDirection,
|
|
12
|
-
orderDirection = _input$orderDirection === void 0 ?
|
|
22
|
+
orderDirection = _input$orderDirection === void 0 ? _jqlAst.ORDER_BY_DIRECTION_DESC : _input$orderDirection,
|
|
13
23
|
_input$orderKey = input.orderKey,
|
|
14
24
|
orderKey = _input$orderKey === void 0 ? 'created' : _input$orderKey;
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (jiraIssueKeyRegExp.test(rawSearch)) {
|
|
19
|
-
baseQueryParts.push("key = \"".concat(basicSearch, "\""));
|
|
25
|
+
var trimmedRawSearch = rawSearch.trim();
|
|
26
|
+
if (!query) {
|
|
27
|
+
return '';
|
|
20
28
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
if (trimmedRawSearch) {
|
|
30
|
+
var fuzzy = !trimmedRawSearch.match(fuzzySearchRegExp) ? '*' : '';
|
|
31
|
+
var basicSearch = trimmedRawSearch.replace(/['"?*]+/g, '');
|
|
32
|
+
var text = constructTerminalClause('text', _jqlAst.OPERATOR_LIKE, "".concat(basicSearch).concat(fuzzy));
|
|
33
|
+
var summary = constructTerminalClause('summary', _jqlAst.OPERATOR_LIKE, "".concat(basicSearch).concat(fuzzy));
|
|
34
|
+
var orClauseFields = [text, summary];
|
|
35
|
+
if (jiraIssueKeyRegExp.test(trimmedRawSearch)) {
|
|
36
|
+
var key = constructTerminalClause('key', _jqlAst.OPERATOR_EQUALS, basicSearch);
|
|
37
|
+
orClauseFields.push(key);
|
|
38
|
+
}
|
|
39
|
+
var orClause = _jqlAst.creators.compoundClause(_jqlAst.creators.compoundOperator(_jqlAst.COMPOUND_OPERATOR_OR), orClauseFields);
|
|
40
|
+
query.appendClause(orClause, _jqlAst.COMPOUND_OPERATOR_AND);
|
|
41
|
+
} else {
|
|
42
|
+
var created = constructTerminalClause('created', _jqlAst.OPERATOR_GT_EQUALS, '-30d');
|
|
43
|
+
query.appendClause(created, _jqlAst.COMPOUND_OPERATOR_AND);
|
|
44
|
+
}
|
|
45
|
+
var orderField = _jqlAst.creators.orderByField(_jqlAst.creators.field(orderKey));
|
|
46
|
+
query.prependOrderField(orderField);
|
|
47
|
+
query.setOrderDirection(_jqlAst.creators.orderByDirection(orderDirection.toLowerCase() === 'asc' ? _jqlAst.ORDER_BY_DIRECTION_ASC : _jqlAst.ORDER_BY_DIRECTION_DESC));
|
|
48
|
+
return (0, _jqlAst.print)(jast);
|
|
26
49
|
};
|
|
@@ -147,6 +147,7 @@ export const useDatasourceTableState = ({
|
|
|
147
147
|
setShouldForceRequest((options === null || options === void 0 ? void 0 : options.shouldForceRequest) || false);
|
|
148
148
|
if (options !== null && options !== void 0 && options.shouldResetColumns) {
|
|
149
149
|
setColumns([]);
|
|
150
|
+
setDefaultVisibleColumnKeys([]);
|
|
150
151
|
}
|
|
151
152
|
}, []);
|
|
152
153
|
|
|
@@ -72,15 +72,10 @@ const PlainAssetsConfigModal = props => {
|
|
|
72
72
|
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
73
73
|
}, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
|
|
74
74
|
useEffect(() => {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
setVisibleColumnKeys(Object.keys(data));
|
|
78
|
-
} else if (data && (visibleColumnKeys || []).length) {
|
|
79
|
-
setVisibleColumnKeys(visibleColumnKeys);
|
|
75
|
+
if (isNewSearch) {
|
|
76
|
+
setVisibleColumnKeys(defaultVisibleColumnKeys);
|
|
80
77
|
}
|
|
81
|
-
|
|
82
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
83
|
-
}, [responseItems, isNewSearch]);
|
|
78
|
+
}, [defaultVisibleColumnKeys, isNewSearch]);
|
|
84
79
|
useEffect(() => {
|
|
85
80
|
fireEvent('screen.datasourceModalDialog.viewed', {});
|
|
86
81
|
}, [fireEvent]);
|
|
@@ -127,22 +122,16 @@ const PlainAssetsConfigModal = props => {
|
|
|
127
122
|
});
|
|
128
123
|
}
|
|
129
124
|
}, [aql, schemaId, workspaceId, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, visibleColumnKeys]);
|
|
130
|
-
const handleOnSearch = useCallback((searchAql, searchSchemaId) => {
|
|
131
|
-
if (schemaId !== searchSchemaId) {
|
|
125
|
+
const handleOnSearch = useCallback(async (searchAql, searchSchemaId) => {
|
|
126
|
+
if (schemaId !== searchSchemaId || aql !== searchAql) {
|
|
132
127
|
reset({
|
|
133
128
|
shouldResetColumns: true
|
|
134
129
|
});
|
|
135
130
|
setAql(searchAql);
|
|
136
131
|
setSchemaId(searchSchemaId);
|
|
137
132
|
setIsNewSearch(true);
|
|
138
|
-
loadDatasourceDetails();
|
|
139
|
-
}
|
|
140
|
-
if (aql !== searchAql) {
|
|
141
|
-
reset();
|
|
142
|
-
setAql(searchAql);
|
|
143
|
-
setSchemaId(searchSchemaId);
|
|
144
133
|
}
|
|
145
|
-
}, [aql,
|
|
134
|
+
}, [aql, reset, schemaId]);
|
|
146
135
|
const renderModalTitleContent = useCallback(() => {
|
|
147
136
|
if (workspaceError) {
|
|
148
137
|
return undefined;
|
|
@@ -205,7 +194,7 @@ const analyticsContextAttributes = {
|
|
|
205
194
|
};
|
|
206
195
|
const analyticsContextData = {
|
|
207
196
|
packageName: "@atlaskit/link-datasource",
|
|
208
|
-
packageVersion: "1.6.
|
|
197
|
+
packageVersion: "1.6.2",
|
|
209
198
|
source: 'datasourceConfigModal'
|
|
210
199
|
};
|
|
211
200
|
const contextData = {
|
|
@@ -1,20 +1,43 @@
|
|
|
1
|
+
import { COMPOUND_OPERATOR_AND, COMPOUND_OPERATOR_OR, creators, JastBuilder, OPERATOR_EQUALS, OPERATOR_GT_EQUALS, OPERATOR_LIKE, ORDER_BY_DIRECTION_ASC, ORDER_BY_DIRECTION_DESC, print } from '@atlaskit/jql-ast';
|
|
1
2
|
const fuzzySearchRegExp = /^"(.+)"$/;
|
|
2
3
|
const jiraIssueKeyRegExp = /[A-Z]+-\d+/;
|
|
4
|
+
const constructTerminalClause = (field, operator, value) => creators.terminalClause(creators.field(field), creators.operator(operator), creators.valueOperand(value));
|
|
3
5
|
export const buildJQL = input => {
|
|
6
|
+
/**
|
|
7
|
+
* Jql ast - Transforming the ast
|
|
8
|
+
* https://atlaskit.atlassian.com/packages/jql/jql-ast/docs/transforming-the-ast
|
|
9
|
+
*/
|
|
10
|
+
const jast = new JastBuilder().build('');
|
|
11
|
+
const {
|
|
12
|
+
query
|
|
13
|
+
} = jast;
|
|
4
14
|
const {
|
|
5
15
|
rawSearch,
|
|
6
|
-
orderDirection =
|
|
16
|
+
orderDirection = ORDER_BY_DIRECTION_DESC,
|
|
7
17
|
orderKey = 'created'
|
|
8
18
|
} = input;
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
19
|
+
const trimmedRawSearch = rawSearch.trim();
|
|
20
|
+
if (!query) {
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
if (trimmedRawSearch) {
|
|
24
|
+
const fuzzy = !trimmedRawSearch.match(fuzzySearchRegExp) ? '*' : '';
|
|
25
|
+
const basicSearch = trimmedRawSearch.replace(/['"?*]+/g, '');
|
|
26
|
+
const text = constructTerminalClause('text', OPERATOR_LIKE, `${basicSearch}${fuzzy}`);
|
|
27
|
+
const summary = constructTerminalClause('summary', OPERATOR_LIKE, `${basicSearch}${fuzzy}`);
|
|
28
|
+
const orClauseFields = [text, summary];
|
|
29
|
+
if (jiraIssueKeyRegExp.test(trimmedRawSearch)) {
|
|
30
|
+
const key = constructTerminalClause('key', OPERATOR_EQUALS, basicSearch);
|
|
31
|
+
orClauseFields.push(key);
|
|
32
|
+
}
|
|
33
|
+
const orClause = creators.compoundClause(creators.compoundOperator(COMPOUND_OPERATOR_OR), orClauseFields);
|
|
34
|
+
query.appendClause(orClause, COMPOUND_OPERATOR_AND);
|
|
35
|
+
} else {
|
|
36
|
+
const created = constructTerminalClause('created', OPERATOR_GT_EQUALS, '-30d');
|
|
37
|
+
query.appendClause(created, COMPOUND_OPERATOR_AND);
|
|
14
38
|
}
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return `${query} order by ${orderKey} ${orderDirection.toUpperCase()}`;
|
|
39
|
+
const orderField = creators.orderByField(creators.field(orderKey));
|
|
40
|
+
query.prependOrderField(orderField);
|
|
41
|
+
query.setOrderDirection(creators.orderByDirection(orderDirection.toLowerCase() === 'asc' ? ORDER_BY_DIRECTION_ASC : ORDER_BY_DIRECTION_DESC));
|
|
42
|
+
return print(jast);
|
|
20
43
|
};
|
|
@@ -239,6 +239,7 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
|
|
|
239
239
|
setShouldForceRequest((options === null || options === void 0 ? void 0 : options.shouldForceRequest) || false);
|
|
240
240
|
if (options !== null && options !== void 0 && options.shouldResetColumns) {
|
|
241
241
|
setColumns([]);
|
|
242
|
+
setDefaultVisibleColumnKeys([]);
|
|
242
243
|
}
|
|
243
244
|
}, []);
|
|
244
245
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
4
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
4
5
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
6
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
6
8
|
/** @jsx jsx */
|
|
7
9
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
8
10
|
import { css, jsx } from '@emotion/react';
|
|
@@ -85,24 +87,18 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
85
87
|
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
86
88
|
}, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
|
|
87
89
|
useEffect(function () {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (data && isNewSearch) {
|
|
91
|
-
setVisibleColumnKeys(Object.keys(data));
|
|
92
|
-
} else if (data && (visibleColumnKeys || []).length) {
|
|
93
|
-
setVisibleColumnKeys(visibleColumnKeys);
|
|
90
|
+
if (isNewSearch) {
|
|
91
|
+
setVisibleColumnKeys(defaultVisibleColumnKeys);
|
|
94
92
|
}
|
|
95
|
-
|
|
96
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
97
|
-
}, [responseItems, isNewSearch]);
|
|
93
|
+
}, [defaultVisibleColumnKeys, isNewSearch]);
|
|
98
94
|
useEffect(function () {
|
|
99
95
|
fireEvent('screen.datasourceModalDialog.viewed', {});
|
|
100
96
|
}, [fireEvent]);
|
|
101
97
|
var isDisabled = !!workspaceError || status === 'rejected' || status === 'loading' || status === 'empty' || !!workspaceError || assetsClientLoading || !aql || !schemaId;
|
|
102
98
|
var retrieveUrlForSmartCardRender = useCallback(function () {
|
|
103
99
|
var _data$key;
|
|
104
|
-
var
|
|
105
|
-
data =
|
|
100
|
+
var _responseItems = _slicedToArray(responseItems, 1),
|
|
101
|
+
data = _responseItems[0];
|
|
106
102
|
// agreement with BE that we will use `key` for rendering smartlink
|
|
107
103
|
return data === null || data === void 0 || (_data$key = data.key) === null || _data$key === void 0 || (_data$key = _data$key.data) === null || _data$key === void 0 ? void 0 : _data$key.url;
|
|
108
104
|
}, [responseItems]);
|
|
@@ -144,22 +140,29 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
|
|
|
144
140
|
});
|
|
145
141
|
}
|
|
146
142
|
}, [aql, schemaId, workspaceId, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, visibleColumnKeys]);
|
|
147
|
-
var handleOnSearch = useCallback(function (
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
143
|
+
var handleOnSearch = useCallback( /*#__PURE__*/function () {
|
|
144
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(searchAql, searchSchemaId) {
|
|
145
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
146
|
+
while (1) switch (_context.prev = _context.next) {
|
|
147
|
+
case 0:
|
|
148
|
+
if (schemaId !== searchSchemaId || aql !== searchAql) {
|
|
149
|
+
reset({
|
|
150
|
+
shouldResetColumns: true
|
|
151
|
+
});
|
|
152
|
+
setAql(searchAql);
|
|
153
|
+
setSchemaId(searchSchemaId);
|
|
154
|
+
setIsNewSearch(true);
|
|
155
|
+
}
|
|
156
|
+
case 1:
|
|
157
|
+
case "end":
|
|
158
|
+
return _context.stop();
|
|
159
|
+
}
|
|
160
|
+
}, _callee);
|
|
161
|
+
}));
|
|
162
|
+
return function (_x, _x2) {
|
|
163
|
+
return _ref.apply(this, arguments);
|
|
164
|
+
};
|
|
165
|
+
}(), [aql, reset, schemaId]);
|
|
163
166
|
var renderModalTitleContent = useCallback(function () {
|
|
164
167
|
if (workspaceError) {
|
|
165
168
|
return undefined;
|
|
@@ -222,7 +225,7 @@ var analyticsContextAttributes = {
|
|
|
222
225
|
};
|
|
223
226
|
var analyticsContextData = {
|
|
224
227
|
packageName: "@atlaskit/link-datasource",
|
|
225
|
-
packageVersion: "1.6.
|
|
228
|
+
packageVersion: "1.6.2",
|
|
226
229
|
source: 'datasourceConfigModal'
|
|
227
230
|
};
|
|
228
231
|
var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
|
|
@@ -1,20 +1,43 @@
|
|
|
1
|
+
import { COMPOUND_OPERATOR_AND, COMPOUND_OPERATOR_OR, creators, JastBuilder, OPERATOR_EQUALS, OPERATOR_GT_EQUALS, OPERATOR_LIKE, ORDER_BY_DIRECTION_ASC, ORDER_BY_DIRECTION_DESC, print } from '@atlaskit/jql-ast';
|
|
1
2
|
var fuzzySearchRegExp = /^"(.+)"$/;
|
|
2
3
|
var jiraIssueKeyRegExp = /[A-Z]+-\d+/;
|
|
4
|
+
var constructTerminalClause = function constructTerminalClause(field, operator, value) {
|
|
5
|
+
return creators.terminalClause(creators.field(field), creators.operator(operator), creators.valueOperand(value));
|
|
6
|
+
};
|
|
3
7
|
export var buildJQL = function buildJQL(input) {
|
|
8
|
+
/**
|
|
9
|
+
* Jql ast - Transforming the ast
|
|
10
|
+
* https://atlaskit.atlassian.com/packages/jql/jql-ast/docs/transforming-the-ast
|
|
11
|
+
*/
|
|
12
|
+
var jast = new JastBuilder().build('');
|
|
13
|
+
var query = jast.query;
|
|
4
14
|
var rawSearch = input.rawSearch,
|
|
5
15
|
_input$orderDirection = input.orderDirection,
|
|
6
|
-
orderDirection = _input$orderDirection === void 0 ?
|
|
16
|
+
orderDirection = _input$orderDirection === void 0 ? ORDER_BY_DIRECTION_DESC : _input$orderDirection,
|
|
7
17
|
_input$orderKey = input.orderKey,
|
|
8
18
|
orderKey = _input$orderKey === void 0 ? 'created' : _input$orderKey;
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (jiraIssueKeyRegExp.test(rawSearch)) {
|
|
13
|
-
baseQueryParts.push("key = \"".concat(basicSearch, "\""));
|
|
19
|
+
var trimmedRawSearch = rawSearch.trim();
|
|
20
|
+
if (!query) {
|
|
21
|
+
return '';
|
|
14
22
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
23
|
+
if (trimmedRawSearch) {
|
|
24
|
+
var fuzzy = !trimmedRawSearch.match(fuzzySearchRegExp) ? '*' : '';
|
|
25
|
+
var basicSearch = trimmedRawSearch.replace(/['"?*]+/g, '');
|
|
26
|
+
var text = constructTerminalClause('text', OPERATOR_LIKE, "".concat(basicSearch).concat(fuzzy));
|
|
27
|
+
var summary = constructTerminalClause('summary', OPERATOR_LIKE, "".concat(basicSearch).concat(fuzzy));
|
|
28
|
+
var orClauseFields = [text, summary];
|
|
29
|
+
if (jiraIssueKeyRegExp.test(trimmedRawSearch)) {
|
|
30
|
+
var key = constructTerminalClause('key', OPERATOR_EQUALS, basicSearch);
|
|
31
|
+
orClauseFields.push(key);
|
|
32
|
+
}
|
|
33
|
+
var orClause = creators.compoundClause(creators.compoundOperator(COMPOUND_OPERATOR_OR), orClauseFields);
|
|
34
|
+
query.appendClause(orClause, COMPOUND_OPERATOR_AND);
|
|
35
|
+
} else {
|
|
36
|
+
var created = constructTerminalClause('created', OPERATOR_GT_EQUALS, '-30d');
|
|
37
|
+
query.appendClause(created, COMPOUND_OPERATOR_AND);
|
|
38
|
+
}
|
|
39
|
+
var orderField = creators.orderByField(creators.field(orderKey));
|
|
40
|
+
query.prependOrderField(orderField);
|
|
41
|
+
query.setOrderDirection(creators.orderByDirection(orderDirection.toLowerCase() === 'asc' ? ORDER_BY_DIRECTION_ASC : ORDER_BY_DIRECTION_DESC));
|
|
42
|
+
return print(jast);
|
|
20
43
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/link-datasource",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.2",
|
|
4
4
|
"description": "UI Components to support linking platform dataset feature",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -42,12 +42,13 @@
|
|
|
42
42
|
"@atlaskit/icon": "^21.12.0",
|
|
43
43
|
"@atlaskit/icon-object": "^6.3.0",
|
|
44
44
|
"@atlaskit/image": "^1.1.0",
|
|
45
|
+
"@atlaskit/jql-ast": "^3.0.0",
|
|
45
46
|
"@atlaskit/jql-editor-autocomplete-rest": "^2.0.0",
|
|
46
47
|
"@atlaskit/link-client-extension": "^1.7.0",
|
|
47
|
-
"@atlaskit/linking-common": "^4.
|
|
48
|
+
"@atlaskit/linking-common": "^4.11.0",
|
|
48
49
|
"@atlaskit/linking-types": "^8.4.0",
|
|
49
50
|
"@atlaskit/lozenge": "^11.4.0",
|
|
50
|
-
"@atlaskit/modal-dialog": "^12.
|
|
51
|
+
"@atlaskit/modal-dialog": "^12.8.0",
|
|
51
52
|
"@atlaskit/platform-feature-flags": "^0.2.4",
|
|
52
53
|
"@atlaskit/pragmatic-drag-and-drop": "^0.23.0",
|
|
53
54
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^0.11.0",
|