@elastic/eui 116.2.0 → 116.3.1

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 (234) hide show
  1. package/es/components/avatar/avatar.js +18 -5
  2. package/es/components/avatar/avatar.styles.js +16 -16
  3. package/es/components/banner/banner.js +202 -0
  4. package/es/components/banner/banner.styles.js +76 -0
  5. package/es/components/banner/index.js +9 -0
  6. package/es/components/basic_table/basic_table.js +21 -10
  7. package/es/components/basic_table/collapsed_item_actions.js +5 -4
  8. package/es/components/basic_table/default_item_action.js +3 -5
  9. package/es/components/breadcrumbs/_breadcrumb_content.js +29 -19
  10. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  11. package/es/components/context_menu/context_menu_panel_title.js +0 -12
  12. package/es/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  13. package/es/components/datagrid/controls/display_selector.js +2 -1
  14. package/es/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  15. package/es/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  16. package/es/components/date_picker/react-datepicker/src/index.js +1 -5
  17. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  18. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  19. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  20. package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  21. package/es/components/form/field_password/field_password.js +6 -3
  22. package/es/components/header/header.a11y.js +1 -1
  23. package/es/components/index.js +1 -0
  24. package/es/components/markdown_editor/markdown_editor_help_button.js +7 -4
  25. package/es/components/pagination/pagination_button_arrow.js +6 -2
  26. package/es/components/panel/panel.styles.js +4 -4
  27. package/es/components/panel/split_panel/split_panel.styles.js +1 -1
  28. package/es/components/search_bar/search_bar.js +20 -16
  29. package/es/components/search_bar/search_box.js +4 -2
  30. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  31. package/es/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  32. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
  33. package/es/components/table/sticky_header/context.js +32 -0
  34. package/es/components/table/sticky_header/index.js +10 -0
  35. package/es/components/table/sticky_header/sticky_header.js +151 -0
  36. package/es/components/table/sticky_header/sticky_header.styles.js +43 -0
  37. package/es/components/table/store/provider.js +37 -0
  38. package/es/components/table/store/store.js +82 -0
  39. package/es/components/table/store/use_unique_column_id.js +25 -0
  40. package/es/components/table/table.js +28 -3
  41. package/es/components/table/table.styles.js +4 -4
  42. package/es/components/table/table_header_cell.js +115 -48
  43. package/es/components/table/table_header_cell_checkbox.js +58 -25
  44. package/es/components/text_truncate/text_truncate.js +8 -3
  45. package/es/components/tool_tip/tool_tip.js +1 -1
  46. package/es/components/tool_tip/tool_tip.styles.js +14 -5
  47. package/es/utils/publisher.js +53 -0
  48. package/eui.d.ts +1284 -975
  49. package/i18ntokens.json +2390 -2372
  50. package/lib/components/avatar/avatar.js +18 -5
  51. package/lib/components/avatar/avatar.styles.js +16 -16
  52. package/lib/components/banner/banner.js +211 -0
  53. package/lib/components/banner/banner.styles.js +80 -0
  54. package/lib/components/banner/index.js +12 -0
  55. package/lib/components/basic_table/basic_table.js +21 -10
  56. package/lib/components/basic_table/collapsed_item_actions.js +5 -4
  57. package/lib/components/basic_table/default_item_action.js +3 -5
  58. package/lib/components/breadcrumbs/_breadcrumb_content.js +29 -19
  59. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  60. package/lib/components/context_menu/context_menu_panel_title.js +0 -12
  61. package/lib/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  62. package/lib/components/datagrid/controls/display_selector.js +2 -1
  63. package/lib/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  64. package/lib/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  65. package/lib/components/date_picker/react-datepicker/src/index.js +0 -4
  66. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  67. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  68. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  69. package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  70. package/lib/components/form/field_password/field_password.js +6 -3
  71. package/lib/components/header/header.a11y.js +1 -1
  72. package/lib/components/index.js +11 -0
  73. package/lib/components/markdown_editor/markdown_editor_help_button.js +7 -4
  74. package/lib/components/pagination/pagination_button_arrow.js +6 -2
  75. package/lib/components/panel/panel.styles.js +4 -4
  76. package/lib/components/panel/split_panel/split_panel.styles.js +1 -1
  77. package/lib/components/search_bar/search_bar.js +20 -16
  78. package/lib/components/search_bar/search_box.js +4 -2
  79. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  80. package/lib/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  81. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
  82. package/lib/components/table/sticky_header/context.js +41 -0
  83. package/lib/components/table/sticky_header/index.js +19 -0
  84. package/lib/components/table/sticky_header/sticky_header.js +156 -0
  85. package/lib/components/table/sticky_header/sticky_header.styles.js +47 -0
  86. package/lib/components/table/store/provider.js +46 -0
  87. package/lib/components/table/store/store.js +87 -0
  88. package/lib/components/table/store/use_unique_column_id.js +34 -0
  89. package/lib/components/table/table.js +28 -3
  90. package/lib/components/table/table.styles.js +4 -4
  91. package/lib/components/table/table_header_cell.js +117 -48
  92. package/lib/components/table/table_header_cell_checkbox.js +61 -25
  93. package/lib/components/text_truncate/text_truncate.js +8 -3
  94. package/lib/components/tool_tip/tool_tip.js +1 -1
  95. package/lib/components/tool_tip/tool_tip.styles.js +14 -5
  96. package/lib/utils/publisher.js +59 -0
  97. package/optimize/es/components/avatar/avatar.js +16 -4
  98. package/optimize/es/components/avatar/avatar.styles.js +16 -16
  99. package/optimize/es/components/banner/banner.js +112 -0
  100. package/optimize/es/components/banner/banner.styles.js +76 -0
  101. package/optimize/es/components/banner/index.js +9 -0
  102. package/optimize/es/components/basic_table/basic_table.js +21 -10
  103. package/optimize/es/components/basic_table/collapsed_item_actions.js +5 -4
  104. package/optimize/es/components/basic_table/default_item_action.js +3 -5
  105. package/optimize/es/components/breadcrumbs/_breadcrumb_content.js +27 -18
  106. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  107. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  108. package/optimize/es/components/datagrid/controls/display_selector.js +2 -1
  109. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  110. package/optimize/es/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  111. package/optimize/es/components/date_picker/react-datepicker/src/index.js +1 -5
  112. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  113. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  114. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  115. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  116. package/optimize/es/components/form/field_password/field_password.js +6 -3
  117. package/optimize/es/components/header/header.a11y.js +1 -1
  118. package/optimize/es/components/index.js +1 -0
  119. package/optimize/es/components/markdown_editor/markdown_editor_help_button.js +7 -4
  120. package/optimize/es/components/pagination/pagination_button_arrow.js +6 -2
  121. package/optimize/es/components/panel/panel.styles.js +4 -4
  122. package/optimize/es/components/panel/split_panel/split_panel.styles.js +1 -1
  123. package/optimize/es/components/search_bar/search_bar.js +20 -16
  124. package/optimize/es/components/search_bar/search_box.js +4 -2
  125. package/optimize/es/components/selectable/selectable_list/selectable_list.js +1 -1
  126. package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  127. package/optimize/es/components/table/sticky_header/context.js +32 -0
  128. package/optimize/es/components/table/sticky_header/index.js +10 -0
  129. package/optimize/es/components/table/sticky_header/sticky_header.js +146 -0
  130. package/optimize/es/components/table/sticky_header/sticky_header.styles.js +43 -0
  131. package/optimize/es/components/table/store/provider.js +37 -0
  132. package/optimize/es/components/table/store/store.js +82 -0
  133. package/optimize/es/components/table/store/use_unique_column_id.js +25 -0
  134. package/optimize/es/components/table/table.js +15 -3
  135. package/optimize/es/components/table/table.styles.js +4 -4
  136. package/optimize/es/components/table/table_header_cell.js +115 -48
  137. package/optimize/es/components/table/table_header_cell_checkbox.js +58 -25
  138. package/optimize/es/components/text_truncate/text_truncate.js +8 -3
  139. package/optimize/es/components/tool_tip/tool_tip.js +1 -1
  140. package/optimize/es/components/tool_tip/tool_tip.styles.js +14 -5
  141. package/optimize/es/utils/publisher.js +53 -0
  142. package/optimize/lib/components/avatar/avatar.js +16 -4
  143. package/optimize/lib/components/avatar/avatar.styles.js +16 -16
  144. package/optimize/lib/components/banner/banner.js +121 -0
  145. package/optimize/lib/components/banner/banner.styles.js +80 -0
  146. package/optimize/lib/components/banner/index.js +12 -0
  147. package/optimize/lib/components/basic_table/basic_table.js +21 -10
  148. package/optimize/lib/components/basic_table/collapsed_item_actions.js +5 -4
  149. package/optimize/lib/components/basic_table/default_item_action.js +3 -5
  150. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.js +27 -18
  151. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  152. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  153. package/optimize/lib/components/datagrid/controls/display_selector.js +2 -1
  154. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  155. package/optimize/lib/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  156. package/optimize/lib/components/date_picker/react-datepicker/src/index.js +0 -4
  157. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  158. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  159. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  160. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  161. package/optimize/lib/components/form/field_password/field_password.js +6 -3
  162. package/optimize/lib/components/header/header.a11y.js +1 -1
  163. package/optimize/lib/components/index.js +11 -0
  164. package/optimize/lib/components/markdown_editor/markdown_editor_help_button.js +7 -4
  165. package/optimize/lib/components/pagination/pagination_button_arrow.js +6 -2
  166. package/optimize/lib/components/panel/panel.styles.js +4 -4
  167. package/optimize/lib/components/panel/split_panel/split_panel.styles.js +1 -1
  168. package/optimize/lib/components/search_bar/search_bar.js +20 -16
  169. package/optimize/lib/components/search_bar/search_box.js +4 -2
  170. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  171. package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  172. package/optimize/lib/components/table/sticky_header/context.js +41 -0
  173. package/optimize/lib/components/table/sticky_header/index.js +19 -0
  174. package/optimize/lib/components/table/sticky_header/sticky_header.js +156 -0
  175. package/optimize/lib/components/table/sticky_header/sticky_header.styles.js +47 -0
  176. package/optimize/lib/components/table/store/provider.js +46 -0
  177. package/optimize/lib/components/table/store/store.js +87 -0
  178. package/optimize/lib/components/table/store/use_unique_column_id.js +34 -0
  179. package/optimize/lib/components/table/table.js +15 -3
  180. package/optimize/lib/components/table/table.styles.js +4 -4
  181. package/optimize/lib/components/table/table_header_cell.js +118 -48
  182. package/optimize/lib/components/table/table_header_cell_checkbox.js +61 -25
  183. package/optimize/lib/components/text_truncate/text_truncate.js +8 -3
  184. package/optimize/lib/components/tool_tip/tool_tip.js +1 -1
  185. package/optimize/lib/components/tool_tip/tool_tip.styles.js +14 -5
  186. package/optimize/lib/utils/publisher.js +59 -0
  187. package/package.json +2 -2
  188. package/test-env/components/avatar/avatar.js +18 -5
  189. package/test-env/components/avatar/avatar.styles.js +16 -16
  190. package/test-env/components/banner/banner.js +210 -0
  191. package/test-env/components/banner/banner.styles.js +80 -0
  192. package/test-env/components/banner/index.js +12 -0
  193. package/test-env/components/basic_table/basic_table.js +21 -10
  194. package/test-env/components/basic_table/collapsed_item_actions.js +5 -4
  195. package/test-env/components/basic_table/default_item_action.js +3 -5
  196. package/test-env/components/breadcrumbs/_breadcrumb_content.js +29 -19
  197. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  198. package/test-env/components/context_menu/context_menu_panel_title.js +0 -12
  199. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  200. package/test-env/components/datagrid/controls/display_selector.js +2 -1
  201. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  202. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  203. package/test-env/components/date_picker/react-datepicker/src/index.js +0 -4
  204. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  205. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  206. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  207. package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  208. package/test-env/components/form/field_password/field_password.js +6 -3
  209. package/test-env/components/header/header.a11y.js +1 -1
  210. package/test-env/components/index.js +11 -0
  211. package/test-env/components/markdown_editor/markdown_editor_help_button.js +7 -4
  212. package/test-env/components/pagination/pagination_button_arrow.js +6 -2
  213. package/test-env/components/panel/panel.styles.js +4 -4
  214. package/test-env/components/panel/split_panel/split_panel.styles.js +1 -1
  215. package/test-env/components/search_bar/search_bar.js +20 -16
  216. package/test-env/components/search_bar/search_box.js +4 -2
  217. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  218. package/test-env/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  219. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
  220. package/test-env/components/table/sticky_header/context.js +41 -0
  221. package/test-env/components/table/sticky_header/index.js +19 -0
  222. package/test-env/components/table/sticky_header/sticky_header.js +156 -0
  223. package/test-env/components/table/sticky_header/sticky_header.styles.js +47 -0
  224. package/test-env/components/table/store/provider.js +46 -0
  225. package/test-env/components/table/store/store.js +87 -0
  226. package/test-env/components/table/store/use_unique_column_id.js +34 -0
  227. package/test-env/components/table/table.js +28 -3
  228. package/test-env/components/table/table.styles.js +4 -4
  229. package/test-env/components/table/table_header_cell.js +118 -48
  230. package/test-env/components/table/table_header_cell_checkbox.js +61 -25
  231. package/test-env/components/text_truncate/text_truncate.js +8 -3
  232. package/test-env/components/tool_tip/tool_tip.js +1 -1
  233. package/test-env/components/tool_tip/tool_tip.styles.js +14 -5
  234. package/test-env/utils/publisher.js +59 -0
@@ -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
  });
@@ -9,7 +10,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
9
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
- var _react = _interopRequireDefault(require("react"));
13
+ var _react = _interopRequireWildcard(require("react"));
13
14
  var _classnames = _interopRequireDefault(require("classnames"));
14
15
  var _services = require("../../services");
15
16
  var _i18n = require("../i18n");
@@ -21,8 +22,13 @@ var _utils = require("./utils");
21
22
  var _responsive_context = require("./mobile/responsive_context");
22
23
  var _table_cell_content = require("./_table_cell_content");
23
24
  var _table_cells_shared = require("./table_cells_shared.styles");
25
+ var _provider = require("./store/provider");
26
+ var _sticky_header = require("./sticky_header");
27
+ var _use_unique_column_id = require("./store/use_unique_column_id");
24
28
  var _react2 = require("@emotion/react");
25
29
  var _excluded = ["children", "align", "onSort", "isSorted", "isSortAscending", "className", "scope", "mobileOptions", "width", "minWidth", "maxWidth", "style", "readOnly", "tooltipProps", "description", "append", "sticky"];
30
+ 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); }
31
+ 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; }
26
32
  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; }
27
33
  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; } /*
28
34
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -106,60 +112,124 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
106
112
  append = _ref2.append,
107
113
  sticky = _ref2.sticky,
108
114
  rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
115
+ var selfRef = (0, _react.useRef)(null);
116
+ var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
117
+ var store = (0, _provider.useEuiTableColumnDataStore)();
118
+ var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
109
119
  var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableHeaderFooterCellStyles);
110
120
  var stickyStyles = (0, _table_cells_shared._useEuiTableStickyCellStyles)(sticky);
111
121
  var isResponsive = (0, _responsive_context.useEuiTableIsResponsive)();
112
122
  var hideForDesktop = !isResponsive && (mobileOptions === null || mobileOptions === void 0 ? void 0 : mobileOptions.only);
113
123
  var hideForMobile = isResponsive && (mobileOptions === null || mobileOptions === void 0 ? void 0 : mobileOptions.show) === false;
114
- if (hideForDesktop || hideForMobile) return null;
115
- var classes = (0, _classnames.default)('euiTableHeaderCell', className);
116
- var cssStyles = [styles.euiTableHeaderCell, !isResponsive && stickyStyles];
117
- var inlineWidthStyles = (0, _utils.resolveWidthPropsAsStyle)(_style, {
118
- width: width,
119
- minWidth: minWidth,
120
- maxWidth: maxWidth
121
- });
122
- var CellComponent = children ? 'th' : 'td';
123
- var cellScope = CellComponent === 'th' ? scope !== null && scope !== void 0 ? scope : 'col' : undefined; // `scope` is only valid on `th` elements
124
+ var renderHeaderCellRef = (0, _react.useRef)();
125
+ renderHeaderCellRef.current = function (extraProps) {
126
+ if (hideForDesktop || hideForMobile) return null;
127
+ var classes = (0, _classnames.default)('euiTableHeaderCell', className);
128
+ var cssStyles = [styles.euiTableHeaderCell, !isResponsive && stickyStyles];
129
+ var inlineWidthStyles = (0, _utils.resolveWidthPropsAsStyle)(_style, {
130
+ width: width,
131
+ minWidth: minWidth,
132
+ maxWidth: maxWidth
133
+ });
134
+ var CellComponent = children ? 'th' : 'td';
135
+ var cellScope = CellComponent === 'th' ? scope !== null && scope !== void 0 ? scope : 'col' : undefined; // `scope` is only valid on `th` elements
124
136
 
125
- var canSort = !!(onSort && !readOnly);
126
- var ariaSortValue;
127
- if (isSorted) {
128
- ariaSortValue = isSortAscending ? 'ascending' : 'descending';
129
- } else if (canSort) {
130
- ariaSortValue = 'none';
131
- }
132
- var cellContentsProps = {
133
- css: styles.euiTableHeaderCell__content,
134
- align: align,
135
- tooltipProps: tooltipProps,
136
- description: description,
137
- canSort: canSort,
138
- isSorted: isSorted,
139
- isSortAscending: isSortAscending,
140
- children: children
137
+ var canSort = !!(onSort && !readOnly);
138
+ var ariaSortValue;
139
+ if (isSorted) {
140
+ ariaSortValue = isSortAscending ? 'ascending' : 'descending';
141
+ } else if (canSort) {
142
+ ariaSortValue = 'none';
143
+ }
144
+ var cellContentsProps = {
145
+ css: styles.euiTableHeaderCell__content,
146
+ align: align,
147
+ tooltipProps: tooltipProps,
148
+ description: description,
149
+ canSort: canSort,
150
+ isSorted: isSorted,
151
+ isSortAscending: isSortAscending,
152
+ children: children
153
+ };
154
+ return (0, _react2.jsx)(CellComponent, (0, _extends2.default)({
155
+ css: cssStyles,
156
+ className: classes,
157
+ scope: cellScope,
158
+ role: "columnheader",
159
+ "aria-sort": ariaSortValue,
160
+ "data-sticky": !isResponsive && (sticky === null || sticky === void 0 ? void 0 : sticky.side) || undefined,
161
+ style: _objectSpread(_objectSpread({}, _style), inlineWidthStyles)
162
+ }, rest, extraProps), canSort ? (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({
163
+ content: tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.content
164
+ }, tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.tooltipProps, {
165
+ display: "block"
166
+ }), (0, _react2.jsx)("button", {
167
+ type: "button",
168
+ css: styles.euiTableHeaderCell__button,
169
+ className: (0, _classnames.default)('euiTableHeaderButton', {
170
+ 'euiTableHeaderButton-isSorted': isSorted
171
+ }),
172
+ onClick: onSort,
173
+ "data-test-subj": "tableHeaderSortButton"
174
+ }, (0, _react2.jsx)(CellContents, cellContentsProps))) : (0, _react2.jsx)(CellContents, cellContentsProps), append);
141
175
  };
142
- return (0, _react2.jsx)(CellComponent, (0, _extends2.default)({
143
- css: cssStyles,
144
- className: classes,
145
- scope: cellScope,
146
- role: "columnheader",
147
- "aria-sort": ariaSortValue,
148
- "data-sticky": !isResponsive && (sticky === null || sticky === void 0 ? void 0 : sticky.side) || undefined,
149
- style: _objectSpread(_objectSpread({}, _style), inlineWidthStyles)
150
- }, rest), canSort ? (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({
151
- content: tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.content
152
- }, tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.tooltipProps, {
153
- display: "block"
154
- }), (0, _react2.jsx)("button", {
155
- type: "button",
156
- css: styles.euiTableHeaderCell__button,
157
- className: (0, _classnames.default)('euiTableHeaderButton', {
158
- 'euiTableHeaderButton-isSorted': isSorted
159
- }),
160
- onClick: onSort,
161
- "data-test-subj": "tableHeaderSortButton"
162
- }, (0, _react2.jsx)(CellContents, cellContentsProps))) : (0, _react2.jsx)(CellContents, cellContentsProps), append);
176
+ var handleResize = (0, _react.useCallback)(function (entries) {
177
+ var entry = entries[0];
178
+ if (!entry) {
179
+ return;
180
+ }
181
+ store.updateColumnWidth(storeCellId, entry.contentRect.width);
182
+ }, [store, storeCellId]);
183
+ (0, _react.useEffect)(function () {
184
+ // Don't register the column inside the sticky header as the original
185
+ // column is already registered. This would cause an infinite loop.
186
+ if (isWithinStickyHeader || !selfRef.current || !renderHeaderCellRef.current) {
187
+ return;
188
+ }
189
+ var unregisterColumn = store.registerColumn(storeCellId, {
190
+ renderHeaderCellRef: renderHeaderCellRef,
191
+ // getBoundingClientRect is not the cheapest, but we call it only once
192
+ currentWidth: selfRef.current.getBoundingClientRect().width
193
+ });
194
+
195
+ // ResizeObserver is available in all supported browsers,
196
+ // but jsdom and jest don't provide a polyfill for it.
197
+ var resizeObserver;
198
+ if (typeof window.ResizeObserver !== 'undefined') {
199
+ resizeObserver = new ResizeObserver(handleResize);
200
+
201
+ // Note: This _could_ be optimized by using a single ResizeObserver
202
+ // for the whole EuiTable, but it would need to be changed back to this
203
+ // if/when we implement resizable columns
204
+ resizeObserver.observe(selfRef.current);
205
+ }
206
+ return function () {
207
+ var _resizeObserver;
208
+ unregisterColumn();
209
+ (_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
210
+ };
211
+ }, [store, isWithinStickyHeader, handleResize, storeCellId]);
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(storeCellId, {
227
+ renderHeaderCellRef: renderHeaderCellRef
228
+ });
229
+ });
230
+ return renderHeaderCellRef.current({
231
+ ref: selfRef
232
+ });
163
233
  };
164
234
  EuiTableHeaderCell.propTypes = {
165
235
  className: _propTypes.default.string,
@@ -1,18 +1,22 @@
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.EuiTableHeaderCellCheckbox = 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 _propTypes = _interopRequireDefault(require("prop-types"));
12
13
  var _classnames = _interopRequireDefault(require("classnames"));
13
14
  var _services = require("../../services");
14
15
  var _utils = require("./utils");
15
16
  var _table_cells_shared = require("./table_cells_shared.styles");
17
+ var _provider = require("./store/provider");
18
+ var _sticky_header = require("./sticky_header");
19
+ var _use_unique_column_id = require("./store/use_unique_column_id");
16
20
  var _react2 = require("@emotion/react");
17
21
  var _excluded = ["children", "className", "scope", "style", "width", "minWidth", "maxWidth", "append"];
18
22
  /*
@@ -22,32 +26,64 @@ var _excluded = ["children", "className", "scope", "style", "width", "minWidth",
22
26
  * in compliance with, at your election, the Elastic License 2.0 or the Server
23
27
  * Side Public License, v 1.
24
28
  */
25
- var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(_ref) {
26
- var children = _ref.children,
27
- className = _ref.className,
28
- _ref$scope = _ref.scope,
29
- scope = _ref$scope === void 0 ? 'col' : _ref$scope,
30
- _style = _ref.style,
31
- width = _ref.width,
32
- minWidth = _ref.minWidth,
33
- maxWidth = _ref.maxWidth,
34
- append = _ref.append,
35
- rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
36
- var classes = (0, _classnames.default)('euiTableHeaderCellCheckbox', className);
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; }
31
+ var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(props) {
32
+ var children = props.children,
33
+ className = props.className,
34
+ _props$scope = props.scope,
35
+ scope = _props$scope === void 0 ? 'col' : _props$scope,
36
+ _style = props.style,
37
+ width = props.width,
38
+ minWidth = props.minWidth,
39
+ maxWidth = props.maxWidth,
40
+ append = props.append,
41
+ rest = (0, _objectWithoutProperties2.default)(props, _excluded);
42
+ var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
43
+ var store = (0, _provider.useEuiTableColumnDataStore)();
44
+ var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
37
45
  var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableCellCheckboxStyles);
38
- var style = (0, _utils.resolveWidthPropsAsStyle)(_style, {
39
- width: width,
40
- minWidth: minWidth,
41
- maxWidth: maxWidth
46
+ var renderHeaderCellRef = (0, _react.useRef)();
47
+ renderHeaderCellRef.current = function (extraProps) {
48
+ var classes = (0, _classnames.default)('euiTableHeaderCellCheckbox', className);
49
+ var style = (0, _utils.resolveWidthPropsAsStyle)(_style, {
50
+ width: width,
51
+ minWidth: minWidth,
52
+ maxWidth: maxWidth
53
+ });
54
+ return (0, _react2.jsx)("th", (0, _extends2.default)({
55
+ css: styles.euiTableHeaderCellCheckbox,
56
+ className: classes,
57
+ scope: scope,
58
+ style: style
59
+ }, rest, extraProps), (0, _react2.jsx)("div", {
60
+ className: "euiTableCellContent"
61
+ }, children), append);
62
+ };
63
+ (0, _react.useEffect)(function () {
64
+ // Don't register the column inside the sticky header as the original
65
+ // column is already registered. This would cause an infinite loop.
66
+ if (isWithinStickyHeader) {
67
+ return;
68
+ }
69
+ var unregisterColumn = store.registerColumn(storeCellId, {
70
+ renderHeaderCellRef: renderHeaderCellRef
71
+ });
72
+ return function () {
73
+ unregisterColumn();
74
+ };
75
+ }, [store, isWithinStickyHeader, storeCellId]);
76
+ (0, _react.useEffect)(function () {
77
+ // Notify the store on every render so the sticky header stays in sync.
78
+ // React's reconciliation will efficiently handle any duplicate renders.
79
+ if (isWithinStickyHeader) {
80
+ return;
81
+ }
82
+ store.updateColumn(storeCellId, {
83
+ renderHeaderCellRef: renderHeaderCellRef
84
+ });
42
85
  });
43
- return (0, _react2.jsx)("th", (0, _extends2.default)({
44
- css: styles.euiTableHeaderCellCheckbox,
45
- className: classes,
46
- scope: scope,
47
- style: style
48
- }, rest), (0, _react2.jsx)("div", {
49
- className: "euiTableCellContent"
50
- }, children), append);
86
+ return renderHeaderCellRef.current({});
51
87
  };
52
88
  EuiTableHeaderCellCheckbox.propTypes = {
53
89
  className: _propTypes.default.string,
@@ -14,6 +14,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
  var _services = require("../../services");
16
16
  var _resize_observer = require("../observer/resize_observer");
17
+ var _tool_tip = require("../tool_tip");
17
18
  var _utils = require("./utils");
18
19
  var _text_truncate = require("./text_truncate.styles");
19
20
  var _react2 = require("@emotion/react");
@@ -207,11 +208,10 @@ var EuiTextTruncateWithWidth = function EuiTextTruncateWithWidth(_ref2) {
207
208
  }, [ready, width, text, truncation, truncationOffset, truncationPosition, ellipsis, containerEl]);
208
209
  var isTruncating = truncatedText !== text;
209
210
  var styles = (0, _services.useEuiMemoizedStyles)(_text_truncate.euiTextTruncateStyles);
210
- return (0, _react2.jsx)("div", (0, _extends2.default)({
211
+ var content = (0, _react2.jsx)("div", (0, _extends2.default)({
211
212
  className: (0, _classnames.default)('euiTextTruncate', className),
212
213
  css: styles.euiTextTruncate,
213
- ref: refs,
214
- title: isTruncating ? text : undefined
214
+ ref: refs
215
215
  }, rest), isTruncating ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("span", {
216
216
  className: "euiTextTruncate__truncatedText",
217
217
  css: styles.euiTextTruncate__truncatedText,
@@ -225,6 +225,11 @@ var EuiTextTruncateWithWidth = function EuiTextTruncateWithWidth(_ref2) {
225
225
  className: "euiTextTruncate__fullText",
226
226
  "data-test-subj": "fullText"
227
227
  }, children ? children(text) : text));
228
+ return isTruncating ? (0, _react2.jsx)(_tool_tip.EuiToolTip, {
229
+ content: text,
230
+ disableScreenReaderOutput: true,
231
+ display: "block"
232
+ }, content) : content;
228
233
  };
229
234
  EuiTextTruncateWithWidth.propTypes = {
230
235
  width: _propTypes.default.number.isRequired,
@@ -33,7 +33,7 @@ var _excluded = ["children", "className", "anchorClassName", "anchorProps", "con
33
33
  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); }
34
34
  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; }
35
35
  var POSITIONS = exports.POSITIONS = ['top', 'right', 'bottom', 'left'];
36
- var DISPLAYS = ['inlineBlock', 'block'];
36
+ var DISPLAYS = ['inlineBlock', 'block', 'flex'];
37
37
  var DEFAULT_TOOLTIP_OFFSET = exports.DEFAULT_TOOLTIP_OFFSET = 16;
38
38
 
39
39
  /**
@@ -48,6 +48,14 @@ var euiToolTipStyles = exports.euiToolTipStyles = function euiToolTipStyles(euiT
48
48
  };
49
49
  };
50
50
  var _ref = process.env.NODE_ENV === "production" ? {
51
+ name: "1cjglks-flex",
52
+ styles: "display:flex;label:flex;"
53
+ } : {
54
+ name: "1cjglks-flex",
55
+ styles: "display:flex;label:flex;",
56
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
57
+ };
58
+ var _ref2 = process.env.NODE_ENV === "production" ? {
51
59
  name: "fzilnk-inlineBlock",
52
60
  styles: "display:inline-block;label:inlineBlock;"
53
61
  } : {
@@ -55,7 +63,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
55
63
  styles: "display:inline-block;label:inlineBlock;",
56
64
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
57
65
  };
58
- var _ref2 = process.env.NODE_ENV === "production" ? {
66
+ var _ref3 = process.env.NODE_ENV === "production" ? {
59
67
  name: "14aceuy-block",
60
68
  styles: "display:block;label:block;"
61
69
  } : {
@@ -63,7 +71,7 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
63
71
  styles: "display:block;label:block;",
64
72
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
65
73
  };
66
- var _ref3 = process.env.NODE_ENV === "production" ? {
74
+ var _ref4 = process.env.NODE_ENV === "production" ? {
67
75
  name: "1s3i3p5-euiToolTipAnchor",
68
76
  styles: "*[disabled]{pointer-events:none;};label:euiToolTipAnchor;"
69
77
  } : {
@@ -74,9 +82,10 @@ var _ref3 = process.env.NODE_ENV === "production" ? {
74
82
  var euiToolTipAnchorStyles = exports.euiToolTipAnchorStyles = function euiToolTipAnchorStyles() {
75
83
  return {
76
84
  // Elements
77
- euiToolTipAnchor: _ref3,
85
+ euiToolTipAnchor: _ref4,
78
86
  // Variants
79
- block: _ref2,
80
- inlineBlock: _ref
87
+ block: _ref3,
88
+ inlineBlock: _ref2,
89
+ flex: _ref
81
90
  };
82
91
  };
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createPublisher = void 0;
7
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
8
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
9
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
10
+ /*
11
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
+ * or more contributor license agreements. Licensed under the Elastic License
13
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
14
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
15
+ * Side Public License, v 1.
16
+ */
17
+
18
+ /**
19
+ * @internal
20
+ */
21
+
22
+ /**
23
+ * @internal
24
+ */
25
+
26
+ /**
27
+ * @internal
28
+ */
29
+ var createPublisher = exports.createPublisher = function createPublisher() {
30
+ var subscribers = new Set();
31
+ var unsubscribe = function unsubscribe(subscriber) {
32
+ subscribers.delete(subscriber);
33
+ };
34
+ var subscribe = function subscribe(subscriber) {
35
+ subscribers.add(subscriber);
36
+ return function () {
37
+ return unsubscribe(subscriber);
38
+ };
39
+ };
40
+ var notify = function notify(subject) {
41
+ var _iterator = _createForOfIteratorHelper(subscribers),
42
+ _step;
43
+ try {
44
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
45
+ var _subscriber = _step.value;
46
+ _subscriber(subject);
47
+ }
48
+ } catch (err) {
49
+ _iterator.e(err);
50
+ } finally {
51
+ _iterator.f();
52
+ }
53
+ };
54
+ return {
55
+ subscribe: subscribe,
56
+ unsubscribe: unsubscribe,
57
+ notify: notify
58
+ };
59
+ };