@elastic/eui 110.0.0 → 111.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/es/components/collapsible_nav/collapsible_nav.js +20 -101
  2. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
  3. package/es/components/flyout/_flyout_overlay.js +52 -0
  4. package/es/components/flyout/_flyout_resize_button.js +32 -0
  5. package/es/components/flyout/{flyout_resizable.styles.js → _flyout_resize_button.styles.js} +11 -11
  6. package/es/components/flyout/const.js +42 -0
  7. package/es/components/flyout/flyout.component.js +481 -0
  8. package/es/components/flyout/flyout.js +77 -379
  9. package/es/components/flyout/flyout.styles.js +105 -7
  10. package/es/components/flyout/flyout_menu.js +241 -0
  11. package/es/components/flyout/flyout_menu.styles.js +19 -0
  12. package/{optimize/es/components/flyout/flyout_context.js → es/components/flyout/flyout_menu_context.js} +1 -7
  13. package/es/components/flyout/flyout_parent_context.js +36 -0
  14. package/es/components/flyout/flyout_resizable.js +33 -144
  15. package/es/components/flyout/hooks.js +25 -0
  16. package/es/components/flyout/index.js +5 -2
  17. package/es/components/flyout/manager/actions.js +153 -0
  18. package/es/components/flyout/manager/activity_stage.js +95 -0
  19. package/es/components/flyout/manager/const.js +56 -0
  20. package/es/components/flyout/manager/context.js +33 -0
  21. package/es/components/flyout/manager/flyout_child.js +75 -0
  22. package/es/components/flyout/manager/flyout_main.js +65 -0
  23. package/es/components/flyout/manager/flyout_main.styles.js +25 -0
  24. package/es/components/flyout/manager/flyout_managed.js +227 -0
  25. package/es/components/flyout/manager/flyout_managed.styles.js +69 -0
  26. package/es/components/flyout/manager/hooks.js +55 -0
  27. package/es/components/flyout/manager/index.js +31 -0
  28. package/es/components/flyout/manager/layout_mode.js +167 -0
  29. package/es/components/flyout/manager/provider.js +57 -0
  30. package/es/components/flyout/manager/reducer.js +320 -0
  31. package/es/components/flyout/manager/selectors.js +116 -0
  32. package/es/components/flyout/manager/store.js +113 -0
  33. package/es/components/flyout/manager/validation.js +85 -0
  34. package/es/components/flyout/use_flyout_resizable.js +149 -0
  35. package/es/components/flyout/use_flyout_z_index.js +46 -0
  36. package/es/components/overlay_mask/overlay_mask.js +13 -3
  37. package/es/components/overlay_mask/overlay_mask.styles.js +11 -2
  38. package/es/components/provider/provider.js +2 -1
  39. package/eui.d.ts +1484 -921
  40. package/i18ntokens.json +1207 -1153
  41. package/lib/components/collapsible_nav/collapsible_nav.js +20 -101
  42. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
  43. package/lib/components/flyout/_flyout_overlay.js +59 -0
  44. package/lib/components/flyout/_flyout_resize_button.js +38 -0
  45. package/{test-env/components/flyout/flyout_resizable.styles.js → lib/components/flyout/_flyout_resize_button.styles.js} +12 -12
  46. package/lib/components/flyout/const.js +49 -0
  47. package/lib/components/flyout/flyout.component.js +488 -0
  48. package/lib/components/flyout/flyout.js +102 -379
  49. package/lib/components/flyout/flyout.styles.js +105 -7
  50. package/lib/components/flyout/flyout_menu.js +243 -0
  51. package/lib/components/flyout/flyout_menu.styles.js +25 -0
  52. package/{optimize/lib/components/flyout/flyout_context.js → lib/components/flyout/flyout_menu_context.js} +2 -7
  53. package/lib/components/flyout/flyout_parent_context.js +43 -0
  54. package/lib/components/flyout/flyout_resizable.js +36 -147
  55. package/lib/components/flyout/hooks.js +30 -0
  56. package/lib/components/flyout/index.js +21 -14
  57. package/lib/components/flyout/manager/actions.js +159 -0
  58. package/lib/components/flyout/manager/activity_stage.js +101 -0
  59. package/lib/components/flyout/manager/const.js +62 -0
  60. package/lib/components/flyout/manager/context.js +41 -0
  61. package/lib/components/flyout/manager/flyout_child.js +80 -0
  62. package/lib/components/flyout/manager/flyout_main.js +70 -0
  63. package/lib/components/flyout/manager/flyout_main.styles.js +31 -0
  64. package/lib/components/flyout/manager/flyout_managed.js +233 -0
  65. package/lib/components/flyout/manager/flyout_managed.styles.js +73 -0
  66. package/lib/components/flyout/manager/hooks.js +131 -0
  67. package/lib/components/flyout/manager/index.js +168 -0
  68. package/lib/components/flyout/manager/layout_mode.js +171 -0
  69. package/lib/components/flyout/manager/provider.js +63 -0
  70. package/lib/components/flyout/manager/reducer.js +325 -0
  71. package/lib/components/flyout/manager/selectors.js +122 -0
  72. package/lib/components/flyout/manager/store.js +120 -0
  73. package/lib/components/flyout/manager/validation.js +94 -0
  74. package/lib/components/flyout/use_flyout_resizable.js +153 -0
  75. package/lib/components/flyout/use_flyout_z_index.js +51 -0
  76. package/lib/components/overlay_mask/overlay_mask.js +12 -2
  77. package/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
  78. package/lib/components/provider/provider.js +2 -1
  79. package/optimize/es/components/collapsible_nav/collapsible_nav.js +1 -0
  80. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
  81. package/optimize/es/components/flyout/_flyout_overlay.js +52 -0
  82. package/optimize/es/components/flyout/_flyout_resize_button.js +31 -0
  83. package/optimize/es/components/flyout/{flyout_resizable.styles.js → _flyout_resize_button.styles.js} +11 -11
  84. package/optimize/es/components/flyout/const.js +42 -0
  85. package/optimize/es/components/flyout/flyout.component.js +469 -0
  86. package/optimize/es/components/flyout/flyout.js +53 -349
  87. package/optimize/es/components/flyout/flyout.styles.js +102 -7
  88. package/optimize/es/components/flyout/flyout_menu.js +162 -0
  89. package/optimize/es/components/flyout/flyout_menu.styles.js +19 -0
  90. package/{es/components/flyout/flyout_context.js → optimize/es/components/flyout/flyout_menu_context.js} +1 -7
  91. package/optimize/es/components/flyout/flyout_parent_context.js +36 -0
  92. package/optimize/es/components/flyout/flyout_resizable.js +7 -138
  93. package/optimize/es/components/flyout/hooks.js +25 -0
  94. package/optimize/es/components/flyout/index.js +5 -2
  95. package/optimize/es/components/flyout/manager/actions.js +153 -0
  96. package/optimize/es/components/flyout/manager/activity_stage.js +95 -0
  97. package/optimize/es/components/flyout/manager/const.js +56 -0
  98. package/optimize/es/components/flyout/manager/context.js +33 -0
  99. package/optimize/es/components/flyout/manager/flyout_child.js +71 -0
  100. package/optimize/es/components/flyout/manager/flyout_main.js +61 -0
  101. package/optimize/es/components/flyout/manager/flyout_main.styles.js +25 -0
  102. package/optimize/es/components/flyout/manager/flyout_managed.js +223 -0
  103. package/optimize/es/components/flyout/manager/flyout_managed.styles.js +69 -0
  104. package/optimize/es/components/flyout/manager/hooks.js +55 -0
  105. package/optimize/es/components/flyout/manager/index.js +31 -0
  106. package/optimize/es/components/flyout/manager/layout_mode.js +162 -0
  107. package/optimize/es/components/flyout/manager/provider.js +53 -0
  108. package/optimize/es/components/flyout/manager/reducer.js +312 -0
  109. package/optimize/es/components/flyout/manager/selectors.js +116 -0
  110. package/optimize/es/components/flyout/manager/store.js +113 -0
  111. package/optimize/es/components/flyout/manager/types.js +1 -0
  112. package/optimize/es/components/flyout/manager/validation.js +85 -0
  113. package/optimize/es/components/flyout/types.js +1 -0
  114. package/optimize/es/components/flyout/use_flyout_resizable.js +144 -0
  115. package/optimize/es/components/flyout/use_flyout_z_index.js +46 -0
  116. package/optimize/es/components/overlay_mask/overlay_mask.js +13 -3
  117. package/optimize/es/components/overlay_mask/overlay_mask.styles.js +11 -2
  118. package/optimize/es/components/provider/provider.js +2 -1
  119. package/optimize/lib/components/collapsible_nav/collapsible_nav.js +1 -0
  120. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
  121. package/optimize/lib/components/flyout/_flyout_overlay.js +62 -0
  122. package/optimize/lib/components/flyout/_flyout_resize_button.js +37 -0
  123. package/{lib/components/flyout/flyout_resizable.styles.js → optimize/lib/components/flyout/_flyout_resize_button.styles.js} +12 -12
  124. package/optimize/lib/components/flyout/const.js +49 -0
  125. package/optimize/lib/components/flyout/flyout.component.js +477 -0
  126. package/optimize/lib/components/flyout/flyout.js +77 -349
  127. package/optimize/lib/components/flyout/flyout.styles.js +102 -7
  128. package/optimize/lib/components/flyout/flyout_menu.js +168 -0
  129. package/optimize/lib/components/flyout/flyout_menu.styles.js +25 -0
  130. package/{lib/components/flyout/flyout_context.js → optimize/lib/components/flyout/flyout_menu_context.js} +2 -7
  131. package/optimize/lib/components/flyout/flyout_parent_context.js +43 -0
  132. package/optimize/lib/components/flyout/flyout_resizable.js +9 -139
  133. package/optimize/lib/components/flyout/hooks.js +30 -0
  134. package/optimize/lib/components/flyout/index.js +21 -14
  135. package/optimize/lib/components/flyout/manager/actions.js +159 -0
  136. package/optimize/lib/components/flyout/manager/activity_stage.js +101 -0
  137. package/optimize/lib/components/flyout/manager/const.js +62 -0
  138. package/optimize/lib/components/flyout/manager/context.js +41 -0
  139. package/optimize/lib/components/flyout/manager/flyout_child.js +76 -0
  140. package/optimize/lib/components/flyout/manager/flyout_main.js +66 -0
  141. package/optimize/lib/components/flyout/manager/flyout_main.styles.js +31 -0
  142. package/optimize/lib/components/flyout/manager/flyout_managed.js +231 -0
  143. package/optimize/lib/components/flyout/manager/flyout_managed.styles.js +74 -0
  144. package/optimize/lib/components/flyout/manager/hooks.js +131 -0
  145. package/optimize/lib/components/flyout/manager/index.js +168 -0
  146. package/optimize/lib/components/flyout/manager/layout_mode.js +169 -0
  147. package/optimize/lib/components/flyout/manager/provider.js +61 -0
  148. package/optimize/lib/components/flyout/manager/reducer.js +318 -0
  149. package/optimize/lib/components/flyout/manager/selectors.js +122 -0
  150. package/optimize/lib/components/flyout/manager/store.js +120 -0
  151. package/optimize/lib/components/flyout/manager/validation.js +94 -0
  152. package/optimize/lib/components/flyout/types.js +5 -0
  153. package/optimize/lib/components/flyout/use_flyout_resizable.js +151 -0
  154. package/optimize/lib/components/flyout/use_flyout_z_index.js +51 -0
  155. package/optimize/lib/components/overlay_mask/overlay_mask.js +12 -2
  156. package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
  157. package/optimize/lib/components/provider/provider.js +2 -1
  158. package/package.json +5 -4
  159. package/test-env/components/collapsible_nav/collapsible_nav.js +20 -101
  160. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
  161. package/test-env/components/flyout/_flyout_overlay.js +62 -0
  162. package/test-env/components/flyout/_flyout_resize_button.js +37 -0
  163. package/{optimize/lib/components/flyout/flyout_resizable.styles.js → test-env/components/flyout/_flyout_resize_button.styles.js} +12 -12
  164. package/test-env/components/flyout/const.js +49 -0
  165. package/test-env/components/flyout/flyout.component.js +477 -0
  166. package/test-env/components/flyout/flyout.styles.js +102 -7
  167. package/test-env/components/flyout/flyout_menu.js +241 -0
  168. package/test-env/components/flyout/flyout_menu.styles.js +25 -0
  169. package/test-env/components/flyout/{flyout_context.js → flyout_menu_context.js} +2 -7
  170. package/test-env/components/flyout/flyout_parent_context.js +43 -0
  171. package/test-env/components/flyout/flyout_resizable.js +35 -139
  172. package/test-env/components/flyout/hooks.js +30 -0
  173. package/test-env/components/flyout/index.js +21 -14
  174. package/test-env/components/flyout/manager/actions.js +159 -0
  175. package/test-env/components/flyout/manager/activity_stage.js +101 -0
  176. package/test-env/components/flyout/manager/const.js +62 -0
  177. package/test-env/components/flyout/manager/context.js +41 -0
  178. package/test-env/components/flyout/manager/flyout_child.js +76 -0
  179. package/test-env/components/flyout/manager/flyout_main.js +66 -0
  180. package/test-env/components/flyout/manager/flyout_main.styles.js +31 -0
  181. package/test-env/components/flyout/manager/flyout_managed.js +231 -0
  182. package/test-env/components/flyout/manager/flyout_managed.styles.js +74 -0
  183. package/test-env/components/flyout/manager/hooks.js +131 -0
  184. package/test-env/components/flyout/manager/index.js +168 -0
  185. package/test-env/components/flyout/manager/layout_mode.js +169 -0
  186. package/test-env/components/flyout/manager/provider.js +61 -0
  187. package/test-env/components/flyout/manager/reducer.js +318 -0
  188. package/test-env/components/flyout/manager/selectors.js +122 -0
  189. package/test-env/components/flyout/manager/store.js +120 -0
  190. package/test-env/components/flyout/manager/types.js +5 -0
  191. package/test-env/components/flyout/manager/validation.js +94 -0
  192. package/test-env/components/flyout/types.js +5 -0
  193. package/test-env/components/flyout/use_flyout_resizable.js +151 -0
  194. package/test-env/components/flyout/use_flyout_z_index.js +51 -0
  195. package/test-env/components/overlay_mask/overlay_mask.js +12 -2
  196. package/test-env/components/overlay_mask/overlay_mask.styles.js +11 -4
  197. package/test-env/components/provider/provider.js +2 -1
  198. package/es/components/flyout/flyout_child.js +0 -223
  199. package/es/components/flyout/flyout_child.styles.js +0 -32
  200. package/es/components/flyout/flyout_child_manager.js +0 -114
  201. package/es/components/flyout/sessions/flyout_provider.js +0 -95
  202. package/es/components/flyout/sessions/flyout_reducer.js +0 -195
  203. package/es/components/flyout/sessions/index.js +0 -10
  204. package/es/components/flyout/sessions/use_eui_flyout.js +0 -82
  205. package/lib/components/flyout/flyout_child.js +0 -231
  206. package/lib/components/flyout/flyout_child.styles.js +0 -38
  207. package/lib/components/flyout/flyout_child_manager.js +0 -122
  208. package/lib/components/flyout/sessions/flyout_provider.js +0 -102
  209. package/lib/components/flyout/sessions/flyout_reducer.js +0 -202
  210. package/lib/components/flyout/sessions/index.js +0 -25
  211. package/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
  212. package/optimize/es/components/flyout/flyout_child.js +0 -178
  213. package/optimize/es/components/flyout/flyout_child.styles.js +0 -32
  214. package/optimize/es/components/flyout/flyout_child_manager.js +0 -100
  215. package/optimize/es/components/flyout/sessions/flyout_provider.js +0 -90
  216. package/optimize/es/components/flyout/sessions/flyout_reducer.js +0 -187
  217. package/optimize/es/components/flyout/sessions/index.js +0 -10
  218. package/optimize/es/components/flyout/sessions/use_eui_flyout.js +0 -82
  219. package/optimize/lib/components/flyout/flyout_child.js +0 -186
  220. package/optimize/lib/components/flyout/flyout_child.styles.js +0 -38
  221. package/optimize/lib/components/flyout/flyout_child_manager.js +0 -110
  222. package/optimize/lib/components/flyout/sessions/flyout_provider.js +0 -100
  223. package/optimize/lib/components/flyout/sessions/flyout_reducer.js +0 -195
  224. package/optimize/lib/components/flyout/sessions/index.js +0 -25
  225. package/optimize/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
  226. package/test-env/components/flyout/flyout_child.js +0 -230
  227. package/test-env/components/flyout/flyout_child.styles.js +0 -38
  228. package/test-env/components/flyout/flyout_child_manager.js +0 -119
  229. package/test-env/components/flyout/sessions/flyout_provider.js +0 -100
  230. package/test-env/components/flyout/sessions/flyout_reducer.js +0 -195
  231. package/test-env/components/flyout/sessions/index.js +0 -25
  232. package/test-env/components/flyout/sessions/use_eui_flyout.js +0 -88
  233. /package/es/components/flyout/{sessions → manager}/types.js +0 -0
  234. /package/{optimize/es/components/flyout/sessions → es/components/flyout}/types.js +0 -0
  235. /package/lib/components/flyout/{sessions → manager}/types.js +0 -0
  236. /package/{optimize/lib/components/flyout/sessions → lib/components/flyout}/types.js +0 -0
  237. /package/{test-env/components/flyout/sessions → optimize/lib/components/flyout/manager}/types.js +0 -0
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useEuiFlyoutResizable = void 0;
7
+ var _react = require("react");
8
+ var _services = require("../../services");
9
+ var _helpers = require("../resizable_container/helpers");
10
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
11
+ 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."); }
12
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
13
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
14
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
15
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } /*
16
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
17
+ * or more contributor license agreements. Licensed under the Elastic License
18
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
19
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
20
+ * Side Public License, v 1.
21
+ */
22
+ /**
23
+ * @internal
24
+ */
25
+ var useEuiFlyoutResizable = exports.useEuiFlyoutResizable = function useEuiFlyoutResizable(_ref) {
26
+ var enabled = _ref.enabled,
27
+ _ref$minWidth = _ref.minWidth,
28
+ minWidth = _ref$minWidth === void 0 ? 0 : _ref$minWidth,
29
+ maxWidth = _ref.maxWidth,
30
+ onResize = _ref.onResize,
31
+ side = _ref.side,
32
+ _size = _ref.size;
33
+ var getFlyoutMinMaxWidth = (0, _react.useCallback)(function (width) {
34
+ return Math.min(Math.max(width, minWidth), maxWidth || Infinity, window.innerWidth - 20 // Leave some offset
35
+ );
36
+ }, [minWidth, maxWidth]);
37
+ var _useState = (0, _react.useState)(0),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ flyoutWidth = _useState2[0],
40
+ setFlyoutWidth = _useState2[1];
41
+ var _useState3 = (0, _react.useState)(false),
42
+ _useState4 = _slicedToArray(_useState3, 2),
43
+ callOnResize = _useState4[0],
44
+ setCallOnResize = _useState4[1];
45
+
46
+ // Must use state for the flyout ref in order for the useEffect to be correctly called after render
47
+ var _useState5 = (0, _react.useState)(null),
48
+ _useState6 = _slicedToArray(_useState5, 2),
49
+ flyoutRef = _useState6[0],
50
+ setFlyoutRef = _useState6[1];
51
+ (0, _react.useEffect)(function () {
52
+ if (!enabled) return; // Don't measure when resizing is disabled
53
+ if (!flyoutWidth && flyoutRef) {
54
+ setCallOnResize(false); // Don't call `onResize` for non-user width changes
55
+ setFlyoutWidth(getFlyoutMinMaxWidth(flyoutRef.offsetWidth));
56
+ }
57
+ }, [flyoutWidth, flyoutRef, getFlyoutMinMaxWidth, enabled]);
58
+
59
+ // Update flyout width when consumers pass in a new `size`
60
+ (0, _react.useEffect)(function () {
61
+ if (!enabled) return; // Don't update width when resizing is disabled
62
+ setCallOnResize(false);
63
+ // For string `size`s, resetting flyoutWidth to 0 will trigger the above useEffect's recalculation
64
+ setFlyoutWidth(typeof _size === 'number' ? getFlyoutMinMaxWidth(_size) : 0);
65
+ }, [_size, getFlyoutMinMaxWidth, enabled]);
66
+
67
+ // Initial numbers to calculate from, on resize drag start
68
+ var initialWidth = (0, _react.useRef)(0);
69
+ var initialMouseX = (0, _react.useRef)(0);
70
+
71
+ // Account for flyout side and logical property direction
72
+ var direction = (0, _react.useMemo)(function () {
73
+ var modifier = side === 'right' ? -1 : 1;
74
+ if (flyoutRef) {
75
+ var languageDirection = window.getComputedStyle(flyoutRef).direction;
76
+ if (languageDirection === 'rtl') modifier *= -1;
77
+ }
78
+ return modifier;
79
+ }, [side, flyoutRef]);
80
+ var onMouseMove = (0, _react.useCallback)(function (e) {
81
+ if (!enabled) {
82
+ return;
83
+ }
84
+ var mouseOffset = (0, _helpers.getPosition)(e, true) - initialMouseX.current;
85
+ var changedFlyoutWidth = initialWidth.current + mouseOffset * direction;
86
+ setFlyoutWidth(getFlyoutMinMaxWidth(changedFlyoutWidth));
87
+ }, [getFlyoutMinMaxWidth, direction, enabled]);
88
+ var onMouseUp = (0, _react.useCallback)(function () {
89
+ setCallOnResize(true);
90
+ if (!enabled) {
91
+ return;
92
+ }
93
+ initialMouseX.current = 0;
94
+ window.removeEventListener('mousemove', onMouseMove);
95
+ window.removeEventListener('mouseup', onMouseUp);
96
+ window.removeEventListener('touchmove', onMouseMove);
97
+ window.removeEventListener('touchend', onMouseUp);
98
+ }, [onMouseMove, enabled]);
99
+ var onMouseDown = (0, _react.useCallback)(function (e) {
100
+ var _flyoutRef$offsetWidt;
101
+ setCallOnResize(false);
102
+ if (!enabled) {
103
+ return;
104
+ }
105
+ initialMouseX.current = (0, _helpers.getPosition)(e, true);
106
+ initialWidth.current = (_flyoutRef$offsetWidt = flyoutRef === null || flyoutRef === void 0 ? void 0 : flyoutRef.offsetWidth) !== null && _flyoutRef$offsetWidt !== void 0 ? _flyoutRef$offsetWidt : 0;
107
+
108
+ // Window event listeners instead of React events are used
109
+ // in case the user's mouse leaves the component
110
+ window.addEventListener('mousemove', onMouseMove);
111
+ window.addEventListener('mouseup', onMouseUp);
112
+ window.addEventListener('touchmove', onMouseMove);
113
+ window.addEventListener('touchend', onMouseUp);
114
+ }, [flyoutRef, onMouseMove, onMouseUp, enabled]);
115
+ var onKeyDown = (0, _react.useCallback)(function (e) {
116
+ setCallOnResize(true);
117
+ if (!enabled) {
118
+ return;
119
+ }
120
+ var KEYBOARD_OFFSET = 10;
121
+ switch (e.key) {
122
+ case _services.keys.ARROW_RIGHT:
123
+ e.preventDefault(); // Safari+VO will screen reader navigate off the button otherwise
124
+ setFlyoutWidth(function (flyoutWidth) {
125
+ return getFlyoutMinMaxWidth(flyoutWidth + KEYBOARD_OFFSET * direction);
126
+ });
127
+ break;
128
+ case _services.keys.ARROW_LEFT:
129
+ e.preventDefault(); // Safari+VO will screen reader navigate off the button otherwise
130
+ setFlyoutWidth(function (flyoutWidth) {
131
+ return getFlyoutMinMaxWidth(flyoutWidth - KEYBOARD_OFFSET * direction);
132
+ });
133
+ }
134
+ }, [getFlyoutMinMaxWidth, direction, enabled]);
135
+
136
+ // To reduce unnecessary calls, only fire onResize callback:
137
+ // 1. After initial mount / on user width change events only
138
+ // 2. If not currently mouse dragging
139
+ (0, _react.useEffect)(function () {
140
+ if (callOnResize && enabled) {
141
+ onResize === null || onResize === void 0 || onResize(flyoutWidth);
142
+ }
143
+ }, [onResize, callOnResize, flyoutWidth, enabled]);
144
+ var size = (0, _react.useMemo)(function () {
145
+ return enabled ? flyoutWidth || _size : _size;
146
+ }, [enabled, flyoutWidth, _size]);
147
+ return {
148
+ onKeyDown: onKeyDown,
149
+ onMouseDown: onMouseDown,
150
+ setFlyoutRef: setFlyoutRef,
151
+ size: size
152
+ };
153
+ };
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useEuiFlyoutZIndex = void 0;
7
+ var _services = require("../../services");
8
+ /*
9
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
10
+ * or more contributor license agreements. Licensed under the Elastic License
11
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
12
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
13
+ * Side Public License, v 1.
14
+ */
15
+
16
+ /**
17
+ * @internal
18
+ */
19
+
20
+ var calculateZIndex = function calculateZIndex(baseLevel, isChildFlyout) {
21
+ var level = Number(baseLevel);
22
+ return {
23
+ // Child flyouts slide in from below and need to have a lower z-index
24
+ flyoutZIndex: isChildFlyout ? level - 1 : level,
25
+ maskZIndex: level - 2
26
+ };
27
+ };
28
+
29
+ /**
30
+ * @internal
31
+ */
32
+ var useEuiFlyoutZIndex = exports.useEuiFlyoutZIndex = function useEuiFlyoutZIndex(_ref) {
33
+ var maskProps = _ref.maskProps,
34
+ isPushed = _ref.isPushed,
35
+ managedFlyoutIndex = _ref.managedFlyoutIndex,
36
+ isChildFlyout = _ref.isChildFlyout;
37
+ var _useEuiTheme = (0, _services.useEuiTheme)(),
38
+ euiTheme = _useEuiTheme.euiTheme;
39
+ var baseLevel = Number(euiTheme.levels.flyout);
40
+
41
+ // The default headerZindexLocation for EuiFlyout is "below"
42
+ // which is different from what EuiOverlayMask fallbacks to - see
43
+ // _flyout_overlay.tsx.
44
+ // We set z-index to mask level only when explicitly overridden
45
+ // via the maskProps prop
46
+ if (!isPushed && (maskProps === null || maskProps === void 0 ? void 0 : maskProps.headerZindexLocation) === 'above') {
47
+ baseLevel = Number(euiTheme.levels.mask);
48
+ }
49
+ baseLevel += managedFlyoutIndex;
50
+ return calculateZIndex(baseLevel, isChildFlyout);
51
+ };
@@ -44,13 +44,17 @@ var EuiOverlayMask = exports.EuiOverlayMask = function EuiOverlayMask(_ref) {
44
44
  headerZindexLocation = _ref$headerZindexLoca === void 0 ? 'above' : _ref$headerZindexLoca,
45
45
  maskRef = _ref.maskRef,
46
46
  rest = _objectWithoutProperties(_ref, _excluded);
47
+ var hasRendered = (0, _react.useRef)(false);
47
48
  var _useState = (0, _react.useState)(null),
48
49
  _useState2 = _slicedToArray(_useState, 2),
49
50
  overlayMaskNode = _useState2[0],
50
51
  setOverlayMaskNode = _useState2[1];
51
52
  var combinedMaskRef = (0, _services.useCombinedRefs)([setOverlayMaskNode, maskRef]);
53
+ var handleAnimationEnd = (0, _react.useCallback)(function () {
54
+ hasRendered.current = true;
55
+ }, []);
52
56
  var styles = (0, _services.useEuiMemoizedStyles)(_overlay_mask.euiOverlayMaskStyles);
53
- var cssStyles = (0, _css.cx)([styles.euiOverlayMask, styles["".concat(headerZindexLocation, "Header")]]);
57
+ var cssStyles = (0, _css.cx)([styles.euiOverlayMask, styles["".concat(headerZindexLocation, "Header")], hasRendered.current && styles.noAnimation]);
54
58
  (0, _react.useEffect)(function () {
55
59
  if (!overlayMaskNode) return;
56
60
  (0, _common.keysOf)(rest).forEach(function (key) {
@@ -61,7 +65,13 @@ var EuiOverlayMask = exports.EuiOverlayMask = function EuiOverlayMask(_ref) {
61
65
  overlayMaskNode.setAttribute(key, rest[key]);
62
66
  }
63
67
  });
64
- }, [overlayMaskNode]); // eslint-disable-line react-hooks/exhaustive-deps
68
+ overlayMaskNode.addEventListener('animationend', handleAnimationEnd, {
69
+ once: true
70
+ });
71
+ return function () {
72
+ overlayMaskNode.removeEventListener('animationend', handleAnimationEnd);
73
+ };
74
+ }, [overlayMaskNode, handleAnimationEnd]); // eslint-disable-line react-hooks/exhaustive-deps
65
75
 
66
76
  // Note: Use `classList.add/remove` instead of setting the entire `className`
67
77
  // so as not to override any existing classes set by `EuiPortal`
@@ -6,20 +6,27 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.euiOverlayMaskStyles = void 0;
7
7
  var _css = require("@emotion/css");
8
8
  var _global_styling = require("../../global_styling");
9
- /*
9
+ 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)."; } /*
10
10
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
11
11
  * or more contributor license agreements. Licensed under the Elastic License
12
12
  * 2.0 and the Server Side Public License, v 1; you may not use this file except
13
13
  * in compliance with, at your election, the Elastic License 2.0 or the Server
14
14
  * Side Public License, v 1.
15
15
  */
16
-
17
16
  var euiOverlayMaskStyles = exports.euiOverlayMaskStyles = function euiOverlayMaskStyles(_ref) {
18
17
  var euiTheme = _ref.euiTheme,
19
18
  highContrastMode = _ref.highContrastMode;
20
19
  return {
21
- euiOverlayMask: /*#__PURE__*/(0, _css.css)("position:fixed;", (0, _global_styling.logicalCSS)('top', 0), " ", (0, _global_styling.logicalCSS)('left', 0), " ", (0, _global_styling.logicalCSS)('right', 0), " ", (0, _global_styling.logicalCSS)('bottom', 0), " display:flex;align-items:center;justify-content:center;animation:", _global_styling.euiAnimFadeIn, " ", euiTheme.animation.fast, " ease-in;background:", highContrastMode ? euiTheme.components.overlayMaskBackgroundHighContrast : euiTheme.components.overlayMaskBackground, ";;label:euiOverlayMask;"),
20
+ euiOverlayMask: /*#__PURE__*/(0, _css.css)("position:fixed;", (0, _global_styling.logicalCSS)('top', 0), " ", (0, _global_styling.logicalCSS)('left', 0), " ", (0, _global_styling.logicalCSS)('right', 0), " ", (0, _global_styling.logicalCSS)('bottom', 0), " display:flex;align-items:center;justify-content:center;animation:", _global_styling.euiAnimFadeIn, " ", euiTheme.animation.fast, " ease-in forwards;animation-iteration-count:1;background:", highContrastMode ? euiTheme.components.overlayMaskBackgroundHighContrast : euiTheme.components.overlayMaskBackground, ";;label:euiOverlayMask;"),
22
21
  aboveHeader: /*#__PURE__*/(0, _css.css)("z-index:", euiTheme.levels.mask, ";;label:aboveHeader;"),
23
- belowHeader: /*#__PURE__*/(0, _css.css)("z-index:", euiTheme.levels.maskBelowHeader, ";", (0, _global_styling.logicalCSS)('top', 'var(--euiFixedHeadersOffset, 0)'), ";;label:belowHeader;")
22
+ belowHeader: /*#__PURE__*/(0, _css.css)("z-index:", euiTheme.levels.maskBelowHeader, ";", (0, _global_styling.logicalCSS)('top', 'var(--euiFixedHeadersOffset, 0)'), ";;label:belowHeader;"),
23
+ noAnimation: /*#__PURE__*/(0, _css.css)(process.env.NODE_ENV === "production" ? {
24
+ name: "lqr4xc-noAnimation",
25
+ styles: "animation:none;label:noAnimation;"
26
+ } : {
27
+ name: "lqr4xc-noAnimation",
28
+ styles: "animation:none;label:noAnimation;",
29
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
30
+ })
24
31
  };
25
32
  };
@@ -15,6 +15,7 @@ var _cache = require("./cache");
15
15
  var _system_defaults = require("./system_defaults");
16
16
  var _nested = require("./nested");
17
17
  var _component_defaults = require("./component_defaults");
18
+ var _manager = require("../flyout/manager");
18
19
  var _react2 = require("@emotion/react");
19
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
21
  /*
@@ -86,5 +87,5 @@ var EuiProvider = exports.EuiProvider = function EuiProvider(_ref) {
86
87
  children: Utilities && (0, _react2.jsx)(Utilities, null)
87
88
  })), (0, _react2.jsx)(_component_defaults.EuiComponentDefaultsProvider, {
88
89
  componentDefaults: componentDefaults
89
- }, children)))));
90
+ }, (0, _react2.jsx)(_manager.EuiFlyoutManager, null, children))))));
90
91
  };
@@ -84,6 +84,7 @@ export var EuiCollapsibleNav = function EuiCollapsibleNav(_ref) {
84
84
  });
85
85
  var flyout = ___EmotionJSX(EuiFlyout, _extends({
86
86
  id: flyoutID,
87
+ session: "never",
87
88
  css: cssStyles,
88
89
  className: classes
89
90
  // Flyout props we set different defaults for
@@ -144,6 +144,7 @@ var _EuiCollapsibleNavBeta = function _EuiCollapsibleNavBeta(_ref) {
144
144
  }, rest, {
145
145
  // EuiCollapsibleNav is significantly less permissive than EuiFlyout
146
146
  id: flyoutID,
147
+ session: "never",
147
148
  css: cssStyles,
148
149
  className: classes,
149
150
  size: width,
@@ -0,0 +1,52 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
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 React, { useMemo } from 'react';
11
+ import { css, cx } from '@emotion/css';
12
+ import { EuiOverlayMask } from '../overlay_mask';
13
+ import { EuiPortal } from '../portal';
14
+ import { jsx as ___EmotionJSX } from "@emotion/react";
15
+ var getEuiFlyoutOverlayStyles = function getEuiFlyoutOverlayStyles(zIndex) {
16
+ /*
17
+ This needs to have !important to override the default EuiOverlayMask
18
+ z-index based on the headerZindexLocation prop. Using the style attribute
19
+ doesn't work since EuiOverlayMask requires a string style prop that
20
+ causes React errors in the test environment.
21
+ */
22
+ return /*#__PURE__*/css("z-index:", zIndex, "!important;;label:getEuiFlyoutOverlayStyles;");
23
+ };
24
+
25
+ /**
26
+ * Light wrapper for conditionally rendering portals or overlay masks:
27
+ * - If ownFocus is set, wrap with an overlay and allow the user to click it to close it.
28
+ * - Otherwise still wrap within an EuiPortal so it appends to the bottom of the window.
29
+ * Push flyouts have no overlay OR portal behavior.
30
+ *
31
+ * @internal
32
+ */
33
+ export var EuiFlyoutOverlay = function EuiFlyoutOverlay(_ref) {
34
+ var children = _ref.children,
35
+ isPushed = _ref.isPushed,
36
+ maskProps = _ref.maskProps,
37
+ hasOverlayMask = _ref.hasOverlayMask,
38
+ maskZIndex = _ref.maskZIndex;
39
+ var styles = useMemo(function () {
40
+ return getEuiFlyoutOverlayStyles(maskZIndex);
41
+ }, [maskZIndex]);
42
+ var content = children;
43
+ if (!isPushed || hasOverlayMask) {
44
+ content = ___EmotionJSX(EuiPortal, null, content);
45
+ }
46
+ var classes = cx(maskProps === null || maskProps === void 0 ? void 0 : maskProps.className, styles);
47
+ return ___EmotionJSX(React.Fragment, null, hasOverlayMask && ___EmotionJSX(EuiOverlayMask, _extends({
48
+ headerZindexLocation: "below"
49
+ }, maskProps, {
50
+ className: classes
51
+ })), content);
52
+ };
@@ -0,0 +1,31 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["type", "side", "ownFocus", "isPushed"];
4
+ /*
5
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
6
+ * or more contributor license agreements. Licensed under the Elastic License
7
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
8
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
9
+ * Side Public License, v 1.
10
+ */
11
+
12
+ import React from 'react';
13
+ import { useEuiMemoizedStyles } from '../../services';
14
+ import { EuiResizableButton } from '../resizable_container';
15
+ import { euiFlyoutResizeButtonStyles } from './_flyout_resize_button.styles';
16
+ import { jsx as ___EmotionJSX } from "@emotion/react";
17
+ export var EuiFlyoutResizeButton = function EuiFlyoutResizeButton(_ref) {
18
+ var type = _ref.type,
19
+ side = _ref.side,
20
+ ownFocus = _ref.ownFocus,
21
+ isPushed = _ref.isPushed,
22
+ resizableButtonProps = _objectWithoutProperties(_ref, _excluded);
23
+ var hasOverlay = ownFocus && type === 'overlay';
24
+ var styles = useEuiMemoizedStyles(euiFlyoutResizeButtonStyles);
25
+ var cssStyles = [styles.root, styles[type][side], !hasOverlay && styles.noOverlay.root, !hasOverlay && styles.noOverlay[side]];
26
+ return ___EmotionJSX(EuiResizableButton, _extends({
27
+ isHorizontal: true,
28
+ indicator: "border",
29
+ css: cssStyles
30
+ }, resizableButtonProps));
31
+ };
@@ -26,25 +26,25 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
26
26
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
27
27
  };
28
28
  var _ref3 = process.env.NODE_ENV === "production" ? {
29
- name: "1cw850z-noOverlay",
30
- styles: "margin-inline:0;label:noOverlay;"
29
+ name: "10l1ho9-root",
30
+ styles: "margin-inline:0;label:root;"
31
31
  } : {
32
- name: "1cw850z-noOverlay",
33
- styles: "margin-inline:0;label:noOverlay;",
32
+ name: "10l1ho9-root",
33
+ styles: "margin-inline:0;label:root;",
34
34
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
35
35
  };
36
36
  var _ref4 = process.env.NODE_ENV === "production" ? {
37
- name: "1gfwqnd-euiFlyoutResizableButton",
38
- styles: "position:absolute;label:euiFlyoutResizableButton;"
37
+ name: "1yicr0l-root",
38
+ styles: "position:absolute;label:root;"
39
39
  } : {
40
- name: "1gfwqnd-euiFlyoutResizableButton",
41
- styles: "position:absolute;label:euiFlyoutResizableButton;",
40
+ name: "1yicr0l-root",
41
+ styles: "position:absolute;label:root;",
42
42
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
43
43
  };
44
- export var euiFlyoutResizableButtonStyles = function euiFlyoutResizableButtonStyles(_ref5) {
44
+ export var euiFlyoutResizeButtonStyles = function euiFlyoutResizeButtonStyles(_ref5) {
45
45
  var euiTheme = _ref5.euiTheme;
46
46
  return {
47
- euiFlyoutResizableButton: _ref4,
47
+ root: _ref4,
48
48
  overlay: {
49
49
  left: /*#__PURE__*/css(logicalCSS('right', 0), ";;label:left;"),
50
50
  right: /*#__PURE__*/css(logicalCSS('left', 0), ";;label:right;")
@@ -54,7 +54,7 @@ export var euiFlyoutResizableButtonStyles = function euiFlyoutResizableButtonSty
54
54
  right: /*#__PURE__*/css(logicalCSS('left', "-".concat(euiTheme.border.width.thick)), ";;label:right;")
55
55
  },
56
56
  noOverlay: {
57
- noOverlay: _ref3,
57
+ root: _ref3,
58
58
  left: _ref2,
59
59
  right: _ref
60
60
  }
@@ -0,0 +1,42 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ /** Allowed flyout render types. */
10
+ export var FLYOUT_TYPES = ['push', 'overlay'];
11
+ /** Type representing a supported flyout render type. */
12
+
13
+ /** Allowed flyout attachment sides. */
14
+ export var FLYOUT_SIDES = ['left', 'right'];
15
+ /** Type representing a supported flyout side. */
16
+
17
+ /** Allowed named flyout sizes used by the manager. */
18
+ export var FLYOUT_SIZES = ['s', 'm', 'l', 'fill'];
19
+ /** Type representing a supported named flyout size. */
20
+
21
+ /** Allowed padding sizes for flyout content. */
22
+ export var FLYOUT_PADDING_SIZES = ['none', 's', 'm', 'l'];
23
+ /** Type representing a supported flyout padding size. */
24
+
25
+ /** Default minimum breakpoint at which push-type flyouts begin to push content. */
26
+ export var DEFAULT_PUSH_MIN_BREAKPOINT = 'l';
27
+ /** Default flyout type when none is provided. */
28
+ export var DEFAULT_TYPE = 'overlay';
29
+ /** Default side where flyouts anchor when none is provided. */
30
+ export var DEFAULT_SIDE = 'right';
31
+ /** Default named flyout size. */
32
+ export var DEFAULT_SIZE = 'm';
33
+ /** Default padding size inside flyouts. */
34
+ export var DEFAULT_PADDING_SIZE = 'l';
35
+
36
+ /**
37
+ * Custom type checker for named flyout sizes since the prop
38
+ * `size` can also be CSSProperties['width'] (string | number)
39
+ */
40
+ export function isEuiFlyoutSizeNamed(value) {
41
+ return FLYOUT_SIZES.includes(value);
42
+ }