@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
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.defaultSortDescLabel = exports.defaultSortAscLabel = exports.EuiDataGridColumnSortingDraggable = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
8
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
10
  var _classnames = _interopRequireDefault(require("classnames"));
10
11
  var _accessibility = require("../../accessibility");
@@ -26,6 +27,8 @@ var _excluded = ["id", "display", "direction", "index", "sorting", "schema", "sc
26
27
  * Side Public License, v 1.
27
28
  */
28
29
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30
+ 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); }
31
+ 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; }
29
32
  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); }
30
33
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
31
34
  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."); }
@@ -69,6 +72,27 @@ var EuiDataGridColumnSortingDraggable = function EuiDataGridColumnSortingDraggab
69
72
  'data-test-subj': "euiDataGridColumnSorting-sortColumn-".concat(id, "-desc")
70
73
  }];
71
74
  var dragHandleAriaLabel = (0, _i18n.useEuiI18n)('euiColumnSortingDraggable.dragHandleAriaLabel', 'Drag handle');
75
+ var removeSort = (0, _react.useCallback)(function () {
76
+ var nextColumns = _toConsumableArray(sorting.columns);
77
+ var columnIndex = nextColumns.map(function (_ref2) {
78
+ var id = _ref2.id;
79
+ return id;
80
+ }).indexOf(id);
81
+ nextColumns.splice(columnIndex, 1);
82
+ sorting.onSort(nextColumns);
83
+ }, [id, sorting]);
84
+ var toggleLegendHandler = (0, _react.useCallback)(function (_, direction) {
85
+ var nextColumns = _toConsumableArray(sorting.columns);
86
+ var columnIndex = nextColumns.map(function (_ref3) {
87
+ var id = _ref3.id;
88
+ return id;
89
+ }).indexOf(id);
90
+ nextColumns.splice(columnIndex, 1, {
91
+ id: id,
92
+ direction: direction
93
+ });
94
+ sorting.onSort(nextColumns);
95
+ }, [id, sorting]);
72
96
  return (0, _react2.jsx)(_drag_and_drop.EuiDraggable, _extends({
73
97
  draggableId: id,
74
98
  index: index,
@@ -106,15 +130,7 @@ var EuiDataGridColumnSortingDraggable = function EuiDataGridColumnSortingDraggab
106
130
  className: "euiDataGridColumnSorting__button",
107
131
  "aria-label": removeSortLabel,
108
132
  iconType: "cross",
109
- onClick: function onClick() {
110
- var nextColumns = _toConsumableArray(sorting.columns);
111
- var columnIndex = nextColumns.map(function (_ref2) {
112
- var id = _ref2.id;
113
- return id;
114
- }).indexOf(id);
115
- nextColumns.splice(columnIndex, 1);
116
- sorting.onSort(nextColumns);
117
- }
133
+ onClick: removeSort
118
134
  });
119
135
  })), (0, _react2.jsx)(_flex.EuiFlexItem, _extends({
120
136
  className: "euiDataGridColumnSorting__name"
@@ -149,18 +165,7 @@ var EuiDataGridColumnSortingDraggable = function EuiDataGridColumnSortingDraggab
149
165
  buttonSize: "compressed",
150
166
  className: "euiDataGridColumnSorting__order",
151
167
  idSelected: direction === 'asc' ? "".concat(id, "Asc") : "".concat(id, "Desc"),
152
- onChange: function onChange(_, direction) {
153
- var nextColumns = _toConsumableArray(sorting.columns);
154
- var columnIndex = nextColumns.map(function (_ref3) {
155
- var id = _ref3.id;
156
- return id;
157
- }).indexOf(id);
158
- nextColumns.splice(columnIndex, 1, {
159
- id: id,
160
- direction: direction
161
- });
162
- sorting.onSort(nextColumns);
163
- }
168
+ onChange: toggleLegendHandler
164
169
  });
165
170
  })), (0, _react2.jsx)(_flex.EuiFlexItem, _extends({
166
171
  grow: false
@@ -210,114 +210,116 @@ var useDataGridDisplaySelector = function useDataGridDisplaySelector(showDisplay
210
210
  }, []);
211
211
  var buttonLabel = (0, _i18n.useEuiI18n)('euiDisplaySelector.buttonText', 'Display options');
212
212
  var resetButtonLabel = (0, _i18n.useEuiI18n)('euiDisplaySelector.resetButtonText', 'Reset to default');
213
- var displaySelector = showDensityControls || showRowHeightControls || additionalDisplaySettings ? (0, _react2.jsx)(_popover.EuiPopover, {
214
- "data-test-subj": "dataGridDisplaySelectorPopover",
215
- isOpen: isOpen,
216
- closePopover: function closePopover() {
217
- return setIsOpen(false);
218
- },
219
- anchorPosition: "downRight",
220
- panelPaddingSize: "s",
221
- panelClassName: "euiDataGrid__displayPopoverPanel",
222
- button: (0, _react2.jsx)(_tool_tip.EuiToolTip, {
223
- content: buttonLabel,
224
- delay: "long"
225
- }, (0, _react2.jsx)(_button.EuiButtonIcon, {
226
- size: "xs",
227
- iconType: "controlsHorizontal",
228
- color: "text",
229
- "data-test-subj": "dataGridDisplaySelectorButton",
230
- onClick: function onClick() {
231
- return setIsOpen(!isOpen);
213
+ var displaySelector = (0, _react.useMemo)(function () {
214
+ return showDensityControls || showRowHeightControls || additionalDisplaySettings ? (0, _react2.jsx)(_popover.EuiPopover, {
215
+ "data-test-subj": "dataGridDisplaySelectorPopover",
216
+ isOpen: isOpen,
217
+ closePopover: function closePopover() {
218
+ return setIsOpen(false);
232
219
  },
233
- "aria-label": buttonLabel
234
- }))
235
- }, showDensityControls && (0, _react2.jsx)(_i18n.EuiI18n, {
236
- tokens: ['euiDisplaySelector.densityLabel', 'euiDisplaySelector.labelCompact', 'euiDisplaySelector.labelNormal', 'euiDisplaySelector.labelExpanded'],
237
- defaults: ['Density', 'Compact', 'Normal', 'Expanded']
238
- }, function (_ref) {
239
- var _ref2 = _slicedToArray(_ref, 4),
240
- densityLabel = _ref2[0],
241
- labelCompact = _ref2[1],
242
- labelNormal = _ref2[2],
243
- labelExpanded = _ref2[3];
244
- return (0, _react2.jsx)(_form.EuiFormRow, {
245
- label: densityLabel,
246
- display: "columnCompressed"
247
- }, (0, _react2.jsx)(_button.EuiButtonGroup, {
248
- legend: densityLabel,
249
- buttonSize: "compressed",
250
- isFullWidth: true,
251
- options: [{
252
- id: densityOptions[0],
253
- label: labelCompact
254
- }, {
255
- id: densityOptions[1],
256
- label: labelNormal
257
- }, {
258
- id: densityOptions[2],
259
- label: labelExpanded
260
- }],
261
- onChange: setGridStyles,
262
- idSelected: gridDensity,
263
- "data-test-subj": "densityButtonGroup"
264
- }));
265
- }), showRowHeightControls && (0, _react2.jsx)(_i18n.EuiI18n, {
266
- tokens: ['euiDisplaySelector.rowHeightLabel', 'euiDisplaySelector.labelSingle', 'euiDisplaySelector.labelAuto', 'euiDisplaySelector.labelCustom', 'euiDisplaySelector.lineCountLabel'],
267
- defaults: ['Row height', 'Single', 'Auto fit', 'Custom', 'Lines per row']
268
- }, function (_ref3) {
269
- var _ref4 = _slicedToArray(_ref3, 5),
270
- rowHeightLabel = _ref4[0],
271
- labelSingle = _ref4[1],
272
- labelAuto = _ref4[2],
273
- labelCustom = _ref4[3],
274
- lineCountLabel = _ref4[4];
275
- return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_form.EuiFormRow, {
276
- label: rowHeightLabel,
277
- display: "columnCompressed"
278
- }, (0, _react2.jsx)(_button.EuiButtonGroup, {
279
- legend: rowHeightLabel,
280
- buttonSize: "compressed",
281
- isFullWidth: true,
282
- options: [{
283
- id: rowHeightButtonOptions[0],
284
- label: labelSingle
285
- }, {
286
- id: rowHeightButtonOptions[1],
287
- label: labelAuto
288
- }, {
289
- id: rowHeightButtonOptions[2],
290
- label: labelCustom
291
- }],
292
- onChange: setRowHeight,
293
- idSelected: rowHeightSelection,
294
- "data-test-subj": "rowHeightButtonGroup"
295
- })), rowHeightSelection === rowHeightButtonOptions[2] && (0, _react2.jsx)(_form.EuiFormRow, {
296
- label: lineCountLabel,
297
- display: "columnCompressed"
298
- }, (0, _react2.jsx)(_form.EuiRange, {
299
- compressed: true,
300
- fullWidth: true,
301
- showInput: true,
302
- min: 1,
303
- max: 20,
304
- step: 1,
305
- required: true,
306
- value: lineCountInput,
307
- onChange: setLineCountHeight,
308
- "data-test-subj": "lineCountNumber"
309
- })));
310
- }), additionalDisplaySettings, showResetButton && (0, _react2.jsx)(_popover.EuiPopoverFooter, null, (0, _react2.jsx)(_flex.EuiFlexGroup, {
311
- justifyContent: "flexEnd",
312
- responsive: false
313
- }, (0, _react2.jsx)(_flex.EuiFlexItem, {
314
- grow: false
315
- }, (0, _react2.jsx)("div", null, (0, _react2.jsx)(_button.EuiButtonEmpty, {
316
- flush: "both",
317
- size: "xs",
318
- onClick: resetToInitialState,
319
- "data-test-subj": "resetDisplaySelector"
320
- }, resetButtonLabel)))))) : null;
220
+ anchorPosition: "downRight",
221
+ panelPaddingSize: "s",
222
+ panelClassName: "euiDataGrid__displayPopoverPanel",
223
+ button: (0, _react2.jsx)(_tool_tip.EuiToolTip, {
224
+ content: buttonLabel,
225
+ delay: "long"
226
+ }, (0, _react2.jsx)(_button.EuiButtonIcon, {
227
+ size: "xs",
228
+ iconType: "controlsHorizontal",
229
+ color: "text",
230
+ "data-test-subj": "dataGridDisplaySelectorButton",
231
+ onClick: function onClick() {
232
+ return setIsOpen(!isOpen);
233
+ },
234
+ "aria-label": buttonLabel
235
+ }))
236
+ }, showDensityControls && (0, _react2.jsx)(_i18n.EuiI18n, {
237
+ tokens: ['euiDisplaySelector.densityLabel', 'euiDisplaySelector.labelCompact', 'euiDisplaySelector.labelNormal', 'euiDisplaySelector.labelExpanded'],
238
+ defaults: ['Density', 'Compact', 'Normal', 'Expanded']
239
+ }, function (_ref) {
240
+ var _ref2 = _slicedToArray(_ref, 4),
241
+ densityLabel = _ref2[0],
242
+ labelCompact = _ref2[1],
243
+ labelNormal = _ref2[2],
244
+ labelExpanded = _ref2[3];
245
+ return (0, _react2.jsx)(_form.EuiFormRow, {
246
+ label: densityLabel,
247
+ display: "columnCompressed"
248
+ }, (0, _react2.jsx)(_button.EuiButtonGroup, {
249
+ legend: densityLabel,
250
+ buttonSize: "compressed",
251
+ isFullWidth: true,
252
+ options: [{
253
+ id: densityOptions[0],
254
+ label: labelCompact
255
+ }, {
256
+ id: densityOptions[1],
257
+ label: labelNormal
258
+ }, {
259
+ id: densityOptions[2],
260
+ label: labelExpanded
261
+ }],
262
+ onChange: setGridStyles,
263
+ idSelected: gridDensity,
264
+ "data-test-subj": "densityButtonGroup"
265
+ }));
266
+ }), showRowHeightControls && (0, _react2.jsx)(_i18n.EuiI18n, {
267
+ tokens: ['euiDisplaySelector.rowHeightLabel', 'euiDisplaySelector.labelSingle', 'euiDisplaySelector.labelAuto', 'euiDisplaySelector.labelCustom', 'euiDisplaySelector.lineCountLabel'],
268
+ defaults: ['Row height', 'Single', 'Auto fit', 'Custom', 'Lines per row']
269
+ }, function (_ref3) {
270
+ var _ref4 = _slicedToArray(_ref3, 5),
271
+ rowHeightLabel = _ref4[0],
272
+ labelSingle = _ref4[1],
273
+ labelAuto = _ref4[2],
274
+ labelCustom = _ref4[3],
275
+ lineCountLabel = _ref4[4];
276
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_form.EuiFormRow, {
277
+ label: rowHeightLabel,
278
+ display: "columnCompressed"
279
+ }, (0, _react2.jsx)(_button.EuiButtonGroup, {
280
+ legend: rowHeightLabel,
281
+ buttonSize: "compressed",
282
+ isFullWidth: true,
283
+ options: [{
284
+ id: rowHeightButtonOptions[0],
285
+ label: labelSingle
286
+ }, {
287
+ id: rowHeightButtonOptions[1],
288
+ label: labelAuto
289
+ }, {
290
+ id: rowHeightButtonOptions[2],
291
+ label: labelCustom
292
+ }],
293
+ onChange: setRowHeight,
294
+ idSelected: rowHeightSelection,
295
+ "data-test-subj": "rowHeightButtonGroup"
296
+ })), rowHeightSelection === rowHeightButtonOptions[2] && (0, _react2.jsx)(_form.EuiFormRow, {
297
+ label: lineCountLabel,
298
+ display: "columnCompressed"
299
+ }, (0, _react2.jsx)(_form.EuiRange, {
300
+ compressed: true,
301
+ fullWidth: true,
302
+ showInput: true,
303
+ min: 1,
304
+ max: 20,
305
+ step: 1,
306
+ required: true,
307
+ value: lineCountInput,
308
+ onChange: setLineCountHeight,
309
+ "data-test-subj": "lineCountNumber"
310
+ })));
311
+ }), additionalDisplaySettings, showResetButton && (0, _react2.jsx)(_popover.EuiPopoverFooter, null, (0, _react2.jsx)(_flex.EuiFlexGroup, {
312
+ justifyContent: "flexEnd",
313
+ responsive: false
314
+ }, (0, _react2.jsx)(_flex.EuiFlexItem, {
315
+ grow: false
316
+ }, (0, _react2.jsx)("div", null, (0, _react2.jsx)(_button.EuiButtonEmpty, {
317
+ flush: "both",
318
+ size: "xs",
319
+ onClick: resetToInitialState,
320
+ "data-test-subj": "resetDisplaySelector"
321
+ }, resetButtonLabel)))))) : null;
322
+ }, [additionalDisplaySettings, buttonLabel, isOpen, resetButtonLabel, showDensityControls, showResetButton, showRowHeightControls, gridDensity, rowHeightSelection, lineCountInput, setGridStyles, setRowHeight, setLineCountHeight, resetToInitialState]);
321
323
  return [displaySelector, gridStyles, rowHeightsOptions];
322
324
  };
323
325
  exports.useDataGridDisplaySelector = useDataGridDisplaySelector;
@@ -75,9 +75,19 @@ var commaSeparateNumbers = function commaSeparateNumbers(numberString) {
75
75
  );
76
76
  });
77
77
  };
78
+ var renderCellValue = function renderCellValue(_ref2) {
79
+ var rowIndex = _ref2.rowIndex,
80
+ columnId = _ref2.columnId,
81
+ schema = _ref2.schema;
82
+ var value = storeData[rowIndex][columnId];
83
+ if (schema === 'numeric') {
84
+ value = commaSeparateNumbers(value);
85
+ }
86
+ return value;
87
+ };
78
88
  var DataGrid = function DataGrid() {
79
- var _useState = (0, _react.useState)(columns.map(function (_ref2) {
80
- var id = _ref2.id;
89
+ var _useState = (0, _react.useState)(columns.map(function (_ref3) {
90
+ var id = _ref3.id;
81
91
  return id;
82
92
  })),
83
93
  _useState2 = _slicedToArray(_useState, 2),
@@ -119,16 +129,7 @@ var DataGrid = function DataGrid() {
119
129
  inMemory: {
120
130
  level: 'sorting'
121
131
  },
122
- renderCellValue: function renderCellValue(_ref3) {
123
- var rowIndex = _ref3.rowIndex,
124
- columnId = _ref3.columnId,
125
- schema = _ref3.schema;
126
- var value = data[rowIndex][columnId];
127
- if (schema === 'numeric') {
128
- value = commaSeparateNumbers(value);
129
- }
130
- return value;
131
- },
132
+ renderCellValue: renderCellValue,
132
133
  sorting: {
133
134
  columns: sortingColumns,
134
135
  onSort: setSorting
@@ -25,8 +25,7 @@ var _data_grid_schema = require("./utils/data_grid_schema");
25
25
  var _ref = require("./utils/ref");
26
26
  var _data_grid_types = require("./data_grid_types");
27
27
  var _react2 = require("@emotion/react");
28
- 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"],
29
- _excluded2 = ["focusProps"];
28
+ 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"];
30
29
  /*
31
30
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
32
31
  * or more contributor license agreements. Licensed under the Elastic License
@@ -84,8 +83,8 @@ var cellPaddingsToClassMap = {
84
83
  m: '',
85
84
  l: 'euiDataGrid--paddingLarge'
86
85
  };
86
+ var emptyVirtualizationOptions = {};
87
87
  var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
88
- var _gridItemsRendered$cu;
89
88
  var _props$leadingControl = props.leadingControlColumns,
90
89
  leadingControlColumns = _props$leadingControl === void 0 ? _data_grid_types.emptyControlColumns : _props$leadingControl,
91
90
  _props$trailingContro = props.trailingControlColumns,
@@ -95,6 +94,7 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
95
94
  schemaDetectors = props.schemaDetectors,
96
95
  rowCount = props.rowCount,
97
96
  renderCellValue = props.renderCellValue,
97
+ cellContext = props.cellContext,
98
98
  renderCellPopover = props.renderCellPopover,
99
99
  renderFooterCellValue = props.renderFooterCellValue,
100
100
  className = props.className,
@@ -204,8 +204,14 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
204
204
  /**
205
205
  * Sorting
206
206
  */
207
- var columnSorting = (0, _controls.useDataGridColumnSorting)(orderedVisibleColumns, sorting, mergedSchema, allSchemaDetectors, displayValues);
208
- var sortingContext = (0, _sorting.useSorting)({
207
+ var columnSorting = (0, _controls.useDataGridColumnSorting)({
208
+ sorting: sorting,
209
+ columns: orderedVisibleColumns,
210
+ displayValues: displayValues,
211
+ schema: mergedSchema,
212
+ schemaDetectors: allSchemaDetectors
213
+ });
214
+ var sortedContext = (0, _sorting.useSorting)({
209
215
  sorting: sorting,
210
216
  inMemory: inMemory,
211
217
  inMemoryValues: inMemoryValues,
@@ -219,7 +225,20 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
219
225
  */
220
226
  var _useFocus = (0, _focus.useFocus)(),
221
227
  wrappingDivFocusProps = _useFocus.focusProps,
222
- focusContext = _objectWithoutProperties(_useFocus, _excluded2);
228
+ onFocusUpdate = _useFocus.onFocusUpdate,
229
+ focusedCell = _useFocus.focusedCell,
230
+ setFocusedCell = _useFocus.setFocusedCell,
231
+ setIsFocusedCellInView = _useFocus.setIsFocusedCellInView,
232
+ focusFirstVisibleInteractiveCell = _useFocus.focusFirstVisibleInteractiveCell;
233
+ var focusContext = (0, _react.useMemo)(function () {
234
+ return {
235
+ onFocusUpdate: onFocusUpdate,
236
+ focusedCell: focusedCell,
237
+ setFocusedCell: setFocusedCell,
238
+ setIsFocusedCellInView: setIsFocusedCellInView,
239
+ focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell
240
+ };
241
+ }, [onFocusUpdate, focusedCell, setFocusedCell, setIsFocusedCellInView, focusFirstVisibleInteractiveCell]);
223
242
 
224
243
  /**
225
244
  * Cell popover
@@ -249,7 +268,7 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
249
268
  setIsFullScreen: setIsFullScreen,
250
269
  focusContext: focusContext,
251
270
  cellPopoverContext: cellPopoverContext,
252
- sortingContext: sortingContext,
271
+ sortedContext: sortedContext,
253
272
  pagination: pagination,
254
273
  rowCount: rowCount,
255
274
  visibleColCount: visibleColCount
@@ -296,12 +315,25 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
296
315
  gridAriaProps['aria-labelledby'] = "".concat(rest['aria-labelledby'], " ").concat(pagination ? ariaLabelledById : '');
297
316
  delete rest['aria-labelledby'];
298
317
  }
318
+ var onKeyDown = (0, _react.useCallback)(function (event) {
319
+ var _gridItemsRendered$cu;
320
+ (0, _focus.createKeyDownHandler)({
321
+ gridElement: contentRef.current,
322
+ visibleColCount: visibleColCount,
323
+ visibleRowCount: visibleRowCount,
324
+ visibleRowStartIndex: ((_gridItemsRendered$cu = gridItemsRendered.current) === null || _gridItemsRendered$cu === void 0 ? void 0 : _gridItemsRendered$cu.visibleRowStartIndex) || 0,
325
+ rowCount: rowCount,
326
+ pagination: pagination,
327
+ hasFooter: !!renderFooterCellValue,
328
+ focusContext: focusContext
329
+ })(event);
330
+ }, [focusContext, visibleColCount, visibleRowCount, rowCount, pagination, renderFooterCellValue]);
299
331
  return (0, _react2.jsx)(_focus.DataGridFocusContext.Provider, {
300
332
  value: focusContext
301
333
  }, (0, _react2.jsx)(_cell.DataGridCellPopoverContext.Provider, {
302
334
  value: cellPopoverContext
303
- }, (0, _react2.jsx)(_sorting.DataGridSortingContext.Provider, {
304
- value: sortingContext
335
+ }, (0, _react2.jsx)(_sorting.DataGridSortedContext.Provider, {
336
+ value: sortedContext
305
337
  }, (0, _react2.jsx)(_focus_trap.EuiFocusTrap, {
306
338
  disabled: !isFullScreen,
307
339
  className: "euiDataGrid__focusWrap"
@@ -337,16 +369,7 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
337
369
  }) : null, (0, _react2.jsx)("div", _extends({
338
370
  // eslint-disable-line jsx-a11y/interactive-supports-focus
339
371
  ref: contentRef,
340
- onKeyDown: (0, _focus.createKeyDownHandler)({
341
- gridElement: contentRef.current,
342
- visibleColCount: visibleColCount,
343
- visibleRowCount: visibleRowCount,
344
- visibleRowStartIndex: ((_gridItemsRendered$cu = gridItemsRendered.current) === null || _gridItemsRendered$cu === void 0 ? void 0 : _gridItemsRendered$cu.visibleRowStartIndex) || 0,
345
- rowCount: rowCount,
346
- pagination: pagination,
347
- hasFooter: !!renderFooterCellValue,
348
- focusContext: focusContext
349
- }),
372
+ onKeyDown: onKeyDown,
350
373
  "data-test-subj": "euiDataGridBody",
351
374
  className: "euiDataGrid__content",
352
375
  role: "grid",
@@ -362,15 +385,17 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
362
385
  switchColumnPos: switchColumnPos,
363
386
  onColumnResize: onColumnResize,
364
387
  schemaDetectors: allSchemaDetectors,
388
+ sorting: sorting,
365
389
  pagination: pagination,
366
390
  renderCellValue: renderCellValue,
391
+ cellContext: cellContext,
367
392
  renderCellPopover: renderCellPopover,
368
393
  renderFooterCellValue: renderFooterCellValue,
369
394
  rowCount: rowCount,
370
395
  visibleRows: visibleRows,
371
396
  interactiveCellId: interactiveCellId,
372
397
  rowHeightsOptions: rowHeightsOptions,
373
- virtualizationOptions: virtualizationOptions || {},
398
+ virtualizationOptions: virtualizationOptions || emptyVirtualizationOptions,
374
399
  isFullScreen: isFullScreen,
375
400
  gridStyles: gridStyles,
376
401
  gridWidth: gridWidth,
@@ -8,15 +8,15 @@ exports.useDefaultColumnWidth = exports.useColumnWidths = exports.doesColumnHave
8
8
  var _react = require("react");
9
9
  var _services = require("../../../services");
10
10
  var _utils = require("../../../utils");
11
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
+ 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."); }
13
+ 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; } }
14
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
15
  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; }
12
16
  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; }
13
17
  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; }
14
18
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
15
19
  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); }
16
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
- 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."); }
18
- 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; } }
19
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
20
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
21
21
  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."); }
22
22
  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); }
@@ -65,10 +65,12 @@ var useColumnWidths = function useColumnWidths(_ref) {
65
65
  onColumnResize = _ref.onColumnResize;
66
66
  var computeColumnWidths = (0, _react.useCallback)(function () {
67
67
  return columns.filter(doesColumnHaveAnInitialWidth).reduce(function (initialWidths, column) {
68
- initialWidths[column.id] = column.initialWidth;
69
- return initialWidths;
68
+ return _objectSpread(_objectSpread({}, initialWidths), {}, _defineProperty({}, column.id, column.initialWidth));
70
69
  }, {});
71
70
  }, [columns]);
71
+
72
+ // Passes initializer function for performance, so computing only runs once on init
73
+ // @see https://react.dev/reference/react/useState#examples-initializer
72
74
  var _useState = (0, _react.useState)(computeColumnWidths),
73
75
  _useState2 = _slicedToArray(_useState, 2),
74
76
  columnWidths = _useState2[0],
@@ -77,14 +79,16 @@ var useColumnWidths = function useColumnWidths(_ref) {
77
79
  setColumnWidths(computeColumnWidths());
78
80
  }, [computeColumnWidths]);
79
81
  var setColumnWidth = (0, _react.useCallback)(function (columnId, width) {
80
- setColumnWidths(_objectSpread(_objectSpread({}, columnWidths), {}, _defineProperty({}, columnId, width)));
82
+ setColumnWidths(function (prevColumnWidths) {
83
+ return _objectSpread(_objectSpread({}, prevColumnWidths), {}, _defineProperty({}, columnId, width));
84
+ });
81
85
  if (onColumnResize) {
82
86
  onColumnResize({
83
87
  columnId: columnId,
84
88
  width: width
85
89
  });
86
90
  }
87
- }, [columnWidths, onColumnResize]);
91
+ }, [onColumnResize]);
88
92
 
89
93
  // Used by react-window to determine actual column widths
90
94
  var getColumnWidth = (0, _react.useCallback)(function (index) {
@@ -97,14 +97,16 @@ var useFocus = function useFocus() {
97
97
  }
98
98
  };
99
99
  }, [isFocusedCellInView, focusFirstVisibleInteractiveCell]);
100
- return {
101
- onFocusUpdate: onFocusUpdate,
102
- focusedCell: focusedCell,
103
- setFocusedCell: setFocusedCell,
104
- setIsFocusedCellInView: setIsFocusedCellInView,
105
- focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
106
- focusProps: focusProps
107
- };
100
+ return (0, _react.useMemo)(function () {
101
+ return {
102
+ onFocusUpdate: onFocusUpdate,
103
+ focusedCell: focusedCell,
104
+ setFocusedCell: setFocusedCell,
105
+ setIsFocusedCellInView: setIsFocusedCellInView,
106
+ focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
107
+ focusProps: focusProps
108
+ };
109
+ }, [onFocusUpdate, focusedCell, setFocusedCell, setIsFocusedCellInView, focusFirstVisibleInteractiveCell, focusProps]);
108
110
  };
109
111
  exports.useFocus = useFocus;
110
112
  var notifyCellOfFocusState = function notifyCellOfFocusState(cellsUpdateFocus, cell, isFocused) {