@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
@@ -7,7 +7,7 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
7
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
8
  import _extends from "@babel/runtime/helpers/extends";
9
9
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
10
- var _excluded = ["renderCellValue", "cellContext", "column", "setCellContentsRef", "rowIndex", "colIndex", "ariaRowIndex", "rowHeight", "rowHeightUtils", "isControlColumn", "isFocused", "cellActions"],
10
+ var _excluded = ["renderCellValue", "cellContext", "column", "setCellContentsRef", "rowIndex", "colIndex", "ariaRowIndex", "rowHeight", "rowHeightUtils", "isControlColumn", "isFocused", "showCellActions", "onExpandClick", "popoverAnchorRef"],
11
11
  _excluded2 = ["width", "popoverContext", "interactiveCellId", "columnType", "className", "column", "style", "rowHeightUtils", "rowHeightsOptions", "rowManager", "pagination"],
12
12
  _excluded3 = ["isExpandable", "style", "className", "data-test-subj"];
13
13
  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; }
@@ -23,7 +23,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
23
23
  */
24
24
 
25
25
  import classNames from 'classnames';
26
- import React, { Component, createRef, memo } from 'react';
26
+ import React, { Component, createRef, memo, useMemo } from 'react';
27
27
  import { createPortal } from 'react-dom';
28
28
  import { IS_JEST_ENVIRONMENT } from '../../../../utils';
29
29
  import { keys } from '../../../../services';
@@ -48,16 +48,25 @@ var EuiDataGridCellContent = /*#__PURE__*/memo(function (_ref) {
48
48
  rowHeightUtils = _ref.rowHeightUtils,
49
49
  isControlColumn = _ref.isControlColumn,
50
50
  isFocused = _ref.isFocused,
51
- cellActions = _ref.cellActions,
51
+ showCellActions = _ref.showCellActions,
52
+ onExpandClick = _ref.onExpandClick,
53
+ popoverAnchorRef = _ref.popoverAnchorRef,
52
54
  rest = _objectWithoutProperties(_ref, _excluded);
53
- // React is more permissible than the TS types indicate
55
+ // React is more permissive than the TS types indicate
54
56
  var CellElement = renderCellValue;
55
- var cellHeightType = (rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getHeightType(rowHeight)) || 'default';
56
- var classes = classNames('euiDataGridRowCell__content', "euiDataGridRowCell__content--".concat(cellHeightType, "Height"), !isControlColumn && {
57
- 'eui-textBreakWord': cellHeightType !== 'default',
58
- 'eui-textTruncate': cellHeightType === 'default'
59
- });
60
- var cellContent = ___EmotionJSX("div", {
57
+ var cellHeightType = useMemo(function () {
58
+ return (rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getHeightType(rowHeight)) || 'default';
59
+ }, [rowHeightUtils, rowHeight]);
60
+ var classes = useMemo(function () {
61
+ return classNames('euiDataGridRowCell__content', "euiDataGridRowCell__content--".concat(cellHeightType, "Height"), !isControlColumn && {
62
+ 'eui-textBreakWord': cellHeightType !== 'default',
63
+ 'eui-textTruncate': cellHeightType === 'default'
64
+ });
65
+ }, [cellHeightType, isControlColumn]);
66
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(RenderTruncatedCellContent, {
67
+ hasLineCountTruncation: cellHeightType === 'lineCount' && !isControlColumn,
68
+ rowHeight: rowHeight
69
+ }, ___EmotionJSX("div", {
61
70
  ref: setCellContentsRef,
62
71
  "data-datagrid-cellcontent": true,
63
72
  className: classes
@@ -67,15 +76,7 @@ var EuiDataGridCellContent = /*#__PURE__*/memo(function (_ref) {
67
76
  rowIndex: rowIndex,
68
77
  colIndex: colIndex,
69
78
  schema: (column === null || column === void 0 ? void 0 : column.schema) || rest.columnType
70
- }, cellContext, rest)));
71
- if (cellHeightType === 'lineCount' && !isControlColumn) {
72
- var lines = rowHeightUtils.getLineCount(rowHeight);
73
- cellContent = ___EmotionJSX(EuiTextBlockTruncate, {
74
- lines: lines,
75
- cloneElement: true
76
- }, cellContent);
77
- }
78
- var screenReaderText = ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("p", {
79
+ }, cellContext, rest)))), ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("p", {
79
80
  hidden: !isFocused
80
81
  }, '- ', ___EmotionJSX(EuiI18n, {
81
82
  token: "euiDataGridCell.position",
@@ -85,11 +86,16 @@ var EuiDataGridCellContent = /*#__PURE__*/memo(function (_ref) {
85
86
  col: colIndex + 1,
86
87
  row: ariaRowIndex
87
88
  }
88
- }), cellActions && ___EmotionJSX(React.Fragment, null, '. ', ___EmotionJSX(EuiI18n, {
89
+ }), showCellActions && ___EmotionJSX(React.Fragment, null, '. ', ___EmotionJSX(EuiI18n, {
89
90
  token: "euiDataGridCell.expansionEnterPrompt",
90
91
  default: "Press the Enter key to expand this cell."
91
- }))));
92
- return ___EmotionJSX(React.Fragment, null, cellContent, screenReaderText, cellActions);
92
+ })))), showCellActions && ___EmotionJSX(EuiDataGridCellActions, {
93
+ rowIndex: rowIndex,
94
+ colIndex: colIndex,
95
+ column: column,
96
+ onExpandClick: onExpandClick,
97
+ popoverAnchorRef: popoverAnchorRef
98
+ }));
93
99
  });
94
100
  EuiDataGridCellContent.displayName = 'EuiDataGridCellContent';
95
101
  export var EuiDataGridCell = /*#__PURE__*/function (_Component) {
@@ -416,6 +422,7 @@ export var EuiDataGridCell = /*#__PURE__*/function (_Component) {
416
422
  if (nextProps.style.height !== this.props.style.height) return true;
417
423
  if (nextProps.style.width !== this.props.style.width) return true;
418
424
  }
425
+ if (nextProps.cellContext !== this.props.cellContext) return true;
419
426
  if (nextState.cellProps !== this.state.cellProps) return true;
420
427
  if (nextState.isFocused !== this.state.isFocused) return true;
421
428
  if (nextState.isHovered !== this.state.isHovered) return true;
@@ -465,21 +472,16 @@ export var EuiDataGridCell = /*#__PURE__*/function (_Component) {
465
472
  lineHeight: (_rowHeightsOptions$li = rowHeightsOptions === null || rowHeightsOptions === void 0 ? void 0 : rowHeightsOptions.lineHeight) !== null && _rowHeightsOptions$li !== void 0 ? _rowHeightsOptions$li : undefined
466
473
  }, cellPropsStyle);
467
474
  var rowHeight = rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getRowHeightOption(rowIndex, rowHeightsOptions);
468
- var cellContentProps = _objectSpread(_objectSpread({}, rest), {}, {
469
- setCellProps: this.setCellProps,
470
- column: column,
471
- columnType: columnType,
472
- isExpandable: isExpandable,
473
- isExpanded: popoverIsOpen,
474
- isDetails: false,
475
- isFocused: this.state.isFocused,
476
- setCellContentsRef: this.setCellContentsRef,
477
- rowHeight: rowHeight,
478
- rowHeightUtils: rowHeightUtils,
479
- isControlColumn: cellClasses.includes('euiDataGridRowCell--controlColumn'),
480
- ariaRowIndex: ariaRowIndex
481
- });
482
- var cell = ___EmotionJSX("div", _extends({
475
+ var row = rowManager && !IS_JEST_ENVIRONMENT ? rowManager.getRow({
476
+ rowIndex: rowIndex,
477
+ visibleRowIndex: visibleRowIndex,
478
+ top: style.top,
479
+ // comes in as a `{float}px` string from react-window
480
+ height: style.height // comes in as an integer from react-window
481
+ }) : undefined;
482
+ return ___EmotionJSX(RenderCellInRow, {
483
+ row: row
484
+ }, ___EmotionJSX("div", _extends({
483
485
  role: "gridcell",
484
486
  "aria-rowindex": ariaRowIndex,
485
487
  tabIndex: this.state.isFocused ? 0 : -1,
@@ -503,26 +505,49 @@ export var EuiDataGridCell = /*#__PURE__*/function (_Component) {
503
505
  cellEl: this.cellRef.current,
504
506
  updateCellFocusContext: this.updateCellFocusContext,
505
507
  renderFocusTrap: !isExpandable
506
- }, ___EmotionJSX(EuiDataGridCellContent, _extends({}, cellContentProps, {
507
- cellActions: showCellActions && ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiDataGridCellActions, {
508
- rowIndex: rowIndex,
509
- colIndex: colIndex,
510
- column: column,
511
- onExpandClick: this.handleCellExpansionClick
512
- }), ___EmotionJSX("div", {
513
- ref: this.popoverAnchorRef,
514
- "data-test-subject": "cellPopoverAnchor"
515
- }))
516
- }))));
517
- return rowManager && !IS_JEST_ENVIRONMENT ? /*#__PURE__*/createPortal(cell, rowManager.getRow({
508
+ }, ___EmotionJSX(EuiDataGridCellContent, _extends({}, rest, {
509
+ setCellProps: this.setCellProps,
510
+ column: column,
511
+ columnType: columnType,
512
+ isExpandable: isExpandable,
513
+ isExpanded: popoverIsOpen,
514
+ onExpandClick: this.handleCellExpansionClick,
515
+ popoverAnchorRef: this.popoverAnchorRef,
516
+ showCellActions: showCellActions,
517
+ isFocused: this.state.isFocused,
518
+ setCellContentsRef: this.setCellContentsRef,
519
+ rowHeight: rowHeight,
520
+ rowHeightUtils: rowHeightUtils,
521
+ isControlColumn: cellClasses.includes('euiDataGridRowCell--controlColumn'),
522
+ ariaRowIndex: ariaRowIndex,
518
523
  rowIndex: rowIndex,
519
- visibleRowIndex: visibleRowIndex,
520
- top: style.top,
521
- // comes in as a `{float}px` string from react-window
522
- height: style.height // comes in as an integer from react-window
523
- })) : cell;
524
+ colIndex: colIndex
525
+ })))));
524
526
  }
525
527
  }]);
526
528
  return EuiDataGridCell;
527
529
  }(Component);
528
- _defineProperty(EuiDataGridCell, "contextType", DataGridFocusContext);
530
+
531
+ /**
532
+ * Function component utilities for conditional rendering.
533
+ * Used for DRYness and performance
534
+ */
535
+ _defineProperty(EuiDataGridCell, "contextType", DataGridFocusContext);
536
+ var RenderCellInRow = /*#__PURE__*/memo(function (_ref2) {
537
+ var row = _ref2.row,
538
+ children = _ref2.children;
539
+ return row ? /*#__PURE__*/createPortal(children, row) : children;
540
+ });
541
+ RenderCellInRow.displayName = 'RenderCellInRow';
542
+ var RenderTruncatedCellContent = /*#__PURE__*/memo(function (_ref3) {
543
+ var children = _ref3.children,
544
+ hasLineCountTruncation = _ref3.hasLineCountTruncation,
545
+ rowHeight = _ref3.rowHeight;
546
+ // If `hasLineCountTruncation` is true, we can rely on rowHeight being the correct type
547
+ var lines = hasLineCountTruncation ? rowHeight.lineCount : undefined;
548
+ return lines ? ___EmotionJSX(EuiTextBlockTruncate, {
549
+ lines: lines,
550
+ cloneElement: true
551
+ }, children) : children;
552
+ });
553
+ RenderTruncatedCellContent.displayName = 'RenderTruncatedCellContent';
@@ -18,6 +18,7 @@ import { EuiPopoverFooter } from '../../../popover';
18
18
  import { jsx as ___EmotionJSX } from "@emotion/react";
19
19
  export var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
20
20
  var onExpandClick = _ref.onExpandClick,
21
+ popoverAnchorRef = _ref.popoverAnchorRef,
21
22
  column = _ref.column,
22
23
  rowIndex = _ref.rowIndex,
23
24
  colIndex = _ref.colIndex;
@@ -25,23 +26,25 @@ export var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
25
26
  // column.cellActions is present (regardless of column.isExpandable).
26
27
  // This is because cell actions are not otherwise accessible to keyboard
27
28
  // or screen reader users
28
- var expandButton = ___EmotionJSX(EuiI18n, {
29
- key: 'expand',
30
- token: "euiDataGridCellActions.expandButtonTitle",
31
- default: "Click or hit enter to interact with cell content"
32
- }, function (expandButtonTitle) {
33
- return ___EmotionJSX(EuiButtonIcon, {
34
- className: "euiDataGridRowCell__actionButtonIcon euiDataGridRowCell__expandCell",
35
- "data-test-subj": "euiDataGridCellExpandButton",
36
- display: "fill",
37
- color: "primary",
38
- iconSize: "m",
39
- iconType: "expandMini",
40
- "aria-hidden": true,
41
- onClick: onExpandClick,
42
- title: expandButtonTitle
29
+ var expandButton = useMemo(function () {
30
+ return ___EmotionJSX(EuiI18n, {
31
+ key: 'expand',
32
+ token: "euiDataGridCellActions.expandButtonTitle",
33
+ default: "Click or hit enter to interact with cell content"
34
+ }, function (expandButtonTitle) {
35
+ return ___EmotionJSX(EuiButtonIcon, {
36
+ className: "euiDataGridRowCell__actionButtonIcon euiDataGridRowCell__expandCell",
37
+ "data-test-subj": "euiDataGridCellExpandButton",
38
+ display: "fill",
39
+ color: "primary",
40
+ iconSize: "m",
41
+ iconType: "expandMini",
42
+ "aria-hidden": true,
43
+ onClick: onExpandClick,
44
+ title: expandButtonTitle
45
+ });
43
46
  });
44
- });
47
+ }, [onExpandClick]);
45
48
  var additionalButtons = useMemo(function () {
46
49
  if (!column || !Array.isArray(column === null || column === void 0 ? void 0 : column.cellActions)) return [];
47
50
  var ButtonComponent = function ButtonComponent(props) {
@@ -72,9 +75,12 @@ export var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
72
75
  });
73
76
  });
74
77
  }, [column, colIndex, rowIndex]);
75
- return ___EmotionJSX("div", {
78
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX("div", {
76
79
  className: "euiDataGridRowCell__actions"
77
- }, [].concat(_toConsumableArray(additionalButtons), [expandButton]));
80
+ }, [].concat(_toConsumableArray(additionalButtons), [expandButton])), ___EmotionJSX("div", {
81
+ ref: popoverAnchorRef,
82
+ "data-test-subject": "cellPopoverAnchor"
83
+ }));
78
84
  };
79
85
  export var EuiDataGridCellPopoverActions = function EuiDataGridCellPopoverActions(_ref2) {
80
86
  var rowIndex = _ref2.rowIndex,
@@ -11,7 +11,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
11
11
  * Side Public License, v 1.
12
12
  */
13
13
 
14
- import React, { createContext, useState, useCallback } from 'react';
14
+ import React, { createContext, useState, useCallback, useMemo } from 'react';
15
15
  import classNames from 'classnames';
16
16
  import { keys } from '../../../../services';
17
17
  import { EuiWrappingPopover } from '../../../popover';
@@ -29,7 +29,6 @@ export var DataGridCellPopoverContext = /*#__PURE__*/createContext({
29
29
  setCellPopoverProps: function setCellPopoverProps() {}
30
30
  });
31
31
  export var useCellPopover = function useCellPopover() {
32
- var _cellPopoverProps$pan;
33
32
  // Current open state & cell location are handled here
34
33
  var _useState = useState(false),
35
34
  _useState2 = _slicedToArray(_useState, 2),
@@ -80,16 +79,6 @@ export var useCellPopover = function useCellPopover() {
80
79
  });
81
80
  setPopoverIsOpen(true);
82
81
  }, [popoverIsOpen, cellLocation]);
83
- var cellPopoverContext = {
84
- popoverIsOpen: popoverIsOpen,
85
- closeCellPopover: closeCellPopover,
86
- openCellPopover: openCellPopover,
87
- cellLocation: cellLocation,
88
- setPopoverAnchor: setPopoverAnchor,
89
- setPopoverAnchorPosition: setPopoverAnchorPosition,
90
- setPopoverContent: setPopoverContent,
91
- setCellPopoverProps: setCellPopoverProps
92
- };
93
82
 
94
83
  // Override the default EuiPopover `onClickOutside` behavior, since the toggling
95
84
  // popover button isn't actually the DOM node we pass to `button`. Otherwise,
@@ -101,52 +90,71 @@ export var useCellPopover = function useCellPopover() {
101
90
  closeCellPopover();
102
91
  }
103
92
  }, [popoverAnchor, closeCellPopover]);
93
+ var onKeyDown = useCallback(function (event) {
94
+ if (event.key === keys.F2 || event.key === keys.ESCAPE) {
95
+ var _popoverAnchor$parent3, _popoverAnchor$parent4;
96
+ event.preventDefault();
97
+ event.stopPropagation();
98
+ closeCellPopover();
99
+ 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;
104
100
 
105
- // Note that this popover is rendered once at the top grid level, rather than one popover per cell
106
- var cellPopover = popoverIsOpen && popoverAnchor && ___EmotionJSX(EuiWrappingPopover, _extends({
107
- isOpen: popoverIsOpen,
108
- display: "block",
109
- hasArrow: false,
110
- panelPaddingSize: "s",
111
- anchorPosition: popoverAnchorPosition,
112
- repositionToCrossAxis: false
113
- }, cellPopoverProps, {
114
- focusTrapProps: {
115
- onClickOutside: onClickOutside,
116
- clickOutsideDisables: false
117
- },
118
- panelProps: _objectSpread({
119
- 'data-test-subj': 'euiDataGridExpansionPopover'
120
- }, cellPopoverProps.panelProps || {}),
121
- panelClassName: classNames('euiDataGridRowCell__popover', cellPopoverProps.panelClassName, (_cellPopoverProps$pan = cellPopoverProps.panelProps) === null || _cellPopoverProps$pan === void 0 ? void 0 : _cellPopoverProps$pan.className),
122
- panelStyle: {
123
- maxInlineSize: "min(75vw, max(".concat(popoverAnchor.parentElement.offsetWidth, "px, 400px))"),
124
- maxBlockSize: '50vh'
125
- },
126
- onKeyDown: function onKeyDown(event) {
127
- if (event.key === keys.F2 || event.key === keys.ESCAPE) {
128
- var _popoverAnchor$parent3, _popoverAnchor$parent4;
129
- event.preventDefault();
130
- event.stopPropagation();
131
- closeCellPopover();
132
- 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;
101
+ // Prevent cell animation flash while focus is being shifted between popover and cell
102
+ cell === null || cell === void 0 ? void 0 : cell.setAttribute('data-keyboard-closing', 'true');
103
+ // Ensure focus is returned to the parent cell, and remove animation stopgap
104
+ requestAnimationFrame(function () {
105
+ popoverAnchor === null || popoverAnchor === void 0 ? void 0 : popoverAnchor.parentElement.focus();
106
+ cell === null || cell === void 0 ? void 0 : cell.removeAttribute('data-keyboard-closing');
107
+ });
108
+ }
109
+ }, [popoverAnchor, closeCellPopover]);
110
+ var cellPopoverContext = useMemo(function () {
111
+ return {
112
+ popoverIsOpen: popoverIsOpen,
113
+ closeCellPopover: closeCellPopover,
114
+ openCellPopover: openCellPopover,
115
+ cellLocation: cellLocation,
116
+ setPopoverAnchorPosition: setPopoverAnchorPosition,
117
+ setPopoverAnchor: setPopoverAnchor,
118
+ setPopoverContent: setPopoverContent,
119
+ setCellPopoverProps: setCellPopoverProps
120
+ };
121
+ }, [popoverIsOpen, closeCellPopover, openCellPopover, cellLocation]);
122
+ var cellPopover = useMemo(function () {
123
+ var _cellPopoverProps$pan;
124
+ if (!popoverIsOpen || !popoverAnchor) return null;
133
125
 
134
- // Prevent cell animation flash while focus is being shifted between popover and cell
135
- cell === null || cell === void 0 ? void 0 : cell.setAttribute('data-keyboard-closing', 'true');
136
- // Ensure focus is returned to the parent cell, and remove animation stopgap
137
- requestAnimationFrame(function () {
138
- popoverAnchor.parentElement.focus();
139
- cell === null || cell === void 0 ? void 0 : cell.removeAttribute('data-keyboard-closing');
140
- });
141
- }
142
- },
143
- button: popoverAnchor,
144
- closePopover: closeCellPopover
145
- }), popoverContent);
146
- return {
147
- cellPopoverContext: cellPopoverContext,
148
- cellPopover: cellPopover
149
- };
126
+ // Note that this popover is rendered once at the top grid level, rather than one popover per cell
127
+ return ___EmotionJSX(EuiWrappingPopover, _extends({
128
+ isOpen: popoverIsOpen,
129
+ display: "block",
130
+ hasArrow: false,
131
+ panelPaddingSize: "s",
132
+ anchorPosition: popoverAnchorPosition,
133
+ repositionToCrossAxis: false
134
+ }, cellPopoverProps, {
135
+ focusTrapProps: {
136
+ onClickOutside: onClickOutside,
137
+ clickOutsideDisables: false
138
+ },
139
+ panelProps: _objectSpread({
140
+ 'data-test-subj': 'euiDataGridExpansionPopover'
141
+ }, cellPopoverProps.panelProps || {}),
142
+ panelClassName: classNames('euiDataGridRowCell__popover', cellPopoverProps.panelClassName, (_cellPopoverProps$pan = cellPopoverProps.panelProps) === null || _cellPopoverProps$pan === void 0 ? void 0 : _cellPopoverProps$pan.className),
143
+ panelStyle: {
144
+ maxInlineSize: "min(75vw, max(".concat(popoverAnchor.parentElement.offsetWidth, "px, 400px))"),
145
+ maxBlockSize: '50vh'
146
+ },
147
+ onKeyDown: onKeyDown,
148
+ button: popoverAnchor,
149
+ closePopover: closeCellPopover
150
+ }), popoverContent);
151
+ }, [popoverIsOpen, popoverAnchor, popoverContent, cellPopoverProps, closeCellPopover, onClickOutside, onKeyDown, popoverAnchorPosition]);
152
+ return useMemo(function () {
153
+ return {
154
+ cellPopoverContext: cellPopoverContext,
155
+ cellPopover: cellPopover
156
+ };
157
+ }, [cellPopoverContext, cellPopover]);
150
158
  };
151
159
 
152
160
  /**
@@ -10,9 +10,9 @@ var _excluded = ["colIndex", "visibleRowIndex", "style", "schema", "schemaDetect
10
10
  * Side Public License, v 1.
11
11
  */
12
12
 
13
- import React, { useContext, useMemo } from 'react';
13
+ import React, { useContext, useMemo, memo } from 'react';
14
14
  import classNames from 'classnames';
15
- import { DataGridSortingContext } from '../../utils/sorting';
15
+ import { DataGridSortedContext } from '../../utils/sorting';
16
16
  import { DataGridCellPopoverContext } from './data_grid_cell_popover';
17
17
  import { EuiDataGridCell } from './data_grid_cell';
18
18
  import { jsx as ___EmotionJSX } from "@emotion/react";
@@ -21,7 +21,7 @@ import { jsx as ___EmotionJSX } from "@emotion/react";
21
21
  * It grabs context, determines the type of cell being rendered
22
22
  * (e.g. control vs data cell), & sets shared props between all cells
23
23
  */
24
- export var Cell = function Cell(_ref) {
24
+ export var CellWrapper = /*#__PURE__*/memo(function (_ref) {
25
25
  var colIndex = _ref.colIndex,
26
26
  visibleRowIndex = _ref.visibleRowIndex,
27
27
  style = _ref.style,
@@ -44,9 +44,8 @@ export var Cell = function Cell(_ref) {
44
44
  rowManager = _ref.rowManager,
45
45
  rest = _objectWithoutProperties(_ref, _excluded);
46
46
  var popoverContext = useContext(DataGridCellPopoverContext);
47
- var _useContext = useContext(DataGridSortingContext),
47
+ var _useContext = useContext(DataGridSortedContext),
48
48
  getCorrectRowIndex = _useContext.getCorrectRowIndex;
49
- var cellContent;
50
49
  var isFirstColumn = colIndex === 0;
51
50
  var isLastColumn = colIndex === visibleColCount - 1;
52
51
  var isLeadingControlColumn = colIndex < leadingControlColumns.length;
@@ -60,31 +59,33 @@ export var Cell = function Cell(_ref) {
60
59
  return column !== null && column !== void 0 && column.schema ? (column === null || column === void 0 ? void 0 : column.schema) === row.type : columnId === row.type;
61
60
  })[0]) === null || _schemaDetectors$filt === void 0 ? void 0 : _schemaDetectors$filt.textTransform;
62
61
  }, [columnId, column === null || column === void 0 ? void 0 : column.schema, schemaDetectors]);
63
- var classes = classNames(_defineProperty({
64
- 'euiDataGridRowCell--firstColumn': isFirstColumn,
65
- 'euiDataGridRowCell--lastColumn': isLastColumn,
66
- 'euiDataGridRowCell--controlColumn': isLeadingControlColumn || isTrailingControlColumn
67
- }, "euiDataGridRowCell--".concat(textTransform), textTransform));
68
- var sharedCellProps = {
69
- rowIndex: getCorrectRowIndex(visibleRowIndex),
70
- visibleRowIndex: visibleRowIndex,
71
- colIndex: colIndex,
72
- interactiveCellId: interactiveCellId,
73
- className: classes,
74
- style: style,
75
- rowHeightsOptions: rowHeightsOptions,
76
- rowHeightUtils: rowHeightUtils,
77
- setRowHeight: isFirstColumn ? setRowHeight : undefined,
78
- rowManager: rowManager,
79
- popoverContext: popoverContext,
80
- pagination: pagination,
81
- cellContext: cellContext
82
- };
62
+ var sharedCellProps = useMemo(function () {
63
+ var classes = classNames(_defineProperty({
64
+ 'euiDataGridRowCell--firstColumn': isFirstColumn,
65
+ 'euiDataGridRowCell--lastColumn': isLastColumn,
66
+ 'euiDataGridRowCell--controlColumn': isLeadingControlColumn || isTrailingControlColumn
67
+ }, "euiDataGridRowCell--".concat(textTransform), textTransform));
68
+ return {
69
+ rowIndex: getCorrectRowIndex(visibleRowIndex),
70
+ visibleRowIndex: visibleRowIndex,
71
+ colIndex: colIndex,
72
+ interactiveCellId: interactiveCellId,
73
+ className: classes,
74
+ style: style,
75
+ rowHeightsOptions: rowHeightsOptions,
76
+ rowHeightUtils: rowHeightUtils,
77
+ setRowHeight: isFirstColumn ? setRowHeight : undefined,
78
+ rowManager: rowManager,
79
+ popoverContext: popoverContext,
80
+ pagination: pagination,
81
+ cellContext: cellContext
82
+ };
83
+ }, [colIndex, setRowHeight, visibleRowIndex, getCorrectRowIndex, interactiveCellId, style, rowHeightsOptions, rowHeightUtils, rowManager, popoverContext, pagination, cellContext, isFirstColumn, isLastColumn, isLeadingControlColumn, isTrailingControlColumn, textTransform]);
83
84
  if (isLeadingControlColumn) {
84
85
  var leadingColumn = leadingControlColumns[colIndex];
85
86
  var id = leadingColumn.id,
86
87
  rowCellRender = leadingColumn.rowCellRender;
87
- cellContent = ___EmotionJSX(EuiDataGridCell, _extends({}, sharedCellProps, {
88
+ return ___EmotionJSX(EuiDataGridCell, _extends({}, sharedCellProps, {
88
89
  columnId: id,
89
90
  width: leadingColumn.width,
90
91
  renderCellValue: rowCellRender,
@@ -96,7 +97,7 @@ export var Cell = function Cell(_ref) {
96
97
  var trailingColumn = trailingControlColumns[trailingcolIndex];
97
98
  var _id = trailingColumn.id,
98
99
  _rowCellRender = trailingColumn.rowCellRender;
99
- cellContent = ___EmotionJSX(EuiDataGridCell, _extends({}, sharedCellProps, {
100
+ return ___EmotionJSX(EuiDataGridCell, _extends({}, sharedCellProps, {
100
101
  columnId: _id,
101
102
  width: trailingColumn.width,
102
103
  renderCellValue: _rowCellRender,
@@ -105,9 +106,9 @@ export var Cell = function Cell(_ref) {
105
106
  } else {
106
107
  // this is a normal data cell
107
108
  var columnType = schema[columnId] ? schema[columnId].columnType : null;
108
- var isExpandable = column.isExpandable !== undefined ? column.isExpandable : true;
109
+ var isExpandable = (column === null || column === void 0 ? void 0 : column.isExpandable) !== undefined ? column === null || column === void 0 ? void 0 : column.isExpandable : true;
109
110
  var width = columnWidths[columnId] || defaultColumnWidth;
110
- cellContent = ___EmotionJSX(EuiDataGridCell, _extends({}, sharedCellProps, {
111
+ return ___EmotionJSX(EuiDataGridCell, _extends({}, sharedCellProps, {
111
112
  columnId: columnId,
112
113
  column: column,
113
114
  columnType: columnType,
@@ -118,5 +119,5 @@ export var Cell = function Cell(_ref) {
118
119
  isExpandable: isExpandable
119
120
  }, rest));
120
121
  }
121
- return cellContent;
122
- };
122
+ });
123
+ CellWrapper.displayName = 'CellWrapper';
@@ -7,5 +7,5 @@
7
7
  */
8
8
 
9
9
  export { EuiDataGridCell } from './data_grid_cell';
10
- export { Cell } from './data_grid_cell_wrapper';
10
+ export { CellWrapper } from './data_grid_cell_wrapper';
11
11
  export { DataGridCellPopoverContext, useCellPopover } from './data_grid_cell_popover';