@dxc-technology/halstack-react 6.0.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/Accordion.js +122 -103
- package/accordion/Accordion.stories.tsx +1 -2
- package/accordion/Accordion.test.js +9 -10
- package/accordion/types.d.ts +4 -4
- package/accordion-group/AccordionGroup.js +1 -21
- package/accordion-group/AccordionGroup.stories.tsx +27 -1
- package/accordion-group/AccordionGroup.test.js +20 -45
- package/accordion-group/types.d.ts +9 -3
- package/alert/Alert.js +1 -1
- package/box/Box.js +1 -1
- package/bulleted-list/types.d.ts +1 -1
- package/button/Button.js +43 -61
- package/button/Button.stories.tsx +9 -0
- package/button/types.d.ts +7 -7
- package/checkbox/Checkbox.js +88 -95
- package/checkbox/Checkbox.test.js +93 -16
- package/checkbox/types.d.ts +2 -2
- package/chip/types.d.ts +1 -1
- package/common/variables.js +23 -10
- package/date-input/DateInput.js +3 -3
- package/dialog/Dialog.js +52 -28
- package/dialog/Dialog.stories.tsx +1 -2
- package/dialog/Dialog.test.js +34 -4
- package/dialog/types.d.ts +2 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +243 -247
- package/dropdown/Dropdown.stories.tsx +126 -63
- package/dropdown/Dropdown.test.js +510 -108
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +80 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +92 -0
- package/dropdown/types.d.ts +25 -5
- package/flex/Flex.js +1 -1
- package/flex/types.d.ts +1 -1
- package/footer/Footer.stories.tsx +8 -1
- package/footer/types.d.ts +1 -1
- package/header/Header.js +74 -72
- package/header/Header.stories.tsx +4 -4
- package/header/Icons.js +2 -2
- package/header/types.d.ts +2 -2
- package/layout/ApplicationLayout.js +3 -3
- package/layout/ApplicationLayout.stories.tsx +1 -0
- package/link/Link.js +1 -1
- package/link/Link.stories.tsx +12 -5
- package/link/types.d.ts +1 -1
- package/package.json +10 -10
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +56 -50
- package/progress-bar/ProgressBar.stories.jsx +3 -1
- package/progress-bar/ProgressBar.test.js +67 -22
- package/progress-bar/types.d.ts +3 -4
- package/radio-group/RadioGroup.js +11 -13
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +25 -2
- package/select/Select.js +14 -31
- package/select/Select.stories.tsx +6 -5
- package/select/Select.test.js +63 -50
- package/select/types.d.ts +2 -4
- package/sidenav/Sidenav.js +15 -3
- package/sidenav/types.d.ts +1 -1
- package/slider/Slider.js +114 -93
- package/slider/Slider.stories.tsx +7 -1
- package/slider/Slider.test.js +121 -21
- package/slider/types.d.ts +2 -2
- package/switch/Switch.d.ts +1 -1
- package/switch/Switch.js +111 -55
- package/switch/Switch.stories.tsx +8 -30
- package/switch/Switch.test.js +122 -8
- package/switch/types.d.ts +3 -4
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +135 -0
- package/tabs/Tabs.js +360 -104
- package/tabs/Tabs.stories.tsx +74 -0
- package/tabs/Tabs.test.js +217 -6
- package/tabs/types.d.ts +15 -5
- package/tabs-nav/NavTabs.js +5 -5
- package/tabs-nav/Tab.js +3 -5
- package/tabs-nav/types.d.ts +1 -1
- package/tag/Tag.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.js +7 -5
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +115 -222
- package/text-input/TextInput.stories.tsx +189 -182
- package/text-input/TextInput.test.js +163 -162
- package/text-input/types.d.ts +17 -3
- package/toggle-group/types.d.ts +1 -1
- package/wizard/types.d.ts +1 -1
package/slider/Slider.js
CHANGED
|
@@ -17,8 +17,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
17
17
|
|
|
18
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
19
|
|
|
20
|
-
var _Slider = _interopRequireDefault(require("@material-ui/lab/Slider"));
|
|
21
|
-
|
|
22
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
23
21
|
|
|
24
22
|
var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
|
|
@@ -33,7 +31,7 @@ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColor
|
|
|
33
31
|
|
|
34
32
|
var _uuid = require("uuid");
|
|
35
33
|
|
|
36
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
34
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
|
|
37
35
|
|
|
38
36
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
39
37
|
|
|
@@ -74,12 +72,17 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
74
72
|
innerValue = _useState2[0],
|
|
75
73
|
setInnerValue = _useState2[1];
|
|
76
74
|
|
|
75
|
+
var _useState3 = (0, _react.useState)(false),
|
|
76
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
77
|
+
dragging = _useState4[0],
|
|
78
|
+
setDragging = _useState4[1];
|
|
79
|
+
|
|
77
80
|
var colorsTheme = (0, _useTheme["default"])();
|
|
78
81
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
79
82
|
|
|
80
|
-
var
|
|
81
|
-
|
|
82
|
-
labelId =
|
|
83
|
+
var _useState5 = (0, _react.useState)("label-".concat((0, _uuid.v4)())),
|
|
84
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
|
|
85
|
+
labelId = _useState6[0];
|
|
83
86
|
|
|
84
87
|
var minLabel = (0, _react.useMemo)(function () {
|
|
85
88
|
return labelFormatCallback ? labelFormatCallback(minValue) : minValue;
|
|
@@ -87,15 +90,43 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
87
90
|
var maxLabel = (0, _react.useMemo)(function () {
|
|
88
91
|
return labelFormatCallback ? labelFormatCallback(maxValue) : maxValue;
|
|
89
92
|
}, [labelFormatCallback, maxValue]);
|
|
93
|
+
var tickMarks = (0, _react.useMemo)(function () {
|
|
94
|
+
var ticks = [];
|
|
95
|
+
var numberOfMarks = Math.floor(maxValue / step - minValue / step);
|
|
96
|
+
var index = 0;
|
|
97
|
+
var range = maxValue - minValue;
|
|
98
|
+
|
|
99
|
+
if (marks) {
|
|
100
|
+
while (index <= numberOfMarks) {
|
|
101
|
+
ticks.push( /*#__PURE__*/_react["default"].createElement(TickMark, {
|
|
102
|
+
disabled: disabled,
|
|
103
|
+
stepPosition: step * index / range * 100,
|
|
104
|
+
backgroundType: backgroundType
|
|
105
|
+
}));
|
|
106
|
+
index++;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return ticks;
|
|
110
|
+
} else {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
}, [minValue, maxValue, step]);
|
|
114
|
+
|
|
115
|
+
var handleSliderChange = function handleSliderChange(event) {
|
|
116
|
+
var valueToCheck = event.target.value;
|
|
117
|
+
(valueToCheck !== value || valueToCheck !== innerValue) && setInnerValue(valueToCheck);
|
|
118
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(valueToCheck);
|
|
119
|
+
};
|
|
90
120
|
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
valueToCheck !== newValue && setInnerValue(newValue);
|
|
94
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
|
|
121
|
+
var handleSliderDragging = function handleSliderDragging() {
|
|
122
|
+
setDragging(true);
|
|
95
123
|
};
|
|
96
124
|
|
|
97
|
-
var handleSliderOnChangeCommited = function handleSliderOnChangeCommited(event
|
|
98
|
-
|
|
125
|
+
var handleSliderOnChangeCommited = function handleSliderOnChangeCommited(event) {
|
|
126
|
+
if (dragging) {
|
|
127
|
+
setDragging(false);
|
|
128
|
+
onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event.target.value);
|
|
129
|
+
}
|
|
99
130
|
};
|
|
100
131
|
|
|
101
132
|
var handlerInputChange = function handlerInputChange(event) {
|
|
@@ -110,6 +141,7 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
110
141
|
}
|
|
111
142
|
};
|
|
112
143
|
|
|
144
|
+
var isFirefox = navigator.userAgent.indexOf("Firefox") !== -1;
|
|
113
145
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
114
146
|
theme: colorsTheme.slider
|
|
115
147
|
}, /*#__PURE__*/_react["default"].createElement(Container, {
|
|
@@ -122,28 +154,36 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
122
154
|
}, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
123
155
|
disabled: disabled,
|
|
124
156
|
backgroundType: backgroundType
|
|
125
|
-
}, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, {
|
|
126
|
-
backgroundType: backgroundType
|
|
127
|
-
}, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
|
|
157
|
+
}, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, null, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
|
|
128
158
|
backgroundType: backgroundType,
|
|
129
159
|
disabled: disabled
|
|
130
|
-
}, minLabel), /*#__PURE__*/_react["default"].createElement(
|
|
131
|
-
|
|
160
|
+
}, minLabel), /*#__PURE__*/_react["default"].createElement(SliderInputContainer, null, /*#__PURE__*/_react["default"].createElement(SliderInput, {
|
|
161
|
+
role: "slider",
|
|
162
|
+
type: "range",
|
|
163
|
+
value: value != null && value >= 0 ? value : innerValue,
|
|
132
164
|
min: minValue,
|
|
133
165
|
max: maxValue,
|
|
134
|
-
onChange: handlerSliderChange,
|
|
135
|
-
onChangeCommitted: handleSliderOnChangeCommited,
|
|
136
166
|
step: step,
|
|
137
|
-
marks: marks
|
|
167
|
+
marks: marks,
|
|
138
168
|
disabled: disabled,
|
|
139
|
-
"aria-labelledby": labelId
|
|
140
|
-
|
|
169
|
+
"aria-labelledby": labelId,
|
|
170
|
+
"aria-orientation": "horizontal",
|
|
171
|
+
"aria-valuemax": maxValue,
|
|
172
|
+
"aria-valuemin": minValue,
|
|
173
|
+
"aria-valuenow": value != null && value >= 0 ? value : innerValue,
|
|
174
|
+
onChange: handleSliderChange,
|
|
175
|
+
onMouseUp: handleSliderOnChangeCommited,
|
|
176
|
+
onMouseDown: handleSliderDragging,
|
|
177
|
+
backgroundType: backgroundType
|
|
178
|
+
}), marks && /*#__PURE__*/_react["default"].createElement(MarksContainer, {
|
|
179
|
+
isFirefox: isFirefox
|
|
180
|
+
}, tickMarks)), showLimitsValues && /*#__PURE__*/_react["default"].createElement(MaxLabelContainer, {
|
|
141
181
|
backgroundType: backgroundType,
|
|
142
182
|
disabled: disabled,
|
|
143
183
|
step: step
|
|
144
184
|
}, maxLabel), showInput && /*#__PURE__*/_react["default"].createElement(StyledTextInput, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
145
185
|
name: name,
|
|
146
|
-
value: value != null && value >= 0
|
|
186
|
+
value: value != null && value >= 0 ? value.toString() : innerValue.toString(),
|
|
147
187
|
disabled: disabled,
|
|
148
188
|
onChange: handlerInputChange,
|
|
149
189
|
size: "fillParent"
|
|
@@ -160,6 +200,14 @@ var calculateWidth = function calculateWidth(margin, size) {
|
|
|
160
200
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
161
201
|
};
|
|
162
202
|
|
|
203
|
+
var getChromeStyles = function getChromeStyles() {
|
|
204
|
+
return "\n width: 100%;\n margin-right: 4px;";
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
var getFireFoxStyles = function getFireFoxStyles() {
|
|
208
|
+
return "\n width: calc(100% - 16px);\n margin-right: 3px;";
|
|
209
|
+
};
|
|
210
|
+
|
|
163
211
|
var Container = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n"])), function (props) {
|
|
164
212
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
165
213
|
}, function (props) {
|
|
@@ -188,7 +236,7 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
|
|
|
188
236
|
return props.theme.labelLineHeight;
|
|
189
237
|
});
|
|
190
238
|
|
|
191
|
-
var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
239
|
+
var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
192
240
|
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
|
|
193
241
|
}, function (props) {
|
|
194
242
|
return props.theme.fontFamily;
|
|
@@ -202,83 +250,51 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
|
|
|
202
250
|
return props.theme.helperTextLineHeight;
|
|
203
251
|
});
|
|
204
252
|
|
|
205
|
-
var
|
|
206
|
-
return props.
|
|
207
|
-
}, function (props) {
|
|
208
|
-
return props.theme.thumbHeight;
|
|
209
|
-
}, function (props) {
|
|
210
|
-
return props.theme.thumbWidth;
|
|
211
|
-
}, function (props) {
|
|
212
|
-
return props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor;
|
|
213
|
-
}, function (props) {
|
|
214
|
-
return props.theme.disabledThumbVerticalPosition;
|
|
215
|
-
}, function (props) {
|
|
216
|
-
return props.backgroundType === "dark" ? props.theme.disabledTrackLineColorOnDark : props.theme.disabledTrackLineColor;
|
|
217
|
-
}, function (props) {
|
|
218
|
-
return props.backgroundType === "dark" ? props.theme.disabledTotalLineColorOnDark : props.theme.disabledTotalLineColor;
|
|
219
|
-
}, function (props) {
|
|
220
|
-
return props.backgroundType === "dark" ? props.theme.disabledTickBackgroundColorOnDark : props.theme.disabledTickBackgroundColor;
|
|
253
|
+
var SliderInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n min-width: 240px;\n height: ", ";\n display: inline-block;\n vertical-align: middle;\n -webkit-appearance: none;\n background-color: ", ";\n background-image: ", ";\n background-repeat: no-repeat;\n background-size: ", ";\n border-radius: 5px;\n z-index: 1;\n cursor: ", ";\n &::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n margin: 0px -8px;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n ", "\n }\n &:hover {\n ", "\n }\n }\n &::-moz-range-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n }\n &::-moz-range-thumb {\n -webkit-appearance: none;\n border: none;\n height: ", ";\n width: ", ";\n border-radius: 25px;\n background: ", ";\n &:active {\n background: ", ";\n transform: scale(1.16667);\n }\n &:hover {\n ", "\n }\n }\n &:focus {\n outline: none;\n &::-webkit-slider-thumb {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n }\n &::-moz-range-thumb {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n }\n }\n"])), function (props) {
|
|
254
|
+
return props.theme.trackLineThickness;
|
|
221
255
|
}, function (props) {
|
|
222
|
-
return props.backgroundType === "dark" ? props.theme.
|
|
256
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledTotalLineColorOnDark + "61" : props.theme.disabledTotalLineColor + "61" : props.backgroundType === "dark" ? props.theme.totalLineColorOnDark + "61" : props.theme.totalLineColor + "61";
|
|
223
257
|
}, function (props) {
|
|
224
|
-
return props.theme.
|
|
258
|
+
return props.disabled ? props.backgroundType === "dark" ? "linear-gradient(".concat(props.theme.disabledTrackLineColorOnDark, ", ").concat(props.theme.disabledTrackLineColorOnDark, ")") : "linear-gradient(".concat(props.theme.disabledTrackLineColor, ", ").concat(props.theme.disabledTrackLineColor, ")") : props.backgroundType === "dark" ? "linear-gradient(".concat(props.theme.trackLineColorOnDark, ", ").concat(props.theme.trackLineColorOnDark, ")") : "linear-gradient(".concat(props.theme.trackLineColor, ", ").concat(props.theme.trackLineColor, ")");
|
|
225
259
|
}, function (props) {
|
|
226
|
-
return props.
|
|
260
|
+
return (props.value - props.min) * 100 / (props.max - props.min) + "% 100%";
|
|
227
261
|
}, function (props) {
|
|
228
|
-
return props.
|
|
262
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
229
263
|
}, function (props) {
|
|
230
264
|
return props.theme.thumbHeight;
|
|
231
265
|
}, function (props) {
|
|
232
266
|
return props.theme.thumbWidth;
|
|
233
267
|
}, function (props) {
|
|
234
|
-
return props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
|
|
268
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor : props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
|
|
235
269
|
}, function (props) {
|
|
236
|
-
|
|
270
|
+
if (!props.disabled) {
|
|
271
|
+
return "\n background: ".concat(props.backgroundType === "dark" ? props.theme.activeThumbBackgroundColorOnDark : props.theme.activeThumbBackgroundColor, ";\n transform: scale(1.16667);");
|
|
272
|
+
}
|
|
237
273
|
}, function (props) {
|
|
238
|
-
|
|
274
|
+
if (!props.disabled) {
|
|
275
|
+
return "height: ".concat(props.theme.hoverThumbHeight, ";\n width: ").concat(props.theme.hoverThumbWidth, ";\n transform: scale(1.16667);\n transform-origin: center center;\n background: ").concat(props.backgroundType === "dark" ? props.theme.hoverThumbBackgroundColorOnDark : props.theme.hoverThumbBackgroundColor, ";");
|
|
276
|
+
}
|
|
239
277
|
}, function (props) {
|
|
240
|
-
return props.
|
|
241
|
-
}, function (props) {
|
|
242
|
-
return props.backgroundType === "dark" ? props.theme.hoverThumbBackgroundColorOnDark : props.theme.hoverThumbBackgroundColor;
|
|
243
|
-
}, function (props) {
|
|
244
|
-
return props.theme.hoverThumbScale;
|
|
245
|
-
}, function (props) {
|
|
246
|
-
return props.theme.hoverThumbHeight;
|
|
278
|
+
return props.theme.thumbHeight;
|
|
247
279
|
}, function (props) {
|
|
248
|
-
return props.theme.
|
|
280
|
+
return props.theme.thumbWidth;
|
|
249
281
|
}, function (props) {
|
|
250
|
-
return props.theme.
|
|
282
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor : props.backgroundType === "dark" ? props.theme.thumbBackgroundColorOnDark : props.theme.thumbBackgroundColor;
|
|
251
283
|
}, function (props) {
|
|
252
284
|
return props.backgroundType === "dark" ? props.theme.activeThumbBackgroundColorOnDark : props.theme.activeThumbBackgroundColor;
|
|
253
285
|
}, function (props) {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
}, function (props) {
|
|
258
|
-
return props.theme.trackLineThickness;
|
|
286
|
+
if (!props.disabled) {
|
|
287
|
+
return "height: ".concat(props.theme.hoverThumbHeight, ";\n width: ").concat(props.theme.hoverThumbWidth, ";\n transform: scale(1.16667);\n transform-origin: center center;\n background: ").concat(props.backgroundType === "dark" ? props.theme.hoverThumbBackgroundColorOnDark : props.theme.hoverThumbBackgroundColor, ";");
|
|
288
|
+
}
|
|
259
289
|
}, function (props) {
|
|
260
|
-
return props.theme.
|
|
290
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledFocusColorOnDark : props.theme.disabledFocusColor : props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
|
|
261
291
|
}, function (props) {
|
|
262
|
-
return props.backgroundType === "dark" ? props.theme.
|
|
263
|
-
}, function (props) {
|
|
264
|
-
return props.backgroundType === "dark" ? props.theme.totalLineColorOnDark : props.theme.totalLineColor;
|
|
265
|
-
}, function (props) {
|
|
266
|
-
return props.theme.totalLineThickness;
|
|
267
|
-
}, function (props) {
|
|
268
|
-
return props.theme.totalLineVerticalPosition;
|
|
269
|
-
}, function (props) {
|
|
270
|
-
return props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
|
|
271
|
-
}, function (props) {
|
|
272
|
-
return props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
|
|
273
|
-
}, function (props) {
|
|
274
|
-
return props.theme.tickHeight;
|
|
275
|
-
}, function (props) {
|
|
276
|
-
return props.theme.tickWidth;
|
|
277
|
-
}, function (props) {
|
|
278
|
-
return props.theme.tickVerticalPosition;
|
|
292
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledFocusColorOnDark : props.theme.disabledFocusColor : props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
|
|
279
293
|
});
|
|
280
294
|
|
|
281
|
-
var
|
|
295
|
+
var SliderContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 48px;\n align-items: center;\n"])));
|
|
296
|
+
|
|
297
|
+
var LimitLabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n white-space: nowrap;\n"])), function (props) {
|
|
282
298
|
return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
|
|
283
299
|
}, function (props) {
|
|
284
300
|
return props.theme.fontFamily;
|
|
@@ -290,27 +306,32 @@ var MinLabelContainer = _styledComponents["default"].span(_templateObject5 || (_
|
|
|
290
306
|
return props.theme.limitValuesFontWeight;
|
|
291
307
|
}, function (props) {
|
|
292
308
|
return props.theme.limitValuesFontLetterSpacing;
|
|
293
|
-
}
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
var MinLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n"])), function (props) {
|
|
294
312
|
return props.theme.floorLabelMarginRight;
|
|
295
313
|
});
|
|
314
|
+
var MaxLabelContainer = (0, _styledComponents["default"])(LimitLabelContainer)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n"])), function (props) {
|
|
315
|
+
return props.step === 1 ? props.theme.ceilLabelMarginLeft : "1.25rem";
|
|
316
|
+
});
|
|
296
317
|
|
|
297
|
-
var
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
return props.
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
return props.theme.
|
|
318
|
+
var SliderInputContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n width: 100%;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: -2px;\n padding-top: 1px;\n"])));
|
|
319
|
+
|
|
320
|
+
var MarksContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n position: absolute;\n pointer-events: none;\n height: 100%;\n display: flex;\n align-items: center;\n"])), function (props) {
|
|
321
|
+
return props.isFirefox ? getFireFoxStyles() : getChromeStyles();
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
var TickMark = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n background: ", ";\n height: ", ";\n width: ", ";\n border-radius: 18px;\n left: ", ";\n"])), function (props) {
|
|
325
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledTickBackgroundColorOnDark : props.theme.disabledTickBackgroundColor : props.backgroundType === "dark" ? props.theme.tickBackgroundColorOnDark : props.theme.tickBackgroundColor;
|
|
305
326
|
}, function (props) {
|
|
306
|
-
return props.theme.
|
|
327
|
+
return props.theme.tickHeight;
|
|
307
328
|
}, function (props) {
|
|
308
|
-
return props.theme.
|
|
329
|
+
return props.theme.tickWidth;
|
|
309
330
|
}, function (props) {
|
|
310
|
-
return
|
|
331
|
+
return "".concat(props.stepPosition, "%");
|
|
311
332
|
});
|
|
312
333
|
|
|
313
|
-
var StyledTextInput = _styledComponents["default"].div(
|
|
334
|
+
var StyledTextInput = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n max-width: 70px;\n"])), function (props) {
|
|
314
335
|
return props.theme.inputMarginLeft;
|
|
315
336
|
});
|
|
316
337
|
|
|
@@ -171,7 +171,13 @@ export const Chromatic = () => (
|
|
|
171
171
|
</ExampleContainer>
|
|
172
172
|
<ExampleContainer>
|
|
173
173
|
<Title title="Large limit values labels" theme="light" level={4} />
|
|
174
|
-
<DxcSlider
|
|
174
|
+
<DxcSlider
|
|
175
|
+
label="Slider"
|
|
176
|
+
helperText="Help message"
|
|
177
|
+
showLimitsValues
|
|
178
|
+
labelFormatCallback={labelFormat}
|
|
179
|
+
size="large"
|
|
180
|
+
/>
|
|
175
181
|
</ExampleContainer>
|
|
176
182
|
</>
|
|
177
183
|
);
|
package/slider/Slider.test.js
CHANGED
|
@@ -6,19 +6,26 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
6
6
|
|
|
7
7
|
var _react2 = require("@testing-library/react");
|
|
8
8
|
|
|
9
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
10
|
+
|
|
9
11
|
var _Slider = _interopRequireDefault(require("./Slider"));
|
|
10
12
|
|
|
11
13
|
describe("Slider component tests", function () {
|
|
12
|
-
test("Slider renders with correct text", function () {
|
|
14
|
+
test("Slider renders with correct text and label id", function () {
|
|
13
15
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
16
|
+
label: "label",
|
|
14
17
|
minValue: 0,
|
|
15
18
|
maxValue: 100,
|
|
16
19
|
showLimitsValues: true
|
|
17
20
|
})),
|
|
18
|
-
getByText = _render.getByText
|
|
21
|
+
getByText = _render.getByText,
|
|
22
|
+
getByRole = _render.getByRole;
|
|
19
23
|
|
|
20
24
|
expect(getByText("0")).toBeTruthy();
|
|
21
25
|
expect(getByText("100")).toBeTruthy();
|
|
26
|
+
var sliderId = getByText("label").getAttribute("id");
|
|
27
|
+
expect(getByRole("slider").getAttribute("aria-labelledby")).toBe(sliderId);
|
|
28
|
+
expect(getByRole("slider").getAttribute("aria-orientation")).toBe("horizontal");
|
|
22
29
|
});
|
|
23
30
|
test("Slider renders with correct initial value when it is uncontrolled", function () {
|
|
24
31
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
@@ -35,10 +42,37 @@ describe("Slider component tests", function () {
|
|
|
35
42
|
expect(slider.getAttribute("aria-valuenow")).toBe("30");
|
|
36
43
|
expect(input.value).toBe("30");
|
|
37
44
|
});
|
|
45
|
+
test("Slider correct limit values", function () {
|
|
46
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
47
|
+
defaultValue: 125,
|
|
48
|
+
minValue: 30,
|
|
49
|
+
maxValue: 125,
|
|
50
|
+
showLimitsValues: true
|
|
51
|
+
})),
|
|
52
|
+
getByRole = _render3.getByRole,
|
|
53
|
+
getByText = _render3.getByText;
|
|
54
|
+
|
|
55
|
+
var slider = getByRole("slider");
|
|
56
|
+
expect(slider.getAttribute("aria-valuemin")).toBe("30");
|
|
57
|
+
expect(slider.getAttribute("aria-valuemax")).toBe("125");
|
|
58
|
+
|
|
59
|
+
_userEvent["default"].tab();
|
|
60
|
+
|
|
61
|
+
_react2.fireEvent.keyDown(slider, {
|
|
62
|
+
key: "ArrowRight",
|
|
63
|
+
code: "ArrowRight",
|
|
64
|
+
keyCode: 39,
|
|
65
|
+
charCode: 39
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
expect(slider.getAttribute("aria-valuenow")).toBe("125");
|
|
69
|
+
expect(getByText("30")).toBeTruthy();
|
|
70
|
+
expect(getByText("125")).toBeTruthy();
|
|
71
|
+
});
|
|
38
72
|
test("Calls correct function onChange in controlled slider", function () {
|
|
39
73
|
var onChange = jest.fn();
|
|
40
74
|
|
|
41
|
-
var
|
|
75
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
42
76
|
minValue: 0,
|
|
43
77
|
maxValue: 100,
|
|
44
78
|
onChange: onChange,
|
|
@@ -46,7 +80,7 @@ describe("Slider component tests", function () {
|
|
|
46
80
|
value: 13,
|
|
47
81
|
showInput: true
|
|
48
82
|
})),
|
|
49
|
-
getByRole =
|
|
83
|
+
getByRole = _render4.getByRole;
|
|
50
84
|
|
|
51
85
|
expect(getByRole("slider").getAttribute("aria-valuenow")).toBe("13");
|
|
52
86
|
expect(getByRole("textbox").value).toBe("13");
|
|
@@ -64,14 +98,14 @@ describe("Slider component tests", function () {
|
|
|
64
98
|
test("Calls correct function onChange in uncontrolled slider", function () {
|
|
65
99
|
var onChange = jest.fn();
|
|
66
100
|
|
|
67
|
-
var
|
|
101
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
68
102
|
minValue: 0,
|
|
69
103
|
maxValue: 100,
|
|
70
104
|
onChange: onChange,
|
|
71
105
|
showLimitsValues: true,
|
|
72
106
|
showInput: true
|
|
73
107
|
})),
|
|
74
|
-
getByRole =
|
|
108
|
+
getByRole = _render5.getByRole;
|
|
75
109
|
|
|
76
110
|
(0, _react2.act)(function () {
|
|
77
111
|
_react2.fireEvent.change(getByRole("textbox"), {
|
|
@@ -84,10 +118,10 @@ describe("Slider component tests", function () {
|
|
|
84
118
|
expect(getByRole("slider").getAttribute("aria-valuenow")).toBe("25");
|
|
85
119
|
expect(getByRole("textbox").value).toBe("25");
|
|
86
120
|
});
|
|
87
|
-
test("Disabled slider have disabled input", function () {
|
|
121
|
+
test("Disabled slider have disabled input and slider", function () {
|
|
88
122
|
var onChange = jest.fn();
|
|
89
123
|
|
|
90
|
-
var
|
|
124
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
91
125
|
minValue: 0,
|
|
92
126
|
maxValue: 100,
|
|
93
127
|
onChange: onChange,
|
|
@@ -96,7 +130,7 @@ describe("Slider component tests", function () {
|
|
|
96
130
|
showInput: true,
|
|
97
131
|
value: 13
|
|
98
132
|
})),
|
|
99
|
-
getByRole =
|
|
133
|
+
getByRole = _render6.getByRole;
|
|
100
134
|
|
|
101
135
|
(0, _react2.act)(function () {
|
|
102
136
|
_react2.fireEvent.change(getByRole("textbox"), {
|
|
@@ -107,33 +141,64 @@ describe("Slider component tests", function () {
|
|
|
107
141
|
});
|
|
108
142
|
expect(getByRole("textbox").hasAttribute("disabled")).toBeTruthy();
|
|
109
143
|
expect(getByRole("textbox").value).toBe("13");
|
|
144
|
+
expect(getByRole("slider").hasAttribute("disabled")).toBeTruthy();
|
|
110
145
|
});
|
|
111
|
-
test("Calls correct function onDragEnd", function () {
|
|
146
|
+
test("Calls correct function onDragEnd when it is uncontrolled", function () {
|
|
112
147
|
var onDragEnd = jest.fn();
|
|
113
148
|
|
|
114
|
-
var
|
|
149
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
115
150
|
minValue: 0,
|
|
116
|
-
maxValue:
|
|
117
|
-
showLimitsValues: true,
|
|
118
|
-
showInput: true,
|
|
151
|
+
maxValue: 150,
|
|
119
152
|
onDragEnd: onDragEnd,
|
|
120
|
-
|
|
153
|
+
showInput: true
|
|
121
154
|
})),
|
|
122
|
-
getByRole =
|
|
155
|
+
getByRole = _render7.getByRole;
|
|
123
156
|
|
|
157
|
+
var slider = getByRole("slider");
|
|
158
|
+
(0, _react2.act)(function () {
|
|
159
|
+
_react2.fireEvent.mouseDown(slider);
|
|
160
|
+
});
|
|
124
161
|
(0, _react2.act)(function () {
|
|
125
|
-
_react2.fireEvent.
|
|
162
|
+
_react2.fireEvent.mouseUp(slider, {
|
|
163
|
+
target: {
|
|
164
|
+
value: 120
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
expect(onDragEnd).toHaveBeenCalledWith("120");
|
|
169
|
+
});
|
|
170
|
+
test("Calls correct function onDragEnd when it is controlled", function () {
|
|
171
|
+
var onDragEnd = jest.fn();
|
|
126
172
|
|
|
127
|
-
|
|
173
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
174
|
+
minValue: 0,
|
|
175
|
+
maxValue: 150,
|
|
176
|
+
value: 50,
|
|
177
|
+
onDragEnd: onDragEnd,
|
|
178
|
+
showInput: true
|
|
179
|
+
})),
|
|
180
|
+
getByRole = _render8.getByRole;
|
|
181
|
+
|
|
182
|
+
var slider = getByRole("slider");
|
|
183
|
+
(0, _react2.act)(function () {
|
|
184
|
+
_react2.fireEvent.mouseDown(slider);
|
|
128
185
|
});
|
|
129
|
-
|
|
186
|
+
(0, _react2.act)(function () {
|
|
187
|
+
_react2.fireEvent.mouseUp(slider, {
|
|
188
|
+
target: {
|
|
189
|
+
value: 120
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
expect(onDragEnd).toHaveBeenCalledWith("120");
|
|
194
|
+
expect(slider.getAttribute("aria-valuenow")).toBe("50");
|
|
130
195
|
});
|
|
131
196
|
test("Calls correct function labelFormatCallback", function () {
|
|
132
197
|
var labelFormatCallback = jest.fn(function (x) {
|
|
133
198
|
return "".concat(x, "$");
|
|
134
199
|
});
|
|
135
200
|
|
|
136
|
-
var
|
|
201
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
137
202
|
minValue: 0,
|
|
138
203
|
maxValue: 100,
|
|
139
204
|
showLimitsValues: true,
|
|
@@ -141,10 +206,45 @@ describe("Slider component tests", function () {
|
|
|
141
206
|
value: 25,
|
|
142
207
|
labelFormatCallback: labelFormatCallback
|
|
143
208
|
})),
|
|
144
|
-
getByText =
|
|
209
|
+
getByText = _render9.getByText;
|
|
145
210
|
|
|
146
211
|
expect(getByText("0$")).toBeTruthy();
|
|
147
212
|
expect(getByText("100$")).toBeTruthy();
|
|
148
213
|
expect(labelFormatCallback).toHaveBeenCalledTimes(2);
|
|
149
214
|
});
|
|
215
|
+
test("Change value correctly to 0 from external function", function () {
|
|
216
|
+
var onChange = jest.fn();
|
|
217
|
+
|
|
218
|
+
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
219
|
+
minValue: 0,
|
|
220
|
+
maxValue: 100,
|
|
221
|
+
onChange: onChange,
|
|
222
|
+
showLimitsValues: true,
|
|
223
|
+
value: 13,
|
|
224
|
+
showInput: true
|
|
225
|
+
})),
|
|
226
|
+
rerender = _render10.rerender,
|
|
227
|
+
getByRole = _render10.getByRole;
|
|
228
|
+
|
|
229
|
+
var slider = getByRole("slider");
|
|
230
|
+
|
|
231
|
+
_userEvent["default"].tab();
|
|
232
|
+
|
|
233
|
+
_react2.fireEvent.keyDown(slider, {
|
|
234
|
+
key: "ArrowRight",
|
|
235
|
+
code: "ArrowRight",
|
|
236
|
+
keyCode: 39,
|
|
237
|
+
charCode: 39
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
rerender( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
241
|
+
minValue: 0,
|
|
242
|
+
maxValue: 100,
|
|
243
|
+
onChange: onChange,
|
|
244
|
+
showLimitsValues: true,
|
|
245
|
+
value: 0,
|
|
246
|
+
showInput: true
|
|
247
|
+
}));
|
|
248
|
+
expect(slider.getAttribute("aria-valuenow")).toBe("0");
|
|
249
|
+
});
|
|
150
250
|
});
|
package/slider/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
-
declare type Margin = {
|
|
1
|
+
export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
+
export declare type Margin = {
|
|
3
3
|
top?: Space;
|
|
4
4
|
bottom?: Space;
|
|
5
5
|
left?: Space;
|
package/switch/Switch.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import SwitchPropsType from "./types";
|
|
2
|
+
import { SwitchPropsType } from "./types";
|
|
3
3
|
declare const DxcSwitch: ({ defaultChecked, checked, value, label, labelPosition, name, disabled, optional, onChange, margin, size, tabIndex, }: SwitchPropsType) => JSX.Element;
|
|
4
4
|
export default DxcSwitch;
|