@dxc-technology/halstack-react 0.0.0-2b773b3 → 0.0.0-2bca710
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 +2 -2
- package/BackgroundColorContext.js +1 -1
- package/HalstackContext.d.ts +1348 -0
- package/HalstackContext.js +335 -0
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +108 -134
- package/accordion/Accordion.stories.tsx +108 -118
- package/accordion/Accordion.test.js +10 -11
- package/accordion/types.d.ts +1 -12
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +25 -65
- package/accordion-group/AccordionGroup.stories.tsx +93 -66
- package/accordion-group/AccordionGroup.test.js +27 -62
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +7 -12
- package/alert/Alert.js +9 -10
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +1 -1
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +1 -0
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +95 -95
- package/bleed/types.d.ts +1 -1
- package/box/Box.d.ts +1 -1
- package/box/Box.js +19 -48
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +1 -1
- package/box/types.d.ts +0 -11
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +125 -0
- package/bulleted-list/BulletedList.stories.tsx +206 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +44 -71
- package/button/Button.stories.tsx +159 -8
- package/button/Button.test.js +12 -1
- package/button/types.d.ts +9 -5
- package/card/Card.d.ts +1 -1
- package/card/Card.js +37 -58
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +1 -1
- package/card/types.d.ts +1 -6
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +104 -101
- package/checkbox/Checkbox.stories.tsx +198 -130
- package/checkbox/Checkbox.test.js +94 -17
- package/checkbox/types.d.ts +7 -3
- package/chip/Chip.js +28 -49
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +3 -5
- package/chip/types.d.ts +1 -1
- 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 +4 -4
- package/common/variables.d.ts +1494 -0
- package/common/variables.js +1111 -1111
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +140 -238
- package/date-input/DateInput.stories.tsx +209 -33
- package/date-input/DateInput.test.js +519 -149
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +146 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +126 -0
- package/date-input/types.d.ts +55 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +68 -103
- package/dialog/Dialog.stories.tsx +154 -171
- package/dialog/Dialog.test.js +334 -5
- package/dialog/types.d.ts +0 -12
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +246 -253
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +507 -110
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +74 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +79 -0
- package/dropdown/types.d.ts +23 -3
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +180 -223
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +14 -14
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +44 -66
- package/file-input/types.d.ts +18 -1
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +71 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +49 -142
- package/footer/Footer.stories.tsx +41 -19
- package/footer/Footer.test.js +16 -26
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +11 -12
- 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 +102 -150
- package/header/Header.stories.tsx +152 -63
- package/header/Header.test.js +20 -4
- package/header/Icons.js +2 -2
- package/header/types.d.ts +0 -13
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +1 -1
- package/image/Image.d.ts +4 -0
- package/image/Image.js +85 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +1 -1
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +81 -138
- package/layout/ApplicationLayout.stories.tsx +85 -94
- package/layout/Icons.d.ts +8 -0
- package/layout/Icons.js +52 -45
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +19 -35
- package/link/Link.d.ts +3 -2
- package/link/Link.js +60 -77
- package/link/Link.stories.tsx +155 -53
- package/link/Link.test.js +9 -19
- package/link/types.d.ts +5 -21
- package/main.d.ts +9 -10
- package/main.js +55 -57
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +122 -0
- package/nav-tabs/NavTabs.stories.tsx +274 -0
- package/nav-tabs/NavTabs.test.js +82 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +146 -0
- package/nav-tabs/types.d.ts +52 -0
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +6 -4
- package/number-input/NumberInput.test.js +319 -102
- package/number-input/types.d.ts +13 -10
- package/package.json +19 -23
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +20 -49
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +91 -39
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +39 -0
- package/password-input/PasswordInput.js +36 -80
- package/password-input/PasswordInput.stories.tsx +1 -0
- package/password-input/PasswordInput.test.js +36 -45
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.js +61 -55
- package/progress-bar/ProgressBar.stories.jsx +47 -12
- package/progress-bar/ProgressBar.test.js +68 -23
- package/quick-nav/QuickNav.js +77 -26
- package/quick-nav/QuickNav.stories.tsx +145 -26
- package/quick-nav/types.d.ts +4 -4
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +46 -31
- package/radio-group/RadioGroup.js +37 -36
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +124 -97
- package/radio-group/types.d.ts +2 -2
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +49 -108
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +61 -42
- package/resultsetTable/types.d.ts +1 -1
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +169 -0
- package/select/Option.js +11 -24
- package/select/Select.js +148 -214
- package/select/Select.stories.tsx +525 -136
- package/select/Select.test.js +478 -307
- package/select/types.d.ts +20 -4
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +51 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +146 -44
- package/sidenav/Sidenav.stories.tsx +251 -151
- package/sidenav/Sidenav.test.js +25 -37
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +121 -97
- package/slider/Slider.stories.tsx +64 -1
- package/slider/Slider.test.js +122 -22
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +18 -24
- package/spinner/Spinner.stories.jsx +53 -27
- package/spinner/Spinner.test.js +1 -1
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +138 -68
- package/switch/Switch.stories.tsx +49 -38
- package/switch/Switch.test.js +145 -18
- package/switch/types.d.ts +6 -2
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +2 -2
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +132 -0
- package/tabs/Tabs.js +358 -108
- package/tabs/Tabs.stories.tsx +119 -11
- package/tabs/Tabs.test.js +220 -10
- package/tabs/types.d.ts +13 -3
- package/tag/Tag.js +12 -17
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +1 -1
- package/tag/types.d.ts +1 -1
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +84 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +260 -399
- package/text-input/TextInput.stories.tsx +319 -185
- package/text-input/TextInput.test.js +846 -759
- package/text-input/types.d.ts +50 -12
- package/textarea/Textarea.js +37 -45
- package/textarea/Textarea.stories.jsx +68 -1
- package/textarea/Textarea.test.js +61 -19
- package/textarea/types.d.ts +14 -7
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +85 -59
- package/toggle-group/ToggleGroup.stories.tsx +48 -3
- package/toggle-group/ToggleGroup.test.js +38 -24
- package/toggle-group/types.d.ts +23 -14
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +32 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1246 -1
- package/useTheme.js +3 -3
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +20 -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 +44 -45
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +1 -1
- package/wizard/types.d.ts +3 -3
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -28
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -24
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- /package/{list → bulleted-list}/types.js +0 -0
- /package/{radio → flex}/types.js +0 -0
- /package/{row → grid}/types.js +0 -0
- /package/{stack → image}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
package/text-input/types.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ declare type Margin = {
|
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
declare type SVG = React.
|
|
9
|
+
declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
10
|
declare type Action = {
|
|
11
11
|
/**
|
|
12
12
|
* This function will be called when the user clicks the action.
|
|
@@ -59,6 +59,10 @@ declare type Props = {
|
|
|
59
59
|
* If true, the component will be disabled.
|
|
60
60
|
*/
|
|
61
61
|
disabled?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* If true, the component will not be mutable, meaning the user can not edit the control.
|
|
64
|
+
*/
|
|
65
|
+
readOnly?: boolean;
|
|
62
66
|
/**
|
|
63
67
|
* If true, the input will be optional, showing '(Optional)'
|
|
64
68
|
* next to the label. Otherwise, the field will be considered required and an error will be
|
|
@@ -78,26 +82,29 @@ declare type Props = {
|
|
|
78
82
|
* This function will be called when the user types within the input
|
|
79
83
|
* element of the component. An object including the current value and
|
|
80
84
|
* the error (if the value entered is not valid) will be passed to this
|
|
81
|
-
* function. If there is no error, error will be
|
|
85
|
+
* function. If there is no error, error will not be defined.
|
|
82
86
|
*/
|
|
83
87
|
onChange?: (val: {
|
|
84
88
|
value: string;
|
|
85
|
-
error
|
|
89
|
+
error?: string;
|
|
86
90
|
}) => void;
|
|
87
91
|
/**
|
|
88
92
|
* This function will be called when the input element loses the focus.
|
|
89
93
|
* An object including the input value and the error (if the value
|
|
90
94
|
* entered is not valid) will be passed to this function. If there is no error,
|
|
91
|
-
* error will be
|
|
95
|
+
* error will not be defined.
|
|
92
96
|
*/
|
|
93
97
|
onBlur?: (val: {
|
|
94
98
|
value: string;
|
|
95
|
-
error
|
|
99
|
+
error?: string;
|
|
96
100
|
}) => void;
|
|
97
101
|
/**
|
|
98
|
-
* If it is defined
|
|
99
|
-
* the error below the input component. If
|
|
100
|
-
*
|
|
102
|
+
* If it is a defined value and also a truthy string, the component will
|
|
103
|
+
* change its appearance, showing the error below the input component. If
|
|
104
|
+
* the defined value is an empty string, it will reserve a space below
|
|
105
|
+
* the component for a future error, but it would not change its look. In
|
|
106
|
+
* case of being undefined or null, both the appearance and the space for
|
|
107
|
+
* the error message would not be modified.
|
|
101
108
|
*/
|
|
102
109
|
error?: string;
|
|
103
110
|
/**
|
|
@@ -114,7 +121,7 @@ declare type Props = {
|
|
|
114
121
|
* pattern, the onBlur and onChange functions will be called with the
|
|
115
122
|
* current value and an internal error informing that this value does not
|
|
116
123
|
* match the pattern. If the pattern is met, the error parameter of both
|
|
117
|
-
* events will be
|
|
124
|
+
* events will not be defined.
|
|
118
125
|
*/
|
|
119
126
|
pattern?: string;
|
|
120
127
|
/**
|
|
@@ -124,7 +131,7 @@ declare type Props = {
|
|
|
124
131
|
* comply the minimum length, the onBlur and onChange functions will be called
|
|
125
132
|
* with the current value and an internal error informing that the value
|
|
126
133
|
* length does not comply the specified range. If a valid length is
|
|
127
|
-
* reached, the error parameter of both events will be
|
|
134
|
+
* reached, the error parameter of both events will not be defined.
|
|
128
135
|
*/
|
|
129
136
|
minLength?: number;
|
|
130
137
|
/**
|
|
@@ -134,7 +141,7 @@ declare type Props = {
|
|
|
134
141
|
* comply the maximum length, the onBlur and onChange functions will be called
|
|
135
142
|
* with the current value and an internal error informing that the value
|
|
136
143
|
* length does not comply the specified range. If a valid length is
|
|
137
|
-
* reached, the error parameter of both events will be
|
|
144
|
+
* reached, the error parameter of both events will not be defined.
|
|
138
145
|
*/
|
|
139
146
|
maxLength?: number;
|
|
140
147
|
/**
|
|
@@ -148,7 +155,7 @@ declare type Props = {
|
|
|
148
155
|
*/
|
|
149
156
|
margin?: Space | Margin;
|
|
150
157
|
/**
|
|
151
|
-
* Size of the component
|
|
158
|
+
* Size of the component.
|
|
152
159
|
*/
|
|
153
160
|
size?: "small" | "medium" | "large" | "fillParent";
|
|
154
161
|
/**
|
|
@@ -156,8 +163,39 @@ declare type Props = {
|
|
|
156
163
|
*/
|
|
157
164
|
tabIndex?: number;
|
|
158
165
|
};
|
|
166
|
+
/**
|
|
167
|
+
* List of suggestions of an Text Input component.
|
|
168
|
+
*/
|
|
169
|
+
export declare type SuggestionsProps = {
|
|
170
|
+
id: string;
|
|
171
|
+
value: string;
|
|
172
|
+
suggestions: string[];
|
|
173
|
+
visualFocusIndex: number;
|
|
174
|
+
highlightedSuggestions: boolean;
|
|
175
|
+
searchHasErrors: boolean;
|
|
176
|
+
isSearching: boolean;
|
|
177
|
+
suggestionOnClick: (suggestion: string) => void;
|
|
178
|
+
getTextInputWidth: () => number;
|
|
179
|
+
};
|
|
159
180
|
/**
|
|
160
181
|
* Reference to the component.
|
|
161
182
|
*/
|
|
162
183
|
export declare type RefType = HTMLDivElement;
|
|
184
|
+
/**
|
|
185
|
+
* Single suggestion of an Text Input component.
|
|
186
|
+
*/
|
|
187
|
+
export declare type SuggestionProps = {
|
|
188
|
+
id: string;
|
|
189
|
+
value: string;
|
|
190
|
+
onClick: (suggestion: string) => void;
|
|
191
|
+
suggestion: string;
|
|
192
|
+
isLast: boolean;
|
|
193
|
+
visuallyFocused: boolean;
|
|
194
|
+
highlighted: boolean;
|
|
195
|
+
};
|
|
196
|
+
export declare type AutosuggestWrapperProps = {
|
|
197
|
+
condition: boolean;
|
|
198
|
+
wrapper: (children: React.ReactNode) => JSX.Element;
|
|
199
|
+
children: React.ReactNode;
|
|
200
|
+
};
|
|
163
201
|
export default Props;
|
package/textarea/Textarea.js
CHANGED
|
@@ -19,11 +19,13 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
21
|
|
|
22
|
-
var _utils = require("../common/utils
|
|
22
|
+
var _utils = require("../common/utils");
|
|
23
23
|
|
|
24
24
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
27
|
+
|
|
28
|
+
var _variables = require("../common/variables");
|
|
27
29
|
|
|
28
30
|
var _uuid = require("uuid");
|
|
29
31
|
|
|
@@ -35,14 +37,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
35
37
|
|
|
36
38
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
37
39
|
|
|
38
|
-
var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
|
|
39
|
-
return "This field is required. Please, enter a value.";
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
var getPatternErrorMessage = function getPatternErrorMessage() {
|
|
43
|
-
return "Please match the format requested.";
|
|
44
|
-
};
|
|
45
|
-
|
|
46
40
|
var patternMatch = function patternMatch(pattern, value) {
|
|
47
41
|
return new RegExp(pattern).test(value);
|
|
48
42
|
};
|
|
@@ -59,6 +53,8 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
59
53
|
placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
|
|
60
54
|
_ref$disabled = _ref.disabled,
|
|
61
55
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
56
|
+
_ref$readOnly = _ref.readOnly,
|
|
57
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
62
58
|
_ref$optional = _ref.optional,
|
|
63
59
|
optional = _ref$optional === void 0 ? false : _ref$optional,
|
|
64
60
|
_ref$verticalGrow = _ref.verticalGrow,
|
|
@@ -90,13 +86,10 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
90
86
|
|
|
91
87
|
var colorsTheme = (0, _useTheme["default"])();
|
|
92
88
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
89
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
93
90
|
var textareaRef = (0, _react.useRef)(null);
|
|
94
91
|
var errorId = "error-".concat(textareaId);
|
|
95
92
|
|
|
96
|
-
var getLengthErrorMessage = function getLengthErrorMessage() {
|
|
97
|
-
return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
|
|
98
|
-
};
|
|
99
|
-
|
|
100
93
|
var isNotOptional = function isNotOptional(value) {
|
|
101
94
|
return value === "" && !optional;
|
|
102
95
|
};
|
|
@@ -109,46 +102,46 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
109
102
|
value !== null && value !== void 0 ? value : setInnerValue(newValue);
|
|
110
103
|
if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
111
104
|
value: newValue,
|
|
112
|
-
error:
|
|
105
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
113
106
|
});else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
114
107
|
value: newValue,
|
|
115
|
-
error:
|
|
108
|
+
error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
|
|
116
109
|
});else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
117
110
|
value: newValue,
|
|
118
|
-
error:
|
|
111
|
+
error: translatedLabels.formFields.formatRequestedErrorMessage
|
|
119
112
|
});else onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
120
113
|
value: newValue
|
|
121
114
|
});
|
|
122
115
|
};
|
|
123
116
|
|
|
124
|
-
var
|
|
117
|
+
var autoVerticalGrow = function autoVerticalGrow() {
|
|
118
|
+
var textareaLineHeight = parseInt(window.getComputedStyle(textareaRef.current)["line-height"]);
|
|
119
|
+
var textareaPaddingTopBottom = parseInt(window.getComputedStyle(textareaRef.current)["padding-top"]) * 2;
|
|
120
|
+
textareaRef.current.style.height = "".concat(textareaLineHeight * rows, "px");
|
|
121
|
+
var newHeight = textareaRef.current.scrollHeight - textareaPaddingTopBottom;
|
|
122
|
+
textareaRef.current.style.height = "".concat(newHeight, "px");
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
var handleOnBlur = function handleOnBlur(event) {
|
|
125
126
|
if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
126
127
|
value: event.target.value,
|
|
127
|
-
error:
|
|
128
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
128
129
|
});else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
129
130
|
value: event.target.value,
|
|
130
|
-
error:
|
|
131
|
+
error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
|
|
131
132
|
});else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
132
133
|
value: event.target.value,
|
|
133
|
-
error:
|
|
134
|
+
error: translatedLabels.formFields.formatRequestedErrorMessage
|
|
134
135
|
});else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
135
136
|
value: event.target.value
|
|
136
137
|
});
|
|
137
138
|
};
|
|
138
139
|
|
|
139
|
-
var
|
|
140
|
+
var handleOnChange = function handleOnChange(event) {
|
|
140
141
|
changeValue(event.target.value);
|
|
142
|
+
verticalGrow === "auto" && autoVerticalGrow();
|
|
141
143
|
};
|
|
142
144
|
|
|
143
|
-
(0, _react.useLayoutEffect)(function () {
|
|
144
|
-
if (verticalGrow === "auto") {
|
|
145
|
-
var textareaLineHeight = parseInt(window.getComputedStyle(textareaRef.current)["line-height"]);
|
|
146
|
-
var textareaPaddingTopBottom = parseInt(window.getComputedStyle(textareaRef.current)["padding-top"]) * 2;
|
|
147
|
-
textareaRef.current.style.height = "".concat(textareaLineHeight * rows, "px");
|
|
148
|
-
var newHeight = textareaRef.current.scrollHeight - textareaPaddingTopBottom;
|
|
149
|
-
textareaRef.current.style.height = "".concat(newHeight, "px");
|
|
150
|
-
}
|
|
151
|
-
}, [value, verticalGrow, rows, innerValue]);
|
|
152
145
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
153
146
|
theme: colorsTheme.textarea
|
|
154
147
|
}, /*#__PURE__*/_react["default"].createElement(TextareaContainer, {
|
|
@@ -160,7 +153,7 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
160
153
|
disabled: disabled,
|
|
161
154
|
backgroundType: backgroundType,
|
|
162
155
|
helperText: helperText
|
|
163
|
-
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null,
|
|
156
|
+
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
164
157
|
disabled: disabled,
|
|
165
158
|
backgroundType: backgroundType
|
|
166
159
|
}, helperText), /*#__PURE__*/_react["default"].createElement(Textarea, {
|
|
@@ -170,9 +163,10 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
170
163
|
placeholder: placeholder,
|
|
171
164
|
verticalGrow: verticalGrow,
|
|
172
165
|
rows: rows,
|
|
173
|
-
onChange:
|
|
174
|
-
onBlur:
|
|
166
|
+
onChange: handleOnChange,
|
|
167
|
+
onBlur: handleOnBlur,
|
|
175
168
|
disabled: disabled,
|
|
169
|
+
readOnly: readOnly,
|
|
176
170
|
error: error,
|
|
177
171
|
minLength: minLength,
|
|
178
172
|
maxLength: maxLength,
|
|
@@ -180,10 +174,9 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
180
174
|
backgroundType: backgroundType,
|
|
181
175
|
ref: textareaRef,
|
|
182
176
|
tabIndex: tabIndex,
|
|
183
|
-
"aria-
|
|
184
|
-
"aria-invalid": error ? "true" : "false",
|
|
177
|
+
"aria-invalid": error ? true : false,
|
|
185
178
|
"aria-errormessage": error ? errorId : undefined,
|
|
186
|
-
"aria-required":
|
|
179
|
+
"aria-required": !disabled && !optional
|
|
187
180
|
}), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
|
|
188
181
|
id: errorId,
|
|
189
182
|
backgroundType: backgroundType,
|
|
@@ -202,7 +195,7 @@ var calculateWidth = function calculateWidth(margin, size) {
|
|
|
202
195
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
203
196
|
};
|
|
204
197
|
|
|
205
|
-
var TextareaContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n
|
|
198
|
+
var TextareaContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
206
199
|
return calculateWidth(props.margin, props.size);
|
|
207
200
|
}, function (props) {
|
|
208
201
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
@@ -250,18 +243,17 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
|
|
|
250
243
|
return props.theme.helperTextLineHeight;
|
|
251
244
|
});
|
|
252
245
|
|
|
253
|
-
var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n ", "\n\n padding: 0.5rem 1rem;\n box-shadow: 0 0 0 2px transparent;\n border-radius: 0.25rem;\n border: 1px solid\n ", ";\n ", "\n\n ", ";\n
|
|
254
|
-
|
|
246
|
+
var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n\n ", "\n\n padding: 0.5rem 1rem;\n box-shadow: 0 0 0 2px transparent;\n border-radius: 0.25rem;\n border: 1px solid\n ", ";\n\n ", "\n\n ", ";\n\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n\n ::placeholder {\n color: ", ";\n }\n"])), function (_ref2) {
|
|
247
|
+
var verticalGrow = _ref2.verticalGrow;
|
|
248
|
+
if (verticalGrow === "none") return "resize: none;";else if (verticalGrow === "auto") return "resize: none; overflow: hidden;";else if (verticalGrow === "manual") return "resize: vertical;";else return "resize: none;";
|
|
255
249
|
}, function (props) {
|
|
256
250
|
if (props.disabled) return props.backgroundType === "dark" ? "background-color: ".concat(props.theme.disabledContainerFillColorOnDark, ";") : "background-color: ".concat(props.theme.disabledContainerFillColor, ";");else return "background-color: transparent;";
|
|
257
251
|
}, function (props) {
|
|
258
|
-
if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
|
|
259
|
-
}, function (props) {
|
|
260
|
-
return props.error && !props.disabled && "border-color: transparent;\n box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.errorBorderColorOnDark : props.theme.errorBorderColor, ";\n ");
|
|
252
|
+
if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else if (props.error) return "transparent";else if (props.readOnly) return props.theme.readOnlyBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
|
|
261
253
|
}, function (props) {
|
|
262
|
-
return props.disabled && "
|
|
254
|
+
return props.error && !props.disabled && "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.errorBorderColorOnDark : props.theme.errorBorderColor, ";\n ");
|
|
263
255
|
}, function (props) {
|
|
264
|
-
return !props.disabled
|
|
256
|
+
return !props.disabled ? "&:hover {\n border-color: ".concat(props.error ? "transparent" : props.readOnly ? props.theme.hoverReadOnlyBorderColor : props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.hoverErrorBorderColorOnDark : props.theme.hoverErrorBorderColor, ";"), "\n }\n &:focus, &:focus-within {\n outline: none;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }") : "cursor: not-allowed;";
|
|
265
257
|
}, function (props) {
|
|
266
258
|
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledValueFontColorOnDark : props.theme.disabledValueFontColor : props.backgroundType === "dark" ? props.theme.valueFontColorOnDark : props.theme.valueFontColor;
|
|
267
259
|
}, function (props) {
|
|
@@ -4,12 +4,20 @@ import Title from "../../.storybook/components/Title";
|
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
5
|
import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
6
6
|
import DarkContainer from "../../.storybook/components/DarkSection";
|
|
7
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
7
8
|
|
|
8
9
|
export default {
|
|
9
10
|
title: "Textarea",
|
|
10
11
|
component: DxcTextarea,
|
|
11
12
|
};
|
|
12
13
|
|
|
14
|
+
const opinionatedTheme = {
|
|
15
|
+
textarea: {
|
|
16
|
+
fontColor: "#000000",
|
|
17
|
+
hoverBorderColor: "#a46ede",
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
|
|
13
21
|
export const Chromatic = () => (
|
|
14
22
|
<>
|
|
15
23
|
<>
|
|
@@ -35,6 +43,14 @@ export const Chromatic = () => (
|
|
|
35
43
|
<Title title="Disabled with value" theme="light" level={4} />
|
|
36
44
|
<DxcTextarea label="Disabled" defaultValue="Example text" disabled />
|
|
37
45
|
</ExampleContainer>
|
|
46
|
+
<ExampleContainer>
|
|
47
|
+
<Title title="Read only" theme="light" level={4} />
|
|
48
|
+
<DxcTextarea label="Label" readOnly defaultValue="Example text" verticalGrow="manual" />
|
|
49
|
+
</ExampleContainer>
|
|
50
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
51
|
+
<Title title="Hovered read only" theme="light" level={4} />
|
|
52
|
+
<DxcTextarea label="Label" readOnly defaultValue="Example text" verticalGrow="manual" />
|
|
53
|
+
</ExampleContainer>
|
|
38
54
|
<ExampleContainer>
|
|
39
55
|
<Title title="With error" theme="light" level={4} />
|
|
40
56
|
<DxcTextarea
|
|
@@ -151,7 +167,58 @@ export const Chromatic = () => (
|
|
|
151
167
|
<ExampleContainer>
|
|
152
168
|
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
153
169
|
<DxcTextarea label="Xxlarge" margin="xxlarge" />
|
|
154
|
-
|
|
170
|
+
</ExampleContainer>
|
|
171
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
172
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
173
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
174
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
175
|
+
<DxcTextarea label="Hovered" helperText="Sample text" placeholder="Placeholder" />
|
|
176
|
+
</HalstackProvider>
|
|
177
|
+
</ExampleContainer>
|
|
178
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
179
|
+
<Title title="Focused" theme="light" level={4} />
|
|
180
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
181
|
+
<DxcTextarea label="Focused" helperText="Sample text" />
|
|
182
|
+
</HalstackProvider>
|
|
183
|
+
</ExampleContainer>
|
|
184
|
+
<ExampleContainer>
|
|
185
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
186
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
187
|
+
<DxcTextarea
|
|
188
|
+
label="Disabled"
|
|
189
|
+
optional
|
|
190
|
+
helperText="Sample text"
|
|
191
|
+
placeholder="Enter your text here..."
|
|
192
|
+
disabled
|
|
193
|
+
/>
|
|
194
|
+
</HalstackProvider>
|
|
195
|
+
</ExampleContainer>
|
|
196
|
+
<ExampleContainer>
|
|
197
|
+
<Title title="Disabled with value" theme="light" level={4} />
|
|
198
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
199
|
+
<DxcTextarea label="Disabled" helperText="Sample text" defaultValue="Example text" disabled />
|
|
200
|
+
</HalstackProvider>
|
|
201
|
+
</ExampleContainer>
|
|
202
|
+
<ExampleContainer>
|
|
203
|
+
<Title title="With error" theme="light" level={4} />
|
|
204
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
205
|
+
<DxcTextarea
|
|
206
|
+
label="Textarea with error"
|
|
207
|
+
helperText="Helper text"
|
|
208
|
+
placeholder="Enter your text here..."
|
|
209
|
+
error="Error message."
|
|
210
|
+
/>
|
|
211
|
+
</HalstackProvider>
|
|
212
|
+
</ExampleContainer>
|
|
213
|
+
<ExampleContainer>
|
|
214
|
+
<Title title="Grow manual" theme="light" level={4} />{" "}
|
|
215
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
216
|
+
<DxcTextarea
|
|
217
|
+
label="Manual vertical grow"
|
|
218
|
+
verticalGrow="manual"
|
|
219
|
+
defaultValue="Long textttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
|
|
220
|
+
/>
|
|
221
|
+
</HalstackProvider>
|
|
155
222
|
</ExampleContainer>
|
|
156
223
|
</>
|
|
157
224
|
);
|
|
@@ -8,7 +8,7 @@ var _react2 = require("@testing-library/react");
|
|
|
8
8
|
|
|
9
9
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
10
10
|
|
|
11
|
-
var _Textarea = _interopRequireDefault(require("./Textarea"));
|
|
11
|
+
var _Textarea = _interopRequireDefault(require("./Textarea.tsx"));
|
|
12
12
|
|
|
13
13
|
describe("Textarea component tests", function () {
|
|
14
14
|
test("Renders with correct label", function () {
|
|
@@ -78,14 +78,13 @@ describe("Textarea component tests", function () {
|
|
|
78
78
|
var textarea = getByLabelText("Example label");
|
|
79
79
|
expect(textarea.rows).toBe(10);
|
|
80
80
|
});
|
|
81
|
-
test("Renders with correct
|
|
81
|
+
test("Renders with correct accessibility attributes", function () {
|
|
82
82
|
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
83
83
|
label: "Example label"
|
|
84
84
|
})),
|
|
85
85
|
getByLabelText = _render7.getByLabelText;
|
|
86
86
|
|
|
87
87
|
var textarea = getByLabelText("Example label");
|
|
88
|
-
expect(textarea.getAttribute("aria-disabled")).toBe("false");
|
|
89
88
|
expect(textarea.getAttribute("aria-invalid")).toBe("false");
|
|
90
89
|
expect(textarea.getAttribute("aria-describedBy")).toBeNull();
|
|
91
90
|
expect(textarea.getAttribute("aria-required")).toBe("true");
|
|
@@ -101,7 +100,7 @@ describe("Textarea component tests", function () {
|
|
|
101
100
|
var textarea = getByLabelText("Example label");
|
|
102
101
|
expect(textarea.value).toBe("Example text");
|
|
103
102
|
});
|
|
104
|
-
test("Disabled textarea
|
|
103
|
+
test("Disabled textarea can not be modified", function () {
|
|
105
104
|
var onChange = jest.fn();
|
|
106
105
|
|
|
107
106
|
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
@@ -112,23 +111,66 @@ describe("Textarea component tests", function () {
|
|
|
112
111
|
getByLabelText = _render9.getByLabelText;
|
|
113
112
|
|
|
114
113
|
var textarea = getByLabelText("Example label");
|
|
115
|
-
expect(textarea.getAttribute("aria-disabled")).toBe("true");
|
|
116
114
|
|
|
117
115
|
_userEvent["default"].type(textarea, "Test");
|
|
118
116
|
|
|
119
117
|
expect(onChange).not.toHaveBeenCalled();
|
|
120
118
|
});
|
|
119
|
+
test("Read-only textarea does not trigger onChange function", function () {
|
|
120
|
+
var onChange = jest.fn();
|
|
121
|
+
|
|
122
|
+
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
123
|
+
label: "Example label",
|
|
124
|
+
onChange: onChange,
|
|
125
|
+
readOnly: true
|
|
126
|
+
})),
|
|
127
|
+
getByLabelText = _render10.getByLabelText;
|
|
128
|
+
|
|
129
|
+
var textarea = getByLabelText("Example label");
|
|
130
|
+
|
|
131
|
+
_userEvent["default"].type(textarea, "Test");
|
|
132
|
+
|
|
133
|
+
expect(onChange).not.toHaveBeenCalled();
|
|
134
|
+
});
|
|
135
|
+
test("Read-only textarea sends its value on submit", function () {
|
|
136
|
+
var handlerOnSubmit = jest.fn(function (e) {
|
|
137
|
+
e.preventDefault();
|
|
138
|
+
var formData = new FormData(e.target);
|
|
139
|
+
var formProps = Object.fromEntries(formData);
|
|
140
|
+
expect(formProps).toStrictEqual({
|
|
141
|
+
data: "Comments"
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
|
|
146
|
+
onSubmit: handlerOnSubmit
|
|
147
|
+
}, /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
148
|
+
label: "Example label",
|
|
149
|
+
name: "data",
|
|
150
|
+
defaultValue: "Comments",
|
|
151
|
+
readOnly: true
|
|
152
|
+
}), /*#__PURE__*/_react["default"].createElement("button", {
|
|
153
|
+
type: "submit"
|
|
154
|
+
}, "Submit"))),
|
|
155
|
+
getByText = _render11.getByText;
|
|
156
|
+
|
|
157
|
+
var submit = getByText("Submit");
|
|
158
|
+
|
|
159
|
+
_userEvent["default"].click(submit);
|
|
160
|
+
|
|
161
|
+
expect(handlerOnSubmit).toHaveBeenCalled();
|
|
162
|
+
});
|
|
121
163
|
test("Not optional constraint (onBlur)", function () {
|
|
122
164
|
var onChange = jest.fn();
|
|
123
165
|
var onBlur = jest.fn();
|
|
124
166
|
|
|
125
|
-
var
|
|
167
|
+
var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
126
168
|
label: "Example label",
|
|
127
169
|
placeholder: "Placeholder",
|
|
128
170
|
onChange: onChange,
|
|
129
171
|
onBlur: onBlur
|
|
130
172
|
})),
|
|
131
|
-
getByLabelText =
|
|
173
|
+
getByLabelText = _render12.getByLabelText;
|
|
132
174
|
|
|
133
175
|
var textarea = getByLabelText("Example label");
|
|
134
176
|
|
|
@@ -158,12 +200,12 @@ describe("Textarea component tests", function () {
|
|
|
158
200
|
test("Not optional constraint (onChange)", function () {
|
|
159
201
|
var onChange = jest.fn();
|
|
160
202
|
|
|
161
|
-
var
|
|
203
|
+
var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
162
204
|
label: "Example label",
|
|
163
205
|
placeholder: "Placeholder",
|
|
164
206
|
onChange: onChange
|
|
165
207
|
})),
|
|
166
|
-
getByLabelText =
|
|
208
|
+
getByLabelText = _render13.getByLabelText;
|
|
167
209
|
|
|
168
210
|
var textarea = getByLabelText("Example label");
|
|
169
211
|
|
|
@@ -192,7 +234,7 @@ describe("Textarea component tests", function () {
|
|
|
192
234
|
var onChange = jest.fn();
|
|
193
235
|
var onBlur = jest.fn();
|
|
194
236
|
|
|
195
|
-
var
|
|
237
|
+
var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
196
238
|
label: "Example label",
|
|
197
239
|
placeholder: "Placeholder",
|
|
198
240
|
onChange: onChange,
|
|
@@ -203,7 +245,7 @@ describe("Textarea component tests", function () {
|
|
|
203
245
|
},
|
|
204
246
|
pattern: "^.*(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!&$%&? \"]).*$"
|
|
205
247
|
})),
|
|
206
|
-
getByLabelText =
|
|
248
|
+
getByLabelText = _render14.getByLabelText;
|
|
207
249
|
|
|
208
250
|
var textarea = getByLabelText("Example label");
|
|
209
251
|
|
|
@@ -251,7 +293,7 @@ describe("Textarea component tests", function () {
|
|
|
251
293
|
var onChange = jest.fn();
|
|
252
294
|
var onBlur = jest.fn();
|
|
253
295
|
|
|
254
|
-
var
|
|
296
|
+
var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
255
297
|
label: "Example label",
|
|
256
298
|
placeholder: "Placeholder",
|
|
257
299
|
onChange: onChange,
|
|
@@ -263,7 +305,7 @@ describe("Textarea component tests", function () {
|
|
|
263
305
|
minLength: 5,
|
|
264
306
|
maxLength: 10
|
|
265
307
|
})),
|
|
266
|
-
getByLabelText =
|
|
308
|
+
getByLabelText = _render15.getByLabelText;
|
|
267
309
|
|
|
268
310
|
var textarea = getByLabelText("Example label");
|
|
269
311
|
|
|
@@ -311,7 +353,7 @@ describe("Textarea component tests", function () {
|
|
|
311
353
|
var onChange = jest.fn();
|
|
312
354
|
var onBlur = jest.fn();
|
|
313
355
|
|
|
314
|
-
var
|
|
356
|
+
var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
315
357
|
label: "Example label",
|
|
316
358
|
placeholder: "Placeholder",
|
|
317
359
|
onChange: onChange,
|
|
@@ -324,7 +366,7 @@ describe("Textarea component tests", function () {
|
|
|
324
366
|
minLength: 5,
|
|
325
367
|
maxLength: 10
|
|
326
368
|
})),
|
|
327
|
-
getByLabelText =
|
|
369
|
+
getByLabelText = _render16.getByLabelText;
|
|
328
370
|
|
|
329
371
|
var textarea = getByLabelText("Example label");
|
|
330
372
|
|
|
@@ -389,11 +431,11 @@ describe("Textarea component tests", function () {
|
|
|
389
431
|
test("onBlur function is called correctly", function () {
|
|
390
432
|
var onBlur = jest.fn();
|
|
391
433
|
|
|
392
|
-
var
|
|
434
|
+
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
393
435
|
label: "Example label",
|
|
394
436
|
onBlur: onBlur
|
|
395
437
|
})),
|
|
396
|
-
getByLabelText =
|
|
438
|
+
getByLabelText = _render17.getByLabelText;
|
|
397
439
|
|
|
398
440
|
var textarea = getByLabelText("Example label");
|
|
399
441
|
|
|
@@ -413,12 +455,12 @@ describe("Textarea component tests", function () {
|
|
|
413
455
|
test("onChange function is called correctly", function () {
|
|
414
456
|
var onChange = jest.fn();
|
|
415
457
|
|
|
416
|
-
var
|
|
458
|
+
var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
|
|
417
459
|
label: "Example label",
|
|
418
460
|
value: "Test value",
|
|
419
461
|
onChange: onChange
|
|
420
462
|
})),
|
|
421
|
-
getByLabelText =
|
|
463
|
+
getByLabelText = _render18.getByLabelText;
|
|
422
464
|
|
|
423
465
|
var textarea = getByLabelText("Example label");
|
|
424
466
|
|