@dxc-technology/halstack-react 12.0.0 → 12.0.2
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.
- package/HalstackContext.js +5 -5
- package/accordion/Accordion.accessibility.test.d.ts +1 -0
- package/accordion/Accordion.accessibility.test.js +1 -1
- package/accordion/Accordion.js +5 -8
- package/accordion/Accordion.test.d.ts +1 -0
- package/accordion/Accordion.test.js +3 -3
- package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
- package/accordion-group/AccordionGroup.accessibility.test.js +8 -14
- package/accordion-group/AccordionGroup.test.d.ts +1 -0
- package/accordion-group/AccordionGroup.test.js +5 -9
- package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
- package/action-icon/ActionIcon.accessibility.test.js +1 -1
- package/action-icon/ActionIcon.test.d.ts +1 -0
- package/action-icon/ActionIcon.test.js +1 -1
- package/alert/Alert.accessibility.test.d.ts +1 -0
- package/alert/Alert.accessibility.test.js +1 -1
- package/alert/Alert.test.d.ts +1 -0
- package/alert/Alert.test.js +1 -1
- package/badge/Badge.accessibility.test.d.ts +1 -0
- package/badge/Badge.accessibility.test.js +2 -2
- package/badge/Badge.test.d.ts +1 -0
- package/badge/Badge.test.js +2 -2
- package/box/Box.accessibility.test.d.ts +1 -0
- package/box/Box.accessibility.test.js +1 -1
- package/box/Box.test.d.ts +1 -0
- package/box/Box.test.js +1 -1
- package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
- package/button/Button.accessibility.test.d.ts +1 -0
- package/button/Button.accessibility.test.js +1 -1
- package/button/Button.test.d.ts +1 -0
- package/button/Button.test.js +1 -1
- package/card/Card.accessibility.test.d.ts +1 -0
- package/card/Card.accessibility.test.js +1 -1
- package/card/Card.test.d.ts +1 -0
- package/card/Card.test.js +1 -1
- package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
- package/checkbox/Checkbox.accessibility.test.js +1 -1
- package/checkbox/Checkbox.js +5 -8
- package/checkbox/Checkbox.test.d.ts +1 -0
- package/checkbox/Checkbox.test.js +1 -1
- package/chip/Chip.accessibility.test.d.ts +1 -0
- package/chip/Chip.accessibility.test.js +1 -1
- package/chip/Chip.test.d.ts +1 -0
- package/chip/Chip.test.js +1 -1
- package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
- package/contextual-menu/ContextualMenu.accessibility.test.js +2 -1
- package/contextual-menu/ContextualMenu.test.d.ts +1 -0
- package/contextual-menu/ContextualMenu.test.js +1 -1
- package/date-input/DateInput.accessibility.test.d.ts +1 -0
- package/date-input/DateInput.accessibility.test.js +4 -2
- package/date-input/DateInput.js +15 -15
- package/date-input/DateInput.test.d.ts +1 -0
- package/date-input/DateInput.test.js +9 -8
- package/dialog/Dialog.accessibility.test.d.ts +1 -0
- package/dialog/Dialog.accessibility.test.js +1 -1
- package/dialog/Dialog.stories.tsx +1 -2
- package/dialog/Dialog.test.d.ts +1 -0
- package/dialog/Dialog.test.js +112 -48
- package/divider/Divider.accessibility.test.d.ts +1 -0
- package/divider/Divider.test.d.ts +1 -0
- package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
- package/dropdown/Dropdown.accessibility.test.js +6 -2
- package/dropdown/Dropdown.js +11 -12
- package/dropdown/Dropdown.test.d.ts +1 -0
- package/dropdown/Dropdown.test.js +82 -52
- package/file-input/FileInput.accessibility.test.d.ts +1 -0
- package/file-input/FileInput.accessibility.test.js +25 -18
- package/file-input/FileInput.js +1 -4
- package/file-input/FileInput.test.d.ts +1 -0
- package/file-input/FileInput.test.js +44 -22
- package/footer/Footer.accessibility.test.d.ts +1 -0
- package/footer/Footer.accessibility.test.js +1 -1
- package/footer/Footer.test.d.ts +1 -0
- package/footer/Footer.test.js +1 -1
- package/header/Header.accessibility.test.d.ts +1 -0
- package/header/Header.accessibility.test.js +5 -4
- package/header/Header.test.d.ts +1 -0
- package/header/Header.test.js +1 -1
- package/heading/Heading.accessibility.test.d.ts +1 -0
- package/heading/Heading.accessibility.test.js +1 -1
- package/heading/Heading.test.d.ts +1 -0
- package/heading/Heading.test.js +1 -14
- package/icon/Icon.accessibility.test.d.ts +1 -0
- package/icon/Icon.js +1 -1
- package/image/Image.accessibility.test.d.ts +1 -0
- package/link/Link.accessibility.test.d.ts +1 -0
- package/link/Link.accessibility.test.js +2 -2
- package/link/Link.test.d.ts +1 -0
- package/link/Link.test.js +1 -1
- package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
- package/nav-tabs/NavTabs.accessibility.test.js +1 -1
- package/nav-tabs/NavTabs.js +18 -3
- package/nav-tabs/NavTabs.stories.tsx +18 -3
- package/nav-tabs/NavTabs.test.d.ts +1 -0
- package/nav-tabs/NavTabs.test.js +1 -1
- package/nav-tabs/Tab.js +1 -1
- package/number-input/NumberInput.accessibility.test.d.ts +1 -0
- package/number-input/NumberInput.accessibility.test.js +1 -1
- package/number-input/NumberInput.test.d.ts +1 -0
- package/number-input/NumberInput.test.js +5 -5
- package/package.json +6 -6
- package/paginator/Paginator.accessibility.test.d.ts +1 -0
- package/paginator/Paginator.accessibility.test.js +1 -1
- package/paginator/Paginator.test.d.ts +1 -0
- package/paginator/Paginator.test.js +1 -1
- package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
- package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
- package/password-input/PasswordInput.accessibility.test.js +1 -1
- package/password-input/PasswordInput.test.d.ts +1 -0
- package/password-input/PasswordInput.test.js +1 -1
- package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
- package/progress-bar/ProgressBar.accessibility.test.js +1 -1
- package/progress-bar/ProgressBar.test.d.ts +1 -0
- package/progress-bar/ProgressBar.test.js +1 -1
- package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
- package/radio-group/Radio.js +5 -8
- package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
- package/radio-group/RadioGroup.accessibility.test.js +1 -1
- package/radio-group/RadioGroup.js +12 -15
- package/radio-group/RadioGroup.test.d.ts +1 -0
- package/radio-group/RadioGroup.test.js +3 -5
- package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +1 -1
- package/resultset-table/ResultsetTable.test.d.ts +1 -0
- package/resultset-table/ResultsetTable.test.js +1 -2
- package/select/Listbox.js +6 -10
- package/select/Select.accessibility.test.d.ts +1 -0
- package/select/Select.accessibility.test.js +3 -3
- package/select/Select.js +15 -17
- package/select/Select.test.d.ts +1 -0
- package/select/Select.test.js +6 -3
- package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
- package/sidenav/Sidenav.accessibility.test.js +1 -1
- package/sidenav/Sidenav.test.d.ts +1 -0
- package/sidenav/Sidenav.test.js +1 -1
- package/slider/Slider.accessibility.test.d.ts +1 -0
- package/slider/Slider.accessibility.test.js +1 -1
- package/slider/Slider.js +8 -11
- package/slider/Slider.stories.tsx +180 -0
- package/slider/Slider.test.d.ts +1 -0
- package/slider/Slider.test.js +12 -9
- package/spinner/Spinner.accessibility.test.d.ts +1 -0
- package/spinner/Spinner.accessibility.test.js +2 -2
- package/spinner/Spinner.test.d.ts +1 -0
- package/spinner/Spinner.test.js +1 -1
- package/status-light/StatusLight.accessibility.test.d.ts +1 -0
- package/status-light/StatusLight.accessibility.test.js +2 -2
- package/status-light/StatusLight.test.d.ts +1 -0
- package/status-light/StatusLight.test.js +1 -1
- package/switch/Switch.accessibility.test.d.ts +1 -0
- package/switch/Switch.accessibility.test.js +1 -1
- package/switch/Switch.js +5 -8
- package/switch/Switch.test.d.ts +1 -0
- package/switch/Switch.test.js +1 -1
- package/table/Table.accessibility.test.d.ts +1 -0
- package/table/Table.accessibility.test.js +1 -1
- package/table/Table.test.d.ts +1 -0
- package/table/Table.test.js +1 -2
- package/tabs/Tabs.accessibility.test.d.ts +1 -0
- package/tabs/Tabs.accessibility.test.js +1 -1
- package/tabs/Tabs.test.d.ts +1 -0
- package/tabs/Tabs.test.js +1 -1
- package/tag/Tag.accessibility.test.d.ts +1 -0
- package/tag/Tag.accessibility.test.js +1 -1
- package/tag/Tag.test.d.ts +1 -0
- package/tag/Tag.test.js +1 -1
- package/text-input/TextInput.accessibility.test.d.ts +1 -0
- package/text-input/TextInput.accessibility.test.js +1 -1
- package/text-input/TextInput.js +19 -21
- package/text-input/TextInput.test.d.ts +1 -0
- package/text-input/TextInput.test.js +1 -1
- package/textarea/Textarea.accessibility.test.d.ts +1 -0
- package/textarea/Textarea.accessibility.test.js +1 -1
- package/textarea/Textarea.js +12 -12
- package/textarea/Textarea.test.d.ts +1 -0
- package/textarea/Textarea.test.js +1 -1
- package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
- package/toggle-group/ToggleGroup.accessibility.test.js +2 -2
- package/toggle-group/ToggleGroup.js +5 -8
- package/toggle-group/ToggleGroup.test.d.ts +1 -0
- package/toggle-group/ToggleGroup.test.js +1 -1
- package/typography/Typography.accessibility.test.d.ts +1 -0
- package/wizard/Wizard.accessibility.test.d.ts +1 -0
- package/wizard/Wizard.accessibility.test.js +1 -1
- package/wizard/Wizard.test.d.ts +1 -0
- package/wizard/Wizard.test.js +1 -1
|
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
var _react2 = require("@testing-library/react");
|
|
10
10
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
11
11
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
12
|
-
var _DateInput = _interopRequireDefault(require("./DateInput
|
|
12
|
+
var _DateInput = _interopRequireDefault(require("./DateInput"));
|
|
13
13
|
// Mocking DOMRect for Radix Primitive Popover
|
|
14
14
|
global.globalThis = global;
|
|
15
15
|
global.DOMRect = {
|
|
@@ -214,7 +214,7 @@ describe("DateInput component tests", function () {
|
|
|
214
214
|
_context6.next = 5;
|
|
215
215
|
return _userEvent["default"].click(calendarAction);
|
|
216
216
|
case 5:
|
|
217
|
-
expect(document.activeElement === getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0]).toBeTruthy();
|
|
217
|
+
expect(document.activeElement === (getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0])).toBeTruthy();
|
|
218
218
|
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
219
219
|
case 7:
|
|
220
220
|
case "end":
|
|
@@ -286,7 +286,7 @@ describe("DateInput component tests", function () {
|
|
|
286
286
|
_context9.next = 11;
|
|
287
287
|
return _userEvent["default"].click(calendarAction);
|
|
288
288
|
case 11:
|
|
289
|
-
expect(document.activeElement === getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0]).toBeTruthy();
|
|
289
|
+
expect(document.activeElement === (getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0])).toBeTruthy();
|
|
290
290
|
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
291
291
|
case 13:
|
|
292
292
|
case "end":
|
|
@@ -687,7 +687,7 @@ describe("DateInput component tests", function () {
|
|
|
687
687
|
});
|
|
688
688
|
});
|
|
689
689
|
test("Disabled date input (calendar action must be shown but not clickable)", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee16() {
|
|
690
|
-
var _render22, getByRole, queryByText, calendarAction, d, options;
|
|
690
|
+
var _render22, getByRole, queryByText, calendarAction, d, options, input;
|
|
691
691
|
return _regenerator["default"].wrap(function _callee16$(_context16) {
|
|
692
692
|
while (1) switch (_context16.prev = _context16.next) {
|
|
693
693
|
case 0:
|
|
@@ -701,12 +701,13 @@ describe("DateInput component tests", function () {
|
|
|
701
701
|
month: "short",
|
|
702
702
|
day: "numeric"
|
|
703
703
|
};
|
|
704
|
-
|
|
705
|
-
|
|
704
|
+
input = getByRole("textbox");
|
|
705
|
+
expect(input.disabled).toBeTruthy();
|
|
706
|
+
_context16.next = 8;
|
|
706
707
|
return _userEvent["default"].click(calendarAction);
|
|
707
|
-
case 7:
|
|
708
|
-
expect(queryByText(d.toLocaleString("en-US", options))).toBeFalsy();
|
|
709
708
|
case 8:
|
|
709
|
+
expect(queryByText(d.toLocaleString("en-US", options))).toBeFalsy();
|
|
710
|
+
case 9:
|
|
710
711
|
case "end":
|
|
711
712
|
return _context16.stop();
|
|
712
713
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -6,7 +6,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
6
6
|
var _react = _interopRequireDefault(require("react"));
|
|
7
7
|
var _react2 = require("@testing-library/react");
|
|
8
8
|
var _axeHelper = require("../../test/accessibility/axe-helper.js");
|
|
9
|
-
var _Dialog = _interopRequireDefault(require("./Dialog
|
|
9
|
+
var _Dialog = _interopRequireDefault(require("./Dialog"));
|
|
10
10
|
describe("Dialog component accessibility tests", function () {
|
|
11
11
|
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
12
12
|
var _render, baseElement, results;
|
|
@@ -11,7 +11,7 @@ import DxcHeading from "../heading/Heading";
|
|
|
11
11
|
import DxcParagraph from "../paragraph/Paragraph";
|
|
12
12
|
import DxcAlert from "../alert/Alert";
|
|
13
13
|
import { userEvent, within } from "@storybook/testing-library";
|
|
14
|
-
import { INITIAL_VIEWPORTS } from
|
|
14
|
+
import { INITIAL_VIEWPORTS } from "@storybook/addon-viewport";
|
|
15
15
|
|
|
16
16
|
export default {
|
|
17
17
|
title: "Dialog",
|
|
@@ -368,4 +368,3 @@ ScrollDialog.play = async ({ canvasElement }) => {
|
|
|
368
368
|
await userEvent.tab();
|
|
369
369
|
await userEvent.tab();
|
|
370
370
|
};
|
|
371
|
-
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dialog/Dialog.test.js
CHANGED
|
@@ -1,20 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
4
8
|
var _react = _interopRequireDefault(require("react"));
|
|
5
9
|
var _react2 = require("@testing-library/react");
|
|
6
10
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
7
|
-
var _Dialog = _interopRequireDefault(require("./Dialog
|
|
8
|
-
var _TextInput = _interopRequireDefault(require("../text-input/TextInput
|
|
9
|
-
var _Textarea = _interopRequireDefault(require("../textarea/Textarea
|
|
10
|
-
var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox
|
|
11
|
-
var _Select = _interopRequireDefault(require("../select/Select
|
|
12
|
-
var _Button = _interopRequireDefault(require("../button/Button
|
|
13
|
-
var _Link = _interopRequireDefault(require("../link/Link
|
|
14
|
-
var _Card = _interopRequireDefault(require("../card/Card
|
|
15
|
-
var _RadioGroup = _interopRequireDefault(require("../radio-group/RadioGroup
|
|
16
|
-
var _Slider = _interopRequireDefault(require("../slider/Slider
|
|
17
|
-
var _Switch = _interopRequireDefault(require("../switch/Switch
|
|
11
|
+
var _Dialog = _interopRequireDefault(require("./Dialog"));
|
|
12
|
+
var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
|
|
13
|
+
var _Textarea = _interopRequireDefault(require("../textarea/Textarea"));
|
|
14
|
+
var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
|
|
15
|
+
var _Select = _interopRequireDefault(require("../select/Select"));
|
|
16
|
+
var _Button = _interopRequireDefault(require("../button/Button"));
|
|
17
|
+
var _Link = _interopRequireDefault(require("../link/Link"));
|
|
18
|
+
var _Card = _interopRequireDefault(require("../card/Card"));
|
|
19
|
+
var _RadioGroup = _interopRequireDefault(require("../radio-group/RadioGroup"));
|
|
20
|
+
var _Slider = _interopRequireDefault(require("../slider/Slider"));
|
|
21
|
+
var _Switch = _interopRequireDefault(require("../switch/Switch"));
|
|
22
|
+
var _DateInput = _interopRequireDefault(require("../date-input/DateInput"));
|
|
23
|
+
// Mocking DOMRect for Radix Primitive Popover
|
|
24
|
+
global.globalThis = global;
|
|
25
|
+
global.DOMRect = {
|
|
26
|
+
fromRect: function fromRect() {
|
|
27
|
+
return {
|
|
28
|
+
top: 0,
|
|
29
|
+
left: 0,
|
|
30
|
+
bottom: 0,
|
|
31
|
+
right: 0,
|
|
32
|
+
width: 0,
|
|
33
|
+
height: 0
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
global.ResizeObserver = /*#__PURE__*/function () {
|
|
38
|
+
function ResizeObserver() {
|
|
39
|
+
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
40
|
+
}
|
|
41
|
+
(0, _createClass2["default"])(ResizeObserver, [{
|
|
42
|
+
key: "observe",
|
|
43
|
+
value: function observe() {}
|
|
44
|
+
}, {
|
|
45
|
+
key: "unobserve",
|
|
46
|
+
value: function unobserve() {}
|
|
47
|
+
}, {
|
|
48
|
+
key: "disconnect",
|
|
49
|
+
value: function disconnect() {}
|
|
50
|
+
}]);
|
|
51
|
+
return ResizeObserver;
|
|
52
|
+
}();
|
|
18
53
|
var options = [{
|
|
19
54
|
label: "Female",
|
|
20
55
|
value: "female"
|
|
@@ -77,11 +112,40 @@ describe("Dialog component tests", function () {
|
|
|
77
112
|
});
|
|
78
113
|
expect(onCloseClick).toHaveBeenCalled();
|
|
79
114
|
});
|
|
115
|
+
test("Does not call function onCloseClick when 'Escape' key is pressed while a child popover is opened", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
116
|
+
var onCloseClick, _render6, getByRole, calendarAction;
|
|
117
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
118
|
+
while (1) switch (_context.prev = _context.next) {
|
|
119
|
+
case 0:
|
|
120
|
+
onCloseClick = jest.fn();
|
|
121
|
+
_render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
|
|
122
|
+
onCloseClick: onCloseClick
|
|
123
|
+
}, /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
124
|
+
label: "With format M-dd-yyyy",
|
|
125
|
+
format: "M-dd-yyyy"
|
|
126
|
+
}))), getByRole = _render6.getByRole;
|
|
127
|
+
calendarAction = getByRole("combobox");
|
|
128
|
+
_context.next = 5;
|
|
129
|
+
return _userEvent["default"].click(calendarAction);
|
|
130
|
+
case 5:
|
|
131
|
+
_react2.fireEvent.keyDown(document.activeElement, {
|
|
132
|
+
key: "Escape",
|
|
133
|
+
code: "Escape",
|
|
134
|
+
keyCode: 27,
|
|
135
|
+
charCode: 27
|
|
136
|
+
});
|
|
137
|
+
expect(onCloseClick).not.toHaveBeenCalled();
|
|
138
|
+
case 7:
|
|
139
|
+
case "end":
|
|
140
|
+
return _context.stop();
|
|
141
|
+
}
|
|
142
|
+
}, _callee);
|
|
143
|
+
})));
|
|
80
144
|
});
|
|
81
145
|
describe("Dialog component: Focus lock tests", function () {
|
|
82
146
|
test("Close action: when there's no focusable content, the focus never leaves the close action (unless you click outside)", function () {
|
|
83
|
-
var
|
|
84
|
-
getByRole =
|
|
147
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "example-dialog")),
|
|
148
|
+
getByRole = _render7.getByRole;
|
|
85
149
|
var button = getByRole("button");
|
|
86
150
|
var dialog = getByRole("dialog");
|
|
87
151
|
expect(document.activeElement).toEqual(button);
|
|
@@ -95,100 +159,100 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
95
159
|
expect(document.activeElement).toEqual(button);
|
|
96
160
|
});
|
|
97
161
|
test("Autofocus with Button component", function () {
|
|
98
|
-
var
|
|
162
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
99
163
|
label: "Accept"
|
|
100
164
|
}))),
|
|
101
|
-
getAllByRole =
|
|
165
|
+
getAllByRole = _render8.getAllByRole;
|
|
102
166
|
var button = getAllByRole("button")[0];
|
|
103
167
|
expect(document.activeElement).toEqual(button);
|
|
104
168
|
expect(button.getAttribute("aria-label")).not.toBe("Close dialog");
|
|
105
169
|
});
|
|
106
170
|
test("Autofocus with Card component", function () {
|
|
107
|
-
var
|
|
171
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
|
|
108
172
|
linkHref: "https://developer.dxc.com/halstack/next/components/card/"
|
|
109
173
|
}, "example-card"))),
|
|
110
|
-
getByRole =
|
|
174
|
+
getByRole = _render9.getByRole;
|
|
111
175
|
var card = getByRole("link");
|
|
112
176
|
expect(document.activeElement).toEqual(card);
|
|
113
177
|
});
|
|
114
178
|
test("Autofocus with Checkbox component", function () {
|
|
115
|
-
var
|
|
179
|
+
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
116
180
|
label: "Name"
|
|
117
181
|
}))),
|
|
118
|
-
getByRole =
|
|
182
|
+
getByRole = _render10.getByRole;
|
|
119
183
|
var checkbox = getByRole("checkbox");
|
|
120
184
|
expect(document.activeElement).toEqual(checkbox);
|
|
121
185
|
});
|
|
122
186
|
test("Autofocus with Link component", function () {
|
|
123
|
-
var
|
|
187
|
+
var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "This is a text with a ", /*#__PURE__*/_react["default"].createElement(_Link["default"], {
|
|
124
188
|
href: "#"
|
|
125
189
|
}, "Link"), " to another page.")),
|
|
126
|
-
getByRole =
|
|
190
|
+
getByRole = _render11.getByRole;
|
|
127
191
|
var link = getByRole("link");
|
|
128
192
|
expect(document.activeElement).toEqual(link);
|
|
129
193
|
});
|
|
130
194
|
test("Autofocus with RadioGroup component", function () {
|
|
131
|
-
var
|
|
195
|
+
var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
132
196
|
label: "Example",
|
|
133
197
|
options: options
|
|
134
198
|
}))),
|
|
135
|
-
getAllByRole =
|
|
199
|
+
getAllByRole = _render12.getAllByRole;
|
|
136
200
|
var checkedRadio = getAllByRole("radio")[0];
|
|
137
201
|
expect(document.activeElement).toEqual(checkedRadio);
|
|
138
202
|
});
|
|
139
203
|
test("Autofocus with Select component", function () {
|
|
140
|
-
var
|
|
204
|
+
var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
141
205
|
label: "Country",
|
|
142
206
|
options: options
|
|
143
207
|
}))),
|
|
144
|
-
getByRole =
|
|
208
|
+
getByRole = _render13.getByRole;
|
|
145
209
|
var select = getByRole("combobox");
|
|
146
210
|
expect(document.activeElement).toEqual(select);
|
|
147
211
|
});
|
|
148
212
|
test("Autofocus with Slider component", function () {
|
|
149
|
-
var
|
|
213
|
+
var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
150
214
|
label: "label",
|
|
151
215
|
minValue: 0,
|
|
152
216
|
maxValue: 100,
|
|
153
217
|
showLimitsValues: true
|
|
154
218
|
}))),
|
|
155
|
-
getByRole =
|
|
219
|
+
getByRole = _render14.getByRole;
|
|
156
220
|
var slider = getByRole("slider");
|
|
157
221
|
expect(document.activeElement).toEqual(slider);
|
|
158
222
|
});
|
|
159
223
|
test("Autofocus with Switch component", function () {
|
|
160
|
-
var
|
|
224
|
+
var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
161
225
|
label: "Example"
|
|
162
226
|
}))),
|
|
163
|
-
getByRole =
|
|
227
|
+
getByRole = _render15.getByRole;
|
|
164
228
|
var switchButton = getByRole("switch");
|
|
165
229
|
expect(document.activeElement).toEqual(switchButton);
|
|
166
230
|
});
|
|
167
231
|
test("Autofocus with Text Input component", function () {
|
|
168
|
-
var
|
|
232
|
+
var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
169
233
|
label: "Name"
|
|
170
234
|
}))),
|
|
171
|
-
getByRole =
|
|
235
|
+
getByRole = _render16.getByRole;
|
|
172
236
|
var input = getByRole("textbox");
|
|
173
237
|
expect(document.activeElement).toEqual(input);
|
|
174
238
|
});
|
|
175
239
|
test("Autofocus with Textarea component", function () {
|
|
176
|
-
var
|
|
240
|
+
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
177
241
|
label: "Name"
|
|
178
242
|
}))),
|
|
179
|
-
getByRole =
|
|
243
|
+
getByRole = _render17.getByRole;
|
|
180
244
|
var textarea = getByRole("textbox");
|
|
181
245
|
expect(document.activeElement).toEqual(textarea);
|
|
182
246
|
});
|
|
183
247
|
test("Negative tabindex elements are not automatically focused, even if it is enabled and a valid focusable item (programatically and by click)", function () {
|
|
184
|
-
var
|
|
185
|
-
|
|
248
|
+
var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
|
|
249
|
+
title: "Name",
|
|
186
250
|
tabIndex: -1
|
|
187
251
|
}), /*#__PURE__*/_react["default"].createElement("input", {
|
|
188
|
-
|
|
252
|
+
title: "Name"
|
|
189
253
|
}))),
|
|
190
|
-
getAllByRole =
|
|
191
|
-
getByRole =
|
|
254
|
+
getAllByRole = _render18.getAllByRole,
|
|
255
|
+
getByRole = _render18.getByRole;
|
|
192
256
|
var inputs = getAllByRole("textbox");
|
|
193
257
|
var button = getByRole("button");
|
|
194
258
|
expect(document.activeElement).toEqual(inputs[1]);
|
|
@@ -198,7 +262,7 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
198
262
|
expect(document.activeElement).toEqual(inputs[1]);
|
|
199
263
|
});
|
|
200
264
|
test("Focus jumps disabled components and negative tabIndexes when autofocusing first item", function () {
|
|
201
|
-
var
|
|
265
|
+
var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
202
266
|
label: "Accept",
|
|
203
267
|
disabled: true
|
|
204
268
|
}), /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
@@ -235,12 +299,12 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
235
299
|
}), /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
236
300
|
label: "Description"
|
|
237
301
|
}))),
|
|
238
|
-
getAllByRole =
|
|
302
|
+
getAllByRole = _render19.getAllByRole;
|
|
239
303
|
var textarea = getAllByRole("textbox")[2];
|
|
240
304
|
expect(document.activeElement).toEqual(textarea);
|
|
241
305
|
});
|
|
242
306
|
test("Focus jumps from last element to the first", function () {
|
|
243
|
-
var
|
|
307
|
+
var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
244
308
|
label: "Accept",
|
|
245
309
|
disabled: true
|
|
246
310
|
}), /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
@@ -249,7 +313,7 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
249
313
|
label: "Name",
|
|
250
314
|
options: options
|
|
251
315
|
}))),
|
|
252
|
-
getByRole =
|
|
316
|
+
getByRole = _render20.getByRole;
|
|
253
317
|
var closeAction = getByRole("button");
|
|
254
318
|
var textarea = getByRole("textbox");
|
|
255
319
|
expect(document.activeElement).toEqual(textarea);
|
|
@@ -260,13 +324,13 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
260
324
|
expect(document.activeElement).toEqual(textarea);
|
|
261
325
|
});
|
|
262
326
|
test("'display: none;', 'visibility: hidden;' and 'type = 'hidden'' elements are never autofocused", function () {
|
|
263
|
-
var
|
|
264
|
-
|
|
327
|
+
var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
|
|
328
|
+
title: "Name",
|
|
265
329
|
style: {
|
|
266
330
|
display: "none"
|
|
267
331
|
}
|
|
268
332
|
}), /*#__PURE__*/_react["default"].createElement("input", {
|
|
269
|
-
|
|
333
|
+
title: "Name",
|
|
270
334
|
style: {
|
|
271
335
|
visibility: "hidden"
|
|
272
336
|
}
|
|
@@ -274,21 +338,21 @@ describe("Dialog component: Focus lock tests", function () {
|
|
|
274
338
|
type: "hidden",
|
|
275
339
|
name: "example"
|
|
276
340
|
}))),
|
|
277
|
-
getByRole =
|
|
341
|
+
getByRole = _render21.getByRole;
|
|
278
342
|
var closeAction = getByRole("button");
|
|
279
343
|
expect(document.activeElement).toEqual(closeAction);
|
|
280
344
|
_userEvent["default"].tab();
|
|
281
345
|
expect(document.activeElement).toEqual(closeAction);
|
|
282
346
|
});
|
|
283
347
|
test("Focus gets trapped in the Dialog when there are not focusable elements inside until it is closed", function () {
|
|
284
|
-
var
|
|
348
|
+
var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
285
349
|
label: "Name"
|
|
286
350
|
}), /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
|
|
287
351
|
isCloseVisible: false
|
|
288
352
|
}, /*#__PURE__*/_react["default"].createElement("h2", null, "Policy agreement"), /*#__PURE__*/_react["default"].createElement("p", null, "Sample text.")), /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
289
353
|
label: "Surname"
|
|
290
354
|
}))),
|
|
291
|
-
getAllByRole =
|
|
355
|
+
getAllByRole = _render22.getAllByRole;
|
|
292
356
|
var inputs = getAllByRole("textbox");
|
|
293
357
|
var dialog = getAllByRole("dialog")[0];
|
|
294
358
|
_userEvent["default"].tab();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -8,7 +8,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _react2 = require("@testing-library/react");
|
|
10
10
|
var _axeHelper = require("../../test/accessibility/axe-helper.js");
|
|
11
|
-
var _Dropdown = _interopRequireDefault(require("./Dropdown
|
|
11
|
+
var _Dropdown = _interopRequireDefault(require("./Dropdown"));
|
|
12
12
|
var iconSVG = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
13
13
|
viewBox: "0 0 24 24",
|
|
14
14
|
height: "24",
|
|
@@ -83,7 +83,8 @@ describe("Dropdown component accessibility tests", function () {
|
|
|
83
83
|
iconPosition: "before",
|
|
84
84
|
margin: "medium",
|
|
85
85
|
size: "medium",
|
|
86
|
-
optionsIconPosition: "before"
|
|
86
|
+
optionsIconPosition: "before",
|
|
87
|
+
onSelectOption: function onSelectOption() {}
|
|
87
88
|
})), baseElement = _render.baseElement;
|
|
88
89
|
_context.next = 3;
|
|
89
90
|
return (0, _axeHelper.axe)(baseElement);
|
|
@@ -110,6 +111,7 @@ describe("Dropdown component accessibility tests", function () {
|
|
|
110
111
|
margin: "medium",
|
|
111
112
|
size: "medium",
|
|
112
113
|
optionsIconPosition: "before",
|
|
114
|
+
onSelectOption: function onSelectOption() {},
|
|
113
115
|
disabled: true
|
|
114
116
|
})), baseElement = _render2.baseElement;
|
|
115
117
|
_context2.next = 3;
|
|
@@ -137,6 +139,7 @@ describe("Dropdown component accessibility tests", function () {
|
|
|
137
139
|
margin: "medium",
|
|
138
140
|
size: "medium",
|
|
139
141
|
optionsIconPosition: "after",
|
|
142
|
+
onSelectOption: function onSelectOption() {},
|
|
140
143
|
caretHidden: true
|
|
141
144
|
})), baseElement = _render3.baseElement;
|
|
142
145
|
_context3.next = 3;
|
|
@@ -164,6 +167,7 @@ describe("Dropdown component accessibility tests", function () {
|
|
|
164
167
|
margin: "medium",
|
|
165
168
|
size: "medium",
|
|
166
169
|
optionsIconPosition: "after",
|
|
170
|
+
onSelectOption: function onSelectOption() {},
|
|
167
171
|
expandOnHover: true
|
|
168
172
|
})), baseElement = _render4.baseElement;
|
|
169
173
|
_context4.next = 3;
|
package/dropdown/Dropdown.js
CHANGED
|
@@ -14,7 +14,6 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
14
14
|
var _variables = require("../common/variables");
|
|
15
15
|
var _utils = require("../common/utils");
|
|
16
16
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
17
|
-
var _uuid = require("uuid");
|
|
18
17
|
var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
|
|
19
18
|
var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
|
|
20
19
|
var _Icon = _interopRequireDefault(require("../icon/Icon"));
|
|
@@ -62,18 +61,17 @@ var DxcDropdown = function DxcDropdown(_ref) {
|
|
|
62
61
|
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
63
62
|
_ref$tabIndex = _ref.tabIndex,
|
|
64
63
|
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
65
|
-
var
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
var
|
|
69
|
-
|
|
64
|
+
var id = (0, _react.useId)();
|
|
65
|
+
var triggerId = "trigger-".concat(id);
|
|
66
|
+
var menuId = "menu-".concat(id);
|
|
67
|
+
var _useState3 = (0, _react.useState)(false),
|
|
68
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
69
|
+
isOpen = _useState4[0],
|
|
70
|
+
changeIsOpen = _useState4[1];
|
|
71
|
+
var _useState5 = (0, _react.useState)(0),
|
|
70
72
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
var _useState7 = (0, _react.useState)(0),
|
|
74
|
-
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
75
|
-
visualFocusIndex = _useState8[0],
|
|
76
|
-
setVisualFocusIndex = _useState8[1];
|
|
73
|
+
visualFocusIndex = _useState6[0],
|
|
74
|
+
setVisualFocusIndex = _useState6[1];
|
|
77
75
|
var colorsTheme = (0, _useTheme["default"])();
|
|
78
76
|
var triggerRef = (0, _react.useRef)(null);
|
|
79
77
|
var menuRef = (0, _react.useRef)(null);
|
|
@@ -149,6 +147,7 @@ var DxcDropdown = function DxcDropdown(_ref) {
|
|
|
149
147
|
case "Esc":
|
|
150
148
|
case "Escape":
|
|
151
149
|
event.preventDefault();
|
|
150
|
+
isOpen && event.stopPropagation();
|
|
152
151
|
handleOnCloseMenu();
|
|
153
152
|
(_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.focus();
|
|
154
153
|
break;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|