@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,10 @@
1
1
  /* datasourceTableView.tsx generated by @compiled/babel-plugin v0.39.1 */
2
+ import _extends from "@babel/runtime/helpers/extends";
2
3
  import "./datasourceTableView.compiled.css";
3
4
  import * as React from 'react';
4
5
  import { ax, ix } from "@compiled/react/runtime";
5
- import { useCallback, useEffect, useRef } from 'react';
6
+ import { useCallback, useEffect, useRef, useState } from 'react';
7
+ import isEqual from 'lodash/isEqual';
6
8
  import { withAnalyticsContext } from '@atlaskit/analytics-next';
7
9
  import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
8
10
  import { fg } from '@atlaskit/platform-feature-flags';
@@ -26,6 +28,7 @@ import { ProviderAuthRequired } from '../common/error-state/provider-auth-requir
26
28
  import { IssueLikeDataTableView } from '../issue-like-table';
27
29
  import EmptyState from '../issue-like-table/empty-state';
28
30
  import { TableFooter } from '../table-footer';
31
+ import { getDatasourceColumnSortGetter } from './datasource-column-sort';
29
32
  const containerStyles = null;
30
33
  const DefaultScrollableContainerHeight = 590;
31
34
  const DatasourceTableViewWithoutAnalytics = ({
@@ -40,6 +43,26 @@ const DatasourceTableViewWithoutAnalytics = ({
40
43
  onWrappedColumnChange,
41
44
  scrollableContainerHeight = DefaultScrollableContainerHeight
42
45
  }) => {
46
+ // Local copy lets us apply in-session sort mutations without mutating external parameters.
47
+ const [sessionParameters, setSessionParameters] = useState(parameters);
48
+ // Tracks the external parameters that the current session/sort state was derived from.
49
+ const sessionBaseParametersRef = useRef(parameters);
50
+ const [sortState, setSortState] = useState();
51
+ const columnSortGetter = getDatasourceColumnSortGetter(datasourceId);
52
+ // Sorting is only owned by this view when parent callbacks are absent (read-only rendering mode).
53
+ const isReadOnlyDatasourceTable = !onVisibleColumnKeysChange && !onColumnResize && !onWrappedColumnChange;
54
+ // Keep sort UI hidden unless datasource + ownership + feature gate all allow it.
55
+ const shouldEnableColumnSort = !!columnSortGetter && isReadOnlyDatasourceTable && fg('platform_lp_jira_sllv_renderer_column_sorting');
56
+ useDeepEffect(() => {
57
+ // External parameter updates should always reset local sort/session state back to source-of-truth.
58
+ sessionBaseParametersRef.current = parameters;
59
+ setSessionParameters(parameters);
60
+ setSortState(undefined);
61
+ }, [parameters]);
62
+ const isSessionBasedOnCurrentParameters = isEqual(sessionBaseParametersRef.current, parameters);
63
+ // Use session parameters only when they are known to be based on the current external parameters.
64
+ // This avoids a one-render stale read during the deep-effect update cycle above.
65
+ const activeParameters = isSessionBasedOnCurrentParameters && fg('platform_lp_jira_sllv_renderer_column_sorting') ? sessionParameters : parameters;
43
66
  const {
44
67
  reset,
45
68
  status,
@@ -57,7 +80,7 @@ const DatasourceTableViewWithoutAnalytics = ({
57
80
  authDetails
58
81
  } = useDatasourceTableState({
59
82
  datasourceId,
60
- parameters,
83
+ parameters: activeParameters,
61
84
  fieldKeys: visibleColumnKeys
62
85
  });
63
86
  const isInPDFRender = useIsInPDFRender();
@@ -95,7 +118,7 @@ const DatasourceTableViewWithoutAnalytics = ({
95
118
  reset();
96
119
  }
97
120
  isInitialRender.current = false;
98
- }, [reset, parameters]);
121
+ }, [reset, activeParameters]);
99
122
  useEffect(() => {
100
123
  if (onVisibleColumnKeysChange && (visibleColumnKeys || []).length === 0 && defaultVisibleColumnKeys.length > 0) {
101
124
  onVisibleColumnKeysChange(defaultVisibleColumnKeys);
@@ -141,6 +164,19 @@ const DatasourceTableViewWithoutAnalytics = ({
141
164
  });
142
165
  forcedReset();
143
166
  }, [destinationObjectTypes, extensionKey, fireEvent, forcedReset]);
167
+ const onColumnSort = useCallback(columnKey => {
168
+ // Build next params/sort atomically so UI state and query state stay in sync.
169
+ const result = columnSortGetter === null || columnSortGetter === void 0 ? void 0 : columnSortGetter({
170
+ parameters: sessionParameters,
171
+ columnKey,
172
+ currentSort: sortState
173
+ });
174
+ if (!result) {
175
+ return;
176
+ }
177
+ setSortState(result.sort);
178
+ setSessionParameters(result.parameters);
179
+ }, [columnSortGetter, sessionParameters, sortState]);
144
180
  const handleErrorRefresh = useCallback(() => {
145
181
  reset({
146
182
  shouldForceRequest: true
@@ -172,7 +208,7 @@ const DatasourceTableViewWithoutAnalytics = ({
172
208
  loaderFn: fetchMessagesForLocale
173
209
  }, /*#__PURE__*/React.createElement("div", {
174
210
  className: ax(["_2rko1kw7", "datasource-table"])
175
- }, hasColumns ? /*#__PURE__*/React.createElement(IssueLikeDataTableView, {
211
+ }, hasColumns ? /*#__PURE__*/React.createElement(IssueLikeDataTableView, _extends({
176
212
  testId: 'datasource-table-view',
177
213
  hasNextPage: hasNextPage,
178
214
  items: responseItems,
@@ -184,12 +220,16 @@ const DatasourceTableViewWithoutAnalytics = ({
184
220
  visibleColumnKeys: hasStaleVisibleColumnKeys ? defaultVisibleColumnKeys : visibleColumnKeys || defaultVisibleColumnKeys,
185
221
  onVisibleColumnKeysChange: onVisibleColumnKeysChange,
186
222
  columnCustomSizes: columnCustomSizes,
187
- onColumnResize: onColumnResize,
223
+ onColumnResize: onColumnResize
224
+ }, shouldEnableColumnSort && fg('platform_lp_jira_sllv_renderer_column_sorting') ? {
225
+ onColumnSort,
226
+ sortState
227
+ } : {}, {
188
228
  wrappedColumnKeys: wrappedColumnKeys,
189
229
  onWrappedColumnChange: onWrappedColumnChange,
190
230
  scrollableContainerHeight: isInPDFRender ? undefined : fg('lp_enable_datasource-table-view_height_override') ? scrollableContainerHeight : DefaultScrollableContainerHeight,
191
231
  extensionKey: extensionKey
192
- }) : /*#__PURE__*/React.createElement(EmptyState, {
232
+ })) : /*#__PURE__*/React.createElement(EmptyState, {
193
233
  testId: "datasource-table-view-skeleton",
194
234
  isCompact: true
195
235
  }), /*#__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)}
@@ -7,9 +7,14 @@ import { ax, ix } from "@compiled/react/runtime";
7
7
  /* eslint-disable @atlaskit/design-system/use-tokens-typography */
8
8
 
9
9
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
10
+ import { useIntl } from 'react-intl';
10
11
  import invariant from 'tiny-invariant';
12
+ import Button from '@atlaskit/button/new';
11
13
  import { FlagsProvider } from '@atlaskit/flag';
14
+ import SortAscendingIcon from '@atlaskit/icon/core/sort-ascending';
15
+ import SortDescendingIcon from '@atlaskit/icon/core/sort-descending';
12
16
  import { Skeleton } from '@atlaskit/linking-common';
17
+ import { fg } from '@atlaskit/platform-feature-flags';
13
18
  import { extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';
14
19
  import { reorderWithEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/util/reorder-with-edge';
15
20
  import { autoScroller } from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll';
@@ -21,9 +26,11 @@ import { startUfoExperience, succeedUfoExperience } from '../../analytics/ufoExp
21
26
  import { useDatasourceExperienceId } from '../../contexts/datasource-experience-id';
22
27
  import { useIsInPDFRender } from '../../hooks/useIsInPDFRender';
23
28
  import { ColumnPicker } from './column-picker';
29
+ import { GlyphPlaceholder } from './custom-icons';
24
30
  import { DragColumnPreview } from './drag-column-preview';
25
31
  import { DraggableTableHeading } from './draggable-table-heading';
26
32
  import TableEmptyState from './empty-state';
33
+ import { issueLikeTableMessages } from './messages';
27
34
  import { renderType } from './render-type';
28
35
  import { TableCellContent } from './table-cell-content';
29
36
  import { useIsOnScreen } from './useIsOnScreen';
@@ -115,6 +122,22 @@ const tableStyles = null;
115
122
  const noDefaultBorderStyles = null;
116
123
  const headerStyles = null;
117
124
  const headingHoverEffectStyles = null;
125
+
126
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- Matches DraggableTableHeading button normalization.
127
+ const SortableHeaderParent = forwardRef(({
128
+ as: C = "div",
129
+ style: __cmpls,
130
+ ...__cmplp
131
+ }, __cmplr) => {
132
+ return /*#__PURE__*/React.createElement(C, _extends({}, __cmplp, {
133
+ style: __cmpls,
134
+ ref: __cmplr,
135
+ className: ax(["_1e0c1txw _4cvr1h6o _o5721q9c _1wtnze3t _ficf1e5h _jq8g1wug _11lvze3t _yhjm1b66", __cmplp.className])
136
+ }));
137
+ });
138
+ if (process.env.NODE_ENV !== 'production') {
139
+ SortableHeaderParent.displayName = 'SortableHeaderParent';
140
+ }
118
141
  function extractIndex(data) {
119
142
  const {
120
143
  index
@@ -171,14 +194,19 @@ export const IssueLikeDataTableView = ({
171
194
  onVisibleColumnKeysChange,
172
195
  columnCustomSizes,
173
196
  onColumnResize,
197
+ onColumnSort,
174
198
  wrappedColumnKeys,
175
199
  onWrappedColumnChange,
200
+ sortState,
176
201
  status,
177
202
  hasNextPage,
178
203
  scrollableContainerHeight,
179
204
  extensionKey
180
205
  }) => {
181
206
  var _containerRef$current;
207
+ const {
208
+ formatMessage
209
+ } = useIntl();
182
210
  const tableId = useMemo(() => Symbol('unique-id'), []);
183
211
  const experienceId = useDatasourceExperienceId();
184
212
  const tableHeaderRowRef = useRef(null);
@@ -405,6 +433,9 @@ export const IssueLikeDataTableView = ({
405
433
  }
406
434
  }, [experienceId, extensionKey, hasFullSchema, onLoadDatasourceDetails]);
407
435
  const isEditable = onVisibleColumnKeysChange && hasData;
436
+ // Sorting is enabled only when the table owns the header interaction (read-only mode).
437
+ // Editable tables reserve header interactions for drag/resize/wrap controls.
438
+ const shouldEnableColumnSort = !!onColumnSort && !onVisibleColumnKeysChange && !onColumnResize && !onWrappedColumnChange;
408
439
  const orderedColumnsAreUpToDate = orderedColumns.length === columns.length;
409
440
  const shouldDisplayColumnsInPicker = hasFullSchema && orderedColumnsAreUpToDate;
410
441
  const view = /*#__PURE__*/React.createElement("div", {
@@ -449,7 +480,28 @@ export const IssueLikeDataTableView = ({
449
480
  className: ax(["_11c8wadc _k48p1wq8"])
450
481
  }, content));
451
482
  const isHeadingOutsideButton = !isEditable || !onWrappedColumnChange;
452
- if (isHeadingOutsideButton) {
483
+ if (shouldEnableColumnSort) {
484
+ const sortedDirection = (sortState === null || sortState === void 0 ? void 0 : sortState.key) === key ? sortState.direction : undefined;
485
+ // Use directional icon only for the active sort column; keep width stable otherwise.
486
+ const SortIcon = sortedDirection ? sortedDirection === 'ASC' ? SortAscendingIcon : SortDescendingIcon : GlyphPlaceholder;
487
+ const sortLabel = typeof content === 'string' ? content : key;
488
+ const sortButtonAriaLabel = sortedDirection === 'ASC' ? formatMessage(issueLikeTableMessages.sortByColumnDescendingAction, {
489
+ column: sortLabel
490
+ }) : formatMessage(issueLikeTableMessages.sortByColumnAscendingAction, {
491
+ column: sortLabel
492
+ });
493
+ heading = /*#__PURE__*/React.createElement(SortableHeaderParent, null, /*#__PURE__*/React.createElement(Button, {
494
+ appearance: "subtle",
495
+ spacing: "compact",
496
+ shouldFitContainer: true,
497
+ testId: `${key}-column-sort-button`,
498
+ "aria-label": sortButtonAriaLabel,
499
+ iconAfter: iconProps => /*#__PURE__*/React.createElement(SortIcon, _extends({}, iconProps, {
500
+ size: "small"
501
+ })),
502
+ onClick: () => onColumnSort === null || onColumnSort === void 0 ? void 0 : onColumnSort(key)
503
+ }, heading));
504
+ } else if (isHeadingOutsideButton) {
453
505
  heading = /*#__PURE__*/React.createElement("div", {
454
506
  className: ax(["_1e0c1txw _4cvr1h6o _o5721q9c _8vu418qm _irr3l4ek"])
455
507
  }, heading);
@@ -483,16 +535,18 @@ export const IssueLikeDataTableView = ({
483
535
  onIsWrappedChange: onWrappedColumnChange === null || onWrappedColumnChange === void 0 ? void 0 : onWrappedColumnChange.bind(null, key)
484
536
  }, heading);
485
537
  } else {
486
- return /*#__PURE__*/React.createElement(TableHeading, {
538
+ return /*#__PURE__*/React.createElement(TableHeading, _extends({
487
539
  key: key,
488
540
  "data-testid": `${key}-column-heading`
541
+ }, fg('platform_lp_jira_sllv_renderer_column_sorting') ? {
542
+ '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
543
+ } : {}, {
489
544
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
490
- ,
491
545
  style: getWidthCss({
492
546
  shouldUseWidth,
493
547
  width
494
548
  })
495
- }, heading);
549
+ }), heading);
496
550
  }
497
551
  }), onVisibleColumnKeysChange && /*#__PURE__*/React.createElement(ColumnPickerHeader, null, /*#__PURE__*/React.createElement(ColumnPicker, {
498
552
  columns: shouldDisplayColumnsInPicker ? orderedColumns : [],
@@ -40,6 +40,16 @@ export const 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',
@@ -5,6 +5,155 @@
5
5
  * This file is automatically generated by Traduki 2.0.
6
6
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
7
7
  */
8
-
9
- import translations from '@atlaskit/afm-i18n-platform-linking-platform-link-datasource/i18n/cs';
10
- export default translations;
8
+ //Czech
9
+ export default {
10
+ '1M7iXg': 'Editor dotazů JQL',
11
+ 'linkDataSource.accessInstructions': 'Chcete-li požádat o přístup, obraťte se na správce webu.',
12
+ 'linkDataSource.accessRequired': 'K tomuto obsahu nemáte přístup',
13
+ 'linkDataSource.assets.configModal.aqlSearchInput.helpTooltipText': 'Nápověda k syntaxi',
14
+ 'linkDataSource.assets.configModal.aqlSearchInput.placeholder': 'Vyhledat pomocí AQL',
15
+ 'linkDataSource.assets.configModal.objectSchemaSelect.label': 'Vyberte schéma.',
16
+ 'linkDataSource.assets.configModal.objectSchemaSelect.placeholder': 'Vyberte schéma.',
17
+ 'linkDataSource.assets.configModal.objectSchemaSelect.schemaRequired': 'Je nutné vybrat schéma',
18
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.learnMoreLink': 'Další informace o vyhledávání pomocí AQL',
19
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.learnMoreLinkOld': 'Další informace o vyhledávání pomocí AQL',
20
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.searchDescription': 'Chcete-li vyhledávat, začněte psát nebo použijte dotaz AQL.',
21
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.searchTitle': 'Vyhledat objekty nebo typy objektů',
22
+ 'linkDataSource.assets.configmodal.insertIssuesButtonText': '{objectsCount, plural, one {Vložit objekt} few {Vložit objekty} many {Vložit objekty} other {Vložit objekty}}',
23
+ 'linkDataSource.assets.configmodal.insertObjectsTitle': 'Vložit objekty z:',
24
+ 'linkDataSource.assets.configmodal.updateObjectsButtonText': 'Aktualizovat tabulku',
25
+ 'linkDataSource.basic-filter.assignee.label': 'Pověřená osoba',
26
+ 'linkDataSource.basic-filter.assignee.searchPlaceholder': 'Vyhledat pověřenou osobu',
27
+ 'linkDataSource.basic-filter.dropdown.select.assignee.unassigned': 'Nepřiřazeno',
28
+ 'linkDataSource.basic-filter.dropdown.select.placeholder': 'Vyhledat',
29
+ 'linkDataSource.basic-filter.error-description': 'Zkontrolujte připojení a obnovte stránku',
30
+ 'linkDataSource.basic-filter.errorMessage': 'Při pokusu o načtení výsledků se vyskytl problém.',
31
+ 'linkDataSource.basic-filter.errorMessageOld': 'Něco se pokazilo',
32
+ 'linkDataSource.basic-filter.footer.pagination-details': '{currentDisplayCount} z {totalCount}',
33
+ 'linkDataSource.basic-filter.loading-message': 'Načítání…',
34
+ 'linkDataSource.basic-filter.no-options-description': 'Zkuste to znovu s jiným termínem.',
35
+ 'linkDataSource.basic-filter.no-options-message': 'Vašemu vyhledávání neodpovídají žádné výsledky',
36
+ 'linkDataSource.basic-filter.no-options-message-old': 'Nebyly nalezeny žádné shody',
37
+ 'linkDataSource.basic-filter.project.label': 'Projekt',
38
+ 'linkDataSource.basic-filter.project.label-galaxia': 'Prostor',
39
+ 'linkDataSource.basic-filter.project.searchPlaceholder': 'Vyhledat projekty',
40
+ 'linkDataSource.basic-filter.project.searchPlaceholder-galaxia': 'Vyhledat prostory',
41
+ 'linkDataSource.basic-filter.showMoreButton': 'Zobrazit více',
42
+ 'linkDataSource.basic-filter.status.label': 'Stav',
43
+ 'linkDataSource.basic-filter.status.searchPlaceholder': 'Vyhledat stav',
44
+ 'linkDataSource.basic-filter.type.label': 'Typ práce',
45
+ 'linkDataSource.basic-filter.type.labelOld': 'Typ',
46
+ 'linkDataSource.basic-filter.type.searchPlaceholder': 'Vyhledat typ požadavku',
47
+ 'linkDataSource.checkConnection': 'Zkontrolujte připojení a obnovte stránku nebo to zkuste znovu později.',
48
+ 'linkDataSource.clol-basic-filter.editedOrCreatedBy.label': 'Upraveno nebo vytvořeno uživatelem',
49
+ 'linkDataSource.column-picker.no-all-items-shown-message.line-1': 'Vaše vyhledávání vrátilo příliš mnoho výsledků.',
50
+ 'linkDataSource.column-picker.no-all-items-shown-message.line-2': 'Zkuste to znovu s konkrétnějšími klíčovými slovy.',
51
+ 'linkDataSource.column-picker.search': 'Vyhledat pole',
52
+ 'linkDataSource.column-picker.tooltip': 'Konfigurovat sloupce',
53
+ 'linkDataSource.configmodal.basicTextSearchPlaceholder': 'Vyhledat požadavky pomocí klíčového slova',
54
+ 'linkDataSource.configmodal.basicTextSearchPlaceholder-issue-term-refresh': 'Vyhledat požadavky pomocí klíčového slova',
55
+ 'linkDataSource.configmodal.cancelButtonText': 'Zrušit',
56
+ 'linkDataSource.confluence-search.checkConnectionWithSource': 'Zkontrolujte připojení a obnovte stránku nebo <a>otevřete tento projekt v Confluence</a> a zkontrolujte jej.',
57
+ 'linkDataSource.confluence-search.checkConnectionWithSource-galaxia': 'Zkontrolujte připojení a obnovte stránku nebo <a>otevřete tento prostor Jira v Confluence</a> a zkontrolujte jej.',
58
+ 'linkDataSource.confluence-search.configmodal.cancelButtonText': 'Zrušit',
59
+ 'linkDataSource.confluence-search.configmodal.date.range.after.label': 'po {date}',
60
+ 'linkDataSource.confluence-search.configmodal.date.range.any.time': 'Kdykoliv',
61
+ 'linkDataSource.confluence-search.configmodal.date.range.before.label': 'před {date}',
62
+ 'linkDataSource.confluence-search.configmodal.date.range.custom': 'Vlastní',
63
+ 'linkDataSource.confluence-search.configmodal.date.range.custom.invalid.after.end': 'Datum Od musí být před datem Do.',
64
+ 'linkDataSource.confluence-search.configmodal.date.range.custom.invalid.after.today': 'Datum Od nesmí být v budoucnosti.',
65
+ 'linkDataSource.confluence-search.configmodal.date.range.custom.invalid.to.after.today': 'Datum Do nesmí být v budoucnosti.',
66
+ 'linkDataSource.confluence-search.configmodal.date.range.error': 'Chyba rozsahu dat',
67
+ 'linkDataSource.confluence-search.configmodal.date.range.from': 'Od',
68
+ 'linkDataSource.confluence-search.configmodal.date.range.input.placeholder': 'Vyberte datum.',
69
+ 'linkDataSource.confluence-search.configmodal.date.range.last.month': 'Posledních 30 dní',
70
+ 'linkDataSource.confluence-search.configmodal.date.range.last.week': 'Posledních 7 dní',
71
+ 'linkDataSource.confluence-search.configmodal.date.range.last.year': 'Poslední rok',
72
+ 'linkDataSource.confluence-search.configmodal.date.range.title': 'Naposledy aktualizováno',
73
+ 'linkDataSource.confluence-search.configmodal.date.range.to': 'Do',
74
+ 'linkDataSource.confluence-search.configmodal.date.range.to.Label': 'do',
75
+ 'linkDataSource.confluence-search.configmodal.date.range.today': 'Dnes',
76
+ 'linkDataSource.confluence-search.configmodal.date.range.update.button': 'Aktualizovat',
77
+ 'linkDataSource.confluence-search.configmodal.date.range.yesterday': 'Včera',
78
+ 'linkDataSource.confluence-search.configmodal.insertConfluenceTitle': 'Vložit seznam Confluence',
79
+ 'linkDataSource.confluence-search.configmodal.insertConfluenceTitleManySites': 'Vložit seznam Confluence z:',
80
+ 'linkDataSource.confluence-search.configmodal.insertResultsButtonText': 'Vložit výsledky',
81
+ 'linkDataSource.confluence-search.configmodal.placeholder.issues': '### Výsledky',
82
+ 'linkDataSource.confluence-search.configmodal.searchLabel': 'Zadejte klíčová slova k vyhledání stránek, příloh a dalších položek.',
83
+ 'linkDataSource.confluence-search.no.confluence.sites.access.description': 'Chcete-li požádat o přístup, obraťte se na správce.',
84
+ 'linkDataSource.confluence-search.no.confluence.sites.access.title': 'Nemáte přístup k žádným webům Confluence',
85
+ 'linkDataSource.datasource.table.authConnectButtonText': 'Připojit',
86
+ 'linkDataSource.datasource.table.authScreenDescriptionText': 'Připojte svůj účet {providerName} a spolupracujte pomocí všech produktů Atlassian.',
87
+ 'linkDataSource.datasource.table.authScreenDescriptionText-appify': 'Připojte svůj účet {providerName} a spolupracujte pomocí všech aplikací Atlassian.',
88
+ 'linkDataSource.datasource.table.authScreenHeaderText': 'Připojte svůj účet {providerName}',
89
+ 'linkDataSource.datasource.table.learnMoreAboutSmartLinks': 'Další informace o chytrých odkazech',
90
+ 'linkDataSource.issue-line-table.error-403-description': 'K úpravě této položky potřebujete správná oprávnění.',
91
+ 'linkDataSource.issue-line-table.error-403-title': 'Změny nebyly uloženy',
92
+ 'linkDataSource.issue-line-table.error-generic-description': 'Při pokusu o dokončení aktualizace se vyskytl problém. Počkejte pár minut a zkuste to znovu. Pokud se problém opakuje, kontaktujte podporu.',
93
+ 'linkDataSource.issue-line-table.error-generic-title': 'Něco se pokazilo',
94
+ 'linkDataSource.issue-line-table.fetch-action-error-generic-description': 'Počkejte pár minut a zkuste to znovu. Zkontrolujte nastavení projektu, a pokud se problém opakuje, kontaktujte podporu.',
95
+ 'linkDataSource.issue-line-table.fetch-action-error-generic-description-galaxia': 'Počkejte pár minut a zkuste to znovu. Zkontrolujte nastavení prostoru, a pokud se problém opakuje, kontaktujte podporu.',
96
+ 'linkDataSource.issue-line-table.fetch-action-error-generic-title': 'Při načítání možností došlo k problémům',
97
+ 'linkDataSource.issue-line-table.unwrap-text': 'Zrušit zalamování textu',
98
+ 'linkDataSource.issue-line-table.wrap-text': 'Zalomit text',
99
+ 'linkDataSource.issueLikeTable.renderType.dateRange.fullRange': '{start} - {end}',
100
+ 'linkDataSource.issueLikeTable.renderType.dateRange.quarterRange': '{startMonth}–{endMonth}, {year}',
101
+ 'linkDataSource.issueLikeTable.renderType.dateRange.quarterRangeOverYears': '{startMonth}–{endMonth}, {startYear}–{endYear}',
102
+ 'linkDataSource.accessRequiredWithSite': 'Nemáte přístup k webu',
103
+ 'linkDataSource.jira-issues.checkConnection.confluence': 'Zkontrolujte připojení a obnovte stránku nebo <a>otevřete toto vyhledávání v Confluence</a> a zkontrolujte jej.',
104
+ 'linkDataSource.jira-issues.checkConnection.jira': 'Zkontrolujte připojení a obnovte stránku nebo <a>otevřete toto vyhledávání v Jira</a> a zkontrolujte jej.',
105
+ 'linkDataSource.checkConnectionWithSource': 'Zkontrolujte připojení a obnovte stránku nebo <a>otevřete tento dotaz v Jira</a> a zkontrolujte jej.',
106
+ 'linkDataSource.jira-issues.checkConnectionWithSource.visual-refresh-sllv': 'Zkontrolujte připojení a obnovte stránku nebo <a>otevřete tento projekt v Jira</a> a zkontrolujte jej.',
107
+ 'linkDataSource.jira-issues.checkConnectionWithSource.visual-refresh-sllv-galaxia': 'Zkontrolujte připojení a obnovte stránku nebo <a>otevřete tento prostor v Jira</a> a zkontrolujte jej.',
108
+ 'linkDataSource.jira-issues.configmodal.basicModeSwitchDisabledTooltipText': 'U tohoto dotazu nemůžete přepnout na základní režim.',
109
+ 'linkDataSource.jira-issues.configmodal.basicModeText': 'Základní',
110
+ 'linkDataSource.jira-issues.configmodal.basicTextSearchPlaceholder-issue-term-refresh': 'Vyhledat požadavky pomocí klíčového slova',
111
+ 'linkDataSource.site-selector.configmodal.chooseSite': 'Vyberte web',
112
+ 'linkDataSource.jira-issues.configmodal.insertIssuesButtonText': 'Vložit požadavky',
113
+ 'linkDataSource.jira-issues.configmodal.insertIssuesButtonText-issue-term-sllv': 'Vložit výsledky',
114
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitle': 'Vložit požadavky Jira',
115
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitle-issue-term-refresh': 'Vložit požadavky Jira',
116
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitleManySites': 'Vložit požadavky Jira z:',
117
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitleManySites-issue-term-refresh': 'Vložit požadavky Jira z:',
118
+ 'linkDataSource.jira-issues.configmodal.placeholder.issues-issue-term-refresh': '### požadavky/ů',
119
+ 'linkDataSource.jira-issues.configmodal.viewModeInlineLinkDescription': 'Zobrazit počet výsledků vyhledávání nebo jako vložený chytrý odkaz',
120
+ 'linkDataSource.jira-issues.configmodal.viewModeInlineLinkDescriptionOld': 'Zobrazit počet výsledků vyhledávání jako vložený chytrý odkaz',
121
+ 'linkDataSource.jira-issues.configmodal.viewModeInlineLinkLabel': 'Vložený odkaz',
122
+ 'linkDataSource.jira-issues.configmodal.viewModeListDescription': 'Zobrazit počet výsledků vyhledávání jako seznam',
123
+ 'linkDataSource.jira-issues.configmodal.viewModeListDescriptionOld': 'Zobrazit výsledky vyhledávání jako seznam',
124
+ 'linkDataSource.jira-issues.configmodal.viewModeListLabel': 'Sloupec',
125
+ 'linkDataSource.jira-issues.learnMoreLink': 'Další informace o vyhledávání pomocí JQL',
126
+ 'linkDataSource.no.jira.sites.access.description': 'Chcete-li požádat o přístup, obraťte se na správce.',
127
+ 'linkDataSource.no.jira.sites.access.title': 'Nemáte přístup k žádným webům Jira',
128
+ 'linkDataSource.noResultsFound': 'Vašemu vyhledávání neodpovídají žádné výsledky',
129
+ 'linkDataSource.jira-issues.noResultsFound.description': 'Zkuste to znovu s jiným termínem.',
130
+ 'linkDataSource.refresh': 'Obnovit',
131
+ 'linkDataSource.jira-issues.searchDescription-basic': 'Vyhledejte požadavky, které chcete vložit, pomocí klíčového slova.',
132
+ 'linkDataSource.jira-issues.searchDescription-jql': 'Vyhledávejte požadavky pomocí JQL (Jira Query Language).',
133
+ 'linkDataSource.jira-issues.searchJiraTitle': 'Vyhledat požadavky Jira',
134
+ 'linkDataSource.unableToLoadResults': 'Při pokusu o načtení výsledků se vyskytl problém.',
135
+ 'linkDataSource.modal-initial-state.beta': 'Beta',
136
+ 'linkDataSource.modal-initial-state.confluenceSearchTitle': 'Vyhledat stránky Confluence',
137
+ 'linkDataSource.modal-initial-state.jiraSearchTitle': 'Vyhledat požadavky Jira',
138
+ 'linkDataSource.modal-initial-state.learnMoreLinkOld': 'Jak vyhledávat pomocí JQL',
139
+ 'linkDataSource.modal-initial-state.searchDescription-basic-issue-term-refresh': 'Vyhledejte požadavky, které chcete vložit, pomocí klíčového slova.',
140
+ 'linkDataSource.modal-initial-state.searchDescription-basic.Sllv': 'Chcete-li vyhledávat, začněte psát nebo použijte dotaz JQL.',
141
+ 'linkDataSource.modal-initial-state.searchDescription-confluence': 'Vyhledejte stránky, které chcete vložit, pomocí klíčového slova.',
142
+ 'linkDataSource.modal-initial-state.searchDescription-jql-issue-term-refresh': 'Vyhledávejte požadavky pomocí JQL (Jira Query Language).',
143
+ 'linkDataSource.modal-initial-state.searchTitle-issue-term-refresh': 'Vyhledat požadavky Jira',
144
+ 'linkDataSource.render-type.boolean.false': 'Ne',
145
+ 'linkDataSource.render-type.boolean.true': 'Ano',
146
+ 'linkDataSource.render-type.user.default.display.name': 'Nepřiřazeno',
147
+ 'linkDataSource.search.configmodal.issueCountText': '{searchCount, plural, one {{searchCount,number} požadavek} few {{searchCount,number} požadavky} many {{searchCount,number} požadavku} other {{searchCount,number} požadavků}}',
148
+ 'linkDataSource.search.configmodal.issueCountText-issue-term-refresh': '{searchCount, plural, one {{searchCount,number} požadavek} few {{searchCount,number} požadavky} many {{searchCount,number} požadavku} other {{searchCount,number} požadavků}}',
149
+ 'linkDataSource.search.configmodal.itemCountText': '{searchCount, plural, one {{searchCount,number} položka} few {{searchCount,number} položky} many {{searchCount,number} položky} other {{searchCount,number} položek}}',
150
+ 'linkDataSource.search.configmodal.resultCountText': '{searchCount, plural, one {{searchCount,number} výsledek} few {{searchCount,number} výsledky} many {{searchCount,number} výsledku} other {{searchCount,number} výsledků}}',
151
+ 'linkDataSource.table-footer.date_formatter.under_one_minute': 'Synchronizováno právě teď',
152
+ 'linkDataSource.table-footer.date_formatter.under_over_minute': 'Synchronizováno {date}',
153
+ 'linkDataSource.table-footer.item': '{itemCount, plural, one {položka} few {položky} many {položky} other {položek}}',
154
+ 'linkDataSource.table-footer.loading': 'Načítání…',
155
+ 'linkDataSource.table-footer.power-by-jsm': 'Využívá technologii Aktiva v Jira Service Management',
156
+ 'linkDataSource.table-footer.powered-by-assets': 'Využívá Aktiva',
157
+ 'linkDataSource.table-footer.refresh': 'Obnovit',
158
+ 'linkDataSource.unableToLoadItems': 'Načtení položek se nezdařilo'
159
+ };
@@ -5,6 +5,155 @@
5
5
  * This file is automatically generated by Traduki 2.0.
6
6
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
7
7
  */
8
-
9
- import translations from '@atlaskit/afm-i18n-platform-linking-platform-link-datasource/i18n/da';
10
- export default translations;
8
+ //Danish (Denmark)
9
+ export default {
10
+ '1M7iXg': 'JQL-forespørgselseditor',
11
+ 'linkDataSource.accessInstructions': 'Kontakt din sideadministrator for at anmode om adgang.',
12
+ 'linkDataSource.accessRequired': 'Du har ikke adgang til dette indhold',
13
+ 'linkDataSource.assets.configModal.aqlSearchInput.helpTooltipText': 'Syntakshjælp',
14
+ 'linkDataSource.assets.configModal.aqlSearchInput.placeholder': 'Søg via AQL',
15
+ 'linkDataSource.assets.configModal.objectSchemaSelect.label': 'Vælg skema',
16
+ 'linkDataSource.assets.configModal.objectSchemaSelect.placeholder': 'Vælg skema',
17
+ 'linkDataSource.assets.configModal.objectSchemaSelect.schemaRequired': 'Skema er påkrævet',
18
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.learnMoreLink': 'Få mere at vide om at søge med AQL',
19
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.learnMoreLinkOld': 'Lær mere om søgning med AQL.',
20
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.searchDescription': 'Begynd at indtaste, eller brug AQL for at søge.',
21
+ 'linkDataSource.assets.configModal.renderAssetsContent.initialStateView.searchTitle': 'Søg efter objekter eller objekttyper',
22
+ 'linkDataSource.assets.configmodal.insertIssuesButtonText': '{objectsCount, plural, one {Indsæt objekt} other {Indsæt objekter}}',
23
+ 'linkDataSource.assets.configmodal.insertObjectsTitle': 'Indsæt objekter fra',
24
+ 'linkDataSource.assets.configmodal.updateObjectsButtonText': 'Opdater tabel',
25
+ 'linkDataSource.basic-filter.assignee.label': 'Modtager',
26
+ 'linkDataSource.basic-filter.assignee.searchPlaceholder': 'Søg efter modtager',
27
+ 'linkDataSource.basic-filter.dropdown.select.assignee.unassigned': 'Ikke tildelt',
28
+ 'linkDataSource.basic-filter.dropdown.select.placeholder': 'Søg',
29
+ 'linkDataSource.basic-filter.error-description': 'Kontrollér din forbindelse, og genindlæs',
30
+ 'linkDataSource.basic-filter.errorMessage': 'Vi løb ind i et problem, da vi forsøgte at indlæse resultater',
31
+ 'linkDataSource.basic-filter.errorMessageOld': 'Noget gik galt',
32
+ 'linkDataSource.basic-filter.footer.pagination-details': '{currentDisplayCount} af {totalCount}',
33
+ 'linkDataSource.basic-filter.loading-message': 'Indlæser ...',
34
+ 'linkDataSource.basic-filter.no-options-description': 'Prøv igen med et andet ord.',
35
+ 'linkDataSource.basic-filter.no-options-message': 'Vi kunne ikke finde noget, der matchede din søgning',
36
+ 'linkDataSource.basic-filter.no-options-message-old': 'Ingen match fundet',
37
+ 'linkDataSource.basic-filter.project.label': 'Projekt',
38
+ 'linkDataSource.basic-filter.project.label-galaxia': 'Område',
39
+ 'linkDataSource.basic-filter.project.searchPlaceholder': 'Søg efter projekter',
40
+ 'linkDataSource.basic-filter.project.searchPlaceholder-galaxia': 'Søg efter områder',
41
+ 'linkDataSource.basic-filter.showMoreButton': 'Vis flere',
42
+ 'linkDataSource.basic-filter.status.label': 'Status',
43
+ 'linkDataSource.basic-filter.status.searchPlaceholder': 'Søg efter status',
44
+ 'linkDataSource.basic-filter.type.label': 'Sagstype',
45
+ 'linkDataSource.basic-filter.type.labelOld': 'Type',
46
+ 'linkDataSource.basic-filter.type.searchPlaceholder': 'Søg efter sagstype',
47
+ 'linkDataSource.checkConnection': 'Tjek din forbindelse, og genindlæs, eller prøv igen senere.',
48
+ 'linkDataSource.clol-basic-filter.editedOrCreatedBy.label': 'Redigeret eller oprettet af',
49
+ 'linkDataSource.column-picker.no-all-items-shown-message.line-1': 'Din søgning gav for mange resultater.',
50
+ 'linkDataSource.column-picker.no-all-items-shown-message.line-2': 'Prøv igen med mere specifikke søgeord.',
51
+ 'linkDataSource.column-picker.search': 'Søg efter felter',
52
+ 'linkDataSource.column-picker.tooltip': 'Konfigurer kolonner',
53
+ 'linkDataSource.configmodal.basicTextSearchPlaceholder': 'Søg efter sager efter søgeord',
54
+ 'linkDataSource.configmodal.basicTextSearchPlaceholder-issue-term-refresh': 'Søg efter sager efter søgeord',
55
+ 'linkDataSource.configmodal.cancelButtonText': 'Annuller',
56
+ 'linkDataSource.confluence-search.checkConnectionWithSource': 'Tjek din forbindelse, og genindlæs, eller <a>åbn dette projekt i Confluence</a> for at gennemgå det.',
57
+ 'linkDataSource.confluence-search.checkConnectionWithSource-galaxia': 'Kontrollér din forbindelse, og genindlæs, eller <a>åbn dette Jira-område i Confluence</a> for at gennemgå.',
58
+ 'linkDataSource.confluence-search.configmodal.cancelButtonText': 'Annuller',
59
+ 'linkDataSource.confluence-search.configmodal.date.range.after.label': 'efter {date}',
60
+ 'linkDataSource.confluence-search.configmodal.date.range.any.time': 'Når som helst',
61
+ 'linkDataSource.confluence-search.configmodal.date.range.before.label': 'før {date}',
62
+ 'linkDataSource.confluence-search.configmodal.date.range.custom': 'Brugerdefineret',
63
+ 'linkDataSource.confluence-search.configmodal.date.range.custom.invalid.after.end': 'Startdatoen skal ligge før slutdatoen',
64
+ 'linkDataSource.confluence-search.configmodal.date.range.custom.invalid.after.today': 'Startdatoen må ikke ligge i fremtiden',
65
+ 'linkDataSource.confluence-search.configmodal.date.range.custom.invalid.to.after.today': 'Slutdatoen må ikke ligge i fremtiden',
66
+ 'linkDataSource.confluence-search.configmodal.date.range.error': 'Fejl i datointerval',
67
+ 'linkDataSource.confluence-search.configmodal.date.range.from': 'Fra',
68
+ 'linkDataSource.confluence-search.configmodal.date.range.input.placeholder': 'Vælg dato',
69
+ 'linkDataSource.confluence-search.configmodal.date.range.last.month': 'Inden for de seneste 30 dage',
70
+ 'linkDataSource.confluence-search.configmodal.date.range.last.week': 'Inden for de seneste 7 dage',
71
+ 'linkDataSource.confluence-search.configmodal.date.range.last.year': 'Det seneste år',
72
+ 'linkDataSource.confluence-search.configmodal.date.range.title': 'Senest opdateret',
73
+ 'linkDataSource.confluence-search.configmodal.date.range.to': 'Til',
74
+ 'linkDataSource.confluence-search.configmodal.date.range.to.Label': 'til',
75
+ 'linkDataSource.confluence-search.configmodal.date.range.today': 'I dag',
76
+ 'linkDataSource.confluence-search.configmodal.date.range.update.button': 'Opdater',
77
+ 'linkDataSource.confluence-search.configmodal.date.range.yesterday': 'I går',
78
+ 'linkDataSource.confluence-search.configmodal.insertConfluenceTitle': 'Indsæt Confluence-liste',
79
+ 'linkDataSource.confluence-search.configmodal.insertConfluenceTitleManySites': 'Indsæt Confluence-liste fra',
80
+ 'linkDataSource.confluence-search.configmodal.insertResultsButtonText': 'Indsæt resultater',
81
+ 'linkDataSource.confluence-search.configmodal.placeholder.issues': '### Resultater',
82
+ 'linkDataSource.confluence-search.configmodal.searchLabel': 'Indtast nøgleord for at finde sider, vedhæftninger m.m.',
83
+ 'linkDataSource.confluence-search.no.confluence.sites.access.description': 'Kontakt din administrator for at anmode om adgang.',
84
+ 'linkDataSource.confluence-search.no.confluence.sites.access.title': 'Du har ikke adgang til nogen Confluence-sider',
85
+ 'linkDataSource.datasource.table.authConnectButtonText': 'Forbind',
86
+ 'linkDataSource.datasource.table.authScreenDescriptionText': 'Tilknyt din {providerName}-konto for at samarbejde om arbejde på tværs af Atlassian-produkter.',
87
+ 'linkDataSource.datasource.table.authScreenDescriptionText-appify': 'Tilknyt din {providerName}-konto for at samarbejde om sager på tværs af Atlassian-apps.',
88
+ 'linkDataSource.datasource.table.authScreenHeaderText': 'Forbind din {providerName}-konto',
89
+ 'linkDataSource.datasource.table.learnMoreAboutSmartLinks': 'Få mere at vide om intelligente links.',
90
+ 'linkDataSource.issue-line-table.error-403-description': 'Du skal have de rette tilladelser til at redigere dette element.',
91
+ 'linkDataSource.issue-line-table.error-403-title': 'Ændringerne blev ikke gemt',
92
+ 'linkDataSource.issue-line-table.error-generic-description': 'Vi havde problemer med at gennemføre opdateringen. Prøv igen om et par minutter. Kontakt support, hvis problemet varer ved.',
93
+ 'linkDataSource.issue-line-table.error-generic-title': 'Noget gik galt',
94
+ 'linkDataSource.issue-line-table.fetch-action-error-generic-description': 'Prøv igen om et par minutter. Tjek dine projektindstillinger, eller kontakt support, hvis problemet varer ved.',
95
+ 'linkDataSource.issue-line-table.fetch-action-error-generic-description-galaxia': 'Prøv igen om et par minutter. Tjek dine spaceindstillinger, eller kontakt support, hvis problemet varer ved.',
96
+ 'linkDataSource.issue-line-table.fetch-action-error-generic-title': 'Vi har problemer med at hente muligheder',
97
+ 'linkDataSource.issue-line-table.unwrap-text': 'Fjern ombrydning af tekst',
98
+ 'linkDataSource.issue-line-table.wrap-text': 'Ombryd tekst',
99
+ 'linkDataSource.issueLikeTable.renderType.dateRange.fullRange': '{start}-{end}',
100
+ 'linkDataSource.issueLikeTable.renderType.dateRange.quarterRange': '{startMonth}-{endMonth}, {year}',
101
+ 'linkDataSource.issueLikeTable.renderType.dateRange.quarterRangeOverYears': '{startMonth}-{endMonth}, {startYear}-{endYear}',
102
+ 'linkDataSource.accessRequiredWithSite': 'Du har ikke adgang til',
103
+ 'linkDataSource.jira-issues.checkConnection.confluence': 'Tjek din forbindelse, og genindlæs, eller <a>åbn denne søgning i Confluence</a> for at gennemgå den.',
104
+ 'linkDataSource.jira-issues.checkConnection.jira': 'Tjek din forbindelse, og genindlæs, eller <a>åbn denne søgning i Jira</a> for at gennemgå den.',
105
+ 'linkDataSource.checkConnectionWithSource': 'Tjek din forbindelse, og genindlæs, eller <a>åbn denne forespørgsel i Jira</a> for at gennemgå.',
106
+ 'linkDataSource.jira-issues.checkConnectionWithSource.visual-refresh-sllv': 'Tjek din forbindelse, og genindlæs, eller <a>åbn dette projekt i Jira</a> for at gennemgå det.',
107
+ 'linkDataSource.jira-issues.checkConnectionWithSource.visual-refresh-sllv-galaxia': 'Kontrollér din forbindelse, og genindlæs, eller <a>åbn dette område i Jira</a> for at gennemgå.',
108
+ 'linkDataSource.jira-issues.configmodal.basicModeSwitchDisabledTooltipText': 'Du kan ikke skifte til basis for denne forespørgsel.',
109
+ 'linkDataSource.jira-issues.configmodal.basicModeText': 'Basis',
110
+ 'linkDataSource.jira-issues.configmodal.basicTextSearchPlaceholder-issue-term-refresh': 'Søg efter sager efter søgeord',
111
+ 'linkDataSource.site-selector.configmodal.chooseSite': 'Vælg et website',
112
+ 'linkDataSource.jira-issues.configmodal.insertIssuesButtonText': 'Indsæt sager',
113
+ 'linkDataSource.jira-issues.configmodal.insertIssuesButtonText-issue-term-sllv': 'Indsæt resultater',
114
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitle': 'Indsæt Jira-sager',
115
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitle-issue-term-refresh': 'Indsæt Jira-sager',
116
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitleManySites': 'Indsæt Jira-sager fra',
117
+ 'linkDataSource.jira-issues.configmodal.insertIssuesTitleManySites-issue-term-refresh': 'Indsæt Jira-sager fra',
118
+ 'linkDataSource.jira-issues.configmodal.placeholder.issues-issue-term-refresh': '### sager',
119
+ 'linkDataSource.jira-issues.configmodal.viewModeInlineLinkDescription': 'Vis antallet af søgeresultater som et indlejret intelligent link',
120
+ 'linkDataSource.jira-issues.configmodal.viewModeInlineLinkDescriptionOld': 'Vis antallet af søgeresultater som et intelligent link på samme linje',
121
+ 'linkDataSource.jira-issues.configmodal.viewModeInlineLinkLabel': 'Link på samme linje',
122
+ 'linkDataSource.jira-issues.configmodal.viewModeListDescription': 'Vis antallet af søgeresultater som en liste',
123
+ 'linkDataSource.jira-issues.configmodal.viewModeListDescriptionOld': 'Vis søgeresultater som en liste',
124
+ 'linkDataSource.jira-issues.configmodal.viewModeListLabel': 'Liste',
125
+ 'linkDataSource.jira-issues.learnMoreLink': 'Få mere at vide om at søge med JQL',
126
+ 'linkDataSource.no.jira.sites.access.description': 'Kontakt din administrator for at anmode om adgang.',
127
+ 'linkDataSource.no.jira.sites.access.title': 'Du har ikke adgang til nogen Jira-sider',
128
+ 'linkDataSource.noResultsFound': 'Vi kunne ikke finde noget, der matchede din søgning',
129
+ 'linkDataSource.jira-issues.noResultsFound.description': 'Prøv igen med et andet ord.',
130
+ 'linkDataSource.refresh': 'Opdater',
131
+ 'linkDataSource.jira-issues.searchDescription-basic': 'Brug søgeord til at søge efter sager, der skal indsættes.',
132
+ 'linkDataSource.jira-issues.searchDescription-jql': 'Brug JQL (Jira Query Language) til at søge efter sager.',
133
+ 'linkDataSource.jira-issues.searchJiraTitle': 'Søg efter Jira-sager',
134
+ 'linkDataSource.unableToLoadResults': 'Vi løb ind i et problem, da vi forsøgte at hente resultater',
135
+ 'linkDataSource.modal-initial-state.beta': 'Beta',
136
+ 'linkDataSource.modal-initial-state.confluenceSearchTitle': 'Søg efter Confluence-sider',
137
+ 'linkDataSource.modal-initial-state.jiraSearchTitle': 'Søg efter Jira-sager',
138
+ 'linkDataSource.modal-initial-state.learnMoreLinkOld': 'Lær, hvordan du søger med JQL',
139
+ 'linkDataSource.modal-initial-state.searchDescription-basic-issue-term-refresh': 'Brug søgeord til at søge efter sager, der skal indsættes.',
140
+ 'linkDataSource.modal-initial-state.searchDescription-basic.Sllv': 'Begynd at indtaste, eller brug JQL til at søge.',
141
+ 'linkDataSource.modal-initial-state.searchDescription-confluence': 'Brug søgeord til at søge efter sider, der skal indsættes.',
142
+ 'linkDataSource.modal-initial-state.searchDescription-jql-issue-term-refresh': 'Brug JQL (Jira Query Language) til at søge efter sager.',
143
+ 'linkDataSource.modal-initial-state.searchTitle-issue-term-refresh': 'Søg efter Jira-sager',
144
+ 'linkDataSource.render-type.boolean.false': 'Nej',
145
+ 'linkDataSource.render-type.boolean.true': 'Ja',
146
+ 'linkDataSource.render-type.user.default.display.name': 'Ikke tildelt',
147
+ 'linkDataSource.search.configmodal.issueCountText': '{searchCount, plural, one {{searchCount,number} sag} other {{searchCount,number} sager}}',
148
+ 'linkDataSource.search.configmodal.issueCountText-issue-term-refresh': '{searchCount, plural, one {{searchCount,number} sag} other {{searchCount,number} sager}}',
149
+ 'linkDataSource.search.configmodal.itemCountText': '{searchCount, plural, one {{searchCount,number} emne} other {{searchCount,number} emner}}',
150
+ 'linkDataSource.search.configmodal.resultCountText': '{searchCount, plural, one {{searchCount,number} resultat} other {{searchCount,number} resultater}}',
151
+ 'linkDataSource.table-footer.date_formatter.under_one_minute': 'Synkroniseret lige nu',
152
+ 'linkDataSource.table-footer.date_formatter.under_over_minute': 'Synkroniseret {date}',
153
+ 'linkDataSource.table-footer.item': '{itemCount, plural, one {element} other {elementer}}',
154
+ 'linkDataSource.table-footer.loading': 'Indlæser ...',
155
+ 'linkDataSource.table-footer.power-by-jsm': 'Leveret af Aktiver i Jira Service Management',
156
+ 'linkDataSource.table-footer.powered-by-assets': 'Drevet af Aktiver',
157
+ 'linkDataSource.table-footer.refresh': 'Opdater',
158
+ 'linkDataSource.unableToLoadItems': 'Kunne ikke indlæse elementer'
159
+ };