@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.
Files changed (136) hide show
  1. package/accordion/Accordion.accessibility.test.js +71 -0
  2. package/accordion/Accordion.js +8 -21
  3. package/accordion/Accordion.stories.tsx +4 -36
  4. package/accordion/types.d.ts +1 -1
  5. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  6. package/accordion-group/AccordionGroup.d.ts +2 -3
  7. package/accordion-group/AccordionGroup.js +3 -3
  8. package/accordion-group/AccordionGroupAccordion.js +2 -2
  9. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  10. package/accordion-group/AccordionGroupContext.js +8 -0
  11. package/accordion-group/types.d.ts +1 -1
  12. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  13. package/action-icon/ActionIcon.js +4 -3
  14. package/action-icon/ActionIcon.stories.tsx +3 -3
  15. package/action-icon/types.d.ts +1 -1
  16. package/alert/Alert.accessibility.test.js +95 -0
  17. package/alert/Alert.js +15 -69
  18. package/badge/Badge.accessibility.test.js +129 -0
  19. package/badge/Badge.js +6 -4
  20. package/badge/Badge.stories.tsx +11 -11
  21. package/badge/types.d.ts +1 -1
  22. package/box/Box.accessibility.test.js +33 -0
  23. package/bulleted-list/BulletedList.accessibility.test.js +107 -0
  24. package/bulleted-list/BulletedList.js +6 -3
  25. package/bulleted-list/BulletedList.stories.tsx +1 -1
  26. package/button/Button.accessibility.test.js +127 -0
  27. package/button/Button.js +4 -3
  28. package/button/Button.stories.tsx +32 -51
  29. package/button/types.d.ts +1 -1
  30. package/card/Card.accessibility.test.js +36 -0
  31. package/checkbox/Checkbox.accessibility.test.js +87 -0
  32. package/chip/Chip.accessibility.test.js +67 -0
  33. package/chip/Chip.js +8 -5
  34. package/chip/Chip.stories.tsx +5 -24
  35. package/chip/Chip.test.js +4 -4
  36. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  37. package/date-input/DateInput.accessibility.test.js +216 -0
  38. package/date-input/DateInput.js +1 -2
  39. package/date-input/DatePicker.js +12 -6
  40. package/dialog/Dialog.accessibility.test.js +69 -0
  41. package/dialog/Dialog.test.js +1 -1
  42. package/divider/Divider.accessibility.test.js +33 -0
  43. package/divider/types.d.ts +3 -1
  44. package/dropdown/Dropdown.accessibility.test.js +180 -0
  45. package/dropdown/Dropdown.js +12 -29
  46. package/dropdown/Dropdown.stories.tsx +5 -16
  47. package/dropdown/DropdownMenuItem.js +6 -3
  48. package/dropdown/types.d.ts +2 -4
  49. package/file-input/FileInput.accessibility.test.js +160 -0
  50. package/file-input/FileInput.js +3 -39
  51. package/file-input/FileInput.test.js +7 -84
  52. package/file-input/FileItem.js +13 -27
  53. package/footer/Footer.accessibility.test.js +117 -0
  54. package/footer/Footer.js +7 -5
  55. package/footer/Footer.stories.tsx +28 -3
  56. package/footer/types.d.ts +1 -1
  57. package/header/Header.accessibility.test.js +84 -0
  58. package/header/Header.js +9 -20
  59. package/heading/Heading.accessibility.test.js +33 -0
  60. package/icon/Icon.accessibility.test.js +30 -0
  61. package/icon/Icon.js +1 -1
  62. package/icon/Icon.stories.tsx +5 -3
  63. package/image/Image.accessibility.test.js +56 -0
  64. package/layout/ApplicationLayout.js +1 -1
  65. package/layout/Icons.js +0 -2
  66. package/link/Link.accessibility.test.js +112 -0
  67. package/link/Link.js +7 -5
  68. package/link/Link.stories.tsx +2 -2
  69. package/link/types.d.ts +1 -1
  70. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  71. package/nav-tabs/NavTabs.d.ts +1 -2
  72. package/nav-tabs/NavTabs.js +3 -3
  73. package/nav-tabs/NavTabs.stories.tsx +26 -23
  74. package/nav-tabs/NavTabs.test.js +1 -2
  75. package/nav-tabs/NavTabsContext.d.ts +3 -0
  76. package/nav-tabs/NavTabsContext.js +8 -0
  77. package/nav-tabs/Tab.js +13 -14
  78. package/nav-tabs/types.d.ts +1 -1
  79. package/number-input/NumberInput.accessibility.test.js +228 -0
  80. package/number-input/NumberInput.d.ts +0 -7
  81. package/number-input/NumberInput.js +3 -3
  82. package/number-input/NumberInputContext.d.ts +3 -0
  83. package/number-input/NumberInputContext.js +8 -0
  84. package/number-input/types.d.ts +6 -0
  85. package/package.json +11 -11
  86. package/paginator/Paginator.accessibility.test.js +79 -0
  87. package/paragraph/Paragraph.accessibility.test.js +28 -0
  88. package/password-input/PasswordInput.accessibility.test.js +153 -0
  89. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  90. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  91. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  92. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  93. package/resultset-table/ResultsetTable.d.ts +1 -1
  94. package/resultset-table/ResultsetTable.js +10 -6
  95. package/resultset-table/ResultsetTable.stories.tsx +5 -1
  96. package/resultset-table/ResultsetTable.test.js +14 -4
  97. package/resultset-table/types.d.ts +38 -11
  98. package/select/Select.accessibility.test.js +217 -0
  99. package/select/Select.stories.tsx +0 -1
  100. package/sidenav/Sidenav.accessibility.test.js +59 -0
  101. package/sidenav/Sidenav.js +16 -12
  102. package/sidenav/Sidenav.stories.tsx +4 -9
  103. package/sidenav/types.d.ts +2 -2
  104. package/slider/Slider.accessibility.test.js +104 -0
  105. package/spinner/Spinner.accessibility.test.js +96 -0
  106. package/status-light/StatusLight.accessibility.test.js +157 -0
  107. package/switch/Switch.accessibility.test.js +89 -0
  108. package/table/Table.accessibility.test.js +82 -0
  109. package/table/Table.js +1 -10
  110. package/table/Table.stories.tsx +2 -9
  111. package/table/types.d.ts +1 -15
  112. package/tabs/Tabs.accessibility.test.js +56 -0
  113. package/tag/Tag.accessibility.test.js +69 -0
  114. package/tag/Tag.js +6 -6
  115. package/tag/Tag.stories.tsx +4 -7
  116. package/tag/Tag.test.js +4 -12
  117. package/tag/types.d.ts +2 -2
  118. package/text-input/Suggestions.js +5 -3
  119. package/text-input/TextInput.accessibility.test.js +321 -0
  120. package/text-input/TextInput.js +10 -8
  121. package/text-input/TextInput.stories.tsx +1 -1
  122. package/textarea/Textarea.accessibility.test.js +155 -0
  123. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  124. package/toggle-group/ToggleGroup.js +4 -3
  125. package/toggle-group/ToggleGroup.stories.tsx +3 -3
  126. package/toggle-group/types.d.ts +2 -2
  127. package/typography/Typography.accessibility.test.js +339 -0
  128. package/wizard/Wizard.accessibility.test.js +55 -0
  129. package/date-input/Icons.d.ts +0 -6
  130. package/date-input/Icons.js +0 -58
  131. package/sidenav/Icons.d.ts +0 -7
  132. package/sidenav/Icons.js +0 -47
  133. package/text-input/Icons.d.ts +0 -8
  134. package/text-input/Icons.js +0 -56
  135. /package/{layout → sidenav}/SidenavContext.d.ts +0 -0
  136. /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
- rows.length > 0 ? changePage(1) : changePage(0);
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, index) {
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(index)
123
- }, cells.map(function (cellContent, index) {
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(index)
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: "https://www.freepnglogos.com/uploads/facebook-logo-design-1.png",
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 _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
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 = _render8.getAllByRole,
357
- getByRole = _render8.getByRole,
358
- getByText = _render8.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 Props = {
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
- * Size of the margin to be applied to the component. You can pass an object with 'top',
59
- * 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
78
+ * If true, paginator will not be displayed.
60
79
  */
61
- margin?: Space | Margin;
80
+ hidePaginator: true;
62
81
  /**
63
- * Value of the tabindex attribute applied to the sortable icon.
82
+ * If true, a select component for navigation between pages will be displayed.
64
83
  */
65
- tabIndex?: number;
84
+ showGoToPage?: never;
66
85
  /**
67
- * Determines the visual style and layout
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
- mode?: "default" | "reduced";
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;