@elastic/eui 92.0.0 → 92.1.1

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 (156) hide show
  1. package/dist/eui_theme_dark.css +3 -18
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +3 -18
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/aspect_ratio/aspect_ratio.js +1 -1
  6. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +7 -3
  7. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +4 -4
  8. package/es/components/datagrid/body/{data_grid_cell.js → cell/data_grid_cell.js} +111 -244
  9. package/es/components/datagrid/body/{data_grid_cell_actions.js → cell/data_grid_cell_actions.js} +5 -5
  10. package/es/components/datagrid/body/{data_grid_cell_popover.js → cell/data_grid_cell_popover.js} +4 -4
  11. package/es/components/datagrid/body/{data_grid_cell_wrapper.js → cell/data_grid_cell_wrapper.js} +1 -1
  12. package/es/components/datagrid/body/cell/focus_utils.js +166 -0
  13. package/es/components/datagrid/body/cell/index.js +11 -0
  14. package/es/components/datagrid/body/data_grid_body.js +0 -2
  15. package/es/components/datagrid/body/data_grid_body_custom.js +1 -7
  16. package/es/components/datagrid/body/data_grid_body_virtualized.js +1 -7
  17. package/es/components/datagrid/body/footer/data_grid_footer_row.js +1 -2
  18. package/es/components/datagrid/body/header/data_grid_control_header_cell.js +3 -6
  19. package/es/components/datagrid/body/header/data_grid_header_cell.js +27 -12
  20. package/es/components/datagrid/body/header/data_grid_header_cell_wrapper.js +45 -116
  21. package/es/components/datagrid/body/header/data_grid_header_row.js +5 -10
  22. package/es/components/datagrid/body/header/use_data_grid_header.js +3 -14
  23. package/es/components/datagrid/data_grid.js +2 -12
  24. package/es/components/datagrid/utils/focus.js +25 -54
  25. package/es/components/datagrid/utils/scrolling.js +1 -1
  26. package/es/components/flyout/flyout_resizable.js +10 -10
  27. package/es/components/flyout/flyout_resizable.styles.js +12 -6
  28. package/es/components/resizable_container/helpers.js +5 -6
  29. package/es/components/resizable_container/resizable_button.js +13 -4
  30. package/es/components/resizable_container/resizable_button.styles.js +18 -8
  31. package/es/components/resizable_container/resizable_container.js +28 -22
  32. package/es/components/steps/step_number.styles.js +6 -7
  33. package/es/components/tree_view/tree_view.js +9 -2
  34. package/eui.d.ts +130 -90
  35. package/i18ntokens.json +108 -72
  36. package/lib/components/aspect_ratio/aspect_ratio.js +1 -1
  37. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +7 -3
  38. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +4 -4
  39. package/lib/components/datagrid/body/{data_grid_cell.js → cell/data_grid_cell.js} +111 -244
  40. package/lib/components/datagrid/body/{data_grid_cell_actions.js → cell/data_grid_cell_actions.js} +5 -5
  41. package/lib/components/datagrid/body/{data_grid_cell_popover.js → cell/data_grid_cell_popover.js} +4 -4
  42. package/lib/components/datagrid/body/{data_grid_cell_wrapper.js → cell/data_grid_cell_wrapper.js} +1 -1
  43. package/lib/components/datagrid/body/cell/focus_utils.js +174 -0
  44. package/lib/components/datagrid/body/cell/index.js +32 -0
  45. package/lib/components/datagrid/body/data_grid_body.js +0 -2
  46. package/lib/components/datagrid/body/data_grid_body_custom.js +2 -8
  47. package/lib/components/datagrid/body/data_grid_body_virtualized.js +2 -8
  48. package/lib/components/datagrid/body/footer/data_grid_footer_row.js +5 -6
  49. package/lib/components/datagrid/body/header/data_grid_control_header_cell.js +3 -6
  50. package/lib/components/datagrid/body/header/data_grid_header_cell.js +35 -20
  51. package/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.js +47 -119
  52. package/lib/components/datagrid/body/header/data_grid_header_row.js +5 -10
  53. package/lib/components/datagrid/body/header/use_data_grid_header.js +10 -24
  54. package/lib/components/datagrid/data_grid.js +4 -14
  55. package/lib/components/datagrid/utils/focus.js +26 -56
  56. package/lib/components/datagrid/utils/scrolling.js +2 -2
  57. package/lib/components/flyout/flyout_resizable.js +10 -10
  58. package/lib/components/flyout/flyout_resizable.styles.js +12 -6
  59. package/lib/components/resizable_container/helpers.js +7 -7
  60. package/lib/components/resizable_container/resizable_button.js +13 -4
  61. package/lib/components/resizable_container/resizable_button.styles.js +18 -8
  62. package/lib/components/resizable_container/resizable_container.js +28 -22
  63. package/lib/components/steps/step_number.styles.js +6 -7
  64. package/lib/components/tree_view/tree_view.js +9 -2
  65. package/optimize/es/components/aspect_ratio/aspect_ratio.js +1 -1
  66. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +7 -3
  67. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +4 -4
  68. package/optimize/es/components/datagrid/body/{data_grid_cell.js → cell/data_grid_cell.js} +111 -244
  69. package/optimize/es/components/datagrid/body/{data_grid_cell_actions.js → cell/data_grid_cell_actions.js} +5 -5
  70. package/optimize/es/components/datagrid/body/{data_grid_cell_popover.js → cell/data_grid_cell_popover.js} +4 -4
  71. package/optimize/es/components/datagrid/body/{data_grid_cell_wrapper.js → cell/data_grid_cell_wrapper.js} +1 -1
  72. package/optimize/es/components/datagrid/body/cell/focus_utils.js +153 -0
  73. package/optimize/es/components/datagrid/body/cell/index.js +11 -0
  74. package/optimize/es/components/datagrid/body/data_grid_body_custom.js +1 -5
  75. package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +1 -5
  76. package/optimize/es/components/datagrid/body/footer/data_grid_footer_row.js +1 -2
  77. package/optimize/es/components/datagrid/body/header/data_grid_control_header_cell.js +2 -4
  78. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +25 -10
  79. package/optimize/es/components/datagrid/body/header/data_grid_header_cell_wrapper.js +41 -115
  80. package/optimize/es/components/datagrid/body/header/data_grid_header_row.js +4 -8
  81. package/optimize/es/components/datagrid/body/header/use_data_grid_header.js +3 -13
  82. package/optimize/es/components/datagrid/data_grid.js +2 -12
  83. package/optimize/es/components/datagrid/utils/focus.js +25 -54
  84. package/optimize/es/components/datagrid/utils/scrolling.js +1 -1
  85. package/optimize/es/components/flyout/flyout_resizable.js +10 -10
  86. package/optimize/es/components/flyout/flyout_resizable.styles.js +12 -6
  87. package/optimize/es/components/resizable_container/helpers.js +5 -6
  88. package/optimize/es/components/resizable_container/resizable_button.js +5 -2
  89. package/optimize/es/components/resizable_container/resizable_button.styles.js +18 -8
  90. package/optimize/es/components/resizable_container/resizable_container.js +28 -22
  91. package/optimize/es/components/steps/step_number.styles.js +6 -7
  92. package/optimize/es/components/tree_view/tree_view.js +9 -2
  93. package/optimize/lib/components/aspect_ratio/aspect_ratio.js +1 -1
  94. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +7 -3
  95. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +4 -4
  96. package/optimize/lib/components/datagrid/body/{data_grid_cell.js → cell/data_grid_cell.js} +111 -244
  97. package/optimize/lib/components/datagrid/body/{data_grid_cell_actions.js → cell/data_grid_cell_actions.js} +5 -5
  98. package/optimize/lib/components/datagrid/body/{data_grid_cell_popover.js → cell/data_grid_cell_popover.js} +4 -4
  99. package/optimize/lib/components/datagrid/body/{data_grid_cell_wrapper.js → cell/data_grid_cell_wrapper.js} +1 -1
  100. package/optimize/lib/components/datagrid/body/cell/focus_utils.js +163 -0
  101. package/optimize/lib/components/datagrid/body/cell/index.js +32 -0
  102. package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +2 -6
  103. package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +2 -6
  104. package/optimize/lib/components/datagrid/body/footer/data_grid_footer_row.js +5 -6
  105. package/optimize/lib/components/datagrid/body/header/data_grid_control_header_cell.js +2 -4
  106. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +25 -10
  107. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.js +41 -115
  108. package/optimize/lib/components/datagrid/body/header/data_grid_header_row.js +4 -8
  109. package/optimize/lib/components/datagrid/body/header/use_data_grid_header.js +4 -14
  110. package/optimize/lib/components/datagrid/data_grid.js +4 -14
  111. package/optimize/lib/components/datagrid/utils/focus.js +26 -56
  112. package/optimize/lib/components/datagrid/utils/scrolling.js +2 -2
  113. package/optimize/lib/components/flyout/flyout_resizable.js +10 -10
  114. package/optimize/lib/components/flyout/flyout_resizable.styles.js +12 -6
  115. package/optimize/lib/components/resizable_container/helpers.js +7 -7
  116. package/optimize/lib/components/resizable_container/resizable_button.js +5 -2
  117. package/optimize/lib/components/resizable_container/resizable_button.styles.js +18 -8
  118. package/optimize/lib/components/resizable_container/resizable_container.js +28 -22
  119. package/optimize/lib/components/steps/step_number.styles.js +6 -7
  120. package/optimize/lib/components/tree_view/tree_view.js +9 -2
  121. package/package.json +1 -1
  122. package/src/components/datagrid/body/header/_data_grid_header_row.scss +8 -7
  123. package/test-env/components/aspect_ratio/aspect_ratio.js +1 -1
  124. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.js +7 -3
  125. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +4 -4
  126. package/test-env/components/datagrid/body/{data_grid_cell.js → cell/data_grid_cell.js} +111 -244
  127. package/test-env/components/datagrid/body/{data_grid_cell_actions.js → cell/data_grid_cell_actions.js} +5 -5
  128. package/test-env/components/datagrid/body/{data_grid_cell_popover.js → cell/data_grid_cell_popover.js} +4 -4
  129. package/test-env/components/datagrid/body/{data_grid_cell_wrapper.js → cell/data_grid_cell_wrapper.js} +1 -1
  130. package/test-env/components/datagrid/body/cell/focus_utils.js +172 -0
  131. package/test-env/components/datagrid/body/cell/index.js +32 -0
  132. package/test-env/components/datagrid/body/data_grid_body.js +0 -2
  133. package/test-env/components/datagrid/body/data_grid_body_custom.js +2 -8
  134. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +2 -8
  135. package/test-env/components/datagrid/body/footer/data_grid_footer_row.js +5 -6
  136. package/test-env/components/datagrid/body/header/data_grid_control_header_cell.js +3 -6
  137. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +25 -10
  138. package/test-env/components/datagrid/body/header/data_grid_header_cell_wrapper.js +44 -116
  139. package/test-env/components/datagrid/body/header/data_grid_header_row.js +5 -10
  140. package/test-env/components/datagrid/body/header/use_data_grid_header.js +4 -14
  141. package/test-env/components/datagrid/data_grid.js +4 -14
  142. package/test-env/components/datagrid/utils/focus.js +26 -56
  143. package/test-env/components/datagrid/utils/scrolling.js +2 -2
  144. package/test-env/components/flyout/flyout_resizable.js +10 -10
  145. package/test-env/components/flyout/flyout_resizable.styles.js +12 -6
  146. package/test-env/components/resizable_container/helpers.js +7 -7
  147. package/test-env/components/resizable_container/resizable_button.js +13 -4
  148. package/test-env/components/resizable_container/resizable_button.styles.js +18 -8
  149. package/test-env/components/resizable_container/resizable_container.js +28 -22
  150. package/test-env/components/steps/step_number.styles.js +6 -7
  151. package/test-env/components/tree_view/tree_view.js +9 -2
  152. package/es/components/datagrid/body/header/header_is_interactive.js +0 -58
  153. package/lib/components/datagrid/body/header/header_is_interactive.js +0 -63
  154. package/optimize/es/components/datagrid/body/header/header_is_interactive.js +0 -53
  155. package/optimize/lib/components/datagrid/body/header/header_is_interactive.js +0 -61
  156. package/test-env/components/datagrid/body/header/header_is_interactive.js +0 -61
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useContainerCallbacks = exports.sizesOnly = exports.pxToPercent = exports.getPosition = exports.getPanelMinSize = void 0;
7
+ exports.useContainerCallbacks = exports.sizesOnly = exports.pxToPercent = exports.isTouchEvent = exports.getPosition = exports.getPanelMinSize = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
@@ -18,9 +18,10 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
18
18
  * in compliance with, at your election, the Elastic License 2.0 or the Server
19
19
  * Side Public License, v 1.
20
20
  */
21
- function isMouseEvent(event) {
22
- return (0, _typeof2.default)(event) === 'object' && 'pageX' in event && 'pageY' in event;
23
- }
21
+ var isTouchEvent = function isTouchEvent(event) {
22
+ return (0, _typeof2.default)(event) === 'object' && 'targetTouches' in event;
23
+ };
24
+ exports.isTouchEvent = isTouchEvent;
24
25
  var pxToPercent = function pxToPercent(proportion, whole) {
25
26
  if (whole < 1 || proportion < 0) return 0;
26
27
  return proportion / whole * 100;
@@ -50,9 +51,8 @@ var getPanelMinSize = function getPanelMinSize(panelMinSize, containerSize) {
50
51
  };
51
52
  exports.getPanelMinSize = getPanelMinSize;
52
53
  var getPosition = function getPosition(event, isHorizontal) {
53
- var clientX = isMouseEvent(event) ? event.clientX : event.touches[0].clientX;
54
- var clientY = isMouseEvent(event) ? event.clientY : event.touches[0].clientY;
55
- return isHorizontal ? clientX : clientY;
54
+ var direction = isHorizontal ? 'clientX' : 'clientY';
55
+ return isTouchEvent(event) ? event.targetTouches[0][direction] : event[direction];
56
56
  };
57
57
  exports.getPosition = getPosition;
58
58
  var getSiblingPanel = function getSiblingPanel(element, adjacency) {
@@ -17,7 +17,7 @@ var _services = require("../../services");
17
17
  var _context = require("./context");
18
18
  var _resizable_button = require("./resizable_button.styles");
19
19
  var _react2 = require("@emotion/react");
20
- var _excluded = ["isHorizontal", "alignIndicator", "className"],
20
+ var _excluded = ["isHorizontal", "indicator", "alignIndicator", "className"],
21
21
  _excluded2 = ["registration", "id", "disabled", "onFocus"];
22
22
  /*
23
23
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -34,14 +34,17 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
34
34
  */
35
35
  var EuiResizableButton = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
36
36
  var isHorizontal = _ref.isHorizontal,
37
+ _ref$indicator = _ref.indicator,
38
+ indicator = _ref$indicator === void 0 ? 'handle' : _ref$indicator,
37
39
  _ref$alignIndicator = _ref.alignIndicator,
38
40
  alignIndicator = _ref$alignIndicator === void 0 ? 'center' : _ref$alignIndicator,
39
41
  className = _ref.className,
40
42
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
41
43
  var classes = (0, _classnames.default)('euiResizableButton', className);
44
+ var resizeDirection = isHorizontal ? 'horizontal' : 'vertical';
42
45
  var euiTheme = (0, _services.useEuiTheme)();
43
46
  var styles = (0, _resizable_button.euiResizableButtonStyles)(euiTheme);
44
- var cssStyles = [styles.euiResizableButton, isHorizontal ? styles.horizontal : styles.vertical, styles.alignIndicator[alignIndicator]];
47
+ var cssStyles = [styles.euiResizableButton, styles[indicator], styles["".concat(indicator, "Direction")][resizeDirection], styles[resizeDirection], indicator === 'handle' && styles.alignIndicator[alignIndicator]];
45
48
  return (0, _react2.jsx)(_i18n.EuiI18n, {
46
49
  tokens: ['euiResizableButton.horizontalResizerAriaLabel', 'euiResizableButton.verticalResizerAriaLabel'],
47
50
  defaults: ['Press the left or right arrow keys to adjust panels size', 'Press the up or down arrow keys to adjust panels size']
@@ -71,8 +74,14 @@ EuiResizableButton.propTypes = {
71
74
  */
72
75
  isHorizontal: _propTypes.default.bool,
73
76
  /**
74
- * Specify the alignment of the initial resize indicator. Defaults to `center`,
75
- * but consider using `start` for extremely tall content that scrolls off-screen
77
+ * By default, EuiResizableButton will show a grab handle to indicate resizability.
78
+ * This indicator can be optionally hidden to show a plain border instead.
79
+ */
80
+ indicator: _propTypes.default.oneOf(["handle", "border"]),
81
+ /**
82
+ * Allows customizing the alignment of grab `handle` indicators (does nothing for
83
+ * border indicators). Defaults to `center`, but consider using `start` for extremely
84
+ * tall content that scrolls off-screen
76
85
  */
77
86
  alignIndicator: _propTypes.default.oneOf(["center", "start", "end"]),
78
87
  /**
@@ -46,21 +46,31 @@ var euiResizableButtonStyles = function euiResizableButtonStyles(euiThemeContext
46
46
  var transitionSpeed = euiTheme.animation.fast;
47
47
  var transition = "".concat(transitionSpeed, " ease");
48
48
  return {
49
- // Mimics the "grab" icon with CSS psuedo-elements.
50
- // 1. The "grab" icon transforms into a thicker straight line on :hover and :focus
51
- // 2. Start/end aligned handles should have a slight margin offset that disappears on hover/focus
49
+ // Creates a resizable indicator (either a grab handle or a plain border) with CSS psuedo-elements.
50
+ // 1. The "grab" handle transforms into a thicker straight line on :hover and :focus
51
+ // 2. Start/end aligned grab handles should have a slight margin offset that disappears on hover/focus
52
52
  // 3. CSS hack to smooth out/anti-alias the 1px wide handles at various zoom levels
53
- euiResizableButton: /*#__PURE__*/(0, _react.css)("z-index:1;flex-shrink:0;display:flex;justify-content:center;gap:", (0, _global_styling.mathWithUnits)(grabHandleHeight, function (x) {
54
- return x * 2;
55
- }), ";&:disabled{display:none;}&:hover,&:focus{gap:0;justify-content:center;}", _global_styling.euiCanAnimate, "{transition:gap ", transition, ",justify-content ", transition, ";}&::before,&::after{content:'';display:block;background-color:", euiTheme.colors.darkestShade, ";transform:translateZ(0);", _global_styling.euiCanAnimate, "{transition:width ", transition, ",height ", transition, ",margin ", transition, ",background-color ", transition, ";}}&:hover{&::before,&::after{background-color:", euiTheme.colors.mediumShade, ";", _global_styling.euiCanAnimate, "{transition-delay:", transitionSpeed, ";}}}&:focus,&:active{background-color:", (0, _services.transparentize)(euiTheme.colors.primary, 0.1), ";&::before,&::after{background-color:", euiTheme.colors.primary, ";", _global_styling.euiCanAnimate, "{transition:width ", transition, ",height ", transition, ";transition-delay:", (0, _global_styling.mathWithUnits)(transitionSpeed, function (x) {
53
+ euiResizableButton: /*#__PURE__*/(0, _react.css)("z-index:1;flex-shrink:0;display:flex;justify-content:center;&:disabled{display:none;}&::before,&::after{content:'';display:block;", _global_styling.euiCanAnimate, "{transition:width ", transition, ",height ", transition, ",margin ", transition, ",background-color ", transition, ";}}&:hover{&::before,&::after{background-color:", euiTheme.colors.mediumShade, ";}}&:focus,&:active{background-color:", (0, _services.transparentize)(euiTheme.colors.primary, 0.1), ";&::before,&::after{background-color:", euiTheme.colors.primary, ";", _global_styling.euiCanAnimate, "{transition:width ", transition, ",height ", transition, ";transition-delay:", (0, _global_styling.mathWithUnits)(transitionSpeed, function (x) {
56
54
  return x / 2;
57
55
  }), ";}}};label:euiResizableButton;"),
58
56
  horizontal: /*#__PURE__*/(0, _react.css)("cursor:col-resize;", (0, _global_styling.logicalCSS)('height', '100%'), " ", (0, _global_styling.logicalCSS)('width', buttonSize), " margin-inline:", (0, _global_styling.mathWithUnits)(buttonSize, function (x) {
59
57
  return x / -2;
60
- }), ";&::before,&::after{", (0, _global_styling.logicalCSS)('width', grabHandleHeight), " ", (0, _global_styling.logicalCSS)('height', grabHandleWidth), " margin-block:", euiTheme.size.base, ";}&:hover,&:focus,&:active{&::before,&::after{", (0, _global_styling.logicalCSS)('height', '100%'), " margin-block:0;transform:none;}};label:horizontal;"),
58
+ }), ";;label:horizontal;"),
61
59
  vertical: /*#__PURE__*/(0, _react.css)("flex-direction:column;cursor:row-resize;", (0, _global_styling.logicalCSS)('width', '100%'), " ", (0, _global_styling.logicalCSS)('height', buttonSize), " margin-block:", (0, _global_styling.mathWithUnits)(buttonSize, function (x) {
62
60
  return x / -2;
63
- }), ";&::before,&::after{", (0, _global_styling.logicalCSS)('height', grabHandleHeight), " ", (0, _global_styling.logicalCSS)('width', grabHandleWidth), " margin-inline:", euiTheme.size.base, ";}&:hover,&:focus,&:active{&::before,&::after{", (0, _global_styling.logicalCSS)('width', '100%'), " margin-inline:0;transform:none;}};label:vertical;"),
61
+ }), ";;label:vertical;"),
62
+ border: /*#__PURE__*/(0, _react.css)("&::before,&::after{background-color:", euiTheme.border.color, ";};label:border;"),
63
+ borderDirection: {
64
+ horizontal: /*#__PURE__*/(0, _react.css)("&::before{", (0, _global_styling.logicalCSS)('width', euiTheme.border.width.thin), " ", (0, _global_styling.logicalCSS)('height', '100%'), ";}&:hover,&:focus,&:active{&::after{", (0, _global_styling.logicalCSS)('width', euiTheme.border.width.thin), " ", (0, _global_styling.logicalCSS)('height', '100%'), ";}};label:horizontal;"),
65
+ vertical: /*#__PURE__*/(0, _react.css)("&::before{", (0, _global_styling.logicalCSS)('height', euiTheme.border.width.thin), " ", (0, _global_styling.logicalCSS)('width', '100%'), ";}&:hover,&:focus,&:active{&::after{", (0, _global_styling.logicalCSS)('height', euiTheme.border.width.thin), " ", (0, _global_styling.logicalCSS)('width', '100%'), ";}};label:vertical;")
66
+ },
67
+ handle: /*#__PURE__*/(0, _react.css)("gap:", (0, _global_styling.mathWithUnits)(grabHandleHeight, function (x) {
68
+ return x * 2;
69
+ }), ";&:hover,&:focus,&:active{gap:0;}", _global_styling.euiCanAnimate, "{transition:gap ", transition, ";}&::before,&::after{background-color:", euiTheme.colors.darkestShade, ";transform:translateZ(0);}&:hover{&::before,&::after{", _global_styling.euiCanAnimate, "{transition-delay:", transitionSpeed, ";}}};label:handle;"),
70
+ handleDirection: {
71
+ horizontal: /*#__PURE__*/(0, _react.css)("&::before,&::after{", (0, _global_styling.logicalCSS)('width', grabHandleHeight), " ", (0, _global_styling.logicalCSS)('height', grabHandleWidth), " margin-block:", euiTheme.size.base, ";}&:hover,&:focus,&:active{&::before,&::after{", (0, _global_styling.logicalCSS)('height', '100%'), " margin-block:0;transform:none;}};label:horizontal;"),
72
+ vertical: /*#__PURE__*/(0, _react.css)("&::before,&::after{", (0, _global_styling.logicalCSS)('height', grabHandleHeight), " ", (0, _global_styling.logicalCSS)('width', grabHandleWidth), " margin-inline:", euiTheme.size.base, ";}&:hover,&:focus,&:active{&::before,&::after{", (0, _global_styling.logicalCSS)('width', '100%'), " margin-inline:0;transform:none;}};label:vertical;")
73
+ },
64
74
  alignIndicator: {
65
75
  center: _ref3,
66
76
  start: _ref2,
@@ -109,16 +109,33 @@ var EuiResizableContainer = function EuiResizableContainer(_ref) {
109
109
  prevPanelId: prevPanelId,
110
110
  nextPanelId: nextPanelId
111
111
  });
112
- }, [actions, isHorizontal, resizeStart]);
113
- var onMouseMove = (0, _react.useCallback)(function (event) {
114
- if (!reducerState.prevPanelId || !reducerState.nextPanelId || !reducerState.isDragging) return;
115
- var position = (0, _helpers.getPosition)(event, isHorizontal);
116
- actions.dragMove({
117
- position: position,
118
- prevPanelId: reducerState.prevPanelId,
119
- nextPanelId: reducerState.nextPanelId
120
- });
121
- }, [actions, isHorizontal, reducerState.prevPanelId, reducerState.nextPanelId, reducerState.isDragging]);
112
+
113
+ // Window event listeners instead of React events are used to continue
114
+ // detecting movement even if the user's mouse leaves the container
115
+
116
+ var onMouseMove = function onMouseMove(event) {
117
+ var position = (0, _helpers.getPosition)(event, isHorizontal);
118
+ actions.dragMove({
119
+ position: position,
120
+ prevPanelId: prevPanelId,
121
+ nextPanelId: nextPanelId
122
+ });
123
+ };
124
+ var onMouseUp = function onMouseUp() {
125
+ if (resizeContext.current.trigger === 'pointer') {
126
+ resizeEnd();
127
+ }
128
+ actions.reset();
129
+ window.removeEventListener('mousemove', onMouseMove);
130
+ window.removeEventListener('mouseup', onMouseUp);
131
+ window.removeEventListener('touchmove', onMouseMove);
132
+ window.removeEventListener('touchend', onMouseUp);
133
+ };
134
+ window.addEventListener('mousemove', onMouseMove);
135
+ window.addEventListener('mouseup', onMouseUp);
136
+ window.addEventListener('touchmove', onMouseMove);
137
+ window.addEventListener('touchend', onMouseUp);
138
+ }, [actions, isHorizontal, resizeStart, resizeEnd]);
122
139
  var getKeyMoveDirection = (0, _react.useCallback)(function (key) {
123
140
  var direction = null;
124
141
  if (isHorizontal && key === _services.keys.ARROW_LEFT || !isHorizontal && key === _services.keys.ARROW_UP) {
@@ -156,12 +173,6 @@ var EuiResizableContainer = function EuiResizableContainer(_ref) {
156
173
  resizeEnd();
157
174
  }
158
175
  }, [getKeyMoveDirection, resizeEnd]);
159
- var onMouseUp = (0, _react.useCallback)(function () {
160
- if (resizeContext.current.trigger === 'pointer') {
161
- resizeEnd();
162
- }
163
- actions.reset();
164
- }, [actions, resizeEnd]);
165
176
  var onBlur = (0, _react.useCallback)(function () {
166
177
  if (resizeContext.current.trigger === 'key') {
167
178
  resizeEnd();
@@ -220,12 +231,7 @@ var EuiResizableContainer = function EuiResizableContainer(_ref) {
220
231
  }, (0, _react2.jsx)("div", (0, _extends2.default)({
221
232
  css: cssStyles,
222
233
  className: classes,
223
- ref: containerRef,
224
- onMouseMove: reducerState.isDragging ? onMouseMove : undefined,
225
- onMouseUp: onMouseUp,
226
- onMouseLeave: onMouseUp,
227
- onTouchMove: onMouseMove,
228
- onTouchEnd: onMouseUp
234
+ ref: containerRef
229
235
  }, rest), render()));
230
236
  };
231
237
  exports.EuiResizableContainer = EuiResizableContainer;
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.euiStepNumberStyles = exports.euiStepNumberContentStyles = void 0;
7
7
  var _react = require("@emotion/react");
8
8
  var _global_styling = require("../../global_styling");
9
- var _services = require("../../services");
10
9
  var _step = require("./step.styles");
11
10
  var _mixins = require("../../themes/amsterdam/global_styling/mixins");
12
11
  function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
@@ -46,12 +45,12 @@ var euiStepNumberStyles = function euiStepNumberStyles(euiThemeContext) {
46
45
  xs: /*#__PURE__*/(0, _react.css)(createStepsNumber(euiStep.numberXSSize, (0, _global_styling.euiFontSizeFromScale)('xs', euiTheme)), ";;label:xs;"),
47
46
  // status
48
47
  incomplete: /*#__PURE__*/(0, _react.css)("background-color:transparent;color:", euiTheme.colors.text, ";border:", euiTheme.border.thick, ";;label:incomplete;"),
49
- disabled: /*#__PURE__*/(0, _react.css)("background-color:", (0, _mixins.euiButtonFillColor)(euiThemeContext, 'disabled').backgroundColor, ";color:", (0, _services.makeHighContrastColor)(euiTheme.colors.disabledText)((0, _mixins.euiButtonFillColor)(euiThemeContext, 'disabled').backgroundColor), ";;label:disabled;"),
48
+ disabled: /*#__PURE__*/(0, _react.css)((0, _mixins.euiButtonFillColor)(euiThemeContext, 'disabled'), ";;label:disabled;"),
50
49
  loading: _ref,
51
- warning: /*#__PURE__*/(0, _react.css)("color:", (0, _mixins.euiButtonFillColor)(euiThemeContext, 'warning').color, ";background-color:", (0, _mixins.euiButtonFillColor)(euiThemeContext, 'warning').backgroundColor, ";", _global_styling.euiCanAnimate, "{animation:", _global_styling.euiAnimScale, " ", euiTheme.animation.fast, " ", euiTheme.animation.bounce, ";};label:warning;"),
52
- danger: /*#__PURE__*/(0, _react.css)("color:", (0, _mixins.euiButtonFillColor)(euiThemeContext, 'danger').color, ";background-color:", (0, _mixins.euiButtonFillColor)(euiThemeContext, 'danger').backgroundColor, ";", _global_styling.euiCanAnimate, "{animation:", _global_styling.euiAnimScale, " ", euiTheme.animation.fast, " ", euiTheme.animation.bounce, ";};label:danger;"),
53
- complete: /*#__PURE__*/(0, _react.css)("color:", (0, _mixins.euiButtonFillColor)(euiThemeContext, 'success').color, ";background-color:", (0, _mixins.euiButtonFillColor)(euiThemeContext, 'success').backgroundColor, ";", _global_styling.euiCanAnimate, "{animation:", _global_styling.euiAnimScale, " ", euiTheme.animation.fast, " ", euiTheme.animation.bounce, ";};label:complete;"),
54
- current: /*#__PURE__*/(0, _react.css)("border:2px solid ", euiTheme.colors.body, ";box-shadow:0 0 0 2px ", euiTheme.colors.primary, ";.euiStepNumber__number{display:inline-block;transform:translateY(-2px);};label:current;")
50
+ warning: /*#__PURE__*/(0, _react.css)((0, _mixins.euiButtonFillColor)(euiThemeContext, 'warning'), " ", _global_styling.euiCanAnimate, "{animation:", _global_styling.euiAnimScale, " ", euiTheme.animation.fast, " ", euiTheme.animation.bounce, ";};label:warning;"),
51
+ danger: /*#__PURE__*/(0, _react.css)((0, _mixins.euiButtonFillColor)(euiThemeContext, 'danger'), " ", _global_styling.euiCanAnimate, "{animation:", _global_styling.euiAnimScale, " ", euiTheme.animation.fast, " ", euiTheme.animation.bounce, ";};label:danger;"),
52
+ complete: /*#__PURE__*/(0, _react.css)((0, _mixins.euiButtonFillColor)(euiThemeContext, 'success'), " ", _global_styling.euiCanAnimate, "{animation:", _global_styling.euiAnimScale, " ", euiTheme.animation.fast, " ", euiTheme.animation.bounce, ";};label:complete;"),
53
+ current: /*#__PURE__*/(0, _react.css)("border:", euiTheme.border.width.thick, " solid ", euiTheme.colors.body, ";box-shadow:0 0 0 ", euiTheme.border.width.thick, " ", euiTheme.colors.primary, ";;label:current;")
55
54
  };
56
55
  };
57
56
  exports.euiStepNumberStyles = euiStepNumberStyles;
@@ -72,7 +71,7 @@ var euiStepNumberContentStyles = function euiStepNumberContentStyles(_ref3) {
72
71
  incomplete: /*#__PURE__*/(0, _react.css)("display:unset;position:relative;inset-block-start:-", euiTheme.border.width.thick, ";;label:incomplete;"),
73
72
  loading: /*#__PURE__*/(0, _react.css)(";label:loading;"),
74
73
  disabled: /*#__PURE__*/(0, _react.css)(";label:disabled;"),
75
- current: /*#__PURE__*/(0, _react.css)(";label:current;")
74
+ current: /*#__PURE__*/(0, _react.css)("display:inline-block;transform:translateY(-", euiTheme.border.width.thick, ");;label:current;")
76
75
  };
77
76
  };
78
77
  exports.euiStepNumberContentStyles = euiStepNumberContentStyles;
@@ -41,7 +41,9 @@ var EuiTreeViewContext = /*#__PURE__*/(0, _react.createContext)('');
41
41
  function hasAriaLabel(x) {
42
42
  return x.hasOwnProperty('aria-label');
43
43
  }
44
- function getTreeId(propId, contextId, idGenerator) {
44
+ function getTreeId(propId) {
45
+ var contextId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
46
+ var idGenerator = arguments.length > 2 ? arguments[2] : undefined;
45
47
  return propId !== null && propId !== void 0 ? propId : contextId === '' ? idGenerator() : contextId;
46
48
  }
47
49
  var displayToClassNameMap = {
@@ -51,9 +53,14 @@ var displayToClassNameMap = {
51
53
  var EuiTreeView = /*#__PURE__*/function (_Component) {
52
54
  (0, _inherits2.default)(EuiTreeView, _Component);
53
55
  var _super = _createSuper(EuiTreeView);
54
- function EuiTreeView(props, context) {
56
+ function EuiTreeView(props,
57
+ // Without the optional ? typing, TS will throw errors on JSX component errors
58
+ // @see https://github.com/facebook/react/issues/13944#issuecomment-1183693239
59
+ context) {
55
60
  var _this;
56
61
  (0, _classCallCheck2.default)(this, EuiTreeView);
62
+ // TODO: context in constructor has been deprecated.
63
+ // We should likely convert this to a function component
57
64
  _this = _super.call(this, props, context);
58
65
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "treeIdGenerator", (0, _services.htmlIdGenerator)('euiTreeView'));
59
66
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isNested", void 0);
@@ -1,58 +0,0 @@
1
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
6
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
- /*
8
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
9
- * or more contributor license agreements. Licensed under the Elastic License
10
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
11
- * in compliance with, at your election, the Elastic License 2.0 or the Server
12
- * Side Public License, v 1.
13
- */
14
-
15
- import { useCallback, useEffect, useState } from 'react';
16
- import { tabbable } from 'tabbable';
17
- export var useHeaderIsInteractive = function useHeaderIsInteractive(gridElement) {
18
- var _useState = useState(false),
19
- _useState2 = _slicedToArray(_useState, 2),
20
- headerIsInteractive = _useState2[0],
21
- setHeaderIsInteractive = _useState2[1];
22
- var handleHeaderChange = useCallback(function (headerRow) {
23
- var tabbables = tabbable(headerRow);
24
- var managed = headerRow.querySelectorAll('[data-euigrid-tab-managed]');
25
- var hasInteractives = tabbables.length > 0 || managed.length > 0;
26
- if (hasInteractives !== headerIsInteractive) {
27
- setHeaderIsInteractive(hasInteractives);
28
- }
29
- }, [headerIsInteractive]);
30
-
31
- // Set headerIsInteractive on data grid init/load
32
- useEffect(function () {
33
- if (gridElement) {
34
- var headerElement = gridElement.querySelector('[data-test-subj~=dataGridHeader]');
35
- if (headerElement) {
36
- handleHeaderChange(headerElement);
37
- }
38
- }
39
- }, [gridElement, handleHeaderChange]);
40
-
41
- // Update headerIsInteractive if the header changes (e.g., columns are hidden)
42
- // Used in header mutation observer set in EuiDataGridBody
43
- var handleHeaderMutation = useCallback(function (records) {
44
- var _records = _slicedToArray(records, 1),
45
- target = _records[0].target;
46
-
47
- // find the wrapping header div
48
- var headerRow = target.parentElement;
49
- while (headerRow && (headerRow.getAttribute('data-test-subj') || '').split(/\s+/).indexOf('dataGridHeader') === -1) {
50
- headerRow = headerRow.parentElement;
51
- }
52
- if (headerRow) handleHeaderChange(headerRow);
53
- }, [handleHeaderChange]);
54
- return {
55
- headerIsInteractive: headerIsInteractive,
56
- handleHeaderMutation: handleHeaderMutation
57
- };
58
- };
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useHeaderIsInteractive = void 0;
7
- var _react = require("react");
8
- var _tabbable = require("tabbable");
9
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
13
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
14
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /*
15
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
- * or more contributor license agreements. Licensed under the Elastic License
17
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
18
- * in compliance with, at your election, the Elastic License 2.0 or the Server
19
- * Side Public License, v 1.
20
- */
21
- var useHeaderIsInteractive = function useHeaderIsInteractive(gridElement) {
22
- var _useState = (0, _react.useState)(false),
23
- _useState2 = _slicedToArray(_useState, 2),
24
- headerIsInteractive = _useState2[0],
25
- setHeaderIsInteractive = _useState2[1];
26
- var handleHeaderChange = (0, _react.useCallback)(function (headerRow) {
27
- var tabbables = (0, _tabbable.tabbable)(headerRow);
28
- var managed = headerRow.querySelectorAll('[data-euigrid-tab-managed]');
29
- var hasInteractives = tabbables.length > 0 || managed.length > 0;
30
- if (hasInteractives !== headerIsInteractive) {
31
- setHeaderIsInteractive(hasInteractives);
32
- }
33
- }, [headerIsInteractive]);
34
-
35
- // Set headerIsInteractive on data grid init/load
36
- (0, _react.useEffect)(function () {
37
- if (gridElement) {
38
- var headerElement = gridElement.querySelector('[data-test-subj~=dataGridHeader]');
39
- if (headerElement) {
40
- handleHeaderChange(headerElement);
41
- }
42
- }
43
- }, [gridElement, handleHeaderChange]);
44
-
45
- // Update headerIsInteractive if the header changes (e.g., columns are hidden)
46
- // Used in header mutation observer set in EuiDataGridBody
47
- var handleHeaderMutation = (0, _react.useCallback)(function (records) {
48
- var _records = _slicedToArray(records, 1),
49
- target = _records[0].target;
50
-
51
- // find the wrapping header div
52
- var headerRow = target.parentElement;
53
- while (headerRow && (headerRow.getAttribute('data-test-subj') || '').split(/\s+/).indexOf('dataGridHeader') === -1) {
54
- headerRow = headerRow.parentElement;
55
- }
56
- if (headerRow) handleHeaderChange(headerRow);
57
- }, [handleHeaderChange]);
58
- return {
59
- headerIsInteractive: headerIsInteractive,
60
- handleHeaderMutation: handleHeaderMutation
61
- };
62
- };
63
- exports.useHeaderIsInteractive = useHeaderIsInteractive;
@@ -1,53 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- /*
3
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
4
- * or more contributor license agreements. Licensed under the Elastic License
5
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
6
- * in compliance with, at your election, the Elastic License 2.0 or the Server
7
- * Side Public License, v 1.
8
- */
9
-
10
- import { useCallback, useEffect, useState } from 'react';
11
- import { tabbable } from 'tabbable';
12
- export var useHeaderIsInteractive = function useHeaderIsInteractive(gridElement) {
13
- var _useState = useState(false),
14
- _useState2 = _slicedToArray(_useState, 2),
15
- headerIsInteractive = _useState2[0],
16
- setHeaderIsInteractive = _useState2[1];
17
- var handleHeaderChange = useCallback(function (headerRow) {
18
- var tabbables = tabbable(headerRow);
19
- var managed = headerRow.querySelectorAll('[data-euigrid-tab-managed]');
20
- var hasInteractives = tabbables.length > 0 || managed.length > 0;
21
- if (hasInteractives !== headerIsInteractive) {
22
- setHeaderIsInteractive(hasInteractives);
23
- }
24
- }, [headerIsInteractive]);
25
-
26
- // Set headerIsInteractive on data grid init/load
27
- useEffect(function () {
28
- if (gridElement) {
29
- var headerElement = gridElement.querySelector('[data-test-subj~=dataGridHeader]');
30
- if (headerElement) {
31
- handleHeaderChange(headerElement);
32
- }
33
- }
34
- }, [gridElement, handleHeaderChange]);
35
-
36
- // Update headerIsInteractive if the header changes (e.g., columns are hidden)
37
- // Used in header mutation observer set in EuiDataGridBody
38
- var handleHeaderMutation = useCallback(function (records) {
39
- var _records = _slicedToArray(records, 1),
40
- target = _records[0].target;
41
-
42
- // find the wrapping header div
43
- var headerRow = target.parentElement;
44
- while (headerRow && (headerRow.getAttribute('data-test-subj') || '').split(/\s+/).indexOf('dataGridHeader') === -1) {
45
- headerRow = headerRow.parentElement;
46
- }
47
- if (headerRow) handleHeaderChange(headerRow);
48
- }, [handleHeaderChange]);
49
- return {
50
- headerIsInteractive: headerIsInteractive,
51
- handleHeaderMutation: handleHeaderMutation
52
- };
53
- };
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.useHeaderIsInteractive = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
- var _react = require("react");
10
- var _tabbable = require("tabbable");
11
- /*
12
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
13
- * or more contributor license agreements. Licensed under the Elastic License
14
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
15
- * in compliance with, at your election, the Elastic License 2.0 or the Server
16
- * Side Public License, v 1.
17
- */
18
-
19
- var useHeaderIsInteractive = function useHeaderIsInteractive(gridElement) {
20
- var _useState = (0, _react.useState)(false),
21
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
22
- headerIsInteractive = _useState2[0],
23
- setHeaderIsInteractive = _useState2[1];
24
- var handleHeaderChange = (0, _react.useCallback)(function (headerRow) {
25
- var tabbables = (0, _tabbable.tabbable)(headerRow);
26
- var managed = headerRow.querySelectorAll('[data-euigrid-tab-managed]');
27
- var hasInteractives = tabbables.length > 0 || managed.length > 0;
28
- if (hasInteractives !== headerIsInteractive) {
29
- setHeaderIsInteractive(hasInteractives);
30
- }
31
- }, [headerIsInteractive]);
32
-
33
- // Set headerIsInteractive on data grid init/load
34
- (0, _react.useEffect)(function () {
35
- if (gridElement) {
36
- var headerElement = gridElement.querySelector('[data-test-subj~=dataGridHeader]');
37
- if (headerElement) {
38
- handleHeaderChange(headerElement);
39
- }
40
- }
41
- }, [gridElement, handleHeaderChange]);
42
-
43
- // Update headerIsInteractive if the header changes (e.g., columns are hidden)
44
- // Used in header mutation observer set in EuiDataGridBody
45
- var handleHeaderMutation = (0, _react.useCallback)(function (records) {
46
- var _records = (0, _slicedToArray2.default)(records, 1),
47
- target = _records[0].target;
48
-
49
- // find the wrapping header div
50
- var headerRow = target.parentElement;
51
- while (headerRow && (headerRow.getAttribute('data-test-subj') || '').split(/\s+/).indexOf('dataGridHeader') === -1) {
52
- headerRow = headerRow.parentElement;
53
- }
54
- if (headerRow) handleHeaderChange(headerRow);
55
- }, [handleHeaderChange]);
56
- return {
57
- headerIsInteractive: headerIsInteractive,
58
- handleHeaderMutation: handleHeaderMutation
59
- };
60
- };
61
- exports.useHeaderIsInteractive = useHeaderIsInteractive;
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.useHeaderIsInteractive = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
- var _react = require("react");
10
- var _tabbable = require("tabbable");
11
- /*
12
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
13
- * or more contributor license agreements. Licensed under the Elastic License
14
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
15
- * in compliance with, at your election, the Elastic License 2.0 or the Server
16
- * Side Public License, v 1.
17
- */
18
-
19
- var useHeaderIsInteractive = function useHeaderIsInteractive(gridElement) {
20
- var _useState = (0, _react.useState)(false),
21
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
22
- headerIsInteractive = _useState2[0],
23
- setHeaderIsInteractive = _useState2[1];
24
- var handleHeaderChange = (0, _react.useCallback)(function (headerRow) {
25
- var tabbables = (0, _tabbable.tabbable)(headerRow);
26
- var managed = headerRow.querySelectorAll('[data-euigrid-tab-managed]');
27
- var hasInteractives = tabbables.length > 0 || managed.length > 0;
28
- if (hasInteractives !== headerIsInteractive) {
29
- setHeaderIsInteractive(hasInteractives);
30
- }
31
- }, [headerIsInteractive]);
32
-
33
- // Set headerIsInteractive on data grid init/load
34
- (0, _react.useEffect)(function () {
35
- if (gridElement) {
36
- var headerElement = gridElement.querySelector('[data-test-subj~=dataGridHeader]');
37
- if (headerElement) {
38
- handleHeaderChange(headerElement);
39
- }
40
- }
41
- }, [gridElement, handleHeaderChange]);
42
-
43
- // Update headerIsInteractive if the header changes (e.g., columns are hidden)
44
- // Used in header mutation observer set in EuiDataGridBody
45
- var handleHeaderMutation = (0, _react.useCallback)(function (records) {
46
- var _records = (0, _slicedToArray2.default)(records, 1),
47
- target = _records[0].target;
48
-
49
- // find the wrapping header div
50
- var headerRow = target.parentElement;
51
- while (headerRow && (headerRow.getAttribute('data-test-subj') || '').split(/\s+/).indexOf('dataGridHeader') === -1) {
52
- headerRow = headerRow.parentElement;
53
- }
54
- if (headerRow) handleHeaderChange(headerRow);
55
- }, [handleHeaderChange]);
56
- return {
57
- headerIsInteractive: headerIsInteractive,
58
- handleHeaderMutation: handleHeaderMutation
59
- };
60
- };
61
- exports.useHeaderIsInteractive = useHeaderIsInteractive;