@atlaskit/link-datasource 2.5.9 → 2.5.11

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 (221) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +1 -1
  3. package/dist/cjs/i18n/cs.js +0 -2
  4. package/dist/cjs/i18n/da.js +0 -2
  5. package/dist/cjs/i18n/de.js +0 -2
  6. package/dist/cjs/i18n/en.js +0 -2
  7. package/dist/cjs/i18n/en_GB.js +0 -2
  8. package/dist/cjs/i18n/en_ZZ.js +0 -2
  9. package/dist/cjs/i18n/es.js +0 -2
  10. package/dist/cjs/i18n/fi.js +0 -2
  11. package/dist/cjs/i18n/fr.js +0 -2
  12. package/dist/cjs/i18n/hu.js +0 -2
  13. package/dist/cjs/i18n/it.js +0 -2
  14. package/dist/cjs/i18n/ja.js +0 -2
  15. package/dist/cjs/i18n/ko.js +0 -2
  16. package/dist/cjs/i18n/nb.js +0 -2
  17. package/dist/cjs/i18n/nl.js +0 -2
  18. package/dist/cjs/i18n/pl.js +0 -2
  19. package/dist/cjs/i18n/pt_BR.js +0 -2
  20. package/dist/cjs/i18n/ru.js +0 -2
  21. package/dist/cjs/i18n/sv.js +0 -2
  22. package/dist/cjs/i18n/th.js +0 -2
  23. package/dist/cjs/i18n/tr.js +0 -2
  24. package/dist/cjs/i18n/uk.js +0 -2
  25. package/dist/cjs/i18n/vi.js +0 -2
  26. package/dist/cjs/i18n/zh.js +0 -2
  27. package/dist/cjs/i18n/zh_TW.js +0 -2
  28. package/dist/cjs/ui/common/modal/datasource-context/index.js +77 -0
  29. package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/index.js +47 -0
  30. package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +33 -0
  31. package/dist/cjs/ui/{jira-issues-modal → common/modal}/mode-switcher/index.js +19 -1
  32. package/dist/cjs/ui/common/modal/mode-switcher/useViewModeContext.js +42 -0
  33. package/dist/cjs/ui/common/modal/search-count/index.js +30 -51
  34. package/dist/cjs/ui/confluence-search-modal/modal/ModalOld.js +2 -2
  35. package/dist/cjs/ui/confluence-search-modal/modal/index.js +85 -126
  36. package/dist/cjs/ui/confluence-search-modal/modal/messages.js +0 -5
  37. package/dist/cjs/ui/jira-issues-modal/basic-filters/types.js +1 -1
  38. package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +1 -1
  39. package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +2 -2
  40. package/dist/cjs/ui/jira-issues-modal/modal/ModalOld.js +492 -0
  41. package/dist/cjs/ui/jira-issues-modal/modal/index.js +35 -38
  42. package/dist/cjs/ui/jira-issues-modal/modal/messages.js +0 -5
  43. package/dist/es2019/i18n/cs.js +0 -2
  44. package/dist/es2019/i18n/da.js +0 -2
  45. package/dist/es2019/i18n/de.js +0 -2
  46. package/dist/es2019/i18n/en.js +0 -2
  47. package/dist/es2019/i18n/en_GB.js +0 -2
  48. package/dist/es2019/i18n/en_ZZ.js +0 -2
  49. package/dist/es2019/i18n/es.js +0 -2
  50. package/dist/es2019/i18n/fi.js +0 -2
  51. package/dist/es2019/i18n/fr.js +0 -2
  52. package/dist/es2019/i18n/hu.js +0 -2
  53. package/dist/es2019/i18n/it.js +0 -2
  54. package/dist/es2019/i18n/ja.js +0 -2
  55. package/dist/es2019/i18n/ko.js +0 -2
  56. package/dist/es2019/i18n/nb.js +0 -2
  57. package/dist/es2019/i18n/nl.js +0 -2
  58. package/dist/es2019/i18n/pl.js +0 -2
  59. package/dist/es2019/i18n/pt_BR.js +0 -2
  60. package/dist/es2019/i18n/ru.js +0 -2
  61. package/dist/es2019/i18n/sv.js +0 -2
  62. package/dist/es2019/i18n/th.js +0 -2
  63. package/dist/es2019/i18n/tr.js +0 -2
  64. package/dist/es2019/i18n/uk.js +0 -2
  65. package/dist/es2019/i18n/vi.js +0 -2
  66. package/dist/es2019/i18n/zh.js +0 -2
  67. package/dist/es2019/i18n/zh_TW.js +0 -2
  68. package/dist/es2019/ui/common/modal/datasource-context/index.js +62 -0
  69. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/index.js +41 -0
  70. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +27 -0
  71. package/dist/es2019/ui/{jira-issues-modal → common/modal}/mode-switcher/index.js +19 -0
  72. package/dist/es2019/ui/common/modal/mode-switcher/useViewModeContext.js +26 -0
  73. package/dist/es2019/ui/common/modal/search-count/index.js +28 -50
  74. package/dist/es2019/ui/confluence-search-modal/modal/ModalOld.js +2 -2
  75. package/dist/es2019/ui/confluence-search-modal/modal/index.js +76 -100
  76. package/dist/es2019/ui/confluence-search-modal/modal/messages.js +0 -5
  77. package/dist/es2019/ui/jira-issues-modal/basic-filters/types.js +1 -1
  78. package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +2 -2
  79. package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +3 -3
  80. package/dist/es2019/ui/jira-issues-modal/modal/ModalOld.js +476 -0
  81. package/dist/es2019/ui/jira-issues-modal/modal/index.js +24 -18
  82. package/dist/es2019/ui/jira-issues-modal/modal/messages.js +0 -5
  83. package/dist/esm/i18n/cs.js +0 -2
  84. package/dist/esm/i18n/da.js +0 -2
  85. package/dist/esm/i18n/de.js +0 -2
  86. package/dist/esm/i18n/en.js +0 -2
  87. package/dist/esm/i18n/en_GB.js +0 -2
  88. package/dist/esm/i18n/en_ZZ.js +0 -2
  89. package/dist/esm/i18n/es.js +0 -2
  90. package/dist/esm/i18n/fi.js +0 -2
  91. package/dist/esm/i18n/fr.js +0 -2
  92. package/dist/esm/i18n/hu.js +0 -2
  93. package/dist/esm/i18n/it.js +0 -2
  94. package/dist/esm/i18n/ja.js +0 -2
  95. package/dist/esm/i18n/ko.js +0 -2
  96. package/dist/esm/i18n/nb.js +0 -2
  97. package/dist/esm/i18n/nl.js +0 -2
  98. package/dist/esm/i18n/pl.js +0 -2
  99. package/dist/esm/i18n/pt_BR.js +0 -2
  100. package/dist/esm/i18n/ru.js +0 -2
  101. package/dist/esm/i18n/sv.js +0 -2
  102. package/dist/esm/i18n/th.js +0 -2
  103. package/dist/esm/i18n/tr.js +0 -2
  104. package/dist/esm/i18n/uk.js +0 -2
  105. package/dist/esm/i18n/vi.js +0 -2
  106. package/dist/esm/i18n/zh.js +0 -2
  107. package/dist/esm/i18n/zh_TW.js +0 -2
  108. package/dist/esm/ui/common/modal/datasource-context/index.js +67 -0
  109. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/index.js +40 -0
  110. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +27 -0
  111. package/dist/esm/ui/{jira-issues-modal → common/modal}/mode-switcher/index.js +18 -0
  112. package/dist/esm/ui/common/modal/mode-switcher/useViewModeContext.js +31 -0
  113. package/dist/esm/ui/common/modal/search-count/index.js +27 -48
  114. package/dist/esm/ui/confluence-search-modal/modal/ModalOld.js +2 -2
  115. package/dist/esm/ui/confluence-search-modal/modal/index.js +85 -125
  116. package/dist/esm/ui/confluence-search-modal/modal/messages.js +0 -5
  117. package/dist/esm/ui/jira-issues-modal/basic-filters/types.js +1 -1
  118. package/dist/esm/ui/jira-issues-modal/basic-filters/utils/isQueryTooComplex.js +2 -2
  119. package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +3 -3
  120. package/dist/esm/ui/jira-issues-modal/modal/ModalOld.js +489 -0
  121. package/dist/esm/ui/jira-issues-modal/modal/index.js +37 -38
  122. package/dist/esm/ui/jira-issues-modal/modal/messages.js +0 -5
  123. package/dist/types/i18n/cs.d.ts +0 -2
  124. package/dist/types/i18n/da.d.ts +0 -2
  125. package/dist/types/i18n/de.d.ts +0 -2
  126. package/dist/types/i18n/en.d.ts +0 -2
  127. package/dist/types/i18n/en_GB.d.ts +0 -2
  128. package/dist/types/i18n/en_ZZ.d.ts +0 -2
  129. package/dist/types/i18n/es.d.ts +0 -2
  130. package/dist/types/i18n/fi.d.ts +0 -2
  131. package/dist/types/i18n/fr.d.ts +0 -2
  132. package/dist/types/i18n/hu.d.ts +0 -2
  133. package/dist/types/i18n/it.d.ts +0 -2
  134. package/dist/types/i18n/ja.d.ts +0 -2
  135. package/dist/types/i18n/ko.d.ts +0 -2
  136. package/dist/types/i18n/nb.d.ts +0 -2
  137. package/dist/types/i18n/nl.d.ts +0 -2
  138. package/dist/types/i18n/pl.d.ts +0 -2
  139. package/dist/types/i18n/pt_BR.d.ts +0 -2
  140. package/dist/types/i18n/ru.d.ts +0 -2
  141. package/dist/types/i18n/sv.d.ts +0 -2
  142. package/dist/types/i18n/th.d.ts +0 -2
  143. package/dist/types/i18n/tr.d.ts +0 -2
  144. package/dist/types/i18n/uk.d.ts +0 -2
  145. package/dist/types/i18n/vi.d.ts +0 -2
  146. package/dist/types/i18n/zh.d.ts +0 -2
  147. package/dist/types/i18n/zh_TW.d.ts +0 -2
  148. package/dist/types/ui/common/modal/datasource-context/index.d.ts +24 -0
  149. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/index.d.ts +5 -0
  150. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-resize/index.d.ts +3 -0
  151. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.d.ts +11 -0
  152. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.d.ts +3 -0
  153. package/dist/{types-ts4.5/ui/jira-issues-modal → types/ui/common/modal}/mode-switcher/index.d.ts +1 -0
  154. package/dist/types/ui/common/modal/mode-switcher/useViewModeContext.d.ts +14 -0
  155. package/dist/types/ui/common/modal/search-count/index.d.ts +1 -5
  156. package/dist/types/ui/confluence-search-modal/modal/messages.d.ts +0 -5
  157. package/dist/types/ui/jira-issues-modal/modal/ModalOld.d.ts +3 -0
  158. package/dist/types/ui/jira-issues-modal/modal/messages.d.ts +0 -5
  159. package/dist/types-ts4.5/i18n/cs.d.ts +0 -2
  160. package/dist/types-ts4.5/i18n/da.d.ts +0 -2
  161. package/dist/types-ts4.5/i18n/de.d.ts +0 -2
  162. package/dist/types-ts4.5/i18n/en.d.ts +0 -2
  163. package/dist/types-ts4.5/i18n/en_GB.d.ts +0 -2
  164. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +0 -2
  165. package/dist/types-ts4.5/i18n/es.d.ts +0 -2
  166. package/dist/types-ts4.5/i18n/fi.d.ts +0 -2
  167. package/dist/types-ts4.5/i18n/fr.d.ts +0 -2
  168. package/dist/types-ts4.5/i18n/hu.d.ts +0 -2
  169. package/dist/types-ts4.5/i18n/it.d.ts +0 -2
  170. package/dist/types-ts4.5/i18n/ja.d.ts +0 -2
  171. package/dist/types-ts4.5/i18n/ko.d.ts +0 -2
  172. package/dist/types-ts4.5/i18n/nb.d.ts +0 -2
  173. package/dist/types-ts4.5/i18n/nl.d.ts +0 -2
  174. package/dist/types-ts4.5/i18n/pl.d.ts +0 -2
  175. package/dist/types-ts4.5/i18n/pt_BR.d.ts +0 -2
  176. package/dist/types-ts4.5/i18n/ru.d.ts +0 -2
  177. package/dist/types-ts4.5/i18n/sv.d.ts +0 -2
  178. package/dist/types-ts4.5/i18n/th.d.ts +0 -2
  179. package/dist/types-ts4.5/i18n/tr.d.ts +0 -2
  180. package/dist/types-ts4.5/i18n/uk.d.ts +0 -2
  181. package/dist/types-ts4.5/i18n/vi.d.ts +0 -2
  182. package/dist/types-ts4.5/i18n/zh.d.ts +0 -2
  183. package/dist/types-ts4.5/i18n/zh_TW.d.ts +0 -2
  184. package/dist/types-ts4.5/ui/common/modal/datasource-context/index.d.ts +24 -0
  185. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/index.d.ts +5 -0
  186. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-resize/index.d.ts +3 -0
  187. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.d.ts +11 -0
  188. package/dist/types-ts4.5/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.d.ts +3 -0
  189. package/dist/{types/ui/jira-issues-modal → types-ts4.5/ui/common/modal}/mode-switcher/index.d.ts +1 -0
  190. package/dist/types-ts4.5/ui/common/modal/mode-switcher/useViewModeContext.d.ts +14 -0
  191. package/dist/types-ts4.5/ui/common/modal/search-count/index.d.ts +1 -5
  192. package/dist/types-ts4.5/ui/confluence-search-modal/modal/messages.d.ts +0 -5
  193. package/dist/types-ts4.5/ui/jira-issues-modal/modal/ModalOld.d.ts +3 -0
  194. package/dist/types-ts4.5/ui/jira-issues-modal/modal/messages.d.ts +0 -5
  195. package/examples-helpers/useCommonTableProps.tsx +2 -2
  196. package/package.json +9 -12
  197. package/dist/cjs/ui/common/modal/datasource-context/DatasourceContext.js +0 -18
  198. package/dist/cjs/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -35
  199. package/dist/cjs/ui/datasources-table-in-modal-preview/index.js +0 -26
  200. package/dist/es2019/ui/common/modal/datasource-context/DatasourceContext.js +0 -9
  201. package/dist/es2019/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -27
  202. package/dist/es2019/ui/datasources-table-in-modal-preview/index.js +0 -20
  203. package/dist/esm/ui/common/modal/datasource-context/DatasourceContext.js +0 -9
  204. package/dist/esm/ui/common/modal/datasource-context/DatasourceContextProvider.js +0 -26
  205. package/dist/esm/ui/datasources-table-in-modal-preview/index.js +0 -19
  206. package/dist/types/ui/common/modal/datasource-context/DatasourceContext.d.ts +0 -11
  207. package/dist/types/ui/common/modal/datasource-context/DatasourceContextProvider.d.ts +0 -10
  208. package/dist/types/ui/datasources-table-in-modal-preview/index.d.ts +0 -20
  209. package/dist/types/ui/issue-like-table/use-column-resize/index.d.ts +0 -5
  210. package/dist/types/ui/issue-like-table/use-column-wrapping/index.d.ts +0 -4
  211. package/dist/types-ts4.5/ui/common/modal/datasource-context/DatasourceContext.d.ts +0 -11
  212. package/dist/types-ts4.5/ui/common/modal/datasource-context/DatasourceContextProvider.d.ts +0 -10
  213. package/dist/types-ts4.5/ui/datasources-table-in-modal-preview/index.d.ts +0 -20
  214. package/dist/types-ts4.5/ui/issue-like-table/use-column-resize/index.d.ts +0 -5
  215. package/dist/types-ts4.5/ui/issue-like-table/use-column-wrapping/index.d.ts +0 -4
  216. /package/dist/cjs/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  217. /package/dist/cjs/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
  218. /package/dist/es2019/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  219. /package/dist/es2019/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
  220. /package/dist/esm/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-resize/index.js +0 -0
  221. /package/dist/esm/ui/{issue-like-table → common/modal/datasources-table-in-modal-preview}/use-column-wrapping/index.js +0 -0
@@ -0,0 +1,489 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ /* eslint-disable @atlaskit/platform/no-preconditioning */
7
+ /** @jsx jsx */
8
+ import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
9
+
10
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
11
+ import { jsx } from '@emotion/react';
12
+ import { FormattedMessage } from 'react-intl-next';
13
+ import Button from '@atlaskit/button/standard-button';
14
+ import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
15
+ import { ModalBody, ModalFooter, ModalHeader, ModalTitle, ModalTransition } from '@atlaskit/modal-dialog';
16
+ import { fg } from '@atlaskit/platform-feature-flags';
17
+ import { EVENT_CHANNEL, useDatasourceAnalyticsEvents } from '../../../analytics';
18
+ import { DatasourceAction, DatasourceDisplay } from '../../../analytics/types';
19
+ import { startUfoExperience } from '../../../analytics/ufoExperiences';
20
+ import { useColumnPickerRenderedFailedUfoExperience } from '../../../analytics/ufoExperiences/hooks/useColumnPickerRenderedFailedUfoExperience';
21
+ import { useDataRenderedUfoExperience } from '../../../analytics/ufoExperiences/hooks/useDataRenderedUfoExperience';
22
+ import { mapSearchMethod } from '../../../analytics/utils';
23
+ import { buildDatasourceAdf } from '../../../common/utils/adf';
24
+ import { fetchMessagesForLocale } from '../../../common/utils/locale/fetch-messages-for-locale';
25
+ import { useDatasourceExperienceId } from '../../../contexts/datasource-experience-id';
26
+ import { useUserInteractions } from '../../../contexts/user-interactions';
27
+ import { useDatasourceTableState } from '../../../hooks/useDatasourceTableState';
28
+ import i18nEN from '../../../i18n/en';
29
+ import { useAvailableSites } from '../../../services/useAvailableSites';
30
+ import { AccessRequired } from '../../common/error-state/access-required';
31
+ import { loadingErrorMessages } from '../../common/error-state/messages';
32
+ import { ModalLoadingError } from '../../common/error-state/modal-loading-error';
33
+ import { NoInstancesView } from '../../common/error-state/no-instances';
34
+ import { NoResults } from '../../common/error-state/no-results';
35
+ import { InitialStateView } from '../../common/initial-state-view';
36
+ import { initialStateViewMessages } from '../../common/initial-state-view/messages';
37
+ import { CancelButton } from '../../common/modal/cancel-button';
38
+ import { ContentContainer } from '../../common/modal/content-container';
39
+ import { SmartCardPlaceholder, SmartLink } from '../../common/modal/count-view-smart-link';
40
+ import { DatasourceModal } from '../../common/modal/datasource-modal';
41
+ import { useColumnResize } from '../../common/modal/datasources-table-in-modal-preview/use-column-resize';
42
+ import { useColumnWrapping } from '../../common/modal/datasources-table-in-modal-preview/use-column-wrapping';
43
+ import { DisplayViewDropDown } from '../../common/modal/display-view-dropdown/display-view-drop-down';
44
+ import TableSearchCount from '../../common/modal/search-count';
45
+ import { SiteSelector } from '../../common/modal/site-selector';
46
+ import { EmptyState, IssueLikeDataTableView } from '../../issue-like-table';
47
+ import { getColumnAction } from '../../issue-like-table/utils';
48
+ import { availableBasicFilterTypes } from '../basic-filters/ui';
49
+ import { isQueryTooComplex } from '../basic-filters/utils/isQueryTooComplex';
50
+ import { JiraSearchContainer } from '../jira-search-container';
51
+ import { JiraInitialStateSVG } from './jira-issues-initial-state-svg';
52
+ import { modalMessages } from './messages';
53
+ var getDisplayValue = function getDisplayValue(currentViewMode, itemCount) {
54
+ if (currentViewMode === 'table') {
55
+ return DatasourceDisplay.DATASOURCE_TABLE;
56
+ }
57
+ return itemCount === 1 ? DatasourceDisplay.INLINE : DatasourceDisplay.DATASOURCE_INLINE;
58
+ };
59
+ var jqlSupportDocumentLink = 'https://support.atlassian.com/jira-service-management-cloud/docs/use-advanced-search-with-jira-query-language-jql/';
60
+ export var PlainJiraIssuesConfigModalOld = function PlainJiraIssuesConfigModalOld(props) {
61
+ var datasourceId = props.datasourceId,
62
+ initialColumnCustomSizes = props.columnCustomSizes,
63
+ initialWrappedColumnKeys = props.wrappedColumnKeys,
64
+ onCancel = props.onCancel,
65
+ onInsert = props.onInsert,
66
+ _props$viewMode = props.viewMode,
67
+ viewMode = _props$viewMode === void 0 ? 'table' : _props$viewMode,
68
+ initialParameters = props.parameters,
69
+ urlBeingEdited = props.url,
70
+ initialVisibleColumnKeys = props.visibleColumnKeys;
71
+ var _useState = useState(viewMode),
72
+ _useState2 = _slicedToArray(_useState, 2),
73
+ currentViewMode = _useState2[0],
74
+ setCurrentViewMode = _useState2[1];
75
+ var _useState3 = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.cloudId),
76
+ _useState4 = _slicedToArray(_useState3, 2),
77
+ cloudId = _useState4[0],
78
+ setCloudId = _useState4[1];
79
+ var _useAvailableSites = useAvailableSites('jira', cloudId),
80
+ availableSites = _useAvailableSites.availableSites,
81
+ selectedJiraSite = _useAvailableSites.selectedSite;
82
+ var _useState5 = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.jql),
83
+ _useState6 = _slicedToArray(_useState5, 2),
84
+ jql = _useState6[0],
85
+ setJql = _useState6[1];
86
+ var _useState7 = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.jql),
87
+ _useState8 = _slicedToArray(_useState7, 2),
88
+ searchBarJql = _useState8[0],
89
+ setSearchBarJql = _useState8[1];
90
+ var _useState9 = useState(initialVisibleColumnKeys),
91
+ _useState10 = _slicedToArray(_useState9, 2),
92
+ visibleColumnKeys = _useState10[0],
93
+ setVisibleColumnKeys = _useState10[1];
94
+
95
+ // analytics related parameters
96
+ var searchCount = useRef(0);
97
+ var userInteractions = useUserInteractions();
98
+ var initialSearchMethod = fg('platform.linking-platform.datasource.show-jlol-basic-filters') && !isQueryTooComplex((initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.jql) || '') ? 'basic' : 'jql';
99
+ var _useState11 = useState(initialSearchMethod),
100
+ _useState12 = _slicedToArray(_useState11, 2),
101
+ currentSearchMethod = _useState12[0],
102
+ setCurrentSearchMethod = _useState12[1];
103
+ var searchMethodSearchedWith = useRef(null);
104
+ var visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
105
+ var basicFilterSelectionsSearchedWith = useRef({});
106
+ var isSearchedWithComplexQuery = useRef(false);
107
+ var parameters = useMemo(function () {
108
+ return !!cloudId ? {
109
+ cloudId: cloudId,
110
+ jql: jql || ''
111
+ } : undefined;
112
+ }, [cloudId, jql]);
113
+ var isParametersSet = !!(jql && cloudId);
114
+ var _useColumnResize = useColumnResize(initialColumnCustomSizes),
115
+ columnCustomSizes = _useColumnResize.columnCustomSizes,
116
+ onColumnResize = _useColumnResize.onColumnResize;
117
+ var _useColumnWrapping = useColumnWrapping(initialWrappedColumnKeys),
118
+ wrappedColumnKeys = _useColumnWrapping.wrappedColumnKeys,
119
+ onWrappedColumnChange = _useColumnWrapping.onWrappedColumnChange;
120
+ var _useDatasourceTableSt = useDatasourceTableState({
121
+ datasourceId: datasourceId,
122
+ parameters: isParametersSet ? parameters : undefined,
123
+ fieldKeys: visibleColumnKeys
124
+ }),
125
+ reset = _useDatasourceTableSt.reset,
126
+ status = _useDatasourceTableSt.status,
127
+ onNextPage = _useDatasourceTableSt.onNextPage,
128
+ responseItems = _useDatasourceTableSt.responseItems,
129
+ hasNextPage = _useDatasourceTableSt.hasNextPage,
130
+ columns = _useDatasourceTableSt.columns,
131
+ defaultVisibleColumnKeys = _useDatasourceTableSt.defaultVisibleColumnKeys,
132
+ loadDatasourceDetails = _useDatasourceTableSt.loadDatasourceDetails,
133
+ totalCount = _useDatasourceTableSt.totalCount,
134
+ _useDatasourceTableSt2 = _useDatasourceTableSt.extensionKey,
135
+ extensionKey = _useDatasourceTableSt2 === void 0 ? null : _useDatasourceTableSt2,
136
+ destinationObjectTypes = _useDatasourceTableSt.destinationObjectTypes;
137
+ var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
138
+ fireEvent = _useDatasourceAnalyti.fireEvent;
139
+ var experienceId = useDatasourceExperienceId();
140
+ var analyticsPayload = useMemo(function () {
141
+ return {
142
+ extensionKey: extensionKey,
143
+ destinationObjectTypes: destinationObjectTypes
144
+ };
145
+ }, [destinationObjectTypes, extensionKey]);
146
+ var resolvedWithNoResults = status === 'resolved' && !responseItems.length;
147
+ var jqlUrl = selectedJiraSite && jql && "".concat(selectedJiraSite.url, "/issues/?jql=").concat(encodeURI(jql));
148
+ var isInsertDisabled = !isParametersSet || status === 'rejected' || status === 'unauthorized' || status === 'loading';
149
+ var shouldShowIssueCount = !!totalCount && totalCount !== 1 && currentViewMode === 'table';
150
+ var isDataReady = (visibleColumnKeys || []).length > 0;
151
+ var hasNoJiraSites = availableSites && availableSites.length === 0;
152
+ useEffect(function () {
153
+ if (availableSites) {
154
+ fireEvent('ui.modal.ready.datasource', {
155
+ instancesCount: availableSites.length,
156
+ schemasCount: null
157
+ });
158
+ }
159
+ }, [fireEvent, availableSites]);
160
+ useEffect(function () {
161
+ var shouldStartUfoExperience = status === 'loading';
162
+ if (shouldStartUfoExperience) {
163
+ startUfoExperience({
164
+ name: 'datasource-rendered'
165
+ }, experienceId);
166
+ }
167
+ }, [experienceId, status]);
168
+ useDataRenderedUfoExperience({
169
+ status: status,
170
+ experienceId: experienceId,
171
+ itemCount: responseItems.length,
172
+ canBeLink: currentViewMode === 'inline',
173
+ extensionKey: extensionKey
174
+ });
175
+ useEffect(function () {
176
+ var newVisibleColumnKeys = !initialVisibleColumnKeys || (initialVisibleColumnKeys || []).length === 0 ? defaultVisibleColumnKeys : initialVisibleColumnKeys;
177
+ visibleColumnCount.current = newVisibleColumnKeys.length;
178
+ setVisibleColumnKeys(newVisibleColumnKeys);
179
+ }, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
180
+ useEffect(function () {
181
+ if (selectedJiraSite && (!cloudId || cloudId !== selectedJiraSite.cloudId)) {
182
+ setCloudId(selectedJiraSite.cloudId);
183
+ }
184
+ }, [cloudId, selectedJiraSite]);
185
+ var fireSingleItemViewedEvent = useCallback(function () {
186
+ fireEvent('ui.link.viewed.singleItem', _objectSpread(_objectSpread({}, analyticsPayload), {}, {
187
+ searchMethod: mapSearchMethod(searchMethodSearchedWith.current)
188
+ }));
189
+ }, [analyticsPayload, fireEvent]);
190
+ var fireCountViewedEvent = useCallback(function () {
191
+ fireEvent('ui.link.viewed.count', _objectSpread(_objectSpread({}, analyticsPayload), {}, {
192
+ searchMethod: mapSearchMethod(searchMethodSearchedWith.current),
193
+ totalItemCount: totalCount || 0
194
+ }));
195
+ }, [analyticsPayload, fireEvent, totalCount]);
196
+ var fireTableViewedEvent = useCallback(function () {
197
+ if (isDataReady) {
198
+ fireEvent('ui.table.viewed.datasourceConfigModal', _objectSpread(_objectSpread({}, analyticsPayload), {}, {
199
+ totalItemCount: totalCount || 0,
200
+ searchMethod: mapSearchMethod(searchMethodSearchedWith.current),
201
+ displayedColumnCount: visibleColumnCount.current
202
+ }));
203
+ }
204
+ }, [analyticsPayload, fireEvent, totalCount, isDataReady]);
205
+ var fireIssueViewAnalytics = useCallback(function () {
206
+ if (!totalCount) {
207
+ return;
208
+ }
209
+ if (totalCount > 1) {
210
+ fireTableViewedEvent();
211
+ } else if (totalCount === 1) {
212
+ fireSingleItemViewedEvent();
213
+ }
214
+ }, [fireSingleItemViewedEvent, fireTableViewedEvent, totalCount]);
215
+ useEffect(function () {
216
+ var isResolved = status === 'resolved';
217
+ var isIssueViewMode = currentViewMode === 'table';
218
+ var isCountViewMode = currentViewMode === 'inline';
219
+ if (!isResolved) {
220
+ return;
221
+ }
222
+ if (isIssueViewMode) {
223
+ fireIssueViewAnalytics();
224
+ } else if (isCountViewMode) {
225
+ fireCountViewedEvent();
226
+ }
227
+ }, [currentViewMode, status, fireIssueViewAnalytics, fireCountViewedEvent]);
228
+ useColumnPickerRenderedFailedUfoExperience(status, experienceId);
229
+ var onSearch = useCallback(function (newParameters, _ref) {
230
+ var searchMethod = _ref.searchMethod,
231
+ basicFilterSelections = _ref.basicFilterSelections,
232
+ isQueryComplex = _ref.isQueryComplex;
233
+ searchCount.current++;
234
+ searchMethodSearchedWith.current = searchMethod;
235
+ basicFilterSelectionsSearchedWith.current = basicFilterSelections;
236
+ isSearchedWithComplexQuery.current = isQueryComplex;
237
+ if (jql !== newParameters.jql) {
238
+ userInteractions.add(DatasourceAction.QUERY_UPDATED);
239
+ }
240
+ setJql(newParameters.jql);
241
+ reset({
242
+ shouldForceRequest: true
243
+ });
244
+ }, [jql, reset, userInteractions]);
245
+ var onSiteSelection = useCallback(function (site) {
246
+ userInteractions.add(DatasourceAction.INSTANCE_UPDATED);
247
+ setJql('');
248
+ setCloudId(site.cloudId);
249
+ reset({
250
+ shouldForceRequest: true
251
+ });
252
+ }, [reset, userInteractions]);
253
+ var retrieveUrlForSmartCardRender = useCallback(function () {
254
+ var _data$key;
255
+ var _responseItems = _slicedToArray(responseItems, 1),
256
+ data = _responseItems[0];
257
+ // agreement with BE that we will use `key` for rendering smartlink
258
+ return data === null || data === void 0 || (_data$key = data.key) === null || _data$key === void 0 || (_data$key = _data$key.data) === null || _data$key === void 0 ? void 0 : _data$key.url;
259
+ }, [responseItems]);
260
+ var onInsertPressed = useCallback(function (e, analyticsEvent) {
261
+ var _insertButtonClickedE;
262
+ if (!isParametersSet || !jql || !selectedJiraSite) {
263
+ return;
264
+ }
265
+
266
+ // During insertion, we want the JQL of the datasource to be whatever is in the search bar,
267
+ // even if the user didn't previously click search
268
+ var upToDateJql = searchBarJql !== null && searchBarJql !== void 0 ? searchBarJql : jql;
269
+ var upToDateJqlUrl = selectedJiraSite && jql && "".concat(selectedJiraSite.url, "/issues/?jql=").concat(encodeURIComponent(upToDateJql));
270
+ var filterSelectionCount = availableBasicFilterTypes.reduce(function (current, filter) {
271
+ var _basicFilterSelection;
272
+ return _objectSpread(_objectSpread({}, current), {}, _defineProperty({}, "".concat(filter, "BasicFilterSelectionCount"), ((_basicFilterSelection = basicFilterSelectionsSearchedWith.current[filter]) === null || _basicFilterSelection === void 0 ? void 0 : _basicFilterSelection.length) || 0));
273
+ }, {});
274
+ var insertButtonClickedEvent = analyticsEvent.update({
275
+ actionSubjectId: 'insert',
276
+ attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
277
+ totalItemCount: totalCount || 0,
278
+ displayedColumnCount: visibleColumnCount.current,
279
+ display: getDisplayValue(currentViewMode, totalCount || 0),
280
+ searchCount: searchCount.current,
281
+ searchMethod: mapSearchMethod(searchMethodSearchedWith.current),
282
+ actions: userInteractions.get(),
283
+ isQueryComplex: isSearchedWithComplexQuery.current
284
+ }, searchMethodSearchedWith.current === 'basic' ? _objectSpread({}, filterSelectionCount) : {}),
285
+ eventType: 'ui'
286
+ });
287
+
288
+ // additional event for tracking in confluence against JIM
289
+ var macroInsertedEvent = analyticsEvent.clone();
290
+ macroInsertedEvent === null || macroInsertedEvent === void 0 || macroInsertedEvent.update({
291
+ eventType: 'track',
292
+ action: 'inserted',
293
+ actionSubject: 'macro',
294
+ actionSubjectId: 'jlol',
295
+ attributes: _objectSpread(_objectSpread({}, analyticsPayload), {}, {
296
+ totalItemCount: totalCount || 0,
297
+ displayedColumnCount: visibleColumnCount.current,
298
+ display: getDisplayValue(currentViewMode, totalCount || 0),
299
+ searchCount: searchCount.current,
300
+ searchMethod: mapSearchMethod(searchMethodSearchedWith.current),
301
+ actions: userInteractions.get()
302
+ })
303
+ });
304
+ var consumerEvent = (_insertButtonClickedE = insertButtonClickedEvent.clone()) !== null && _insertButtonClickedE !== void 0 ? _insertButtonClickedE : undefined;
305
+ insertButtonClickedEvent.fire(EVENT_CHANNEL);
306
+ var firstIssueUrl = retrieveUrlForSmartCardRender();
307
+ if (currentViewMode === 'inline') {
308
+ macroInsertedEvent === null || macroInsertedEvent === void 0 || macroInsertedEvent.fire(EVENT_CHANNEL);
309
+ var url = responseItems.length === 1 ? firstIssueUrl : upToDateJqlUrl;
310
+ onInsert({
311
+ type: 'inlineCard',
312
+ attrs: {
313
+ url: url
314
+ }
315
+ }, consumerEvent);
316
+ } else {
317
+ onInsert(buildDatasourceAdf({
318
+ id: datasourceId,
319
+ parameters: {
320
+ cloudId: cloudId,
321
+ jql: upToDateJql // TODO support non JQL type
322
+ },
323
+ views: [{
324
+ type: 'table',
325
+ properties: {
326
+ columns: (visibleColumnKeys || []).map(function (key) {
327
+ var width = columnCustomSizes === null || columnCustomSizes === void 0 ? void 0 : columnCustomSizes[key];
328
+ var isWrapped = wrappedColumnKeys === null || wrappedColumnKeys === void 0 ? void 0 : wrappedColumnKeys.includes(key);
329
+ return _objectSpread(_objectSpread({
330
+ key: key
331
+ }, width ? {
332
+ width: width
333
+ } : {}), isWrapped ? {
334
+ isWrapped: isWrapped
335
+ } : {});
336
+ })
337
+ }
338
+ }]
339
+ }, upToDateJqlUrl), consumerEvent);
340
+ }
341
+ }, [isParametersSet, jql, selectedJiraSite, searchBarJql, analyticsPayload, totalCount, currentViewMode, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, cloudId, visibleColumnKeys, columnCustomSizes, wrappedColumnKeys, userInteractions]);
342
+ var handleViewModeChange = function handleViewModeChange(selectedMode) {
343
+ userInteractions.add(DatasourceAction.DISPLAY_VIEW_CHANGED);
344
+ setCurrentViewMode(selectedMode);
345
+ };
346
+ var handleOnNextPage = useCallback(function () {
347
+ var onNextPageProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
348
+ userInteractions.add(DatasourceAction.NEXT_PAGE_SCROLLED);
349
+ onNextPage(onNextPageProps);
350
+ }, [onNextPage, userInteractions]);
351
+ var handleVisibleColumnKeysChange = useCallback(function () {
352
+ var newVisibleColumnKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
353
+ var columnAction = getColumnAction(visibleColumnKeys || [], newVisibleColumnKeys);
354
+ userInteractions.add(columnAction);
355
+ visibleColumnCount.current = newVisibleColumnKeys.length;
356
+ setVisibleColumnKeys(newVisibleColumnKeys);
357
+ }, [visibleColumnKeys, userInteractions]);
358
+ var issueLikeDataTableView = useMemo(function () {
359
+ return jsx(ContentContainer, {
360
+ withTableBorder: true
361
+ }, jsx(IssueLikeDataTableView, {
362
+ testId: "jira-datasource-table",
363
+ status: status,
364
+ columns: columns,
365
+ items: responseItems,
366
+ hasNextPage: hasNextPage,
367
+ visibleColumnKeys: visibleColumnKeys || defaultVisibleColumnKeys,
368
+ onNextPage: handleOnNextPage,
369
+ onLoadDatasourceDetails: loadDatasourceDetails,
370
+ onVisibleColumnKeysChange: handleVisibleColumnKeysChange,
371
+ extensionKey: extensionKey,
372
+ columnCustomSizes: columnCustomSizes,
373
+ onColumnResize: onColumnResize,
374
+ wrappedColumnKeys: wrappedColumnKeys,
375
+ onWrappedColumnChange: fg('platform.linking-platform.datasource-word_wrap') ? onWrappedColumnChange : undefined
376
+ }));
377
+ }, [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, handleOnNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange, extensionKey, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange]);
378
+ var renderCountModeContent = useCallback(function () {
379
+ var selectedJiraSiteUrl = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
380
+ if (status === 'unauthorized') {
381
+ return jsx(AccessRequired, {
382
+ url: selectedJiraSiteUrl || urlBeingEdited
383
+ });
384
+ } else if (status === 'empty' || !jql || !selectedJiraSiteUrl) {
385
+ return jsx(SmartCardPlaceholder, {
386
+ placeholderText: modalMessages.issuesCountSmartCardPlaceholderText
387
+ });
388
+ } else {
389
+ var url;
390
+ if (responseItems.length === 1 && retrieveUrlForSmartCardRender()) {
391
+ url = retrieveUrlForSmartCardRender();
392
+ } else {
393
+ url = "".concat(selectedJiraSiteUrl, "/issues/?jql=").concat(encodeURIComponent(jql));
394
+ }
395
+ return jsx(SmartLink, {
396
+ url: url
397
+ });
398
+ }
399
+ }, [jql, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited, responseItems, retrieveUrlForSmartCardRender]);
400
+ var renderIssuesModeContent = useCallback(function () {
401
+ var selectedJiraSiteUrl = selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url;
402
+ if (status === 'rejected' && jqlUrl) {
403
+ return jsx(ModalLoadingError, {
404
+ errorMessage: jqlUrl ? jsx(FormattedMessage, _extends({}, modalMessages.checkConnectionWithSource, {
405
+ values: {
406
+ a: function a(urlText) {
407
+ return jsx("a", {
408
+ href: jqlUrl
409
+ }, urlText);
410
+ }
411
+ }
412
+ })) : undefined
413
+ });
414
+ } else if (status === 'unauthorized') {
415
+ return jsx(AccessRequired, {
416
+ url: selectedJiraSiteUrl || urlBeingEdited
417
+ });
418
+ } else if (resolvedWithNoResults || status === 'forbidden') {
419
+ return jsx(NoResults, null);
420
+ } else if (status === 'empty' || !columns.length) {
421
+ // persist the empty state when making the initial /data request which contains the columns
422
+ return jsx(ContentContainer, {
423
+ withTableBorder: !!jql
424
+ }, !!jql ? jsx(EmptyState, {
425
+ testId: "jira-datasource-modal--empty-state"
426
+ }) : jsx(InitialStateView, {
427
+ showBeta: !fg('platform.linking-platform.datasource.show-jlol-basic-filters'),
428
+ icon: jsx(JiraInitialStateSVG, null),
429
+ title: modalMessages.searchJiraTitle,
430
+ description: currentSearchMethod === 'jql' ? initialStateViewMessages.searchDescriptionForJQLSearch : initialStateViewMessages.searchDescriptionForBasicSearch,
431
+ learnMoreLink: currentSearchMethod === 'jql' ? {
432
+ href: jqlSupportDocumentLink,
433
+ text: initialStateViewMessages.learnMoreLink
434
+ } : undefined
435
+ }));
436
+ }
437
+ return issueLikeDataTableView;
438
+ }, [columns.length, currentSearchMethod, issueLikeDataTableView, jql, jqlUrl, resolvedWithNoResults, selectedJiraSite === null || selectedJiraSite === void 0 ? void 0 : selectedJiraSite.url, status, urlBeingEdited]);
439
+ var siteSelectorLabel = availableSites && availableSites.length > 1 ? modalMessages.insertIssuesTitleManySites : modalMessages.insertIssuesTitle;
440
+ var getCancelButtonAnalyticsPayload = useCallback(function () {
441
+ return _objectSpread(_objectSpread({}, analyticsPayload), {}, {
442
+ searchCount: searchCount.current,
443
+ actions: userInteractions.get()
444
+ });
445
+ }, [analyticsPayload, userInteractions]);
446
+ return jsx(IntlMessagesProvider, {
447
+ defaultMessages: i18nEN,
448
+ loaderFn: fetchMessagesForLocale
449
+ }, jsx(ModalTransition, null, jsx(DatasourceModal, {
450
+ testId: "jira-datasource-modal",
451
+ onClose: onCancel
452
+ }, jsx(ModalHeader, null, jsx(ModalTitle, null, jsx(SiteSelector, {
453
+ availableSites: availableSites,
454
+ onSiteSelection: onSiteSelection,
455
+ selectedSite: selectedJiraSite,
456
+ testId: "jira-datasource-modal--site-selector",
457
+ label: siteSelectorLabel
458
+ })), !hasNoJiraSites && jsx(DisplayViewDropDown, {
459
+ onViewModeChange: handleViewModeChange,
460
+ viewMode: currentViewMode
461
+ })), jsx(ModalBody, null, !hasNoJiraSites ? jsx(Fragment, null, jsx(JiraSearchContainer, {
462
+ setSearchBarJql: setSearchBarJql,
463
+ searchBarJql: searchBarJql,
464
+ isSearching: status === 'loading',
465
+ parameters: parameters,
466
+ onSearch: onSearch,
467
+ initialSearchMethod: initialSearchMethod,
468
+ onSearchMethodChange: setCurrentSearchMethod,
469
+ site: selectedJiraSite
470
+ }), currentViewMode === 'inline' ? renderCountModeContent() : renderIssuesModeContent()) : jsx(NoInstancesView, {
471
+ title: loadingErrorMessages.noAccessToJiraSitesTitle,
472
+ description: loadingErrorMessages.noAccessToJiraSitesDescription,
473
+ testId: "no-jira-instances-content"
474
+ })), jsx(ModalFooter, null, shouldShowIssueCount && jsx(TableSearchCount, {
475
+ searchCount: totalCount,
476
+ url: jqlUrl,
477
+ prefixTextType: "issue",
478
+ testId: "jira-datasource-modal-total-issues-count"
479
+ }), jsx(CancelButton, {
480
+ onCancel: onCancel,
481
+ getAnalyticsPayload: getCancelButtonAnalyticsPayload,
482
+ testId: "jira-datasource-modal--cancel-button"
483
+ }), !hasNoJiraSites && jsx(Button, {
484
+ appearance: "primary",
485
+ onClick: onInsertPressed,
486
+ isDisabled: isInsertDisabled,
487
+ testId: "jira-datasource-modal--insert-button"
488
+ }, jsx(FormattedMessage, modalMessages.insertIssuesButtonText))))));
489
+ };
@@ -3,6 +3,8 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ /* eslint-disable @atlaskit/platform/no-preconditioning */
7
+ /* eslint-disable @atlaskit/platform/ensure-feature-flag-prefix */
6
8
  /** @jsx jsx */
7
9
  import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
8
10
 
@@ -13,7 +15,7 @@ import { withAnalyticsContext } from '@atlaskit/analytics-next';
13
15
  import Button from '@atlaskit/button/standard-button';
14
16
  import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
15
17
  import { ModalBody, ModalFooter, ModalHeader, ModalTitle, ModalTransition } from '@atlaskit/modal-dialog';
16
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
18
+ import { fg } from '@atlaskit/platform-feature-flags';
17
19
  import { EVENT_CHANNEL, useDatasourceAnalyticsEvents } from '../../../analytics';
18
20
  import { componentMetadata } from '../../../analytics/constants';
19
21
  import { DatasourceAction, DatasourceDisplay } from '../../../analytics/types';
@@ -39,18 +41,21 @@ import { CancelButton } from '../../common/modal/cancel-button';
39
41
  import { ContentContainer } from '../../common/modal/content-container';
40
42
  import { SmartCardPlaceholder, SmartLink } from '../../common/modal/count-view-smart-link';
41
43
  import { DatasourceModal } from '../../common/modal/datasource-modal';
42
- import { DisplayViewDropDown } from '../../common/modal/display-view-dropdown/display-view-drop-down';
44
+ import { useColumnResize } from '../../common/modal/datasources-table-in-modal-preview/use-column-resize';
45
+ import { useColumnWrapping } from '../../common/modal/datasources-table-in-modal-preview/use-column-wrapping';
46
+ import { DatasourceViewModeDropDown } from '../../common/modal/mode-switcher';
47
+ import { DatasourceViewModeProvider, useViewModeContext } from '../../common/modal/mode-switcher/useViewModeContext';
43
48
  import TableSearchCount from '../../common/modal/search-count';
44
49
  import { SiteSelector } from '../../common/modal/site-selector';
45
50
  import { EmptyState, IssueLikeDataTableView } from '../../issue-like-table';
46
- import { useColumnResize } from '../../issue-like-table/use-column-resize';
47
- import { useColumnWrapping } from '../../issue-like-table/use-column-wrapping';
48
51
  import { getColumnAction } from '../../issue-like-table/utils';
49
52
  import { availableBasicFilterTypes } from '../basic-filters/ui';
50
53
  import { isQueryTooComplex } from '../basic-filters/utils/isQueryTooComplex';
51
54
  import { JiraSearchContainer } from '../jira-search-container';
52
55
  import { JiraInitialStateSVG } from './jira-issues-initial-state-svg';
53
56
  import { modalMessages } from './messages';
57
+ import { PlainJiraIssuesConfigModalOld } from './ModalOld';
58
+ var DEFAULT_VIEW_MODE = 'table';
54
59
  var getDisplayValue = function getDisplayValue(currentViewMode, itemCount) {
55
60
  if (currentViewMode === 'table') {
56
61
  return DatasourceDisplay.DATASOURCE_TABLE;
@@ -64,43 +69,41 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
64
69
  initialWrappedColumnKeys = props.wrappedColumnKeys,
65
70
  onCancel = props.onCancel,
66
71
  onInsert = props.onInsert,
67
- _props$viewMode = props.viewMode,
68
- viewMode = _props$viewMode === void 0 ? 'table' : _props$viewMode,
69
72
  initialParameters = props.parameters,
70
73
  urlBeingEdited = props.url,
71
74
  initialVisibleColumnKeys = props.visibleColumnKeys;
72
- var _useState = useState(viewMode),
75
+ var _useViewModeContext = useViewModeContext(),
76
+ currentViewMode = _useViewModeContext.currentViewMode;
77
+ var _useState = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.cloudId),
73
78
  _useState2 = _slicedToArray(_useState, 2),
74
- currentViewMode = _useState2[0],
75
- setCurrentViewMode = _useState2[1];
76
- var _useState3 = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.cloudId),
77
- _useState4 = _slicedToArray(_useState3, 2),
78
- cloudId = _useState4[0],
79
- setCloudId = _useState4[1];
79
+ cloudId = _useState2[0],
80
+ setCloudId = _useState2[1];
80
81
  var _useAvailableSites = useAvailableSites('jira', cloudId),
81
82
  availableSites = _useAvailableSites.availableSites,
82
83
  selectedJiraSite = _useAvailableSites.selectedSite;
84
+ var _useState3 = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.jql),
85
+ _useState4 = _slicedToArray(_useState3, 2),
86
+ jql = _useState4[0],
87
+ setJql = _useState4[1];
83
88
  var _useState5 = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.jql),
84
89
  _useState6 = _slicedToArray(_useState5, 2),
85
- jql = _useState6[0],
86
- setJql = _useState6[1];
87
- var _useState7 = useState(initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.jql),
90
+ searchBarJql = _useState6[0],
91
+ setSearchBarJql = _useState6[1];
92
+ var _useState7 = useState(initialVisibleColumnKeys),
88
93
  _useState8 = _slicedToArray(_useState7, 2),
89
- searchBarJql = _useState8[0],
90
- setSearchBarJql = _useState8[1];
91
- var _useState9 = useState(initialVisibleColumnKeys),
92
- _useState10 = _slicedToArray(_useState9, 2),
93
- visibleColumnKeys = _useState10[0],
94
- setVisibleColumnKeys = _useState10[1];
94
+ visibleColumnKeys = _useState8[0],
95
+ setVisibleColumnKeys = _useState8[1];
95
96
 
96
97
  // analytics related parameters
97
98
  var searchCount = useRef(0);
98
99
  var userInteractions = useUserInteractions();
99
- var initialSearchMethod = getBooleanFF('platform.linking-platform.datasource.show-jlol-basic-filters') && !isQueryTooComplex((initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.jql) || '') ? 'basic' : 'jql';
100
- var _useState11 = useState(initialSearchMethod),
101
- _useState12 = _slicedToArray(_useState11, 2),
102
- currentSearchMethod = _useState12[0],
103
- setCurrentSearchMethod = _useState12[1];
100
+ var initialSearchMethod =
101
+ // eslint-disable-next-line @atlaskit/platform/no-preconditioning
102
+ fg('platform.linking-platform.datasource.show-jlol-basic-filters') && !isQueryTooComplex((initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.jql) || '') ? 'basic' : 'jql';
103
+ var _useState9 = useState(initialSearchMethod),
104
+ _useState10 = _slicedToArray(_useState9, 2),
105
+ currentSearchMethod = _useState10[0],
106
+ setCurrentSearchMethod = _useState10[1];
104
107
  var searchMethodSearchedWith = useRef(null);
105
108
  var visibleColumnCount = useRef((visibleColumnKeys === null || visibleColumnKeys === void 0 ? void 0 : visibleColumnKeys.length) || 0);
106
109
  var basicFilterSelectionsSearchedWith = useRef({});
@@ -340,10 +343,6 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
340
343
  }, upToDateJqlUrl), consumerEvent);
341
344
  }
342
345
  }, [isParametersSet, jql, selectedJiraSite, searchBarJql, analyticsPayload, totalCount, currentViewMode, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, cloudId, visibleColumnKeys, columnCustomSizes, wrappedColumnKeys, userInteractions]);
343
- var handleViewModeChange = function handleViewModeChange(selectedMode) {
344
- userInteractions.add(DatasourceAction.DISPLAY_VIEW_CHANGED);
345
- setCurrentViewMode(selectedMode);
346
- };
347
346
  var handleOnNextPage = useCallback(function () {
348
347
  var onNextPageProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
349
348
  userInteractions.add(DatasourceAction.NEXT_PAGE_SCROLLED);
@@ -373,7 +372,7 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
373
372
  columnCustomSizes: columnCustomSizes,
374
373
  onColumnResize: onColumnResize,
375
374
  wrappedColumnKeys: wrappedColumnKeys,
376
- onWrappedColumnChange: getBooleanFF('platform.linking-platform.datasource-word_wrap') ? onWrappedColumnChange : undefined
375
+ onWrappedColumnChange: fg('platform.linking-platform.datasource-word_wrap') ? onWrappedColumnChange : undefined
377
376
  }));
378
377
  }, [status, columns, responseItems, hasNextPage, visibleColumnKeys, defaultVisibleColumnKeys, handleOnNextPage, loadDatasourceDetails, handleVisibleColumnKeysChange, extensionKey, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange]);
379
378
  var renderCountModeContent = useCallback(function () {
@@ -425,7 +424,7 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
425
424
  }, !!jql ? jsx(EmptyState, {
426
425
  testId: "jira-datasource-modal--empty-state"
427
426
  }) : jsx(InitialStateView, {
428
- showBeta: !getBooleanFF('platform.linking-platform.datasource.show-jlol-basic-filters'),
427
+ showBeta: !fg('platform.linking-platform.datasource.show-jlol-basic-filters'),
429
428
  icon: jsx(JiraInitialStateSVG, null),
430
429
  title: modalMessages.searchJiraTitle,
431
430
  description: currentSearchMethod === 'jql' ? initialStateViewMessages.searchDescriptionForJQLSearch : initialStateViewMessages.searchDescriptionForBasicSearch,
@@ -456,10 +455,7 @@ var PlainJiraIssuesConfigModal = function PlainJiraIssuesConfigModal(props) {
456
455
  selectedSite: selectedJiraSite,
457
456
  testId: "jira-datasource-modal--site-selector",
458
457
  label: siteSelectorLabel
459
- })), !hasNoJiraSites && jsx(DisplayViewDropDown, {
460
- onViewModeChange: handleViewModeChange,
461
- viewMode: currentViewMode
462
- })), jsx(ModalBody, null, !hasNoJiraSites ? jsx(Fragment, null, jsx(JiraSearchContainer, {
458
+ })), !hasNoJiraSites && jsx(DatasourceViewModeDropDown, null)), jsx(ModalBody, null, !hasNoJiraSites ? jsx(Fragment, null, jsx(JiraSearchContainer, {
463
459
  setSearchBarJql: setSearchBarJql,
464
460
  searchBarJql: searchBarJql,
465
461
  isSearching: status === 'loading',
@@ -498,5 +494,8 @@ var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
498
494
  attributes: _objectSpread({}, analyticsContextAttributes)
499
495
  });
500
496
  export var JiraIssuesConfigModal = withAnalyticsContext(contextData)(function (props) {
501
- return jsx(DatasourceExperienceIdProvider, null, jsx(UserInteractionsProvider, null, jsx(PlainJiraIssuesConfigModal, props)));
497
+ var _props$viewMode;
498
+ return jsx(DatasourceExperienceIdProvider, null, jsx(UserInteractionsProvider, null, fg('platform-datasources-use-refactored-config-modal') ? jsx(DatasourceViewModeProvider, {
499
+ viewMode: (_props$viewMode = props.viewMode) !== null && _props$viewMode !== void 0 ? _props$viewMode : DEFAULT_VIEW_MODE
500
+ }, jsx(PlainJiraIssuesConfigModal, props)) : jsx(PlainJiraIssuesConfigModalOld, props)));
502
501
  });
@@ -20,11 +20,6 @@ export var modalMessages = defineMessages({
20
20
  description: 'Placeholder text that will be placed next to a count of jira issues',
21
21
  defaultMessage: '### Issues'
22
22
  },
23
- issueText: {
24
- id: 'linkDataSource.jira-issues.configmodal.issue',
25
- description: 'Text that appears after issue count number.',
26
- defaultMessage: '{totalCount, plural, one {issue} other {issues}}'
27
- },
28
23
  searchJiraTitleDuplicate: {
29
24
  id: 'linkDataSource.jira-issues.searchJiraTitle',
30
25
  description: 'The initial modal search state title that gives the user some idea about how to get information',