@atlaskit/link-datasource 1.2.5 → 1.3.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.
Files changed (28) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/analytics/constants.js +1 -1
  3. package/dist/cjs/ui/assets-modal/modal/index.js +1 -1
  4. package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +4 -2
  5. package/dist/cjs/ui/jira-issues-modal/jql-editor/index.js +6 -1
  6. package/dist/cjs/ui/jira-issues-modal/modal/index.js +9 -2
  7. package/dist/cjs/ui/table-footer/index.js +15 -5
  8. package/dist/es2019/analytics/constants.js +1 -1
  9. package/dist/es2019/ui/assets-modal/modal/index.js +1 -1
  10. package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +4 -2
  11. package/dist/es2019/ui/jira-issues-modal/jql-editor/index.js +6 -1
  12. package/dist/es2019/ui/jira-issues-modal/modal/index.js +9 -2
  13. package/dist/es2019/ui/table-footer/index.js +14 -5
  14. package/dist/esm/analytics/constants.js +1 -1
  15. package/dist/esm/ui/assets-modal/modal/index.js +1 -1
  16. package/dist/esm/ui/datasource-table-view/datasourceTableView.js +4 -2
  17. package/dist/esm/ui/jira-issues-modal/jql-editor/index.js +6 -1
  18. package/dist/esm/ui/jira-issues-modal/modal/index.js +9 -2
  19. package/dist/esm/ui/table-footer/index.js +15 -5
  20. package/dist/types/ui/datasource-table-view/types.d.ts +1 -0
  21. package/dist/types/ui/jira-issues-modal/jql-editor/index.d.ts +1 -1
  22. package/dist/types/ui/table-footer/index.d.ts +2 -1
  23. package/dist/types-ts4.5/ui/datasource-table-view/types.d.ts +1 -0
  24. package/dist/types-ts4.5/ui/jira-issues-modal/jql-editor/index.d.ts +1 -1
  25. package/dist/types-ts4.5/ui/table-footer/index.d.ts +2 -1
  26. package/package.json +2 -1
  27. package/report.api.md +2 -0
  28. package/tmp/api-report-tmp.d.ts +2 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 1.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`e4721cc5a3f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e4721cc5a3f) - Make issue count clickable
8
+
9
+ ## 1.2.6
10
+
11
+ ### Patch Changes
12
+
13
+ - [`1017511dadf`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1017511dadf) - [ux] Prevent search with invalid input
14
+
3
15
  ## 1.2.5
4
16
 
5
17
  ### Patch Changes
@@ -8,6 +8,6 @@ var EVENT_CHANNEL = 'media';
8
8
  exports.EVENT_CHANNEL = EVENT_CHANNEL;
9
9
  var packageMetaData = {
10
10
  packageName: "@atlaskit/link-datasource",
11
- packageVersion: "1.2.5"
11
+ packageVersion: "1.3.0"
12
12
  };
13
13
  exports.packageMetaData = packageMetaData;
@@ -231,7 +231,7 @@ var analyticsContextAttributes = {
231
231
  };
232
232
  var analyticsContextData = {
233
233
  packageName: "@atlaskit/link-datasource",
234
- packageVersion: "1.2.5",
234
+ packageVersion: "1.3.0",
235
235
  source: 'datasourceConfigModal'
236
236
  };
237
237
  var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
@@ -27,7 +27,8 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
27
27
  var datasourceId = _ref.datasourceId,
28
28
  parameters = _ref.parameters,
29
29
  visibleColumnKeys = _ref.visibleColumnKeys,
30
- onVisibleColumnKeysChange = _ref.onVisibleColumnKeysChange;
30
+ onVisibleColumnKeysChange = _ref.onVisibleColumnKeysChange,
31
+ url = _ref.url;
31
32
  var _useDatasourceTableSt = (0, _useDatasourceTableState.useDatasourceTableState)({
32
33
  datasourceId: datasourceId,
33
34
  parameters: parameters,
@@ -142,7 +143,8 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
142
143
  }), (0, _react2.jsx)(_tableFooter.TableFooter, {
143
144
  itemCount: isDataReady ? totalCount : undefined,
144
145
  onRefresh: forcedReset,
145
- isLoading: !isDataReady || status === 'loading'
146
+ isLoading: !isDataReady || status === 'loading',
147
+ url: url
146
148
  }))
147
149
  );
148
150
  };
@@ -30,10 +30,15 @@ var JiraJQLEditor = function JiraJQLEditor(props) {
30
30
  (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
31
31
  });
32
32
  }, []);
33
+ var searchIfValidJql = function searchIfValidJql(_, jast) {
34
+ if (jast.errors.length === 0) {
35
+ onSearch();
36
+ }
37
+ };
33
38
  return /*#__PURE__*/_react.default.createElement(_jqlEditor.JQLEditor, {
34
39
  analyticsSource: "link-datasource",
35
40
  autocompleteProvider: autocompleteProvider,
36
- onSearch: onSearch,
41
+ onSearch: searchIfValidJql,
37
42
  onUpdate: onChange,
38
43
  isSearching: isSearching,
39
44
  inputRef: inputRef,
@@ -18,6 +18,7 @@ var _uuid = require("uuid");
18
18
  var _analyticsNext = require("@atlaskit/analytics-next");
19
19
  var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
20
20
  var _modalDialog = _interopRequireWildcard(require("@atlaskit/modal-dialog"));
21
+ var _linkUrl = _interopRequireDefault(require("@atlaskit/smart-card/link-url"));
21
22
  var _colors = require("@atlaskit/theme/colors");
22
23
  var _analytics = require("../../../analytics");
23
24
  var _constants = require("../../../analytics/constants");
@@ -60,7 +61,6 @@ var placeholderSmartLinkStyles = (0, _react2.css)({
60
61
  padding: '0px 2px'
61
62
  });
62
63
  var issueCountStyles = (0, _react2.css)({
63
- color: "var(--ds-text-accent-gray, ".concat(_colors.N800, ")"),
64
64
  flex: 1,
65
65
  fontWeight: 600
66
66
  });
@@ -491,13 +491,20 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
491
491
  }), currentViewMode === 'count' ? renderCountModeContent() : renderIssuesModeContent()), (0, _react2.jsx)(_modalDialog.ModalFooter, null, shouldShowIssueCount && (0, _react2.jsx)("div", {
492
492
  "data-testid": "jira-jql-datasource-modal-total-issues-count",
493
493
  css: issueCountStyles
494
+ }, (0, _react2.jsx)(_linkUrl.default, {
495
+ href: jqlUrl,
496
+ target: "_blank",
497
+ testId: "item-count-url",
498
+ style: {
499
+ color: "var(--ds-text-accent-gray, ".concat(_colors.N800, ")")
500
+ }
494
501
  }, (0, _react2.jsx)(_reactIntlNext.FormattedNumber, {
495
502
  value: totalCount
496
503
  }), ' ', (0, _react2.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.modalMessages.issueText, {
497
504
  values: {
498
505
  totalCount: totalCount
499
506
  }
500
- }))), (0, _react2.jsx)(_standardButton.default, {
507
+ })))), (0, _react2.jsx)(_standardButton.default, {
501
508
  appearance: "default",
502
509
  onClick: onCancelClick
503
510
  }, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.modalMessages.cancelButtonText)), (0, _react2.jsx)(_standardButton.default, {
@@ -15,6 +15,7 @@ var _reactIntlNext = require("react-intl-next");
15
15
  var _button = _interopRequireDefault(require("@atlaskit/button"));
16
16
  var _heading = _interopRequireDefault(require("@atlaskit/heading"));
17
17
  var _refresh = _interopRequireDefault(require("@atlaskit/icon/glyph/refresh"));
18
+ var _linkUrl = _interopRequireDefault(require("@atlaskit/smart-card/link-url"));
18
19
  var _colors = require("@atlaskit/theme/colors");
19
20
  var _messages = require("./messages");
20
21
  var _syncInfo = require("./sync-info");
@@ -22,13 +23,14 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _temp
22
23
  /** @jsx jsx */
23
24
  var FooterWrapper = _styled.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n padding: 0 ", ";\n box-sizing: border-box;\n background: ", ";\n"])), "var(--ds-space-200, 16px)", "var(--ds-background-input, ".concat(_colors.N0, ")"));
24
25
  var TopBorderWrapper = _styled.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n box-sizing: border-box;\n justify-content: space-between;\n padding: ", " 0;\n border-top: 2px solid ", ";\n"])), "var(--ds-space-250, 20px)", "var(--ds-background-accent-gray-subtler, ".concat(_colors.N40, ")"));
25
- var ItemCounterWrapper = _styled.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-self: center;\n color: ", ";\n"])), "var(--ds-text-accent-gray, ".concat(_colors.N800, ")"));
26
+ var ItemCounterWrapper = _styled.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-self: center;\n"])));
26
27
  var SyncWrapper = _styled.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-items: center;\n color: ", ";\n"])), "var(--ds-text-accent-gray, ".concat(_colors.N90, ")"));
27
28
  var SyncTextWrapper = _styled.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n margin-right: 5px;\n font-size: 12px;\n"])));
28
29
  var TableFooter = function TableFooter(_ref) {
29
30
  var itemCount = _ref.itemCount,
30
31
  onRefresh = _ref.onRefresh,
31
- isLoading = _ref.isLoading;
32
+ isLoading = _ref.isLoading,
33
+ url = _ref.url;
32
34
  var intl = (0, _reactIntlNext.useIntl)();
33
35
  var _useState = (0, _react.useState)(new Date()),
34
36
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -46,8 +48,16 @@ var TableFooter = function TableFooter(_ref) {
46
48
  return onRefresh || showItemCount ? (0, _react2.jsx)(FooterWrapper, {
47
49
  "data-testid": "table-footer"
48
50
  }, (0, _react2.jsx)(TopBorderWrapper, null, (0, _react2.jsx)(ItemCounterWrapper, {
49
- "data-testid": 'item-count-wrapper'
50
- }, showItemCount && (0, _react2.jsx)(_heading.default, {
51
+ "data-testid": "item-count-wrapper"
52
+ }, showItemCount && (0, _react2.jsx)(_linkUrl.default, {
53
+ href: url,
54
+ target: "_blank",
55
+ testId: "item-count-url",
56
+ style: {
57
+ color: "var(--ds-text-accent-gray, ".concat(_colors.N800, ")"),
58
+ textDecoration: !url ? 'none' : ''
59
+ }
60
+ }, (0, _react2.jsx)(_heading.default, {
51
61
  testId: "item-count",
52
62
  level: "h200"
53
63
  }, (0, _react2.jsx)(_reactIntlNext.FormattedNumber, {
@@ -56,7 +66,7 @@ var TableFooter = function TableFooter(_ref) {
56
66
  values: {
57
67
  itemCount: itemCount
58
68
  }
59
- })))), (0, _react2.jsx)(SyncWrapper, null, onRefresh && (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(SyncTextWrapper, {
69
+ }))))), (0, _react2.jsx)(SyncWrapper, null, onRefresh && (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(SyncTextWrapper, {
60
70
  "data-testid": "sync-text"
61
71
  }, isLoading ? (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _messages.footerMessages.loadingText) : (0, _react2.jsx)(_syncInfo.SyncInfo, {
62
72
  lastSyncTime: lastSyncTime
@@ -1,5 +1,5 @@
1
1
  export const EVENT_CHANNEL = 'media';
2
2
  export const packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.2.5"
4
+ packageVersion: "1.3.0"
5
5
  };
@@ -205,7 +205,7 @@ const analyticsContextAttributes = {
205
205
  };
206
206
  const analyticsContextData = {
207
207
  packageName: "@atlaskit/link-datasource",
208
- packageVersion: "1.2.5",
208
+ packageVersion: "1.3.0",
209
209
  source: 'datasourceConfigModal'
210
210
  };
211
211
  const contextData = {
@@ -19,7 +19,8 @@ const DatasourceTableViewWithoutAnalytics = ({
19
19
  datasourceId,
20
20
  parameters,
21
21
  visibleColumnKeys,
22
- onVisibleColumnKeysChange
22
+ onVisibleColumnKeysChange,
23
+ url
23
24
  }) => {
24
25
  const {
25
26
  reset,
@@ -137,7 +138,8 @@ const DatasourceTableViewWithoutAnalytics = ({
137
138
  }), jsx(TableFooter, {
138
139
  itemCount: isDataReady ? totalCount : undefined,
139
140
  onRefresh: forcedReset,
140
- isLoading: !isDataReady || status === 'loading'
141
+ isLoading: !isDataReady || status === 'loading',
142
+ url: url
141
143
  }))
142
144
  );
143
145
  };
@@ -23,10 +23,15 @@ export const JiraJQLEditor = props => {
23
23
  (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
24
24
  });
25
25
  }, []);
26
+ const searchIfValidJql = (_, jast) => {
27
+ if (jast.errors.length === 0) {
28
+ onSearch();
29
+ }
30
+ };
26
31
  return /*#__PURE__*/React.createElement(JQLEditor, {
27
32
  analyticsSource: "link-datasource",
28
33
  autocompleteProvider: autocompleteProvider,
29
- onSearch: onSearch,
34
+ onSearch: searchIfValidJql,
30
35
  onUpdate: onChange,
31
36
  isSearching: isSearching,
32
37
  inputRef: inputRef,
@@ -7,6 +7,7 @@ import { v4 as uuidv4 } from 'uuid';
7
7
  import { withAnalyticsContext } from '@atlaskit/analytics-next';
8
8
  import Button from '@atlaskit/button/standard-button';
9
9
  import Modal, { ModalBody, ModalFooter, ModalHeader, ModalTitle, ModalTransition } from '@atlaskit/modal-dialog';
10
+ import LinkUrl from '@atlaskit/smart-card/link-url';
10
11
  import { B400, N0, N40, N800 } from '@atlaskit/theme/colors';
11
12
  import { EVENT_CHANNEL, useDatasourceAnalyticsEvents } from '../../../analytics';
12
13
  import { packageMetaData } from '../../../analytics/constants';
@@ -45,7 +46,6 @@ const placeholderSmartLinkStyles = css({
45
46
  padding: '0px 2px'
46
47
  });
47
48
  const issueCountStyles = css({
48
- color: `var(--ds-text-accent-gray, ${N800})`,
49
49
  flex: 1,
50
50
  fontWeight: 600
51
51
  });
@@ -441,13 +441,20 @@ export const PlainJiraIssuesConfigModal = props => {
441
441
  }), currentViewMode === 'count' ? renderCountModeContent() : renderIssuesModeContent()), jsx(ModalFooter, null, shouldShowIssueCount && jsx("div", {
442
442
  "data-testid": "jira-jql-datasource-modal-total-issues-count",
443
443
  css: issueCountStyles
444
+ }, jsx(LinkUrl, {
445
+ href: jqlUrl,
446
+ target: "_blank",
447
+ testId: "item-count-url",
448
+ style: {
449
+ color: `var(--ds-text-accent-gray, ${N800})`
450
+ }
444
451
  }, jsx(FormattedNumber, {
445
452
  value: totalCount
446
453
  }), ' ', jsx(FormattedMessage, _extends({}, modalMessages.issueText, {
447
454
  values: {
448
455
  totalCount
449
456
  }
450
- }))), jsx(Button, {
457
+ })))), jsx(Button, {
451
458
  appearance: "default",
452
459
  onClick: onCancelClick
453
460
  }, jsx(FormattedMessage, modalMessages.cancelButtonText)), jsx(Button, {
@@ -7,6 +7,7 @@ import { FormattedMessage, FormattedNumber, useIntl } from 'react-intl-next';
7
7
  import Button from '@atlaskit/button';
8
8
  import Heading from '@atlaskit/heading';
9
9
  import RefreshIcon from '@atlaskit/icon/glyph/refresh';
10
+ import LinkUrl from '@atlaskit/smart-card/link-url';
10
11
  import { N0, N40, N800, N90 } from '@atlaskit/theme/colors';
11
12
  import { footerMessages } from './messages';
12
13
  import { SyncInfo } from './sync-info';
@@ -25,7 +26,6 @@ const TopBorderWrapper = styled.div`
25
26
  const ItemCounterWrapper = styled.div`
26
27
  display: flex;
27
28
  align-self: center;
28
- color: ${`var(--ds-text-accent-gray, ${N800})`};
29
29
  `;
30
30
  const SyncWrapper = styled.div`
31
31
  display: flex;
@@ -39,7 +39,8 @@ const SyncTextWrapper = styled.div`
39
39
  export const TableFooter = ({
40
40
  itemCount,
41
41
  onRefresh,
42
- isLoading
42
+ isLoading,
43
+ url
43
44
  }) => {
44
45
  const intl = useIntl();
45
46
  const [lastSyncTime, setLastSyncTime] = useState(new Date());
@@ -55,8 +56,16 @@ export const TableFooter = ({
55
56
  return onRefresh || showItemCount ? jsx(FooterWrapper, {
56
57
  "data-testid": "table-footer"
57
58
  }, jsx(TopBorderWrapper, null, jsx(ItemCounterWrapper, {
58
- "data-testid": 'item-count-wrapper'
59
- }, showItemCount && jsx(Heading, {
59
+ "data-testid": "item-count-wrapper"
60
+ }, showItemCount && jsx(LinkUrl, {
61
+ href: url,
62
+ target: "_blank",
63
+ testId: "item-count-url",
64
+ style: {
65
+ color: `var(--ds-text-accent-gray, ${N800})`,
66
+ textDecoration: !url ? 'none' : ''
67
+ }
68
+ }, jsx(Heading, {
60
69
  testId: "item-count",
61
70
  level: "h200"
62
71
  }, jsx(FormattedNumber, {
@@ -65,7 +74,7 @@ export const TableFooter = ({
65
74
  values: {
66
75
  itemCount
67
76
  }
68
- })))), jsx(SyncWrapper, null, onRefresh && jsx(Fragment, null, jsx(SyncTextWrapper, {
77
+ }))))), jsx(SyncWrapper, null, onRefresh && jsx(Fragment, null, jsx(SyncTextWrapper, {
69
78
  "data-testid": "sync-text"
70
79
  }, isLoading ? jsx(FormattedMessage, footerMessages.loadingText) : jsx(SyncInfo, {
71
80
  lastSyncTime: lastSyncTime
@@ -1,5 +1,5 @@
1
1
  export var EVENT_CHANNEL = 'media';
2
2
  export var packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.2.5"
4
+ packageVersion: "1.3.0"
5
5
  };
@@ -222,7 +222,7 @@ var analyticsContextAttributes = {
222
222
  };
223
223
  var analyticsContextData = {
224
224
  packageName: "@atlaskit/link-datasource",
225
- packageVersion: "1.2.5",
225
+ packageVersion: "1.3.0",
226
226
  source: 'datasourceConfigModal'
227
227
  };
228
228
  var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
@@ -19,7 +19,8 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
19
19
  var datasourceId = _ref.datasourceId,
20
20
  parameters = _ref.parameters,
21
21
  visibleColumnKeys = _ref.visibleColumnKeys,
22
- onVisibleColumnKeysChange = _ref.onVisibleColumnKeysChange;
22
+ onVisibleColumnKeysChange = _ref.onVisibleColumnKeysChange,
23
+ url = _ref.url;
23
24
  var _useDatasourceTableSt = useDatasourceTableState({
24
25
  datasourceId: datasourceId,
25
26
  parameters: parameters,
@@ -134,7 +135,8 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
134
135
  }), jsx(TableFooter, {
135
136
  itemCount: isDataReady ? totalCount : undefined,
136
137
  onRefresh: forcedReset,
137
- isLoading: !isDataReady || status === 'loading'
138
+ isLoading: !isDataReady || status === 'loading',
139
+ url: url
138
140
  }))
139
141
  );
140
142
  };
@@ -21,10 +21,15 @@ export var JiraJQLEditor = function JiraJQLEditor(props) {
21
21
  (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
22
22
  });
23
23
  }, []);
24
+ var searchIfValidJql = function searchIfValidJql(_, jast) {
25
+ if (jast.errors.length === 0) {
26
+ onSearch();
27
+ }
28
+ };
24
29
  return /*#__PURE__*/React.createElement(JQLEditor, {
25
30
  analyticsSource: "link-datasource",
26
31
  autocompleteProvider: autocompleteProvider,
27
- onSearch: onSearch,
32
+ onSearch: searchIfValidJql,
28
33
  onUpdate: onChange,
29
34
  isSearching: isSearching,
30
35
  inputRef: inputRef,
@@ -13,6 +13,7 @@ import { v4 as uuidv4 } from 'uuid';
13
13
  import { withAnalyticsContext } from '@atlaskit/analytics-next';
14
14
  import Button from '@atlaskit/button/standard-button';
15
15
  import Modal, { ModalBody, ModalFooter, ModalHeader, ModalTitle, ModalTransition } from '@atlaskit/modal-dialog';
16
+ import LinkUrl from '@atlaskit/smart-card/link-url';
16
17
  import { B400, N0, N40, N800 } from '@atlaskit/theme/colors';
17
18
  import { EVENT_CHANNEL, useDatasourceAnalyticsEvents } from '../../../analytics';
18
19
  import { packageMetaData } from '../../../analytics/constants';
@@ -51,7 +52,6 @@ var placeholderSmartLinkStyles = css({
51
52
  padding: '0px 2px'
52
53
  });
53
54
  var issueCountStyles = css({
54
- color: "var(--ds-text-accent-gray, ".concat(N800, ")"),
55
55
  flex: 1,
56
56
  fontWeight: 600
57
57
  });
@@ -481,13 +481,20 @@ export var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(prop
481
481
  }), currentViewMode === 'count' ? renderCountModeContent() : renderIssuesModeContent()), jsx(ModalFooter, null, shouldShowIssueCount && jsx("div", {
482
482
  "data-testid": "jira-jql-datasource-modal-total-issues-count",
483
483
  css: issueCountStyles
484
+ }, jsx(LinkUrl, {
485
+ href: jqlUrl,
486
+ target: "_blank",
487
+ testId: "item-count-url",
488
+ style: {
489
+ color: "var(--ds-text-accent-gray, ".concat(N800, ")")
490
+ }
484
491
  }, jsx(FormattedNumber, {
485
492
  value: totalCount
486
493
  }), ' ', jsx(FormattedMessage, _extends({}, modalMessages.issueText, {
487
494
  values: {
488
495
  totalCount: totalCount
489
496
  }
490
- }))), jsx(Button, {
497
+ })))), jsx(Button, {
491
498
  appearance: "default",
492
499
  onClick: onCancelClick
493
500
  }, jsx(FormattedMessage, modalMessages.cancelButtonText)), jsx(Button, {
@@ -10,18 +10,20 @@ import { FormattedMessage, FormattedNumber, useIntl } from 'react-intl-next';
10
10
  import Button from '@atlaskit/button';
11
11
  import Heading from '@atlaskit/heading';
12
12
  import RefreshIcon from '@atlaskit/icon/glyph/refresh';
13
+ import LinkUrl from '@atlaskit/smart-card/link-url';
13
14
  import { N0, N40, N800, N90 } from '@atlaskit/theme/colors';
14
15
  import { footerMessages } from './messages';
15
16
  import { SyncInfo } from './sync-info';
16
17
  var FooterWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n padding: 0 ", ";\n box-sizing: border-box;\n background: ", ";\n"])), "var(--ds-space-200, 16px)", "var(--ds-background-input, ".concat(N0, ")"));
17
18
  var TopBorderWrapper = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n box-sizing: border-box;\n justify-content: space-between;\n padding: ", " 0;\n border-top: 2px solid ", ";\n"])), "var(--ds-space-250, 20px)", "var(--ds-background-accent-gray-subtler, ".concat(N40, ")"));
18
- var ItemCounterWrapper = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n align-self: center;\n color: ", ";\n"])), "var(--ds-text-accent-gray, ".concat(N800, ")"));
19
+ var ItemCounterWrapper = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n align-self: center;\n"])));
19
20
  var SyncWrapper = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n color: ", ";\n"])), "var(--ds-text-accent-gray, ".concat(N90, ")"));
20
21
  var SyncTextWrapper = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin-right: 5px;\n font-size: 12px;\n"])));
21
22
  export var TableFooter = function TableFooter(_ref) {
22
23
  var itemCount = _ref.itemCount,
23
24
  onRefresh = _ref.onRefresh,
24
- isLoading = _ref.isLoading;
25
+ isLoading = _ref.isLoading,
26
+ url = _ref.url;
25
27
  var intl = useIntl();
26
28
  var _useState = useState(new Date()),
27
29
  _useState2 = _slicedToArray(_useState, 2),
@@ -39,8 +41,16 @@ export var TableFooter = function TableFooter(_ref) {
39
41
  return onRefresh || showItemCount ? jsx(FooterWrapper, {
40
42
  "data-testid": "table-footer"
41
43
  }, jsx(TopBorderWrapper, null, jsx(ItemCounterWrapper, {
42
- "data-testid": 'item-count-wrapper'
43
- }, showItemCount && jsx(Heading, {
44
+ "data-testid": "item-count-wrapper"
45
+ }, showItemCount && jsx(LinkUrl, {
46
+ href: url,
47
+ target: "_blank",
48
+ testId: "item-count-url",
49
+ style: {
50
+ color: "var(--ds-text-accent-gray, ".concat(N800, ")"),
51
+ textDecoration: !url ? 'none' : ''
52
+ }
53
+ }, jsx(Heading, {
44
54
  testId: "item-count",
45
55
  level: "h200"
46
56
  }, jsx(FormattedNumber, {
@@ -49,7 +59,7 @@ export var TableFooter = function TableFooter(_ref) {
49
59
  values: {
50
60
  itemCount: itemCount
51
61
  }
52
- })))), jsx(SyncWrapper, null, onRefresh && jsx(Fragment, null, jsx(SyncTextWrapper, {
62
+ }))))), jsx(SyncWrapper, null, onRefresh && jsx(Fragment, null, jsx(SyncTextWrapper, {
53
63
  "data-testid": "sync-text"
54
64
  }, isLoading ? jsx(FormattedMessage, footerMessages.loadingText) : jsx(SyncInfo, {
55
65
  lastSyncTime: lastSyncTime
@@ -4,4 +4,5 @@ export interface DatasourceTableViewProps {
4
4
  fields?: string[];
5
5
  onVisibleColumnKeysChange?: (visibleColumnKeys: string[]) => void;
6
6
  visibleColumnKeys?: string[];
7
+ url?: string;
7
8
  }
@@ -3,7 +3,7 @@ export interface JiraJQLEditorProps {
3
3
  cloudId: string;
4
4
  isSearching?: boolean;
5
5
  onChange?: (query: string) => void;
6
- onSearch: (query: string) => void;
6
+ onSearch: () => void;
7
7
  query: string;
8
8
  }
9
9
  export declare const JiraJQLEditor: React.FC<JiraJQLEditorProps>;
@@ -3,5 +3,6 @@ export type TableFooterProps = {
3
3
  itemCount?: number;
4
4
  onRefresh?: () => void;
5
5
  isLoading: boolean;
6
+ url?: string;
6
7
  };
7
- export declare const TableFooter: ({ itemCount, onRefresh, isLoading, }: TableFooterProps) => jsx.JSX.Element | null;
8
+ export declare const TableFooter: ({ itemCount, onRefresh, isLoading, url, }: TableFooterProps) => jsx.JSX.Element | null;
@@ -4,4 +4,5 @@ export interface DatasourceTableViewProps {
4
4
  fields?: string[];
5
5
  onVisibleColumnKeysChange?: (visibleColumnKeys: string[]) => void;
6
6
  visibleColumnKeys?: string[];
7
+ url?: string;
7
8
  }
@@ -3,7 +3,7 @@ export interface JiraJQLEditorProps {
3
3
  cloudId: string;
4
4
  isSearching?: boolean;
5
5
  onChange?: (query: string) => void;
6
- onSearch: (query: string) => void;
6
+ onSearch: () => void;
7
7
  query: string;
8
8
  }
9
9
  export declare const JiraJQLEditor: React.FC<JiraJQLEditorProps>;
@@ -3,5 +3,6 @@ export type TableFooterProps = {
3
3
  itemCount?: number;
4
4
  onRefresh?: () => void;
5
5
  isLoading: boolean;
6
+ url?: string;
6
7
  };
7
- export declare const TableFooter: ({ itemCount, onRefresh, isLoading, }: TableFooterProps) => jsx.JSX.Element | null;
8
+ export declare const TableFooter: ({ itemCount, onRefresh, isLoading, url, }: TableFooterProps) => jsx.JSX.Element | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "1.2.5",
3
+ "version": "1.3.0",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -61,6 +61,7 @@
61
61
  "@atlaskit/tokens": "^1.25.0",
62
62
  "@atlaskit/tooltip": "^17.8.0",
63
63
  "@atlaskit/ufo": "^0.2.4",
64
+ "@atlassianlabs/jql-ast": "^2.1.0",
64
65
  "@atlassianlabs/jql-editor": "^2.0.1",
65
66
  "@babel/runtime": "^7.0.0",
66
67
  "@emotion/react": "^11.7.1",
package/report.api.md CHANGED
@@ -93,6 +93,8 @@ interface DatasourceTableViewProps {
93
93
  // (undocumented)
94
94
  parameters: object;
95
95
  // (undocumented)
96
+ url?: string;
97
+ // (undocumented)
96
98
  visibleColumnKeys?: string[];
97
99
  }
98
100
 
@@ -77,6 +77,8 @@ interface DatasourceTableViewProps {
77
77
  // (undocumented)
78
78
  parameters: object;
79
79
  // (undocumented)
80
+ url?: string;
81
+ // (undocumented)
80
82
  visibleColumnKeys?: string[];
81
83
  }
82
84