@elastic/eui 88.0.0 → 88.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/eui_charts_theme.js +9 -8
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +11 -41
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +11 -41
  6. package/dist/eui_theme_light.min.css +1 -1
  7. package/es/components/accordion/accordion.js +34 -9
  8. package/es/components/accordion/accordion.styles.js +29 -9
  9. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +10 -2
  10. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +10 -26
  11. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  12. package/es/components/datagrid/controls/keyboard_shortcuts.js +1 -0
  13. package/es/components/description_list/description_list.js +40 -3
  14. package/es/components/flyout/flyout.styles.js +1 -1
  15. package/es/components/header/header.js +120 -25
  16. package/es/components/header/header.styles.js +1 -1
  17. package/es/components/index.js +1 -0
  18. package/es/components/markdown_editor/markdown_format.styles.js +3 -6
  19. package/es/components/overlay_mask/overlay_mask.styles.js +1 -1
  20. package/es/components/page/page_sidebar/page_sidebar.js +2 -4
  21. package/es/components/page_template/page_template.js +4 -31
  22. package/es/components/text/text.styles.js +3 -6
  23. package/es/components/text_truncate/index.js +10 -0
  24. package/es/components/text_truncate/text_truncate.js +232 -0
  25. package/es/components/text_truncate/text_truncate.styles.js +49 -0
  26. package/es/components/text_truncate/utils.js +348 -0
  27. package/es/global_styling/functions/typography.js +8 -8
  28. package/es/global_styling/variables/typography.js +1 -1
  29. package/es/services/theme/context.js +3 -1
  30. package/es/services/theme/hooks.js +19 -1
  31. package/es/services/theme/index.js +1 -1
  32. package/es/services/theme/provider.js +37 -8
  33. package/es/themes/amsterdam/global_styling/variables/_typography.js +1 -0
  34. package/eui.d.ts +282 -24
  35. package/i18ntokens.json +112 -112
  36. package/lib/components/accordion/accordion.js +33 -8
  37. package/lib/components/accordion/accordion.styles.js +31 -10
  38. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +10 -2
  39. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +10 -26
  40. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  41. package/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -0
  42. package/lib/components/description_list/description_list.js +39 -3
  43. package/lib/components/flyout/flyout.styles.js +1 -1
  44. package/lib/components/header/header.js +120 -23
  45. package/lib/components/header/header.styles.js +1 -1
  46. package/lib/components/index.js +11 -0
  47. package/lib/components/markdown_editor/markdown_format.styles.js +3 -6
  48. package/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
  49. package/lib/components/page/page_sidebar/page_sidebar.js +2 -4
  50. package/lib/components/page_template/page_template.js +2 -29
  51. package/lib/components/text/text.styles.js +3 -6
  52. package/lib/components/text_truncate/index.js +25 -0
  53. package/lib/components/text_truncate/text_truncate.js +242 -0
  54. package/lib/components/text_truncate/text_truncate.styles.js +54 -0
  55. package/lib/components/text_truncate/utils.js +352 -0
  56. package/lib/global_styling/functions/typography.js +8 -8
  57. package/lib/global_styling/variables/typography.js +3 -3
  58. package/lib/services/theme/context.js +3 -1
  59. package/lib/services/theme/hooks.js +21 -2
  60. package/lib/services/theme/index.js +6 -0
  61. package/lib/services/theme/provider.js +62 -35
  62. package/lib/themes/amsterdam/global_styling/variables/_typography.js +1 -0
  63. package/optimize/es/components/accordion/accordion.js +19 -7
  64. package/optimize/es/components/accordion/accordion.styles.js +29 -9
  65. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +5 -26
  66. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  67. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +1 -0
  68. package/optimize/es/components/description_list/description_list.js +22 -2
  69. package/optimize/es/components/flyout/flyout.styles.js +1 -1
  70. package/optimize/es/components/header/header.js +75 -25
  71. package/optimize/es/components/header/header.styles.js +1 -1
  72. package/optimize/es/components/index.js +1 -0
  73. package/optimize/es/components/markdown_editor/markdown_format.styles.js +3 -6
  74. package/optimize/es/components/overlay_mask/overlay_mask.styles.js +1 -1
  75. package/optimize/es/components/page/page_sidebar/page_sidebar.js +2 -4
  76. package/optimize/es/components/page_template/page_template.js +4 -26
  77. package/optimize/es/components/text/text.styles.js +3 -6
  78. package/optimize/es/components/text_truncate/index.js +10 -0
  79. package/optimize/es/components/text_truncate/text_truncate.js +148 -0
  80. package/optimize/es/components/text_truncate/text_truncate.styles.js +49 -0
  81. package/optimize/es/components/text_truncate/utils.js +337 -0
  82. package/optimize/es/global_styling/functions/typography.js +8 -8
  83. package/optimize/es/global_styling/variables/typography.js +1 -1
  84. package/optimize/es/services/theme/context.js +3 -1
  85. package/optimize/es/services/theme/hooks.js +19 -1
  86. package/optimize/es/services/theme/index.js +1 -1
  87. package/optimize/es/services/theme/provider.js +37 -8
  88. package/optimize/es/themes/amsterdam/global_styling/variables/_typography.js +1 -0
  89. package/optimize/lib/components/accordion/accordion.js +18 -6
  90. package/optimize/lib/components/accordion/accordion.styles.js +31 -10
  91. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +5 -26
  92. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  93. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -0
  94. package/optimize/lib/components/description_list/description_list.js +22 -2
  95. package/optimize/lib/components/flyout/flyout.styles.js +1 -1
  96. package/optimize/lib/components/header/header.js +77 -24
  97. package/optimize/lib/components/header/header.styles.js +1 -1
  98. package/optimize/lib/components/index.js +11 -0
  99. package/optimize/lib/components/markdown_editor/markdown_format.styles.js +3 -6
  100. package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
  101. package/optimize/lib/components/page/page_sidebar/page_sidebar.js +2 -4
  102. package/optimize/lib/components/page_template/page_template.js +2 -24
  103. package/optimize/lib/components/text/text.styles.js +3 -6
  104. package/optimize/lib/components/text_truncate/index.js +25 -0
  105. package/optimize/lib/components/text_truncate/text_truncate.js +158 -0
  106. package/optimize/lib/components/text_truncate/text_truncate.styles.js +54 -0
  107. package/optimize/lib/components/text_truncate/utils.js +342 -0
  108. package/optimize/lib/global_styling/functions/typography.js +8 -8
  109. package/optimize/lib/global_styling/variables/typography.js +3 -3
  110. package/optimize/lib/services/theme/context.js +3 -1
  111. package/optimize/lib/services/theme/hooks.js +21 -2
  112. package/optimize/lib/services/theme/index.js +6 -0
  113. package/optimize/lib/services/theme/provider.js +62 -35
  114. package/optimize/lib/themes/amsterdam/global_styling/variables/_typography.js +1 -0
  115. package/package.json +1 -1
  116. package/src/components/datagrid/_data_grid.scss +13 -2
  117. package/src/components/datagrid/controls/_data_grid_keyboard_shortcuts.scss +1 -7
  118. package/src/components/index.scss +0 -1
  119. package/src/global_styling/mixins/_header.scss +2 -0
  120. package/test-env/components/accordion/accordion.js +28 -8
  121. package/test-env/components/accordion/accordion.styles.js +31 -10
  122. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +10 -2
  123. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +10 -26
  124. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  125. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +1 -0
  126. package/test-env/components/description_list/description_list.js +37 -3
  127. package/test-env/components/flyout/flyout.styles.js +1 -1
  128. package/test-env/components/header/header.js +113 -23
  129. package/test-env/components/header/header.styles.js +1 -1
  130. package/test-env/components/index.js +11 -0
  131. package/test-env/components/markdown_editor/markdown_format.styles.js +3 -6
  132. package/test-env/components/overlay_mask/overlay_mask.styles.js +1 -1
  133. package/test-env/components/page/page_sidebar/page_sidebar.js +2 -4
  134. package/test-env/components/page_template/page_template.js +2 -24
  135. package/test-env/components/text/text.styles.js +3 -6
  136. package/test-env/components/text_truncate/index.js +25 -0
  137. package/test-env/components/text_truncate/text_truncate.js +236 -0
  138. package/test-env/components/text_truncate/text_truncate.styles.js +54 -0
  139. package/test-env/components/text_truncate/utils.js +342 -0
  140. package/test-env/global_styling/functions/typography.js +8 -8
  141. package/test-env/global_styling/variables/typography.js +3 -3
  142. package/test-env/services/theme/context.js +3 -1
  143. package/test-env/services/theme/hooks.js +21 -2
  144. package/test-env/services/theme/index.js +6 -0
  145. package/test-env/services/theme/provider.js +62 -35
  146. package/test-env/themes/amsterdam/global_styling/variables/_typography.js +1 -0
  147. package/src/components/accordion/_accordion_form.scss +0 -40
  148. package/src/components/accordion/_index.scss +0 -1
@@ -5,18 +5,23 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.EuiHeader = void 0;
8
+ exports.euiFixedHeadersCount = exports.EuiHeader = exports.EuiFixedHeader = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
13
  var _react = _interopRequireWildcard(require("react"));
12
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
15
  var _classnames = _interopRequireDefault(require("classnames"));
14
16
  var _services = require("../../services");
17
+ var _global_styling = require("../../global_styling");
15
18
  var _header_breadcrumbs = require("./header_breadcrumbs");
16
19
  var _header_section = require("./header_section");
17
20
  var _header = require("./header.styles");
18
21
  var _react2 = require("@emotion/react");
19
- var _excluded = ["children", "className", "sections", "position", "theme"];
22
+ var _euiFixedHeadersCount, _euiFixedHeadersCount2;
23
+ var _excluded = ["children", "className", "sections", "position", "theme"],
24
+ _excluded2 = ["children", "style"];
20
25
  /*
21
26
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
22
27
  * or more contributor license agreements. Licensed under the Elastic License
@@ -26,6 +31,8 @@ var _excluded = ["children", "className", "sections", "position", "theme"];
26
31
  */
27
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
33
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
36
  var createHeaderSection = function createHeaderSection(sections) {
30
37
  return sections.map(function (section, index) {
31
38
  return (0, _react2.jsx)(_header_section.EuiHeaderSectionItem, {
@@ -33,8 +40,6 @@ var createHeaderSection = function createHeaderSection(sections) {
33
40
  }, section);
34
41
  });
35
42
  };
36
- // Start a counter to manage the total number of fixed headers that need the body class
37
- var euiHeaderFixedCounter = 0;
38
43
  var EuiHeader = function EuiHeader(_ref) {
39
44
  var children = _ref.children,
40
45
  className = _ref.className,
@@ -48,22 +53,6 @@ var EuiHeader = function EuiHeader(_ref) {
48
53
  var euiTheme = (0, _services.useEuiTheme)();
49
54
  var styles = (0, _header.euiHeaderStyles)(euiTheme);
50
55
  var cssStyles = [styles.euiHeader, styles[position], styles[theme]];
51
- (0, _react.useEffect)(function () {
52
- if (position === 'fixed') {
53
- // Increment fixed header counter for each fixed header
54
- euiHeaderFixedCounter++;
55
- document.body.classList.add('euiBody--headerIsFixed');
56
- document.body.dataset.fixedHeaders = String(euiHeaderFixedCounter);
57
- return function () {
58
- // Both decrement the fixed counter AND then check if there are none
59
- if (--euiHeaderFixedCounter === 0) {
60
- // If there are none, THEN remove class
61
- document.body.classList.remove('euiBody--headerIsFixed');
62
- delete document.body.dataset.fixedHeaders;
63
- }
64
- };
65
- }
66
- }, [position]);
67
56
  var contents;
68
57
  if (sections) {
69
58
  if (children) {
@@ -92,12 +81,22 @@ var EuiHeader = function EuiHeader(_ref) {
92
81
  } else {
93
82
  contents = children;
94
83
  }
95
- return (0, _react2.jsx)("div", (0, _extends2.default)({
84
+ return position === 'fixed' ? (0, _react2.jsx)(EuiFixedHeader, (0, _extends2.default)({
85
+ css: cssStyles,
86
+ className: classes
87
+ }, rest), contents) : (0, _react2.jsx)("div", (0, _extends2.default)({
96
88
  css: cssStyles,
97
- className: classes,
98
- "data-fixed-header": position === 'fixed' || undefined // Used by EuiFlyouts as a query selector
89
+ className: classes
99
90
  }, rest), contents);
100
91
  };
92
+
93
+ /**
94
+ * Fixed headers - logic around dynamically calculating the total
95
+ * page offset and setting the `top` position of subsequent headers
96
+ */
97
+
98
+ // Start a counter to manage the total number of fixed headers
99
+ // Exported for unit testing only
101
100
  exports.EuiHeader = EuiHeader;
102
101
  EuiHeader.propTypes = {
103
102
  className: _propTypes.default.string,
@@ -135,4 +134,95 @@ EuiHeader.propTypes = {
135
134
  * Or, force the header into pseudo `dark` theme for all themes.
136
135
  */
137
136
  theme: _propTypes.default.oneOf(["default", "dark"])
137
+ };
138
+ var euiFixedHeadersCount = 0;
139
+
140
+ // Exported for unit testing only
141
+ exports.euiFixedHeadersCount = euiFixedHeadersCount;
142
+ var EuiFixedHeader = function EuiFixedHeader(_ref2) {
143
+ var children = _ref2.children,
144
+ style = _ref2.style,
145
+ rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
146
+ var _useEuiThemeCSSVariab = (0, _services.useEuiThemeCSSVariables)(),
147
+ setGlobalCSSVariables = _useEuiThemeCSSVariab.setGlobalCSSVariables;
148
+ var euiTheme = (0, _services.useEuiTheme)();
149
+ var headerHeight = (0, _header.euiHeaderVariables)(euiTheme).height;
150
+ var getHeaderOffset = (0, _react.useCallback)(function () {
151
+ return (0, _global_styling.mathWithUnits)(headerHeight, function (x) {
152
+ return x * euiFixedHeadersCount;
153
+ });
154
+ }, [headerHeight]);
155
+ var _useState = (0, _react.useState)(),
156
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
157
+ topPosition = _useState2[0],
158
+ setTopPosition = _useState2[1];
159
+ (0, _react.useEffect)(function () {
160
+ // Get the top position from the offset of previous header(s)
161
+ setTopPosition(getHeaderOffset());
162
+
163
+ // Increment fixed header counter for each fixed header
164
+ _euiFixedHeadersCount = euiFixedHeadersCount++, exports.euiFixedHeadersCount = euiFixedHeadersCount, _euiFixedHeadersCount;
165
+ setGlobalCSSVariables({
166
+ '--euiFixedHeadersOffset': getHeaderOffset()
167
+ });
168
+ document.body.classList.add('euiBody--headerIsFixed'); // TODO: Consider deleting this legacy className
169
+
170
+ return function () {
171
+ _euiFixedHeadersCount2 = euiFixedHeadersCount--, exports.euiFixedHeadersCount = euiFixedHeadersCount, _euiFixedHeadersCount2;
172
+ setGlobalCSSVariables({
173
+ '--euiFixedHeadersOffset': getHeaderOffset()
174
+ });
175
+ if (euiFixedHeadersCount === 0) {
176
+ document.body.classList.remove('euiBody--headerIsFixed'); // TODO: Consider deleting this legacy className
177
+ }
178
+ };
179
+ }, [getHeaderOffset, setGlobalCSSVariables]);
180
+ var inlineStyles = (0, _react.useMemo)(function () {
181
+ return (0, _global_styling.logicalStyles)(_objectSpread({
182
+ top: topPosition
183
+ }, style));
184
+ }, [topPosition, style]);
185
+ return (0, _react2.jsx)("div", (0, _extends2.default)({
186
+ "data-fixed-header": true // Used by EuiFlyouts as a query selector
187
+ ,
188
+ style: inlineStyles
189
+ }, rest), children);
190
+ };
191
+ exports.EuiFixedHeader = EuiFixedHeader;
192
+ EuiFixedHeader.propTypes = {
193
+ className: _propTypes.default.string,
194
+ "aria-label": _propTypes.default.string,
195
+ "data-test-subj": _propTypes.default.string,
196
+ css: _propTypes.default.any,
197
+ /**
198
+ * An array of objects to wrap in a #EuiHeaderSection.
199
+ * Each section is spaced using `space-between`.
200
+ * See #EuiHeaderSectionsProp for object details.
201
+ * This prop disregards the prop `children` if both are passed.
202
+ */
203
+ sections: _propTypes.default.arrayOf(_propTypes.default.shape({
204
+ /**
205
+ * An arry of items that will be wrapped in a #EuiHeaderSectionItem
206
+ */
207
+ items: _propTypes.default.arrayOf(_propTypes.default.node.isRequired),
208
+ /**
209
+ * Breadcrumbs in the header cannot be wrapped in a #EuiHeaderSection in order for truncation to work.
210
+ * Simply pass the array of EuiBreadcrumb objects
211
+ */
212
+ breadcrumbs: _propTypes.default.arrayOf(_propTypes.default.any.isRequired),
213
+ /**
214
+ * Other props to pass to #EuiHeaderBreadcrumbs
215
+ */
216
+ breadcrumbProps: _propTypes.default.any
217
+ }).isRequired),
218
+ /**
219
+ * Helper that positions the header against the window body and
220
+ * adds the correct amount of top padding to the window when in `fixed` mode
221
+ */
222
+ position: _propTypes.default.oneOf(["static", "fixed"]),
223
+ /**
224
+ * The `default` will inherit its coloring from the light or dark theme.
225
+ * Or, force the header into pseudo `dark` theme for all themes.
226
+ */
227
+ theme: _propTypes.default.oneOf(["default", "dark"])
138
228
  };
@@ -40,7 +40,7 @@ var euiHeaderStyles = function euiHeaderStyles(euiThemeContext) {
40
40
  euiHeader: /*#__PURE__*/(0, _react.css)("display:flex;justify-content:space-between;", (0, _global_styling.logicalCSS)('height', height), " ", (0, _global_styling.logicalCSS)('padding-horizontal', padding), " ", (0, _mixins.euiShadowSmall)(euiThemeContext), ";;label:euiHeader;"),
41
41
  // Position
42
42
  static: /*#__PURE__*/(0, _react.css)("z-index:", Number(euiTheme.levels.header) - 1, ";position:relative;;label:static;"),
43
- fixed: /*#__PURE__*/(0, _react.css)("z-index:", euiTheme.levels.header, ";position:fixed;", (0, _global_styling.logicalCSS)('top', 0), " ", (0, _global_styling.logicalCSS)('horizontal', 0), " &+[data-fixed-header]{", (0, _global_styling.logicalCSS)('top', height), ";};label:fixed;"),
43
+ fixed: /*#__PURE__*/(0, _react.css)("z-index:", euiTheme.levels.header, ";position:fixed;", (0, _global_styling.logicalCSS)('top', 0), " ", (0, _global_styling.logicalCSS)('horizontal', 0), ";;label:fixed;"),
44
44
  // Theme
45
45
  default: /*#__PURE__*/(0, _react.css)("background-color:", euiTheme.colors.emptyShade, ";", (0, _global_styling.logicalCSS)('border-bottom', "".concat(euiTheme.border.width.thin, " solid ").concat(borderColor)), ";;label:default;"),
46
46
  dark: /*#__PURE__*/(0, _react.css)(euiHeaderDarkStyles(euiThemeContext, borderColor), ";label:dark;")
@@ -905,6 +905,17 @@ Object.keys(_text_diff).forEach(function (key) {
905
905
  }
906
906
  });
907
907
  });
908
+ var _text_truncate = require("./text_truncate");
909
+ Object.keys(_text_truncate).forEach(function (key) {
910
+ if (key === "default" || key === "__esModule") return;
911
+ if (key in exports && exports[key] === _text_truncate[key]) return;
912
+ Object.defineProperty(exports, key, {
913
+ enumerable: true,
914
+ get: function get() {
915
+ return _text_truncate[key];
916
+ }
917
+ });
918
+ });
908
919
  var _timeline = require("./timeline");
909
920
  Object.keys(_timeline).forEach(function (key) {
910
921
  if (key === "default" || key === "__esModule") return;
@@ -21,8 +21,8 @@ var euiScaleMarkdownFormatText = function euiScaleMarkdownFormatText(euiTheme, o
21
21
  var _euiFontSize = (0, _global_styling.euiFontSize)(euiTheme, 'm', options),
22
22
  fontSize = _euiFontSize.fontSize,
23
23
  lineHeight = _euiFontSize.lineHeight;
24
- var measurement = options.measurement;
25
- var lineHeightSize = measurement === 'em' ? "".concat(lineHeight, "em") : lineHeight;
24
+ var unit = options.unit;
25
+ var lineHeightSize = unit === 'em' ? "".concat(lineHeight, "em") : lineHeight;
26
26
 
27
27
  // Custom scales
28
28
  var tablePaddingVertical = (0, _global_styling.mathWithUnits)(fontSize, function (x) {
@@ -43,19 +43,16 @@ var euiMarkdownFormatStyles = function euiMarkdownFormatStyles(euiTheme) {
43
43
  euiMarkdownFormat: /*#__PURE__*/(0, _react.css)(";label:euiMarkdownFormat;"),
44
44
  // Text sizes
45
45
  m: /*#__PURE__*/(0, _react.css)(euiScaleMarkdownFormatText(euiTheme, {
46
- measurement: 'rem',
47
46
  customScale: 'm'
48
47
  }), ";;label:m;"),
49
48
  s: /*#__PURE__*/(0, _react.css)(euiScaleMarkdownFormatText(euiTheme, {
50
- measurement: 'rem',
51
49
  customScale: 's'
52
50
  }), ";;label:s;"),
53
51
  xs: /*#__PURE__*/(0, _react.css)(euiScaleMarkdownFormatText(euiTheme, {
54
- measurement: 'rem',
55
52
  customScale: 'xs'
56
53
  }), ";;label:xs;"),
57
54
  relative: /*#__PURE__*/(0, _react.css)(euiScaleMarkdownFormatText(euiTheme, {
58
- measurement: 'em'
55
+ unit: 'em'
59
56
  }), ";;label:relative;")
60
57
  };
61
58
  };
@@ -20,7 +20,7 @@ var euiOverlayMaskStyles = function euiOverlayMaskStyles(_ref) {
20
20
  return {
21
21
  euiOverlayMask: /*#__PURE__*/(0, _css.css)("position:fixed;", (0, _global_styling.logicalCSS)('top', 0), " ", (0, _global_styling.logicalCSS)('left', 0), " ", (0, _global_styling.logicalCSS)('right', 0), " ", (0, _global_styling.logicalCSS)('bottom', 0), " display:flex;align-items:center;justify-content:center;", (0, _global_styling.logicalCSS)('padding-bottom', '10vh'), " animation:", _global_styling.euiAnimFadeIn, " ", euiTheme.animation.fast, " ease-in;background:", (0, _services.transparentize)(euiTheme.colors.ink, 0.5), ";;label:euiOverlayMask;"),
22
22
  aboveHeader: /*#__PURE__*/(0, _css.css)("z-index:", euiTheme.levels.mask, ";;label:aboveHeader;"),
23
- belowHeader: /*#__PURE__*/(0, _css.css)("z-index:", euiTheme.levels.maskBelowHeader, ";", (0, _global_styling.logicalCSS)('top', "".concat(euiTheme.base * 3, "px")), ";;label:belowHeader;")
23
+ belowHeader: /*#__PURE__*/(0, _css.css)("z-index:", euiTheme.levels.maskBelowHeader, ";", (0, _global_styling.logicalCSS)('top', 'var(--euiFixedHeadersOffset, 0)'), ";;label:belowHeader;")
24
24
  };
25
25
  };
26
26
  exports.euiOverlayMaskStyles = euiOverlayMaskStyles;
@@ -55,10 +55,8 @@ var EuiPageSidebar = function EuiPageSidebar(_ref) {
55
55
  (0, _react.useLayoutEffect)(function () {
56
56
  var updatedStyles = _objectSpread(_objectSpread({}, style), (0, _global_styling.logicalStyle)('min-width', isResponding ? '100%' : minWidth));
57
57
  if (sticky) {
58
- var _document$body$datase;
59
- var euiHeaderFixedCounter = Number((_document$body$datase = document.body.dataset.fixedHeaders) !== null && _document$body$datase !== void 0 ? _document$body$datase : 0);
60
- var offset = (0, _typeof2.default)(sticky) === 'object' ? sticky === null || sticky === void 0 ? void 0 : sticky.offset : themeContext.euiTheme.base * 3 * euiHeaderFixedCounter;
61
- updatedStyles = _objectSpread(_objectSpread(_objectSpread({}, updatedStyles), (0, _global_styling.logicalStyle)('top', offset)), (0, _global_styling.logicalStyle)('max-height', "calc(100vh - ".concat(offset, "px)")));
58
+ var offset = (0, _typeof2.default)(sticky) === 'object' ? "".concat(sticky === null || sticky === void 0 ? void 0 : sticky.offset, "px") : 'var(--euiFixedHeadersOffset, 0)';
59
+ updatedStyles = _objectSpread(_objectSpread(_objectSpread({}, updatedStyles), (0, _global_styling.logicalStyle)('top', offset)), (0, _global_styling.logicalStyle)('max-height', "calc(100vh - ".concat(offset, ")")));
62
60
  }
63
61
  setInlineStyles(updatedStyles);
64
62
  }, [style, sticky, themeContext.euiTheme.base, isResponding, minWidth]);
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports._EuiPageTemplate = exports.TemplateContext = exports.EuiPageTemplate = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
12
  var _react = _interopRequireWildcard(require("react"));
14
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -40,14 +39,6 @@ var TemplateContext = /*#__PURE__*/(0, _react.createContext)({
40
39
  bottomBar: {}
41
40
  });
42
41
  exports.TemplateContext = TemplateContext;
43
- var calculateOffset = function calculateOffset(base) {
44
- var _document$body$datase;
45
- if (typeof document === 'undefined') return 0; // SSR catch
46
-
47
- var euiHeaderFixedCounter = Number((_document$body$datase = document.body.dataset.fixedHeaders) !== null && _document$body$datase !== void 0 ? _document$body$datase : 0);
48
- return base * 3 * euiHeaderFixedCounter;
49
- };
50
-
51
42
  /**
52
43
  * Consumed via `EuiPageTemplate`,
53
44
  * it controls and propogates most of the shared props per direct child
@@ -63,7 +54,7 @@ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
63
54
  _ref$grow = _ref.grow,
64
55
  grow = _ref$grow === void 0 ? true : _ref$grow,
65
56
  bottomBorder = _ref.bottomBorder,
66
- _offset = _ref.offset,
57
+ offset = _ref.offset,
67
58
  panelled = _ref.panelled,
68
59
  contentBorder = _ref.contentBorder,
69
60
  component = _ref.component,
@@ -72,14 +63,6 @@ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
72
63
  _ref$minHeight = _ref.minHeight,
73
64
  minHeight = _ref$minHeight === void 0 ? '460px' : _ref$minHeight,
74
65
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
75
- var _useEuiTheme = (0, _services.useEuiTheme)(),
76
- euiTheme = _useEuiTheme.euiTheme;
77
- var _useState = (0, _react.useState)(function () {
78
- return _offset !== null && _offset !== void 0 ? _offset : calculateOffset(euiTheme.base);
79
- }),
80
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
81
- offset = _useState2[0],
82
- setOffset = _useState2[1];
83
66
  var templateContext = (0, _react.useContext)(TemplateContext);
84
67
 
85
68
  // Used as a target to insert the bottom bar component
@@ -87,11 +70,6 @@ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
87
70
  prefix: 'EuiPageTemplateInner',
88
71
  conditionalId: mainProps === null || mainProps === void 0 ? void 0 : mainProps.id
89
72
  });
90
- (0, _react.useEffect)(function () {
91
- if (_offset === undefined) {
92
- setOffset(calculateOffset(euiTheme.base));
93
- }
94
- }, [_offset, euiTheme.base]);
95
73
 
96
74
  // Sections include page header
97
75
  var sections = [];
@@ -150,7 +128,7 @@ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
150
128
  });
151
129
  var _minHeight = grow ? "max(".concat(minHeight, ", 100vh)") : minHeight;
152
130
  var classes = (0, _classnames.default)('euiPageTemplate', className);
153
- var pageStyle = _objectSpread(_objectSpread(_objectSpread({}, (0, _global_styling.logicalStyle)('min-height', _minHeight)), (0, _global_styling.logicalStyle)('padding-top', offset)), rest.style);
131
+ var pageStyle = _objectSpread(_objectSpread(_objectSpread({}, (0, _global_styling.logicalStyle)('min-height', _minHeight)), (0, _global_styling.logicalStyle)('padding-top', offset !== null && offset !== void 0 ? offset : 'var(--euiFixedHeadersOffset, 0)')), rest.style);
154
132
  templateContext.header = getHeaderProps();
155
133
  templateContext.section = getSectionProps();
156
134
  templateContext.emptyPrompt = {
@@ -40,9 +40,9 @@ var euiScaleText = function euiScaleText(euiThemeContext, options) {
40
40
  fontSize = _euiFontSize.fontSize,
41
41
  lineHeight = _euiFontSize.lineHeight;
42
42
  var euiTheme = euiThemeContext.euiTheme;
43
- var measurement = options.measurement,
43
+ var unit = options.unit,
44
44
  _customScale = options.customScale;
45
- var lineHeightSize = measurement === 'em' ? "".concat(lineHeight, "em") : lineHeight;
45
+ var lineHeightSize = unit === 'em' ? "".concat(lineHeight, "em") : lineHeight;
46
46
  var headings = {
47
47
  h1: (0, _title.euiTitle)(euiThemeContext, 'l', options),
48
48
  h2: (0, _title.euiTitle)(euiThemeContext, 'm', options),
@@ -78,19 +78,16 @@ var euiTextStyles = function euiTextStyles(euiThemeContext) {
78
78
  constrainedWidth: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('max-width', euiTextConstrainedMaxWidth), ";;label:constrainedWidth;"),
79
79
  // Sizes
80
80
  m: /*#__PURE__*/(0, _react.css)(euiScaleText(euiThemeContext, {
81
- measurement: 'rem',
82
81
  customScale: 'm'
83
82
  }), ";;label:m;"),
84
83
  s: /*#__PURE__*/(0, _react.css)(euiScaleText(euiThemeContext, {
85
- measurement: 'rem',
86
84
  customScale: 's'
87
85
  }), ";;label:s;"),
88
86
  xs: /*#__PURE__*/(0, _react.css)(euiScaleText(euiThemeContext, {
89
- measurement: 'rem',
90
87
  customScale: 'xs'
91
88
  }), ";;label:xs;"),
92
89
  relative: /*#__PURE__*/(0, _react.css)(euiScaleText(euiThemeContext, {
93
- measurement: 'em'
90
+ unit: 'em'
94
91
  }), ";;label:relative;")
95
92
  };
96
93
  };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "EuiTextTruncate", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _text_truncate.EuiTextTruncate;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "TruncationUtilsWithCanvas", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _utils.TruncationUtilsWithCanvas;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "TruncationUtilsWithDOM", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _utils.TruncationUtilsWithDOM;
22
+ }
23
+ });
24
+ var _text_truncate = require("./text_truncate");
25
+ var _utils = require("./utils");
@@ -0,0 +1,236 @@
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.EuiTextTruncate = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _services = require("../../services");
15
+ var _resize_observer = require("../observer/resize_observer");
16
+ var _utils = require("./utils");
17
+ var _text_truncate = require("./text_truncate.styles");
18
+ var _react2 = require("@emotion/react");
19
+ var _excluded = ["width"],
20
+ _excluded2 = ["width", "children", "text", "truncation", "truncationOffset", "truncationPosition", "ellipsis", "containerRef", "measurementRenderAPI"],
21
+ _excluded3 = ["onResize"];
22
+ /*
23
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
24
+ * or more contributor license agreements. Licensed under the Elastic License
25
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
26
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
27
+ * Side Public License, v 1.
28
+ */
29
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+ var TRUNCATION_TYPES = ['end', 'start', 'startEnd', 'middle'];
32
+ var EuiTextTruncate = function EuiTextTruncate(_ref) {
33
+ var width = _ref.width,
34
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
35
+ return width != null ? (0, _react2.jsx)(EuiTextTruncateWithWidth, (0, _extends2.default)({
36
+ width: width
37
+ }, props)) : (0, _react2.jsx)(EuiTextTruncateWithResizeObserver, props);
38
+ };
39
+ exports.EuiTextTruncate = EuiTextTruncate;
40
+ EuiTextTruncate.propTypes = {
41
+ className: _propTypes.default.string,
42
+ "aria-label": _propTypes.default.string,
43
+ "data-test-subj": _propTypes.default.string,
44
+ css: _propTypes.default.any,
45
+ /**
46
+ * The full text string to truncate
47
+ */
48
+ text: _propTypes.default.string.isRequired,
49
+ /**
50
+ * The truncation type desired. Determines where the ellipses are placed.
51
+ */
52
+ truncation: _propTypes.default.any,
53
+ /**
54
+ * This prop **only** applies to the `start` and `end` truncation types.
55
+ * It allows preserving a certain number of characters of either the
56
+ * starting or ending text.
57
+ *
58
+ * If the passed offset is greater than the total text length,
59
+ * the offset will be ignored.
60
+ */
61
+ truncationOffset: _propTypes.default.number,
62
+ /**
63
+ * This prop **only** applies to the `startEnd` truncation type.
64
+ * It allows customizing the anchor position of the displayed text,
65
+ * which otherwise defaults to the middle of the text string.
66
+ *
67
+ * The primary use case for this prop for is search highlighting - e.g., if
68
+ * a user searches for a specific word in the text, pass the index of that
69
+ * found word to ensure it is always visible.
70
+ *
71
+ * This behavior will intelligently detect when positions are close to the start
72
+ * or end of the text, and omit leading or trailing ellipses when necessary.
73
+ * If the passed position is greater than the total text length,
74
+ * the truncation will simply default to `start` instead.
75
+ */
76
+ truncationPosition: _propTypes.default.number,
77
+ /**
78
+ * Defaults to the horizontal ellipsis character.
79
+ * Can be optionally configured to use other punctuation,
80
+ * e.g. spaces, brackets, hyphens, asterisks, etc.
81
+ */
82
+ ellipsis: _propTypes.default.string,
83
+ /**
84
+ * By default, EuiTextTruncate will render a resize observer to detect the
85
+ * available width it has. For performance reasons (e.g. multiple truncated
86
+ * text items within the same container), you may opt to pass in your own
87
+ * container width, which will skip initializing a resize observer.
88
+ */
89
+ width: _propTypes.default.number,
90
+ /**
91
+ * Optional callback that fires when the default resizer observer both mounts and
92
+ * registers a size change. This callback will **not** fire if `width` is passed.
93
+ */
94
+ onResize: _propTypes.default.func,
95
+ /**
96
+ * By default, EuiTextTruncate will calculate its truncation via DOM manipulation
97
+ * and measurement, which has the benefit of automatically inheriting font styles.
98
+ * However, if this approach proves to have a significant performance impact for your
99
+ * usage, consider using the `canvas` API instead, which is more performant.
100
+ *
101
+ * Please note that there are minute pixel to subpixel differences between the
102
+ * two options due to different rendering engines.
103
+ */
104
+ measurementRenderAPI: _propTypes.default.oneOf(["dom", "canvas"]),
105
+ /**
106
+ * By default, EuiTextTruncate will render the truncated string directly.
107
+ * You can optionally pass a render prop function to the component, which
108
+ * allows for more flexible text rendering, e.g. adding custom markup
109
+ * or highlighting
110
+ */
111
+ children: _propTypes.default.func
112
+ };
113
+ var EuiTextTruncateWithWidth = function EuiTextTruncateWithWidth(_ref2) {
114
+ var width = _ref2.width,
115
+ children = _ref2.children,
116
+ text = _ref2.text,
117
+ _ref2$truncation = _ref2.truncation,
118
+ _truncation = _ref2$truncation === void 0 ? 'end' : _ref2$truncation,
119
+ _ref2$truncationOffse = _ref2.truncationOffset,
120
+ _truncationOffset = _ref2$truncationOffse === void 0 ? 0 : _ref2$truncationOffse,
121
+ truncationPosition = _ref2.truncationPosition,
122
+ _ref2$ellipsis = _ref2.ellipsis,
123
+ ellipsis = _ref2$ellipsis === void 0 ? '…' : _ref2$ellipsis,
124
+ containerRef = _ref2.containerRef,
125
+ _ref2$measurementRend = _ref2.measurementRenderAPI,
126
+ measurementRenderAPI = _ref2$measurementRend === void 0 ? 'dom' : _ref2$measurementRend,
127
+ rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
128
+ // Note: This needs to be a state and not a ref to trigger a rerender on mount
129
+ var _useState = (0, _react.useState)(null),
130
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
131
+ containerEl = _useState2[0],
132
+ setContainerEl = _useState2[1];
133
+ var refs = (0, _services.useCombinedRefs)([setContainerEl, containerRef]);
134
+
135
+ // Handle exceptions where we need to override the passed props
136
+ var _useMemo = (0, _react.useMemo)(function () {
137
+ var truncation = _truncation;
138
+ var truncationOffset = 0;
139
+ if (_truncation === 'end' || _truncation === 'start') {
140
+ if (0 < _truncationOffset && _truncationOffset < text.length) {
141
+ truncationOffset = _truncationOffset;
142
+ }
143
+ } else if (_truncation === 'startEnd' && truncationPosition != null) {
144
+ if (truncationPosition <= 0) {
145
+ truncation = 'end';
146
+ } else if (truncationPosition >= text.length) {
147
+ truncation = 'start';
148
+ }
149
+ }
150
+ return {
151
+ truncation: truncation,
152
+ truncationOffset: truncationOffset
153
+ };
154
+ }, [_truncation, _truncationOffset, truncationPosition, text.length]),
155
+ truncation = _useMemo.truncation,
156
+ truncationOffset = _useMemo.truncationOffset;
157
+ var truncatedText = (0, _react.useMemo)(function () {
158
+ var truncatedText = '';
159
+ if (!containerEl || !width) return truncatedText;
160
+ var params = {
161
+ fullText: text,
162
+ ellipsis: ellipsis,
163
+ container: containerEl,
164
+ availableWidth: width
165
+ };
166
+ var utils = measurementRenderAPI === 'canvas' ? new _utils.TruncationUtilsWithCanvas(params) : new _utils.TruncationUtilsWithDOM(params);
167
+ if (utils.checkIfTruncationIsNeeded() === false) {
168
+ truncatedText = text;
169
+ } else if (utils.checkSufficientEllipsisWidth(truncation) === false) {
170
+ truncatedText = '';
171
+ } else {
172
+ switch (truncation) {
173
+ case 'end':
174
+ truncatedText = utils.truncateEnd(truncationOffset);
175
+ break;
176
+ case 'start':
177
+ truncatedText = utils.truncateStart(truncationOffset);
178
+ break;
179
+ case 'startEnd':
180
+ if (truncationPosition == null) {
181
+ truncatedText = utils.truncateStartEndAtMiddle();
182
+ } else {
183
+ truncatedText = utils.truncateStartEndAtPosition(truncationPosition);
184
+ }
185
+ break;
186
+ case 'middle':
187
+ truncatedText = utils.truncateMiddle();
188
+ break;
189
+ }
190
+ }
191
+ if (measurementRenderAPI === 'dom') {
192
+ utils.cleanup();
193
+ }
194
+ return truncatedText;
195
+ }, [width, text, truncation, truncationOffset, truncationPosition, ellipsis, containerEl, measurementRenderAPI]);
196
+ var isTruncating = truncatedText !== text;
197
+ return (0, _react2.jsx)("div", (0, _extends2.default)({
198
+ css: _text_truncate.euiTextTruncateStyles.euiTextTruncate,
199
+ ref: refs,
200
+ title: isTruncating ? text : undefined
201
+ }, rest), isTruncating ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("span", {
202
+ css: _text_truncate.euiTextTruncateStyles.truncatedText,
203
+ "aria-hidden": true,
204
+ "data-test-subj": "truncatedText"
205
+ }, children ? children(truncatedText) : truncatedText), (0, _react2.jsx)("span", {
206
+ css: _text_truncate.euiTextTruncateStyles.fullText,
207
+ "data-test-subj": "fullText"
208
+ }, text)) : (0, _react2.jsx)("span", {
209
+ "data-test-subj": "fullText"
210
+ }, text));
211
+ };
212
+ EuiTextTruncateWithWidth.propTypes = {
213
+ width: _propTypes.default.number.isRequired,
214
+ containerRef: _propTypes.default.any
215
+ };
216
+ var EuiTextTruncateWithResizeObserver = function EuiTextTruncateWithResizeObserver(_ref3) {
217
+ var _onResize = _ref3.onResize,
218
+ props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
219
+ var _useState3 = (0, _react.useState)(0),
220
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
221
+ width = _useState4[0],
222
+ setWidth = _useState4[1];
223
+ var onResize = (0, _react.useCallback)(function (_ref4) {
224
+ var width = _ref4.width;
225
+ setWidth(width);
226
+ _onResize === null || _onResize === void 0 ? void 0 : _onResize(width);
227
+ }, [_onResize]);
228
+ return (0, _react2.jsx)(_resize_observer.EuiResizeObserver, {
229
+ onResize: onResize
230
+ }, function (ref) {
231
+ return (0, _react2.jsx)(EuiTextTruncateWithWidth, (0, _extends2.default)({
232
+ width: width,
233
+ containerRef: ref
234
+ }, props));
235
+ });
236
+ };