@elastic/eui 93.3.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 (286) 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/es/components/breadcrumbs/_breadcrumb_content.js +362 -0
  5. package/es/components/breadcrumbs/_breadcrumb_content.styles.js +48 -0
  6. package/es/components/breadcrumbs/breadcrumb.js +10 -327
  7. package/es/components/breadcrumbs/breadcrumb.styles.js +5 -27
  8. package/es/components/breadcrumbs/breadcrumbs.js +4 -4
  9. package/es/components/breadcrumbs/types.js +1 -0
  10. package/es/components/button/button_group/button_group.js +16 -2
  11. package/es/components/button/button_group/button_group.styles.js +1 -1
  12. package/es/components/button/button_group/button_group_button.js +59 -5
  13. package/es/components/button/button_group/button_group_button.styles.js +39 -3
  14. package/es/components/datagrid/body/cell/data_grid_cell.js +97 -58
  15. package/es/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  16. package/es/components/datagrid/body/cell/data_grid_cell_popover.js +64 -56
  17. package/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +32 -31
  18. package/es/components/datagrid/body/cell/index.js +1 -1
  19. package/es/components/datagrid/body/data_grid_body.js +13 -0
  20. package/es/components/datagrid/body/data_grid_body_custom.js +52 -36
  21. package/es/components/datagrid/body/data_grid_body_virtualized.js +84 -56
  22. package/es/components/datagrid/body/data_grid_row_manager.js +6 -4
  23. package/es/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  24. package/es/components/datagrid/body/header/data_grid_control_header_cell.js +5 -4
  25. package/es/components/datagrid/body/header/data_grid_header_cell.js +73 -53
  26. package/es/components/datagrid/body/header/data_grid_header_row.js +15 -551
  27. package/es/components/datagrid/body/header/use_data_grid_header.js +7 -6
  28. package/es/components/datagrid/controls/column_selector.js +126 -123
  29. package/es/components/datagrid/controls/column_sorting.js +605 -103
  30. package/es/components/datagrid/controls/column_sorting_draggable.js +24 -22
  31. package/es/components/datagrid/controls/display_selector.js +109 -107
  32. package/es/components/datagrid/data_grid.a11y.js +13 -12
  33. package/es/components/datagrid/data_grid.js +45 -22
  34. package/es/components/datagrid/utils/col_widths.js +12 -8
  35. package/es/components/datagrid/utils/focus.js +10 -8
  36. package/es/components/datagrid/utils/grid_height_width.js +31 -30
  37. package/es/components/datagrid/utils/ref.js +1 -1
  38. package/es/components/datagrid/utils/row_heights.js +2 -2
  39. package/es/components/datagrid/utils/sorting.js +29 -27
  40. package/es/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  41. package/es/components/date_picker/super_date_picker/super_update_button.js +57 -29
  42. package/es/components/flex/flex_grid.js +22 -8
  43. package/es/components/flex/flex_grid.styles.js +13 -6
  44. package/es/components/flex/flex_group.js +10 -11
  45. package/es/components/flex/flex_item.js +9 -11
  46. package/es/components/flex/flex_item.styles.js +107 -122
  47. package/es/components/flyout/flyout.js +16 -18
  48. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  49. package/es/components/modal/confirm_modal.js +2 -1
  50. package/es/components/modal/modal.js +12 -3
  51. package/es/components/observer/resize_observer/resize_observer.js +15 -24
  52. package/es/components/spacer/spacer.js +2 -3
  53. package/es/components/toast/global_toast_list.js +70 -73
  54. package/es/components/toast/toast.js +27 -42
  55. package/es/components/toast/toast.styles.js +2 -17
  56. package/es/services/color/eui_palettes.js +21 -13
  57. package/es/services/color/index.js +1 -1
  58. package/es/services/hooks/index.js +1 -0
  59. package/es/services/hooks/useDeepEqual.js +23 -0
  60. package/es/services/index.js +1 -1
  61. package/eui.d.ts +2442 -2337
  62. package/i18ntokens.json +259 -259
  63. package/lib/components/breadcrumbs/_breadcrumb_content.js +372 -0
  64. package/lib/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  65. package/lib/components/breadcrumbs/breadcrumb.js +11 -331
  66. package/lib/components/breadcrumbs/breadcrumb.styles.js +5 -29
  67. package/lib/components/breadcrumbs/breadcrumbs.js +3 -3
  68. package/lib/components/breadcrumbs/types.js +5 -0
  69. package/lib/components/button/button_group/button_group.js +16 -2
  70. package/lib/components/button/button_group/button_group.styles.js +1 -1
  71. package/lib/components/button/button_group/button_group_button.js +59 -5
  72. package/lib/components/button/button_group/button_group_button.styles.js +45 -11
  73. package/lib/components/datagrid/body/cell/data_grid_cell.js +95 -57
  74. package/lib/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  75. package/lib/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  76. package/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +32 -31
  77. package/lib/components/datagrid/body/cell/index.js +2 -2
  78. package/lib/components/datagrid/body/data_grid_body.js +13 -0
  79. package/lib/components/datagrid/body/data_grid_body_custom.js +51 -35
  80. package/lib/components/datagrid/body/data_grid_body_virtualized.js +83 -55
  81. package/lib/components/datagrid/body/data_grid_row_manager.js +5 -3
  82. package/lib/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  83. package/lib/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  84. package/lib/components/datagrid/body/header/data_grid_header_cell.js +72 -52
  85. package/lib/components/datagrid/body/header/data_grid_header_row.js +14 -550
  86. package/lib/components/datagrid/body/header/use_data_grid_header.js +7 -6
  87. package/lib/components/datagrid/controls/column_selector.js +126 -123
  88. package/lib/components/datagrid/controls/column_sorting.js +615 -110
  89. package/lib/components/datagrid/controls/column_sorting_draggable.js +27 -22
  90. package/lib/components/datagrid/controls/display_selector.js +109 -107
  91. package/lib/components/datagrid/data_grid.a11y.js +13 -12
  92. package/lib/components/datagrid/data_grid.js +43 -20
  93. package/lib/components/datagrid/utils/col_widths.js +12 -8
  94. package/lib/components/datagrid/utils/focus.js +10 -8
  95. package/lib/components/datagrid/utils/grid_height_width.js +29 -28
  96. package/lib/components/datagrid/utils/ref.js +1 -1
  97. package/lib/components/datagrid/utils/row_heights.js +1 -1
  98. package/lib/components/datagrid/utils/sorting.js +31 -29
  99. package/lib/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  100. package/lib/components/date_picker/super_date_picker/super_update_button.js +57 -29
  101. package/lib/components/flex/flex_grid.js +23 -7
  102. package/lib/components/flex/flex_grid.styles.js +13 -6
  103. package/lib/components/flex/flex_group.js +10 -10
  104. package/lib/components/flex/flex_item.js +13 -13
  105. package/lib/components/flex/flex_item.styles.js +107 -122
  106. package/lib/components/flyout/flyout.js +16 -18
  107. package/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  108. package/lib/components/modal/confirm_modal.js +2 -1
  109. package/lib/components/modal/modal.js +12 -3
  110. package/lib/components/observer/resize_observer/resize_observer.js +15 -24
  111. package/lib/components/spacer/spacer.js +1 -2
  112. package/lib/components/toast/global_toast_list.js +68 -71
  113. package/lib/components/toast/toast.js +25 -40
  114. package/lib/components/toast/toast.styles.js +11 -25
  115. package/lib/services/color/eui_palettes.js +24 -14
  116. package/lib/services/color/index.js +14 -0
  117. package/lib/services/hooks/index.js +11 -0
  118. package/lib/services/hooks/useDeepEqual.js +30 -0
  119. package/lib/services/index.js +15 -1
  120. package/optimize/es/components/breadcrumbs/_breadcrumb_content.js +153 -0
  121. package/optimize/es/components/breadcrumbs/_breadcrumb_content.styles.js +48 -0
  122. package/optimize/es/components/breadcrumbs/breadcrumb.js +10 -110
  123. package/optimize/es/components/breadcrumbs/breadcrumb.styles.js +5 -27
  124. package/optimize/es/components/breadcrumbs/breadcrumbs.js +4 -4
  125. package/optimize/es/components/breadcrumbs/types.js +1 -0
  126. package/optimize/es/components/button/button_group/button_group.js +2 -2
  127. package/optimize/es/components/button/button_group/button_group.styles.js +1 -1
  128. package/optimize/es/components/button/button_group/button_group_button.js +36 -4
  129. package/optimize/es/components/button/button_group/button_group_button.styles.js +39 -3
  130. package/optimize/es/components/datagrid/body/cell/data_grid_cell.js +80 -55
  131. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  132. package/optimize/es/components/datagrid/body/cell/data_grid_cell_popover.js +64 -56
  133. package/optimize/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +32 -31
  134. package/optimize/es/components/datagrid/body/cell/index.js +1 -1
  135. package/optimize/es/components/datagrid/body/data_grid_body_custom.js +39 -36
  136. package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +69 -49
  137. package/optimize/es/components/datagrid/body/data_grid_row_manager.js +6 -4
  138. package/optimize/es/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  139. package/optimize/es/components/datagrid/body/header/data_grid_control_header_cell.js +4 -3
  140. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +65 -49
  141. package/optimize/es/components/datagrid/body/header/data_grid_header_row.js +15 -13
  142. package/optimize/es/components/datagrid/body/header/use_data_grid_header.js +7 -6
  143. package/optimize/es/components/datagrid/controls/column_selector.js +126 -123
  144. package/optimize/es/components/datagrid/controls/column_sorting.js +121 -103
  145. package/optimize/es/components/datagrid/controls/column_sorting_draggable.js +24 -22
  146. package/optimize/es/components/datagrid/controls/display_selector.js +109 -107
  147. package/optimize/es/components/datagrid/data_grid.a11y.js +13 -12
  148. package/optimize/es/components/datagrid/data_grid.js +45 -22
  149. package/optimize/es/components/datagrid/utils/col_widths.js +9 -5
  150. package/optimize/es/components/datagrid/utils/focus.js +10 -8
  151. package/optimize/es/components/datagrid/utils/grid_height_width.js +31 -30
  152. package/optimize/es/components/datagrid/utils/ref.js +1 -1
  153. package/optimize/es/components/datagrid/utils/row_heights.js +2 -2
  154. package/optimize/es/components/datagrid/utils/sorting.js +29 -27
  155. package/optimize/es/components/date_picker/super_date_picker/super_update_button.js +49 -29
  156. package/optimize/es/components/flex/flex_grid.js +19 -8
  157. package/optimize/es/components/flex/flex_grid.styles.js +13 -6
  158. package/optimize/es/components/flex/flex_group.js +9 -10
  159. package/optimize/es/components/flex/flex_item.js +9 -11
  160. package/optimize/es/components/flex/flex_item.styles.js +107 -122
  161. package/optimize/es/components/flyout/flyout.js +16 -18
  162. package/optimize/es/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  163. package/optimize/es/components/modal/confirm_modal.js +2 -1
  164. package/optimize/es/components/modal/modal.js +6 -2
  165. package/optimize/es/components/observer/resize_observer/resize_observer.js +15 -24
  166. package/optimize/es/components/spacer/spacer.js +2 -3
  167. package/optimize/es/components/toast/global_toast_list.js +70 -73
  168. package/optimize/es/components/toast/toast.js +27 -42
  169. package/optimize/es/components/toast/toast.styles.js +2 -17
  170. package/optimize/es/services/color/eui_palettes.js +21 -13
  171. package/optimize/es/services/color/index.js +1 -1
  172. package/optimize/es/services/hooks/index.js +1 -0
  173. package/optimize/es/services/hooks/useDeepEqual.js +23 -0
  174. package/optimize/es/services/index.js +1 -1
  175. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.js +163 -0
  176. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  177. package/optimize/lib/components/breadcrumbs/breadcrumb.js +10 -113
  178. package/optimize/lib/components/breadcrumbs/breadcrumb.styles.js +5 -29
  179. package/optimize/lib/components/breadcrumbs/breadcrumbs.js +3 -3
  180. package/optimize/lib/components/breadcrumbs/types.js +5 -0
  181. package/optimize/lib/components/button/button_group/button_group.js +2 -2
  182. package/optimize/lib/components/button/button_group/button_group.styles.js +1 -1
  183. package/optimize/lib/components/button/button_group/button_group_button.js +37 -5
  184. package/optimize/lib/components/button/button_group/button_group_button.styles.js +45 -11
  185. package/optimize/lib/components/datagrid/body/cell/data_grid_cell.js +78 -54
  186. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  187. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  188. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +32 -31
  189. package/optimize/lib/components/datagrid/body/cell/index.js +2 -2
  190. package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +38 -35
  191. package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +70 -50
  192. package/optimize/lib/components/datagrid/body/data_grid_row_manager.js +5 -3
  193. package/optimize/lib/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  194. package/optimize/lib/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  195. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +65 -49
  196. package/optimize/lib/components/datagrid/body/header/data_grid_header_row.js +14 -12
  197. package/optimize/lib/components/datagrid/body/header/use_data_grid_header.js +7 -6
  198. package/optimize/lib/components/datagrid/controls/column_selector.js +126 -123
  199. package/optimize/lib/components/datagrid/controls/column_sorting.js +125 -107
  200. package/optimize/lib/components/datagrid/controls/column_sorting_draggable.js +27 -22
  201. package/optimize/lib/components/datagrid/controls/display_selector.js +109 -107
  202. package/optimize/lib/components/datagrid/data_grid.a11y.js +13 -12
  203. package/optimize/lib/components/datagrid/data_grid.js +43 -20
  204. package/optimize/lib/components/datagrid/utils/col_widths.js +9 -5
  205. package/optimize/lib/components/datagrid/utils/focus.js +10 -8
  206. package/optimize/lib/components/datagrid/utils/grid_height_width.js +29 -28
  207. package/optimize/lib/components/datagrid/utils/ref.js +1 -1
  208. package/optimize/lib/components/datagrid/utils/row_heights.js +1 -1
  209. package/optimize/lib/components/datagrid/utils/sorting.js +31 -29
  210. package/optimize/lib/components/date_picker/super_date_picker/super_update_button.js +49 -29
  211. package/optimize/lib/components/flex/flex_grid.js +21 -7
  212. package/optimize/lib/components/flex/flex_grid.styles.js +13 -6
  213. package/optimize/lib/components/flex/flex_group.js +9 -9
  214. package/optimize/lib/components/flex/flex_item.js +13 -13
  215. package/optimize/lib/components/flex/flex_item.styles.js +107 -122
  216. package/optimize/lib/components/flyout/flyout.js +16 -18
  217. package/optimize/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  218. package/optimize/lib/components/modal/confirm_modal.js +2 -1
  219. package/optimize/lib/components/modal/modal.js +6 -2
  220. package/optimize/lib/components/observer/resize_observer/resize_observer.js +15 -24
  221. package/optimize/lib/components/spacer/spacer.js +1 -2
  222. package/optimize/lib/components/toast/global_toast_list.js +68 -71
  223. package/optimize/lib/components/toast/toast.js +25 -40
  224. package/optimize/lib/components/toast/toast.styles.js +11 -25
  225. package/optimize/lib/services/color/eui_palettes.js +24 -14
  226. package/optimize/lib/services/color/index.js +14 -0
  227. package/optimize/lib/services/hooks/index.js +11 -0
  228. package/optimize/lib/services/hooks/useDeepEqual.js +30 -0
  229. package/optimize/lib/services/index.js +15 -1
  230. package/package.json +2 -2
  231. package/test-env/components/breadcrumbs/_breadcrumb_content.js +363 -0
  232. package/test-env/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  233. package/test-env/components/breadcrumbs/breadcrumb.js +11 -326
  234. package/test-env/components/breadcrumbs/breadcrumb.styles.js +5 -29
  235. package/test-env/components/breadcrumbs/breadcrumbs.js +3 -3
  236. package/test-env/components/breadcrumbs/types.js +5 -0
  237. package/test-env/components/button/button_group/button_group.js +16 -2
  238. package/test-env/components/button/button_group/button_group.styles.js +1 -1
  239. package/test-env/components/button/button_group/button_group_button.js +56 -5
  240. package/test-env/components/button/button_group/button_group_button.styles.js +45 -11
  241. package/test-env/components/datagrid/body/cell/data_grid_cell.js +95 -57
  242. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  243. package/test-env/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  244. package/test-env/components/datagrid/body/cell/data_grid_cell_wrapper.js +32 -31
  245. package/test-env/components/datagrid/body/cell/index.js +2 -2
  246. package/test-env/components/datagrid/body/data_grid_body.js +13 -0
  247. package/test-env/components/datagrid/body/data_grid_body_custom.js +51 -35
  248. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +83 -55
  249. package/test-env/components/datagrid/body/data_grid_row_manager.js +5 -3
  250. package/test-env/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  251. package/test-env/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  252. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +72 -52
  253. package/test-env/components/datagrid/body/header/data_grid_header_row.js +14 -550
  254. package/test-env/components/datagrid/body/header/use_data_grid_header.js +7 -6
  255. package/test-env/components/datagrid/controls/column_selector.js +126 -123
  256. package/test-env/components/datagrid/controls/column_sorting.js +607 -106
  257. package/test-env/components/datagrid/controls/column_sorting_draggable.js +27 -22
  258. package/test-env/components/datagrid/controls/display_selector.js +109 -107
  259. package/test-env/components/datagrid/data_grid.a11y.js +13 -12
  260. package/test-env/components/datagrid/data_grid.js +43 -20
  261. package/test-env/components/datagrid/utils/col_widths.js +9 -5
  262. package/test-env/components/datagrid/utils/focus.js +10 -8
  263. package/test-env/components/datagrid/utils/grid_height_width.js +29 -28
  264. package/test-env/components/datagrid/utils/ref.js +1 -1
  265. package/test-env/components/datagrid/utils/row_heights.js +1 -1
  266. package/test-env/components/datagrid/utils/sorting.js +31 -29
  267. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  268. package/test-env/components/date_picker/super_date_picker/super_update_button.js +57 -29
  269. package/test-env/components/flex/flex_grid.js +21 -7
  270. package/test-env/components/flex/flex_grid.styles.js +13 -6
  271. package/test-env/components/flex/flex_group.js +10 -10
  272. package/test-env/components/flex/flex_item.js +13 -13
  273. package/test-env/components/flex/flex_item.styles.js +107 -122
  274. package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  275. package/test-env/components/modal/confirm_modal.js +2 -1
  276. package/test-env/components/modal/modal.js +12 -3
  277. package/test-env/components/spacer/spacer.js +1 -2
  278. package/test-env/components/toast/global_toast_list.js +68 -71
  279. package/test-env/components/toast/toast.js +25 -40
  280. package/test-env/components/toast/toast.styles.js +11 -25
  281. package/test-env/services/color/eui_palettes.js +24 -14
  282. package/test-env/services/color/index.js +14 -0
  283. package/test-env/services/hooks/index.js +11 -0
  284. package/test-env/services/hooks/useDeepEqual.js +30 -0
  285. package/test-env/services/index.js +15 -1
  286. package/src/themes/charts/theme.scss +0 -5
@@ -195,113 +195,115 @@ export var useDataGridDisplaySelector = function useDataGridDisplaySelector(show
195
195
  }, []);
196
196
  var buttonLabel = useEuiI18n('euiDisplaySelector.buttonText', 'Display options');
197
197
  var resetButtonLabel = useEuiI18n('euiDisplaySelector.resetButtonText', 'Reset to default');
198
- var displaySelector = showDensityControls || showRowHeightControls || additionalDisplaySettings ? ___EmotionJSX(EuiPopover, {
199
- "data-test-subj": "dataGridDisplaySelectorPopover",
200
- isOpen: isOpen,
201
- closePopover: function closePopover() {
202
- return setIsOpen(false);
203
- },
204
- anchorPosition: "downRight",
205
- panelPaddingSize: "s",
206
- panelClassName: "euiDataGrid__displayPopoverPanel",
207
- button: ___EmotionJSX(EuiToolTip, {
208
- content: buttonLabel,
209
- delay: "long"
210
- }, ___EmotionJSX(EuiButtonIcon, {
211
- size: "xs",
212
- iconType: "controlsHorizontal",
213
- color: "text",
214
- "data-test-subj": "dataGridDisplaySelectorButton",
215
- onClick: function onClick() {
216
- return setIsOpen(!isOpen);
198
+ var displaySelector = useMemo(function () {
199
+ return showDensityControls || showRowHeightControls || additionalDisplaySettings ? ___EmotionJSX(EuiPopover, {
200
+ "data-test-subj": "dataGridDisplaySelectorPopover",
201
+ isOpen: isOpen,
202
+ closePopover: function closePopover() {
203
+ return setIsOpen(false);
217
204
  },
218
- "aria-label": buttonLabel
219
- }))
220
- }, showDensityControls && ___EmotionJSX(EuiI18n, {
221
- tokens: ['euiDisplaySelector.densityLabel', 'euiDisplaySelector.labelCompact', 'euiDisplaySelector.labelNormal', 'euiDisplaySelector.labelExpanded'],
222
- defaults: ['Density', 'Compact', 'Normal', 'Expanded']
223
- }, function (_ref) {
224
- var _ref2 = _slicedToArray(_ref, 4),
225
- densityLabel = _ref2[0],
226
- labelCompact = _ref2[1],
227
- labelNormal = _ref2[2],
228
- labelExpanded = _ref2[3];
229
- return ___EmotionJSX(EuiFormRow, {
230
- label: densityLabel,
231
- display: "columnCompressed"
232
- }, ___EmotionJSX(EuiButtonGroup, {
233
- legend: densityLabel,
234
- buttonSize: "compressed",
235
- isFullWidth: true,
236
- options: [{
237
- id: densityOptions[0],
238
- label: labelCompact
239
- }, {
240
- id: densityOptions[1],
241
- label: labelNormal
242
- }, {
243
- id: densityOptions[2],
244
- label: labelExpanded
245
- }],
246
- onChange: setGridStyles,
247
- idSelected: gridDensity,
248
- "data-test-subj": "densityButtonGroup"
249
- }));
250
- }), showRowHeightControls && ___EmotionJSX(EuiI18n, {
251
- tokens: ['euiDisplaySelector.rowHeightLabel', 'euiDisplaySelector.labelSingle', 'euiDisplaySelector.labelAuto', 'euiDisplaySelector.labelCustom', 'euiDisplaySelector.lineCountLabel'],
252
- defaults: ['Row height', 'Single', 'Auto fit', 'Custom', 'Lines per row']
253
- }, function (_ref3) {
254
- var _ref4 = _slicedToArray(_ref3, 5),
255
- rowHeightLabel = _ref4[0],
256
- labelSingle = _ref4[1],
257
- labelAuto = _ref4[2],
258
- labelCustom = _ref4[3],
259
- lineCountLabel = _ref4[4];
260
- return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiFormRow, {
261
- label: rowHeightLabel,
262
- display: "columnCompressed"
263
- }, ___EmotionJSX(EuiButtonGroup, {
264
- legend: rowHeightLabel,
265
- buttonSize: "compressed",
266
- isFullWidth: true,
267
- options: [{
268
- id: rowHeightButtonOptions[0],
269
- label: labelSingle
270
- }, {
271
- id: rowHeightButtonOptions[1],
272
- label: labelAuto
273
- }, {
274
- id: rowHeightButtonOptions[2],
275
- label: labelCustom
276
- }],
277
- onChange: setRowHeight,
278
- idSelected: rowHeightSelection,
279
- "data-test-subj": "rowHeightButtonGroup"
280
- })), rowHeightSelection === rowHeightButtonOptions[2] && ___EmotionJSX(EuiFormRow, {
281
- label: lineCountLabel,
282
- display: "columnCompressed"
283
- }, ___EmotionJSX(EuiRange, {
284
- compressed: true,
285
- fullWidth: true,
286
- showInput: true,
287
- min: 1,
288
- max: 20,
289
- step: 1,
290
- required: true,
291
- value: lineCountInput,
292
- onChange: setLineCountHeight,
293
- "data-test-subj": "lineCountNumber"
294
- })));
295
- }), additionalDisplaySettings, showResetButton && ___EmotionJSX(EuiPopoverFooter, null, ___EmotionJSX(EuiFlexGroup, {
296
- justifyContent: "flexEnd",
297
- responsive: false
298
- }, ___EmotionJSX(EuiFlexItem, {
299
- grow: false
300
- }, ___EmotionJSX("div", null, ___EmotionJSX(EuiButtonEmpty, {
301
- flush: "both",
302
- size: "xs",
303
- onClick: resetToInitialState,
304
- "data-test-subj": "resetDisplaySelector"
305
- }, resetButtonLabel)))))) : null;
205
+ anchorPosition: "downRight",
206
+ panelPaddingSize: "s",
207
+ panelClassName: "euiDataGrid__displayPopoverPanel",
208
+ button: ___EmotionJSX(EuiToolTip, {
209
+ content: buttonLabel,
210
+ delay: "long"
211
+ }, ___EmotionJSX(EuiButtonIcon, {
212
+ size: "xs",
213
+ iconType: "controlsHorizontal",
214
+ color: "text",
215
+ "data-test-subj": "dataGridDisplaySelectorButton",
216
+ onClick: function onClick() {
217
+ return setIsOpen(!isOpen);
218
+ },
219
+ "aria-label": buttonLabel
220
+ }))
221
+ }, showDensityControls && ___EmotionJSX(EuiI18n, {
222
+ tokens: ['euiDisplaySelector.densityLabel', 'euiDisplaySelector.labelCompact', 'euiDisplaySelector.labelNormal', 'euiDisplaySelector.labelExpanded'],
223
+ defaults: ['Density', 'Compact', 'Normal', 'Expanded']
224
+ }, function (_ref) {
225
+ var _ref2 = _slicedToArray(_ref, 4),
226
+ densityLabel = _ref2[0],
227
+ labelCompact = _ref2[1],
228
+ labelNormal = _ref2[2],
229
+ labelExpanded = _ref2[3];
230
+ return ___EmotionJSX(EuiFormRow, {
231
+ label: densityLabel,
232
+ display: "columnCompressed"
233
+ }, ___EmotionJSX(EuiButtonGroup, {
234
+ legend: densityLabel,
235
+ buttonSize: "compressed",
236
+ isFullWidth: true,
237
+ options: [{
238
+ id: densityOptions[0],
239
+ label: labelCompact
240
+ }, {
241
+ id: densityOptions[1],
242
+ label: labelNormal
243
+ }, {
244
+ id: densityOptions[2],
245
+ label: labelExpanded
246
+ }],
247
+ onChange: setGridStyles,
248
+ idSelected: gridDensity,
249
+ "data-test-subj": "densityButtonGroup"
250
+ }));
251
+ }), showRowHeightControls && ___EmotionJSX(EuiI18n, {
252
+ tokens: ['euiDisplaySelector.rowHeightLabel', 'euiDisplaySelector.labelSingle', 'euiDisplaySelector.labelAuto', 'euiDisplaySelector.labelCustom', 'euiDisplaySelector.lineCountLabel'],
253
+ defaults: ['Row height', 'Single', 'Auto fit', 'Custom', 'Lines per row']
254
+ }, function (_ref3) {
255
+ var _ref4 = _slicedToArray(_ref3, 5),
256
+ rowHeightLabel = _ref4[0],
257
+ labelSingle = _ref4[1],
258
+ labelAuto = _ref4[2],
259
+ labelCustom = _ref4[3],
260
+ lineCountLabel = _ref4[4];
261
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiFormRow, {
262
+ label: rowHeightLabel,
263
+ display: "columnCompressed"
264
+ }, ___EmotionJSX(EuiButtonGroup, {
265
+ legend: rowHeightLabel,
266
+ buttonSize: "compressed",
267
+ isFullWidth: true,
268
+ options: [{
269
+ id: rowHeightButtonOptions[0],
270
+ label: labelSingle
271
+ }, {
272
+ id: rowHeightButtonOptions[1],
273
+ label: labelAuto
274
+ }, {
275
+ id: rowHeightButtonOptions[2],
276
+ label: labelCustom
277
+ }],
278
+ onChange: setRowHeight,
279
+ idSelected: rowHeightSelection,
280
+ "data-test-subj": "rowHeightButtonGroup"
281
+ })), rowHeightSelection === rowHeightButtonOptions[2] && ___EmotionJSX(EuiFormRow, {
282
+ label: lineCountLabel,
283
+ display: "columnCompressed"
284
+ }, ___EmotionJSX(EuiRange, {
285
+ compressed: true,
286
+ fullWidth: true,
287
+ showInput: true,
288
+ min: 1,
289
+ max: 20,
290
+ step: 1,
291
+ required: true,
292
+ value: lineCountInput,
293
+ onChange: setLineCountHeight,
294
+ "data-test-subj": "lineCountNumber"
295
+ })));
296
+ }), additionalDisplaySettings, showResetButton && ___EmotionJSX(EuiPopoverFooter, null, ___EmotionJSX(EuiFlexGroup, {
297
+ justifyContent: "flexEnd",
298
+ responsive: false
299
+ }, ___EmotionJSX(EuiFlexItem, {
300
+ grow: false
301
+ }, ___EmotionJSX("div", null, ___EmotionJSX(EuiButtonEmpty, {
302
+ flush: "both",
303
+ size: "xs",
304
+ onClick: resetToInitialState,
305
+ "data-test-subj": "resetDisplaySelector"
306
+ }, resetButtonLabel)))))) : null;
307
+ }, [additionalDisplaySettings, buttonLabel, isOpen, resetButtonLabel, showDensityControls, showResetButton, showRowHeightControls, gridDensity, rowHeightSelection, lineCountInput, setGridStyles, setRowHeight, setLineCountHeight, resetToInitialState]);
306
308
  return [displaySelector, gridStyles, rowHeightsOptions];
307
309
  };
@@ -66,9 +66,19 @@ var commaSeparateNumbers = function commaSeparateNumbers(numberString) {
66
66
  );
67
67
  });
68
68
  };
69
+ var renderCellValue = function renderCellValue(_ref2) {
70
+ var rowIndex = _ref2.rowIndex,
71
+ columnId = _ref2.columnId,
72
+ schema = _ref2.schema;
73
+ var value = storeData[rowIndex][columnId];
74
+ if (schema === 'numeric') {
75
+ value = commaSeparateNumbers(value);
76
+ }
77
+ return value;
78
+ };
69
79
  var DataGrid = function DataGrid() {
70
- var _useState = useState(columns.map(function (_ref2) {
71
- var id = _ref2.id;
80
+ var _useState = useState(columns.map(function (_ref3) {
81
+ var id = _ref3.id;
72
82
  return id;
73
83
  })),
74
84
  _useState2 = _slicedToArray(_useState, 2),
@@ -110,16 +120,7 @@ var DataGrid = function DataGrid() {
110
120
  inMemory: {
111
121
  level: 'sorting'
112
122
  },
113
- renderCellValue: function renderCellValue(_ref3) {
114
- var rowIndex = _ref3.rowIndex,
115
- columnId = _ref3.columnId,
116
- schema = _ref3.schema;
117
- var value = data[rowIndex][columnId];
118
- if (schema === 'numeric') {
119
- value = commaSeparateNumbers(value);
120
- }
121
- return value;
122
- },
123
+ renderCellValue: renderCellValue,
123
124
  sorting: {
124
125
  columns: sortingColumns,
125
126
  onSort: setSorting
@@ -3,8 +3,7 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
6
- 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"],
7
- _excluded2 = ["focusProps"];
6
+ 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"];
8
7
  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; }
9
8
  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; }
10
9
  /*
@@ -16,7 +15,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
16
15
  */
17
16
 
18
17
  import classNames from 'classnames';
19
- import React, { forwardRef, useMemo, useRef, useState, memo } from 'react';
18
+ import React, { forwardRef, useMemo, useRef, useState, memo, useCallback } from 'react';
20
19
  import { useGeneratedHtmlId } from '../../services';
21
20
  import { useEuiTablePaginationDefaults } from '../table/table_pagination';
22
21
  import { EuiFocusTrap } from '../focus_trap';
@@ -25,7 +24,7 @@ import { useMutationObserver } from '../observer/mutation_observer';
25
24
  import { useResizeObserver } from '../observer/resize_observer';
26
25
  import { EuiDataGridBody } from './body';
27
26
  import { useDataGridColumnSelector, useDataGridColumnSorting, useDataGridDisplaySelector, startingStyles, useDataGridFullScreenSelector, useDataGridKeyboardShortcuts, checkOrDefaultToolBarDisplayOptions, EuiDataGridToolbar } from './controls';
28
- import { DataGridSortingContext, useSorting } from './utils/sorting';
27
+ import { DataGridSortedContext, useSorting } from './utils/sorting';
29
28
  import { DataGridFocusContext, useFocus, createKeyDownHandler, preventTabbing } from './utils/focus';
30
29
  import { useInMemoryValues, EuiDataGridInMemoryRenderer } from './utils/in_memory';
31
30
  import { DataGridCellPopoverContext, useCellPopover } from './body/cell';
@@ -65,8 +64,8 @@ var cellPaddingsToClassMap = {
65
64
  m: '',
66
65
  l: 'euiDataGrid--paddingLarge'
67
66
  };
67
+ var emptyVirtualizationOptions = {};
68
68
  export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref) {
69
- var _gridItemsRendered$cu;
70
69
  var _props$leadingControl = props.leadingControlColumns,
71
70
  leadingControlColumns = _props$leadingControl === void 0 ? emptyControlColumns : _props$leadingControl,
72
71
  _props$trailingContro = props.trailingControlColumns,
@@ -186,8 +185,14 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
186
185
  /**
187
186
  * Sorting
188
187
  */
189
- var columnSorting = useDataGridColumnSorting(orderedVisibleColumns, sorting, mergedSchema, allSchemaDetectors, displayValues);
190
- var sortingContext = useSorting({
188
+ var columnSorting = useDataGridColumnSorting({
189
+ sorting: sorting,
190
+ columns: orderedVisibleColumns,
191
+ displayValues: displayValues,
192
+ schema: mergedSchema,
193
+ schemaDetectors: allSchemaDetectors
194
+ });
195
+ var sortedContext = useSorting({
191
196
  sorting: sorting,
192
197
  inMemory: inMemory,
193
198
  inMemoryValues: inMemoryValues,
@@ -201,7 +206,20 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
201
206
  */
202
207
  var _useFocus = useFocus(),
203
208
  wrappingDivFocusProps = _useFocus.focusProps,
204
- focusContext = _objectWithoutProperties(_useFocus, _excluded2);
209
+ onFocusUpdate = _useFocus.onFocusUpdate,
210
+ focusedCell = _useFocus.focusedCell,
211
+ setFocusedCell = _useFocus.setFocusedCell,
212
+ setIsFocusedCellInView = _useFocus.setIsFocusedCellInView,
213
+ focusFirstVisibleInteractiveCell = _useFocus.focusFirstVisibleInteractiveCell;
214
+ var focusContext = useMemo(function () {
215
+ return {
216
+ onFocusUpdate: onFocusUpdate,
217
+ focusedCell: focusedCell,
218
+ setFocusedCell: setFocusedCell,
219
+ setIsFocusedCellInView: setIsFocusedCellInView,
220
+ focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell
221
+ };
222
+ }, [onFocusUpdate, focusedCell, setFocusedCell, setIsFocusedCellInView, focusFirstVisibleInteractiveCell]);
205
223
 
206
224
  /**
207
225
  * Cell popover
@@ -231,7 +249,7 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
231
249
  setIsFullScreen: setIsFullScreen,
232
250
  focusContext: focusContext,
233
251
  cellPopoverContext: cellPopoverContext,
234
- sortingContext: sortingContext,
252
+ sortedContext: sortedContext,
235
253
  pagination: pagination,
236
254
  rowCount: rowCount,
237
255
  visibleColCount: visibleColCount
@@ -278,12 +296,25 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
278
296
  gridAriaProps['aria-labelledby'] = "".concat(rest['aria-labelledby'], " ").concat(pagination ? ariaLabelledById : '');
279
297
  delete rest['aria-labelledby'];
280
298
  }
299
+ var onKeyDown = useCallback(function (event) {
300
+ var _gridItemsRendered$cu;
301
+ createKeyDownHandler({
302
+ gridElement: contentRef.current,
303
+ visibleColCount: visibleColCount,
304
+ visibleRowCount: visibleRowCount,
305
+ visibleRowStartIndex: ((_gridItemsRendered$cu = gridItemsRendered.current) === null || _gridItemsRendered$cu === void 0 ? void 0 : _gridItemsRendered$cu.visibleRowStartIndex) || 0,
306
+ rowCount: rowCount,
307
+ pagination: pagination,
308
+ hasFooter: !!renderFooterCellValue,
309
+ focusContext: focusContext
310
+ })(event);
311
+ }, [focusContext, visibleColCount, visibleRowCount, rowCount, pagination, renderFooterCellValue]);
281
312
  return ___EmotionJSX(DataGridFocusContext.Provider, {
282
313
  value: focusContext
283
314
  }, ___EmotionJSX(DataGridCellPopoverContext.Provider, {
284
315
  value: cellPopoverContext
285
- }, ___EmotionJSX(DataGridSortingContext.Provider, {
286
- value: sortingContext
316
+ }, ___EmotionJSX(DataGridSortedContext.Provider, {
317
+ value: sortedContext
287
318
  }, ___EmotionJSX(EuiFocusTrap, {
288
319
  disabled: !isFullScreen,
289
320
  className: "euiDataGrid__focusWrap"
@@ -319,16 +350,7 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
319
350
  }) : null, ___EmotionJSX("div", _extends({
320
351
  // eslint-disable-line jsx-a11y/interactive-supports-focus
321
352
  ref: contentRef,
322
- onKeyDown: createKeyDownHandler({
323
- gridElement: contentRef.current,
324
- visibleColCount: visibleColCount,
325
- visibleRowCount: visibleRowCount,
326
- visibleRowStartIndex: ((_gridItemsRendered$cu = gridItemsRendered.current) === null || _gridItemsRendered$cu === void 0 ? void 0 : _gridItemsRendered$cu.visibleRowStartIndex) || 0,
327
- rowCount: rowCount,
328
- pagination: pagination,
329
- hasFooter: !!renderFooterCellValue,
330
- focusContext: focusContext
331
- }),
353
+ onKeyDown: onKeyDown,
332
354
  "data-test-subj": "euiDataGridBody",
333
355
  className: "euiDataGrid__content",
334
356
  role: "grid",
@@ -344,6 +366,7 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
344
366
  switchColumnPos: switchColumnPos,
345
367
  onColumnResize: onColumnResize,
346
368
  schemaDetectors: allSchemaDetectors,
369
+ sorting: sorting,
347
370
  pagination: pagination,
348
371
  renderCellValue: renderCellValue,
349
372
  cellContext: cellContext,
@@ -353,7 +376,7 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
353
376
  visibleRows: visibleRows,
354
377
  interactiveCellId: interactiveCellId,
355
378
  rowHeightsOptions: rowHeightsOptions,
356
- virtualizationOptions: virtualizationOptions || {},
379
+ virtualizationOptions: virtualizationOptions || emptyVirtualizationOptions,
357
380
  isFullScreen: isFullScreen,
358
381
  gridStyles: gridStyles,
359
382
  gridWidth: gridWidth,
@@ -1,5 +1,5 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
4
  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; }
5
5
  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; }
@@ -48,10 +48,12 @@ export var useColumnWidths = function useColumnWidths(_ref) {
48
48
  onColumnResize = _ref.onColumnResize;
49
49
  var computeColumnWidths = useCallback(function () {
50
50
  return columns.filter(doesColumnHaveAnInitialWidth).reduce(function (initialWidths, column) {
51
- initialWidths[column.id] = column.initialWidth;
52
- return initialWidths;
51
+ return _objectSpread(_objectSpread({}, initialWidths), {}, _defineProperty({}, column.id, column.initialWidth));
53
52
  }, {});
54
53
  }, [columns]);
54
+
55
+ // Passes initializer function for performance, so computing only runs once on init
56
+ // @see https://react.dev/reference/react/useState#examples-initializer
55
57
  var _useState = useState(computeColumnWidths),
56
58
  _useState2 = _slicedToArray(_useState, 2),
57
59
  columnWidths = _useState2[0],
@@ -60,14 +62,16 @@ export var useColumnWidths = function useColumnWidths(_ref) {
60
62
  setColumnWidths(computeColumnWidths());
61
63
  }, [computeColumnWidths]);
62
64
  var setColumnWidth = useCallback(function (columnId, width) {
63
- setColumnWidths(_objectSpread(_objectSpread({}, columnWidths), {}, _defineProperty({}, columnId, width)));
65
+ setColumnWidths(function (prevColumnWidths) {
66
+ return _objectSpread(_objectSpread({}, prevColumnWidths), {}, _defineProperty({}, columnId, width));
67
+ });
64
68
  if (onColumnResize) {
65
69
  onColumnResize({
66
70
  columnId: columnId,
67
71
  width: width
68
72
  });
69
73
  }
70
- }, [columnWidths, onColumnResize]);
74
+ }, [onColumnResize]);
71
75
 
72
76
  // Used by react-window to determine actual column widths
73
77
  var getColumnWidth = useCallback(function (index) {
@@ -87,14 +87,16 @@ export var useFocus = function useFocus() {
87
87
  }
88
88
  };
89
89
  }, [isFocusedCellInView, focusFirstVisibleInteractiveCell]);
90
- return {
91
- onFocusUpdate: onFocusUpdate,
92
- focusedCell: focusedCell,
93
- setFocusedCell: setFocusedCell,
94
- setIsFocusedCellInView: setIsFocusedCellInView,
95
- focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
96
- focusProps: focusProps
97
- };
90
+ return useMemo(function () {
91
+ return {
92
+ onFocusUpdate: onFocusUpdate,
93
+ focusedCell: focusedCell,
94
+ setFocusedCell: setFocusedCell,
95
+ setIsFocusedCellInView: setIsFocusedCellInView,
96
+ focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
97
+ focusProps: focusProps
98
+ };
99
+ }, [onFocusUpdate, focusedCell, setFocusedCell, setIsFocusedCellInView, focusFirstVisibleInteractiveCell, focusProps]);
98
100
  };
99
101
  export var notifyCellOfFocusState = function notifyCellOfFocusState(cellsUpdateFocus, cell, isFocused) {
100
102
  var key = "".concat(cell[0], "-").concat(cell[1]);
@@ -7,11 +7,11 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
7
7
  * Side Public License, v 1.
8
8
  */
9
9
 
10
- import { useEffect, useState, useContext } from 'react';
10
+ import { useEffect, useState, useContext, useMemo } from 'react';
11
11
  import { IS_JEST_ENVIRONMENT } from '../../../utils';
12
12
  import { useUpdateEffect, useForceRender } from '../../../services';
13
13
  import { useResizeObserver } from '../../observer/resize_observer';
14
- import { DataGridSortingContext } from './sorting';
14
+ import { DataGridSortedContext } from './sorting';
15
15
  export var useFinalGridDimensions = function useFinalGridDimensions(_ref) {
16
16
  var unconstrainedHeight = _ref.unconstrainedHeight,
17
17
  unconstrainedWidth = _ref.unconstrainedWidth,
@@ -83,42 +83,43 @@ export var useUnconstrainedHeight = function useUnconstrainedHeight(_ref2) {
83
83
  footerRowHeight = _ref2.footerRowHeight,
84
84
  scrollBarHeight = _ref2.scrollBarHeight,
85
85
  innerGridRef = _ref2.innerGridRef;
86
- var _useContext = useContext(DataGridSortingContext),
86
+ var _useContext = useContext(DataGridSortedContext),
87
87
  getCorrectRowIndex = _useContext.getCorrectRowIndex;
88
- var knownHeight = 0; // tracks the pixel height of rows we know the size of
89
- var knownRowCount = 0; // how many rows we know the size of
90
- for (var i = startRow; i < endRow; i++) {
91
- var correctRowIndex = getCorrectRowIndex(i); // map visible row to logical row
92
-
93
- // lookup the height configuration of this row
94
- var rowHeightOption = rowHeightUtils.getRowHeightOption(correctRowIndex, rowHeightsOptions);
95
- if (rowHeightOption) {
96
- // this row's height is known
97
- knownRowCount++;
98
- knownHeight += rowHeightUtils.getCalculatedHeight(rowHeightOption, defaultRowHeight, correctRowIndex, rowHeightUtils.isRowHeightOverride(correctRowIndex, rowHeightsOptions));
99
- }
100
- }
101
-
102
- // how many rows to provide space for on the screen
103
- var rowCountToAffordFor = endRow - startRow;
104
-
105
88
  // watch the inner element for a change to its width
106
89
  // which may cause the horizontal scrollbar to be added or removed
107
90
  var _useResizeObserver = useResizeObserver(innerGridRef.current, 'width'),
108
91
  innerWidth = _useResizeObserver.width;
109
92
  var forceRender = useForceRender();
110
93
  useUpdateEffect(forceRender, [innerWidth]);
111
- var unconstrainedHeight = defaultRowHeight * (rowCountToAffordFor - knownRowCount) +
112
- // guess how much space is required for unknown rows
113
- knownHeight +
114
- // computed pixel height of the known rows
115
- headerRowHeight +
116
- // account for header
117
- footerRowHeight +
118
- // account for footer
119
- scrollBarHeight; // account for horizontal scrollbar
94
+ return useMemo(function () {
95
+ var knownHeight = 0; // tracks the pixel height of rows we know the size of
96
+ var knownRowCount = 0; // how many rows we know the size of
97
+ for (var i = startRow; i < endRow; i++) {
98
+ var correctRowIndex = getCorrectRowIndex(i); // map visible row to logical row
99
+
100
+ // lookup the height configuration of this row
101
+ var rowHeightOption = rowHeightUtils.getRowHeightOption(correctRowIndex, rowHeightsOptions);
102
+ if (rowHeightOption) {
103
+ // this row's height is known
104
+ knownRowCount++;
105
+ knownHeight += rowHeightUtils.getCalculatedHeight(rowHeightOption, defaultRowHeight, correctRowIndex, rowHeightUtils.isRowHeightOverride(correctRowIndex, rowHeightsOptions));
106
+ }
107
+ }
108
+
109
+ // how many rows to provide space for on the screen
110
+ var rowCountToAffordFor = endRow - startRow;
111
+ var unconstrainedHeight = defaultRowHeight * (rowCountToAffordFor - knownRowCount) +
112
+ // guess how much space is required for unknown rows
113
+ knownHeight +
114
+ // computed pixel height of the known rows
115
+ headerRowHeight +
116
+ // account for header
117
+ footerRowHeight +
118
+ // account for footer
119
+ scrollBarHeight; // account for horizontal scrollbar
120
120
 
121
- return unconstrainedHeight;
121
+ return unconstrainedHeight;
122
+ }, [defaultRowHeight, endRow, footerRowHeight, headerRowHeight, startRow, getCorrectRowIndex, rowHeightUtils, rowHeightsOptions, scrollBarHeight]);
122
123
  };
123
124
 
124
125
  /**
@@ -13,7 +13,7 @@ export var useImperativeGridRef = function useImperativeGridRef(_ref) {
13
13
  setIsFullScreen = _ref.setIsFullScreen,
14
14
  focusContext = _ref.focusContext,
15
15
  cellPopoverContext = _ref.cellPopoverContext,
16
- sortedRowMap = _ref.sortingContext.sortedRowMap,
16
+ sortedRowMap = _ref.sortedContext.sortedRowMap,
17
17
  pagination = _ref.pagination,
18
18
  rowCount = _ref.rowCount,
19
19
  visibleColCount = _ref.visibleColCount;
@@ -20,7 +20,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
20
20
  import { useCallback, useContext, useEffect, useMemo, useState } from 'react';
21
21
  import { useForceRender, useLatest } from '../../../services';
22
22
  import { isNumber, isObject } from '../../../services/predicate';
23
- import { DataGridSortingContext } from './sorting';
23
+ import { DataGridSortedContext } from './sorting';
24
24
 
25
25
  // TODO: Once JS variables are available, use them here instead of hard-coded maps
26
26
  export var cellPaddingsMap = {
@@ -325,7 +325,7 @@ export var useRowHeightUtils = function useRowHeightUtils(_ref2) {
325
325
  export var useDefaultRowHeight = function useDefaultRowHeight(_ref3) {
326
326
  var rowHeightsOptions = _ref3.rowHeightsOptions,
327
327
  rowHeightUtils = _ref3.rowHeightUtils;
328
- var _useContext = useContext(DataGridSortingContext),
328
+ var _useContext = useContext(DataGridSortedContext),
329
329
  getCorrectRowIndex = _useContext.getCorrectRowIndex;
330
330
 
331
331
  // `minRowHeight` is primarily used by undefined & lineCount heights