@atlaskit/link-datasource 6.6.0 → 6.7.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 (45) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cjs/ui/common/modal/datasource-context/index.js +4 -2
  3. package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/index.js +5 -1
  4. package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.js +22 -0
  5. package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +5 -1
  6. package/dist/cjs/ui/issue-like-table/column-picker/index.js +15 -2
  7. package/dist/cjs/ui/issue-like-table/index.compiled.css +3 -0
  8. package/dist/cjs/ui/issue-like-table/index.js +138 -85
  9. package/dist/cjs/ui/issue-like-table/table-settings-menu/index.compiled.css +6 -0
  10. package/dist/cjs/ui/issue-like-table/table-settings-menu/index.js +96 -0
  11. package/dist/cjs/ui/issue-like-table/table-settings-menu/messages.js +24 -0
  12. package/dist/es2019/ui/common/modal/datasource-context/index.js +4 -2
  13. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/index.js +5 -1
  14. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.js +22 -0
  15. package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +5 -1
  16. package/dist/es2019/ui/issue-like-table/column-picker/index.js +33 -18
  17. package/dist/es2019/ui/issue-like-table/index.compiled.css +3 -0
  18. package/dist/es2019/ui/issue-like-table/index.js +52 -4
  19. package/dist/es2019/ui/issue-like-table/table-settings-menu/index.compiled.css +6 -0
  20. package/dist/es2019/ui/issue-like-table/table-settings-menu/index.js +76 -0
  21. package/dist/es2019/ui/issue-like-table/table-settings-menu/messages.js +18 -0
  22. package/dist/esm/ui/common/modal/datasource-context/index.js +4 -2
  23. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/index.js +5 -1
  24. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.js +22 -0
  25. package/dist/esm/ui/datasource-table-view/datasourceTableView.js +5 -1
  26. package/dist/esm/ui/issue-like-table/column-picker/index.js +14 -1
  27. package/dist/esm/ui/issue-like-table/index.compiled.css +3 -0
  28. package/dist/esm/ui/issue-like-table/index.js +139 -86
  29. package/dist/esm/ui/issue-like-table/table-settings-menu/index.compiled.css +6 -0
  30. package/dist/esm/ui/issue-like-table/table-settings-menu/index.js +87 -0
  31. package/dist/esm/ui/issue-like-table/table-settings-menu/messages.js +18 -0
  32. package/dist/types/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.d.ts +1 -1
  33. package/dist/types/ui/datasource-table-view/datasourceTableView.d.ts +2 -2
  34. package/dist/types/ui/datasource-table-view/types.d.ts +1 -1
  35. package/dist/types/ui/issue-like-table/index.d.ts +1 -1
  36. package/dist/types/ui/issue-like-table/table-settings-menu/index.d.ts +8 -0
  37. package/dist/types/ui/issue-like-table/table-settings-menu/messages.d.ts +17 -0
  38. package/dist/types/ui/issue-like-table/types.d.ts +6 -0
  39. package/examples-helpers/buildAssetsIssuesTable.tsx +2 -0
  40. package/examples-helpers/buildConfluenceSearchTable.tsx +2 -0
  41. package/examples-helpers/buildIssueLikeTable.tsx +2 -0
  42. package/examples-helpers/buildJiraIssuesTable.tsx +2 -0
  43. package/examples-helpers/useAssetsTableProps.tsx +6 -0
  44. package/examples-helpers/useCommonTableProps.tsx +5 -2
  45. package/package.json +7 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 6.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`a8fb048ddba1a`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/a8fb048ddba1a) -
8
+ Add a gated table settings menu next to the column picker. When
9
+ `platform_lp_sllv_table_settings_menu` is on, the menu includes a wrap-text toggle that turns
10
+ wrapping on for every visible column, or off for every visible column. Gate off keeps the previous
11
+ column-picker-only header, and the editor does not pass `onWrappedColumnsChange`.
12
+
13
+ `DatasourceTableView` now accepts an optional `onWrappedColumnsChange` callback that updates the
14
+ wrapped state of multiple columns at once.
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies
19
+
3
20
  ## 6.6.0
4
21
 
5
22
  ### Minor Changes
@@ -36,7 +36,8 @@ var DatasourceContextProvider = exports.DatasourceContextProvider = function Dat
36
36
  onColumnResize = _useColumnResize.onColumnResize;
37
37
  var _useColumnWrapping = (0, _useColumnWrapping2.useColumnWrapping)(initialWrappedColumnKeys),
38
38
  wrappedColumnKeys = _useColumnWrapping.wrappedColumnKeys,
39
- onWrappedColumnChange = _useColumnWrapping.onWrappedColumnChange;
39
+ onWrappedColumnChange = _useColumnWrapping.onWrappedColumnChange,
40
+ onWrappedColumnsChange = _useColumnWrapping.onWrappedColumnsChange;
40
41
  var tableState = (0, _useDatasourceTableState.useDatasourceTableState)({
41
42
  datasourceId: datasourceId,
42
43
  parameters: isValidParameters(parameters) ? parameters : undefined,
@@ -62,11 +63,12 @@ var DatasourceContextProvider = exports.DatasourceContextProvider = function Dat
62
63
  onColumnResize: onColumnResize,
63
64
  wrappedColumnKeys: wrappedColumnKeys,
64
65
  onWrappedColumnChange: onWrappedColumnChange,
66
+ onWrappedColumnsChange: onWrappedColumnsChange,
65
67
  parameters: parameters,
66
68
  setParameters: setParameters,
67
69
  onInsert: onInsert
68
70
  };
69
- }, [datasourceId, isValidParameters, tableState, visibleColumnCount, visibleColumnKeys, onVisibleColumnKeysChange, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange, parameters, onInsert]);
71
+ }, [datasourceId, isValidParameters, tableState, visibleColumnCount, visibleColumnKeys, onVisibleColumnKeysChange, columnCustomSizes, onColumnResize, wrappedColumnKeys, onWrappedColumnChange, onWrappedColumnsChange, parameters, onInsert]);
70
72
  return /*#__PURE__*/_react.default.createElement(DatasourceContext.Provider, {
71
73
  value: contextValue
72
74
  }, children);
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
+ var _fg = require("@atlaskit/platform-feature-flags/fg");
11
12
  var _types = require("../../../../analytics/types");
12
13
  var _userInteractions = require("../../../../contexts/user-interactions");
13
14
  var _issueLikeTable = require("../../../issue-like-table");
@@ -19,6 +20,7 @@ var Table = function Table(props) {
19
20
  onColumnResize = _useDatasourceContext.onColumnResize,
20
21
  wrappedColumnKeys = _useDatasourceContext.wrappedColumnKeys,
21
22
  onWrappedColumnChange = _useDatasourceContext.onWrappedColumnChange,
23
+ onWrappedColumnsChange = _useDatasourceContext.onWrappedColumnsChange,
22
24
  visibleColumnKeys = _useDatasourceContext.visibleColumnKeys,
23
25
  onVisibleColumnKeysChange = _useDatasourceContext.onVisibleColumnKeysChange,
24
26
  _useDatasourceContext2 = _useDatasourceContext.tableState,
@@ -53,6 +55,8 @@ var Table = function Table(props) {
53
55
  onColumnResize: onColumnResize,
54
56
  wrappedColumnKeys: wrappedColumnKeys,
55
57
  onWrappedColumnChange: onWrappedColumnChange
56
- }));
58
+ }, (0, _fg.fg)('platform_lp_sllv_table_settings_menu') ? {
59
+ onWrappedColumnsChange: onWrappedColumnsChange
60
+ } : {}));
57
61
  };
58
62
  var _default = exports.default = Table;
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.useColumnWrapping = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _react = require("react");
10
+ var _fg = require("@atlaskit/platform-feature-flags/fg");
10
11
  var useColumnWrapping = exports.useColumnWrapping = function useColumnWrapping() {
11
12
  var initialWrappedColumnKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
12
13
  var _useState = (0, _react.useState)(initialWrappedColumnKeys),
@@ -22,6 +23,27 @@ var useColumnWrapping = exports.useColumnWrapping = function useColumnWrapping()
22
23
  }
23
24
  setWrappedColumnKeys(Array.from(set));
24
25
  }, [wrappedColumnKeys]);
26
+ var onWrappedColumnChangeWithLatestState = (0, _react.useCallback)(function (key, isWrapped) {
27
+ setWrappedColumnKeys(function (currentWrappedColumnKeys) {
28
+ var nextWrappedColumnKeys = new Set(currentWrappedColumnKeys);
29
+ if (isWrapped) {
30
+ nextWrappedColumnKeys.add(key);
31
+ } else {
32
+ nextWrappedColumnKeys.delete(key);
33
+ }
34
+ return Array.from(nextWrappedColumnKeys);
35
+ });
36
+ }, []);
37
+ var onWrappedColumnsChange = (0, _react.useCallback)(function (nextWrappedColumnKeys) {
38
+ setWrappedColumnKeys(nextWrappedColumnKeys);
39
+ }, []);
40
+ if ((0, _fg.fg)('platform_lp_sllv_table_settings_menu')) {
41
+ return {
42
+ wrappedColumnKeys: wrappedColumnKeys,
43
+ onWrappedColumnChange: onWrappedColumnChangeWithLatestState,
44
+ onWrappedColumnsChange: onWrappedColumnsChange
45
+ };
46
+ }
25
47
  return {
26
48
  wrappedColumnKeys: wrappedColumnKeys,
27
49
  onWrappedColumnChange: onWrappedColumnChange
@@ -51,6 +51,7 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
51
51
  onColumnResize = _ref.onColumnResize,
52
52
  wrappedColumnKeys = _ref.wrappedColumnKeys,
53
53
  onWrappedColumnChange = _ref.onWrappedColumnChange,
54
+ onWrappedColumnsChange = _ref.onWrappedColumnsChange,
54
55
  _ref$scrollableContai = _ref.scrollableContainerHeight,
55
56
  scrollableContainerHeight = _ref$scrollableContai === void 0 ? DefaultScrollableContainerHeight : _ref$scrollableContai;
56
57
  // Local copy lets us apply in-session sort mutations without mutating external parameters.
@@ -236,7 +237,10 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
236
237
  sortState: sortState
237
238
  } : {}, {
238
239
  wrappedColumnKeys: wrappedColumnKeys,
239
- onWrappedColumnChange: onWrappedColumnChange,
240
+ onWrappedColumnChange: onWrappedColumnChange
241
+ }, onWrappedColumnsChange && (0, _fg.fg)('platform_lp_sllv_table_settings_menu') ? {
242
+ onWrappedColumnsChange: onWrappedColumnsChange
243
+ } : {}, {
240
244
  scrollableContainerHeight: isInPDFRender ? undefined : (0, _fg.fg)('lp_enable_datasource-table-view_height_override') ? scrollableContainerHeight : DefaultScrollableContainerHeight,
241
245
  extensionKey: extensionKey
242
246
  })) : /*#__PURE__*/React.createElement(_emptyState.default, {
@@ -15,9 +15,11 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
15
15
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
16
  var _react = _interopRequireWildcard(require("react"));
17
17
  var _reactIntl = require("react-intl");
18
- var _button = _interopRequireDefault(require("@atlaskit/button/default/button"));
18
+ var _new = _interopRequireWildcard(require("@atlaskit/button/new"));
19
19
  var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/core/chevron-down"));
20
20
  var _customize = _interopRequireDefault(require("@atlaskit/icon/core/customize"));
21
+ var _tableColumnsDistribute = _interopRequireDefault(require("@atlaskit/icon/core/table-columns-distribute"));
22
+ var _fg = require("@atlaskit/platform-feature-flags/fg");
21
23
  var _compiled = require("@atlaskit/primitives/compiled");
22
24
  var _filters = require("@atlaskit/react-select/filters");
23
25
  var _popupSelect = require("@atlaskit/select/popup-select");
@@ -150,10 +152,21 @@ var ColumnPicker = exports.ColumnPicker = function ColumnPicker(_ref) {
150
152
  target: function target(_ref8) {
151
153
  var isOpen = _ref8.isOpen,
152
154
  triggerProps = (0, _objectWithoutProperties2.default)(_ref8, _excluded);
155
+ if ((0, _fg.fg)('platform_lp_sllv_table_settings_menu')) {
156
+ return /*#__PURE__*/_react.default.createElement(_new.IconButton, (0, _extends2.default)({}, triggerProps, {
157
+ appearance: "default",
158
+ icon: _tableColumnsDistribute.default,
159
+ isSelected: isOpen,
160
+ isTooltipDisabled: false,
161
+ label: intl.formatMessage(_messages.columnPickerMessages.tooltip),
162
+ spacing: "default",
163
+ testId: "column-picker-trigger-button"
164
+ }));
165
+ }
153
166
  return /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
154
167
  content: intl.formatMessage(_messages.columnPickerMessages.tooltip)
155
168
  }, function (tooltipProps) {
156
- return /*#__PURE__*/_react.default.createElement(_button.default, (0, _extends2.default)({}, tooltipProps, triggerProps, {
169
+ return /*#__PURE__*/_react.default.createElement(_new.default, (0, _extends2.default)({}, tooltipProps, triggerProps, {
157
170
  isSelected: isOpen,
158
171
  spacing: "compact",
159
172
  appearance: 'default',
@@ -51,6 +51,7 @@ thead.has-column-picker ._10i2idpf:nth-last-of-type(2){border-right:0}.ProseMirr
51
51
  .ProseMirror .pm-table-wrapper>table thead ._1pmc1b66{padding-right:var(--ds-space-050,4px)}
52
52
  .ProseMirror .pm-table-wrapper>table thead ._1pmsusvi:last-of-type{box-sizing:border-box}
53
53
  .ProseMirror .pm-table-wrapper>table thead ._1wwnusvi{box-sizing:border-box}
54
+ .ProseMirror .pm-table-wrapper>table thead ._2k5114em:last-of-type{width:95px}
54
55
  .ProseMirror .pm-table-wrapper>table thead ._2k51ys9h:last-of-type{width:5pc}
55
56
  .ProseMirror .pm-table-wrapper>table thead ._6dd7v77o{padding-bottom:var(--ds-space-025,2px)}
56
57
  .ProseMirror .pm-table-wrapper>table thead ._7cz2v77o{padding-top:var(--ds-space-025,2px)}
@@ -118,6 +119,7 @@ thead.has-column-picker ._10i2idpf:nth-last-of-type(2){border-right:0}.ProseMirr
118
119
  ._kqsw1if8{position:sticky}
119
120
  ._kqswh2mm{position:relative}
120
121
  ._lura1osq [data-testid=datasource-header-content--container]{width:100%}
122
+ ._mgul14em:last-of-type{width:95px}
121
123
  ._mgulys9h:last-of-type{width:5pc}
122
124
  ._ml92nkob:last-of-type{vertical-align:middle}
123
125
  ._mrkbidpf{border-bottom-left-radius:0}
@@ -159,6 +161,7 @@ thead.has-column-picker ._10i2idpf:nth-last-of-type(2){border-right:0}.ProseMirr
159
161
  .pm-table-wrapper>table thead ._3mvc1tcg{line-height:24px}
160
162
  .pm-table-wrapper>table thead ._7okwusvi:last-of-type{box-sizing:border-box}
161
163
  .pm-table-wrapper>table thead ._7s0n1if8:last-of-type{position:sticky}
164
+ .pm-table-wrapper>table thead ._efqo14em:last-of-type{width:95px}
162
165
  .pm-table-wrapper>table thead ._efqoys9h:last-of-type{width:5pc}
163
166
  .pm-table-wrapper>table thead ._gdprpxbi:last-of-type{padding-right:var(--ds-space-200,1pc)}
164
167
  .pm-table-wrapper>table thead ._mowjusic:last-of-type{text-align:right}
@@ -38,6 +38,7 @@ var _datasourceExperienceId = require("../../contexts/datasource-experience-id")
38
38
  var _useIsInPDFRender = require("../../hooks/useIsInPDFRender");
39
39
  var _noResults = require("../common/error-state/no-results");
40
40
  var _columnPicker = require("./column-picker");
41
+ var _tableSettingsMenu = require("./table-settings-menu");
41
42
  var _dragColumnPreview = require("./drag-column-preview");
42
43
  var _draggableTableHeading = require("./draggable-table-heading");
43
44
  var _emptyState = _interopRequireDefault(require("./empty-state"));
@@ -50,7 +51,8 @@ var _excluded = ["as", "style"],
50
51
  _excluded2 = ["as", "style"],
51
52
  _excluded3 = ["as", "style"],
52
53
  _excluded4 = ["as", "style"],
53
- _excluded5 = ["as", "style"];
54
+ _excluded5 = ["as", "style"],
55
+ _excluded6 = ["as", "style"];
54
56
  /* eslint-disable @atlaskit/design-system/use-tokens-typography */
55
57
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
56
58
  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; }
@@ -58,6 +60,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
58
60
  var tableSidePadding = "var(--ds-space-200, 16px)";
59
61
  var tableHeadStyles = null;
60
62
  var columnPickerWidth = 80;
63
+ var columnPickerWithSettingsWidth = 95;
61
64
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
62
65
  var ColumnPickerHeader = (0, _react.forwardRef)(function (_ref, __cmplr) {
63
66
  var _ref$as = _ref.as,
@@ -70,9 +73,24 @@ var ColumnPickerHeader = (0, _react.forwardRef)(function (_ref, __cmplr) {
70
73
  className: (0, _runtime.ax)(["_1bqmidpf _2eacidpf _1rmlidpf _13xs13hi _19xw13hi _ex0g13hi _1rag1uh4 _1ul51uh4 _12ch1uh4 _12ruusvi _1pmsusvi _7okwusvi _mgulys9h _2k51ys9h _efqoys9h _1xzrzo7u _1ejpzo7u _1fmczo7u _77i31if8 _zjk41if8 _7s0n1if8 _3t471vc6 _9g2k1vc6 _1h0z1vc6 _1o59pxbi _1l3vpxbi _gdprpxbi _ml92nkob _1nfwnkob _11ljnkob _1ixkusic _s1peusic _mowjusic", __cmplp.className])
71
74
  }));
72
75
  });
76
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
73
77
  if (process.env.NODE_ENV !== 'production') {
74
78
  ColumnPickerHeader.displayName = 'ColumnPickerHeader';
75
79
  }
80
+ var ColumnPickerHeaderWithSettings = (0, _react.forwardRef)(function (_ref2, __cmplr) {
81
+ var _ref2$as = _ref2.as,
82
+ C = _ref2$as === void 0 ? "th" : _ref2$as,
83
+ __cmpls = _ref2.style,
84
+ __cmplp = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
85
+ return /*#__PURE__*/React.createElement(C, (0, _extends2.default)({}, __cmplp, {
86
+ style: __cmpls,
87
+ ref: __cmplr,
88
+ className: (0, _runtime.ax)(["_1bqmidpf _2eacidpf _1rmlidpf _13xs13hi _19xw13hi _ex0g13hi _1rag1uh4 _1ul51uh4 _12ch1uh4 _12ruusvi _1pmsusvi _7okwusvi _mgul14em _2k5114em _efqo14em _1xzrzo7u _1ejpzo7u _1fmczo7u _77i31if8 _zjk41if8 _7s0n1if8 _3t471vc6 _9g2k1vc6 _1h0z1vc6 _1o59pxbi _1l3vpxbi _gdprpxbi _ml92nkob _1nfwnkob _11ljnkob _1ixkusic _s1peusic _mowjusic", __cmplp.className])
89
+ }));
90
+ });
91
+ if (process.env.NODE_ENV !== 'production') {
92
+ ColumnPickerHeaderWithSettings.displayName = 'ColumnPickerHeaderWithSettings';
93
+ }
76
94
  var truncateStyles = null;
77
95
  var wrappedStyles = null;
78
96
  var richTextCellStyles = null;
@@ -95,11 +113,11 @@ var getHorizontalScrollParent = function getHorizontalScrollParent(element) {
95
113
  };
96
114
 
97
115
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled
98
- var Table = (0, _react.forwardRef)(function (_ref2, __cmplr) {
99
- var _ref2$as = _ref2.as,
100
- C = _ref2$as === void 0 ? "table" : _ref2$as,
101
- __cmpls = _ref2.style,
102
- __cmplp = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
116
+ var Table = (0, _react.forwardRef)(function (_ref3, __cmplr) {
117
+ var _ref3$as = _ref3.as,
118
+ C = _ref3$as === void 0 ? "table" : _ref3$as,
119
+ __cmpls = _ref3.style,
120
+ __cmplp = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
103
121
  return /*#__PURE__*/React.createElement(C, (0, _extends2.default)({}, __cmplp, {
104
122
  style: __cmpls,
105
123
  ref: __cmplr,
@@ -111,11 +129,11 @@ var Table = (0, _react.forwardRef)(function (_ref2, __cmplr) {
111
129
  if (process.env.NODE_ENV !== 'production') {
112
130
  Table.displayName = 'Table';
113
131
  }
114
- var TableHeading = (0, _react.forwardRef)(function (_ref3, __cmplr) {
115
- var _ref3$as = _ref3.as,
116
- C = _ref3$as === void 0 ? "th" : _ref3$as,
117
- __cmpls = _ref3.style,
118
- __cmplp = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
132
+ var TableHeading = (0, _react.forwardRef)(function (_ref4, __cmplr) {
133
+ var _ref4$as = _ref4.as,
134
+ C = _ref4$as === void 0 ? "th" : _ref4$as,
135
+ __cmpls = _ref4.style,
136
+ __cmplp = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
119
137
  return /*#__PURE__*/React.createElement(C, (0, _extends2.default)({}, __cmplp, {
120
138
  style: __cmpls,
121
139
  ref: __cmplr,
@@ -127,11 +145,11 @@ var TableHeading = (0, _react.forwardRef)(function (_ref3, __cmplr) {
127
145
  if (process.env.NODE_ENV !== 'production') {
128
146
  TableHeading.displayName = 'TableHeading';
129
147
  }
130
- var InlineEditableTableCell = (0, _react.forwardRef)(function (_ref4, __cmplr) {
131
- var _ref4$as = _ref4.as,
132
- C = _ref4$as === void 0 ? "td" : _ref4$as,
133
- __cmpls = _ref4.style,
134
- __cmplp = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
148
+ var InlineEditableTableCell = (0, _react.forwardRef)(function (_ref5, __cmplr) {
149
+ var _ref5$as = _ref5.as,
150
+ C = _ref5$as === void 0 ? "td" : _ref5$as,
151
+ __cmpls = _ref5.style,
152
+ __cmplp = (0, _objectWithoutProperties2.default)(_ref5, _excluded5);
135
153
  return /*#__PURE__*/React.createElement(C, (0, _extends2.default)({}, __cmplp, {
136
154
  style: __cmpls,
137
155
  ref: __cmplr,
@@ -161,11 +179,11 @@ var headerStyles = null;
161
179
  var headingHoverEffectStyles = null;
162
180
 
163
181
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- Matches DraggableTableHeading button normalization.
164
- var SortableHeaderParent = (0, _react.forwardRef)(function (_ref5, __cmplr) {
165
- var _ref5$as = _ref5.as,
166
- C = _ref5$as === void 0 ? "div" : _ref5$as,
167
- __cmpls = _ref5.style,
168
- __cmplp = (0, _objectWithoutProperties2.default)(_ref5, _excluded5);
182
+ var SortableHeaderParent = (0, _react.forwardRef)(function (_ref6, __cmplr) {
183
+ var _ref6$as = _ref6.as,
184
+ C = _ref6$as === void 0 ? "div" : _ref6$as,
185
+ __cmpls = _ref6.style,
186
+ __cmplp = (0, _objectWithoutProperties2.default)(_ref6, _excluded6);
169
187
  return /*#__PURE__*/React.createElement(C, (0, _extends2.default)({}, __cmplp, {
170
188
  style: __cmpls,
171
189
  ref: __cmplr,
@@ -221,28 +239,29 @@ function getDefaultColumnWidth(key, type) {
221
239
  return DEFAULT_WIDTH;
222
240
  }
223
241
  }
224
- var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLikeDataTableView(_ref6) {
242
+ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLikeDataTableView(_ref7) {
225
243
  var _containerRef$current;
226
- var testId = _ref6.testId,
227
- onNextPage = _ref6.onNextPage,
228
- onLoadDatasourceDetails = _ref6.onLoadDatasourceDetails,
229
- items = _ref6.items,
230
- itemIds = _ref6.itemIds,
231
- columns = _ref6.columns,
232
- _ref6$renderItem = _ref6.renderItem,
233
- renderItem = _ref6$renderItem === void 0 ? _renderType.renderType : _ref6$renderItem,
234
- visibleColumnKeys = _ref6.visibleColumnKeys,
235
- onVisibleColumnKeysChange = _ref6.onVisibleColumnKeysChange,
236
- columnCustomSizes = _ref6.columnCustomSizes,
237
- onColumnResize = _ref6.onColumnResize,
238
- onColumnSort = _ref6.onColumnSort,
239
- wrappedColumnKeys = _ref6.wrappedColumnKeys,
240
- onWrappedColumnChange = _ref6.onWrappedColumnChange,
241
- sortState = _ref6.sortState,
242
- status = _ref6.status,
243
- hasNextPage = _ref6.hasNextPage,
244
- scrollableContainerHeight = _ref6.scrollableContainerHeight,
245
- extensionKey = _ref6.extensionKey;
244
+ var testId = _ref7.testId,
245
+ onNextPage = _ref7.onNextPage,
246
+ onLoadDatasourceDetails = _ref7.onLoadDatasourceDetails,
247
+ items = _ref7.items,
248
+ itemIds = _ref7.itemIds,
249
+ columns = _ref7.columns,
250
+ _ref7$renderItem = _ref7.renderItem,
251
+ renderItem = _ref7$renderItem === void 0 ? _renderType.renderType : _ref7$renderItem,
252
+ visibleColumnKeys = _ref7.visibleColumnKeys,
253
+ onVisibleColumnKeysChange = _ref7.onVisibleColumnKeysChange,
254
+ columnCustomSizes = _ref7.columnCustomSizes,
255
+ onColumnResize = _ref7.onColumnResize,
256
+ onColumnSort = _ref7.onColumnSort,
257
+ wrappedColumnKeys = _ref7.wrappedColumnKeys,
258
+ onWrappedColumnChange = _ref7.onWrappedColumnChange,
259
+ onWrappedColumnsChange = _ref7.onWrappedColumnsChange,
260
+ sortState = _ref7.sortState,
261
+ status = _ref7.status,
262
+ hasNextPage = _ref7.hasNextPage,
263
+ scrollableContainerHeight = _ref7.scrollableContainerHeight,
264
+ extensionKey = _ref7.extensionKey;
246
265
  var _useIntl = (0, _reactIntl.useIntl)(),
247
266
  formatMessage = _useIntl.formatMessage;
248
267
  var tableId = (0, _react.useMemo)(function () {
@@ -281,25 +300,48 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
281
300
  }, [experienceId, status]);
282
301
  var visibleSortedColumns = (0, _react.useMemo)(function () {
283
302
  return visibleColumnKeys.map(function (visibleKey) {
284
- return orderedColumns.find(function (_ref7) {
285
- var key = _ref7.key;
303
+ return orderedColumns.find(function (_ref8) {
304
+ var key = _ref8.key;
286
305
  return visibleKey === key;
287
306
  });
288
307
  }).filter(Boolean);
289
308
  }, [orderedColumns, visibleColumnKeys]);
309
+ var isWrapTextSettingAvailable = Boolean(onWrappedColumnsChange) && (0, _fg.fg)('platform_lp_sllv_table_settings_menu');
310
+ var areAllVisibleColumnsWrapped = false;
311
+ if (isWrapTextSettingAvailable) {
312
+ areAllVisibleColumnsWrapped = visibleColumnKeys.length > 0 && visibleColumnKeys.every(function (columnKey) {
313
+ return wrappedColumnKeys === null || wrappedColumnKeys === void 0 ? void 0 : wrappedColumnKeys.includes(columnKey);
314
+ });
315
+ }
316
+ var handleWrapTextOnAllColumnsChange = (0, _react.useCallback)(function () {
317
+ if (!onWrappedColumnsChange) {
318
+ return;
319
+ }
320
+ var nextWrappedColumnKeys = areAllVisibleColumnsWrapped ? (wrappedColumnKeys !== null && wrappedColumnKeys !== void 0 ? wrappedColumnKeys : []).filter(function (columnKey) {
321
+ return !visibleColumnKeys.includes(columnKey);
322
+ }) : Array.from(new Set([].concat((0, _toConsumableArray2.default)(wrappedColumnKeys !== null && wrappedColumnKeys !== void 0 ? wrappedColumnKeys : []), (0, _toConsumableArray2.default)(visibleColumnKeys))));
323
+ onWrappedColumnsChange(nextWrappedColumnKeys);
324
+ }, [areAllVisibleColumnsWrapped, onWrappedColumnsChange, visibleColumnKeys, wrappedColumnKeys]);
325
+ var tableSettingsMenuProps = {
326
+ wrapTextSetting: isWrapTextSettingAvailable ? {
327
+ isChecked: areAllVisibleColumnsWrapped,
328
+ onChange: handleWrapTextOnAllColumnsChange
329
+ } : undefined
330
+ };
331
+ var shouldShowTableSettingsMenu = (0, _tableSettingsMenu.hasAvailableTableSettings)(tableSettingsMenuProps);
290
332
 
291
333
  // TODO seems like this component can't handle some combination of incremental data retrieval.
292
334
  // If data comes first, then columns and then visibleColumnKeys it blows up,
293
335
  // or some other combination.
294
336
  var columnsWidthsSum = (0, _react.useMemo)(function () {
295
- return visibleSortedColumns.map(function (_ref8) {
296
- var key = _ref8.key,
297
- type = _ref8.type;
337
+ return visibleSortedColumns.map(function (_ref9) {
338
+ var key = _ref9.key,
339
+ type = _ref9.type;
298
340
  return (columnCustomSizes === null || columnCustomSizes === void 0 ? void 0 : columnCustomSizes[key]) || getDefaultColumnWidth(key, type);
299
341
  }).reduce(function (sum, width) {
300
342
  return width + sum;
301
- }, 0) + (onVisibleColumnKeysChange ? columnPickerWidth : 0);
302
- }, [columnCustomSizes, onVisibleColumnKeysChange, visibleSortedColumns]);
343
+ }, 0) + (onVisibleColumnKeysChange && shouldShowTableSettingsMenu ? columnPickerWithSettingsWidth : onVisibleColumnKeysChange ? columnPickerWidth : 0);
344
+ }, [columnCustomSizes, onVisibleColumnKeysChange, shouldShowTableSettingsMenu, visibleSortedColumns]);
303
345
  var shouldUseWidth = !!(onColumnResize || columnCustomSizes);
304
346
  var tableContainerWidth = Math.ceil(((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.getBoundingClientRect().width) || 0);
305
347
  var getColumnWidth = (0, _react.useCallback)(function (key, type, isLastCell) {
@@ -310,10 +352,10 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
310
352
  }
311
353
  }, [columnCustomSizes, columnsWidthsSum, shouldUseWidth, tableContainerWidth]);
312
354
  var headerColumns = (0, _react.useMemo)(function () {
313
- return visibleSortedColumns.map(function (_ref9, index) {
314
- var key = _ref9.key,
315
- title = _ref9.title,
316
- type = _ref9.type;
355
+ return visibleSortedColumns.map(function (_ref0, index) {
356
+ var key = _ref0.key,
357
+ title = _ref0.title,
358
+ type = _ref0.type;
317
359
  return {
318
360
  key: key,
319
361
  content: title,
@@ -396,9 +438,9 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
396
438
  return;
397
439
  }
398
440
  return (0, _combine.combine)((0, _elementAdapter.monitorForElements)({
399
- onDragStart: function onDragStart(_ref0) {
400
- var location = _ref0.location,
401
- source = _ref0.source;
441
+ onDragStart: function onDragStart(_ref1) {
442
+ var location = _ref1.location,
443
+ source = _ref1.source;
402
444
  initialAutoScrollerClientY.current = location.current.input.clientY;
403
445
  if (source.data.type === 'table-header') {
404
446
  var _containerRef$current2;
@@ -414,9 +456,9 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
414
456
  });
415
457
  }
416
458
  },
417
- onDrag: function onDrag(_ref1) {
418
- var location = _ref1.location,
419
- source = _ref1.source;
459
+ onDrag: function onDrag(_ref10) {
460
+ var location = _ref10.location,
461
+ source = _ref10.source;
420
462
  if (source.data.type === 'table-header') {
421
463
  var _containerRef$current3;
422
464
  _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.updateInput({
@@ -426,9 +468,9 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
426
468
  });
427
469
  }
428
470
  },
429
- onDrop: function onDrop(_ref10) {
430
- var source = _ref10.source,
431
- location = _ref10.location;
471
+ onDrop: function onDrop(_ref11) {
472
+ var source = _ref11.source,
473
+ location = _ref11.location;
432
474
  _pragmaticDragAndDropReactBeautifulDndAutoscroll.autoScroller.stop();
433
475
  if (location.current.dropTargets.length === 0) {
434
476
  return;
@@ -463,10 +505,10 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
463
505
  return itemIds.map(function (id, rowIndex) {
464
506
  return {
465
507
  key: id,
466
- cells: visibleSortedColumns.map(function (_ref11, cellIndex) {
467
- var key = _ref11.key,
468
- type = _ref11.type,
469
- title = _ref11.title;
508
+ cells: visibleSortedColumns.map(function (_ref12, cellIndex) {
509
+ var key = _ref12.key,
510
+ type = _ref12.type,
511
+ title = _ref12.title;
470
512
  return {
471
513
  key: key,
472
514
  columnKey: key,
@@ -602,10 +644,10 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
602
644
  className: (0, _runtime.ax)(["_n7zlidpf", "_bfhkchd4 _kqsw1if8 _154iidpf _1pbyzo7u", !!onVisibleColumnKeysChange ? 'has-column-picker' : ''])
603
645
  }, /*#__PURE__*/React.createElement("tr", {
604
646
  ref: tableHeaderRowRef
605
- }, headerColumns.map(function (_ref13, cellIndex) {
606
- var key = _ref13.key,
607
- content = _ref13.content,
608
- width = _ref13.width;
647
+ }, headerColumns.map(function (_ref14, cellIndex) {
648
+ var key = _ref14.key,
649
+ content = _ref14.content,
650
+ width = _ref14.width;
609
651
  var heading = /*#__PURE__*/React.createElement(_Tooltip.default, {
610
652
  content: content,
611
653
  tag: "span",
@@ -650,10 +692,10 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
650
692
  }
651
693
  if (isEditable) {
652
694
  var _containerRef$current4;
653
- var previewRows = tableRows.map(function (_ref14) {
654
- var cells = _ref14.cells;
655
- var cell = cells.find(function (_ref15) {
656
- var cellKey = _ref15.key;
695
+ var previewRows = tableRows.map(function (_ref15) {
696
+ var cells = _ref15.cells;
697
+ var cell = cells.find(function (_ref16) {
698
+ var cellKey = _ref16.key;
657
699
  return cellKey === key;
658
700
  });
659
701
  if (cell) {
@@ -690,12 +732,23 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
690
732
  })
691
733
  }), heading);
692
734
  }
693
- }), onVisibleColumnKeysChange && /*#__PURE__*/React.createElement(ColumnPickerHeader, null, /*#__PURE__*/React.createElement(_columnPicker.ColumnPicker, {
735
+ }), onVisibleColumnKeysChange && (shouldShowTableSettingsMenu ? /*#__PURE__*/React.createElement(ColumnPickerHeaderWithSettings, null, /*#__PURE__*/React.createElement(_compiled.Inline, {
736
+ alignBlock: "center",
737
+ alignInline: "end",
738
+ space: "space.050"
739
+ }, /*#__PURE__*/React.createElement(_columnPicker.ColumnPicker, {
740
+ columns: shouldDisplayColumnsInPicker ? orderedColumns : [],
741
+ selectedColumnKeys: shouldDisplayColumnsInPicker ? visibleColumnKeys : [],
742
+ onSelectedColumnKeysChange: onSelectedColumnKeysChange,
743
+ onOpen: handlePickerOpen
744
+ }), /*#__PURE__*/React.createElement(_tableSettingsMenu.TableSettingsMenu, {
745
+ wrapTextSetting: tableSettingsMenuProps.wrapTextSetting
746
+ }))) : /*#__PURE__*/React.createElement(ColumnPickerHeader, null, /*#__PURE__*/React.createElement(_columnPicker.ColumnPicker, {
694
747
  columns: shouldDisplayColumnsInPicker ? orderedColumns : [],
695
748
  selectedColumnKeys: shouldDisplayColumnsInPicker ? visibleColumnKeys : [],
696
749
  onSelectedColumnKeysChange: onSelectedColumnKeysChange,
697
750
  onOpen: handlePickerOpen
698
- })))), /*#__PURE__*/React.createElement("tbody", {
751
+ }))))), /*#__PURE__*/React.createElement("tbody", {
699
752
  "data-testid": testId && "".concat(testId, "--body"),
700
753
  className: (0, _runtime.ax)(["_n7zlidpf"])
701
754
  }, hasNoResults && /*#__PURE__*/React.createElement("tr", {
@@ -710,19 +763,19 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
710
763
  className: (0, _runtime.ax)(["_kqsw1if8 _1ltvidpf _1e0c1txw _1bah1h6o"])
711
764
  }, /*#__PURE__*/React.createElement(_noResults.NoResults, {
712
765
  isCompact: true
713
- })))), rows.map(function (_ref16) {
714
- var key = _ref16.key,
715
- cells = _ref16.cells,
716
- ref = _ref16.ref;
766
+ })))), rows.map(function (_ref17) {
767
+ var key = _ref17.key,
768
+ cells = _ref17.cells,
769
+ ref = _ref17.ref;
717
770
  return /*#__PURE__*/React.createElement("tr", {
718
771
  key: key,
719
772
  "data-testid": testId && "".concat(testId, "--row-").concat(key),
720
773
  ref: ref
721
- }, cells.map(function (_ref17, cellIndex) {
722
- var cellKey = _ref17.key,
723
- cellType = _ref17.type,
724
- content = _ref17.content,
725
- width = _ref17.width;
774
+ }, cells.map(function (_ref18, cellIndex) {
775
+ var cellKey = _ref18.key,
776
+ cellType = _ref18.type,
777
+ content = _ref18.content,
778
+ width = _ref18.width;
726
779
  var isLastCell = cellIndex === cells.length - 1;
727
780
  var loadingRowStyle = (0, _utils.getWidthCss)({
728
781
  shouldUseWidth: shouldUseWidth,
@@ -0,0 +1,6 @@
1
+ ._1rjcu2gc{padding-block:var(--ds-space-100,8px)}._19bvutpp{padding-left:var(--ds-space-150,9pt)}
2
+ ._1bsb1mjv{width:300px}
3
+ ._bfhksm61{background-color:var(--ds-background-neutral-subtle,#00000000)}
4
+ ._ca0q1b66{padding-top:var(--ds-space-050,4px)}
5
+ ._n3td1b66{padding-bottom:var(--ds-space-050,4px)}
6
+ ._u5f3utpp{padding-right:var(--ds-space-150,9pt)}