@elastic/eui 93.2.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 (418) 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/dist/eui_theme_dark.css +3 -0
  5. package/dist/eui_theme_dark.min.css +1 -1
  6. package/dist/eui_theme_light.css +3 -0
  7. package/dist/eui_theme_light.min.css +1 -1
  8. package/es/components/breadcrumbs/_breadcrumb_content.js +362 -0
  9. package/es/components/breadcrumbs/_breadcrumb_content.styles.js +48 -0
  10. package/es/components/breadcrumbs/breadcrumb.js +10 -324
  11. package/es/components/breadcrumbs/breadcrumb.styles.js +5 -27
  12. package/es/components/breadcrumbs/breadcrumbs.js +8 -6
  13. package/es/components/breadcrumbs/types.js +1 -0
  14. package/es/components/button/button_display/_button_display.js +2 -3
  15. package/es/components/button/button_empty/button_empty.js +2 -3
  16. package/es/components/button/button_group/button_group.js +19 -7
  17. package/es/components/button/button_group/button_group.styles.js +11 -14
  18. package/es/components/button/button_group/button_group_button.js +59 -5
  19. package/es/components/button/button_group/button_group_button.styles.js +39 -3
  20. package/es/components/button/button_icon/button_icon.js +4 -5
  21. package/es/components/button/button_icon/button_icon.styles.js +11 -3
  22. package/es/components/datagrid/body/cell/data_grid_cell.js +102 -59
  23. package/es/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  24. package/es/components/datagrid/body/cell/data_grid_cell_popover.js +64 -56
  25. package/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  26. package/es/components/datagrid/body/cell/index.js +1 -1
  27. package/es/components/datagrid/body/data_grid_body.js +14 -0
  28. package/es/components/datagrid/body/data_grid_body_custom.js +54 -35
  29. package/es/components/datagrid/body/data_grid_body_virtualized.js +87 -56
  30. package/es/components/datagrid/body/data_grid_row_manager.js +7 -5
  31. package/es/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  32. package/es/components/datagrid/body/header/data_grid_control_header_cell.js +5 -4
  33. package/es/components/datagrid/body/header/data_grid_header_cell.js +73 -53
  34. package/es/components/datagrid/body/header/data_grid_header_row.js +15 -551
  35. package/es/components/datagrid/body/header/use_data_grid_header.js +7 -6
  36. package/es/components/datagrid/controls/column_selector.js +126 -123
  37. package/es/components/datagrid/controls/column_sorting.js +605 -103
  38. package/es/components/datagrid/controls/column_sorting_draggable.js +24 -22
  39. package/es/components/datagrid/controls/display_selector.js +109 -107
  40. package/es/components/datagrid/data_grid.a11y.js +13 -12
  41. package/es/components/datagrid/data_grid.js +47 -22
  42. package/es/components/datagrid/utils/col_widths.js +12 -8
  43. package/es/components/datagrid/utils/focus.js +10 -8
  44. package/es/components/datagrid/utils/grid_height_width.js +31 -30
  45. package/es/components/datagrid/utils/ref.js +1 -1
  46. package/es/components/datagrid/utils/row_heights.js +2 -2
  47. package/es/components/datagrid/utils/sorting.js +29 -27
  48. package/es/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  49. package/es/components/date_picker/super_date_picker/super_update_button.js +57 -29
  50. package/es/components/facet/facet_button.styles.js +1 -2
  51. package/es/components/flex/flex_grid.js +22 -8
  52. package/es/components/flex/flex_grid.styles.js +13 -6
  53. package/es/components/flex/flex_group.js +10 -11
  54. package/es/components/flex/flex_item.js +9 -11
  55. package/es/components/flex/flex_item.styles.js +107 -122
  56. package/es/components/flyout/flyout.js +16 -18
  57. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +7 -7
  58. package/es/components/icon/icon.js +13 -16
  59. package/es/components/icon/icon.styles.js +6 -9
  60. package/es/components/link/external_link_icon.js +11 -8
  61. package/es/components/link/link.js +2 -3
  62. package/es/components/link/link.styles.js +4 -10
  63. package/es/components/modal/confirm_modal.js +2 -1
  64. package/es/components/modal/modal.js +12 -3
  65. package/es/components/observer/resize_observer/resize_observer.js +15 -24
  66. package/es/components/page/page_header/page_header_content.js +4 -2
  67. package/es/components/progress/progress.styles.js +2 -2
  68. package/es/components/skeleton/skeleton_circle.js +2 -3
  69. package/es/components/skeleton/skeleton_rectangle.js +2 -3
  70. package/es/components/skeleton/skeleton_text.js +16 -12
  71. package/es/components/skeleton/skeleton_title.js +2 -3
  72. package/es/components/spacer/spacer.js +2 -3
  73. package/es/components/text/text.js +2 -3
  74. package/es/components/text/text_align.js +1 -2
  75. package/es/components/text/text_align.styles.js +5 -7
  76. package/es/components/text/text_color.js +2 -3
  77. package/es/components/title/title.js +2 -3
  78. package/es/components/title/title.styles.js +0 -7
  79. package/es/components/toast/global_toast_list.js +70 -73
  80. package/es/components/toast/toast.js +27 -42
  81. package/es/components/toast/toast.styles.js +2 -17
  82. package/es/global_styling/mixins/_typography.js +17 -6
  83. package/es/services/color/eui_palettes.js +21 -13
  84. package/es/services/color/index.js +1 -1
  85. package/es/services/hooks/index.js +1 -0
  86. package/es/services/hooks/useDeepEqual.js +23 -0
  87. package/es/services/index.js +1 -1
  88. package/es/services/theme/index.js +1 -1
  89. package/es/services/theme/style_memoization.js +47 -14
  90. package/es/themes/amsterdam/global_styling/mixins/button.js +47 -24
  91. package/eui.d.ts +2862 -2748
  92. package/i18ntokens.json +267 -267
  93. package/lib/components/breadcrumbs/_breadcrumb_content.js +372 -0
  94. package/lib/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  95. package/lib/components/breadcrumbs/breadcrumb.js +11 -328
  96. package/lib/components/breadcrumbs/breadcrumb.styles.js +5 -29
  97. package/lib/components/breadcrumbs/breadcrumbs.js +7 -5
  98. package/lib/components/breadcrumbs/types.js +5 -0
  99. package/lib/components/button/button_display/_button_display.js +1 -2
  100. package/lib/components/button/button_empty/button_empty.js +1 -2
  101. package/lib/components/button/button_group/button_group.js +18 -6
  102. package/lib/components/button/button_group/button_group.styles.js +11 -14
  103. package/lib/components/button/button_group/button_group_button.js +59 -5
  104. package/lib/components/button/button_group/button_group_button.styles.js +45 -11
  105. package/lib/components/button/button_icon/button_icon.js +3 -4
  106. package/lib/components/button/button_icon/button_icon.styles.js +10 -2
  107. package/lib/components/datagrid/body/cell/data_grid_cell.js +100 -58
  108. package/lib/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  109. package/lib/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  110. package/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  111. package/lib/components/datagrid/body/cell/index.js +2 -2
  112. package/lib/components/datagrid/body/data_grid_body.js +14 -0
  113. package/lib/components/datagrid/body/data_grid_body_custom.js +53 -34
  114. package/lib/components/datagrid/body/data_grid_body_virtualized.js +86 -55
  115. package/lib/components/datagrid/body/data_grid_row_manager.js +6 -4
  116. package/lib/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  117. package/lib/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  118. package/lib/components/datagrid/body/header/data_grid_header_cell.js +72 -52
  119. package/lib/components/datagrid/body/header/data_grid_header_row.js +14 -550
  120. package/lib/components/datagrid/body/header/use_data_grid_header.js +7 -6
  121. package/lib/components/datagrid/controls/column_selector.js +126 -123
  122. package/lib/components/datagrid/controls/column_sorting.js +615 -110
  123. package/lib/components/datagrid/controls/column_sorting_draggable.js +27 -22
  124. package/lib/components/datagrid/controls/display_selector.js +109 -107
  125. package/lib/components/datagrid/data_grid.a11y.js +13 -12
  126. package/lib/components/datagrid/data_grid.js +45 -20
  127. package/lib/components/datagrid/utils/col_widths.js +12 -8
  128. package/lib/components/datagrid/utils/focus.js +10 -8
  129. package/lib/components/datagrid/utils/grid_height_width.js +29 -28
  130. package/lib/components/datagrid/utils/ref.js +1 -1
  131. package/lib/components/datagrid/utils/row_heights.js +1 -1
  132. package/lib/components/datagrid/utils/sorting.js +31 -29
  133. package/lib/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  134. package/lib/components/date_picker/super_date_picker/super_update_button.js +57 -29
  135. package/lib/components/facet/facet_button.styles.js +1 -2
  136. package/lib/components/flex/flex_grid.js +23 -7
  137. package/lib/components/flex/flex_grid.styles.js +13 -6
  138. package/lib/components/flex/flex_group.js +10 -10
  139. package/lib/components/flex/flex_item.js +13 -13
  140. package/lib/components/flex/flex_item.styles.js +107 -122
  141. package/lib/components/flyout/flyout.js +16 -18
  142. package/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +7 -7
  143. package/lib/components/icon/icon.js +12 -15
  144. package/lib/components/icon/icon.styles.js +5 -8
  145. package/lib/components/link/external_link_icon.js +10 -7
  146. package/lib/components/link/link.js +1 -2
  147. package/lib/components/link/link.styles.js +6 -14
  148. package/lib/components/modal/confirm_modal.js +2 -1
  149. package/lib/components/modal/modal.js +12 -3
  150. package/lib/components/observer/resize_observer/resize_observer.js +15 -24
  151. package/lib/components/page/page_header/page_header_content.js +4 -2
  152. package/lib/components/progress/progress.styles.js +1 -1
  153. package/lib/components/skeleton/skeleton_circle.js +1 -2
  154. package/lib/components/skeleton/skeleton_rectangle.js +1 -2
  155. package/lib/components/skeleton/skeleton_text.js +18 -11
  156. package/lib/components/skeleton/skeleton_title.js +1 -2
  157. package/lib/components/spacer/spacer.js +1 -2
  158. package/lib/components/text/text.js +1 -2
  159. package/lib/components/text/text_align.js +1 -2
  160. package/lib/components/text/text_align.styles.js +5 -7
  161. package/lib/components/text/text_color.js +1 -2
  162. package/lib/components/title/title.js +1 -2
  163. package/lib/components/title/title.styles.js +2 -10
  164. package/lib/components/toast/global_toast_list.js +68 -71
  165. package/lib/components/toast/toast.js +25 -40
  166. package/lib/components/toast/toast.styles.js +11 -25
  167. package/lib/global_styling/mixins/_typography.js +27 -19
  168. package/lib/services/color/eui_palettes.js +24 -14
  169. package/lib/services/color/index.js +14 -0
  170. package/lib/services/hooks/index.js +11 -0
  171. package/lib/services/hooks/useDeepEqual.js +30 -0
  172. package/lib/services/index.js +15 -1
  173. package/lib/services/theme/index.js +6 -0
  174. package/lib/services/theme/style_memoization.js +49 -16
  175. package/lib/themes/amsterdam/global_styling/mixins/button.js +49 -25
  176. package/optimize/es/components/breadcrumbs/_breadcrumb_content.js +153 -0
  177. package/optimize/es/components/breadcrumbs/_breadcrumb_content.styles.js +48 -0
  178. package/optimize/es/components/breadcrumbs/breadcrumb.js +10 -109
  179. package/optimize/es/components/breadcrumbs/breadcrumb.styles.js +5 -27
  180. package/optimize/es/components/breadcrumbs/breadcrumbs.js +4 -4
  181. package/optimize/es/components/breadcrumbs/types.js +1 -0
  182. package/optimize/es/components/button/button_display/_button_display.js +2 -3
  183. package/optimize/es/components/button/button_empty/button_empty.js +2 -3
  184. package/optimize/es/components/button/button_group/button_group.js +5 -7
  185. package/optimize/es/components/button/button_group/button_group.styles.js +11 -14
  186. package/optimize/es/components/button/button_group/button_group_button.js +36 -4
  187. package/optimize/es/components/button/button_group/button_group_button.styles.js +39 -3
  188. package/optimize/es/components/button/button_icon/button_icon.js +4 -5
  189. package/optimize/es/components/button/button_icon/button_icon.styles.js +8 -3
  190. package/optimize/es/components/datagrid/body/cell/data_grid_cell.js +83 -56
  191. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  192. package/optimize/es/components/datagrid/body/cell/data_grid_cell_popover.js +64 -56
  193. package/optimize/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  194. package/optimize/es/components/datagrid/body/cell/index.js +1 -1
  195. package/optimize/es/components/datagrid/body/data_grid_body_custom.js +40 -35
  196. package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +71 -49
  197. package/optimize/es/components/datagrid/body/data_grid_row_manager.js +7 -5
  198. package/optimize/es/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  199. package/optimize/es/components/datagrid/body/header/data_grid_control_header_cell.js +4 -3
  200. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +65 -49
  201. package/optimize/es/components/datagrid/body/header/data_grid_header_row.js +15 -13
  202. package/optimize/es/components/datagrid/body/header/use_data_grid_header.js +7 -6
  203. package/optimize/es/components/datagrid/controls/column_selector.js +126 -123
  204. package/optimize/es/components/datagrid/controls/column_sorting.js +121 -103
  205. package/optimize/es/components/datagrid/controls/column_sorting_draggable.js +24 -22
  206. package/optimize/es/components/datagrid/controls/display_selector.js +109 -107
  207. package/optimize/es/components/datagrid/data_grid.a11y.js +13 -12
  208. package/optimize/es/components/datagrid/data_grid.js +47 -22
  209. package/optimize/es/components/datagrid/utils/col_widths.js +9 -5
  210. package/optimize/es/components/datagrid/utils/focus.js +10 -8
  211. package/optimize/es/components/datagrid/utils/grid_height_width.js +31 -30
  212. package/optimize/es/components/datagrid/utils/ref.js +1 -1
  213. package/optimize/es/components/datagrid/utils/row_heights.js +2 -2
  214. package/optimize/es/components/datagrid/utils/sorting.js +29 -27
  215. package/optimize/es/components/date_picker/super_date_picker/super_update_button.js +49 -29
  216. package/optimize/es/components/facet/facet_button.styles.js +1 -2
  217. package/optimize/es/components/flex/flex_grid.js +19 -8
  218. package/optimize/es/components/flex/flex_grid.styles.js +13 -6
  219. package/optimize/es/components/flex/flex_group.js +9 -10
  220. package/optimize/es/components/flex/flex_item.js +9 -11
  221. package/optimize/es/components/flex/flex_item.styles.js +107 -122
  222. package/optimize/es/components/flyout/flyout.js +16 -18
  223. package/optimize/es/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  224. package/optimize/es/components/icon/icon.js +13 -16
  225. package/optimize/es/components/icon/icon.styles.js +6 -9
  226. package/optimize/es/components/link/external_link_icon.js +11 -8
  227. package/optimize/es/components/link/link.js +2 -3
  228. package/optimize/es/components/link/link.styles.js +4 -10
  229. package/optimize/es/components/modal/confirm_modal.js +2 -1
  230. package/optimize/es/components/modal/modal.js +6 -2
  231. package/optimize/es/components/observer/resize_observer/resize_observer.js +15 -24
  232. package/optimize/es/components/progress/progress.styles.js +2 -2
  233. package/optimize/es/components/skeleton/skeleton_circle.js +2 -3
  234. package/optimize/es/components/skeleton/skeleton_rectangle.js +2 -3
  235. package/optimize/es/components/skeleton/skeleton_text.js +16 -12
  236. package/optimize/es/components/skeleton/skeleton_title.js +2 -3
  237. package/optimize/es/components/spacer/spacer.js +2 -3
  238. package/optimize/es/components/text/text.js +2 -3
  239. package/optimize/es/components/text/text_align.js +1 -2
  240. package/optimize/es/components/text/text_align.styles.js +5 -7
  241. package/optimize/es/components/text/text_color.js +2 -3
  242. package/optimize/es/components/title/title.js +2 -3
  243. package/optimize/es/components/title/title.styles.js +0 -7
  244. package/optimize/es/components/toast/global_toast_list.js +70 -73
  245. package/optimize/es/components/toast/toast.js +27 -42
  246. package/optimize/es/components/toast/toast.styles.js +2 -17
  247. package/optimize/es/global_styling/mixins/_typography.js +14 -6
  248. package/optimize/es/services/color/eui_palettes.js +21 -13
  249. package/optimize/es/services/color/index.js +1 -1
  250. package/optimize/es/services/hooks/index.js +1 -0
  251. package/optimize/es/services/hooks/useDeepEqual.js +23 -0
  252. package/optimize/es/services/index.js +1 -1
  253. package/optimize/es/services/theme/index.js +1 -1
  254. package/optimize/es/services/theme/style_memoization.js +47 -14
  255. package/optimize/es/themes/amsterdam/global_styling/mixins/button.js +47 -24
  256. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.js +163 -0
  257. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  258. package/optimize/lib/components/breadcrumbs/breadcrumb.js +10 -112
  259. package/optimize/lib/components/breadcrumbs/breadcrumb.styles.js +5 -29
  260. package/optimize/lib/components/breadcrumbs/breadcrumbs.js +3 -3
  261. package/optimize/lib/components/breadcrumbs/types.js +5 -0
  262. package/optimize/lib/components/button/button_display/_button_display.js +1 -2
  263. package/optimize/lib/components/button/button_empty/button_empty.js +1 -2
  264. package/optimize/lib/components/button/button_group/button_group.js +4 -6
  265. package/optimize/lib/components/button/button_group/button_group.styles.js +11 -14
  266. package/optimize/lib/components/button/button_group/button_group_button.js +37 -5
  267. package/optimize/lib/components/button/button_group/button_group_button.styles.js +45 -11
  268. package/optimize/lib/components/button/button_icon/button_icon.js +3 -4
  269. package/optimize/lib/components/button/button_icon/button_icon.styles.js +8 -2
  270. package/optimize/lib/components/datagrid/body/cell/data_grid_cell.js +81 -55
  271. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  272. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  273. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  274. package/optimize/lib/components/datagrid/body/cell/index.js +2 -2
  275. package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +39 -34
  276. package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +72 -50
  277. package/optimize/lib/components/datagrid/body/data_grid_row_manager.js +6 -4
  278. package/optimize/lib/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  279. package/optimize/lib/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  280. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +65 -49
  281. package/optimize/lib/components/datagrid/body/header/data_grid_header_row.js +14 -12
  282. package/optimize/lib/components/datagrid/body/header/use_data_grid_header.js +7 -6
  283. package/optimize/lib/components/datagrid/controls/column_selector.js +126 -123
  284. package/optimize/lib/components/datagrid/controls/column_sorting.js +125 -107
  285. package/optimize/lib/components/datagrid/controls/column_sorting_draggable.js +27 -22
  286. package/optimize/lib/components/datagrid/controls/display_selector.js +109 -107
  287. package/optimize/lib/components/datagrid/data_grid.a11y.js +13 -12
  288. package/optimize/lib/components/datagrid/data_grid.js +45 -20
  289. package/optimize/lib/components/datagrid/utils/col_widths.js +9 -5
  290. package/optimize/lib/components/datagrid/utils/focus.js +10 -8
  291. package/optimize/lib/components/datagrid/utils/grid_height_width.js +29 -28
  292. package/optimize/lib/components/datagrid/utils/ref.js +1 -1
  293. package/optimize/lib/components/datagrid/utils/row_heights.js +1 -1
  294. package/optimize/lib/components/datagrid/utils/sorting.js +31 -29
  295. package/optimize/lib/components/date_picker/super_date_picker/super_update_button.js +49 -29
  296. package/optimize/lib/components/facet/facet_button.styles.js +1 -2
  297. package/optimize/lib/components/flex/flex_grid.js +21 -7
  298. package/optimize/lib/components/flex/flex_grid.styles.js +13 -6
  299. package/optimize/lib/components/flex/flex_group.js +9 -9
  300. package/optimize/lib/components/flex/flex_item.js +13 -13
  301. package/optimize/lib/components/flex/flex_item.styles.js +107 -122
  302. package/optimize/lib/components/flyout/flyout.js +16 -18
  303. package/optimize/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  304. package/optimize/lib/components/icon/icon.js +12 -15
  305. package/optimize/lib/components/icon/icon.styles.js +5 -8
  306. package/optimize/lib/components/link/external_link_icon.js +10 -7
  307. package/optimize/lib/components/link/link.js +1 -2
  308. package/optimize/lib/components/link/link.styles.js +6 -14
  309. package/optimize/lib/components/modal/confirm_modal.js +2 -1
  310. package/optimize/lib/components/modal/modal.js +6 -2
  311. package/optimize/lib/components/observer/resize_observer/resize_observer.js +15 -24
  312. package/optimize/lib/components/progress/progress.styles.js +1 -1
  313. package/optimize/lib/components/skeleton/skeleton_circle.js +1 -2
  314. package/optimize/lib/components/skeleton/skeleton_rectangle.js +1 -2
  315. package/optimize/lib/components/skeleton/skeleton_text.js +18 -11
  316. package/optimize/lib/components/skeleton/skeleton_title.js +1 -2
  317. package/optimize/lib/components/spacer/spacer.js +1 -2
  318. package/optimize/lib/components/text/text.js +1 -2
  319. package/optimize/lib/components/text/text_align.js +1 -2
  320. package/optimize/lib/components/text/text_align.styles.js +5 -7
  321. package/optimize/lib/components/text/text_color.js +1 -2
  322. package/optimize/lib/components/title/title.js +1 -2
  323. package/optimize/lib/components/title/title.styles.js +2 -10
  324. package/optimize/lib/components/toast/global_toast_list.js +68 -71
  325. package/optimize/lib/components/toast/toast.js +25 -40
  326. package/optimize/lib/components/toast/toast.styles.js +11 -25
  327. package/optimize/lib/global_styling/mixins/_typography.js +25 -19
  328. package/optimize/lib/services/color/eui_palettes.js +24 -14
  329. package/optimize/lib/services/color/index.js +14 -0
  330. package/optimize/lib/services/hooks/index.js +11 -0
  331. package/optimize/lib/services/hooks/useDeepEqual.js +30 -0
  332. package/optimize/lib/services/index.js +15 -1
  333. package/optimize/lib/services/theme/index.js +6 -0
  334. package/optimize/lib/services/theme/style_memoization.js +49 -16
  335. package/optimize/lib/themes/amsterdam/global_styling/mixins/button.js +49 -26
  336. package/package.json +3 -3
  337. package/src/components/datagrid/_data_grid_data_row.scss +4 -0
  338. package/test-env/components/breadcrumbs/_breadcrumb_content.js +363 -0
  339. package/test-env/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  340. package/test-env/components/breadcrumbs/breadcrumb.js +11 -323
  341. package/test-env/components/breadcrumbs/breadcrumb.styles.js +5 -29
  342. package/test-env/components/breadcrumbs/breadcrumbs.js +7 -5
  343. package/test-env/components/breadcrumbs/types.js +5 -0
  344. package/test-env/components/button/button_display/_button_display.js +1 -2
  345. package/test-env/components/button/button_empty/button_empty.js +1 -2
  346. package/test-env/components/button/button_group/button_group.js +18 -6
  347. package/test-env/components/button/button_group/button_group.styles.js +11 -14
  348. package/test-env/components/button/button_group/button_group_button.js +56 -5
  349. package/test-env/components/button/button_group/button_group_button.styles.js +45 -11
  350. package/test-env/components/button/button_icon/button_icon.js +3 -4
  351. package/test-env/components/button/button_icon/button_icon.styles.js +8 -2
  352. package/test-env/components/datagrid/body/cell/data_grid_cell.js +100 -58
  353. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  354. package/test-env/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  355. package/test-env/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  356. package/test-env/components/datagrid/body/cell/index.js +2 -2
  357. package/test-env/components/datagrid/body/data_grid_body.js +14 -0
  358. package/test-env/components/datagrid/body/data_grid_body_custom.js +53 -34
  359. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +86 -55
  360. package/test-env/components/datagrid/body/data_grid_row_manager.js +6 -4
  361. package/test-env/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  362. package/test-env/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  363. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +72 -52
  364. package/test-env/components/datagrid/body/header/data_grid_header_row.js +14 -550
  365. package/test-env/components/datagrid/body/header/use_data_grid_header.js +7 -6
  366. package/test-env/components/datagrid/controls/column_selector.js +126 -123
  367. package/test-env/components/datagrid/controls/column_sorting.js +607 -106
  368. package/test-env/components/datagrid/controls/column_sorting_draggable.js +27 -22
  369. package/test-env/components/datagrid/controls/display_selector.js +109 -107
  370. package/test-env/components/datagrid/data_grid.a11y.js +13 -12
  371. package/test-env/components/datagrid/data_grid.js +45 -20
  372. package/test-env/components/datagrid/utils/col_widths.js +9 -5
  373. package/test-env/components/datagrid/utils/focus.js +10 -8
  374. package/test-env/components/datagrid/utils/grid_height_width.js +29 -28
  375. package/test-env/components/datagrid/utils/ref.js +1 -1
  376. package/test-env/components/datagrid/utils/row_heights.js +1 -1
  377. package/test-env/components/datagrid/utils/sorting.js +31 -29
  378. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  379. package/test-env/components/date_picker/super_date_picker/super_update_button.js +57 -29
  380. package/test-env/components/facet/facet_button.styles.js +1 -2
  381. package/test-env/components/flex/flex_grid.js +21 -7
  382. package/test-env/components/flex/flex_grid.styles.js +13 -6
  383. package/test-env/components/flex/flex_group.js +10 -10
  384. package/test-env/components/flex/flex_item.js +13 -13
  385. package/test-env/components/flex/flex_item.styles.js +107 -122
  386. package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.js +7 -7
  387. package/test-env/components/icon/icon.styles.js +5 -8
  388. package/test-env/components/link/external_link_icon.js +10 -7
  389. package/test-env/components/link/link.js +1 -2
  390. package/test-env/components/link/link.styles.js +6 -14
  391. package/test-env/components/modal/confirm_modal.js +2 -1
  392. package/test-env/components/modal/modal.js +12 -3
  393. package/test-env/components/page/page_header/page_header_content.js +4 -2
  394. package/test-env/components/progress/progress.styles.js +1 -1
  395. package/test-env/components/skeleton/skeleton_circle.js +1 -2
  396. package/test-env/components/skeleton/skeleton_rectangle.js +1 -2
  397. package/test-env/components/skeleton/skeleton_text.js +18 -11
  398. package/test-env/components/skeleton/skeleton_title.js +1 -2
  399. package/test-env/components/spacer/spacer.js +1 -2
  400. package/test-env/components/text/text.js +1 -2
  401. package/test-env/components/text/text_align.js +1 -2
  402. package/test-env/components/text/text_align.styles.js +5 -7
  403. package/test-env/components/text/text_color.js +1 -2
  404. package/test-env/components/title/title.js +1 -2
  405. package/test-env/components/title/title.styles.js +2 -10
  406. package/test-env/components/toast/global_toast_list.js +68 -71
  407. package/test-env/components/toast/toast.js +25 -40
  408. package/test-env/components/toast/toast.styles.js +11 -25
  409. package/test-env/global_styling/mixins/_typography.js +25 -19
  410. package/test-env/services/color/eui_palettes.js +24 -14
  411. package/test-env/services/color/index.js +14 -0
  412. package/test-env/services/hooks/index.js +11 -0
  413. package/test-env/services/hooks/useDeepEqual.js +30 -0
  414. package/test-env/services/index.js +15 -1
  415. package/test-env/services/theme/index.js +6 -0
  416. package/test-env/services/theme/style_memoization.js +49 -16
  417. package/test-env/themes/amsterdam/global_styling/mixins/button.js +49 -26
  418. package/src/themes/charts/theme.scss +0 -5
@@ -41,7 +41,6 @@ var DataGridCellPopoverContext = /*#__PURE__*/(0, _react.createContext)({
41
41
  });
42
42
  exports.DataGridCellPopoverContext = DataGridCellPopoverContext;
43
43
  var useCellPopover = function useCellPopover() {
44
- var _cellPopoverProps$pan;
45
44
  // Current open state & cell location are handled here
46
45
  var _useState = (0, _react.useState)(false),
47
46
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -92,16 +91,6 @@ var useCellPopover = function useCellPopover() {
92
91
  });
93
92
  setPopoverIsOpen(true);
94
93
  }, [popoverIsOpen, cellLocation]);
95
- var cellPopoverContext = {
96
- popoverIsOpen: popoverIsOpen,
97
- closeCellPopover: closeCellPopover,
98
- openCellPopover: openCellPopover,
99
- cellLocation: cellLocation,
100
- setPopoverAnchor: setPopoverAnchor,
101
- setPopoverAnchorPosition: setPopoverAnchorPosition,
102
- setPopoverContent: setPopoverContent,
103
- setCellPopoverProps: setCellPopoverProps
104
- };
105
94
 
106
95
  // Override the default EuiPopover `onClickOutside` behavior, since the toggling
107
96
  // popover button isn't actually the DOM node we pass to `button`. Otherwise,
@@ -113,52 +102,71 @@ var useCellPopover = function useCellPopover() {
113
102
  closeCellPopover();
114
103
  }
115
104
  }, [popoverAnchor, closeCellPopover]);
105
+ var onKeyDown = (0, _react.useCallback)(function (event) {
106
+ if (event.key === _services.keys.F2 || event.key === _services.keys.ESCAPE) {
107
+ var _popoverAnchor$parent3, _popoverAnchor$parent4;
108
+ event.preventDefault();
109
+ event.stopPropagation();
110
+ closeCellPopover();
111
+ var cell = popoverAnchor === null || popoverAnchor === void 0 ? void 0 : (_popoverAnchor$parent3 = popoverAnchor.parentElement) === null || _popoverAnchor$parent3 === void 0 ? void 0 : (_popoverAnchor$parent4 = _popoverAnchor$parent3.parentElement) === null || _popoverAnchor$parent4 === void 0 ? void 0 : _popoverAnchor$parent4.parentElement;
116
112
 
117
- // Note that this popover is rendered once at the top grid level, rather than one popover per cell
118
- var cellPopover = popoverIsOpen && popoverAnchor && (0, _react2.jsx)(_popover.EuiWrappingPopover, (0, _extends2.default)({
119
- isOpen: popoverIsOpen,
120
- display: "block",
121
- hasArrow: false,
122
- panelPaddingSize: "s",
123
- anchorPosition: popoverAnchorPosition,
124
- repositionToCrossAxis: false
125
- }, cellPopoverProps, {
126
- focusTrapProps: {
127
- onClickOutside: onClickOutside,
128
- clickOutsideDisables: false
129
- },
130
- panelProps: _objectSpread({
131
- 'data-test-subj': 'euiDataGridExpansionPopover'
132
- }, cellPopoverProps.panelProps || {}),
133
- panelClassName: (0, _classnames.default)('euiDataGridRowCell__popover', cellPopoverProps.panelClassName, (_cellPopoverProps$pan = cellPopoverProps.panelProps) === null || _cellPopoverProps$pan === void 0 ? void 0 : _cellPopoverProps$pan.className),
134
- panelStyle: {
135
- maxInlineSize: "min(75vw, max(".concat(popoverAnchor.parentElement.offsetWidth, "px, 400px))"),
136
- maxBlockSize: '50vh'
137
- },
138
- onKeyDown: function onKeyDown(event) {
139
- if (event.key === _services.keys.F2 || event.key === _services.keys.ESCAPE) {
140
- var _popoverAnchor$parent3, _popoverAnchor$parent4;
141
- event.preventDefault();
142
- event.stopPropagation();
143
- closeCellPopover();
144
- var cell = (_popoverAnchor$parent3 = popoverAnchor.parentElement) === null || _popoverAnchor$parent3 === void 0 ? void 0 : (_popoverAnchor$parent4 = _popoverAnchor$parent3.parentElement) === null || _popoverAnchor$parent4 === void 0 ? void 0 : _popoverAnchor$parent4.parentElement;
113
+ // Prevent cell animation flash while focus is being shifted between popover and cell
114
+ cell === null || cell === void 0 ? void 0 : cell.setAttribute('data-keyboard-closing', 'true');
115
+ // Ensure focus is returned to the parent cell, and remove animation stopgap
116
+ requestAnimationFrame(function () {
117
+ popoverAnchor === null || popoverAnchor === void 0 ? void 0 : popoverAnchor.parentElement.focus();
118
+ cell === null || cell === void 0 ? void 0 : cell.removeAttribute('data-keyboard-closing');
119
+ });
120
+ }
121
+ }, [popoverAnchor, closeCellPopover]);
122
+ var cellPopoverContext = (0, _react.useMemo)(function () {
123
+ return {
124
+ popoverIsOpen: popoverIsOpen,
125
+ closeCellPopover: closeCellPopover,
126
+ openCellPopover: openCellPopover,
127
+ cellLocation: cellLocation,
128
+ setPopoverAnchorPosition: setPopoverAnchorPosition,
129
+ setPopoverAnchor: setPopoverAnchor,
130
+ setPopoverContent: setPopoverContent,
131
+ setCellPopoverProps: setCellPopoverProps
132
+ };
133
+ }, [popoverIsOpen, closeCellPopover, openCellPopover, cellLocation]);
134
+ var cellPopover = (0, _react.useMemo)(function () {
135
+ var _cellPopoverProps$pan;
136
+ if (!popoverIsOpen || !popoverAnchor) return null;
145
137
 
146
- // Prevent cell animation flash while focus is being shifted between popover and cell
147
- cell === null || cell === void 0 ? void 0 : cell.setAttribute('data-keyboard-closing', 'true');
148
- // Ensure focus is returned to the parent cell, and remove animation stopgap
149
- requestAnimationFrame(function () {
150
- popoverAnchor.parentElement.focus();
151
- cell === null || cell === void 0 ? void 0 : cell.removeAttribute('data-keyboard-closing');
152
- });
153
- }
154
- },
155
- button: popoverAnchor,
156
- closePopover: closeCellPopover
157
- }), popoverContent);
158
- return {
159
- cellPopoverContext: cellPopoverContext,
160
- cellPopover: cellPopover
161
- };
138
+ // Note that this popover is rendered once at the top grid level, rather than one popover per cell
139
+ return (0, _react2.jsx)(_popover.EuiWrappingPopover, (0, _extends2.default)({
140
+ isOpen: popoverIsOpen,
141
+ display: "block",
142
+ hasArrow: false,
143
+ panelPaddingSize: "s",
144
+ anchorPosition: popoverAnchorPosition,
145
+ repositionToCrossAxis: false
146
+ }, cellPopoverProps, {
147
+ focusTrapProps: {
148
+ onClickOutside: onClickOutside,
149
+ clickOutsideDisables: false
150
+ },
151
+ panelProps: _objectSpread({
152
+ 'data-test-subj': 'euiDataGridExpansionPopover'
153
+ }, cellPopoverProps.panelProps || {}),
154
+ panelClassName: (0, _classnames.default)('euiDataGridRowCell__popover', cellPopoverProps.panelClassName, (_cellPopoverProps$pan = cellPopoverProps.panelProps) === null || _cellPopoverProps$pan === void 0 ? void 0 : _cellPopoverProps$pan.className),
155
+ panelStyle: {
156
+ maxInlineSize: "min(75vw, max(".concat(popoverAnchor.parentElement.offsetWidth, "px, 400px))"),
157
+ maxBlockSize: '50vh'
158
+ },
159
+ onKeyDown: onKeyDown,
160
+ button: popoverAnchor,
161
+ closePopover: closeCellPopover
162
+ }), popoverContent);
163
+ }, [popoverIsOpen, popoverAnchor, popoverContent, cellPopoverProps, closeCellPopover, onClickOutside, onKeyDown, popoverAnchorPosition]);
164
+ return (0, _react.useMemo)(function () {
165
+ return {
166
+ cellPopoverContext: cellPopoverContext,
167
+ cellPopover: cellPopover
168
+ };
169
+ }, [cellPopoverContext, cellPopover]);
162
170
  };
163
171
 
164
172
  /**
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.Cell = void 0;
8
+ exports.CellWrapper = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -15,7 +15,7 @@ var _sorting = require("../../utils/sorting");
15
15
  var _data_grid_cell_popover = require("./data_grid_cell_popover");
16
16
  var _data_grid_cell = require("./data_grid_cell");
17
17
  var _react2 = require("@emotion/react");
18
- var _excluded = ["colIndex", "visibleRowIndex", "style", "schema", "schemaDetectors", "pagination", "columns", "leadingControlColumns", "trailingControlColumns", "visibleColCount", "columnWidths", "defaultColumnWidth", "renderCellValue", "renderCellPopover", "interactiveCellId", "setRowHeight", "rowHeightsOptions", "rowHeightUtils", "rowManager"];
18
+ var _excluded = ["colIndex", "visibleRowIndex", "style", "schema", "schemaDetectors", "pagination", "columns", "leadingControlColumns", "trailingControlColumns", "visibleColCount", "columnWidths", "defaultColumnWidth", "renderCellValue", "cellContext", "renderCellPopover", "interactiveCellId", "setRowHeight", "rowHeightsOptions", "rowHeightUtils", "rowManager"];
19
19
  /*
20
20
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
21
21
  * or more contributor license agreements. Licensed under the Elastic License
@@ -30,7 +30,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
30
30
  * It grabs context, determines the type of cell being rendered
31
31
  * (e.g. control vs data cell), & sets shared props between all cells
32
32
  */
33
- var Cell = function Cell(_ref) {
33
+ var CellWrapper = /*#__PURE__*/(0, _react.memo)(function (_ref) {
34
34
  var colIndex = _ref.colIndex,
35
35
  visibleRowIndex = _ref.visibleRowIndex,
36
36
  style = _ref.style,
@@ -44,6 +44,7 @@ var Cell = function Cell(_ref) {
44
44
  columnWidths = _ref.columnWidths,
45
45
  defaultColumnWidth = _ref.defaultColumnWidth,
46
46
  renderCellValue = _ref.renderCellValue,
47
+ cellContext = _ref.cellContext,
47
48
  renderCellPopover = _ref.renderCellPopover,
48
49
  interactiveCellId = _ref.interactiveCellId,
49
50
  setRowHeight = _ref.setRowHeight,
@@ -52,9 +53,8 @@ var Cell = function Cell(_ref) {
52
53
  rowManager = _ref.rowManager,
53
54
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
54
55
  var popoverContext = (0, _react.useContext)(_data_grid_cell_popover.DataGridCellPopoverContext);
55
- var _useContext = (0, _react.useContext)(_sorting.DataGridSortingContext),
56
+ var _useContext = (0, _react.useContext)(_sorting.DataGridSortedContext),
56
57
  getCorrectRowIndex = _useContext.getCorrectRowIndex;
57
- var cellContent;
58
58
  var isFirstColumn = colIndex === 0;
59
59
  var isLastColumn = colIndex === visibleColCount - 1;
60
60
  var isLeadingControlColumn = colIndex < leadingControlColumns.length;
@@ -68,30 +68,33 @@ var Cell = function Cell(_ref) {
68
68
  return column !== null && column !== void 0 && column.schema ? (column === null || column === void 0 ? void 0 : column.schema) === row.type : columnId === row.type;
69
69
  })[0]) === null || _schemaDetectors$filt === void 0 ? void 0 : _schemaDetectors$filt.textTransform;
70
70
  }, [columnId, column === null || column === void 0 ? void 0 : column.schema, schemaDetectors]);
71
- var classes = (0, _classnames.default)((0, _defineProperty2.default)({
72
- 'euiDataGridRowCell--firstColumn': isFirstColumn,
73
- 'euiDataGridRowCell--lastColumn': isLastColumn,
74
- 'euiDataGridRowCell--controlColumn': isLeadingControlColumn || isTrailingControlColumn
75
- }, "euiDataGridRowCell--".concat(textTransform), textTransform));
76
- var sharedCellProps = {
77
- rowIndex: getCorrectRowIndex(visibleRowIndex),
78
- visibleRowIndex: visibleRowIndex,
79
- colIndex: colIndex,
80
- interactiveCellId: interactiveCellId,
81
- className: classes,
82
- style: style,
83
- rowHeightsOptions: rowHeightsOptions,
84
- rowHeightUtils: rowHeightUtils,
85
- setRowHeight: isFirstColumn ? setRowHeight : undefined,
86
- rowManager: rowManager,
87
- popoverContext: popoverContext,
88
- pagination: pagination
89
- };
71
+ var sharedCellProps = (0, _react.useMemo)(function () {
72
+ var classes = (0, _classnames.default)((0, _defineProperty2.default)({
73
+ 'euiDataGridRowCell--firstColumn': isFirstColumn,
74
+ 'euiDataGridRowCell--lastColumn': isLastColumn,
75
+ 'euiDataGridRowCell--controlColumn': isLeadingControlColumn || isTrailingControlColumn
76
+ }, "euiDataGridRowCell--".concat(textTransform), textTransform));
77
+ return {
78
+ rowIndex: getCorrectRowIndex(visibleRowIndex),
79
+ visibleRowIndex: visibleRowIndex,
80
+ colIndex: colIndex,
81
+ interactiveCellId: interactiveCellId,
82
+ className: classes,
83
+ style: style,
84
+ rowHeightsOptions: rowHeightsOptions,
85
+ rowHeightUtils: rowHeightUtils,
86
+ setRowHeight: isFirstColumn ? setRowHeight : undefined,
87
+ rowManager: rowManager,
88
+ popoverContext: popoverContext,
89
+ pagination: pagination,
90
+ cellContext: cellContext
91
+ };
92
+ }, [colIndex, setRowHeight, visibleRowIndex, getCorrectRowIndex, interactiveCellId, style, rowHeightsOptions, rowHeightUtils, rowManager, popoverContext, pagination, cellContext, isFirstColumn, isLastColumn, isLeadingControlColumn, isTrailingControlColumn, textTransform]);
90
93
  if (isLeadingControlColumn) {
91
94
  var leadingColumn = leadingControlColumns[colIndex];
92
95
  var id = leadingColumn.id,
93
96
  rowCellRender = leadingColumn.rowCellRender;
94
- cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
97
+ return (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
95
98
  columnId: id,
96
99
  width: leadingColumn.width,
97
100
  renderCellValue: rowCellRender,
@@ -103,7 +106,7 @@ var Cell = function Cell(_ref) {
103
106
  var trailingColumn = trailingControlColumns[trailingcolIndex];
104
107
  var _id = trailingColumn.id,
105
108
  _rowCellRender = trailingColumn.rowCellRender;
106
- cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
109
+ return (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
107
110
  columnId: _id,
108
111
  width: trailingColumn.width,
109
112
  renderCellValue: _rowCellRender,
@@ -112,9 +115,9 @@ var Cell = function Cell(_ref) {
112
115
  } else {
113
116
  // this is a normal data cell
114
117
  var columnType = schema[columnId] ? schema[columnId].columnType : null;
115
- var isExpandable = column.isExpandable !== undefined ? column.isExpandable : true;
118
+ var isExpandable = (column === null || column === void 0 ? void 0 : column.isExpandable) !== undefined ? column === null || column === void 0 ? void 0 : column.isExpandable : true;
116
119
  var width = columnWidths[columnId] || defaultColumnWidth;
117
- cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
120
+ return (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
118
121
  columnId: columnId,
119
122
  column: column,
120
123
  columnType: columnType,
@@ -125,6 +128,6 @@ var Cell = function Cell(_ref) {
125
128
  isExpandable: isExpandable
126
129
  }, rest));
127
130
  }
128
- return cellContent;
129
- };
130
- exports.Cell = Cell;
131
+ });
132
+ exports.CellWrapper = CellWrapper;
133
+ CellWrapper.displayName = 'CellWrapper';
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "Cell", {
6
+ Object.defineProperty(exports, "CellWrapper", {
7
7
  enumerable: true,
8
8
  get: function get() {
9
- return _data_grid_cell_wrapper.Cell;
9
+ return _data_grid_cell_wrapper.CellWrapper;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "DataGridCellPopoverContext", {
@@ -33,24 +33,26 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
33
33
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
34
34
  var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
35
35
  var renderCustomGridBody = _ref.renderCustomGridBody,
36
- leadingControlColumns = _ref.leadingControlColumns,
37
- trailingControlColumns = _ref.trailingControlColumns,
38
- columns = _ref.columns,
39
- visibleColCount = _ref.visibleColCount,
40
- schema = _ref.schema,
41
- schemaDetectors = _ref.schemaDetectors,
42
- visibleRows = _ref.visibleRows,
43
36
  renderCellValue = _ref.renderCellValue,
37
+ cellContext = _ref.cellContext,
44
38
  renderCellPopover = _ref.renderCellPopover,
45
39
  renderFooterCellValue = _ref.renderFooterCellValue,
46
40
  interactiveCellId = _ref.interactiveCellId,
41
+ visibleRows = _ref.visibleRows,
42
+ visibleColCount = _ref.visibleColCount,
43
+ leadingControlColumns = _ref.leadingControlColumns,
44
+ trailingControlColumns = _ref.trailingControlColumns,
45
+ columns = _ref.columns,
47
46
  setVisibleColumns = _ref.setVisibleColumns,
48
47
  switchColumnPos = _ref.switchColumnPos,
49
48
  onColumnResize = _ref.onColumnResize,
50
- gridWidth = _ref.gridWidth,
51
- gridStyles = _ref.gridStyles,
49
+ schema = _ref.schema,
50
+ schemaDetectors = _ref.schemaDetectors,
51
+ sorting = _ref.sorting,
52
52
  pagination = _ref.pagination,
53
- rowHeightsOptions = _ref.rowHeightsOptions;
53
+ rowHeightsOptions = _ref.rowHeightsOptions,
54
+ gridWidth = _ref.gridWidth,
55
+ gridStyles = _ref.gridStyles;
54
56
  /**
55
57
  * Columns & widths
56
58
  */
@@ -89,14 +91,15 @@ var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
89
91
  * Header & footer
90
92
  */
91
93
  var _useDataGridHeader = (0, _header.useDataGridHeader)({
92
- switchColumnPos: switchColumnPos,
93
- setVisibleColumns: setVisibleColumns,
94
94
  leadingControlColumns: leadingControlColumns,
95
95
  trailingControlColumns: trailingControlColumns,
96
96
  columns: columns,
97
97
  columnWidths: columnWidths,
98
98
  defaultColumnWidth: defaultColumnWidth,
99
99
  setColumnWidth: setColumnWidth,
100
+ setVisibleColumns: setVisibleColumns,
101
+ switchColumnPos: switchColumnPos,
102
+ sorting: sorting,
100
103
  schema: schema,
101
104
  schemaDetectors: schemaDetectors
102
105
  }),
@@ -119,24 +122,27 @@ var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
119
122
  /**
120
123
  * Cell render fn
121
124
  */
122
- var cellProps = {
123
- schema: schema,
124
- schemaDetectors: schemaDetectors,
125
- pagination: pagination,
126
- columns: columns,
127
- leadingControlColumns: leadingControlColumns,
128
- trailingControlColumns: trailingControlColumns,
129
- visibleColCount: visibleColCount,
130
- columnWidths: columnWidths,
131
- defaultColumnWidth: defaultColumnWidth,
132
- renderCellValue: renderCellValue,
133
- renderCellPopover: renderCellPopover,
134
- interactiveCellId: interactiveCellId,
135
- setRowHeight: setRowHeight,
136
- rowHeightsOptions: rowHeightsOptions,
137
- rowHeightUtils: rowHeightUtils
138
- };
139
- var _Cell = (0, _react.useCallback)(function (_ref2) {
125
+ var cellProps = (0, _react.useMemo)(function () {
126
+ return {
127
+ schema: schema,
128
+ schemaDetectors: schemaDetectors,
129
+ pagination: pagination,
130
+ columns: columns,
131
+ leadingControlColumns: leadingControlColumns,
132
+ trailingControlColumns: trailingControlColumns,
133
+ visibleColCount: visibleColCount,
134
+ columnWidths: columnWidths,
135
+ defaultColumnWidth: defaultColumnWidth,
136
+ renderCellValue: renderCellValue,
137
+ cellContext: cellContext,
138
+ renderCellPopover: renderCellPopover,
139
+ interactiveCellId: interactiveCellId,
140
+ setRowHeight: setRowHeight,
141
+ rowHeightsOptions: rowHeightsOptions,
142
+ rowHeightUtils: rowHeightUtils
143
+ };
144
+ }, [schema, schemaDetectors, pagination, columns, leadingControlColumns, trailingControlColumns, visibleColCount, columnWidths, defaultColumnWidth, renderCellValue, cellContext, renderCellPopover, interactiveCellId, setRowHeight, rowHeightsOptions, rowHeightUtils]);
145
+ var Cell = (0, _react.useCallback)(function (_ref2) {
140
146
  var colIndex = _ref2.colIndex,
141
147
  visibleRowIndex = _ref2.visibleRowIndex,
142
148
  rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
@@ -148,9 +154,8 @@ var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
148
154
  visibleRowIndex: visibleRowIndex,
149
155
  style: style
150
156
  }, cellProps);
151
- return (0, _react2.jsx)(_cell.Cell, (0, _extends2.default)({}, props, rest));
152
- }, [].concat((0, _toConsumableArray2.default)(Object.values(cellProps)), [getRowHeight]) // eslint-disable-line react-hooks/exhaustive-deps
153
- );
157
+ return (0, _react2.jsx)(_cell.CellWrapper, (0, _extends2.default)({}, props, rest));
158
+ }, [cellProps, getRowHeight, rowHeightUtils, rowHeightsOptions]);
154
159
 
155
160
  // Allow consumers to pass custom props/attributes/listeners etc. to the wrapping div
156
161
  var _useState = (0, _react.useState)({}),
@@ -162,7 +167,7 @@ var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
162
167
  }), headerRow, renderCustomGridBody({
163
168
  visibleColumns: visibleColumns,
164
169
  visibleRowData: visibleRows,
165
- Cell: _Cell,
170
+ Cell: Cell,
166
171
  setCustomGridBodyProps: setCustomGridBodyProps
167
172
  }), footerRow);
168
173
  };
@@ -5,13 +5,14 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports._Cell = exports.EuiDataGridBodyVirtualized = exports.DataGridWrapperRowsContext = void 0;
8
+ exports.EuiDataGridBodyVirtualized = exports.DataGridWrapperRowsContext = exports.Cell = void 0;
9
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _reactWindow = require("react-window");
15
+ var _services = require("../../../services");
15
16
  var _resize_observer = require("../../observer/resize_observer");
16
17
  var _header = require("./header");
17
18
  var _footer = require("./footer");
@@ -34,48 +35,56 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
34
35
  * in compliance with, at your election, the Elastic License 2.0 or the Server
35
36
  * Side Public License, v 1.
36
37
  */
37
- var _Cell = function _Cell(_ref) {
38
+ var Cell = /*#__PURE__*/(0, _react.memo)(function (_ref) {
38
39
  var columnIndex = _ref.columnIndex,
39
40
  rowIndex = _ref.rowIndex,
40
41
  style = _ref.style,
41
42
  data = _ref.data;
42
- var _useContext = (0, _react.useContext)(DataGridWrapperRowsContext),
43
- headerRowHeight = _useContext.headerRowHeight;
44
- return (0, _react2.jsx)(_cell.Cell, (0, _extends2.default)({
43
+ var memoizedStyles = (0, _services.useDeepEqual)(style);
44
+ var cellStyles = (0, _react.useMemo)(function () {
45
+ var headerRowHeight = data.headerRowHeight;
46
+ return _objectSpread(_objectSpread({}, memoizedStyles), {}, {
47
+ top: "".concat(parseFloat(memoizedStyles.top) + headerRowHeight, "px")
48
+ });
49
+ }, [memoizedStyles, data]);
50
+ return (0, _react2.jsx)(_cell.CellWrapper, (0, _extends2.default)({
45
51
  colIndex: columnIndex,
46
52
  visibleRowIndex: rowIndex,
47
- style: _objectSpread(_objectSpread({}, style), {}, {
48
- top: "".concat(parseFloat(style.top) + headerRowHeight, "px")
49
- })
53
+ style: cellStyles
50
54
  }, data));
51
- };
55
+ });
56
+ exports.Cell = Cell;
57
+ Cell.displayName = 'Cell';
52
58
 
53
59
  // Context is required to pass props to react-window's innerElementType
54
60
  // @see https://github.com/bvaughn/react-window/issues/404
55
- exports._Cell = _Cell;
56
61
  var DataGridWrapperRowsContext = /*#__PURE__*/(0, _react.createContext)({
57
62
  headerRow: (0, _react2.jsx)("div", null),
58
63
  headerRowHeight: 0,
59
64
  footerRow: null
60
65
  });
61
66
  exports.DataGridWrapperRowsContext = DataGridWrapperRowsContext;
62
- var InnerElement = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
67
+ var InnerElement = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
63
68
  var children = _ref2.children,
64
69
  style = _ref2.style,
65
70
  rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
66
- var _useContext2 = (0, _react.useContext)(DataGridWrapperRowsContext),
67
- headerRowHeight = _useContext2.headerRowHeight,
68
- headerRow = _useContext2.headerRow,
69
- footerRow = _useContext2.footerRow;
71
+ var _useContext = (0, _react.useContext)(DataGridWrapperRowsContext),
72
+ headerRowHeight = _useContext.headerRowHeight,
73
+ headerRow = _useContext.headerRow,
74
+ footerRow = _useContext.footerRow;
75
+ var memoizedStyles = (0, _services.useDeepEqual)(style);
76
+ var innerElementStyles = (0, _react.useMemo)(function () {
77
+ return _objectSpread(_objectSpread({}, memoizedStyles), {}, {
78
+ height: memoizedStyles.height + headerRowHeight
79
+ });
80
+ }, [memoizedStyles, headerRowHeight]);
70
81
  return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", (0, _extends2.default)({
71
82
  ref: ref,
72
- style: _objectSpread(_objectSpread({}, style), {}, {
73
- height: style.height + headerRowHeight
74
- })
83
+ style: innerElementStyles
75
84
  }, rest), headerRow, children), footerRow);
76
- });
85
+ }));
77
86
  InnerElement.displayName = 'EuiDataGridInnerElement';
78
- var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
87
+ var EuiDataGridBodyVirtualized = /*#__PURE__*/(0, _react.memo)(function (_ref3) {
79
88
  var leadingControlColumns = _ref3.leadingControlColumns,
80
89
  trailingControlColumns = _ref3.trailingControlColumns,
81
90
  columns = _ref3.columns,
@@ -88,10 +97,12 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
88
97
  endRow = _ref3$visibleRows.endRow,
89
98
  visibleRowCount = _ref3$visibleRows.visibleRowCount,
90
99
  renderCellValue = _ref3.renderCellValue,
100
+ cellContext = _ref3.cellContext,
91
101
  renderCellPopover = _ref3.renderCellPopover,
92
102
  renderFooterCellValue = _ref3.renderFooterCellValue,
93
103
  interactiveCellId = _ref3.interactiveCellId,
94
104
  pagination = _ref3.pagination,
105
+ sorting = _ref3.sorting,
95
106
  setVisibleColumns = _ref3.setVisibleColumns,
96
107
  switchColumnPos = _ref3.switchColumnPos,
97
108
  onColumnResize = _ref3.onColumnResize,
@@ -141,14 +152,15 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
141
152
  * Header & footer
142
153
  */
143
154
  var _useDataGridHeader = (0, _header.useDataGridHeader)({
144
- switchColumnPos: switchColumnPos,
145
- setVisibleColumns: setVisibleColumns,
146
155
  leadingControlColumns: leadingControlColumns,
147
156
  trailingControlColumns: trailingControlColumns,
148
157
  columns: columns,
149
158
  columnWidths: columnWidths,
150
159
  defaultColumnWidth: defaultColumnWidth,
151
160
  setColumnWidth: setColumnWidth,
161
+ setVisibleColumns: setVisibleColumns,
162
+ switchColumnPos: switchColumnPos,
163
+ sorting: sorting,
152
164
  schema: schema,
153
165
  schemaDetectors: schemaDetectors
154
166
  }),
@@ -256,29 +268,13 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
256
268
  gridRef.current.resetAfterRowIndex(0);
257
269
  }
258
270
  }, [gridRef, getRowHeight]);
259
- return _utils.IS_JEST_ENVIRONMENT || finalWidth > 0 ? (0, _react2.jsx)(DataGridWrapperRowsContext.Provider, {
260
- value: {
261
- headerRowHeight: headerRowHeight,
262
- headerRow: headerRow,
263
- footerRow: footerRow
264
- }
265
- }, (0, _react2.jsx)(_reactWindow.VariableSizeGrid, (0, _extends2.default)({}, virtualizationOptions ? virtualizationOptions : {}, {
266
- ref: gridRef,
267
- className: (0, _classnames.default)('euiDataGrid__virtualized', virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : virtualizationOptions.className),
268
- onItemsRendered: function onItemsRendered(itemsRendered) {
269
- var _virtualizationOption;
270
- gridItemsRendered.current = itemsRendered;
271
- virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : (_virtualizationOption = virtualizationOptions.onItemsRendered) === null || _virtualizationOption === void 0 ? void 0 : _virtualizationOption.call(virtualizationOptions, itemsRendered);
272
- },
273
- innerElementType: InnerElement,
274
- outerRef: outerGridRef,
275
- innerRef: innerGridRef,
276
- columnCount: visibleColCount,
277
- width: finalWidth,
278
- columnWidth: getColumnWidth,
279
- height: finalHeight,
280
- rowHeight: getRowHeight,
281
- itemData: {
271
+ var onItemsRendered = (0, _react.useCallback)(function (itemsRendered) {
272
+ var _virtualizationOption;
273
+ gridItemsRendered.current = itemsRendered;
274
+ virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : (_virtualizationOption = virtualizationOptions.onItemsRendered) === null || _virtualizationOption === void 0 ? void 0 : _virtualizationOption.call(virtualizationOptions, itemsRendered);
275
+ }, [gridItemsRendered, virtualizationOptions]);
276
+ var itemData = (0, _react.useMemo)(function () {
277
+ return {
282
278
  schemaDetectors: schemaDetectors,
283
279
  setRowHeight: setRowHeight,
284
280
  leadingControlColumns: leadingControlColumns,
@@ -289,14 +285,40 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
289
285
  columnWidths: columnWidths,
290
286
  defaultColumnWidth: defaultColumnWidth,
291
287
  renderCellValue: renderCellValue,
288
+ cellContext: cellContext,
292
289
  renderCellPopover: renderCellPopover,
293
290
  interactiveCellId: interactiveCellId,
294
291
  rowHeightsOptions: rowHeightsOptions,
295
292
  rowHeightUtils: rowHeightUtils,
296
293
  rowManager: rowManager,
297
- pagination: pagination
298
- },
294
+ pagination: pagination,
295
+ headerRowHeight: headerRowHeight
296
+ };
297
+ }, [schemaDetectors, setRowHeight, leadingControlColumns, trailingControlColumns, columns, visibleColCount, schema, columnWidths, defaultColumnWidth, renderCellValue, cellContext, renderCellPopover, interactiveCellId, rowHeightsOptions, rowHeightUtils, rowManager, pagination, headerRowHeight]);
298
+ var rowWrapperContextValue = (0, _react.useMemo)(function () {
299
+ return {
300
+ headerRowHeight: headerRowHeight,
301
+ headerRow: headerRow,
302
+ footerRow: footerRow
303
+ };
304
+ }, [headerRowHeight, headerRow, footerRow]);
305
+ return _utils.IS_JEST_ENVIRONMENT || finalWidth > 0 ? (0, _react2.jsx)(DataGridWrapperRowsContext.Provider, {
306
+ value: rowWrapperContextValue
307
+ }, (0, _react2.jsx)(_reactWindow.VariableSizeGrid, (0, _extends2.default)({}, virtualizationOptions, {
308
+ ref: gridRef,
309
+ className: (0, _classnames.default)('euiDataGrid__virtualized', virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : virtualizationOptions.className),
310
+ onItemsRendered: onItemsRendered,
311
+ innerElementType: InnerElement,
312
+ outerRef: outerGridRef,
313
+ innerRef: innerGridRef,
314
+ columnCount: visibleColCount,
315
+ width: finalWidth,
316
+ columnWidth: getColumnWidth,
317
+ height: finalHeight,
318
+ rowHeight: getRowHeight,
319
+ itemData: itemData,
299
320
  rowCount: _utils.IS_JEST_ENVIRONMENT || headerRowHeight > 0 ? visibleRowCount : 0
300
- }), _Cell), scrollBorderOverlay) : null;
301
- };
302
- exports.EuiDataGridBodyVirtualized = EuiDataGridBodyVirtualized;
321
+ }), Cell), scrollBorderOverlay) : null;
322
+ });
323
+ exports.EuiDataGridBodyVirtualized = EuiDataGridBodyVirtualized;
324
+ EuiDataGridBodyVirtualized.displayName = 'EuiDataGridBodyVirtualized';
@@ -85,7 +85,7 @@ var useRowManager = function useRowManager(_ref) {
85
85
  if (rowClasses) {
86
86
  rowIdToElements.current.forEach(function (rowElement, rowIndex) {
87
87
  var euiClasses = Array.from(rowElement.classList).filter(function (className) {
88
- return className.startsWith('euiDataGridRow');
88
+ return ['euiDataGridRow', 'euiDataGridRow--striped'].includes(className);
89
89
  }).join(' ');
90
90
  if (rowClasses[rowIndex]) {
91
91
  rowElement.classList.value = "".concat(euiClasses, " ").concat(rowClasses[rowIndex]);
@@ -95,8 +95,10 @@ var useRowManager = function useRowManager(_ref) {
95
95
  });
96
96
  }
97
97
  }, [rowClasses]);
98
- return {
99
- getRow: getRow
100
- };
98
+ return (0, _react.useMemo)(function () {
99
+ return {
100
+ getRow: getRow
101
+ };
102
+ }, [getRow]);
101
103
  };
102
104
  exports.useRowManager = useRowManager;
@@ -41,8 +41,7 @@ var useDataGridFooter = function useDataGridFooter(props) {
41
41
  ref: setFooterRowRef,
42
42
  renderCellValue: renderFooterCellValue
43
43
  }, footerProps));
44
- }, Object.values(props)); // eslint-disable-line react-hooks/exhaustive-deps
45
-
44
+ }, [props]);
46
45
  return {
47
46
  footerRow: footerRow,
48
47
  footerRowHeight: footerRowHeight