@elastic/eui 77.1.0 → 77.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 (138) hide show
  1. package/README.md +30 -29
  2. package/dist/eui_theme_dark.css +70 -158
  3. package/dist/eui_theme_dark.min.css +1 -1
  4. package/dist/eui_theme_light.css +70 -158
  5. package/dist/eui_theme_light.min.css +1 -1
  6. package/es/components/basic_table/basic_table.a11y.js +202 -0
  7. package/es/components/basic_table/{table.a11y.js → in_memory_table.a11y.js} +1 -1
  8. package/es/components/date_picker/date_picker.js +23 -15
  9. package/es/components/date_picker/date_picker_range.js +36 -42
  10. package/es/components/date_picker/super_date_picker/super_date_picker.js +99 -84
  11. package/es/components/form/field_number/field_number.js +39 -8
  12. package/es/components/form/field_text/field_text.js +1 -1
  13. package/es/components/form/form_control_layout/form_control_layout.js +67 -30
  14. package/es/components/form/form_control_layout/form_control_layout_delimited.js +31 -11
  15. package/es/components/form/form_control_layout/form_control_layout_icons.js +12 -20
  16. package/es/components/form/range/dual_range.js +2 -4
  17. package/es/components/form/range/range.js +0 -2
  18. package/es/components/form/range/range_input.js +54 -13
  19. package/es/components/form/validatable_control/validatable_control.js +15 -5
  20. package/es/components/index.js +0 -1
  21. package/es/components/search_bar/query/ast_to_es_query_dsl.js +6 -1
  22. package/es/components/search_bar/query/ast_to_es_query_string.js +3 -0
  23. package/es/components/suggest/suggest.a11y.js +70 -0
  24. package/es/components/table/table.a11y.js +75 -0
  25. package/eui.d.ts +55 -173
  26. package/i18ntokens.json +26 -44
  27. package/lib/components/basic_table/basic_table.a11y.js +194 -0
  28. package/lib/components/basic_table/{table.a11y.js → in_memory_table.a11y.js} +2 -2
  29. package/lib/components/date_picker/date_picker.js +23 -15
  30. package/lib/components/date_picker/date_picker_range.js +35 -41
  31. package/lib/components/date_picker/super_date_picker/super_date_picker.js +99 -84
  32. package/lib/components/form/field_number/field_number.js +42 -8
  33. package/lib/components/form/field_text/field_text.js +1 -1
  34. package/lib/components/form/form_control_layout/form_control_layout.js +67 -35
  35. package/lib/components/form/form_control_layout/form_control_layout_delimited.js +31 -11
  36. package/lib/components/form/form_control_layout/form_control_layout_icons.js +11 -19
  37. package/lib/components/form/range/dual_range.js +2 -4
  38. package/lib/components/form/range/range.js +0 -2
  39. package/lib/components/form/range/range_input.js +52 -11
  40. package/lib/components/form/validatable_control/validatable_control.js +14 -12
  41. package/lib/components/index.js +0 -11
  42. package/lib/components/search_bar/query/ast_to_es_query_dsl.js +6 -1
  43. package/lib/components/search_bar/query/ast_to_es_query_string.js +3 -0
  44. package/lib/components/suggest/suggest.a11y.js +73 -0
  45. package/lib/components/table/table.a11y.js +78 -0
  46. package/optimize/es/components/basic_table/basic_table.a11y.js +194 -0
  47. package/optimize/es/components/basic_table/{table.a11y.js → in_memory_table.a11y.js} +1 -1
  48. package/optimize/es/components/date_picker/date_picker.js +17 -14
  49. package/optimize/es/components/date_picker/date_picker_range.js +20 -14
  50. package/optimize/es/components/date_picker/super_date_picker/super_date_picker.js +99 -84
  51. package/optimize/es/components/form/field_number/field_number.js +34 -8
  52. package/optimize/es/components/form/field_text/field_text.js +1 -1
  53. package/optimize/es/components/form/form_control_layout/form_control_layout.js +67 -30
  54. package/optimize/es/components/form/form_control_layout/form_control_layout_delimited.js +31 -11
  55. package/optimize/es/components/form/form_control_layout/form_control_layout_icons.js +10 -20
  56. package/optimize/es/components/form/range/dual_range.js +2 -4
  57. package/optimize/es/components/form/range/range.js +0 -2
  58. package/optimize/es/components/form/range/range_input.js +49 -12
  59. package/optimize/es/components/form/validatable_control/validatable_control.js +10 -5
  60. package/optimize/es/components/index.js +0 -1
  61. package/optimize/es/components/search_bar/query/ast_to_es_query_dsl.js +6 -1
  62. package/optimize/es/components/search_bar/query/ast_to_es_query_string.js +3 -0
  63. package/optimize/es/components/suggest/suggest.a11y.js +70 -0
  64. package/optimize/es/components/table/table.a11y.js +75 -0
  65. package/optimize/lib/components/basic_table/basic_table.a11y.js +188 -0
  66. package/{test-env/components/basic_table/table.a11y.js → optimize/lib/components/basic_table/in_memory_table.a11y.js} +2 -2
  67. package/optimize/lib/components/date_picker/date_picker.js +17 -14
  68. package/optimize/lib/components/date_picker/date_picker_range.js +19 -13
  69. package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.js +99 -84
  70. package/optimize/lib/components/form/field_number/field_number.js +37 -8
  71. package/optimize/lib/components/form/field_text/field_text.js +1 -1
  72. package/optimize/lib/components/form/form_control_layout/form_control_layout.js +67 -35
  73. package/optimize/lib/components/form/form_control_layout/form_control_layout_delimited.js +31 -11
  74. package/optimize/lib/components/form/form_control_layout/form_control_layout_icons.js +9 -19
  75. package/optimize/lib/components/form/range/dual_range.js +2 -4
  76. package/optimize/lib/components/form/range/range.js +0 -2
  77. package/optimize/lib/components/form/range/range_input.js +47 -10
  78. package/optimize/lib/components/form/validatable_control/validatable_control.js +10 -4
  79. package/optimize/lib/components/index.js +0 -11
  80. package/optimize/lib/components/search_bar/query/ast_to_es_query_dsl.js +6 -1
  81. package/optimize/lib/components/search_bar/query/ast_to_es_query_string.js +3 -0
  82. package/optimize/lib/components/suggest/suggest.a11y.js +73 -0
  83. package/optimize/lib/components/table/table.a11y.js +78 -0
  84. package/package.json +1 -1
  85. package/src/components/date_picker/_date_picker_range.scss +0 -60
  86. package/src/components/date_picker/super_date_picker/_super_date_picker.scss +23 -11
  87. package/src/components/date_picker/super_date_picker/_variables.scss +3 -0
  88. package/src/components/date_picker/super_date_picker/date_popover/_date_popover_button.scss +5 -7
  89. package/src/components/form/form_control_layout/_form_control_layout.scss +2 -2
  90. package/src/components/form/form_control_layout/_form_control_layout_delimited.scss +12 -36
  91. package/src/components/form/form_control_layout/_form_control_layout_icons.scss +27 -6
  92. package/src/themes/amsterdam/overrides/_date_picker.scss +0 -14
  93. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  94. package/test-env/components/basic_table/basic_table.a11y.js +188 -0
  95. package/{optimize/lib/components/basic_table/table.a11y.js → test-env/components/basic_table/in_memory_table.a11y.js} +2 -2
  96. package/test-env/components/date_picker/date_picker.js +23 -15
  97. package/test-env/components/date_picker/date_picker_range.js +35 -41
  98. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +99 -84
  99. package/test-env/components/form/field_number/field_number.js +37 -8
  100. package/test-env/components/form/field_text/field_text.js +1 -1
  101. package/test-env/components/form/form_control_layout/form_control_layout.js +68 -35
  102. package/test-env/components/form/form_control_layout/form_control_layout_delimited.js +31 -11
  103. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +11 -19
  104. package/test-env/components/form/range/dual_range.js +2 -4
  105. package/test-env/components/form/range/range.js +0 -2
  106. package/test-env/components/form/range/range_input.js +47 -11
  107. package/test-env/components/form/validatable_control/validatable_control.js +9 -4
  108. package/test-env/components/index.js +0 -11
  109. package/test-env/components/search_bar/query/ast_to_es_query_dsl.js +6 -1
  110. package/test-env/components/search_bar/query/ast_to_es_query_string.js +3 -0
  111. package/test-env/components/suggest/suggest.a11y.js +73 -0
  112. package/test-env/components/table/table.a11y.js +78 -0
  113. package/es/components/inline_edit/index.js +0 -10
  114. package/es/components/inline_edit/inline_edit.styles.js +0 -15
  115. package/es/components/inline_edit/inline_edit_form.js +0 -190
  116. package/es/components/inline_edit/inline_edit_text.js +0 -97
  117. package/es/components/inline_edit/inline_edit_title.js +0 -105
  118. package/lib/components/inline_edit/index.js +0 -19
  119. package/lib/components/inline_edit/inline_edit.styles.js +0 -22
  120. package/lib/components/inline_edit/inline_edit_form.js +0 -193
  121. package/lib/components/inline_edit/inline_edit_text.js +0 -97
  122. package/lib/components/inline_edit/inline_edit_title.js +0 -106
  123. package/optimize/es/components/inline_edit/index.js +0 -10
  124. package/optimize/es/components/inline_edit/inline_edit.styles.js +0 -15
  125. package/optimize/es/components/inline_edit/inline_edit_form.js +0 -133
  126. package/optimize/es/components/inline_edit/inline_edit_text.js +0 -52
  127. package/optimize/es/components/inline_edit/inline_edit_title.js +0 -56
  128. package/optimize/lib/components/inline_edit/index.js +0 -19
  129. package/optimize/lib/components/inline_edit/inline_edit.styles.js +0 -22
  130. package/optimize/lib/components/inline_edit/inline_edit_form.js +0 -144
  131. package/optimize/lib/components/inline_edit/inline_edit_text.js +0 -52
  132. package/optimize/lib/components/inline_edit/inline_edit_title.js +0 -57
  133. package/src/themes/amsterdam/overrides/_date_popover_button.scss +0 -14
  134. package/test-env/components/inline_edit/index.js +0 -19
  135. package/test-env/components/inline_edit/inline_edit.styles.js +0 -22
  136. package/test-env/components/inline_edit/inline_edit_form.js +0 -196
  137. package/test-env/components/inline_edit/inline_edit_text.js +0 -96
  138. package/test-env/components/inline_edit/inline_edit_title.js +0 -105
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _basic_table = require("./basic_table");
9
+ var _button = require("../button");
10
+ var _health = require("../health");
11
+ var _link = require("../link");
12
+ var _accessibility = require("../accessibility");
13
+ var _services = require("../../services");
14
+ var _faker = require("@faker-js/faker");
15
+ var _react2 = require("@emotion/react");
16
+ 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); }
17
+ 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; }
18
+ 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; }
19
+ 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; }
20
+ var users = [];
21
+ for (var i = 0; i < 20; i++) {
22
+ users.push({
23
+ id: i + 1,
24
+ firstName: _faker.faker.name.firstName(),
25
+ lastName: _faker.faker.name.lastName(),
26
+ github: _faker.faker.internet.userName(),
27
+ dateOfBirth: _faker.faker.date.past(),
28
+ online: _faker.faker.datatype.boolean(),
29
+ location: {
30
+ city: _faker.faker.address.city(),
31
+ country: _faker.faker.address.country()
32
+ }
33
+ });
34
+ }
35
+ var columns = [{
36
+ field: 'firstName',
37
+ name: 'First Name',
38
+ sortable: true,
39
+ truncateText: true,
40
+ mobileOptions: {
41
+ render: function render(user) {
42
+ return (0, _react2.jsx)("span", null, user.firstName, " ", user.lastName);
43
+ },
44
+ header: false,
45
+ truncateText: false,
46
+ enlarge: true,
47
+ width: '100%'
48
+ }
49
+ }, {
50
+ field: 'lastName',
51
+ name: 'Last Name',
52
+ truncateText: true,
53
+ mobileOptions: {
54
+ show: false
55
+ }
56
+ }, {
57
+ field: 'github',
58
+ name: 'Github',
59
+ render: function render(username) {
60
+ return (0, _react2.jsx)(_link.EuiLink, {
61
+ href: "#",
62
+ target: "_blank"
63
+ }, username);
64
+ }
65
+ }, {
66
+ field: 'dateOfBirth',
67
+ name: 'Date of Birth',
68
+ dataType: 'date',
69
+ render: function render(dateOfBirth) {
70
+ return (0, _services.formatDate)(dateOfBirth, 'dobLong');
71
+ },
72
+ sortable: true
73
+ }, {
74
+ field: 'location',
75
+ name: 'Location',
76
+ truncateText: true,
77
+ textOnly: true,
78
+ render: function render(location) {
79
+ return "".concat(location.city, ", ").concat(location.country);
80
+ }
81
+ }, {
82
+ field: 'online',
83
+ name: 'Online',
84
+ dataType: 'boolean',
85
+ render: function render(online) {
86
+ var color = online ? 'success' : 'danger';
87
+ var label = online ? 'Online' : 'Offline';
88
+ return (0, _react2.jsx)(_health.EuiHealth, {
89
+ color: color
90
+ }, label);
91
+ },
92
+ sortable: true,
93
+ mobileOptions: {
94
+ show: false
95
+ }
96
+ }];
97
+ describe('EuiTable', function () {
98
+ var BasicTable = function BasicTable() {
99
+ return (0, _react2.jsx)(_basic_table.EuiBasicTable, {
100
+ tableCaption: "Demo of EuiBasicTable",
101
+ columns: columns,
102
+ items: users,
103
+ "data-test-subj": "cy-basic-table"
104
+ });
105
+ };
106
+ describe('Basic table', function () {
107
+ describe('Automated accessibility check', function () {
108
+ it('has zero violations on render', function () {
109
+ cy.viewport(1024, 768); // medium breakpoint
110
+ cy.realMount((0, _react2.jsx)(BasicTable, null));
111
+ cy.get('[data-test-subj="cy-basic-table"]').should('exist');
112
+ cy.checkAxe();
113
+ });
114
+ });
115
+ });
116
+ describe('Mobile basic table', function () {
117
+ describe('Automated accessibility check', function () {
118
+ it('has zero violations on render', function () {
119
+ cy.viewport(375, 667); // small breakpoint
120
+ cy.realMount((0, _react2.jsx)(BasicTable, null));
121
+ cy.get('[data-test-subj="cy-basic-table"]').should('exist');
122
+ cy.checkAxe();
123
+ });
124
+ });
125
+ });
126
+ describe('Expandable rows', function () {
127
+ var ExpandableRowTable = function ExpandableRowTable() {
128
+ var _useState = (0, _react.useState)({}),
129
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
130
+ itemIdToExpandedRowMap = _useState2[0],
131
+ setItemIdToExpandedRowMap = _useState2[1];
132
+ var toggleDetails = function toggleDetails(user) {
133
+ var itemIdToExpandedRowMapValues = _objectSpread({}, itemIdToExpandedRowMap);
134
+ if (itemIdToExpandedRowMapValues[user.id]) {
135
+ delete itemIdToExpandedRowMapValues[user.id];
136
+ } else {
137
+ itemIdToExpandedRowMapValues[user.id] = (0, _react2.jsx)("div", null, (0, _react2.jsx)("p", null, "Location: ".concat(user.location.city)), (0, _react2.jsx)("p", null, "This person is online."));
138
+ }
139
+ setItemIdToExpandedRowMap(itemIdToExpandedRowMapValues);
140
+ };
141
+ var columnsWithExpandingRowToggle = [].concat(columns, [{
142
+ align: 'right',
143
+ width: '40px',
144
+ isExpander: true,
145
+ name: (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("span", null, "Expand rows")),
146
+ render: function render(user) {
147
+ var itemIdToExpandedRowMapValues = _objectSpread({}, itemIdToExpandedRowMap);
148
+ return (0, _react2.jsx)(_button.EuiButtonIcon, {
149
+ id: user.id.toString(),
150
+ onClick: function onClick() {
151
+ return toggleDetails(user);
152
+ },
153
+ "aria-label": itemIdToExpandedRowMapValues[user.id] ? 'Collapse' : 'Expand',
154
+ iconType: itemIdToExpandedRowMapValues[user.id] ? 'arrowDown' : 'arrowRight'
155
+ });
156
+ }
157
+ }]);
158
+ return (0, _react2.jsx)(_basic_table.EuiBasicTable, {
159
+ tableCaption: "Demo of EuiBasicTable with expanding rows",
160
+ itemIdToExpandedRowMap: itemIdToExpandedRowMap,
161
+ isExpandable: true,
162
+ columns: columnsWithExpandingRowToggle,
163
+ items: users,
164
+ itemId: "id",
165
+ "data-test-subj": "cy-expandable-row-table"
166
+ });
167
+ };
168
+ beforeEach(function () {
169
+ cy.viewport(1024, 768); // medium breakpoint
170
+ cy.realMount((0, _react2.jsx)(ExpandableRowTable, null));
171
+ cy.get('[data-test-subj="cy-expandable-row-table"]').should('exist');
172
+ });
173
+ describe('Automated accessibility check', function () {
174
+ it('has zero violations on render', function () {
175
+ cy.checkAxe();
176
+ });
177
+ });
178
+ describe('Keyboard accessibility', function () {
179
+ it('has zero violations after expanding a row', function () {
180
+ cy.repeatRealPress('Tab');
181
+ cy.get('button#1').should('have.focus');
182
+ cy.realPress('Enter');
183
+ cy.get('tr.euiTableRow-isExpandedRow div.euiTableCellContent').should('exist');
184
+ cy.checkAxe();
185
+ });
186
+ });
187
+ });
188
+ });
@@ -3,7 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  var _react = _interopRequireDefault(require("react"));
5
5
  var _faker = require("@faker-js/faker");
6
- var _index = require("./index");
6
+ var _ = require(".");
7
7
  var _health = require("../health");
8
8
  var _link = require("../link");
9
9
  var _services = require("../../services");
@@ -99,7 +99,7 @@ var columns = [{
99
99
  }];
100
100
  describe('EuiInMemoryTable', function () {
101
101
  var mountTable = function mountTable() {
102
- cy.realMount((0, _react2.jsx)(_index.EuiInMemoryTable, {
102
+ cy.realMount((0, _react2.jsx)(_.EuiInMemoryTable, {
103
103
  "data-test-subj": "cy-in-memory-table",
104
104
  tableCaption: "Demo of EuiInMemoryTable",
105
105
  items: users,
@@ -17,7 +17,7 @@ var _services = require("../../services");
17
17
  var _context = require("../context");
18
18
  var _reactDatepicker = require("./react-datepicker");
19
19
  var _react2 = require("@emotion/react");
20
- var _excluded = ["adjustDateOnChange", "calendarClassName", "className", "customInput", "dateFormat", "dayClassName", "disabled", "excludeDates", "filterDate", "fullWidth", "iconType", "injectTimes", "inline", "inputRef", "isInvalid", "isLoading", "locale", "maxDate", "maxTime", "minDate", "minTime", "onChange", "onClear", "openToDate", "placeholder", "popperClassName", "popoverPlacement", "selected", "shadow", "shouldCloseOnSelect", "showIcon", "showTimeSelect", "showTimeSelectOnly", "timeFormat", "utcOffset"];
20
+ var _excluded = ["adjustDateOnChange", "calendarClassName", "className", "controlOnly", "customInput", "dateFormat", "dayClassName", "disabled", "excludeDates", "filterDate", "fullWidth", "iconType", "injectTimes", "inline", "inputRef", "isInvalid", "isLoading", "locale", "maxDate", "maxTime", "minDate", "minTime", "onChange", "onClear", "openToDate", "placeholder", "popperClassName", "popoverPlacement", "selected", "shadow", "shouldCloseOnSelect", "showIcon", "showTimeSelect", "showTimeSelectOnly", "timeFormat", "utcOffset"];
21
21
  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); }
22
22
  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; }
23
23
  var euiDatePickerDefaultDateFormat = 'MM/DD/YYYY';
@@ -56,6 +56,7 @@ var EuiDatePicker = function EuiDatePicker(_ref) {
56
56
  adjustDateOnChange = _ref$adjustDateOnChan === void 0 ? true : _ref$adjustDateOnChan,
57
57
  calendarClassName = _ref.calendarClassName,
58
58
  className = _ref.className,
59
+ controlOnly = _ref.controlOnly,
59
60
  customInput = _ref.customInput,
60
61
  _ref$dateFormat = _ref.dateFormat,
61
62
  dateFormat = _ref$dateFormat === void 0 ? euiDatePickerDefaultDateFormat : _ref$dateFormat,
@@ -101,7 +102,7 @@ var EuiDatePicker = function EuiDatePicker(_ref) {
101
102
  'euiDatePicker--shadow': shadow,
102
103
  'euiDatePicker--inline': inline
103
104
  });
104
- var numIconsClass = (0, _num_icons.getFormControlClassNameForIconCount)({
105
+ var numIconsClass = controlOnly ? false : (0, _num_icons.getFormControlClassNameForIconCount)({
105
106
  isInvalid: isInvalid,
106
107
  isLoading: isLoading
107
108
  });
@@ -142,17 +143,7 @@ var EuiDatePicker = function EuiDatePicker(_ref) {
142
143
  controlEl: inputValidityRef
143
144
  });
144
145
  var inputRefs = (0, _services.useCombinedRefs)([inputRef, setInputValidityRef]);
145
- return (0, _react2.jsx)("span", {
146
- className: classes
147
- }, (0, _react2.jsx)(_form.EuiFormControlLayout, {
148
- icon: optionalIcon,
149
- fullWidth: fullWidth,
150
- clear: selected && onClear ? {
151
- onClick: onClear
152
- } : undefined,
153
- isLoading: isLoading,
154
- isInvalid: isInvalid
155
- }, (0, _react2.jsx)(_context.EuiI18nConsumer, null, function (_ref2) {
146
+ var control = (0, _react2.jsx)(_context.EuiI18nConsumer, null, function (_ref2) {
156
147
  var contextLocale = _ref2.locale;
157
148
  return (0, _react2.jsx)(_reactDatepicker.ReactDatePicker, (0, _extends2.default)({
158
149
  adjustDateOnChange: adjustDateOnChange,
@@ -188,6 +179,18 @@ var EuiDatePicker = function EuiDatePicker(_ref) {
188
179
  accessibleMode: true,
189
180
  popperPlacement: popoverPlacement
190
181
  }, rest));
191
- })));
182
+ });
183
+ if (controlOnly) return control;
184
+ return (0, _react2.jsx)("span", {
185
+ className: classes
186
+ }, (0, _react2.jsx)(_form.EuiFormControlLayout, {
187
+ icon: optionalIcon,
188
+ fullWidth: fullWidth,
189
+ clear: selected && onClear ? {
190
+ onClick: onClear
191
+ } : undefined,
192
+ isLoading: isLoading,
193
+ isInvalid: isInvalid
194
+ }, control));
192
195
  };
193
196
  exports.EuiDatePicker = EuiDatePicker;
@@ -10,9 +10,9 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
- var _icon = require("../icon");
13
+ var _form = require("../form");
14
14
  var _react2 = require("@emotion/react");
15
- var _excluded = ["children", "className", "startDateControl", "endDateControl", "iconType", "fullWidth", "isCustom", "readOnly", "isInvalid", "disabled", "onFocus", "onBlur"];
15
+ var _excluded = ["children", "className", "startDateControl", "endDateControl", "iconType", "fullWidth", "isCustom", "readOnly", "isInvalid", "disabled", "onFocus", "onBlur", "append", "prepend"];
16
16
  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); }
17
17
  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; }
18
18
  var EuiDatePickerRange = function EuiDatePickerRange(_ref) {
@@ -29,6 +29,8 @@ var EuiDatePickerRange = function EuiDatePickerRange(_ref) {
29
29
  disabled = _ref.disabled,
30
30
  _onFocus = _ref.onFocus,
31
31
  _onBlur = _ref.onBlur,
32
+ append = _ref.append,
33
+ prepend = _ref.prepend,
32
34
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
33
35
  var classes = (0, _classnames.default)('euiDatePickerRange', {
34
36
  'euiDatePickerRange--fullWidth': fullWidth,
@@ -40,8 +42,8 @@ var EuiDatePickerRange = function EuiDatePickerRange(_ref) {
40
42
  var endControl = endDateControl;
41
43
  if (!isCustom) {
42
44
  startControl = /*#__PURE__*/(0, _react.cloneElement)(startDateControl, {
43
- iconType: typeof iconType === 'boolean' ? undefined : iconType,
44
- showIcon: !!iconType,
45
+ controlOnly: true,
46
+ showIcon: false,
45
47
  fullWidth: fullWidth,
46
48
  readOnly: readOnly,
47
49
  disabled: disabled || startDateControl.props.disabled,
@@ -59,6 +61,7 @@ var EuiDatePickerRange = function EuiDatePickerRange(_ref) {
59
61
  }
60
62
  });
61
63
  endControl = /*#__PURE__*/(0, _react.cloneElement)(endDateControl, {
64
+ controlOnly: true,
62
65
  showIcon: false,
63
66
  fullWidth: fullWidth,
64
67
  readOnly: readOnly,
@@ -78,14 +81,17 @@ var EuiDatePickerRange = function EuiDatePickerRange(_ref) {
78
81
  }
79
82
  });
80
83
  }
81
- var delimiter = (0, _react2.jsx)("span", {
82
- className: "euiDatePickerRange__delimeter"
83
- }, (0, _react2.jsx)(_icon.EuiIcon, {
84
- color: isInvalid ? 'danger' : 'subdued',
85
- type: "sortRight"
86
- }));
87
- return (0, _react2.jsx)("div", (0, _extends2.default)({
88
- className: classes
89
- }, rest), children ? children : (0, _react2.jsx)(_react.Fragment, null, startControl, delimiter, endControl));
84
+ return (0, _react2.jsx)(_form.EuiFormControlLayoutDelimited, (0, _extends2.default)({
85
+ icon: iconType === true ? 'calendar' : iconType || undefined,
86
+ className: classes,
87
+ startControl: startControl,
88
+ endControl: endControl,
89
+ fullWidth: fullWidth,
90
+ readOnly: readOnly,
91
+ isDisabled: disabled,
92
+ isInvalid: isInvalid,
93
+ append: append,
94
+ prepend: prepend
95
+ }, rest));
90
96
  };
91
97
  exports.EuiDatePickerRange = EuiDatePickerRange;
@@ -200,6 +200,36 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
200
200
  _this.asyncInterval = new _async_interval.AsyncInterval(handler, refreshInterval);
201
201
  }
202
202
  });
203
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderQuickSelect", function () {
204
+ var _this$props2 = _this.props,
205
+ start = _this$props2.start,
206
+ end = _this$props2.end,
207
+ customQuickSelectPanels = _this$props2.customQuickSelectPanels,
208
+ customQuickSelectRender = _this$props2.customQuickSelectRender,
209
+ commonlyUsedRanges = _this$props2.commonlyUsedRanges,
210
+ timeOptions = _this$props2.timeOptions,
211
+ dateFormat = _this$props2.dateFormat,
212
+ onRefreshChange = _this$props2.onRefreshChange,
213
+ recentlyUsedRanges = _this$props2.recentlyUsedRanges,
214
+ refreshInterval = _this$props2.refreshInterval,
215
+ isPaused = _this$props2.isPaused,
216
+ isDisabled = _this$props2.isDisabled;
217
+ return (0, _react2.jsx)(_quick_select_popover.EuiQuickSelectPopover, {
218
+ applyRefreshInterval: onRefreshChange ? _this.onRefreshChange : undefined,
219
+ applyTime: _this.applyQuickTime,
220
+ commonlyUsedRanges: commonlyUsedRanges,
221
+ customQuickSelectPanels: customQuickSelectPanels,
222
+ customQuickSelectRender: customQuickSelectRender,
223
+ dateFormat: dateFormat,
224
+ end: end,
225
+ isDisabled: isDisabled,
226
+ isPaused: isPaused,
227
+ recentlyUsedRanges: recentlyUsedRanges,
228
+ refreshInterval: refreshInterval,
229
+ start: start,
230
+ timeOptions: timeOptions
231
+ });
232
+ });
203
233
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderDatePickerRange", function () {
204
234
  var _this$state = _this.state,
205
235
  end = _this$state.end,
@@ -209,24 +239,47 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
209
239
  isStartDatePopoverOpen = _this$state.isStartDatePopoverOpen,
210
240
  showPrettyDuration = _this$state.showPrettyDuration,
211
241
  start = _this$state.start;
212
- var _this$props2 = _this.props,
213
- commonlyUsedRanges = _this$props2.commonlyUsedRanges,
214
- timeOptions = _this$props2.timeOptions,
215
- dateFormat = _this$props2.dateFormat,
216
- isDisabled = _this$props2.isDisabled,
217
- locale = _this$props2.locale,
218
- timeFormat = _this$props2.timeFormat,
219
- utcOffset = _this$props2.utcOffset,
220
- compressed = _this$props2.compressed,
221
- onFocus = _this$props2.onFocus;
242
+ var _this$props3 = _this.props,
243
+ isQuickSelectOnly = _this$props3.isQuickSelectOnly,
244
+ showUpdateButton = _this$props3.showUpdateButton,
245
+ commonlyUsedRanges = _this$props3.commonlyUsedRanges,
246
+ timeOptions = _this$props3.timeOptions,
247
+ dateFormat = _this$props3.dateFormat,
248
+ refreshInterval = _this$props3.refreshInterval,
249
+ isPaused = _this$props3.isPaused,
250
+ isDisabled = _this$props3.isDisabled,
251
+ isLoading = _this$props3.isLoading,
252
+ locale = _this$props3.locale,
253
+ timeFormat = _this$props3.timeFormat,
254
+ utcOffset = _this$props3.utcOffset,
255
+ compressed = _this$props3.compressed,
256
+ onFocus = _this$props3.onFocus,
257
+ className = _this$props3.className,
258
+ dataTestSubj = _this$props3['data-test-subj'];
259
+ var autoRefreshAppend = !isPaused ? (0, _react2.jsx)(_auto_refresh.EuiAutoRefreshButton, {
260
+ refreshInterval: refreshInterval,
261
+ isDisabled: isDisabled,
262
+ isPaused: isPaused,
263
+ onRefreshChange: _this.onRefreshChange,
264
+ shortHand: true
265
+ }) : undefined;
266
+ var formControlLayoutProps = {
267
+ className: (0, _classnames.default)('euiSuperDatePicker', className),
268
+ compressed: compressed,
269
+ isInvalid: isInvalid,
270
+ isLoading: isLoading && !showUpdateButton,
271
+ disabled: isDisabled,
272
+ prepend: _this.renderQuickSelect(),
273
+ append: autoRefreshAppend,
274
+ 'data-test-subj': dataTestSubj
275
+ };
276
+ if (isQuickSelectOnly) {
277
+ return (0, _react2.jsx)(_form.EuiFormControlLayout, (0, _extends2.default)({
278
+ iconsPosition: "static"
279
+ }, formControlLayoutProps));
280
+ }
222
281
  if (showPrettyDuration && !isStartDatePopoverOpen && !isEndDatePopoverOpen) {
223
- return (0, _react2.jsx)(_date_picker_range.EuiDatePickerRange, {
224
- className: "euiDatePickerRange--inGroup",
225
- iconType: false,
226
- isCustom: true,
227
- startDateControl: (0, _react2.jsx)("div", null),
228
- endDateControl: (0, _react2.jsx)("div", null)
229
- }, (0, _react2.jsx)("button", {
282
+ return (0, _react2.jsx)(_form.EuiFormControlLayout, formControlLayoutProps, (0, _react2.jsx)("button", {
230
283
  className: (0, _classnames.default)('euiSuperDatePicker__prettyFormat', {
231
284
  'euiSuperDatePicker__prettyFormat--disabled': isDisabled
232
285
  }),
@@ -243,12 +296,12 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
243
296
  }
244
297
  return (0, _react2.jsx)(_context.EuiI18nConsumer, null, function (_ref4) {
245
298
  var contextLocale = _ref4.locale;
246
- return (0, _react2.jsx)(_date_picker_range.EuiDatePickerRange, {
247
- className: "euiDatePickerRange--inGroup",
248
- iconType: false,
249
- isInvalid: isInvalid,
250
- disabled: isDisabled,
299
+ return (0, _react2.jsx)(_date_picker_range.EuiDatePickerRange, (0, _extends2.default)({}, formControlLayoutProps, {
300
+ className: (0, _classnames.default)(formControlLayoutProps.className, {
301
+ 'euiSuperDatePicker--needsUpdating': hasChanged && !isDisabled && !isInvalid
302
+ }),
251
303
  isCustom: true,
304
+ iconType: false,
252
305
  startDateControl: (0, _react2.jsx)(_date_popover_button.EuiDatePopoverButton, {
253
306
  className: "euiSuperDatePicker__startPopoverButton",
254
307
  compressed: compressed,
@@ -291,15 +344,15 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
291
344
  onFocus: onFocus
292
345
  }
293
346
  })
294
- });
347
+ }));
295
348
  });
296
349
  });
297
350
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleClickUpdateButton", function () {
298
351
  if (!_this.state.hasChanged && _this.props.onRefresh) {
299
- var _this$props3 = _this.props,
300
- start = _this$props3.start,
301
- end = _this$props3.end,
302
- refreshInterval = _this$props3.refreshInterval;
352
+ var _this$props4 = _this.props,
353
+ start = _this$props4.start,
354
+ end = _this$props4.end,
355
+ refreshInterval = _this$props4.refreshInterval;
303
356
  _this.props.onRefresh({
304
357
  start: start,
305
358
  end: end,
@@ -310,12 +363,12 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
310
363
  }
311
364
  });
312
365
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderUpdateButton", function () {
313
- var _this$props4 = _this.props,
314
- isLoading = _this$props4.isLoading,
315
- isDisabled = _this$props4.isDisabled,
316
- updateButtonProps = _this$props4.updateButtonProps,
317
- showUpdateButton = _this$props4.showUpdateButton,
318
- compressed = _this$props4.compressed;
366
+ var _this$props5 = _this.props,
367
+ isLoading = _this$props5.isLoading,
368
+ isDisabled = _this$props5.isDisabled,
369
+ updateButtonProps = _this$props5.updateButtonProps,
370
+ showUpdateButton = _this$props5.showUpdateButton,
371
+ compressed = _this$props5.compressed;
319
372
  if (!showUpdateButton) return null;
320
373
  return (0, _react2.jsx)(_flex.EuiFlexItem, {
321
374
  grow: false
@@ -335,52 +388,21 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
335
388
  (0, _createClass2.default)(EuiSuperDatePickerInternal, [{
336
389
  key: "render",
337
390
  value: function render() {
338
- var _this$props5 = this.props,
339
- commonlyUsedRanges = _this$props5.commonlyUsedRanges,
340
- timeOptions = _this$props5.timeOptions,
341
- customQuickSelectPanels = _this$props5.customQuickSelectPanels,
342
- customQuickSelectRender = _this$props5.customQuickSelectRender,
343
- dateFormat = _this$props5.dateFormat,
344
- end = _this$props5.end,
345
- isAutoRefreshOnly = _this$props5.isAutoRefreshOnly,
346
- isDisabled = _this$props5.isDisabled,
347
- isPaused = _this$props5.isPaused,
348
- onRefreshChange = _this$props5.onRefreshChange,
349
- recentlyUsedRanges = _this$props5.recentlyUsedRanges,
350
- refreshInterval = _this$props5.refreshInterval,
351
- showUpdateButton = _this$props5.showUpdateButton,
352
- start = _this$props5.start,
353
- dataTestSubj = _this$props5['data-test-subj'],
354
- _width = _this$props5.width,
355
- isQuickSelectOnly = _this$props5.isQuickSelectOnly,
356
- compressed = _this$props5.compressed,
357
- className = _this$props5.className;
391
+ var _this$props6 = this.props,
392
+ isAutoRefreshOnly = _this$props6.isAutoRefreshOnly,
393
+ isDisabled = _this$props6.isDisabled,
394
+ isPaused = _this$props6.isPaused,
395
+ onRefreshChange = _this$props6.onRefreshChange,
396
+ refreshInterval = _this$props6.refreshInterval,
397
+ showUpdateButton = _this$props6.showUpdateButton,
398
+ dataTestSubj = _this$props6['data-test-subj'],
399
+ _width = _this$props6.width,
400
+ isQuickSelectOnly = _this$props6.isQuickSelectOnly,
401
+ compressed = _this$props6.compressed,
402
+ className = _this$props6.className;
358
403
 
359
404
  // Force reduction in width if showing quick select only
360
405
  var width = isQuickSelectOnly ? 'auto' : _width;
361
- var autoRefreshAppend = !isPaused ? (0, _react2.jsx)(_auto_refresh.EuiAutoRefreshButton, {
362
- className: "euiFormControlLayout__append",
363
- refreshInterval: refreshInterval,
364
- isDisabled: isDisabled,
365
- isPaused: isPaused,
366
- onRefreshChange: this.onRefreshChange,
367
- shortHand: true
368
- }) : undefined;
369
- var quickSelect = (0, _react2.jsx)(_quick_select_popover.EuiQuickSelectPopover, {
370
- applyRefreshInterval: onRefreshChange ? this.onRefreshChange : undefined,
371
- applyTime: this.applyQuickTime,
372
- commonlyUsedRanges: commonlyUsedRanges,
373
- customQuickSelectPanels: customQuickSelectPanels,
374
- customQuickSelectRender: customQuickSelectRender,
375
- dateFormat: dateFormat,
376
- end: end,
377
- isDisabled: isDisabled,
378
- isPaused: isPaused,
379
- recentlyUsedRanges: recentlyUsedRanges,
380
- refreshInterval: refreshInterval,
381
- start: start,
382
- timeOptions: timeOptions
383
- });
384
406
  var flexWrapperClasses = (0, _classnames.default)('euiSuperDatePicker__flexWrapper', {
385
407
  'euiSuperDatePicker__flexWrapper--noUpdateButton': !showUpdateButton,
386
408
  'euiSuperDatePicker__flexWrapper--isAutoRefreshOnly': isAutoRefreshOnly,
@@ -401,14 +423,7 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
401
423
  isDisabled: isDisabled,
402
424
  "data-test-subj": dataTestSubj,
403
425
  className: className
404
- })) : (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_flex.EuiFlexItem, null, (0, _react2.jsx)(_form.EuiFormControlLayout, {
405
- className: (0, _classnames.default)('euiSuperDatePicker', className),
406
- compressed: compressed,
407
- isDisabled: isDisabled,
408
- prepend: quickSelect,
409
- append: autoRefreshAppend,
410
- "data-test-subj": dataTestSubj
411
- }, !isQuickSelectOnly && this.renderDatePickerRange())), this.renderUpdateButton()));
426
+ })) : (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_flex.EuiFlexItem, null, this.renderDatePickerRange()), this.renderUpdateButton()));
412
427
  }
413
428
  }], [{
414
429
  key: "getDerivedStateFromProps",