@atlaskit/link-datasource 2.3.5 → 2.3.7

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 (82) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/LICENSE.md +6 -8
  3. package/dist/cjs/hooks/useDatasourceTableState.js +3 -3
  4. package/dist/cjs/hooks/useValidateAqlText.js +3 -3
  5. package/dist/cjs/ui/assets-modal/modal/index.js +21 -9
  6. package/dist/cjs/ui/common/modal/popup-select/index.js +4 -4
  7. package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +3 -3
  8. package/dist/cjs/ui/issue-like-table/index.js +1 -1
  9. package/dist/cjs/ui/issue-like-table/render-type/date-time/index.js +4 -4
  10. package/dist/cjs/ui/issue-like-table/styled.js +7 -7
  11. package/dist/es2019/hooks/useDatasourceTableState.js +3 -3
  12. package/dist/es2019/hooks/useValidateAqlText.js +3 -3
  13. package/dist/es2019/ui/assets-modal/modal/index.js +21 -7
  14. package/dist/es2019/ui/common/modal/popup-select/index.js +4 -4
  15. package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +3 -3
  16. package/dist/es2019/ui/issue-like-table/index.js +1 -1
  17. package/dist/es2019/ui/issue-like-table/render-type/date-time/index.js +4 -4
  18. package/dist/es2019/ui/issue-like-table/styled.js +7 -7
  19. package/dist/esm/hooks/useDatasourceTableState.js +3 -3
  20. package/dist/esm/hooks/useValidateAqlText.js +3 -3
  21. package/dist/esm/ui/assets-modal/modal/index.js +21 -9
  22. package/dist/esm/ui/common/modal/popup-select/index.js +4 -4
  23. package/dist/esm/ui/datasource-table-view/datasourceTableView.js +3 -3
  24. package/dist/esm/ui/issue-like-table/index.js +1 -1
  25. package/dist/esm/ui/issue-like-table/render-type/date-time/index.js +4 -4
  26. package/dist/esm/ui/issue-like-table/styled.js +7 -7
  27. package/dist/types/contexts/datasource-experience-id/index.d.ts +1 -1
  28. package/dist/types/contexts/user-interactions/index.d.ts +1 -1
  29. package/dist/types/index.d.ts +1 -1
  30. package/dist/types/services/useBasicFilterAGG.d.ts +1 -1
  31. package/dist/types/ui/assets-modal/search-container/loading-state.d.ts +1 -1
  32. package/dist/types/ui/assets-modal/types.d.ts +1 -0
  33. package/dist/types/ui/common/error-state/no-instances.d.ts +1 -1
  34. package/dist/types/ui/common/modal/cancel-button/index.d.ts +1 -1
  35. package/dist/types/ui/common/modal/content-container/index.d.ts +1 -1
  36. package/dist/types/ui/common/modal/display-view-dropdown/display-view-drop-down.d.ts +1 -1
  37. package/dist/types/ui/common/modal/popup-select/footer.d.ts +1 -1
  38. package/dist/types/ui/common/modal/popup-select/menu-list/errorMessage.d.ts +1 -1
  39. package/dist/types/ui/common/modal/popup-select/menu-list/loadingMessage.d.ts +1 -1
  40. package/dist/types/ui/common/modal/popup-select/menu-list/selectMessage.d.ts +1 -1
  41. package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.d.ts +1 -1
  42. package/dist/types/ui/issue-like-table/render-type/boolean/index.d.ts +1 -1
  43. package/dist/types/ui/issue-like-table/render-type/icon/index.d.ts +1 -1
  44. package/dist/types/ui/issue-like-table/render-type/link/index.d.ts +1 -1
  45. package/dist/types/ui/issue-like-table/render-type/number/index.d.ts +1 -1
  46. package/dist/types/ui/issue-like-table/render-type/status/index.d.ts +1 -1
  47. package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.d.ts +1 -1
  48. package/dist/types/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +2 -2
  49. package/dist/types-ts4.5/contexts/datasource-experience-id/index.d.ts +1 -1
  50. package/dist/types-ts4.5/contexts/user-interactions/index.d.ts +1 -1
  51. package/dist/types-ts4.5/index.d.ts +1 -1
  52. package/dist/types-ts4.5/services/useBasicFilterAGG.d.ts +1 -1
  53. package/dist/types-ts4.5/ui/assets-modal/search-container/loading-state.d.ts +1 -1
  54. package/dist/types-ts4.5/ui/assets-modal/types.d.ts +1 -0
  55. package/dist/types-ts4.5/ui/common/error-state/no-instances.d.ts +1 -1
  56. package/dist/types-ts4.5/ui/common/modal/cancel-button/index.d.ts +1 -1
  57. package/dist/types-ts4.5/ui/common/modal/content-container/index.d.ts +1 -1
  58. package/dist/types-ts4.5/ui/common/modal/display-view-dropdown/display-view-drop-down.d.ts +1 -1
  59. package/dist/types-ts4.5/ui/common/modal/popup-select/footer.d.ts +1 -1
  60. package/dist/types-ts4.5/ui/common/modal/popup-select/menu-list/errorMessage.d.ts +1 -1
  61. package/dist/types-ts4.5/ui/common/modal/popup-select/menu-list/loadingMessage.d.ts +1 -1
  62. package/dist/types-ts4.5/ui/common/modal/popup-select/menu-list/selectMessage.d.ts +1 -1
  63. package/dist/types-ts4.5/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.d.ts +1 -1
  64. package/dist/types-ts4.5/ui/issue-like-table/render-type/boolean/index.d.ts +1 -1
  65. package/dist/types-ts4.5/ui/issue-like-table/render-type/icon/index.d.ts +1 -1
  66. package/dist/types-ts4.5/ui/issue-like-table/render-type/link/index.d.ts +1 -1
  67. package/dist/types-ts4.5/ui/issue-like-table/render-type/number/index.d.ts +1 -1
  68. package/dist/types-ts4.5/ui/issue-like-table/render-type/status/index.d.ts +1 -1
  69. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.d.ts +1 -1
  70. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +2 -2
  71. package/examples-helpers/buildAssetsIssuesTable.tsx +44 -44
  72. package/examples-helpers/buildConfluenceSearchTable.tsx +49 -51
  73. package/examples-helpers/buildIssueLikeTable.tsx +82 -92
  74. package/examples-helpers/buildJiraIssuesTable.tsx +50 -50
  75. package/examples-helpers/hoverableContainer.tsx +12 -14
  76. package/examples-helpers/mockJqlSmartLinkData.ts +64 -66
  77. package/examples-helpers/mockSmartLinkData.ts +154 -154
  78. package/examples-helpers/smartLinkCustomClient.ts +32 -32
  79. package/examples-helpers/useAssetsTableProps.tsx +46 -46
  80. package/examples-helpers/useCommonTableProps.tsx +23 -25
  81. package/package.json +17 -12
  82. package/report.api.md +94 -106
@@ -20,110 +20,100 @@ import { useCommonTableProps } from './useCommonTableProps';
20
20
  mockDatasourceFetchRequests();
21
21
 
22
22
  interface Props {
23
- isReadonly?: boolean;
24
- canResizeColumns?: boolean;
25
- canControlWrapping?: boolean;
26
- skipIntl?: boolean;
23
+ isReadonly?: boolean;
24
+ canResizeColumns?: boolean;
25
+ canControlWrapping?: boolean;
26
+ skipIntl?: boolean;
27
27
  }
28
28
 
29
29
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
30
30
  const TableViewWrapper = styled.div({
31
- display: 'flex',
32
- flexDirection: 'column',
33
- overflow: 'scroll',
34
- width: '100%',
35
- height: '100%',
31
+ display: 'flex',
32
+ flexDirection: 'column',
33
+ overflow: 'scroll',
34
+ width: '100%',
35
+ height: '100%',
36
36
  });
37
37
 
38
- const ExampleBody = ({
39
- isReadonly,
40
- canResizeColumns = true,
41
- canControlWrapping = true,
42
- }: Props) => {
43
- const parameters = useMemo<JiraIssueDatasourceParameters>(
44
- () => ({
45
- cloudId: 'some-cloud-id',
46
- jql: 'some-jql',
47
- }),
48
- [],
49
- );
38
+ const ExampleBody = ({ isReadonly, canResizeColumns = true, canControlWrapping = true }: Props) => {
39
+ const parameters = useMemo<JiraIssueDatasourceParameters>(
40
+ () => ({
41
+ cloudId: 'some-cloud-id',
42
+ jql: 'some-jql',
43
+ }),
44
+ [],
45
+ );
50
46
 
51
- const {
52
- status,
53
- onNextPage,
54
- responseItems,
55
- hasNextPage,
56
- defaultVisibleColumnKeys,
57
- columns,
58
- loadDatasourceDetails,
59
- } = useDatasourceTableState({
60
- datasourceId: 'some-datasource-id',
61
- parameters,
62
- });
47
+ const {
48
+ status,
49
+ onNextPage,
50
+ responseItems,
51
+ hasNextPage,
52
+ defaultVisibleColumnKeys,
53
+ columns,
54
+ loadDatasourceDetails,
55
+ } = useDatasourceTableState({
56
+ datasourceId: 'some-datasource-id',
57
+ parameters,
58
+ });
63
59
 
64
- const {
65
- visibleColumnKeys,
66
- onVisibleColumnKeysChange,
67
- columnCustomSizes,
68
- onColumnResize,
69
- wrappedColumnKeys,
70
- onWrappedColumnChange,
71
- } = useCommonTableProps();
60
+ const {
61
+ visibleColumnKeys,
62
+ onVisibleColumnKeysChange,
63
+ columnCustomSizes,
64
+ onColumnResize,
65
+ wrappedColumnKeys,
66
+ onWrappedColumnChange,
67
+ } = useCommonTableProps();
72
68
 
73
- useEffect(() => {
74
- if (visibleColumnKeys.length === 0 && defaultVisibleColumnKeys.length > 0) {
75
- onVisibleColumnKeysChange(defaultVisibleColumnKeys);
76
- }
77
- }, [visibleColumnKeys, defaultVisibleColumnKeys, onVisibleColumnKeysChange]);
69
+ useEffect(() => {
70
+ if (visibleColumnKeys.length === 0 && defaultVisibleColumnKeys.length > 0) {
71
+ onVisibleColumnKeysChange(defaultVisibleColumnKeys);
72
+ }
73
+ }, [visibleColumnKeys, defaultVisibleColumnKeys, onVisibleColumnKeysChange]);
78
74
 
79
- return (
80
- <TableViewWrapper>
81
- {visibleColumnKeys.length > 0 && columns.length > 0 ? (
82
- <IssueLikeDataTableView
83
- testId="link-datasource"
84
- items={responseItems}
85
- onNextPage={onNextPage}
86
- onLoadDatasourceDetails={loadDatasourceDetails}
87
- hasNextPage={hasNextPage}
88
- status={status}
89
- columns={columns}
90
- visibleColumnKeys={visibleColumnKeys}
91
- onVisibleColumnKeysChange={
92
- isReadonly ? undefined : onVisibleColumnKeysChange
93
- }
94
- onColumnResize={
95
- isReadonly || !canResizeColumns ? undefined : onColumnResize
96
- }
97
- columnCustomSizes={columnCustomSizes}
98
- onWrappedColumnChange={
99
- canControlWrapping ? onWrappedColumnChange : undefined
100
- }
101
- wrappedColumnKeys={wrappedColumnKeys}
102
- />
103
- ) : (
104
- <span>Loading ...</span>
105
- )}
106
- </TableViewWrapper>
107
- );
75
+ return (
76
+ <TableViewWrapper>
77
+ {visibleColumnKeys.length > 0 && columns.length > 0 ? (
78
+ <IssueLikeDataTableView
79
+ testId="link-datasource"
80
+ items={responseItems}
81
+ onNextPage={onNextPage}
82
+ onLoadDatasourceDetails={loadDatasourceDetails}
83
+ hasNextPage={hasNextPage}
84
+ status={status}
85
+ columns={columns}
86
+ visibleColumnKeys={visibleColumnKeys}
87
+ onVisibleColumnKeysChange={isReadonly ? undefined : onVisibleColumnKeysChange}
88
+ onColumnResize={isReadonly || !canResizeColumns ? undefined : onColumnResize}
89
+ columnCustomSizes={columnCustomSizes}
90
+ onWrappedColumnChange={canControlWrapping ? onWrappedColumnChange : undefined}
91
+ wrappedColumnKeys={wrappedColumnKeys}
92
+ />
93
+ ) : (
94
+ <span>Loading ...</span>
95
+ )}
96
+ </TableViewWrapper>
97
+ );
108
98
  };
109
99
 
110
100
  export const ExampleIssueLikeTable = ({
111
- isReadonly,
112
- canResizeColumns,
113
- canControlWrapping,
114
- skipIntl,
101
+ isReadonly,
102
+ canResizeColumns,
103
+ canControlWrapping,
104
+ skipIntl,
115
105
  }: Props) => {
116
- return (
117
- <DatasourceExperienceIdProvider>
118
- <IntlMessagesProvider loaderFn={fetchMessagesForLocale}>
119
- <SmartCardProvider client={new SmartLinkClient()}>
120
- <ExampleBody
121
- isReadonly={isReadonly}
122
- canResizeColumns={canResizeColumns}
123
- canControlWrapping={canControlWrapping}
124
- />
125
- </SmartCardProvider>
126
- </IntlMessagesProvider>
127
- </DatasourceExperienceIdProvider>
128
- );
106
+ return (
107
+ <DatasourceExperienceIdProvider>
108
+ <IntlMessagesProvider loaderFn={fetchMessagesForLocale}>
109
+ <SmartCardProvider client={new SmartLinkClient()}>
110
+ <ExampleBody
111
+ isReadonly={isReadonly}
112
+ canResizeColumns={canResizeColumns}
113
+ canControlWrapping={canControlWrapping}
114
+ />
115
+ </SmartCardProvider>
116
+ </IntlMessagesProvider>
117
+ </DatasourceExperienceIdProvider>
118
+ );
129
119
  };
@@ -14,65 +14,65 @@ import SmartLinkClient from './smartLinkCustomClient';
14
14
  import { useCommonTableProps } from './useCommonTableProps';
15
15
 
16
16
  interface JiraIssuesTableViewProps {
17
- parameters?: DatasourceParameters;
18
- mockDatasourceFetchRequest?: boolean;
17
+ parameters?: DatasourceParameters;
18
+ mockDatasourceFetchRequest?: boolean;
19
19
  }
20
20
 
21
21
  const JiraIssuesTableView = ({ parameters }: JiraIssuesTableViewProps) => {
22
- const cloudId = parameters?.cloudId || 'some-cloud-id';
22
+ const cloudId = parameters?.cloudId || 'some-cloud-id';
23
23
 
24
- const datasourceParameters = useMemo<JiraIssueDatasourceParameters>(
25
- () => ({
26
- cloudId,
27
- jql: 'some-jql',
28
- }),
29
- [cloudId],
30
- );
24
+ const datasourceParameters = useMemo<JiraIssueDatasourceParameters>(
25
+ () => ({
26
+ cloudId,
27
+ jql: 'some-jql',
28
+ }),
29
+ [cloudId],
30
+ );
31
31
 
32
- const {
33
- visibleColumnKeys,
34
- onVisibleColumnKeysChange,
35
- columnCustomSizes,
36
- onColumnResize,
37
- wrappedColumnKeys,
38
- onWrappedColumnChange,
39
- } = useCommonTableProps({
40
- defaultColumnCustomSizes: {
41
- people: 100,
42
- },
43
- });
32
+ const {
33
+ visibleColumnKeys,
34
+ onVisibleColumnKeysChange,
35
+ columnCustomSizes,
36
+ onColumnResize,
37
+ wrappedColumnKeys,
38
+ onWrappedColumnChange,
39
+ } = useCommonTableProps({
40
+ defaultColumnCustomSizes: {
41
+ people: 100,
42
+ },
43
+ });
44
44
 
45
- return (
46
- <DatasourceTableView
47
- datasourceId={'some-datasource-id'}
48
- parameters={datasourceParameters}
49
- visibleColumnKeys={visibleColumnKeys}
50
- onVisibleColumnKeysChange={onVisibleColumnKeysChange}
51
- columnCustomSizes={columnCustomSizes}
52
- onColumnResize={onColumnResize}
53
- onWrappedColumnChange={onWrappedColumnChange}
54
- wrappedColumnKeys={wrappedColumnKeys}
55
- />
56
- );
45
+ return (
46
+ <DatasourceTableView
47
+ datasourceId={'some-datasource-id'}
48
+ parameters={datasourceParameters}
49
+ visibleColumnKeys={visibleColumnKeys}
50
+ onVisibleColumnKeysChange={onVisibleColumnKeysChange}
51
+ columnCustomSizes={columnCustomSizes}
52
+ onColumnResize={onColumnResize}
53
+ onWrappedColumnChange={onWrappedColumnChange}
54
+ wrappedColumnKeys={wrappedColumnKeys}
55
+ />
56
+ );
57
57
  };
58
58
 
59
59
  export const ExampleJiraIssuesTableView = ({
60
- parameters,
61
- mockDatasourceFetchRequest = true,
60
+ parameters,
61
+ mockDatasourceFetchRequest = true,
62
62
  }: JiraIssuesTableViewProps) => {
63
- useEffect(() => {
64
- if (mockDatasourceFetchRequest) {
65
- mockDatasourceFetchRequests();
66
- }
67
- }, [mockDatasourceFetchRequest]);
63
+ useEffect(() => {
64
+ if (mockDatasourceFetchRequest) {
65
+ mockDatasourceFetchRequests();
66
+ }
67
+ }, [mockDatasourceFetchRequest]);
68
68
 
69
- return (
70
- <DatasourceExperienceIdProvider>
71
- <IntlMessagesProvider loaderFn={fetchMessagesForLocale}>
72
- <SmartCardProvider client={new SmartLinkClient()}>
73
- <JiraIssuesTableView parameters={parameters} />
74
- </SmartCardProvider>
75
- </IntlMessagesProvider>
76
- </DatasourceExperienceIdProvider>
77
- );
69
+ return (
70
+ <DatasourceExperienceIdProvider>
71
+ <IntlMessagesProvider loaderFn={fetchMessagesForLocale}>
72
+ <SmartCardProvider client={new SmartLinkClient()}>
73
+ <JiraIssuesTableView parameters={parameters} />
74
+ </SmartCardProvider>
75
+ </IntlMessagesProvider>
76
+ </DatasourceExperienceIdProvider>
77
+ );
78
78
  };
@@ -6,21 +6,19 @@ import { jsx } from '@emotion/react';
6
6
  import { Box, xcss } from '@atlaskit/primitives';
7
7
 
8
8
  const containerStyles = xcss({
9
- height: '100%',
10
- backgroundColor: 'elevation.surface.overlay',
11
- padding: 'space.400',
12
- ':hover': {
13
- backgroundColor: 'elevation.surface.overlay.hovered',
14
- },
9
+ height: '100%',
10
+ backgroundColor: 'elevation.surface.overlay',
11
+ padding: 'space.400',
12
+ ':hover': {
13
+ backgroundColor: 'elevation.surface.overlay.hovered',
14
+ },
15
15
  });
16
16
 
17
17
  // To simulate Jira description's hover background wrapper
18
- export const HoverableContainer = ({
19
- children,
20
- }: React.PropsWithChildren<{}>) => {
21
- return (
22
- <Box testId="examples-hoverable-container" xcss={containerStyles}>
23
- {children}
24
- </Box>
25
- );
18
+ export const HoverableContainer = ({ children }: React.PropsWithChildren<{}>) => {
19
+ return (
20
+ <Box testId="examples-hoverable-container" xcss={containerStyles}>
21
+ {children}
22
+ </Box>
23
+ );
26
24
  };
@@ -3,70 +3,68 @@ import { type JsonLd } from 'json-ld-types';
3
3
  import * as Image from './images.json';
4
4
 
5
5
  export const mockJqlSmartLinkData = {
6
- unauthorized: {
7
- meta: {
8
- access: 'unauthorized',
9
- visibility: 'restricted',
10
- auth: [{}],
11
- },
12
- data: {
13
- '@context': {
14
- '@vocab': 'https://www.w3.org/ns/activitystreams#',
15
- atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
16
- schema: 'http://schema.org/',
17
- },
18
- '@type': 'Object',
19
- generator: {
20
- '@type': 'Application',
21
- name: 'Asana',
22
- icon: {
23
- '@type': 'Image',
24
- url: Image.asana,
25
- },
26
- },
27
- url: 'https://some.url',
28
- },
29
- } as JsonLd.Response,
30
- resolved: {
31
- data: {
32
- '@context': {
33
- '@vocab': 'https://www.w3.org/ns/activitystreams#',
34
- atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
35
- schema: 'http://schema.org/',
36
- },
37
- '@type': ['Document', 'Object'],
38
- generator: {
39
- '@id': 'https://www.atlassian.com/#Jira',
40
- '@type': 'Application',
41
- name: 'Jira',
42
- },
43
- name: `55 Issues`,
44
- summary: `JQL Query: '(text ~ "test*" OR summary ~ "test*") order by created DESC'`,
45
- url: `https://product-fabric.atlassian.net/issues/?jql=${encodeURI(
46
- '(text ~ "test*" OR summary ~ "test*") order by created DESC',
47
- )}`,
48
- },
49
- meta: {
50
- access: 'granted',
51
- auth: [],
52
- definitionId: 'jira-object-provider',
53
- category: 'object',
54
- product: 'jira',
55
- resourceType: 'jql',
56
- tenantId: `someCloudId-for-hello`,
57
- visibility: 'restricted',
58
- // ...(subproduct && { subproduct: subproduct }),
59
- },
60
- datasources: [
61
- {
62
- key: 'datasource-jira-issues',
63
- parameters: {
64
- cloudId: `someCloudId-for-hello`,
65
- jql: decodeURIComponent(
66
- '(text ~ "test*" OR summary ~ "test*") order by created DESC',
67
- ),
68
- },
69
- },
70
- ],
71
- } as JsonLd.Response,
6
+ unauthorized: {
7
+ meta: {
8
+ access: 'unauthorized',
9
+ visibility: 'restricted',
10
+ auth: [{}],
11
+ },
12
+ data: {
13
+ '@context': {
14
+ '@vocab': 'https://www.w3.org/ns/activitystreams#',
15
+ atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
16
+ schema: 'http://schema.org/',
17
+ },
18
+ '@type': 'Object',
19
+ generator: {
20
+ '@type': 'Application',
21
+ name: 'Asana',
22
+ icon: {
23
+ '@type': 'Image',
24
+ url: Image.asana,
25
+ },
26
+ },
27
+ url: 'https://some.url',
28
+ },
29
+ } as JsonLd.Response,
30
+ resolved: {
31
+ data: {
32
+ '@context': {
33
+ '@vocab': 'https://www.w3.org/ns/activitystreams#',
34
+ atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
35
+ schema: 'http://schema.org/',
36
+ },
37
+ '@type': ['Document', 'Object'],
38
+ generator: {
39
+ '@id': 'https://www.atlassian.com/#Jira',
40
+ '@type': 'Application',
41
+ name: 'Jira',
42
+ },
43
+ name: `55 Issues`,
44
+ summary: `JQL Query: '(text ~ "test*" OR summary ~ "test*") order by created DESC'`,
45
+ url: `https://product-fabric.atlassian.net/issues/?jql=${encodeURI(
46
+ '(text ~ "test*" OR summary ~ "test*") order by created DESC',
47
+ )}`,
48
+ },
49
+ meta: {
50
+ access: 'granted',
51
+ auth: [],
52
+ definitionId: 'jira-object-provider',
53
+ category: 'object',
54
+ product: 'jira',
55
+ resourceType: 'jql',
56
+ tenantId: `someCloudId-for-hello`,
57
+ visibility: 'restricted',
58
+ // ...(subproduct && { subproduct: subproduct }),
59
+ },
60
+ datasources: [
61
+ {
62
+ key: 'datasource-jira-issues',
63
+ parameters: {
64
+ cloudId: `someCloudId-for-hello`,
65
+ jql: decodeURIComponent('(text ~ "test*" OR summary ~ "test*") order by created DESC'),
66
+ },
67
+ },
68
+ ],
69
+ } as JsonLd.Response,
72
70
  };