@atlaskit/link-datasource 1.11.0 → 1.12.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 (117) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/analytics/constants.js +1 -1
  3. package/dist/cjs/services/mocks.js +134 -0
  4. package/dist/cjs/services/useBasicFilterAGG.js +119 -0
  5. package/dist/cjs/services/utils.js +8 -0
  6. package/dist/cjs/ui/assets-modal/modal/index.js +2 -2
  7. package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +5 -1
  8. package/dist/cjs/ui/issue-like-table/draggable-table-heading.js +109 -5
  9. package/dist/cjs/ui/issue-like-table/index.js +109 -95
  10. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +20 -0
  11. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +155 -0
  12. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +82 -0
  13. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +87 -0
  14. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +97 -0
  15. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +18 -0
  16. package/dist/cjs/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +111 -0
  17. package/dist/cjs/ui/jira-issues-modal/basic-filters/types.js +15 -0
  18. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
  19. package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/transformers.js +97 -0
  20. package/dist/cjs/ui/jira-issues-modal/jira-search-container/buildJQL.js +23 -3
  21. package/dist/cjs/ui/jira-issues-modal/modal/index.js +16 -5
  22. package/dist/es2019/analytics/constants.js +1 -1
  23. package/dist/es2019/services/mocks.js +128 -0
  24. package/dist/es2019/services/useBasicFilterAGG.js +72 -0
  25. package/dist/es2019/services/utils.js +113 -0
  26. package/dist/es2019/ui/assets-modal/modal/index.js +2 -2
  27. package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +5 -1
  28. package/dist/es2019/ui/issue-like-table/draggable-table-heading.js +113 -5
  29. package/dist/es2019/ui/issue-like-table/index.js +82 -72
  30. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +14 -0
  31. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +149 -0
  32. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +76 -0
  33. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +81 -0
  34. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +91 -0
  35. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +12 -0
  36. package/dist/es2019/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +105 -0
  37. package/dist/es2019/ui/jira-issues-modal/basic-filters/types.js +9 -0
  38. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
  39. package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/transformers.js +91 -0
  40. package/dist/es2019/ui/jira-issues-modal/jira-search-container/buildJQL.js +17 -4
  41. package/dist/es2019/ui/jira-issues-modal/modal/index.js +15 -4
  42. package/dist/esm/analytics/constants.js +1 -1
  43. package/dist/esm/services/mocks.js +128 -0
  44. package/dist/esm/services/useBasicFilterAGG.js +112 -0
  45. package/dist/esm/services/utils.js +2 -0
  46. package/dist/esm/ui/assets-modal/modal/index.js +2 -2
  47. package/dist/esm/ui/datasource-table-view/datasourceTableView.js +5 -1
  48. package/dist/esm/ui/issue-like-table/draggable-table-heading.js +109 -5
  49. package/dist/esm/ui/issue-like-table/index.js +108 -94
  50. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.js +14 -0
  51. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.js +149 -0
  52. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.js +76 -0
  53. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.js +81 -0
  54. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.js +91 -0
  55. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.js +12 -0
  56. package/dist/esm/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.js +105 -0
  57. package/dist/esm/ui/jira-issues-modal/basic-filters/types.js +9 -0
  58. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +0 -1
  59. package/dist/esm/ui/jira-issues-modal/basic-filters/utils/transformers.js +89 -0
  60. package/dist/esm/ui/jira-issues-modal/jira-search-container/buildJQL.js +23 -4
  61. package/dist/esm/ui/jira-issues-modal/modal/index.js +17 -6
  62. package/dist/types/services/mocks.d.ts +3 -0
  63. package/dist/types/services/useBasicFilterAGG.d.ts +5 -0
  64. package/dist/types/services/utils.d.ts +2 -0
  65. package/dist/types/ui/datasource-table-view/types.d.ts +4 -0
  66. package/dist/types/ui/issue-like-table/draggable-table-heading.d.ts +3 -2
  67. package/dist/types/ui/issue-like-table/index.d.ts +5 -3
  68. package/dist/types/ui/issue-like-table/types.d.ts +5 -0
  69. package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +1 -1
  70. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +3 -0
  71. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +17 -0
  72. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +8 -0
  73. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +8 -0
  74. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +8 -0
  75. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +3 -0
  76. package/dist/types/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +29 -0
  77. package/dist/types/ui/jira-issues-modal/basic-filters/types.d.ts +93 -0
  78. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.d.ts +1 -1
  79. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.d.ts +1 -1
  80. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +1 -1
  81. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +1 -1
  82. package/dist/types/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +8 -0
  83. package/dist/types/ui/jira-issues-modal/jira-search-container/buildJQL.d.ts +4 -0
  84. package/dist/types/ui/jira-issues-modal/types.d.ts +4 -0
  85. package/dist/types-ts4.5/services/mocks.d.ts +3 -0
  86. package/dist/types-ts4.5/services/useBasicFilterAGG.d.ts +5 -0
  87. package/dist/types-ts4.5/services/utils.d.ts +2 -0
  88. package/dist/types-ts4.5/ui/datasource-table-view/types.d.ts +4 -0
  89. package/dist/types-ts4.5/ui/issue-like-table/draggable-table-heading.d.ts +3 -2
  90. package/dist/types-ts4.5/ui/issue-like-table/index.d.ts +5 -3
  91. package/dist/types-ts4.5/ui/issue-like-table/types.d.ts +5 -0
  92. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/hooks/useFieldValues.d.ts +1 -1
  93. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesEmptyResponse.d.ts +3 -0
  94. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesExpectedResponseForAssignees.d.ts +17 -0
  95. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForProjects.d.ts +8 -0
  96. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForStatuses.d.ts +8 -0
  97. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/fieldValuesStandardResponseForTypes.d.ts +8 -0
  98. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlEmptyResponse.d.ts +3 -0
  99. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/mocks/hydrateJqlStandardResponse.d.ts +29 -0
  100. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/types.d.ts +93 -0
  101. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/control.d.ts +1 -1
  102. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.d.ts +1 -1
  103. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.d.ts +1 -1
  104. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +1 -1
  105. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +8 -0
  106. package/dist/types-ts4.5/ui/jira-issues-modal/jira-search-container/buildJQL.d.ts +4 -0
  107. package/dist/types-ts4.5/ui/jira-issues-modal/types.d.ts +4 -0
  108. package/examples-helpers/buildIssueLikeTable.tsx +15 -1
  109. package/examples-helpers/buildJiraIssuesTable.tsx +15 -1
  110. package/package.json +5 -5
  111. package/report.api.md +11 -0
  112. package/tmp/api-report-tmp.d.ts +11 -0
  113. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -5
  114. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -1
  115. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.js +0 -1
  116. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.d.ts +0 -23
  117. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/types.d.ts +0 -23
@@ -29,7 +29,8 @@ const tableHeadStyles = css({
29
29
  zIndex: stickyTableHeadersIndex
30
30
  });
31
31
  const ColumnPickerHeader = styled.th`
32
- width: 40px;
32
+ width: 56px;
33
+ z-index: 10;
33
34
  position: sticky;
34
35
  right: calc(-1 * ${tableSidePadding});
35
36
  background-color: ${"var(--ds-surface, #FFF)"};
@@ -43,6 +44,7 @@ const ColumnPickerHeader = styled.th`
43
44
  &:last-of-type {
44
45
  padding-right: ${tableSidePadding};
45
46
  }
47
+ text-align: right; /* In case when TH itself is bigger we want to keep picker at the right side */
46
48
  `;
47
49
  const truncatedCellStyles = css({
48
50
  overflow: 'hidden',
@@ -56,6 +58,7 @@ const scrollableContainerStyles = css({
56
58
  borderRadius: "var(--ds-border-radius-100, 3px)"
57
59
  });
58
60
  const tableStyles = css({
61
+ tableLayout: 'fixed',
59
62
  // These styles are needed to prevent thead bottom border from scrolling away.
60
63
  // This happens because it is sticky. https://stackoverflow.com/questions/50361698/border-style-do-not-work-with-sticky-position-element
61
64
  borderCollapse: 'separate',
@@ -74,7 +77,7 @@ function extractIndex(data) {
74
77
  invariant(typeof index === 'number');
75
78
  return index;
76
79
  }
77
- export const orderColumns = (columns, visibleColumnKeys) => {
80
+ export const getOrderedColumns = (columns, visibleColumnKeys) => {
78
81
  const visibleColumns = columns.filter(column => visibleColumnKeys.includes(column.key)).sort((a, b) => {
79
82
  const indexB = visibleColumnKeys.indexOf(b.key);
80
83
  const indexA = visibleColumnKeys.indexOf(a.key);
@@ -84,25 +87,28 @@ export const orderColumns = (columns, visibleColumnKeys) => {
84
87
  return [...visibleColumns, ...invisibleColumns];
85
88
  };
86
89
  const BASE_WIDTH = 8;
87
- function getColumnWidth(key, type) {
88
- const keyBasedWidth = {
89
- assignee: BASE_WIDTH * 22,
90
- labels: BASE_WIDTH * 22,
91
- priority: BASE_WIDTH * 8,
92
- status: BASE_WIDTH * 18,
93
- summary: BASE_WIDTH * 45,
94
- description: BASE_WIDTH * 31.25
95
- };
96
- if (keyBasedWidth[key]) {
97
- return keyBasedWidth[key];
90
+ const DEFAULT_WIDTH = BASE_WIDTH * 22;
91
+ export const COLUMN_MIN_WIDTH = BASE_WIDTH * 3;
92
+ const keyBasedWidthMap = {
93
+ priority: BASE_WIDTH * 4,
94
+ status: BASE_WIDTH * 18,
95
+ summary: BASE_WIDTH * 45,
96
+ description: BASE_WIDTH * 31.25,
97
+ type: BASE_WIDTH * 4,
98
+ key: BASE_WIDTH * 13
99
+ };
100
+ function getDefaultColumnWidth(key, type) {
101
+ const keyBasedWidth = keyBasedWidthMap[key];
102
+ if (keyBasedWidth) {
103
+ return keyBasedWidth;
98
104
  }
99
105
  switch (type) {
100
106
  case 'date':
101
107
  return BASE_WIDTH * 14;
102
- case 'string':
103
- return BASE_WIDTH * 22;
108
+ case 'icon':
109
+ return BASE_WIDTH * 4;
104
110
  default:
105
- return undefined;
111
+ return DEFAULT_WIDTH;
106
112
  }
107
113
  }
108
114
  export const IssueLikeDataTableView = ({
@@ -114,6 +120,8 @@ export const IssueLikeDataTableView = ({
114
120
  renderItem = fallbackRenderType,
115
121
  visibleColumnKeys,
116
122
  onVisibleColumnKeysChange,
123
+ columnCustomSizes,
124
+ onColumnResize,
117
125
  status,
118
126
  hasNextPage,
119
127
  scrollableContainerHeight,
@@ -121,14 +129,15 @@ export const IssueLikeDataTableView = ({
121
129
  extensionKey
122
130
  }) => {
123
131
  const tableId = useMemo(() => Symbol('unique-id'), []);
132
+ const tableHeaderRowRef = useRef(null);
124
133
  const [lastRowElement, setLastRowElement] = useState(null);
125
134
  const [hasFullSchema, setHasFullSchema] = useState(false);
126
135
  const isBottomOfTableVisibleRaw = useIsOnScreen(lastRowElement);
127
136
  const containerRef = useRef(null);
128
- const [orderedColumns, setOrderedColumns] = useState(() => orderColumns([...columns], [...visibleColumnKeys]));
137
+ const [orderedColumns, setOrderedColumns] = useState(() => getOrderedColumns([...columns], [...visibleColumnKeys]));
129
138
  useEffect(() => {
130
139
  if (!hasFullSchema) {
131
- setOrderedColumns(orderColumns([...columns], [...visibleColumnKeys]));
140
+ setOrderedColumns(getOrderedColumns([...columns], [...visibleColumnKeys]));
132
141
  }
133
142
  }, [columns, visibleColumnKeys, hasFullSchema]);
134
143
  useEffect(() => {
@@ -147,24 +156,8 @@ export const IssueLikeDataTableView = ({
147
156
  // or some other combination.
148
157
 
149
158
  const identityColumnKey = 'id';
150
- const loadingRow = useMemo(() => ({
151
- key: 'loading',
152
- cells: visibleSortedColumns.map(({
153
- key
154
- }) => {
155
- const content = jsx(Skeleton, {
156
- borderRadius: 8,
157
- width: "100%",
158
- height: 14,
159
- testId: "issues-table-row-loading"
160
- });
161
- return {
162
- key,
163
- content
164
- };
165
- })
166
- }), [visibleSortedColumns]);
167
- const headColumns = useMemo(() => visibleSortedColumns.map(({
159
+ const getColumnWidth = useCallback((key, type) => (columnCustomSizes === null || columnCustomSizes === void 0 ? void 0 : columnCustomSizes[key]) || getDefaultColumnWidth(key, type), [columnCustomSizes]);
160
+ const headerColumns = useMemo(() => visibleSortedColumns.map(({
168
161
  key,
169
162
  title,
170
163
  type
@@ -172,8 +165,20 @@ export const IssueLikeDataTableView = ({
172
165
  key,
173
166
  content: title,
174
167
  shouldTruncate: true,
175
- maxWidth: getColumnWidth(key, type)
176
- })), [visibleSortedColumns]);
168
+ width: getColumnWidth(key, type)
169
+ })), [getColumnWidth, visibleSortedColumns]);
170
+ const loadingRow = useMemo(() => ({
171
+ key: 'loading',
172
+ cells: headerColumns.map(column => ({
173
+ ...column,
174
+ content: jsx(Skeleton, {
175
+ borderRadius: 8,
176
+ width: "100%",
177
+ height: 14,
178
+ testId: "issues-table-row-loading"
179
+ })
180
+ }))
181
+ }), [headerColumns]);
177
182
  useEffect(() => {
178
183
  if (isBottomOfTableVisibleRaw && hasNextPage && status === 'resolved') {
179
184
  void onNextPage({
@@ -193,32 +198,38 @@ export const IssueLikeDataTableView = ({
193
198
  }
194
199
  return combine(monitorForElements({
195
200
  onDragStart: ({
196
- location
201
+ location,
202
+ source
197
203
  }) => {
198
- var _containerRef$current;
199
204
  initialAutoScrollerClientY.current = location.current.input.clientY;
200
- autoScroller.start({
201
- input: {
202
- ...location.current.input,
203
- clientY:
204
- // The goal is to have clientY the same and in the middle of the scrollable area
205
- // Since clientY is taken from to of the viewport we need to plus that in order to get
206
- // middle of the scrollable area in reference to the viewport
207
- (initialAutoScrollerClientY.current || 0) + (((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.offsetHeight) || 0) / 2
208
- },
209
- behavior: 'container-only'
210
- });
205
+ if (source.data.type === 'table-header') {
206
+ var _containerRef$current;
207
+ autoScroller.start({
208
+ input: {
209
+ ...location.current.input,
210
+ clientY:
211
+ // The goal is to have clientY the same and in the middle of the scrollable area
212
+ // Since clientY is taken from to of the viewport we need to plus that in order to get
213
+ // middle of the scrollable area in reference to the viewport
214
+ (initialAutoScrollerClientY.current || 0) + (((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.offsetHeight) || 0) / 2
215
+ },
216
+ behavior: 'container-only'
217
+ });
218
+ }
211
219
  },
212
220
  onDrag: ({
213
- location
221
+ location,
222
+ source
214
223
  }) => {
215
- var _containerRef$current2;
216
- autoScroller.updateInput({
217
- input: {
218
- ...location.current.input,
219
- clientY: (initialAutoScrollerClientY.current || 0) + (((_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.offsetHeight) || 0) / 2
220
- }
221
- });
224
+ if (source.data.type === 'table-header') {
225
+ var _containerRef$current2;
226
+ autoScroller.updateInput({
227
+ input: {
228
+ ...location.current.input,
229
+ clientY: (initialAutoScrollerClientY.current || 0) + (((_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.offsetHeight) || 0) / 2
230
+ }
231
+ });
232
+ }
222
233
  },
223
234
  onDrop({
224
235
  source,
@@ -247,9 +258,7 @@ export const IssueLikeDataTableView = ({
247
258
  onVisibleColumnKeysChange === null || onVisibleColumnKeysChange === void 0 ? void 0 : onVisibleColumnKeysChange([...newColumnKeyOrder]);
248
259
 
249
260
  // We sort columns (whole objects) according to their key order presented in newColumnKeyOrder
250
- setOrderedColumns(columns => {
251
- return orderColumns([...columns], [...newColumnKeyOrder]);
252
- });
261
+ setOrderedColumns(columns => getOrderedColumns([...columns], [...newColumnKeyOrder]));
253
262
  }
254
263
  }
255
264
  }));
@@ -270,11 +279,11 @@ export const IssueLikeDataTableView = ({
270
279
  return {
271
280
  key,
272
281
  content: content.length === 1 ? content[0] : content,
273
- maxWidth: getColumnWidth(key, type)
282
+ width: getColumnWidth(key, type)
274
283
  };
275
284
  }),
276
285
  ref: rowIndex === items.length - 1 ? el => setLastRowElement(el) : undefined
277
- })), [identityColumnKey, renderItem, items, visibleSortedColumns]);
286
+ })), [items, visibleSortedColumns, getColumnWidth, renderItem]);
278
287
  const rows = useMemo(() => {
279
288
  if (status !== 'loading') {
280
289
  return tableRows;
@@ -328,10 +337,12 @@ export const IssueLikeDataTableView = ({
328
337
  }, jsx("thead", {
329
338
  "data-testid": testId && `${testId}--head`,
330
339
  css: [noDefaultBorderStyles, tableHeadStyles]
331
- }, jsx("tr", null, headColumns.map(({
340
+ }, jsx("tr", {
341
+ ref: tableHeaderRowRef
342
+ }, headerColumns.map(({
332
343
  key,
333
344
  content,
334
- maxWidth
345
+ width
335
346
  }, cellIndex) => {
336
347
  const heading = jsx(Tooltip, {
337
348
  content: content,
@@ -362,7 +373,8 @@ export const IssueLikeDataTableView = ({
362
373
  key: key,
363
374
  id: key,
364
375
  index: cellIndex,
365
- maxWidth: maxWidth,
376
+ width: width,
377
+ onWidthChange: onColumnResize === null || onColumnResize === void 0 ? void 0 : onColumnResize.bind(null, key),
366
378
  dndPreviewHeight: ((_containerRef$current3 = containerRef.current) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.offsetHeight) || 0,
367
379
  dragPreview: dragPreview
368
380
  }, heading);
@@ -371,9 +383,7 @@ export const IssueLikeDataTableView = ({
371
383
  key: key,
372
384
  "data-testid": `${key}-column-heading`,
373
385
  style: {
374
- // this keeps the column headers from collapsing horizontally during loading states
375
- minWidth: maxWidth,
376
- maxWidth
386
+ width
377
387
  }
378
388
  }, heading);
379
389
  }
@@ -397,10 +407,10 @@ export const IssueLikeDataTableView = ({
397
407
  }, cells.map(({
398
408
  key: cellKey,
399
409
  content,
400
- maxWidth
410
+ width
401
411
  }, cellIndex) => {
402
412
  let loadingRowStyle = {
403
- maxWidth
413
+ width
404
414
  };
405
415
  // extra padding is required around skeleton loader to avoid vertical jumps when data loads
406
416
  if (key !== null && key !== void 0 && key.includes('loading')) {
@@ -0,0 +1,14 @@
1
+ export const fieldValuesEmptyResponse = {
2
+ data: {
3
+ jira: {
4
+ jqlBuilder: {
5
+ fieldValues: {
6
+ totalCount: 0,
7
+ pageInfo: {},
8
+ edges: []
9
+ }
10
+ }
11
+ }
12
+ }
13
+ };
14
+ export const fieldValuesEmptyResponseMapped = [];
@@ -0,0 +1,149 @@
1
+ export const fieldValuesResponseForAssignees = {
2
+ data: {
3
+ jira: {
4
+ jqlBuilder: {
5
+ fieldValues: {
6
+ totalCount: 21,
7
+ pageInfo: {
8
+ endCursor: 'YXJyYXljb25uZWN0aW9uOjk='
9
+ },
10
+ edges: [{
11
+ node: {
12
+ jqlTerm: 'membersOf(administrators)',
13
+ displayName: 'administrators',
14
+ group: {
15
+ name: 'administrators'
16
+ }
17
+ }
18
+ }, {
19
+ node: {
20
+ jqlTerm: '62df272c3aaeedcae755c533',
21
+ displayName: 'Atlas for Jira (staging)',
22
+ user: {
23
+ picture: 'https://secure.gravatar.com/avatar/1c65adef3d88d3eb97507f4952523df0?d=https%3A%2F%2Favatar-management--avatars.us-west-2.staging.public.atl-paas.net%2Fdefault-avatar-2.png'
24
+ }
25
+ }
26
+ }, {
27
+ node: {
28
+ jqlTerm: 'membersOf(atlassian-addons-admin)',
29
+ displayName: 'atlassian-addons-admin',
30
+ group: {
31
+ name: 'atlassian-addons-admin'
32
+ }
33
+ }
34
+ }, {
35
+ node: {
36
+ jqlTerm: 'membersOf(confluence-admins-nmccormick2)',
37
+ displayName: 'confluence-admins-nmccormick2',
38
+ group: {
39
+ name: 'confluence-admins-nmccormick2'
40
+ }
41
+ }
42
+ }, {
43
+ node: {
44
+ jqlTerm: 'membersOf(confluence-guests-nmccormick2)',
45
+ displayName: 'confluence-guests-nmccormick2',
46
+ group: {
47
+ name: 'confluence-guests-nmccormick2'
48
+ }
49
+ }
50
+ }, {
51
+ node: {
52
+ jqlTerm: 'membersOf(confluence-user-access-admins-nmccormick2)',
53
+ displayName: 'confluence-user-access-admins-nmccormick2',
54
+ group: {
55
+ name: 'confluence-user-access-admins-nmccormick2'
56
+ }
57
+ }
58
+ }, {
59
+ node: {
60
+ jqlTerm: 'membersOf(confluence-users-nmccormick2)',
61
+ displayName: 'confluence-users-nmccormick2',
62
+ group: {
63
+ name: 'confluence-users-nmccormick2'
64
+ }
65
+ }
66
+ }, {
67
+ node: {
68
+ jqlTerm: '63d708e8c3eb74ad8e949fef',
69
+ displayName: 'eu-test',
70
+ user: {
71
+ picture: 'https://secure.gravatar.com/avatar/587a67c5b8494943560a3a24ada6408d?d=https%3A%2F%2Favatar-management--avatars.us-west-2.staging.public.atl-paas.net%2Finitials%2FE-4.png'
72
+ }
73
+ }
74
+ }, {
75
+ node: {
76
+ jqlTerm: '5d959053ede9300dd30c304d',
77
+ displayName: 'GitLab for Jira (gitlab.com)',
78
+ user: {
79
+ picture: 'https://secure.gravatar.com/avatar/38baf1356a59e6822365c81b245ba811?d=https%3A%2F%2Favatar-management--avatars.us-west-2.staging.public.atl-paas.net%2Fdefault-avatar-5.png'
80
+ }
81
+ }
82
+ }, {
83
+ node: {
84
+ jqlTerm: 'membersOf(jira-admins-nmccormick2)',
85
+ displayName: 'jira-admins-nmccormick2',
86
+ group: {
87
+ name: 'jira-admins-nmccormick2'
88
+ }
89
+ }
90
+ }]
91
+ }
92
+ }
93
+ }
94
+ }
95
+ };
96
+ export const fieldValuesResponseForAssigneesMapped = [{
97
+ isGroup: true,
98
+ label: 'administrators',
99
+ optionType: 'avatarLabel',
100
+ value: 'membersOf(administrators)'
101
+ }, {
102
+ avatar: 'https://secure.gravatar.com/avatar/1c65adef3d88d3eb97507f4952523df0?d=https%3A%2F%2Favatar-management--avatars.us-west-2.staging.public.atl-paas.net%2Fdefault-avatar-2.png',
103
+ isSquare: true,
104
+ label: 'Atlas for Jira (staging)',
105
+ optionType: 'avatarLabel',
106
+ value: '62df272c3aaeedcae755c533'
107
+ }, {
108
+ isGroup: true,
109
+ label: 'atlassian-addons-admin',
110
+ optionType: 'avatarLabel',
111
+ value: 'membersOf(atlassian-addons-admin)'
112
+ }, {
113
+ isGroup: true,
114
+ label: 'confluence-admins-nmccormick2',
115
+ optionType: 'avatarLabel',
116
+ value: 'membersOf(confluence-admins-nmccormick2)'
117
+ }, {
118
+ isGroup: true,
119
+ label: 'confluence-guests-nmccormick2',
120
+ optionType: 'avatarLabel',
121
+ value: 'membersOf(confluence-guests-nmccormick2)'
122
+ }, {
123
+ isGroup: true,
124
+ label: 'confluence-user-access-admins-nmccormick2',
125
+ optionType: 'avatarLabel',
126
+ value: 'membersOf(confluence-user-access-admins-nmccormick2)'
127
+ }, {
128
+ isGroup: true,
129
+ label: 'confluence-users-nmccormick2',
130
+ optionType: 'avatarLabel',
131
+ value: 'membersOf(confluence-users-nmccormick2)'
132
+ }, {
133
+ avatar: 'https://secure.gravatar.com/avatar/587a67c5b8494943560a3a24ada6408d?d=https%3A%2F%2Favatar-management--avatars.us-west-2.staging.public.atl-paas.net%2Finitials%2FE-4.png',
134
+ isSquare: true,
135
+ label: 'eu-test',
136
+ optionType: 'avatarLabel',
137
+ value: '63d708e8c3eb74ad8e949fef'
138
+ }, {
139
+ avatar: 'https://secure.gravatar.com/avatar/38baf1356a59e6822365c81b245ba811?d=https%3A%2F%2Favatar-management--avatars.us-west-2.staging.public.atl-paas.net%2Fdefault-avatar-5.png',
140
+ isSquare: true,
141
+ label: 'GitLab for Jira (gitlab.com)',
142
+ optionType: 'avatarLabel',
143
+ value: '5d959053ede9300dd30c304d'
144
+ }, {
145
+ isGroup: true,
146
+ label: 'jira-admins-nmccormick2',
147
+ optionType: 'avatarLabel',
148
+ value: 'membersOf(jira-admins-nmccormick2)'
149
+ }];
@@ -0,0 +1,76 @@
1
+ export const fieldValuesResponseForProjects = {
2
+ data: {
3
+ jira: {
4
+ jqlBuilder: {
5
+ fieldValues: {
6
+ totalCount: 4,
7
+ pageInfo: {
8
+ endCursor: 'YXJyYXljb25uZWN0aW9uOjM='
9
+ },
10
+ edges: [{
11
+ node: {
12
+ jqlTerm: '"My IT TEST"',
13
+ displayName: 'My IT TEST',
14
+ project: {
15
+ avatar: {
16
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10403?size=small'
17
+ }
18
+ }
19
+ }
20
+ }, {
21
+ node: {
22
+ jqlTerm: 'Test',
23
+ displayName: 'Test',
24
+ project: {
25
+ avatar: {
26
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10411?size=small'
27
+ }
28
+ }
29
+ }
30
+ }, {
31
+ node: {
32
+ jqlTerm: '"Test rights"',
33
+ displayName: 'Test rights',
34
+ project: {
35
+ avatar: {
36
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10405?size=small'
37
+ }
38
+ }
39
+ }
40
+ }, {
41
+ node: {
42
+ jqlTerm: 'Test2',
43
+ displayName: 'Test2',
44
+ project: {
45
+ avatar: {
46
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10410?size=small'
47
+ }
48
+ }
49
+ }
50
+ }]
51
+ }
52
+ }
53
+ }
54
+ }
55
+ };
56
+ export const fieldValuesResponseForProjectsMapped = [{
57
+ icon: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10403?size=small',
58
+ label: 'My IT TEST',
59
+ optionType: 'iconLabel',
60
+ value: '"My IT TEST"'
61
+ }, {
62
+ icon: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10411?size=small',
63
+ label: 'Test',
64
+ optionType: 'iconLabel',
65
+ value: 'Test'
66
+ }, {
67
+ icon: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10405?size=small',
68
+ label: 'Test rights',
69
+ optionType: 'iconLabel',
70
+ value: '"Test rights"'
71
+ }, {
72
+ icon: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10410?size=small',
73
+ label: 'Test2',
74
+ optionType: 'iconLabel',
75
+ value: 'Test2'
76
+ }];
@@ -0,0 +1,81 @@
1
+ export const fieldValuesResponseForStatuses = {
2
+ data: {
3
+ jira: {
4
+ jqlBuilder: {
5
+ fieldValues: {
6
+ totalCount: 27,
7
+ pageInfo: {
8
+ endCursor: 'YXJyYXljb25uZWN0aW9uOjQ='
9
+ },
10
+ edges: [{
11
+ node: {
12
+ jqlTerm: 'Authorize',
13
+ displayName: 'Authorize',
14
+ statusCategory: {
15
+ colorName: 'YELLOW'
16
+ }
17
+ }
18
+ }, {
19
+ node: {
20
+ jqlTerm: '"Awaiting approval"',
21
+ displayName: 'Awaiting approval',
22
+ statusCategory: {
23
+ colorName: 'YELLOW'
24
+ }
25
+ }
26
+ }, {
27
+ node: {
28
+ jqlTerm: '"Awaiting implementation"',
29
+ displayName: 'Awaiting implementation',
30
+ statusCategory: {
31
+ colorName: 'YELLOW'
32
+ }
33
+ }
34
+ }, {
35
+ node: {
36
+ jqlTerm: 'Canceled',
37
+ displayName: 'Canceled',
38
+ statusCategory: {
39
+ colorName: 'GREEN'
40
+ }
41
+ }
42
+ }, {
43
+ node: {
44
+ jqlTerm: 'Closed',
45
+ displayName: 'Closed',
46
+ statusCategory: {
47
+ colorName: 'GREEN'
48
+ }
49
+ }
50
+ }]
51
+ }
52
+ }
53
+ }
54
+ }
55
+ };
56
+ export const fieldValuesResponseForStatusesMapped = [{
57
+ appearance: 'inprogress',
58
+ label: 'Authorize',
59
+ optionType: 'lozengeLabel',
60
+ value: 'Authorize'
61
+ }, {
62
+ appearance: 'inprogress',
63
+ label: 'Awaiting approval',
64
+ optionType: 'lozengeLabel',
65
+ value: '"Awaiting approval"'
66
+ }, {
67
+ appearance: 'inprogress',
68
+ label: 'Awaiting implementation',
69
+ optionType: 'lozengeLabel',
70
+ value: '"Awaiting implementation"'
71
+ }, {
72
+ appearance: 'success',
73
+ label: 'Canceled',
74
+ optionType: 'lozengeLabel',
75
+ value: 'Canceled'
76
+ }, {
77
+ appearance: 'success',
78
+ label: 'Closed',
79
+ optionType: 'lozengeLabel',
80
+ value: 'Closed'
81
+ }];