@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
@@ -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 = 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 _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
@@ -13,6 +13,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
13
13
  var _classnames = _interopRequireDefault(require("classnames"));
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
  var _reactWindow = require("react-window");
16
+ var _services = require("../../../services");
16
17
  var _resize_observer = require("../../observer/resize_observer");
17
18
  var _header = require("./header");
18
19
  var _footer = require("./footer");
@@ -35,53 +36,56 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
35
36
  * in compliance with, at your election, the Elastic License 2.0 or the Server
36
37
  * Side Public License, v 1.
37
38
  */
38
- var _Cell = function _Cell(_ref) {
39
+ var Cell = /*#__PURE__*/(0, _react.memo)(function (_ref) {
39
40
  var columnIndex = _ref.columnIndex,
40
41
  rowIndex = _ref.rowIndex,
41
42
  style = _ref.style,
42
43
  data = _ref.data;
43
- var _useContext = (0, _react.useContext)(DataGridWrapperRowsContext),
44
- headerRowHeight = _useContext.headerRowHeight;
45
- return (0, _react2.jsx)(_cell.Cell, (0, _extends2.default)({
44
+ var memoizedStyles = (0, _services.useDeepEqual)(style);
45
+ var cellStyles = (0, _react.useMemo)(function () {
46
+ var headerRowHeight = data.headerRowHeight;
47
+ return _objectSpread(_objectSpread({}, memoizedStyles), {}, {
48
+ top: "".concat(parseFloat(memoizedStyles.top) + headerRowHeight, "px")
49
+ });
50
+ }, [memoizedStyles, data]);
51
+ return (0, _react2.jsx)(_cell.CellWrapper, (0, _extends2.default)({
46
52
  colIndex: columnIndex,
47
53
  visibleRowIndex: rowIndex,
48
- style: _objectSpread(_objectSpread({}, style), {}, {
49
- top: "".concat(parseFloat(style.top) + headerRowHeight, "px")
50
- })
54
+ style: cellStyles
51
55
  }, data));
52
- };
56
+ });
57
+ exports.Cell = Cell;
58
+ Cell.displayName = 'Cell';
53
59
 
54
60
  // Context is required to pass props to react-window's innerElementType
55
61
  // @see https://github.com/bvaughn/react-window/issues/404
56
- exports._Cell = _Cell;
57
62
  var DataGridWrapperRowsContext = /*#__PURE__*/(0, _react.createContext)({
58
63
  headerRow: (0, _react2.jsx)("div", null),
59
64
  headerRowHeight: 0,
60
65
  footerRow: null
61
66
  });
62
67
  exports.DataGridWrapperRowsContext = DataGridWrapperRowsContext;
63
- var InnerElement = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
68
+ var InnerElement = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
64
69
  var children = _ref2.children,
65
70
  style = _ref2.style,
66
71
  rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
67
- var _useContext2 = (0, _react.useContext)(DataGridWrapperRowsContext),
68
- headerRowHeight = _useContext2.headerRowHeight,
69
- headerRow = _useContext2.headerRow,
70
- footerRow = _useContext2.footerRow;
72
+ var _useContext = (0, _react.useContext)(DataGridWrapperRowsContext),
73
+ headerRowHeight = _useContext.headerRowHeight,
74
+ headerRow = _useContext.headerRow,
75
+ footerRow = _useContext.footerRow;
76
+ var memoizedStyles = (0, _services.useDeepEqual)(style);
77
+ var innerElementStyles = (0, _react.useMemo)(function () {
78
+ return _objectSpread(_objectSpread({}, memoizedStyles), {}, {
79
+ height: memoizedStyles.height + headerRowHeight
80
+ });
81
+ }, [memoizedStyles, headerRowHeight]);
71
82
  return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", (0, _extends2.default)({
72
83
  ref: ref,
73
- style: _objectSpread(_objectSpread({}, style), {}, {
74
- height: style.height + headerRowHeight
75
- })
84
+ style: innerElementStyles
76
85
  }, rest), headerRow, children), footerRow);
77
- });
78
- InnerElement.propTypes = {
79
- style: _propTypes.default.shape({
80
- height: _propTypes.default.number.isRequired
81
- }).isRequired
82
- };
86
+ }));
83
87
  InnerElement.displayName = 'EuiDataGridInnerElement';
84
- var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
88
+ var EuiDataGridBodyVirtualized = /*#__PURE__*/(0, _react.memo)(function (_ref3) {
85
89
  var leadingControlColumns = _ref3.leadingControlColumns,
86
90
  trailingControlColumns = _ref3.trailingControlColumns,
87
91
  columns = _ref3.columns,
@@ -94,10 +98,12 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
94
98
  endRow = _ref3$visibleRows.endRow,
95
99
  visibleRowCount = _ref3$visibleRows.visibleRowCount,
96
100
  renderCellValue = _ref3.renderCellValue,
101
+ cellContext = _ref3.cellContext,
97
102
  renderCellPopover = _ref3.renderCellPopover,
98
103
  renderFooterCellValue = _ref3.renderFooterCellValue,
99
104
  interactiveCellId = _ref3.interactiveCellId,
100
105
  pagination = _ref3.pagination,
106
+ sorting = _ref3.sorting,
101
107
  setVisibleColumns = _ref3.setVisibleColumns,
102
108
  switchColumnPos = _ref3.switchColumnPos,
103
109
  onColumnResize = _ref3.onColumnResize,
@@ -147,14 +153,15 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
147
153
  * Header & footer
148
154
  */
149
155
  var _useDataGridHeader = (0, _header.useDataGridHeader)({
150
- switchColumnPos: switchColumnPos,
151
- setVisibleColumns: setVisibleColumns,
152
156
  leadingControlColumns: leadingControlColumns,
153
157
  trailingControlColumns: trailingControlColumns,
154
158
  columns: columns,
155
159
  columnWidths: columnWidths,
156
160
  defaultColumnWidth: defaultColumnWidth,
157
161
  setColumnWidth: setColumnWidth,
162
+ setVisibleColumns: setVisibleColumns,
163
+ switchColumnPos: switchColumnPos,
164
+ sorting: sorting,
158
165
  schema: schema,
159
166
  schemaDetectors: schemaDetectors
160
167
  }),
@@ -262,29 +269,13 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
262
269
  gridRef.current.resetAfterRowIndex(0);
263
270
  }
264
271
  }, [gridRef, getRowHeight]);
265
- return _utils.IS_JEST_ENVIRONMENT || finalWidth > 0 ? (0, _react2.jsx)(DataGridWrapperRowsContext.Provider, {
266
- value: {
267
- headerRowHeight: headerRowHeight,
268
- headerRow: headerRow,
269
- footerRow: footerRow
270
- }
271
- }, (0, _react2.jsx)(_reactWindow.VariableSizeGrid, (0, _extends2.default)({}, virtualizationOptions ? virtualizationOptions : {}, {
272
- ref: gridRef,
273
- className: (0, _classnames.default)('euiDataGrid__virtualized', virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : virtualizationOptions.className),
274
- onItemsRendered: function onItemsRendered(itemsRendered) {
275
- var _virtualizationOption;
276
- gridItemsRendered.current = itemsRendered;
277
- virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : (_virtualizationOption = virtualizationOptions.onItemsRendered) === null || _virtualizationOption === void 0 ? void 0 : _virtualizationOption.call(virtualizationOptions, itemsRendered);
278
- },
279
- innerElementType: InnerElement,
280
- outerRef: outerGridRef,
281
- innerRef: innerGridRef,
282
- columnCount: visibleColCount,
283
- width: finalWidth,
284
- columnWidth: getColumnWidth,
285
- height: finalHeight,
286
- rowHeight: getRowHeight,
287
- itemData: {
272
+ var onItemsRendered = (0, _react.useCallback)(function (itemsRendered) {
273
+ var _virtualizationOption;
274
+ gridItemsRendered.current = itemsRendered;
275
+ virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : (_virtualizationOption = virtualizationOptions.onItemsRendered) === null || _virtualizationOption === void 0 ? void 0 : _virtualizationOption.call(virtualizationOptions, itemsRendered);
276
+ }, [gridItemsRendered, virtualizationOptions]);
277
+ var itemData = (0, _react.useMemo)(function () {
278
+ return {
288
279
  schemaDetectors: schemaDetectors,
289
280
  setRowHeight: setRowHeight,
290
281
  leadingControlColumns: leadingControlColumns,
@@ -295,16 +286,41 @@ var EuiDataGridBodyVirtualized = function EuiDataGridBodyVirtualized(_ref3) {
295
286
  columnWidths: columnWidths,
296
287
  defaultColumnWidth: defaultColumnWidth,
297
288
  renderCellValue: renderCellValue,
289
+ cellContext: cellContext,
298
290
  renderCellPopover: renderCellPopover,
299
291
  interactiveCellId: interactiveCellId,
300
292
  rowHeightsOptions: rowHeightsOptions,
301
293
  rowHeightUtils: rowHeightUtils,
302
294
  rowManager: rowManager,
303
- pagination: pagination
304
- },
295
+ pagination: pagination,
296
+ headerRowHeight: headerRowHeight
297
+ };
298
+ }, [schemaDetectors, setRowHeight, leadingControlColumns, trailingControlColumns, columns, visibleColCount, schema, columnWidths, defaultColumnWidth, renderCellValue, cellContext, renderCellPopover, interactiveCellId, rowHeightsOptions, rowHeightUtils, rowManager, pagination, headerRowHeight]);
299
+ var rowWrapperContextValue = (0, _react.useMemo)(function () {
300
+ return {
301
+ headerRowHeight: headerRowHeight,
302
+ headerRow: headerRow,
303
+ footerRow: footerRow
304
+ };
305
+ }, [headerRowHeight, headerRow, footerRow]);
306
+ return _utils.IS_JEST_ENVIRONMENT || finalWidth > 0 ? (0, _react2.jsx)(DataGridWrapperRowsContext.Provider, {
307
+ value: rowWrapperContextValue
308
+ }, (0, _react2.jsx)(_reactWindow.VariableSizeGrid, (0, _extends2.default)({}, virtualizationOptions, {
309
+ ref: gridRef,
310
+ className: (0, _classnames.default)('euiDataGrid__virtualized', virtualizationOptions === null || virtualizationOptions === void 0 ? void 0 : virtualizationOptions.className),
311
+ onItemsRendered: onItemsRendered,
312
+ innerElementType: InnerElement,
313
+ outerRef: outerGridRef,
314
+ innerRef: innerGridRef,
315
+ columnCount: visibleColCount,
316
+ width: finalWidth,
317
+ columnWidth: getColumnWidth,
318
+ height: finalHeight,
319
+ rowHeight: getRowHeight,
320
+ itemData: itemData,
305
321
  rowCount: _utils.IS_JEST_ENVIRONMENT || headerRowHeight > 0 ? visibleRowCount : 0
306
- }), _Cell), scrollBorderOverlay) : null;
307
- };
322
+ }), Cell), scrollBorderOverlay) : null;
323
+ });
308
324
  exports.EuiDataGridBodyVirtualized = EuiDataGridBodyVirtualized;
309
325
  EuiDataGridBodyVirtualized.propTypes = {
310
326
  leadingControlColumns: _propTypes.default.arrayOf(_propTypes.default.shape({
@@ -841,10 +857,24 @@ EuiDataGridBodyVirtualized.propTypes = {
841
857
  visibleRowCount: _propTypes.default.number.isRequired
842
858
  }).isRequired,
843
859
  renderCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.element.isRequired]).isRequired,
860
+ cellContext: _propTypes.default.any,
844
861
  renderCellPopover: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.func.isRequired]),
845
862
  renderFooterCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.element.isRequired]),
846
863
  renderCustomGridBody: _propTypes.default.func,
847
864
  interactiveCellId: _propTypes.default.string.isRequired,
865
+ sorting: _propTypes.default.shape({
866
+ /**
867
+ * A function that receives updated column sort details in response to user interactions in the toolbar controls
868
+ */
869
+ onSort: _propTypes.default.func.isRequired,
870
+ /**
871
+ * An array of the column ids currently being sorted and their sort direction. The array order determines the sort order. `{ id: 'A'; direction: 'asc' }`
872
+ */
873
+ columns: _propTypes.default.arrayOf(_propTypes.default.shape({
874
+ id: _propTypes.default.string.isRequired,
875
+ direction: _propTypes.default.oneOf(["asc", "desc"]).isRequired
876
+ }).isRequired).isRequired
877
+ }),
848
878
  pagination: _propTypes.default.any,
849
879
  setVisibleColumns: _propTypes.default.func.isRequired,
850
880
  switchColumnPos: _propTypes.default.func.isRequired,
@@ -930,4 +960,5 @@ EuiDataGridBodyVirtualized.propTypes = {
930
960
  gridRef: _propTypes.default.any.isRequired,
931
961
  gridItemsRendered: _propTypes.default.any.isRequired,
932
962
  wrapperRef: _propTypes.default.any.isRequired
933
- };
963
+ };
964
+ 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
@@ -1,16 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.EuiDataGridControlHeaderCell = void 0;
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
10
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
12
  var _classnames = _interopRequireDefault(require("classnames"));
12
13
  var _data_grid_header_cell_wrapper = require("./data_grid_header_cell_wrapper");
13
14
  var _react2 = require("@emotion/react");
15
+ 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); }
16
+ 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; }
14
17
  /*
15
18
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
19
  * or more contributor license agreements. Licensed under the Elastic License
@@ -19,7 +22,7 @@ var _react2 = require("@emotion/react");
19
22
  * Side Public License, v 1.
20
23
  */
21
24
 
22
- var EuiDataGridControlHeaderCell = function EuiDataGridControlHeaderCell(_ref) {
25
+ var EuiDataGridControlHeaderCell = /*#__PURE__*/(0, _react.memo)(function (_ref) {
23
26
  var controlColumn = _ref.controlColumn,
24
27
  index = _ref.index;
25
28
  var HeaderCellRender = controlColumn.headerCellRender,
@@ -34,7 +37,7 @@ var EuiDataGridControlHeaderCell = function EuiDataGridControlHeaderCell(_ref) {
34
37
  }), (0, _react2.jsx)("div", {
35
38
  className: "euiDataGridHeaderCell__content"
36
39
  }, (0, _react2.jsx)(HeaderCellRender, null)));
37
- };
40
+ });
38
41
  exports.EuiDataGridControlHeaderCell = EuiDataGridControlHeaderCell;
39
42
  EuiDataGridControlHeaderCell.propTypes = {
40
43
  index: _propTypes.default.number.isRequired,
@@ -68,4 +71,5 @@ EuiDataGridControlHeaderCell.propTypes = {
68
71
  */
69
72
  footerCellProps: _propTypes.default.any
70
73
  }).isRequired
71
- };
74
+ };
75
+ EuiDataGridControlHeaderCell.displayName = 'EuiDataGridControlHeaderCell';
@@ -20,7 +20,6 @@ var _i18n = require("../../../i18n");
20
20
  var _icon = require("../../../icon");
21
21
  var _list_group = require("../../../list_group");
22
22
  var _popover = require("../../../popover");
23
- var _sorting = require("../../utils/sorting");
24
23
  var _focus = require("../../utils/focus");
25
24
  var _column_actions = require("./column_actions");
26
25
  var _data_grid_column_resizer = require("./data_grid_column_resizer");
@@ -35,7 +34,20 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
35
34
  * in compliance with, at your election, the Elastic License 2.0 or the Server
36
35
  * Side Public License, v 1.
37
36
  */
38
- var _ref2 = process.env.NODE_ENV === "production" ? {
37
+ var CellContent = function CellContent(_ref) {
38
+ var children = _ref.children,
39
+ title = _ref.title,
40
+ arrow = _ref.arrow;
41
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
42
+ title: title,
43
+ className: "euiDataGridHeaderCell__content"
44
+ }, children), arrow);
45
+ };
46
+ CellContent.propTypes = {
47
+ title: _propTypes.default.string.isRequired,
48
+ arrow: _propTypes.default.node
49
+ };
50
+ var _ref3 = process.env.NODE_ENV === "production" ? {
39
51
  name: "mc0thx-EuiDataGridHeaderCell",
40
52
  styles: "margin-inline-start:auto;label:EuiDataGridHeaderCell;"
41
53
  } : {
@@ -43,18 +55,19 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
43
55
  styles: "margin-inline-start:auto;label:EuiDataGridHeaderCell;",
44
56
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
45
57
  };
46
- var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
58
+ var EuiDataGridHeaderCell = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
47
59
  var _classnames;
48
- var column = _ref.column,
49
- index = _ref.index,
50
- columns = _ref.columns,
51
- columnWidths = _ref.columnWidths,
52
- schema = _ref.schema,
53
- schemaDetectors = _ref.schemaDetectors,
54
- defaultColumnWidth = _ref.defaultColumnWidth,
55
- setColumnWidth = _ref.setColumnWidth,
56
- setVisibleColumns = _ref.setVisibleColumns,
57
- switchColumnPos = _ref.switchColumnPos;
60
+ var index = _ref2.index,
61
+ column = _ref2.column,
62
+ columns = _ref2.columns,
63
+ columnWidths = _ref2.columnWidths,
64
+ defaultColumnWidth = _ref2.defaultColumnWidth,
65
+ setColumnWidth = _ref2.setColumnWidth,
66
+ setVisibleColumns = _ref2.setVisibleColumns,
67
+ switchColumnPos = _ref2.switchColumnPos,
68
+ sorting = _ref2.sorting,
69
+ schema = _ref2.schema,
70
+ schemaDetectors = _ref2.schemaDetectors;
58
71
  var id = column.id,
59
72
  display = column.display,
60
73
  displayAsText = column.displayAsText,
@@ -64,25 +77,25 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
64
77
  var _useContext = (0, _react.useContext)(_focus.DataGridFocusContext),
65
78
  setFocusedCell = _useContext.setFocusedCell,
66
79
  focusFirstVisibleInteractiveCell = _useContext.focusFirstVisibleInteractiveCell;
67
- var _useContext2 = (0, _react.useContext)(_sorting.DataGridSortingContext),
68
- sorting = _useContext2.sorting;
69
80
  var _useState = (0, _react.useState)(false),
70
81
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
71
82
  isPopoverOpen = _useState2[0],
72
83
  setIsPopoverOpen = _useState2[1];
73
84
  var popoverArrowNavigationProps = usePopoverArrowNavigation();
74
- var columnActions = (0, _column_actions.getColumnActions)({
75
- column: column,
76
- columns: columns,
77
- schema: schema,
78
- schemaDetectors: schemaDetectors,
79
- setVisibleColumns: setVisibleColumns,
80
- focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
81
- setIsPopoverOpen: setIsPopoverOpen,
82
- sorting: sorting,
83
- switchColumnPos: switchColumnPos,
84
- setFocusedCell: setFocusedCell
85
- });
85
+ var columnActions = (0, _react.useMemo)(function () {
86
+ return (0, _column_actions.getColumnActions)({
87
+ column: column,
88
+ columns: columns,
89
+ schema: schema,
90
+ schemaDetectors: schemaDetectors,
91
+ setVisibleColumns: setVisibleColumns,
92
+ focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
93
+ setIsPopoverOpen: setIsPopoverOpen,
94
+ sorting: sorting,
95
+ switchColumnPos: switchColumnPos,
96
+ setFocusedCell: setFocusedCell
97
+ });
98
+ }, [column, columns, schema, schemaDetectors, setVisibleColumns, focusFirstVisibleInteractiveCell, setIsPopoverOpen, sorting, switchColumnPos, setFocusedCell]);
86
99
  var showColumnActions = columnActions && columnActions.length > 0;
87
100
  var actionsButtonRef = (0, _react.useRef)(null);
88
101
  var focusActionsButton = (0, _react.useCallback)(function () {
@@ -109,11 +122,9 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
109
122
  prefix: 'euiDataGridCellHeader',
110
123
  suffix: 'actions'
111
124
  });
112
- var cellContent = (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
113
- title: displayAsText || id,
114
- className: "euiDataGridHeaderCell__content"
115
- }, display || displayAsText || id), sortingArrow);
116
125
  var classes = (0, _classnames2.default)((_classnames = {}, (0, _defineProperty2.default)(_classnames, "euiDataGridHeaderCell--".concat(columnType), columnType), (0, _defineProperty2.default)(_classnames, 'euiDataGridHeaderCell--hasColumnActions', showColumnActions), (0, _defineProperty2.default)(_classnames, 'euiDataGridHeaderCell--isActionsPopoverOpen', isPopoverOpen), _classnames), displayHeaderCellProps === null || displayHeaderCellProps === void 0 ? void 0 : displayHeaderCellProps.className);
126
+ var title = displayAsText || id;
127
+ var children = display || displayAsText || id;
117
128
  return (0, _react2.jsx)(_data_grid_header_cell_wrapper.EuiDataGridHeaderCellWrapper, (0, _extends2.default)({}, displayHeaderCellProps, {
118
129
  className: classes,
119
130
  id: id,
@@ -127,7 +138,10 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
127
138
  columnId: id,
128
139
  columnWidth: width,
129
140
  setColumnWidth: setColumnWidth
130
- }) : 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", {
141
+ }) : null, !showColumnActions ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(CellContent, {
142
+ title: title,
143
+ arrow: sortingArrow
144
+ }, 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", {
131
145
  className: "euiDataGridHeaderCell__button",
132
146
  onClick: function onClick() {
133
147
  return setIsPopoverOpen(function (isPopoverOpen) {
@@ -143,12 +157,15 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
143
157
  "aria-describedby": "".concat(sortingAriaId, " ").concat(actionsAriaId),
144
158
  ref: actionsButtonRef,
145
159
  "data-test-subj": "dataGridHeaderCellActionButton-".concat(id)
146
- }, cellContent, (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({
160
+ }, (0, _react2.jsx)(CellContent, {
161
+ title: title,
162
+ arrow: sortingArrow
163
+ }, children), (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({
147
164
  display: "block",
148
165
  panelPaddingSize: "none",
149
166
  offset: 7,
150
167
  anchorPosition: "downRight",
151
- css: _ref2 // Align to right
168
+ css: _ref3 // Align to right
152
169
  ,
153
170
  focusTrapProps: {
154
171
  // We need to override the default EuiPopover `onClickOutside` since the anchor is separate from the actual button
@@ -184,11 +201,7 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
184
201
  token: "euiDataGridHeaderCell.headerActions",
185
202
  default: "Click to view column header actions"
186
203
  }))));
187
- };
188
-
189
- /**
190
- * Column sorting utility helpers
191
- */
204
+ });
192
205
  exports.EuiDataGridHeaderCell = EuiDataGridHeaderCell;
193
206
  EuiDataGridHeaderCell.propTypes = {
194
207
  column: _propTypes.default.shape({
@@ -616,11 +629,16 @@ EuiDataGridHeaderCell.propTypes = {
616
629
  }).isRequired,
617
630
  index: _propTypes.default.number.isRequired
618
631
  };
619
- var useSortingUtils = function useSortingUtils(_ref3) {
632
+ EuiDataGridHeaderCell.displayName = 'EuiDataGridHeaderCell';
633
+
634
+ /**
635
+ * Column sorting utility helpers
636
+ */
637
+ var useSortingUtils = function useSortingUtils(_ref4) {
620
638
  var _sorting$columns;
621
- var sorting = _ref3.sorting,
622
- id = _ref3.id,
623
- showColumnActions = _ref3.showColumnActions;
639
+ var sorting = _ref4.sorting,
640
+ id = _ref4.id,
641
+ showColumnActions = _ref4.showColumnActions;
624
642
  var sortedColumn = (0, _react.useMemo)(function () {
625
643
  return sorting === null || sorting === void 0 ? void 0 : sorting.columns.find(function (col) {
626
644
  return col.id === id;
@@ -632,12 +650,14 @@ var useSortingUtils = function useSortingUtils(_ref3) {
632
650
  /**
633
651
  * Arrow icon
634
652
  */
635
- var sortingArrow = isColumnSorted ? (0, _react2.jsx)(_icon.EuiIcon, {
636
- type: sortedColumn.direction === 'asc' ? 'sortUp' : 'sortDown',
637
- color: "text",
638
- className: "euiDataGridHeaderCell__sortingArrow",
639
- "data-test-subj": "dataGridHeaderCellSortingIcon-".concat(id)
640
- }) : null;
653
+ var sortingArrow = (0, _react.useMemo)(function () {
654
+ return isColumnSorted ? (0, _react2.jsx)(_icon.EuiIcon, {
655
+ type: sortedColumn.direction === 'asc' ? 'sortUp' : 'sortDown',
656
+ color: "text",
657
+ className: "euiDataGridHeaderCell__sortingArrow",
658
+ "data-test-subj": "dataGridHeaderCellSortingIcon-".concat(id)
659
+ }) : null;
660
+ }, [id, isColumnSorted, sortedColumn]);
641
661
 
642
662
  /**
643
663
  * aria-sort attribute - should only be used when a single column is being sorted
@@ -654,9 +674,9 @@ var useSortingUtils = function useSortingUtils(_ref3) {
654
674
  var _sorting$columns2;
655
675
  if (!isColumnSorted) return null;
656
676
  if (!showColumnActions && hasOnlyOneSort) return null; // in this scenario, the `aria-sort` attribute will be used by screen readers
657
- 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) {
658
- var columnId = _ref4.id,
659
- direction = _ref4.direction;
677
+ 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) {
678
+ var columnId = _ref5.id,
679
+ direction = _ref5.direction;
660
680
  if (hasOnlyOneSort) {
661
681
  if (direction === 'asc') {
662
682
  return (0, _react2.jsx)(_i18n.EuiI18n, {