@atlaskit/link-datasource 0.14.4

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 (245) hide show
  1. package/CHANGELOG.md +233 -0
  2. package/README.md +3 -0
  3. package/dist/cjs/hooks/useDatasourceTableState.js +133 -0
  4. package/dist/cjs/index.js +19 -0
  5. package/dist/cjs/services/getAvailableJiraSites.js +65 -0
  6. package/dist/cjs/services/makeGetJqlAutocompleteData.js +66 -0
  7. package/dist/cjs/services/makeGetJqlSuggestionsData.js +55 -0
  8. package/dist/cjs/ui/issue-like-table/column-picker/index.js +93 -0
  9. package/dist/cjs/ui/issue-like-table/column-picker/types.js +5 -0
  10. package/dist/cjs/ui/issue-like-table/draggable-table-heading.js +182 -0
  11. package/dist/cjs/ui/issue-like-table/empty-state/index.js +127 -0
  12. package/dist/cjs/ui/issue-like-table/empty-state/priority.js +28 -0
  13. package/dist/cjs/ui/issue-like-table/empty-state/type.js +51 -0
  14. package/dist/cjs/ui/issue-like-table/empty-state/types.js +5 -0
  15. package/dist/cjs/ui/issue-like-table/index.js +300 -0
  16. package/dist/cjs/ui/issue-like-table/render-type/boolean/index.js +30 -0
  17. package/dist/cjs/ui/issue-like-table/render-type/boolean/messages.js +20 -0
  18. package/dist/cjs/ui/issue-like-table/render-type/date-time/index.js +47 -0
  19. package/dist/cjs/ui/issue-like-table/render-type/icon/index.js +34 -0
  20. package/dist/cjs/ui/issue-like-table/render-type/index.js +63 -0
  21. package/dist/cjs/ui/issue-like-table/render-type/link/index.js +56 -0
  22. package/dist/cjs/ui/issue-like-table/render-type/number/index.js +24 -0
  23. package/dist/cjs/ui/issue-like-table/render-type/status/index.js +28 -0
  24. package/dist/cjs/ui/issue-like-table/render-type/tag/index.js +27 -0
  25. package/dist/cjs/ui/issue-like-table/render-type/text/index.js +23 -0
  26. package/dist/cjs/ui/issue-like-table/render-type/user/index.js +36 -0
  27. package/dist/cjs/ui/issue-like-table/render-type/user/messages.js +15 -0
  28. package/dist/cjs/ui/issue-like-table/styled.js +12 -0
  29. package/dist/cjs/ui/issue-like-table/types.js +5 -0
  30. package/dist/cjs/ui/issue-like-table/useIsOnScreen.js +32 -0
  31. package/dist/cjs/ui/jira-issues/modal/basic-search-input/index.js +52 -0
  32. package/dist/cjs/ui/jira-issues/modal/basic-search-input/messages.js +15 -0
  33. package/dist/cjs/ui/jira-issues/modal/index.js +267 -0
  34. package/dist/cjs/ui/jira-issues/modal/jira-search-container/buildJQL.js +27 -0
  35. package/dist/cjs/ui/jira-issues/modal/jira-search-container/index.js +116 -0
  36. package/dist/cjs/ui/jira-issues/modal/jira-search-container/messages.js +15 -0
  37. package/dist/cjs/ui/jira-issues/modal/jql-editor/index.js +41 -0
  38. package/dist/cjs/ui/jira-issues/modal/messages.js +45 -0
  39. package/dist/cjs/ui/jira-issues/modal/mode-switcher/index.js +97 -0
  40. package/dist/cjs/ui/jira-issues/modal/site-selector/index.js +55 -0
  41. package/dist/cjs/ui/jira-issues/modal/site-selector/messages.js +20 -0
  42. package/dist/cjs/ui/jira-issues/table-footer/index.js +68 -0
  43. package/dist/cjs/ui/jira-issues/table-footer/messages.js +25 -0
  44. package/dist/cjs/ui/jira-issues/table-footer/sync-info/index.js +79 -0
  45. package/dist/cjs/ui/jira-issues/table-footer/sync-info/messages.js +20 -0
  46. package/dist/cjs/ui/jira-issues/tableView.js +64 -0
  47. package/dist/cjs/ui/jira-issues/types.js +5 -0
  48. package/dist/cjs/version.json +5 -0
  49. package/dist/es2019/hooks/useDatasourceTableState.js +77 -0
  50. package/dist/es2019/index.js +2 -0
  51. package/dist/es2019/services/getAvailableJiraSites.js +20 -0
  52. package/dist/es2019/services/makeGetJqlAutocompleteData.js +19 -0
  53. package/dist/es2019/services/makeGetJqlSuggestionsData.js +11 -0
  54. package/dist/es2019/ui/issue-like-table/column-picker/index.js +77 -0
  55. package/dist/es2019/ui/issue-like-table/column-picker/types.js +1 -0
  56. package/dist/es2019/ui/issue-like-table/draggable-table-heading.js +166 -0
  57. package/dist/es2019/ui/issue-like-table/empty-state/index.js +113 -0
  58. package/dist/es2019/ui/issue-like-table/empty-state/priority.js +32 -0
  59. package/dist/es2019/ui/issue-like-table/empty-state/type.js +46 -0
  60. package/dist/es2019/ui/issue-like-table/empty-state/types.js +1 -0
  61. package/dist/es2019/ui/issue-like-table/index.js +259 -0
  62. package/dist/es2019/ui/issue-like-table/render-type/boolean/index.js +21 -0
  63. package/dist/es2019/ui/issue-like-table/render-type/boolean/messages.js +13 -0
  64. package/dist/es2019/ui/issue-like-table/render-type/date-time/index.js +37 -0
  65. package/dist/es2019/ui/issue-like-table/render-type/icon/index.js +27 -0
  66. package/dist/es2019/ui/issue-like-table/render-type/index.js +55 -0
  67. package/dist/es2019/ui/issue-like-table/render-type/link/index.js +38 -0
  68. package/dist/es2019/ui/issue-like-table/render-type/number/index.js +15 -0
  69. package/dist/es2019/ui/issue-like-table/render-type/status/index.js +19 -0
  70. package/dist/es2019/ui/issue-like-table/render-type/tag/index.js +18 -0
  71. package/dist/es2019/ui/issue-like-table/render-type/text/index.js +14 -0
  72. package/dist/es2019/ui/issue-like-table/render-type/user/index.js +29 -0
  73. package/dist/es2019/ui/issue-like-table/render-type/user/messages.js +8 -0
  74. package/dist/es2019/ui/issue-like-table/styled.js +6 -0
  75. package/dist/es2019/ui/issue-like-table/types.js +1 -0
  76. package/dist/es2019/ui/issue-like-table/useIsOnScreen.js +17 -0
  77. package/dist/es2019/ui/jira-issues/modal/basic-search-input/index.js +42 -0
  78. package/dist/es2019/ui/jira-issues/modal/basic-search-input/messages.js +8 -0
  79. package/dist/es2019/ui/jira-issues/modal/index.js +227 -0
  80. package/dist/es2019/ui/jira-issues/modal/jira-search-container/buildJQL.js +20 -0
  81. package/dist/es2019/ui/jira-issues/modal/jira-search-container/index.js +90 -0
  82. package/dist/es2019/ui/jira-issues/modal/jira-search-container/messages.js +8 -0
  83. package/dist/es2019/ui/jira-issues/modal/jql-editor/index.js +33 -0
  84. package/dist/es2019/ui/jira-issues/modal/messages.js +38 -0
  85. package/dist/es2019/ui/jira-issues/modal/mode-switcher/index.js +90 -0
  86. package/dist/es2019/ui/jira-issues/modal/site-selector/index.js +43 -0
  87. package/dist/es2019/ui/jira-issues/modal/site-selector/messages.js +13 -0
  88. package/dist/es2019/ui/jira-issues/table-footer/index.js +78 -0
  89. package/dist/es2019/ui/jira-issues/table-footer/messages.js +18 -0
  90. package/dist/es2019/ui/jira-issues/table-footer/sync-info/index.js +59 -0
  91. package/dist/es2019/ui/jira-issues/table-footer/sync-info/messages.js +13 -0
  92. package/dist/es2019/ui/jira-issues/tableView.js +57 -0
  93. package/dist/es2019/ui/jira-issues/types.js +1 -0
  94. package/dist/es2019/version.json +5 -0
  95. package/dist/esm/hooks/useDatasourceTableState.js +125 -0
  96. package/dist/esm/index.js +2 -0
  97. package/dist/esm/services/getAvailableJiraSites.js +57 -0
  98. package/dist/esm/services/makeGetJqlAutocompleteData.js +58 -0
  99. package/dist/esm/services/makeGetJqlSuggestionsData.js +47 -0
  100. package/dist/esm/ui/issue-like-table/column-picker/index.js +85 -0
  101. package/dist/esm/ui/issue-like-table/column-picker/types.js +1 -0
  102. package/dist/esm/ui/issue-like-table/draggable-table-heading.js +173 -0
  103. package/dist/esm/ui/issue-like-table/empty-state/index.js +118 -0
  104. package/dist/esm/ui/issue-like-table/empty-state/priority.js +20 -0
  105. package/dist/esm/ui/issue-like-table/empty-state/type.js +43 -0
  106. package/dist/esm/ui/issue-like-table/empty-state/types.js +1 -0
  107. package/dist/esm/ui/issue-like-table/index.js +292 -0
  108. package/dist/esm/ui/issue-like-table/render-type/boolean/index.js +21 -0
  109. package/dist/esm/ui/issue-like-table/render-type/boolean/messages.js +13 -0
  110. package/dist/esm/ui/issue-like-table/render-type/date-time/index.js +38 -0
  111. package/dist/esm/ui/issue-like-table/render-type/icon/index.js +25 -0
  112. package/dist/esm/ui/issue-like-table/render-type/index.js +55 -0
  113. package/dist/esm/ui/issue-like-table/render-type/link/index.js +44 -0
  114. package/dist/esm/ui/issue-like-table/render-type/number/index.js +15 -0
  115. package/dist/esm/ui/issue-like-table/render-type/status/index.js +19 -0
  116. package/dist/esm/ui/issue-like-table/render-type/tag/index.js +18 -0
  117. package/dist/esm/ui/issue-like-table/render-type/text/index.js +14 -0
  118. package/dist/esm/ui/issue-like-table/render-type/user/index.js +27 -0
  119. package/dist/esm/ui/issue-like-table/render-type/user/messages.js +8 -0
  120. package/dist/esm/ui/issue-like-table/styled.js +4 -0
  121. package/dist/esm/ui/issue-like-table/types.js +1 -0
  122. package/dist/esm/ui/issue-like-table/useIsOnScreen.js +25 -0
  123. package/dist/esm/ui/jira-issues/modal/basic-search-input/index.js +43 -0
  124. package/dist/esm/ui/jira-issues/modal/basic-search-input/messages.js +8 -0
  125. package/dist/esm/ui/jira-issues/modal/index.js +255 -0
  126. package/dist/esm/ui/jira-issues/modal/jira-search-container/buildJQL.js +20 -0
  127. package/dist/esm/ui/jira-issues/modal/jira-search-container/index.js +104 -0
  128. package/dist/esm/ui/jira-issues/modal/jira-search-container/messages.js +8 -0
  129. package/dist/esm/ui/jira-issues/modal/jql-editor/index.js +31 -0
  130. package/dist/esm/ui/jira-issues/modal/messages.js +38 -0
  131. package/dist/esm/ui/jira-issues/modal/mode-switcher/index.js +88 -0
  132. package/dist/esm/ui/jira-issues/modal/site-selector/index.js +44 -0
  133. package/dist/esm/ui/jira-issues/modal/site-selector/messages.js +13 -0
  134. package/dist/esm/ui/jira-issues/table-footer/index.js +60 -0
  135. package/dist/esm/ui/jira-issues/table-footer/messages.js +18 -0
  136. package/dist/esm/ui/jira-issues/table-footer/sync-info/index.js +68 -0
  137. package/dist/esm/ui/jira-issues/table-footer/sync-info/messages.js +13 -0
  138. package/dist/esm/ui/jira-issues/tableView.js +55 -0
  139. package/dist/esm/ui/jira-issues/types.js +1 -0
  140. package/dist/esm/version.json +5 -0
  141. package/dist/types/hooks/useDatasourceTableState.d.ts +13 -0
  142. package/dist/types/index.d.ts +2 -0
  143. package/dist/types/services/getAvailableJiraSites.d.ts +6 -0
  144. package/dist/types/services/makeGetJqlAutocompleteData.d.ts +6 -0
  145. package/dist/types/services/makeGetJqlSuggestionsData.d.ts +5 -0
  146. package/dist/types/ui/issue-like-table/column-picker/index.d.ts +3 -0
  147. package/dist/types/ui/issue-like-table/column-picker/types.d.ts +6 -0
  148. package/dist/types/ui/issue-like-table/draggable-table-heading.d.ts +12 -0
  149. package/dist/types/ui/issue-like-table/empty-state/index.d.ts +6 -0
  150. package/dist/types/ui/issue-like-table/empty-state/priority.d.ts +6 -0
  151. package/dist/types/ui/issue-like-table/empty-state/type.d.ts +6 -0
  152. package/dist/types/ui/issue-like-table/empty-state/types.d.ts +2 -0
  153. package/dist/types/ui/issue-like-table/index.d.ts +15 -0
  154. package/dist/types/ui/issue-like-table/render-type/boolean/index.d.ts +8 -0
  155. package/dist/types/ui/issue-like-table/render-type/boolean/messages.d.ts +12 -0
  156. package/dist/types/ui/issue-like-table/render-type/date-time/index.d.ts +10 -0
  157. package/dist/types/ui/issue-like-table/render-type/icon/index.d.ts +8 -0
  158. package/dist/types/ui/issue-like-table/render-type/index.d.ts +2 -0
  159. package/dist/types/ui/issue-like-table/render-type/link/index.d.ts +8 -0
  160. package/dist/types/ui/issue-like-table/render-type/number/index.d.ts +8 -0
  161. package/dist/types/ui/issue-like-table/render-type/status/index.d.ts +8 -0
  162. package/dist/types/ui/issue-like-table/render-type/tag/index.d.ts +9 -0
  163. package/dist/types/ui/issue-like-table/render-type/text/index.d.ts +8 -0
  164. package/dist/types/ui/issue-like-table/render-type/user/index.d.ts +11 -0
  165. package/dist/types/ui/issue-like-table/render-type/user/messages.d.ts +7 -0
  166. package/dist/types/ui/issue-like-table/styled.d.ts +5 -0
  167. package/dist/types/ui/issue-like-table/types.d.ts +38 -0
  168. package/dist/types/ui/issue-like-table/useIsOnScreen.d.ts +1 -0
  169. package/dist/types/ui/jira-issues/modal/basic-search-input/index.d.ts +12 -0
  170. package/dist/types/ui/jira-issues/modal/basic-search-input/messages.d.ts +7 -0
  171. package/dist/types/ui/jira-issues/modal/index.d.ts +13 -0
  172. package/dist/types/ui/jira-issues/modal/jira-search-container/buildJQL.d.ts +7 -0
  173. package/dist/types/ui/jira-issues/modal/jira-search-container/index.d.ts +7 -0
  174. package/dist/types/ui/jira-issues/modal/jira-search-container/messages.d.ts +7 -0
  175. package/dist/types/ui/jira-issues/modal/jql-editor/index.d.ts +8 -0
  176. package/dist/types/ui/jira-issues/modal/messages.d.ts +37 -0
  177. package/dist/types/ui/jira-issues/modal/mode-switcher/index.d.ts +12 -0
  178. package/dist/types/ui/jira-issues/modal/site-selector/index.d.ts +10 -0
  179. package/dist/types/ui/jira-issues/modal/site-selector/messages.d.ts +12 -0
  180. package/dist/types/ui/jira-issues/table-footer/index.d.ts +7 -0
  181. package/dist/types/ui/jira-issues/table-footer/messages.d.ts +17 -0
  182. package/dist/types/ui/jira-issues/table-footer/sync-info/index.d.ts +4 -0
  183. package/dist/types/ui/jira-issues/table-footer/sync-info/messages.d.ts +12 -0
  184. package/dist/types/ui/jira-issues/tableView.d.ts +3 -0
  185. package/dist/types/ui/jira-issues/types.d.ts +14 -0
  186. package/dist/types-ts4.5/hooks/useDatasourceTableState.d.ts +13 -0
  187. package/dist/types-ts4.5/index.d.ts +2 -0
  188. package/dist/types-ts4.5/services/getAvailableJiraSites.d.ts +6 -0
  189. package/dist/types-ts4.5/services/makeGetJqlAutocompleteData.d.ts +6 -0
  190. package/dist/types-ts4.5/services/makeGetJqlSuggestionsData.d.ts +5 -0
  191. package/dist/types-ts4.5/ui/issue-like-table/column-picker/index.d.ts +3 -0
  192. package/dist/types-ts4.5/ui/issue-like-table/column-picker/types.d.ts +6 -0
  193. package/dist/types-ts4.5/ui/issue-like-table/draggable-table-heading.d.ts +12 -0
  194. package/dist/types-ts4.5/ui/issue-like-table/empty-state/index.d.ts +6 -0
  195. package/dist/types-ts4.5/ui/issue-like-table/empty-state/priority.d.ts +6 -0
  196. package/dist/types-ts4.5/ui/issue-like-table/empty-state/type.d.ts +6 -0
  197. package/dist/types-ts4.5/ui/issue-like-table/empty-state/types.d.ts +2 -0
  198. package/dist/types-ts4.5/ui/issue-like-table/index.d.ts +15 -0
  199. package/dist/types-ts4.5/ui/issue-like-table/render-type/boolean/index.d.ts +8 -0
  200. package/dist/types-ts4.5/ui/issue-like-table/render-type/boolean/messages.d.ts +12 -0
  201. package/dist/types-ts4.5/ui/issue-like-table/render-type/date-time/index.d.ts +10 -0
  202. package/dist/types-ts4.5/ui/issue-like-table/render-type/icon/index.d.ts +8 -0
  203. package/dist/types-ts4.5/ui/issue-like-table/render-type/index.d.ts +2 -0
  204. package/dist/types-ts4.5/ui/issue-like-table/render-type/link/index.d.ts +8 -0
  205. package/dist/types-ts4.5/ui/issue-like-table/render-type/number/index.d.ts +8 -0
  206. package/dist/types-ts4.5/ui/issue-like-table/render-type/status/index.d.ts +8 -0
  207. package/dist/types-ts4.5/ui/issue-like-table/render-type/tag/index.d.ts +9 -0
  208. package/dist/types-ts4.5/ui/issue-like-table/render-type/text/index.d.ts +8 -0
  209. package/dist/types-ts4.5/ui/issue-like-table/render-type/user/index.d.ts +11 -0
  210. package/dist/types-ts4.5/ui/issue-like-table/render-type/user/messages.d.ts +7 -0
  211. package/dist/types-ts4.5/ui/issue-like-table/styled.d.ts +5 -0
  212. package/dist/types-ts4.5/ui/issue-like-table/types.d.ts +38 -0
  213. package/dist/types-ts4.5/ui/issue-like-table/useIsOnScreen.d.ts +1 -0
  214. package/dist/types-ts4.5/ui/jira-issues/modal/basic-search-input/index.d.ts +12 -0
  215. package/dist/types-ts4.5/ui/jira-issues/modal/basic-search-input/messages.d.ts +7 -0
  216. package/dist/types-ts4.5/ui/jira-issues/modal/index.d.ts +13 -0
  217. package/dist/types-ts4.5/ui/jira-issues/modal/jira-search-container/buildJQL.d.ts +7 -0
  218. package/dist/types-ts4.5/ui/jira-issues/modal/jira-search-container/index.d.ts +7 -0
  219. package/dist/types-ts4.5/ui/jira-issues/modal/jira-search-container/messages.d.ts +7 -0
  220. package/dist/types-ts4.5/ui/jira-issues/modal/jql-editor/index.d.ts +8 -0
  221. package/dist/types-ts4.5/ui/jira-issues/modal/messages.d.ts +37 -0
  222. package/dist/types-ts4.5/ui/jira-issues/modal/mode-switcher/index.d.ts +12 -0
  223. package/dist/types-ts4.5/ui/jira-issues/modal/site-selector/index.d.ts +10 -0
  224. package/dist/types-ts4.5/ui/jira-issues/modal/site-selector/messages.d.ts +12 -0
  225. package/dist/types-ts4.5/ui/jira-issues/table-footer/index.d.ts +7 -0
  226. package/dist/types-ts4.5/ui/jira-issues/table-footer/messages.d.ts +17 -0
  227. package/dist/types-ts4.5/ui/jira-issues/table-footer/sync-info/index.d.ts +4 -0
  228. package/dist/types-ts4.5/ui/jira-issues/table-footer/sync-info/messages.d.ts +12 -0
  229. package/dist/types-ts4.5/ui/jira-issues/tableView.d.ts +3 -0
  230. package/dist/types-ts4.5/ui/jira-issues/types.d.ts +14 -0
  231. package/examples-helpers/buildIssueLikeTable.tsx +88 -0
  232. package/examples-helpers/buildJiraIssuesTable.tsx +31 -0
  233. package/examples-helpers/images.json +4 -0
  234. package/examples-helpers/mockAutocompleteData.ts +54 -0
  235. package/examples-helpers/mockJiraAvailableSites.ts +27 -0
  236. package/examples-helpers/mockJiraData.ts +546 -0
  237. package/examples-helpers/mockJqlSmartLinkData.ts +72 -0
  238. package/examples-helpers/mockSmartLinkData.ts +67 -0
  239. package/examples-helpers/mockSuggestionData.ts +17 -0
  240. package/examples-helpers/setupDatasourcesMocks.ts +199 -0
  241. package/examples-helpers/setupModalExampleMocks.ts +32 -0
  242. package/examples-helpers/smartLinkCustomClient.ts +26 -0
  243. package/package.json +118 -0
  244. package/report.api.md +98 -0
  245. package/tmp/api-report-tmp.d.ts +64 -0
@@ -0,0 +1,199 @@
1
+ import fetchMock from 'fetch-mock/cjs/client';
2
+
3
+ import {
4
+ DatasourceDataResponseItem,
5
+ DatasourceResponseSchemaProperty,
6
+ IconType,
7
+ LinkType,
8
+ StatusType,
9
+ StringType,
10
+ TagType,
11
+ UserType,
12
+ } from '@atlaskit/linking-types';
13
+
14
+ import { mockJiraData } from './mockJiraData';
15
+
16
+ const columns: DatasourceResponseSchemaProperty[] = [
17
+ {
18
+ key: 'id',
19
+ title: '',
20
+ type: 'string',
21
+ isIdentity: true,
22
+ },
23
+ {
24
+ key: 'key',
25
+ title: 'Key',
26
+ type: 'link',
27
+ },
28
+ {
29
+ key: 'type',
30
+ type: 'icon',
31
+ title: 'Type',
32
+ },
33
+ {
34
+ key: 'summary',
35
+ title: 'Summary',
36
+ type: 'link',
37
+ },
38
+ {
39
+ key: 'assignee',
40
+ title: 'Assignee',
41
+ type: 'user',
42
+ },
43
+ {
44
+ key: 'priority',
45
+ title: 'P',
46
+ type: 'icon',
47
+ },
48
+ {
49
+ key: 'labels',
50
+ title: 'Labels',
51
+ type: 'tag',
52
+ isList: true,
53
+ },
54
+ {
55
+ key: 'status',
56
+ title: 'Status',
57
+ type: 'status',
58
+ },
59
+ {
60
+ key: 'created',
61
+ title: 'Created',
62
+ type: 'string',
63
+ },
64
+ {
65
+ key: 'due',
66
+ title: 'Due Date',
67
+ type: 'string',
68
+ },
69
+ ...new Array<DatasourceResponseSchemaProperty>(100)
70
+ .fill({
71
+ key: 'due',
72
+ title: 'Due Date',
73
+ type: 'string',
74
+ })
75
+ .map((prop, i) => ({ ...prop, key: prop.key + i, title: prop.title + i })),
76
+ ];
77
+
78
+ const initialVisibleColumnKeys: string[] = [
79
+ // Order of actual columns is in different order is on purpose
80
+ // To demonstrate that this list is a king
81
+ 'type',
82
+ 'key',
83
+ 'summary',
84
+ 'assignee',
85
+ 'priority',
86
+ 'labels',
87
+ 'status',
88
+ 'created',
89
+ ];
90
+
91
+ export const MOCK_DATASOURCE_ID = 'some-datasource-id';
92
+
93
+ interface FetchMockRequestDetails {
94
+ body: string;
95
+ credentials: string;
96
+ headers: object;
97
+ method: string;
98
+ }
99
+
100
+ export const setupDatasourcesMocks = (
101
+ datasourceId: string = MOCK_DATASOURCE_ID,
102
+ ) => {
103
+ fetchMock.post(
104
+ `/gateway/api/object-resolver/datasource/${datasourceId}/fetch/details`,
105
+ async () =>
106
+ new Promise(resolve => {
107
+ setTimeout(() => {
108
+ resolve({
109
+ ari: 'ari:cloud:linking-platform:datasource/12e74246-a3f1-46c1-9fd9-8d952aa9f12f',
110
+ id: '12e74246-a3f1-46c1-9fd9-8d952aa9f12f',
111
+ name: 'JQL Datasource',
112
+ description: 'Fetches Issues using JQL',
113
+ parameters: [
114
+ {
115
+ key: 'cloudId',
116
+ type: 'string',
117
+ description: 'Cloud Id',
118
+ },
119
+ {
120
+ key: 'jql',
121
+ type: 'string',
122
+ description: 'JQL query to retrieve list of issues',
123
+ },
124
+ ],
125
+ schema: {
126
+ properties: columns,
127
+ defaultProperties: initialVisibleColumnKeys,
128
+ },
129
+ });
130
+ }, 300);
131
+ }),
132
+ );
133
+
134
+ let numberOfLoads = 0;
135
+ const getItems = (cloudId: string = '', maxItems = 99) => ({
136
+ data: mockJiraData.data
137
+ .slice(0, maxItems)
138
+ .map((item): DatasourceDataResponseItem => {
139
+ return {
140
+ // Fake identifier attribute that needs to be flat primitive value.
141
+ // Adding number of pages to make all issueNumbers unique
142
+ id: (item.issueNumber + numberOfLoads) as StringType['value'],
143
+ type: {
144
+ source: item.type.source,
145
+ label: item.type.label,
146
+ } as IconType['value'],
147
+ key: {
148
+ url: item.link,
149
+ text: item.issueNumber + numberOfLoads,
150
+ linkType: 'key',
151
+ } as LinkType['value'],
152
+ summary: {
153
+ url: item.link,
154
+ text: `[${cloudId}] ${item.summary}`,
155
+ } as LinkType['value'],
156
+ assignee: {
157
+ displayName: item.assignee?.displayName,
158
+ avatarSource: item.assignee?.source,
159
+ } as UserType['value'],
160
+ priority: {
161
+ source: item.priority.source,
162
+ label: item.priority.label,
163
+ } as IconType['value'],
164
+ status: {
165
+ text: item.status.text,
166
+ status: item.status.status,
167
+ } as StatusType['value'],
168
+ created: item.created as StringType['value'],
169
+ due: item.due as StringType['value'],
170
+ labels: item.labels as TagType['value'][],
171
+ };
172
+ }),
173
+ totalIssues: mockJiraData.totalIssues,
174
+ nextPageCursor:
175
+ numberOfLoads < 4 && maxItems > 1 ? 'c3RhcnRBdD01' : undefined,
176
+ });
177
+
178
+ fetchMock.post(
179
+ `/gateway/api/object-resolver/datasource/${datasourceId}/fetch/data`,
180
+ async (url: string, details: FetchMockRequestDetails) => {
181
+ const requestBody = JSON.parse(details.body);
182
+ const {
183
+ parameters: { cloudId },
184
+ } = requestBody;
185
+ return new Promise(resolve => {
186
+ setTimeout(() => {
187
+ // special case to return only one item to show smart-card rendering path
188
+ if (cloudId === '11111') {
189
+ resolve(getItems(cloudId, 1));
190
+ return;
191
+ }
192
+ resolve(getItems(cloudId));
193
+ }, numberOfLoads++ * 1000);
194
+ });
195
+ },
196
+ );
197
+ };
198
+
199
+ setupDatasourcesMocks();
@@ -0,0 +1,32 @@
1
+ import fetchMock from 'fetch-mock/cjs/client';
2
+
3
+ import { mockAutoCompleteData } from './mockAutocompleteData';
4
+ import { mockSiteData } from './mockJiraAvailableSites';
5
+ import { mockSuggestionData } from './mockSuggestionData';
6
+
7
+ export const setupModalExampleMocks = () => {
8
+ fetchMock.mock('/gateway/api/available-sites', async () =>
9
+ Promise.resolve({ sites: mockSiteData }),
10
+ );
11
+
12
+ // /gateway/api/ex/jira/:cloudId//rest/api/latest/jql/autocompletedata
13
+ fetchMock.mock(
14
+ /\/gateway\/api\/ex\/jira\/.+\/\/rest\/api\/latest\/jql\/autocompletedata/g,
15
+ async () =>
16
+ new Promise(resolve => {
17
+ setTimeout(() => resolve(mockAutoCompleteData), 150);
18
+ }),
19
+ );
20
+
21
+ // /gateway/api/ex/jira/:cloudId//rest/api/latest/jql/autocompletedata/suggestions?fieldName=:fieldName&fieldValue=:fieldValue
22
+ fetchMock.mock(
23
+ /\/gateway\/api\/ex\/jira\/.+\/\/rest\/api\/latest\/jql\/autocompletedata\/suggestions\?.+/g,
24
+ async () =>
25
+ new Promise(resolve => {
26
+ setTimeout(() => resolve(mockSuggestionData), 150);
27
+ }),
28
+ );
29
+ };
30
+
31
+ // Calling it on module level once for any number of imports
32
+ setupModalExampleMocks();
@@ -0,0 +1,26 @@
1
+ import { JsonLd } from 'json-ld-types';
2
+
3
+ import { CardClient } from '@atlaskit/link-provider';
4
+
5
+ import { mockJqlSmartLinkData } from './mockJqlSmartLinkData';
6
+ import { mocks } from './mockSmartLinkData';
7
+
8
+ const jqlUrlRegExp = /.+[jql=].+/;
9
+
10
+ class SmartLinkClient extends CardClient {
11
+ fetchData(url: string): Promise<JsonLd.Response> {
12
+ switch (url) {
13
+ case 'https://product-fabric.atlassian.net/browse/EDM-5941':
14
+ case 'https://product-fabric.atlassian.net/browse/EDM-5591':
15
+ return Promise.resolve(mocks.resolved);
16
+ case 'https://link-that-does-not-resolve.com':
17
+ return Promise.reject(`Can't resolve from ${url}`);
18
+ case jqlUrlRegExp.test(url) ? url : undefined:
19
+ return Promise.resolve(mockJqlSmartLinkData.resolved);
20
+ default:
21
+ return Promise.resolve(mocks.unauthorized);
22
+ }
23
+ }
24
+ }
25
+
26
+ export default SmartLinkClient;
package/package.json ADDED
@@ -0,0 +1,118 @@
1
+ {
2
+ "name": "@atlaskit/link-datasource",
3
+ "version": "0.14.4",
4
+ "description": "UI Components to support linking platform dataset feature",
5
+ "publishConfig": {
6
+ "registry": "https://registry.npmjs.org/"
7
+ },
8
+ "repository": "https://bitbucket.org/atlassian/atlassian-frontend",
9
+ "author": "Atlassian Pty Ltd",
10
+ "main": "dist/cjs/index.js",
11
+ "module": "dist/esm/index.js",
12
+ "module:es2019": "dist/es2019/index.js",
13
+ "types": "dist/types/index.d.ts",
14
+ "typesVersions": {
15
+ ">=4.5 <4.9": {
16
+ "*": [
17
+ "dist/types-ts4.5/*",
18
+ "dist/types-ts4.5/index.d.ts"
19
+ ]
20
+ }
21
+ },
22
+ "sideEffects": false,
23
+ "atlaskit:src": "src/index.ts",
24
+ "atlassian": {
25
+ "team": "Linking Platform",
26
+ "inPublicMirror": false,
27
+ "releaseModel": "continuous"
28
+ },
29
+ "dependencies": {
30
+ "@atlaskit/avatar": "^21.3.0",
31
+ "@atlaskit/button": "^16.7.0",
32
+ "@atlaskit/dropdown-menu": "^11.9.0",
33
+ "@atlaskit/heading": "^1.3.0",
34
+ "@atlaskit/icon": "^21.12.0",
35
+ "@atlaskit/icon-object": "^6.3.0",
36
+ "@atlaskit/image": "^1.1.0",
37
+ "@atlaskit/link-client-extension": "^1.1.0",
38
+ "@atlaskit/linking-common": "^2.10.0",
39
+ "@atlaskit/linking-types": "^1.6.0",
40
+ "@atlaskit/lozenge": "^11.4.0",
41
+ "@atlaskit/modal-dialog": "^12.5.0",
42
+ "@atlaskit/pragmatic-drag-and-drop": "^0.18.0",
43
+ "@atlaskit/pragmatic-drag-and-drop-autoscroll": "^0.5.0",
44
+ "@atlaskit/pragmatic-drag-and-drop-hitbox": "^0.11.0",
45
+ "@atlaskit/pragmatic-drag-and-drop-react-indicator": "^0.14.0",
46
+ "@atlaskit/select": "^16.2.0",
47
+ "@atlaskit/smart-card": "^26.1.0",
48
+ "@atlaskit/spinner": "^15.5.0",
49
+ "@atlaskit/tag": "^11.5.0",
50
+ "@atlaskit/textfield": "5.4.2",
51
+ "@atlaskit/theme": "^12.5.0",
52
+ "@atlaskit/tokens": "^1.4.0",
53
+ "@atlassianlabs/jql-editor": "^1.2.0",
54
+ "@atlassianlabs/jql-editor-autocomplete-rest": "^1.0.1",
55
+ "@babel/runtime": "^7.0.0",
56
+ "@emotion/react": "^11.7.1",
57
+ "@emotion/styled": "^11.0.0",
58
+ "react-error-boundary": "^3.1.3",
59
+ "tiny-invariant": "^1.2.0"
60
+ },
61
+ "peerDependencies": {
62
+ "react": "^16.8.0",
63
+ "react-intl-next": "npm:react-intl@^5.18.1"
64
+ },
65
+ "devDependencies": {
66
+ "@atlaskit/code": "^14.6.0",
67
+ "@atlaskit/docs": "*",
68
+ "@atlaskit/link-provider": "^1.6.0",
69
+ "@atlaskit/link-test-helpers": "^2.3.0",
70
+ "@atlaskit/ssr": "*",
71
+ "@atlaskit/visual-regression": "*",
72
+ "@atlaskit/webdriver-runner": "*",
73
+ "@atlassian/atlassian-frontend-prettier-config-1.0.0": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.0",
74
+ "@testing-library/dom": "^8.17.1",
75
+ "@testing-library/react": "^12.1.5",
76
+ "@testing-library/react-hooks": "^8.0.1",
77
+ "fetch-mock": "^8.0.0",
78
+ "jest-fetch-mock": "^3.0.3",
79
+ "json-ld-types": "3.7.0",
80
+ "react-dom": "^16.8.0",
81
+ "typescript": "~4.9.5",
82
+ "wait-for-expect": "^1.2.0"
83
+ },
84
+ "techstack": {
85
+ "@atlassian/frontend": {
86
+ "import-structure": [
87
+ "atlassian-conventions"
88
+ ],
89
+ "circular-dependencies": [
90
+ "file-and-folder-level"
91
+ ]
92
+ },
93
+ "@repo/internal": {
94
+ "dom-events": "use-bind-event-listener",
95
+ "analytics": [
96
+ "analytics-next"
97
+ ],
98
+ "theming": [
99
+ "react-context",
100
+ "tokens"
101
+ ],
102
+ "ui-components": [
103
+ "lite-mode"
104
+ ],
105
+ "deprecation": [
106
+ "no-deprecated-imports"
107
+ ],
108
+ "styling": [
109
+ "static",
110
+ "emotion"
111
+ ]
112
+ }
113
+ },
114
+ "af:exports": {
115
+ ".": "./src/index.ts"
116
+ },
117
+ "prettier": "@atlassian/atlassian-frontend-prettier-config-1.0.0"
118
+ }
package/report.api.md ADDED
@@ -0,0 +1,98 @@
1
+ <!-- API Report Version: 2.3 -->
2
+
3
+ ## API Report File for "@atlaskit/link-datasource"
4
+
5
+ > Do not edit this file. This report is auto-generated using [API Extractor](https://api-extractor.com/).
6
+ > [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)
7
+
8
+ ### Table of contents
9
+
10
+ - [Main Entry Types](#main-entry-types)
11
+ - [Peer Dependencies](#peer-dependencies)
12
+
13
+ ### Main Entry Types
14
+
15
+ <!--SECTION START: Main Entry Types-->
16
+
17
+ ```ts
18
+ import { DatasourceAdf } from '@atlaskit/linking-common/types';
19
+ import { InlineCardAdf } from '@atlaskit/linking-common/types';
20
+ import { jsx } from '@emotion/react';
21
+
22
+ // @public (undocumented)
23
+ interface JiraIssueDatasourceParameters {
24
+ // (undocumented)
25
+ cloudId: string;
26
+ // (undocumented)
27
+ type: JiraIssueDatasourceParameterType;
28
+ // (undocumented)
29
+ value: string;
30
+ }
31
+
32
+ // @public (undocumented)
33
+ type JiraIssueDatasourceParameterType = 'filter' | 'jql' | 'textQuery';
34
+
35
+ // @public (undocumented)
36
+ export const JiraIssuesConfigModal: (
37
+ props: JiraIssuesConfigModalProps,
38
+ ) => jsx.JSX.Element;
39
+
40
+ // @public (undocumented)
41
+ interface JiraIssuesConfigModalProps {
42
+ // (undocumented)
43
+ datasourceId: string;
44
+ // (undocumented)
45
+ onCancel: () => void;
46
+ // (undocumented)
47
+ onInsert: (adf: DatasourceAdf | InlineCardAdf) => void;
48
+ // (undocumented)
49
+ onUpdateParameters: (
50
+ parameters: Partial<JiraIssueDatasourceParameters>,
51
+ ) => void;
52
+ // (undocumented)
53
+ onVisibleColumnKeysChange: (visibleColumnKeys: string[]) => void;
54
+ // (undocumented)
55
+ parameters?: JiraIssueDatasourceParameters;
56
+ // (undocumented)
57
+ visibleColumnKeys?: string[];
58
+ }
59
+
60
+ // @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
+ }
81
+
82
+ // (No @packageDocumentation comment for this package)
83
+ ```
84
+
85
+ <!--SECTION END: Main Entry Types-->
86
+
87
+ ### Peer Dependencies
88
+
89
+ <!--SECTION START: Peer Dependencies-->
90
+
91
+ ```json
92
+ {
93
+ "react": "^16.8.0",
94
+ "react-intl-next": "npm:react-intl@^5.18.1"
95
+ }
96
+ ```
97
+
98
+ <!--SECTION END: Peer Dependencies-->
@@ -0,0 +1,64 @@
1
+ ## API Report File for "@atlaskit/link-datasource"
2
+
3
+ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
+
5
+ ```ts
6
+
7
+ import { DatasourceAdf } from '@atlaskit/linking-common/types';
8
+ import { InlineCardAdf } from '@atlaskit/linking-common/types';
9
+ import { jsx } from '@emotion/react';
10
+
11
+ // @public (undocumented)
12
+ interface JiraIssueDatasourceParameters {
13
+ // (undocumented)
14
+ cloudId: string;
15
+ // (undocumented)
16
+ type: JiraIssueDatasourceParameterType;
17
+ // (undocumented)
18
+ value: string;
19
+ }
20
+
21
+ // @public (undocumented)
22
+ type JiraIssueDatasourceParameterType = 'filter' | 'jql' | 'textQuery';
23
+
24
+ // @public (undocumented)
25
+ export const JiraIssuesConfigModal: (props: JiraIssuesConfigModalProps) => jsx.JSX.Element;
26
+
27
+ // @public (undocumented)
28
+ interface JiraIssuesConfigModalProps {
29
+ // (undocumented)
30
+ datasourceId: string;
31
+ // (undocumented)
32
+ onCancel: () => void;
33
+ // (undocumented)
34
+ onInsert: (adf: DatasourceAdf | InlineCardAdf) => void;
35
+ // (undocumented)
36
+ onUpdateParameters: (parameters: Partial<JiraIssueDatasourceParameters>) => void;
37
+ // (undocumented)
38
+ onVisibleColumnKeysChange: (visibleColumnKeys: string[]) => void;
39
+ // (undocumented)
40
+ parameters?: JiraIssueDatasourceParameters;
41
+ // (undocumented)
42
+ visibleColumnKeys?: string[];
43
+ }
44
+
45
+ // @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
+ }
61
+
62
+ // (No @packageDocumentation comment for this package)
63
+
64
+ ```