@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
@@ -19,7 +19,6 @@ var _i18n = require("../../../i18n");
19
19
  var _icon = require("../../../icon");
20
20
  var _list_group = require("../../../list_group");
21
21
  var _popover = require("../../../popover");
22
- var _sorting = require("../../utils/sorting");
23
22
  var _focus = require("../../utils/focus");
24
23
  var _column_actions = require("./column_actions");
25
24
  var _data_grid_column_resizer = require("./data_grid_column_resizer");
@@ -34,7 +33,16 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
34
33
  * in compliance with, at your election, the Elastic License 2.0 or the Server
35
34
  * Side Public License, v 1.
36
35
  */
37
- var _ref2 = process.env.NODE_ENV === "production" ? {
36
+ var CellContent = function CellContent(_ref) {
37
+ var children = _ref.children,
38
+ title = _ref.title,
39
+ arrow = _ref.arrow;
40
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
41
+ title: title,
42
+ className: "euiDataGridHeaderCell__content"
43
+ }, children), arrow);
44
+ };
45
+ var _ref3 = process.env.NODE_ENV === "production" ? {
38
46
  name: "mc0thx-EuiDataGridHeaderCell",
39
47
  styles: "margin-inline-start:auto;label:EuiDataGridHeaderCell;"
40
48
  } : {
@@ -42,18 +50,19 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
42
50
  styles: "margin-inline-start:auto;label:EuiDataGridHeaderCell;",
43
51
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
44
52
  };
45
- var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
53
+ var EuiDataGridHeaderCell = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
46
54
  var _classnames;
47
- var column = _ref.column,
48
- index = _ref.index,
49
- columns = _ref.columns,
50
- columnWidths = _ref.columnWidths,
51
- schema = _ref.schema,
52
- schemaDetectors = _ref.schemaDetectors,
53
- defaultColumnWidth = _ref.defaultColumnWidth,
54
- setColumnWidth = _ref.setColumnWidth,
55
- setVisibleColumns = _ref.setVisibleColumns,
56
- switchColumnPos = _ref.switchColumnPos;
55
+ var index = _ref2.index,
56
+ column = _ref2.column,
57
+ columns = _ref2.columns,
58
+ columnWidths = _ref2.columnWidths,
59
+ defaultColumnWidth = _ref2.defaultColumnWidth,
60
+ setColumnWidth = _ref2.setColumnWidth,
61
+ setVisibleColumns = _ref2.setVisibleColumns,
62
+ switchColumnPos = _ref2.switchColumnPos,
63
+ sorting = _ref2.sorting,
64
+ schema = _ref2.schema,
65
+ schemaDetectors = _ref2.schemaDetectors;
57
66
  var id = column.id,
58
67
  display = column.display,
59
68
  displayAsText = column.displayAsText,
@@ -63,25 +72,25 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
63
72
  var _useContext = (0, _react.useContext)(_focus.DataGridFocusContext),
64
73
  setFocusedCell = _useContext.setFocusedCell,
65
74
  focusFirstVisibleInteractiveCell = _useContext.focusFirstVisibleInteractiveCell;
66
- var _useContext2 = (0, _react.useContext)(_sorting.DataGridSortingContext),
67
- sorting = _useContext2.sorting;
68
75
  var _useState = (0, _react.useState)(false),
69
76
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
70
77
  isPopoverOpen = _useState2[0],
71
78
  setIsPopoverOpen = _useState2[1];
72
79
  var popoverArrowNavigationProps = usePopoverArrowNavigation();
73
- var columnActions = (0, _column_actions.getColumnActions)({
74
- column: column,
75
- columns: columns,
76
- schema: schema,
77
- schemaDetectors: schemaDetectors,
78
- setVisibleColumns: setVisibleColumns,
79
- focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
80
- setIsPopoverOpen: setIsPopoverOpen,
81
- sorting: sorting,
82
- switchColumnPos: switchColumnPos,
83
- setFocusedCell: setFocusedCell
84
- });
80
+ var columnActions = (0, _react.useMemo)(function () {
81
+ return (0, _column_actions.getColumnActions)({
82
+ column: column,
83
+ columns: columns,
84
+ schema: schema,
85
+ schemaDetectors: schemaDetectors,
86
+ setVisibleColumns: setVisibleColumns,
87
+ focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
88
+ setIsPopoverOpen: setIsPopoverOpen,
89
+ sorting: sorting,
90
+ switchColumnPos: switchColumnPos,
91
+ setFocusedCell: setFocusedCell
92
+ });
93
+ }, [column, columns, schema, schemaDetectors, setVisibleColumns, focusFirstVisibleInteractiveCell, setIsPopoverOpen, sorting, switchColumnPos, setFocusedCell]);
85
94
  var showColumnActions = columnActions && columnActions.length > 0;
86
95
  var actionsButtonRef = (0, _react.useRef)(null);
87
96
  var focusActionsButton = (0, _react.useCallback)(function () {
@@ -108,11 +117,9 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
108
117
  prefix: 'euiDataGridCellHeader',
109
118
  suffix: 'actions'
110
119
  });
111
- var cellContent = (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
112
- title: displayAsText || id,
113
- className: "euiDataGridHeaderCell__content"
114
- }, display || displayAsText || id), sortingArrow);
115
120
  var classes = (0, _classnames2.default)((_classnames = {}, (0, _defineProperty2.default)(_classnames, "euiDataGridHeaderCell--".concat(columnType), columnType), (0, _defineProperty2.default)(_classnames, 'euiDataGridHeaderCell--hasColumnActions', showColumnActions), (0, _defineProperty2.default)(_classnames, 'euiDataGridHeaderCell--isActionsPopoverOpen', isPopoverOpen), _classnames), displayHeaderCellProps === null || displayHeaderCellProps === void 0 ? void 0 : displayHeaderCellProps.className);
121
+ var title = displayAsText || id;
122
+ var children = display || displayAsText || id;
116
123
  return (0, _react2.jsx)(_data_grid_header_cell_wrapper.EuiDataGridHeaderCellWrapper, (0, _extends2.default)({}, displayHeaderCellProps, {
117
124
  className: classes,
118
125
  id: id,
@@ -126,7 +133,10 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
126
133
  columnId: id,
127
134
  columnWidth: width,
128
135
  setColumnWidth: setColumnWidth
129
- }) : null, !showColumnActions ? (0, _react2.jsx)(_react.default.Fragment, null, cellContent, sortingScreenReaderText && (0, _react2.jsx)(_accessibility2.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", null, sortingScreenReaderText))) : (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("button", {
136
+ }) : null, !showColumnActions ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(CellContent, {
137
+ title: title,
138
+ arrow: sortingArrow
139
+ }, children), sortingScreenReaderText && (0, _react2.jsx)(_accessibility2.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", null, sortingScreenReaderText))) : (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("button", {
130
140
  className: "euiDataGridHeaderCell__button",
131
141
  onClick: function onClick() {
132
142
  return setIsPopoverOpen(function (isPopoverOpen) {
@@ -142,12 +152,15 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
142
152
  "aria-describedby": "".concat(sortingAriaId, " ").concat(actionsAriaId),
143
153
  ref: actionsButtonRef,
144
154
  "data-test-subj": "dataGridHeaderCellActionButton-".concat(id)
145
- }, cellContent, (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({
155
+ }, (0, _react2.jsx)(CellContent, {
156
+ title: title,
157
+ arrow: sortingArrow
158
+ }, children), (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({
146
159
  display: "block",
147
160
  panelPaddingSize: "none",
148
161
  offset: 7,
149
162
  anchorPosition: "downRight",
150
- css: _ref2 // Align to right
163
+ css: _ref3 // Align to right
151
164
  ,
152
165
  focusTrapProps: {
153
166
  // We need to override the default EuiPopover `onClickOutside` since the anchor is separate from the actual button
@@ -183,17 +196,18 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
183
196
  token: "euiDataGridHeaderCell.headerActions",
184
197
  default: "Click to view column header actions"
185
198
  }))));
186
- };
199
+ });
200
+ exports.EuiDataGridHeaderCell = EuiDataGridHeaderCell;
201
+ EuiDataGridHeaderCell.displayName = 'EuiDataGridHeaderCell';
187
202
 
188
203
  /**
189
204
  * Column sorting utility helpers
190
205
  */
191
- exports.EuiDataGridHeaderCell = EuiDataGridHeaderCell;
192
- var useSortingUtils = function useSortingUtils(_ref3) {
206
+ var useSortingUtils = function useSortingUtils(_ref4) {
193
207
  var _sorting$columns;
194
- var sorting = _ref3.sorting,
195
- id = _ref3.id,
196
- showColumnActions = _ref3.showColumnActions;
208
+ var sorting = _ref4.sorting,
209
+ id = _ref4.id,
210
+ showColumnActions = _ref4.showColumnActions;
197
211
  var sortedColumn = (0, _react.useMemo)(function () {
198
212
  return sorting === null || sorting === void 0 ? void 0 : sorting.columns.find(function (col) {
199
213
  return col.id === id;
@@ -205,12 +219,14 @@ var useSortingUtils = function useSortingUtils(_ref3) {
205
219
  /**
206
220
  * Arrow icon
207
221
  */
208
- var sortingArrow = isColumnSorted ? (0, _react2.jsx)(_icon.EuiIcon, {
209
- type: sortedColumn.direction === 'asc' ? 'sortUp' : 'sortDown',
210
- color: "text",
211
- className: "euiDataGridHeaderCell__sortingArrow",
212
- "data-test-subj": "dataGridHeaderCellSortingIcon-".concat(id)
213
- }) : null;
222
+ var sortingArrow = (0, _react.useMemo)(function () {
223
+ return isColumnSorted ? (0, _react2.jsx)(_icon.EuiIcon, {
224
+ type: sortedColumn.direction === 'asc' ? 'sortUp' : 'sortDown',
225
+ color: "text",
226
+ className: "euiDataGridHeaderCell__sortingArrow",
227
+ "data-test-subj": "dataGridHeaderCellSortingIcon-".concat(id)
228
+ }) : null;
229
+ }, [id, isColumnSorted, sortedColumn]);
214
230
 
215
231
  /**
216
232
  * aria-sort attribute - should only be used when a single column is being sorted
@@ -227,9 +243,9 @@ var useSortingUtils = function useSortingUtils(_ref3) {
227
243
  var _sorting$columns2;
228
244
  if (!isColumnSorted) return null;
229
245
  if (!showColumnActions && hasOnlyOneSort) return null; // in this scenario, the `aria-sort` attribute will be used by screen readers
230
- return (0, _react2.jsx)(_react.default.Fragment, null, sorting === null || sorting === void 0 ? void 0 : (_sorting$columns2 = sorting.columns) === null || _sorting$columns2 === void 0 ? void 0 : _sorting$columns2.map(function (_ref4, index) {
231
- var columnId = _ref4.id,
232
- direction = _ref4.direction;
246
+ return (0, _react2.jsx)(_react.default.Fragment, null, sorting === null || sorting === void 0 ? void 0 : (_sorting$columns2 = sorting.columns) === null || _sorting$columns2 === void 0 ? void 0 : _sorting$columns2.map(function (_ref5, index) {
247
+ var columnId = _ref5.id,
248
+ direction = _ref5.direction;
233
249
  if (hasOnlyOneSort) {
234
250
  if (direction === 'asc') {
235
251
  return (0, _react2.jsx)(_i18n.EuiI18n, {
@@ -14,7 +14,7 @@ var _data_grid_control_header_cell = require("./data_grid_control_header_cell");
14
14
  var _data_grid_header_cell = require("./data_grid_header_cell");
15
15
  var _data_grid_types = require("../../data_grid_types");
16
16
  var _react2 = require("@emotion/react");
17
- var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "schema", "schemaDetectors", "columnWidths", "defaultColumnWidth", "className", "setColumnWidth", "setVisibleColumns", "switchColumnPos", "data-test-subj"];
17
+ var _excluded = ["className", "data-test-subj", "leadingControlColumns", "trailingControlColumns", "columns", "columnWidths", "defaultColumnWidth", "setColumnWidth", "setVisibleColumns", "switchColumnPos", "sorting", "schema", "schemaDetectors"];
18
18
  /*
19
19
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
20
20
  * or more contributor license agreements. Licensed under the Elastic License
@@ -24,21 +24,22 @@ var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "
24
24
  */
25
25
  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); }
26
26
  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; }
27
- var EuiDataGridHeaderRow = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
28
- var _props$leadingControl = props.leadingControlColumns,
27
+ var EuiDataGridHeaderRow = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
28
+ var className = props.className,
29
+ _dataTestSubj = props['data-test-subj'],
30
+ _props$leadingControl = props.leadingControlColumns,
29
31
  leadingControlColumns = _props$leadingControl === void 0 ? _data_grid_types.emptyControlColumns : _props$leadingControl,
30
32
  _props$trailingContro = props.trailingControlColumns,
31
33
  trailingControlColumns = _props$trailingContro === void 0 ? _data_grid_types.emptyControlColumns : _props$trailingContro,
32
34
  columns = props.columns,
33
- schema = props.schema,
34
- schemaDetectors = props.schemaDetectors,
35
35
  columnWidths = props.columnWidths,
36
36
  defaultColumnWidth = props.defaultColumnWidth,
37
- className = props.className,
38
37
  setColumnWidth = props.setColumnWidth,
39
38
  setVisibleColumns = props.setVisibleColumns,
40
39
  switchColumnPos = props.switchColumnPos,
41
- _dataTestSubj = props['data-test-subj'],
40
+ sorting = props.sorting,
41
+ schema = props.schema,
42
+ schemaDetectors = props.schemaDetectors,
42
43
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
43
44
  var classes = (0, _classnames.default)('euiDataGridHeader', className);
44
45
  var dataTestSubj = (0, _classnames.default)('dataGridHeader', _dataTestSubj);
@@ -56,16 +57,17 @@ var EuiDataGridHeaderRow = /*#__PURE__*/(0, _react.forwardRef)(function (props,
56
57
  }), columns.map(function (column, index) {
57
58
  return (0, _react2.jsx)(_data_grid_header_cell.EuiDataGridHeaderCell, {
58
59
  key: column.id,
60
+ index: index + leadingControlColumns.length,
59
61
  column: column,
60
62
  columns: columns,
61
- index: index + leadingControlColumns.length,
62
63
  columnWidths: columnWidths,
63
- schema: schema,
64
- schemaDetectors: schemaDetectors,
64
+ defaultColumnWidth: defaultColumnWidth,
65
65
  setColumnWidth: setColumnWidth,
66
66
  setVisibleColumns: setVisibleColumns,
67
67
  switchColumnPos: switchColumnPos,
68
- defaultColumnWidth: defaultColumnWidth
68
+ sorting: sorting,
69
+ schema: schema,
70
+ schemaDetectors: schemaDetectors
69
71
  });
70
72
  }), trailingControlColumns.map(function (controlColumn, index) {
71
73
  return (0, _react2.jsx)(_data_grid_control_header_cell.EuiDataGridControlHeaderCell, {
@@ -74,6 +76,6 @@ var EuiDataGridHeaderRow = /*#__PURE__*/(0, _react.forwardRef)(function (props,
74
76
  controlColumn: controlColumn
75
77
  });
76
78
  }));
77
- });
79
+ }));
78
80
  exports.EuiDataGridHeaderRow = EuiDataGridHeaderRow;
79
81
  EuiDataGridHeaderRow.displayName = 'EuiDataGridHeaderRow';
@@ -36,11 +36,12 @@ var useDataGridHeader = function useDataGridHeader(props) {
36
36
  return (0, _react2.jsx)(_data_grid_header_row.EuiDataGridHeaderRow, (0, _extends2.default)({
37
37
  ref: setHeaderRowRef
38
38
  }, props));
39
- }, Object.values(props)); // eslint-disable-line react-hooks/exhaustive-deps
40
-
41
- return {
42
- headerRow: headerRow,
43
- headerRowHeight: headerRowHeight
44
- };
39
+ }, [props]);
40
+ return (0, _react.useMemo)(function () {
41
+ return {
42
+ headerRow: headerRow,
43
+ headerRowHeight: headerRowHeight
44
+ };
45
+ }, [headerRow, headerRowHeight]);
45
46
  };
46
47
  exports.useDataGridHeader = useDataGridHeader;
@@ -81,10 +81,6 @@ var useDataGridColumnSelector = function useDataGridColumnSelector(availableColu
81
81
  }, [sortedColumns, columnSearchText, displayValues]);
82
82
  var isDragEnabled = allowColumnReorder && columnSearchText.length === 0; // only allow drag-and-drop when not filtering columns
83
83
  var dragHandleAriaLabel = (0, _i18n.useEuiI18n)('euiColumnSelector.dragHandleAriaLabel', 'Drag handle');
84
- var buttonText = (0, _react2.jsx)(_i18n.EuiI18n, {
85
- token: "euiColumnSelector.button",
86
- default: "Columns"
87
- });
88
84
  var orderedVisibleColumns = (0, _react.useMemo)(function () {
89
85
  return visibleColumns.map(function (columnId) {
90
86
  return availableColumns.find(function (_ref3) {
@@ -96,127 +92,132 @@ var useDataGridColumnSelector = function useDataGridColumnSelector(availableColu
96
92
  return column != null;
97
93
  });
98
94
  }, [availableColumns, visibleColumns]);
99
- var columnSelector = allowColumnHiding || allowColumnReorder ? (0, _react2.jsx)(_popover.EuiPopover, {
100
- "data-test-subj": "dataGridColumnSelectorPopover",
101
- isOpen: isOpen,
102
- closePopover: function closePopover() {
103
- return setIsOpen(false);
104
- },
105
- anchorPosition: "downLeft",
106
- panelPaddingSize: "s",
107
- hasDragDrop: true,
108
- button: (0, _react2.jsx)(_data_grid_toolbar_control.EuiDataGridToolbarControl, {
109
- badgeContent: numberOfHiddenFields > 0 ? "".concat(orderedVisibleColumns.length, "/").concat(availableColumns.length) : availableColumns.length,
110
- iconType: "tableDensityNormal",
111
- "data-test-subj": "dataGridColumnSelectorButton",
112
- onClick: function onClick() {
113
- return setIsOpen(!isOpen);
114
- }
115
- }, buttonText)
116
- }, allowColumnHiding && (0, _react2.jsx)(_popover.EuiPopoverTitle, null, (0, _react2.jsx)(_i18n.EuiI18n, {
117
- tokens: ['euiColumnSelector.search', 'euiColumnSelector.searchcolumns'],
118
- defaults: ['Search', 'Search columns']
119
- }, function (_ref4) {
120
- var _ref5 = (0, _slicedToArray2.default)(_ref4, 2),
121
- search = _ref5[0],
122
- searchcolumns = _ref5[1];
123
- return (0, _react2.jsx)(_form.EuiFieldText, {
124
- compressed: true,
125
- placeholder: search,
126
- "aria-label": searchcolumns,
127
- value: columnSearchText,
128
- onChange: function onChange(e) {
129
- return setColumnSearchText(e.currentTarget.value);
95
+ var columnSelector = (0, _react.useMemo)(function () {
96
+ return allowColumnHiding || allowColumnReorder ? (0, _react2.jsx)(_popover.EuiPopover, {
97
+ "data-test-subj": "dataGridColumnSelectorPopover",
98
+ isOpen: isOpen,
99
+ closePopover: function closePopover() {
100
+ return setIsOpen(false);
130
101
  },
131
- "data-test-subj": "dataGridColumnSelectorSearch"
132
- });
133
- })), (0, _react2.jsx)(_drag_and_drop.EuiDragDropContext, {
134
- onDragEnd: onDragEnd
135
- }, (0, _react2.jsx)(_drag_and_drop.EuiDroppable, {
136
- droppableId: "columnOrder",
137
- isDropDisabled: !isDragEnabled,
138
- className: "euiDataGrid__controlScroll"
139
- }, (0, _react2.jsx)(_react.default.Fragment, null, filteredColumns.map(function (id, index) {
140
- return (0, _react2.jsx)(_drag_and_drop.EuiDraggable, {
141
- key: id,
142
- draggableId: id,
143
- index: index,
144
- isDragDisabled: !isDragEnabled,
145
- hasInteractiveChildren: true,
146
- customDragHandle: true
147
- }, function (provided, state) {
148
- return (0, _react2.jsx)("div", {
149
- className: (0, _classnames.default)('euiDataGridColumnSelector__item', {
150
- 'euiDataGridColumnSelector__item-isDragging': state.isDragging
151
- }),
152
- "data-test-subj": "dataGridColumnSelectorColumnItem-".concat(id)
153
- }, (0, _react2.jsx)(_flex.EuiFlexGroup, {
154
- responsive: false,
155
- gutterSize: "s",
156
- alignItems: "center"
157
- }, allowColumnHiding && (0, _react2.jsx)(_flex.EuiFlexItem, {
158
- grow: false
159
- }, (0, _react2.jsx)(_form.EuiSwitch, {
160
- name: id,
161
- label: displayValues[id] || id,
162
- showLabel: false,
163
- checked: visibleColumnIds.has(id),
102
+ anchorPosition: "downLeft",
103
+ panelPaddingSize: "s",
104
+ hasDragDrop: true,
105
+ button: (0, _react2.jsx)(_data_grid_toolbar_control.EuiDataGridToolbarControl, {
106
+ badgeContent: numberOfHiddenFields > 0 ? "".concat(orderedVisibleColumns.length, "/").concat(availableColumns.length) : availableColumns.length,
107
+ iconType: "tableDensityNormal",
108
+ "data-test-subj": "dataGridColumnSelectorButton",
109
+ onClick: function onClick() {
110
+ return setIsOpen(!isOpen);
111
+ }
112
+ }, (0, _react2.jsx)(_i18n.EuiI18n, {
113
+ token: "euiColumnSelector.button",
114
+ default: "Columns"
115
+ }))
116
+ }, allowColumnHiding && (0, _react2.jsx)(_popover.EuiPopoverTitle, null, (0, _react2.jsx)(_i18n.EuiI18n, {
117
+ tokens: ['euiColumnSelector.search', 'euiColumnSelector.searchcolumns'],
118
+ defaults: ['Search', 'Search columns']
119
+ }, function (_ref4) {
120
+ var _ref5 = (0, _slicedToArray2.default)(_ref4, 2),
121
+ search = _ref5[0],
122
+ searchcolumns = _ref5[1];
123
+ return (0, _react2.jsx)(_form.EuiFieldText, {
164
124
  compressed: true,
165
- className: "euiSwitch--mini",
166
- onChange: function onChange(event) {
167
- var checked = event.target.checked;
168
- var nextVisibleColumns = sortedColumns.filter(function (columnId) {
169
- return checked ? visibleColumnIds.has(columnId) || id === columnId : visibleColumnIds.has(columnId) && id !== columnId;
170
- });
171
- setVisibleColumns(nextVisibleColumns);
125
+ placeholder: search,
126
+ "aria-label": searchcolumns,
127
+ value: columnSearchText,
128
+ onChange: function onChange(e) {
129
+ return setColumnSearchText(e.currentTarget.value);
172
130
  },
173
- "data-test-subj": "dataGridColumnSelectorToggleColumnVisibility-".concat(id)
174
- })), (0, _react2.jsx)(_flex.EuiFlexItem
175
- // This extra column name flex item affords the column more grabbable real estate
176
- // for mouse users, while hiding repetition for keyboard/screen reader users
177
- , (0, _extends2.default)({}, provided.dragHandleProps, {
178
- "aria-hidden": true,
179
- tabIndex: -1
180
- }), (0, _react2.jsx)("span", {
181
- className: "euiDataGridColumnSelector__itemLabel"
182
- }, displayValues[id] || id)), isDragEnabled && (0, _react2.jsx)(_flex.EuiFlexItem, (0, _extends2.default)({
183
- grow: false
184
- }, provided.dragHandleProps, {
185
- "aria-label": dragHandleAriaLabel
186
- }), (0, _react2.jsx)(_icon.EuiIcon, {
187
- type: "grab",
188
- color: "subdued"
189
- }))));
190
- });
191
- })))), allowColumnHiding && (0, _react2.jsx)(_popover.EuiPopoverFooter, null, (0, _react2.jsx)(_flex.EuiFlexGroup, {
192
- gutterSize: "s",
193
- responsive: false,
194
- justifyContent: "spaceBetween"
195
- }, (0, _react2.jsx)(_flex.EuiFlexItem, {
196
- grow: false
197
- }, (0, _react2.jsx)(_button.EuiButtonEmpty, {
198
- size: "xs",
199
- flush: "left",
200
- onClick: function onClick() {
201
- return setVisibleColumns(sortedColumns);
202
- },
203
- "data-test-subj": "dataGridColumnSelectorShowAllButton"
204
- }, (0, _react2.jsx)(_i18n.EuiI18n, {
205
- token: "euiColumnSelector.selectAll",
206
- default: "Show all"
207
- }))), (0, _react2.jsx)(_flex.EuiFlexItem, {
208
- grow: false
209
- }, (0, _react2.jsx)(_button.EuiButtonEmpty, {
210
- size: "xs",
211
- flush: "right",
212
- onClick: function onClick() {
213
- return setVisibleColumns([]);
214
- },
215
- "data-test-subj": "dataGridColumnSelectorHideAllButton"
216
- }, (0, _react2.jsx)(_i18n.EuiI18n, {
217
- token: "euiColumnSelector.hideAll",
218
- default: "Hide all"
219
- })))))) : null;
131
+ "data-test-subj": "dataGridColumnSelectorSearch"
132
+ });
133
+ })), (0, _react2.jsx)(_drag_and_drop.EuiDragDropContext, {
134
+ onDragEnd: onDragEnd
135
+ }, (0, _react2.jsx)(_drag_and_drop.EuiDroppable, {
136
+ droppableId: "columnOrder",
137
+ isDropDisabled: !isDragEnabled,
138
+ className: "euiDataGrid__controlScroll"
139
+ }, (0, _react2.jsx)(_react.default.Fragment, null, filteredColumns.map(function (id, index) {
140
+ return (0, _react2.jsx)(_drag_and_drop.EuiDraggable, {
141
+ key: id,
142
+ draggableId: id,
143
+ index: index,
144
+ isDragDisabled: !isDragEnabled,
145
+ hasInteractiveChildren: true,
146
+ customDragHandle: true
147
+ }, function (provided, state) {
148
+ return (0, _react2.jsx)("div", {
149
+ className: (0, _classnames.default)('euiDataGridColumnSelector__item', {
150
+ 'euiDataGridColumnSelector__item-isDragging': state.isDragging
151
+ }),
152
+ "data-test-subj": "dataGridColumnSelectorColumnItem-".concat(id)
153
+ }, (0, _react2.jsx)(_flex.EuiFlexGroup, {
154
+ responsive: false,
155
+ gutterSize: "s",
156
+ alignItems: "center"
157
+ }, allowColumnHiding && (0, _react2.jsx)(_flex.EuiFlexItem, {
158
+ grow: false
159
+ }, (0, _react2.jsx)(_form.EuiSwitch, {
160
+ name: id,
161
+ label: displayValues[id] || id,
162
+ showLabel: false,
163
+ checked: visibleColumnIds.has(id),
164
+ compressed: true,
165
+ className: "euiSwitch--mini",
166
+ onChange: function onChange(event) {
167
+ var checked = event.target.checked;
168
+ var nextVisibleColumns = sortedColumns.filter(function (columnId) {
169
+ return checked ? visibleColumnIds.has(columnId) || id === columnId : visibleColumnIds.has(columnId) && id !== columnId;
170
+ });
171
+ setVisibleColumns(nextVisibleColumns);
172
+ },
173
+ "data-test-subj": "dataGridColumnSelectorToggleColumnVisibility-".concat(id)
174
+ })), (0, _react2.jsx)(_flex.EuiFlexItem
175
+ // This extra column name flex item affords the column more grabbable real estate
176
+ // for mouse users, while hiding repetition for keyboard/screen reader users
177
+ , (0, _extends2.default)({}, provided.dragHandleProps, {
178
+ "aria-hidden": true,
179
+ tabIndex: -1
180
+ }), (0, _react2.jsx)("span", {
181
+ className: "euiDataGridColumnSelector__itemLabel"
182
+ }, displayValues[id] || id)), isDragEnabled && (0, _react2.jsx)(_flex.EuiFlexItem, (0, _extends2.default)({
183
+ grow: false
184
+ }, provided.dragHandleProps, {
185
+ "aria-label": dragHandleAriaLabel
186
+ }), (0, _react2.jsx)(_icon.EuiIcon, {
187
+ type: "grab",
188
+ color: "subdued"
189
+ }))));
190
+ });
191
+ })))), allowColumnHiding && (0, _react2.jsx)(_popover.EuiPopoverFooter, null, (0, _react2.jsx)(_flex.EuiFlexGroup, {
192
+ gutterSize: "s",
193
+ responsive: false,
194
+ justifyContent: "spaceBetween"
195
+ }, (0, _react2.jsx)(_flex.EuiFlexItem, {
196
+ grow: false
197
+ }, (0, _react2.jsx)(_button.EuiButtonEmpty, {
198
+ size: "xs",
199
+ flush: "left",
200
+ onClick: function onClick() {
201
+ return setVisibleColumns(sortedColumns);
202
+ },
203
+ "data-test-subj": "dataGridColumnSelectorShowAllButton"
204
+ }, (0, _react2.jsx)(_i18n.EuiI18n, {
205
+ token: "euiColumnSelector.selectAll",
206
+ default: "Show all"
207
+ }))), (0, _react2.jsx)(_flex.EuiFlexItem, {
208
+ grow: false
209
+ }, (0, _react2.jsx)(_button.EuiButtonEmpty, {
210
+ size: "xs",
211
+ flush: "right",
212
+ onClick: function onClick() {
213
+ return setVisibleColumns([]);
214
+ },
215
+ "data-test-subj": "dataGridColumnSelectorHideAllButton"
216
+ }, (0, _react2.jsx)(_i18n.EuiI18n, {
217
+ token: "euiColumnSelector.hideAll",
218
+ default: "Hide all"
219
+ })))))) : null;
220
+ }, [availableColumns.length, numberOfHiddenFields, orderedVisibleColumns.length, allowColumnHiding, allowColumnReorder, isOpen, columnSearchText, displayValues, visibleColumnIds, sortedColumns, setVisibleColumns, setIsOpen, onDragEnd, isDragEnabled, dragHandleAriaLabel, filteredColumns]);
220
221
 
221
222
  /**
222
223
  * Used for moving columns left/right, available in the headers actions menu
@@ -232,6 +233,8 @@ var useDataGridColumnSelector = function useDataGridColumnSelector(availableColu
232
233
  nextSortedColumns.splice(moveToIdx, 0, fromColId);
233
234
  setColumns(nextSortedColumns);
234
235
  }, [setColumns, sortedColumns]);
235
- return [columnSelector, orderedVisibleColumns, setVisibleColumns, switchColumnPos];
236
+ return (0, _react.useMemo)(function () {
237
+ return [columnSelector, orderedVisibleColumns, setVisibleColumns, switchColumnPos];
238
+ }, [columnSelector, orderedVisibleColumns, setVisibleColumns, switchColumnPos]);
236
239
  };
237
240
  exports.useDataGridColumnSelector = useDataGridColumnSelector;