@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
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
@@ -12,8 +13,9 @@ var _button = require("../../../themes/amsterdam/global_styling/mixins/button");
12
13
  var _inner_text = require("../../inner_text");
13
14
  var _button_display = require("../button_display/_button_display");
14
15
  var _button_group_button = require("./button_group_button.styles");
16
+ var _tool_tip = require("../../../components/tool_tip");
15
17
  var _react2 = require("@emotion/react");
16
- var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "value", "size", "color"];
18
+ var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "value", "size", "color", "toolTipContent", "toolTipProps"];
17
19
  /*
18
20
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
19
21
  * or more contributor license agreements. Licensed under the Elastic License
@@ -22,6 +24,11 @@ var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "l
22
24
  * Side Public License, v 1.
23
25
  */
24
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+ 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; }
28
+ 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) { _defineProperty(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; }
29
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
30
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
31
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
25
32
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
26
33
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
27
34
  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."); }
@@ -43,17 +50,21 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
43
50
  size = _ref.size,
44
51
  _ref$color = _ref.color,
45
52
  _color = _ref$color === void 0 ? 'primary' : _ref$color,
53
+ toolTipContent = _ref.toolTipContent,
54
+ toolTipProps = _ref.toolTipProps,
46
55
  rest = _objectWithoutProperties(_ref, _excluded);
47
56
  var isCompressed = size === 'compressed';
48
57
  var color = isDisabled ? 'disabled' : _color;
49
58
  var display = isSelected ? 'fill' : isCompressed ? 'empty' : 'base';
59
+ var hasToolTip = !!toolTipContent;
50
60
  var euiTheme = (0, _services.useEuiTheme)();
51
61
  var buttonColorStyles = (0, _button.useEuiButtonColorCSS)({
52
62
  display: display
53
63
  })[color];
54
64
  var focusColorStyles = isCompressed ? (0, _button_group_button._compressedButtonFocusColor)(euiTheme, color) : (0, _button_group_button._uncompressedButtonFocus)(euiTheme);
55
65
  var styles = (0, _button_group_button.euiButtonGroupButtonStyles)(euiTheme);
56
- var cssStyles = [styles.euiButtonGroupButton, isIconOnly && styles.iconOnly, styles[size], !isCompressed && styles.uncompressed, isDisabled && isSelected ? styles.disabledAndSelected : buttonColorStyles, !isDisabled && focusColorStyles];
66
+ 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];
67
+ var tooltipWrapperStyles = [styles.tooltipWrapper, !isCompressed && styles.uncompressed[size]];
57
68
  var contentStyles = [styles.content.euiButtonGroupButton__content, isCompressed && styles.content.compressed];
58
69
  var textStyles = [isIconOnly ? styles.text.euiButtonGroupButton__iconOnly : styles.text.euiButtonGroupButton__text];
59
70
  var buttonClasses = (0, _classnames.default)('euiButtonGroupButton', {
@@ -70,7 +81,12 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
70
81
  _useInnerText2 = _slicedToArray(_useInnerText, 2),
71
82
  buttonTextRef = _useInnerText2[0],
72
83
  innerText = _useInnerText2[1];
73
- return (0, _react2.jsx)(_button_display.EuiButtonDisplay, _extends({
84
+ return (0, _react2.jsx)(EuiButtonGroupButtonWithToolTip, {
85
+ toolTipContent: toolTipContent,
86
+ toolTipProps: toolTipProps,
87
+ wrapperCss: tooltipWrapperStyles,
88
+ isSelected: isSelected
89
+ }, (0, _react2.jsx)(_button_display.EuiButtonDisplay, _extends({
74
90
  css: cssStyles,
75
91
  className: buttonClasses,
76
92
  isDisabled: isDisabled,
@@ -86,7 +102,7 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
86
102
  title: innerText,
87
103
  "data-test-subj": id,
88
104
  isSelected: isSelected
89
- }, rest), label);
105
+ }, rest), label));
90
106
  };
91
107
  exports.EuiButtonGroupButton = EuiButtonGroupButton;
92
108
  EuiButtonGroupButton.propTypes = {
@@ -107,6 +123,20 @@ EuiButtonGroupButton.propTypes = {
107
123
  * The type of the underlying HTML button
108
124
  */
109
125
  type: _propTypes.default.any,
126
+ /**
127
+ * By default, will use the button text for the native browser title.
128
+ *
129
+ * This can be either customized or unset via `title: ''` if necessary.
130
+ */
131
+ title: _propTypes.default.any,
132
+ /**
133
+ * Optional custom tooltip content for the button
134
+ */
135
+ toolTipContent: _propTypes.default.node,
136
+ /**
137
+ * Optional props to pass to the underlying **[EuiToolTip](/#/display/tooltip)**
138
+ */
139
+ toolTipProps: _propTypes.default.any,
110
140
  /**
111
141
  * Any `type` accepted by EuiIcon
112
142
  */
@@ -145,7 +175,7 @@ EuiButtonGroupButton.propTypes = {
145
175
  /**
146
176
  * Inherit from EuiButtonGroup
147
177
  */
148
- size: _propTypes.default.oneOf(["s", "m", "compressed"]).isRequired,
178
+ size: _propTypes.default.any.isRequired,
149
179
  /**
150
180
  * Inherit from EuiButtonGroup
151
181
  */
@@ -154,4 +184,28 @@ EuiButtonGroupButton.propTypes = {
154
184
  * Inherit from EuiButtonGroup
155
185
  */
156
186
  onClick: _propTypes.default.func.isRequired
187
+ };
188
+ var EuiButtonGroupButtonWithToolTip = function EuiButtonGroupButtonWithToolTip(_ref2) {
189
+ var _toolTipProps$anchorP, _toolTipProps$anchorP2;
190
+ var toolTipContent = _ref2.toolTipContent,
191
+ toolTipProps = _ref2.toolTipProps,
192
+ wrapperCss = _ref2.wrapperCss,
193
+ isSelected = _ref2.isSelected,
194
+ children = _ref2.children;
195
+ return toolTipContent ? (0, _react2.jsx)(_tool_tip.EuiToolTip, _extends({
196
+ content: toolTipContent,
197
+ position: "top"
198
+ }, toolTipProps, {
199
+ anchorProps: _objectSpread(_objectSpread({}, toolTipProps === null || toolTipProps === void 0 ? void 0 : toolTipProps.anchorProps), {}, {
200
+ className: (0, _classnames.default)('euiButtonGroup__tooltipWrapper', {
201
+ 'euiButtonGroup__tooltipWrapper-isSelected': isSelected
202
+ }, toolTipProps === null || toolTipProps === void 0 ? void 0 : (_toolTipProps$anchorP = toolTipProps.anchorProps) === null || _toolTipProps$anchorP === void 0 ? void 0 : _toolTipProps$anchorP.className),
203
+ css: [wrapperCss, toolTipProps === null || toolTipProps === void 0 ? void 0 : (_toolTipProps$anchorP2 = toolTipProps.anchorProps) === null || _toolTipProps$anchorP2 === void 0 ? void 0 : _toolTipProps$anchorP2.css]
204
+ })
205
+ }), children) : children;
206
+ };
207
+ EuiButtonGroupButtonWithToolTip.propTypes = {
208
+ children: _propTypes.default.element.isRequired,
209
+ wrapperCss: _propTypes.default.any.isRequired,
210
+ isSelected: _propTypes.default.bool.isRequired
157
211
  };
@@ -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;"),
@@ -20,7 +20,7 @@ var _data_grid_cell_actions = require("./data_grid_cell_actions");
20
20
  var _data_grid_cell_popover = require("./data_grid_cell_popover");
21
21
  var _focus_utils = require("./focus_utils");
22
22
  var _react2 = require("@emotion/react");
23
- var _excluded = ["renderCellValue", "cellContext", "column", "setCellContentsRef", "rowIndex", "colIndex", "ariaRowIndex", "rowHeight", "rowHeightUtils", "isControlColumn", "isFocused", "cellActions"],
23
+ var _excluded = ["renderCellValue", "cellContext", "column", "setCellContentsRef", "rowIndex", "colIndex", "ariaRowIndex", "rowHeight", "rowHeightUtils", "isControlColumn", "isFocused", "showCellActions", "onExpandClick", "popoverAnchorRef"],
24
24
  _excluded2 = ["width", "popoverContext", "interactiveCellId", "columnType", "className", "column", "style", "rowHeightUtils", "rowHeightsOptions", "rowManager", "pagination"],
25
25
  _excluded3 = ["isExpandable", "style", "className", "data-test-subj"];
26
26
  /*
@@ -63,16 +63,25 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
63
63
  rowHeightUtils = _ref.rowHeightUtils,
64
64
  isControlColumn = _ref.isControlColumn,
65
65
  isFocused = _ref.isFocused,
66
- cellActions = _ref.cellActions,
66
+ showCellActions = _ref.showCellActions,
67
+ onExpandClick = _ref.onExpandClick,
68
+ popoverAnchorRef = _ref.popoverAnchorRef,
67
69
  rest = _objectWithoutProperties(_ref, _excluded);
68
- // React is more permissible than the TS types indicate
70
+ // React is more permissive than the TS types indicate
69
71
  var CellElement = renderCellValue;
70
- var cellHeightType = (rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getHeightType(rowHeight)) || 'default';
71
- var classes = (0, _classnames.default)('euiDataGridRowCell__content', "euiDataGridRowCell__content--".concat(cellHeightType, "Height"), !isControlColumn && {
72
- 'eui-textBreakWord': cellHeightType !== 'default',
73
- 'eui-textTruncate': cellHeightType === 'default'
74
- });
75
- var cellContent = (0, _react2.jsx)("div", {
72
+ var cellHeightType = (0, _react.useMemo)(function () {
73
+ return (rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getHeightType(rowHeight)) || 'default';
74
+ }, [rowHeightUtils, rowHeight]);
75
+ var classes = (0, _react.useMemo)(function () {
76
+ return (0, _classnames.default)('euiDataGridRowCell__content', "euiDataGridRowCell__content--".concat(cellHeightType, "Height"), !isControlColumn && {
77
+ 'eui-textBreakWord': cellHeightType !== 'default',
78
+ 'eui-textTruncate': cellHeightType === 'default'
79
+ });
80
+ }, [cellHeightType, isControlColumn]);
81
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(RenderTruncatedCellContent, {
82
+ hasLineCountTruncation: cellHeightType === 'lineCount' && !isControlColumn,
83
+ rowHeight: rowHeight
84
+ }, (0, _react2.jsx)("div", {
76
85
  ref: setCellContentsRef,
77
86
  "data-datagrid-cellcontent": true,
78
87
  className: classes
@@ -82,15 +91,7 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
82
91
  rowIndex: rowIndex,
83
92
  colIndex: colIndex,
84
93
  schema: (column === null || column === void 0 ? void 0 : column.schema) || rest.columnType
85
- }, cellContext, rest)));
86
- if (cellHeightType === 'lineCount' && !isControlColumn) {
87
- var lines = rowHeightUtils.getLineCount(rowHeight);
88
- cellContent = (0, _react2.jsx)(_text_truncate.EuiTextBlockTruncate, {
89
- lines: lines,
90
- cloneElement: true
91
- }, cellContent);
92
- }
93
- var screenReaderText = (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
94
+ }, cellContext, rest)))), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
94
95
  hidden: !isFocused
95
96
  }, '- ', (0, _react2.jsx)(_i18n.EuiI18n, {
96
97
  token: "euiDataGridCell.position",
@@ -100,11 +101,16 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
100
101
  col: colIndex + 1,
101
102
  row: ariaRowIndex
102
103
  }
103
- }), cellActions && (0, _react2.jsx)(_react.default.Fragment, null, '. ', (0, _react2.jsx)(_i18n.EuiI18n, {
104
+ }), showCellActions && (0, _react2.jsx)(_react.default.Fragment, null, '. ', (0, _react2.jsx)(_i18n.EuiI18n, {
104
105
  token: "euiDataGridCell.expansionEnterPrompt",
105
106
  default: "Press the Enter key to expand this cell."
106
- }))));
107
- return (0, _react2.jsx)(_react.default.Fragment, null, cellContent, screenReaderText, cellActions);
107
+ })))), showCellActions && (0, _react2.jsx)(_data_grid_cell_actions.EuiDataGridCellActions, {
108
+ rowIndex: rowIndex,
109
+ colIndex: colIndex,
110
+ column: column,
111
+ onExpandClick: onExpandClick,
112
+ popoverAnchorRef: popoverAnchorRef
113
+ }));
108
114
  });
109
115
  EuiDataGridCellContent.propTypes = {
110
116
  rowIndex: _propTypes.default.number.isRequired,
@@ -578,16 +584,18 @@ EuiDataGridCellContent.propTypes = {
578
584
  rowHeightUtils: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.any.isRequired]),
579
585
  pagination: _propTypes.default.any,
580
586
  setCellProps: _propTypes.default.func.isRequired,
581
- setCellContentsRef: _propTypes.default.any.isRequired,
587
+ setCellContentsRef: _propTypes.default.func.isRequired,
588
+ showCellActions: _propTypes.default.bool.isRequired,
582
589
  isExpanded: _propTypes.default.bool.isRequired,
590
+ onExpandClick: _propTypes.default.func.isRequired,
591
+ popoverAnchorRef: _propTypes.default.any.isRequired,
583
592
  isControlColumn: _propTypes.default.bool.isRequired,
584
593
  isFocused: _propTypes.default.bool.isRequired,
585
594
  ariaRowIndex: _propTypes.default.number.isRequired,
586
595
  rowHeight: _propTypes.default.oneOfType([_propTypes.default.number.isRequired, _propTypes.default.oneOf(["auto"]), _propTypes.default.shape({
587
596
  lineCount: _propTypes.default.number,
588
597
  height: _propTypes.default.number
589
- }).isRequired]),
590
- cellActions: _propTypes.default.node
598
+ }).isRequired])
591
599
  };
592
600
  EuiDataGridCellContent.displayName = 'EuiDataGridCellContent';
593
601
  var EuiDataGridCell = /*#__PURE__*/function (_Component) {
@@ -914,6 +922,7 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
914
922
  if (nextProps.style.height !== this.props.style.height) return true;
915
923
  if (nextProps.style.width !== this.props.style.width) return true;
916
924
  }
925
+ if (nextProps.cellContext !== this.props.cellContext) return true;
917
926
  if (nextState.cellProps !== this.state.cellProps) return true;
918
927
  if (nextState.isFocused !== this.state.isFocused) return true;
919
928
  if (nextState.isHovered !== this.state.isHovered) return true;
@@ -963,21 +972,16 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
963
972
  lineHeight: (_rowHeightsOptions$li = rowHeightsOptions === null || rowHeightsOptions === void 0 ? void 0 : rowHeightsOptions.lineHeight) !== null && _rowHeightsOptions$li !== void 0 ? _rowHeightsOptions$li : undefined
964
973
  }, cellPropsStyle);
965
974
  var rowHeight = rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getRowHeightOption(rowIndex, rowHeightsOptions);
966
- var cellContentProps = _objectSpread(_objectSpread({}, rest), {}, {
967
- setCellProps: this.setCellProps,
968
- column: column,
969
- columnType: columnType,
970
- isExpandable: isExpandable,
971
- isExpanded: popoverIsOpen,
972
- isDetails: false,
973
- isFocused: this.state.isFocused,
974
- setCellContentsRef: this.setCellContentsRef,
975
- rowHeight: rowHeight,
976
- rowHeightUtils: rowHeightUtils,
977
- isControlColumn: cellClasses.includes('euiDataGridRowCell--controlColumn'),
978
- ariaRowIndex: ariaRowIndex
979
- });
980
- var cell = (0, _react2.jsx)("div", _extends({
975
+ var row = rowManager && !_utils.IS_JEST_ENVIRONMENT ? rowManager.getRow({
976
+ rowIndex: rowIndex,
977
+ visibleRowIndex: visibleRowIndex,
978
+ top: style.top,
979
+ // comes in as a `{float}px` string from react-window
980
+ height: style.height // comes in as an integer from react-window
981
+ }) : undefined;
982
+ return (0, _react2.jsx)(RenderCellInRow, {
983
+ row: row
984
+ }, (0, _react2.jsx)("div", _extends({
981
985
  role: "gridcell",
982
986
  "aria-rowindex": ariaRowIndex,
983
987
  tabIndex: this.state.isFocused ? 0 : -1,
@@ -1001,28 +1005,32 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
1001
1005
  cellEl: this.cellRef.current,
1002
1006
  updateCellFocusContext: this.updateCellFocusContext,
1003
1007
  renderFocusTrap: !isExpandable
1004
- }, (0, _react2.jsx)(EuiDataGridCellContent, _extends({}, cellContentProps, {
1005
- cellActions: showCellActions && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_data_grid_cell_actions.EuiDataGridCellActions, {
1006
- rowIndex: rowIndex,
1007
- colIndex: colIndex,
1008
- column: column,
1009
- onExpandClick: this.handleCellExpansionClick
1010
- }), (0, _react2.jsx)("div", {
1011
- ref: this.popoverAnchorRef,
1012
- "data-test-subject": "cellPopoverAnchor"
1013
- }))
1014
- }))));
1015
- return rowManager && !_utils.IS_JEST_ENVIRONMENT ? /*#__PURE__*/(0, _reactDom.createPortal)(cell, rowManager.getRow({
1008
+ }, (0, _react2.jsx)(EuiDataGridCellContent, _extends({}, rest, {
1009
+ setCellProps: this.setCellProps,
1010
+ column: column,
1011
+ columnType: columnType,
1012
+ isExpandable: isExpandable,
1013
+ isExpanded: popoverIsOpen,
1014
+ onExpandClick: this.handleCellExpansionClick,
1015
+ popoverAnchorRef: this.popoverAnchorRef,
1016
+ showCellActions: showCellActions,
1017
+ isFocused: this.state.isFocused,
1018
+ setCellContentsRef: this.setCellContentsRef,
1019
+ rowHeight: rowHeight,
1020
+ rowHeightUtils: rowHeightUtils,
1021
+ isControlColumn: cellClasses.includes('euiDataGridRowCell--controlColumn'),
1022
+ ariaRowIndex: ariaRowIndex,
1016
1023
  rowIndex: rowIndex,
1017
- visibleRowIndex: visibleRowIndex,
1018
- top: style.top,
1019
- // comes in as a `{float}px` string from react-window
1020
- height: style.height // comes in as an integer from react-window
1021
- })) : cell;
1024
+ colIndex: colIndex
1025
+ })))));
1022
1026
  }
1023
1027
  }]);
1024
1028
  return EuiDataGridCell;
1025
1029
  }(_react.Component);
1030
+ /**
1031
+ * Function component utilities for conditional rendering.
1032
+ * Used for DRYness and performance
1033
+ */
1026
1034
  exports.EuiDataGridCell = EuiDataGridCell;
1027
1035
  _defineProperty(EuiDataGridCell, "contextType", _focus.DataGridFocusContext);
1028
1036
  EuiDataGridCell.propTypes = {
@@ -1430,4 +1438,34 @@ EuiDataGridCell.propTypes = {
1430
1438
  getRow: _propTypes.default.func.isRequired
1431
1439
  }),
1432
1440
  pagination: _propTypes.default.any
1433
- };
1441
+ };
1442
+ var RenderCellInRow = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
1443
+ var row = _ref2.row,
1444
+ children = _ref2.children;
1445
+ return row ? /*#__PURE__*/(0, _reactDom.createPortal)(children, row) : children;
1446
+ });
1447
+ RenderCellInRow.propTypes = {
1448
+ children: _propTypes.default.element.isRequired,
1449
+ row: _propTypes.default.any
1450
+ };
1451
+ RenderCellInRow.displayName = 'RenderCellInRow';
1452
+ var RenderTruncatedCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref3) {
1453
+ var children = _ref3.children,
1454
+ hasLineCountTruncation = _ref3.hasLineCountTruncation,
1455
+ rowHeight = _ref3.rowHeight;
1456
+ // If `hasLineCountTruncation` is true, we can rely on rowHeight being the correct type
1457
+ var lines = hasLineCountTruncation ? rowHeight.lineCount : undefined;
1458
+ return lines ? (0, _react2.jsx)(_text_truncate.EuiTextBlockTruncate, {
1459
+ lines: lines,
1460
+ cloneElement: true
1461
+ }, children) : children;
1462
+ });
1463
+ RenderTruncatedCellContent.propTypes = {
1464
+ children: _propTypes.default.element.isRequired,
1465
+ hasLineCountTruncation: _propTypes.default.bool.isRequired,
1466
+ rowHeight: _propTypes.default.oneOfType([_propTypes.default.number.isRequired, _propTypes.default.oneOf(["auto"]), _propTypes.default.shape({
1467
+ lineCount: _propTypes.default.number,
1468
+ height: _propTypes.default.number
1469
+ }).isRequired])
1470
+ };
1471
+ RenderTruncatedCellContent.displayName = 'RenderTruncatedCellContent';
@@ -33,6 +33,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
33
33
  */
34
34
  var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
35
35
  var onExpandClick = _ref.onExpandClick,
36
+ popoverAnchorRef = _ref.popoverAnchorRef,
36
37
  column = _ref.column,
37
38
  rowIndex = _ref.rowIndex,
38
39
  colIndex = _ref.colIndex;
@@ -40,23 +41,25 @@ var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
40
41
  // column.cellActions is present (regardless of column.isExpandable).
41
42
  // This is because cell actions are not otherwise accessible to keyboard
42
43
  // or screen reader users
43
- var expandButton = (0, _react2.jsx)(_i18n.EuiI18n, {
44
- key: 'expand',
45
- token: "euiDataGridCellActions.expandButtonTitle",
46
- default: "Click or hit enter to interact with cell content"
47
- }, function (expandButtonTitle) {
48
- return (0, _react2.jsx)(_button_icon.EuiButtonIcon, {
49
- className: "euiDataGridRowCell__actionButtonIcon euiDataGridRowCell__expandCell",
50
- "data-test-subj": "euiDataGridCellExpandButton",
51
- display: "fill",
52
- color: "primary",
53
- iconSize: "m",
54
- iconType: "expandMini",
55
- "aria-hidden": true,
56
- onClick: onExpandClick,
57
- title: expandButtonTitle
44
+ var expandButton = (0, _react.useMemo)(function () {
45
+ return (0, _react2.jsx)(_i18n.EuiI18n, {
46
+ key: 'expand',
47
+ token: "euiDataGridCellActions.expandButtonTitle",
48
+ default: "Click or hit enter to interact with cell content"
49
+ }, function (expandButtonTitle) {
50
+ return (0, _react2.jsx)(_button_icon.EuiButtonIcon, {
51
+ className: "euiDataGridRowCell__actionButtonIcon euiDataGridRowCell__expandCell",
52
+ "data-test-subj": "euiDataGridCellExpandButton",
53
+ display: "fill",
54
+ color: "primary",
55
+ iconSize: "m",
56
+ iconType: "expandMini",
57
+ "aria-hidden": true,
58
+ onClick: onExpandClick,
59
+ title: expandButtonTitle
60
+ });
58
61
  });
59
- });
62
+ }, [onExpandClick]);
60
63
  var additionalButtons = (0, _react.useMemo)(function () {
61
64
  if (!column || !Array.isArray(column === null || column === void 0 ? void 0 : column.cellActions)) return [];
62
65
  var ButtonComponent = function ButtonComponent(props) {
@@ -87,9 +90,12 @@ var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
87
90
  });
88
91
  });
89
92
  }, [column, colIndex, rowIndex]);
90
- return (0, _react2.jsx)("div", {
93
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
91
94
  className: "euiDataGridRowCell__actions"
92
- }, [].concat(_toConsumableArray(additionalButtons), [expandButton]));
95
+ }, [].concat(_toConsumableArray(additionalButtons), [expandButton])), (0, _react2.jsx)("div", {
96
+ ref: popoverAnchorRef,
97
+ "data-test-subject": "cellPopoverAnchor"
98
+ }));
93
99
  };
94
100
  exports.EuiDataGridCellActions = EuiDataGridCellActions;
95
101
  var EuiDataGridCellPopoverActions = function EuiDataGridCellPopoverActions(_ref2) {