@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,149 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(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; } }
4
+ 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; }
5
+ 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; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
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, useMemo, useRef, useState } from 'react';
16
+ import { keys } from '../../services';
17
+ import { getPosition } from '../resizable_container/helpers';
18
+ /**
19
+ * @internal
20
+ */
21
+ export var useEuiFlyoutResizable = function useEuiFlyoutResizable(_ref) {
22
+ var enabled = _ref.enabled,
23
+ _ref$minWidth = _ref.minWidth,
24
+ minWidth = _ref$minWidth === void 0 ? 0 : _ref$minWidth,
25
+ maxWidth = _ref.maxWidth,
26
+ onResize = _ref.onResize,
27
+ side = _ref.side,
28
+ _size = _ref.size;
29
+ var getFlyoutMinMaxWidth = useCallback(function (width) {
30
+ return Math.min(Math.max(width, minWidth), maxWidth || Infinity, window.innerWidth - 20 // Leave some offset
31
+ );
32
+ }, [minWidth, maxWidth]);
33
+ var _useState = useState(0),
34
+ _useState2 = _slicedToArray(_useState, 2),
35
+ flyoutWidth = _useState2[0],
36
+ setFlyoutWidth = _useState2[1];
37
+ var _useState3 = useState(false),
38
+ _useState4 = _slicedToArray(_useState3, 2),
39
+ callOnResize = _useState4[0],
40
+ setCallOnResize = _useState4[1];
41
+
42
+ // Must use state for the flyout ref in order for the useEffect to be correctly called after render
43
+ var _useState5 = useState(null),
44
+ _useState6 = _slicedToArray(_useState5, 2),
45
+ flyoutRef = _useState6[0],
46
+ setFlyoutRef = _useState6[1];
47
+ useEffect(function () {
48
+ if (!enabled) return; // Don't measure when resizing is disabled
49
+ if (!flyoutWidth && flyoutRef) {
50
+ setCallOnResize(false); // Don't call `onResize` for non-user width changes
51
+ setFlyoutWidth(getFlyoutMinMaxWidth(flyoutRef.offsetWidth));
52
+ }
53
+ }, [flyoutWidth, flyoutRef, getFlyoutMinMaxWidth, enabled]);
54
+
55
+ // Update flyout width when consumers pass in a new `size`
56
+ useEffect(function () {
57
+ if (!enabled) return; // Don't update width when resizing is disabled
58
+ setCallOnResize(false);
59
+ // For string `size`s, resetting flyoutWidth to 0 will trigger the above useEffect's recalculation
60
+ setFlyoutWidth(typeof _size === 'number' ? getFlyoutMinMaxWidth(_size) : 0);
61
+ }, [_size, getFlyoutMinMaxWidth, enabled]);
62
+
63
+ // Initial numbers to calculate from, on resize drag start
64
+ var initialWidth = useRef(0);
65
+ var initialMouseX = useRef(0);
66
+
67
+ // Account for flyout side and logical property direction
68
+ var direction = useMemo(function () {
69
+ var modifier = side === 'right' ? -1 : 1;
70
+ if (flyoutRef) {
71
+ var languageDirection = window.getComputedStyle(flyoutRef).direction;
72
+ if (languageDirection === 'rtl') modifier *= -1;
73
+ }
74
+ return modifier;
75
+ }, [side, flyoutRef]);
76
+ var onMouseMove = useCallback(function (e) {
77
+ if (!enabled) {
78
+ return;
79
+ }
80
+ var mouseOffset = getPosition(e, true) - initialMouseX.current;
81
+ var changedFlyoutWidth = initialWidth.current + mouseOffset * direction;
82
+ setFlyoutWidth(getFlyoutMinMaxWidth(changedFlyoutWidth));
83
+ }, [getFlyoutMinMaxWidth, direction, enabled]);
84
+ var onMouseUp = useCallback(function () {
85
+ setCallOnResize(true);
86
+ if (!enabled) {
87
+ return;
88
+ }
89
+ initialMouseX.current = 0;
90
+ window.removeEventListener('mousemove', onMouseMove);
91
+ window.removeEventListener('mouseup', onMouseUp);
92
+ window.removeEventListener('touchmove', onMouseMove);
93
+ window.removeEventListener('touchend', onMouseUp);
94
+ }, [onMouseMove, enabled]);
95
+ var onMouseDown = useCallback(function (e) {
96
+ var _flyoutRef$offsetWidt;
97
+ setCallOnResize(false);
98
+ if (!enabled) {
99
+ return;
100
+ }
101
+ initialMouseX.current = getPosition(e, true);
102
+ initialWidth.current = (_flyoutRef$offsetWidt = flyoutRef === null || flyoutRef === void 0 ? void 0 : flyoutRef.offsetWidth) !== null && _flyoutRef$offsetWidt !== void 0 ? _flyoutRef$offsetWidt : 0;
103
+
104
+ // Window event listeners instead of React events are used
105
+ // in case the user's mouse leaves the component
106
+ window.addEventListener('mousemove', onMouseMove);
107
+ window.addEventListener('mouseup', onMouseUp);
108
+ window.addEventListener('touchmove', onMouseMove);
109
+ window.addEventListener('touchend', onMouseUp);
110
+ }, [flyoutRef, onMouseMove, onMouseUp, enabled]);
111
+ var onKeyDown = useCallback(function (e) {
112
+ setCallOnResize(true);
113
+ if (!enabled) {
114
+ return;
115
+ }
116
+ var KEYBOARD_OFFSET = 10;
117
+ switch (e.key) {
118
+ case keys.ARROW_RIGHT:
119
+ e.preventDefault(); // Safari+VO will screen reader navigate off the button otherwise
120
+ setFlyoutWidth(function (flyoutWidth) {
121
+ return getFlyoutMinMaxWidth(flyoutWidth + KEYBOARD_OFFSET * direction);
122
+ });
123
+ break;
124
+ case keys.ARROW_LEFT:
125
+ e.preventDefault(); // Safari+VO will screen reader navigate off the button otherwise
126
+ setFlyoutWidth(function (flyoutWidth) {
127
+ return getFlyoutMinMaxWidth(flyoutWidth - KEYBOARD_OFFSET * direction);
128
+ });
129
+ }
130
+ }, [getFlyoutMinMaxWidth, direction, enabled]);
131
+
132
+ // To reduce unnecessary calls, only fire onResize callback:
133
+ // 1. After initial mount / on user width change events only
134
+ // 2. If not currently mouse dragging
135
+ useEffect(function () {
136
+ if (callOnResize && enabled) {
137
+ onResize === null || onResize === void 0 || onResize(flyoutWidth);
138
+ }
139
+ }, [onResize, callOnResize, flyoutWidth, enabled]);
140
+ var size = useMemo(function () {
141
+ return enabled ? flyoutWidth || _size : _size;
142
+ }, [enabled, flyoutWidth, _size]);
143
+ return {
144
+ onKeyDown: onKeyDown,
145
+ onMouseDown: onMouseDown,
146
+ setFlyoutRef: setFlyoutRef,
147
+ size: size
148
+ };
149
+ };
@@ -0,0 +1,46 @@
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
+ import { useEuiTheme } from '../../services';
10
+
11
+ /**
12
+ * @internal
13
+ */
14
+
15
+ var calculateZIndex = function calculateZIndex(baseLevel, isChildFlyout) {
16
+ var level = Number(baseLevel);
17
+ return {
18
+ // Child flyouts slide in from below and need to have a lower z-index
19
+ flyoutZIndex: isChildFlyout ? level - 1 : level,
20
+ maskZIndex: level - 2
21
+ };
22
+ };
23
+
24
+ /**
25
+ * @internal
26
+ */
27
+ export var useEuiFlyoutZIndex = function useEuiFlyoutZIndex(_ref) {
28
+ var maskProps = _ref.maskProps,
29
+ isPushed = _ref.isPushed,
30
+ managedFlyoutIndex = _ref.managedFlyoutIndex,
31
+ isChildFlyout = _ref.isChildFlyout;
32
+ var _useEuiTheme = useEuiTheme(),
33
+ euiTheme = _useEuiTheme.euiTheme;
34
+ var baseLevel = Number(euiTheme.levels.flyout);
35
+
36
+ // The default headerZindexLocation for EuiFlyout is "below"
37
+ // which is different from what EuiOverlayMask fallbacks to - see
38
+ // _flyout_overlay.tsx.
39
+ // We set z-index to mask level only when explicitly overridden
40
+ // via the maskProps prop
41
+ if (!isPushed && (maskProps === null || maskProps === void 0 ? void 0 : maskProps.headerZindexLocation) === 'above') {
42
+ baseLevel = Number(euiTheme.levels.mask);
43
+ }
44
+ baseLevel += managedFlyoutIndex;
45
+ return calculateZIndex(baseLevel, isChildFlyout);
46
+ };
@@ -19,7 +19,7 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
19
19
  * Side Public License, v 1.
20
20
  */
21
21
 
22
- import React, { useEffect, useState } from 'react';
22
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
23
23
  import PropTypes from "prop-types";
24
24
  import { cx } from '@emotion/css';
25
25
  import { Global } from '@emotion/react';
@@ -36,13 +36,17 @@ export var EuiOverlayMask = function EuiOverlayMask(_ref) {
36
36
  headerZindexLocation = _ref$headerZindexLoca === void 0 ? 'above' : _ref$headerZindexLoca,
37
37
  maskRef = _ref.maskRef,
38
38
  rest = _objectWithoutProperties(_ref, _excluded);
39
+ var hasRendered = useRef(false);
39
40
  var _useState = useState(null),
40
41
  _useState2 = _slicedToArray(_useState, 2),
41
42
  overlayMaskNode = _useState2[0],
42
43
  setOverlayMaskNode = _useState2[1];
43
44
  var combinedMaskRef = useCombinedRefs([setOverlayMaskNode, maskRef]);
45
+ var handleAnimationEnd = useCallback(function () {
46
+ hasRendered.current = true;
47
+ }, []);
44
48
  var styles = useEuiMemoizedStyles(euiOverlayMaskStyles);
45
- var cssStyles = cx([styles.euiOverlayMask, styles["".concat(headerZindexLocation, "Header")]]);
49
+ var cssStyles = cx([styles.euiOverlayMask, styles["".concat(headerZindexLocation, "Header")], hasRendered.current && styles.noAnimation]);
46
50
  useEffect(function () {
47
51
  if (!overlayMaskNode) return;
48
52
  keysOf(rest).forEach(function (key) {
@@ -53,7 +57,13 @@ export var EuiOverlayMask = function EuiOverlayMask(_ref) {
53
57
  overlayMaskNode.setAttribute(key, rest[key]);
54
58
  }
55
59
  });
56
- }, [overlayMaskNode]); // eslint-disable-line react-hooks/exhaustive-deps
60
+ overlayMaskNode.addEventListener('animationend', handleAnimationEnd, {
61
+ once: true
62
+ });
63
+ return function () {
64
+ overlayMaskNode.removeEventListener('animationend', handleAnimationEnd);
65
+ };
66
+ }, [overlayMaskNode, handleAnimationEnd]); // eslint-disable-line react-hooks/exhaustive-deps
57
67
 
58
68
  // Note: Use `classList.add/remove` instead of setting the entire `className`
59
69
  // so as not to override any existing classes set by `EuiPortal`
@@ -1,3 +1,4 @@
1
+ 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)."; }
1
2
  /*
2
3
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
4
  * or more contributor license agreements. Licensed under the Elastic License
@@ -12,8 +13,16 @@ export var euiOverlayMaskStyles = function euiOverlayMaskStyles(_ref) {
12
13
  var euiTheme = _ref.euiTheme,
13
14
  highContrastMode = _ref.highContrastMode;
14
15
  return {
15
- euiOverlayMask: /*#__PURE__*/css("position:fixed;", logicalCSS('top', 0), " ", logicalCSS('left', 0), " ", logicalCSS('right', 0), " ", logicalCSS('bottom', 0), " display:flex;align-items:center;justify-content:center;animation:", euiAnimFadeIn, " ", euiTheme.animation.fast, " ease-in;background:", highContrastMode ? euiTheme.components.overlayMaskBackgroundHighContrast : euiTheme.components.overlayMaskBackground, ";;label:euiOverlayMask;"),
16
+ euiOverlayMask: /*#__PURE__*/css("position:fixed;", logicalCSS('top', 0), " ", logicalCSS('left', 0), " ", logicalCSS('right', 0), " ", logicalCSS('bottom', 0), " display:flex;align-items:center;justify-content:center;animation:", euiAnimFadeIn, " ", euiTheme.animation.fast, " ease-in forwards;animation-iteration-count:1;background:", highContrastMode ? euiTheme.components.overlayMaskBackgroundHighContrast : euiTheme.components.overlayMaskBackground, ";;label:euiOverlayMask;"),
16
17
  aboveHeader: /*#__PURE__*/css("z-index:", euiTheme.levels.mask, ";;label:aboveHeader;"),
17
- belowHeader: /*#__PURE__*/css("z-index:", euiTheme.levels.maskBelowHeader, ";", logicalCSS('top', 'var(--euiFixedHeadersOffset, 0)'), ";;label:belowHeader;")
18
+ belowHeader: /*#__PURE__*/css("z-index:", euiTheme.levels.maskBelowHeader, ";", logicalCSS('top', 'var(--euiFixedHeadersOffset, 0)'), ";;label:belowHeader;"),
19
+ noAnimation: /*#__PURE__*/css(process.env.NODE_ENV === "production" ? {
20
+ name: "lqr4xc-noAnimation",
21
+ styles: "animation:none;label:noAnimation;"
22
+ } : {
23
+ name: "lqr4xc-noAnimation",
24
+ styles: "animation:none;label:noAnimation;",
25
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
26
+ })
18
27
  };
19
28
  };
@@ -17,6 +17,7 @@ import { EuiCacheProvider } from './cache';
17
17
  import { EuiSystemDefaultsProvider } from './system_defaults';
18
18
  import { EuiProviderNestedCheck, useIsNestedEuiProvider } from './nested';
19
19
  import { EuiComponentDefaultsProvider } from './component_defaults';
20
+ import { EuiFlyoutManager } from '../flyout/manager';
20
21
  import { jsx as ___EmotionJSX } from "@emotion/react";
21
22
  var isEmotionCacheObject = function isEmotionCacheObject(obj) {
22
23
  return obj.hasOwnProperty('key');
@@ -79,5 +80,5 @@ export var EuiProvider = function EuiProvider(_ref) {
79
80
  children: Utilities && ___EmotionJSX(Utilities, null)
80
81
  })), ___EmotionJSX(EuiComponentDefaultsProvider, {
81
82
  componentDefaults: componentDefaults
82
- }, children)))));
83
+ }, ___EmotionJSX(EuiFlyoutManager, null, children))))));
83
84
  };