@atlaskit/link-datasource 0.15.0 → 0.16.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 (114) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/hooks/useDatasourceTableState.js +12 -18
  3. package/dist/cjs/index.js +6 -6
  4. package/dist/cjs/ui/{jira-issues/tableView.js → datasourceTableView.js} +7 -7
  5. package/dist/cjs/ui/{jira-issues/modal → jira-issues-modal}/index.js +6 -6
  6. package/dist/cjs/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/index.js +2 -3
  7. package/dist/cjs/ui/{jira-issues/modal → jira-issues-modal}/jql-editor/index.js +2 -2
  8. package/dist/cjs/ui/{jira-issues/table-footer → table-footer}/messages.js +3 -3
  9. package/dist/cjs/ui/{jira-issues/table-footer → table-footer}/sync-info/messages.js +2 -2
  10. package/dist/cjs/version.json +1 -1
  11. package/dist/es2019/hooks/useDatasourceTableState.js +3 -18
  12. package/dist/es2019/index.js +2 -2
  13. package/dist/es2019/ui/{jira-issues/tableView.js → datasourceTableView.js} +5 -5
  14. package/dist/es2019/ui/{jira-issues/modal → jira-issues-modal}/index.js +6 -6
  15. package/dist/es2019/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/index.js +2 -3
  16. package/dist/es2019/ui/{jira-issues/modal → jira-issues-modal}/jql-editor/index.js +2 -2
  17. package/dist/es2019/ui/{jira-issues/table-footer → table-footer}/messages.js +3 -3
  18. package/dist/es2019/ui/{jira-issues/table-footer → table-footer}/sync-info/messages.js +2 -2
  19. package/dist/es2019/version.json +1 -1
  20. package/dist/esm/hooks/useDatasourceTableState.js +12 -18
  21. package/dist/esm/index.js +2 -2
  22. package/dist/esm/ui/{jira-issues/tableView.js → datasourceTableView.js} +5 -5
  23. package/dist/esm/ui/{jira-issues/modal → jira-issues-modal}/index.js +6 -6
  24. package/dist/esm/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/index.js +2 -3
  25. package/dist/esm/ui/{jira-issues/modal → jira-issues-modal}/jql-editor/index.js +2 -2
  26. package/dist/esm/ui/{jira-issues/table-footer → table-footer}/messages.js +3 -3
  27. package/dist/esm/ui/{jira-issues/table-footer → table-footer}/sync-info/messages.js +2 -2
  28. package/dist/esm/version.json +1 -1
  29. package/dist/types/hooks/useDatasourceTableState.d.ts +1 -2
  30. package/dist/types/index.d.ts +2 -2
  31. package/dist/types/ui/datasourceTableView.d.ts +9 -0
  32. package/dist/types/ui/{jira-issues/modal → jira-issues-modal}/index.d.ts +1 -1
  33. package/dist/{types-ts4.5/ui/jira-issues/modal → types/ui/jira-issues-modal}/jira-search-container/index.d.ts +2 -2
  34. package/dist/types/ui/{jira-issues/modal → jira-issues-modal}/site-selector/index.d.ts +1 -1
  35. package/dist/types/ui/jira-issues-modal/types.d.ts +15 -0
  36. package/dist/types-ts4.5/hooks/useDatasourceTableState.d.ts +1 -2
  37. package/dist/types-ts4.5/index.d.ts +2 -2
  38. package/dist/types-ts4.5/ui/datasourceTableView.d.ts +9 -0
  39. package/dist/types-ts4.5/ui/{jira-issues/modal → jira-issues-modal}/index.d.ts +1 -1
  40. package/dist/{types/ui/jira-issues/modal → types-ts4.5/ui/jira-issues-modal}/jira-search-container/index.d.ts +2 -2
  41. package/dist/types-ts4.5/ui/{jira-issues/modal → jira-issues-modal}/site-selector/index.d.ts +1 -1
  42. package/dist/types-ts4.5/ui/jira-issues-modal/types.d.ts +15 -0
  43. package/examples-helpers/buildIssueLikeTable.tsx +6 -5
  44. package/examples-helpers/buildJiraIssuesTable.tsx +13 -13
  45. package/package.json +4 -4
  46. package/report.api.md +36 -25
  47. package/tmp/api-report-tmp.d.ts +26 -20
  48. package/dist/types/ui/jira-issues/tableView.d.ts +0 -3
  49. package/dist/types/ui/jira-issues/types.d.ts +0 -14
  50. package/dist/types-ts4.5/ui/jira-issues/tableView.d.ts +0 -3
  51. package/dist/types-ts4.5/ui/jira-issues/types.d.ts +0 -14
  52. package/examples-helpers/mockAutocompleteData.ts +0 -54
  53. package/examples-helpers/mockJiraAvailableSites.ts +0 -27
  54. package/examples-helpers/mockJiraData.ts +0 -575
  55. package/examples-helpers/mockSuggestionData.ts +0 -17
  56. package/examples-helpers/setupDatasourcesMocks.ts +0 -199
  57. package/examples-helpers/setupModalExampleMocks.ts +0 -32
  58. /package/dist/cjs/ui/{jira-issues/modal → jira-issues-modal}/basic-search-input/index.js +0 -0
  59. /package/dist/cjs/ui/{jira-issues/modal → jira-issues-modal}/basic-search-input/messages.js +0 -0
  60. /package/dist/cjs/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/buildJQL.js +0 -0
  61. /package/dist/cjs/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/messages.js +0 -0
  62. /package/dist/cjs/ui/{jira-issues/modal → jira-issues-modal}/messages.js +0 -0
  63. /package/dist/cjs/ui/{jira-issues/modal → jira-issues-modal}/mode-switcher/index.js +0 -0
  64. /package/dist/cjs/ui/{jira-issues/modal → jira-issues-modal}/site-selector/index.js +0 -0
  65. /package/dist/cjs/ui/{jira-issues/modal → jira-issues-modal}/site-selector/messages.js +0 -0
  66. /package/dist/cjs/ui/{jira-issues → jira-issues-modal}/types.js +0 -0
  67. /package/dist/cjs/ui/{jira-issues/table-footer → table-footer}/index.js +0 -0
  68. /package/dist/cjs/ui/{jira-issues/table-footer → table-footer}/sync-info/index.js +0 -0
  69. /package/dist/es2019/ui/{jira-issues/modal → jira-issues-modal}/basic-search-input/index.js +0 -0
  70. /package/dist/es2019/ui/{jira-issues/modal → jira-issues-modal}/basic-search-input/messages.js +0 -0
  71. /package/dist/es2019/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/buildJQL.js +0 -0
  72. /package/dist/es2019/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/messages.js +0 -0
  73. /package/dist/es2019/ui/{jira-issues/modal → jira-issues-modal}/messages.js +0 -0
  74. /package/dist/es2019/ui/{jira-issues/modal → jira-issues-modal}/mode-switcher/index.js +0 -0
  75. /package/dist/es2019/ui/{jira-issues/modal → jira-issues-modal}/site-selector/index.js +0 -0
  76. /package/dist/es2019/ui/{jira-issues/modal → jira-issues-modal}/site-selector/messages.js +0 -0
  77. /package/dist/es2019/ui/{jira-issues → jira-issues-modal}/types.js +0 -0
  78. /package/dist/es2019/ui/{jira-issues/table-footer → table-footer}/index.js +0 -0
  79. /package/dist/es2019/ui/{jira-issues/table-footer → table-footer}/sync-info/index.js +0 -0
  80. /package/dist/esm/ui/{jira-issues/modal → jira-issues-modal}/basic-search-input/index.js +0 -0
  81. /package/dist/esm/ui/{jira-issues/modal → jira-issues-modal}/basic-search-input/messages.js +0 -0
  82. /package/dist/esm/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/buildJQL.js +0 -0
  83. /package/dist/esm/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/messages.js +0 -0
  84. /package/dist/esm/ui/{jira-issues/modal → jira-issues-modal}/messages.js +0 -0
  85. /package/dist/esm/ui/{jira-issues/modal → jira-issues-modal}/mode-switcher/index.js +0 -0
  86. /package/dist/esm/ui/{jira-issues/modal → jira-issues-modal}/site-selector/index.js +0 -0
  87. /package/dist/esm/ui/{jira-issues/modal → jira-issues-modal}/site-selector/messages.js +0 -0
  88. /package/dist/esm/ui/{jira-issues → jira-issues-modal}/types.js +0 -0
  89. /package/dist/esm/ui/{jira-issues/table-footer → table-footer}/index.js +0 -0
  90. /package/dist/esm/ui/{jira-issues/table-footer → table-footer}/sync-info/index.js +0 -0
  91. /package/dist/types/ui/{jira-issues/modal → jira-issues-modal}/basic-search-input/index.d.ts +0 -0
  92. /package/dist/types/ui/{jira-issues/modal → jira-issues-modal}/basic-search-input/messages.d.ts +0 -0
  93. /package/dist/types/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/buildJQL.d.ts +0 -0
  94. /package/dist/types/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/messages.d.ts +0 -0
  95. /package/dist/types/ui/{jira-issues/modal → jira-issues-modal}/jql-editor/index.d.ts +0 -0
  96. /package/dist/types/ui/{jira-issues/modal → jira-issues-modal}/messages.d.ts +0 -0
  97. /package/dist/types/ui/{jira-issues/modal → jira-issues-modal}/mode-switcher/index.d.ts +0 -0
  98. /package/dist/types/ui/{jira-issues/modal → jira-issues-modal}/site-selector/messages.d.ts +0 -0
  99. /package/dist/types/ui/{jira-issues/table-footer → table-footer}/index.d.ts +0 -0
  100. /package/dist/types/ui/{jira-issues/table-footer → table-footer}/messages.d.ts +0 -0
  101. /package/dist/types/ui/{jira-issues/table-footer → table-footer}/sync-info/index.d.ts +0 -0
  102. /package/dist/types/ui/{jira-issues/table-footer → table-footer}/sync-info/messages.d.ts +0 -0
  103. /package/dist/types-ts4.5/ui/{jira-issues/modal → jira-issues-modal}/basic-search-input/index.d.ts +0 -0
  104. /package/dist/types-ts4.5/ui/{jira-issues/modal → jira-issues-modal}/basic-search-input/messages.d.ts +0 -0
  105. /package/dist/types-ts4.5/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/buildJQL.d.ts +0 -0
  106. /package/dist/types-ts4.5/ui/{jira-issues/modal → jira-issues-modal}/jira-search-container/messages.d.ts +0 -0
  107. /package/dist/types-ts4.5/ui/{jira-issues/modal → jira-issues-modal}/jql-editor/index.d.ts +0 -0
  108. /package/dist/types-ts4.5/ui/{jira-issues/modal → jira-issues-modal}/messages.d.ts +0 -0
  109. /package/dist/types-ts4.5/ui/{jira-issues/modal → jira-issues-modal}/mode-switcher/index.d.ts +0 -0
  110. /package/dist/types-ts4.5/ui/{jira-issues/modal → jira-issues-modal}/site-selector/messages.d.ts +0 -0
  111. /package/dist/types-ts4.5/ui/{jira-issues/table-footer → table-footer}/index.d.ts +0 -0
  112. /package/dist/types-ts4.5/ui/{jira-issues/table-footer → table-footer}/messages.d.ts +0 -0
  113. /package/dist/types-ts4.5/ui/{jira-issues/table-footer → table-footer}/sync-info/index.d.ts +0 -0
  114. /package/dist/types-ts4.5/ui/{jira-issues/table-footer → table-footer}/sync-info/messages.d.ts +0 -0
@@ -1,8 +1,8 @@
1
1
  import React, { useEffect, useRef } from 'react';
2
2
  import { JQLEditor } from '@atlassianlabs/jql-editor';
3
3
  import { useAutocompleteProvider } from '@atlassianlabs/jql-editor-autocomplete-rest';
4
- import { makeGetJqlAutocompleteData } from '../../../../services/makeGetJqlAutocompleteData';
5
- import { makeGetJqlSuggestionsData } from '../../../../services/makeGetJqlSuggestionsData';
4
+ import { makeGetJqlAutocompleteData } from '../../../services/makeGetJqlAutocompleteData';
5
+ import { makeGetJqlSuggestionsData } from '../../../services/makeGetJqlSuggestionsData';
6
6
  export var JiraJQLEditor = function JiraJQLEditor(props) {
7
7
  var cloudId = props.cloudId,
8
8
  onChange = props.onChange,
@@ -1,17 +1,17 @@
1
1
  import { defineMessages } from 'react-intl-next';
2
2
  export var footerMessages = defineMessages({
3
3
  issueText: {
4
- id: 'linkDataSource.jira-issues.table-footer.issue',
4
+ id: 'linkDataSource.table-footer.issue',
5
5
  description: 'Text that appears after issue count number if there is only 1 issue.',
6
6
  defaultMessage: '{issueCount} {issueCount, plural, one {issue} other {issues}}'
7
7
  },
8
8
  loadingText: {
9
- id: 'linkDataSource.jira-issues.table-footer.loading',
9
+ id: 'linkDataSource.table-footer.loading',
10
10
  description: 'Text that appears when table is loading.',
11
11
  defaultMessage: 'Loading...'
12
12
  },
13
13
  refreshLabel: {
14
- id: 'linkDataSource.jira-issues.table-footer.refresh',
14
+ id: 'linkDataSource.table-footer.refresh',
15
15
  description: 'Label for refresh icon',
16
16
  defaultMessage: 'Refresh'
17
17
  }
@@ -1,12 +1,12 @@
1
1
  import { defineMessages } from 'react-intl-next';
2
2
  export var messages = defineMessages({
3
3
  underOneMinuteText: {
4
- id: 'linkDataSource.jira-issues.table-footer.date_formatter.under_one_minute',
4
+ id: 'linkDataSource.table-footer.date_formatter.under_one_minute',
5
5
  defaultMessage: 'Synced just now',
6
6
  description: 'A text to indicate the last data fetch time was under a minute.'
7
7
  },
8
8
  overOneMinuteText: {
9
- id: 'linkDataSource.jira-issues.table-footer.date_formatter.under_over_minute',
9
+ id: 'linkDataSource.table-footer.date_formatter.under_over_minute',
10
10
  defaultMessage: 'Synced {date}',
11
11
  description: 'A text to indicate the last data fetch time was over a minute.'
12
12
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,5 +1,4 @@
1
1
  import { DatasourceDataResponseItem, DatasourceResponseSchemaProperty, DatasourceTableStatusType } from '@atlaskit/linking-types';
2
- import { JiraIssueDatasourceParameters } from '../ui/jira-issues/types';
3
2
  export interface DatasourceTableState {
4
3
  status: DatasourceTableStatusType;
5
4
  onNextPage: () => void;
@@ -10,4 +9,4 @@ export interface DatasourceTableState {
10
9
  defaultVisibleColumnKeys: string[];
11
10
  totalIssueCount?: number;
12
11
  }
13
- export declare const useDatasourceTableState: (datasourceId: string, parameters?: JiraIssueDatasourceParameters, fields?: string[]) => DatasourceTableState;
12
+ export declare const useDatasourceTableState: (datasourceId: string, parameters?: object, fields?: string[]) => DatasourceTableState;
@@ -1,2 +1,2 @@
1
- export { JiraIssuesConfigModal } from './ui/jira-issues/modal';
2
- export { JiraIssuesTableView } from './ui/jira-issues/tableView';
1
+ export { JiraIssuesConfigModal } from './ui/jira-issues-modal';
2
+ export { DatasourceTableView } from './ui/datasourceTableView';
@@ -0,0 +1,9 @@
1
+ import { jsx } from '@emotion/react';
2
+ export interface DatasourceTableViewProps {
3
+ datasourceId: string;
4
+ parameters: object;
5
+ fields?: string[];
6
+ onVisibleColumnKeysChange?: (visibleColumnKeys: string[]) => void;
7
+ visibleColumnKeys?: string[];
8
+ }
9
+ export declare const DatasourceTableView: ({ datasourceId, parameters, visibleColumnKeys, onVisibleColumnKeysChange, }: DatasourceTableViewProps) => jsx.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { jsx } from '@emotion/react';
2
2
  import { DatasourceAdf, InlineCardAdf } from '@atlaskit/linking-common/types';
3
- import { JiraIssueDatasourceParameters } from '../types';
3
+ import { JiraIssueDatasourceParameters } from './types';
4
4
  export interface JiraIssuesConfigModalProps {
5
5
  datasourceId: string;
6
6
  onVisibleColumnKeysChange: (visibleColumnKeys: string[]) => void;
@@ -1,7 +1,7 @@
1
1
  import { jsx } from '@emotion/react';
2
- import { JiraIssueDatasourceParameters } from '../../types';
2
+ import { JiraIssueDatasourceParameters, JiraIssueDatasourceParametersQuery } from '../types';
3
3
  export interface SearchContainerProps {
4
- onSearch: (query: Omit<JiraIssueDatasourceParameters, 'cloudId'>) => void;
4
+ onSearch: (query: JiraIssueDatasourceParametersQuery) => void;
5
5
  parameters?: JiraIssueDatasourceParameters;
6
6
  }
7
7
  export declare const JiraSearchContainer: (props: SearchContainerProps) => jsx.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  /** @jsx jsx */
2
2
  import { jsx } from '@emotion/react';
3
- import { Site } from '../../../../services/getAvailableJiraSites';
3
+ import { Site } from '../../../services/getAvailableJiraSites';
4
4
  export interface JiraSiteSelectorProps {
5
5
  availableSites: Site[];
6
6
  onSiteSelection: (selectedSite: Site) => void;
@@ -0,0 +1,15 @@
1
+ type XOR<T1, T2> = (T1 & {
2
+ [k in Exclude<keyof T2, keyof T1>]?: never;
3
+ }) | (T2 & {
4
+ [k in Exclude<keyof T1, keyof T2>]?: never;
5
+ });
6
+ export type JiraIssueDatasourceParametersQuery = XOR<{
7
+ jql: string;
8
+ }, {
9
+ filter: string;
10
+ }>;
11
+ export type JiraIssueDatasourceParameters = {
12
+ cloudId: string;
13
+ } & JiraIssueDatasourceParametersQuery;
14
+ export type JiraIssueViewModes = 'issue' | 'count';
15
+ export {};
@@ -1,5 +1,4 @@
1
1
  import { DatasourceDataResponseItem, DatasourceResponseSchemaProperty, DatasourceTableStatusType } from '@atlaskit/linking-types';
2
- import { JiraIssueDatasourceParameters } from '../ui/jira-issues/types';
3
2
  export interface DatasourceTableState {
4
3
  status: DatasourceTableStatusType;
5
4
  onNextPage: () => void;
@@ -10,4 +9,4 @@ export interface DatasourceTableState {
10
9
  defaultVisibleColumnKeys: string[];
11
10
  totalIssueCount?: number;
12
11
  }
13
- export declare const useDatasourceTableState: (datasourceId: string, parameters?: JiraIssueDatasourceParameters, fields?: string[]) => DatasourceTableState;
12
+ export declare const useDatasourceTableState: (datasourceId: string, parameters?: object, fields?: string[]) => DatasourceTableState;
@@ -1,2 +1,2 @@
1
- export { JiraIssuesConfigModal } from './ui/jira-issues/modal';
2
- export { JiraIssuesTableView } from './ui/jira-issues/tableView';
1
+ export { JiraIssuesConfigModal } from './ui/jira-issues-modal';
2
+ export { DatasourceTableView } from './ui/datasourceTableView';
@@ -0,0 +1,9 @@
1
+ import { jsx } from '@emotion/react';
2
+ export interface DatasourceTableViewProps {
3
+ datasourceId: string;
4
+ parameters: object;
5
+ fields?: string[];
6
+ onVisibleColumnKeysChange?: (visibleColumnKeys: string[]) => void;
7
+ visibleColumnKeys?: string[];
8
+ }
9
+ export declare const DatasourceTableView: ({ datasourceId, parameters, visibleColumnKeys, onVisibleColumnKeysChange, }: DatasourceTableViewProps) => jsx.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { jsx } from '@emotion/react';
2
2
  import { DatasourceAdf, InlineCardAdf } from '@atlaskit/linking-common/types';
3
- import { JiraIssueDatasourceParameters } from '../types';
3
+ import { JiraIssueDatasourceParameters } from './types';
4
4
  export interface JiraIssuesConfigModalProps {
5
5
  datasourceId: string;
6
6
  onVisibleColumnKeysChange: (visibleColumnKeys: string[]) => void;
@@ -1,7 +1,7 @@
1
1
  import { jsx } from '@emotion/react';
2
- import { JiraIssueDatasourceParameters } from '../../types';
2
+ import { JiraIssueDatasourceParameters, JiraIssueDatasourceParametersQuery } from '../types';
3
3
  export interface SearchContainerProps {
4
- onSearch: (query: Omit<JiraIssueDatasourceParameters, 'cloudId'>) => void;
4
+ onSearch: (query: JiraIssueDatasourceParametersQuery) => void;
5
5
  parameters?: JiraIssueDatasourceParameters;
6
6
  }
7
7
  export declare const JiraSearchContainer: (props: SearchContainerProps) => jsx.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  /** @jsx jsx */
2
2
  import { jsx } from '@emotion/react';
3
- import { Site } from '../../../../services/getAvailableJiraSites';
3
+ import { Site } from '../../../services/getAvailableJiraSites';
4
4
  export interface JiraSiteSelectorProps {
5
5
  availableSites: Site[];
6
6
  onSiteSelection: (selectedSite: Site) => void;
@@ -0,0 +1,15 @@
1
+ type XOR<T1, T2> = (T1 & {
2
+ [k in Exclude<keyof T2, keyof T1>]?: never;
3
+ }) | (T2 & {
4
+ [k in Exclude<keyof T1, keyof T2>]?: never;
5
+ });
6
+ export type JiraIssueDatasourceParametersQuery = XOR<{
7
+ jql: string;
8
+ }, {
9
+ filter: string;
10
+ }>;
11
+ export type JiraIssueDatasourceParameters = {
12
+ cloudId: string;
13
+ } & JiraIssueDatasourceParametersQuery;
14
+ export type JiraIssueViewModes = 'issue' | 'count';
15
+ export {};
@@ -6,14 +6,16 @@ import styled from '@emotion/styled';
6
6
  import { IntlProvider } from 'react-intl-next';
7
7
 
8
8
  import { SmartCardProvider } from '@atlaskit/link-provider';
9
+ import { mockDatasourceFetchRequests } from '@atlaskit/link-test-helpers/datasource';
9
10
 
10
11
  import { useDatasourceTableState } from '../src/hooks/useDatasourceTableState';
11
12
  import { IssueLikeDataTableView } from '../src/ui/issue-like-table';
12
- import { JiraIssueDatasourceParameters } from '../src/ui/jira-issues/types';
13
+ import { JiraIssueDatasourceParameters } from '../src/ui/jira-issues-modal/types';
13
14
 
14
- import { MOCK_DATASOURCE_ID } from './setupDatasourcesMocks';
15
15
  import SmartLinkClient from './smartLinkCustomClient';
16
16
 
17
+ mockDatasourceFetchRequests();
18
+
17
19
  interface Props {
18
20
  isReadonly?: boolean;
19
21
  }
@@ -30,8 +32,7 @@ const ExampleBody = ({ isReadonly }: Props) => {
30
32
  const parameters = useMemo<JiraIssueDatasourceParameters>(
31
33
  () => ({
32
34
  cloudId: 'some-cloud-id',
33
- type: 'jql',
34
- value: 'some-jql',
35
+ jql: 'some-jql',
35
36
  }),
36
37
  [],
37
38
  );
@@ -43,7 +44,7 @@ const ExampleBody = ({ isReadonly }: Props) => {
43
44
  hasNextPage,
44
45
  defaultVisibleColumnKeys,
45
46
  columns,
46
- } = useDatasourceTableState(MOCK_DATASOURCE_ID, parameters);
47
+ } = useDatasourceTableState('some-datasource-id', parameters);
47
48
 
48
49
  const [visibleColumnKeys, setVisibleColumnKeys] = useState<string[]>(
49
50
  defaultVisibleColumnKeys,
@@ -1,28 +1,28 @@
1
1
  import React, { useMemo, useState } from 'react';
2
2
 
3
- import { JiraIssuesTableView } from '../src/ui/jira-issues/tableView';
4
- import { JiraIssueDatasourceParameters } from '../src/ui/jira-issues/types';
3
+ import { mockDatasourceFetchRequests } from '@atlaskit/link-test-helpers/datasource';
5
4
 
6
- import { MOCK_DATASOURCE_ID } from './setupDatasourcesMocks';
5
+ import { DatasourceTableView } from '../src/ui/datasourceTableView';
6
+ import { JiraIssueDatasourceParameters } from '../src/ui/jira-issues-modal/types';
7
+
8
+ mockDatasourceFetchRequests();
7
9
 
8
10
  export const ExampleJiraIssuesTableView = () => {
9
11
  const cloudId = 'some-cloud-id';
10
- const parameterType = 'jql';
11
- const parameterValue = 'some-jql';
12
12
 
13
13
  const [visibleColumnKeys, setVisibleColumnKeys] = useState<string[]>([]);
14
14
 
15
- const parameters = useMemo<JiraIssueDatasourceParameters>(() => {
16
- return {
15
+ const parameters = useMemo<JiraIssueDatasourceParameters>(
16
+ () => ({
17
17
  cloudId,
18
- type: parameterType,
19
- value: parameterValue,
20
- };
21
- }, [cloudId, parameterType, parameterValue]);
18
+ jql: 'some-jql',
19
+ }),
20
+ [cloudId],
21
+ );
22
22
 
23
23
  return (
24
- <JiraIssuesTableView
25
- datasourceId={MOCK_DATASOURCE_ID}
24
+ <DatasourceTableView
25
+ datasourceId={'some-datasource-id'}
26
26
  parameters={parameters}
27
27
  visibleColumnKeys={visibleColumnKeys}
28
28
  onVisibleColumnKeysChange={setVisibleColumnKeys}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -35,7 +35,7 @@
35
35
  "@atlaskit/icon-object": "^6.3.0",
36
36
  "@atlaskit/image": "^1.1.0",
37
37
  "@atlaskit/link-client-extension": "^1.1.0",
38
- "@atlaskit/linking-common": "^2.11.0",
38
+ "@atlaskit/linking-common": "^2.12.0",
39
39
  "@atlaskit/linking-types": "^1.6.0",
40
40
  "@atlaskit/lozenge": "^11.4.0",
41
41
  "@atlaskit/modal-dialog": "^12.5.0",
@@ -44,7 +44,7 @@
44
44
  "@atlaskit/pragmatic-drag-and-drop-hitbox": "^0.11.0",
45
45
  "@atlaskit/pragmatic-drag-and-drop-react-indicator": "^0.14.0",
46
46
  "@atlaskit/select": "^16.2.0",
47
- "@atlaskit/smart-card": "^26.2.0",
47
+ "@atlaskit/smart-card": "^26.3.0",
48
48
  "@atlaskit/spinner": "^15.5.0",
49
49
  "@atlaskit/tag": "^11.5.0",
50
50
  "@atlaskit/textfield": "5.4.2",
@@ -66,7 +66,7 @@
66
66
  "@atlaskit/code": "^14.6.0",
67
67
  "@atlaskit/docs": "*",
68
68
  "@atlaskit/link-provider": "^1.6.0",
69
- "@atlaskit/link-test-helpers": "^2.3.0",
69
+ "@atlaskit/link-test-helpers": "^2.4.0",
70
70
  "@atlaskit/ssr": "*",
71
71
  "@atlaskit/visual-regression": "*",
72
72
  "@atlaskit/webdriver-runner": "*",
package/report.api.md CHANGED
@@ -20,17 +20,41 @@ import { InlineCardAdf } from '@atlaskit/linking-common/types';
20
20
  import { jsx } from '@emotion/react';
21
21
 
22
22
  // @public (undocumented)
23
- interface JiraIssueDatasourceParameters {
23
+ export const DatasourceTableView: ({
24
+ datasourceId,
25
+ parameters,
26
+ visibleColumnKeys,
27
+ onVisibleColumnKeysChange,
28
+ }: DatasourceTableViewProps) => jsx.JSX.Element;
29
+
30
+ // @public (undocumented)
31
+ interface DatasourceTableViewProps {
24
32
  // (undocumented)
25
- cloudId: string;
33
+ datasourceId: string;
26
34
  // (undocumented)
27
- type: JiraIssueDatasourceParameterType;
35
+ fields?: string[];
36
+ // (undocumented)
37
+ onVisibleColumnKeysChange?: (visibleColumnKeys: string[]) => void;
38
+ // (undocumented)
39
+ parameters: object;
28
40
  // (undocumented)
29
- value: string;
41
+ visibleColumnKeys?: string[];
30
42
  }
31
43
 
32
44
  // @public (undocumented)
33
- type JiraIssueDatasourceParameterType = 'filter' | 'jql' | 'textQuery';
45
+ type JiraIssueDatasourceParameters = {
46
+ cloudId: string;
47
+ } & JiraIssueDatasourceParametersQuery;
48
+
49
+ // @public (undocumented)
50
+ type JiraIssueDatasourceParametersQuery = XOR<
51
+ {
52
+ jql: string;
53
+ },
54
+ {
55
+ filter: string;
56
+ }
57
+ >;
34
58
 
35
59
  // @public (undocumented)
36
60
  export const JiraIssuesConfigModal: (
@@ -58,26 +82,13 @@ interface JiraIssuesConfigModalProps {
58
82
  }
59
83
 
60
84
  // @public (undocumented)
61
- export const JiraIssuesTableView: ({
62
- datasourceId,
63
- parameters,
64
- visibleColumnKeys,
65
- onVisibleColumnKeysChange,
66
- }: JiraIssuesTableViewProps) => jsx.JSX.Element;
67
-
68
- // @public (undocumented)
69
- interface JiraIssuesTableViewProps {
70
- // (undocumented)
71
- datasourceId: string;
72
- // (undocumented)
73
- fields?: string[];
74
- // (undocumented)
75
- onVisibleColumnKeysChange?: (visibleColumnKeys: string[]) => void;
76
- // (undocumented)
77
- parameters: JiraIssueDatasourceParameters;
78
- // (undocumented)
79
- visibleColumnKeys?: string[];
80
- }
85
+ type XOR<T1, T2> =
86
+ | (T1 & {
87
+ [k in Exclude<keyof T2, keyof T1>]?: never;
88
+ })
89
+ | (T2 & {
90
+ [k in Exclude<keyof T1, keyof T2>]?: never;
91
+ });
81
92
 
82
93
  // (No @packageDocumentation comment for this package)
83
94
  ```
@@ -9,17 +9,33 @@ import { InlineCardAdf } from '@atlaskit/linking-common/types';
9
9
  import { jsx } from '@emotion/react';
10
10
 
11
11
  // @public (undocumented)
12
- interface JiraIssueDatasourceParameters {
12
+ export const DatasourceTableView: ({ datasourceId, parameters, visibleColumnKeys, onVisibleColumnKeysChange, }: DatasourceTableViewProps) => jsx.JSX.Element;
13
+
14
+ // @public (undocumented)
15
+ interface DatasourceTableViewProps {
13
16
  // (undocumented)
14
- cloudId: string;
17
+ datasourceId: string;
18
+ // (undocumented)
19
+ fields?: string[];
15
20
  // (undocumented)
16
- type: JiraIssueDatasourceParameterType;
21
+ onVisibleColumnKeysChange?: (visibleColumnKeys: string[]) => void;
22
+ // (undocumented)
23
+ parameters: object;
17
24
  // (undocumented)
18
- value: string;
25
+ visibleColumnKeys?: string[];
19
26
  }
20
27
 
21
28
  // @public (undocumented)
22
- type JiraIssueDatasourceParameterType = 'filter' | 'jql' | 'textQuery';
29
+ type JiraIssueDatasourceParameters = {
30
+ cloudId: string;
31
+ } & JiraIssueDatasourceParametersQuery;
32
+
33
+ // @public (undocumented)
34
+ type JiraIssueDatasourceParametersQuery = XOR<{
35
+ jql: string;
36
+ }, {
37
+ filter: string;
38
+ }>;
23
39
 
24
40
  // @public (undocumented)
25
41
  export const JiraIssuesConfigModal: (props: JiraIssuesConfigModalProps) => jsx.JSX.Element;
@@ -43,21 +59,11 @@ interface JiraIssuesConfigModalProps {
43
59
  }
44
60
 
45
61
  // @public (undocumented)
46
- export const JiraIssuesTableView: ({ datasourceId, parameters, visibleColumnKeys, onVisibleColumnKeysChange, }: JiraIssuesTableViewProps) => jsx.JSX.Element;
47
-
48
- // @public (undocumented)
49
- interface JiraIssuesTableViewProps {
50
- // (undocumented)
51
- datasourceId: string;
52
- // (undocumented)
53
- fields?: string[];
54
- // (undocumented)
55
- onVisibleColumnKeysChange?: (visibleColumnKeys: string[]) => void;
56
- // (undocumented)
57
- parameters: JiraIssueDatasourceParameters;
58
- // (undocumented)
59
- visibleColumnKeys?: string[];
60
- }
62
+ type XOR<T1, T2> = (T1 & {
63
+ [k in Exclude<keyof T2, keyof T1>]?: never;
64
+ }) | (T2 & {
65
+ [k in Exclude<keyof T1, keyof T2>]?: never;
66
+ });
61
67
 
62
68
  // (No @packageDocumentation comment for this package)
63
69
 
@@ -1,3 +0,0 @@
1
- import { jsx } from '@emotion/react';
2
- import { JiraIssuesTableViewProps } from './types';
3
- export declare const JiraIssuesTableView: ({ datasourceId, parameters, visibleColumnKeys, onVisibleColumnKeysChange, }: JiraIssuesTableViewProps) => jsx.JSX.Element;
@@ -1,14 +0,0 @@
1
- export interface JiraIssuesTableViewProps {
2
- datasourceId: string;
3
- parameters: JiraIssueDatasourceParameters;
4
- fields?: string[];
5
- onVisibleColumnKeysChange?: (visibleColumnKeys: string[]) => void;
6
- visibleColumnKeys?: string[];
7
- }
8
- export type JiraIssueDatasourceParameterType = 'jql' | 'textQuery' | 'filter';
9
- export interface JiraIssueDatasourceParameters {
10
- cloudId: string;
11
- value: string;
12
- type: JiraIssueDatasourceParameterType;
13
- }
14
- export type JiraIssueViewModes = 'issue' | 'count';
@@ -1,3 +0,0 @@
1
- import { jsx } from '@emotion/react';
2
- import { JiraIssuesTableViewProps } from './types';
3
- export declare const JiraIssuesTableView: ({ datasourceId, parameters, visibleColumnKeys, onVisibleColumnKeysChange, }: JiraIssuesTableViewProps) => jsx.JSX.Element;
@@ -1,14 +0,0 @@
1
- export interface JiraIssuesTableViewProps {
2
- datasourceId: string;
3
- parameters: JiraIssueDatasourceParameters;
4
- fields?: string[];
5
- onVisibleColumnKeysChange?: (visibleColumnKeys: string[]) => void;
6
- visibleColumnKeys?: string[];
7
- }
8
- export type JiraIssueDatasourceParameterType = 'jql' | 'textQuery' | 'filter';
9
- export interface JiraIssueDatasourceParameters {
10
- cloudId: string;
11
- value: string;
12
- type: JiraIssueDatasourceParameterType;
13
- }
14
- export type JiraIssueViewModes = 'issue' | 'count';
@@ -1,54 +0,0 @@
1
- // https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-jql/#api-rest-api-3-jql-autocompletedata-post
2
- export const mockAutoCompleteData = {
3
- visibleFieldNames: [
4
- {
5
- value: 'status',
6
- displayName: 'status',
7
- operators: ['=', '!=', 'in', 'not in', 'is', 'is not'],
8
- searchable: 'true',
9
- auto: 'true',
10
- orderable: 'true',
11
- types: ['com.atlassian.jira.issue.status.Status'],
12
- },
13
- {
14
- value: 'issuetype',
15
- displayName: 'issuetype',
16
- operators: ['=', '!=', 'in', 'not in', 'is', 'is not'],
17
- searchable: 'true',
18
- auto: 'true',
19
- orderable: 'true',
20
- types: ['com.atlassian.jira.issue.issuetype.IssueType'],
21
- },
22
- {
23
- value: 'cf[10062]',
24
- displayName: 'Component - cf[10062]',
25
- orderable: 'true',
26
- auto: 'true',
27
- cfid: 'cf[10062]',
28
- operators: ['=', '!=', 'in', 'not in', 'is', 'is not'],
29
- types: ['com.atlassian.jira.issue.customfields.option.Option'],
30
- },
31
- {
32
- value: '"Component[Dropdown]"',
33
- displayName: 'Component - Component[Dropdown]',
34
- searchable: 'true',
35
- auto: 'true',
36
- operators: ['=', '!=', 'in', 'not in', 'is', 'is not'],
37
- types: ['com.atlassian.jira.issue.customfields.option.Option'],
38
- },
39
- ],
40
- visibleFunctionNames: [
41
- {
42
- value: 'standardIssueTypes()',
43
- displayName: 'standardIssueTypes()',
44
- isList: 'true',
45
- types: ['com.atlassian.jira.issue.issuetype.IssueType'],
46
- },
47
- {
48
- value: 'currentUser()',
49
- displayName: 'currentUser()',
50
- types: ['com.atlassian.jira.user.ApplicationUser'],
51
- },
52
- ],
53
- jqlReservedWords: ['empty', 'and', 'or', 'in', 'distinct'],
54
- };
@@ -1,27 +0,0 @@
1
- export const mockSiteData = [
2
- {
3
- cloudId: '12345',
4
- url: 'https://test1.atlassian.net',
5
- displayName: 'test1',
6
- },
7
- {
8
- cloudId: '45678',
9
- url: 'https://test2.atlassian.net',
10
- displayName: 'test2',
11
- },
12
- {
13
- cloudId: '67899',
14
- url: 'https://hello.atlassian.net',
15
- displayName: 'hello',
16
- },
17
- {
18
- cloudId: '78911',
19
- url: 'https://test4.atlassian.net',
20
- displayName: 'test4',
21
- },
22
- {
23
- cloudId: '11111',
24
- url: 'https://test5.atlassian.net',
25
- displayName: 'testSingleIssue',
26
- },
27
- ];