@atlaskit/link-datasource 5.5.0 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/i18n/cs.js +152 -3
  3. package/dist/cjs/i18n/da.js +152 -3
  4. package/dist/cjs/i18n/de.js +152 -3
  5. package/dist/cjs/i18n/en.js +165 -3
  6. package/dist/cjs/i18n/en_GB.js +154 -3
  7. package/dist/cjs/i18n/en_ZZ.js +165 -3
  8. package/dist/cjs/i18n/es.js +152 -3
  9. package/dist/cjs/i18n/fi.js +152 -3
  10. package/dist/cjs/i18n/fr.js +152 -3
  11. package/dist/cjs/i18n/hr.js +129 -3
  12. package/dist/cjs/i18n/hu.js +152 -3
  13. package/dist/cjs/i18n/it.js +152 -3
  14. package/dist/cjs/i18n/ja.js +152 -3
  15. package/dist/cjs/i18n/ko.js +152 -3
  16. package/dist/cjs/i18n/nb.js +152 -3
  17. package/dist/cjs/i18n/nl.js +152 -3
  18. package/dist/cjs/i18n/pl.js +152 -3
  19. package/dist/cjs/i18n/pt_BR.js +152 -3
  20. package/dist/cjs/i18n/ru.js +152 -3
  21. package/dist/cjs/i18n/sl.js +129 -3
  22. package/dist/cjs/i18n/sr_RS.js +129 -3
  23. package/dist/cjs/i18n/sr_YR.js +129 -3
  24. package/dist/cjs/i18n/sv.js +152 -3
  25. package/dist/cjs/i18n/th.js +152 -3
  26. package/dist/cjs/i18n/tr.js +152 -3
  27. package/dist/cjs/i18n/uk.js +152 -3
  28. package/dist/cjs/i18n/vi.js +152 -3
  29. package/dist/cjs/i18n/zh.js +152 -3
  30. package/dist/cjs/i18n/zh_TW.js +152 -3
  31. package/dist/cjs/ui/datasource-table-view/datasource-column-sort.js +51 -0
  32. package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +52 -5
  33. package/dist/cjs/ui/issue-like-table/index.compiled.css +5 -0
  34. package/dist/cjs/ui/issue-like-table/index.js +120 -62
  35. package/dist/cjs/ui/issue-like-table/messages.js +10 -0
  36. package/dist/es2019/i18n/cs.js +152 -3
  37. package/dist/es2019/i18n/da.js +152 -3
  38. package/dist/es2019/i18n/de.js +152 -3
  39. package/dist/es2019/i18n/en.js +165 -3
  40. package/dist/es2019/i18n/en_GB.js +154 -3
  41. package/dist/es2019/i18n/en_ZZ.js +165 -3
  42. package/dist/es2019/i18n/es.js +152 -3
  43. package/dist/es2019/i18n/fi.js +152 -3
  44. package/dist/es2019/i18n/fr.js +152 -3
  45. package/dist/es2019/i18n/hr.js +129 -3
  46. package/dist/es2019/i18n/hu.js +152 -3
  47. package/dist/es2019/i18n/it.js +152 -3
  48. package/dist/es2019/i18n/ja.js +152 -3
  49. package/dist/es2019/i18n/ko.js +152 -3
  50. package/dist/es2019/i18n/nb.js +152 -3
  51. package/dist/es2019/i18n/nl.js +152 -3
  52. package/dist/es2019/i18n/pl.js +152 -3
  53. package/dist/es2019/i18n/pt_BR.js +152 -3
  54. package/dist/es2019/i18n/ru.js +152 -3
  55. package/dist/es2019/i18n/sl.js +129 -3
  56. package/dist/es2019/i18n/sr_RS.js +129 -3
  57. package/dist/es2019/i18n/sr_YR.js +129 -3
  58. package/dist/es2019/i18n/sv.js +152 -3
  59. package/dist/es2019/i18n/th.js +152 -3
  60. package/dist/es2019/i18n/tr.js +152 -3
  61. package/dist/es2019/i18n/uk.js +152 -3
  62. package/dist/es2019/i18n/vi.js +152 -3
  63. package/dist/es2019/i18n/zh.js +152 -3
  64. package/dist/es2019/i18n/zh_TW.js +152 -3
  65. package/dist/es2019/ui/datasource-table-view/datasource-column-sort.js +43 -0
  66. package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +46 -6
  67. package/dist/es2019/ui/issue-like-table/index.compiled.css +5 -0
  68. package/dist/es2019/ui/issue-like-table/index.js +58 -4
  69. package/dist/es2019/ui/issue-like-table/messages.js +10 -0
  70. package/dist/esm/i18n/cs.js +152 -3
  71. package/dist/esm/i18n/da.js +152 -3
  72. package/dist/esm/i18n/de.js +152 -3
  73. package/dist/esm/i18n/en.js +165 -3
  74. package/dist/esm/i18n/en_GB.js +154 -3
  75. package/dist/esm/i18n/en_ZZ.js +165 -3
  76. package/dist/esm/i18n/es.js +152 -3
  77. package/dist/esm/i18n/fi.js +152 -3
  78. package/dist/esm/i18n/fr.js +152 -3
  79. package/dist/esm/i18n/hr.js +129 -3
  80. package/dist/esm/i18n/hu.js +152 -3
  81. package/dist/esm/i18n/it.js +152 -3
  82. package/dist/esm/i18n/ja.js +152 -3
  83. package/dist/esm/i18n/ko.js +152 -3
  84. package/dist/esm/i18n/nb.js +152 -3
  85. package/dist/esm/i18n/nl.js +152 -3
  86. package/dist/esm/i18n/pl.js +152 -3
  87. package/dist/esm/i18n/pt_BR.js +152 -3
  88. package/dist/esm/i18n/ru.js +152 -3
  89. package/dist/esm/i18n/sl.js +129 -3
  90. package/dist/esm/i18n/sr_RS.js +129 -3
  91. package/dist/esm/i18n/sr_YR.js +129 -3
  92. package/dist/esm/i18n/sv.js +152 -3
  93. package/dist/esm/i18n/th.js +152 -3
  94. package/dist/esm/i18n/tr.js +152 -3
  95. package/dist/esm/i18n/uk.js +152 -3
  96. package/dist/esm/i18n/vi.js +152 -3
  97. package/dist/esm/i18n/zh.js +152 -3
  98. package/dist/esm/i18n/zh_TW.js +152 -3
  99. package/dist/esm/ui/datasource-table-view/datasource-column-sort.js +44 -0
  100. package/dist/esm/ui/datasource-table-view/datasourceTableView.js +53 -6
  101. package/dist/esm/ui/issue-like-table/index.compiled.css +5 -0
  102. package/dist/esm/ui/issue-like-table/index.js +120 -62
  103. package/dist/esm/ui/issue-like-table/messages.js +10 -0
  104. package/dist/types/i18n/cs.d.ts +152 -2
  105. package/dist/types/i18n/da.d.ts +152 -2
  106. package/dist/types/i18n/de.d.ts +152 -2
  107. package/dist/types/i18n/en.d.ts +165 -2
  108. package/dist/types/i18n/en_GB.d.ts +154 -2
  109. package/dist/types/i18n/en_ZZ.d.ts +165 -2
  110. package/dist/types/i18n/es.d.ts +152 -2
  111. package/dist/types/i18n/fi.d.ts +152 -2
  112. package/dist/types/i18n/fr.d.ts +152 -2
  113. package/dist/types/i18n/hr.d.ts +129 -2
  114. package/dist/types/i18n/hu.d.ts +152 -2
  115. package/dist/types/i18n/it.d.ts +152 -2
  116. package/dist/types/i18n/ja.d.ts +152 -2
  117. package/dist/types/i18n/ko.d.ts +152 -2
  118. package/dist/types/i18n/nb.d.ts +152 -2
  119. package/dist/types/i18n/nl.d.ts +152 -2
  120. package/dist/types/i18n/pl.d.ts +152 -2
  121. package/dist/types/i18n/pt_BR.d.ts +152 -2
  122. package/dist/types/i18n/ru.d.ts +152 -2
  123. package/dist/types/i18n/sl.d.ts +129 -2
  124. package/dist/types/i18n/sr_RS.d.ts +129 -2
  125. package/dist/types/i18n/sr_YR.d.ts +129 -2
  126. package/dist/types/i18n/sv.d.ts +152 -2
  127. package/dist/types/i18n/th.d.ts +152 -2
  128. package/dist/types/i18n/tr.d.ts +152 -2
  129. package/dist/types/i18n/uk.d.ts +152 -2
  130. package/dist/types/i18n/vi.d.ts +152 -2
  131. package/dist/types/i18n/zh.d.ts +152 -2
  132. package/dist/types/i18n/zh_TW.d.ts +152 -2
  133. package/dist/types/ui/datasource-table-view/datasource-column-sort.d.ts +12 -0
  134. package/dist/types/ui/datasource-table-view/datasourceTableView.d.ts +2 -2
  135. package/dist/types/ui/datasource-table-view/types.d.ts +1 -1
  136. package/dist/types/ui/issue-like-table/index.d.ts +1 -1
  137. package/dist/types/ui/issue-like-table/messages.d.ts +33 -23
  138. package/dist/types/ui/issue-like-table/types.d.ts +10 -0
  139. package/dist/types-ts4.5/i18n/cs.d.ts +152 -2
  140. package/dist/types-ts4.5/i18n/da.d.ts +152 -2
  141. package/dist/types-ts4.5/i18n/de.d.ts +152 -2
  142. package/dist/types-ts4.5/i18n/en.d.ts +165 -2
  143. package/dist/types-ts4.5/i18n/en_GB.d.ts +154 -2
  144. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +165 -2
  145. package/dist/types-ts4.5/i18n/es.d.ts +152 -2
  146. package/dist/types-ts4.5/i18n/fi.d.ts +152 -2
  147. package/dist/types-ts4.5/i18n/fr.d.ts +152 -2
  148. package/dist/types-ts4.5/i18n/hr.d.ts +129 -2
  149. package/dist/types-ts4.5/i18n/hu.d.ts +152 -2
  150. package/dist/types-ts4.5/i18n/it.d.ts +152 -2
  151. package/dist/types-ts4.5/i18n/ja.d.ts +152 -2
  152. package/dist/types-ts4.5/i18n/ko.d.ts +152 -2
  153. package/dist/types-ts4.5/i18n/nb.d.ts +152 -2
  154. package/dist/types-ts4.5/i18n/nl.d.ts +152 -2
  155. package/dist/types-ts4.5/i18n/pl.d.ts +152 -2
  156. package/dist/types-ts4.5/i18n/pt_BR.d.ts +152 -2
  157. package/dist/types-ts4.5/i18n/ru.d.ts +152 -2
  158. package/dist/types-ts4.5/i18n/sl.d.ts +129 -2
  159. package/dist/types-ts4.5/i18n/sr_RS.d.ts +129 -2
  160. package/dist/types-ts4.5/i18n/sr_YR.d.ts +129 -2
  161. package/dist/types-ts4.5/i18n/sv.d.ts +152 -2
  162. package/dist/types-ts4.5/i18n/th.d.ts +152 -2
  163. package/dist/types-ts4.5/i18n/tr.d.ts +152 -2
  164. package/dist/types-ts4.5/i18n/uk.d.ts +152 -2
  165. package/dist/types-ts4.5/i18n/vi.d.ts +152 -2
  166. package/dist/types-ts4.5/i18n/zh.d.ts +152 -2
  167. package/dist/types-ts4.5/i18n/zh_TW.d.ts +152 -2
  168. package/dist/types-ts4.5/ui/datasource-table-view/datasource-column-sort.d.ts +12 -0
  169. package/dist/types-ts4.5/ui/datasource-table-view/datasourceTableView.d.ts +2 -2
  170. package/dist/types-ts4.5/ui/datasource-table-view/types.d.ts +1 -1
  171. package/dist/types-ts4.5/ui/issue-like-table/index.d.ts +1 -1
  172. package/dist/types-ts4.5/ui/issue-like-table/messages.d.ts +33 -23
  173. package/dist/types-ts4.5/ui/issue-like-table/types.d.ts +10 -0
  174. package/package.json +12 -9
@@ -1,8 +1,11 @@
1
1
  /* datasourceTableView.tsx generated by @compiled/babel-plugin v0.39.1 */
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
4
  import "./datasourceTableView.compiled.css";
3
5
  import * as React from 'react';
4
6
  import { ax, ix } from "@compiled/react/runtime";
5
- import { useCallback, useEffect, useRef } from 'react';
7
+ import { useCallback, useEffect, useRef, useState } from 'react';
8
+ import isEqual from 'lodash/isEqual';
6
9
  import { withAnalyticsContext } from '@atlaskit/analytics-next';
7
10
  import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
8
11
  import { fg } from '@atlaskit/platform-feature-flags';
@@ -26,6 +29,7 @@ import { ProviderAuthRequired } from '../common/error-state/provider-auth-requir
26
29
  import { IssueLikeDataTableView } from '../issue-like-table';
27
30
  import EmptyState from '../issue-like-table/empty-state';
28
31
  import { TableFooter } from '../table-footer';
32
+ import { getDatasourceColumnSortGetter } from './datasource-column-sort';
29
33
  var containerStyles = null;
30
34
  var DefaultScrollableContainerHeight = 590;
31
35
  var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAnalytics(_ref) {
@@ -40,9 +44,35 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
40
44
  onWrappedColumnChange = _ref.onWrappedColumnChange,
41
45
  _ref$scrollableContai = _ref.scrollableContainerHeight,
42
46
  scrollableContainerHeight = _ref$scrollableContai === void 0 ? DefaultScrollableContainerHeight : _ref$scrollableContai;
47
+ // Local copy lets us apply in-session sort mutations without mutating external parameters.
48
+ var _useState = useState(parameters),
49
+ _useState2 = _slicedToArray(_useState, 2),
50
+ sessionParameters = _useState2[0],
51
+ setSessionParameters = _useState2[1];
52
+ // Tracks the external parameters that the current session/sort state was derived from.
53
+ var sessionBaseParametersRef = useRef(parameters);
54
+ var _useState3 = useState(),
55
+ _useState4 = _slicedToArray(_useState3, 2),
56
+ sortState = _useState4[0],
57
+ setSortState = _useState4[1];
58
+ var columnSortGetter = getDatasourceColumnSortGetter(datasourceId);
59
+ // Sorting is only owned by this view when parent callbacks are absent (read-only rendering mode).
60
+ var isReadOnlyDatasourceTable = !onVisibleColumnKeysChange && !onColumnResize && !onWrappedColumnChange;
61
+ // Keep sort UI hidden unless datasource + ownership + feature gate all allow it.
62
+ var shouldEnableColumnSort = !!columnSortGetter && isReadOnlyDatasourceTable && fg('platform_lp_jira_sllv_renderer_column_sorting');
63
+ useDeepEffect(function () {
64
+ // External parameter updates should always reset local sort/session state back to source-of-truth.
65
+ sessionBaseParametersRef.current = parameters;
66
+ setSessionParameters(parameters);
67
+ setSortState(undefined);
68
+ }, [parameters]);
69
+ var isSessionBasedOnCurrentParameters = isEqual(sessionBaseParametersRef.current, parameters);
70
+ // Use session parameters only when they are known to be based on the current external parameters.
71
+ // This avoids a one-render stale read during the deep-effect update cycle above.
72
+ var activeParameters = isSessionBasedOnCurrentParameters && fg('platform_lp_jira_sllv_renderer_column_sorting') ? sessionParameters : parameters;
43
73
  var _useDatasourceTableSt = useDatasourceTableState({
44
74
  datasourceId: datasourceId,
45
- parameters: parameters,
75
+ parameters: activeParameters,
46
76
  fieldKeys: visibleColumnKeys
47
77
  }),
48
78
  reset = _useDatasourceTableSt.reset,
@@ -98,7 +128,7 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
98
128
  reset();
99
129
  }
100
130
  isInitialRender.current = false;
101
- }, [reset, parameters]);
131
+ }, [reset, activeParameters]);
102
132
  useEffect(function () {
103
133
  if (onVisibleColumnKeysChange && (visibleColumnKeys || []).length === 0 && defaultVisibleColumnKeys.length > 0) {
104
134
  onVisibleColumnKeysChange(defaultVisibleColumnKeys);
@@ -144,6 +174,19 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
144
174
  });
145
175
  forcedReset();
146
176
  }, [destinationObjectTypes, extensionKey, fireEvent, forcedReset]);
177
+ var onColumnSort = useCallback(function (columnKey) {
178
+ // Build next params/sort atomically so UI state and query state stay in sync.
179
+ var result = columnSortGetter === null || columnSortGetter === void 0 ? void 0 : columnSortGetter({
180
+ parameters: sessionParameters,
181
+ columnKey: columnKey,
182
+ currentSort: sortState
183
+ });
184
+ if (!result) {
185
+ return;
186
+ }
187
+ setSortState(result.sort);
188
+ setSessionParameters(result.parameters);
189
+ }, [columnSortGetter, sessionParameters, sortState]);
147
190
  var handleErrorRefresh = useCallback(function () {
148
191
  reset({
149
192
  shouldForceRequest: true
@@ -175,7 +218,7 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
175
218
  loaderFn: fetchMessagesForLocale
176
219
  }, /*#__PURE__*/React.createElement("div", {
177
220
  className: ax(["_2rko1kw7", "datasource-table"])
178
- }, hasColumns ? /*#__PURE__*/React.createElement(IssueLikeDataTableView, {
221
+ }, hasColumns ? /*#__PURE__*/React.createElement(IssueLikeDataTableView, _extends({
179
222
  testId: 'datasource-table-view',
180
223
  hasNextPage: hasNextPage,
181
224
  items: responseItems,
@@ -187,12 +230,16 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
187
230
  visibleColumnKeys: hasStaleVisibleColumnKeys ? defaultVisibleColumnKeys : visibleColumnKeys || defaultVisibleColumnKeys,
188
231
  onVisibleColumnKeysChange: onVisibleColumnKeysChange,
189
232
  columnCustomSizes: columnCustomSizes,
190
- onColumnResize: onColumnResize,
233
+ onColumnResize: onColumnResize
234
+ }, shouldEnableColumnSort && fg('platform_lp_jira_sllv_renderer_column_sorting') ? {
235
+ onColumnSort: onColumnSort,
236
+ sortState: sortState
237
+ } : {}, {
191
238
  wrappedColumnKeys: wrappedColumnKeys,
192
239
  onWrappedColumnChange: onWrappedColumnChange,
193
240
  scrollableContainerHeight: isInPDFRender ? undefined : fg('lp_enable_datasource-table-view_height_override') ? scrollableContainerHeight : DefaultScrollableContainerHeight,
194
241
  extensionKey: extensionKey
195
- }) : /*#__PURE__*/React.createElement(EmptyState, {
242
+ })) : /*#__PURE__*/React.createElement(EmptyState, {
196
243
  testId: "datasource-table-view-skeleton",
197
244
  isCompact: true
198
245
  }), /*#__PURE__*/React.createElement(TableFooter, {
@@ -14,6 +14,7 @@
14
14
  .pm-table-wrapper>table thead ._1rmlidpf:last-of-type{border:0}
15
15
  .pm-table-wrapper>table thead ._1u3bidpf{border:0}
16
16
  .pm-table-wrapper>table thead ._ex0g13hi:last-of-type{background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,var(--ds-elevation-surface-current,#fff) 10%)}
17
+ ._1wtnze3t button{padding-block:var(--ds-space-0,0)}
17
18
  .ProseMirror .pm-table-wrapper>table tbody ._15lria51{border-bottom:var(--ds-border-width,1px) solid var(--ds-border,#0b120e24)}
18
19
  .ProseMirror .pm-table-wrapper>table tbody ._1ho1idpf:last-of-type{border-right:0}
19
20
  .ProseMirror .pm-table-wrapper>table tbody ._1xqpia51{border-right:var(--ds-border-width,1px) solid var(--ds-border,#0b120e24)}
@@ -66,6 +67,7 @@ thead.has-column-picker ._10i2idpf:nth-last-of-type(2){border-right:0}.ProseMirr
66
67
  .ProseMirror .pm-table-wrapper>table thead ._zjk41if8:last-of-type{position:sticky}
67
68
  ._11681tcg [data-testid=datasource-header-content--container]{line-height:24px}
68
69
  ._11j11b66 [data-testid=datasource-header-content--container]{padding-right:var(--ds-space-050,4px)}
70
+ ._11lvze3t button{padding-left:var(--ds-space-0,0)}
69
71
  ._124in7od [data-testid=inline-card-icon-and-title]{white-space:unset}
70
72
  ._12pn15vq [data-testid=datasource-header-content--container]{overflow-x:hidden}
71
73
  ._12ruusvi:last-of-type{box-sizing:border-box}
@@ -108,7 +110,9 @@ thead.has-column-picker ._10i2idpf:nth-last-of-type(2){border-right:0}.ProseMirr
108
110
  ._btyzidpf{border-spacing:0}
109
111
  ._ca0qv77o{padding-top:var(--ds-space-025,2px)}
110
112
  ._ca0qze3t{padding-top:var(--ds-space-0,0)}
113
+ ._ficf1e5h button{text-align:left}
111
114
  ._iscccj1k [data-testid=datasource-header-content--container]{display:-webkit-box}
115
+ ._jq8g1wug button{height:auto}
112
116
  ._k48p1wq8{font-weight:var(--ds-font-weight-medium,500)}
113
117
  ._kqsw1if8{position:sticky}
114
118
  ._kqswh2mm{position:relative}
@@ -130,6 +134,7 @@ thead.has-column-picker ._10i2idpf:nth-last-of-type(2){border-right:0}.ProseMirr
130
134
  ._vchh1ntv{box-sizing:content-box}
131
135
  ._vchhusvi{box-sizing:border-box}
132
136
  ._vwz41tcg{line-height:24px}
137
+ ._yhjm1b66 button{padding-right:var(--ds-space-050,4px)}
133
138
  ._yq5hus1c{border-collapse:separate}
134
139
  .pm-table-wrapper>table tbody ._18a21kw7{vertical-align:inherit}
135
140
  .pm-table-wrapper>table tbody ._1h12ze3t{padding-right:var(--ds-space-0,0)}
@@ -8,7 +8,8 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
8
8
  var _excluded = ["as", "style"],
9
9
  _excluded2 = ["as", "style"],
10
10
  _excluded3 = ["as", "style"],
11
- _excluded4 = ["as", "style"];
11
+ _excluded4 = ["as", "style"],
12
+ _excluded5 = ["as", "style"];
12
13
  import "./index.compiled.css";
13
14
  import { forwardRef } from 'react';
14
15
  import * as React from 'react';
@@ -19,9 +20,14 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
19
20
  /* eslint-disable @atlaskit/design-system/use-tokens-typography */
20
21
 
21
22
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
23
+ import { useIntl } from 'react-intl';
22
24
  import invariant from 'tiny-invariant';
25
+ import Button from '@atlaskit/button/new';
23
26
  import { FlagsProvider } from '@atlaskit/flag';
27
+ import SortAscendingIcon from '@atlaskit/icon/core/sort-ascending';
28
+ import SortDescendingIcon from '@atlaskit/icon/core/sort-descending';
24
29
  import { Skeleton } from '@atlaskit/linking-common';
30
+ import { fg } from '@atlaskit/platform-feature-flags';
25
31
  import { extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';
26
32
  import { reorderWithEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/util/reorder-with-edge';
27
33
  import { autoScroller } from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll';
@@ -33,9 +39,11 @@ import { startUfoExperience, succeedUfoExperience } from '../../analytics/ufoExp
33
39
  import { useDatasourceExperienceId } from '../../contexts/datasource-experience-id';
34
40
  import { useIsInPDFRender } from '../../hooks/useIsInPDFRender';
35
41
  import { ColumnPicker } from './column-picker';
42
+ import { GlyphPlaceholder } from './custom-icons';
36
43
  import { DragColumnPreview } from './drag-column-preview';
37
44
  import { DraggableTableHeading } from './draggable-table-heading';
38
45
  import TableEmptyState from './empty-state';
46
+ import { issueLikeTableMessages } from './messages';
39
47
  import { renderType } from './render-type';
40
48
  import { TableCellContent } from './table-cell-content';
41
49
  import { useIsOnScreen } from './useIsOnScreen';
@@ -127,6 +135,22 @@ var tableStyles = null;
127
135
  var noDefaultBorderStyles = null;
128
136
  var headerStyles = null;
129
137
  var headingHoverEffectStyles = null;
138
+
139
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- Matches DraggableTableHeading button normalization.
140
+ var SortableHeaderParent = forwardRef(function (_ref5, __cmplr) {
141
+ var _ref5$as = _ref5.as,
142
+ C = _ref5$as === void 0 ? "div" : _ref5$as,
143
+ __cmpls = _ref5.style,
144
+ __cmplp = _objectWithoutProperties(_ref5, _excluded5);
145
+ return /*#__PURE__*/React.createElement(C, _extends({}, __cmplp, {
146
+ style: __cmpls,
147
+ ref: __cmplr,
148
+ className: ax(["_1e0c1txw _4cvr1h6o _o5721q9c _1wtnze3t _ficf1e5h _jq8g1wug _11lvze3t _yhjm1b66", __cmplp.className])
149
+ }));
150
+ });
151
+ if (process.env.NODE_ENV !== 'production') {
152
+ SortableHeaderParent.displayName = 'SortableHeaderParent';
153
+ }
130
154
  function extractIndex(data) {
131
155
  var index = data.index;
132
156
  invariant(typeof index === 'number');
@@ -173,26 +197,30 @@ function getDefaultColumnWidth(key, type) {
173
197
  return DEFAULT_WIDTH;
174
198
  }
175
199
  }
176
- export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
200
+ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref6) {
177
201
  var _containerRef$current;
178
- var testId = _ref5.testId,
179
- onNextPage = _ref5.onNextPage,
180
- onLoadDatasourceDetails = _ref5.onLoadDatasourceDetails,
181
- items = _ref5.items,
182
- itemIds = _ref5.itemIds,
183
- columns = _ref5.columns,
184
- _ref5$renderItem = _ref5.renderItem,
185
- renderItem = _ref5$renderItem === void 0 ? renderType : _ref5$renderItem,
186
- visibleColumnKeys = _ref5.visibleColumnKeys,
187
- onVisibleColumnKeysChange = _ref5.onVisibleColumnKeysChange,
188
- columnCustomSizes = _ref5.columnCustomSizes,
189
- onColumnResize = _ref5.onColumnResize,
190
- wrappedColumnKeys = _ref5.wrappedColumnKeys,
191
- onWrappedColumnChange = _ref5.onWrappedColumnChange,
192
- status = _ref5.status,
193
- hasNextPage = _ref5.hasNextPage,
194
- scrollableContainerHeight = _ref5.scrollableContainerHeight,
195
- extensionKey = _ref5.extensionKey;
202
+ var testId = _ref6.testId,
203
+ onNextPage = _ref6.onNextPage,
204
+ onLoadDatasourceDetails = _ref6.onLoadDatasourceDetails,
205
+ items = _ref6.items,
206
+ itemIds = _ref6.itemIds,
207
+ columns = _ref6.columns,
208
+ _ref6$renderItem = _ref6.renderItem,
209
+ renderItem = _ref6$renderItem === void 0 ? renderType : _ref6$renderItem,
210
+ visibleColumnKeys = _ref6.visibleColumnKeys,
211
+ onVisibleColumnKeysChange = _ref6.onVisibleColumnKeysChange,
212
+ columnCustomSizes = _ref6.columnCustomSizes,
213
+ onColumnResize = _ref6.onColumnResize,
214
+ onColumnSort = _ref6.onColumnSort,
215
+ wrappedColumnKeys = _ref6.wrappedColumnKeys,
216
+ onWrappedColumnChange = _ref6.onWrappedColumnChange,
217
+ sortState = _ref6.sortState,
218
+ status = _ref6.status,
219
+ hasNextPage = _ref6.hasNextPage,
220
+ scrollableContainerHeight = _ref6.scrollableContainerHeight,
221
+ extensionKey = _ref6.extensionKey;
222
+ var _useIntl = useIntl(),
223
+ formatMessage = _useIntl.formatMessage;
196
224
  var tableId = useMemo(function () {
197
225
  return Symbol('unique-id');
198
226
  }, []);
@@ -229,8 +257,8 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
229
257
  }, [experienceId, status]);
230
258
  var visibleSortedColumns = useMemo(function () {
231
259
  return visibleColumnKeys.map(function (visibleKey) {
232
- return orderedColumns.find(function (_ref6) {
233
- var key = _ref6.key;
260
+ return orderedColumns.find(function (_ref7) {
261
+ var key = _ref7.key;
234
262
  return visibleKey === key;
235
263
  });
236
264
  }).filter(Boolean);
@@ -240,9 +268,9 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
240
268
  // If data comes first, then columns and then visibleColumnKeys it blows up,
241
269
  // or some other combination.
242
270
  var columnsWidthsSum = useMemo(function () {
243
- return visibleSortedColumns.map(function (_ref7) {
244
- var key = _ref7.key,
245
- type = _ref7.type;
271
+ return visibleSortedColumns.map(function (_ref8) {
272
+ var key = _ref8.key,
273
+ type = _ref8.type;
246
274
  return (columnCustomSizes === null || columnCustomSizes === void 0 ? void 0 : columnCustomSizes[key]) || getDefaultColumnWidth(key, type);
247
275
  }).reduce(function (sum, width) {
248
276
  return width + sum;
@@ -258,10 +286,10 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
258
286
  }
259
287
  }, [columnCustomSizes, columnsWidthsSum, shouldUseWidth, tableContainerWidth]);
260
288
  var headerColumns = useMemo(function () {
261
- return visibleSortedColumns.map(function (_ref8, index) {
262
- var key = _ref8.key,
263
- title = _ref8.title,
264
- type = _ref8.type;
289
+ return visibleSortedColumns.map(function (_ref9, index) {
290
+ var key = _ref9.key,
291
+ title = _ref9.title,
292
+ type = _ref9.type;
265
293
  return {
266
294
  key: key,
267
295
  content: title,
@@ -316,9 +344,9 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
316
344
  return;
317
345
  }
318
346
  return combine(monitorForElements({
319
- onDragStart: function onDragStart(_ref9) {
320
- var location = _ref9.location,
321
- source = _ref9.source;
347
+ onDragStart: function onDragStart(_ref0) {
348
+ var location = _ref0.location,
349
+ source = _ref0.source;
322
350
  initialAutoScrollerClientY.current = location.current.input.clientY;
323
351
  if (source.data.type === 'table-header') {
324
352
  var _containerRef$current2;
@@ -334,9 +362,9 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
334
362
  });
335
363
  }
336
364
  },
337
- onDrag: function onDrag(_ref0) {
338
- var location = _ref0.location,
339
- source = _ref0.source;
365
+ onDrag: function onDrag(_ref1) {
366
+ var location = _ref1.location,
367
+ source = _ref1.source;
340
368
  if (source.data.type === 'table-header') {
341
369
  var _containerRef$current3;
342
370
  autoScroller.updateInput({
@@ -346,9 +374,9 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
346
374
  });
347
375
  }
348
376
  },
349
- onDrop: function onDrop(_ref1) {
350
- var source = _ref1.source,
351
- location = _ref1.location;
377
+ onDrop: function onDrop(_ref10) {
378
+ var source = _ref10.source,
379
+ location = _ref10.location;
352
380
  autoScroller.stop();
353
381
  if (location.current.dropTargets.length === 0) {
354
382
  return;
@@ -383,10 +411,10 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
383
411
  return itemIds.map(function (id, rowIndex) {
384
412
  return {
385
413
  key: id,
386
- cells: visibleSortedColumns.map(function (_ref10, cellIndex) {
387
- var key = _ref10.key,
388
- type = _ref10.type,
389
- title = _ref10.title;
414
+ cells: visibleSortedColumns.map(function (_ref11, cellIndex) {
415
+ var key = _ref11.key,
416
+ type = _ref11.type,
417
+ title = _ref11.title;
390
418
  return {
391
419
  key: key,
392
420
  columnKey: key,
@@ -466,6 +494,9 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
466
494
  }, _callee, null, [[2, 4]]);
467
495
  })), [experienceId, extensionKey, hasFullSchema, onLoadDatasourceDetails]);
468
496
  var isEditable = onVisibleColumnKeysChange && hasData;
497
+ // Sorting is enabled only when the table owns the header interaction (read-only mode).
498
+ // Editable tables reserve header interactions for drag/resize/wrap controls.
499
+ var shouldEnableColumnSort = !!onColumnSort && !onVisibleColumnKeysChange && !onColumnResize && !onWrappedColumnChange;
469
500
  var orderedColumnsAreUpToDate = orderedColumns.length === columns.length;
470
501
  var shouldDisplayColumnsInPicker = hasFullSchema && orderedColumnsAreUpToDate;
471
502
  var view = /*#__PURE__*/React.createElement("div", {
@@ -495,10 +526,10 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
495
526
  className: ax(["_n7zlidpf", "_bfhkchd4 _kqsw1if8 _154iidpf _1pbyzo7u", !!onVisibleColumnKeysChange ? 'has-column-picker' : ''])
496
527
  }, /*#__PURE__*/React.createElement("tr", {
497
528
  ref: tableHeaderRowRef
498
- }, headerColumns.map(function (_ref12, cellIndex) {
499
- var key = _ref12.key,
500
- content = _ref12.content,
501
- width = _ref12.width;
529
+ }, headerColumns.map(function (_ref13, cellIndex) {
530
+ var key = _ref13.key,
531
+ content = _ref13.content,
532
+ width = _ref13.width;
502
533
  var heading = /*#__PURE__*/React.createElement(Tooltip, {
503
534
  content: content,
504
535
  tag: "span",
@@ -509,17 +540,42 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
509
540
  className: ax(["_11c8wadc _k48p1wq8"])
510
541
  }, content));
511
542
  var isHeadingOutsideButton = !isEditable || !onWrappedColumnChange;
512
- if (isHeadingOutsideButton) {
543
+ if (shouldEnableColumnSort) {
544
+ var sortedDirection = (sortState === null || sortState === void 0 ? void 0 : sortState.key) === key ? sortState.direction : undefined;
545
+ // Use directional icon only for the active sort column; keep width stable otherwise.
546
+ var SortIcon = sortedDirection ? sortedDirection === 'ASC' ? SortAscendingIcon : SortDescendingIcon : GlyphPlaceholder;
547
+ var sortLabel = typeof content === 'string' ? content : key;
548
+ var sortButtonAriaLabel = sortedDirection === 'ASC' ? formatMessage(issueLikeTableMessages.sortByColumnDescendingAction, {
549
+ column: sortLabel
550
+ }) : formatMessage(issueLikeTableMessages.sortByColumnAscendingAction, {
551
+ column: sortLabel
552
+ });
553
+ heading = /*#__PURE__*/React.createElement(SortableHeaderParent, null, /*#__PURE__*/React.createElement(Button, {
554
+ appearance: "subtle",
555
+ spacing: "compact",
556
+ shouldFitContainer: true,
557
+ testId: "".concat(key, "-column-sort-button"),
558
+ "aria-label": sortButtonAriaLabel,
559
+ iconAfter: function iconAfter(iconProps) {
560
+ return /*#__PURE__*/React.createElement(SortIcon, _extends({}, iconProps, {
561
+ size: "small"
562
+ }));
563
+ },
564
+ onClick: function onClick() {
565
+ return onColumnSort === null || onColumnSort === void 0 ? void 0 : onColumnSort(key);
566
+ }
567
+ }, heading));
568
+ } else if (isHeadingOutsideButton) {
513
569
  heading = /*#__PURE__*/React.createElement("div", {
514
570
  className: ax(["_1e0c1txw _4cvr1h6o _o5721q9c _8vu418qm _irr3l4ek"])
515
571
  }, heading);
516
572
  }
517
573
  if (isEditable) {
518
574
  var _containerRef$current4;
519
- var previewRows = tableRows.map(function (_ref13) {
520
- var cells = _ref13.cells;
521
- var cell = cells.find(function (_ref14) {
522
- var cellKey = _ref14.key;
575
+ var previewRows = tableRows.map(function (_ref14) {
576
+ var cells = _ref14.cells;
577
+ var cell = cells.find(function (_ref15) {
578
+ var cellKey = _ref15.key;
523
579
  return cellKey === key;
524
580
  });
525
581
  if (cell) {
@@ -543,16 +599,18 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
543
599
  onIsWrappedChange: onWrappedColumnChange === null || onWrappedColumnChange === void 0 ? void 0 : onWrappedColumnChange.bind(null, key)
544
600
  }, heading);
545
601
  } else {
546
- return /*#__PURE__*/React.createElement(TableHeading, {
602
+ return /*#__PURE__*/React.createElement(TableHeading, _extends({
547
603
  key: key,
548
604
  "data-testid": "".concat(key, "-column-heading")
605
+ }, fg('platform_lp_jira_sllv_renderer_column_sorting') ? {
606
+ 'aria-sort': (sortState === null || sortState === void 0 ? void 0 : sortState.key) === key && sortState.direction === 'ASC' ? 'ascending' : (sortState === null || sortState === void 0 ? void 0 : sortState.key) === key && sortState.direction === 'DESC' ? 'descending' : undefined
607
+ } : {}, {
549
608
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
550
- ,
551
609
  style: getWidthCss({
552
610
  shouldUseWidth: shouldUseWidth,
553
611
  width: width
554
612
  })
555
- }, heading);
613
+ }), heading);
556
614
  }
557
615
  }), onVisibleColumnKeysChange && /*#__PURE__*/React.createElement(ColumnPickerHeader, null, /*#__PURE__*/React.createElement(ColumnPicker, {
558
616
  columns: shouldDisplayColumnsInPicker ? orderedColumns : [],
@@ -562,18 +620,18 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref5) {
562
620
  })))), /*#__PURE__*/React.createElement("tbody", {
563
621
  "data-testid": testId && "".concat(testId, "--body"),
564
622
  className: ax(["_n7zlidpf"])
565
- }, rows.map(function (_ref15) {
566
- var key = _ref15.key,
567
- cells = _ref15.cells,
568
- ref = _ref15.ref;
623
+ }, rows.map(function (_ref16) {
624
+ var key = _ref16.key,
625
+ cells = _ref16.cells,
626
+ ref = _ref16.ref;
569
627
  return /*#__PURE__*/React.createElement("tr", {
570
628
  key: key,
571
629
  "data-testid": testId && "".concat(testId, "--row-").concat(key),
572
630
  ref: ref
573
- }, cells.map(function (_ref16, cellIndex) {
574
- var cellKey = _ref16.key,
575
- content = _ref16.content,
576
- width = _ref16.width;
631
+ }, cells.map(function (_ref17, cellIndex) {
632
+ var cellKey = _ref17.key,
633
+ content = _ref17.content,
634
+ width = _ref17.width;
577
635
  var isLastCell = cellIndex === cells.length - 1;
578
636
  var loadingRowStyle = getWidthCss({
579
637
  shouldUseWidth: shouldUseWidth,
@@ -40,6 +40,16 @@ export var issueLikeTableMessages = defineMessages({
40
40
  description: 'Table header Dropdown item for making whole column to not wrap text',
41
41
  defaultMessage: 'Unwrap text'
42
42
  },
43
+ sortByColumnAscendingAction: {
44
+ id: 'linkDataSource.issue-line-table.sort-by-column-ascending-action',
45
+ description: 'Accessible label for sorting a table column in ascending order',
46
+ defaultMessage: 'Sort by {column} ascending.'
47
+ },
48
+ sortByColumnDescendingAction: {
49
+ id: 'linkDataSource.issue-line-table.sort-by-column-descending-action',
50
+ description: 'Accessible label for sorting a table column in descending order',
51
+ defaultMessage: 'Sort by {column} descending.'
52
+ },
43
53
  fetchActionErrorGenericDescriptionGalaxia: {
44
54
  id: 'linkDataSource.issue-line-table.fetch-action-error-generic-description-galaxia',
45
55
  description: 'Generic error message description shown when fetching inline edit dropdown field fails',
@@ -4,5 +4,155 @@
4
4
  * This file is automatically generated by Traduki 2.0.
5
5
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
6
6
  */
7
- import translations from '@atlaskit/afm-i18n-platform-linking-platform-link-datasource/i18n/cs';
8
- export default translations;
7
+ declare const _default: {
8
+ '1M7iXg': string;
9
+ 'linkDataSource.accessInstructions': string;
10
+ 'linkDataSource.accessRequired': string;
11
+ 'linkDataSource.assets.configModal.aqlSearchInput.helpTooltipText': string;
12
+ 'linkDataSource.assets.configModal.aqlSearchInput.placeholder': string;
13
+ 'linkDataSource.assets.configModal.objectSchemaSelect.label': string;
14
+ 'linkDataSource.assets.configModal.objectSchemaSelect.placeholder': string;
15
+ 'linkDataSource.assets.configModal.objectSchemaSelect.schemaRequired': string;
16
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.learnMoreLink': string;
17
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.learnMoreLinkOld': string;
18
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.searchDescription': string;
19
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.searchTitle': string;
20
+ 'linkDataSource.assets.configmodal.insertIssuesButtonText': string;
21
+ 'linkDataSource.assets.configmodal.insertObjectsTitle': string;
22
+ 'linkDataSource.assets.configmodal.updateObjectsButtonText': string;
23
+ 'linkDataSource.basic-filter.assignee.label': string;
24
+ 'linkDataSource.basic-filter.assignee.searchPlaceholder': string;
25
+ 'linkDataSource.basic-filter.dropdown.select.assignee.unassigned': string;
26
+ 'linkDataSource.basic-filter.dropdown.select.placeholder': string;
27
+ 'linkDataSource.basic-filter.error-description': string;
28
+ 'linkDataSource.basic-filter.errorMessage': string;
29
+ 'linkDataSource.basic-filter.errorMessageOld': string;
30
+ 'linkDataSource.basic-filter.footer.pagination-details': string;
31
+ 'linkDataSource.basic-filter.loading-message': string;
32
+ 'linkDataSource.basic-filter.no-options-description': string;
33
+ 'linkDataSource.basic-filter.no-options-message': string;
34
+ 'linkDataSource.basic-filter.no-options-message-old': string;
35
+ 'linkDataSource.basic-filter.project.label': string;
36
+ 'linkDataSource.basic-filter.project.label-galaxia': string;
37
+ 'linkDataSource.basic-filter.project.searchPlaceholder': string;
38
+ 'linkDataSource.basic-filter.project.searchPlaceholder-galaxia': string;
39
+ 'linkDataSource.basic-filter.showMoreButton': string;
40
+ 'linkDataSource.basic-filter.status.label': string;
41
+ 'linkDataSource.basic-filter.status.searchPlaceholder': string;
42
+ 'linkDataSource.basic-filter.type.label': string;
43
+ 'linkDataSource.basic-filter.type.labelOld': string;
44
+ 'linkDataSource.basic-filter.type.searchPlaceholder': string;
45
+ 'linkDataSource.checkConnection': string;
46
+ 'linkDataSource.clol-basic-filter.editedOrCreatedBy.label': string;
47
+ 'linkDataSource.column-picker.no-all-items-shown-message.line-1': string;
48
+ 'linkDataSource.column-picker.no-all-items-shown-message.line-2': string;
49
+ 'linkDataSource.column-picker.search': string;
50
+ 'linkDataSource.column-picker.tooltip': string;
51
+ 'linkDataSource.configmodal.basicTextSearchPlaceholder': string;
52
+ 'linkDataSource.configmodal.basicTextSearchPlaceholder-issue-term-refresh': string;
53
+ 'linkDataSource.configmodal.cancelButtonText': string;
54
+ 'linkDataSource.confluence-search.checkConnectionWithSource': string;
55
+ 'linkDataSource.confluence-search.checkConnectionWithSource-galaxia': string;
56
+ 'linkDataSource.confluence-search.configmodal.cancelButtonText': string;
57
+ 'linkDataSource.confluence-search.configmodal.date.range.after.label': string;
58
+ 'linkDataSource.confluence-search.configmodal.date.range.any.time': string;
59
+ 'linkDataSource.confluence-search.configmodal.date.range.before.label': string;
60
+ 'linkDataSource.confluence-search.configmodal.date.range.custom': string;
61
+ 'linkDataSource.confluence-search.configmodal.date.range.custom.invalid.after.end': string;
62
+ 'linkDataSource.confluence-search.configmodal.date.range.custom.invalid.after.today': string;
63
+ 'linkDataSource.confluence-search.configmodal.date.range.custom.invalid.to.after.today': string;
64
+ 'linkDataSource.confluence-search.configmodal.date.range.error': string;
65
+ 'linkDataSource.confluence-search.configmodal.date.range.from': string;
66
+ 'linkDataSource.confluence-search.configmodal.date.range.input.placeholder': string;
67
+ 'linkDataSource.confluence-search.configmodal.date.range.last.month': string;
68
+ 'linkDataSource.confluence-search.configmodal.date.range.last.week': string;
69
+ 'linkDataSource.confluence-search.configmodal.date.range.last.year': string;
70
+ 'linkDataSource.confluence-search.configmodal.date.range.title': string;
71
+ 'linkDataSource.confluence-search.configmodal.date.range.to': string;
72
+ 'linkDataSource.confluence-search.configmodal.date.range.to.Label': string;
73
+ 'linkDataSource.confluence-search.configmodal.date.range.today': string;
74
+ 'linkDataSource.confluence-search.configmodal.date.range.update.button': string;
75
+ 'linkDataSource.confluence-search.configmodal.date.range.yesterday': string;
76
+ 'linkDataSource.confluence-search.configmodal.insertConfluenceTitle': string;
77
+ 'linkDataSource.confluence-search.configmodal.insertConfluenceTitleManySites': string;
78
+ 'linkDataSource.confluence-search.configmodal.insertResultsButtonText': string;
79
+ 'linkDataSource.confluence-search.configmodal.placeholder.issues': string;
80
+ 'linkDataSource.confluence-search.configmodal.searchLabel': string;
81
+ 'linkDataSource.confluence-search.no.confluence.sites.access.description': string;
82
+ 'linkDataSource.confluence-search.no.confluence.sites.access.title': string;
83
+ 'linkDataSource.datasource.table.authConnectButtonText': string;
84
+ 'linkDataSource.datasource.table.authScreenDescriptionText': string;
85
+ 'linkDataSource.datasource.table.authScreenDescriptionText-appify': string;
86
+ 'linkDataSource.datasource.table.authScreenHeaderText': string;
87
+ 'linkDataSource.datasource.table.learnMoreAboutSmartLinks': string;
88
+ 'linkDataSource.issue-line-table.error-403-description': string;
89
+ 'linkDataSource.issue-line-table.error-403-title': string;
90
+ 'linkDataSource.issue-line-table.error-generic-description': string;
91
+ 'linkDataSource.issue-line-table.error-generic-title': string;
92
+ 'linkDataSource.issue-line-table.fetch-action-error-generic-description': string;
93
+ 'linkDataSource.issue-line-table.fetch-action-error-generic-description-galaxia': string;
94
+ 'linkDataSource.issue-line-table.fetch-action-error-generic-title': string;
95
+ 'linkDataSource.issue-line-table.unwrap-text': string;
96
+ 'linkDataSource.issue-line-table.wrap-text': string;
97
+ 'linkDataSource.issueLikeTable.renderType.dateRange.fullRange': string;
98
+ 'linkDataSource.issueLikeTable.renderType.dateRange.quarterRange': string;
99
+ 'linkDataSource.issueLikeTable.renderType.dateRange.quarterRangeOverYears': string;
100
+ 'linkDataSource.accessRequiredWithSite': string;
101
+ 'linkDataSource.jira-issues.checkConnection.confluence': string;
102
+ 'linkDataSource.jira-issues.checkConnection.jira': string;
103
+ 'linkDataSource.checkConnectionWithSource': string;
104
+ 'linkDataSource.jira-issues.checkConnectionWithSource.visual-refresh-sllv': string;
105
+ 'linkDataSource.jira-issues.checkConnectionWithSource.visual-refresh-sllv-galaxia': string;
106
+ 'linkDataSource.jira-issues.configmodal.basicModeSwitchDisabledTooltipText': string;
107
+ 'linkDataSource.jira-issues.configmodal.basicModeText': string;
108
+ 'linkDataSource.jira-issues.configmodal.basicTextSearchPlaceholder-issue-term-refresh': string;
109
+ 'linkDataSource.site-selector.configmodal.chooseSite': string;
110
+ 'linkDataSource.jira-issues.configmodal.insertIssuesButtonText': string;
111
+ 'linkDataSource.jira-issues.configmodal.insertIssuesButtonText-issue-term-sllv': string;
112
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitle': string;
113
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitle-issue-term-refresh': string;
114
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitleManySites': string;
115
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitleManySites-issue-term-refresh': string;
116
+ 'linkDataSource.jira-issues.configmodal.placeholder.issues-issue-term-refresh': string;
117
+ 'linkDataSource.jira-issues.configmodal.viewModeInlineLinkDescription': string;
118
+ 'linkDataSource.jira-issues.configmodal.viewModeInlineLinkDescriptionOld': string;
119
+ 'linkDataSource.jira-issues.configmodal.viewModeInlineLinkLabel': string;
120
+ 'linkDataSource.jira-issues.configmodal.viewModeListDescription': string;
121
+ 'linkDataSource.jira-issues.configmodal.viewModeListDescriptionOld': string;
122
+ 'linkDataSource.jira-issues.configmodal.viewModeListLabel': string;
123
+ 'linkDataSource.jira-issues.learnMoreLink': string;
124
+ 'linkDataSource.no.jira.sites.access.description': string;
125
+ 'linkDataSource.no.jira.sites.access.title': string;
126
+ 'linkDataSource.noResultsFound': string;
127
+ 'linkDataSource.jira-issues.noResultsFound.description': string;
128
+ 'linkDataSource.refresh': string;
129
+ 'linkDataSource.jira-issues.searchDescription-basic': string;
130
+ 'linkDataSource.jira-issues.searchDescription-jql': string;
131
+ 'linkDataSource.jira-issues.searchJiraTitle': string;
132
+ 'linkDataSource.unableToLoadResults': string;
133
+ 'linkDataSource.modal-initial-state.beta': string;
134
+ 'linkDataSource.modal-initial-state.confluenceSearchTitle': string;
135
+ 'linkDataSource.modal-initial-state.jiraSearchTitle': string;
136
+ 'linkDataSource.modal-initial-state.learnMoreLinkOld': string;
137
+ 'linkDataSource.modal-initial-state.searchDescription-basic-issue-term-refresh': string;
138
+ 'linkDataSource.modal-initial-state.searchDescription-basic.Sllv': string;
139
+ 'linkDataSource.modal-initial-state.searchDescription-confluence': string;
140
+ 'linkDataSource.modal-initial-state.searchDescription-jql-issue-term-refresh': string;
141
+ 'linkDataSource.modal-initial-state.searchTitle-issue-term-refresh': string;
142
+ 'linkDataSource.render-type.boolean.false': string;
143
+ 'linkDataSource.render-type.boolean.true': string;
144
+ 'linkDataSource.render-type.user.default.display.name': string;
145
+ 'linkDataSource.search.configmodal.issueCountText': string;
146
+ 'linkDataSource.search.configmodal.issueCountText-issue-term-refresh': string;
147
+ 'linkDataSource.search.configmodal.itemCountText': string;
148
+ 'linkDataSource.search.configmodal.resultCountText': string;
149
+ 'linkDataSource.table-footer.date_formatter.under_one_minute': string;
150
+ 'linkDataSource.table-footer.date_formatter.under_over_minute': string;
151
+ 'linkDataSource.table-footer.item': string;
152
+ 'linkDataSource.table-footer.loading': string;
153
+ 'linkDataSource.table-footer.power-by-jsm': string;
154
+ 'linkDataSource.table-footer.powered-by-assets': string;
155
+ 'linkDataSource.table-footer.refresh': string;
156
+ 'linkDataSource.unableToLoadItems': string;
157
+ };
158
+ export default _default;