@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
@@ -3,11 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports._Cell = exports.EuiDataGridBodyVirtualized = exports.DataGridWrapperRowsContext = void 0;
6
+ exports.EuiDataGridBodyVirtualized = exports.DataGridWrapperRowsContext = exports.Cell = void 0;
7
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactWindow = require("react-window");
11
+ var _services = require("../../../services");
11
12
  var _resize_observer = require("../../observer/resize_observer");
12
13
  var _header = require("./header");
13
14
  var _footer = require("./footer");
@@ -38,53 +39,56 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
38
39
  * in compliance with, at your election, the Elastic License 2.0 or the Server
39
40
  * Side Public License, v 1.
40
41
  */
41
- var _Cell = function _Cell(_ref) {
42
+ var Cell = /*#__PURE__*/(0, _react.memo)(function (_ref) {
42
43
  var columnIndex = _ref.columnIndex,
43
44
  rowIndex = _ref.rowIndex,
44
45
  style = _ref.style,
45
46
  data = _ref.data;
46
- var _useContext = (0, _react.useContext)(DataGridWrapperRowsContext),
47
- headerRowHeight = _useContext.headerRowHeight;
48
- return (0, _react2.jsx)(_cell.Cell, _extends({
47
+ var memoizedStyles = (0, _services.useDeepEqual)(style);
48
+ var cellStyles = (0, _react.useMemo)(function () {
49
+ var headerRowHeight = data.headerRowHeight;
50
+ return _objectSpread(_objectSpread({}, memoizedStyles), {}, {
51
+ top: "".concat(parseFloat(memoizedStyles.top) + headerRowHeight, "px")
52
+ });
53
+ }, [memoizedStyles, data]);
54
+ return (0, _react2.jsx)(_cell.CellWrapper, _extends({
49
55
  colIndex: columnIndex,
50
56
  visibleRowIndex: rowIndex,
51
- style: _objectSpread(_objectSpread({}, style), {}, {
52
- top: "".concat(parseFloat(style.top) + headerRowHeight, "px")
53
- })
57
+ style: cellStyles
54
58
  }, data));
55
- };
59
+ });
60
+ exports.Cell = Cell;
61
+ Cell.displayName = 'Cell';
56
62
 
57
63
  // Context is required to pass props to react-window's innerElementType
58
64
  // @see https://github.com/bvaughn/react-window/issues/404
59
- exports._Cell = _Cell;
60
65
  var DataGridWrapperRowsContext = /*#__PURE__*/(0, _react.createContext)({
61
66
  headerRow: (0, _react2.jsx)("div", null),
62
67
  headerRowHeight: 0,
63
68
  footerRow: null
64
69
  });
65
70
  exports.DataGridWrapperRowsContext = DataGridWrapperRowsContext;
66
- var InnerElement = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
71
+ var InnerElement = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
67
72
  var children = _ref2.children,
68
73
  style = _ref2.style,
69
74
  rest = _objectWithoutProperties(_ref2, _excluded);
70
- var _useContext2 = (0, _react.useContext)(DataGridWrapperRowsContext),
71
- headerRowHeight = _useContext2.headerRowHeight,
72
- headerRow = _useContext2.headerRow,
73
- footerRow = _useContext2.footerRow;
75
+ var _useContext = (0, _react.useContext)(DataGridWrapperRowsContext),
76
+ headerRowHeight = _useContext.headerRowHeight,
77
+ headerRow = _useContext.headerRow,
78
+ footerRow = _useContext.footerRow;
79
+ var memoizedStyles = (0, _services.useDeepEqual)(style);
80
+ var innerElementStyles = (0, _react.useMemo)(function () {
81
+ return _objectSpread(_objectSpread({}, memoizedStyles), {}, {
82
+ height: memoizedStyles.height + headerRowHeight
83
+ });
84
+ }, [memoizedStyles, headerRowHeight]);
74
85
  return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", _extends({
75
86
  ref: ref,
76
- style: _objectSpread(_objectSpread({}, style), {}, {
77
- height: style.height + headerRowHeight
78
- })
87
+ style: innerElementStyles
79
88
  }, rest), headerRow, children), footerRow);
80
- });
81
- InnerElement.propTypes = {
82
- style: _propTypes.default.shape({
83
- height: _propTypes.default.number.isRequired
84
- }).isRequired
85
- };
89
+ }));
86
90
  InnerElement.displayName = 'EuiDataGridInnerElement';
87
- var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
91
+ var EuiDataGridBodyVirtualized = /*#__PURE__*/(0, _react.memo)(function (_ref3) {
88
92
  var leadingControlColumns = _ref3.leadingControlColumns,
89
93
  trailingControlColumns = _ref3.trailingControlColumns,
90
94
  columns = _ref3.columns,
@@ -97,10 +101,12 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
97
101
  endRow = _ref3$visibleRows.endRow,
98
102
  visibleRowCount = _ref3$visibleRows.visibleRowCount,
99
103
  renderCellValue = _ref3.renderCellValue,
104
+ cellContext = _ref3.cellContext,
100
105
  renderCellPopover = _ref3.renderCellPopover,
101
106
  renderFooterCellValue = _ref3.renderFooterCellValue,
102
107
  interactiveCellId = _ref3.interactiveCellId,
103
108
  pagination = _ref3.pagination,
109
+ sorting = _ref3.sorting,
104
110
  setVisibleColumns = _ref3.setVisibleColumns,
105
111
  switchColumnPos = _ref3.switchColumnPos,
106
112
  onColumnResize = _ref3.onColumnResize,
@@ -150,14 +156,15 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
150
156
  * Header & footer
151
157
  */
152
158
  var _useDataGridHeader = (0, _header.useDataGridHeader)({
153
- switchColumnPos: switchColumnPos,
154
- setVisibleColumns: setVisibleColumns,
155
159
  leadingControlColumns: leadingControlColumns,
156
160
  trailingControlColumns: trailingControlColumns,
157
161
  columns: columns,
158
162
  columnWidths: columnWidths,
159
163
  defaultColumnWidth: defaultColumnWidth,
160
164
  setColumnWidth: setColumnWidth,
165
+ setVisibleColumns: setVisibleColumns,
166
+ switchColumnPos: switchColumnPos,
167
+ sorting: sorting,
161
168
  schema: schema,
162
169
  schemaDetectors: schemaDetectors
163
170
  }),
@@ -265,29 +272,13 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
265
272
  gridRef.current.resetAfterRowIndex(0);
266
273
  }
267
274
  }, [gridRef, getRowHeight]);
268
- return _utils.IS_JEST_ENVIRONMENT || finalWidth > 0 ? (0, _react2.jsx)(DataGridWrapperRowsContext.Provider, {
269
- value: {
270
- headerRowHeight: headerRowHeight,
271
- headerRow: headerRow,
272
- footerRow: footerRow
273
- }
274
- }, (0, _react2.jsx)(_reactWindow.VariableSizeGrid, _extends({}, virtualizationOptions ? virtualizationOptions : {}, {
275
- ref: gridRef,
276
- className: (0, _classnames.default)('euiDataGrid__virtualized', virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : virtualizationOptions.className),
277
- onItemsRendered: function onItemsRendered(itemsRendered) {
278
- var _virtualizationOption;
279
- gridItemsRendered.current = itemsRendered;
280
- virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : (_virtualizationOption = virtualizationOptions.onItemsRendered) === null || _virtualizationOption === void 0 ? void 0 : _virtualizationOption.call(virtualizationOptions, itemsRendered);
281
- },
282
- innerElementType: InnerElement,
283
- outerRef: outerGridRef,
284
- innerRef: innerGridRef,
285
- columnCount: visibleColCount,
286
- width: finalWidth,
287
- columnWidth: getColumnWidth,
288
- height: finalHeight,
289
- rowHeight: getRowHeight,
290
- itemData: {
275
+ var onItemsRendered = (0, _react.useCallback)(function (itemsRendered) {
276
+ var _virtualizationOption;
277
+ gridItemsRendered.current = itemsRendered;
278
+ virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : (_virtualizationOption = virtualizationOptions.onItemsRendered) === null || _virtualizationOption === void 0 ? void 0 : _virtualizationOption.call(virtualizationOptions, itemsRendered);
279
+ }, [gridItemsRendered, virtualizationOptions]);
280
+ var itemData = (0, _react.useMemo)(function () {
281
+ return {
291
282
  schemaDetectors: schemaDetectors,
292
283
  setRowHeight: setRowHeight,
293
284
  leadingControlColumns: leadingControlColumns,
@@ -298,16 +289,41 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
298
289
  columnWidths: columnWidths,
299
290
  defaultColumnWidth: defaultColumnWidth,
300
291
  renderCellValue: renderCellValue,
292
+ cellContext: cellContext,
301
293
  renderCellPopover: renderCellPopover,
302
294
  interactiveCellId: interactiveCellId,
303
295
  rowHeightsOptions: rowHeightsOptions,
304
296
  rowHeightUtils: rowHeightUtils,
305
297
  rowManager: rowManager,
306
- pagination: pagination
307
- },
298
+ pagination: pagination,
299
+ headerRowHeight: headerRowHeight
300
+ };
301
+ }, [schemaDetectors, setRowHeight, leadingControlColumns, trailingControlColumns, columns, visibleColCount, schema, columnWidths, defaultColumnWidth, renderCellValue, cellContext, renderCellPopover, interactiveCellId, rowHeightsOptions, rowHeightUtils, rowManager, pagination, headerRowHeight]);
302
+ var rowWrapperContextValue = (0, _react.useMemo)(function () {
303
+ return {
304
+ headerRowHeight: headerRowHeight,
305
+ headerRow: headerRow,
306
+ footerRow: footerRow
307
+ };
308
+ }, [headerRowHeight, headerRow, footerRow]);
309
+ return _utils.IS_JEST_ENVIRONMENT || finalWidth > 0 ? (0, _react2.jsx)(DataGridWrapperRowsContext.Provider, {
310
+ value: rowWrapperContextValue
311
+ }, (0, _react2.jsx)(_reactWindow.VariableSizeGrid, _extends({}, virtualizationOptions, {
312
+ ref: gridRef,
313
+ className: (0, _classnames.default)('euiDataGrid__virtualized', virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : virtualizationOptions.className),
314
+ onItemsRendered: onItemsRendered,
315
+ innerElementType: InnerElement,
316
+ outerRef: outerGridRef,
317
+ innerRef: innerGridRef,
318
+ columnCount: visibleColCount,
319
+ width: finalWidth,
320
+ columnWidth: getColumnWidth,
321
+ height: finalHeight,
322
+ rowHeight: getRowHeight,
323
+ itemData: itemData,
308
324
  rowCount: _utils.IS_JEST_ENVIRONMENT || headerRowHeight > 0 ? visibleRowCount : 0
309
- }), _Cell), scrollBorderOverlay) : null;
310
- };
325
+ }), Cell), scrollBorderOverlay) : null;
326
+ });
311
327
  exports.EuiDataGridBodyVirtualized = EuiDataGridBodyVirtualized;
312
328
  EuiDataGridBodyVirtualized.propTypes = {
313
329
  leadingControlColumns: _propTypes.default.arrayOf(_propTypes.default.shape({
@@ -844,10 +860,24 @@ EuiDataGridBodyVirtualized.propTypes = {
844
860
  visibleRowCount: _propTypes.default.number.isRequired
845
861
  }).isRequired,
846
862
  renderCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.element.isRequired]).isRequired,
863
+ cellContext: _propTypes.default.any,
847
864
  renderCellPopover: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.func.isRequired]),
848
865
  renderFooterCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.element.isRequired]),
849
866
  renderCustomGridBody: _propTypes.default.func,
850
867
  interactiveCellId: _propTypes.default.string.isRequired,
868
+ sorting: _propTypes.default.shape({
869
+ /**
870
+ * A function that receives updated column sort details in response to user interactions in the toolbar controls
871
+ */
872
+ onSort: _propTypes.default.func.isRequired,
873
+ /**
874
+ * An array of the column ids currently being sorted and their sort direction. The array order determines the sort order. `{ id: 'A'; direction: 'asc' }`
875
+ */
876
+ columns: _propTypes.default.arrayOf(_propTypes.default.shape({
877
+ id: _propTypes.default.string.isRequired,
878
+ direction: _propTypes.default.oneOf(["asc", "desc"]).isRequired
879
+ }).isRequired).isRequired
880
+ }),
851
881
  pagination: _propTypes.default.any,
852
882
  setVisibleColumns: _propTypes.default.func.isRequired,
853
883
  switchColumnPos: _propTypes.default.func.isRequired,
@@ -933,4 +963,5 @@ EuiDataGridBodyVirtualized.propTypes = {
933
963
  gridRef: _propTypes.default.any.isRequired,
934
964
  gridItemsRendered: _propTypes.default.any.isRequired,
935
965
  wrapperRef: _propTypes.default.any.isRequired
936
- };
966
+ };
967
+ EuiDataGridBodyVirtualized.displayName = 'EuiDataGridBodyVirtualized';
@@ -87,7 +87,7 @@ var useRowManager = function useRowManager(_ref) {
87
87
  if (rowClasses) {
88
88
  rowIdToElements.current.forEach(function (rowElement, rowIndex) {
89
89
  var euiClasses = Array.from(rowElement.classList).filter(function (className) {
90
- return className.startsWith('euiDataGridRow');
90
+ return ['euiDataGridRow', 'euiDataGridRow--striped'].includes(className);
91
91
  }).join(' ');
92
92
  if (rowClasses[rowIndex]) {
93
93
  rowElement.classList.value = "".concat(euiClasses, " ").concat(rowClasses[rowIndex]);
@@ -97,8 +97,10 @@ var useRowManager = function useRowManager(_ref) {
97
97
  });
98
98
  }
99
99
  }, [rowClasses]);
100
- return {
101
- getRow: getRow
102
- };
100
+ return (0, _react.useMemo)(function () {
101
+ return {
102
+ getRow: getRow
103
+ };
104
+ }, [getRow]);
103
105
  };
104
106
  exports.useRowManager = useRowManager;
@@ -45,8 +45,7 @@ var useDataGridFooter = function useDataGridFooter(props) {
45
45
  ref: setFooterRowRef,
46
46
  renderCellValue: renderFooterCellValue
47
47
  }, footerProps));
48
- }, Object.values(props)); // eslint-disable-line react-hooks/exhaustive-deps
49
-
48
+ }, [props]);
50
49
  return {
51
50
  footerRow: footerRow,
52
51
  footerRowHeight: footerRowHeight
@@ -1,15 +1,18 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.EuiDataGridControlHeaderCell = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
8
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
10
  var _classnames = _interopRequireDefault(require("classnames"));
10
11
  var _data_grid_header_cell_wrapper = require("./data_grid_header_cell_wrapper");
11
12
  var _react2 = require("@emotion/react");
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
16
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /*
14
17
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
18
  * or more contributor license agreements. Licensed under the Elastic License
@@ -17,7 +20,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
17
20
  * in compliance with, at your election, the Elastic License 2.0 or the Server
18
21
  * Side Public License, v 1.
19
22
  */
20
- var EuiDataGridControlHeaderCell = function EuiDataGridControlHeaderCell(_ref) {
23
+ var EuiDataGridControlHeaderCell = /*#__PURE__*/(0, _react.memo)(function (_ref) {
21
24
  var controlColumn = _ref.controlColumn,
22
25
  index = _ref.index;
23
26
  var HeaderCellRender = controlColumn.headerCellRender,
@@ -32,7 +35,7 @@ var EuiDataGridControlHeaderCell = function EuiDataGridControlHeaderCell(_ref) {
32
35
  }), (0, _react2.jsx)("div", {
33
36
  className: "euiDataGridHeaderCell__content"
34
37
  }, (0, _react2.jsx)(HeaderCellRender, null)));
35
- };
38
+ });
36
39
  exports.EuiDataGridControlHeaderCell = EuiDataGridControlHeaderCell;
37
40
  EuiDataGridControlHeaderCell.propTypes = {
38
41
  index: _propTypes.default.number.isRequired,
@@ -66,4 +69,5 @@ EuiDataGridControlHeaderCell.propTypes = {
66
69
  */
67
70
  footerCellProps: _propTypes.default.any
68
71
  }).isRequired
69
- };
72
+ };
73
+ EuiDataGridControlHeaderCell.displayName = 'EuiDataGridControlHeaderCell';
@@ -16,7 +16,6 @@ var _i18n = require("../../../i18n");
16
16
  var _icon = require("../../../icon");
17
17
  var _list_group = require("../../../list_group");
18
18
  var _popover = require("../../../popover");
19
- var _sorting = require("../../utils/sorting");
20
19
  var _focus = require("../../utils/focus");
21
20
  var _column_actions = require("./column_actions");
22
21
  var _data_grid_column_resizer = require("./data_grid_column_resizer");
@@ -42,7 +41,20 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /*
42
41
  * in compliance with, at your election, the Elastic License 2.0 or the Server
43
42
  * Side Public License, v 1.
44
43
  */
45
- var _ref2 = process.env.NODE_ENV === "production" ? {
44
+ var CellContent = function CellContent(_ref) {
45
+ var children = _ref.children,
46
+ title = _ref.title,
47
+ arrow = _ref.arrow;
48
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
49
+ title: title,
50
+ className: "euiDataGridHeaderCell__content"
51
+ }, children), arrow);
52
+ };
53
+ CellContent.propTypes = {
54
+ title: _propTypes.default.string.isRequired,
55
+ arrow: _propTypes.default.node
56
+ };
57
+ var _ref3 = process.env.NODE_ENV === "production" ? {
46
58
  name: "mc0thx-EuiDataGridHeaderCell",
47
59
  styles: "margin-inline-start:auto;label:EuiDataGridHeaderCell;"
48
60
  } : {
@@ -50,18 +62,19 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
50
62
  styles: "margin-inline-start:auto;label:EuiDataGridHeaderCell;",
51
63
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
52
64
  };
53
- var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
65
+ var EuiDataGridHeaderCell = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
54
66
  var _classnames;
55
- var column = _ref.column,
56
- index = _ref.index,
57
- columns = _ref.columns,
58
- columnWidths = _ref.columnWidths,
59
- schema = _ref.schema,
60
- schemaDetectors = _ref.schemaDetectors,
61
- defaultColumnWidth = _ref.defaultColumnWidth,
62
- setColumnWidth = _ref.setColumnWidth,
63
- setVisibleColumns = _ref.setVisibleColumns,
64
- switchColumnPos = _ref.switchColumnPos;
67
+ var index = _ref2.index,
68
+ column = _ref2.column,
69
+ columns = _ref2.columns,
70
+ columnWidths = _ref2.columnWidths,
71
+ defaultColumnWidth = _ref2.defaultColumnWidth,
72
+ setColumnWidth = _ref2.setColumnWidth,
73
+ setVisibleColumns = _ref2.setVisibleColumns,
74
+ switchColumnPos = _ref2.switchColumnPos,
75
+ sorting = _ref2.sorting,
76
+ schema = _ref2.schema,
77
+ schemaDetectors = _ref2.schemaDetectors;
65
78
  var id = column.id,
66
79
  display = column.display,
67
80
  displayAsText = column.displayAsText,
@@ -71,25 +84,25 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
71
84
  var _useContext = (0, _react.useContext)(_focus.DataGridFocusContext),
72
85
  setFocusedCell = _useContext.setFocusedCell,
73
86
  focusFirstVisibleInteractiveCell = _useContext.focusFirstVisibleInteractiveCell;
74
- var _useContext2 = (0, _react.useContext)(_sorting.DataGridSortingContext),
75
- sorting = _useContext2.sorting;
76
87
  var _useState = (0, _react.useState)(false),
77
88
  _useState2 = _slicedToArray(_useState, 2),
78
89
  isPopoverOpen = _useState2[0],
79
90
  setIsPopoverOpen = _useState2[1];
80
91
  var popoverArrowNavigationProps = usePopoverArrowNavigation();
81
- var columnActions = (0, _column_actions.getColumnActions)({
82
- column: column,
83
- columns: columns,
84
- schema: schema,
85
- schemaDetectors: schemaDetectors,
86
- setVisibleColumns: setVisibleColumns,
87
- focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
88
- setIsPopoverOpen: setIsPopoverOpen,
89
- sorting: sorting,
90
- switchColumnPos: switchColumnPos,
91
- setFocusedCell: setFocusedCell
92
- });
92
+ var columnActions = (0, _react.useMemo)(function () {
93
+ return (0, _column_actions.getColumnActions)({
94
+ column: column,
95
+ columns: columns,
96
+ schema: schema,
97
+ schemaDetectors: schemaDetectors,
98
+ setVisibleColumns: setVisibleColumns,
99
+ focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
100
+ setIsPopoverOpen: setIsPopoverOpen,
101
+ sorting: sorting,
102
+ switchColumnPos: switchColumnPos,
103
+ setFocusedCell: setFocusedCell
104
+ });
105
+ }, [column, columns, schema, schemaDetectors, setVisibleColumns, focusFirstVisibleInteractiveCell, setIsPopoverOpen, sorting, switchColumnPos, setFocusedCell]);
93
106
  var showColumnActions = columnActions && columnActions.length > 0;
94
107
  var actionsButtonRef = (0, _react.useRef)(null);
95
108
  var focusActionsButton = (0, _react.useCallback)(function () {
@@ -116,11 +129,9 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
116
129
  prefix: 'euiDataGridCellHeader',
117
130
  suffix: 'actions'
118
131
  });
119
- var cellContent = (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
120
- title: displayAsText || id,
121
- className: "euiDataGridHeaderCell__content"
122
- }, display || displayAsText || id), sortingArrow);
123
132
  var classes = (0, _classnames2.default)((_classnames = {}, _defineProperty(_classnames, "euiDataGridHeaderCell--".concat(columnType), columnType), _defineProperty(_classnames, 'euiDataGridHeaderCell--hasColumnActions', showColumnActions), _defineProperty(_classnames, 'euiDataGridHeaderCell--isActionsPopoverOpen', isPopoverOpen), _classnames), displayHeaderCellProps === null || displayHeaderCellProps === void 0 ? void 0 : displayHeaderCellProps.className);
133
+ var title = displayAsText || id;
134
+ var children = display || displayAsText || id;
124
135
  return (0, _react2.jsx)(_data_grid_header_cell_wrapper.EuiDataGridHeaderCellWrapper, _extends({}, displayHeaderCellProps, {
125
136
  className: classes,
126
137
  id: id,
@@ -134,7 +145,10 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
134
145
  columnId: id,
135
146
  columnWidth: width,
136
147
  setColumnWidth: setColumnWidth
137
- }) : null, !showColumnActions ? (0, _react2.jsx)(_react.default.Fragment, null, cellContent, sortingScreenReaderText && (0, _react2.jsx)(_accessibility2.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", null, sortingScreenReaderText))) : (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("button", {
148
+ }) : null, !showColumnActions ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(CellContent, {
149
+ title: title,
150
+ arrow: sortingArrow
151
+ }, children), sortingScreenReaderText && (0, _react2.jsx)(_accessibility2.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", null, sortingScreenReaderText))) : (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("button", {
138
152
  className: "euiDataGridHeaderCell__button",
139
153
  onClick: function onClick() {
140
154
  return setIsPopoverOpen(function (isPopoverOpen) {
@@ -150,12 +164,15 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
150
164
  "aria-describedby": "".concat(sortingAriaId, " ").concat(actionsAriaId),
151
165
  ref: actionsButtonRef,
152
166
  "data-test-subj": "dataGridHeaderCellActionButton-".concat(id)
153
- }, cellContent, (0, _react2.jsx)(_popover.EuiPopover, _extends({
167
+ }, (0, _react2.jsx)(CellContent, {
168
+ title: title,
169
+ arrow: sortingArrow
170
+ }, children), (0, _react2.jsx)(_popover.EuiPopover, _extends({
154
171
  display: "block",
155
172
  panelPaddingSize: "none",
156
173
  offset: 7,
157
174
  anchorPosition: "downRight",
158
- css: _ref2 // Align to right
175
+ css: _ref3 // Align to right
159
176
  ,
160
177
  focusTrapProps: {
161
178
  // We need to override the default EuiPopover `onClickOutside` since the anchor is separate from the actual button
@@ -191,11 +208,7 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
191
208
  token: "euiDataGridHeaderCell.headerActions",
192
209
  default: "Click to view column header actions"
193
210
  }))));
194
- };
195
-
196
- /**
197
- * Column sorting utility helpers
198
- */
211
+ });
199
212
  exports.EuiDataGridHeaderCell = EuiDataGridHeaderCell;
200
213
  EuiDataGridHeaderCell.propTypes = {
201
214
  column: _propTypes.default.shape({
@@ -623,11 +636,16 @@ EuiDataGridHeaderCell.propTypes = {
623
636
  }).isRequired,
624
637
  index: _propTypes.default.number.isRequired
625
638
  };
626
- var useSortingUtils = function useSortingUtils(_ref3) {
639
+ EuiDataGridHeaderCell.displayName = 'EuiDataGridHeaderCell';
640
+
641
+ /**
642
+ * Column sorting utility helpers
643
+ */
644
+ var useSortingUtils = function useSortingUtils(_ref4) {
627
645
  var _sorting$columns;
628
- var sorting = _ref3.sorting,
629
- id = _ref3.id,
630
- showColumnActions = _ref3.showColumnActions;
646
+ var sorting = _ref4.sorting,
647
+ id = _ref4.id,
648
+ showColumnActions = _ref4.showColumnActions;
631
649
  var sortedColumn = (0, _react.useMemo)(function () {
632
650
  return sorting === null || sorting === void 0 ? void 0 : sorting.columns.find(function (col) {
633
651
  return col.id === id;
@@ -639,12 +657,14 @@ var useSortingUtils = function useSortingUtils(_ref3) {
639
657
  /**
640
658
  * Arrow icon
641
659
  */
642
- var sortingArrow = isColumnSorted ? (0, _react2.jsx)(_icon.EuiIcon, {
643
- type: sortedColumn.direction === 'asc' ? 'sortUp' : 'sortDown',
644
- color: "text",
645
- className: "euiDataGridHeaderCell__sortingArrow",
646
- "data-test-subj": "dataGridHeaderCellSortingIcon-".concat(id)
647
- }) : null;
660
+ var sortingArrow = (0, _react.useMemo)(function () {
661
+ return isColumnSorted ? (0, _react2.jsx)(_icon.EuiIcon, {
662
+ type: sortedColumn.direction === 'asc' ? 'sortUp' : 'sortDown',
663
+ color: "text",
664
+ className: "euiDataGridHeaderCell__sortingArrow",
665
+ "data-test-subj": "dataGridHeaderCellSortingIcon-".concat(id)
666
+ }) : null;
667
+ }, [id, isColumnSorted, sortedColumn]);
648
668
 
649
669
  /**
650
670
  * aria-sort attribute - should only be used when a single column is being sorted
@@ -661,9 +681,9 @@ var useSortingUtils = function useSortingUtils(_ref3) {
661
681
  var _sorting$columns2;
662
682
  if (!isColumnSorted) return null;
663
683
  if (!showColumnActions && hasOnlyOneSort) return null; // in this scenario, the `aria-sort` attribute will be used by screen readers
664
- return (0, _react2.jsx)(_react.default.Fragment, null, sorting === null || sorting === void 0 ? void 0 : (_sorting$columns2 = sorting.columns) === null || _sorting$columns2 === void 0 ? void 0 : _sorting$columns2.map(function (_ref4, index) {
665
- var columnId = _ref4.id,
666
- direction = _ref4.direction;
684
+ return (0, _react2.jsx)(_react.default.Fragment, null, sorting === null || sorting === void 0 ? void 0 : (_sorting$columns2 = sorting.columns) === null || _sorting$columns2 === void 0 ? void 0 : _sorting$columns2.map(function (_ref5, index) {
685
+ var columnId = _ref5.id,
686
+ direction = _ref5.direction;
667
687
  if (hasOnlyOneSort) {
668
688
  if (direction === 'asc') {
669
689
  return (0, _react2.jsx)(_i18n.EuiI18n, {