@atlaskit/link-datasource 0.21.2 → 0.23.0
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/hooks/useDatasourceTableState.js +14 -7
- package/dist/cjs/ui/common/error-state/loading-error-svg.js +87 -0
- package/dist/cjs/ui/common/error-state/loading-error.js +49 -0
- package/dist/cjs/ui/common/error-state/messages.js +45 -0
- package/dist/cjs/ui/common/error-state/modal-loading-error.js +54 -0
- package/dist/cjs/ui/common/error-state/no-results.js +168 -0
- package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +12 -0
- package/dist/cjs/ui/jira-issues-modal/basic-search-input/index.js +12 -2
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +4 -1
- package/dist/cjs/ui/jira-issues-modal/jql-editor/index.js +2 -0
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +48 -24
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/hooks/useDatasourceTableState.js +24 -20
- package/dist/es2019/ui/common/error-state/loading-error-svg.js +77 -0
- package/dist/es2019/ui/common/error-state/loading-error.js +41 -0
- package/dist/es2019/ui/common/error-state/messages.js +38 -0
- package/dist/es2019/ui/common/error-state/modal-loading-error.js +44 -0
- package/dist/es2019/ui/common/error-state/no-results.js +160 -0
- package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +12 -0
- package/dist/es2019/ui/jira-issues-modal/basic-search-input/index.js +12 -2
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +3 -0
- package/dist/es2019/ui/jira-issues-modal/jql-editor/index.js +2 -0
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +45 -21
- package/dist/es2019/version.json +1 -1
- package/dist/esm/hooks/useDatasourceTableState.js +14 -7
- package/dist/esm/ui/common/error-state/loading-error-svg.js +79 -0
- package/dist/esm/ui/common/error-state/loading-error.js +40 -0
- package/dist/esm/ui/common/error-state/messages.js +38 -0
- package/dist/esm/ui/common/error-state/modal-loading-error.js +45 -0
- package/dist/esm/ui/common/error-state/no-results.js +159 -0
- package/dist/esm/ui/datasource-table-view/datasourceTableView.js +12 -0
- package/dist/esm/ui/jira-issues-modal/basic-search-input/index.js +12 -2
- package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +4 -1
- package/dist/esm/ui/jira-issues-modal/jql-editor/index.js +2 -0
- package/dist/esm/ui/jira-issues-modal/modal/index.js +48 -24
- package/dist/esm/version.json +1 -1
- package/dist/types/ui/common/error-state/loading-error-svg.d.ts +2 -0
- package/dist/types/ui/common/error-state/loading-error.d.ts +7 -0
- package/dist/types/ui/common/error-state/messages.d.ts +37 -0
- package/dist/types/ui/common/error-state/modal-loading-error.d.ts +7 -0
- package/dist/types/ui/common/error-state/no-results.d.ts +7 -0
- package/dist/types/ui/jira-issues-modal/jira-search-container/index.d.ts +1 -0
- package/dist/types/ui/jira-issues-modal/jql-editor/index.d.ts +1 -0
- package/dist/types-ts4.5/ui/common/error-state/loading-error-svg.d.ts +2 -0
- package/dist/types-ts4.5/ui/common/error-state/loading-error.d.ts +7 -0
- package/dist/types-ts4.5/ui/common/error-state/messages.d.ts +37 -0
- package/dist/types-ts4.5/ui/common/error-state/modal-loading-error.d.ts +7 -0
- package/dist/types-ts4.5/ui/common/error-state/no-results.d.ts +7 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/index.d.ts +1 -0
- package/dist/types-ts4.5/ui/jira-issues-modal/jql-editor/index.d.ts +1 -0
- package/package.json +2 -3
|
@@ -8,6 +8,9 @@ import { basicSearchInputMessages } from './messages';
|
|
|
8
8
|
const searchButtonStyles = css({
|
|
9
9
|
marginRight: "var(--ds-space-075, 6px)"
|
|
10
10
|
});
|
|
11
|
+
const formStyles = css({
|
|
12
|
+
flex: 1
|
|
13
|
+
});
|
|
11
14
|
export const BasicSearchInput = ({
|
|
12
15
|
isDisabled,
|
|
13
16
|
isSearching,
|
|
@@ -19,7 +22,14 @@ export const BasicSearchInput = ({
|
|
|
19
22
|
const {
|
|
20
23
|
formatMessage
|
|
21
24
|
} = useIntl();
|
|
22
|
-
|
|
25
|
+
const handleFormSubmit = e => {
|
|
26
|
+
e.preventDefault();
|
|
27
|
+
onSearch(searchTerm);
|
|
28
|
+
};
|
|
29
|
+
return jsx("form", {
|
|
30
|
+
css: formStyles,
|
|
31
|
+
onSubmit: handleFormSubmit
|
|
32
|
+
}, jsx(Textfield, {
|
|
23
33
|
elemAfterInput: jsx(LoadingButton, {
|
|
24
34
|
appearance: "primary",
|
|
25
35
|
css: searchButtonStyles,
|
|
@@ -38,5 +48,5 @@ export const BasicSearchInput = ({
|
|
|
38
48
|
placeholder: formatMessage(basicSearchInputMessages.basicTextSearchLabel),
|
|
39
49
|
testId: testId,
|
|
40
50
|
value: searchTerm
|
|
41
|
-
});
|
|
51
|
+
}));
|
|
42
52
|
};
|
|
@@ -16,6 +16,7 @@ const inputContainerStyles = css({
|
|
|
16
16
|
const DEFAULT_JQL_QUERY = 'created >= -30d order by created DESC';
|
|
17
17
|
export const JiraSearchContainer = props => {
|
|
18
18
|
const {
|
|
19
|
+
isSearching,
|
|
19
20
|
parameters,
|
|
20
21
|
onSearch
|
|
21
22
|
} = props;
|
|
@@ -68,11 +69,13 @@ export const JiraSearchContainer = props => {
|
|
|
68
69
|
return jsx("div", {
|
|
69
70
|
css: inputContainerStyles
|
|
70
71
|
}, currentSearchMode === basicModeValue && jsx(BasicSearchInput, {
|
|
72
|
+
isSearching: isSearching,
|
|
71
73
|
onChange: handleBasicSearchChange,
|
|
72
74
|
onSearch: handleSearch,
|
|
73
75
|
searchTerm: basicSearchTerm
|
|
74
76
|
}), currentSearchMode === jqlModeValue && jsx(JiraJQLEditor, {
|
|
75
77
|
cloudId: cloudId || '',
|
|
78
|
+
isSearching: isSearching,
|
|
76
79
|
onChange: onQueryChange,
|
|
77
80
|
onSearch: handleSearch,
|
|
78
81
|
query: jql
|
|
@@ -6,6 +6,7 @@ import { makeGetJqlSuggestionsData } from '../../../services/makeGetJqlSuggestio
|
|
|
6
6
|
export const JiraJQLEditor = props => {
|
|
7
7
|
const {
|
|
8
8
|
cloudId,
|
|
9
|
+
isSearching,
|
|
9
10
|
onChange,
|
|
10
11
|
onSearch,
|
|
11
12
|
query
|
|
@@ -27,6 +28,7 @@ export const JiraJQLEditor = props => {
|
|
|
27
28
|
autocompleteProvider: autocompleteProvider,
|
|
28
29
|
onSearch: onSearch,
|
|
29
30
|
onUpdate: onChange,
|
|
31
|
+
isSearching: isSearching,
|
|
30
32
|
inputRef: inputRef,
|
|
31
33
|
query: query
|
|
32
34
|
});
|
|
@@ -8,6 +8,8 @@ import Modal, { ModalBody, ModalFooter, ModalHeader, ModalTitle, ModalTransition
|
|
|
8
8
|
import { B400, N0, N800 } from '@atlaskit/theme/colors';
|
|
9
9
|
import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
|
|
10
10
|
import { getAvailableJiraSites } from '../../../services/getAvailableJiraSites';
|
|
11
|
+
import { ModalLoadingError } from '../../common/error-state/modal-loading-error';
|
|
12
|
+
import { NoResults } from '../../common/error-state/no-results';
|
|
11
13
|
import { EmptyState, IssueLikeDataTableView } from '../../issue-like-table';
|
|
12
14
|
import LinkRenderType from '../../issue-like-table/render-type/link';
|
|
13
15
|
import { JiraSearchContainer } from '../jira-search-container';
|
|
@@ -19,6 +21,7 @@ const dropdownContainerStyles = css({
|
|
|
19
21
|
gap: "var(--ds-space-100, 0.5rem)"
|
|
20
22
|
});
|
|
21
23
|
const contentContainerStyles = css({
|
|
24
|
+
display: 'grid',
|
|
22
25
|
height: '420px',
|
|
23
26
|
overflow: 'auto'
|
|
24
27
|
});
|
|
@@ -34,6 +37,9 @@ const issueCountStyles = css({
|
|
|
34
37
|
flex: 1,
|
|
35
38
|
fontWeight: 600
|
|
36
39
|
});
|
|
40
|
+
const smartLinkContainerStyles = css({
|
|
41
|
+
paddingLeft: '1px'
|
|
42
|
+
});
|
|
37
43
|
export const JiraIssuesConfigModal = props => {
|
|
38
44
|
const {
|
|
39
45
|
datasourceId,
|
|
@@ -67,13 +73,18 @@ export const JiraIssuesConfigModal = props => {
|
|
|
67
73
|
parameters: isParametersSet ? parameters : undefined,
|
|
68
74
|
fieldKeys: visibleColumnKeys
|
|
69
75
|
});
|
|
76
|
+
const {
|
|
77
|
+
formatMessage
|
|
78
|
+
} = useIntl();
|
|
79
|
+
const selectedJiraSite = useMemo(() => availableSites.find(jiraSite => jiraSite.cloudId === cloudId) || availableSites[0], [availableSites, cloudId]);
|
|
80
|
+
const resolvedWithNoResults = status === 'resolved' && !responseItems.length;
|
|
81
|
+
const jqlUrl = selectedJiraSite && jql && `${selectedJiraSite.url}/issues/?jql=${encodeURI(jql)}`;
|
|
82
|
+
const isDisabled = !isParametersSet || status === 'rejected' || status === 'loading' || resolvedWithNoResults;
|
|
83
|
+
const shouldShowIssueCount = !!totalCount && totalCount !== 1 && currentViewMode === 'issue';
|
|
70
84
|
useEffect(() => {
|
|
71
85
|
const newVisibleColumnKeys = !initialVisibleColumnKeys || (initialVisibleColumnKeys || []).length === 0 ? defaultVisibleColumnKeys : initialVisibleColumnKeys;
|
|
72
86
|
setVisibleColumnKeys(newVisibleColumnKeys);
|
|
73
87
|
}, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
|
|
74
|
-
const {
|
|
75
|
-
formatMessage
|
|
76
|
-
} = useIntl();
|
|
77
88
|
useEffect(() => {
|
|
78
89
|
const fetchSiteDisplayNames = async () => {
|
|
79
90
|
const jiraSites = await getAvailableJiraSites();
|
|
@@ -81,6 +92,11 @@ export const JiraIssuesConfigModal = props => {
|
|
|
81
92
|
};
|
|
82
93
|
void fetchSiteDisplayNames();
|
|
83
94
|
}, []);
|
|
95
|
+
useEffect(() => {
|
|
96
|
+
if (!cloudId && selectedJiraSite) {
|
|
97
|
+
setCloudId(selectedJiraSite.cloudId);
|
|
98
|
+
}
|
|
99
|
+
}, [cloudId, selectedJiraSite]);
|
|
84
100
|
const onSearch = useCallback(newParameters => {
|
|
85
101
|
setJql(newParameters.jql);
|
|
86
102
|
reset();
|
|
@@ -89,12 +105,6 @@ export const JiraIssuesConfigModal = props => {
|
|
|
89
105
|
setCloudId(site.cloudId);
|
|
90
106
|
reset();
|
|
91
107
|
}, [reset]);
|
|
92
|
-
const selectedJiraSite = useMemo(() => availableSites.find(jiraSite => jiraSite.cloudId === cloudId) || availableSites[0], [availableSites, cloudId]);
|
|
93
|
-
useEffect(() => {
|
|
94
|
-
if (!cloudId && selectedJiraSite) {
|
|
95
|
-
setCloudId(selectedJiraSite.cloudId);
|
|
96
|
-
}
|
|
97
|
-
}, [cloudId, selectedJiraSite]);
|
|
98
108
|
const retrieveUrlForSmartCardRender = useCallback(() => {
|
|
99
109
|
var _data$key, _data$key$data;
|
|
100
110
|
const [data] = responseItems;
|
|
@@ -110,7 +120,7 @@ export const JiraIssuesConfigModal = props => {
|
|
|
110
120
|
onInsert({
|
|
111
121
|
type: 'inlineCard',
|
|
112
122
|
attrs: {
|
|
113
|
-
url:
|
|
123
|
+
url: jqlUrl
|
|
114
124
|
}
|
|
115
125
|
});
|
|
116
126
|
} else if (responseItems.length === 1 && firstIssueUrl) {
|
|
@@ -141,7 +151,7 @@ export const JiraIssuesConfigModal = props => {
|
|
|
141
151
|
}
|
|
142
152
|
});
|
|
143
153
|
}
|
|
144
|
-
}, [isParametersSet, jql, selectedJiraSite, retrieveUrlForSmartCardRender, currentViewMode, responseItems.length, onInsert, datasourceId, cloudId, visibleColumnKeys]);
|
|
154
|
+
}, [isParametersSet, jql, jqlUrl, selectedJiraSite, retrieveUrlForSmartCardRender, currentViewMode, responseItems.length, onInsert, datasourceId, cloudId, visibleColumnKeys]);
|
|
145
155
|
const handleViewModeChange = selectedMode => {
|
|
146
156
|
setCurrentViewMode(selectedMode);
|
|
147
157
|
};
|
|
@@ -159,31 +169,44 @@ export const JiraIssuesConfigModal = props => {
|
|
|
159
169
|
const renderCountModeContent = useCallback(() => {
|
|
160
170
|
const url = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
|
|
161
171
|
if (status === 'empty' || !jql || !url) {
|
|
162
|
-
return jsx("
|
|
172
|
+
return jsx("div", {
|
|
173
|
+
css: smartLinkContainerStyles
|
|
174
|
+
}, jsx("span", {
|
|
163
175
|
"data-testid": `jira-jql-datasource-modal--smart-card-placeholder`,
|
|
164
176
|
css: placeholderSmartLinkStyles
|
|
165
|
-
}, jsx(FormattedMessage, modalMessages.issuesCountSmartCardPlaceholderText));
|
|
177
|
+
}, jsx(FormattedMessage, modalMessages.issuesCountSmartCardPlaceholderText)));
|
|
166
178
|
} else {
|
|
167
179
|
const urlWithEncodedJql = `${url}/issues/?jql=${encodeURI(jql)}`;
|
|
168
|
-
return jsx(
|
|
180
|
+
return jsx("div", {
|
|
181
|
+
css: smartLinkContainerStyles
|
|
182
|
+
}, jsx(LinkRenderType, {
|
|
169
183
|
url: urlWithEncodedJql
|
|
170
|
-
});
|
|
184
|
+
}));
|
|
171
185
|
}
|
|
172
186
|
}, [jql, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status]);
|
|
173
187
|
const renderIssuesModeContent = useCallback(() => {
|
|
174
|
-
if (status === '
|
|
188
|
+
if (status === 'rejected' && jqlUrl) {
|
|
189
|
+
return jsx(ModalLoadingError, {
|
|
190
|
+
url: jqlUrl
|
|
191
|
+
});
|
|
192
|
+
} else if (resolvedWithNoResults) {
|
|
193
|
+
return jsx(NoResults, null);
|
|
194
|
+
// persist the empty state when making the initial /data request which contains the columns
|
|
195
|
+
} else if (status === 'empty' || !columns.length) {
|
|
175
196
|
return jsx(EmptyState, {
|
|
176
197
|
testId: `jira-jql-datasource-modal--empty-state`
|
|
177
198
|
});
|
|
178
199
|
}
|
|
179
200
|
const firstIssueUrl = retrieveUrlForSmartCardRender();
|
|
180
201
|
if (responseItems.length === 1 && firstIssueUrl) {
|
|
181
|
-
return jsx(
|
|
202
|
+
return jsx("div", {
|
|
203
|
+
css: smartLinkContainerStyles
|
|
204
|
+
}, jsx(LinkRenderType, {
|
|
182
205
|
url: firstIssueUrl
|
|
183
|
-
});
|
|
206
|
+
}));
|
|
184
207
|
}
|
|
185
208
|
return issueLikeDataTableView;
|
|
186
|
-
}, [columns.length,
|
|
209
|
+
}, [status, columns.length, resolvedWithNoResults, jqlUrl, retrieveUrlForSmartCardRender, responseItems.length, issueLikeDataTableView]);
|
|
187
210
|
return jsx(IntlProvider, {
|
|
188
211
|
locale: "en"
|
|
189
212
|
}, jsx(ModalTransition, null, jsx(Modal, {
|
|
@@ -214,11 +237,12 @@ export const JiraIssuesConfigModal = props => {
|
|
|
214
237
|
onOptionValueChange: handleViewModeChange,
|
|
215
238
|
selectedOptionValue: currentViewMode
|
|
216
239
|
})), jsx(ModalBody, null, jsx(JiraSearchContainer, {
|
|
240
|
+
isSearching: status === 'loading',
|
|
217
241
|
parameters: parameters,
|
|
218
242
|
onSearch: onSearch
|
|
219
243
|
}), jsx("div", {
|
|
220
244
|
css: contentContainerStyles
|
|
221
|
-
}, currentViewMode === 'count' ? renderCountModeContent() : renderIssuesModeContent())), jsx(ModalFooter, null,
|
|
245
|
+
}, currentViewMode === 'count' ? renderCountModeContent() : renderIssuesModeContent())), jsx(ModalFooter, null, shouldShowIssueCount && jsx("div", {
|
|
222
246
|
"data-testid": "jira-jql-datasource-modal-total-issues-count",
|
|
223
247
|
css: issueCountStyles
|
|
224
248
|
}, jsx(FormattedNumber, {
|
|
@@ -233,7 +257,7 @@ export const JiraIssuesConfigModal = props => {
|
|
|
233
257
|
}, jsx(FormattedMessage, modalMessages.cancelButtonText)), jsx(Button, {
|
|
234
258
|
appearance: "primary",
|
|
235
259
|
onClick: onInsertPressed,
|
|
236
|
-
isDisabled:
|
|
260
|
+
isDisabled: isDisabled,
|
|
237
261
|
testId: 'jira-jql-datasource-modal--insert-button'
|
|
238
262
|
}, jsx(FormattedMessage, modalMessages.insertIssuesButtonText))))));
|
|
239
263
|
};
|
package/dist/es2019/version.json
CHANGED
|
@@ -101,7 +101,7 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
|
|
|
101
101
|
_yield$getDatasourceD,
|
|
102
102
|
data,
|
|
103
103
|
nextPageCursor,
|
|
104
|
-
|
|
104
|
+
_totalCount,
|
|
105
105
|
schema,
|
|
106
106
|
_args2 = arguments;
|
|
107
107
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
@@ -123,15 +123,16 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
|
|
|
123
123
|
includeSchema: isSchemaFromData
|
|
124
124
|
};
|
|
125
125
|
setStatus('loading');
|
|
126
|
-
_context2.
|
|
126
|
+
_context2.prev = 6;
|
|
127
|
+
_context2.next = 9;
|
|
127
128
|
return getDatasourceData(datasourceId, datasourceDataRequest);
|
|
128
|
-
case
|
|
129
|
+
case 9:
|
|
129
130
|
_yield$getDatasourceD = _context2.sent;
|
|
130
131
|
data = _yield$getDatasourceD.data;
|
|
131
132
|
nextPageCursor = _yield$getDatasourceD.nextPageCursor;
|
|
132
|
-
|
|
133
|
+
_totalCount = _yield$getDatasourceD.totalCount;
|
|
133
134
|
schema = _yield$getDatasourceD.schema;
|
|
134
|
-
setTotalCount(
|
|
135
|
+
setTotalCount(_totalCount);
|
|
135
136
|
setNextCursor(nextPageCursor);
|
|
136
137
|
setResponseItems(function (currentResponseItems) {
|
|
137
138
|
if (shouldRequestFirstPage) {
|
|
@@ -147,11 +148,17 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
|
|
|
147
148
|
if (isSchemaFromData && schema) {
|
|
148
149
|
applySchemaProperties(schema.properties);
|
|
149
150
|
}
|
|
150
|
-
|
|
151
|
+
_context2.next = 26;
|
|
152
|
+
break;
|
|
153
|
+
case 23:
|
|
154
|
+
_context2.prev = 23;
|
|
155
|
+
_context2.t0 = _context2["catch"](6);
|
|
156
|
+
setStatus('rejected');
|
|
157
|
+
case 26:
|
|
151
158
|
case "end":
|
|
152
159
|
return _context2.stop();
|
|
153
160
|
}
|
|
154
|
-
}, _callee2);
|
|
161
|
+
}, _callee2, null, [[6, 23]]);
|
|
155
162
|
})), [parameters, fieldKeys, getDatasourceData, datasourceId, nextCursor, applySchemaProperties]);
|
|
156
163
|
var reset = useCallback(function () {
|
|
157
164
|
setStatus('empty');
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export var LoadingErrorSVG = function LoadingErrorSVG() {
|
|
3
|
+
return /*#__PURE__*/React.createElement("svg", {
|
|
4
|
+
width: "92",
|
|
5
|
+
height: "124",
|
|
6
|
+
viewBox: "0 0 92 124",
|
|
7
|
+
fill: "none",
|
|
8
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
9
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
10
|
+
clipPath: "url(#clip0_4923_331519)"
|
|
11
|
+
}, /*#__PURE__*/React.createElement("rect", {
|
|
12
|
+
width: "91",
|
|
13
|
+
height: "124",
|
|
14
|
+
transform: "translate(0.5)",
|
|
15
|
+
fill: "white",
|
|
16
|
+
fillOpacity: "0.01"
|
|
17
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
18
|
+
d: "M64.164 91.4343L59.8759 87.2682L54.1057 93.2511L58.3937 97.4172C59.4876 98.482 60.2588 99.8323 60.6198 101.32C60.9808 102.807 61.7519 104.158 62.8458 105.222L80.2385 122.123C82.8748 124.681 87.0808 124.615 89.6295 121.969C92.1783 119.323 92.1126 115.102 89.4764 112.545L72.0837 95.6443C70.9898 94.5794 69.6169 93.8494 68.1238 93.5365C66.6307 93.2291 65.2578 92.4991 64.164 91.4343Z",
|
|
19
|
+
fill: "url(#paint0_linear_4923_331519)"
|
|
20
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
21
|
+
d: "M67.9487 93.4981C66.5267 93.1688 65.214 92.4552 64.1639 91.4343L62.8567 90.1663C61.2104 88.5691 58.5851 88.6075 56.988 90.2597C55.3964 91.9118 55.4347 94.5465 57.081 96.1493L58.3882 97.4172C59.4383 98.4381 60.1876 99.7225 60.565 101.139C61.9707 100.068 63.3052 98.8827 64.5577 97.5873C65.7993 96.3029 66.9314 94.9307 67.9487 93.4981Z",
|
|
22
|
+
fill: "#B3BAC5"
|
|
23
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
24
|
+
d: "M35.7559 104.915C26.4852 105.063 17.7123 101.583 11.0506 95.1119C-2.69953 81.7573 -3.05504 59.6645 10.252 45.8654C16.7005 39.1799 25.3585 35.4145 34.6292 35.2663C43.8998 35.1181 52.6727 38.598 59.3345 45.0695C65.9962 51.5409 69.7482 60.2298 69.8959 69.528C70.0436 78.8263 66.576 87.636 60.1275 94.3215C53.6791 101.001 45.021 104.767 35.7559 104.915ZM34.7604 43.5765C27.7049 43.6917 21.1143 46.557 16.2027 51.6452C6.06793 62.151 6.3414 78.9745 16.8098 89.1454C21.88 94.0745 28.5636 96.7201 35.6191 96.6103C42.6747 96.4951 49.2653 93.6299 54.1768 88.5416C59.0884 83.4534 61.7246 76.746 61.6098 69.6653C61.4949 62.5846 58.6399 55.9704 53.5697 51.0414C48.4996 46.1124 41.8214 43.4612 34.7604 43.5765Z",
|
|
25
|
+
fill: "url(#paint1_linear_4923_331519)"
|
|
26
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
27
|
+
d: "M47.9087 61.893L44.3536 58.391C43.741 57.7873 42.762 57.7982 42.1658 58.413L35.3783 65.351L28.465 58.5392C27.8524 57.9355 26.8734 57.9464 26.2772 58.5612L22.7877 62.129C22.1861 62.7437 22.197 63.7263 22.8096 64.3245L29.7229 71.1363L22.9354 78.0743C22.3338 78.689 22.3447 79.6715 22.9573 80.2698L26.5124 83.7718C27.125 84.3755 28.104 84.3646 28.7002 83.7498L35.4877 76.8118L42.401 83.6236C43.0136 84.2273 43.9926 84.2164 44.5888 83.6016L48.0783 80.0338C48.6799 79.4191 48.669 78.4365 48.0564 77.8382L41.1376 71.0265L47.9251 64.0885C48.5268 63.4793 48.5213 62.4967 47.9087 61.893Z",
|
|
28
|
+
fill: "#C1C7D0"
|
|
29
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
30
|
+
d: "M39.3984 15.2317L34.1478 0.236014C34.0274 -0.115276 33.5188 -0.0548982 33.475 0.312859L31.7795 14.8475L28.4322 14.4523C28.1752 14.4248 27.9783 14.6719 28.0658 14.9134L33.3164 29.9091C33.4367 30.2604 33.9454 30.2 33.9891 29.8322L35.6847 15.2976L39.0319 15.6928C39.2835 15.7257 39.4804 15.4732 39.3984 15.2317Z",
|
|
31
|
+
fill: "#C1C7D0"
|
|
32
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
33
|
+
d: "M22.8754 24.7605L16.3504 20.287C16.2137 20.1937 16.0496 20.3474 16.1316 20.4901L19.7195 26.8188L18.2537 27.6586C18.1553 27.7135 18.1498 27.8562 18.2428 27.9166L24.7678 32.3901C24.9045 32.4834 25.0686 32.3297 24.9866 32.187L21.3987 25.8583L22.8645 25.0185C22.9629 24.9636 22.9684 24.8263 22.8754 24.7605Z",
|
|
34
|
+
fill: "#C1C7D0"
|
|
35
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
36
|
+
d: "M46.4539 32.1266C46.3937 32.1266 46.339 32.1156 46.2789 32.0992C46.0109 32.0113 45.8577 31.7314 45.9179 31.457C45.7812 31.1606 44.7912 30.5513 44.1896 30.1835C42.8332 29.3492 41.6627 28.6302 41.9799 27.6806C42.2971 26.7255 43.6645 26.8627 45.2452 27.0164C45.8851 27.0823 46.9188 27.1811 47.3017 27.0768C47.0555 26.7585 46.175 26.2205 45.6226 25.8802C44.2661 25.0459 43.0957 24.3324 43.4129 23.3773C43.7301 22.4222 45.0975 22.5594 46.6781 22.7131C47.3181 22.779 48.3463 22.8778 48.7346 22.7735C48.4885 22.4552 47.6079 21.9172 47.0555 21.5769C45.6991 20.7426 44.5287 20.0291 44.8459 19.074C45.1631 18.1244 46.5305 18.2561 48.1111 18.4098C48.8112 18.4757 49.9653 18.591 50.2551 18.4373C50.37 18.1848 50.6599 18.053 50.9279 18.1464C51.2123 18.2452 51.3709 18.5525 51.2724 18.8434C50.9552 19.793 49.5879 19.6613 48.0072 19.5021C47.3673 19.4362 46.3336 19.3374 45.9507 19.4417C46.1968 19.7601 47.0774 20.298 47.6298 20.6383C48.9862 21.4726 50.1567 22.1862 49.8395 23.1413C49.5222 24.0908 48.1549 23.9591 46.5742 23.8054C45.9343 23.7396 44.9006 23.6408 44.5177 23.745C44.7639 24.0634 45.6444 24.6013 46.1968 24.9416C47.5533 25.7759 48.7237 26.4895 48.4065 27.4446C48.0893 28.3996 46.7219 28.2624 45.1412 28.1087C44.5013 28.0429 43.4676 27.9441 43.0847 28.0484C43.3309 28.3667 44.2114 28.9101 44.7639 29.2449C46.1203 30.0792 47.2907 30.7983 46.9735 31.7479C46.8969 31.9784 46.6836 32.1266 46.4539 32.1266Z",
|
|
37
|
+
fill: "#DFE1E5"
|
|
38
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
39
|
+
d: "M54.1988 34.9369C54.0073 34.9369 53.8214 34.8381 53.7229 34.657C53.1213 33.5921 52.4431 32.3846 53.165 31.7039C53.8925 31.0233 55.052 31.7918 56.2826 32.6096C56.8022 32.9554 57.639 33.5098 58.0109 33.5866C57.9617 33.2134 57.464 32.3352 57.1577 31.7918C56.4303 30.5074 55.7411 29.2943 56.4686 28.6082C57.196 27.9276 58.3555 28.696 59.5861 29.5139C60.144 29.8871 61.0683 30.4964 61.3856 30.4964C61.3856 30.4964 61.3856 30.4964 61.391 30.4964C61.6098 30.3262 61.9325 30.3482 62.1239 30.5568C62.3318 30.7763 62.3208 31.1276 62.0966 31.3307C61.3691 32.0168 60.2096 31.2429 58.979 30.425C58.4594 30.0792 57.6226 29.5248 57.2507 29.448C57.2999 29.8212 57.7976 30.6995 58.1039 31.2429C58.8313 32.5273 59.5205 33.7403 58.7931 34.4264C58.0656 35.1071 56.9061 34.3386 55.6755 33.5208C55.1559 33.175 54.3191 32.6206 53.9526 32.5437C54.0019 32.917 54.4996 33.8007 54.6746 34.1081C54.8223 34.3716 54.7293 34.7064 54.4668 34.8546C54.3847 34.915 54.2917 34.9369 54.1988 34.9369Z",
|
|
40
|
+
fill: "#DFE1E5"
|
|
41
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
42
|
+
d: "M13.8838 37.105C13.84 37.105 13.8017 37.105 13.758 37.0995C12.768 36.9788 12.6149 35.5901 12.4508 34.1246C12.3797 33.5043 12.2703 32.4998 12.0898 32.1705C11.8327 32.4504 11.4827 33.3945 11.2694 33.9818C10.7553 35.3705 10.263 36.6769 9.28399 36.5561C8.29402 36.4354 8.14088 35.0467 7.97133 33.5812C7.89476 32.9115 7.76896 31.7973 7.56659 31.5612C7.29312 31.5009 7.10716 31.2429 7.13998 30.9575C7.17827 30.6556 7.44627 30.447 7.74708 30.4799C8.73705 30.6007 8.89019 31.9894 9.05974 33.4604C9.13084 34.0806 9.24023 35.0851 9.42619 35.4144C9.68325 35.1345 10.0333 34.1904 10.2466 33.6031C10.7607 32.2199 11.2475 30.919 12.232 31.0288C13.222 31.1496 13.3751 32.5383 13.5447 34.0093C13.6158 34.6295 13.7251 35.6285 13.9056 35.9633C14.1572 35.6834 14.5127 34.7338 14.6385 34.399C14.7425 34.1136 15.0597 33.9709 15.3441 34.0752C15.6285 34.1794 15.7707 34.4978 15.6668 34.7832C15.2402 35.87 14.7807 37.105 13.8838 37.105Z",
|
|
43
|
+
fill: "#DFE1E5"
|
|
44
|
+
})), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("linearGradient", {
|
|
45
|
+
id: "paint0_linear_4923_331519",
|
|
46
|
+
x1: "68.4958",
|
|
47
|
+
y1: "110.901",
|
|
48
|
+
x2: "78.201",
|
|
49
|
+
y2: "101.23",
|
|
50
|
+
gradientUnits: "userSpaceOnUse"
|
|
51
|
+
}, /*#__PURE__*/React.createElement("stop", {
|
|
52
|
+
stopColor: "#B3BAC5"
|
|
53
|
+
}), /*#__PURE__*/React.createElement("stop", {
|
|
54
|
+
offset: "1",
|
|
55
|
+
stopColor: "#DFE1E5",
|
|
56
|
+
stopOpacity: "0.5"
|
|
57
|
+
})), /*#__PURE__*/React.createElement("linearGradient", {
|
|
58
|
+
id: "paint1_linear_4923_331519",
|
|
59
|
+
x1: "10.6494",
|
|
60
|
+
y1: "94.7201",
|
|
61
|
+
x2: "59.9078",
|
|
62
|
+
y2: "45.6368",
|
|
63
|
+
gradientUnits: "userSpaceOnUse"
|
|
64
|
+
}, /*#__PURE__*/React.createElement("stop", {
|
|
65
|
+
offset: "0.5572",
|
|
66
|
+
stopColor: "#C1C7D0"
|
|
67
|
+
}), /*#__PURE__*/React.createElement("stop", {
|
|
68
|
+
offset: "0.966",
|
|
69
|
+
stopColor: "#E9EBEF",
|
|
70
|
+
stopOpacity: "0.5"
|
|
71
|
+
})), /*#__PURE__*/React.createElement("clipPath", {
|
|
72
|
+
id: "clip0_4923_331519"
|
|
73
|
+
}, /*#__PURE__*/React.createElement("rect", {
|
|
74
|
+
width: "91",
|
|
75
|
+
height: "124",
|
|
76
|
+
fill: "white",
|
|
77
|
+
transform: "translate(0.5)"
|
|
78
|
+
}))));
|
|
79
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { css, jsx } from '@emotion/react';
|
|
3
|
+
import { FormattedMessage } from 'react-intl-next';
|
|
4
|
+
import Button from '@atlaskit/button/standard-button';
|
|
5
|
+
import { LoadingErrorSVG } from './loading-error-svg';
|
|
6
|
+
import { loadingErrorMessages } from './messages';
|
|
7
|
+
var errorContainerStyles = css({
|
|
8
|
+
display: 'grid',
|
|
9
|
+
gap: "var(--ds-space-200, 16px)",
|
|
10
|
+
placeItems: 'center',
|
|
11
|
+
placeSelf: 'center'
|
|
12
|
+
});
|
|
13
|
+
var errorMessageContainerStyles = css({
|
|
14
|
+
display: 'grid',
|
|
15
|
+
gap: "var(--ds-space-100, 8px)",
|
|
16
|
+
placeItems: 'center'
|
|
17
|
+
});
|
|
18
|
+
var errorMessageStyles = css({
|
|
19
|
+
fontWeight: "var(--ds-font-weight-semibold, 600)",
|
|
20
|
+
fontSize: "var(--ds-font-size-200, 16px)"
|
|
21
|
+
});
|
|
22
|
+
var errorDescriptionStyles = css({
|
|
23
|
+
margin: 0
|
|
24
|
+
});
|
|
25
|
+
export var LoadingError = function LoadingError(_ref) {
|
|
26
|
+
var onRefresh = _ref.onRefresh;
|
|
27
|
+
return jsx("div", {
|
|
28
|
+
css: errorContainerStyles,
|
|
29
|
+
"data-testid": "jira-jql-datasource--loading-error"
|
|
30
|
+
}, jsx(LoadingErrorSVG, null), jsx("div", {
|
|
31
|
+
css: errorMessageContainerStyles
|
|
32
|
+
}, jsx("span", {
|
|
33
|
+
css: errorMessageStyles
|
|
34
|
+
}, jsx(FormattedMessage, loadingErrorMessages.unableToLoadIssues)), jsx("p", {
|
|
35
|
+
css: errorDescriptionStyles
|
|
36
|
+
}, jsx(FormattedMessage, loadingErrorMessages.checkConnection)), onRefresh && jsx(Button, {
|
|
37
|
+
appearance: "primary",
|
|
38
|
+
onClick: onRefresh
|
|
39
|
+
}, jsx(FormattedMessage, loadingErrorMessages.refresh))));
|
|
40
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl-next';
|
|
2
|
+
export var loadingErrorMessages = defineMessages({
|
|
3
|
+
checkConnection: {
|
|
4
|
+
id: 'linkDataSource.jira-issues.checkConnection',
|
|
5
|
+
description: 'Instructions to let the user know how to resolve the network error that occurred or to try again at a different time',
|
|
6
|
+
defaultMessage: 'Check your connection and refresh, or try again later.'
|
|
7
|
+
},
|
|
8
|
+
checkConnectionWithSource: {
|
|
9
|
+
id: 'linkDataSource.jira-issues.checkConnectionWithSource',
|
|
10
|
+
description: 'Instructions to let the user know how to resolve the error that occured, or click the link provided to open the query in Jira',
|
|
11
|
+
defaultMessage: 'Check your connection and refresh, or <a>open this query in Jira</a> to review.'
|
|
12
|
+
},
|
|
13
|
+
noResultsFound: {
|
|
14
|
+
id: 'linkDataSource.jira-issues.noResultsFound',
|
|
15
|
+
description: 'Status message letting the user know their query did not have any results',
|
|
16
|
+
defaultMessage: 'No results found'
|
|
17
|
+
},
|
|
18
|
+
openInProject: {
|
|
19
|
+
id: 'linkDataSource.jira-issues.openInProject',
|
|
20
|
+
description: 'Prompt text that allows the user to visit the project page for the selected query',
|
|
21
|
+
defaultMessage: 'Open in project'
|
|
22
|
+
},
|
|
23
|
+
refresh: {
|
|
24
|
+
id: 'linkDataSource.jira-issues.refresh',
|
|
25
|
+
description: 'Button text to allow the user to refresh the table to see results',
|
|
26
|
+
defaultMessage: 'Refresh'
|
|
27
|
+
},
|
|
28
|
+
unableToLoadIssues: {
|
|
29
|
+
id: 'linkDataSource.jira-issues.unableToLoadIssues',
|
|
30
|
+
description: 'Error state message letting the user know we were unable the load the requested list of issues',
|
|
31
|
+
defaultMessage: 'Unable to load issues'
|
|
32
|
+
},
|
|
33
|
+
unableToLoadResults: {
|
|
34
|
+
id: 'linkDataSource.jira-issues.unableToLoadResults',
|
|
35
|
+
description: 'Error state message letting the user know we were unable the load the requested list of results',
|
|
36
|
+
defaultMessage: 'Unable to load results'
|
|
37
|
+
}
|
|
38
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
/** @jsx jsx */
|
|
3
|
+
import { css, jsx } from '@emotion/react';
|
|
4
|
+
import { FormattedMessage } from 'react-intl-next';
|
|
5
|
+
import { LoadingErrorSVG } from './loading-error-svg';
|
|
6
|
+
import { loadingErrorMessages } from './messages';
|
|
7
|
+
var errorContainerStyles = css({
|
|
8
|
+
display: 'grid',
|
|
9
|
+
gap: "var(--ds-space-300, 24px)",
|
|
10
|
+
placeItems: 'center',
|
|
11
|
+
placeSelf: 'center'
|
|
12
|
+
});
|
|
13
|
+
var errorMessageContainerStyles = css({
|
|
14
|
+
display: 'grid',
|
|
15
|
+
gap: "var(--ds-space-100, 8px)",
|
|
16
|
+
placeItems: 'center'
|
|
17
|
+
});
|
|
18
|
+
var errorMessageStyles = css({
|
|
19
|
+
fontWeight: "var(--ds-font-weight-semibold, 600)",
|
|
20
|
+
fontSize: "var(--ds-font-size-200, 16px)"
|
|
21
|
+
});
|
|
22
|
+
var errorDescriptionStyles = css({
|
|
23
|
+
margin: 0
|
|
24
|
+
});
|
|
25
|
+
export var ModalLoadingError = function ModalLoadingError(_ref) {
|
|
26
|
+
var url = _ref.url;
|
|
27
|
+
return jsx("div", {
|
|
28
|
+
css: errorContainerStyles,
|
|
29
|
+
"data-testid": "jira-jql-datasource-modal--loading-error"
|
|
30
|
+
}, jsx(LoadingErrorSVG, null), jsx("div", {
|
|
31
|
+
css: errorMessageContainerStyles
|
|
32
|
+
}, jsx("span", {
|
|
33
|
+
css: errorMessageStyles
|
|
34
|
+
}, jsx(FormattedMessage, loadingErrorMessages.unableToLoadResults)), jsx("p", {
|
|
35
|
+
css: errorDescriptionStyles
|
|
36
|
+
}, jsx(FormattedMessage, _extends({}, loadingErrorMessages.checkConnectionWithSource, {
|
|
37
|
+
values: {
|
|
38
|
+
a: function a(chunk) {
|
|
39
|
+
return jsx("a", {
|
|
40
|
+
href: url
|
|
41
|
+
}, chunk);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
})))));
|
|
45
|
+
};
|