@elastic/eui 93.3.0 → 93.4.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 (286) hide show
  1. package/dist/eui_charts_theme.d.ts +9 -0
  2. package/dist/eui_charts_theme.js +56 -14
  3. package/dist/eui_charts_theme.js.map +1 -1
  4. package/es/components/breadcrumbs/_breadcrumb_content.js +362 -0
  5. package/es/components/breadcrumbs/_breadcrumb_content.styles.js +48 -0
  6. package/es/components/breadcrumbs/breadcrumb.js +10 -327
  7. package/es/components/breadcrumbs/breadcrumb.styles.js +5 -27
  8. package/es/components/breadcrumbs/breadcrumbs.js +4 -4
  9. package/es/components/breadcrumbs/types.js +1 -0
  10. package/es/components/button/button_group/button_group.js +16 -2
  11. package/es/components/button/button_group/button_group.styles.js +1 -1
  12. package/es/components/button/button_group/button_group_button.js +59 -5
  13. package/es/components/button/button_group/button_group_button.styles.js +39 -3
  14. package/es/components/datagrid/body/cell/data_grid_cell.js +97 -58
  15. package/es/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  16. package/es/components/datagrid/body/cell/data_grid_cell_popover.js +64 -56
  17. package/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +32 -31
  18. package/es/components/datagrid/body/cell/index.js +1 -1
  19. package/es/components/datagrid/body/data_grid_body.js +13 -0
  20. package/es/components/datagrid/body/data_grid_body_custom.js +52 -36
  21. package/es/components/datagrid/body/data_grid_body_virtualized.js +84 -56
  22. package/es/components/datagrid/body/data_grid_row_manager.js +6 -4
  23. package/es/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  24. package/es/components/datagrid/body/header/data_grid_control_header_cell.js +5 -4
  25. package/es/components/datagrid/body/header/data_grid_header_cell.js +73 -53
  26. package/es/components/datagrid/body/header/data_grid_header_row.js +15 -551
  27. package/es/components/datagrid/body/header/use_data_grid_header.js +7 -6
  28. package/es/components/datagrid/controls/column_selector.js +126 -123
  29. package/es/components/datagrid/controls/column_sorting.js +605 -103
  30. package/es/components/datagrid/controls/column_sorting_draggable.js +24 -22
  31. package/es/components/datagrid/controls/display_selector.js +109 -107
  32. package/es/components/datagrid/data_grid.a11y.js +13 -12
  33. package/es/components/datagrid/data_grid.js +45 -22
  34. package/es/components/datagrid/utils/col_widths.js +12 -8
  35. package/es/components/datagrid/utils/focus.js +10 -8
  36. package/es/components/datagrid/utils/grid_height_width.js +31 -30
  37. package/es/components/datagrid/utils/ref.js +1 -1
  38. package/es/components/datagrid/utils/row_heights.js +2 -2
  39. package/es/components/datagrid/utils/sorting.js +29 -27
  40. package/es/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  41. package/es/components/date_picker/super_date_picker/super_update_button.js +57 -29
  42. package/es/components/flex/flex_grid.js +22 -8
  43. package/es/components/flex/flex_grid.styles.js +13 -6
  44. package/es/components/flex/flex_group.js +10 -11
  45. package/es/components/flex/flex_item.js +9 -11
  46. package/es/components/flex/flex_item.styles.js +107 -122
  47. package/es/components/flyout/flyout.js +16 -18
  48. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  49. package/es/components/modal/confirm_modal.js +2 -1
  50. package/es/components/modal/modal.js +12 -3
  51. package/es/components/observer/resize_observer/resize_observer.js +15 -24
  52. package/es/components/spacer/spacer.js +2 -3
  53. package/es/components/toast/global_toast_list.js +70 -73
  54. package/es/components/toast/toast.js +27 -42
  55. package/es/components/toast/toast.styles.js +2 -17
  56. package/es/services/color/eui_palettes.js +21 -13
  57. package/es/services/color/index.js +1 -1
  58. package/es/services/hooks/index.js +1 -0
  59. package/es/services/hooks/useDeepEqual.js +23 -0
  60. package/es/services/index.js +1 -1
  61. package/eui.d.ts +2442 -2337
  62. package/i18ntokens.json +259 -259
  63. package/lib/components/breadcrumbs/_breadcrumb_content.js +372 -0
  64. package/lib/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  65. package/lib/components/breadcrumbs/breadcrumb.js +11 -331
  66. package/lib/components/breadcrumbs/breadcrumb.styles.js +5 -29
  67. package/lib/components/breadcrumbs/breadcrumbs.js +3 -3
  68. package/lib/components/breadcrumbs/types.js +5 -0
  69. package/lib/components/button/button_group/button_group.js +16 -2
  70. package/lib/components/button/button_group/button_group.styles.js +1 -1
  71. package/lib/components/button/button_group/button_group_button.js +59 -5
  72. package/lib/components/button/button_group/button_group_button.styles.js +45 -11
  73. package/lib/components/datagrid/body/cell/data_grid_cell.js +95 -57
  74. package/lib/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  75. package/lib/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  76. package/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +32 -31
  77. package/lib/components/datagrid/body/cell/index.js +2 -2
  78. package/lib/components/datagrid/body/data_grid_body.js +13 -0
  79. package/lib/components/datagrid/body/data_grid_body_custom.js +51 -35
  80. package/lib/components/datagrid/body/data_grid_body_virtualized.js +83 -55
  81. package/lib/components/datagrid/body/data_grid_row_manager.js +5 -3
  82. package/lib/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  83. package/lib/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  84. package/lib/components/datagrid/body/header/data_grid_header_cell.js +72 -52
  85. package/lib/components/datagrid/body/header/data_grid_header_row.js +14 -550
  86. package/lib/components/datagrid/body/header/use_data_grid_header.js +7 -6
  87. package/lib/components/datagrid/controls/column_selector.js +126 -123
  88. package/lib/components/datagrid/controls/column_sorting.js +615 -110
  89. package/lib/components/datagrid/controls/column_sorting_draggable.js +27 -22
  90. package/lib/components/datagrid/controls/display_selector.js +109 -107
  91. package/lib/components/datagrid/data_grid.a11y.js +13 -12
  92. package/lib/components/datagrid/data_grid.js +43 -20
  93. package/lib/components/datagrid/utils/col_widths.js +12 -8
  94. package/lib/components/datagrid/utils/focus.js +10 -8
  95. package/lib/components/datagrid/utils/grid_height_width.js +29 -28
  96. package/lib/components/datagrid/utils/ref.js +1 -1
  97. package/lib/components/datagrid/utils/row_heights.js +1 -1
  98. package/lib/components/datagrid/utils/sorting.js +31 -29
  99. package/lib/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  100. package/lib/components/date_picker/super_date_picker/super_update_button.js +57 -29
  101. package/lib/components/flex/flex_grid.js +23 -7
  102. package/lib/components/flex/flex_grid.styles.js +13 -6
  103. package/lib/components/flex/flex_group.js +10 -10
  104. package/lib/components/flex/flex_item.js +13 -13
  105. package/lib/components/flex/flex_item.styles.js +107 -122
  106. package/lib/components/flyout/flyout.js +16 -18
  107. package/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  108. package/lib/components/modal/confirm_modal.js +2 -1
  109. package/lib/components/modal/modal.js +12 -3
  110. package/lib/components/observer/resize_observer/resize_observer.js +15 -24
  111. package/lib/components/spacer/spacer.js +1 -2
  112. package/lib/components/toast/global_toast_list.js +68 -71
  113. package/lib/components/toast/toast.js +25 -40
  114. package/lib/components/toast/toast.styles.js +11 -25
  115. package/lib/services/color/eui_palettes.js +24 -14
  116. package/lib/services/color/index.js +14 -0
  117. package/lib/services/hooks/index.js +11 -0
  118. package/lib/services/hooks/useDeepEqual.js +30 -0
  119. package/lib/services/index.js +15 -1
  120. package/optimize/es/components/breadcrumbs/_breadcrumb_content.js +153 -0
  121. package/optimize/es/components/breadcrumbs/_breadcrumb_content.styles.js +48 -0
  122. package/optimize/es/components/breadcrumbs/breadcrumb.js +10 -110
  123. package/optimize/es/components/breadcrumbs/breadcrumb.styles.js +5 -27
  124. package/optimize/es/components/breadcrumbs/breadcrumbs.js +4 -4
  125. package/optimize/es/components/breadcrumbs/types.js +1 -0
  126. package/optimize/es/components/button/button_group/button_group.js +2 -2
  127. package/optimize/es/components/button/button_group/button_group.styles.js +1 -1
  128. package/optimize/es/components/button/button_group/button_group_button.js +36 -4
  129. package/optimize/es/components/button/button_group/button_group_button.styles.js +39 -3
  130. package/optimize/es/components/datagrid/body/cell/data_grid_cell.js +80 -55
  131. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  132. package/optimize/es/components/datagrid/body/cell/data_grid_cell_popover.js +64 -56
  133. package/optimize/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +32 -31
  134. package/optimize/es/components/datagrid/body/cell/index.js +1 -1
  135. package/optimize/es/components/datagrid/body/data_grid_body_custom.js +39 -36
  136. package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +69 -49
  137. package/optimize/es/components/datagrid/body/data_grid_row_manager.js +6 -4
  138. package/optimize/es/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  139. package/optimize/es/components/datagrid/body/header/data_grid_control_header_cell.js +4 -3
  140. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +65 -49
  141. package/optimize/es/components/datagrid/body/header/data_grid_header_row.js +15 -13
  142. package/optimize/es/components/datagrid/body/header/use_data_grid_header.js +7 -6
  143. package/optimize/es/components/datagrid/controls/column_selector.js +126 -123
  144. package/optimize/es/components/datagrid/controls/column_sorting.js +121 -103
  145. package/optimize/es/components/datagrid/controls/column_sorting_draggable.js +24 -22
  146. package/optimize/es/components/datagrid/controls/display_selector.js +109 -107
  147. package/optimize/es/components/datagrid/data_grid.a11y.js +13 -12
  148. package/optimize/es/components/datagrid/data_grid.js +45 -22
  149. package/optimize/es/components/datagrid/utils/col_widths.js +9 -5
  150. package/optimize/es/components/datagrid/utils/focus.js +10 -8
  151. package/optimize/es/components/datagrid/utils/grid_height_width.js +31 -30
  152. package/optimize/es/components/datagrid/utils/ref.js +1 -1
  153. package/optimize/es/components/datagrid/utils/row_heights.js +2 -2
  154. package/optimize/es/components/datagrid/utils/sorting.js +29 -27
  155. package/optimize/es/components/date_picker/super_date_picker/super_update_button.js +49 -29
  156. package/optimize/es/components/flex/flex_grid.js +19 -8
  157. package/optimize/es/components/flex/flex_grid.styles.js +13 -6
  158. package/optimize/es/components/flex/flex_group.js +9 -10
  159. package/optimize/es/components/flex/flex_item.js +9 -11
  160. package/optimize/es/components/flex/flex_item.styles.js +107 -122
  161. package/optimize/es/components/flyout/flyout.js +16 -18
  162. package/optimize/es/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  163. package/optimize/es/components/modal/confirm_modal.js +2 -1
  164. package/optimize/es/components/modal/modal.js +6 -2
  165. package/optimize/es/components/observer/resize_observer/resize_observer.js +15 -24
  166. package/optimize/es/components/spacer/spacer.js +2 -3
  167. package/optimize/es/components/toast/global_toast_list.js +70 -73
  168. package/optimize/es/components/toast/toast.js +27 -42
  169. package/optimize/es/components/toast/toast.styles.js +2 -17
  170. package/optimize/es/services/color/eui_palettes.js +21 -13
  171. package/optimize/es/services/color/index.js +1 -1
  172. package/optimize/es/services/hooks/index.js +1 -0
  173. package/optimize/es/services/hooks/useDeepEqual.js +23 -0
  174. package/optimize/es/services/index.js +1 -1
  175. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.js +163 -0
  176. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  177. package/optimize/lib/components/breadcrumbs/breadcrumb.js +10 -113
  178. package/optimize/lib/components/breadcrumbs/breadcrumb.styles.js +5 -29
  179. package/optimize/lib/components/breadcrumbs/breadcrumbs.js +3 -3
  180. package/optimize/lib/components/breadcrumbs/types.js +5 -0
  181. package/optimize/lib/components/button/button_group/button_group.js +2 -2
  182. package/optimize/lib/components/button/button_group/button_group.styles.js +1 -1
  183. package/optimize/lib/components/button/button_group/button_group_button.js +37 -5
  184. package/optimize/lib/components/button/button_group/button_group_button.styles.js +45 -11
  185. package/optimize/lib/components/datagrid/body/cell/data_grid_cell.js +78 -54
  186. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  187. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  188. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +32 -31
  189. package/optimize/lib/components/datagrid/body/cell/index.js +2 -2
  190. package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +38 -35
  191. package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +70 -50
  192. package/optimize/lib/components/datagrid/body/data_grid_row_manager.js +5 -3
  193. package/optimize/lib/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  194. package/optimize/lib/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  195. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +65 -49
  196. package/optimize/lib/components/datagrid/body/header/data_grid_header_row.js +14 -12
  197. package/optimize/lib/components/datagrid/body/header/use_data_grid_header.js +7 -6
  198. package/optimize/lib/components/datagrid/controls/column_selector.js +126 -123
  199. package/optimize/lib/components/datagrid/controls/column_sorting.js +125 -107
  200. package/optimize/lib/components/datagrid/controls/column_sorting_draggable.js +27 -22
  201. package/optimize/lib/components/datagrid/controls/display_selector.js +109 -107
  202. package/optimize/lib/components/datagrid/data_grid.a11y.js +13 -12
  203. package/optimize/lib/components/datagrid/data_grid.js +43 -20
  204. package/optimize/lib/components/datagrid/utils/col_widths.js +9 -5
  205. package/optimize/lib/components/datagrid/utils/focus.js +10 -8
  206. package/optimize/lib/components/datagrid/utils/grid_height_width.js +29 -28
  207. package/optimize/lib/components/datagrid/utils/ref.js +1 -1
  208. package/optimize/lib/components/datagrid/utils/row_heights.js +1 -1
  209. package/optimize/lib/components/datagrid/utils/sorting.js +31 -29
  210. package/optimize/lib/components/date_picker/super_date_picker/super_update_button.js +49 -29
  211. package/optimize/lib/components/flex/flex_grid.js +21 -7
  212. package/optimize/lib/components/flex/flex_grid.styles.js +13 -6
  213. package/optimize/lib/components/flex/flex_group.js +9 -9
  214. package/optimize/lib/components/flex/flex_item.js +13 -13
  215. package/optimize/lib/components/flex/flex_item.styles.js +107 -122
  216. package/optimize/lib/components/flyout/flyout.js +16 -18
  217. package/optimize/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  218. package/optimize/lib/components/modal/confirm_modal.js +2 -1
  219. package/optimize/lib/components/modal/modal.js +6 -2
  220. package/optimize/lib/components/observer/resize_observer/resize_observer.js +15 -24
  221. package/optimize/lib/components/spacer/spacer.js +1 -2
  222. package/optimize/lib/components/toast/global_toast_list.js +68 -71
  223. package/optimize/lib/components/toast/toast.js +25 -40
  224. package/optimize/lib/components/toast/toast.styles.js +11 -25
  225. package/optimize/lib/services/color/eui_palettes.js +24 -14
  226. package/optimize/lib/services/color/index.js +14 -0
  227. package/optimize/lib/services/hooks/index.js +11 -0
  228. package/optimize/lib/services/hooks/useDeepEqual.js +30 -0
  229. package/optimize/lib/services/index.js +15 -1
  230. package/package.json +2 -2
  231. package/test-env/components/breadcrumbs/_breadcrumb_content.js +363 -0
  232. package/test-env/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  233. package/test-env/components/breadcrumbs/breadcrumb.js +11 -326
  234. package/test-env/components/breadcrumbs/breadcrumb.styles.js +5 -29
  235. package/test-env/components/breadcrumbs/breadcrumbs.js +3 -3
  236. package/test-env/components/breadcrumbs/types.js +5 -0
  237. package/test-env/components/button/button_group/button_group.js +16 -2
  238. package/test-env/components/button/button_group/button_group.styles.js +1 -1
  239. package/test-env/components/button/button_group/button_group_button.js +56 -5
  240. package/test-env/components/button/button_group/button_group_button.styles.js +45 -11
  241. package/test-env/components/datagrid/body/cell/data_grid_cell.js +95 -57
  242. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  243. package/test-env/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  244. package/test-env/components/datagrid/body/cell/data_grid_cell_wrapper.js +32 -31
  245. package/test-env/components/datagrid/body/cell/index.js +2 -2
  246. package/test-env/components/datagrid/body/data_grid_body.js +13 -0
  247. package/test-env/components/datagrid/body/data_grid_body_custom.js +51 -35
  248. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +83 -55
  249. package/test-env/components/datagrid/body/data_grid_row_manager.js +5 -3
  250. package/test-env/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  251. package/test-env/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  252. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +72 -52
  253. package/test-env/components/datagrid/body/header/data_grid_header_row.js +14 -550
  254. package/test-env/components/datagrid/body/header/use_data_grid_header.js +7 -6
  255. package/test-env/components/datagrid/controls/column_selector.js +126 -123
  256. package/test-env/components/datagrid/controls/column_sorting.js +607 -106
  257. package/test-env/components/datagrid/controls/column_sorting_draggable.js +27 -22
  258. package/test-env/components/datagrid/controls/display_selector.js +109 -107
  259. package/test-env/components/datagrid/data_grid.a11y.js +13 -12
  260. package/test-env/components/datagrid/data_grid.js +43 -20
  261. package/test-env/components/datagrid/utils/col_widths.js +9 -5
  262. package/test-env/components/datagrid/utils/focus.js +10 -8
  263. package/test-env/components/datagrid/utils/grid_height_width.js +29 -28
  264. package/test-env/components/datagrid/utils/ref.js +1 -1
  265. package/test-env/components/datagrid/utils/row_heights.js +1 -1
  266. package/test-env/components/datagrid/utils/sorting.js +31 -29
  267. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  268. package/test-env/components/date_picker/super_date_picker/super_update_button.js +57 -29
  269. package/test-env/components/flex/flex_grid.js +21 -7
  270. package/test-env/components/flex/flex_grid.styles.js +13 -6
  271. package/test-env/components/flex/flex_group.js +10 -10
  272. package/test-env/components/flex/flex_item.js +13 -13
  273. package/test-env/components/flex/flex_item.styles.js +107 -122
  274. package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  275. package/test-env/components/modal/confirm_modal.js +2 -1
  276. package/test-env/components/modal/modal.js +12 -3
  277. package/test-env/components/spacer/spacer.js +1 -2
  278. package/test-env/components/toast/global_toast_list.js +68 -71
  279. package/test-env/components/toast/toast.js +25 -40
  280. package/test-env/components/toast/toast.styles.js +11 -25
  281. package/test-env/services/color/eui_palettes.js +24 -14
  282. package/test-env/services/color/index.js +14 -0
  283. package/test-env/services/hooks/index.js +11 -0
  284. package/test-env/services/hooks/useDeepEqual.js +30 -0
  285. package/test-env/services/index.js +15 -1
  286. package/src/themes/charts/theme.scss +0 -5
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.EuiButtonGroupButton = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -15,8 +16,9 @@ var _button = require("../../../themes/amsterdam/global_styling/mixins/button");
15
16
  var _inner_text = require("../../inner_text");
16
17
  var _button_display = require("../button_display/_button_display");
17
18
  var _button_group_button = require("./button_group_button.styles");
19
+ var _tool_tip = require("../../../components/tool_tip");
18
20
  var _react2 = require("@emotion/react");
19
- var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "value", "size", "color"];
21
+ var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "value", "size", "color", "toolTipContent", "toolTipProps"];
20
22
  /*
21
23
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
22
24
  * or more contributor license agreements. Licensed under the Elastic License
@@ -24,6 +26,8 @@ var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "l
24
26
  * in compliance with, at your election, the Elastic License 2.0 or the Server
25
27
  * Side Public License, v 1.
26
28
  */
29
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
31
  var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
28
32
  var className = _ref.className,
29
33
  id = _ref.id,
@@ -36,17 +40,21 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
36
40
  size = _ref.size,
37
41
  _ref$color = _ref.color,
38
42
  _color = _ref$color === void 0 ? 'primary' : _ref$color,
43
+ toolTipContent = _ref.toolTipContent,
44
+ toolTipProps = _ref.toolTipProps,
39
45
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
40
46
  var isCompressed = size === 'compressed';
41
47
  var color = isDisabled ? 'disabled' : _color;
42
48
  var display = isSelected ? 'fill' : isCompressed ? 'empty' : 'base';
49
+ var hasToolTip = !!toolTipContent;
43
50
  var euiTheme = (0, _services.useEuiTheme)();
44
51
  var buttonColorStyles = (0, _button.useEuiButtonColorCSS)({
45
52
  display: display
46
53
  })[color];
47
54
  var focusColorStyles = isCompressed ? (0, _button_group_button._compressedButtonFocusColor)(euiTheme, color) : (0, _button_group_button._uncompressedButtonFocus)(euiTheme);
48
55
  var styles = (0, _button_group_button.euiButtonGroupButtonStyles)(euiTheme);
49
- var cssStyles = [styles.euiButtonGroupButton, isIconOnly && styles.iconOnly, styles[size], !isCompressed && styles.uncompressed, isDisabled && isSelected ? styles.disabledAndSelected : buttonColorStyles, !isDisabled && focusColorStyles];
56
+ var cssStyles = [styles.euiButtonGroupButton, isIconOnly && styles.iconOnly, !isCompressed && (hasToolTip ? styles.uncompressed.hasToolTip : styles.uncompressed[size]), isCompressed ? styles.compressed : styles.uncompressed.uncompressed, isDisabled && isSelected ? styles.disabledAndSelected : buttonColorStyles, !isDisabled && focusColorStyles];
57
+ var tooltipWrapperStyles = [styles.tooltipWrapper, !isCompressed && styles.uncompressed[size]];
50
58
  var contentStyles = [styles.content.euiButtonGroupButton__content, isCompressed && styles.content.compressed];
51
59
  var textStyles = [isIconOnly ? styles.text.euiButtonGroupButton__iconOnly : styles.text.euiButtonGroupButton__text];
52
60
  var buttonClasses = (0, _classnames.default)('euiButtonGroupButton', {
@@ -63,7 +71,12 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
63
71
  _useInnerText2 = (0, _slicedToArray2.default)(_useInnerText, 2),
64
72
  buttonTextRef = _useInnerText2[0],
65
73
  innerText = _useInnerText2[1];
66
- return (0, _react2.jsx)(_button_display.EuiButtonDisplay, (0, _extends2.default)({
74
+ return (0, _react2.jsx)(EuiButtonGroupButtonWithToolTip, {
75
+ toolTipContent: toolTipContent,
76
+ toolTipProps: toolTipProps,
77
+ wrapperCss: tooltipWrapperStyles,
78
+ isSelected: isSelected
79
+ }, (0, _react2.jsx)(_button_display.EuiButtonDisplay, (0, _extends2.default)({
67
80
  css: cssStyles,
68
81
  className: buttonClasses,
69
82
  isDisabled: isDisabled,
@@ -79,6 +92,25 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
79
92
  title: innerText,
80
93
  "data-test-subj": id,
81
94
  isSelected: isSelected
82
- }, rest), label);
95
+ }, rest), label));
83
96
  };
84
- exports.EuiButtonGroupButton = EuiButtonGroupButton;
97
+ exports.EuiButtonGroupButton = EuiButtonGroupButton;
98
+ var EuiButtonGroupButtonWithToolTip = function EuiButtonGroupButtonWithToolTip(_ref2) {
99
+ var _toolTipProps$anchorP, _toolTipProps$anchorP2;
100
+ var toolTipContent = _ref2.toolTipContent,
101
+ toolTipProps = _ref2.toolTipProps,
102
+ wrapperCss = _ref2.wrapperCss,
103
+ isSelected = _ref2.isSelected,
104
+ children = _ref2.children;
105
+ return toolTipContent ? (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({
106
+ content: toolTipContent,
107
+ position: "top"
108
+ }, toolTipProps, {
109
+ anchorProps: _objectSpread(_objectSpread({}, toolTipProps === null || toolTipProps === void 0 ? void 0 : toolTipProps.anchorProps), {}, {
110
+ className: (0, _classnames.default)('euiButtonGroup__tooltipWrapper', {
111
+ 'euiButtonGroup__tooltipWrapper-isSelected': isSelected
112
+ }, toolTipProps === null || toolTipProps === void 0 ? void 0 : (_toolTipProps$anchorP = toolTipProps.anchorProps) === null || _toolTipProps$anchorP === void 0 ? void 0 : _toolTipProps$anchorP.className),
113
+ css: [wrapperCss, toolTipProps === null || toolTipProps === void 0 ? void 0 : (_toolTipProps$anchorP2 = toolTipProps.anchorProps) === null || _toolTipProps$anchorP2 === void 0 ? void 0 : _toolTipProps$anchorP2.css]
114
+ })
115
+ }), children) : children;
116
+ };
@@ -10,14 +10,29 @@ var _global_styling = require("../../../global_styling");
10
10
  var _button = require("../../../themes/amsterdam/global_styling/mixins/button");
11
11
  var _accessibility = require("../../accessibility");
12
12
  var _form = require("../../form/form.styles");
13
- /*
14
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
- * or more contributor license agreements. Licensed under the Elastic License
16
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
17
- * in compliance with, at your election, the Elastic License 2.0 or the Server
18
- * Side Public License, v 1.
19
- */
20
-
13
+ 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)."; } /*
14
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
+ * or more contributor license agreements. Licensed under the Elastic License
16
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
17
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
18
+ * Side Public License, v 1.
19
+ */
20
+ var _ref = process.env.NODE_ENV === "production" ? {
21
+ name: "nwv4a2-tooltipWrapper",
22
+ styles: "overflow:hidden;label:tooltipWrapper;"
23
+ } : {
24
+ name: "nwv4a2-tooltipWrapper",
25
+ styles: "overflow:hidden;label:tooltipWrapper;",
26
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
27
+ };
28
+ var _ref2 = process.env.NODE_ENV === "production" ? {
29
+ name: "1u3o7zy-hasToolTip",
30
+ styles: "border-radius:inherit;label:hasToolTip;"
31
+ } : {
32
+ name: "1u3o7zy-hasToolTip",
33
+ styles: "border-radius:inherit;label:hasToolTip;",
34
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
35
+ };
21
36
  var euiButtonGroupButtonStyles = function euiButtonGroupButtonStyles(euiThemeContext) {
22
37
  var euiTheme = euiThemeContext.euiTheme;
23
38
  var _euiFormVariables = (0, _form.euiFormVariables)(euiThemeContext),
@@ -34,9 +49,26 @@ var euiButtonGroupButtonStyles = function euiButtonGroupButtonStyles(euiThemeCon
34
49
  euiButtonGroupButton: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('min-width', 0), " flex-shrink:1;flex-grow:0;", _global_styling.euiCanAnimate, "{transition:background-color ", euiTheme.animation.normal, " ease-in-out,color ", euiTheme.animation.normal, " ease-in-out;};label:euiButtonGroupButton;"),
35
50
  iconOnly: /*#__PURE__*/(0, _react.css)("padding-inline:", euiTheme.size.s, ";;label:iconOnly;"),
36
51
  // Sizes
37
- s: /*#__PURE__*/(0, _react.css)(uncompressedBorderRadii(euiTheme.border.radius.small), ";;label:s;"),
38
- m: /*#__PURE__*/(0, _react.css)(uncompressedBorderRadii(euiTheme.border.radius.medium), ";;label:m;"),
39
- uncompressed: /*#__PURE__*/(0, _react.css)("&:is(.euiButtonGroupButton-isSelected){font-weight:", euiTheme.font.weight.bold, ";}&:not(.euiButtonGroupButton-isSelected)+.euiButtonGroupButton:not(.euiButtonGroupButton-isSelected){box-shadow:-", euiTheme.border.width.thin, " 0 0 0 ", (0, _services.transparentize)(euiTheme.colors.fullShade, 0.1), ";}&:is(.euiButtonGroupButton-isSelected)+.euiButtonGroupButton-isSelected{box-shadow:-", euiTheme.border.width.thin, " 0 0 0 ", (0, _services.transparentize)(euiTheme.colors.emptyShade, 0.2), ";};label:uncompressed;"),
52
+ uncompressed: {
53
+ uncompressed: /*#__PURE__*/(0, _react.css)("&:is(.euiButtonGroupButton-isSelected){font-weight:", euiTheme.font.weight.bold, ";};label:uncompressed;"),
54
+ get borders() {
55
+ var selectors = '.euiButtonGroupButton-isSelected, .euiButtonGroup__tooltipWrapper-isSelected';
56
+ var selectedColor = (0, _services.transparentize)(euiTheme.colors.emptyShade, 0.2);
57
+ var unselectedColor = (0, _services.transparentize)(euiTheme.colors.fullShade, 0.1);
58
+ var borderWidth = euiTheme.border.width.thin;
59
+
60
+ // "Borders" between buttons should be present between two of the same colored buttons,
61
+ // and absent between selected vs non-selected buttons (different colors)
62
+ return "\n &:not(".concat(selectors, ") + *:not(").concat(selectors, ") {\n box-shadow: -").concat(borderWidth, " 0 0 0 ").concat(unselectedColor, ";\n }\n &:is(").concat(selectors, ") + *:is(").concat(selectors, ") {\n box-shadow: -").concat(borderWidth, " 0 0 0 ").concat(selectedColor, ";\n }\n ");
63
+ },
64
+ get s() {
65
+ return /*#__PURE__*/(0, _react.css)(this.borders, " ", uncompressedBorderRadii(euiTheme.border.radius.small), ";;label:s;");
66
+ },
67
+ get m() {
68
+ return /*#__PURE__*/(0, _react.css)(this.borders, " ", uncompressedBorderRadii(euiTheme.border.radius.medium), ";;label:m;");
69
+ },
70
+ hasToolTip: _ref2
71
+ },
40
72
  compressed: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', compressedButtonHeight), " line-height:", compressedButtonHeight, ";padding:", (0, _global_styling.mathWithUnits)(euiTheme.border.width.thin, function (x) {
41
73
  return x * 2;
42
74
  }), ";background-clip:content-box;border-radius:", (0, _global_styling.mathWithUnits)([controlCompressedBorderRadius, euiTheme.border.width.thin], function (x, y) {
@@ -44,6 +76,8 @@ var euiButtonGroupButtonStyles = function euiButtonGroupButtonStyles(euiThemeCon
44
76
  }), ";font-weight:", euiTheme.font.weight.regular, ";&:is(.euiButtonGroupButton-isSelected){font-weight:", euiTheme.font.weight.semiBold, ";};label:compressed;"),
45
77
  // States
46
78
  disabledAndSelected: /*#__PURE__*/(0, _react.css)("color:", (0, _services.makeDisabledContrastColor)(euiTheme.colors.disabledText)(euiTheme.colors.disabled), ";background-color:", euiTheme.colors.disabled, ";;label:disabledAndSelected;"),
79
+ // Tooltip anchor wrapper
80
+ tooltipWrapper: _ref,
47
81
  // Content wrapper
48
82
  content: {
49
83
  euiButtonGroupButton__content: /*#__PURE__*/(0, _react.css)(";label:euiButtonGroupButton__content;"),
@@ -29,7 +29,7 @@ var _data_grid_cell_actions = require("./data_grid_cell_actions");
29
29
  var _data_grid_cell_popover = require("./data_grid_cell_popover");
30
30
  var _focus_utils = require("./focus_utils");
31
31
  var _react2 = require("@emotion/react");
32
- var _excluded = ["renderCellValue", "cellContext", "column", "setCellContentsRef", "rowIndex", "colIndex", "ariaRowIndex", "rowHeight", "rowHeightUtils", "isControlColumn", "isFocused", "cellActions"],
32
+ var _excluded = ["renderCellValue", "cellContext", "column", "setCellContentsRef", "rowIndex", "colIndex", "ariaRowIndex", "rowHeight", "rowHeightUtils", "isControlColumn", "isFocused", "showCellActions", "onExpandClick", "popoverAnchorRef"],
33
33
  _excluded2 = ["width", "popoverContext", "interactiveCellId", "columnType", "className", "column", "style", "rowHeightUtils", "rowHeightsOptions", "rowManager", "pagination"],
34
34
  _excluded3 = ["isExpandable", "style", "className", "data-test-subj"];
35
35
  /*
@@ -57,16 +57,25 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
57
57
  rowHeightUtils = _ref.rowHeightUtils,
58
58
  isControlColumn = _ref.isControlColumn,
59
59
  isFocused = _ref.isFocused,
60
- cellActions = _ref.cellActions,
60
+ showCellActions = _ref.showCellActions,
61
+ onExpandClick = _ref.onExpandClick,
62
+ popoverAnchorRef = _ref.popoverAnchorRef,
61
63
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
62
- // React is more permissible than the TS types indicate
64
+ // React is more permissive than the TS types indicate
63
65
  var CellElement = renderCellValue;
64
- var cellHeightType = (rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getHeightType(rowHeight)) || 'default';
65
- var classes = (0, _classnames.default)('euiDataGridRowCell__content', "euiDataGridRowCell__content--".concat(cellHeightType, "Height"), !isControlColumn && {
66
- 'eui-textBreakWord': cellHeightType !== 'default',
67
- 'eui-textTruncate': cellHeightType === 'default'
68
- });
69
- var cellContent = (0, _react2.jsx)("div", {
66
+ var cellHeightType = (0, _react.useMemo)(function () {
67
+ return (rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getHeightType(rowHeight)) || 'default';
68
+ }, [rowHeightUtils, rowHeight]);
69
+ var classes = (0, _react.useMemo)(function () {
70
+ return (0, _classnames.default)('euiDataGridRowCell__content', "euiDataGridRowCell__content--".concat(cellHeightType, "Height"), !isControlColumn && {
71
+ 'eui-textBreakWord': cellHeightType !== 'default',
72
+ 'eui-textTruncate': cellHeightType === 'default'
73
+ });
74
+ }, [cellHeightType, isControlColumn]);
75
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(RenderTruncatedCellContent, {
76
+ hasLineCountTruncation: cellHeightType === 'lineCount' && !isControlColumn,
77
+ rowHeight: rowHeight
78
+ }, (0, _react2.jsx)("div", {
70
79
  ref: setCellContentsRef,
71
80
  "data-datagrid-cellcontent": true,
72
81
  className: classes
@@ -76,15 +85,7 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
76
85
  rowIndex: rowIndex,
77
86
  colIndex: colIndex,
78
87
  schema: (column === null || column === void 0 ? void 0 : column.schema) || rest.columnType
79
- }, cellContext, rest)));
80
- if (cellHeightType === 'lineCount' && !isControlColumn) {
81
- var lines = rowHeightUtils.getLineCount(rowHeight);
82
- cellContent = (0, _react2.jsx)(_text_truncate.EuiTextBlockTruncate, {
83
- lines: lines,
84
- cloneElement: true
85
- }, cellContent);
86
- }
87
- var screenReaderText = (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
88
+ }, cellContext, rest)))), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
88
89
  hidden: !isFocused
89
90
  }, '- ', (0, _react2.jsx)(_i18n.EuiI18n, {
90
91
  token: "euiDataGridCell.position",
@@ -94,11 +95,16 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
94
95
  col: colIndex + 1,
95
96
  row: ariaRowIndex
96
97
  }
97
- }), cellActions && (0, _react2.jsx)(_react.default.Fragment, null, '. ', (0, _react2.jsx)(_i18n.EuiI18n, {
98
+ }), showCellActions && (0, _react2.jsx)(_react.default.Fragment, null, '. ', (0, _react2.jsx)(_i18n.EuiI18n, {
98
99
  token: "euiDataGridCell.expansionEnterPrompt",
99
100
  default: "Press the Enter key to expand this cell."
100
- }))));
101
- return (0, _react2.jsx)(_react.default.Fragment, null, cellContent, screenReaderText, cellActions);
101
+ })))), showCellActions && (0, _react2.jsx)(_data_grid_cell_actions.EuiDataGridCellActions, {
102
+ rowIndex: rowIndex,
103
+ colIndex: colIndex,
104
+ column: column,
105
+ onExpandClick: onExpandClick,
106
+ popoverAnchorRef: popoverAnchorRef
107
+ }));
102
108
  });
103
109
  EuiDataGridCellContent.displayName = 'EuiDataGridCellContent';
104
110
  var EuiDataGridCell = /*#__PURE__*/function (_Component) {
@@ -425,6 +431,7 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
425
431
  if (nextProps.style.height !== this.props.style.height) return true;
426
432
  if (nextProps.style.width !== this.props.style.width) return true;
427
433
  }
434
+ if (nextProps.cellContext !== this.props.cellContext) return true;
428
435
  if (nextState.cellProps !== this.state.cellProps) return true;
429
436
  if (nextState.isFocused !== this.state.isFocused) return true;
430
437
  if (nextState.isHovered !== this.state.isHovered) return true;
@@ -474,21 +481,16 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
474
481
  lineHeight: (_rowHeightsOptions$li = rowHeightsOptions === null || rowHeightsOptions === void 0 ? void 0 : rowHeightsOptions.lineHeight) !== null && _rowHeightsOptions$li !== void 0 ? _rowHeightsOptions$li : undefined
475
482
  }, cellPropsStyle);
476
483
  var rowHeight = rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getRowHeightOption(rowIndex, rowHeightsOptions);
477
- var cellContentProps = _objectSpread(_objectSpread({}, rest), {}, {
478
- setCellProps: this.setCellProps,
479
- column: column,
480
- columnType: columnType,
481
- isExpandable: isExpandable,
482
- isExpanded: popoverIsOpen,
483
- isDetails: false,
484
- isFocused: this.state.isFocused,
485
- setCellContentsRef: this.setCellContentsRef,
486
- rowHeight: rowHeight,
487
- rowHeightUtils: rowHeightUtils,
488
- isControlColumn: cellClasses.includes('euiDataGridRowCell--controlColumn'),
489
- ariaRowIndex: ariaRowIndex
490
- });
491
- var cell = (0, _react2.jsx)("div", (0, _extends2.default)({
484
+ var row = rowManager && !_utils.IS_JEST_ENVIRONMENT ? rowManager.getRow({
485
+ rowIndex: rowIndex,
486
+ visibleRowIndex: visibleRowIndex,
487
+ top: style.top,
488
+ // comes in as a `{float}px` string from react-window
489
+ height: style.height // comes in as an integer from react-window
490
+ }) : undefined;
491
+ return (0, _react2.jsx)(RenderCellInRow, {
492
+ row: row
493
+ }, (0, _react2.jsx)("div", (0, _extends2.default)({
492
494
  role: "gridcell",
493
495
  "aria-rowindex": ariaRowIndex,
494
496
  tabIndex: this.state.isFocused ? 0 : -1,
@@ -512,27 +514,49 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
512
514
  cellEl: this.cellRef.current,
513
515
  updateCellFocusContext: this.updateCellFocusContext,
514
516
  renderFocusTrap: !isExpandable
515
- }, (0, _react2.jsx)(EuiDataGridCellContent, (0, _extends2.default)({}, cellContentProps, {
516
- cellActions: showCellActions && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_data_grid_cell_actions.EuiDataGridCellActions, {
517
- rowIndex: rowIndex,
518
- colIndex: colIndex,
519
- column: column,
520
- onExpandClick: this.handleCellExpansionClick
521
- }), (0, _react2.jsx)("div", {
522
- ref: this.popoverAnchorRef,
523
- "data-test-subject": "cellPopoverAnchor"
524
- }))
525
- }))));
526
- return rowManager && !_utils.IS_JEST_ENVIRONMENT ? /*#__PURE__*/(0, _reactDom.createPortal)(cell, rowManager.getRow({
517
+ }, (0, _react2.jsx)(EuiDataGridCellContent, (0, _extends2.default)({}, rest, {
518
+ setCellProps: this.setCellProps,
519
+ column: column,
520
+ columnType: columnType,
521
+ isExpandable: isExpandable,
522
+ isExpanded: popoverIsOpen,
523
+ onExpandClick: this.handleCellExpansionClick,
524
+ popoverAnchorRef: this.popoverAnchorRef,
525
+ showCellActions: showCellActions,
526
+ isFocused: this.state.isFocused,
527
+ setCellContentsRef: this.setCellContentsRef,
528
+ rowHeight: rowHeight,
529
+ rowHeightUtils: rowHeightUtils,
530
+ isControlColumn: cellClasses.includes('euiDataGridRowCell--controlColumn'),
531
+ ariaRowIndex: ariaRowIndex,
527
532
  rowIndex: rowIndex,
528
- visibleRowIndex: visibleRowIndex,
529
- top: style.top,
530
- // comes in as a `{float}px` string from react-window
531
- height: style.height // comes in as an integer from react-window
532
- })) : cell;
533
+ colIndex: colIndex
534
+ })))));
533
535
  }
534
536
  }]);
535
537
  return EuiDataGridCell;
536
538
  }(_react.Component);
539
+ /**
540
+ * Function component utilities for conditional rendering.
541
+ * Used for DRYness and performance
542
+ */
537
543
  exports.EuiDataGridCell = EuiDataGridCell;
538
- (0, _defineProperty2.default)(EuiDataGridCell, "contextType", _focus.DataGridFocusContext);
544
+ (0, _defineProperty2.default)(EuiDataGridCell, "contextType", _focus.DataGridFocusContext);
545
+ var RenderCellInRow = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
546
+ var row = _ref2.row,
547
+ children = _ref2.children;
548
+ return row ? /*#__PURE__*/(0, _reactDom.createPortal)(children, row) : children;
549
+ });
550
+ RenderCellInRow.displayName = 'RenderCellInRow';
551
+ var RenderTruncatedCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref3) {
552
+ var children = _ref3.children,
553
+ hasLineCountTruncation = _ref3.hasLineCountTruncation,
554
+ rowHeight = _ref3.rowHeight;
555
+ // If `hasLineCountTruncation` is true, we can rely on rowHeight being the correct type
556
+ var lines = hasLineCountTruncation ? rowHeight.lineCount : undefined;
557
+ return lines ? (0, _react2.jsx)(_text_truncate.EuiTextBlockTruncate, {
558
+ lines: lines,
559
+ cloneElement: true
560
+ }, children) : children;
561
+ });
562
+ RenderTruncatedCellContent.displayName = 'RenderTruncatedCellContent';
@@ -28,6 +28,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
28
28
 
29
29
  var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
30
30
  var onExpandClick = _ref.onExpandClick,
31
+ popoverAnchorRef = _ref.popoverAnchorRef,
31
32
  column = _ref.column,
32
33
  rowIndex = _ref.rowIndex,
33
34
  colIndex = _ref.colIndex;
@@ -35,23 +36,25 @@ var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
35
36
  // column.cellActions is present (regardless of column.isExpandable).
36
37
  // This is because cell actions are not otherwise accessible to keyboard
37
38
  // or screen reader users
38
- var expandButton = (0, _react2.jsx)(_i18n.EuiI18n, {
39
- key: 'expand',
40
- token: "euiDataGridCellActions.expandButtonTitle",
41
- default: "Click or hit enter to interact with cell content"
42
- }, function (expandButtonTitle) {
43
- return (0, _react2.jsx)(_button_icon.EuiButtonIcon, {
44
- className: "euiDataGridRowCell__actionButtonIcon euiDataGridRowCell__expandCell",
45
- "data-test-subj": "euiDataGridCellExpandButton",
46
- display: "fill",
47
- color: "primary",
48
- iconSize: "m",
49
- iconType: "expandMini",
50
- "aria-hidden": true,
51
- onClick: onExpandClick,
52
- title: expandButtonTitle
39
+ var expandButton = (0, _react.useMemo)(function () {
40
+ return (0, _react2.jsx)(_i18n.EuiI18n, {
41
+ key: 'expand',
42
+ token: "euiDataGridCellActions.expandButtonTitle",
43
+ default: "Click or hit enter to interact with cell content"
44
+ }, function (expandButtonTitle) {
45
+ return (0, _react2.jsx)(_button_icon.EuiButtonIcon, {
46
+ className: "euiDataGridRowCell__actionButtonIcon euiDataGridRowCell__expandCell",
47
+ "data-test-subj": "euiDataGridCellExpandButton",
48
+ display: "fill",
49
+ color: "primary",
50
+ iconSize: "m",
51
+ iconType: "expandMini",
52
+ "aria-hidden": true,
53
+ onClick: onExpandClick,
54
+ title: expandButtonTitle
55
+ });
53
56
  });
54
- });
57
+ }, [onExpandClick]);
55
58
  var additionalButtons = (0, _react.useMemo)(function () {
56
59
  if (!column || !Array.isArray(column === null || column === void 0 ? void 0 : column.cellActions)) return [];
57
60
  var ButtonComponent = function ButtonComponent(props) {
@@ -82,9 +85,12 @@ var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
82
85
  });
83
86
  });
84
87
  }, [column, colIndex, rowIndex]);
85
- return (0, _react2.jsx)("div", {
88
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
86
89
  className: "euiDataGridRowCell__actions"
87
- }, [].concat((0, _toConsumableArray2.default)(additionalButtons), [expandButton]));
90
+ }, [].concat((0, _toConsumableArray2.default)(additionalButtons), [expandButton])), (0, _react2.jsx)("div", {
91
+ ref: popoverAnchorRef,
92
+ "data-test-subject": "cellPopoverAnchor"
93
+ }));
88
94
  };
89
95
  exports.EuiDataGridCellActions = EuiDataGridCellActions;
90
96
  var EuiDataGridCellPopoverActions = function EuiDataGridCellPopoverActions(_ref2) {
@@ -41,7 +41,6 @@ var DataGridCellPopoverContext = /*#__PURE__*/(0, _react.createContext)({
41
41
  });
42
42
  exports.DataGridCellPopoverContext = DataGridCellPopoverContext;
43
43
  var useCellPopover = function useCellPopover() {
44
- var _cellPopoverProps$pan;
45
44
  // Current open state & cell location are handled here
46
45
  var _useState = (0, _react.useState)(false),
47
46
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -92,16 +91,6 @@ var useCellPopover = function useCellPopover() {
92
91
  });
93
92
  setPopoverIsOpen(true);
94
93
  }, [popoverIsOpen, cellLocation]);
95
- var cellPopoverContext = {
96
- popoverIsOpen: popoverIsOpen,
97
- closeCellPopover: closeCellPopover,
98
- openCellPopover: openCellPopover,
99
- cellLocation: cellLocation,
100
- setPopoverAnchor: setPopoverAnchor,
101
- setPopoverAnchorPosition: setPopoverAnchorPosition,
102
- setPopoverContent: setPopoverContent,
103
- setCellPopoverProps: setCellPopoverProps
104
- };
105
94
 
106
95
  // Override the default EuiPopover `onClickOutside` behavior, since the toggling
107
96
  // popover button isn't actually the DOM node we pass to `button`. Otherwise,
@@ -113,52 +102,71 @@ var useCellPopover = function useCellPopover() {
113
102
  closeCellPopover();
114
103
  }
115
104
  }, [popoverAnchor, closeCellPopover]);
105
+ var onKeyDown = (0, _react.useCallback)(function (event) {
106
+ if (event.key === _services.keys.F2 || event.key === _services.keys.ESCAPE) {
107
+ var _popoverAnchor$parent3, _popoverAnchor$parent4;
108
+ event.preventDefault();
109
+ event.stopPropagation();
110
+ closeCellPopover();
111
+ var cell = popoverAnchor === null || popoverAnchor === void 0 ? void 0 : (_popoverAnchor$parent3 = popoverAnchor.parentElement) === null || _popoverAnchor$parent3 === void 0 ? void 0 : (_popoverAnchor$parent4 = _popoverAnchor$parent3.parentElement) === null || _popoverAnchor$parent4 === void 0 ? void 0 : _popoverAnchor$parent4.parentElement;
116
112
 
117
- // Note that this popover is rendered once at the top grid level, rather than one popover per cell
118
- var cellPopover = popoverIsOpen && popoverAnchor && (0, _react2.jsx)(_popover.EuiWrappingPopover, (0, _extends2.default)({
119
- isOpen: popoverIsOpen,
120
- display: "block",
121
- hasArrow: false,
122
- panelPaddingSize: "s",
123
- anchorPosition: popoverAnchorPosition,
124
- repositionToCrossAxis: false
125
- }, cellPopoverProps, {
126
- focusTrapProps: {
127
- onClickOutside: onClickOutside,
128
- clickOutsideDisables: false
129
- },
130
- panelProps: _objectSpread({
131
- 'data-test-subj': 'euiDataGridExpansionPopover'
132
- }, cellPopoverProps.panelProps || {}),
133
- panelClassName: (0, _classnames.default)('euiDataGridRowCell__popover', cellPopoverProps.panelClassName, (_cellPopoverProps$pan = cellPopoverProps.panelProps) === null || _cellPopoverProps$pan === void 0 ? void 0 : _cellPopoverProps$pan.className),
134
- panelStyle: {
135
- maxInlineSize: "min(75vw, max(".concat(popoverAnchor.parentElement.offsetWidth, "px, 400px))"),
136
- maxBlockSize: '50vh'
137
- },
138
- onKeyDown: function onKeyDown(event) {
139
- if (event.key === _services.keys.F2 || event.key === _services.keys.ESCAPE) {
140
- var _popoverAnchor$parent3, _popoverAnchor$parent4;
141
- event.preventDefault();
142
- event.stopPropagation();
143
- closeCellPopover();
144
- var cell = (_popoverAnchor$parent3 = popoverAnchor.parentElement) === null || _popoverAnchor$parent3 === void 0 ? void 0 : (_popoverAnchor$parent4 = _popoverAnchor$parent3.parentElement) === null || _popoverAnchor$parent4 === void 0 ? void 0 : _popoverAnchor$parent4.parentElement;
113
+ // Prevent cell animation flash while focus is being shifted between popover and cell
114
+ cell === null || cell === void 0 ? void 0 : cell.setAttribute('data-keyboard-closing', 'true');
115
+ // Ensure focus is returned to the parent cell, and remove animation stopgap
116
+ requestAnimationFrame(function () {
117
+ popoverAnchor === null || popoverAnchor === void 0 ? void 0 : popoverAnchor.parentElement.focus();
118
+ cell === null || cell === void 0 ? void 0 : cell.removeAttribute('data-keyboard-closing');
119
+ });
120
+ }
121
+ }, [popoverAnchor, closeCellPopover]);
122
+ var cellPopoverContext = (0, _react.useMemo)(function () {
123
+ return {
124
+ popoverIsOpen: popoverIsOpen,
125
+ closeCellPopover: closeCellPopover,
126
+ openCellPopover: openCellPopover,
127
+ cellLocation: cellLocation,
128
+ setPopoverAnchorPosition: setPopoverAnchorPosition,
129
+ setPopoverAnchor: setPopoverAnchor,
130
+ setPopoverContent: setPopoverContent,
131
+ setCellPopoverProps: setCellPopoverProps
132
+ };
133
+ }, [popoverIsOpen, closeCellPopover, openCellPopover, cellLocation]);
134
+ var cellPopover = (0, _react.useMemo)(function () {
135
+ var _cellPopoverProps$pan;
136
+ if (!popoverIsOpen || !popoverAnchor) return null;
145
137
 
146
- // Prevent cell animation flash while focus is being shifted between popover and cell
147
- cell === null || cell === void 0 ? void 0 : cell.setAttribute('data-keyboard-closing', 'true');
148
- // Ensure focus is returned to the parent cell, and remove animation stopgap
149
- requestAnimationFrame(function () {
150
- popoverAnchor.parentElement.focus();
151
- cell === null || cell === void 0 ? void 0 : cell.removeAttribute('data-keyboard-closing');
152
- });
153
- }
154
- },
155
- button: popoverAnchor,
156
- closePopover: closeCellPopover
157
- }), popoverContent);
158
- return {
159
- cellPopoverContext: cellPopoverContext,
160
- cellPopover: cellPopover
161
- };
138
+ // Note that this popover is rendered once at the top grid level, rather than one popover per cell
139
+ return (0, _react2.jsx)(_popover.EuiWrappingPopover, (0, _extends2.default)({
140
+ isOpen: popoverIsOpen,
141
+ display: "block",
142
+ hasArrow: false,
143
+ panelPaddingSize: "s",
144
+ anchorPosition: popoverAnchorPosition,
145
+ repositionToCrossAxis: false
146
+ }, cellPopoverProps, {
147
+ focusTrapProps: {
148
+ onClickOutside: onClickOutside,
149
+ clickOutsideDisables: false
150
+ },
151
+ panelProps: _objectSpread({
152
+ 'data-test-subj': 'euiDataGridExpansionPopover'
153
+ }, cellPopoverProps.panelProps || {}),
154
+ panelClassName: (0, _classnames.default)('euiDataGridRowCell__popover', cellPopoverProps.panelClassName, (_cellPopoverProps$pan = cellPopoverProps.panelProps) === null || _cellPopoverProps$pan === void 0 ? void 0 : _cellPopoverProps$pan.className),
155
+ panelStyle: {
156
+ maxInlineSize: "min(75vw, max(".concat(popoverAnchor.parentElement.offsetWidth, "px, 400px))"),
157
+ maxBlockSize: '50vh'
158
+ },
159
+ onKeyDown: onKeyDown,
160
+ button: popoverAnchor,
161
+ closePopover: closeCellPopover
162
+ }), popoverContent);
163
+ }, [popoverIsOpen, popoverAnchor, popoverContent, cellPopoverProps, closeCellPopover, onClickOutside, onKeyDown, popoverAnchorPosition]);
164
+ return (0, _react.useMemo)(function () {
165
+ return {
166
+ cellPopoverContext: cellPopoverContext,
167
+ cellPopover: cellPopover
168
+ };
169
+ }, [cellPopoverContext, cellPopover]);
162
170
  };
163
171
 
164
172
  /**