@elastic/eui 116.1.0 → 116.2.0-snapshot.1780097782326

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 (445) hide show
  1. package/es/components/avatar/avatar.js +15 -6
  2. package/es/components/badge/badge.js +1 -1
  3. package/es/components/badge/beta_badge/beta_badge.js +1 -1
  4. package/es/components/banner/banner.js +202 -0
  5. package/es/components/banner/banner.styles.js +76 -0
  6. package/es/components/banner/index.js +9 -0
  7. package/es/components/basic_table/basic_table.js +28 -14
  8. package/es/components/basic_table/collapsed_item_actions.js +5 -4
  9. package/es/components/basic_table/default_item_action.js +3 -5
  10. package/es/components/basic_table/in_memory_table.js +4 -4
  11. package/es/components/breadcrumbs/_breadcrumb_content.js +29 -19
  12. package/es/components/button/button_display/_button_display_content.js +1 -1
  13. package/es/components/button/button_empty/button_empty.js +1 -1
  14. package/es/components/button/button_icon/button_icon.js +1 -1
  15. package/es/components/call_out/call_out.js +1 -1
  16. package/es/components/card/card.js +1 -1
  17. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  18. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  19. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  20. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  21. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  22. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  23. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  24. package/es/components/comment_list/comment.js +2 -2
  25. package/es/components/comment_list/comment_event.js +1 -1
  26. package/es/components/comment_list/comment_list.js +2 -2
  27. package/es/components/comment_list/comment_timeline.js +1 -1
  28. package/es/components/context_menu/context_menu_item.js +1 -1
  29. package/es/components/context_menu/context_menu_panel_title.js +0 -12
  30. package/es/components/datagrid/body/cell/data_grid_cell.js +12 -12
  31. package/es/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  32. package/es/components/datagrid/body/cell/data_grid_cell_actions.styles.js +2 -2
  33. package/es/components/datagrid/body/data_grid_body.js +7 -7
  34. package/es/components/datagrid/body/data_grid_body_custom.js +7 -7
  35. package/es/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  36. package/es/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  37. package/es/components/datagrid/controls/column_sorting.js +7 -7
  38. package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
  39. package/es/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  40. package/es/components/datagrid/controls/display_selector.js +2 -1
  41. package/es/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  42. package/es/components/datagrid/utils/in_memory.js +6 -6
  43. package/es/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  44. package/es/components/date_picker/date_picker.js +2 -2
  45. package/es/components/date_picker/date_picker_range.js +1 -1
  46. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  47. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  48. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  49. package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  50. package/es/components/empty_prompt/empty_prompt.js +1 -1
  51. package/es/components/flyout/flyout_menu.js +2 -2
  52. package/es/components/flyout/manager/flyout_child.js +1 -1
  53. package/es/components/flyout/manager/flyout_managed.js +1 -1
  54. package/es/components/form/field_number/field_number.js +2 -2
  55. package/es/components/form/field_password/field_password.js +6 -3
  56. package/es/components/form/field_text/field_text.js +2 -2
  57. package/es/components/form/form_control_button/form_control_button.js +1 -1
  58. package/es/components/form/form_control_layout/append_prepend/form_append_prepend.js +2 -2
  59. package/es/components/form/form_control_layout/form_control_layout.js +2 -2
  60. package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  61. package/es/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  62. package/es/components/form/text_area/text_area.js +2 -2
  63. package/es/components/header/header.a11y.js +1 -1
  64. package/es/components/header/header_links/header_link.js +1 -1
  65. package/es/components/header/header_links/header_links.js +1 -1
  66. package/es/components/header/header_logo/header_logo.js +1 -1
  67. package/es/components/header/header_section/header_section_item_button.js +1 -1
  68. package/es/components/icon/assets/significant_events.js +39 -0
  69. package/es/components/icon/icon.js +1 -1
  70. package/es/components/icon/icon_glyphs.a11y.js +1 -1
  71. package/es/components/icon/icon_map.js +3 -0
  72. package/es/components/index.js +1 -0
  73. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
  74. package/es/components/list_group/list_group.js +2 -2
  75. package/es/components/list_group/list_group_item.js +2 -2
  76. package/es/components/list_group/list_group_item_extra_action.js +1 -1
  77. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  78. package/es/components/list_item_layout/_list_item_layout.styles.js +1 -1
  79. package/es/components/loading/loading_logo.js +1 -1
  80. package/es/components/markdown_editor/markdown_editor.js +1 -1
  81. package/es/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  82. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  83. package/es/components/markdown_editor/markdown_editor_help_button.js +7 -4
  84. package/es/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  85. package/es/components/outside_click_detector/outside_click_detector.js +71 -108
  86. package/es/components/page/page_header/page_header_content.js +1 -1
  87. package/es/components/pagination/pagination_button.js +1 -1
  88. package/es/components/pagination/pagination_button_arrow.js +6 -2
  89. package/es/components/search_bar/search_bar.js +20 -16
  90. package/es/components/search_bar/search_box.js +4 -2
  91. package/es/components/selectable/selectable_list/selectable_list.js +2 -2
  92. package/es/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  93. package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  94. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +3 -2
  95. package/es/components/table/sticky_header/context.js +32 -0
  96. package/es/components/table/sticky_header/index.js +10 -0
  97. package/es/components/table/sticky_header/sticky_header.js +151 -0
  98. package/es/components/table/sticky_header/sticky_header.styles.js +43 -0
  99. package/es/components/table/sticky_scrollbar/index.js +9 -0
  100. package/es/components/table/sticky_scrollbar/sticky_scrollbar.js +141 -0
  101. package/es/components/table/sticky_scrollbar/sticky_scrollbar.styles.js +27 -0
  102. package/es/components/table/store/provider.js +37 -0
  103. package/es/components/table/store/store.js +75 -0
  104. package/es/components/table/table.js +43 -6
  105. package/es/components/table/table.styles.js +4 -4
  106. package/es/components/table/table_header_cell.js +117 -49
  107. package/es/components/table/table_header_cell_checkbox.js +59 -25
  108. package/es/components/text_truncate/text_truncate.js +8 -3
  109. package/es/components/timeline/timeline_item_icon.js +1 -1
  110. package/es/components/toast/global_toast_list.js +1 -1
  111. package/es/components/toast/toast.js +1 -1
  112. package/es/components/tool_tip/icon_tip.js +1 -1
  113. package/es/components/tool_tip/tool_tip.js +1 -1
  114. package/es/components/tool_tip/tool_tip.styles.js +14 -5
  115. package/es/utils/publisher.js +53 -0
  116. package/eui.d.ts +1300 -989
  117. package/i18ntokens.json +2390 -2372
  118. package/lib/components/avatar/avatar.js +15 -6
  119. package/lib/components/badge/badge.js +1 -1
  120. package/lib/components/badge/beta_badge/beta_badge.js +1 -1
  121. package/lib/components/banner/banner.js +211 -0
  122. package/lib/components/banner/banner.styles.js +80 -0
  123. package/lib/components/banner/index.js +12 -0
  124. package/lib/components/basic_table/basic_table.js +28 -14
  125. package/lib/components/basic_table/collapsed_item_actions.js +5 -4
  126. package/lib/components/basic_table/default_item_action.js +3 -5
  127. package/lib/components/basic_table/in_memory_table.js +4 -4
  128. package/lib/components/breadcrumbs/_breadcrumb_content.js +29 -19
  129. package/lib/components/button/button_display/_button_display_content.js +1 -1
  130. package/lib/components/button/button_empty/button_empty.js +1 -1
  131. package/lib/components/button/button_icon/button_icon.js +1 -1
  132. package/lib/components/call_out/call_out.js +1 -1
  133. package/lib/components/card/card.js +1 -1
  134. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  135. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  136. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  137. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  138. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  139. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  140. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  141. package/lib/components/comment_list/comment.js +2 -2
  142. package/lib/components/comment_list/comment_event.js +1 -1
  143. package/lib/components/comment_list/comment_list.js +2 -2
  144. package/lib/components/comment_list/comment_timeline.js +1 -1
  145. package/lib/components/context_menu/context_menu_item.js +1 -1
  146. package/lib/components/context_menu/context_menu_panel_title.js +0 -12
  147. package/lib/components/datagrid/body/cell/data_grid_cell.js +12 -12
  148. package/lib/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  149. package/lib/components/datagrid/body/cell/data_grid_cell_actions.styles.js +1 -1
  150. package/lib/components/datagrid/body/data_grid_body.js +7 -7
  151. package/lib/components/datagrid/body/data_grid_body_custom.js +7 -7
  152. package/lib/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  153. package/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  154. package/lib/components/datagrid/controls/column_sorting.js +7 -7
  155. package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
  156. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  157. package/lib/components/datagrid/controls/display_selector.js +2 -1
  158. package/lib/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  159. package/lib/components/datagrid/utils/in_memory.js +6 -6
  160. package/lib/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  161. package/lib/components/date_picker/date_picker.js +2 -2
  162. package/lib/components/date_picker/date_picker_range.js +1 -1
  163. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  164. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  165. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  166. package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  167. package/lib/components/empty_prompt/empty_prompt.js +1 -1
  168. package/lib/components/flyout/flyout_menu.js +2 -2
  169. package/lib/components/flyout/manager/flyout_child.js +1 -1
  170. package/lib/components/form/field_number/field_number.js +2 -2
  171. package/lib/components/form/field_password/field_password.js +6 -3
  172. package/lib/components/form/field_text/field_text.js +2 -2
  173. package/lib/components/form/form_control_button/form_control_button.js +1 -1
  174. package/lib/components/form/form_control_layout/append_prepend/form_append_prepend.js +2 -2
  175. package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
  176. package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  177. package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  178. package/lib/components/form/text_area/text_area.js +2 -2
  179. package/lib/components/header/header.a11y.js +1 -1
  180. package/lib/components/header/header_links/header_link.js +1 -1
  181. package/lib/components/header/header_links/header_links.js +1 -1
  182. package/lib/components/header/header_logo/header_logo.js +1 -1
  183. package/lib/components/header/header_section/header_section_item_button.js +1 -1
  184. package/lib/components/icon/assets/significant_events.js +46 -0
  185. package/lib/components/icon/icon.js +1 -1
  186. package/lib/components/icon/icon_glyphs.a11y.js +1 -1
  187. package/lib/components/icon/icon_map.js +5 -0
  188. package/lib/components/icon/svgs/significant_events.svg +11 -0
  189. package/lib/components/index.js +11 -0
  190. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
  191. package/lib/components/list_group/list_group.js +2 -2
  192. package/lib/components/list_group/list_group_item.js +2 -2
  193. package/lib/components/list_group/list_group_item_extra_action.js +1 -1
  194. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  195. package/lib/components/list_item_layout/_list_item_layout.styles.js +1 -1
  196. package/lib/components/loading/loading_logo.js +1 -1
  197. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  198. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  199. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  200. package/lib/components/markdown_editor/markdown_editor_help_button.js +7 -4
  201. package/lib/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  202. package/lib/components/outside_click_detector/outside_click_detector.js +69 -106
  203. package/lib/components/page/page_header/page_header_content.js +1 -1
  204. package/lib/components/pagination/pagination_button.js +1 -1
  205. package/lib/components/pagination/pagination_button_arrow.js +6 -2
  206. package/lib/components/search_bar/search_bar.js +20 -16
  207. package/lib/components/search_bar/search_box.js +4 -2
  208. package/lib/components/selectable/selectable_list/selectable_list.js +2 -2
  209. package/lib/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  210. package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  211. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +3 -2
  212. package/lib/components/table/sticky_header/context.js +41 -0
  213. package/lib/components/table/sticky_header/index.js +19 -0
  214. package/lib/components/table/sticky_header/sticky_header.js +156 -0
  215. package/lib/components/table/sticky_header/sticky_header.styles.js +47 -0
  216. package/lib/components/table/sticky_scrollbar/index.js +12 -0
  217. package/lib/components/table/sticky_scrollbar/sticky_scrollbar.js +148 -0
  218. package/lib/components/table/sticky_scrollbar/sticky_scrollbar.styles.js +31 -0
  219. package/lib/components/table/store/provider.js +46 -0
  220. package/lib/components/table/store/store.js +80 -0
  221. package/lib/components/table/table.js +46 -6
  222. package/lib/components/table/table.styles.js +4 -4
  223. package/lib/components/table/table_header_cell.js +119 -49
  224. package/lib/components/table/table_header_cell_checkbox.js +62 -25
  225. package/lib/components/text_truncate/text_truncate.js +8 -3
  226. package/lib/components/timeline/timeline_item_icon.js +1 -1
  227. package/lib/components/toast/global_toast_list.js +1 -1
  228. package/lib/components/toast/toast.js +1 -1
  229. package/lib/components/tool_tip/icon_tip.js +1 -1
  230. package/lib/components/tool_tip/tool_tip.js +1 -1
  231. package/lib/components/tool_tip/tool_tip.styles.js +14 -5
  232. package/lib/utils/publisher.js +59 -0
  233. package/optimize/es/components/avatar/avatar.js +12 -4
  234. package/optimize/es/components/banner/banner.js +112 -0
  235. package/optimize/es/components/banner/banner.styles.js +76 -0
  236. package/optimize/es/components/banner/index.js +9 -0
  237. package/optimize/es/components/basic_table/basic_table.js +24 -10
  238. package/optimize/es/components/basic_table/collapsed_item_actions.js +5 -4
  239. package/optimize/es/components/basic_table/default_item_action.js +3 -5
  240. package/optimize/es/components/breadcrumbs/_breadcrumb_content.js +27 -18
  241. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  242. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  243. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.styles.js +2 -2
  244. package/optimize/es/components/datagrid/controls/display_selector.js +2 -1
  245. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  246. package/optimize/es/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  247. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  248. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  249. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  250. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  251. package/optimize/es/components/form/field_password/field_password.js +6 -3
  252. package/optimize/es/components/header/header.a11y.js +1 -1
  253. package/optimize/es/components/icon/assets/significant_events.js +38 -0
  254. package/optimize/es/components/icon/icon_glyphs.a11y.js +1 -1
  255. package/optimize/es/components/icon/icon_map.js +3 -0
  256. package/optimize/es/components/index.js +1 -0
  257. package/optimize/es/components/list_item_layout/_list_item_layout.styles.js +1 -1
  258. package/optimize/es/components/markdown_editor/markdown_editor_help_button.js +7 -4
  259. package/optimize/es/components/outside_click_detector/outside_click_detector.js +70 -104
  260. package/optimize/es/components/pagination/pagination_button_arrow.js +6 -2
  261. package/optimize/es/components/search_bar/search_bar.js +20 -16
  262. package/optimize/es/components/search_bar/search_box.js +4 -2
  263. package/optimize/es/components/selectable/selectable_list/selectable_list.js +1 -1
  264. package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  265. package/optimize/es/components/table/sticky_header/context.js +32 -0
  266. package/optimize/es/components/table/sticky_header/index.js +10 -0
  267. package/optimize/es/components/table/sticky_header/sticky_header.js +146 -0
  268. package/optimize/es/components/table/sticky_header/sticky_header.styles.js +43 -0
  269. package/optimize/es/components/table/sticky_scrollbar/index.js +9 -0
  270. package/optimize/es/components/table/sticky_scrollbar/sticky_scrollbar.js +136 -0
  271. package/optimize/es/components/table/sticky_scrollbar/sticky_scrollbar.styles.js +27 -0
  272. package/optimize/es/components/table/store/provider.js +37 -0
  273. package/optimize/es/components/table/store/store.js +75 -0
  274. package/optimize/es/components/table/table.js +25 -6
  275. package/optimize/es/components/table/table.styles.js +4 -4
  276. package/optimize/es/components/table/table_header_cell.js +116 -48
  277. package/optimize/es/components/table/table_header_cell_checkbox.js +59 -25
  278. package/optimize/es/components/text_truncate/text_truncate.js +8 -3
  279. package/optimize/es/components/tool_tip/tool_tip.js +1 -1
  280. package/optimize/es/components/tool_tip/tool_tip.styles.js +14 -5
  281. package/optimize/es/utils/publisher.js +53 -0
  282. package/optimize/lib/components/avatar/avatar.js +12 -4
  283. package/optimize/lib/components/banner/banner.js +121 -0
  284. package/optimize/lib/components/banner/banner.styles.js +80 -0
  285. package/optimize/lib/components/banner/index.js +12 -0
  286. package/optimize/lib/components/basic_table/basic_table.js +24 -10
  287. package/optimize/lib/components/basic_table/collapsed_item_actions.js +5 -4
  288. package/optimize/lib/components/basic_table/default_item_action.js +3 -5
  289. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.js +27 -18
  290. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  291. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  292. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.styles.js +1 -1
  293. package/optimize/lib/components/datagrid/controls/display_selector.js +2 -1
  294. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  295. package/optimize/lib/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  296. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  297. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  298. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  299. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  300. package/optimize/lib/components/form/field_password/field_password.js +6 -3
  301. package/optimize/lib/components/header/header.a11y.js +1 -1
  302. package/optimize/lib/components/icon/assets/significant_events.js +46 -0
  303. package/optimize/lib/components/icon/icon_glyphs.a11y.js +1 -1
  304. package/optimize/lib/components/icon/icon_map.js +5 -0
  305. package/optimize/lib/components/icon/svgs/significant_events.svg +11 -0
  306. package/optimize/lib/components/index.js +11 -0
  307. package/optimize/lib/components/list_item_layout/_list_item_layout.styles.js +1 -1
  308. package/optimize/lib/components/markdown_editor/markdown_editor_help_button.js +7 -4
  309. package/optimize/lib/components/outside_click_detector/outside_click_detector.js +69 -103
  310. package/optimize/lib/components/pagination/pagination_button_arrow.js +6 -2
  311. package/optimize/lib/components/search_bar/search_bar.js +20 -16
  312. package/optimize/lib/components/search_bar/search_box.js +4 -2
  313. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  314. package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  315. package/optimize/lib/components/table/sticky_header/context.js +41 -0
  316. package/optimize/lib/components/table/sticky_header/index.js +19 -0
  317. package/optimize/lib/components/table/sticky_header/sticky_header.js +156 -0
  318. package/optimize/lib/components/table/sticky_header/sticky_header.styles.js +47 -0
  319. package/optimize/lib/components/table/sticky_scrollbar/index.js +12 -0
  320. package/optimize/lib/components/table/sticky_scrollbar/sticky_scrollbar.js +146 -0
  321. package/optimize/lib/components/table/sticky_scrollbar/sticky_scrollbar.styles.js +31 -0
  322. package/optimize/lib/components/table/store/provider.js +46 -0
  323. package/optimize/lib/components/table/store/store.js +80 -0
  324. package/optimize/lib/components/table/table.js +28 -6
  325. package/optimize/lib/components/table/table.styles.js +4 -4
  326. package/optimize/lib/components/table/table_header_cell.js +119 -48
  327. package/optimize/lib/components/table/table_header_cell_checkbox.js +62 -25
  328. package/optimize/lib/components/text_truncate/text_truncate.js +8 -3
  329. package/optimize/lib/components/tool_tip/tool_tip.js +1 -1
  330. package/optimize/lib/components/tool_tip/tool_tip.styles.js +14 -5
  331. package/optimize/lib/utils/publisher.js +59 -0
  332. package/package.json +4 -4
  333. package/test-env/components/avatar/avatar.js +15 -6
  334. package/test-env/components/badge/badge.js +1 -1
  335. package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
  336. package/test-env/components/banner/banner.js +210 -0
  337. package/test-env/components/banner/banner.styles.js +80 -0
  338. package/test-env/components/banner/index.js +12 -0
  339. package/test-env/components/basic_table/basic_table.js +28 -14
  340. package/test-env/components/basic_table/collapsed_item_actions.js +5 -4
  341. package/test-env/components/basic_table/default_item_action.js +3 -5
  342. package/test-env/components/basic_table/in_memory_table.js +4 -4
  343. package/test-env/components/breadcrumbs/_breadcrumb_content.js +29 -19
  344. package/test-env/components/button/button_display/_button_display_content.js +1 -1
  345. package/test-env/components/button/button_empty/button_empty.js +1 -1
  346. package/test-env/components/button/button_icon/button_icon.js +1 -1
  347. package/test-env/components/call_out/call_out.js +1 -1
  348. package/test-env/components/card/card.js +1 -1
  349. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  350. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  351. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  352. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  353. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  354. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  355. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  356. package/test-env/components/comment_list/comment.js +2 -2
  357. package/test-env/components/comment_list/comment_event.js +1 -1
  358. package/test-env/components/comment_list/comment_list.js +2 -2
  359. package/test-env/components/comment_list/comment_timeline.js +1 -1
  360. package/test-env/components/context_menu/context_menu_item.js +1 -1
  361. package/test-env/components/context_menu/context_menu_panel_title.js +0 -12
  362. package/test-env/components/datagrid/body/cell/data_grid_cell.js +12 -12
  363. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  364. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.styles.js +1 -1
  365. package/test-env/components/datagrid/body/data_grid_body.js +7 -7
  366. package/test-env/components/datagrid/body/data_grid_body_custom.js +7 -7
  367. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  368. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  369. package/test-env/components/datagrid/controls/column_sorting.js +7 -7
  370. package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
  371. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  372. package/test-env/components/datagrid/controls/display_selector.js +2 -1
  373. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  374. package/test-env/components/datagrid/utils/in_memory.js +6 -6
  375. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  376. package/test-env/components/date_picker/date_picker.js +2 -2
  377. package/test-env/components/date_picker/date_picker_range.js +1 -1
  378. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  379. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  380. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  381. package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  382. package/test-env/components/empty_prompt/empty_prompt.js +1 -1
  383. package/test-env/components/flyout/flyout_menu.js +2 -2
  384. package/test-env/components/flyout/manager/flyout_child.js +1 -1
  385. package/test-env/components/form/field_number/field_number.js +2 -2
  386. package/test-env/components/form/field_password/field_password.js +6 -3
  387. package/test-env/components/form/field_text/field_text.js +2 -2
  388. package/test-env/components/form/form_control_button/form_control_button.js +1 -1
  389. package/test-env/components/form/form_control_layout/append_prepend/form_append_prepend.js +2 -2
  390. package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
  391. package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  392. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  393. package/test-env/components/form/text_area/text_area.js +2 -2
  394. package/test-env/components/header/header.a11y.js +1 -1
  395. package/test-env/components/header/header_links/header_link.js +1 -1
  396. package/test-env/components/header/header_links/header_links.js +1 -1
  397. package/test-env/components/header/header_logo/header_logo.js +1 -1
  398. package/test-env/components/header/header_section/header_section_item_button.js +1 -1
  399. package/test-env/components/icon/assets/significant_events.js +46 -0
  400. package/test-env/components/icon/icon_glyphs.a11y.js +1 -1
  401. package/test-env/components/icon/icon_map.js +5 -0
  402. package/test-env/components/index.js +11 -0
  403. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
  404. package/test-env/components/list_group/list_group.js +2 -2
  405. package/test-env/components/list_group/list_group_item.js +2 -2
  406. package/test-env/components/list_group/list_group_item_extra_action.js +1 -1
  407. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  408. package/test-env/components/list_item_layout/_list_item_layout.styles.js +1 -1
  409. package/test-env/components/loading/loading_logo.js +1 -1
  410. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  411. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  412. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  413. package/test-env/components/markdown_editor/markdown_editor_help_button.js +7 -4
  414. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  415. package/test-env/components/outside_click_detector/outside_click_detector.js +70 -104
  416. package/test-env/components/page/page_header/page_header_content.js +1 -1
  417. package/test-env/components/pagination/pagination_button.js +1 -1
  418. package/test-env/components/pagination/pagination_button_arrow.js +6 -2
  419. package/test-env/components/search_bar/search_bar.js +20 -16
  420. package/test-env/components/search_bar/search_box.js +4 -2
  421. package/test-env/components/selectable/selectable_list/selectable_list.js +2 -2
  422. package/test-env/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  423. package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
  424. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +3 -2
  425. package/test-env/components/table/sticky_header/context.js +41 -0
  426. package/test-env/components/table/sticky_header/index.js +19 -0
  427. package/test-env/components/table/sticky_header/sticky_header.js +156 -0
  428. package/test-env/components/table/sticky_header/sticky_header.styles.js +47 -0
  429. package/test-env/components/table/sticky_scrollbar/index.js +12 -0
  430. package/test-env/components/table/sticky_scrollbar/sticky_scrollbar.js +146 -0
  431. package/test-env/components/table/sticky_scrollbar/sticky_scrollbar.styles.js +31 -0
  432. package/test-env/components/table/store/provider.js +46 -0
  433. package/test-env/components/table/store/store.js +80 -0
  434. package/test-env/components/table/table.js +46 -6
  435. package/test-env/components/table/table.styles.js +4 -4
  436. package/test-env/components/table/table_header_cell.js +120 -49
  437. package/test-env/components/table/table_header_cell_checkbox.js +62 -25
  438. package/test-env/components/text_truncate/text_truncate.js +8 -3
  439. package/test-env/components/timeline/timeline_item_icon.js +1 -1
  440. package/test-env/components/toast/global_toast_list.js +1 -1
  441. package/test-env/components/toast/toast.js +1 -1
  442. package/test-env/components/tool_tip/icon_tip.js +1 -1
  443. package/test-env/components/tool_tip/tool_tip.js +1 -1
  444. package/test-env/components/tool_tip/tool_tip.styles.js +14 -5
  445. package/test-env/utils/publisher.js +59 -0
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.EuiTableStickyScrollbar = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _services = require("../../../services");
12
+ var _sticky_scrollbar = require("./sticky_scrollbar.styles");
13
+ var _react2 = require("@emotion/react");
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ /*
17
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
18
+ * or more contributor license agreements. Licensed under the Elastic License
19
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
20
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
21
+ * Side Public License, v 1.
22
+ */
23
+
24
+ var EuiTableStickyScrollbar = exports.EuiTableStickyScrollbar = function EuiTableStickyScrollbar(_ref) {
25
+ var tableWrapperRef = _ref.tableWrapperRef;
26
+ var styles = (0, _services.useEuiMemoizedStyles)(_sticky_scrollbar.euiTableStickyScrollbarStyles);
27
+ var trackElementRef = (0, _react.useRef)(null);
28
+ var dragStartRef = (0, _react.useRef)(null);
29
+ var requestAnimationFramePendingRef = (0, _react.useRef)(false);
30
+ var _useState = (0, _react.useState)(false),
31
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
32
+ isActive = _useState2[0],
33
+ setIsActive = _useState2[1];
34
+ var _useState3 = (0, _react.useState)(false),
35
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
36
+ isHidden = _useState4[0],
37
+ setIsHidden = _useState4[1];
38
+ var updateTrack = (0, _react.useCallback)(function (element) {
39
+ var clientWidth = element.clientWidth,
40
+ scrollWidth = element.scrollWidth,
41
+ scrollLeft = element.scrollLeft;
42
+ if (!requestAnimationFramePendingRef.current) {
43
+ requestAnimationFramePendingRef.current = true;
44
+ requestAnimationFrame(function () {
45
+ var el = trackElementRef.current;
46
+ if (el) {
47
+ el.style.inlineSize = "".concat(clientWidth / scrollWidth * 100, "%");
48
+ el.style.marginInlineStart = "".concat(scrollLeft / scrollWidth * 100, "%");
49
+ }
50
+ requestAnimationFramePendingRef.current = false;
51
+ });
52
+ }
53
+ }, []);
54
+ var handleScroll = (0, _react.useCallback)(function (event) {
55
+ if (event.target) {
56
+ updateTrack(event.target);
57
+ }
58
+ }, [updateTrack]);
59
+ var handleResize = (0, _react.useCallback)(function (entries) {
60
+ var element = entries[0].target;
61
+ if (!element) {
62
+ return;
63
+ }
64
+ updateTrack(element);
65
+ setIsActive(element.clientWidth < element.scrollWidth);
66
+ }, [updateTrack]);
67
+ var handleBottomCornerIntersection = (0, _react.useCallback)(function (entries) {
68
+ var entry = entries[0];
69
+ var element = entry.target;
70
+ if (!element) {
71
+ return;
72
+ }
73
+ setIsHidden(!entry.isIntersecting);
74
+ }, []);
75
+ var handlePointerDown = (0, _react.useCallback)(function (event) {
76
+ var _el$scrollLeft;
77
+ var el = tableWrapperRef.current;
78
+ dragStartRef.current = {
79
+ x: event.clientX,
80
+ scrollLeft: (_el$scrollLeft = el === null || el === void 0 ? void 0 : el.scrollLeft) !== null && _el$scrollLeft !== void 0 ? _el$scrollLeft : 0
81
+ };
82
+ event.currentTarget.setPointerCapture(event.pointerId);
83
+ }, [tableWrapperRef]);
84
+ var handlePointerUp = (0, _react.useCallback)(function () {
85
+ dragStartRef.current = null;
86
+ }, [dragStartRef]);
87
+ var handlePointerMove = (0, _react.useCallback)(function (event) {
88
+ var el = tableWrapperRef.current;
89
+ if (!dragStartRef.current || !el) {
90
+ return;
91
+ }
92
+ var diff = event.clientX - dragStartRef.current.x;
93
+ var ratio = el.scrollWidth / el.clientWidth;
94
+ el.scrollLeft = dragStartRef.current.scrollLeft + diff * ratio;
95
+ }, [tableWrapperRef]);
96
+ (0, _react.useEffect)(function () {
97
+ var element = tableWrapperRef.current;
98
+ if (!element) {
99
+ return;
100
+ }
101
+ updateTrack(element);
102
+ element.addEventListener('scroll', handleScroll, {
103
+ passive: true
104
+ });
105
+
106
+ // ResizeObserver is available in all supported browsers,
107
+ // but jsdom and jest don't provide a polyfill for it.
108
+ var resizeObserver;
109
+ if (typeof window.ResizeObserver !== 'undefined') {
110
+ resizeObserver = new ResizeObserver(handleResize);
111
+ resizeObserver.observe(element);
112
+ }
113
+
114
+ // IntersectionOserver is available in all supported browsers,
115
+ // but jsdom and jest don't provide a polyfill for it.
116
+ var intersectionObserver;
117
+ if (typeof window.IntersectionObserver !== 'undefined') {
118
+ intersectionObserver = new IntersectionObserver(handleBottomCornerIntersection, {
119
+ threshold: 0,
120
+ rootMargin: '-100% 0px 0px 0px'
121
+ });
122
+ intersectionObserver.observe(element);
123
+ }
124
+ return function () {
125
+ var _resizeObserver, _intersectionObserver;
126
+ element.removeEventListener('scroll', handleScroll);
127
+ (_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
128
+ (_intersectionObserver = intersectionObserver) === null || _intersectionObserver === void 0 || _intersectionObserver.disconnect();
129
+ };
130
+ }, [tableWrapperRef, updateTrack, handleResize, handleScroll, handleBottomCornerIntersection]);
131
+ if (!isActive) {
132
+ return null;
133
+ }
134
+ return (0, _react2.jsx)("div", {
135
+ css: [styles.wrapper, isHidden && styles.wrapperHidden, ";label:EuiTableStickyScrollbar;"],
136
+ "data-test-subj": "euiTableStickyScrollbar",
137
+ "aria-hidden": true
138
+ }, (0, _react2.jsx)("div", {
139
+ css: styles.track,
140
+ ref: trackElementRef,
141
+ onPointerDown: handlePointerDown,
142
+ onPointerMove: handlePointerMove,
143
+ onPointerUp: handlePointerUp,
144
+ "data-test-subj": "euiTableStickyScrollbarTrack"
145
+ }));
146
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiTableStickyScrollbarStyles = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _services = require("../../../services");
9
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
10
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
11
+ * or more contributor license agreements. Licensed under the Elastic License
12
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
13
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
14
+ * Side Public License, v 1.
15
+ */
16
+ var _ref = process.env.NODE_ENV === "production" ? {
17
+ name: "j6fg69-wrapperHidden",
18
+ styles: "display:none;label:wrapperHidden;"
19
+ } : {
20
+ name: "j6fg69-wrapperHidden",
21
+ styles: "display:none;label:wrapperHidden;",
22
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
23
+ };
24
+ var euiTableStickyScrollbarStyles = exports.euiTableStickyScrollbarStyles = function euiTableStickyScrollbarStyles(_ref2) {
25
+ var euiTheme = _ref2.euiTheme;
26
+ return {
27
+ wrapper: /*#__PURE__*/(0, _react.css)("block-size:", euiTheme.size.base, ";padding:", euiTheme.size.xs, ";position:sticky;background:", euiTheme.components.scrollbarTrackColor, ";inset-block-end:var(--euiTableStickyScrollbarOffsetBottom, 0);z-index:var(--euiTableStickyScrollbarZIndex, 0);;label:wrapper;"),
28
+ wrapperHidden: _ref,
29
+ track: /*#__PURE__*/(0, _react.css)("block-size:100%;background:", (0, _services.transparentize)(euiTheme.colors.darkShade, 0.5), ";border-radius:", euiTheme.border.radius.small, ";;label:track;")
30
+ };
31
+ };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useEuiTableColumnDataStore = exports.EuiTableStoreProvider = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _store = require("./store");
10
+ var _react2 = require("@emotion/react");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ /*
14
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
+ * or more contributor license agreements. Licensed under the Elastic License
16
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
17
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
18
+ * Side Public License, v 1.
19
+ */
20
+
21
+ var EuiTableStoreContext = /*#__PURE__*/(0, _react.createContext)(null);
22
+
23
+ /**
24
+ * @internal
25
+ */
26
+ var EuiTableStoreProvider = exports.EuiTableStoreProvider = function EuiTableStoreProvider(_ref) {
27
+ var children = _ref.children;
28
+ var store = (0, _react.useRef)(null);
29
+ if (!store.current) {
30
+ store.current = (0, _store.createEuiTableStore)();
31
+ }
32
+ return (0, _react2.jsx)(EuiTableStoreContext.Provider, {
33
+ value: store.current
34
+ }, children);
35
+ };
36
+
37
+ /**
38
+ * @internal
39
+ */
40
+ var useEuiTableColumnDataStore = exports.useEuiTableColumnDataStore = function useEuiTableColumnDataStore() {
41
+ var store = (0, _react.useContext)(EuiTableStoreContext);
42
+ if (!store) {
43
+ throw new Error('[useEuiTableColumnDataStore] Store context not found. This hook must be used within EuiTable!');
44
+ }
45
+ return store;
46
+ };
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createEuiTableStore = void 0;
7
+ var _publisher = require("../../../utils/publisher");
8
+ /*
9
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
10
+ * or more contributor license agreements. Licensed under the Elastic License
11
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
12
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
13
+ * Side Public License, v 1.
14
+ */
15
+
16
+ /**
17
+ * @internal
18
+ */
19
+
20
+ /**
21
+ * @internal
22
+ */
23
+
24
+ /**
25
+ * @internal
26
+ */
27
+
28
+ var createEuiTableStore = exports.createEuiTableStore = function createEuiTableStore() {
29
+ var columns = new Map();
30
+ var columnsPublisher = (0, _publisher.createPublisher)();
31
+ var columnWidths = new Map();
32
+ var columnWidthsPublisher = (0, _publisher.createPublisher)();
33
+ var registerColumn = function registerColumn(id, data) {
34
+ var _data$currentWidth;
35
+ if (columns.has(id)) {
36
+ throw new Error("[EuiTableStore] Column '".concat(id, "' already registered"));
37
+ }
38
+ columns.set(id, data);
39
+ // Initialize column in the columnWidths map to keep both maps in sync
40
+ columnWidths.set(id, (_data$currentWidth = data.currentWidth) !== null && _data$currentWidth !== void 0 ? _data$currentWidth : 0);
41
+ columnsPublisher.notify(columns);
42
+ return function () {
43
+ columns.delete(id);
44
+ columnWidths.delete(id);
45
+ columnsPublisher.notify(columns);
46
+ };
47
+ };
48
+ var updateColumn = function updateColumn(id, data) {
49
+ var currentData = columns.get(id);
50
+ if (!currentData) {
51
+ throw new Error("[EuiTableStore] Column '".concat(id, "' not found"));
52
+ }
53
+ columns.set(id, data);
54
+ columnsPublisher.notify(columns);
55
+ };
56
+ var updateColumnWidth = function updateColumnWidth(id, width) {
57
+ var currentWidth = columnWidths.get(id);
58
+ if (currentWidth === undefined) {
59
+ throw new Error("[EuiTableStore] No width stored for column '".concat(id, "'"));
60
+ }
61
+ if (currentWidth === width) {
62
+ return;
63
+ }
64
+ columnWidths.set(id, width);
65
+ columnWidthsPublisher.notify(columnWidths);
66
+ };
67
+ return {
68
+ registerColumn: registerColumn,
69
+ updateColumn: updateColumn,
70
+ updateColumnWidth: updateColumnWidth,
71
+ subscribe: columnsPublisher.subscribe,
72
+ subscribeToColumnWidths: columnWidthsPublisher.subscribe,
73
+ getColumns: function getColumns() {
74
+ return columns;
75
+ },
76
+ getColumnWidths: function getColumnWidths() {
77
+ return columnWidths;
78
+ }
79
+ };
80
+ };
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.EuiTable = void 0;
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
- var _react = _interopRequireDefault(require("react"));
11
+ var _react = _interopRequireWildcard(require("react"));
11
12
  var _classnames = _interopRequireDefault(require("classnames"));
12
13
  var _services = require("../../services");
13
14
  var _responsive_context = require("./mobile/responsive_context");
@@ -16,8 +17,11 @@ var _table = require("./table.styles");
16
17
  var _component_defaults = require("../provider/component_defaults");
17
18
  var _global_styling = require("../../global_styling");
18
19
  var _const = require("./const");
20
+ var _sticky_scrollbar = require("./sticky_scrollbar");
21
+ var _sticky_header = require("./sticky_header/sticky_header");
22
+ var _provider = require("./store/provider");
19
23
  var _react2 = require("@emotion/react");
20
- var _excluded = ["children", "className", "compressed", "tableLayout", "hasBackground", "responsiveBreakpoint", "scrollableInline"];
24
+ var _excluded = ["children", "className", "compressed", "tableLayout", "hasBackground", "responsiveBreakpoint", "scrollableInline", "stickyScrollbar", "stickyHeader"];
21
25
  /*
22
26
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
23
27
  * or more contributor license agreements. Licensed under the Elastic License
@@ -25,6 +29,8 @@ var _excluded = ["children", "className", "compressed", "tableLayout", "hasBackg
25
29
  * in compliance with, at your election, the Elastic License 2.0 or the Server
26
30
  * Side Public License, v 1.
27
31
  */
32
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
33
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
34
  /**
29
35
  * EuiTable is a low-level building block component used to render tabular data
30
36
  * in a customized way.
@@ -47,23 +53,39 @@ var EuiTable = exports.EuiTable = function EuiTable(originalProps) {
47
53
  responsiveBreakpoint = _usePropsWithComponen.responsiveBreakpoint,
48
54
  _usePropsWithComponen4 = _usePropsWithComponen.scrollableInline,
49
55
  scrollableInline = _usePropsWithComponen4 === void 0 ? false : _usePropsWithComponen4,
56
+ _usePropsWithComponen5 = _usePropsWithComponen.stickyScrollbar,
57
+ stickyScrollbar = _usePropsWithComponen5 === void 0 ? false : _usePropsWithComponen5,
58
+ _usePropsWithComponen6 = _usePropsWithComponen.stickyHeader,
59
+ stickyHeader = _usePropsWithComponen6 === void 0 ? false : _usePropsWithComponen6,
50
60
  rest = (0, _objectWithoutProperties2.default)(_usePropsWithComponen, _excluded);
61
+ var tableWrapperRef = (0, _react.useRef)(null);
62
+ var tableRef = (0, _react.useRef)(null);
51
63
  var isResponsive = (0, _responsive_context.useIsEuiTableResponsive)(responsiveBreakpoint);
52
64
  var classes = (0, _classnames.default)('euiTable', className);
53
65
  var styles = (0, _services.useEuiMemoizedStyles)(_table.euiTableStyles);
54
66
  var tableStyles = [styles.euiTable, scrollableInline && styles.euiTableScrollableInline, styles.layout[tableLayout], (!compressed || isResponsive) && styles.uncompressed, compressed && !isResponsive && styles.compressed, hasBackground && styles.hasBackground, isResponsive ? styles.mobile : styles.desktop];
55
67
  var cssStyles = [(0, _global_styling.euiContainerCSS)('normal', _const.EUI_TABLE_CSS_CONTAINER_NAME, true), scrollableInline && styles.scrollableWrapper];
56
- return (0, _react2.jsx)("div", {
57
- css: cssStyles
68
+ return (0, _react2.jsx)(_provider.EuiTableStoreProvider, null, stickyHeader && (0, _react2.jsx)(_sticky_header.EuiTableStickyHeader, {
69
+ scrollableInline: scrollableInline,
70
+ tableRef: tableRef,
71
+ tableWrapperRef: tableWrapperRef,
72
+ compressed: compressed,
73
+ isResponsive: isResponsive
74
+ }), (0, _react2.jsx)("div", {
75
+ css: cssStyles,
76
+ ref: tableWrapperRef
58
77
  }, (0, _react2.jsx)("table", (0, _extends2.default)({
59
78
  tabIndex: -1,
60
79
  css: tableStyles,
61
- className: classes
80
+ className: classes,
81
+ ref: tableRef
62
82
  }, rest), (0, _react2.jsx)(_responsive_context.EuiTableIsResponsiveContext.Provider, {
63
83
  value: isResponsive
64
84
  }, (0, _react2.jsx)(_table_context.EuiTableVariantContext.Provider, {
65
85
  value: {
66
86
  hasBackground: hasBackground
67
87
  }
68
- }, children))));
88
+ }, children)))), scrollableInline && stickyScrollbar && (0, _react2.jsx)(_sticky_scrollbar.EuiTableStickyScrollbar, {
89
+ tableWrapperRef: tableWrapperRef
90
+ }));
69
91
  };
@@ -42,11 +42,11 @@ var euiTableVariables = exports.euiTableVariables = function euiTableVariables(_
42
42
  };
43
43
  };
44
44
  var _ref = process.env.NODE_ENV === "production" ? {
45
- name: "mqw298-scrollableWrapper",
46
- styles: "overflow-inline:auto;label:scrollableWrapper;"
45
+ name: "l8gzfy-scrollableWrapper",
46
+ styles: "overflow-inline:auto;overscroll-behavior-inline:none;label:scrollableWrapper;"
47
47
  } : {
48
- name: "mqw298-scrollableWrapper",
49
- styles: "overflow-inline:auto;label:scrollableWrapper;",
48
+ name: "l8gzfy-scrollableWrapper",
49
+ styles: "overflow-inline:auto;overscroll-behavior-inline:none;label:scrollableWrapper;",
50
50
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
51
51
  };
52
52
  var _ref2 = process.env.NODE_ENV === "production" ? {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
@@ -8,9 +9,10 @@ exports.EuiTableHeaderCell = void 0;
8
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
- var _react = _interopRequireDefault(require("react"));
12
+ var _react = _interopRequireWildcard(require("react"));
12
13
  var _classnames = _interopRequireDefault(require("classnames"));
13
14
  var _services = require("../../services");
15
+ var _html_id_generator = require("../../services/accessibility/html_id_generator");
14
16
  var _i18n = require("../i18n");
15
17
  var _accessibility = require("../accessibility");
16
18
  var _icon = require("../icon");
@@ -20,8 +22,12 @@ var _utils = require("./utils");
20
22
  var _responsive_context = require("./mobile/responsive_context");
21
23
  var _table_cell_content = require("./_table_cell_content");
22
24
  var _table_cells_shared = require("./table_cells_shared.styles");
25
+ var _provider = require("./store/provider");
26
+ var _sticky_header = require("./sticky_header");
23
27
  var _react2 = require("@emotion/react");
24
28
  var _excluded = ["children", "align", "onSort", "isSorted", "isSortAscending", "className", "scope", "mobileOptions", "width", "minWidth", "maxWidth", "style", "readOnly", "tooltipProps", "description", "append", "sticky"];
29
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
30
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
31
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
32
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /*
27
33
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -105,58 +111,123 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
105
111
  append = _ref2.append,
106
112
  sticky = _ref2.sticky,
107
113
  rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
114
+ var selfRef = (0, _react.useRef)(null);
115
+ var internalCellId = (0, _html_id_generator.useGeneratedHtmlId)();
116
+ var store = (0, _provider.useEuiTableColumnDataStore)();
117
+ var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
108
118
  var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableHeaderFooterCellStyles);
109
119
  var stickyStyles = (0, _table_cells_shared._useEuiTableStickyCellStyles)(sticky);
110
120
  var isResponsive = (0, _responsive_context.useEuiTableIsResponsive)();
111
121
  var hideForDesktop = !isResponsive && (mobileOptions === null || mobileOptions === void 0 ? void 0 : mobileOptions.only);
112
122
  var hideForMobile = isResponsive && (mobileOptions === null || mobileOptions === void 0 ? void 0 : mobileOptions.show) === false;
113
- if (hideForDesktop || hideForMobile) return null;
114
- var classes = (0, _classnames.default)('euiTableHeaderCell', className);
115
- var cssStyles = [styles.euiTableHeaderCell, !isResponsive && stickyStyles];
116
- var inlineWidthStyles = (0, _utils.resolveWidthPropsAsStyle)(_style, {
117
- width: width,
118
- minWidth: minWidth,
119
- maxWidth: maxWidth
120
- });
121
- var CellComponent = children ? 'th' : 'td';
122
- var cellScope = CellComponent === 'th' ? scope !== null && scope !== void 0 ? scope : 'col' : undefined; // `scope` is only valid on `th` elements
123
+ var renderHeaderCellRef = (0, _react.useRef)();
124
+ renderHeaderCellRef.current = function (extraProps) {
125
+ if (hideForDesktop || hideForMobile) return null;
126
+ var classes = (0, _classnames.default)('euiTableHeaderCell', className);
127
+ var cssStyles = [styles.euiTableHeaderCell, !isResponsive && stickyStyles];
128
+ var inlineWidthStyles = (0, _utils.resolveWidthPropsAsStyle)(_style, {
129
+ width: width,
130
+ minWidth: minWidth,
131
+ maxWidth: maxWidth
132
+ });
133
+ var CellComponent = children ? 'th' : 'td';
134
+ var cellScope = CellComponent === 'th' ? scope !== null && scope !== void 0 ? scope : 'col' : undefined; // `scope` is only valid on `th` elements
123
135
 
124
- var canSort = !!(onSort && !readOnly);
125
- var ariaSortValue;
126
- if (isSorted) {
127
- ariaSortValue = isSortAscending ? 'ascending' : 'descending';
128
- } else if (canSort) {
129
- ariaSortValue = 'none';
130
- }
131
- var cellContentsProps = {
132
- css: styles.euiTableHeaderCell__content,
133
- align: align,
134
- tooltipProps: tooltipProps,
135
- description: description,
136
- canSort: canSort,
137
- isSorted: isSorted,
138
- isSortAscending: isSortAscending,
139
- children: children
136
+ var canSort = !!(onSort && !readOnly);
137
+ var ariaSortValue;
138
+ if (isSorted) {
139
+ ariaSortValue = isSortAscending ? 'ascending' : 'descending';
140
+ } else if (canSort) {
141
+ ariaSortValue = 'none';
142
+ }
143
+ var cellContentsProps = {
144
+ css: styles.euiTableHeaderCell__content,
145
+ align: align,
146
+ tooltipProps: tooltipProps,
147
+ description: description,
148
+ canSort: canSort,
149
+ isSorted: isSorted,
150
+ isSortAscending: isSortAscending,
151
+ children: children
152
+ };
153
+ return (0, _react2.jsx)(CellComponent, (0, _extends2.default)({
154
+ css: cssStyles,
155
+ className: classes,
156
+ scope: cellScope,
157
+ role: "columnheader",
158
+ "aria-sort": ariaSortValue,
159
+ "data-sticky": !isResponsive && (sticky === null || sticky === void 0 ? void 0 : sticky.side) || undefined,
160
+ style: _objectSpread(_objectSpread({}, _style), inlineWidthStyles)
161
+ }, rest, extraProps), canSort ? (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({
162
+ content: tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.content
163
+ }, tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.tooltipProps, {
164
+ display: "block"
165
+ }), (0, _react2.jsx)("button", {
166
+ type: "button",
167
+ css: styles.euiTableHeaderCell__button,
168
+ className: (0, _classnames.default)('euiTableHeaderButton', {
169
+ 'euiTableHeaderButton-isSorted': isSorted
170
+ }),
171
+ onClick: onSort,
172
+ "data-test-subj": "tableHeaderSortButton"
173
+ }, (0, _react2.jsx)(CellContents, cellContentsProps))) : (0, _react2.jsx)(CellContents, cellContentsProps), append);
140
174
  };
141
- return (0, _react2.jsx)(CellComponent, (0, _extends2.default)({
142
- css: cssStyles,
143
- className: classes,
144
- scope: cellScope,
145
- role: "columnheader",
146
- "aria-sort": ariaSortValue,
147
- "data-sticky": !isResponsive && (sticky === null || sticky === void 0 ? void 0 : sticky.side) || undefined,
148
- style: _objectSpread(_objectSpread({}, _style), inlineWidthStyles)
149
- }, rest), canSort ? (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({
150
- content: tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.content
151
- }, tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.tooltipProps, {
152
- display: "block"
153
- }), (0, _react2.jsx)("button", {
154
- type: "button",
155
- css: styles.euiTableHeaderCell__button,
156
- className: (0, _classnames.default)('euiTableHeaderButton', {
157
- 'euiTableHeaderButton-isSorted': isSorted
158
- }),
159
- onClick: onSort,
160
- "data-test-subj": "tableHeaderSortButton"
161
- }, (0, _react2.jsx)(CellContents, cellContentsProps))) : (0, _react2.jsx)(CellContents, cellContentsProps), append);
175
+ var handleResize = (0, _react.useCallback)(function (entries) {
176
+ var entry = entries[0];
177
+ if (!entry) {
178
+ return;
179
+ }
180
+ store.updateColumnWidth(internalCellId, entry.contentRect.width);
181
+ }, [store, internalCellId]);
182
+ (0, _react.useEffect)(function () {
183
+ // Don't register the column inside the sticky header as the original
184
+ // column is already registered. This would cause an infinite loop.
185
+ if (isWithinStickyHeader || !selfRef.current || !renderHeaderCellRef.current) {
186
+ return;
187
+ }
188
+ var unregisterColumn = store.registerColumn(internalCellId, {
189
+ renderHeaderCellRef: renderHeaderCellRef,
190
+ // getBoundingClientRect is not the cheapest, but we call it only once
191
+ currentWidth: selfRef.current.getBoundingClientRect().width
192
+ });
193
+
194
+ // ResizeObserver is available in all supported browsers,
195
+ // but jsdom and jest don't provide a polyfill for it.
196
+ var resizeObserver;
197
+ if (typeof window.ResizeObserver !== 'undefined') {
198
+ resizeObserver = new ResizeObserver(handleResize);
199
+
200
+ // Note: This _could_ be optimized by using a single ResizeObserver
201
+ // for the whole EuiTable, but it would need to be changed back to this
202
+ // if/when we implement resizable columns
203
+ resizeObserver.observe(selfRef.current);
204
+ }
205
+ return function () {
206
+ var _resizeObserver;
207
+ unregisterColumn();
208
+ (_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
209
+ };
210
+ // eslint-disable-next-line react-hooks/exhaustive-deps
211
+ }, [store, internalCellId, isWithinStickyHeader]);
212
+
213
+ // Notify the store on every render so the sticky header stays in sync.
214
+ // React's reconciliation will efficiently handle any duplicate renders.
215
+ (0, _react.useEffect)(function () {
216
+ // Don't update the store if the component is rendered within EuiTableStickyHeader
217
+ if (isWithinStickyHeader) {
218
+ return;
219
+ }
220
+
221
+ // Don't update the store if the element doesn't exist. The render function
222
+ // in `renderHeaderCellRef` sometimes renders null - e.g., in mobile layout
223
+ if (!selfRef.current) {
224
+ return;
225
+ }
226
+ store.updateColumn(internalCellId, {
227
+ renderHeaderCellRef: renderHeaderCellRef
228
+ });
229
+ });
230
+ return renderHeaderCellRef.current({
231
+ ref: selfRef
232
+ });
162
233
  };