@elastic/eui 72.0.0 → 72.1.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 (99) hide show
  1. package/dist/eui_charts_theme.js +13 -1
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +0 -148
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +0 -148
  6. package/dist/eui_theme_light.min.css +1 -1
  7. package/es/components/basic_table/basic_table.js +2 -2
  8. package/es/components/basic_table/in_memory_table.js +3 -6
  9. package/es/components/basic_table/table.a11y.js +128 -0
  10. package/es/components/color_picker/color_picker.styles.js +16 -0
  11. package/es/components/color_picker/color_stops/color_stop_thumb.js +19 -7
  12. package/es/components/color_picker/color_stops/color_stop_thumb.styles.js +59 -0
  13. package/es/components/color_picker/color_stops/color_stops.js +25 -15
  14. package/es/components/color_picker/color_stops/color_stops.styles.js +65 -0
  15. package/es/components/form/range/range_highlight.styles.js +1 -1
  16. package/es/components/form/range/range_levels.styles.js +1 -1
  17. package/es/components/form/range/range_track.js +5 -2
  18. package/es/components/image/image.a11y.js +55 -0
  19. package/es/components/key_pad_menu/key_pad_menu.a11y.js +158 -0
  20. package/es/components/popover/popover.js +2 -2
  21. package/es/components/table/table_footer_cell.js +1 -1
  22. package/es/components/table/table_header_cell.js +1 -1
  23. package/es/components/table/table_row_cell.js +2 -2
  24. package/es/services/color/manipulation.js +9 -0
  25. package/es/services/index.js +11 -11
  26. package/eui.d.ts +154 -106
  27. package/i18ntokens.json +16 -16
  28. package/lib/components/basic_table/basic_table.js +2 -2
  29. package/lib/components/basic_table/in_memory_table.js +3 -6
  30. package/lib/components/basic_table/table.a11y.js +139 -0
  31. package/lib/components/color_picker/color_picker.styles.js +26 -0
  32. package/lib/components/color_picker/color_stops/color_stop_thumb.js +19 -6
  33. package/lib/components/color_picker/color_stops/color_stop_thumb.styles.js +69 -0
  34. package/lib/components/color_picker/color_stops/color_stops.js +25 -14
  35. package/lib/components/color_picker/color_stops/color_stops.styles.js +73 -0
  36. package/lib/components/form/range/range_highlight.styles.js +1 -1
  37. package/lib/components/form/range/range_levels.styles.js +1 -1
  38. package/lib/components/form/range/range_track.js +6 -2
  39. package/lib/components/image/image.a11y.js +61 -0
  40. package/lib/components/key_pad_menu/key_pad_menu.a11y.js +163 -0
  41. package/lib/components/popover/popover.js +2 -2
  42. package/lib/components/table/table_footer_cell.js +1 -1
  43. package/lib/components/table/table_header_cell.js +1 -1
  44. package/lib/components/table/table_row_cell.js +2 -2
  45. package/lib/services/color/manipulation.js +14 -2
  46. package/lib/services/index.js +65 -58
  47. package/optimize/es/components/basic_table/table.a11y.js +128 -0
  48. package/optimize/es/components/color_picker/color_picker.styles.js +16 -0
  49. package/optimize/es/components/color_picker/color_stops/color_stop_thumb.js +19 -7
  50. package/optimize/es/components/color_picker/color_stops/color_stop_thumb.styles.js +59 -0
  51. package/optimize/es/components/color_picker/color_stops/color_stops.js +25 -15
  52. package/optimize/es/components/color_picker/color_stops/color_stops.styles.js +65 -0
  53. package/optimize/es/components/form/range/range_highlight.styles.js +1 -1
  54. package/optimize/es/components/form/range/range_levels.styles.js +1 -1
  55. package/optimize/es/components/form/range/range_track.js +5 -2
  56. package/optimize/es/components/image/image.a11y.js +55 -0
  57. package/optimize/es/components/key_pad_menu/key_pad_menu.a11y.js +148 -0
  58. package/optimize/es/components/popover/popover.js +2 -2
  59. package/optimize/es/services/color/manipulation.js +9 -0
  60. package/optimize/es/services/index.js +11 -11
  61. package/optimize/lib/components/basic_table/table.a11y.js +139 -0
  62. package/optimize/lib/components/color_picker/color_picker.styles.js +26 -0
  63. package/optimize/lib/components/color_picker/color_stops/color_stop_thumb.js +19 -6
  64. package/optimize/lib/components/color_picker/color_stops/color_stop_thumb.styles.js +69 -0
  65. package/optimize/lib/components/color_picker/color_stops/color_stops.js +25 -14
  66. package/optimize/lib/components/color_picker/color_stops/color_stops.styles.js +73 -0
  67. package/optimize/lib/components/form/range/range_highlight.styles.js +1 -1
  68. package/optimize/lib/components/form/range/range_levels.styles.js +1 -1
  69. package/optimize/lib/components/form/range/range_track.js +6 -2
  70. package/optimize/lib/components/image/image.a11y.js +61 -0
  71. package/optimize/lib/components/key_pad_menu/key_pad_menu.a11y.js +163 -0
  72. package/optimize/lib/components/popover/popover.js +2 -2
  73. package/optimize/lib/services/color/manipulation.js +14 -2
  74. package/optimize/lib/services/index.js +65 -58
  75. package/package.json +1 -1
  76. package/src/components/color_picker/_index.scss +0 -1
  77. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  78. package/test-env/components/basic_table/basic_table.js +2 -2
  79. package/test-env/components/basic_table/in_memory_table.js +3 -6
  80. package/test-env/components/basic_table/table.a11y.js +139 -0
  81. package/test-env/components/color_picker/color_picker.styles.js +26 -0
  82. package/test-env/components/color_picker/color_stops/color_stop_thumb.js +19 -6
  83. package/test-env/components/color_picker/color_stops/color_stop_thumb.styles.js +69 -0
  84. package/test-env/components/color_picker/color_stops/color_stops.js +25 -14
  85. package/test-env/components/color_picker/color_stops/color_stops.styles.js +73 -0
  86. package/test-env/components/form/range/range_highlight.styles.js +1 -1
  87. package/test-env/components/form/range/range_levels.styles.js +1 -1
  88. package/test-env/components/form/range/range_track.js +6 -2
  89. package/test-env/components/image/image.a11y.js +61 -0
  90. package/test-env/components/key_pad_menu/key_pad_menu.a11y.js +163 -0
  91. package/test-env/components/popover/popover.js +2 -2
  92. package/test-env/components/table/table_footer_cell.js +1 -1
  93. package/test-env/components/table/table_header_cell.js +1 -1
  94. package/test-env/components/table/table_row_cell.js +2 -2
  95. package/test-env/services/color/manipulation.js +14 -2
  96. package/test-env/services/index.js +65 -58
  97. package/src/components/color_picker/color_stops/_color_stops.scss +0 -101
  98. package/src/components/color_picker/color_stops/_index.scss +0 -1
  99. package/src/themes/amsterdam/overrides/_color_stops.scss +0 -58
@@ -11,6 +11,8 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
14
16
  var _range = _interopRequireDefault(require("lodash/range"));
15
17
 
16
18
  var _services = require("../../../services");
@@ -23,7 +25,7 @@ var _range_track = require("./range_track.styles");
23
25
 
24
26
  var _react2 = require("@emotion/react");
25
27
 
26
- var _excluded = ["children", "disabled", "max", "min", "step", "showTicks", "tickInterval", "ticks", "levels", "onChange", "value", "compressed", "showRange"];
28
+ var _excluded = ["children", "disabled", "max", "min", "step", "showTicks", "tickInterval", "ticks", "levels", "onChange", "value", "compressed", "showRange", "className"];
27
29
 
28
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
31
 
@@ -63,6 +65,7 @@ var EuiRangeTrack = function EuiRangeTrack(_ref) {
63
65
  value = _ref.value,
64
66
  compressed = _ref.compressed,
65
67
  showRange = _ref.showRange,
68
+ className = _ref.className,
66
69
  rest = _objectWithoutProperties(_ref, _excluded);
67
70
 
68
71
  (0, _react.useEffect)(function () {
@@ -122,8 +125,9 @@ var EuiRangeTrack = function EuiRangeTrack(_ref) {
122
125
  trackWidth = _useState2[0],
123
126
  setTrackWidth = _useState2[1];
124
127
 
128
+ var classes = (0, _classnames.default)('euiRangeTrack', className);
125
129
  return (0, _react2.jsx)("div", _extends({
126
- className: "euiRangeTrack",
130
+ className: classes,
127
131
  css: cssStyles
128
132
  }, rest, {
129
133
  ref: function ref(node) {
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _image = require("./image");
6
+
7
+ var _react2 = require("@emotion/react");
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+
11
+ /*
12
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
13
+ * or more contributor license agreements. Licensed under the Elastic License
14
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
15
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
16
+ * Side Public License, v 1.
17
+ */
18
+ /// <reference types="../../../cypress/support"/>
19
+ var Image = function Image() {
20
+ return (0, _react2.jsx)(_image.EuiImage, {
21
+ size: "m",
22
+ hasShadow: true,
23
+ allowFullScreen: true,
24
+ caption: "Albert Einstein, theoretical physicist",
25
+ alt: "" // Because this image is sufficiently described by its caption, there is no need to repeat it via alt text
26
+ ,
27
+ src: "https://upload.wikimedia.org/wikipedia/commons/d/d3/Albert_Einstein_Head.jpg"
28
+ });
29
+ };
30
+
31
+ beforeEach(function () {
32
+ cy.viewport(1024, 768); // medium breakpoint
33
+
34
+ cy.realMount((0, _react2.jsx)(Image, null));
35
+ cy.get('figure[aria-label="Albert Einstein, theoretical physicist"]').should('exist');
36
+ });
37
+ describe('EuiImage', function () {
38
+ describe('Automated accessibility check', function () {
39
+ it('has zero violations on first render', function () {
40
+ cy.checkAxe();
41
+ });
42
+ it('has zero violations on fullscreen render', function () {
43
+ cy.get('button[data-test-subj="activateFullScreenButton"]').realClick();
44
+ cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('exist');
45
+ cy.checkAxe();
46
+ cy.get('div[data-test-subj="fullScreenOverlayMask"]').realClick();
47
+ cy.checkAxe();
48
+ });
49
+ it('has zero violations on keyboard interaction', function () {
50
+ cy.realPress('Tab');
51
+ cy.get('button[data-test-subj="activateFullScreenButton"]').should('have.focus');
52
+ cy.realPress('Enter');
53
+ cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('exist');
54
+ cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('have.focus');
55
+ cy.checkAxe();
56
+ cy.realPress('Escape');
57
+ cy.get('button[data-test-subj="activateFullScreenButton"]').should('have.focus');
58
+ cy.checkAxe();
59
+ });
60
+ });
61
+ });
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ var _react = _interopRequireWildcard(require("react"));
6
+
7
+ var _key_pad_menu = require("./key_pad_menu");
8
+
9
+ var _key_pad_menu_item = require("./key_pad_menu_item");
10
+
11
+ var _icon = require("../icon");
12
+
13
+ var _services = require("../../services");
14
+
15
+ var _react2 = require("@emotion/react");
16
+
17
+ 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); }
18
+
19
+ 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; }
20
+
21
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
22
+
23
+ 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."); }
24
+
25
+ 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); }
26
+
27
+ 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; }
28
+
29
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
30
+
31
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
32
+
33
+ var KeyPadMenu = function KeyPadMenu() {
34
+ var keypadButtonId__1 = (0, _services.useGeneratedHtmlId)({
35
+ prefix: 'keypadButton',
36
+ suffix: 'first'
37
+ });
38
+ var keypadButtonId__2 = (0, _services.useGeneratedHtmlId)({
39
+ prefix: 'keypadButton',
40
+ suffix: 'second'
41
+ });
42
+ var keypadButtonId__3 = (0, _services.useGeneratedHtmlId)({
43
+ prefix: 'keypadButton',
44
+ suffix: 'third'
45
+ });
46
+ var keypadButtonId__4 = (0, _services.useGeneratedHtmlId)({
47
+ prefix: 'keypadButton',
48
+ suffix: 'fourth'
49
+ });
50
+ var keypadButtonId__5 = (0, _services.useGeneratedHtmlId)({
51
+ prefix: 'keypadButton',
52
+ suffix: 'fifth'
53
+ });
54
+ var keypadButtonId__6 = (0, _services.useGeneratedHtmlId)({
55
+ prefix: 'keypadButton',
56
+ suffix: 'sixth'
57
+ });
58
+
59
+ var _useState = (0, _react.useState)(keypadButtonId__6),
60
+ _useState2 = _slicedToArray(_useState, 2),
61
+ selectedID = _useState2[0],
62
+ setSelectedID = _useState2[1];
63
+
64
+ return (0, _react2.jsx)("div", {
65
+ "aria-label": "Menu keypad"
66
+ }, (0, _react2.jsx)(_key_pad_menu.EuiKeyPadMenu, null, (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
67
+ "data-test-subj": "cy-keypad-button-1",
68
+ id: keypadButtonId__1,
69
+ label: "Button 1",
70
+ isSelected: selectedID === keypadButtonId__1,
71
+ onClick: function onClick() {
72
+ return setSelectedID(keypadButtonId__1);
73
+ }
74
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
75
+ type: "grid",
76
+ size: "l"
77
+ })), (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
78
+ "data-test-subj": "cy-keypad-button-2",
79
+ id: keypadButtonId__2,
80
+ label: "Button 2",
81
+ isSelected: selectedID === keypadButtonId__2,
82
+ onClick: function onClick() {
83
+ return setSelectedID(keypadButtonId__2);
84
+ }
85
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
86
+ type: "grid",
87
+ size: "l"
88
+ })), (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
89
+ "data-test-subj": "cy-keypad-button-3",
90
+ id: keypadButtonId__3,
91
+ label: "Button 3",
92
+ isSelected: selectedID === keypadButtonId__3,
93
+ onClick: function onClick() {
94
+ return setSelectedID(keypadButtonId__3);
95
+ }
96
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
97
+ type: "grid",
98
+ size: "l"
99
+ })), (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
100
+ "data-test-subj": "cy-keypad-link-1",
101
+ id: keypadButtonId__4,
102
+ label: "Link 1",
103
+ href: "#/navigation/key-pad-menu",
104
+ isSelected: selectedID === keypadButtonId__4,
105
+ onClick: function onClick() {
106
+ return setSelectedID(keypadButtonId__4);
107
+ }
108
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
109
+ type: "link",
110
+ size: "l"
111
+ })), (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
112
+ "data-test-subj": "cy-keypad-link-2",
113
+ id: keypadButtonId__5,
114
+ label: "Link 2",
115
+ href: "#/navigation/key-pad-menu",
116
+ isSelected: selectedID === keypadButtonId__5,
117
+ onClick: function onClick() {
118
+ return setSelectedID(keypadButtonId__5);
119
+ }
120
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
121
+ type: "link",
122
+ size: "l"
123
+ })), (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
124
+ "data-test-subj": "cy-keypad-link-3",
125
+ id: keypadButtonId__6,
126
+ label: "Disabled Link 3",
127
+ isDisabled: true,
128
+ isSelected: selectedID === keypadButtonId__6
129
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
130
+ type: "link",
131
+ size: "l"
132
+ }))));
133
+ };
134
+
135
+ beforeEach(function () {
136
+ cy.realMount((0, _react2.jsx)(KeyPadMenu, null));
137
+ cy.get('div[aria-label="Menu keypad"]').should('exist');
138
+ });
139
+ describe('EuiKeyPadMenu', function () {
140
+ describe('Automated accessibility check', function () {
141
+ it('has zero violations on first render', function () {
142
+ cy.checkAxe();
143
+ });
144
+ it('has zero violations on item click', function () {
145
+ cy.get('a[data-test-subj="cy-keypad-link-2"]').realClick();
146
+ cy.get('a[data-test-subj="cy-keypad-link-2"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
147
+ cy.checkAxe();
148
+ });
149
+ it('has zero violations on item keypress', function () {
150
+ cy.repeatRealPress('Tab', 3);
151
+ cy.get('button[data-test-subj="cy-keypad-button-3"]').should('have.focus');
152
+ cy.realPress('Space');
153
+ cy.get('button[data-test-subj="cy-keypad-button-3"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
154
+ cy.checkAxe();
155
+ cy.realPress(['Shift', 'Tab']);
156
+ cy.get('button[data-test-subj="cy-keypad-button-2"]').should('have.focus');
157
+ cy.realPress('Space');
158
+ cy.get('button[data-test-subj="cy-keypad-button-2"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
159
+ cy.get('button[data-test-subj="cy-keypad-button-3"]').should('not.have.class', 'euiKeyPadMenuItem-isSelected');
160
+ cy.checkAxe();
161
+ });
162
+ });
163
+ });
@@ -535,13 +535,13 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
535
535
  panel = (0, _react.jsx)(_portal.EuiPortal, {
536
536
  insert: insert
537
537
  }, (0, _react.jsx)(_focus_trap.EuiFocusTrap, _extends({
538
- clickOutsideDisables: true
538
+ clickOutsideDisables: true,
539
+ onClickOutside: this.onClickOutside
539
540
  }, focusTrapProps, {
540
541
  returnFocus: returnFocus // Ignore temporary state of indecisive focus
541
542
  ,
542
543
  initialFocus: initialFocus,
543
544
  onDeactivation: onTrapDeactivation,
544
- onClickOutside: this.onClickOutside,
545
545
  onEscapeKey: this.onEscapeKey,
546
546
  disabled: !ownFocus || !this.state.isOpenStable || this.state.isClosing
547
547
  }), (0, _react.jsx)(_popover_panel.EuiPopoverPanel, _extends({}, panelProps, {
@@ -58,6 +58,6 @@ EuiTableFooterCell.propTypes = {
58
58
  "aria-label": _propTypes.default.string,
59
59
  "data-test-subj": _propTypes.default.string,
60
60
  css: _propTypes.default.any,
61
- align: _propTypes.default.oneOf(["left", "right", "center"]),
61
+ align: _propTypes.default.any,
62
62
  width: _propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.number.isRequired])
63
63
  };
@@ -151,7 +151,7 @@ EuiTableHeaderCell.propTypes = {
151
151
  "aria-label": _propTypes.default.string,
152
152
  "data-test-subj": _propTypes.default.string,
153
153
  css: _propTypes.default.any,
154
- align: _propTypes.default.oneOf(["left", "right", "center"]),
154
+ align: _propTypes.default.any,
155
155
  isSortAscending: _propTypes.default.bool,
156
156
  isSorted: _propTypes.default.bool,
157
157
 
@@ -211,7 +211,7 @@ EuiTableRowCell.propTypes = {
211
211
  /**
212
212
  * Horizontal alignment of the text in the cell
213
213
  */
214
- align: _propTypes.default.oneOf(["left", "right", "center"]),
214
+ align: _propTypes.default.any,
215
215
 
216
216
  /**
217
217
  * _Should only be used for action cells_
@@ -233,7 +233,7 @@ EuiTableRowCell.propTypes = {
233
233
  /**
234
234
  * Horizontal alignment of the text in the cell
235
235
  */
236
- align: _propTypes.default.oneOf(["left", "right", "center"]),
236
+ align: _propTypes.default.any,
237
237
 
238
238
  /**
239
239
  * _Should only be used for action cells_
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.transparentize = exports.tintOrShade = exports.tint = exports.shadeOrTint = exports.shade = exports.saturate = exports.lightness = exports.desaturate = exports.darken = void 0;
6
+ exports.transparentize = exports.tintOrShade = exports.tint = exports.shadeOrTint = exports.shade = exports.saturate = exports.lightness = exports.desaturate = exports.darken = exports.brighten = void 0;
7
7
 
8
8
  var _chromaJs = _interopRequireDefault(require("chroma-js"));
9
9
 
@@ -134,5 +134,17 @@ exports.lightness = lightness;
134
134
  var darken = function darken(color, amount) {
135
135
  return (0, _chromaJs.default)(color).darken(amount).hex();
136
136
  };
137
+ /**
138
+ * Returns the brighten value of a color. 0-100
139
+ * @param color - Color to manipulate
140
+ * @param amount - Amount to change in absolute terms. 0-1.
141
+ */
142
+
143
+
144
+ exports.darken = darken;
145
+
146
+ var brighten = function brighten(color, amount) {
147
+ return (0, _chromaJs.default)(color).brighten(amount).hex();
148
+ };
137
149
 
138
- exports.darken = darken;
150
+ exports.brighten = brighten;
@@ -12,83 +12,84 @@ var _exportNames = {
12
12
  comboBoxKeys: true,
13
13
  htmlIdGenerator: true,
14
14
  useGeneratedHtmlId: true,
15
+ CENTER_ALIGNMENT: true,
15
16
  LEFT_ALIGNMENT: true,
16
17
  RIGHT_ALIGNMENT: true,
17
- CENTER_ALIGNMENT: true,
18
- useIsWithinBreakpoints: true,
19
- useIsWithinMaxBreakpoint: true,
20
- useIsWithinMinBreakpoint: true,
21
18
  CurrentEuiBreakpointContext: true,
22
19
  CurrentEuiBreakpointProvider: true,
23
20
  useCurrentEuiBreakpoint: true,
24
- isColorDark: true,
25
- isValidHex: true,
21
+ useIsWithinBreakpoints: true,
22
+ useIsWithinMaxBreakpoint: true,
23
+ useIsWithinMinBreakpoint: true,
24
+ brighten: true,
26
25
  calculateContrast: true,
27
26
  calculateLuminance: true,
28
- hexToHsv: true,
29
- hexToRgb: true,
30
- hsvToHex: true,
31
- hsvToRgb: true,
32
- rgbToHex: true,
33
- rgbToHsv: true,
34
- VISUALIZATION_COLORS: true,
35
- DEFAULT_VISUALIZATION_COLOR: true,
36
27
  colorPalette: true,
37
- euiPaletteForLightBackground: true,
38
- euiPaletteForDarkBackground: true,
28
+ darken: true,
29
+ DEFAULT_VISUALIZATION_COLOR: true,
30
+ desaturate: true,
39
31
  euiPaletteColorBlind: true,
40
32
  euiPaletteColorBlindBehindText: true,
33
+ euiPaletteComplimentary: true,
34
+ euiPaletteCool: true,
35
+ euiPaletteForDarkBackground: true,
36
+ euiPaletteForLightBackground: true,
41
37
  euiPaletteForStatus: true,
42
38
  euiPaletteForTemperature: true,
43
- euiPaletteComplimentary: true,
39
+ euiPaletteGray: true,
44
40
  euiPaletteNegative: true,
45
41
  euiPalettePositive: true,
46
- euiPaletteCool: true,
47
42
  euiPaletteWarm: true,
48
- euiPaletteGray: true,
49
43
  getSteppedGradient: true,
50
- transparentize: true,
51
- tint: true,
52
- shade: true,
53
- tintOrShade: true,
54
- shadeOrTint: true,
55
- saturate: true,
56
- desaturate: true,
44
+ hexToHsv: true,
45
+ hexToRgb: true,
46
+ hsvToHex: true,
47
+ hsvToRgb: true,
48
+ isColorDark: true,
49
+ isValidHex: true,
57
50
  lightness: true,
58
- darken: true,
59
- makeHighContrastColor: true,
60
51
  makeDisabledContrastColor: true,
52
+ makeHighContrastColor: true,
53
+ rgbToHex: true,
54
+ rgbToHsv: true,
55
+ saturate: true,
56
+ shade: true,
57
+ shadeOrTint: true,
58
+ tint: true,
59
+ tintOrShade: true,
60
+ transparentize: true,
61
+ VISUALIZATION_COLORS: true,
61
62
  wcagContrastMin: true,
62
63
  useColorPickerState: true,
63
64
  useColorStopsState: true,
64
65
  copyToClipboard: true,
66
+ dateFormatAliases: true,
65
67
  formatAuto: true,
66
68
  formatBoolean: true,
67
69
  formatDate: true,
68
70
  formatNumber: true,
69
71
  formatText: true,
70
- dateFormatAliases: true,
71
72
  isEvenlyDivisibleBy: true,
72
73
  isWithinRange: true,
73
74
  Pager: true,
75
+ calculatePopoverPosition: true,
76
+ findPopoverPosition: true,
74
77
  Random: true,
75
78
  getSecureRelForTarget: true,
76
- toSentenceCase: true,
77
- toInitials: true,
78
- slugify: true,
79
+ Comparators: true,
79
80
  PropertySortType: true,
80
- SortDirectionType: true,
81
- SortDirection: true,
82
81
  SortableProperties: true,
83
- Comparators: true,
84
- calculatePopoverPosition: true,
85
- findPopoverPosition: true,
82
+ SortDirection: true,
83
+ SortDirectionType: true,
84
+ slugify: true,
85
+ toInitials: true,
86
+ toSentenceCase: true,
87
+ throttle: true,
86
88
  getDurationAndPerformOnFrame: true,
87
89
  getTransitionTimings: true,
88
90
  getWaitDuration: true,
89
91
  performOnFrame: true,
90
- EuiWindowEvent: true,
91
- throttle: true
92
+ EuiWindowEvent: true
92
93
  };
93
94
  Object.defineProperty(exports, "CENTER_ALIGNMENT", {
94
95
  enumerable: true,
@@ -186,6 +187,12 @@ Object.defineProperty(exports, "accessibleClickKeys", {
186
187
  return _accessibility.accessibleClickKeys;
187
188
  }
188
189
  });
190
+ Object.defineProperty(exports, "brighten", {
191
+ enumerable: true,
192
+ get: function get() {
193
+ return _color.brighten;
194
+ }
195
+ });
189
196
  Object.defineProperty(exports, "calculateContrast", {
190
197
  enumerable: true,
191
198
  get: function get() {
@@ -630,24 +637,6 @@ Object.keys(_findElement).forEach(function (key) {
630
637
 
631
638
  var _format = require("./format");
632
639
 
633
- var _number = require("./number");
634
-
635
- var _paging = require("./paging");
636
-
637
- var _random = require("./random");
638
-
639
- var _security = require("./security");
640
-
641
- var _string = require("./string");
642
-
643
- var _sort = require("./sort");
644
-
645
- var _popover = require("./popover");
646
-
647
- var _transition = require("./transition");
648
-
649
- var _window_event = require("./window_event");
650
-
651
640
  var _hooks = require("./hooks");
652
641
 
653
642
  Object.keys(_hooks).forEach(function (key) {
@@ -662,7 +651,19 @@ Object.keys(_hooks).forEach(function (key) {
662
651
  });
663
652
  });
664
653
 
665
- var _throttle = require("./throttle");
654
+ var _number = require("./number");
655
+
656
+ var _paging = require("./paging");
657
+
658
+ var _popover = require("./popover");
659
+
660
+ var _random = require("./random");
661
+
662
+ var _security = require("./security");
663
+
664
+ var _sort = require("./sort");
665
+
666
+ var _string = require("./string");
666
667
 
667
668
  var _theme = require("./theme");
668
669
 
@@ -678,6 +679,12 @@ Object.keys(_theme).forEach(function (key) {
678
679
  });
679
680
  });
680
681
 
682
+ var _throttle = require("./throttle");
683
+
684
+ var _transition = require("./transition");
685
+
686
+ var _window_event = require("./window_event");
687
+
681
688
  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); }
682
689
 
683
690
  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; }
@@ -0,0 +1,128 @@
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
+ /// <reference types="../../../cypress/support"/>
9
+ import React from 'react';
10
+ import { EuiInMemoryTable } from './in_memory_table';
11
+ import { EuiHealth } from '../health';
12
+ import { EuiLink } from '../link';
13
+ import { formatDate } from '../../services';
14
+ import { createDataStore } from '../../../src-docs/src/views/tables/data_store';
15
+ import { jsx as ___EmotionJSX } from "@emotion/react";
16
+ var store = createDataStore();
17
+
18
+ var InMemoryTable = function InMemoryTable() {
19
+ var columns = [{
20
+ field: 'firstName',
21
+ name: 'First Name',
22
+ sortable: true,
23
+ truncateText: true
24
+ }, {
25
+ field: 'lastName',
26
+ name: 'Last Name',
27
+ truncateText: true
28
+ }, {
29
+ field: 'github',
30
+ name: 'Github',
31
+ render: function render(username) {
32
+ return ___EmotionJSX(EuiLink, {
33
+ href: "https://github.com/".concat(username),
34
+ target: "_blank"
35
+ }, username);
36
+ }
37
+ }, {
38
+ field: 'dateOfBirth',
39
+ name: 'Date of Birth',
40
+ dataType: 'date',
41
+ render: function render(date) {
42
+ return formatDate(date, 'dobLong');
43
+ },
44
+ sortable: true
45
+ }, {
46
+ field: 'nationality',
47
+ name: 'Nationality',
48
+ render: function render(countryCode) {
49
+ var country = store.getCountry(countryCode);
50
+ return "".concat(country.flag, " ").concat(country.name);
51
+ }
52
+ }, {
53
+ field: 'online',
54
+ name: 'Online',
55
+ dataType: 'boolean',
56
+ render: function render(online) {
57
+ var color = online ? 'success' : 'danger';
58
+ var label = online ? 'Online' : 'Offline';
59
+ return ___EmotionJSX(EuiHealth, {
60
+ color: color
61
+ }, label);
62
+ },
63
+ sortable: true
64
+ }];
65
+ var sorting = {
66
+ sort: {
67
+ field: 'dateOfBirth',
68
+ direction: 'desc'
69
+ }
70
+ };
71
+ return ___EmotionJSX(EuiInMemoryTable, {
72
+ "data-test-subj": "cy-in-memory-table",
73
+ tableCaption: "Demo of EuiInMemoryTable",
74
+ items: store.users,
75
+ columns: columns,
76
+ pagination: true,
77
+ sorting: sorting
78
+ });
79
+ };
80
+
81
+ beforeEach(function () {
82
+ cy.viewport(1024, 768); // medium breakpoint
83
+
84
+ cy.realMount(___EmotionJSX(InMemoryTable, null));
85
+ cy.get('div[data-test-subj="cy-in-memory-table"]').should('exist');
86
+ });
87
+ describe('EuiInMemoryTable', function () {
88
+ describe('Automated accessibility check', function () {
89
+ it('has zero violations on first render', function () {
90
+ cy.checkAxe();
91
+ });
92
+ it('has zero violations on pagination click', function () {
93
+ cy.get('a[data-test-subj="pagination-button-1"]').realClick();
94
+ cy.get('button[data-test-subj="pagination-button-1"]').should('be.disabled');
95
+ cy.checkAxe();
96
+ });
97
+ it('has zero violations after number of rows is increased', function () {
98
+ cy.get('button[data-test-subj="tablePaginationPopoverButton"]').realClick();
99
+ cy.get('div[data-popover-open="true"]').should('exist');
100
+ cy.get('button[data-test-subj="tablePagination-25-rows"]').realClick();
101
+ cy.get('table.euiTable').find('tr.euiTableRow').should('have.length', 20);
102
+ cy.checkAxe();
103
+ });
104
+ it('has zero violations after sorting on a column', function () {
105
+ cy.realPress('Tab');
106
+ cy.get('button[data-test-subj="tableHeaderSortButton"]').first().should('have.focus');
107
+ cy.realPress('Enter');
108
+ cy.get('tbody tr.euiTableRow span.euiTableCellContent__text').first().contains('Another very long first name which will wrap or be truncated');
109
+ });
110
+ it('has zero violations when number of rows is increased by keyboard', function () {
111
+ cy.repeatRealPress('Tab', 14);
112
+ cy.get('button[data-test-subj="tablePaginationPopoverButton"]').should('have.focus').realPress('Space');
113
+ cy.get('div[data-popover-open="true"]').should('exist');
114
+ cy.get('div[data-popover-open="true"]').should('have.focus');
115
+ cy.repeatRealPress('Tab'); // Switched to Tab from ArrowDown because of flaky test runs
116
+
117
+ cy.get('button[data-test-subj="tablePagination-25-rows"]').realPress('Space');
118
+ cy.get('table.euiTable').find('tr.euiTableRow').should('have.length', 20);
119
+ cy.checkAxe();
120
+ });
121
+ it('has zero violations when pagination is pressed', function () {
122
+ cy.repeatRealPress('Tab', 15);
123
+ cy.get('a[data-test-subj="pagination-button-1"]').should('have.focus').realPress('Enter');
124
+ cy.get('button[data-test-subj="pagination-button-1"]').should('be.disabled');
125
+ cy.checkAxe();
126
+ });
127
+ });
128
+ });