@elastic/eui 88.5.4 → 89.0.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 (206) hide show
  1. package/dist/eui_theme_dark.css +26 -526
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +26 -526
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/basic_table/basic_table.js +7 -2
  6. package/es/components/basic_table/in_memory_table.js +7 -2
  7. package/es/components/collapsible_nav/collapsible_nav.js +5 -0
  8. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -2
  9. package/es/components/color_picker/index.js +0 -4
  10. package/es/components/combo_box/combo_box.js +142 -304
  11. package/es/components/combo_box/combo_box_input/combo_box_input.js +0 -13
  12. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +34 -118
  13. package/es/components/context_menu/context_menu_panel.js +6 -6
  14. package/es/components/flex/flex_grid.styles.js +1 -1
  15. package/es/components/flex/flex_group.styles.js +1 -1
  16. package/es/components/flyout/flyout.js +32 -33
  17. package/es/components/flyout/flyout.styles.js +13 -3
  18. package/es/components/form/range/dual_range.js +4 -0
  19. package/es/components/form/range/range.js +4 -0
  20. package/es/components/index.js +0 -1
  21. package/es/components/popover/input_popover.js +47 -3
  22. package/es/components/popover/popover.js +2 -2
  23. package/es/components/table/table_row_cell.js +27 -9
  24. package/es/components/text_truncate/index.js +1 -0
  25. package/es/components/text_truncate/text_block_truncate.js +78 -0
  26. package/es/global_styling/reset/global_styles.js +16 -2
  27. package/es/services/accessibility/index.js +0 -3
  28. package/es/services/index.js +1 -1
  29. package/es/test/rtl/component_helpers.d.ts +2 -0
  30. package/es/test/rtl/component_helpers.js +29 -1
  31. package/eui.d.ts +375 -667
  32. package/i18ntokens.json +52 -286
  33. package/lib/components/basic_table/basic_table.js +7 -2
  34. package/lib/components/basic_table/in_memory_table.js +7 -2
  35. package/lib/components/collapsible_nav/collapsible_nav.js +5 -0
  36. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -2
  37. package/lib/components/color_picker/index.js +0 -7
  38. package/lib/components/combo_box/combo_box.js +141 -303
  39. package/lib/components/combo_box/combo_box_input/combo_box_input.js +0 -13
  40. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +34 -118
  41. package/lib/components/context_menu/context_menu_panel.js +5 -5
  42. package/lib/components/flex/flex_grid.styles.js +1 -1
  43. package/lib/components/flex/flex_group.styles.js +1 -1
  44. package/lib/components/flyout/flyout.js +31 -32
  45. package/lib/components/flyout/flyout.styles.js +19 -10
  46. package/lib/components/form/range/dual_range.js +4 -0
  47. package/lib/components/index.js +0 -11
  48. package/lib/components/popover/input_popover.js +48 -3
  49. package/lib/components/popover/popover.js +1 -1
  50. package/lib/components/table/table_row_cell.js +26 -8
  51. package/lib/components/text_truncate/index.js +7 -0
  52. package/lib/components/text_truncate/text_block_truncate.js +85 -0
  53. package/lib/global_styling/reset/global_styles.js +16 -2
  54. package/lib/services/accessibility/index.js +0 -21
  55. package/lib/services/index.js +0 -21
  56. package/lib/test/rtl/component_helpers.d.ts +2 -0
  57. package/lib/test/rtl/component_helpers.js +31 -2
  58. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -2
  59. package/optimize/es/components/color_picker/index.js +0 -4
  60. package/optimize/es/components/combo_box/combo_box.js +137 -304
  61. package/optimize/es/components/combo_box/combo_box_input/combo_box_input.js +0 -12
  62. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +28 -107
  63. package/optimize/es/components/context_menu/context_menu_panel.js +6 -6
  64. package/optimize/es/components/flex/flex_grid.styles.js +1 -1
  65. package/optimize/es/components/flex/flex_group.styles.js +1 -1
  66. package/optimize/es/components/flyout/flyout.js +32 -33
  67. package/optimize/es/components/flyout/flyout.styles.js +13 -3
  68. package/optimize/es/components/index.js +0 -1
  69. package/optimize/es/components/popover/input_popover.js +43 -3
  70. package/optimize/es/components/popover/popover.js +2 -2
  71. package/optimize/es/components/table/table_row_cell.js +13 -5
  72. package/optimize/es/components/text_truncate/index.js +1 -0
  73. package/optimize/es/components/text_truncate/text_block_truncate.js +58 -0
  74. package/optimize/es/global_styling/reset/global_styles.js +13 -2
  75. package/optimize/es/services/accessibility/index.js +0 -3
  76. package/optimize/es/services/index.js +1 -1
  77. package/optimize/es/test/rtl/component_helpers.d.ts +2 -0
  78. package/optimize/es/test/rtl/component_helpers.js +29 -1
  79. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -2
  80. package/optimize/lib/components/color_picker/index.js +0 -7
  81. package/optimize/lib/components/combo_box/combo_box.js +136 -303
  82. package/optimize/lib/components/combo_box/combo_box_input/combo_box_input.js +0 -12
  83. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +28 -107
  84. package/optimize/lib/components/context_menu/context_menu_panel.js +5 -5
  85. package/optimize/lib/components/flex/flex_grid.styles.js +1 -1
  86. package/optimize/lib/components/flex/flex_group.styles.js +1 -1
  87. package/optimize/lib/components/flyout/flyout.js +31 -32
  88. package/optimize/lib/components/flyout/flyout.styles.js +19 -10
  89. package/optimize/lib/components/index.js +0 -11
  90. package/optimize/lib/components/popover/input_popover.js +44 -3
  91. package/optimize/lib/components/popover/popover.js +1 -1
  92. package/optimize/lib/components/table/table_row_cell.js +12 -4
  93. package/optimize/lib/components/text_truncate/index.js +7 -0
  94. package/optimize/lib/components/text_truncate/text_block_truncate.js +66 -0
  95. package/optimize/lib/global_styling/reset/global_styles.js +19 -10
  96. package/optimize/lib/services/accessibility/index.js +0 -21
  97. package/optimize/lib/services/index.js +0 -21
  98. package/optimize/lib/test/rtl/component_helpers.d.ts +2 -0
  99. package/optimize/lib/test/rtl/component_helpers.js +31 -2
  100. package/package.json +1 -1
  101. package/src/components/combo_box/combo_box_options_list/_combo_box_options_list.scss +5 -15
  102. package/src/components/context_menu/_context_menu_panel.scss +4 -0
  103. package/src/components/index.scss +0 -1
  104. package/src/global_styling/mixins/_index.scss +0 -1
  105. package/src/global_styling/variables/_index.scss +0 -1
  106. package/src/test/README.md +0 -15
  107. package/src/themes/amsterdam/global_styling/mixins/_index.scss +0 -1
  108. package/test-env/components/basic_table/basic_table.js +7 -2
  109. package/test-env/components/basic_table/in_memory_table.js +7 -2
  110. package/test-env/components/collapsible_nav/collapsible_nav.js +5 -0
  111. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -2
  112. package/test-env/components/color_picker/index.js +0 -7
  113. package/test-env/components/combo_box/combo_box.js +141 -303
  114. package/test-env/components/combo_box/combo_box_input/combo_box_input.js +0 -13
  115. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +33 -117
  116. package/test-env/components/context_menu/context_menu_panel.js +5 -5
  117. package/test-env/components/flex/flex_grid.styles.js +1 -1
  118. package/test-env/components/flex/flex_group.styles.js +1 -1
  119. package/test-env/components/flyout/flyout.styles.js +19 -10
  120. package/test-env/components/form/range/dual_range.js +4 -0
  121. package/test-env/components/index.js +0 -11
  122. package/test-env/components/popover/input_popover.js +48 -3
  123. package/test-env/components/popover/popover.js +1 -1
  124. package/test-env/components/table/table_row_cell.js +26 -8
  125. package/test-env/components/text_truncate/index.js +7 -0
  126. package/test-env/components/text_truncate/text_block_truncate.js +82 -0
  127. package/test-env/global_styling/reset/global_styles.js +19 -10
  128. package/test-env/services/accessibility/index.js +0 -21
  129. package/test-env/services/index.js +0 -21
  130. package/test-env/test/rtl/component_helpers.js +31 -2
  131. package/es/components/color_picker/color_stops/color_stop_thumb.js +0 -371
  132. package/es/components/color_picker/color_stops/color_stop_thumb.styles.js +0 -55
  133. package/es/components/color_picker/color_stops/color_stops.js +0 -499
  134. package/es/components/color_picker/color_stops/color_stops.styles.js +0 -61
  135. package/es/components/color_picker/color_stops/index.js +0 -9
  136. package/es/components/color_picker/color_stops/utils.js +0 -95
  137. package/es/components/suggest/index.js +0 -10
  138. package/es/components/suggest/suggest.a11y.js +0 -70
  139. package/es/components/suggest/suggest.js +0 -347
  140. package/es/components/suggest/suggest_item.js +0 -123
  141. package/es/components/suggest/types.js +0 -9
  142. package/es/services/accessibility/accessible_click_keys.js +0 -17
  143. package/es/services/accessibility/cascading_menu_keys.js +0 -28
  144. package/es/services/accessibility/combo_box_keys.js +0 -25
  145. package/lib/components/color_picker/color_stops/color_stop_thumb.js +0 -380
  146. package/lib/components/color_picker/color_stops/color_stop_thumb.styles.js +0 -62
  147. package/lib/components/color_picker/color_stops/color_stops.js +0 -505
  148. package/lib/components/color_picker/color_stops/color_stops.styles.js +0 -67
  149. package/lib/components/color_picker/color_stops/index.js +0 -12
  150. package/lib/components/color_picker/color_stops/utils.js +0 -108
  151. package/lib/components/suggest/index.js +0 -19
  152. package/lib/components/suggest/suggest.a11y.js +0 -73
  153. package/lib/components/suggest/suggest.js +0 -356
  154. package/lib/components/suggest/suggest_item.js +0 -130
  155. package/lib/components/suggest/types.js +0 -16
  156. package/lib/services/accessibility/accessible_click_keys.js +0 -21
  157. package/lib/services/accessibility/cascading_menu_keys.js +0 -35
  158. package/lib/services/accessibility/combo_box_keys.js +0 -32
  159. package/optimize/es/components/color_picker/color_stops/color_stop_thumb.js +0 -329
  160. package/optimize/es/components/color_picker/color_stops/color_stop_thumb.styles.js +0 -55
  161. package/optimize/es/components/color_picker/color_stops/color_stops.js +0 -444
  162. package/optimize/es/components/color_picker/color_stops/color_stops.styles.js +0 -61
  163. package/optimize/es/components/color_picker/color_stops/index.js +0 -9
  164. package/optimize/es/components/color_picker/color_stops/utils.js +0 -90
  165. package/optimize/es/components/suggest/index.js +0 -10
  166. package/optimize/es/components/suggest/suggest.a11y.js +0 -70
  167. package/optimize/es/components/suggest/suggest.js +0 -256
  168. package/optimize/es/components/suggest/suggest_item.js +0 -89
  169. package/optimize/es/components/suggest/types.js +0 -9
  170. package/optimize/es/services/accessibility/accessible_click_keys.js +0 -14
  171. package/optimize/es/services/accessibility/cascading_menu_keys.js +0 -28
  172. package/optimize/es/services/accessibility/combo_box_keys.js +0 -25
  173. package/optimize/lib/components/color_picker/color_stops/color_stop_thumb.js +0 -339
  174. package/optimize/lib/components/color_picker/color_stops/color_stop_thumb.styles.js +0 -62
  175. package/optimize/lib/components/color_picker/color_stops/color_stops.js +0 -451
  176. package/optimize/lib/components/color_picker/color_stops/color_stops.styles.js +0 -67
  177. package/optimize/lib/components/color_picker/color_stops/index.js +0 -12
  178. package/optimize/lib/components/color_picker/color_stops/utils.js +0 -106
  179. package/optimize/lib/components/suggest/index.js +0 -19
  180. package/optimize/lib/components/suggest/suggest.a11y.js +0 -73
  181. package/optimize/lib/components/suggest/suggest.js +0 -266
  182. package/optimize/lib/components/suggest/suggest_item.js +0 -96
  183. package/optimize/lib/components/suggest/types.js +0 -16
  184. package/optimize/lib/services/accessibility/accessible_click_keys.js +0 -20
  185. package/optimize/lib/services/accessibility/cascading_menu_keys.js +0 -35
  186. package/optimize/lib/services/accessibility/combo_box_keys.js +0 -32
  187. package/src/components/suggest/_index.scss +0 -5
  188. package/src/components/suggest/_suggest_input.scss +0 -4
  189. package/src/components/suggest/_suggest_item.scss +0 -103
  190. package/src/components/suggest/_variables.scss +0 -13
  191. package/src/global_styling/mixins/_header.scss +0 -29
  192. package/src/global_styling/variables/_header.scss +0 -3
  193. package/test-env/components/color_picker/color_stops/color_stop_thumb.js +0 -372
  194. package/test-env/components/color_picker/color_stops/color_stop_thumb.styles.js +0 -62
  195. package/test-env/components/color_picker/color_stops/color_stops.js +0 -494
  196. package/test-env/components/color_picker/color_stops/color_stops.styles.js +0 -67
  197. package/test-env/components/color_picker/color_stops/index.js +0 -12
  198. package/test-env/components/color_picker/color_stops/utils.js +0 -106
  199. package/test-env/components/suggest/index.js +0 -19
  200. package/test-env/components/suggest/suggest.a11y.js +0 -73
  201. package/test-env/components/suggest/suggest.js +0 -348
  202. package/test-env/components/suggest/suggest_item.js +0 -129
  203. package/test-env/components/suggest/types.js +0 -16
  204. package/test-env/services/accessibility/accessible_click_keys.js +0 -20
  205. package/test-env/services/accessibility/cascading_menu_keys.js +0 -35
  206. package/test-env/services/accessibility/combo_box_keys.js +0 -32
@@ -1,499 +0,0 @@
1
- var _excluded = ["addColor", "max", "min", "mode", "colorStops", "onChange", "disabled", "readOnly", "compressed", "fullWidth", "className", "label", "stopType", "stepNumber", "swatches", "showAlpha", "valueInputProps"];
2
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
7
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
11
- import PropTypes from "prop-types";
12
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
15
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
- 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; }
18
- 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) { _defineProperty(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; }
19
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
21
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
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
-
30
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
31
- import classNames from 'classnames';
32
- import { keys, DEFAULT_VISUALIZATION_COLOR, getSteppedGradient, useEuiTheme } from '../../../services';
33
- import { EuiColorStopThumb } from './color_stop_thumb';
34
- import { addStop, addDefinedStop, getPositionFromStop, getStopFromMouseLocation, isInvalid, removeStop } from './utils';
35
- import { getChromaColor } from '../utils';
36
- import { EuiI18n } from '../../i18n';
37
- import { EuiScreenReaderOnly } from '../../accessibility';
38
- import { EuiRangeHighlight } from '../../form/range/range_highlight';
39
- import { EuiRangeTrack } from '../../form/range/range_track';
40
- import { EuiRangeWrapper } from '../../form/range/range_wrapper';
41
- import { euiColorStopsStyles, euiColorStopsAddContainerStyles } from './color_stops.styles';
42
-
43
- /**
44
- * @deprecated
45
- */
46
- import { jsx as ___EmotionJSX } from "@emotion/react";
47
- // Because of how the thumbs are rendered in the popover, using ref results in an infinite loop.
48
- // We'll instead use old fashioned namespaced DOM selectors to get references
49
- var STOP_ATTR = 'euiColorStop_';
50
- var DEFAULT_MIN = 0;
51
- var DEFAULT_MAX = 100;
52
- function isTargetAThumb(target) {
53
- var element = target;
54
- var attr = element.getAttribute('data-index');
55
- return attr && attr.indexOf(STOP_ATTR) > -1;
56
- }
57
- function sortStops(colorStops) {
58
- return colorStops.map(function (el, index) {
59
- return _objectSpread(_objectSpread({}, el), {}, {
60
- id: index
61
- });
62
- }).sort(function (a, b) {
63
- return a.stop - b.stop;
64
- });
65
- }
66
- function getValidStops(colorStops) {
67
- return colorStops.map(function (el) {
68
- return el.stop;
69
- }).filter(function (stop) {
70
- return !isNaN(stop);
71
- });
72
- }
73
- function getRangeMin(colorStops, min) {
74
- var rangeMin = min || DEFAULT_MIN;
75
- var stops = getValidStops(colorStops);
76
- var first = Math.min.apply(Math, _toConsumableArray(stops)); // https://johnresig.com/blog/fast-javascript-maxmin/
77
-
78
- if (first < rangeMin) {
79
- if (stops.length === 1) {
80
- return first - DEFAULT_MIN;
81
- } else if (stops.length >= 2) {
82
- return first;
83
- }
84
- }
85
- return DEFAULT_MIN;
86
- }
87
- function getRangeMax(colorStops, max) {
88
- var rangeMax = max || DEFAULT_MAX;
89
- var stops = getValidStops(colorStops);
90
- var last = Math.max.apply(Math, _toConsumableArray(stops)); // https://johnresig.com/blog/fast-javascript-maxmin/
91
-
92
- if (last > rangeMax) {
93
- if (stops.length === 1) {
94
- return last + DEFAULT_MAX;
95
- } else if (stops.length >= 2) {
96
- return last;
97
- }
98
- }
99
- return DEFAULT_MAX;
100
- }
101
-
102
- /**
103
- * @deprecated - EuiColorStops is scheduled for deprecation due to low internal usage and high
104
- * maintenance requirements. If necessary, we recommend copying this component into your own application.
105
- *
106
- * The component will be permanently removed in October 2023.
107
- */
108
- export var EuiColorStops = function EuiColorStops(_ref) {
109
- var _ref$addColor = _ref.addColor,
110
- addColor = _ref$addColor === void 0 ? DEFAULT_VISUALIZATION_COLOR : _ref$addColor,
111
- max = _ref.max,
112
- min = _ref.min,
113
- _ref$mode = _ref.mode,
114
- mode = _ref$mode === void 0 ? 'default' : _ref$mode,
115
- colorStops = _ref.colorStops,
116
- onChange = _ref.onChange,
117
- disabled = _ref.disabled,
118
- readOnly = _ref.readOnly,
119
- compressed = _ref.compressed,
120
- fullWidth = _ref.fullWidth,
121
- className = _ref.className,
122
- label = _ref.label,
123
- _ref$stopType = _ref.stopType,
124
- stopType = _ref$stopType === void 0 ? 'gradient' : _ref$stopType,
125
- _ref$stepNumber = _ref.stepNumber,
126
- stepNumber = _ref$stepNumber === void 0 ? 10 : _ref$stepNumber,
127
- swatches = _ref.swatches,
128
- _ref$showAlpha = _ref.showAlpha,
129
- showAlpha = _ref$showAlpha === void 0 ? false : _ref$showAlpha,
130
- valueInputProps = _ref.valueInputProps,
131
- rest = _objectWithoutProperties(_ref, _excluded);
132
- var sortedStops = useMemo(function () {
133
- return sortStops(colorStops);
134
- }, [colorStops]);
135
- var rangeMax = useMemo(function () {
136
- var result = max != null ? max : getRangeMax(colorStops, max);
137
- var width = max != null ? 0 : Math.round(result * 0.05);
138
- return !isNaN(result) ? result + width : DEFAULT_MAX;
139
- }, [colorStops, max]);
140
- var rangeMin = useMemo(function () {
141
- var result = min != null ? min : getRangeMin(colorStops, min);
142
- var width = min != null ? 0 : Math.round(rangeMax * 0.05);
143
- return !isNaN(result) ? result - width : DEFAULT_MIN;
144
- }, [colorStops, min, rangeMax]);
145
- var _useState = useState(false),
146
- _useState2 = _slicedToArray(_useState, 2),
147
- hasFocus = _useState2[0],
148
- setHasFocus = _useState2[1];
149
- var _useState3 = useState(null),
150
- _useState4 = _slicedToArray(_useState3, 2),
151
- focusedStopIndex = _useState4[0],
152
- setFocusedStopIndex = _useState4[1];
153
- var _useState5 = useState(null),
154
- _useState6 = _slicedToArray(_useState5, 2),
155
- openedStopId = _useState6[0],
156
- setOpenedStopId = _useState6[1];
157
- var _useState7 = useState(null),
158
- _useState8 = _slicedToArray(_useState7, 2),
159
- wrapperRef = _useState8[0],
160
- setWrapperRef = _useState8[1];
161
- var _useState9 = useState(0),
162
- _useState10 = _slicedToArray(_useState9, 2),
163
- addTargetPosition = _useState10[0],
164
- setAddTargetPosition = _useState10[1];
165
- var _useState11 = useState(false),
166
- _useState12 = _slicedToArray(_useState11, 2),
167
- isHoverDisabled = _useState12[0],
168
- setIsHoverDisabled = _useState12[1];
169
- var _useState13 = useState(null),
170
- _useState14 = _slicedToArray(_useState13, 2),
171
- focusStopOnUpdate = _useState14[0],
172
- setFocusStopOnUpdate = _useState14[1];
173
- var isNotInteractive = disabled || readOnly;
174
- var isDragging = isHoverDisabled && !isNotInteractive;
175
- var addContainerIsDisabled = isHoverDisabled || isNotInteractive;
176
- var classes = classNames('euiColorStops', className);
177
- var euiTheme = useEuiTheme();
178
- var styles = euiColorStopsStyles(euiTheme);
179
- var cssPopoverStyles = [styles.euiColorStops, !disabled ? styles.isEnabled : styles.isDisabled, readOnly && styles.isReadOnly, isDragging && styles.isDragging];
180
- var cssTrackStyles = [styles.euiColorStops__track];
181
- var cssAddTargetStyles = [styles.euiColorStops__addTarget];
182
- var addContainerStyles = euiColorStopsAddContainerStyles(euiTheme);
183
- var cssAddContainerStyles = [addContainerStyles.euiColorStopsAddContainer, !addContainerIsDisabled ? addContainerStyles.isEnabled : addContainerStyles.isDisabled];
184
- var getStopFromMouseLocationFn = function getStopFromMouseLocationFn(location) {
185
- // Guard against `null` ref in usage
186
- return getStopFromMouseLocation(location, wrapperRef, min || rangeMin, max || rangeMax);
187
- };
188
- var getPositionFromStopFn = function getPositionFromStopFn(stop) {
189
- // Guard against `null` ref in usage
190
- return getPositionFromStop(stop, wrapperRef, min || rangeMin, max || rangeMax);
191
- };
192
- var handleOnChange = useCallback(function (colorStops) {
193
- onChange(colorStops, isInvalid(colorStops, showAlpha));
194
- }, [onChange, showAlpha]);
195
- var onFocusStop = useCallback(function (index) {
196
- if (disabled || !wrapperRef) return;
197
- var toFocus = wrapperRef.querySelector("[data-index=".concat(STOP_ATTR).concat(index, "]"));
198
- if (toFocus) {
199
- setHasFocus(false);
200
- setFocusedStopIndex(index);
201
- toFocus.focus();
202
- }
203
- }, [disabled, wrapperRef]);
204
- useEffect(function () {
205
- if (focusStopOnUpdate !== null) {
206
- var toFocusIndex = sortedStops.map(function (el) {
207
- return el.stop;
208
- }).indexOf(focusStopOnUpdate);
209
- var toFocusId = toFocusIndex > -1 ? sortedStops[toFocusIndex].id : null;
210
- onFocusStop(toFocusIndex);
211
- setOpenedStopId(toFocusId);
212
- setFocusStopOnUpdate(null);
213
- }
214
- }, [sortedStops, onFocusStop, setFocusStopOnUpdate, focusStopOnUpdate]);
215
- var onFocusWrapper = useCallback(function () {
216
- setFocusedStopIndex(null);
217
- if (wrapperRef) {
218
- wrapperRef.focus();
219
- }
220
- }, [wrapperRef]);
221
- var setWrapperHasFocus = function setWrapperHasFocus(e) {
222
- if (e.target === wrapperRef) {
223
- setHasFocus(true);
224
- }
225
- };
226
- var removeWrapperFocus = function removeWrapperFocus() {
227
- setHasFocus(false);
228
- };
229
- var onAdd = function onAdd() {
230
- var stops = sortedStops.map(function (_ref2) {
231
- var color = _ref2.color,
232
- stop = _ref2.stop;
233
- return {
234
- color: color,
235
- stop: stop
236
- };
237
- });
238
- var newColorStops = addStop(stops, addColor, max || rangeMax);
239
- setFocusStopOnUpdate(newColorStops[colorStops.length].stop);
240
- handleOnChange(newColorStops);
241
- };
242
- var onRemove = useCallback(function (index) {
243
- var newColorStops = removeStop(colorStops, index);
244
- onFocusWrapper();
245
- handleOnChange(newColorStops);
246
- }, [colorStops, handleOnChange, onFocusWrapper]);
247
- var disableHover = function disableHover() {
248
- if (disabled) return;
249
- setIsHoverDisabled(true);
250
- };
251
- var enableHover = function enableHover() {
252
- if (disabled) return;
253
- setIsHoverDisabled(false);
254
- };
255
- var handleAddHover = function handleAddHover(e) {
256
- if (isNotInteractive || !wrapperRef) return;
257
- var stop = getStopFromMouseLocationFn({
258
- x: e.pageX,
259
- y: e.pageY
260
- });
261
- var position = getPositionFromStopFn(stop);
262
- setAddTargetPosition(position);
263
- };
264
- var handleAddClick = function handleAddClick(e) {
265
- if (isNotInteractive || isTargetAThumb(e.target) || !wrapperRef) return;
266
- var newStop = getStopFromMouseLocationFn({
267
- x: e.pageX,
268
- y: e.pageY
269
- });
270
- var newColorStops = addDefinedStop(colorStops, newStop, addColor);
271
- setFocusStopOnUpdate(newStop);
272
- handleOnChange(newColorStops);
273
- };
274
- var handleKeyDown = function handleKeyDown(event) {
275
- if (disabled) return;
276
- switch (event.key) {
277
- case keys.ESCAPE:
278
- onFocusWrapper();
279
- break;
280
- case keys.ENTER:
281
- if (readOnly || !hasFocus) return;
282
- onAdd();
283
- break;
284
- case keys.BACKSPACE:
285
- if (readOnly || hasFocus || focusedStopIndex == null) return;
286
- if (isTargetAThumb(event.target)) {
287
- if (min == null && focusedStopIndex === 0 || max == null && focusedStopIndex === sortedStops.length - 1) {
288
- return;
289
- }
290
- var index = sortedStops[focusedStopIndex].id;
291
- onRemove(index);
292
- }
293
- break;
294
- case keys.ARROW_DOWN:
295
- if (event.target === wrapperRef || isTargetAThumb(event.target)) {
296
- event.preventDefault();
297
- if (focusedStopIndex == null) {
298
- onFocusStop(0);
299
- } else {
300
- var next = focusedStopIndex === sortedStops.length - 1 ? focusedStopIndex : focusedStopIndex + 1;
301
- onFocusStop(next);
302
- }
303
- }
304
- break;
305
- case keys.ARROW_UP:
306
- if (event.target === wrapperRef || isTargetAThumb(event.target)) {
307
- event.preventDefault();
308
- if (focusedStopIndex == null) {
309
- onFocusStop(0);
310
- } else {
311
- var _next = focusedStopIndex === 0 ? focusedStopIndex : focusedStopIndex - 1;
312
- onFocusStop(_next);
313
- }
314
- }
315
- break;
316
- }
317
- };
318
- var thumbs = useMemo(function () {
319
- var handleStopChange = function handleStopChange(stop, id) {
320
- var newColorStops = _toConsumableArray(colorStops);
321
- newColorStops.splice(id, 1, stop);
322
- handleOnChange(newColorStops);
323
- };
324
- return sortedStops.map(function (colorStop, index) {
325
- return ___EmotionJSX(EuiColorStopThumb, {
326
- isRangeMin: min == null && colorStop.stop === rangeMin,
327
- isRangeMax: max == null && colorStop.stop === rangeMax,
328
- "data-index": "".concat(STOP_ATTR).concat(index),
329
- key: colorStop.id,
330
- globalMin: min || rangeMin,
331
- globalMax: max || rangeMax,
332
- min: min,
333
- max: max,
334
- localMin: index === 0 ? min || rangeMin : sortedStops[index - 1].stop + 1,
335
- localMax: index === sortedStops.length - 1 ? max || rangeMax : sortedStops[index + 1].stop - 1,
336
- stop: colorStop.stop,
337
- color: colorStop.color,
338
- onRemove: sortedStops.length > 1 ? function () {
339
- return onRemove(colorStop.id);
340
- } : undefined,
341
- onChange: function onChange(stop) {
342
- return handleStopChange(stop, colorStop.id);
343
- },
344
- onFocus: function onFocus() {
345
- return setFocusedStopIndex(index);
346
- },
347
- parentRef: wrapperRef,
348
- colorPickerMode: mode,
349
- colorPickerShowAlpha: showAlpha,
350
- colorPickerSwatches: swatches,
351
- disabled: disabled,
352
- readOnly: readOnly,
353
- "aria-valuetext": "Stop: ".concat(colorStop.stop, ", Color: ").concat(colorStop.color, " (").concat(index + 1, " of ").concat(colorStops.length, ")"),
354
- isPopoverOpen: !isDragging && colorStop.id === openedStopId,
355
- openPopover: function openPopover() {
356
- setOpenedStopId(colorStop.id);
357
- },
358
- closePopover: function closePopover() {
359
- setOpenedStopId(null);
360
- },
361
- valueInputProps: valueInputProps
362
- });
363
- });
364
- }, [colorStops, disabled, handleOnChange, isDragging, max, min, mode, onRemove, openedStopId, rangeMax, rangeMin, readOnly, showAlpha, sortedStops, swatches, wrapperRef, valueInputProps]);
365
- var positions = wrapperRef ? sortedStops.map(function (_ref3) {
366
- var stop = _ref3.stop;
367
- return getPositionFromStopFn(stop);
368
- }) : [];
369
- var gradientStop = function gradientStop(colorStop, index) {
370
- var color = getChromaColor(colorStop.color, showAlpha);
371
- var rgba = color ? color.css() : 'transparent';
372
- if (index === 0) {
373
- return "transparent, transparent ".concat(positions[index], "%, ").concat(rgba, " ").concat(positions[index], "%");
374
- }
375
- return "".concat(rgba, " ").concat(positions[index], "%");
376
- };
377
- var fixedStop = function fixedStop(colorStop, index) {
378
- if (index === sortedStops.length - 1) {
379
- return gradientStop(colorStop, index);
380
- } else {
381
- return "".concat(gradientStop(colorStop, index), ", ").concat(gradientStop(colorStop, index + 1));
382
- }
383
- };
384
- var gradient = '';
385
- if (stopType === 'stepped' && positions.length > 0) {
386
- var trailingPercentage = positions[0];
387
- var endingPercentage = positions[positions.length - 1];
388
- var steppedColors = getSteppedGradient(colorStops, stepNumber);
389
- var steppedGradient = '';
390
- var percentage = (endingPercentage - trailingPercentage) / steppedColors.length;
391
- var percentageSteps = (endingPercentage - trailingPercentage) / steppedColors.length + trailingPercentage;
392
- steppedColors.forEach(function (color) {
393
- steppedGradient = steppedGradient.concat("".concat(color, " ").concat(percentageSteps - percentage, "% ").concat(percentageSteps, "%, "));
394
- percentageSteps = percentageSteps + percentage;
395
- });
396
- steppedGradient = steppedGradient.substring(0, steppedGradient.length - 2);
397
- gradient = "linear-gradient(to right, transparent ".concat(trailingPercentage, "%, ").concat(steppedGradient, ")");
398
- } else {
399
- var linearGradient = sortedStops.map(stopType === 'gradient' ? gradientStop : fixedStop);
400
- gradient = "linear-gradient(to right,".concat(linearGradient, ")");
401
- }
402
- return ___EmotionJSX(EuiRangeWrapper, _extends({
403
- css: cssPopoverStyles
404
- }, rest, {
405
- "data-test-subj": classNames('euiColorStops', rest['data-test-subj']),
406
- ref: setWrapperRef,
407
- className: classes,
408
- fullWidth: fullWidth,
409
- tabIndex: disabled ? -1 : 0,
410
- onMouseDown: disableHover,
411
- onMouseUp: enableHover,
412
- onMouseLeave: enableHover,
413
- onKeyDown: handleKeyDown,
414
- onFocus: setWrapperHasFocus,
415
- onBlur: removeWrapperFocus
416
- }), ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("p", {
417
- "aria-live": "polite"
418
- }, ___EmotionJSX(EuiI18n, {
419
- values: {
420
- label: label,
421
- disabled: disabled ? 'Disabled.' : '',
422
- readOnly: readOnly ? 'Read-only.' : ''
423
- },
424
- token: "euiColorStops.screenReaderAnnouncement",
425
- default: "{label}: {readOnly} {disabled} Color stop picker. Each stop consists of a number and corresponding color value. Use the Down and Up arrow keys to select individual stops. Press the Enter key to create a new stop."
426
- }))), ___EmotionJSX(EuiRangeTrack, {
427
- className: "euiColorStops__track",
428
- css: cssTrackStyles,
429
- min: min || rangeMin,
430
- max: max || rangeMax,
431
- compressed: compressed,
432
- disabled: disabled,
433
- step: 1
434
- }, function (trackWidth) {
435
- return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiRangeHighlight, {
436
- className: "euiColorStops__highlight",
437
- min: min || rangeMin,
438
- max: max || rangeMax,
439
- lowerValue: min || rangeMin,
440
- upperValue: max || rangeMax,
441
- background: gradient,
442
- trackWidth: trackWidth
443
- }), ___EmotionJSX("div", {
444
- "data-test-subj": "euiColorStopsAdd",
445
- className: "euiColorStops__addContainer",
446
- css: cssAddContainerStyles,
447
- onClick: handleAddClick,
448
- onMouseMove: handleAddHover
449
- }, ___EmotionJSX("div", {
450
- className: "euiColorStops__addTarget",
451
- css: cssAddTargetStyles,
452
- style: {
453
- left: "".concat(addTargetPosition, "%")
454
- }
455
- })), thumbs);
456
- }));
457
- };
458
- EuiColorStops.propTypes = {
459
- addColor: PropTypes.string,
460
- /**
461
- * An array of #ColorStop. The stops must be numbers in an ordered range.
462
- */
463
- colorStops: PropTypes.arrayOf(PropTypes.shape({
464
- stop: PropTypes.number.isRequired,
465
- color: PropTypes.string.isRequired
466
- }).isRequired).isRequired,
467
- onChange: PropTypes.func.isRequired,
468
- fullWidth: PropTypes.bool,
469
- disabled: PropTypes.bool,
470
- readOnly: PropTypes.bool,
471
- invalid: PropTypes.bool,
472
- compressed: PropTypes.bool,
473
- className: PropTypes.string,
474
- max: PropTypes.number,
475
- min: PropTypes.number,
476
- label: PropTypes.string.isRequired,
477
- /**
478
- * Specify the type of stops:
479
- * `fixed`: individual color blocks.
480
- * `gradient`: each color fades into the next.
481
- * `stepped`: interpolation between colors with a fixed number of steps.
482
- */
483
- stopType: PropTypes.oneOf(["fixed", "gradient", "stepped"]),
484
- /**
485
- * Only works when `stopType="stepped"`
486
- */
487
- stepNumber: PropTypes.number,
488
- mode: PropTypes.oneOf(["default", "swatch", "picker", "secondaryInput"]),
489
- swatches: PropTypes.arrayOf(PropTypes.string.isRequired),
490
- showAlpha: PropTypes.bool,
491
- /**
492
- * Props passed to the value input field in the color stop popover.
493
- * Can be used to configure functionality like append or prepend.
494
- */
495
- valueInputProps: PropTypes.any,
496
- "aria-label": PropTypes.string,
497
- "data-test-subj": PropTypes.string,
498
- css: PropTypes.any
499
- };
@@ -1,61 +0,0 @@
1
- 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)."; }
2
- /*
3
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
4
- * or more contributor license agreements. Licensed under the Elastic License
5
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
6
- * in compliance with, at your election, the Elastic License 2.0 or the Server
7
- * Side Public License, v 1.
8
- */
9
-
10
- import { css } from '@emotion/react';
11
- import { darken, brighten, hexToRgb } from '../../../services';
12
- import { mathWithUnits, euiCanAnimate } from '../../../global_styling';
13
- import { euiCustomControl } from '../../form/form.styles';
14
- import { euiRangeThumbStyle, euiRangeVariables } from '../../form/range/range.styles';
15
- var _ref2 = process.env.NODE_ENV === "production" ? {
16
- name: "uu65b3-isDragging",
17
- styles: "cursor:grabbing;label:isDragging;"
18
- } : {
19
- name: "uu65b3-isDragging",
20
- styles: "cursor:grabbing;label:isDragging;",
21
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
22
- };
23
- export var euiColorStopsStyles = function euiColorStopsStyles(euiThemeContext) {
24
- var range = euiRangeVariables(euiThemeContext);
25
- var euiTheme = euiThemeContext.euiTheme,
26
- colorMode = euiThemeContext.colorMode;
27
- var isDarkMode = colorMode === 'DARK';
28
- var stripeColor = isDarkMode ? brighten(range.trackColor, 0.5) : darken(range.trackColor, 0.5);
29
- var stripesBackground = "repeating-linear-gradient(\n -45deg,\n ".concat(range.trackColor, ",\n ").concat(range.trackColor, " 25%,\n ").concat(stripeColor, " 25%,\n ").concat(stripeColor, " 50%,\n ").concat(range.trackColor, " 50%\n )");
30
- return {
31
- // Base
32
- euiColorStops: /*#__PURE__*/css(";label:euiColorStops;"),
33
- isEnabled: /*#__PURE__*/css("&:focus{outline:none;}&:focus-visible{.euiColorStops__track::after{box-shadow:0 0 0 1px rgba(", hexToRgb(euiTheme.colors.emptyShade).join(', '), ", 0.8),0 0 0 3px ", range.focusColor, ";}};label:isEnabled;"),
34
- isDisabled: /*#__PURE__*/css(";label:isDisabled;"),
35
- isHoverDisabled: /*#__PURE__*/css(";label:isHoverDisabled;"),
36
- isReadOnly: /*#__PURE__*/css(";label:isReadOnly;"),
37
- isDragging: _ref2,
38
- euiColorStops__track: /*#__PURE__*/css("&::after{background:", stripesBackground, ";background-size:", euiTheme.size.xs, " ", euiTheme.size.xs, ";};label:euiColorStops__track;"),
39
- euiColorStops__addTarget: /*#__PURE__*/css(euiCustomControl(euiThemeContext, {
40
- type: 'round'
41
- }), " ", euiRangeThumbStyle(euiThemeContext), " position:absolute;inset-block-start:0;block-size:", range.thumbHeight, ";inline-size:", range.thumbHeight, ";background-color:", euiTheme.colors.lightestShade, ";pointer-events:none;opacity:0;border:", euiTheme.border.width.thin, " solid ", euiTheme.colors.darkShade, ";box-shadow:none;z-index:", range.thumbZIndex, ";", euiCanAnimate, "{transition:opacity ", euiTheme.animation.fast, " ease-in;};label:euiColorStops__addTarget;")
42
- };
43
- };
44
- var _ref = process.env.NODE_ENV === "production" ? {
45
- name: "1173em8-isEnabled",
46
- styles: "&:hover{cursor:pointer;.euiColorStops__addTarget{opacity:0.7;}};label:isEnabled;"
47
- } : {
48
- name: "1173em8-isEnabled",
49
- styles: "&:hover{cursor:pointer;.euiColorStops__addTarget{opacity:0.7;}};label:isEnabled;",
50
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
51
- };
52
- export var euiColorStopsAddContainerStyles = function euiColorStopsAddContainerStyles(euiThemeContext) {
53
- var range = euiRangeVariables(euiThemeContext);
54
- return {
55
- euiColorStopsAddContainer: /*#__PURE__*/css("display:block;position:absolute;inset-inline-start:0;inset-inline-end:0;inset-block-start:50%;block-size:", range.thumbHeight, ";margin-block-start:", mathWithUnits(range.thumbHeight, function (x) {
56
- return x * -0.5;
57
- }), ";z-index:", range.thumbZIndex, ";;label:euiColorStopsAddContainer;"),
58
- isEnabled: _ref,
59
- isDisabled: /*#__PURE__*/css(";label:isDisabled;")
60
- };
61
- };
@@ -1,9 +0,0 @@
1
- /*
2
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
- * or more contributor license agreements. Licensed under the Elastic License
4
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
- * in compliance with, at your election, the Elastic License 2.0 or the Server
6
- * Side Public License, v 1.
7
- */
8
-
9
- export { EuiColorStops } from './color_stops';
@@ -1,95 +0,0 @@
1
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
- /*
8
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
9
- * or more contributor license agreements. Licensed under the Elastic License
10
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
11
- * in compliance with, at your election, the Elastic License 2.0 or the Server
12
- * Side Public License, v 1.
13
- */
14
-
15
- import { getEventPosition, getChromaColor } from '../utils';
16
- import { DEFAULT_VISUALIZATION_COLOR } from '../../../services';
17
- import { EUI_THUMB_SIZE } from '../../form/range/utils';
18
- export var removeStop = function removeStop(colorStops, index) {
19
- if (colorStops.length === 1) {
20
- return colorStops;
21
- }
22
- return [].concat(_toConsumableArray(colorStops.slice(0, index)), _toConsumableArray(colorStops.slice(index + 1)));
23
- };
24
- export var addDefinedStop = function addDefinedStop(colorStops, stop) {
25
- var color = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_VISUALIZATION_COLOR;
26
- var newStop = {
27
- stop: stop,
28
- color: color
29
- };
30
- colorStops = [].concat(_toConsumableArray(colorStops), [newStop]);
31
- colorStops.sort(function (a, b) {
32
- if (a.stop < b.stop) {
33
- return -1;
34
- }
35
- if (a.stop > b.stop) {
36
- return 1;
37
- }
38
- return 0;
39
- });
40
- return colorStops;
41
- };
42
- export var addStop = function addStop(colorStops) {
43
- var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_VISUALIZATION_COLOR;
44
- var max = arguments.length > 2 ? arguments[2] : undefined;
45
- var index = colorStops.length ? colorStops.length - 1 : 0;
46
- var stops = colorStops.map(function (el) {
47
- return el.stop;
48
- });
49
- var currentStop = stops[index] != null ? stops[index] : max;
50
- var delta = 1;
51
- if (index !== 0) {
52
- var prevStop = stops[index - 1];
53
- delta = currentStop - prevStop;
54
- }
55
- var stop = currentStop + delta;
56
- if (stop > max) {
57
- stop = max;
58
- }
59
-
60
- // We've reached the max, so start working backwards
61
- while (stops.indexOf(stop) > -1) {
62
- stop--;
63
- }
64
- var newStop = {
65
- stop: stop,
66
- color: color
67
- };
68
- return [].concat(_toConsumableArray(colorStops.slice(0, index + 1)), [newStop], _toConsumableArray(colorStops.slice(index + 1)));
69
- };
70
- export var isColorInvalid = function isColorInvalid(color) {
71
- var showAlpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
72
- return getChromaColor(color, showAlpha) == null || color === '';
73
- };
74
- export var isStopInvalid = function isStopInvalid(stop) {
75
- return stop == null || isNaN(stop);
76
- };
77
- export var isInvalid = function isInvalid(colorStops) {
78
- var showAlpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
79
- return colorStops.some(function (colorStop) {
80
- return isColorInvalid(colorStop.color, showAlpha) || isStopInvalid(colorStop.stop);
81
- });
82
- };
83
- export var calculateScale = function calculateScale(trackWidth) {
84
- var thumbToTrackRatio = EUI_THUMB_SIZE / trackWidth;
85
- return (1 - thumbToTrackRatio) * 100;
86
- };
87
- export var getStopFromMouseLocation = function getStopFromMouseLocation(location, ref, min, max) {
88
- var box = getEventPosition(location, ref);
89
- return Math.round(box.left / box.width * (max - min) + min);
90
- };
91
- export var getPositionFromStop = function getPositionFromStop(stop, ref, min, max) {
92
- // For wide implementations, integer percentages can be visually off.
93
- // Use 1 decimal place for more accuracy
94
- return parseFloat(((stop - min) / (max - min) * calculateScale(ref && ref.clientWidth > 0 ? ref.clientWidth : 100)).toFixed(1));
95
- };