@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
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.orderColumns = exports.IssueLikeDataTableView = exports.EmptyState = void 0;
7
+ exports.getOrderedColumns = exports.IssueLikeDataTableView = exports.EmptyState = exports.COLUMN_MIN_WIDTH = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -44,7 +44,7 @@ var tableHeadStyles = (0, _react2.css)({
44
44
  top: 0,
45
45
  zIndex: _zindex.stickyTableHeadersIndex
46
46
  });
47
- var ColumnPickerHeader = _styled.default.th(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: 40px;\n position: sticky;\n right: calc(-1 * ", ");\n background-color: ", ";\n border-bottom: 2px solid ", "; /* It is required to have solid (not half-transparent) color because of this gradient business bellow */\n background: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0) 0%,\n ", " 10%\n );\n vertical-align: middle; /* Keeps dropdown button in the middle */\n &:last-of-type {\n padding-right: ", ";\n }\n"])), tableSidePadding, "var(--ds-surface, #FFF)", "var(--ds-background-accent-gray-subtler, ".concat(_colors.N40, ")"), "var(--ds-surface, #FFF)", tableSidePadding);
47
+ var ColumnPickerHeader = _styled.default.th(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: 56px;\n z-index: 10;\n position: sticky;\n right: calc(-1 * ", ");\n background-color: ", ";\n border-bottom: 2px solid ", "; /* It is required to have solid (not half-transparent) color because of this gradient business bellow */\n background: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0) 0%,\n ", " 10%\n );\n vertical-align: middle; /* Keeps dropdown button in the middle */\n &:last-of-type {\n padding-right: ", ";\n }\n text-align: right; /* In case when TH itself is bigger we want to keep picker at the right side */\n"])), tableSidePadding, "var(--ds-surface, #FFF)", "var(--ds-background-accent-gray-subtler, ".concat(_colors.N40, ")"), "var(--ds-surface, #FFF)", tableSidePadding);
48
48
  var truncatedCellStyles = (0, _react2.css)({
49
49
  overflow: 'hidden',
50
50
  textOverflow: 'ellipsis',
@@ -57,6 +57,7 @@ var scrollableContainerStyles = (0, _react2.css)({
57
57
  borderRadius: "var(--ds-border-radius-100, 3px)"
58
58
  });
59
59
  var tableStyles = (0, _react2.css)({
60
+ tableLayout: 'fixed',
60
61
  // These styles are needed to prevent thead bottom border from scrolling away.
61
62
  // This happens because it is sticky. https://stackoverflow.com/questions/50361698/border-style-do-not-work-with-sticky-position-element
62
63
  borderCollapse: 'separate',
@@ -73,7 +74,7 @@ function extractIndex(data) {
73
74
  (0, _tinyInvariant.default)(typeof index === 'number');
74
75
  return index;
75
76
  }
76
- var orderColumns = exports.orderColumns = function orderColumns(columns, visibleColumnKeys) {
77
+ var getOrderedColumns = exports.getOrderedColumns = function getOrderedColumns(columns, visibleColumnKeys) {
77
78
  var visibleColumns = columns.filter(function (column) {
78
79
  return visibleColumnKeys.includes(column.key);
79
80
  }).sort(function (a, b) {
@@ -87,25 +88,28 @@ var orderColumns = exports.orderColumns = function orderColumns(columns, visible
87
88
  return [].concat((0, _toConsumableArray2.default)(visibleColumns), (0, _toConsumableArray2.default)(invisibleColumns));
88
89
  };
89
90
  var BASE_WIDTH = 8;
90
- function getColumnWidth(key, type) {
91
- var keyBasedWidth = {
92
- assignee: BASE_WIDTH * 22,
93
- labels: BASE_WIDTH * 22,
94
- priority: BASE_WIDTH * 8,
95
- status: BASE_WIDTH * 18,
96
- summary: BASE_WIDTH * 45,
97
- description: BASE_WIDTH * 31.25
98
- };
99
- if (keyBasedWidth[key]) {
100
- return keyBasedWidth[key];
91
+ var DEFAULT_WIDTH = BASE_WIDTH * 22;
92
+ var COLUMN_MIN_WIDTH = exports.COLUMN_MIN_WIDTH = BASE_WIDTH * 3;
93
+ var keyBasedWidthMap = {
94
+ priority: BASE_WIDTH * 4,
95
+ status: BASE_WIDTH * 18,
96
+ summary: BASE_WIDTH * 45,
97
+ description: BASE_WIDTH * 31.25,
98
+ type: BASE_WIDTH * 4,
99
+ key: BASE_WIDTH * 13
100
+ };
101
+ function getDefaultColumnWidth(key, type) {
102
+ var keyBasedWidth = keyBasedWidthMap[key];
103
+ if (keyBasedWidth) {
104
+ return keyBasedWidth;
101
105
  }
102
106
  switch (type) {
103
107
  case 'date':
104
108
  return BASE_WIDTH * 14;
105
- case 'string':
106
- return BASE_WIDTH * 22;
109
+ case 'icon':
110
+ return BASE_WIDTH * 4;
107
111
  default:
108
- return undefined;
112
+ return DEFAULT_WIDTH;
109
113
  }
110
114
  }
111
115
  var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLikeDataTableView(_ref) {
@@ -118,6 +122,8 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
118
122
  renderItem = _ref$renderItem === void 0 ? _renderType.fallbackRenderType : _ref$renderItem,
119
123
  visibleColumnKeys = _ref.visibleColumnKeys,
120
124
  onVisibleColumnKeysChange = _ref.onVisibleColumnKeysChange,
125
+ columnCustomSizes = _ref.columnCustomSizes,
126
+ onColumnResize = _ref.onColumnResize,
121
127
  status = _ref.status,
122
128
  hasNextPage = _ref.hasNextPage,
123
129
  scrollableContainerHeight = _ref.scrollableContainerHeight,
@@ -126,6 +132,7 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
126
132
  var tableId = (0, _react.useMemo)(function () {
127
133
  return Symbol('unique-id');
128
134
  }, []);
135
+ var tableHeaderRowRef = (0, _react.useRef)(null);
129
136
  var _useState = (0, _react.useState)(null),
130
137
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
131
138
  lastRowElement = _useState2[0],
@@ -137,14 +144,14 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
137
144
  var isBottomOfTableVisibleRaw = (0, _useIsOnScreen.useIsOnScreen)(lastRowElement);
138
145
  var containerRef = (0, _react.useRef)(null);
139
146
  var _useState5 = (0, _react.useState)(function () {
140
- return orderColumns((0, _toConsumableArray2.default)(columns), (0, _toConsumableArray2.default)(visibleColumnKeys));
147
+ return getOrderedColumns((0, _toConsumableArray2.default)(columns), (0, _toConsumableArray2.default)(visibleColumnKeys));
141
148
  }),
142
149
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
143
150
  orderedColumns = _useState6[0],
144
151
  setOrderedColumns = _useState6[1];
145
152
  (0, _react.useEffect)(function () {
146
153
  if (!hasFullSchema) {
147
- setOrderedColumns(orderColumns((0, _toConsumableArray2.default)(columns), (0, _toConsumableArray2.default)(visibleColumnKeys)));
154
+ setOrderedColumns(getOrderedColumns((0, _toConsumableArray2.default)(columns), (0, _toConsumableArray2.default)(visibleColumnKeys)));
148
155
  }
149
156
  }, [columns, visibleColumnKeys, hasFullSchema]);
150
157
  (0, _react.useEffect)(function () {
@@ -168,37 +175,37 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
168
175
  // or some other combination.
169
176
 
170
177
  var identityColumnKey = 'id';
171
- var loadingRow = (0, _react.useMemo)(function () {
172
- return {
173
- key: 'loading',
174
- cells: visibleSortedColumns.map(function (_ref3) {
175
- var key = _ref3.key;
176
- var content = (0, _react2.jsx)(_linkingCommon.Skeleton, {
177
- borderRadius: 8,
178
- width: "100%",
179
- height: 14,
180
- testId: "issues-table-row-loading"
181
- });
182
- return {
183
- key: key,
184
- content: content
185
- };
186
- })
187
- };
188
- }, [visibleSortedColumns]);
189
- var headColumns = (0, _react.useMemo)(function () {
190
- return visibleSortedColumns.map(function (_ref4) {
191
- var key = _ref4.key,
192
- title = _ref4.title,
193
- type = _ref4.type;
178
+ var getColumnWidth = (0, _react.useCallback)(function (key, type) {
179
+ return (columnCustomSizes === null || columnCustomSizes === void 0 ? void 0 : columnCustomSizes[key]) || getDefaultColumnWidth(key, type);
180
+ }, [columnCustomSizes]);
181
+ var headerColumns = (0, _react.useMemo)(function () {
182
+ return visibleSortedColumns.map(function (_ref3) {
183
+ var key = _ref3.key,
184
+ title = _ref3.title,
185
+ type = _ref3.type;
194
186
  return {
195
187
  key: key,
196
188
  content: title,
197
189
  shouldTruncate: true,
198
- maxWidth: getColumnWidth(key, type)
190
+ width: getColumnWidth(key, type)
199
191
  };
200
192
  });
201
- }, [visibleSortedColumns]);
193
+ }, [getColumnWidth, visibleSortedColumns]);
194
+ var loadingRow = (0, _react.useMemo)(function () {
195
+ return {
196
+ key: 'loading',
197
+ cells: headerColumns.map(function (column) {
198
+ return _objectSpread(_objectSpread({}, column), {}, {
199
+ content: (0, _react2.jsx)(_linkingCommon.Skeleton, {
200
+ borderRadius: 8,
201
+ width: "100%",
202
+ height: 14,
203
+ testId: "issues-table-row-loading"
204
+ })
205
+ });
206
+ })
207
+ };
208
+ }, [headerColumns]);
202
209
  (0, _react.useEffect)(function () {
203
210
  if (isBottomOfTableVisibleRaw && hasNextPage && status === 'resolved') {
204
211
  void onNextPage({
@@ -217,33 +224,39 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
217
224
  return;
218
225
  }
219
226
  return (0, _combine.combine)((0, _element.monitorForElements)({
220
- onDragStart: function onDragStart(_ref5) {
221
- var _containerRef$current;
222
- var location = _ref5.location;
227
+ onDragStart: function onDragStart(_ref4) {
228
+ var location = _ref4.location,
229
+ source = _ref4.source;
223
230
  initialAutoScrollerClientY.current = location.current.input.clientY;
224
- _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.start({
225
- input: _objectSpread(_objectSpread({}, location.current.input), {}, {
226
- clientY:
227
- // The goal is to have clientY the same and in the middle of the scrollable area
228
- // Since clientY is taken from to of the viewport we need to plus that in order to get
229
- // middle of the scrollable area in reference to the viewport
230
- (initialAutoScrollerClientY.current || 0) + (((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.offsetHeight) || 0) / 2
231
- }),
232
- behavior: 'container-only'
233
- });
231
+ if (source.data.type === 'table-header') {
232
+ var _containerRef$current;
233
+ _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.start({
234
+ input: _objectSpread(_objectSpread({}, location.current.input), {}, {
235
+ clientY:
236
+ // The goal is to have clientY the same and in the middle of the scrollable area
237
+ // Since clientY is taken from to of the viewport we need to plus that in order to get
238
+ // middle of the scrollable area in reference to the viewport
239
+ (initialAutoScrollerClientY.current || 0) + (((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.offsetHeight) || 0) / 2
240
+ }),
241
+ behavior: 'container-only'
242
+ });
243
+ }
234
244
  },
235
- onDrag: function onDrag(_ref6) {
236
- var _containerRef$current2;
237
- var location = _ref6.location;
238
- _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.updateInput({
239
- input: _objectSpread(_objectSpread({}, location.current.input), {}, {
240
- clientY: (initialAutoScrollerClientY.current || 0) + (((_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.offsetHeight) || 0) / 2
241
- })
242
- });
245
+ onDrag: function onDrag(_ref5) {
246
+ var location = _ref5.location,
247
+ source = _ref5.source;
248
+ if (source.data.type === 'table-header') {
249
+ var _containerRef$current2;
250
+ _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.updateInput({
251
+ input: _objectSpread(_objectSpread({}, location.current.input), {}, {
252
+ clientY: (initialAutoScrollerClientY.current || 0) + (((_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.offsetHeight) || 0) / 2
253
+ })
254
+ });
255
+ }
243
256
  },
244
- onDrop: function onDrop(_ref7) {
245
- var source = _ref7.source,
246
- location = _ref7.location;
257
+ onDrop: function onDrop(_ref6) {
258
+ var source = _ref6.source,
259
+ location = _ref6.location;
247
260
  _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.stop();
248
261
  if (location.current.dropTargets.length === 0) {
249
262
  return;
@@ -268,7 +281,7 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
268
281
 
269
282
  // We sort columns (whole objects) according to their key order presented in newColumnKeyOrder
270
283
  setOrderedColumns(function (columns) {
271
- return orderColumns((0, _toConsumableArray2.default)(columns), (0, _toConsumableArray2.default)(newColumnKeyOrder));
284
+ return getOrderedColumns((0, _toConsumableArray2.default)(columns), (0, _toConsumableArray2.default)(newColumnKeyOrder));
272
285
  });
273
286
  }
274
287
  }
@@ -278,10 +291,10 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
278
291
  return items.map(function (newRowData, rowIndex) {
279
292
  return {
280
293
  key: "".concat(identityColumnKey && newRowData[identityColumnKey] && newRowData[identityColumnKey].data || rowIndex),
281
- cells: visibleSortedColumns.map(function (_ref8) {
294
+ cells: visibleSortedColumns.map(function (_ref7) {
282
295
  var _newRowData$key;
283
- var key = _ref8.key,
284
- type = _ref8.type;
296
+ var key = _ref7.key,
297
+ type = _ref7.type;
285
298
  var value = ((_newRowData$key = newRowData[key]) === null || _newRowData$key === void 0 ? void 0 : _newRowData$key.data) || newRowData[key];
286
299
  var values = Array.isArray(value) ? value : [value];
287
300
  var content = values.map(function (value) {
@@ -293,7 +306,7 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
293
306
  return {
294
307
  key: key,
295
308
  content: content.length === 1 ? content[0] : content,
296
- maxWidth: getColumnWidth(key, type)
309
+ width: getColumnWidth(key, type)
297
310
  };
298
311
  }),
299
312
  ref: rowIndex === items.length - 1 ? function (el) {
@@ -301,7 +314,7 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
301
314
  } : undefined
302
315
  };
303
316
  });
304
- }, [identityColumnKey, renderItem, items, visibleSortedColumns]);
317
+ }, [items, visibleSortedColumns, getColumnWidth, renderItem]);
305
318
  var rows = (0, _react.useMemo)(function () {
306
319
  if (status !== 'loading') {
307
320
  return tableRows;
@@ -371,10 +384,12 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
371
384
  }, (0, _react2.jsx)("thead", {
372
385
  "data-testid": testId && "".concat(testId, "--head"),
373
386
  css: [noDefaultBorderStyles, tableHeadStyles]
374
- }, (0, _react2.jsx)("tr", null, headColumns.map(function (_ref10, cellIndex) {
375
- var key = _ref10.key,
376
- content = _ref10.content,
377
- maxWidth = _ref10.maxWidth;
387
+ }, (0, _react2.jsx)("tr", {
388
+ ref: tableHeaderRowRef
389
+ }, headerColumns.map(function (_ref9, cellIndex) {
390
+ var key = _ref9.key,
391
+ content = _ref9.content,
392
+ width = _ref9.width;
378
393
  var heading = (0, _react2.jsx)(_tooltip.default, {
379
394
  content: content,
380
395
  tag: "span",
@@ -385,10 +400,10 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
385
400
  }, content));
386
401
  if (onVisibleColumnKeysChange && hasData) {
387
402
  var _containerRef$current3;
388
- var previewRows = tableRows.map(function (_ref11) {
389
- var cells = _ref11.cells;
390
- var cell = cells.find(function (_ref12) {
391
- var cellKey = _ref12.key;
403
+ var previewRows = tableRows.map(function (_ref10) {
404
+ var cells = _ref10.cells;
405
+ var cell = cells.find(function (_ref11) {
406
+ var cellKey = _ref11.key;
392
407
  return cellKey === key;
393
408
  });
394
409
  if (cell) {
@@ -404,7 +419,8 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
404
419
  key: key,
405
420
  id: key,
406
421
  index: cellIndex,
407
- maxWidth: maxWidth,
422
+ width: width,
423
+ onWidthChange: onColumnResize === null || onColumnResize === void 0 ? void 0 : onColumnResize.bind(null, key),
408
424
  dndPreviewHeight: ((_containerRef$current3 = containerRef.current) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.offsetHeight) || 0,
409
425
  dragPreview: dragPreview
410
426
  }, heading);
@@ -413,9 +429,7 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
413
429
  key: key,
414
430
  "data-testid": "".concat(key, "-column-heading"),
415
431
  style: {
416
- // this keeps the column headers from collapsing horizontally during loading states
417
- minWidth: maxWidth,
418
- maxWidth: maxWidth
432
+ width: width
419
433
  }
420
434
  }, heading);
421
435
  }
@@ -428,20 +442,20 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
428
442
  })))), (0, _react2.jsx)("tbody", {
429
443
  css: noDefaultBorderStyles,
430
444
  "data-testid": testId && "".concat(testId, "--body")
431
- }, rows.map(function (_ref13) {
432
- var key = _ref13.key,
433
- cells = _ref13.cells,
434
- ref = _ref13.ref;
445
+ }, rows.map(function (_ref12) {
446
+ var key = _ref12.key,
447
+ cells = _ref12.cells,
448
+ ref = _ref12.ref;
435
449
  return (0, _react2.jsx)("tr", {
436
450
  key: key,
437
451
  "data-testid": testId && "".concat(testId, "--row-").concat(key),
438
452
  ref: ref
439
- }, cells.map(function (_ref14, cellIndex) {
440
- var cellKey = _ref14.key,
441
- content = _ref14.content,
442
- maxWidth = _ref14.maxWidth;
453
+ }, cells.map(function (_ref13, cellIndex) {
454
+ var cellKey = _ref13.key,
455
+ content = _ref13.content,
456
+ width = _ref13.width;
443
457
  var loadingRowStyle = {
444
- maxWidth: maxWidth
458
+ width: width
445
459
  };
446
460
  // extra padding is required around skeleton loader to avoid vertical jumps when data loads
447
461
  if (key !== null && key !== void 0 && key.includes('loading')) {
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fieldValuesEmptyResponseMapped = exports.fieldValuesEmptyResponse = void 0;
7
+ var fieldValuesEmptyResponse = exports.fieldValuesEmptyResponse = {
8
+ data: {
9
+ jira: {
10
+ jqlBuilder: {
11
+ fieldValues: {
12
+ totalCount: 0,
13
+ pageInfo: {},
14
+ edges: []
15
+ }
16
+ }
17
+ }
18
+ }
19
+ };
20
+ var fieldValuesEmptyResponseMapped = exports.fieldValuesEmptyResponseMapped = [];
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fieldValuesResponseForAssigneesMapped = exports.fieldValuesResponseForAssignees = void 0;
7
+ var fieldValuesResponseForAssignees = exports.fieldValuesResponseForAssignees = {
8
+ data: {
9
+ jira: {
10
+ jqlBuilder: {
11
+ fieldValues: {
12
+ totalCount: 21,
13
+ pageInfo: {
14
+ endCursor: 'YXJyYXljb25uZWN0aW9uOjk='
15
+ },
16
+ edges: [{
17
+ node: {
18
+ jqlTerm: 'membersOf(administrators)',
19
+ displayName: 'administrators',
20
+ group: {
21
+ name: 'administrators'
22
+ }
23
+ }
24
+ }, {
25
+ node: {
26
+ jqlTerm: '62df272c3aaeedcae755c533',
27
+ displayName: 'Atlas for Jira (staging)',
28
+ user: {
29
+ 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'
30
+ }
31
+ }
32
+ }, {
33
+ node: {
34
+ jqlTerm: 'membersOf(atlassian-addons-admin)',
35
+ displayName: 'atlassian-addons-admin',
36
+ group: {
37
+ name: 'atlassian-addons-admin'
38
+ }
39
+ }
40
+ }, {
41
+ node: {
42
+ jqlTerm: 'membersOf(confluence-admins-nmccormick2)',
43
+ displayName: 'confluence-admins-nmccormick2',
44
+ group: {
45
+ name: 'confluence-admins-nmccormick2'
46
+ }
47
+ }
48
+ }, {
49
+ node: {
50
+ jqlTerm: 'membersOf(confluence-guests-nmccormick2)',
51
+ displayName: 'confluence-guests-nmccormick2',
52
+ group: {
53
+ name: 'confluence-guests-nmccormick2'
54
+ }
55
+ }
56
+ }, {
57
+ node: {
58
+ jqlTerm: 'membersOf(confluence-user-access-admins-nmccormick2)',
59
+ displayName: 'confluence-user-access-admins-nmccormick2',
60
+ group: {
61
+ name: 'confluence-user-access-admins-nmccormick2'
62
+ }
63
+ }
64
+ }, {
65
+ node: {
66
+ jqlTerm: 'membersOf(confluence-users-nmccormick2)',
67
+ displayName: 'confluence-users-nmccormick2',
68
+ group: {
69
+ name: 'confluence-users-nmccormick2'
70
+ }
71
+ }
72
+ }, {
73
+ node: {
74
+ jqlTerm: '63d708e8c3eb74ad8e949fef',
75
+ displayName: 'eu-test',
76
+ user: {
77
+ 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'
78
+ }
79
+ }
80
+ }, {
81
+ node: {
82
+ jqlTerm: '5d959053ede9300dd30c304d',
83
+ displayName: 'GitLab for Jira (gitlab.com)',
84
+ user: {
85
+ 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'
86
+ }
87
+ }
88
+ }, {
89
+ node: {
90
+ jqlTerm: 'membersOf(jira-admins-nmccormick2)',
91
+ displayName: 'jira-admins-nmccormick2',
92
+ group: {
93
+ name: 'jira-admins-nmccormick2'
94
+ }
95
+ }
96
+ }]
97
+ }
98
+ }
99
+ }
100
+ }
101
+ };
102
+ var fieldValuesResponseForAssigneesMapped = exports.fieldValuesResponseForAssigneesMapped = [{
103
+ isGroup: true,
104
+ label: 'administrators',
105
+ optionType: 'avatarLabel',
106
+ value: 'membersOf(administrators)'
107
+ }, {
108
+ 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',
109
+ isSquare: true,
110
+ label: 'Atlas for Jira (staging)',
111
+ optionType: 'avatarLabel',
112
+ value: '62df272c3aaeedcae755c533'
113
+ }, {
114
+ isGroup: true,
115
+ label: 'atlassian-addons-admin',
116
+ optionType: 'avatarLabel',
117
+ value: 'membersOf(atlassian-addons-admin)'
118
+ }, {
119
+ isGroup: true,
120
+ label: 'confluence-admins-nmccormick2',
121
+ optionType: 'avatarLabel',
122
+ value: 'membersOf(confluence-admins-nmccormick2)'
123
+ }, {
124
+ isGroup: true,
125
+ label: 'confluence-guests-nmccormick2',
126
+ optionType: 'avatarLabel',
127
+ value: 'membersOf(confluence-guests-nmccormick2)'
128
+ }, {
129
+ isGroup: true,
130
+ label: 'confluence-user-access-admins-nmccormick2',
131
+ optionType: 'avatarLabel',
132
+ value: 'membersOf(confluence-user-access-admins-nmccormick2)'
133
+ }, {
134
+ isGroup: true,
135
+ label: 'confluence-users-nmccormick2',
136
+ optionType: 'avatarLabel',
137
+ value: 'membersOf(confluence-users-nmccormick2)'
138
+ }, {
139
+ 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',
140
+ isSquare: true,
141
+ label: 'eu-test',
142
+ optionType: 'avatarLabel',
143
+ value: '63d708e8c3eb74ad8e949fef'
144
+ }, {
145
+ 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',
146
+ isSquare: true,
147
+ label: 'GitLab for Jira (gitlab.com)',
148
+ optionType: 'avatarLabel',
149
+ value: '5d959053ede9300dd30c304d'
150
+ }, {
151
+ isGroup: true,
152
+ label: 'jira-admins-nmccormick2',
153
+ optionType: 'avatarLabel',
154
+ value: 'membersOf(jira-admins-nmccormick2)'
155
+ }];
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fieldValuesResponseForProjectsMapped = exports.fieldValuesResponseForProjects = void 0;
7
+ var fieldValuesResponseForProjects = exports.fieldValuesResponseForProjects = {
8
+ data: {
9
+ jira: {
10
+ jqlBuilder: {
11
+ fieldValues: {
12
+ totalCount: 4,
13
+ pageInfo: {
14
+ endCursor: 'YXJyYXljb25uZWN0aW9uOjM='
15
+ },
16
+ edges: [{
17
+ node: {
18
+ jqlTerm: '"My IT TEST"',
19
+ displayName: 'My IT TEST',
20
+ project: {
21
+ avatar: {
22
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10403?size=small'
23
+ }
24
+ }
25
+ }
26
+ }, {
27
+ node: {
28
+ jqlTerm: 'Test',
29
+ displayName: 'Test',
30
+ project: {
31
+ avatar: {
32
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10411?size=small'
33
+ }
34
+ }
35
+ }
36
+ }, {
37
+ node: {
38
+ jqlTerm: '"Test rights"',
39
+ displayName: 'Test rights',
40
+ project: {
41
+ avatar: {
42
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10405?size=small'
43
+ }
44
+ }
45
+ }
46
+ }, {
47
+ node: {
48
+ jqlTerm: 'Test2',
49
+ displayName: 'Test2',
50
+ project: {
51
+ avatar: {
52
+ small: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10410?size=small'
53
+ }
54
+ }
55
+ }
56
+ }]
57
+ }
58
+ }
59
+ }
60
+ }
61
+ };
62
+ var fieldValuesResponseForProjectsMapped = exports.fieldValuesResponseForProjectsMapped = [{
63
+ icon: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10403?size=small',
64
+ label: 'My IT TEST',
65
+ optionType: 'iconLabel',
66
+ value: '"My IT TEST"'
67
+ }, {
68
+ icon: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10411?size=small',
69
+ label: 'Test',
70
+ optionType: 'iconLabel',
71
+ value: 'Test'
72
+ }, {
73
+ icon: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10405?size=small',
74
+ label: 'Test rights',
75
+ optionType: 'iconLabel',
76
+ value: '"Test rights"'
77
+ }, {
78
+ icon: 'https://nmccormick2.jira-dev.com/rest/api/2/universal_avatar/view/type/project/avatar/10410?size=small',
79
+ label: 'Test2',
80
+ optionType: 'iconLabel',
81
+ value: 'Test2'
82
+ }];