@atlaskit/link-datasource 1.6.1 → 1.6.3

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 1.6.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#41133](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41133) [`598eb394b7e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/598eb394b7e) - [ux] fix the order of columns is incorrect in column picker problem
8
+ [ux] Do not reorder columns when the column picker is open
9
+
10
+ ## 1.6.2
11
+
12
+ ### Patch Changes
13
+
14
+ - [#40759](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/40759) [`2e42297cee1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2e42297cee1) - Reset default visible column keys when `shouldResetColumns` is `true`
15
+
3
16
  ## 1.6.1
4
17
 
5
18
  ### Patch Changes
@@ -7,5 +7,5 @@ exports.packageMetaData = exports.EVENT_CHANNEL = void 0;
7
7
  var EVENT_CHANNEL = exports.EVENT_CHANNEL = 'media';
8
8
  var packageMetaData = exports.packageMetaData = {
9
9
  packageName: "@atlaskit/link-datasource",
10
- packageVersion: "1.6.1"
10
+ packageVersion: "1.6.3"
11
11
  };
@@ -246,6 +246,7 @@ var useDatasourceTableState = exports.useDatasourceTableState = function useData
246
246
  setShouldForceRequest((options === null || options === void 0 ? void 0 : options.shouldForceRequest) || false);
247
247
  if (options !== null && options !== void 0 && options.shouldResetColumns) {
248
248
  setColumns([]);
249
+ setDefaultVisibleColumnKeys([]);
249
250
  }
250
251
  }, []);
251
252
 
@@ -6,8 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.AssetsConfigModal = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
13
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
14
  var _react = require("react");
13
15
  var _react2 = require("@emotion/react");
@@ -94,24 +96,18 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
94
96
  setVisibleColumnKeys(newVisibleColumnKeys);
95
97
  }, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
96
98
  (0, _react.useEffect)(function () {
97
- var _responseItems = (0, _slicedToArray2.default)(responseItems, 1),
98
- data = _responseItems[0];
99
- if (data && isNewSearch) {
100
- setVisibleColumnKeys(Object.keys(data));
101
- } else if (data && (visibleColumnKeys || []).length) {
102
- setVisibleColumnKeys(visibleColumnKeys);
99
+ if (isNewSearch) {
100
+ setVisibleColumnKeys(defaultVisibleColumnKeys);
103
101
  }
104
- // Purposely not included 'visibleColumnKeys' as a dependency to prevent infinite loop
105
- // eslint-disable-next-line react-hooks/exhaustive-deps
106
- }, [responseItems, isNewSearch]);
102
+ }, [defaultVisibleColumnKeys, isNewSearch]);
107
103
  (0, _react.useEffect)(function () {
108
104
  fireEvent('screen.datasourceModalDialog.viewed', {});
109
105
  }, [fireEvent]);
110
106
  var isDisabled = !!workspaceError || status === 'rejected' || status === 'loading' || status === 'empty' || !!workspaceError || assetsClientLoading || !aql || !schemaId;
111
107
  var retrieveUrlForSmartCardRender = (0, _react.useCallback)(function () {
112
108
  var _data$key;
113
- var _responseItems2 = (0, _slicedToArray2.default)(responseItems, 1),
114
- data = _responseItems2[0];
109
+ var _responseItems = (0, _slicedToArray2.default)(responseItems, 1),
110
+ data = _responseItems[0];
115
111
  // agreement with BE that we will use `key` for rendering smartlink
116
112
  return data === null || data === void 0 || (_data$key = data.key) === null || _data$key === void 0 || (_data$key = _data$key.data) === null || _data$key === void 0 ? void 0 : _data$key.url;
117
113
  }, [responseItems]);
@@ -153,22 +149,29 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
153
149
  });
154
150
  }
155
151
  }, [aql, schemaId, workspaceId, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, visibleColumnKeys]);
156
- var handleOnSearch = (0, _react.useCallback)(function (searchAql, searchSchemaId) {
157
- if (schemaId !== searchSchemaId) {
158
- reset({
159
- shouldResetColumns: true
160
- });
161
- setAql(searchAql);
162
- setSchemaId(searchSchemaId);
163
- setIsNewSearch(true);
164
- loadDatasourceDetails();
165
- }
166
- if (aql !== searchAql) {
167
- reset();
168
- setAql(searchAql);
169
- setSchemaId(searchSchemaId);
170
- }
171
- }, [aql, loadDatasourceDetails, reset, schemaId]);
152
+ var handleOnSearch = (0, _react.useCallback)( /*#__PURE__*/function () {
153
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(searchAql, searchSchemaId) {
154
+ return _regenerator.default.wrap(function _callee$(_context) {
155
+ while (1) switch (_context.prev = _context.next) {
156
+ case 0:
157
+ if (schemaId !== searchSchemaId || aql !== searchAql) {
158
+ reset({
159
+ shouldResetColumns: true
160
+ });
161
+ setAql(searchAql);
162
+ setSchemaId(searchSchemaId);
163
+ setIsNewSearch(true);
164
+ }
165
+ case 1:
166
+ case "end":
167
+ return _context.stop();
168
+ }
169
+ }, _callee);
170
+ }));
171
+ return function (_x, _x2) {
172
+ return _ref.apply(this, arguments);
173
+ };
174
+ }(), [aql, reset, schemaId]);
172
175
  var renderModalTitleContent = (0, _react.useCallback)(function () {
173
176
  if (workspaceError) {
174
177
  return undefined;
@@ -231,7 +234,7 @@ var analyticsContextAttributes = {
231
234
  };
232
235
  var analyticsContextData = {
233
236
  packageName: "@atlaskit/link-datasource",
234
- packageVersion: "1.6.1",
237
+ packageVersion: "1.6.3",
235
238
  source: 'datasourceConfigModal'
236
239
  };
237
240
  var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
@@ -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.IssueLikeDataTableView = exports.EmptyState = void 0;
7
+ exports.orderColumns = exports.IssueLikeDataTableView = exports.EmptyState = 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"));
@@ -72,22 +72,18 @@ function extractIndex(data) {
72
72
  (0, _tinyInvariant.default)(typeof index === 'number');
73
73
  return index;
74
74
  }
75
- var orderColumns = function orderColumns(columns, visibleColumnKeys) {
76
- // newColumnKeyOrder contains keys of selected (visible columns only).
77
- // In order to sort all the columns we need to insert unselected ones into this list
78
- // We put them into their absolution position as it was in unchanged (before column move) order.
79
- columns.forEach(function (_ref, index) {
80
- var key = _ref.key;
81
- if (!visibleColumnKeys.includes(key)) {
82
- visibleColumnKeys.splice(index, 0, key);
83
- }
84
- });
85
- columns.sort(function (a, b) {
75
+ var orderColumns = exports.orderColumns = function orderColumns(columns, visibleColumnKeys) {
76
+ var visibleColumns = columns.filter(function (column) {
77
+ return visibleColumnKeys.includes(column.key);
78
+ }).sort(function (a, b) {
86
79
  var indexB = visibleColumnKeys.indexOf(b.key);
87
80
  var indexA = visibleColumnKeys.indexOf(a.key);
88
81
  return indexA - indexB;
89
82
  });
90
- return (0, _toConsumableArray2.default)(columns);
83
+ var invisibleColumns = columns.filter(function (column) {
84
+ return !visibleColumnKeys.includes(column.key);
85
+ });
86
+ return [].concat((0, _toConsumableArray2.default)(visibleColumns), (0, _toConsumableArray2.default)(invisibleColumns));
91
87
  };
92
88
  var BASE_WIDTH = 8;
93
89
  function getColumnWidth(key, type) {
@@ -112,21 +108,21 @@ function getColumnWidth(key, type) {
112
108
  return undefined;
113
109
  }
114
110
  }
115
- var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
116
- var testId = _ref2.testId,
117
- onNextPage = _ref2.onNextPage,
118
- onLoadDatasourceDetails = _ref2.onLoadDatasourceDetails,
119
- items = _ref2.items,
120
- columns = _ref2.columns,
121
- _ref2$renderItem = _ref2.renderItem,
122
- renderItem = _ref2$renderItem === void 0 ? _renderType.fallbackRenderType : _ref2$renderItem,
123
- visibleColumnKeys = _ref2.visibleColumnKeys,
124
- onVisibleColumnKeysChange = _ref2.onVisibleColumnKeysChange,
125
- status = _ref2.status,
126
- hasNextPage = _ref2.hasNextPage,
127
- scrollableContainerHeight = _ref2.scrollableContainerHeight,
128
- parentContainerRenderInstanceId = _ref2.parentContainerRenderInstanceId,
129
- extensionKey = _ref2.extensionKey;
111
+ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLikeDataTableView(_ref) {
112
+ var testId = _ref.testId,
113
+ onNextPage = _ref.onNextPage,
114
+ onLoadDatasourceDetails = _ref.onLoadDatasourceDetails,
115
+ items = _ref.items,
116
+ columns = _ref.columns,
117
+ _ref$renderItem = _ref.renderItem,
118
+ renderItem = _ref$renderItem === void 0 ? _renderType.fallbackRenderType : _ref$renderItem,
119
+ visibleColumnKeys = _ref.visibleColumnKeys,
120
+ onVisibleColumnKeysChange = _ref.onVisibleColumnKeysChange,
121
+ status = _ref.status,
122
+ hasNextPage = _ref.hasNextPage,
123
+ scrollableContainerHeight = _ref.scrollableContainerHeight,
124
+ parentContainerRenderInstanceId = _ref.parentContainerRenderInstanceId,
125
+ extensionKey = _ref.extensionKey;
130
126
  var tableId = (0, _react.useMemo)(function () {
131
127
  return Symbol('unique-id');
132
128
  }, []);
@@ -147,8 +143,10 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
147
143
  orderedColumns = _useState6[0],
148
144
  setOrderedColumns = _useState6[1];
149
145
  (0, _react.useEffect)(function () {
150
- setOrderedColumns(orderColumns((0, _toConsumableArray2.default)(columns), (0, _toConsumableArray2.default)(visibleColumnKeys)));
151
- }, [columns, visibleColumnKeys]);
146
+ if (!hasFullSchema) {
147
+ setOrderedColumns(orderColumns((0, _toConsumableArray2.default)(columns), (0, _toConsumableArray2.default)(visibleColumnKeys)));
148
+ }
149
+ }, [columns, visibleColumnKeys, hasFullSchema]);
152
150
  (0, _react.useEffect)(function () {
153
151
  if (parentContainerRenderInstanceId && status === 'resolved') {
154
152
  (0, _ufoExperiences.succeedUfoExperience)({
@@ -158,8 +156,8 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
158
156
  }, [parentContainerRenderInstanceId, status]);
159
157
  var visibleSortedColumns = (0, _react.useMemo)(function () {
160
158
  return visibleColumnKeys.map(function (visibleKey) {
161
- return orderedColumns.find(function (_ref3) {
162
- var key = _ref3.key;
159
+ return orderedColumns.find(function (_ref2) {
160
+ var key = _ref2.key;
163
161
  return visibleKey === key;
164
162
  });
165
163
  }).filter(Boolean);
@@ -173,8 +171,8 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
173
171
  var loadingRow = (0, _react.useMemo)(function () {
174
172
  return {
175
173
  key: 'loading',
176
- cells: visibleSortedColumns.map(function (_ref4) {
177
- var key = _ref4.key;
174
+ cells: visibleSortedColumns.map(function (_ref3) {
175
+ var key = _ref3.key;
178
176
  var content = (0, _react2.jsx)(_linkingCommon.Skeleton, {
179
177
  borderRadius: "var(--ds-border-radius-100, 3px)",
180
178
  width: '100%',
@@ -188,10 +186,10 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
188
186
  };
189
187
  }, [visibleSortedColumns]);
190
188
  var headColumns = (0, _react.useMemo)(function () {
191
- return visibleSortedColumns.map(function (_ref5) {
192
- var key = _ref5.key,
193
- title = _ref5.title,
194
- type = _ref5.type;
189
+ return visibleSortedColumns.map(function (_ref4) {
190
+ var key = _ref4.key,
191
+ title = _ref4.title,
192
+ type = _ref4.type;
195
193
  return {
196
194
  key: key,
197
195
  content: title,
@@ -218,9 +216,9 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
218
216
  return;
219
217
  }
220
218
  return (0, _combine.combine)((0, _element.monitorForElements)({
221
- onDragStart: function onDragStart(_ref6) {
219
+ onDragStart: function onDragStart(_ref5) {
222
220
  var _containerRef$current;
223
- var location = _ref6.location;
221
+ var location = _ref5.location;
224
222
  initialAutoScrollerClientY.current = location.current.input.clientY;
225
223
  _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.start({
226
224
  input: _objectSpread(_objectSpread({}, location.current.input), {}, {
@@ -233,18 +231,18 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
233
231
  behavior: 'container-only'
234
232
  });
235
233
  },
236
- onDrag: function onDrag(_ref7) {
234
+ onDrag: function onDrag(_ref6) {
237
235
  var _containerRef$current2;
238
- var location = _ref7.location;
236
+ var location = _ref6.location;
239
237
  _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.updateInput({
240
238
  input: _objectSpread(_objectSpread({}, location.current.input), {}, {
241
239
  clientY: (initialAutoScrollerClientY.current || 0) + (((_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.offsetHeight) || 0) / 2
242
240
  })
243
241
  });
244
242
  },
245
- onDrop: function onDrop(_ref8) {
246
- var source = _ref8.source,
247
- location = _ref8.location;
243
+ onDrop: function onDrop(_ref7) {
244
+ var source = _ref7.source,
245
+ location = _ref7.location;
248
246
  _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.stop();
249
247
  if (location.current.dropTargets.length === 0) {
250
248
  return;
@@ -279,10 +277,10 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
279
277
  return items.map(function (newRowData, rowIndex) {
280
278
  return {
281
279
  key: "".concat(identityColumnKey && newRowData[identityColumnKey] && newRowData[identityColumnKey].data || rowIndex),
282
- cells: visibleSortedColumns.map(function (_ref9) {
280
+ cells: visibleSortedColumns.map(function (_ref8) {
283
281
  var _newRowData$key;
284
- var key = _ref9.key,
285
- type = _ref9.type;
282
+ var key = _ref8.key,
283
+ type = _ref8.type;
286
284
  var value = ((_newRowData$key = newRowData[key]) === null || _newRowData$key === void 0 ? void 0 : _newRowData$key.data) || newRowData[key];
287
285
  var values = Array.isArray(value) ? value : [value];
288
286
  var content = values.map(function (value) {
@@ -356,10 +354,10 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
356
354
  }, (0, _react2.jsx)("thead", {
357
355
  "data-testid": testId && "".concat(testId, "--head"),
358
356
  css: [noDefaultBorderStyles, tableHeadStyles]
359
- }, (0, _react2.jsx)("tr", null, headColumns.map(function (_ref11, cellIndex) {
360
- var key = _ref11.key,
361
- content = _ref11.content,
362
- maxWidth = _ref11.maxWidth;
357
+ }, (0, _react2.jsx)("tr", null, headColumns.map(function (_ref10, cellIndex) {
358
+ var key = _ref10.key,
359
+ content = _ref10.content,
360
+ maxWidth = _ref10.maxWidth;
363
361
  var heading = (0, _react2.jsx)(_tooltip.default, {
364
362
  content: content,
365
363
  tag: "span",
@@ -370,10 +368,10 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
370
368
  }, content));
371
369
  if (onVisibleColumnKeysChange && hasData) {
372
370
  var _containerRef$current3;
373
- var previewRows = tableRows.map(function (_ref12) {
374
- var cells = _ref12.cells;
375
- var cell = cells.find(function (_ref13) {
376
- var cellKey = _ref13.key;
371
+ var previewRows = tableRows.map(function (_ref11) {
372
+ var cells = _ref11.cells;
373
+ var cell = cells.find(function (_ref12) {
374
+ var cellKey = _ref12.key;
377
375
  return cellKey === key;
378
376
  });
379
377
  if (cell) {
@@ -411,18 +409,18 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
411
409
  })))), (0, _react2.jsx)("tbody", {
412
410
  css: noDefaultBorderStyles,
413
411
  "data-testid": testId && "".concat(testId, "--body")
414
- }, rows.map(function (_ref14) {
415
- var key = _ref14.key,
416
- cells = _ref14.cells,
417
- ref = _ref14.ref;
412
+ }, rows.map(function (_ref13) {
413
+ var key = _ref13.key,
414
+ cells = _ref13.cells,
415
+ ref = _ref13.ref;
418
416
  return (0, _react2.jsx)("tr", {
419
417
  key: key,
420
418
  "data-testid": testId && "".concat(testId, "--row-").concat(key),
421
419
  ref: ref
422
- }, cells.map(function (_ref15, cellIndex) {
423
- var cellKey = _ref15.key,
424
- content = _ref15.content,
425
- maxWidth = _ref15.maxWidth;
420
+ }, cells.map(function (_ref14, cellIndex) {
421
+ var cellKey = _ref14.key,
422
+ content = _ref14.content,
423
+ maxWidth = _ref14.maxWidth;
426
424
  return (0, _react2.jsx)("td", {
427
425
  key: cellKey,
428
426
  "data-testid": testId && "".concat(testId, "--cell-").concat(cellIndex),
@@ -1,5 +1,5 @@
1
1
  export const EVENT_CHANNEL = 'media';
2
2
  export const packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.6.1"
4
+ packageVersion: "1.6.3"
5
5
  };
@@ -147,6 +147,7 @@ export const useDatasourceTableState = ({
147
147
  setShouldForceRequest((options === null || options === void 0 ? void 0 : options.shouldForceRequest) || false);
148
148
  if (options !== null && options !== void 0 && options.shouldResetColumns) {
149
149
  setColumns([]);
150
+ setDefaultVisibleColumnKeys([]);
150
151
  }
151
152
  }, []);
152
153
 
@@ -72,15 +72,10 @@ const PlainAssetsConfigModal = props => {
72
72
  setVisibleColumnKeys(newVisibleColumnKeys);
73
73
  }, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
74
74
  useEffect(() => {
75
- const [data] = responseItems;
76
- if (data && isNewSearch) {
77
- setVisibleColumnKeys(Object.keys(data));
78
- } else if (data && (visibleColumnKeys || []).length) {
79
- setVisibleColumnKeys(visibleColumnKeys);
75
+ if (isNewSearch) {
76
+ setVisibleColumnKeys(defaultVisibleColumnKeys);
80
77
  }
81
- // Purposely not included 'visibleColumnKeys' as a dependency to prevent infinite loop
82
- // eslint-disable-next-line react-hooks/exhaustive-deps
83
- }, [responseItems, isNewSearch]);
78
+ }, [defaultVisibleColumnKeys, isNewSearch]);
84
79
  useEffect(() => {
85
80
  fireEvent('screen.datasourceModalDialog.viewed', {});
86
81
  }, [fireEvent]);
@@ -127,22 +122,16 @@ const PlainAssetsConfigModal = props => {
127
122
  });
128
123
  }
129
124
  }, [aql, schemaId, workspaceId, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, visibleColumnKeys]);
130
- const handleOnSearch = useCallback((searchAql, searchSchemaId) => {
131
- if (schemaId !== searchSchemaId) {
125
+ const handleOnSearch = useCallback(async (searchAql, searchSchemaId) => {
126
+ if (schemaId !== searchSchemaId || aql !== searchAql) {
132
127
  reset({
133
128
  shouldResetColumns: true
134
129
  });
135
130
  setAql(searchAql);
136
131
  setSchemaId(searchSchemaId);
137
132
  setIsNewSearch(true);
138
- loadDatasourceDetails();
139
- }
140
- if (aql !== searchAql) {
141
- reset();
142
- setAql(searchAql);
143
- setSchemaId(searchSchemaId);
144
133
  }
145
- }, [aql, loadDatasourceDetails, reset, schemaId]);
134
+ }, [aql, reset, schemaId]);
146
135
  const renderModalTitleContent = useCallback(() => {
147
136
  if (workspaceError) {
148
137
  return undefined;
@@ -205,7 +194,7 @@ const analyticsContextAttributes = {
205
194
  };
206
195
  const analyticsContextData = {
207
196
  packageName: "@atlaskit/link-datasource",
208
- packageVersion: "1.6.1",
197
+ packageVersion: "1.6.3",
209
198
  source: 'datasourceConfigModal'
210
199
  };
211
200
  const contextData = {
@@ -73,23 +73,14 @@ function extractIndex(data) {
73
73
  invariant(typeof index === 'number');
74
74
  return index;
75
75
  }
76
- const orderColumns = (columns, visibleColumnKeys) => {
77
- // newColumnKeyOrder contains keys of selected (visible columns only).
78
- // In order to sort all the columns we need to insert unselected ones into this list
79
- // We put them into their absolution position as it was in unchanged (before column move) order.
80
- columns.forEach(({
81
- key
82
- }, index) => {
83
- if (!visibleColumnKeys.includes(key)) {
84
- visibleColumnKeys.splice(index, 0, key);
85
- }
86
- });
87
- columns.sort((a, b) => {
76
+ export const orderColumns = (columns, visibleColumnKeys) => {
77
+ const visibleColumns = columns.filter(column => visibleColumnKeys.includes(column.key)).sort((a, b) => {
88
78
  const indexB = visibleColumnKeys.indexOf(b.key);
89
79
  const indexA = visibleColumnKeys.indexOf(a.key);
90
80
  return indexA - indexB;
91
81
  });
92
- return [...columns];
82
+ const invisibleColumns = columns.filter(column => !visibleColumnKeys.includes(column.key));
83
+ return [...visibleColumns, ...invisibleColumns];
93
84
  };
94
85
  const BASE_WIDTH = 8;
95
86
  function getColumnWidth(key, type) {
@@ -136,8 +127,10 @@ export const IssueLikeDataTableView = ({
136
127
  const containerRef = useRef(null);
137
128
  const [orderedColumns, setOrderedColumns] = useState(() => orderColumns([...columns], [...visibleColumnKeys]));
138
129
  useEffect(() => {
139
- setOrderedColumns(orderColumns([...columns], [...visibleColumnKeys]));
140
- }, [columns, visibleColumnKeys]);
130
+ if (!hasFullSchema) {
131
+ setOrderedColumns(orderColumns([...columns], [...visibleColumnKeys]));
132
+ }
133
+ }, [columns, visibleColumnKeys, hasFullSchema]);
141
134
  useEffect(() => {
142
135
  if (parentContainerRenderInstanceId && status === 'resolved') {
143
136
  succeedUfoExperience({
@@ -1,5 +1,5 @@
1
1
  export var EVENT_CHANNEL = 'media';
2
2
  export var packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.6.1"
4
+ packageVersion: "1.6.3"
5
5
  };
@@ -239,6 +239,7 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
239
239
  setShouldForceRequest((options === null || options === void 0 ? void 0 : options.shouldForceRequest) || false);
240
240
  if (options !== null && options !== void 0 && options.shouldResetColumns) {
241
241
  setColumns([]);
242
+ setDefaultVisibleColumnKeys([]);
242
243
  }
243
244
  }, []);
244
245
 
@@ -1,8 +1,10 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
6
8
  /** @jsx jsx */
7
9
  import { useCallback, useEffect, useMemo, useState } from 'react';
8
10
  import { css, jsx } from '@emotion/react';
@@ -85,24 +87,18 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
85
87
  setVisibleColumnKeys(newVisibleColumnKeys);
86
88
  }, [initialVisibleColumnKeys, defaultVisibleColumnKeys]);
87
89
  useEffect(function () {
88
- var _responseItems = _slicedToArray(responseItems, 1),
89
- data = _responseItems[0];
90
- if (data && isNewSearch) {
91
- setVisibleColumnKeys(Object.keys(data));
92
- } else if (data && (visibleColumnKeys || []).length) {
93
- setVisibleColumnKeys(visibleColumnKeys);
90
+ if (isNewSearch) {
91
+ setVisibleColumnKeys(defaultVisibleColumnKeys);
94
92
  }
95
- // Purposely not included 'visibleColumnKeys' as a dependency to prevent infinite loop
96
- // eslint-disable-next-line react-hooks/exhaustive-deps
97
- }, [responseItems, isNewSearch]);
93
+ }, [defaultVisibleColumnKeys, isNewSearch]);
98
94
  useEffect(function () {
99
95
  fireEvent('screen.datasourceModalDialog.viewed', {});
100
96
  }, [fireEvent]);
101
97
  var isDisabled = !!workspaceError || status === 'rejected' || status === 'loading' || status === 'empty' || !!workspaceError || assetsClientLoading || !aql || !schemaId;
102
98
  var retrieveUrlForSmartCardRender = useCallback(function () {
103
99
  var _data$key;
104
- var _responseItems2 = _slicedToArray(responseItems, 1),
105
- data = _responseItems2[0];
100
+ var _responseItems = _slicedToArray(responseItems, 1),
101
+ data = _responseItems[0];
106
102
  // agreement with BE that we will use `key` for rendering smartlink
107
103
  return data === null || data === void 0 || (_data$key = data.key) === null || _data$key === void 0 || (_data$key = _data$key.data) === null || _data$key === void 0 ? void 0 : _data$key.url;
108
104
  }, [responseItems]);
@@ -144,22 +140,29 @@ var PlainAssetsConfigModal = function PlainAssetsConfigModal(props) {
144
140
  });
145
141
  }
146
142
  }, [aql, schemaId, workspaceId, retrieveUrlForSmartCardRender, responseItems.length, onInsert, datasourceId, visibleColumnKeys]);
147
- var handleOnSearch = useCallback(function (searchAql, searchSchemaId) {
148
- if (schemaId !== searchSchemaId) {
149
- reset({
150
- shouldResetColumns: true
151
- });
152
- setAql(searchAql);
153
- setSchemaId(searchSchemaId);
154
- setIsNewSearch(true);
155
- loadDatasourceDetails();
156
- }
157
- if (aql !== searchAql) {
158
- reset();
159
- setAql(searchAql);
160
- setSchemaId(searchSchemaId);
161
- }
162
- }, [aql, loadDatasourceDetails, reset, schemaId]);
143
+ var handleOnSearch = useCallback( /*#__PURE__*/function () {
144
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(searchAql, searchSchemaId) {
145
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
146
+ while (1) switch (_context.prev = _context.next) {
147
+ case 0:
148
+ if (schemaId !== searchSchemaId || aql !== searchAql) {
149
+ reset({
150
+ shouldResetColumns: true
151
+ });
152
+ setAql(searchAql);
153
+ setSchemaId(searchSchemaId);
154
+ setIsNewSearch(true);
155
+ }
156
+ case 1:
157
+ case "end":
158
+ return _context.stop();
159
+ }
160
+ }, _callee);
161
+ }));
162
+ return function (_x, _x2) {
163
+ return _ref.apply(this, arguments);
164
+ };
165
+ }(), [aql, reset, schemaId]);
163
166
  var renderModalTitleContent = useCallback(function () {
164
167
  if (workspaceError) {
165
168
  return undefined;
@@ -222,7 +225,7 @@ var analyticsContextAttributes = {
222
225
  };
223
226
  var analyticsContextData = {
224
227
  packageName: "@atlaskit/link-datasource",
225
- packageVersion: "1.6.1",
228
+ packageVersion: "1.6.3",
226
229
  source: 'datasourceConfigModal'
227
230
  };
228
231
  var contextData = _objectSpread(_objectSpread({}, analyticsContextData), {}, {
@@ -65,22 +65,18 @@ function extractIndex(data) {
65
65
  invariant(typeof index === 'number');
66
66
  return index;
67
67
  }
68
- var orderColumns = function orderColumns(columns, visibleColumnKeys) {
69
- // newColumnKeyOrder contains keys of selected (visible columns only).
70
- // In order to sort all the columns we need to insert unselected ones into this list
71
- // We put them into their absolution position as it was in unchanged (before column move) order.
72
- columns.forEach(function (_ref, index) {
73
- var key = _ref.key;
74
- if (!visibleColumnKeys.includes(key)) {
75
- visibleColumnKeys.splice(index, 0, key);
76
- }
77
- });
78
- columns.sort(function (a, b) {
68
+ export var orderColumns = function orderColumns(columns, visibleColumnKeys) {
69
+ var visibleColumns = columns.filter(function (column) {
70
+ return visibleColumnKeys.includes(column.key);
71
+ }).sort(function (a, b) {
79
72
  var indexB = visibleColumnKeys.indexOf(b.key);
80
73
  var indexA = visibleColumnKeys.indexOf(a.key);
81
74
  return indexA - indexB;
82
75
  });
83
- return _toConsumableArray(columns);
76
+ var invisibleColumns = columns.filter(function (column) {
77
+ return !visibleColumnKeys.includes(column.key);
78
+ });
79
+ return [].concat(_toConsumableArray(visibleColumns), _toConsumableArray(invisibleColumns));
84
80
  };
85
81
  var BASE_WIDTH = 8;
86
82
  function getColumnWidth(key, type) {
@@ -105,21 +101,21 @@ function getColumnWidth(key, type) {
105
101
  return undefined;
106
102
  }
107
103
  }
108
- export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
109
- var testId = _ref2.testId,
110
- onNextPage = _ref2.onNextPage,
111
- onLoadDatasourceDetails = _ref2.onLoadDatasourceDetails,
112
- items = _ref2.items,
113
- columns = _ref2.columns,
114
- _ref2$renderItem = _ref2.renderItem,
115
- renderItem = _ref2$renderItem === void 0 ? fallbackRenderType : _ref2$renderItem,
116
- visibleColumnKeys = _ref2.visibleColumnKeys,
117
- onVisibleColumnKeysChange = _ref2.onVisibleColumnKeysChange,
118
- status = _ref2.status,
119
- hasNextPage = _ref2.hasNextPage,
120
- scrollableContainerHeight = _ref2.scrollableContainerHeight,
121
- parentContainerRenderInstanceId = _ref2.parentContainerRenderInstanceId,
122
- extensionKey = _ref2.extensionKey;
104
+ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref) {
105
+ var testId = _ref.testId,
106
+ onNextPage = _ref.onNextPage,
107
+ onLoadDatasourceDetails = _ref.onLoadDatasourceDetails,
108
+ items = _ref.items,
109
+ columns = _ref.columns,
110
+ _ref$renderItem = _ref.renderItem,
111
+ renderItem = _ref$renderItem === void 0 ? fallbackRenderType : _ref$renderItem,
112
+ visibleColumnKeys = _ref.visibleColumnKeys,
113
+ onVisibleColumnKeysChange = _ref.onVisibleColumnKeysChange,
114
+ status = _ref.status,
115
+ hasNextPage = _ref.hasNextPage,
116
+ scrollableContainerHeight = _ref.scrollableContainerHeight,
117
+ parentContainerRenderInstanceId = _ref.parentContainerRenderInstanceId,
118
+ extensionKey = _ref.extensionKey;
123
119
  var tableId = useMemo(function () {
124
120
  return Symbol('unique-id');
125
121
  }, []);
@@ -140,8 +136,10 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
140
136
  orderedColumns = _useState6[0],
141
137
  setOrderedColumns = _useState6[1];
142
138
  useEffect(function () {
143
- setOrderedColumns(orderColumns(_toConsumableArray(columns), _toConsumableArray(visibleColumnKeys)));
144
- }, [columns, visibleColumnKeys]);
139
+ if (!hasFullSchema) {
140
+ setOrderedColumns(orderColumns(_toConsumableArray(columns), _toConsumableArray(visibleColumnKeys)));
141
+ }
142
+ }, [columns, visibleColumnKeys, hasFullSchema]);
145
143
  useEffect(function () {
146
144
  if (parentContainerRenderInstanceId && status === 'resolved') {
147
145
  succeedUfoExperience({
@@ -151,8 +149,8 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
151
149
  }, [parentContainerRenderInstanceId, status]);
152
150
  var visibleSortedColumns = useMemo(function () {
153
151
  return visibleColumnKeys.map(function (visibleKey) {
154
- return orderedColumns.find(function (_ref3) {
155
- var key = _ref3.key;
152
+ return orderedColumns.find(function (_ref2) {
153
+ var key = _ref2.key;
156
154
  return visibleKey === key;
157
155
  });
158
156
  }).filter(Boolean);
@@ -166,8 +164,8 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
166
164
  var loadingRow = useMemo(function () {
167
165
  return {
168
166
  key: 'loading',
169
- cells: visibleSortedColumns.map(function (_ref4) {
170
- var key = _ref4.key;
167
+ cells: visibleSortedColumns.map(function (_ref3) {
168
+ var key = _ref3.key;
171
169
  var content = jsx(Skeleton, {
172
170
  borderRadius: "var(--ds-border-radius-100, 3px)",
173
171
  width: '100%',
@@ -181,10 +179,10 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
181
179
  };
182
180
  }, [visibleSortedColumns]);
183
181
  var headColumns = useMemo(function () {
184
- return visibleSortedColumns.map(function (_ref5) {
185
- var key = _ref5.key,
186
- title = _ref5.title,
187
- type = _ref5.type;
182
+ return visibleSortedColumns.map(function (_ref4) {
183
+ var key = _ref4.key,
184
+ title = _ref4.title,
185
+ type = _ref4.type;
188
186
  return {
189
187
  key: key,
190
188
  content: title,
@@ -211,9 +209,9 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
211
209
  return;
212
210
  }
213
211
  return combine(monitorForElements({
214
- onDragStart: function onDragStart(_ref6) {
212
+ onDragStart: function onDragStart(_ref5) {
215
213
  var _containerRef$current;
216
- var location = _ref6.location;
214
+ var location = _ref5.location;
217
215
  initialAutoScrollerClientY.current = location.current.input.clientY;
218
216
  autoScroller.start({
219
217
  input: _objectSpread(_objectSpread({}, location.current.input), {}, {
@@ -226,18 +224,18 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
226
224
  behavior: 'container-only'
227
225
  });
228
226
  },
229
- onDrag: function onDrag(_ref7) {
227
+ onDrag: function onDrag(_ref6) {
230
228
  var _containerRef$current2;
231
- var location = _ref7.location;
229
+ var location = _ref6.location;
232
230
  autoScroller.updateInput({
233
231
  input: _objectSpread(_objectSpread({}, location.current.input), {}, {
234
232
  clientY: (initialAutoScrollerClientY.current || 0) + (((_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.offsetHeight) || 0) / 2
235
233
  })
236
234
  });
237
235
  },
238
- onDrop: function onDrop(_ref8) {
239
- var source = _ref8.source,
240
- location = _ref8.location;
236
+ onDrop: function onDrop(_ref7) {
237
+ var source = _ref7.source,
238
+ location = _ref7.location;
241
239
  autoScroller.stop();
242
240
  if (location.current.dropTargets.length === 0) {
243
241
  return;
@@ -272,10 +270,10 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
272
270
  return items.map(function (newRowData, rowIndex) {
273
271
  return {
274
272
  key: "".concat(identityColumnKey && newRowData[identityColumnKey] && newRowData[identityColumnKey].data || rowIndex),
275
- cells: visibleSortedColumns.map(function (_ref9) {
273
+ cells: visibleSortedColumns.map(function (_ref8) {
276
274
  var _newRowData$key;
277
- var key = _ref9.key,
278
- type = _ref9.type;
275
+ var key = _ref8.key,
276
+ type = _ref8.type;
279
277
  var value = ((_newRowData$key = newRowData[key]) === null || _newRowData$key === void 0 ? void 0 : _newRowData$key.data) || newRowData[key];
280
278
  var values = Array.isArray(value) ? value : [value];
281
279
  var content = values.map(function (value) {
@@ -349,10 +347,10 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
349
347
  }, jsx("thead", {
350
348
  "data-testid": testId && "".concat(testId, "--head"),
351
349
  css: [noDefaultBorderStyles, tableHeadStyles]
352
- }, jsx("tr", null, headColumns.map(function (_ref11, cellIndex) {
353
- var key = _ref11.key,
354
- content = _ref11.content,
355
- maxWidth = _ref11.maxWidth;
350
+ }, jsx("tr", null, headColumns.map(function (_ref10, cellIndex) {
351
+ var key = _ref10.key,
352
+ content = _ref10.content,
353
+ maxWidth = _ref10.maxWidth;
356
354
  var heading = jsx(Tooltip, {
357
355
  content: content,
358
356
  tag: "span",
@@ -363,10 +361,10 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
363
361
  }, content));
364
362
  if (onVisibleColumnKeysChange && hasData) {
365
363
  var _containerRef$current3;
366
- var previewRows = tableRows.map(function (_ref12) {
367
- var cells = _ref12.cells;
368
- var cell = cells.find(function (_ref13) {
369
- var cellKey = _ref13.key;
364
+ var previewRows = tableRows.map(function (_ref11) {
365
+ var cells = _ref11.cells;
366
+ var cell = cells.find(function (_ref12) {
367
+ var cellKey = _ref12.key;
370
368
  return cellKey === key;
371
369
  });
372
370
  if (cell) {
@@ -404,18 +402,18 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref2) {
404
402
  })))), jsx("tbody", {
405
403
  css: noDefaultBorderStyles,
406
404
  "data-testid": testId && "".concat(testId, "--body")
407
- }, rows.map(function (_ref14) {
408
- var key = _ref14.key,
409
- cells = _ref14.cells,
410
- ref = _ref14.ref;
405
+ }, rows.map(function (_ref13) {
406
+ var key = _ref13.key,
407
+ cells = _ref13.cells,
408
+ ref = _ref13.ref;
411
409
  return jsx("tr", {
412
410
  key: key,
413
411
  "data-testid": testId && "".concat(testId, "--row-").concat(key),
414
412
  ref: ref
415
- }, cells.map(function (_ref15, cellIndex) {
416
- var cellKey = _ref15.key,
417
- content = _ref15.content,
418
- maxWidth = _ref15.maxWidth;
413
+ }, cells.map(function (_ref14, cellIndex) {
414
+ var cellKey = _ref14.key,
415
+ content = _ref14.content,
416
+ maxWidth = _ref14.maxWidth;
419
417
  return jsx("td", {
420
418
  key: cellKey,
421
419
  "data-testid": testId && "".concat(testId, "--cell-").concat(cellIndex),
@@ -1,6 +1,7 @@
1
1
  /** @jsx jsx */
2
2
  import { Ref } from 'react';
3
3
  import { jsx } from '@emotion/react';
4
+ import { DatasourceResponseSchemaProperty } from '@atlaskit/linking-types/datasource';
4
5
  import { IssueLikeDataTableViewProps } from './types';
5
6
  export interface RowType {
6
7
  cells: Array<RowCellType>;
@@ -12,5 +13,6 @@ export interface RowCellType {
12
13
  content?: React.ReactNode | string;
13
14
  maxWidth?: number;
14
15
  }
16
+ export declare const orderColumns: (columns: DatasourceResponseSchemaProperty[], visibleColumnKeys: string[]) => DatasourceResponseSchemaProperty[];
15
17
  export declare const IssueLikeDataTableView: ({ testId, onNextPage, onLoadDatasourceDetails, items, columns, renderItem, visibleColumnKeys, onVisibleColumnKeysChange, status, hasNextPage, scrollableContainerHeight, parentContainerRenderInstanceId, extensionKey, }: IssueLikeDataTableViewProps) => jsx.JSX.Element;
16
18
  export declare const EmptyState: ({ isCompact, isLoading, testId }: import("./empty-state").Props) => jsx.JSX.Element;
@@ -1,6 +1,7 @@
1
1
  /** @jsx jsx */
2
2
  import { Ref } from 'react';
3
3
  import { jsx } from '@emotion/react';
4
+ import { DatasourceResponseSchemaProperty } from '@atlaskit/linking-types/datasource';
4
5
  import { IssueLikeDataTableViewProps } from './types';
5
6
  export interface RowType {
6
7
  cells: Array<RowCellType>;
@@ -12,5 +13,6 @@ export interface RowCellType {
12
13
  content?: React.ReactNode | string;
13
14
  maxWidth?: number;
14
15
  }
16
+ export declare const orderColumns: (columns: DatasourceResponseSchemaProperty[], visibleColumnKeys: string[]) => DatasourceResponseSchemaProperty[];
15
17
  export declare const IssueLikeDataTableView: ({ testId, onNextPage, onLoadDatasourceDetails, items, columns, renderItem, visibleColumnKeys, onVisibleColumnKeysChange, status, hasNextPage, scrollableContainerHeight, parentContainerRenderInstanceId, extensionKey, }: IssueLikeDataTableViewProps) => jsx.JSX.Element;
16
18
  export declare const EmptyState: ({ isCompact, isLoading, testId }: import("./empty-state").Props) => jsx.JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "1.6.1",
3
+ "version": "1.6.3",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -32,7 +32,7 @@
32
32
  "dependencies": {
33
33
  "@atlaskit/adf-schema": "^32.0.0",
34
34
  "@atlaskit/analytics-next": "^9.1.3",
35
- "@atlaskit/avatar": "^21.3.0",
35
+ "@atlaskit/avatar": "^21.4.0",
36
36
  "@atlaskit/button": "^16.10.0",
37
37
  "@atlaskit/dropdown-menu": "^11.14.0",
38
38
  "@atlaskit/editor-prosemirror": "1.1.0",
@@ -45,17 +45,17 @@
45
45
  "@atlaskit/jql-ast": "^3.0.0",
46
46
  "@atlaskit/jql-editor-autocomplete-rest": "^2.0.0",
47
47
  "@atlaskit/link-client-extension": "^1.7.0",
48
- "@atlaskit/linking-common": "^4.10.0",
48
+ "@atlaskit/linking-common": "^4.11.0",
49
49
  "@atlaskit/linking-types": "^8.4.0",
50
50
  "@atlaskit/lozenge": "^11.4.0",
51
- "@atlaskit/modal-dialog": "^12.7.0",
51
+ "@atlaskit/modal-dialog": "^12.8.0",
52
52
  "@atlaskit/platform-feature-flags": "^0.2.4",
53
53
  "@atlaskit/pragmatic-drag-and-drop": "^0.23.0",
54
54
  "@atlaskit/pragmatic-drag-and-drop-hitbox": "^0.11.0",
55
55
  "@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll": "^0.6.0",
56
56
  "@atlaskit/pragmatic-drag-and-drop-react-indicator": "^0.16.0",
57
57
  "@atlaskit/select": "^16.7.0",
58
- "@atlaskit/smart-card": "^26.33.0",
58
+ "@atlaskit/smart-card": "^26.34.0",
59
59
  "@atlaskit/spinner": "^15.6.0",
60
60
  "@atlaskit/tag": "^11.6.0",
61
61
  "@atlaskit/textfield": "5.6.8",