@dxc-technology/halstack-react 0.0.0-89de434 → 0.0.0-8a597df
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/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.js +8 -21
- package/accordion/Accordion.stories.tsx +4 -36
- package/accordion/types.d.ts +1 -1
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -3
- package/accordion-group/AccordionGroup.js +3 -3
- package/accordion-group/AccordionGroupAccordion.js +2 -2
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +1 -1
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.js +4 -3
- package/action-icon/ActionIcon.stories.tsx +3 -3
- package/action-icon/types.d.ts +1 -1
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +15 -69
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.js +6 -4
- package/badge/Badge.stories.tsx +11 -11
- package/badge/types.d.ts +1 -1
- package/box/Box.accessibility.test.js +33 -0
- package/bulleted-list/BulletedList.accessibility.test.js +107 -0
- package/bulleted-list/BulletedList.js +6 -3
- package/bulleted-list/BulletedList.stories.tsx +1 -1
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.js +4 -3
- package/button/Button.stories.tsx +32 -51
- package/button/types.d.ts +1 -1
- package/card/Card.accessibility.test.js +36 -0
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +8 -5
- package/chip/Chip.stories.tsx +5 -24
- package/chip/Chip.test.js +4 -4
- package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
- package/date-input/DateInput.accessibility.test.js +216 -0
- package/date-input/DateInput.js +1 -2
- package/date-input/DatePicker.js +12 -6
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.test.js +1 -1
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/types.d.ts +3 -1
- package/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.js +12 -29
- package/dropdown/Dropdown.stories.tsx +5 -16
- package/dropdown/DropdownMenuItem.js +6 -3
- package/dropdown/types.d.ts +2 -4
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.js +3 -39
- package/file-input/FileInput.test.js +7 -84
- package/file-input/FileItem.js +13 -27
- package/footer/Footer.accessibility.test.js +117 -0
- package/footer/Footer.js +7 -5
- package/footer/Footer.stories.tsx +28 -3
- package/footer/types.d.ts +1 -1
- package/header/Header.accessibility.test.js +84 -0
- package/header/Header.js +9 -20
- package/heading/Heading.accessibility.test.js +33 -0
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.js +1 -1
- package/icon/Icon.stories.tsx +5 -3
- package/image/Image.accessibility.test.js +56 -0
- package/layout/ApplicationLayout.js +1 -1
- package/layout/Icons.js +0 -2
- package/link/Link.accessibility.test.js +112 -0
- package/link/Link.js +7 -5
- package/link/Link.stories.tsx +2 -2
- package/link/types.d.ts +1 -1
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +1 -2
- package/nav-tabs/NavTabs.js +3 -3
- package/nav-tabs/NavTabs.stories.tsx +26 -23
- package/nav-tabs/NavTabs.test.js +1 -2
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.js +13 -14
- package/nav-tabs/types.d.ts +1 -1
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.d.ts +0 -7
- package/number-input/NumberInput.js +3 -3
- package/number-input/NumberInputContext.d.ts +3 -0
- package/number-input/NumberInputContext.js +8 -0
- package/number-input/types.d.ts +6 -0
- package/package.json +11 -11
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
- package/resultset-table/ResultsetTable.d.ts +1 -1
- package/resultset-table/ResultsetTable.js +10 -6
- package/resultset-table/ResultsetTable.stories.tsx +5 -1
- package/resultset-table/ResultsetTable.test.js +14 -4
- package/resultset-table/types.d.ts +38 -11
- package/select/Select.accessibility.test.js +217 -0
- package/select/Select.stories.tsx +0 -1
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.js +16 -12
- package/sidenav/Sidenav.stories.tsx +4 -9
- package/sidenav/types.d.ts +2 -2
- package/slider/Slider.accessibility.test.js +104 -0
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/status-light/StatusLight.accessibility.test.js +157 -0
- package/switch/Switch.accessibility.test.js +89 -0
- package/table/Table.accessibility.test.js +82 -0
- package/table/Table.js +1 -10
- package/table/Table.stories.tsx +2 -9
- package/table/types.d.ts +1 -15
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +6 -6
- package/tag/Tag.stories.tsx +4 -7
- package/tag/Tag.test.js +4 -12
- package/tag/types.d.ts +2 -2
- package/text-input/Suggestions.js +5 -3
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +10 -8
- package/text-input/TextInput.stories.tsx +1 -1
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.js +4 -3
- package/toggle-group/ToggleGroup.stories.tsx +3 -3
- package/toggle-group/types.d.ts +2 -2
- package/typography/Typography.accessibility.test.js +339 -0
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/date-input/Icons.d.ts +0 -6
- package/date-input/Icons.js +0 -58
- package/sidenav/Icons.d.ts +0 -7
- package/sidenav/Icons.js +0 -47
- package/text-input/Icons.d.ts +0 -8
- package/text-input/Icons.js +0 -56
- /package/{layout → sidenav}/SidenavContext.d.ts +0 -0
- /package/{layout → sidenav}/SidenavContext.js +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
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 _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
var _jestAxe = require("jest-axe");
|
|
9
|
+
var _ProgressBar = _interopRequireDefault(require("./ProgressBar.tsx"));
|
|
10
|
+
describe("ProgressBar component accessibility tests", function () {
|
|
11
|
+
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
12
|
+
var _render, container, results;
|
|
13
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
14
|
+
while (1) switch (_context.prev = _context.next) {
|
|
15
|
+
case 0:
|
|
16
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
|
|
17
|
+
label: "test-label",
|
|
18
|
+
helperText: "helper-text",
|
|
19
|
+
margin: "medium",
|
|
20
|
+
value: 50,
|
|
21
|
+
showValue: true,
|
|
22
|
+
overlay: true
|
|
23
|
+
})), container = _render.container;
|
|
24
|
+
_context.next = 3;
|
|
25
|
+
return (0, _jestAxe.axe)(container);
|
|
26
|
+
case 3:
|
|
27
|
+
results = _context.sent;
|
|
28
|
+
expect(results).toHaveNoViolations();
|
|
29
|
+
case 5:
|
|
30
|
+
case "end":
|
|
31
|
+
return _context.stop();
|
|
32
|
+
}
|
|
33
|
+
}, _callee);
|
|
34
|
+
})));
|
|
35
|
+
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
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 _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
var _jestAxe = require("jest-axe");
|
|
9
|
+
var _QuickNav = _interopRequireDefault(require("./QuickNav"));
|
|
10
|
+
var links = [{
|
|
11
|
+
label: "Overview",
|
|
12
|
+
links: [{
|
|
13
|
+
label: "Introduction"
|
|
14
|
+
}]
|
|
15
|
+
}, {
|
|
16
|
+
label: "Components",
|
|
17
|
+
links: [{
|
|
18
|
+
label: "Introduction"
|
|
19
|
+
}, {
|
|
20
|
+
label: "Accordion"
|
|
21
|
+
}]
|
|
22
|
+
}, {
|
|
23
|
+
label: "Principles very very very very very very very very long",
|
|
24
|
+
links: [{
|
|
25
|
+
label: "Color very very very very very very very very long"
|
|
26
|
+
}, {
|
|
27
|
+
label: "Spacingveryveryveryveryveryveryveryverylong"
|
|
28
|
+
}, {
|
|
29
|
+
label: "Typography"
|
|
30
|
+
}]
|
|
31
|
+
}, {
|
|
32
|
+
label: "Componentsveryveryveryveryveryveryveryverylong",
|
|
33
|
+
links: [{
|
|
34
|
+
label: "Accordion"
|
|
35
|
+
}]
|
|
36
|
+
}];
|
|
37
|
+
describe("Quick Nav component accessibility tests", function () {
|
|
38
|
+
it("Should not have basic accessibility issues for icon mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
39
|
+
var _render, container, results;
|
|
40
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
41
|
+
while (1) switch (_context.prev = _context.next) {
|
|
42
|
+
case 0:
|
|
43
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_QuickNav["default"], {
|
|
44
|
+
links: links
|
|
45
|
+
})), container = _render.container;
|
|
46
|
+
_context.next = 3;
|
|
47
|
+
return (0, _jestAxe.axe)(container);
|
|
48
|
+
case 3:
|
|
49
|
+
results = _context.sent;
|
|
50
|
+
expect(results).toHaveNoViolations();
|
|
51
|
+
case 5:
|
|
52
|
+
case "end":
|
|
53
|
+
return _context.stop();
|
|
54
|
+
}
|
|
55
|
+
}, _callee);
|
|
56
|
+
})));
|
|
57
|
+
});
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
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 _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
var _jestAxe = require("jest-axe");
|
|
9
|
+
var _RadioGroup = _interopRequireDefault(require("./RadioGroup.tsx"));
|
|
10
|
+
var options = [{
|
|
11
|
+
label: "Option 01",
|
|
12
|
+
value: "1"
|
|
13
|
+
}, {
|
|
14
|
+
label: "Option 02",
|
|
15
|
+
value: "2"
|
|
16
|
+
}, {
|
|
17
|
+
label: "Option 03",
|
|
18
|
+
value: "3"
|
|
19
|
+
}, {
|
|
20
|
+
label: "Option 04",
|
|
21
|
+
value: "4"
|
|
22
|
+
}, {
|
|
23
|
+
label: "Option 05",
|
|
24
|
+
value: "5",
|
|
25
|
+
disabled: true
|
|
26
|
+
}, {
|
|
27
|
+
label: "Option 06",
|
|
28
|
+
value: "6",
|
|
29
|
+
disabled: true
|
|
30
|
+
}, {
|
|
31
|
+
label: "Option 07",
|
|
32
|
+
value: "7",
|
|
33
|
+
disabled: true
|
|
34
|
+
}, {
|
|
35
|
+
label: "Option 08",
|
|
36
|
+
value: "8",
|
|
37
|
+
disabled: true
|
|
38
|
+
}, {
|
|
39
|
+
label: "Option 09",
|
|
40
|
+
value: "9"
|
|
41
|
+
}];
|
|
42
|
+
describe("Radio Group component accessibility tests", function () {
|
|
43
|
+
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
44
|
+
var _render, container, results;
|
|
45
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
46
|
+
while (1) switch (_context.prev = _context.next) {
|
|
47
|
+
case 0:
|
|
48
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
49
|
+
label: "test-radioGroup-label",
|
|
50
|
+
options: options,
|
|
51
|
+
error: "Error",
|
|
52
|
+
defaultValue: "3",
|
|
53
|
+
helperText: "Helper Text",
|
|
54
|
+
name: "Name",
|
|
55
|
+
stacking: "row",
|
|
56
|
+
optionalItemLabel: "Optional",
|
|
57
|
+
optional: true
|
|
58
|
+
})), container = _render.container;
|
|
59
|
+
_context.next = 3;
|
|
60
|
+
return (0, _jestAxe.axe)(container);
|
|
61
|
+
case 3:
|
|
62
|
+
results = _context.sent;
|
|
63
|
+
expect(results).toHaveNoViolations();
|
|
64
|
+
case 5:
|
|
65
|
+
case "end":
|
|
66
|
+
return _context.stop();
|
|
67
|
+
}
|
|
68
|
+
}, _callee);
|
|
69
|
+
})));
|
|
70
|
+
it("Should not have basic accessibility issues for read-only mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
71
|
+
var _render2, container, results;
|
|
72
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
73
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
74
|
+
case 0:
|
|
75
|
+
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
76
|
+
label: "test-radioGroup-label",
|
|
77
|
+
options: options,
|
|
78
|
+
error: "Error",
|
|
79
|
+
defaultValue: "3",
|
|
80
|
+
helperText: "Helper Text",
|
|
81
|
+
name: "Name",
|
|
82
|
+
stacking: "row",
|
|
83
|
+
optionalItemLabel: "Optional",
|
|
84
|
+
readOnly: true
|
|
85
|
+
})), container = _render2.container;
|
|
86
|
+
_context2.next = 3;
|
|
87
|
+
return (0, _jestAxe.axe)(container);
|
|
88
|
+
case 3:
|
|
89
|
+
results = _context2.sent;
|
|
90
|
+
expect(results).toHaveNoViolations();
|
|
91
|
+
case 5:
|
|
92
|
+
case "end":
|
|
93
|
+
return _context2.stop();
|
|
94
|
+
}
|
|
95
|
+
}, _callee2);
|
|
96
|
+
})));
|
|
97
|
+
});
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
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"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _react2 = require("@testing-library/react");
|
|
10
|
+
var _jestAxe = require("jest-axe");
|
|
11
|
+
var _ResultsetTable = _interopRequireDefault(require("./ResultsetTable.tsx"));
|
|
12
|
+
var deleteIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
13
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
14
|
+
height: "24",
|
|
15
|
+
viewBox: "0 0 24 24",
|
|
16
|
+
width: "24"
|
|
17
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
18
|
+
fill: "currentColor",
|
|
19
|
+
d: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"
|
|
20
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
21
|
+
d: "M0 0h24v24H0z",
|
|
22
|
+
fill: "none"
|
|
23
|
+
}));
|
|
24
|
+
|
|
25
|
+
// Mocking DOMRect for Radix Primitive Popover
|
|
26
|
+
global.globalThis = global;
|
|
27
|
+
global.DOMRect = {
|
|
28
|
+
fromRect: function fromRect() {
|
|
29
|
+
return {
|
|
30
|
+
top: 0,
|
|
31
|
+
left: 0,
|
|
32
|
+
bottom: 0,
|
|
33
|
+
right: 0,
|
|
34
|
+
width: 0,
|
|
35
|
+
height: 0
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
global.ResizeObserver = /*#__PURE__*/function () {
|
|
40
|
+
function ResizeObserver() {
|
|
41
|
+
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
42
|
+
}
|
|
43
|
+
(0, _createClass2["default"])(ResizeObserver, [{
|
|
44
|
+
key: "observe",
|
|
45
|
+
value: function observe() {}
|
|
46
|
+
}, {
|
|
47
|
+
key: "unobserve",
|
|
48
|
+
value: function unobserve() {}
|
|
49
|
+
}, {
|
|
50
|
+
key: "disconnect",
|
|
51
|
+
value: function disconnect() {}
|
|
52
|
+
}]);
|
|
53
|
+
return ResizeObserver;
|
|
54
|
+
}();
|
|
55
|
+
var actions = [{
|
|
56
|
+
title: "icon",
|
|
57
|
+
onClick: function onClick() {},
|
|
58
|
+
options: [{
|
|
59
|
+
value: "1",
|
|
60
|
+
label: "Amazon with a very long text"
|
|
61
|
+
}, {
|
|
62
|
+
value: "2",
|
|
63
|
+
label: "Ebay"
|
|
64
|
+
}, {
|
|
65
|
+
value: "3",
|
|
66
|
+
label: "Apple"
|
|
67
|
+
}]
|
|
68
|
+
}, {
|
|
69
|
+
icon: "https://www.freepnglogos.com/uploads/facebook-logo-design-1.png",
|
|
70
|
+
title: "icon",
|
|
71
|
+
onClick: function onClick() {}
|
|
72
|
+
}, {
|
|
73
|
+
icon: deleteIcon,
|
|
74
|
+
title: "icon",
|
|
75
|
+
onClick: function onClick() {},
|
|
76
|
+
disabled: true
|
|
77
|
+
}, {
|
|
78
|
+
icon: deleteIcon,
|
|
79
|
+
title: "icon",
|
|
80
|
+
onClick: function onClick() {}
|
|
81
|
+
}];
|
|
82
|
+
var columns = [{
|
|
83
|
+
displayValue: "Id",
|
|
84
|
+
isSortable: false
|
|
85
|
+
}, {
|
|
86
|
+
displayValue: "Name",
|
|
87
|
+
isSortable: true
|
|
88
|
+
}, {
|
|
89
|
+
displayValue: "City",
|
|
90
|
+
isSortable: false
|
|
91
|
+
}];
|
|
92
|
+
var rows = [[{
|
|
93
|
+
displayValue: "001",
|
|
94
|
+
sortValue: "001"
|
|
95
|
+
}, {
|
|
96
|
+
displayValue: "Peter",
|
|
97
|
+
sortValue: "Peter"
|
|
98
|
+
}, {
|
|
99
|
+
displayValue: "Oviedo",
|
|
100
|
+
sortValue: "Oviedo"
|
|
101
|
+
}, {
|
|
102
|
+
displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
|
|
103
|
+
actions: actions
|
|
104
|
+
})
|
|
105
|
+
}], [{
|
|
106
|
+
displayValue: "002",
|
|
107
|
+
sortValue: "002"
|
|
108
|
+
}, {
|
|
109
|
+
displayValue: "Louis",
|
|
110
|
+
sortValue: "Louis"
|
|
111
|
+
}, {
|
|
112
|
+
displayValue: "Oviedo",
|
|
113
|
+
sortValue: "Oviedo"
|
|
114
|
+
}, {
|
|
115
|
+
displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
|
|
116
|
+
actions: actions
|
|
117
|
+
})
|
|
118
|
+
}], [{
|
|
119
|
+
displayValue: "003",
|
|
120
|
+
sortValue: "003"
|
|
121
|
+
}, {
|
|
122
|
+
displayValue: "Lana",
|
|
123
|
+
sortValue: "Lana"
|
|
124
|
+
}, {
|
|
125
|
+
displayValue: "Albacete",
|
|
126
|
+
sortValue: "Albacete"
|
|
127
|
+
}, {
|
|
128
|
+
displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
|
|
129
|
+
actions: actions
|
|
130
|
+
})
|
|
131
|
+
}], [{
|
|
132
|
+
displayValue: "004",
|
|
133
|
+
sortValue: "004"
|
|
134
|
+
}, {
|
|
135
|
+
displayValue: "Rick",
|
|
136
|
+
sortValue: "Rick"
|
|
137
|
+
}, {
|
|
138
|
+
displayValue: "Albacete",
|
|
139
|
+
sortValue: "Albacete"
|
|
140
|
+
}, {
|
|
141
|
+
displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
|
|
142
|
+
actions: actions
|
|
143
|
+
})
|
|
144
|
+
}], [{
|
|
145
|
+
displayValue: "005",
|
|
146
|
+
sortValue: "005"
|
|
147
|
+
}, {
|
|
148
|
+
displayValue: "Mark",
|
|
149
|
+
sortValue: "Mark"
|
|
150
|
+
}, {
|
|
151
|
+
displayValue: "Madrid",
|
|
152
|
+
sortValue: "Madrid"
|
|
153
|
+
}, {
|
|
154
|
+
displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
|
|
155
|
+
actions: actions
|
|
156
|
+
})
|
|
157
|
+
}], [{
|
|
158
|
+
displayValue: "006",
|
|
159
|
+
sortValue: "006"
|
|
160
|
+
}, {
|
|
161
|
+
displayValue: "Cris",
|
|
162
|
+
sortValue: "Cris"
|
|
163
|
+
}, {
|
|
164
|
+
displayValue: "Barcelona",
|
|
165
|
+
sortValue: "Barcelona"
|
|
166
|
+
}, {
|
|
167
|
+
displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
|
|
168
|
+
actions: actions
|
|
169
|
+
})
|
|
170
|
+
}], [{
|
|
171
|
+
displayValue: "007",
|
|
172
|
+
sortValue: "007"
|
|
173
|
+
}, {
|
|
174
|
+
displayValue: "Susan",
|
|
175
|
+
sortValue: "Susan"
|
|
176
|
+
}, {
|
|
177
|
+
displayValue: "Madrid",
|
|
178
|
+
sortValue: "Madrid"
|
|
179
|
+
}, {
|
|
180
|
+
displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
|
|
181
|
+
actions: actions
|
|
182
|
+
})
|
|
183
|
+
}], [{
|
|
184
|
+
displayValue: "008",
|
|
185
|
+
sortValue: "008"
|
|
186
|
+
}, {
|
|
187
|
+
displayValue: "Tina",
|
|
188
|
+
sortValue: "Tina"
|
|
189
|
+
}, {
|
|
190
|
+
displayValue: "Barcelona",
|
|
191
|
+
sortValue: "Barcelona"
|
|
192
|
+
}, {
|
|
193
|
+
displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
|
|
194
|
+
actions: actions
|
|
195
|
+
})
|
|
196
|
+
}], [{
|
|
197
|
+
displayValue: "009",
|
|
198
|
+
sortValue: "009"
|
|
199
|
+
}, {
|
|
200
|
+
displayValue: "Kevin",
|
|
201
|
+
sortValue: "Kevin"
|
|
202
|
+
}, {
|
|
203
|
+
displayValue: "Oviedo",
|
|
204
|
+
sortValue: "Oviedo"
|
|
205
|
+
}, {
|
|
206
|
+
displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
|
|
207
|
+
actions: actions
|
|
208
|
+
})
|
|
209
|
+
}], [{
|
|
210
|
+
displayValue: "010",
|
|
211
|
+
sortValue: "010"
|
|
212
|
+
}, {
|
|
213
|
+
displayValue: "Cosmin",
|
|
214
|
+
sortValue: "Cosmin"
|
|
215
|
+
}, {
|
|
216
|
+
displayValue: "Barcelona",
|
|
217
|
+
sortValue: "Barcelona"
|
|
218
|
+
}, {
|
|
219
|
+
displayValue: /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"].ActionsCell, {
|
|
220
|
+
actions: actions
|
|
221
|
+
})
|
|
222
|
+
}]];
|
|
223
|
+
describe("Resultset Table input component accessibility tests", function () {
|
|
224
|
+
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
225
|
+
var _render, container, results;
|
|
226
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
227
|
+
while (1) switch (_context.prev = _context.next) {
|
|
228
|
+
case 0:
|
|
229
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
|
|
230
|
+
columns: columns,
|
|
231
|
+
rows: rows,
|
|
232
|
+
itemsPerPage: 2,
|
|
233
|
+
margin: "medium",
|
|
234
|
+
mode: "default",
|
|
235
|
+
itemsPerPageOptions: [2, 3],
|
|
236
|
+
showGoToPage: true
|
|
237
|
+
})), container = _render.container;
|
|
238
|
+
_context.next = 3;
|
|
239
|
+
return (0, _jestAxe.axe)(container);
|
|
240
|
+
case 3:
|
|
241
|
+
results = _context.sent;
|
|
242
|
+
expect(results).toHaveNoViolations();
|
|
243
|
+
case 5:
|
|
244
|
+
case "end":
|
|
245
|
+
return _context.stop();
|
|
246
|
+
}
|
|
247
|
+
}, _callee);
|
|
248
|
+
})));
|
|
249
|
+
it("Should not have basic accessibility issues for reduced mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
250
|
+
var _render2, container, results;
|
|
251
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
252
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
253
|
+
case 0:
|
|
254
|
+
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
|
|
255
|
+
columns: columns,
|
|
256
|
+
rows: rows,
|
|
257
|
+
itemsPerPage: 2,
|
|
258
|
+
margin: "medium",
|
|
259
|
+
mode: "reduced",
|
|
260
|
+
itemsPerPageOptions: [2, 3],
|
|
261
|
+
showGoToPage: true
|
|
262
|
+
})), container = _render2.container;
|
|
263
|
+
_context2.next = 3;
|
|
264
|
+
return (0, _jestAxe.axe)(container);
|
|
265
|
+
case 3:
|
|
266
|
+
results = _context2.sent;
|
|
267
|
+
expect(results).toHaveNoViolations();
|
|
268
|
+
case 5:
|
|
269
|
+
case "end":
|
|
270
|
+
return _context2.stop();
|
|
271
|
+
}
|
|
272
|
+
}, _callee2);
|
|
273
|
+
})));
|
|
274
|
+
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import ResultsetTablePropsType from "./types";
|
|
3
3
|
declare const DxcResultsetTable: {
|
|
4
|
-
({ columns, rows, showGoToPage, itemsPerPage, itemsPerPageOptions, itemsPerPageFunction, margin, tabIndex, mode, }: ResultsetTablePropsType): JSX.Element;
|
|
4
|
+
({ columns, rows, hidePaginator, showGoToPage, itemsPerPage, itemsPerPageOptions, itemsPerPageFunction, margin, tabIndex, mode, }: ResultsetTablePropsType): JSX.Element;
|
|
5
5
|
ActionsCell: ({ actions }: import("../table/types").ActionCellsPropsType) => JSX.Element;
|
|
6
6
|
};
|
|
7
7
|
export default DxcResultsetTable;
|
|
@@ -50,6 +50,8 @@ var getMaxItemsPerPageIndex = function getMaxItemsPerPageIndex(minItemsPerPageIn
|
|
|
50
50
|
var DxcResultsetTable = function DxcResultsetTable(_ref) {
|
|
51
51
|
var columns = _ref.columns,
|
|
52
52
|
rows = _ref.rows,
|
|
53
|
+
_ref$hidePaginator = _ref.hidePaginator,
|
|
54
|
+
hidePaginator = _ref$hidePaginator === void 0 ? false : _ref$hidePaginator,
|
|
53
55
|
_ref$showGoToPage = _ref.showGoToPage,
|
|
54
56
|
showGoToPage = _ref$showGoToPage === void 0 ? true : _ref$showGoToPage,
|
|
55
57
|
_ref$itemsPerPage = _ref.itemsPerPage,
|
|
@@ -95,7 +97,9 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
|
|
|
95
97
|
changeSortOrder(sortColumnIndex === -1 || sortColumnIndex !== columnIndex ? "ascending" : sortOrder === "ascending" ? "descending" : "ascending");
|
|
96
98
|
};
|
|
97
99
|
(0, _react.useEffect)(function () {
|
|
98
|
-
|
|
100
|
+
if (!hidePaginator) {
|
|
101
|
+
rows.length > 0 ? changePage(1) : changePage(0);
|
|
102
|
+
}
|
|
99
103
|
}, [rows]);
|
|
100
104
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
101
105
|
theme: colorsTheme.table
|
|
@@ -117,15 +121,15 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
|
|
|
117
121
|
isSortable: column.isSortable,
|
|
118
122
|
mode: mode
|
|
119
123
|
}, /*#__PURE__*/_react["default"].createElement("span", null, column.displayValue), column.isSortable && /*#__PURE__*/_react["default"].createElement(SortIcon, null, sortColumnIndex === index ? sortOrder === "ascending" ? _Icons["default"].arrowUp : _Icons["default"].arrowDown : _Icons["default"].bothArrows)));
|
|
120
|
-
}))), /*#__PURE__*/_react["default"].createElement("tbody", null, filteredResultset.map(function (cells,
|
|
124
|
+
}))), /*#__PURE__*/_react["default"].createElement("tbody", null, filteredResultset.map(function (cells, rowIndex) {
|
|
121
125
|
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
122
|
-
key: "resultSetTableCell_".concat(page, "_").concat(
|
|
123
|
-
}, cells.map(function (cellContent,
|
|
126
|
+
key: "resultSetTableCell_".concat(page, "_").concat(rowIndex)
|
|
127
|
+
}, cells.map(function (cellContent, cellIndex) {
|
|
124
128
|
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
125
|
-
key: "resultSetTableCellContent_".concat(
|
|
129
|
+
key: "resultSetTableCellContent_".concat(cellIndex)
|
|
126
130
|
}, cellContent.displayValue);
|
|
127
131
|
}));
|
|
128
|
-
}))), /*#__PURE__*/_react["default"].createElement(_Paginator["default"], {
|
|
132
|
+
}))), !hidePaginator && /*#__PURE__*/_react["default"].createElement(_Paginator["default"], {
|
|
129
133
|
totalItems: rows.length,
|
|
130
134
|
itemsPerPage: itemsPerPage,
|
|
131
135
|
itemsPerPageOptions: itemsPerPageOptions,
|
|
@@ -62,7 +62,7 @@ const actions = [
|
|
|
62
62
|
],
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
icon: "
|
|
65
|
+
icon: "filled_edit",
|
|
66
66
|
title: "icon",
|
|
67
67
|
onClick: () => {},
|
|
68
68
|
},
|
|
@@ -260,6 +260,10 @@ export const Chromatic = () => (
|
|
|
260
260
|
<Title title="Scroll resultset table" theme="light" level={4} />
|
|
261
261
|
<DxcResultsetTable columns={longColumns} rows={longRows} />
|
|
262
262
|
</ExampleContainer>
|
|
263
|
+
<ExampleContainer>
|
|
264
|
+
<Title title="Without paginator" theme="light" level={4} />
|
|
265
|
+
<DxcResultsetTable columns={columns} rows={rows} hidePaginator />
|
|
266
|
+
</ExampleContainer>
|
|
263
267
|
<ExampleContainer>
|
|
264
268
|
<SmallContainer>
|
|
265
269
|
<Title title="Small container and text overflow" theme="light" level={4} />
|
|
@@ -314,6 +314,16 @@ describe("Resultset table component tests", function () {
|
|
|
314
314
|
_react2.fireEvent.click(lastButton);
|
|
315
315
|
expect(getAllByRole("row").length - 1).toEqual(1);
|
|
316
316
|
});
|
|
317
|
+
test("Resultset table may not use the paginator", function () {
|
|
318
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
|
|
319
|
+
columns: columns,
|
|
320
|
+
rows: rows,
|
|
321
|
+
hidePaginator: true
|
|
322
|
+
})),
|
|
323
|
+
getAllByRole = _render8.getAllByRole;
|
|
324
|
+
var nextButton = getAllByRole("button")[3];
|
|
325
|
+
expect(nextButton).not.toBeTruthy();
|
|
326
|
+
});
|
|
317
327
|
test("Resultset table with ActionsCell", function () {
|
|
318
328
|
var onSelectOption = jest.fn();
|
|
319
329
|
var onClick = jest.fn();
|
|
@@ -348,14 +358,14 @@ describe("Resultset table component tests", function () {
|
|
|
348
358
|
}),
|
|
349
359
|
sortValue: "Actions"
|
|
350
360
|
}]];
|
|
351
|
-
var
|
|
361
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
|
|
352
362
|
columns: columns,
|
|
353
363
|
rows: actionRows,
|
|
354
364
|
itemsPerPage: 3
|
|
355
365
|
})),
|
|
356
|
-
getAllByRole =
|
|
357
|
-
getByRole =
|
|
358
|
-
getByText =
|
|
366
|
+
getAllByRole = _render9.getAllByRole,
|
|
367
|
+
getByRole = _render9.getByRole,
|
|
368
|
+
getByText = _render9.getByText;
|
|
359
369
|
var dropdown = getAllByRole("button")[2];
|
|
360
370
|
(0, _react2.act)(function () {
|
|
361
371
|
_userEvent["default"].click(dropdown);
|
|
@@ -16,7 +16,7 @@ export type Column = {
|
|
|
16
16
|
*/
|
|
17
17
|
isSortable?: boolean;
|
|
18
18
|
};
|
|
19
|
-
type Row = {
|
|
19
|
+
export type Row = {
|
|
20
20
|
/**
|
|
21
21
|
* Value to be displayed in the cell.
|
|
22
22
|
*/
|
|
@@ -27,7 +27,7 @@ type Row = {
|
|
|
27
27
|
*/
|
|
28
28
|
sortValue?: string;
|
|
29
29
|
};
|
|
30
|
-
type
|
|
30
|
+
type CommonProps = {
|
|
31
31
|
/**
|
|
32
32
|
* An array of objects representing the columns of the table.
|
|
33
33
|
*/
|
|
@@ -37,6 +37,24 @@ type Props = {
|
|
|
37
37
|
* as many objects as columns in the table.
|
|
38
38
|
*/
|
|
39
39
|
rows: Row[][];
|
|
40
|
+
/**
|
|
41
|
+
* Size of the margin to be applied to the component. You can pass an object with 'top',
|
|
42
|
+
* 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
|
|
43
|
+
*/
|
|
44
|
+
margin?: Space | Margin;
|
|
45
|
+
/**
|
|
46
|
+
* Value of the tabindex attribute applied to the sortable icon.
|
|
47
|
+
*/
|
|
48
|
+
tabIndex?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Determines the visual style and layout
|
|
51
|
+
* - "default": The default mode with big spacing
|
|
52
|
+
* - "reduced": A reduced mode with minimal spacing for dense tables
|
|
53
|
+
*/
|
|
54
|
+
mode?: "default" | "reduced";
|
|
55
|
+
};
|
|
56
|
+
type PaginatedProps = CommonProps & {
|
|
57
|
+
hidePaginator?: false;
|
|
40
58
|
/**
|
|
41
59
|
* If true, a select component for navigation between pages will be displayed.
|
|
42
60
|
*/
|
|
@@ -54,20 +72,29 @@ type Props = {
|
|
|
54
72
|
* option. The value selected will be passed as a parameter.
|
|
55
73
|
*/
|
|
56
74
|
itemsPerPageFunction?: (value: number) => void;
|
|
75
|
+
};
|
|
76
|
+
type NonPaginatedProps = CommonProps & {
|
|
57
77
|
/**
|
|
58
|
-
*
|
|
59
|
-
* 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
|
|
78
|
+
* If true, paginator will not be displayed.
|
|
60
79
|
*/
|
|
61
|
-
|
|
80
|
+
hidePaginator: true;
|
|
62
81
|
/**
|
|
63
|
-
*
|
|
82
|
+
* If true, a select component for navigation between pages will be displayed.
|
|
64
83
|
*/
|
|
65
|
-
|
|
84
|
+
showGoToPage?: never;
|
|
66
85
|
/**
|
|
67
|
-
*
|
|
68
|
-
* - "default": The default mode with big spacing
|
|
69
|
-
* - "reduced": A reduced mode with minimal spacing for dense tables
|
|
86
|
+
* Number of items per page.
|
|
70
87
|
*/
|
|
71
|
-
|
|
88
|
+
itemsPerPage?: never;
|
|
89
|
+
/**
|
|
90
|
+
* An array of numbers representing the items per page options.
|
|
91
|
+
*/
|
|
92
|
+
itemsPerPageOptions?: never;
|
|
93
|
+
/**
|
|
94
|
+
* This function will be called when the user selects an item per page
|
|
95
|
+
* option. The value selected will be passed as a parameter.
|
|
96
|
+
*/
|
|
97
|
+
itemsPerPageFunction?: never;
|
|
72
98
|
};
|
|
99
|
+
type Props = PaginatedProps | NonPaginatedProps;
|
|
73
100
|
export default Props;
|