@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
@@ -16,7 +16,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
16
16
  * Side Public License, v 1.
17
17
  */
18
18
 
19
- import React from 'react';
19
+ import React, { useCallback } from 'react';
20
20
  import PropTypes from "prop-types";
21
21
  import classNames from 'classnames';
22
22
  import { EuiScreenReaderOnly } from '../../accessibility';
@@ -61,6 +61,27 @@ export var EuiDataGridColumnSortingDraggable = function EuiDataGridColumnSorting
61
61
  'data-test-subj': "euiDataGridColumnSorting-sortColumn-".concat(id, "-desc")
62
62
  }];
63
63
  var dragHandleAriaLabel = useEuiI18n('euiColumnSortingDraggable.dragHandleAriaLabel', 'Drag handle');
64
+ var removeSort = useCallback(function () {
65
+ var nextColumns = _toConsumableArray(sorting.columns);
66
+ var columnIndex = nextColumns.map(function (_ref2) {
67
+ var id = _ref2.id;
68
+ return id;
69
+ }).indexOf(id);
70
+ nextColumns.splice(columnIndex, 1);
71
+ sorting.onSort(nextColumns);
72
+ }, [id, sorting]);
73
+ var toggleLegendHandler = useCallback(function (_, direction) {
74
+ var nextColumns = _toConsumableArray(sorting.columns);
75
+ var columnIndex = nextColumns.map(function (_ref3) {
76
+ var id = _ref3.id;
77
+ return id;
78
+ }).indexOf(id);
79
+ nextColumns.splice(columnIndex, 1, {
80
+ id: id,
81
+ direction: direction
82
+ });
83
+ sorting.onSort(nextColumns);
84
+ }, [id, sorting]);
64
85
  return ___EmotionJSX(EuiDraggable, _extends({
65
86
  draggableId: id,
66
87
  index: index,
@@ -98,15 +119,7 @@ export var EuiDataGridColumnSortingDraggable = function EuiDataGridColumnSorting
98
119
  className: "euiDataGridColumnSorting__button",
99
120
  "aria-label": removeSortLabel,
100
121
  iconType: "cross",
101
- onClick: function onClick() {
102
- var nextColumns = _toConsumableArray(sorting.columns);
103
- var columnIndex = nextColumns.map(function (_ref2) {
104
- var id = _ref2.id;
105
- return id;
106
- }).indexOf(id);
107
- nextColumns.splice(columnIndex, 1);
108
- sorting.onSort(nextColumns);
109
- }
122
+ onClick: removeSort
110
123
  });
111
124
  })), ___EmotionJSX(EuiFlexItem, _extends({
112
125
  className: "euiDataGridColumnSorting__name"
@@ -141,18 +154,7 @@ export var EuiDataGridColumnSortingDraggable = function EuiDataGridColumnSorting
141
154
  buttonSize: "compressed",
142
155
  className: "euiDataGridColumnSorting__order",
143
156
  idSelected: direction === 'asc' ? "".concat(id, "Asc") : "".concat(id, "Desc"),
144
- onChange: function onChange(_, direction) {
145
- var nextColumns = _toConsumableArray(sorting.columns);
146
- var columnIndex = nextColumns.map(function (_ref3) {
147
- var id = _ref3.id;
148
- return id;
149
- }).indexOf(id);
150
- nextColumns.splice(columnIndex, 1, {
151
- id: id,
152
- direction: direction
153
- });
154
- sorting.onSort(nextColumns);
155
- }
157
+ onChange: toggleLegendHandler
156
158
  });
157
159
  })), ___EmotionJSX(EuiFlexItem, _extends({
158
160
  grow: false
@@ -203,113 +203,115 @@ export var useDataGridDisplaySelector = function useDataGridDisplaySelector(show
203
203
  }, []);
204
204
  var buttonLabel = useEuiI18n('euiDisplaySelector.buttonText', 'Display options');
205
205
  var resetButtonLabel = useEuiI18n('euiDisplaySelector.resetButtonText', 'Reset to default');
206
- var displaySelector = showDensityControls || showRowHeightControls || additionalDisplaySettings ? ___EmotionJSX(EuiPopover, {
207
- "data-test-subj": "dataGridDisplaySelectorPopover",
208
- isOpen: isOpen,
209
- closePopover: function closePopover() {
210
- return setIsOpen(false);
211
- },
212
- anchorPosition: "downRight",
213
- panelPaddingSize: "s",
214
- panelClassName: "euiDataGrid__displayPopoverPanel",
215
- button: ___EmotionJSX(EuiToolTip, {
216
- content: buttonLabel,
217
- delay: "long"
218
- }, ___EmotionJSX(EuiButtonIcon, {
219
- size: "xs",
220
- iconType: "controlsHorizontal",
221
- color: "text",
222
- "data-test-subj": "dataGridDisplaySelectorButton",
223
- onClick: function onClick() {
224
- return setIsOpen(!isOpen);
206
+ var displaySelector = useMemo(function () {
207
+ return showDensityControls || showRowHeightControls || additionalDisplaySettings ? ___EmotionJSX(EuiPopover, {
208
+ "data-test-subj": "dataGridDisplaySelectorPopover",
209
+ isOpen: isOpen,
210
+ closePopover: function closePopover() {
211
+ return setIsOpen(false);
225
212
  },
226
- "aria-label": buttonLabel
227
- }))
228
- }, showDensityControls && ___EmotionJSX(EuiI18n, {
229
- tokens: ['euiDisplaySelector.densityLabel', 'euiDisplaySelector.labelCompact', 'euiDisplaySelector.labelNormal', 'euiDisplaySelector.labelExpanded'],
230
- defaults: ['Density', 'Compact', 'Normal', 'Expanded']
231
- }, function (_ref) {
232
- var _ref2 = _slicedToArray(_ref, 4),
233
- densityLabel = _ref2[0],
234
- labelCompact = _ref2[1],
235
- labelNormal = _ref2[2],
236
- labelExpanded = _ref2[3];
237
- return ___EmotionJSX(EuiFormRow, {
238
- label: densityLabel,
239
- display: "columnCompressed"
240
- }, ___EmotionJSX(EuiButtonGroup, {
241
- legend: densityLabel,
242
- buttonSize: "compressed",
243
- isFullWidth: true,
244
- options: [{
245
- id: densityOptions[0],
246
- label: labelCompact
247
- }, {
248
- id: densityOptions[1],
249
- label: labelNormal
250
- }, {
251
- id: densityOptions[2],
252
- label: labelExpanded
253
- }],
254
- onChange: setGridStyles,
255
- idSelected: gridDensity,
256
- "data-test-subj": "densityButtonGroup"
257
- }));
258
- }), showRowHeightControls && ___EmotionJSX(EuiI18n, {
259
- tokens: ['euiDisplaySelector.rowHeightLabel', 'euiDisplaySelector.labelSingle', 'euiDisplaySelector.labelAuto', 'euiDisplaySelector.labelCustom', 'euiDisplaySelector.lineCountLabel'],
260
- defaults: ['Row height', 'Single', 'Auto fit', 'Custom', 'Lines per row']
261
- }, function (_ref3) {
262
- var _ref4 = _slicedToArray(_ref3, 5),
263
- rowHeightLabel = _ref4[0],
264
- labelSingle = _ref4[1],
265
- labelAuto = _ref4[2],
266
- labelCustom = _ref4[3],
267
- lineCountLabel = _ref4[4];
268
- return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiFormRow, {
269
- label: rowHeightLabel,
270
- display: "columnCompressed"
271
- }, ___EmotionJSX(EuiButtonGroup, {
272
- legend: rowHeightLabel,
273
- buttonSize: "compressed",
274
- isFullWidth: true,
275
- options: [{
276
- id: rowHeightButtonOptions[0],
277
- label: labelSingle
278
- }, {
279
- id: rowHeightButtonOptions[1],
280
- label: labelAuto
281
- }, {
282
- id: rowHeightButtonOptions[2],
283
- label: labelCustom
284
- }],
285
- onChange: setRowHeight,
286
- idSelected: rowHeightSelection,
287
- "data-test-subj": "rowHeightButtonGroup"
288
- })), rowHeightSelection === rowHeightButtonOptions[2] && ___EmotionJSX(EuiFormRow, {
289
- label: lineCountLabel,
290
- display: "columnCompressed"
291
- }, ___EmotionJSX(EuiRange, {
292
- compressed: true,
293
- fullWidth: true,
294
- showInput: true,
295
- min: 1,
296
- max: 20,
297
- step: 1,
298
- required: true,
299
- value: lineCountInput,
300
- onChange: setLineCountHeight,
301
- "data-test-subj": "lineCountNumber"
302
- })));
303
- }), additionalDisplaySettings, showResetButton && ___EmotionJSX(EuiPopoverFooter, null, ___EmotionJSX(EuiFlexGroup, {
304
- justifyContent: "flexEnd",
305
- responsive: false
306
- }, ___EmotionJSX(EuiFlexItem, {
307
- grow: false
308
- }, ___EmotionJSX("div", null, ___EmotionJSX(EuiButtonEmpty, {
309
- flush: "both",
310
- size: "xs",
311
- onClick: resetToInitialState,
312
- "data-test-subj": "resetDisplaySelector"
313
- }, resetButtonLabel)))))) : null;
213
+ anchorPosition: "downRight",
214
+ panelPaddingSize: "s",
215
+ panelClassName: "euiDataGrid__displayPopoverPanel",
216
+ button: ___EmotionJSX(EuiToolTip, {
217
+ content: buttonLabel,
218
+ delay: "long"
219
+ }, ___EmotionJSX(EuiButtonIcon, {
220
+ size: "xs",
221
+ iconType: "controlsHorizontal",
222
+ color: "text",
223
+ "data-test-subj": "dataGridDisplaySelectorButton",
224
+ onClick: function onClick() {
225
+ return setIsOpen(!isOpen);
226
+ },
227
+ "aria-label": buttonLabel
228
+ }))
229
+ }, showDensityControls && ___EmotionJSX(EuiI18n, {
230
+ tokens: ['euiDisplaySelector.densityLabel', 'euiDisplaySelector.labelCompact', 'euiDisplaySelector.labelNormal', 'euiDisplaySelector.labelExpanded'],
231
+ defaults: ['Density', 'Compact', 'Normal', 'Expanded']
232
+ }, function (_ref) {
233
+ var _ref2 = _slicedToArray(_ref, 4),
234
+ densityLabel = _ref2[0],
235
+ labelCompact = _ref2[1],
236
+ labelNormal = _ref2[2],
237
+ labelExpanded = _ref2[3];
238
+ return ___EmotionJSX(EuiFormRow, {
239
+ label: densityLabel,
240
+ display: "columnCompressed"
241
+ }, ___EmotionJSX(EuiButtonGroup, {
242
+ legend: densityLabel,
243
+ buttonSize: "compressed",
244
+ isFullWidth: true,
245
+ options: [{
246
+ id: densityOptions[0],
247
+ label: labelCompact
248
+ }, {
249
+ id: densityOptions[1],
250
+ label: labelNormal
251
+ }, {
252
+ id: densityOptions[2],
253
+ label: labelExpanded
254
+ }],
255
+ onChange: setGridStyles,
256
+ idSelected: gridDensity,
257
+ "data-test-subj": "densityButtonGroup"
258
+ }));
259
+ }), showRowHeightControls && ___EmotionJSX(EuiI18n, {
260
+ tokens: ['euiDisplaySelector.rowHeightLabel', 'euiDisplaySelector.labelSingle', 'euiDisplaySelector.labelAuto', 'euiDisplaySelector.labelCustom', 'euiDisplaySelector.lineCountLabel'],
261
+ defaults: ['Row height', 'Single', 'Auto fit', 'Custom', 'Lines per row']
262
+ }, function (_ref3) {
263
+ var _ref4 = _slicedToArray(_ref3, 5),
264
+ rowHeightLabel = _ref4[0],
265
+ labelSingle = _ref4[1],
266
+ labelAuto = _ref4[2],
267
+ labelCustom = _ref4[3],
268
+ lineCountLabel = _ref4[4];
269
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiFormRow, {
270
+ label: rowHeightLabel,
271
+ display: "columnCompressed"
272
+ }, ___EmotionJSX(EuiButtonGroup, {
273
+ legend: rowHeightLabel,
274
+ buttonSize: "compressed",
275
+ isFullWidth: true,
276
+ options: [{
277
+ id: rowHeightButtonOptions[0],
278
+ label: labelSingle
279
+ }, {
280
+ id: rowHeightButtonOptions[1],
281
+ label: labelAuto
282
+ }, {
283
+ id: rowHeightButtonOptions[2],
284
+ label: labelCustom
285
+ }],
286
+ onChange: setRowHeight,
287
+ idSelected: rowHeightSelection,
288
+ "data-test-subj": "rowHeightButtonGroup"
289
+ })), rowHeightSelection === rowHeightButtonOptions[2] && ___EmotionJSX(EuiFormRow, {
290
+ label: lineCountLabel,
291
+ display: "columnCompressed"
292
+ }, ___EmotionJSX(EuiRange, {
293
+ compressed: true,
294
+ fullWidth: true,
295
+ showInput: true,
296
+ min: 1,
297
+ max: 20,
298
+ step: 1,
299
+ required: true,
300
+ value: lineCountInput,
301
+ onChange: setLineCountHeight,
302
+ "data-test-subj": "lineCountNumber"
303
+ })));
304
+ }), additionalDisplaySettings, showResetButton && ___EmotionJSX(EuiPopoverFooter, null, ___EmotionJSX(EuiFlexGroup, {
305
+ justifyContent: "flexEnd",
306
+ responsive: false
307
+ }, ___EmotionJSX(EuiFlexItem, {
308
+ grow: false
309
+ }, ___EmotionJSX("div", null, ___EmotionJSX(EuiButtonEmpty, {
310
+ flush: "both",
311
+ size: "xs",
312
+ onClick: resetToInitialState,
313
+ "data-test-subj": "resetDisplaySelector"
314
+ }, resetButtonLabel)))))) : null;
315
+ }, [additionalDisplaySettings, buttonLabel, isOpen, resetButtonLabel, showDensityControls, showResetButton, showRowHeightControls, gridDensity, rowHeightSelection, lineCountInput, setGridStyles, setRowHeight, setLineCountHeight, resetToInitialState]);
314
316
  return [displaySelector, gridStyles, rowHeightsOptions];
315
317
  };
@@ -74,9 +74,19 @@ var commaSeparateNumbers = function commaSeparateNumbers(numberString) {
74
74
  );
75
75
  });
76
76
  };
77
+ var renderCellValue = function renderCellValue(_ref2) {
78
+ var rowIndex = _ref2.rowIndex,
79
+ columnId = _ref2.columnId,
80
+ schema = _ref2.schema;
81
+ var value = storeData[rowIndex][columnId];
82
+ if (schema === 'numeric') {
83
+ value = commaSeparateNumbers(value);
84
+ }
85
+ return value;
86
+ };
77
87
  var DataGrid = function DataGrid() {
78
- var _useState = useState(columns.map(function (_ref2) {
79
- var id = _ref2.id;
88
+ var _useState = useState(columns.map(function (_ref3) {
89
+ var id = _ref3.id;
80
90
  return id;
81
91
  })),
82
92
  _useState2 = _slicedToArray(_useState, 2),
@@ -118,16 +128,7 @@ var DataGrid = function DataGrid() {
118
128
  inMemory: {
119
129
  level: 'sorting'
120
130
  },
121
- renderCellValue: function renderCellValue(_ref3) {
122
- var rowIndex = _ref3.rowIndex,
123
- columnId = _ref3.columnId,
124
- schema = _ref3.schema;
125
- var value = data[rowIndex][columnId];
126
- if (schema === 'numeric') {
127
- value = commaSeparateNumbers(value);
128
- }
129
- return value;
130
- },
131
+ renderCellValue: renderCellValue,
131
132
  sorting: {
132
133
  columns: sortingColumns,
133
134
  onSort: setSorting
@@ -1,6 +1,5 @@
1
1
  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); }
2
- var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "columnVisibility", "schemaDetectors", "rowCount", "renderCellValue", "renderCellPopover", "renderFooterCellValue", "className", "gridStyle", "toolbarVisibility", "pagination", "sorting", "inMemory", "onColumnResize", "minSizeForControls", "height", "width", "rowHeightsOptions", "virtualizationOptions", "renderCustomGridBody", "renderCustomToolbar"],
3
- _excluded2 = ["focusProps"];
2
+ var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "columnVisibility", "schemaDetectors", "rowCount", "renderCellValue", "cellContext", "renderCellPopover", "renderFooterCellValue", "className", "gridStyle", "toolbarVisibility", "pagination", "sorting", "inMemory", "onColumnResize", "minSizeForControls", "height", "width", "rowHeightsOptions", "virtualizationOptions", "renderCustomGridBody", "renderCustomToolbar"];
4
3
  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); }
5
4
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
6
5
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -28,7 +27,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
28
27
  */
29
28
 
30
29
  import classNames from 'classnames';
31
- import React, { forwardRef, useMemo, useRef, useState, memo } from 'react';
30
+ import React, { forwardRef, useMemo, useRef, useState, memo, useCallback } from 'react';
32
31
  import { useGeneratedHtmlId } from '../../services';
33
32
  import { useEuiTablePaginationDefaults } from '../table/table_pagination';
34
33
  import { EuiFocusTrap } from '../focus_trap';
@@ -37,7 +36,7 @@ import { useMutationObserver } from '../observer/mutation_observer';
37
36
  import { useResizeObserver } from '../observer/resize_observer';
38
37
  import { EuiDataGridBody } from './body';
39
38
  import { useDataGridColumnSelector, useDataGridColumnSorting, useDataGridDisplaySelector, startingStyles, useDataGridFullScreenSelector, useDataGridKeyboardShortcuts, checkOrDefaultToolBarDisplayOptions, EuiDataGridToolbar } from './controls';
40
- import { DataGridSortingContext, useSorting } from './utils/sorting';
39
+ import { DataGridSortedContext, useSorting } from './utils/sorting';
41
40
  import { DataGridFocusContext, useFocus, createKeyDownHandler, preventTabbing } from './utils/focus';
42
41
  import { useInMemoryValues, EuiDataGridInMemoryRenderer } from './utils/in_memory';
43
42
  import { DataGridCellPopoverContext, useCellPopover } from './body/cell';
@@ -77,8 +76,8 @@ var cellPaddingsToClassMap = {
77
76
  m: '',
78
77
  l: 'euiDataGrid--paddingLarge'
79
78
  };
79
+ var emptyVirtualizationOptions = {};
80
80
  export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref) {
81
- var _gridItemsRendered$cu;
82
81
  var _props$leadingControl = props.leadingControlColumns,
83
82
  leadingControlColumns = _props$leadingControl === void 0 ? emptyControlColumns : _props$leadingControl,
84
83
  _props$trailingContro = props.trailingControlColumns,
@@ -88,6 +87,7 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
88
87
  schemaDetectors = props.schemaDetectors,
89
88
  rowCount = props.rowCount,
90
89
  renderCellValue = props.renderCellValue,
90
+ cellContext = props.cellContext,
91
91
  renderCellPopover = props.renderCellPopover,
92
92
  renderFooterCellValue = props.renderFooterCellValue,
93
93
  className = props.className,
@@ -197,8 +197,14 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
197
197
  /**
198
198
  * Sorting
199
199
  */
200
- var columnSorting = useDataGridColumnSorting(orderedVisibleColumns, sorting, mergedSchema, allSchemaDetectors, displayValues);
201
- var sortingContext = useSorting({
200
+ var columnSorting = useDataGridColumnSorting({
201
+ sorting: sorting,
202
+ columns: orderedVisibleColumns,
203
+ displayValues: displayValues,
204
+ schema: mergedSchema,
205
+ schemaDetectors: allSchemaDetectors
206
+ });
207
+ var sortedContext = useSorting({
202
208
  sorting: sorting,
203
209
  inMemory: inMemory,
204
210
  inMemoryValues: inMemoryValues,
@@ -212,7 +218,20 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
212
218
  */
213
219
  var _useFocus = useFocus(),
214
220
  wrappingDivFocusProps = _useFocus.focusProps,
215
- focusContext = _objectWithoutProperties(_useFocus, _excluded2);
221
+ onFocusUpdate = _useFocus.onFocusUpdate,
222
+ focusedCell = _useFocus.focusedCell,
223
+ setFocusedCell = _useFocus.setFocusedCell,
224
+ setIsFocusedCellInView = _useFocus.setIsFocusedCellInView,
225
+ focusFirstVisibleInteractiveCell = _useFocus.focusFirstVisibleInteractiveCell;
226
+ var focusContext = useMemo(function () {
227
+ return {
228
+ onFocusUpdate: onFocusUpdate,
229
+ focusedCell: focusedCell,
230
+ setFocusedCell: setFocusedCell,
231
+ setIsFocusedCellInView: setIsFocusedCellInView,
232
+ focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell
233
+ };
234
+ }, [onFocusUpdate, focusedCell, setFocusedCell, setIsFocusedCellInView, focusFirstVisibleInteractiveCell]);
216
235
 
217
236
  /**
218
237
  * Cell popover
@@ -242,7 +261,7 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
242
261
  setIsFullScreen: setIsFullScreen,
243
262
  focusContext: focusContext,
244
263
  cellPopoverContext: cellPopoverContext,
245
- sortingContext: sortingContext,
264
+ sortedContext: sortedContext,
246
265
  pagination: pagination,
247
266
  rowCount: rowCount,
248
267
  visibleColCount: visibleColCount
@@ -289,12 +308,25 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
289
308
  gridAriaProps['aria-labelledby'] = "".concat(rest['aria-labelledby'], " ").concat(pagination ? ariaLabelledById : '');
290
309
  delete rest['aria-labelledby'];
291
310
  }
311
+ var onKeyDown = useCallback(function (event) {
312
+ var _gridItemsRendered$cu;
313
+ createKeyDownHandler({
314
+ gridElement: contentRef.current,
315
+ visibleColCount: visibleColCount,
316
+ visibleRowCount: visibleRowCount,
317
+ visibleRowStartIndex: ((_gridItemsRendered$cu = gridItemsRendered.current) === null || _gridItemsRendered$cu === void 0 ? void 0 : _gridItemsRendered$cu.visibleRowStartIndex) || 0,
318
+ rowCount: rowCount,
319
+ pagination: pagination,
320
+ hasFooter: !!renderFooterCellValue,
321
+ focusContext: focusContext
322
+ })(event);
323
+ }, [focusContext, visibleColCount, visibleRowCount, rowCount, pagination, renderFooterCellValue]);
292
324
  return ___EmotionJSX(DataGridFocusContext.Provider, {
293
325
  value: focusContext
294
326
  }, ___EmotionJSX(DataGridCellPopoverContext.Provider, {
295
327
  value: cellPopoverContext
296
- }, ___EmotionJSX(DataGridSortingContext.Provider, {
297
- value: sortingContext
328
+ }, ___EmotionJSX(DataGridSortedContext.Provider, {
329
+ value: sortedContext
298
330
  }, ___EmotionJSX(EuiFocusTrap, {
299
331
  disabled: !isFullScreen,
300
332
  className: "euiDataGrid__focusWrap"
@@ -330,16 +362,7 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
330
362
  }) : null, ___EmotionJSX("div", _extends({
331
363
  // eslint-disable-line jsx-a11y/interactive-supports-focus
332
364
  ref: contentRef,
333
- onKeyDown: createKeyDownHandler({
334
- gridElement: contentRef.current,
335
- visibleColCount: visibleColCount,
336
- visibleRowCount: visibleRowCount,
337
- visibleRowStartIndex: ((_gridItemsRendered$cu = gridItemsRendered.current) === null || _gridItemsRendered$cu === void 0 ? void 0 : _gridItemsRendered$cu.visibleRowStartIndex) || 0,
338
- rowCount: rowCount,
339
- pagination: pagination,
340
- hasFooter: !!renderFooterCellValue,
341
- focusContext: focusContext
342
- }),
365
+ onKeyDown: onKeyDown,
343
366
  "data-test-subj": "euiDataGridBody",
344
367
  className: "euiDataGrid__content",
345
368
  role: "grid",
@@ -355,15 +378,17 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
355
378
  switchColumnPos: switchColumnPos,
356
379
  onColumnResize: onColumnResize,
357
380
  schemaDetectors: allSchemaDetectors,
381
+ sorting: sorting,
358
382
  pagination: pagination,
359
383
  renderCellValue: renderCellValue,
384
+ cellContext: cellContext,
360
385
  renderCellPopover: renderCellPopover,
361
386
  renderFooterCellValue: renderFooterCellValue,
362
387
  rowCount: rowCount,
363
388
  visibleRows: visibleRows,
364
389
  interactiveCellId: interactiveCellId,
365
390
  rowHeightsOptions: rowHeightsOptions,
366
- virtualizationOptions: virtualizationOptions || {},
391
+ virtualizationOptions: virtualizationOptions || emptyVirtualizationOptions,
367
392
  isFullScreen: isFullScreen,
368
393
  gridStyles: gridStyles,
369
394
  gridWidth: gridWidth,
@@ -1,13 +1,13 @@
1
1
  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); }
2
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
5
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2
6
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
8
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
9
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
10
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
10
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
11
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
12
12
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
13
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -59,10 +59,12 @@ export var useColumnWidths = function useColumnWidths(_ref) {
59
59
  onColumnResize = _ref.onColumnResize;
60
60
  var computeColumnWidths = useCallback(function () {
61
61
  return columns.filter(doesColumnHaveAnInitialWidth).reduce(function (initialWidths, column) {
62
- initialWidths[column.id] = column.initialWidth;
63
- return initialWidths;
62
+ return _objectSpread(_objectSpread({}, initialWidths), {}, _defineProperty({}, column.id, column.initialWidth));
64
63
  }, {});
65
64
  }, [columns]);
65
+
66
+ // Passes initializer function for performance, so computing only runs once on init
67
+ // @see https://react.dev/reference/react/useState#examples-initializer
66
68
  var _useState = useState(computeColumnWidths),
67
69
  _useState2 = _slicedToArray(_useState, 2),
68
70
  columnWidths = _useState2[0],
@@ -71,14 +73,16 @@ export var useColumnWidths = function useColumnWidths(_ref) {
71
73
  setColumnWidths(computeColumnWidths());
72
74
  }, [computeColumnWidths]);
73
75
  var setColumnWidth = useCallback(function (columnId, width) {
74
- setColumnWidths(_objectSpread(_objectSpread({}, columnWidths), {}, _defineProperty({}, columnId, width)));
76
+ setColumnWidths(function (prevColumnWidths) {
77
+ return _objectSpread(_objectSpread({}, prevColumnWidths), {}, _defineProperty({}, columnId, width));
78
+ });
75
79
  if (onColumnResize) {
76
80
  onColumnResize({
77
81
  columnId: columnId,
78
82
  width: width
79
83
  });
80
84
  }
81
- }, [columnWidths, onColumnResize]);
85
+ }, [onColumnResize]);
82
86
 
83
87
  // Used by react-window to determine actual column widths
84
88
  var getColumnWidth = useCallback(function (index) {
@@ -92,14 +92,16 @@ export var useFocus = function useFocus() {
92
92
  }
93
93
  };
94
94
  }, [isFocusedCellInView, focusFirstVisibleInteractiveCell]);
95
- return {
96
- onFocusUpdate: onFocusUpdate,
97
- focusedCell: focusedCell,
98
- setFocusedCell: setFocusedCell,
99
- setIsFocusedCellInView: setIsFocusedCellInView,
100
- focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
101
- focusProps: focusProps
102
- };
95
+ return useMemo(function () {
96
+ return {
97
+ onFocusUpdate: onFocusUpdate,
98
+ focusedCell: focusedCell,
99
+ setFocusedCell: setFocusedCell,
100
+ setIsFocusedCellInView: setIsFocusedCellInView,
101
+ focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
102
+ focusProps: focusProps
103
+ };
104
+ }, [onFocusUpdate, focusedCell, setFocusedCell, setIsFocusedCellInView, focusFirstVisibleInteractiveCell, focusProps]);
103
105
  };
104
106
  export var notifyCellOfFocusState = function notifyCellOfFocusState(cellsUpdateFocus, cell, isFocused) {
105
107
  var key = "".concat(cell[0], "-").concat(cell[1]);