@dxc-technology/halstack-react 0.0.0-9bd9511 → 0.0.0-9c20370
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/BackgroundColorContext.d.ts +3 -3
- package/BackgroundColorContext.js +12 -2
- package/HalstackContext.d.ts +1330 -7
- package/HalstackContext.js +84 -67
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +74 -55
- package/accordion/Accordion.stories.tsx +3 -101
- package/accordion/Accordion.test.js +34 -19
- package/accordion/types.d.ts +4 -16
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +49 -42
- package/accordion-group/AccordionGroup.stories.tsx +77 -76
- package/accordion-group/AccordionGroup.test.js +62 -54
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +6 -18
- package/alert/Alert.js +47 -20
- package/alert/Alert.test.js +46 -29
- package/alert/types.d.ts +3 -3
- package/badge/Badge.js +14 -2
- package/badge/types.d.ts +1 -1
- package/bleed/Bleed.js +21 -13
- package/bleed/Bleed.stories.tsx +1 -0
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +33 -33
- package/box/Box.stories.tsx +25 -53
- package/box/Box.test.js +7 -2
- package/box/types.d.ts +3 -15
- package/bulleted-list/BulletedList.js +36 -9
- package/bulleted-list/BulletedList.stories.tsx +7 -1
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.d.ts +1 -1
- package/button/Button.js +83 -71
- package/button/Button.stories.tsx +4 -4
- package/button/Button.test.js +28 -8
- package/button/types.d.ts +8 -4
- package/card/Card.d.ts +1 -1
- package/card/Card.js +67 -62
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +22 -11
- package/card/types.d.ts +4 -10
- package/checkbox/Checkbox.js +71 -27
- package/checkbox/Checkbox.test.js +60 -33
- package/checkbox/types.d.ts +4 -4
- package/chip/Chip.js +51 -48
- package/chip/Chip.stories.tsx +25 -17
- package/chip/Chip.test.js +29 -17
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +146 -0
- package/common/coreTokens.js +167 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +8 -3
- package/common/variables.d.ts +226 -175
- package/common/variables.js +956 -1133
- package/date-input/Calendar.js +55 -12
- package/date-input/DateInput.js +82 -35
- package/date-input/DateInput.test.js +351 -164
- package/date-input/DatePicker.js +38 -8
- package/date-input/Icons.js +12 -0
- package/date-input/YearPicker.js +30 -5
- package/date-input/types.d.ts +7 -7
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +83 -86
- package/dialog/Dialog.stories.tsx +127 -221
- package/dialog/Dialog.test.js +331 -18
- package/dialog/types.d.ts +1 -14
- package/dropdown/Dropdown.js +86 -32
- package/dropdown/Dropdown.test.js +211 -104
- package/dropdown/DropdownMenu.js +22 -8
- package/dropdown/DropdownMenuItem.js +15 -6
- package/dropdown/types.d.ts +8 -8
- package/file-input/FileInput.js +218 -134
- package/file-input/FileInput.test.js +343 -331
- package/file-input/FileItem.js +39 -12
- package/file-input/types.d.ts +10 -10
- package/flex/Flex.js +39 -25
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +74 -9
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +80 -68
- package/footer/Footer.stories.tsx +12 -89
- package/footer/Footer.test.js +47 -40
- package/footer/Icons.js +4 -0
- package/footer/types.d.ts +15 -17
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +91 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +72 -55
- package/header/Header.stories.tsx +7 -71
- package/header/Header.test.js +26 -13
- package/header/Icons.js +4 -0
- package/header/types.d.ts +2 -16
- package/heading/Heading.js +28 -7
- package/heading/Heading.test.js +88 -71
- package/heading/types.d.ts +3 -3
- package/inset/Inset.js +21 -13
- package/inset/Inset.stories.tsx +2 -1
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +5 -5
- package/layout/ApplicationLayout.js +57 -15
- package/layout/Icons.js +10 -0
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +4 -0
- package/layout/types.d.ts +5 -6
- package/link/Link.js +41 -21
- package/link/Link.test.js +42 -26
- package/link/types.d.ts +4 -4
- package/main.d.ts +2 -1
- package/main.js +55 -0
- package/nav-tabs/NavTabs.d.ts +2 -2
- package/nav-tabs/NavTabs.js +43 -16
- package/nav-tabs/NavTabs.stories.tsx +14 -0
- package/nav-tabs/NavTabs.test.js +44 -37
- package/nav-tabs/Tab.js +71 -45
- package/nav-tabs/types.d.ts +10 -11
- package/number-input/NumberInput.js +30 -20
- package/number-input/NumberInput.test.js +249 -113
- package/number-input/NumberInputContext.js +5 -0
- package/number-input/numberInputContextTypes.d.ts +1 -1
- package/number-input/types.d.ts +4 -4
- package/package.json +7 -7
- package/paginator/Icons.js +10 -0
- package/paginator/Paginator.js +39 -17
- package/paginator/Paginator.test.js +156 -104
- package/paginator/types.d.ts +1 -1
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +18 -8
- package/password-input/PasswordInput.js +51 -22
- package/password-input/PasswordInput.test.js +94 -51
- package/password-input/types.d.ts +4 -4
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +39 -14
- package/progress-bar/ProgressBar.test.js +53 -36
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.js +24 -2
- package/quick-nav/types.d.ts +2 -2
- package/radio-group/Radio.js +53 -22
- package/radio-group/RadioGroup.js +84 -41
- package/radio-group/RadioGroup.test.js +288 -186
- package/radio-group/types.d.ts +4 -4
- package/resultsetTable/Icons.js +3 -0
- package/resultsetTable/ResultsetTable.js +56 -21
- package/resultsetTable/ResultsetTable.test.js +75 -42
- package/resultsetTable/types.d.ts +5 -5
- package/select/Icons.js +3 -0
- package/select/Listbox.js +35 -10
- package/select/Option.js +24 -8
- package/select/Select.js +143 -56
- package/select/Select.test.js +839 -456
- package/select/types.d.ts +12 -12
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +51 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +116 -104
- package/sidenav/Sidenav.stories.tsx +60 -60
- package/sidenav/Sidenav.test.js +10 -3
- package/sidenav/types.d.ts +26 -23
- package/slider/Slider.js +84 -38
- package/slider/Slider.test.js +104 -76
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.js +51 -28
- package/spinner/Spinner.stories.jsx +28 -28
- package/spinner/Spinner.test.js +35 -26
- package/spinner/types.d.ts +3 -3
- package/switch/Switch.js +66 -24
- package/switch/Switch.test.js +97 -52
- package/switch/types.d.ts +4 -4
- package/table/Table.js +22 -4
- package/table/Table.test.js +7 -2
- package/table/types.d.ts +3 -3
- package/tabs/Tab.js +39 -22
- package/tabs/Tabs.js +131 -62
- package/tabs/Tabs.test.js +122 -67
- package/tabs/types.d.ts +8 -8
- package/tag/Tag.js +54 -27
- package/tag/Tag.test.js +31 -20
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.js +3 -0
- package/text-input/Suggestion.js +24 -8
- package/text-input/Suggestions.js +36 -11
- package/text-input/TextInput.js +144 -59
- package/text-input/TextInput.stories.tsx +1 -1
- package/text-input/TextInput.test.js +858 -539
- package/text-input/types.d.ts +9 -9
- package/textarea/Textarea.js +73 -38
- package/textarea/Textarea.test.js +173 -98
- package/textarea/types.d.ts +4 -4
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +59 -21
- package/toggle-group/ToggleGroup.test.js +72 -40
- package/toggle-group/types.d.ts +11 -11
- package/typography/Typography.d.ts +2 -2
- package/typography/Typography.js +23 -110
- package/typography/Typography.stories.tsx +1 -1
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +1234 -1
- package/useTheme.js +6 -0
- package/useTranslatedLabels.d.ts +84 -2
- package/useTranslatedLabels.js +5 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +108 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +138 -0
- package/wizard/Wizard.js +47 -13
- package/wizard/Wizard.test.js +81 -54
- package/wizard/types.d.ts +7 -8
- package/card/ice-cream.jpg +0 -0
- package/translatedLabelsType.d.ts +0 -82
- /package/{translatedLabelsType.js → grid/types.js} +0 -0
|
@@ -1,78 +1,96 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
5
7
|
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
6
9
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
7
|
-
|
|
10
|
+
|
|
11
|
+
var _NumberInput = _interopRequireDefault(require("./NumberInput.tsx"));
|
|
12
|
+
|
|
8
13
|
describe("Number input component tests", function () {
|
|
9
14
|
test("Number input renders with label", function () {
|
|
10
15
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
label: "Number input label"
|
|
17
|
+
})),
|
|
18
|
+
getByText = _render.getByText;
|
|
19
|
+
|
|
14
20
|
expect(getByText("Number input label")).toBeTruthy();
|
|
15
21
|
});
|
|
16
22
|
test("Number input renders with helper text", function () {
|
|
17
23
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
helperText: "Helper text"
|
|
25
|
+
})),
|
|
26
|
+
getByText = _render2.getByText;
|
|
27
|
+
|
|
21
28
|
expect(getByText("Helper text")).toBeTruthy();
|
|
22
29
|
});
|
|
23
30
|
test("Number input renders with placeholder", function () {
|
|
24
31
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
label: "Number label",
|
|
33
|
+
placeholder: "Placeholder"
|
|
34
|
+
})),
|
|
35
|
+
getByLabelText = _render3.getByLabelText;
|
|
36
|
+
|
|
29
37
|
var number = getByLabelText("Number label");
|
|
30
38
|
expect(number.getAttribute("placeholder")).toBe("Placeholder");
|
|
31
39
|
});
|
|
32
40
|
test("Number input renders increment and decrement buttons", function () {
|
|
33
41
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
42
|
+
label: "Number label"
|
|
43
|
+
})),
|
|
44
|
+
queryAllByRole = _render4.queryAllByRole;
|
|
45
|
+
|
|
37
46
|
expect(queryAllByRole("button").length).toBe(2);
|
|
38
47
|
});
|
|
39
48
|
test("Number input buttons' tooltip is correct", function () {
|
|
40
49
|
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
50
|
+
label: "Number label"
|
|
51
|
+
})),
|
|
52
|
+
getByTitle = _render5.getByTitle;
|
|
53
|
+
|
|
44
54
|
expect(getByTitle("Decrement value")).toBeTruthy();
|
|
45
55
|
expect(getByTitle("Increment value")).toBeTruthy();
|
|
46
56
|
});
|
|
47
57
|
test("Number input is disabled", function () {
|
|
48
58
|
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
59
|
+
label: "Number label",
|
|
60
|
+
disabled: true
|
|
61
|
+
})),
|
|
62
|
+
getByLabelText = _render6.getByLabelText;
|
|
63
|
+
|
|
53
64
|
var number = getByLabelText("Number label");
|
|
54
65
|
expect(number.disabled).toBeTruthy();
|
|
55
66
|
});
|
|
56
67
|
test("Number input is optional", function () {
|
|
57
68
|
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
69
|
+
label: "Number label",
|
|
70
|
+
optional: true
|
|
71
|
+
})),
|
|
72
|
+
getByText = _render7.getByText;
|
|
73
|
+
|
|
62
74
|
expect(getByText("(Optional)")).toBeTruthy();
|
|
63
75
|
});
|
|
64
76
|
test("Number input is not optional: required field, displays error if not filled in", function () {
|
|
65
77
|
var onBlur = jest.fn();
|
|
66
78
|
var onChange = jest.fn();
|
|
79
|
+
|
|
67
80
|
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
81
|
+
onBlur: onBlur,
|
|
82
|
+
onChange: onChange
|
|
83
|
+
})),
|
|
84
|
+
getByRole = _render8.getByRole;
|
|
85
|
+
|
|
72
86
|
var input = getByRole("spinbutton");
|
|
87
|
+
|
|
73
88
|
_userEvent["default"].type(input, "1");
|
|
89
|
+
|
|
74
90
|
_userEvent["default"].clear(input);
|
|
91
|
+
|
|
75
92
|
_react2.fireEvent.blur(input);
|
|
93
|
+
|
|
76
94
|
expect(onBlur).toHaveBeenCalled();
|
|
77
95
|
expect(onBlur).toHaveBeenCalledWith({
|
|
78
96
|
value: "",
|
|
@@ -86,35 +104,43 @@ describe("Number input component tests", function () {
|
|
|
86
104
|
});
|
|
87
105
|
test("Suffix and prefix must be shown)", function () {
|
|
88
106
|
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
107
|
+
label: "Number input label",
|
|
108
|
+
prefix: "+34",
|
|
109
|
+
suffix: "USD"
|
|
110
|
+
})),
|
|
111
|
+
getByText = _render9.getByText;
|
|
112
|
+
|
|
94
113
|
expect(getByText("+34")).toBeTruthy();
|
|
95
114
|
expect(getByText("USD")).toBeTruthy();
|
|
96
115
|
});
|
|
97
116
|
test("Invalid number input renders error", function () {
|
|
98
117
|
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
118
|
+
error: "Error message."
|
|
119
|
+
})),
|
|
120
|
+
getByText = _render10.getByText;
|
|
121
|
+
|
|
102
122
|
expect(getByText("Error message.")).toBeTruthy();
|
|
103
123
|
});
|
|
104
124
|
test("onChange function is called correctly", function () {
|
|
105
125
|
var onChange = jest.fn();
|
|
126
|
+
|
|
106
127
|
var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
128
|
+
label: "Number input label",
|
|
129
|
+
onChange: onChange
|
|
130
|
+
})),
|
|
131
|
+
getByLabelText = _render11.getByLabelText;
|
|
132
|
+
|
|
111
133
|
var number = getByLabelText("Number input label");
|
|
134
|
+
|
|
112
135
|
_userEvent["default"].type(number, "t");
|
|
136
|
+
|
|
113
137
|
expect(onChange).not.toHaveBeenCalledWith({
|
|
114
138
|
value: "t"
|
|
115
139
|
});
|
|
116
140
|
expect(number.value).toBe("");
|
|
141
|
+
|
|
117
142
|
_userEvent["default"].type(number, "1");
|
|
143
|
+
|
|
118
144
|
expect(onChange).toHaveBeenCalledWith({
|
|
119
145
|
value: "1"
|
|
120
146
|
});
|
|
@@ -123,75 +149,97 @@ describe("Number input component tests", function () {
|
|
|
123
149
|
test("Error message is shown if the value is less than the min value", function () {
|
|
124
150
|
var onChange = jest.fn(function (_ref) {
|
|
125
151
|
var value = _ref.value,
|
|
126
|
-
|
|
152
|
+
error = _ref.error;
|
|
127
153
|
expect(value).toBe("1");
|
|
128
154
|
expect(error).toBe("Value must be greater than or equal to 5.");
|
|
129
155
|
});
|
|
130
156
|
var onBlur = jest.fn(function (_ref2) {
|
|
131
157
|
var value = _ref2.value,
|
|
132
|
-
|
|
158
|
+
error = _ref2.error;
|
|
133
159
|
expect(value).toBe("1");
|
|
134
160
|
expect(error).toBe("Value must be greater than or equal to 5.");
|
|
135
161
|
});
|
|
162
|
+
|
|
136
163
|
var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
164
|
+
label: "Number input label",
|
|
165
|
+
min: 5,
|
|
166
|
+
onBlur: onBlur,
|
|
167
|
+
onChange: onChange
|
|
168
|
+
})),
|
|
169
|
+
getByLabelText = _render12.getByLabelText;
|
|
170
|
+
|
|
143
171
|
var number = getByLabelText("Number input label");
|
|
172
|
+
|
|
144
173
|
_userEvent["default"].type(number, "1");
|
|
174
|
+
|
|
145
175
|
_react2.fireEvent.blur(number);
|
|
146
176
|
});
|
|
147
177
|
test("Cannot decrement the value if it is less than the min value", function () {
|
|
148
178
|
var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
179
|
+
label: "Number input label",
|
|
180
|
+
min: 5
|
|
181
|
+
})),
|
|
182
|
+
getByLabelText = _render13.getByLabelText,
|
|
183
|
+
getAllByRole = _render13.getAllByRole;
|
|
184
|
+
|
|
154
185
|
var number = getByLabelText("Number input label");
|
|
186
|
+
|
|
155
187
|
_userEvent["default"].type(number, "1");
|
|
188
|
+
|
|
156
189
|
_react2.fireEvent.blur(number);
|
|
190
|
+
|
|
157
191
|
expect(number.value).toBe("1");
|
|
158
192
|
var decrement = getAllByRole("button")[0];
|
|
193
|
+
|
|
159
194
|
_userEvent["default"].click(decrement);
|
|
195
|
+
|
|
160
196
|
expect(number.value).toBe("1");
|
|
161
197
|
});
|
|
162
198
|
test("Increment the value when it is less than the min value", function () {
|
|
163
199
|
var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
200
|
+
label: "Number input label",
|
|
201
|
+
min: 5
|
|
202
|
+
})),
|
|
203
|
+
getByLabelText = _render14.getByLabelText,
|
|
204
|
+
getAllByRole = _render14.getAllByRole;
|
|
205
|
+
|
|
169
206
|
var number = getByLabelText("Number input label");
|
|
207
|
+
|
|
170
208
|
_userEvent["default"].type(number, "1");
|
|
209
|
+
|
|
171
210
|
_react2.fireEvent.blur(number);
|
|
211
|
+
|
|
172
212
|
expect(number.value).toBe("1");
|
|
173
213
|
var increment = getAllByRole("button")[1];
|
|
214
|
+
|
|
174
215
|
_userEvent["default"].click(increment);
|
|
216
|
+
|
|
175
217
|
expect(number.value).toBe("5");
|
|
176
218
|
});
|
|
177
219
|
test("Error message is shown if the value is greater than the max value", function () {
|
|
178
220
|
var onChange = jest.fn();
|
|
179
221
|
var onBlur = jest.fn();
|
|
222
|
+
|
|
180
223
|
var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
224
|
+
label: "Number input label",
|
|
225
|
+
max: 10,
|
|
226
|
+
onBlur: onBlur,
|
|
227
|
+
onChange: onChange
|
|
228
|
+
})),
|
|
229
|
+
getByLabelText = _render15.getByLabelText;
|
|
230
|
+
|
|
187
231
|
var number = getByLabelText("Number input label");
|
|
232
|
+
|
|
188
233
|
_userEvent["default"].type(number, "12");
|
|
234
|
+
|
|
189
235
|
expect(onChange).toHaveBeenCalledTimes(2);
|
|
190
236
|
expect(onChange).toHaveBeenCalledWith({
|
|
191
237
|
value: "12",
|
|
192
238
|
error: "Value must be less than or equal to 10."
|
|
193
239
|
});
|
|
240
|
+
|
|
194
241
|
_react2.fireEvent.blur(number);
|
|
242
|
+
|
|
195
243
|
expect(onBlur).toHaveBeenCalled();
|
|
196
244
|
expect(onBlur).toHaveBeenCalledWith({
|
|
197
245
|
value: "12",
|
|
@@ -200,171 +248,251 @@ describe("Number input component tests", function () {
|
|
|
200
248
|
});
|
|
201
249
|
test("Cannot increment the value if it is greater than the max value", function () {
|
|
202
250
|
var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
251
|
+
label: "Number input label",
|
|
252
|
+
max: 10
|
|
253
|
+
})),
|
|
254
|
+
getByLabelText = _render16.getByLabelText,
|
|
255
|
+
getAllByRole = _render16.getAllByRole;
|
|
256
|
+
|
|
208
257
|
var number = getByLabelText("Number input label");
|
|
258
|
+
|
|
209
259
|
_userEvent["default"].type(number, "12");
|
|
260
|
+
|
|
210
261
|
_react2.fireEvent.blur(number);
|
|
262
|
+
|
|
211
263
|
expect(number.value).toBe("12");
|
|
212
264
|
var decrement = getAllByRole("button")[1];
|
|
265
|
+
|
|
213
266
|
_userEvent["default"].click(decrement);
|
|
267
|
+
|
|
214
268
|
expect(number.value).toBe("12");
|
|
215
269
|
});
|
|
216
270
|
test("Decrement the value when it is greater than the max value", function () {
|
|
217
271
|
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
272
|
+
label: "Number input label",
|
|
273
|
+
max: 10
|
|
274
|
+
})),
|
|
275
|
+
getByLabelText = _render17.getByLabelText,
|
|
276
|
+
getAllByRole = _render17.getAllByRole;
|
|
277
|
+
|
|
223
278
|
var number = getByLabelText("Number input label");
|
|
279
|
+
|
|
224
280
|
_userEvent["default"].type(number, "12");
|
|
281
|
+
|
|
225
282
|
_react2.fireEvent.blur(number);
|
|
283
|
+
|
|
226
284
|
expect(number.value).toBe("12");
|
|
227
285
|
var decrement = getAllByRole("button")[0];
|
|
286
|
+
|
|
228
287
|
_userEvent["default"].click(decrement);
|
|
288
|
+
|
|
229
289
|
expect(number.value).toBe("10");
|
|
230
290
|
});
|
|
231
291
|
test("Increment and decrement the value with min and max values", function () {
|
|
232
292
|
var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
293
|
+
label: "Number input label",
|
|
294
|
+
min: 5,
|
|
295
|
+
max: 10
|
|
296
|
+
})),
|
|
297
|
+
getByLabelText = _render18.getByLabelText,
|
|
298
|
+
getAllByRole = _render18.getAllByRole;
|
|
299
|
+
|
|
239
300
|
var number = getByLabelText("Number input label");
|
|
301
|
+
|
|
240
302
|
_userEvent["default"].type(number, "1");
|
|
303
|
+
|
|
241
304
|
_react2.fireEvent.blur(number);
|
|
305
|
+
|
|
242
306
|
expect(number.value).toBe("1");
|
|
243
307
|
var decrement = getAllByRole("button")[0];
|
|
308
|
+
|
|
244
309
|
_userEvent["default"].click(decrement);
|
|
310
|
+
|
|
245
311
|
expect(number.value).toBe("1");
|
|
246
312
|
var increment = getAllByRole("button")[1];
|
|
313
|
+
|
|
247
314
|
_userEvent["default"].click(increment);
|
|
315
|
+
|
|
248
316
|
expect(number.value).toBe("5");
|
|
317
|
+
|
|
249
318
|
_userEvent["default"].click(increment);
|
|
319
|
+
|
|
250
320
|
_userEvent["default"].click(increment);
|
|
321
|
+
|
|
251
322
|
_userEvent["default"].click(increment);
|
|
323
|
+
|
|
252
324
|
_userEvent["default"].click(increment);
|
|
325
|
+
|
|
253
326
|
_userEvent["default"].click(increment);
|
|
327
|
+
|
|
254
328
|
expect(number.value).toBe("10");
|
|
329
|
+
|
|
255
330
|
_userEvent["default"].click(increment);
|
|
331
|
+
|
|
256
332
|
expect(number.value).toBe("10");
|
|
257
333
|
});
|
|
258
334
|
test("Increment and decrement the value with step", function () {
|
|
259
335
|
var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
336
|
+
label: "Number input label",
|
|
337
|
+
step: 5
|
|
338
|
+
})),
|
|
339
|
+
getByLabelText = _render19.getByLabelText,
|
|
340
|
+
getAllByRole = _render19.getAllByRole;
|
|
341
|
+
|
|
265
342
|
var number = getByLabelText("Number input label");
|
|
343
|
+
|
|
266
344
|
_userEvent["default"].type(number, "10");
|
|
345
|
+
|
|
267
346
|
_react2.fireEvent.blur(number);
|
|
347
|
+
|
|
268
348
|
expect(number.value).toBe("10");
|
|
269
349
|
var increment = getAllByRole("button")[1];
|
|
350
|
+
|
|
270
351
|
_userEvent["default"].click(increment);
|
|
352
|
+
|
|
271
353
|
expect(number.value).toBe("15");
|
|
354
|
+
|
|
272
355
|
_userEvent["default"].click(increment);
|
|
356
|
+
|
|
273
357
|
expect(number.value).toBe("20");
|
|
274
358
|
var decrement = getAllByRole("button")[0];
|
|
359
|
+
|
|
275
360
|
_userEvent["default"].click(decrement);
|
|
361
|
+
|
|
276
362
|
expect(number.value).toBe("15");
|
|
363
|
+
|
|
277
364
|
_userEvent["default"].click(decrement);
|
|
365
|
+
|
|
278
366
|
expect(number.value).toBe("10");
|
|
279
367
|
});
|
|
280
368
|
test("Increment and decrement the value with min, max and step", function () {
|
|
281
369
|
var onBlur = jest.fn();
|
|
370
|
+
|
|
282
371
|
var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
372
|
+
label: "Number input label",
|
|
373
|
+
min: 5,
|
|
374
|
+
max: 20,
|
|
375
|
+
step: 8,
|
|
376
|
+
onBlur: onBlur
|
|
377
|
+
})),
|
|
378
|
+
getByLabelText = _render20.getByLabelText,
|
|
379
|
+
getAllByRole = _render20.getAllByRole;
|
|
380
|
+
|
|
291
381
|
var number = getByLabelText("Number input label");
|
|
382
|
+
|
|
292
383
|
_userEvent["default"].type(number, "1");
|
|
384
|
+
|
|
293
385
|
_react2.fireEvent.blur(number);
|
|
386
|
+
|
|
294
387
|
expect(onBlur).toHaveBeenCalledWith({
|
|
295
388
|
value: "1",
|
|
296
389
|
error: "Value must be greater than or equal to 5."
|
|
297
390
|
});
|
|
298
391
|
var increment = getAllByRole("button")[1];
|
|
392
|
+
|
|
299
393
|
_userEvent["default"].click(increment);
|
|
394
|
+
|
|
300
395
|
expect(number.value).toBe("5");
|
|
396
|
+
|
|
301
397
|
_userEvent["default"].click(increment);
|
|
398
|
+
|
|
302
399
|
expect(number.value).toBe("13");
|
|
400
|
+
|
|
303
401
|
_userEvent["default"].click(increment);
|
|
402
|
+
|
|
304
403
|
expect(number.value).toBe("20");
|
|
404
|
+
|
|
305
405
|
_userEvent["default"].click(increment);
|
|
406
|
+
|
|
306
407
|
expect(number.value).toBe("20");
|
|
307
408
|
var decrement = getAllByRole("button")[0];
|
|
409
|
+
|
|
308
410
|
_userEvent["default"].click(decrement);
|
|
411
|
+
|
|
309
412
|
expect(number.value).toBe("12");
|
|
413
|
+
|
|
310
414
|
_userEvent["default"].click(decrement);
|
|
415
|
+
|
|
311
416
|
expect(number.value).toBe("5");
|
|
417
|
+
|
|
312
418
|
_userEvent["default"].click(decrement);
|
|
419
|
+
|
|
313
420
|
expect(number.value).toBe("5");
|
|
314
421
|
});
|
|
315
422
|
test("Increment and decrement the value with min, max and step using the arrows in keyboard", function () {
|
|
316
423
|
var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
424
|
+
label: "Number input label",
|
|
425
|
+
min: 5,
|
|
426
|
+
max: 20,
|
|
427
|
+
step: 5
|
|
428
|
+
})),
|
|
429
|
+
getByLabelText = _render21.getByLabelText;
|
|
430
|
+
|
|
323
431
|
var number = getByLabelText("Number input label");
|
|
432
|
+
|
|
324
433
|
_userEvent["default"].type(number, "1");
|
|
434
|
+
|
|
325
435
|
_react2.fireEvent.keyDown(number, {
|
|
326
436
|
keyCode: 38
|
|
327
437
|
});
|
|
438
|
+
|
|
328
439
|
expect(number.value).toBe("5");
|
|
440
|
+
|
|
329
441
|
_react2.fireEvent.keyDown(number, {
|
|
330
442
|
keyCode: 38
|
|
331
443
|
});
|
|
444
|
+
|
|
332
445
|
expect(number.value).toBe("10");
|
|
446
|
+
|
|
333
447
|
_react2.fireEvent.keyDown(number, {
|
|
334
448
|
keyCode: 38
|
|
335
449
|
});
|
|
450
|
+
|
|
336
451
|
expect(number.value).toBe("15");
|
|
452
|
+
|
|
337
453
|
_react2.fireEvent.keyDown(number, {
|
|
338
454
|
keyCode: 38
|
|
339
455
|
});
|
|
456
|
+
|
|
340
457
|
expect(number.value).toBe("20");
|
|
458
|
+
|
|
341
459
|
_react2.fireEvent.keyDown(number, {
|
|
342
460
|
keyCode: 38
|
|
343
461
|
});
|
|
462
|
+
|
|
344
463
|
expect(number.value).toBe("20");
|
|
464
|
+
|
|
345
465
|
_react2.fireEvent.keyDown(number, {
|
|
346
466
|
keyCode: 40
|
|
347
467
|
});
|
|
468
|
+
|
|
348
469
|
expect(number.value).toBe("15");
|
|
470
|
+
|
|
349
471
|
_react2.fireEvent.keyDown(number, {
|
|
350
472
|
keyCode: 40
|
|
351
473
|
});
|
|
474
|
+
|
|
352
475
|
expect(number.value).toBe("10");
|
|
476
|
+
|
|
353
477
|
_react2.fireEvent.keyDown(number, {
|
|
354
478
|
keyCode: 40
|
|
355
479
|
});
|
|
480
|
+
|
|
356
481
|
expect(number.value).toBe("5");
|
|
482
|
+
|
|
357
483
|
_react2.fireEvent.keyDown(number, {
|
|
358
484
|
keyCode: 40
|
|
359
485
|
});
|
|
486
|
+
|
|
360
487
|
expect(number.value).toBe("5");
|
|
361
488
|
});
|
|
362
489
|
test("Number has correct accesibility attributes", function () {
|
|
363
490
|
var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
491
|
+
label: "Number input label"
|
|
492
|
+
})),
|
|
493
|
+
getByLabelText = _render22.getByLabelText,
|
|
494
|
+
getAllByRole = _render22.getAllByRole;
|
|
495
|
+
|
|
368
496
|
var number = getByLabelText("Number input label");
|
|
369
497
|
expect(number.getAttribute("aria-autocomplete")).toBeNull();
|
|
370
498
|
expect(number.getAttribute("aria-controls")).toBeNull();
|
|
@@ -383,24 +511,32 @@ describe("Number input component tests", function () {
|
|
|
383
511
|
data: "0"
|
|
384
512
|
});
|
|
385
513
|
});
|
|
514
|
+
|
|
386
515
|
var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
516
|
+
onSubmit: handlerOnSubmit
|
|
517
|
+
}, /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
518
|
+
label: "Number input label",
|
|
519
|
+
name: "data"
|
|
520
|
+
}), /*#__PURE__*/_react["default"].createElement("button", {
|
|
521
|
+
type: "submit"
|
|
522
|
+
}, "Submit"))),
|
|
523
|
+
getByText = _render23.getByText,
|
|
524
|
+
getAllByRole = _render23.getAllByRole;
|
|
525
|
+
|
|
396
526
|
var less = getAllByRole("button")[0];
|
|
397
527
|
var more = getAllByRole("button")[1];
|
|
398
528
|
var submit = getByText("Submit");
|
|
529
|
+
|
|
399
530
|
_userEvent["default"].click(more);
|
|
531
|
+
|
|
400
532
|
expect(handlerOnSubmit).not.toHaveBeenCalled();
|
|
533
|
+
|
|
401
534
|
_userEvent["default"].click(less);
|
|
535
|
+
|
|
402
536
|
expect(handlerOnSubmit).not.toHaveBeenCalled();
|
|
537
|
+
|
|
403
538
|
_userEvent["default"].click(submit);
|
|
539
|
+
|
|
404
540
|
expect(handlerOnSubmit).toHaveBeenCalled();
|
|
405
541
|
});
|
|
406
542
|
});
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = void 0;
|
|
9
|
+
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
9
12
|
var defaultState = {
|
|
10
13
|
stepNumber: 1
|
|
11
14
|
};
|
|
15
|
+
|
|
12
16
|
var NumberInputContext = /*#__PURE__*/_react["default"].createContext(defaultState);
|
|
17
|
+
|
|
13
18
|
var _default = NumberInputContext;
|
|
14
19
|
exports["default"] = _default;
|
package/number-input/types.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
-
type Margin = {
|
|
1
|
+
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
+
declare type Margin = {
|
|
3
3
|
top?: Space;
|
|
4
4
|
bottom?: Space;
|
|
5
5
|
left?: Space;
|
|
6
6
|
right?: Space;
|
|
7
7
|
};
|
|
8
|
-
type Props = {
|
|
8
|
+
declare type Props = {
|
|
9
9
|
/**
|
|
10
10
|
* Text to be placed above the number.
|
|
11
11
|
*/
|
|
@@ -120,5 +120,5 @@ type Props = {
|
|
|
120
120
|
/**
|
|
121
121
|
* Reference to the component.
|
|
122
122
|
*/
|
|
123
|
-
export type RefType = HTMLDivElement;
|
|
123
|
+
export declare type RefType = HTMLDivElement;
|
|
124
124
|
export default Props;
|