@atlaskit/link-datasource 7.5.1 → 7.5.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/compass.yml +1 -1
  3. package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/index.js +2 -4
  4. package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.js +2 -18
  5. package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +1 -1
  6. package/dist/cjs/ui/issue-like-table/column-picker/index.js +10 -51
  7. package/dist/cjs/ui/issue-like-table/edit-type/icon/index.js +2 -4
  8. package/dist/cjs/ui/issue-like-table/edit-type/inline-edit-layer/index.js +49 -0
  9. package/dist/cjs/ui/issue-like-table/edit-type/status/index.js +2 -4
  10. package/dist/cjs/ui/issue-like-table/edit-type/text/index.js +2 -4
  11. package/dist/cjs/ui/issue-like-table/edit-type/user/index.js +2 -4
  12. package/dist/cjs/ui/issue-like-table/issue-like-data-table-view.js +1 -2
  13. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/index.js +3 -5
  14. package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.js +2 -18
  15. package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +1 -1
  16. package/dist/es2019/ui/issue-like-table/column-picker/index.js +8 -45
  17. package/dist/es2019/ui/issue-like-table/edit-type/icon/index.js +2 -4
  18. package/dist/es2019/ui/issue-like-table/edit-type/inline-edit-layer/index.js +43 -0
  19. package/dist/es2019/ui/issue-like-table/edit-type/status/index.js +2 -4
  20. package/dist/es2019/ui/issue-like-table/edit-type/text/index.js +2 -4
  21. package/dist/es2019/ui/issue-like-table/edit-type/user/index.js +2 -4
  22. package/dist/es2019/ui/issue-like-table/issue-like-data-table-view.js +1 -2
  23. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/index.js +2 -4
  24. package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/use-column-wrapping/index.js +2 -18
  25. package/dist/esm/ui/datasource-table-view/datasourceTableView.js +1 -1
  26. package/dist/esm/ui/issue-like-table/column-picker/index.js +9 -50
  27. package/dist/esm/ui/issue-like-table/edit-type/icon/index.js +2 -4
  28. package/dist/esm/ui/issue-like-table/edit-type/inline-edit-layer/index.js +42 -0
  29. package/dist/esm/ui/issue-like-table/edit-type/status/index.js +2 -4
  30. package/dist/esm/ui/issue-like-table/edit-type/text/index.js +2 -4
  31. package/dist/esm/ui/issue-like-table/edit-type/user/index.js +2 -4
  32. package/dist/esm/ui/issue-like-table/issue-like-data-table-view.js +1 -2
  33. package/dist/types/ui/issue-like-table/edit-type/inline-edit-layer/index.d.ts +7 -0
  34. package/package.json +10 -9
  35. package/dist/cjs/ui/issue-like-table/column-picker/index.compiled.css +0 -1
  36. package/dist/es2019/ui/issue-like-table/column-picker/index.compiled.css +0 -1
  37. package/dist/esm/ui/issue-like-table/column-picker/index.compiled.css +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 7.5.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [`0cc2e73141eea`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0cc2e73141eea) -
8
+ Behind the `platform-dst-top-layer` feature gate, no longer uses `@atlaskit/layering`. Open
9
+ overlays are found with the `@atlaskit/top-layer/page-surface` entry points instead
10
+ (`platform-dst-top-layer-tooltip` for tooltip). Behaviour with the gate off is unchanged.
11
+ - Updated dependencies
12
+
13
+ ## 7.5.2
14
+
15
+ ### Patch Changes
16
+
17
+ - [`9b0d8af629b68`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9b0d8af629b68) -
18
+ Clean up feature gate `platform_lp_sllv_table_settings_menu`. The table settings menu and bulk
19
+ text wrapping remain permanently enabled, including the column-picker icon button and editor
20
+ wrapping updates. No public API changes.
21
+ - Updated dependencies
22
+
3
23
  ## 7.5.1
4
24
 
5
25
  ### Patch Changes
package/compass.yml CHANGED
@@ -27,7 +27,7 @@ links:
27
27
  url: https://opsj.atlassian.net/jira/ops/teams/62c5672c-3754-4ebe-8a0f-4d1c87ded5b5/on-call
28
28
  - name: Slack Channel
29
29
  type: CHAT_CHANNEL
30
- url: https://atlassian.enterprise.slack.com/archives/C09LKUEEPGT # #rovo-growth
30
+ url: https://atlassian.enterprise.slack.com/archives/C09LKUEEPGT #rovo-growth
31
31
  - name: Link Datasource
32
32
  type: REPOSITORY
33
33
  url: https://bitbucket.org/atlassian/atlassian-frontend-monorepo/src/master/platform/packages/linking-platform/link-datasource
@@ -8,7 +8,6 @@ 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");
12
11
  var _types = require("../../../../analytics/types");
13
12
  var _useUserInteractions = require("../../../../contexts/user-interactions/use-user-interactions");
14
13
  var _issueLikeDataTableView = require("../../../issue-like-table/issue-like-data-table-view");
@@ -54,9 +53,8 @@ var Table = function Table(props) {
54
53
  columnCustomSizes: columnCustomSizes,
55
54
  onColumnResize: onColumnResize,
56
55
  wrappedColumnKeys: wrappedColumnKeys,
57
- onWrappedColumnChange: onWrappedColumnChange
58
- }, (0, _fg.fg)('platform_lp_sllv_table_settings_menu') ? {
56
+ onWrappedColumnChange: onWrappedColumnChange,
59
57
  onWrappedColumnsChange: onWrappedColumnsChange
60
- } : {}));
58
+ }));
61
59
  };
62
60
  var _default = exports.default = Table;
@@ -7,7 +7,6 @@ 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");
11
10
  var useColumnWrapping = exports.useColumnWrapping = function useColumnWrapping() {
12
11
  var initialWrappedColumnKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
13
12
  var _useState = (0, _react.useState)(initialWrappedColumnKeys),
@@ -15,15 +14,6 @@ var useColumnWrapping = exports.useColumnWrapping = function useColumnWrapping()
15
14
  wrappedColumnKeys = _useState2[0],
16
15
  setWrappedColumnKeys = _useState2[1];
17
16
  var onWrappedColumnChange = (0, _react.useCallback)(function (key, isWrapped) {
18
- var set = new Set(wrappedColumnKeys);
19
- if (isWrapped) {
20
- set.add(key);
21
- } else {
22
- set.delete(key);
23
- }
24
- setWrappedColumnKeys(Array.from(set));
25
- }, [wrappedColumnKeys]);
26
- var onWrappedColumnChangeWithLatestState = (0, _react.useCallback)(function (key, isWrapped) {
27
17
  setWrappedColumnKeys(function (currentWrappedColumnKeys) {
28
18
  var nextWrappedColumnKeys = new Set(currentWrappedColumnKeys);
29
19
  if (isWrapped) {
@@ -37,15 +27,9 @@ var useColumnWrapping = exports.useColumnWrapping = function useColumnWrapping()
37
27
  var onWrappedColumnsChange = (0, _react.useCallback)(function (nextWrappedColumnKeys) {
38
28
  setWrappedColumnKeys(nextWrappedColumnKeys);
39
29
  }, []);
40
- if ((0, _fg.fg)('platform_lp_sllv_table_settings_menu')) {
41
- return {
42
- wrappedColumnKeys: wrappedColumnKeys,
43
- onWrappedColumnChange: onWrappedColumnChangeWithLatestState,
44
- onWrappedColumnsChange: onWrappedColumnsChange
45
- };
46
- }
47
30
  return {
48
31
  wrappedColumnKeys: wrappedColumnKeys,
49
- onWrappedColumnChange: onWrappedColumnChange
32
+ onWrappedColumnChange: onWrappedColumnChange,
33
+ onWrappedColumnsChange: onWrappedColumnsChange
50
34
  };
51
35
  };
@@ -273,7 +273,7 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
273
273
  } : {}, {
274
274
  wrappedColumnKeys: wrappedColumnKeys,
275
275
  onWrappedColumnChange: onWrappedColumnChange
276
- }, onWrappedColumnsChange && (0, _fg.fg)('platform_lp_sllv_table_settings_menu') ? {
276
+ }, onWrappedColumnsChange ? {
277
277
  onWrappedColumnsChange: onWrappedColumnsChange
278
278
  } : {}, {
279
279
  scrollableContainerHeight: isInPDFRender ? undefined : (0, _fg.fg)('lp_enable_datasource-table-view_height_override') ? scrollableContainerHeight : DefaultScrollableContainerHeight,
@@ -1,4 +1,3 @@
1
- /* index.tsx generated by @compiled/babel-plugin v3.0.2 */
2
1
  "use strict";
3
2
 
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -7,25 +6,16 @@ Object.defineProperty(exports, "__esModule", {
7
6
  value: true
8
7
  });
9
8
  exports.ColumnPicker = void 0;
10
- require("./index.compiled.css");
11
- var _runtime = require("@compiled/react/runtime");
12
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
13
  var _react = _interopRequireWildcard(require("react"));
17
14
  var _reactIntl = require("react-intl");
18
- var _useCallbackRef = require("use-callback-ref");
19
- var _button = _interopRequireDefault(require("@atlaskit/button/default/button"));
20
- var _button2 = _interopRequireDefault(require("@atlaskit/button/icon/button"));
21
- var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/core/chevron-down"));
22
- var _customize = _interopRequireDefault(require("@atlaskit/icon/core/customize"));
15
+ var _button = _interopRequireDefault(require("@atlaskit/button/icon/button"));
23
16
  var _tableColumnsDistribute = _interopRequireDefault(require("@atlaskit/icon/core/table-columns-distribute"));
24
- var _fg = require("@atlaskit/platform-feature-flags/fg");
25
- var _box = require("@atlaskit/primitives/compiled/box");
26
17
  var _filters = require("@atlaskit/react-select/filters");
27
18
  var _popupSelect = require("@atlaskit/select/popup-select");
28
- var _Tooltip = _interopRequireDefault(require("@atlaskit/tooltip/Tooltip"));
29
19
  var _succeedUfoExperience = require("../../../analytics/ufoExperiences/succeedUfoExperience");
30
20
  var _useDatasourceExperienceId = require("../../../contexts/datasource-experience-id/use-datasource-experience-id");
31
21
  var _concatenatedMenuList = require("./concatenated-menu-list");
@@ -33,9 +23,6 @@ var _menuItem = require("./menu-item");
33
23
  var _messages = require("./messages");
34
24
  var _excluded = ["isOpen"];
35
25
  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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
36
- var styles = {
37
- customizeIcon: "_s7n4nkob"
38
- };
39
26
  var ColumnPicker = exports.ColumnPicker = function ColumnPicker(_ref) {
40
27
  var columns = _ref.columns,
41
28
  selectedColumnKeys = _ref.selectedColumnKeys,
@@ -155,43 +142,15 @@ var ColumnPicker = exports.ColumnPicker = function ColumnPicker(_ref) {
155
142
  target: function target(_ref8) {
156
143
  var isOpen = _ref8.isOpen,
157
144
  triggerProps = (0, _objectWithoutProperties2.default)(_ref8, _excluded);
158
- if ((0, _fg.fg)('platform_lp_sllv_table_settings_menu')) {
159
- return /*#__PURE__*/_react.default.createElement(_button2.default, (0, _extends2.default)({}, triggerProps, {
160
- appearance: "default",
161
- icon: _tableColumnsDistribute.default,
162
- isSelected: isOpen,
163
- isTooltipDisabled: false,
164
- label: intl.formatMessage(_messages.columnPickerMessages.tooltip),
165
- spacing: "default",
166
- testId: "column-picker-trigger-button"
167
- }));
168
- }
169
- return /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
170
- content: intl.formatMessage(_messages.columnPickerMessages.tooltip)
171
- }, function (tooltipProps) {
172
- return /*#__PURE__*/_react.default.createElement(_button.default, (0, _extends2.default)({}, tooltipProps, triggerProps, {
173
- // `tooltipProps.ref` must be included: spreading `triggerProps` after
174
- // `tooltipProps` drops the tooltip's ref, leaving Tooltip without an
175
- // anchor element. Gate off leaves `triggerProps.ref` winning, exactly as
176
- // master does.
177
- ref: (0, _fg.fg)('platform-dst-top-layer-tooltip') ? (0, _useCallbackRef.mergeRefs)([triggerProps.ref, tooltipProps.ref]) : triggerProps.ref,
178
- isSelected: isOpen,
179
- spacing: "compact",
180
- appearance: 'default',
181
- testId: "column-picker-trigger-button",
182
- iconAfter: function iconAfter() {
183
- return /*#__PURE__*/_react.default.createElement(_chevronDown.default, {
184
- label: "down",
185
- size: "small"
186
- });
187
- }
188
- }), /*#__PURE__*/_react.default.createElement(_box.Box, {
189
- as: "span",
190
- xcss: styles.customizeIcon
191
- }, /*#__PURE__*/_react.default.createElement(_customize.default, {
192
- label: "customize"
193
- })));
194
- });
145
+ return /*#__PURE__*/_react.default.createElement(_button.default, (0, _extends2.default)({}, triggerProps, {
146
+ appearance: "default",
147
+ icon: _tableColumnsDistribute.default,
148
+ isSelected: isOpen,
149
+ isTooltipDisabled: false,
150
+ label: intl.formatMessage(_messages.columnPickerMessages.tooltip),
151
+ spacing: "default",
152
+ testId: "column-picker-trigger-button"
153
+ }));
195
154
  }
196
155
  });
197
156
  };
@@ -8,7 +8,6 @@ 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 _layering = require("@atlaskit/layering/layering");
12
11
  var _default2 = _interopRequireDefault(require("@atlaskit/select/default"));
13
12
  var _Tooltip = _interopRequireDefault(require("@atlaskit/tooltip/Tooltip"));
14
13
  var _failUfoExperience = require("../../../../analytics/ufoExperiences/failUfoExperience");
@@ -18,6 +17,7 @@ var _useLoadOptions2 = require("../../../../hooks/useLoadOptions");
18
17
  var _getCleanedSelectProps = require("../../get-cleaned-select-props");
19
18
  var _icon = require("../../shared-components/icon");
20
19
  var _inlineEdit = require("../../table-cell-content/inline-edit");
20
+ var _inlineEditLayer = require("../inline-edit-layer");
21
21
  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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
22
22
  var IconEditType = function IconEditType(props) {
23
23
  var _currentValue$values;
@@ -45,9 +45,7 @@ var IconEditType = function IconEditType(props) {
45
45
  }, experienceId);
46
46
  }
47
47
  }, [experienceId, isLoading, hasFailed]);
48
- return /*#__PURE__*/_react.default.createElement(_layering.Layering, {
49
- isDisabled: false
50
- }, /*#__PURE__*/_react.default.createElement(_default2.default, (0, _extends2.default)({}, (0, _getCleanedSelectProps.getCleanedSelectProps)(props), {
48
+ return /*#__PURE__*/_react.default.createElement(_inlineEditLayer.InlineEditLayer, null, /*#__PURE__*/_react.default.createElement(_default2.default, (0, _extends2.default)({}, (0, _getCleanedSelectProps.getCleanedSelectProps)(props), {
51
49
  menuPortalTarget: document.body,
52
50
  autoFocus: true,
53
51
  blurInputOnSelect: true,
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.InlineEditLayer = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _layering = require("@atlaskit/layering/layering");
10
+ var _fg = require("@atlaskit/platform-feature-flags/fg");
11
+ var _hasOpenDialogOrPopover = require("@atlaskit/top-layer/page-surface/has-open-dialog-or-popover");
12
+ var _requestClosePopovers = require("@atlaskit/top-layer/page-surface/request-close-popovers");
13
+ 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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
14
+ /**
15
+ * Wraps an inline edit view, so that Escape cancels the edit and does not close a containing modal.
16
+ */
17
+ var InlineEditLayer = exports.InlineEditLayer = function InlineEditLayer(_ref) {
18
+ var children = _ref.children;
19
+ var onKeyDown = (0, _react.useCallback)(function (event) {
20
+ if (event.key !== 'Escape') {
21
+ return;
22
+ }
23
+
24
+ // An open menu takes the first Escape, and the edit stays open (as with layering).
25
+ if ((0, _hasOpenDialogOrPopover.hasOpenDialogOrPopover)({
26
+ within: event.currentTarget
27
+ })) {
28
+ event.stopPropagation();
29
+ event.preventDefault();
30
+ (0, _requestClosePopovers.requestClosePopovers)({
31
+ within: event.currentTarget
32
+ });
33
+ return;
34
+ }
35
+
36
+ // The inline edit form still cancels the edit. A containing modal ignores a prevented Escape.
37
+ event.preventDefault();
38
+ }, []);
39
+ if (!(0, _fg.fg)('platform-dst-top-layer')) {
40
+ // The Escape handler of a containing modal yields while this layer is open.
41
+ return /*#__PURE__*/_react.default.createElement(_layering.Layering, {
42
+ isDisabled: false
43
+ }, children);
44
+ }
45
+ return /*#__PURE__*/_react.default.createElement("div", {
46
+ role: "presentation",
47
+ onKeyDown: onKeyDown
48
+ }, children);
49
+ };
@@ -8,7 +8,6 @@ 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 _layering = require("@atlaskit/layering/layering");
12
11
  var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge/new/lozenge"));
13
12
  var _default2 = _interopRequireDefault(require("@atlaskit/select/default"));
14
13
  var _Tooltip = _interopRequireDefault(require("@atlaskit/tooltip/Tooltip"));
@@ -18,6 +17,7 @@ var _useDatasourceExperienceId = require("../../../../contexts/datasource-experi
18
17
  var _useLoadOptions2 = require("../../../../hooks/useLoadOptions");
19
18
  var _getCleanedSelectProps = require("../../get-cleaned-select-props");
20
19
  var _inlineEdit = require("../../table-cell-content/inline-edit");
20
+ var _inlineEditLayer = require("../inline-edit-layer");
21
21
  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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
22
22
  var StatusEditType = function StatusEditType(props) {
23
23
  var _currentValue$values;
@@ -45,9 +45,7 @@ var StatusEditType = function StatusEditType(props) {
45
45
  }, experienceId);
46
46
  }
47
47
  }, [experienceId, isLoading, hasFailed]);
48
- return /*#__PURE__*/_react.default.createElement(_layering.Layering, {
49
- isDisabled: false
50
- }, /*#__PURE__*/_react.default.createElement(_default2.default, (0, _extends2.default)({}, (0, _getCleanedSelectProps.getCleanedSelectProps)(props), {
48
+ return /*#__PURE__*/_react.default.createElement(_inlineEditLayer.InlineEditLayer, null, /*#__PURE__*/_react.default.createElement(_default2.default, (0, _extends2.default)({}, (0, _getCleanedSelectProps.getCleanedSelectProps)(props), {
51
49
  menuPortalTarget: document.body,
52
50
  autoFocus: true,
53
51
  options: options,
@@ -8,10 +8,10 @@ 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 _layering = require("@atlaskit/layering/layering");
12
11
  var _textField = _interopRequireDefault(require("@atlaskit/textfield/text-field"));
13
12
  var _succeedUfoExperience = require("../../../../analytics/ufoExperiences/succeedUfoExperience");
14
13
  var _useDatasourceExperienceId = require("../../../../contexts/datasource-experience-id/use-datasource-experience-id");
14
+ var _inlineEditLayer = require("../inline-edit-layer");
15
15
  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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
16
16
  var TextEditType = function TextEditType(props) {
17
17
  var _currentValue$values$, _currentValue$values;
@@ -25,9 +25,7 @@ var TextEditType = function TextEditType(props) {
25
25
  }, experienceId);
26
26
  }
27
27
  }, [experienceId]);
28
- return /*#__PURE__*/_react.default.createElement(_layering.Layering, {
29
- isDisabled: false
30
- }, /*#__PURE__*/_react.default.createElement(_textField.default, (0, _extends2.default)({}, props, {
28
+ return /*#__PURE__*/_react.default.createElement(_inlineEditLayer.InlineEditLayer, null, /*#__PURE__*/_react.default.createElement(_textField.default, (0, _extends2.default)({}, props, {
31
29
  autoFocus: true,
32
30
  isCompact: true,
33
31
  testId: "inline-edit-text",
@@ -13,7 +13,6 @@ var _reactIntl = require("react-intl");
13
13
  var _useDebounce = require("use-debounce");
14
14
  var _avatar = _interopRequireDefault(require("@atlaskit/avatar/avatar"));
15
15
  var _avatarItem = _interopRequireDefault(require("@atlaskit/avatar/avatar-item"));
16
- var _layering = require("@atlaskit/layering/layering");
17
16
  var _default2 = _interopRequireDefault(require("@atlaskit/select/default"));
18
17
  var _Tooltip = _interopRequireDefault(require("@atlaskit/tooltip/Tooltip"));
19
18
  var _failUfoExperience = require("../../../../analytics/ufoExperiences/failUfoExperience");
@@ -25,6 +24,7 @@ var _getCleanedSelectProps = require("../../get-cleaned-select-props");
25
24
  var _user = require("../../render-type/user");
26
25
  var _messages = require("../../render-type/user/messages");
27
26
  var _inlineEdit = require("../../table-cell-content/inline-edit");
27
+ var _inlineEditLayer = require("../inline-edit-layer");
28
28
  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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
29
29
  var UserEditType = function UserEditType(props) {
30
30
  var _currentValue$values;
@@ -76,9 +76,7 @@ var UserEditType = function UserEditType(props) {
76
76
  }, experienceId);
77
77
  }
78
78
  }, [experienceId, isLoading, hasFailed]);
79
- return /*#__PURE__*/_react.default.createElement(_layering.Layering, {
80
- isDisabled: false
81
- }, /*#__PURE__*/_react.default.createElement(_default2.default, (0, _extends2.default)({}, (0, _getCleanedSelectProps.getCleanedSelectProps)(props), {
79
+ return /*#__PURE__*/_react.default.createElement(_inlineEditLayer.InlineEditLayer, null, /*#__PURE__*/_react.default.createElement(_default2.default, (0, _extends2.default)({}, (0, _getCleanedSelectProps.getCleanedSelectProps)(props), {
82
80
  menuPortalTarget: document.body,
83
81
  autoFocus: true,
84
82
  defaultMenuIsOpen: true,
@@ -25,7 +25,6 @@ var _flagsProvider = require("@atlaskit/flag/flags-provider");
25
25
  var _sortAscending = _interopRequireDefault(require("@atlaskit/icon/core/sort-ascending"));
26
26
  var _sortDescending = _interopRequireDefault(require("@atlaskit/icon/core/sort-descending"));
27
27
  var _skeleton = require("@atlaskit/linking-common/skeleton");
28
- var _fg = require("@atlaskit/platform-feature-flags/fg");
29
28
  var _extractClosestEdge = require("@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge/extract-closest-edge");
30
29
  var _reorderWithEdge = require("@atlaskit/pragmatic-drag-and-drop-hitbox/util/reorder-with-edge");
31
30
  var _autoScroller = require("@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll/auto-scroller");
@@ -297,7 +296,7 @@ var IssueLikeDataTableView = exports.IssueLikeDataTableView = function IssueLike
297
296
  });
298
297
  }).filter(Boolean);
299
298
  }, [orderedColumns, visibleColumnKeys]);
300
- var isWrapTextSettingAvailable = Boolean(onWrappedColumnsChange) && (0, _fg.fg)('platform_lp_sllv_table_settings_menu');
299
+ var isWrapTextSettingAvailable = Boolean(onWrappedColumnsChange);
301
300
  var areAllVisibleColumnsWrapped = false;
302
301
  if (isWrapTextSettingAvailable) {
303
302
  areAllVisibleColumnsWrapped = visibleColumnKeys.length > 0 && visibleColumnKeys.every(function (columnKey) {
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useCallback } from 'react';
3
- import { fg } from '@atlaskit/platform-feature-flags/fg';
4
3
  import { DatasourceAction } from '../../../../analytics/types';
5
4
  import { useUserInteractions } from '../../../../contexts/user-interactions/use-user-interactions';
6
5
  import { IssueLikeDataTableView } from '../../../issue-like-table/issue-like-data-table-view';
@@ -45,9 +44,8 @@ const Table = props => {
45
44
  columnCustomSizes: columnCustomSizes,
46
45
  onColumnResize: onColumnResize,
47
46
  wrappedColumnKeys: wrappedColumnKeys,
48
- onWrappedColumnChange: onWrappedColumnChange
49
- }, fg('platform_lp_sllv_table_settings_menu') ? {
50
- onWrappedColumnsChange
51
- } : {}));
47
+ onWrappedColumnChange: onWrappedColumnChange,
48
+ onWrappedColumnsChange: onWrappedColumnsChange
49
+ }));
52
50
  };
53
51
  export default Table;
@@ -1,17 +1,7 @@
1
1
  import { useCallback, useState } from 'react';
2
- import { fg } from '@atlaskit/platform-feature-flags/fg';
3
2
  export const useColumnWrapping = (initialWrappedColumnKeys = []) => {
4
3
  const [wrappedColumnKeys, setWrappedColumnKeys] = useState(initialWrappedColumnKeys);
5
4
  const onWrappedColumnChange = useCallback((key, isWrapped) => {
6
- const set = new Set(wrappedColumnKeys);
7
- if (isWrapped) {
8
- set.add(key);
9
- } else {
10
- set.delete(key);
11
- }
12
- setWrappedColumnKeys(Array.from(set));
13
- }, [wrappedColumnKeys]);
14
- const onWrappedColumnChangeWithLatestState = useCallback((key, isWrapped) => {
15
5
  setWrappedColumnKeys(currentWrappedColumnKeys => {
16
6
  const nextWrappedColumnKeys = new Set(currentWrappedColumnKeys);
17
7
  if (isWrapped) {
@@ -25,15 +15,9 @@ export const useColumnWrapping = (initialWrappedColumnKeys = []) => {
25
15
  const onWrappedColumnsChange = useCallback(nextWrappedColumnKeys => {
26
16
  setWrappedColumnKeys(nextWrappedColumnKeys);
27
17
  }, []);
28
- if (fg('platform_lp_sllv_table_settings_menu')) {
29
- return {
30
- wrappedColumnKeys,
31
- onWrappedColumnChange: onWrappedColumnChangeWithLatestState,
32
- onWrappedColumnsChange
33
- };
34
- }
35
18
  return {
36
19
  wrappedColumnKeys,
37
- onWrappedColumnChange
20
+ onWrappedColumnChange,
21
+ onWrappedColumnsChange
38
22
  };
39
23
  };
@@ -258,7 +258,7 @@ const DatasourceTableViewWithoutAnalytics = ({
258
258
  } : {}, {
259
259
  wrappedColumnKeys: wrappedColumnKeys,
260
260
  onWrappedColumnChange: onWrappedColumnChange
261
- }, onWrappedColumnsChange && fg('platform_lp_sllv_table_settings_menu') ? {
261
+ }, onWrappedColumnsChange ? {
262
262
  onWrappedColumnsChange
263
263
  } : {}, {
264
264
  scrollableContainerHeight: isInPDFRender ? undefined : fg('lp_enable_datasource-table-view_height_override') ? scrollableContainerHeight : DefaultScrollableContainerHeight,
@@ -1,28 +1,15 @@
1
- /* index.tsx generated by @compiled/babel-plugin v3.0.2 */
2
1
  import _extends from "@babel/runtime/helpers/extends";
3
- import "./index.compiled.css";
4
- import { ax, ix } from "@compiled/react/runtime";
5
2
  import React, { useCallback, useEffect, useRef, useState } from 'react';
6
3
  import { useIntl } from 'react-intl';
7
- import { mergeRefs } from 'use-callback-ref';
8
- import Button from '@atlaskit/button/default/button';
9
4
  import IconButton from '@atlaskit/button/icon/button';
10
- import ChevronDownIcon from '@atlaskit/icon/core/chevron-down';
11
- import CustomizeIcon from '@atlaskit/icon/core/customize';
12
5
  import TableColumnsDistributeIcon from '@atlaskit/icon/core/table-columns-distribute';
13
- import { fg } from '@atlaskit/platform-feature-flags/fg';
14
- import { Box } from '@atlaskit/primitives/compiled/box';
15
6
  import { createFilter } from '@atlaskit/react-select/filters';
16
7
  import { PopupSelect } from '@atlaskit/select/popup-select';
17
- import Tooltip from '@atlaskit/tooltip/Tooltip';
18
8
  import { succeedUfoExperience } from '../../../analytics/ufoExperiences/succeedUfoExperience';
19
9
  import { useDatasourceExperienceId } from '../../../contexts/datasource-experience-id/use-datasource-experience-id';
20
10
  import { ConcatenatedMenuList } from './concatenated-menu-list';
21
11
  import { MenuItem } from './menu-item';
22
12
  import { columnPickerMessages } from './messages';
23
- const styles = {
24
- customizeIcon: "_s7n4nkob"
25
- };
26
13
  export const ColumnPicker = ({
27
14
  columns,
28
15
  selectedColumnKeys,
@@ -129,39 +116,15 @@ export const ColumnPicker = ({
129
116
  isOpen,
130
117
  ...triggerProps
131
118
  }) => {
132
- if (fg('platform_lp_sllv_table_settings_menu')) {
133
- return /*#__PURE__*/React.createElement(IconButton, _extends({}, triggerProps, {
134
- appearance: "default",
135
- icon: TableColumnsDistributeIcon,
136
- isSelected: isOpen,
137
- isTooltipDisabled: false,
138
- label: intl.formatMessage(columnPickerMessages.tooltip),
139
- spacing: "default",
140
- testId: "column-picker-trigger-button"
141
- }));
142
- }
143
- return /*#__PURE__*/React.createElement(Tooltip, {
144
- content: intl.formatMessage(columnPickerMessages.tooltip)
145
- }, tooltipProps => /*#__PURE__*/React.createElement(Button, _extends({}, tooltipProps, triggerProps, {
146
- // `tooltipProps.ref` must be included: spreading `triggerProps` after
147
- // `tooltipProps` drops the tooltip's ref, leaving Tooltip without an
148
- // anchor element. Gate off leaves `triggerProps.ref` winning, exactly as
149
- // master does.
150
- ref: fg('platform-dst-top-layer-tooltip') ? mergeRefs([triggerProps.ref, tooltipProps.ref]) : triggerProps.ref,
119
+ return /*#__PURE__*/React.createElement(IconButton, _extends({}, triggerProps, {
120
+ appearance: "default",
121
+ icon: TableColumnsDistributeIcon,
151
122
  isSelected: isOpen,
152
- spacing: "compact",
153
- appearance: 'default',
154
- testId: "column-picker-trigger-button",
155
- iconAfter: () => /*#__PURE__*/React.createElement(ChevronDownIcon, {
156
- label: "down",
157
- size: "small"
158
- })
159
- }), /*#__PURE__*/React.createElement(Box, {
160
- as: "span",
161
- xcss: styles.customizeIcon
162
- }, /*#__PURE__*/React.createElement(CustomizeIcon, {
163
- label: "customize"
164
- }))));
123
+ isTooltipDisabled: false,
124
+ label: intl.formatMessage(columnPickerMessages.tooltip),
125
+ spacing: "default",
126
+ testId: "column-picker-trigger-button"
127
+ }));
165
128
  }
166
129
  });
167
130
  };
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useEffect } from 'react';
3
- import { Layering } from '@atlaskit/layering/layering';
4
3
  import Select from '@atlaskit/select/default';
5
4
  import Tooltip from '@atlaskit/tooltip/Tooltip';
6
5
  import { failUfoExperience } from '../../../../analytics/ufoExperiences/failUfoExperience';
@@ -10,6 +9,7 @@ import { useLoadOptions } from '../../../../hooks/useLoadOptions';
10
9
  import { getCleanedSelectProps } from '../../get-cleaned-select-props';
11
10
  import { SharedIconComponent } from '../../shared-components/icon';
12
11
  import { InlineEditUFOExperience } from '../../table-cell-content/inline-edit';
12
+ import { InlineEditLayer } from '../inline-edit-layer';
13
13
  const IconEditType = props => {
14
14
  var _currentValue$values;
15
15
  const {
@@ -39,9 +39,7 @@ const IconEditType = props => {
39
39
  }, experienceId);
40
40
  }
41
41
  }, [experienceId, isLoading, hasFailed]);
42
- return /*#__PURE__*/React.createElement(Layering, {
43
- isDisabled: false
44
- }, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
42
+ return /*#__PURE__*/React.createElement(InlineEditLayer, null, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
45
43
  menuPortalTarget: document.body,
46
44
  autoFocus: true,
47
45
  blurInputOnSelect: true,
@@ -0,0 +1,43 @@
1
+ import React, { useCallback } from 'react';
2
+ import { Layering } from '@atlaskit/layering/layering';
3
+ import { fg } from '@atlaskit/platform-feature-flags/fg';
4
+ import { hasOpenDialogOrPopover } from '@atlaskit/top-layer/page-surface/has-open-dialog-or-popover';
5
+ import { requestClosePopovers } from '@atlaskit/top-layer/page-surface/request-close-popovers';
6
+
7
+ /**
8
+ * Wraps an inline edit view, so that Escape cancels the edit and does not close a containing modal.
9
+ */
10
+ export const InlineEditLayer = ({
11
+ children
12
+ }) => {
13
+ const onKeyDown = useCallback(event => {
14
+ if (event.key !== 'Escape') {
15
+ return;
16
+ }
17
+
18
+ // An open menu takes the first Escape, and the edit stays open (as with layering).
19
+ if (hasOpenDialogOrPopover({
20
+ within: event.currentTarget
21
+ })) {
22
+ event.stopPropagation();
23
+ event.preventDefault();
24
+ requestClosePopovers({
25
+ within: event.currentTarget
26
+ });
27
+ return;
28
+ }
29
+
30
+ // The inline edit form still cancels the edit. A containing modal ignores a prevented Escape.
31
+ event.preventDefault();
32
+ }, []);
33
+ if (!fg('platform-dst-top-layer')) {
34
+ // The Escape handler of a containing modal yields while this layer is open.
35
+ return /*#__PURE__*/React.createElement(Layering, {
36
+ isDisabled: false
37
+ }, children);
38
+ }
39
+ return /*#__PURE__*/React.createElement("div", {
40
+ role: "presentation",
41
+ onKeyDown: onKeyDown
42
+ }, children);
43
+ };
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useEffect } from 'react';
3
- import { Layering } from '@atlaskit/layering/layering';
4
3
  import Lozenge from '@atlaskit/lozenge/new/lozenge';
5
4
  import Select from '@atlaskit/select/default';
6
5
  import Tooltip from '@atlaskit/tooltip/Tooltip';
@@ -10,6 +9,7 @@ import { useDatasourceExperienceId } from '../../../../contexts/datasource-exper
10
9
  import { useLoadOptions } from '../../../../hooks/useLoadOptions';
11
10
  import { getCleanedSelectProps } from '../../get-cleaned-select-props';
12
11
  import { InlineEditUFOExperience } from '../../table-cell-content/inline-edit';
12
+ import { InlineEditLayer } from '../inline-edit-layer';
13
13
  const StatusEditType = props => {
14
14
  var _currentValue$values;
15
15
  const {
@@ -39,9 +39,7 @@ const StatusEditType = props => {
39
39
  }, experienceId);
40
40
  }
41
41
  }, [experienceId, isLoading, hasFailed]);
42
- return /*#__PURE__*/React.createElement(Layering, {
43
- isDisabled: false
44
- }, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
42
+ return /*#__PURE__*/React.createElement(InlineEditLayer, null, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
45
43
  menuPortalTarget: document.body,
46
44
  autoFocus: true,
47
45
  options: options,
@@ -1,9 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useEffect } from 'react';
3
- import { Layering } from '@atlaskit/layering/layering';
4
3
  import Textfield from '@atlaskit/textfield/text-field';
5
4
  import { succeedUfoExperience } from '../../../../analytics/ufoExperiences/succeedUfoExperience';
6
5
  import { useDatasourceExperienceId } from '../../../../contexts/datasource-experience-id/use-datasource-experience-id';
6
+ import { InlineEditLayer } from '../inline-edit-layer';
7
7
  const TextEditType = props => {
8
8
  var _currentValue$values$, _currentValue$values;
9
9
  const experienceId = useDatasourceExperienceId();
@@ -18,9 +18,7 @@ const TextEditType = props => {
18
18
  }, experienceId);
19
19
  }
20
20
  }, [experienceId]);
21
- return /*#__PURE__*/React.createElement(Layering, {
22
- isDisabled: false
23
- }, /*#__PURE__*/React.createElement(Textfield, _extends({}, props, {
21
+ return /*#__PURE__*/React.createElement(InlineEditLayer, null, /*#__PURE__*/React.createElement(Textfield, _extends({}, props, {
24
22
  autoFocus: true,
25
23
  isCompact: true,
26
24
  testId: "inline-edit-text",
@@ -4,7 +4,6 @@ import { useIntl } from 'react-intl';
4
4
  import { useDebouncedCallback } from 'use-debounce';
5
5
  import Avatar from '@atlaskit/avatar/avatar';
6
6
  import AvatarItem from '@atlaskit/avatar/avatar-item';
7
- import { Layering } from '@atlaskit/layering/layering';
8
7
  import Select from '@atlaskit/select/default';
9
8
  import Tooltip from '@atlaskit/tooltip/Tooltip';
10
9
  import { failUfoExperience } from '../../../../analytics/ufoExperiences/failUfoExperience';
@@ -16,6 +15,7 @@ import { getCleanedSelectProps } from '../../get-cleaned-select-props';
16
15
  import { USER_TYPE_TEST_ID } from '../../render-type/user';
17
16
  import { userTypeMessages } from '../../render-type/user/messages';
18
17
  import { InlineEditUFOExperience } from '../../table-cell-content/inline-edit';
18
+ import { InlineEditLayer } from '../inline-edit-layer';
19
19
  const UserEditType = props => {
20
20
  var _currentValue$values;
21
21
  const {
@@ -61,9 +61,7 @@ const UserEditType = props => {
61
61
  }, experienceId);
62
62
  }
63
63
  }, [experienceId, isLoading, hasFailed]);
64
- return /*#__PURE__*/React.createElement(Layering, {
65
- isDisabled: false
66
- }, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
64
+ return /*#__PURE__*/React.createElement(InlineEditLayer, null, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
67
65
  menuPortalTarget: document.body,
68
66
  autoFocus: true,
69
67
  defaultMenuIsOpen: true,
@@ -14,7 +14,6 @@ import { FlagsProvider } from '@atlaskit/flag/flags-provider';
14
14
  import SortAscendingIcon from '@atlaskit/icon/core/sort-ascending';
15
15
  import SortDescendingIcon from '@atlaskit/icon/core/sort-descending';
16
16
  import { Skeleton } from '@atlaskit/linking-common/skeleton';
17
- import { fg } from '@atlaskit/platform-feature-flags/fg';
18
17
  import { extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge/extract-closest-edge';
19
18
  import { reorderWithEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/util/reorder-with-edge';
20
19
  import { autoScroller } from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll/auto-scroller';
@@ -262,7 +261,7 @@ export const IssueLikeDataTableView = ({
262
261
  const visibleSortedColumns = useMemo(() => visibleColumnKeys.map(visibleKey => orderedColumns.find(({
263
262
  key
264
263
  }) => visibleKey === key)).filter(Boolean), [orderedColumns, visibleColumnKeys]);
265
- const isWrapTextSettingAvailable = Boolean(onWrappedColumnsChange) && fg('platform_lp_sllv_table_settings_menu');
264
+ const isWrapTextSettingAvailable = Boolean(onWrappedColumnsChange);
266
265
  let areAllVisibleColumnsWrapped = false;
267
266
  if (isWrapTextSettingAvailable) {
268
267
  areAllVisibleColumnsWrapped = visibleColumnKeys.length > 0 && visibleColumnKeys.every(columnKey => wrappedColumnKeys === null || wrappedColumnKeys === void 0 ? void 0 : wrappedColumnKeys.includes(columnKey));
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useCallback } from 'react';
3
- import { fg } from '@atlaskit/platform-feature-flags/fg';
4
3
  import { DatasourceAction } from '../../../../analytics/types';
5
4
  import { useUserInteractions } from '../../../../contexts/user-interactions/use-user-interactions';
6
5
  import { IssueLikeDataTableView } from '../../../issue-like-table/issue-like-data-table-view';
@@ -45,9 +44,8 @@ var Table = function Table(props) {
45
44
  columnCustomSizes: columnCustomSizes,
46
45
  onColumnResize: onColumnResize,
47
46
  wrappedColumnKeys: wrappedColumnKeys,
48
- onWrappedColumnChange: onWrappedColumnChange
49
- }, fg('platform_lp_sllv_table_settings_menu') ? {
47
+ onWrappedColumnChange: onWrappedColumnChange,
50
48
  onWrappedColumnsChange: onWrappedColumnsChange
51
- } : {}));
49
+ }));
52
50
  };
53
51
  export default Table;
@@ -1,6 +1,5 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import { useCallback, useState } from 'react';
3
- import { fg } from '@atlaskit/platform-feature-flags/fg';
4
3
  export var useColumnWrapping = function useColumnWrapping() {
5
4
  var initialWrappedColumnKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
6
5
  var _useState = useState(initialWrappedColumnKeys),
@@ -8,15 +7,6 @@ export var useColumnWrapping = function useColumnWrapping() {
8
7
  wrappedColumnKeys = _useState2[0],
9
8
  setWrappedColumnKeys = _useState2[1];
10
9
  var onWrappedColumnChange = useCallback(function (key, isWrapped) {
11
- var set = new Set(wrappedColumnKeys);
12
- if (isWrapped) {
13
- set.add(key);
14
- } else {
15
- set.delete(key);
16
- }
17
- setWrappedColumnKeys(Array.from(set));
18
- }, [wrappedColumnKeys]);
19
- var onWrappedColumnChangeWithLatestState = useCallback(function (key, isWrapped) {
20
10
  setWrappedColumnKeys(function (currentWrappedColumnKeys) {
21
11
  var nextWrappedColumnKeys = new Set(currentWrappedColumnKeys);
22
12
  if (isWrapped) {
@@ -30,15 +20,9 @@ export var useColumnWrapping = function useColumnWrapping() {
30
20
  var onWrappedColumnsChange = useCallback(function (nextWrappedColumnKeys) {
31
21
  setWrappedColumnKeys(nextWrappedColumnKeys);
32
22
  }, []);
33
- if (fg('platform_lp_sllv_table_settings_menu')) {
34
- return {
35
- wrappedColumnKeys: wrappedColumnKeys,
36
- onWrappedColumnChange: onWrappedColumnChangeWithLatestState,
37
- onWrappedColumnsChange: onWrappedColumnsChange
38
- };
39
- }
40
23
  return {
41
24
  wrappedColumnKeys: wrappedColumnKeys,
42
- onWrappedColumnChange: onWrappedColumnChange
25
+ onWrappedColumnChange: onWrappedColumnChange,
26
+ onWrappedColumnsChange: onWrappedColumnsChange
43
27
  };
44
28
  };
@@ -264,7 +264,7 @@ var DatasourceTableViewWithoutAnalytics = function DatasourceTableViewWithoutAna
264
264
  } : {}, {
265
265
  wrappedColumnKeys: wrappedColumnKeys,
266
266
  onWrappedColumnChange: onWrappedColumnChange
267
- }, onWrappedColumnsChange && fg('platform_lp_sllv_table_settings_menu') ? {
267
+ }, onWrappedColumnsChange ? {
268
268
  onWrappedColumnsChange: onWrappedColumnsChange
269
269
  } : {}, {
270
270
  scrollableContainerHeight: isInPDFRender ? undefined : fg('lp_enable_datasource-table-view_height_override') ? scrollableContainerHeight : DefaultScrollableContainerHeight,
@@ -1,32 +1,19 @@
1
- /* index.tsx generated by @compiled/babel-plugin v3.0.2 */
2
1
  import _extends from "@babel/runtime/helpers/extends";
3
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
3
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
5
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
6
5
  var _excluded = ["isOpen"];
7
- import "./index.compiled.css";
8
- import { ax, ix } from "@compiled/react/runtime";
9
6
  import React, { useCallback, useEffect, useRef, useState } from 'react';
10
7
  import { useIntl } from 'react-intl';
11
- import { mergeRefs } from 'use-callback-ref';
12
- import Button from '@atlaskit/button/default/button';
13
8
  import IconButton from '@atlaskit/button/icon/button';
14
- import ChevronDownIcon from '@atlaskit/icon/core/chevron-down';
15
- import CustomizeIcon from '@atlaskit/icon/core/customize';
16
9
  import TableColumnsDistributeIcon from '@atlaskit/icon/core/table-columns-distribute';
17
- import { fg } from '@atlaskit/platform-feature-flags/fg';
18
- import { Box } from '@atlaskit/primitives/compiled/box';
19
10
  import { createFilter } from '@atlaskit/react-select/filters';
20
11
  import { PopupSelect } from '@atlaskit/select/popup-select';
21
- import Tooltip from '@atlaskit/tooltip/Tooltip';
22
12
  import { succeedUfoExperience } from '../../../analytics/ufoExperiences/succeedUfoExperience';
23
13
  import { useDatasourceExperienceId } from '../../../contexts/datasource-experience-id/use-datasource-experience-id';
24
14
  import { ConcatenatedMenuList } from './concatenated-menu-list';
25
15
  import { MenuItem } from './menu-item';
26
16
  import { columnPickerMessages } from './messages';
27
- var styles = {
28
- customizeIcon: "_s7n4nkob"
29
- };
30
17
  export var ColumnPicker = function ColumnPicker(_ref) {
31
18
  var columns = _ref.columns,
32
19
  selectedColumnKeys = _ref.selectedColumnKeys,
@@ -146,43 +133,15 @@ export var ColumnPicker = function ColumnPicker(_ref) {
146
133
  target: function target(_ref8) {
147
134
  var isOpen = _ref8.isOpen,
148
135
  triggerProps = _objectWithoutProperties(_ref8, _excluded);
149
- if (fg('platform_lp_sllv_table_settings_menu')) {
150
- return /*#__PURE__*/React.createElement(IconButton, _extends({}, triggerProps, {
151
- appearance: "default",
152
- icon: TableColumnsDistributeIcon,
153
- isSelected: isOpen,
154
- isTooltipDisabled: false,
155
- label: intl.formatMessage(columnPickerMessages.tooltip),
156
- spacing: "default",
157
- testId: "column-picker-trigger-button"
158
- }));
159
- }
160
- return /*#__PURE__*/React.createElement(Tooltip, {
161
- content: intl.formatMessage(columnPickerMessages.tooltip)
162
- }, function (tooltipProps) {
163
- return /*#__PURE__*/React.createElement(Button, _extends({}, tooltipProps, triggerProps, {
164
- // `tooltipProps.ref` must be included: spreading `triggerProps` after
165
- // `tooltipProps` drops the tooltip's ref, leaving Tooltip without an
166
- // anchor element. Gate off leaves `triggerProps.ref` winning, exactly as
167
- // master does.
168
- ref: fg('platform-dst-top-layer-tooltip') ? mergeRefs([triggerProps.ref, tooltipProps.ref]) : triggerProps.ref,
169
- isSelected: isOpen,
170
- spacing: "compact",
171
- appearance: 'default',
172
- testId: "column-picker-trigger-button",
173
- iconAfter: function iconAfter() {
174
- return /*#__PURE__*/React.createElement(ChevronDownIcon, {
175
- label: "down",
176
- size: "small"
177
- });
178
- }
179
- }), /*#__PURE__*/React.createElement(Box, {
180
- as: "span",
181
- xcss: styles.customizeIcon
182
- }, /*#__PURE__*/React.createElement(CustomizeIcon, {
183
- label: "customize"
184
- })));
185
- });
136
+ return /*#__PURE__*/React.createElement(IconButton, _extends({}, triggerProps, {
137
+ appearance: "default",
138
+ icon: TableColumnsDistributeIcon,
139
+ isSelected: isOpen,
140
+ isTooltipDisabled: false,
141
+ label: intl.formatMessage(columnPickerMessages.tooltip),
142
+ spacing: "default",
143
+ testId: "column-picker-trigger-button"
144
+ }));
186
145
  }
187
146
  });
188
147
  };
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useEffect } from 'react';
3
- import { Layering } from '@atlaskit/layering/layering';
4
3
  import Select from '@atlaskit/select/default';
5
4
  import Tooltip from '@atlaskit/tooltip/Tooltip';
6
5
  import { failUfoExperience } from '../../../../analytics/ufoExperiences/failUfoExperience';
@@ -10,6 +9,7 @@ import { useLoadOptions } from '../../../../hooks/useLoadOptions';
10
9
  import { getCleanedSelectProps } from '../../get-cleaned-select-props';
11
10
  import { SharedIconComponent } from '../../shared-components/icon';
12
11
  import { InlineEditUFOExperience } from '../../table-cell-content/inline-edit';
12
+ import { InlineEditLayer } from '../inline-edit-layer';
13
13
  var IconEditType = function IconEditType(props) {
14
14
  var _currentValue$values;
15
15
  var currentValue = props.currentValue,
@@ -36,9 +36,7 @@ var IconEditType = function IconEditType(props) {
36
36
  }, experienceId);
37
37
  }
38
38
  }, [experienceId, isLoading, hasFailed]);
39
- return /*#__PURE__*/React.createElement(Layering, {
40
- isDisabled: false
41
- }, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
39
+ return /*#__PURE__*/React.createElement(InlineEditLayer, null, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
42
40
  menuPortalTarget: document.body,
43
41
  autoFocus: true,
44
42
  blurInputOnSelect: true,
@@ -0,0 +1,42 @@
1
+ import React, { useCallback } from 'react';
2
+ import { Layering } from '@atlaskit/layering/layering';
3
+ import { fg } from '@atlaskit/platform-feature-flags/fg';
4
+ import { hasOpenDialogOrPopover } from '@atlaskit/top-layer/page-surface/has-open-dialog-or-popover';
5
+ import { requestClosePopovers } from '@atlaskit/top-layer/page-surface/request-close-popovers';
6
+
7
+ /**
8
+ * Wraps an inline edit view, so that Escape cancels the edit and does not close a containing modal.
9
+ */
10
+ export var InlineEditLayer = function InlineEditLayer(_ref) {
11
+ var children = _ref.children;
12
+ var onKeyDown = useCallback(function (event) {
13
+ if (event.key !== 'Escape') {
14
+ return;
15
+ }
16
+
17
+ // An open menu takes the first Escape, and the edit stays open (as with layering).
18
+ if (hasOpenDialogOrPopover({
19
+ within: event.currentTarget
20
+ })) {
21
+ event.stopPropagation();
22
+ event.preventDefault();
23
+ requestClosePopovers({
24
+ within: event.currentTarget
25
+ });
26
+ return;
27
+ }
28
+
29
+ // The inline edit form still cancels the edit. A containing modal ignores a prevented Escape.
30
+ event.preventDefault();
31
+ }, []);
32
+ if (!fg('platform-dst-top-layer')) {
33
+ // The Escape handler of a containing modal yields while this layer is open.
34
+ return /*#__PURE__*/React.createElement(Layering, {
35
+ isDisabled: false
36
+ }, children);
37
+ }
38
+ return /*#__PURE__*/React.createElement("div", {
39
+ role: "presentation",
40
+ onKeyDown: onKeyDown
41
+ }, children);
42
+ };
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useEffect } from 'react';
3
- import { Layering } from '@atlaskit/layering/layering';
4
3
  import Lozenge from '@atlaskit/lozenge/new/lozenge';
5
4
  import Select from '@atlaskit/select/default';
6
5
  import Tooltip from '@atlaskit/tooltip/Tooltip';
@@ -10,6 +9,7 @@ import { useDatasourceExperienceId } from '../../../../contexts/datasource-exper
10
9
  import { useLoadOptions } from '../../../../hooks/useLoadOptions';
11
10
  import { getCleanedSelectProps } from '../../get-cleaned-select-props';
12
11
  import { InlineEditUFOExperience } from '../../table-cell-content/inline-edit';
12
+ import { InlineEditLayer } from '../inline-edit-layer';
13
13
  var StatusEditType = function StatusEditType(props) {
14
14
  var _currentValue$values;
15
15
  var currentValue = props.currentValue,
@@ -36,9 +36,7 @@ var StatusEditType = function StatusEditType(props) {
36
36
  }, experienceId);
37
37
  }
38
38
  }, [experienceId, isLoading, hasFailed]);
39
- return /*#__PURE__*/React.createElement(Layering, {
40
- isDisabled: false
41
- }, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
39
+ return /*#__PURE__*/React.createElement(InlineEditLayer, null, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
42
40
  menuPortalTarget: document.body,
43
41
  autoFocus: true,
44
42
  options: options,
@@ -1,9 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useEffect } from 'react';
3
- import { Layering } from '@atlaskit/layering/layering';
4
3
  import Textfield from '@atlaskit/textfield/text-field';
5
4
  import { succeedUfoExperience } from '../../../../analytics/ufoExperiences/succeedUfoExperience';
6
5
  import { useDatasourceExperienceId } from '../../../../contexts/datasource-experience-id/use-datasource-experience-id';
6
+ import { InlineEditLayer } from '../inline-edit-layer';
7
7
  var TextEditType = function TextEditType(props) {
8
8
  var _currentValue$values$, _currentValue$values;
9
9
  var experienceId = useDatasourceExperienceId();
@@ -16,9 +16,7 @@ var TextEditType = function TextEditType(props) {
16
16
  }, experienceId);
17
17
  }
18
18
  }, [experienceId]);
19
- return /*#__PURE__*/React.createElement(Layering, {
20
- isDisabled: false
21
- }, /*#__PURE__*/React.createElement(Textfield, _extends({}, props, {
19
+ return /*#__PURE__*/React.createElement(InlineEditLayer, null, /*#__PURE__*/React.createElement(Textfield, _extends({}, props, {
22
20
  autoFocus: true,
23
21
  isCompact: true,
24
22
  testId: "inline-edit-text",
@@ -5,7 +5,6 @@ import { useIntl } from 'react-intl';
5
5
  import { useDebouncedCallback } from 'use-debounce';
6
6
  import Avatar from '@atlaskit/avatar/avatar';
7
7
  import AvatarItem from '@atlaskit/avatar/avatar-item';
8
- import { Layering } from '@atlaskit/layering/layering';
9
8
  import Select from '@atlaskit/select/default';
10
9
  import Tooltip from '@atlaskit/tooltip/Tooltip';
11
10
  import { failUfoExperience } from '../../../../analytics/ufoExperiences/failUfoExperience';
@@ -17,6 +16,7 @@ import { getCleanedSelectProps } from '../../get-cleaned-select-props';
17
16
  import { USER_TYPE_TEST_ID } from '../../render-type/user';
18
17
  import { userTypeMessages } from '../../render-type/user/messages';
19
18
  import { InlineEditUFOExperience } from '../../table-cell-content/inline-edit';
19
+ import { InlineEditLayer } from '../inline-edit-layer';
20
20
  var UserEditType = function UserEditType(props) {
21
21
  var _currentValue$values;
22
22
  var currentValue = props.currentValue,
@@ -67,9 +67,7 @@ var UserEditType = function UserEditType(props) {
67
67
  }, experienceId);
68
68
  }
69
69
  }, [experienceId, isLoading, hasFailed]);
70
- return /*#__PURE__*/React.createElement(Layering, {
71
- isDisabled: false
72
- }, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
70
+ return /*#__PURE__*/React.createElement(InlineEditLayer, null, /*#__PURE__*/React.createElement(Select, _extends({}, getCleanedSelectProps(props), {
73
71
  menuPortalTarget: document.body,
74
72
  autoFocus: true,
75
73
  defaultMenuIsOpen: true,
@@ -28,7 +28,6 @@ import { FlagsProvider } from '@atlaskit/flag/flags-provider';
28
28
  import SortAscendingIcon from '@atlaskit/icon/core/sort-ascending';
29
29
  import SortDescendingIcon from '@atlaskit/icon/core/sort-descending';
30
30
  import { Skeleton } from '@atlaskit/linking-common/skeleton';
31
- import { fg } from '@atlaskit/platform-feature-flags/fg';
32
31
  import { extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge/extract-closest-edge';
33
32
  import { reorderWithEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/util/reorder-with-edge';
34
33
  import { autoScroller } from '@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll/auto-scroller';
@@ -290,7 +289,7 @@ export var IssueLikeDataTableView = function IssueLikeDataTableView(_ref7) {
290
289
  });
291
290
  }).filter(Boolean);
292
291
  }, [orderedColumns, visibleColumnKeys]);
293
- var isWrapTextSettingAvailable = Boolean(onWrappedColumnsChange) && fg('platform_lp_sllv_table_settings_menu');
292
+ var isWrapTextSettingAvailable = Boolean(onWrappedColumnsChange);
294
293
  var areAllVisibleColumnsWrapped = false;
295
294
  if (isWrapTextSettingAvailable) {
296
295
  areAllVisibleColumnsWrapped = visibleColumnKeys.length > 0 && visibleColumnKeys.every(function (columnKey) {
@@ -0,0 +1,7 @@
1
+ import React, { type ReactNode } from 'react';
2
+ /**
3
+ * Wraps an inline edit view, so that Escape cancels the edit and does not close a containing modal.
4
+ */
5
+ export declare const InlineEditLayer: ({ children }: {
6
+ children: ReactNode;
7
+ }) => React.JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "7.5.1",
3
+ "version": "7.5.3",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -40,13 +40,13 @@
40
40
  "dependencies": {
41
41
  "@atlaskit/adf-schema": "^57.7.0",
42
42
  "@atlaskit/afm-i18n-platform-linking-platform-link-datasource": "2.280.0",
43
- "@atlaskit/analytics-cross-product": "^2.2.0",
43
+ "@atlaskit/analytics-cross-product": "^2.3.0",
44
44
  "@atlaskit/analytics-next": "^12.6.0",
45
45
  "@atlaskit/atlassian-context": "^2.0.0",
46
46
  "@atlaskit/avatar": "^30.0.0",
47
47
  "@atlaskit/avatar-group": "^14.4.0",
48
48
  "@atlaskit/badge": "^22.0.0",
49
- "@atlaskit/button": "^25.4.0",
49
+ "@atlaskit/button": "^25.6.0",
50
50
  "@atlaskit/css": "^1.1.0",
51
51
  "@atlaskit/datetime-picker": "^19.3.0",
52
52
  "@atlaskit/dropdown-menu": "^21.0.0",
@@ -61,9 +61,9 @@
61
61
  "@atlaskit/inline-edit": "^16.4.0",
62
62
  "@atlaskit/intl-messages-provider": "^5.0.0",
63
63
  "@atlaskit/jql-ast": "^4.2.0",
64
- "@atlaskit/jql-editor": "^8.2.0",
64
+ "@atlaskit/jql-editor": "^8.5.0",
65
65
  "@atlaskit/jql-editor-autocomplete-rest": "^4.6.0",
66
- "@atlaskit/layering": "^6.0.0",
66
+ "@atlaskit/layering": "^6.1.0",
67
67
  "@atlaskit/link": "^5.1.0",
68
68
  "@atlaskit/link-client-extension": "^8.0.0",
69
69
  "@atlaskit/link-provider": "^6.0.0",
@@ -95,6 +95,7 @@
95
95
  "@atlaskit/toggle": "^17.3.0",
96
96
  "@atlaskit/tokens": "^20.6.0",
97
97
  "@atlaskit/tooltip": "^24.4.0",
98
+ "@atlaskit/top-layer": "^6.6.0",
98
99
  "@atlaskit/ufo": "^2.0.0",
99
100
  "@atlaskit/user-picker": "^14.2.0",
100
101
  "@atlaskit/visually-hidden": "^4.4.0",
@@ -108,7 +109,6 @@
108
109
  "lodash": "^4.17.21",
109
110
  "react-sweet-state": "^2.6.5",
110
111
  "tiny-invariant": "^1.2.0",
111
- "use-callback-ref": "^1.2.3",
112
112
  "use-debounce": "^3.4.0",
113
113
  "uuid": "^11.1.1"
114
114
  },
@@ -121,6 +121,7 @@
121
121
  "@af/integration-testing": "workspace:^",
122
122
  "@af/visual-regression": "workspace:^",
123
123
  "@atlaskit/code": "^20.0.0",
124
+ "@atlaskit/docs": "^12.3.0",
124
125
  "@atlaskit/json-ld-types": "^2.1.0",
125
126
  "@atlaskit/link-test-helpers": "^11.2.0",
126
127
  "@atlaskit/radio": "^10.2.0",
@@ -168,9 +169,6 @@
168
169
  "platform_lp_sllv_preserve_assets_columns": {
169
170
  "type": "boolean"
170
171
  },
171
- "platform_lp_sllv_table_settings_menu": {
172
- "type": "boolean"
173
- },
174
172
  "platform_lp_sllv_on_request_settled": {
175
173
  "type": "boolean"
176
174
  },
@@ -183,6 +181,9 @@
183
181
  "electric_issue_like_table_xpc_url_wrapping": {
184
182
  "type": "boolean"
185
183
  },
184
+ "platform-dst-top-layer": {
185
+ "type": "boolean"
186
+ },
186
187
  "platform-dst-top-layer-tooltip": {
187
188
  "type": "boolean",
188
189
  "referenceOnly": true
@@ -1 +0,0 @@
1
- ._s7n4nkob{vertical-align:middle}
@@ -1 +0,0 @@
1
- ._s7n4nkob{vertical-align:middle}
@@ -1 +0,0 @@
1
- ._s7n4nkob{vertical-align:middle}