@elastic/eui 93.2.0 → 93.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/dist/eui_charts_theme.d.ts +9 -0
  2. package/dist/eui_charts_theme.js +56 -14
  3. package/dist/eui_charts_theme.js.map +1 -1
  4. package/dist/eui_theme_dark.css +3 -0
  5. package/dist/eui_theme_dark.min.css +1 -1
  6. package/dist/eui_theme_light.css +3 -0
  7. package/dist/eui_theme_light.min.css +1 -1
  8. package/es/components/breadcrumbs/_breadcrumb_content.js +362 -0
  9. package/es/components/breadcrumbs/_breadcrumb_content.styles.js +48 -0
  10. package/es/components/breadcrumbs/breadcrumb.js +10 -324
  11. package/es/components/breadcrumbs/breadcrumb.styles.js +5 -27
  12. package/es/components/breadcrumbs/breadcrumbs.js +8 -6
  13. package/es/components/breadcrumbs/types.js +1 -0
  14. package/es/components/button/button_display/_button_display.js +2 -3
  15. package/es/components/button/button_empty/button_empty.js +2 -3
  16. package/es/components/button/button_group/button_group.js +19 -7
  17. package/es/components/button/button_group/button_group.styles.js +11 -14
  18. package/es/components/button/button_group/button_group_button.js +59 -5
  19. package/es/components/button/button_group/button_group_button.styles.js +39 -3
  20. package/es/components/button/button_icon/button_icon.js +4 -5
  21. package/es/components/button/button_icon/button_icon.styles.js +11 -3
  22. package/es/components/datagrid/body/cell/data_grid_cell.js +102 -59
  23. package/es/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  24. package/es/components/datagrid/body/cell/data_grid_cell_popover.js +64 -56
  25. package/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  26. package/es/components/datagrid/body/cell/index.js +1 -1
  27. package/es/components/datagrid/body/data_grid_body.js +14 -0
  28. package/es/components/datagrid/body/data_grid_body_custom.js +54 -35
  29. package/es/components/datagrid/body/data_grid_body_virtualized.js +87 -56
  30. package/es/components/datagrid/body/data_grid_row_manager.js +7 -5
  31. package/es/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  32. package/es/components/datagrid/body/header/data_grid_control_header_cell.js +5 -4
  33. package/es/components/datagrid/body/header/data_grid_header_cell.js +73 -53
  34. package/es/components/datagrid/body/header/data_grid_header_row.js +15 -551
  35. package/es/components/datagrid/body/header/use_data_grid_header.js +7 -6
  36. package/es/components/datagrid/controls/column_selector.js +126 -123
  37. package/es/components/datagrid/controls/column_sorting.js +605 -103
  38. package/es/components/datagrid/controls/column_sorting_draggable.js +24 -22
  39. package/es/components/datagrid/controls/display_selector.js +109 -107
  40. package/es/components/datagrid/data_grid.a11y.js +13 -12
  41. package/es/components/datagrid/data_grid.js +47 -22
  42. package/es/components/datagrid/utils/col_widths.js +12 -8
  43. package/es/components/datagrid/utils/focus.js +10 -8
  44. package/es/components/datagrid/utils/grid_height_width.js +31 -30
  45. package/es/components/datagrid/utils/ref.js +1 -1
  46. package/es/components/datagrid/utils/row_heights.js +2 -2
  47. package/es/components/datagrid/utils/sorting.js +29 -27
  48. package/es/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  49. package/es/components/date_picker/super_date_picker/super_update_button.js +57 -29
  50. package/es/components/facet/facet_button.styles.js +1 -2
  51. package/es/components/flex/flex_grid.js +22 -8
  52. package/es/components/flex/flex_grid.styles.js +13 -6
  53. package/es/components/flex/flex_group.js +10 -11
  54. package/es/components/flex/flex_item.js +9 -11
  55. package/es/components/flex/flex_item.styles.js +107 -122
  56. package/es/components/flyout/flyout.js +16 -18
  57. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +7 -7
  58. package/es/components/icon/icon.js +13 -16
  59. package/es/components/icon/icon.styles.js +6 -9
  60. package/es/components/link/external_link_icon.js +11 -8
  61. package/es/components/link/link.js +2 -3
  62. package/es/components/link/link.styles.js +4 -10
  63. package/es/components/modal/confirm_modal.js +2 -1
  64. package/es/components/modal/modal.js +12 -3
  65. package/es/components/observer/resize_observer/resize_observer.js +15 -24
  66. package/es/components/page/page_header/page_header_content.js +4 -2
  67. package/es/components/progress/progress.styles.js +2 -2
  68. package/es/components/skeleton/skeleton_circle.js +2 -3
  69. package/es/components/skeleton/skeleton_rectangle.js +2 -3
  70. package/es/components/skeleton/skeleton_text.js +16 -12
  71. package/es/components/skeleton/skeleton_title.js +2 -3
  72. package/es/components/spacer/spacer.js +2 -3
  73. package/es/components/text/text.js +2 -3
  74. package/es/components/text/text_align.js +1 -2
  75. package/es/components/text/text_align.styles.js +5 -7
  76. package/es/components/text/text_color.js +2 -3
  77. package/es/components/title/title.js +2 -3
  78. package/es/components/title/title.styles.js +0 -7
  79. package/es/components/toast/global_toast_list.js +70 -73
  80. package/es/components/toast/toast.js +27 -42
  81. package/es/components/toast/toast.styles.js +2 -17
  82. package/es/global_styling/mixins/_typography.js +17 -6
  83. package/es/services/color/eui_palettes.js +21 -13
  84. package/es/services/color/index.js +1 -1
  85. package/es/services/hooks/index.js +1 -0
  86. package/es/services/hooks/useDeepEqual.js +23 -0
  87. package/es/services/index.js +1 -1
  88. package/es/services/theme/index.js +1 -1
  89. package/es/services/theme/style_memoization.js +47 -14
  90. package/es/themes/amsterdam/global_styling/mixins/button.js +47 -24
  91. package/eui.d.ts +2862 -2748
  92. package/i18ntokens.json +267 -267
  93. package/lib/components/breadcrumbs/_breadcrumb_content.js +372 -0
  94. package/lib/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  95. package/lib/components/breadcrumbs/breadcrumb.js +11 -328
  96. package/lib/components/breadcrumbs/breadcrumb.styles.js +5 -29
  97. package/lib/components/breadcrumbs/breadcrumbs.js +7 -5
  98. package/lib/components/breadcrumbs/types.js +5 -0
  99. package/lib/components/button/button_display/_button_display.js +1 -2
  100. package/lib/components/button/button_empty/button_empty.js +1 -2
  101. package/lib/components/button/button_group/button_group.js +18 -6
  102. package/lib/components/button/button_group/button_group.styles.js +11 -14
  103. package/lib/components/button/button_group/button_group_button.js +59 -5
  104. package/lib/components/button/button_group/button_group_button.styles.js +45 -11
  105. package/lib/components/button/button_icon/button_icon.js +3 -4
  106. package/lib/components/button/button_icon/button_icon.styles.js +10 -2
  107. package/lib/components/datagrid/body/cell/data_grid_cell.js +100 -58
  108. package/lib/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  109. package/lib/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  110. package/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  111. package/lib/components/datagrid/body/cell/index.js +2 -2
  112. package/lib/components/datagrid/body/data_grid_body.js +14 -0
  113. package/lib/components/datagrid/body/data_grid_body_custom.js +53 -34
  114. package/lib/components/datagrid/body/data_grid_body_virtualized.js +86 -55
  115. package/lib/components/datagrid/body/data_grid_row_manager.js +6 -4
  116. package/lib/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  117. package/lib/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  118. package/lib/components/datagrid/body/header/data_grid_header_cell.js +72 -52
  119. package/lib/components/datagrid/body/header/data_grid_header_row.js +14 -550
  120. package/lib/components/datagrid/body/header/use_data_grid_header.js +7 -6
  121. package/lib/components/datagrid/controls/column_selector.js +126 -123
  122. package/lib/components/datagrid/controls/column_sorting.js +615 -110
  123. package/lib/components/datagrid/controls/column_sorting_draggable.js +27 -22
  124. package/lib/components/datagrid/controls/display_selector.js +109 -107
  125. package/lib/components/datagrid/data_grid.a11y.js +13 -12
  126. package/lib/components/datagrid/data_grid.js +45 -20
  127. package/lib/components/datagrid/utils/col_widths.js +12 -8
  128. package/lib/components/datagrid/utils/focus.js +10 -8
  129. package/lib/components/datagrid/utils/grid_height_width.js +29 -28
  130. package/lib/components/datagrid/utils/ref.js +1 -1
  131. package/lib/components/datagrid/utils/row_heights.js +1 -1
  132. package/lib/components/datagrid/utils/sorting.js +31 -29
  133. package/lib/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  134. package/lib/components/date_picker/super_date_picker/super_update_button.js +57 -29
  135. package/lib/components/facet/facet_button.styles.js +1 -2
  136. package/lib/components/flex/flex_grid.js +23 -7
  137. package/lib/components/flex/flex_grid.styles.js +13 -6
  138. package/lib/components/flex/flex_group.js +10 -10
  139. package/lib/components/flex/flex_item.js +13 -13
  140. package/lib/components/flex/flex_item.styles.js +107 -122
  141. package/lib/components/flyout/flyout.js +16 -18
  142. package/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +7 -7
  143. package/lib/components/icon/icon.js +12 -15
  144. package/lib/components/icon/icon.styles.js +5 -8
  145. package/lib/components/link/external_link_icon.js +10 -7
  146. package/lib/components/link/link.js +1 -2
  147. package/lib/components/link/link.styles.js +6 -14
  148. package/lib/components/modal/confirm_modal.js +2 -1
  149. package/lib/components/modal/modal.js +12 -3
  150. package/lib/components/observer/resize_observer/resize_observer.js +15 -24
  151. package/lib/components/page/page_header/page_header_content.js +4 -2
  152. package/lib/components/progress/progress.styles.js +1 -1
  153. package/lib/components/skeleton/skeleton_circle.js +1 -2
  154. package/lib/components/skeleton/skeleton_rectangle.js +1 -2
  155. package/lib/components/skeleton/skeleton_text.js +18 -11
  156. package/lib/components/skeleton/skeleton_title.js +1 -2
  157. package/lib/components/spacer/spacer.js +1 -2
  158. package/lib/components/text/text.js +1 -2
  159. package/lib/components/text/text_align.js +1 -2
  160. package/lib/components/text/text_align.styles.js +5 -7
  161. package/lib/components/text/text_color.js +1 -2
  162. package/lib/components/title/title.js +1 -2
  163. package/lib/components/title/title.styles.js +2 -10
  164. package/lib/components/toast/global_toast_list.js +68 -71
  165. package/lib/components/toast/toast.js +25 -40
  166. package/lib/components/toast/toast.styles.js +11 -25
  167. package/lib/global_styling/mixins/_typography.js +27 -19
  168. package/lib/services/color/eui_palettes.js +24 -14
  169. package/lib/services/color/index.js +14 -0
  170. package/lib/services/hooks/index.js +11 -0
  171. package/lib/services/hooks/useDeepEqual.js +30 -0
  172. package/lib/services/index.js +15 -1
  173. package/lib/services/theme/index.js +6 -0
  174. package/lib/services/theme/style_memoization.js +49 -16
  175. package/lib/themes/amsterdam/global_styling/mixins/button.js +49 -25
  176. package/optimize/es/components/breadcrumbs/_breadcrumb_content.js +153 -0
  177. package/optimize/es/components/breadcrumbs/_breadcrumb_content.styles.js +48 -0
  178. package/optimize/es/components/breadcrumbs/breadcrumb.js +10 -109
  179. package/optimize/es/components/breadcrumbs/breadcrumb.styles.js +5 -27
  180. package/optimize/es/components/breadcrumbs/breadcrumbs.js +4 -4
  181. package/optimize/es/components/breadcrumbs/types.js +1 -0
  182. package/optimize/es/components/button/button_display/_button_display.js +2 -3
  183. package/optimize/es/components/button/button_empty/button_empty.js +2 -3
  184. package/optimize/es/components/button/button_group/button_group.js +5 -7
  185. package/optimize/es/components/button/button_group/button_group.styles.js +11 -14
  186. package/optimize/es/components/button/button_group/button_group_button.js +36 -4
  187. package/optimize/es/components/button/button_group/button_group_button.styles.js +39 -3
  188. package/optimize/es/components/button/button_icon/button_icon.js +4 -5
  189. package/optimize/es/components/button/button_icon/button_icon.styles.js +8 -3
  190. package/optimize/es/components/datagrid/body/cell/data_grid_cell.js +83 -56
  191. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  192. package/optimize/es/components/datagrid/body/cell/data_grid_cell_popover.js +64 -56
  193. package/optimize/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  194. package/optimize/es/components/datagrid/body/cell/index.js +1 -1
  195. package/optimize/es/components/datagrid/body/data_grid_body_custom.js +40 -35
  196. package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +71 -49
  197. package/optimize/es/components/datagrid/body/data_grid_row_manager.js +7 -5
  198. package/optimize/es/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  199. package/optimize/es/components/datagrid/body/header/data_grid_control_header_cell.js +4 -3
  200. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +65 -49
  201. package/optimize/es/components/datagrid/body/header/data_grid_header_row.js +15 -13
  202. package/optimize/es/components/datagrid/body/header/use_data_grid_header.js +7 -6
  203. package/optimize/es/components/datagrid/controls/column_selector.js +126 -123
  204. package/optimize/es/components/datagrid/controls/column_sorting.js +121 -103
  205. package/optimize/es/components/datagrid/controls/column_sorting_draggable.js +24 -22
  206. package/optimize/es/components/datagrid/controls/display_selector.js +109 -107
  207. package/optimize/es/components/datagrid/data_grid.a11y.js +13 -12
  208. package/optimize/es/components/datagrid/data_grid.js +47 -22
  209. package/optimize/es/components/datagrid/utils/col_widths.js +9 -5
  210. package/optimize/es/components/datagrid/utils/focus.js +10 -8
  211. package/optimize/es/components/datagrid/utils/grid_height_width.js +31 -30
  212. package/optimize/es/components/datagrid/utils/ref.js +1 -1
  213. package/optimize/es/components/datagrid/utils/row_heights.js +2 -2
  214. package/optimize/es/components/datagrid/utils/sorting.js +29 -27
  215. package/optimize/es/components/date_picker/super_date_picker/super_update_button.js +49 -29
  216. package/optimize/es/components/facet/facet_button.styles.js +1 -2
  217. package/optimize/es/components/flex/flex_grid.js +19 -8
  218. package/optimize/es/components/flex/flex_grid.styles.js +13 -6
  219. package/optimize/es/components/flex/flex_group.js +9 -10
  220. package/optimize/es/components/flex/flex_item.js +9 -11
  221. package/optimize/es/components/flex/flex_item.styles.js +107 -122
  222. package/optimize/es/components/flyout/flyout.js +16 -18
  223. package/optimize/es/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  224. package/optimize/es/components/icon/icon.js +13 -16
  225. package/optimize/es/components/icon/icon.styles.js +6 -9
  226. package/optimize/es/components/link/external_link_icon.js +11 -8
  227. package/optimize/es/components/link/link.js +2 -3
  228. package/optimize/es/components/link/link.styles.js +4 -10
  229. package/optimize/es/components/modal/confirm_modal.js +2 -1
  230. package/optimize/es/components/modal/modal.js +6 -2
  231. package/optimize/es/components/observer/resize_observer/resize_observer.js +15 -24
  232. package/optimize/es/components/progress/progress.styles.js +2 -2
  233. package/optimize/es/components/skeleton/skeleton_circle.js +2 -3
  234. package/optimize/es/components/skeleton/skeleton_rectangle.js +2 -3
  235. package/optimize/es/components/skeleton/skeleton_text.js +16 -12
  236. package/optimize/es/components/skeleton/skeleton_title.js +2 -3
  237. package/optimize/es/components/spacer/spacer.js +2 -3
  238. package/optimize/es/components/text/text.js +2 -3
  239. package/optimize/es/components/text/text_align.js +1 -2
  240. package/optimize/es/components/text/text_align.styles.js +5 -7
  241. package/optimize/es/components/text/text_color.js +2 -3
  242. package/optimize/es/components/title/title.js +2 -3
  243. package/optimize/es/components/title/title.styles.js +0 -7
  244. package/optimize/es/components/toast/global_toast_list.js +70 -73
  245. package/optimize/es/components/toast/toast.js +27 -42
  246. package/optimize/es/components/toast/toast.styles.js +2 -17
  247. package/optimize/es/global_styling/mixins/_typography.js +14 -6
  248. package/optimize/es/services/color/eui_palettes.js +21 -13
  249. package/optimize/es/services/color/index.js +1 -1
  250. package/optimize/es/services/hooks/index.js +1 -0
  251. package/optimize/es/services/hooks/useDeepEqual.js +23 -0
  252. package/optimize/es/services/index.js +1 -1
  253. package/optimize/es/services/theme/index.js +1 -1
  254. package/optimize/es/services/theme/style_memoization.js +47 -14
  255. package/optimize/es/themes/amsterdam/global_styling/mixins/button.js +47 -24
  256. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.js +163 -0
  257. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  258. package/optimize/lib/components/breadcrumbs/breadcrumb.js +10 -112
  259. package/optimize/lib/components/breadcrumbs/breadcrumb.styles.js +5 -29
  260. package/optimize/lib/components/breadcrumbs/breadcrumbs.js +3 -3
  261. package/optimize/lib/components/breadcrumbs/types.js +5 -0
  262. package/optimize/lib/components/button/button_display/_button_display.js +1 -2
  263. package/optimize/lib/components/button/button_empty/button_empty.js +1 -2
  264. package/optimize/lib/components/button/button_group/button_group.js +4 -6
  265. package/optimize/lib/components/button/button_group/button_group.styles.js +11 -14
  266. package/optimize/lib/components/button/button_group/button_group_button.js +37 -5
  267. package/optimize/lib/components/button/button_group/button_group_button.styles.js +45 -11
  268. package/optimize/lib/components/button/button_icon/button_icon.js +3 -4
  269. package/optimize/lib/components/button/button_icon/button_icon.styles.js +8 -2
  270. package/optimize/lib/components/datagrid/body/cell/data_grid_cell.js +81 -55
  271. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  272. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  273. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  274. package/optimize/lib/components/datagrid/body/cell/index.js +2 -2
  275. package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +39 -34
  276. package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +72 -50
  277. package/optimize/lib/components/datagrid/body/data_grid_row_manager.js +6 -4
  278. package/optimize/lib/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  279. package/optimize/lib/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  280. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +65 -49
  281. package/optimize/lib/components/datagrid/body/header/data_grid_header_row.js +14 -12
  282. package/optimize/lib/components/datagrid/body/header/use_data_grid_header.js +7 -6
  283. package/optimize/lib/components/datagrid/controls/column_selector.js +126 -123
  284. package/optimize/lib/components/datagrid/controls/column_sorting.js +125 -107
  285. package/optimize/lib/components/datagrid/controls/column_sorting_draggable.js +27 -22
  286. package/optimize/lib/components/datagrid/controls/display_selector.js +109 -107
  287. package/optimize/lib/components/datagrid/data_grid.a11y.js +13 -12
  288. package/optimize/lib/components/datagrid/data_grid.js +45 -20
  289. package/optimize/lib/components/datagrid/utils/col_widths.js +9 -5
  290. package/optimize/lib/components/datagrid/utils/focus.js +10 -8
  291. package/optimize/lib/components/datagrid/utils/grid_height_width.js +29 -28
  292. package/optimize/lib/components/datagrid/utils/ref.js +1 -1
  293. package/optimize/lib/components/datagrid/utils/row_heights.js +1 -1
  294. package/optimize/lib/components/datagrid/utils/sorting.js +31 -29
  295. package/optimize/lib/components/date_picker/super_date_picker/super_update_button.js +49 -29
  296. package/optimize/lib/components/facet/facet_button.styles.js +1 -2
  297. package/optimize/lib/components/flex/flex_grid.js +21 -7
  298. package/optimize/lib/components/flex/flex_grid.styles.js +13 -6
  299. package/optimize/lib/components/flex/flex_group.js +9 -9
  300. package/optimize/lib/components/flex/flex_item.js +13 -13
  301. package/optimize/lib/components/flex/flex_item.styles.js +107 -122
  302. package/optimize/lib/components/flyout/flyout.js +16 -18
  303. package/optimize/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  304. package/optimize/lib/components/icon/icon.js +12 -15
  305. package/optimize/lib/components/icon/icon.styles.js +5 -8
  306. package/optimize/lib/components/link/external_link_icon.js +10 -7
  307. package/optimize/lib/components/link/link.js +1 -2
  308. package/optimize/lib/components/link/link.styles.js +6 -14
  309. package/optimize/lib/components/modal/confirm_modal.js +2 -1
  310. package/optimize/lib/components/modal/modal.js +6 -2
  311. package/optimize/lib/components/observer/resize_observer/resize_observer.js +15 -24
  312. package/optimize/lib/components/progress/progress.styles.js +1 -1
  313. package/optimize/lib/components/skeleton/skeleton_circle.js +1 -2
  314. package/optimize/lib/components/skeleton/skeleton_rectangle.js +1 -2
  315. package/optimize/lib/components/skeleton/skeleton_text.js +18 -11
  316. package/optimize/lib/components/skeleton/skeleton_title.js +1 -2
  317. package/optimize/lib/components/spacer/spacer.js +1 -2
  318. package/optimize/lib/components/text/text.js +1 -2
  319. package/optimize/lib/components/text/text_align.js +1 -2
  320. package/optimize/lib/components/text/text_align.styles.js +5 -7
  321. package/optimize/lib/components/text/text_color.js +1 -2
  322. package/optimize/lib/components/title/title.js +1 -2
  323. package/optimize/lib/components/title/title.styles.js +2 -10
  324. package/optimize/lib/components/toast/global_toast_list.js +68 -71
  325. package/optimize/lib/components/toast/toast.js +25 -40
  326. package/optimize/lib/components/toast/toast.styles.js +11 -25
  327. package/optimize/lib/global_styling/mixins/_typography.js +25 -19
  328. package/optimize/lib/services/color/eui_palettes.js +24 -14
  329. package/optimize/lib/services/color/index.js +14 -0
  330. package/optimize/lib/services/hooks/index.js +11 -0
  331. package/optimize/lib/services/hooks/useDeepEqual.js +30 -0
  332. package/optimize/lib/services/index.js +15 -1
  333. package/optimize/lib/services/theme/index.js +6 -0
  334. package/optimize/lib/services/theme/style_memoization.js +49 -16
  335. package/optimize/lib/themes/amsterdam/global_styling/mixins/button.js +49 -26
  336. package/package.json +3 -3
  337. package/src/components/datagrid/_data_grid_data_row.scss +4 -0
  338. package/test-env/components/breadcrumbs/_breadcrumb_content.js +363 -0
  339. package/test-env/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  340. package/test-env/components/breadcrumbs/breadcrumb.js +11 -323
  341. package/test-env/components/breadcrumbs/breadcrumb.styles.js +5 -29
  342. package/test-env/components/breadcrumbs/breadcrumbs.js +7 -5
  343. package/test-env/components/breadcrumbs/types.js +5 -0
  344. package/test-env/components/button/button_display/_button_display.js +1 -2
  345. package/test-env/components/button/button_empty/button_empty.js +1 -2
  346. package/test-env/components/button/button_group/button_group.js +18 -6
  347. package/test-env/components/button/button_group/button_group.styles.js +11 -14
  348. package/test-env/components/button/button_group/button_group_button.js +56 -5
  349. package/test-env/components/button/button_group/button_group_button.styles.js +45 -11
  350. package/test-env/components/button/button_icon/button_icon.js +3 -4
  351. package/test-env/components/button/button_icon/button_icon.styles.js +8 -2
  352. package/test-env/components/datagrid/body/cell/data_grid_cell.js +100 -58
  353. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  354. package/test-env/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  355. package/test-env/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  356. package/test-env/components/datagrid/body/cell/index.js +2 -2
  357. package/test-env/components/datagrid/body/data_grid_body.js +14 -0
  358. package/test-env/components/datagrid/body/data_grid_body_custom.js +53 -34
  359. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +86 -55
  360. package/test-env/components/datagrid/body/data_grid_row_manager.js +6 -4
  361. package/test-env/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  362. package/test-env/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  363. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +72 -52
  364. package/test-env/components/datagrid/body/header/data_grid_header_row.js +14 -550
  365. package/test-env/components/datagrid/body/header/use_data_grid_header.js +7 -6
  366. package/test-env/components/datagrid/controls/column_selector.js +126 -123
  367. package/test-env/components/datagrid/controls/column_sorting.js +607 -106
  368. package/test-env/components/datagrid/controls/column_sorting_draggable.js +27 -22
  369. package/test-env/components/datagrid/controls/display_selector.js +109 -107
  370. package/test-env/components/datagrid/data_grid.a11y.js +13 -12
  371. package/test-env/components/datagrid/data_grid.js +45 -20
  372. package/test-env/components/datagrid/utils/col_widths.js +9 -5
  373. package/test-env/components/datagrid/utils/focus.js +10 -8
  374. package/test-env/components/datagrid/utils/grid_height_width.js +29 -28
  375. package/test-env/components/datagrid/utils/ref.js +1 -1
  376. package/test-env/components/datagrid/utils/row_heights.js +1 -1
  377. package/test-env/components/datagrid/utils/sorting.js +31 -29
  378. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  379. package/test-env/components/date_picker/super_date_picker/super_update_button.js +57 -29
  380. package/test-env/components/facet/facet_button.styles.js +1 -2
  381. package/test-env/components/flex/flex_grid.js +21 -7
  382. package/test-env/components/flex/flex_grid.styles.js +13 -6
  383. package/test-env/components/flex/flex_group.js +10 -10
  384. package/test-env/components/flex/flex_item.js +13 -13
  385. package/test-env/components/flex/flex_item.styles.js +107 -122
  386. package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.js +7 -7
  387. package/test-env/components/icon/icon.styles.js +5 -8
  388. package/test-env/components/link/external_link_icon.js +10 -7
  389. package/test-env/components/link/link.js +1 -2
  390. package/test-env/components/link/link.styles.js +6 -14
  391. package/test-env/components/modal/confirm_modal.js +2 -1
  392. package/test-env/components/modal/modal.js +12 -3
  393. package/test-env/components/page/page_header/page_header_content.js +4 -2
  394. package/test-env/components/progress/progress.styles.js +1 -1
  395. package/test-env/components/skeleton/skeleton_circle.js +1 -2
  396. package/test-env/components/skeleton/skeleton_rectangle.js +1 -2
  397. package/test-env/components/skeleton/skeleton_text.js +18 -11
  398. package/test-env/components/skeleton/skeleton_title.js +1 -2
  399. package/test-env/components/spacer/spacer.js +1 -2
  400. package/test-env/components/text/text.js +1 -2
  401. package/test-env/components/text/text_align.js +1 -2
  402. package/test-env/components/text/text_align.styles.js +5 -7
  403. package/test-env/components/text/text_color.js +1 -2
  404. package/test-env/components/title/title.js +1 -2
  405. package/test-env/components/title/title.styles.js +2 -10
  406. package/test-env/components/toast/global_toast_list.js +68 -71
  407. package/test-env/components/toast/toast.js +25 -40
  408. package/test-env/components/toast/toast.styles.js +11 -25
  409. package/test-env/global_styling/mixins/_typography.js +25 -19
  410. package/test-env/services/color/eui_palettes.js +24 -14
  411. package/test-env/services/color/index.js +14 -0
  412. package/test-env/services/hooks/index.js +11 -0
  413. package/test-env/services/hooks/useDeepEqual.js +30 -0
  414. package/test-env/services/index.js +15 -1
  415. package/test-env/services/theme/index.js +6 -0
  416. package/test-env/services/theme/style_memoization.js +49 -16
  417. package/test-env/themes/amsterdam/global_styling/mixins/button.js +49 -26
  418. package/src/themes/charts/theme.scss +0 -5
@@ -11,7 +11,7 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
11
11
  */
12
12
 
13
13
  import classnames from 'classnames';
14
- import React, { useContext, useState, useRef, useCallback, useMemo } from 'react';
14
+ import React, { useContext, useState, useRef, useCallback, useMemo, memo } from 'react';
15
15
  import { tabbable } from 'tabbable';
16
16
  import { keys } from '../../../../services';
17
17
  import { useGeneratedHtmlId } from '../../../../services/accessibility';
@@ -20,13 +20,21 @@ import { EuiI18n } from '../../../i18n';
20
20
  import { EuiIcon } from '../../../icon';
21
21
  import { EuiListGroup } from '../../../list_group';
22
22
  import { EuiPopover } from '../../../popover';
23
- import { DataGridSortingContext } from '../../utils/sorting';
24
23
  import { DataGridFocusContext } from '../../utils/focus';
25
24
  import { getColumnActions } from './column_actions';
26
25
  import { EuiDataGridColumnResizer } from './data_grid_column_resizer';
27
26
  import { EuiDataGridHeaderCellWrapper } from './data_grid_header_cell_wrapper';
28
27
  import { jsx as ___EmotionJSX } from "@emotion/react";
29
- var _ref2 = process.env.NODE_ENV === "production" ? {
28
+ var CellContent = function CellContent(_ref) {
29
+ var children = _ref.children,
30
+ title = _ref.title,
31
+ arrow = _ref.arrow;
32
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX("div", {
33
+ title: title,
34
+ className: "euiDataGridHeaderCell__content"
35
+ }, children), arrow);
36
+ };
37
+ var _ref3 = process.env.NODE_ENV === "production" ? {
30
38
  name: "mc0thx-EuiDataGridHeaderCell",
31
39
  styles: "margin-inline-start:auto;label:EuiDataGridHeaderCell;"
32
40
  } : {
@@ -34,18 +42,19 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
34
42
  styles: "margin-inline-start:auto;label:EuiDataGridHeaderCell;",
35
43
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
36
44
  };
37
- export var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
45
+ export var EuiDataGridHeaderCell = /*#__PURE__*/memo(function (_ref2) {
38
46
  var _classnames;
39
- var column = _ref.column,
40
- index = _ref.index,
41
- columns = _ref.columns,
42
- columnWidths = _ref.columnWidths,
43
- schema = _ref.schema,
44
- schemaDetectors = _ref.schemaDetectors,
45
- defaultColumnWidth = _ref.defaultColumnWidth,
46
- setColumnWidth = _ref.setColumnWidth,
47
- setVisibleColumns = _ref.setVisibleColumns,
48
- switchColumnPos = _ref.switchColumnPos;
47
+ var index = _ref2.index,
48
+ column = _ref2.column,
49
+ columns = _ref2.columns,
50
+ columnWidths = _ref2.columnWidths,
51
+ defaultColumnWidth = _ref2.defaultColumnWidth,
52
+ setColumnWidth = _ref2.setColumnWidth,
53
+ setVisibleColumns = _ref2.setVisibleColumns,
54
+ switchColumnPos = _ref2.switchColumnPos,
55
+ sorting = _ref2.sorting,
56
+ schema = _ref2.schema,
57
+ schemaDetectors = _ref2.schemaDetectors;
49
58
  var id = column.id,
50
59
  display = column.display,
51
60
  displayAsText = column.displayAsText,
@@ -55,25 +64,25 @@ export var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
55
64
  var _useContext = useContext(DataGridFocusContext),
56
65
  setFocusedCell = _useContext.setFocusedCell,
57
66
  focusFirstVisibleInteractiveCell = _useContext.focusFirstVisibleInteractiveCell;
58
- var _useContext2 = useContext(DataGridSortingContext),
59
- sorting = _useContext2.sorting;
60
67
  var _useState = useState(false),
61
68
  _useState2 = _slicedToArray(_useState, 2),
62
69
  isPopoverOpen = _useState2[0],
63
70
  setIsPopoverOpen = _useState2[1];
64
71
  var popoverArrowNavigationProps = usePopoverArrowNavigation();
65
- var columnActions = getColumnActions({
66
- column: column,
67
- columns: columns,
68
- schema: schema,
69
- schemaDetectors: schemaDetectors,
70
- setVisibleColumns: setVisibleColumns,
71
- focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
72
- setIsPopoverOpen: setIsPopoverOpen,
73
- sorting: sorting,
74
- switchColumnPos: switchColumnPos,
75
- setFocusedCell: setFocusedCell
76
- });
72
+ var columnActions = useMemo(function () {
73
+ return 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
+ });
85
+ }, [column, columns, schema, schemaDetectors, setVisibleColumns, focusFirstVisibleInteractiveCell, setIsPopoverOpen, sorting, switchColumnPos, setFocusedCell]);
77
86
  var showColumnActions = columnActions && columnActions.length > 0;
78
87
  var actionsButtonRef = useRef(null);
79
88
  var focusActionsButton = useCallback(function () {
@@ -100,11 +109,9 @@ export var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
100
109
  prefix: 'euiDataGridCellHeader',
101
110
  suffix: 'actions'
102
111
  });
103
- var cellContent = ___EmotionJSX(React.Fragment, null, ___EmotionJSX("div", {
104
- title: displayAsText || id,
105
- className: "euiDataGridHeaderCell__content"
106
- }, display || displayAsText || id), sortingArrow);
107
112
  var classes = classnames((_classnames = {}, _defineProperty(_classnames, "euiDataGridHeaderCell--".concat(columnType), columnType), _defineProperty(_classnames, 'euiDataGridHeaderCell--hasColumnActions', showColumnActions), _defineProperty(_classnames, 'euiDataGridHeaderCell--isActionsPopoverOpen', isPopoverOpen), _classnames), displayHeaderCellProps === null || displayHeaderCellProps === void 0 ? void 0 : displayHeaderCellProps.className);
113
+ var title = displayAsText || id;
114
+ var children = display || displayAsText || id;
108
115
  return ___EmotionJSX(EuiDataGridHeaderCellWrapper, _extends({}, displayHeaderCellProps, {
109
116
  className: classes,
110
117
  id: id,
@@ -118,7 +125,10 @@ export var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
118
125
  columnId: id,
119
126
  columnWidth: width,
120
127
  setColumnWidth: setColumnWidth
121
- }) : null, !showColumnActions ? ___EmotionJSX(React.Fragment, null, cellContent, sortingScreenReaderText && ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("p", null, sortingScreenReaderText))) : ___EmotionJSX(React.Fragment, null, ___EmotionJSX("button", {
128
+ }) : null, !showColumnActions ? ___EmotionJSX(React.Fragment, null, ___EmotionJSX(CellContent, {
129
+ title: title,
130
+ arrow: sortingArrow
131
+ }, children), sortingScreenReaderText && ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("p", null, sortingScreenReaderText))) : ___EmotionJSX(React.Fragment, null, ___EmotionJSX("button", {
122
132
  className: "euiDataGridHeaderCell__button",
123
133
  onClick: function onClick() {
124
134
  return setIsPopoverOpen(function (isPopoverOpen) {
@@ -134,12 +144,15 @@ export var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
134
144
  "aria-describedby": "".concat(sortingAriaId, " ").concat(actionsAriaId),
135
145
  ref: actionsButtonRef,
136
146
  "data-test-subj": "dataGridHeaderCellActionButton-".concat(id)
137
- }, cellContent, ___EmotionJSX(EuiPopover, _extends({
147
+ }, ___EmotionJSX(CellContent, {
148
+ title: title,
149
+ arrow: sortingArrow
150
+ }, children), ___EmotionJSX(EuiPopover, _extends({
138
151
  display: "block",
139
152
  panelPaddingSize: "none",
140
153
  offset: 7,
141
154
  anchorPosition: "downRight",
142
- css: _ref2 // Align to right
155
+ css: _ref3 // Align to right
143
156
  ,
144
157
  focusTrapProps: {
145
158
  // We need to override the default EuiPopover `onClickOutside` since the anchor is separate from the actual button
@@ -175,16 +188,17 @@ export var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
175
188
  token: "euiDataGridHeaderCell.headerActions",
176
189
  default: "Click to view column header actions"
177
190
  }))));
178
- };
191
+ });
192
+ EuiDataGridHeaderCell.displayName = 'EuiDataGridHeaderCell';
179
193
 
180
194
  /**
181
195
  * Column sorting utility helpers
182
196
  */
183
- export var useSortingUtils = function useSortingUtils(_ref3) {
197
+ export var useSortingUtils = function useSortingUtils(_ref4) {
184
198
  var _sorting$columns;
185
- var sorting = _ref3.sorting,
186
- id = _ref3.id,
187
- showColumnActions = _ref3.showColumnActions;
199
+ var sorting = _ref4.sorting,
200
+ id = _ref4.id,
201
+ showColumnActions = _ref4.showColumnActions;
188
202
  var sortedColumn = useMemo(function () {
189
203
  return sorting === null || sorting === void 0 ? void 0 : sorting.columns.find(function (col) {
190
204
  return col.id === id;
@@ -196,12 +210,14 @@ export var useSortingUtils = function useSortingUtils(_ref3) {
196
210
  /**
197
211
  * Arrow icon
198
212
  */
199
- var sortingArrow = isColumnSorted ? ___EmotionJSX(EuiIcon, {
200
- type: sortedColumn.direction === 'asc' ? 'sortUp' : 'sortDown',
201
- color: "text",
202
- className: "euiDataGridHeaderCell__sortingArrow",
203
- "data-test-subj": "dataGridHeaderCellSortingIcon-".concat(id)
204
- }) : null;
213
+ var sortingArrow = useMemo(function () {
214
+ return isColumnSorted ? ___EmotionJSX(EuiIcon, {
215
+ type: sortedColumn.direction === 'asc' ? 'sortUp' : 'sortDown',
216
+ color: "text",
217
+ className: "euiDataGridHeaderCell__sortingArrow",
218
+ "data-test-subj": "dataGridHeaderCellSortingIcon-".concat(id)
219
+ }) : null;
220
+ }, [id, isColumnSorted, sortedColumn]);
205
221
 
206
222
  /**
207
223
  * aria-sort attribute - should only be used when a single column is being sorted
@@ -218,9 +234,9 @@ export var useSortingUtils = function useSortingUtils(_ref3) {
218
234
  var _sorting$columns2;
219
235
  if (!isColumnSorted) return null;
220
236
  if (!showColumnActions && hasOnlyOneSort) return null; // in this scenario, the `aria-sort` attribute will be used by screen readers
221
- return ___EmotionJSX(React.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) {
222
- var columnId = _ref4.id,
223
- direction = _ref4.direction;
237
+ return ___EmotionJSX(React.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) {
238
+ var columnId = _ref5.id,
239
+ direction = _ref5.direction;
224
240
  if (hasOnlyOneSort) {
225
241
  if (direction === 'asc') {
226
242
  return ___EmotionJSX(EuiI18n, {
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "schema", "schemaDetectors", "columnWidths", "defaultColumnWidth", "className", "setColumnWidth", "setVisibleColumns", "switchColumnPos", "data-test-subj"];
3
+ var _excluded = ["className", "data-test-subj", "leadingControlColumns", "trailingControlColumns", "columns", "columnWidths", "defaultColumnWidth", "setColumnWidth", "setVisibleColumns", "switchColumnPos", "sorting", "schema", "schemaDetectors"];
4
4
  /*
5
5
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
6
6
  * or more contributor license agreements. Licensed under the Elastic License
@@ -10,26 +10,27 @@ var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "
10
10
  */
11
11
 
12
12
  import classnames from 'classnames';
13
- import React, { forwardRef } from 'react';
13
+ import React, { forwardRef, memo } from 'react';
14
14
  import { EuiDataGridControlHeaderCell } from './data_grid_control_header_cell';
15
15
  import { EuiDataGridHeaderCell } from './data_grid_header_cell';
16
16
  import { emptyControlColumns } from '../../data_grid_types';
17
17
  import { jsx as ___EmotionJSX } from "@emotion/react";
18
- var EuiDataGridHeaderRow = /*#__PURE__*/forwardRef(function (props, ref) {
19
- var _props$leadingControl = props.leadingControlColumns,
18
+ var EuiDataGridHeaderRow = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref) {
19
+ var className = props.className,
20
+ _dataTestSubj = props['data-test-subj'],
21
+ _props$leadingControl = props.leadingControlColumns,
20
22
  leadingControlColumns = _props$leadingControl === void 0 ? emptyControlColumns : _props$leadingControl,
21
23
  _props$trailingContro = props.trailingControlColumns,
22
24
  trailingControlColumns = _props$trailingContro === void 0 ? emptyControlColumns : _props$trailingContro,
23
25
  columns = props.columns,
24
- schema = props.schema,
25
- schemaDetectors = props.schemaDetectors,
26
26
  columnWidths = props.columnWidths,
27
27
  defaultColumnWidth = props.defaultColumnWidth,
28
- className = props.className,
29
28
  setColumnWidth = props.setColumnWidth,
30
29
  setVisibleColumns = props.setVisibleColumns,
31
30
  switchColumnPos = props.switchColumnPos,
32
- _dataTestSubj = props['data-test-subj'],
31
+ sorting = props.sorting,
32
+ schema = props.schema,
33
+ schemaDetectors = props.schemaDetectors,
33
34
  rest = _objectWithoutProperties(props, _excluded);
34
35
  var classes = classnames('euiDataGridHeader', className);
35
36
  var dataTestSubj = classnames('dataGridHeader', _dataTestSubj);
@@ -47,16 +48,17 @@ var EuiDataGridHeaderRow = /*#__PURE__*/forwardRef(function (props, ref) {
47
48
  }), columns.map(function (column, index) {
48
49
  return ___EmotionJSX(EuiDataGridHeaderCell, {
49
50
  key: column.id,
51
+ index: index + leadingControlColumns.length,
50
52
  column: column,
51
53
  columns: columns,
52
- index: index + leadingControlColumns.length,
53
54
  columnWidths: columnWidths,
54
- schema: schema,
55
- schemaDetectors: schemaDetectors,
55
+ defaultColumnWidth: defaultColumnWidth,
56
56
  setColumnWidth: setColumnWidth,
57
57
  setVisibleColumns: setVisibleColumns,
58
58
  switchColumnPos: switchColumnPos,
59
- defaultColumnWidth: defaultColumnWidth
59
+ sorting: sorting,
60
+ schema: schema,
61
+ schemaDetectors: schemaDetectors
60
62
  });
61
63
  }), trailingControlColumns.map(function (controlColumn, index) {
62
64
  return ___EmotionJSX(EuiDataGridControlHeaderCell, {
@@ -65,6 +67,6 @@ var EuiDataGridHeaderRow = /*#__PURE__*/forwardRef(function (props, ref) {
65
67
  controlColumn: controlColumn
66
68
  });
67
69
  }));
68
- });
70
+ }));
69
71
  EuiDataGridHeaderRow.displayName = 'EuiDataGridHeaderRow';
70
72
  export { EuiDataGridHeaderRow };
@@ -27,10 +27,11 @@ export var useDataGridHeader = function useDataGridHeader(props) {
27
27
  return ___EmotionJSX(EuiDataGridHeaderRow, _extends({
28
28
  ref: setHeaderRowRef
29
29
  }, props));
30
- }, Object.values(props)); // eslint-disable-line react-hooks/exhaustive-deps
31
-
32
- return {
33
- headerRow: headerRow,
34
- headerRowHeight: headerRowHeight
35
- };
30
+ }, [props]);
31
+ return useMemo(function () {
32
+ return {
33
+ headerRow: headerRow,
34
+ headerRowHeight: headerRowHeight
35
+ };
36
+ }, [headerRow, headerRowHeight]);
36
37
  };
@@ -71,10 +71,6 @@ export var useDataGridColumnSelector = function useDataGridColumnSelector(availa
71
71
  }, [sortedColumns, columnSearchText, displayValues]);
72
72
  var isDragEnabled = allowColumnReorder && columnSearchText.length === 0; // only allow drag-and-drop when not filtering columns
73
73
  var dragHandleAriaLabel = useEuiI18n('euiColumnSelector.dragHandleAriaLabel', 'Drag handle');
74
- var buttonText = ___EmotionJSX(EuiI18n, {
75
- token: "euiColumnSelector.button",
76
- default: "Columns"
77
- });
78
74
  var orderedVisibleColumns = useMemo(function () {
79
75
  return visibleColumns.map(function (columnId) {
80
76
  return availableColumns.find(function (_ref3) {
@@ -86,127 +82,132 @@ export var useDataGridColumnSelector = function useDataGridColumnSelector(availa
86
82
  return column != null;
87
83
  });
88
84
  }, [availableColumns, visibleColumns]);
89
- var columnSelector = allowColumnHiding || allowColumnReorder ? ___EmotionJSX(EuiPopover, {
90
- "data-test-subj": "dataGridColumnSelectorPopover",
91
- isOpen: isOpen,
92
- closePopover: function closePopover() {
93
- return setIsOpen(false);
94
- },
95
- anchorPosition: "downLeft",
96
- panelPaddingSize: "s",
97
- hasDragDrop: true,
98
- button: ___EmotionJSX(EuiDataGridToolbarControl, {
99
- badgeContent: numberOfHiddenFields > 0 ? "".concat(orderedVisibleColumns.length, "/").concat(availableColumns.length) : availableColumns.length,
100
- iconType: "tableDensityNormal",
101
- "data-test-subj": "dataGridColumnSelectorButton",
102
- onClick: function onClick() {
103
- return setIsOpen(!isOpen);
104
- }
105
- }, buttonText)
106
- }, allowColumnHiding && ___EmotionJSX(EuiPopoverTitle, null, ___EmotionJSX(EuiI18n, {
107
- tokens: ['euiColumnSelector.search', 'euiColumnSelector.searchcolumns'],
108
- defaults: ['Search', 'Search columns']
109
- }, function (_ref4) {
110
- var _ref5 = _slicedToArray(_ref4, 2),
111
- search = _ref5[0],
112
- searchcolumns = _ref5[1];
113
- return ___EmotionJSX(EuiFieldText, {
114
- compressed: true,
115
- placeholder: search,
116
- "aria-label": searchcolumns,
117
- value: columnSearchText,
118
- onChange: function onChange(e) {
119
- return setColumnSearchText(e.currentTarget.value);
85
+ var columnSelector = useMemo(function () {
86
+ return allowColumnHiding || allowColumnReorder ? ___EmotionJSX(EuiPopover, {
87
+ "data-test-subj": "dataGridColumnSelectorPopover",
88
+ isOpen: isOpen,
89
+ closePopover: function closePopover() {
90
+ return setIsOpen(false);
120
91
  },
121
- "data-test-subj": "dataGridColumnSelectorSearch"
122
- });
123
- })), ___EmotionJSX(EuiDragDropContext, {
124
- onDragEnd: onDragEnd
125
- }, ___EmotionJSX(EuiDroppable, {
126
- droppableId: "columnOrder",
127
- isDropDisabled: !isDragEnabled,
128
- className: "euiDataGrid__controlScroll"
129
- }, ___EmotionJSX(React.Fragment, null, filteredColumns.map(function (id, index) {
130
- return ___EmotionJSX(EuiDraggable, {
131
- key: id,
132
- draggableId: id,
133
- index: index,
134
- isDragDisabled: !isDragEnabled,
135
- hasInteractiveChildren: true,
136
- customDragHandle: true
137
- }, function (provided, state) {
138
- return ___EmotionJSX("div", {
139
- className: classNames('euiDataGridColumnSelector__item', {
140
- 'euiDataGridColumnSelector__item-isDragging': state.isDragging
141
- }),
142
- "data-test-subj": "dataGridColumnSelectorColumnItem-".concat(id)
143
- }, ___EmotionJSX(EuiFlexGroup, {
144
- responsive: false,
145
- gutterSize: "s",
146
- alignItems: "center"
147
- }, allowColumnHiding && ___EmotionJSX(EuiFlexItem, {
148
- grow: false
149
- }, ___EmotionJSX(EuiSwitch, {
150
- name: id,
151
- label: displayValues[id] || id,
152
- showLabel: false,
153
- checked: visibleColumnIds.has(id),
92
+ anchorPosition: "downLeft",
93
+ panelPaddingSize: "s",
94
+ hasDragDrop: true,
95
+ button: ___EmotionJSX(EuiDataGridToolbarControl, {
96
+ badgeContent: numberOfHiddenFields > 0 ? "".concat(orderedVisibleColumns.length, "/").concat(availableColumns.length) : availableColumns.length,
97
+ iconType: "tableDensityNormal",
98
+ "data-test-subj": "dataGridColumnSelectorButton",
99
+ onClick: function onClick() {
100
+ return setIsOpen(!isOpen);
101
+ }
102
+ }, ___EmotionJSX(EuiI18n, {
103
+ token: "euiColumnSelector.button",
104
+ default: "Columns"
105
+ }))
106
+ }, allowColumnHiding && ___EmotionJSX(EuiPopoverTitle, null, ___EmotionJSX(EuiI18n, {
107
+ tokens: ['euiColumnSelector.search', 'euiColumnSelector.searchcolumns'],
108
+ defaults: ['Search', 'Search columns']
109
+ }, function (_ref4) {
110
+ var _ref5 = _slicedToArray(_ref4, 2),
111
+ search = _ref5[0],
112
+ searchcolumns = _ref5[1];
113
+ return ___EmotionJSX(EuiFieldText, {
154
114
  compressed: true,
155
- className: "euiSwitch--mini",
156
- onChange: function onChange(event) {
157
- var checked = event.target.checked;
158
- var nextVisibleColumns = sortedColumns.filter(function (columnId) {
159
- return checked ? visibleColumnIds.has(columnId) || id === columnId : visibleColumnIds.has(columnId) && id !== columnId;
160
- });
161
- setVisibleColumns(nextVisibleColumns);
115
+ placeholder: search,
116
+ "aria-label": searchcolumns,
117
+ value: columnSearchText,
118
+ onChange: function onChange(e) {
119
+ return setColumnSearchText(e.currentTarget.value);
162
120
  },
163
- "data-test-subj": "dataGridColumnSelectorToggleColumnVisibility-".concat(id)
164
- })), ___EmotionJSX(EuiFlexItem
165
- // This extra column name flex item affords the column more grabbable real estate
166
- // for mouse users, while hiding repetition for keyboard/screen reader users
167
- , _extends({}, provided.dragHandleProps, {
168
- "aria-hidden": true,
169
- tabIndex: -1
170
- }), ___EmotionJSX("span", {
171
- className: "euiDataGridColumnSelector__itemLabel"
172
- }, displayValues[id] || id)), isDragEnabled && ___EmotionJSX(EuiFlexItem, _extends({
173
- grow: false
174
- }, provided.dragHandleProps, {
175
- "aria-label": dragHandleAriaLabel
176
- }), ___EmotionJSX(EuiIcon, {
177
- type: "grab",
178
- color: "subdued"
179
- }))));
180
- });
181
- })))), allowColumnHiding && ___EmotionJSX(EuiPopoverFooter, null, ___EmotionJSX(EuiFlexGroup, {
182
- gutterSize: "s",
183
- responsive: false,
184
- justifyContent: "spaceBetween"
185
- }, ___EmotionJSX(EuiFlexItem, {
186
- grow: false
187
- }, ___EmotionJSX(EuiButtonEmpty, {
188
- size: "xs",
189
- flush: "left",
190
- onClick: function onClick() {
191
- return setVisibleColumns(sortedColumns);
192
- },
193
- "data-test-subj": "dataGridColumnSelectorShowAllButton"
194
- }, ___EmotionJSX(EuiI18n, {
195
- token: "euiColumnSelector.selectAll",
196
- default: "Show all"
197
- }))), ___EmotionJSX(EuiFlexItem, {
198
- grow: false
199
- }, ___EmotionJSX(EuiButtonEmpty, {
200
- size: "xs",
201
- flush: "right",
202
- onClick: function onClick() {
203
- return setVisibleColumns([]);
204
- },
205
- "data-test-subj": "dataGridColumnSelectorHideAllButton"
206
- }, ___EmotionJSX(EuiI18n, {
207
- token: "euiColumnSelector.hideAll",
208
- default: "Hide all"
209
- })))))) : null;
121
+ "data-test-subj": "dataGridColumnSelectorSearch"
122
+ });
123
+ })), ___EmotionJSX(EuiDragDropContext, {
124
+ onDragEnd: onDragEnd
125
+ }, ___EmotionJSX(EuiDroppable, {
126
+ droppableId: "columnOrder",
127
+ isDropDisabled: !isDragEnabled,
128
+ className: "euiDataGrid__controlScroll"
129
+ }, ___EmotionJSX(React.Fragment, null, filteredColumns.map(function (id, index) {
130
+ return ___EmotionJSX(EuiDraggable, {
131
+ key: id,
132
+ draggableId: id,
133
+ index: index,
134
+ isDragDisabled: !isDragEnabled,
135
+ hasInteractiveChildren: true,
136
+ customDragHandle: true
137
+ }, function (provided, state) {
138
+ return ___EmotionJSX("div", {
139
+ className: classNames('euiDataGridColumnSelector__item', {
140
+ 'euiDataGridColumnSelector__item-isDragging': state.isDragging
141
+ }),
142
+ "data-test-subj": "dataGridColumnSelectorColumnItem-".concat(id)
143
+ }, ___EmotionJSX(EuiFlexGroup, {
144
+ responsive: false,
145
+ gutterSize: "s",
146
+ alignItems: "center"
147
+ }, allowColumnHiding && ___EmotionJSX(EuiFlexItem, {
148
+ grow: false
149
+ }, ___EmotionJSX(EuiSwitch, {
150
+ name: id,
151
+ label: displayValues[id] || id,
152
+ showLabel: false,
153
+ checked: visibleColumnIds.has(id),
154
+ compressed: true,
155
+ className: "euiSwitch--mini",
156
+ onChange: function onChange(event) {
157
+ var checked = event.target.checked;
158
+ var nextVisibleColumns = sortedColumns.filter(function (columnId) {
159
+ return checked ? visibleColumnIds.has(columnId) || id === columnId : visibleColumnIds.has(columnId) && id !== columnId;
160
+ });
161
+ setVisibleColumns(nextVisibleColumns);
162
+ },
163
+ "data-test-subj": "dataGridColumnSelectorToggleColumnVisibility-".concat(id)
164
+ })), ___EmotionJSX(EuiFlexItem
165
+ // This extra column name flex item affords the column more grabbable real estate
166
+ // for mouse users, while hiding repetition for keyboard/screen reader users
167
+ , _extends({}, provided.dragHandleProps, {
168
+ "aria-hidden": true,
169
+ tabIndex: -1
170
+ }), ___EmotionJSX("span", {
171
+ className: "euiDataGridColumnSelector__itemLabel"
172
+ }, displayValues[id] || id)), isDragEnabled && ___EmotionJSX(EuiFlexItem, _extends({
173
+ grow: false
174
+ }, provided.dragHandleProps, {
175
+ "aria-label": dragHandleAriaLabel
176
+ }), ___EmotionJSX(EuiIcon, {
177
+ type: "grab",
178
+ color: "subdued"
179
+ }))));
180
+ });
181
+ })))), allowColumnHiding && ___EmotionJSX(EuiPopoverFooter, null, ___EmotionJSX(EuiFlexGroup, {
182
+ gutterSize: "s",
183
+ responsive: false,
184
+ justifyContent: "spaceBetween"
185
+ }, ___EmotionJSX(EuiFlexItem, {
186
+ grow: false
187
+ }, ___EmotionJSX(EuiButtonEmpty, {
188
+ size: "xs",
189
+ flush: "left",
190
+ onClick: function onClick() {
191
+ return setVisibleColumns(sortedColumns);
192
+ },
193
+ "data-test-subj": "dataGridColumnSelectorShowAllButton"
194
+ }, ___EmotionJSX(EuiI18n, {
195
+ token: "euiColumnSelector.selectAll",
196
+ default: "Show all"
197
+ }))), ___EmotionJSX(EuiFlexItem, {
198
+ grow: false
199
+ }, ___EmotionJSX(EuiButtonEmpty, {
200
+ size: "xs",
201
+ flush: "right",
202
+ onClick: function onClick() {
203
+ return setVisibleColumns([]);
204
+ },
205
+ "data-test-subj": "dataGridColumnSelectorHideAllButton"
206
+ }, ___EmotionJSX(EuiI18n, {
207
+ token: "euiColumnSelector.hideAll",
208
+ default: "Hide all"
209
+ })))))) : null;
210
+ }, [availableColumns.length, numberOfHiddenFields, orderedVisibleColumns.length, allowColumnHiding, allowColumnReorder, isOpen, columnSearchText, displayValues, visibleColumnIds, sortedColumns, setVisibleColumns, setIsOpen, onDragEnd, isDragEnabled, dragHandleAriaLabel, filteredColumns]);
210
211
 
211
212
  /**
212
213
  * Used for moving columns left/right, available in the headers actions menu
@@ -222,5 +223,7 @@ export var useDataGridColumnSelector = function useDataGridColumnSelector(availa
222
223
  nextSortedColumns.splice(moveToIdx, 0, fromColId);
223
224
  setColumns(nextSortedColumns);
224
225
  }, [setColumns, sortedColumns]);
225
- return [columnSelector, orderedVisibleColumns, setVisibleColumns, switchColumnPos];
226
+ return useMemo(function () {
227
+ return [columnSelector, orderedVisibleColumns, setVisibleColumns, switchColumnPos];
228
+ }, [columnSelector, orderedVisibleColumns, setVisibleColumns, switchColumnPos]);
226
229
  };