@dxc-technology/halstack-react 0.0.0-d20b360 → 0.0.0-d3554d7
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 +10 -0
- package/BackgroundColorContext.js +1 -4
- package/ThemeContext.d.ts +10 -0
- package/ThemeContext.js +26 -29
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +11 -22
- package/accordion/Accordion.stories.tsx +307 -0
- package/accordion/Accordion.test.js +57 -0
- package/accordion/types.d.ts +4 -8
- package/accordion-group/AccordionGroup.js +2 -2
- package/accordion-group/AccordionGroup.stories.tsx +225 -0
- package/accordion-group/AccordionGroup.test.js +133 -0
- package/accordion-group/types.d.ts +4 -8
- package/alert/Alert.js +2 -2
- package/alert/Alert.stories.tsx +170 -0
- package/alert/Alert.test.js +92 -0
- package/alert/types.d.ts +1 -1
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +1 -1
- package/badge/types.d.ts +4 -0
- package/badge/types.js +5 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +84 -0
- package/bleed/Bleed.stories.tsx +342 -0
- package/bleed/types.d.ts +13 -0
- package/bleed/types.js +5 -0
- package/box/Box.d.ts +4 -0
- package/box/Box.js +6 -32
- package/box/{Box.stories.jsx → Box.stories.tsx} +0 -0
- package/box/Box.test.js +18 -0
- package/box/types.d.ts +43 -0
- package/box/types.js +5 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +15 -26
- package/button/Button.stories.tsx +223 -242
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +9 -13
- package/card/Card.js +5 -6
- package/card/Card.stories.tsx +201 -0
- package/card/Card.test.js +50 -0
- package/card/ice-cream.jpg +0 -0
- package/card/types.d.ts +4 -6
- package/checkbox/Checkbox.js +2 -2
- package/checkbox/Checkbox.test.js +65 -0
- package/checkbox/types.d.ts +2 -2
- package/chip/Chip.d.ts +4 -0
- package/chip/Chip.js +16 -76
- package/chip/Chip.stories.tsx +119 -0
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +45 -0
- package/chip/types.js +5 -0
- package/common/variables.js +85 -281
- package/date-input/DateInput.js +10 -13
- package/date-input/DateInput.stories.tsx +138 -0
- package/date-input/DateInput.test.js +469 -0
- package/dialog/Dialog.js +4 -3
- package/dialog/Dialog.stories.tsx +212 -0
- package/dialog/Dialog.test.js +40 -0
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +13 -35
- package/dropdown/Dropdown.stories.tsx +249 -0
- package/dropdown/Dropdown.test.js +189 -0
- package/dropdown/types.d.ts +6 -15
- package/file-input/FileInput.d.ts +4 -0
- package/file-input/FileInput.js +167 -109
- package/file-input/FileInput.stories.tsx +507 -0
- package/file-input/FileInput.test.js +457 -0
- package/file-input/FileItem.d.ts +14 -0
- package/file-input/FileItem.js +12 -21
- package/file-input/types.d.ts +112 -0
- package/file-input/types.js +5 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +28 -36
- package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
- package/footer/Footer.test.js +109 -0
- package/footer/Icons.d.ts +2 -0
- package/footer/Icons.js +3 -3
- package/footer/types.d.ts +22 -18
- package/header/Header.js +2 -2
- package/header/Header.stories.tsx +162 -0
- package/header/Header.test.js +63 -0
- package/header/Icons.d.ts +2 -0
- package/header/types.d.ts +4 -2
- package/heading/Heading.d.ts +4 -0
- package/heading/Heading.js +7 -24
- package/heading/Heading.stories.tsx +54 -0
- package/heading/Heading.test.js +186 -0
- package/heading/types.d.ts +33 -0
- package/heading/types.js +5 -0
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +84 -0
- package/inset/Inset.stories.tsx +229 -0
- package/inset/types.d.ts +13 -0
- package/inset/types.js +5 -0
- package/layout/ApplicationLayout.d.ts +10 -0
- package/layout/ApplicationLayout.js +17 -21
- package/layout/ApplicationLayout.stories.tsx +171 -0
- package/layout/types.d.ts +57 -0
- package/layout/types.js +5 -0
- package/link/Link.d.ts +3 -0
- package/link/Link.js +10 -40
- package/link/Link.stories.tsx +151 -0
- package/link/Link.test.js +91 -0
- package/link/types.d.ts +70 -0
- package/link/types.js +5 -0
- package/list/List.d.ts +4 -0
- package/list/List.js +47 -0
- package/list/List.stories.tsx +95 -0
- package/list/types.d.ts +7 -0
- package/list/types.js +5 -0
- package/main.d.ts +10 -8
- package/main.js +54 -38
- package/number-input/NumberInput.d.ts +4 -0
- package/number-input/NumberInput.js +5 -50
- package/number-input/{NumberInput.stories.jsx → NumberInput.stories.tsx} +0 -0
- package/number-input/NumberInput.test.js +508 -0
- package/number-input/NumberInputContext.d.ts +4 -0
- package/number-input/NumberInputContext.js +5 -2
- package/number-input/numberInputContextTypes.d.ts +19 -0
- package/number-input/numberInputContextTypes.js +5 -0
- package/number-input/types.d.ts +117 -0
- package/number-input/types.js +5 -0
- package/package.json +4 -2
- package/paginator/Paginator.js +2 -8
- package/paginator/Paginator.test.js +266 -0
- package/password-input/PasswordInput.d.ts +4 -0
- package/password-input/PasswordInput.js +19 -55
- package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +4 -4
- package/password-input/PasswordInput.test.js +183 -0
- package/password-input/types.d.ts +107 -0
- package/password-input/types.js +5 -0
- package/progress-bar/ProgressBar.js +4 -4
- package/progress-bar/ProgressBar.stories.jsx +58 -0
- package/progress-bar/ProgressBar.test.js +65 -0
- package/radio/Radio.js +2 -2
- package/radio/Radio.test.js +71 -0
- package/radio/types.d.ts +2 -2
- package/radio-group/Radio.d.ts +4 -0
- package/radio-group/Radio.js +141 -0
- package/radio-group/RadioGroup.d.ts +4 -0
- package/radio-group/RadioGroup.js +279 -0
- package/radio-group/RadioGroup.stories.tsx +96 -0
- package/radio-group/RadioGroup.test.js +694 -0
- package/radio-group/types.d.ts +37 -0
- package/radio-group/types.js +5 -0
- package/resultsetTable/ResultsetTable.d.ts +4 -0
- package/resultsetTable/ResultsetTable.js +9 -29
- package/resultsetTable/ResultsetTable.stories.tsx +275 -0
- package/resultsetTable/ResultsetTable.test.js +306 -0
- package/resultsetTable/types.d.ts +67 -0
- package/resultsetTable/types.js +5 -0
- package/row/Row.d.ts +3 -0
- package/row/Row.js +127 -0
- package/row/Row.stories.tsx +237 -0
- package/row/types.d.ts +10 -0
- package/row/types.js +5 -0
- package/select/Select.d.ts +4 -0
- package/select/Select.js +26 -22
- package/select/Select.stories.tsx +582 -0
- package/select/Select.test.js +1900 -0
- package/select/types.d.ts +170 -0
- package/select/types.js +5 -0
- package/sidenav/Sidenav.d.ts +9 -0
- package/sidenav/Sidenav.js +6 -15
- package/sidenav/Sidenav.stories.tsx +182 -0
- package/sidenav/Sidenav.test.js +56 -0
- package/sidenav/types.d.ts +50 -0
- package/sidenav/types.js +5 -0
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +43 -32
- package/slider/Slider.stories.tsx +177 -0
- package/slider/Slider.test.js +129 -0
- package/slider/types.d.ts +2 -7
- package/spinner/Spinner.d.ts +4 -0
- package/spinner/Spinner.js +2 -19
- package/spinner/Spinner.stories.jsx +1 -0
- package/spinner/Spinner.test.js +64 -0
- package/spinner/types.d.ts +32 -0
- package/spinner/types.js +5 -0
- package/stack/Stack.d.ts +3 -0
- package/stack/Stack.js +97 -0
- package/stack/Stack.stories.tsx +164 -0
- package/stack/types.d.ts +9 -0
- package/stack/types.js +5 -0
- package/switch/Switch.js +4 -4
- package/switch/Switch.stories.tsx +160 -0
- package/switch/Switch.test.js +73 -0
- package/table/Table.d.ts +4 -0
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +2 -1
- package/table/Table.test.js +26 -0
- package/table/types.d.ts +21 -0
- package/table/types.js +5 -0
- package/tabs/Tabs.js +11 -9
- package/tabs/Tabs.stories.tsx +120 -0
- package/tabs/Tabs.test.js +123 -0
- package/tabs/types.d.ts +25 -18
- package/tag/Tag.d.ts +4 -0
- package/tag/Tag.js +26 -46
- package/tag/Tag.stories.tsx +138 -0
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +69 -0
- package/tag/types.js +5 -0
- package/text/Text.d.ts +7 -0
- package/text/Text.js +30 -0
- package/text/Text.stories.tsx +19 -0
- package/text-input/TextInput.d.ts +4 -0
- package/text-input/TextInput.js +59 -88
- package/text-input/TextInput.stories.tsx +474 -0
- package/text-input/TextInput.test.js +1691 -0
- package/text-input/types.d.ts +159 -0
- package/text-input/types.js +5 -0
- package/textarea/Textarea.d.ts +4 -0
- package/textarea/Textarea.js +32 -63
- package/textarea/Textarea.stories.jsx +34 -12
- package/textarea/Textarea.test.js +436 -0
- package/textarea/types.d.ts +130 -0
- package/textarea/types.js +5 -0
- package/toggle-group/ToggleGroup.d.ts +4 -0
- package/toggle-group/ToggleGroup.js +16 -45
- package/toggle-group/ToggleGroup.stories.tsx +173 -0
- package/toggle-group/ToggleGroup.test.js +125 -0
- package/toggle-group/types.d.ts +97 -0
- package/toggle-group/types.js +5 -0
- package/useTheme.d.ts +2 -0
- package/useTheme.js +1 -1
- package/wizard/Wizard.d.ts +4 -0
- package/wizard/Wizard.js +69 -59
- package/wizard/Wizard.stories.tsx +224 -0
- package/wizard/Wizard.test.js +128 -0
- package/wizard/types.d.ts +60 -0
- package/wizard/types.js +5 -0
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/box/index.d.ts +0 -25
- package/chip/index.d.ts +0 -22
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/file-input/index.d.ts +0 -81
- package/heading/index.d.ts +0 -17
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/link/index.d.ts +0 -23
- package/number-input/index.d.ts +0 -113
- package/password-input/index.d.ts +0 -94
- package/resultsetTable/index.d.ts +0 -19
- package/select/index.d.ts +0 -131
- package/sidenav/index.d.ts +0 -13
- package/spinner/index.d.ts +0 -17
- package/table/index.d.ts +0 -13
- package/tag/index.d.ts +0 -24
- package/text-input/index.d.ts +0 -135
- package/textarea/index.d.ts +0 -117
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/toggle-group/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
- package/wizard/Icons.js +0 -65
- package/wizard/index.d.ts +0 -18
package/slider/Slider.js
CHANGED
|
@@ -27,9 +27,11 @@ var _variables = require("../common/variables.js");
|
|
|
27
27
|
|
|
28
28
|
var _utils = require("../common/utils.js");
|
|
29
29
|
|
|
30
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
30
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
31
31
|
|
|
32
|
-
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext
|
|
32
|
+
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
33
|
+
|
|
34
|
+
var _uuid = require("uuid");
|
|
33
35
|
|
|
34
36
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
35
37
|
|
|
@@ -64,9 +66,7 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
64
66
|
labelFormatCallback = _ref.labelFormatCallback,
|
|
65
67
|
margin = _ref.margin,
|
|
66
68
|
_ref$size = _ref.size,
|
|
67
|
-
size = _ref$size === void 0 ? "fillParent" : _ref$size
|
|
68
|
-
_ref$tabIndex = _ref.tabIndex,
|
|
69
|
-
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
69
|
+
size = _ref$size === void 0 ? "fillParent" : _ref$size;
|
|
70
70
|
|
|
71
71
|
var _useState = (0, _react.useState)(0),
|
|
72
72
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
@@ -75,6 +75,11 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
75
75
|
|
|
76
76
|
var colorsTheme = (0, _useTheme["default"])();
|
|
77
77
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
78
|
+
|
|
79
|
+
var _useState3 = (0, _react.useState)("label-".concat((0, _uuid.v4)())),
|
|
80
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
|
|
81
|
+
labelId = _useState4[0];
|
|
82
|
+
|
|
78
83
|
var minLabel = (0, _react.useMemo)(function () {
|
|
79
84
|
return labelFormatCallback ? labelFormatCallback(minValue) : minValue;
|
|
80
85
|
}, [labelFormatCallback, minValue]);
|
|
@@ -109,7 +114,14 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
109
114
|
}, /*#__PURE__*/_react["default"].createElement(Container, {
|
|
110
115
|
margin: margin,
|
|
111
116
|
size: size
|
|
112
|
-
}, /*#__PURE__*/_react["default"].createElement(Label,
|
|
117
|
+
}, /*#__PURE__*/_react["default"].createElement(Label, {
|
|
118
|
+
id: labelId,
|
|
119
|
+
disabled: disabled,
|
|
120
|
+
backgroundType: backgroundType
|
|
121
|
+
}, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
122
|
+
disabled: disabled,
|
|
123
|
+
backgroundType: backgroundType
|
|
124
|
+
}, helperText), /*#__PURE__*/_react["default"].createElement(SliderContainer, {
|
|
113
125
|
backgroundType: backgroundType
|
|
114
126
|
}, showLimitsValues && /*#__PURE__*/_react["default"].createElement(MinLabelContainer, {
|
|
115
127
|
backgroundType: backgroundType,
|
|
@@ -123,23 +135,22 @@ var DxcSlider = function DxcSlider(_ref) {
|
|
|
123
135
|
step: step,
|
|
124
136
|
marks: marks || [],
|
|
125
137
|
disabled: disabled,
|
|
126
|
-
|
|
138
|
+
"aria-labelledby": labelId
|
|
127
139
|
}), showLimitsValues && /*#__PURE__*/_react["default"].createElement(MaxLabelContainer, {
|
|
128
140
|
backgroundType: backgroundType,
|
|
129
141
|
disabled: disabled,
|
|
130
142
|
step: step
|
|
131
143
|
}, maxLabel), showInput && /*#__PURE__*/_react["default"].createElement(StyledTextInput, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
|
|
132
144
|
name: name,
|
|
133
|
-
value: value != null && value >= 0 && value || innerValue,
|
|
145
|
+
value: value != null && value >= 0 && value.toString() || innerValue.toString(),
|
|
134
146
|
disabled: disabled,
|
|
135
147
|
onChange: handlerInputChange,
|
|
136
|
-
size: "fillParent"
|
|
137
|
-
tabIndex: tabIndex
|
|
148
|
+
size: "fillParent"
|
|
138
149
|
})))));
|
|
139
150
|
};
|
|
140
151
|
|
|
141
152
|
var sizes = {
|
|
142
|
-
medium: "
|
|
153
|
+
medium: "360px",
|
|
143
154
|
large: "480px",
|
|
144
155
|
fillParent: "100%"
|
|
145
156
|
};
|
|
@@ -162,10 +173,10 @@ var Container = _styledComponents["default"].div(_templateObject || (_templateOb
|
|
|
162
173
|
return calculateWidth(props.margin, props.size);
|
|
163
174
|
});
|
|
164
175
|
|
|
165
|
-
var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
166
|
-
return props.theme.labelFontColor;
|
|
176
|
+
var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
177
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
|
|
167
178
|
}, function (props) {
|
|
168
|
-
return props.theme.
|
|
179
|
+
return props.theme.fontFamily;
|
|
169
180
|
}, function (props) {
|
|
170
181
|
return props.theme.labelFontSize;
|
|
171
182
|
}, function (props) {
|
|
@@ -177,20 +188,20 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
|
|
|
177
188
|
});
|
|
178
189
|
|
|
179
190
|
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) {
|
|
180
|
-
return props.theme.helperTextFontColor;
|
|
191
|
+
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
|
|
181
192
|
}, function (props) {
|
|
182
|
-
return props.theme.
|
|
193
|
+
return props.theme.fontFamily;
|
|
183
194
|
}, function (props) {
|
|
184
195
|
return props.theme.helperTextFontSize;
|
|
185
196
|
}, function (props) {
|
|
186
|
-
return props.theme.
|
|
197
|
+
return props.theme.helperTextFontStyle;
|
|
187
198
|
}, function (props) {
|
|
188
199
|
return props.theme.helperTextFontWeight;
|
|
189
200
|
}, function (props) {
|
|
190
201
|
return props.theme.helperTextLineHeight;
|
|
191
202
|
});
|
|
192
203
|
|
|
193
|
-
var SliderContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 48px;\n align-items: center;\n\n .
|
|
204
|
+
var SliderContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 48px;\n align-items: center;\n\n .MuiSlider-root {\n min-width: 15rem;\n }\n .MuiSlider-container {\n padding: 30px 24px;\n }\n .MuiSlider-root.Mui-disabled {\n color: ", ";\n cursor: not-allowed;\n }\n .Mui-disabled {\n & .MuiSlider-thumb {\n height: ", ";\n width: ", ";\n background-color: ", ";\n top: ", ";\n }\n & .MuiSlider-track {\n background-color: ", ";\n }\n & .MuiSlider-rail {\n background-color: ", ";\n }\n & > .MuiSlider-mark.MuiSlider-markActive {\n background-color: ", " !important;\n }\n & > .MuiSlider-mark {\n background-color: ", ";\n height: ", ";\n width: ", ";\n border-radius: 18px;\n top: ", ";\n }\n }\n .MuiSlider-thumb {\n height: ", ";\n width: ", ";\n background-color: ", ";\n top: ", ";\n border-radius: 9999px;\n\n :hover,\n &.Mui-focusVisible {\n box-shadow: none;\n }\n &.MuiSlider-active {\n box-shadow: none;\n }\n :focus {\n outline: ", "\n auto 1px;\n outline-offset: 2px;\n background-color: ", ";\n }\n :hover {\n background-color: ", ";\n transform: scale(", ");\n transform-origin: center;\n height: ", ";\n width: ", ";\n top: ", ";\n }\n :active {\n background-color: ", ";\n transform: scale(", ");\n transform-origin: center;\n }\n }\n .MuiSlider-track {\n background-color: ", ";\n height: ", ";\n top: ", ";\n border-radius: 9999px;\n }\n .MuiSlider-track.MuiSlider-trackAfter {\n background-color: ", ";\n }\n .MuiSlider-rail {\n background-color: ", ";\n height: ", ";\n top: ", ";\n }\n .MuiSlider-mark.MuiSlider-markActive {\n background-color: ", ";\n }\n .MuiSlider-mark {\n background-color: ", ";\n height: ", ";\n width: ", ";\n border-radius: 18px;\n top: ", ";\n }\n"])), function (props) {
|
|
194
205
|
return props.backgroundType === "dark" ? props.theme.disabledThumbBackgroundColorOnDark : props.theme.disabledThumbBackgroundColor;
|
|
195
206
|
}, function (props) {
|
|
196
207
|
return props.theme.thumbHeight;
|
|
@@ -266,34 +277,34 @@ var SliderContainer = _styledComponents["default"].div(_templateObject4 || (_tem
|
|
|
266
277
|
return props.theme.tickVerticalPosition;
|
|
267
278
|
});
|
|
268
279
|
|
|
269
|
-
var MinLabelContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
270
|
-
return props.theme.
|
|
280
|
+
var MinLabelContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (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 margin-right: ", ";\n"])), function (props) {
|
|
281
|
+
return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
|
|
271
282
|
}, function (props) {
|
|
272
|
-
return props.theme.
|
|
283
|
+
return props.theme.fontFamily;
|
|
273
284
|
}, function (props) {
|
|
274
|
-
return props.theme.
|
|
285
|
+
return props.theme.limitValuesFontSize;
|
|
275
286
|
}, function (props) {
|
|
276
|
-
return props.theme.
|
|
287
|
+
return props.theme.limitValuesFontStyle;
|
|
277
288
|
}, function (props) {
|
|
278
|
-
return props.
|
|
289
|
+
return props.theme.limitValuesFontWeight;
|
|
279
290
|
}, function (props) {
|
|
280
|
-
return props.theme.
|
|
291
|
+
return props.theme.limitValuesFontLetterSpacing;
|
|
281
292
|
}, function (props) {
|
|
282
293
|
return props.theme.floorLabelMarginRight;
|
|
283
294
|
});
|
|
284
295
|
|
|
285
|
-
var MaxLabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
286
|
-
return props.theme.
|
|
296
|
+
var MaxLabelContainer = _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 margin-left: ", ";\n"])), function (props) {
|
|
297
|
+
return props.disabled ? props.theme.disabledLimitValuesFontColor : props.backgroundType === "dark" ? props.theme.limitValuesFontColorOnDark : props.theme.limitValuesFontColor;
|
|
287
298
|
}, function (props) {
|
|
288
|
-
return props.theme.
|
|
299
|
+
return props.theme.fontFamily;
|
|
289
300
|
}, function (props) {
|
|
290
|
-
return props.theme.
|
|
301
|
+
return props.theme.limitValuesFontSize;
|
|
291
302
|
}, function (props) {
|
|
292
|
-
return props.theme.
|
|
303
|
+
return props.theme.limitValuesFontStyle;
|
|
293
304
|
}, function (props) {
|
|
294
|
-
return props.
|
|
305
|
+
return props.theme.limitValuesFontWeight;
|
|
295
306
|
}, function (props) {
|
|
296
|
-
return props.theme.
|
|
307
|
+
return props.theme.limitValuesFontLetterSpacing;
|
|
297
308
|
}, function (props) {
|
|
298
309
|
return props.step === 1 ? props.theme.ceilLabelMarginLeft : "1.25rem";
|
|
299
310
|
});
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import DxcSlider from "./Slider";
|
|
3
|
+
import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
4
|
+
import Title from "../../.storybook/components/Title";
|
|
5
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
|
+
import DarkContainer from "../../.storybook/components/DarkSection";
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
title: "Slider",
|
|
10
|
+
component: DxcSlider,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const labelFormat = (value) => `${value}E100000000000000000000000`;
|
|
14
|
+
|
|
15
|
+
export const Chromatic = () => (
|
|
16
|
+
<>
|
|
17
|
+
<Title title="States" theme="light" level={2} />
|
|
18
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
19
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
20
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
21
|
+
</ExampleContainer>
|
|
22
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
23
|
+
<Title title="Active" theme="light" level={4} />
|
|
24
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
25
|
+
</ExampleContainer>
|
|
26
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
27
|
+
<Title title="Focused" theme="light" level={4} />
|
|
28
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
29
|
+
</ExampleContainer>
|
|
30
|
+
<ExampleContainer>
|
|
31
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
32
|
+
<DxcSlider label="Slider" helperText="Help message" disabled showLimitsValues />
|
|
33
|
+
</ExampleContainer>
|
|
34
|
+
<ExampleContainer>
|
|
35
|
+
<Title title="Disabled discrete slider with input" theme="light" level={4} />
|
|
36
|
+
<DxcSlider
|
|
37
|
+
label="Slider"
|
|
38
|
+
helperText="Help message"
|
|
39
|
+
disabled
|
|
40
|
+
value={40}
|
|
41
|
+
minValue={0}
|
|
42
|
+
maxValue={50}
|
|
43
|
+
showLimitsValues
|
|
44
|
+
showInput
|
|
45
|
+
marks
|
|
46
|
+
step={10}
|
|
47
|
+
/>
|
|
48
|
+
</ExampleContainer>
|
|
49
|
+
<Title title="Variants" theme="light" level={2} />
|
|
50
|
+
<ExampleContainer>
|
|
51
|
+
<Title title="Continuous slider" theme="light" level={4} />
|
|
52
|
+
<DxcSlider value={65} label="Slider" helperText="Help message" showLimitsValues />
|
|
53
|
+
</ExampleContainer>
|
|
54
|
+
<ExampleContainer>
|
|
55
|
+
<Title title="Discrete slider" theme="light" level={4} />
|
|
56
|
+
<DxcSlider value={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
|
|
57
|
+
</ExampleContainer>
|
|
58
|
+
<ExampleContainer>
|
|
59
|
+
<Title title="Discrete slider with input" theme="light" level={4} />
|
|
60
|
+
<DxcSlider
|
|
61
|
+
value={20}
|
|
62
|
+
minValue={0}
|
|
63
|
+
maxValue={50}
|
|
64
|
+
label="Slider"
|
|
65
|
+
helperText="Help message"
|
|
66
|
+
showLimitsValues
|
|
67
|
+
showInput
|
|
68
|
+
marks
|
|
69
|
+
step={10}
|
|
70
|
+
/>
|
|
71
|
+
</ExampleContainer>
|
|
72
|
+
<BackgroundColorProvider color="#333333">
|
|
73
|
+
<DarkContainer>
|
|
74
|
+
<Title title="Dark" theme="dark" level={2} />
|
|
75
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
76
|
+
<Title title="Hovered" theme="dark" level={4} />
|
|
77
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
78
|
+
</ExampleContainer>
|
|
79
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
80
|
+
<Title title="Active" theme="dark" level={4} />
|
|
81
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
82
|
+
</ExampleContainer>
|
|
83
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
84
|
+
<Title title="Focused" theme="dark" level={4} />
|
|
85
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues />
|
|
86
|
+
</ExampleContainer>
|
|
87
|
+
<ExampleContainer>
|
|
88
|
+
<Title title="Disabled" theme="dark" level={4} />
|
|
89
|
+
<DxcSlider label="Slider" helperText="Help message" disabled showLimitsValues />
|
|
90
|
+
</ExampleContainer>
|
|
91
|
+
<ExampleContainer>
|
|
92
|
+
<Title title="Disabled discrete slider with input" theme="dark" level={4} />
|
|
93
|
+
<DxcSlider
|
|
94
|
+
label="Slider"
|
|
95
|
+
helperText="Help message"
|
|
96
|
+
disabled
|
|
97
|
+
value={40}
|
|
98
|
+
minValue={0}
|
|
99
|
+
maxValue={50}
|
|
100
|
+
showLimitsValues
|
|
101
|
+
showInput
|
|
102
|
+
marks
|
|
103
|
+
step={5}
|
|
104
|
+
/>
|
|
105
|
+
</ExampleContainer>
|
|
106
|
+
<ExampleContainer>
|
|
107
|
+
<Title title="Continuous slider" theme="dark" level={4} />
|
|
108
|
+
<DxcSlider value={65} label="Slider" helperText="Help message" showLimitsValues />
|
|
109
|
+
</ExampleContainer>
|
|
110
|
+
<ExampleContainer>
|
|
111
|
+
<Title title="Discrete slider" theme="dark" level={4} />
|
|
112
|
+
<DxcSlider value={20} label="Slider" helperText="Help message" showLimitsValues marks step={5} />
|
|
113
|
+
</ExampleContainer>
|
|
114
|
+
<ExampleContainer>
|
|
115
|
+
<Title title="Discrete slider with input" theme="dark" level={4} />
|
|
116
|
+
<DxcSlider
|
|
117
|
+
value={20}
|
|
118
|
+
minValue={0}
|
|
119
|
+
maxValue={50}
|
|
120
|
+
label="Slider"
|
|
121
|
+
helperText="Help message"
|
|
122
|
+
showLimitsValues
|
|
123
|
+
showInput
|
|
124
|
+
marks
|
|
125
|
+
step={10}
|
|
126
|
+
/>
|
|
127
|
+
</ExampleContainer>
|
|
128
|
+
</DarkContainer>
|
|
129
|
+
</BackgroundColorProvider>
|
|
130
|
+
<Title title="Margins" theme="light" level={2} />
|
|
131
|
+
<ExampleContainer>
|
|
132
|
+
<Title title="Xxsmall" theme="light" level={4} />
|
|
133
|
+
<DxcSlider label="Xxsmall" margin="xxsmall" />
|
|
134
|
+
</ExampleContainer>
|
|
135
|
+
<ExampleContainer>
|
|
136
|
+
<Title title="Xsmall" theme="light" level={4} />
|
|
137
|
+
<DxcSlider label="Xsmall" margin="xsmall" />
|
|
138
|
+
</ExampleContainer>
|
|
139
|
+
<ExampleContainer>
|
|
140
|
+
<Title title="Small" theme="light" level={4} />
|
|
141
|
+
<DxcSlider label="Small" margin="small" />
|
|
142
|
+
</ExampleContainer>
|
|
143
|
+
<ExampleContainer>
|
|
144
|
+
<Title title="Medium" theme="light" level={4} />
|
|
145
|
+
<DxcSlider label="Medium" margin="medium" />
|
|
146
|
+
</ExampleContainer>
|
|
147
|
+
<ExampleContainer>
|
|
148
|
+
<Title title="Large" theme="light" level={4} />
|
|
149
|
+
<DxcSlider label="Large" margin="large" />
|
|
150
|
+
</ExampleContainer>
|
|
151
|
+
<ExampleContainer>
|
|
152
|
+
<Title title="Xlarge" theme="light" level={4} />
|
|
153
|
+
<DxcSlider label="Xlarge" margin="xlarge" />
|
|
154
|
+
</ExampleContainer>
|
|
155
|
+
<ExampleContainer>
|
|
156
|
+
<Title title="Xxlarge" theme="light" level={4} />
|
|
157
|
+
<DxcSlider label="Xxlarge" margin="xxlarge" />
|
|
158
|
+
</ExampleContainer>
|
|
159
|
+
<Title title="Sizes" theme="light" level={2} />
|
|
160
|
+
<ExampleContainer>
|
|
161
|
+
<Title title="Medium" theme="light" level={4} />
|
|
162
|
+
<DxcSlider label="Medium" size="medium" />
|
|
163
|
+
</ExampleContainer>
|
|
164
|
+
<ExampleContainer>
|
|
165
|
+
<Title title="Large" theme="light" level={4} />
|
|
166
|
+
<DxcSlider label="Large" size="large" />
|
|
167
|
+
</ExampleContainer>
|
|
168
|
+
<ExampleContainer>
|
|
169
|
+
<Title title="FillParent" theme="light" level={4} />
|
|
170
|
+
<DxcSlider label="FillParent" size="fillParent" />
|
|
171
|
+
</ExampleContainer>
|
|
172
|
+
<ExampleContainer>
|
|
173
|
+
<Title title="Large limit values labels" theme="light" level={4} />
|
|
174
|
+
<DxcSlider label="Slider" helperText="Help message" showLimitsValues labelFormatCallback={labelFormat} size="large" />
|
|
175
|
+
</ExampleContainer>
|
|
176
|
+
</>
|
|
177
|
+
);
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Slider = _interopRequireDefault(require("./Slider"));
|
|
10
|
+
|
|
11
|
+
describe("Slider component tests", function () {
|
|
12
|
+
test("Slider renders with correct text", function () {
|
|
13
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
14
|
+
minValue: 0,
|
|
15
|
+
maxValue: 100,
|
|
16
|
+
showLimitsValues: true
|
|
17
|
+
})),
|
|
18
|
+
getByText = _render.getByText;
|
|
19
|
+
|
|
20
|
+
expect(getByText("0")).toBeTruthy();
|
|
21
|
+
expect(getByText("100")).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
test("Calls correct function onChange in controlled slider", function () {
|
|
24
|
+
var onChange = jest.fn();
|
|
25
|
+
|
|
26
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
27
|
+
minValue: 0,
|
|
28
|
+
maxValue: 100,
|
|
29
|
+
onChange: onChange,
|
|
30
|
+
showLimitsValues: true,
|
|
31
|
+
value: 13,
|
|
32
|
+
showInput: true
|
|
33
|
+
})),
|
|
34
|
+
getByRole = _render2.getByRole;
|
|
35
|
+
|
|
36
|
+
(0, _react2.act)(function () {
|
|
37
|
+
_react2.fireEvent.change(getByRole("textbox"), {
|
|
38
|
+
target: {
|
|
39
|
+
value: 25
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
expect(onChange).toHaveBeenCalledWith(25);
|
|
44
|
+
});
|
|
45
|
+
test("Calls correct function onChange in uncontrolled slider", function () {
|
|
46
|
+
var onChange = jest.fn();
|
|
47
|
+
|
|
48
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
49
|
+
minValue: 0,
|
|
50
|
+
maxValue: 100,
|
|
51
|
+
onChange: onChange,
|
|
52
|
+
showLimitsValues: true,
|
|
53
|
+
showInput: true
|
|
54
|
+
})),
|
|
55
|
+
getByRole = _render3.getByRole;
|
|
56
|
+
|
|
57
|
+
(0, _react2.act)(function () {
|
|
58
|
+
_react2.fireEvent.change(getByRole("textbox"), {
|
|
59
|
+
target: {
|
|
60
|
+
value: 25
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
expect(onChange).toHaveBeenCalledWith(25);
|
|
65
|
+
});
|
|
66
|
+
test("Disabled slider have disabled input", function () {
|
|
67
|
+
var onChange = jest.fn();
|
|
68
|
+
|
|
69
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
70
|
+
minValue: 0,
|
|
71
|
+
maxValue: 100,
|
|
72
|
+
onChange: onChange,
|
|
73
|
+
showLimitsValues: true,
|
|
74
|
+
disabled: true,
|
|
75
|
+
showInput: true,
|
|
76
|
+
value: 13
|
|
77
|
+
})),
|
|
78
|
+
getByRole = _render4.getByRole;
|
|
79
|
+
|
|
80
|
+
(0, _react2.act)(function () {
|
|
81
|
+
_react2.fireEvent.change(getByRole("textbox"), {
|
|
82
|
+
target: {
|
|
83
|
+
value: 25
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
expect(getByRole("textbox").hasAttribute("disabled")).toBeTruthy();
|
|
88
|
+
expect(getByRole("textbox").value).toBe("13");
|
|
89
|
+
});
|
|
90
|
+
test("Calls correct function onDragEnd", function () {
|
|
91
|
+
var onDragEnd = jest.fn();
|
|
92
|
+
|
|
93
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
94
|
+
minValue: 0,
|
|
95
|
+
maxValue: 100,
|
|
96
|
+
showLimitsValues: true,
|
|
97
|
+
showInput: true,
|
|
98
|
+
onDragEnd: onDragEnd,
|
|
99
|
+
value: 25
|
|
100
|
+
})),
|
|
101
|
+
getByRole = _render5.getByRole;
|
|
102
|
+
|
|
103
|
+
(0, _react2.act)(function () {
|
|
104
|
+
_react2.fireEvent.mouseDown(getByRole("slider"));
|
|
105
|
+
|
|
106
|
+
_react2.fireEvent.mouseUp(getByRole("slider"));
|
|
107
|
+
});
|
|
108
|
+
expect(onDragEnd).toHaveBeenCalled();
|
|
109
|
+
});
|
|
110
|
+
test("Calls correct function labelFormatCallback", function () {
|
|
111
|
+
var labelFormatCallback = jest.fn(function (x) {
|
|
112
|
+
return "".concat(x, "$");
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
116
|
+
minValue: 0,
|
|
117
|
+
maxValue: 100,
|
|
118
|
+
showLimitsValues: true,
|
|
119
|
+
showInput: true,
|
|
120
|
+
value: 25,
|
|
121
|
+
labelFormatCallback: labelFormatCallback
|
|
122
|
+
})),
|
|
123
|
+
getByText = _render6.getByText;
|
|
124
|
+
|
|
125
|
+
expect(getByText("0$")).toBeTruthy();
|
|
126
|
+
expect(getByText("100$")).toBeTruthy();
|
|
127
|
+
expect(labelFormatCallback).toHaveBeenCalledTimes(2);
|
|
128
|
+
});
|
|
129
|
+
});
|
package/slider/types.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
declare type Size = "medium" | "large" | "fillParent";
|
|
2
1
|
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
2
|
declare type Margin = {
|
|
4
3
|
top?: Space;
|
|
@@ -65,7 +64,7 @@ declare type Props = {
|
|
|
65
64
|
* This function will be used to format the labels displayed next to the slider.
|
|
66
65
|
* The value will be passed as parameter and the function must return the formatted value.
|
|
67
66
|
*/
|
|
68
|
-
labelFormatCallback?: (value: number) =>
|
|
67
|
+
labelFormatCallback?: (value: number) => string;
|
|
69
68
|
/**
|
|
70
69
|
* Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
71
70
|
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
|
|
@@ -74,10 +73,6 @@ declare type Props = {
|
|
|
74
73
|
/**
|
|
75
74
|
* Size of the component.
|
|
76
75
|
*/
|
|
77
|
-
size?:
|
|
78
|
-
/**
|
|
79
|
-
* Value of the tabindex attribute.
|
|
80
|
-
*/
|
|
81
|
-
tabIndex?: number;
|
|
76
|
+
size?: "medium" | "large" | "fillParent";
|
|
82
77
|
};
|
|
83
78
|
export default Props;
|
package/spinner/Spinner.js
CHANGED
|
@@ -13,19 +13,15 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
|
13
13
|
|
|
14
14
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
15
|
|
|
16
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
17
|
-
|
|
18
16
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
17
|
|
|
20
18
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
19
|
|
|
22
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
23
|
-
|
|
24
20
|
var _variables = require("../common/variables.js");
|
|
25
21
|
|
|
26
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
22
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
27
23
|
|
|
28
|
-
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext
|
|
24
|
+
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
29
25
|
|
|
30
26
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
|
|
31
27
|
|
|
@@ -140,19 +136,6 @@ var determinatedValue = function determinatedValue(props, strokeDashArray) {
|
|
|
140
136
|
return val;
|
|
141
137
|
};
|
|
142
138
|
|
|
143
|
-
DxcSpinner.propTypes = {
|
|
144
|
-
label: _propTypes["default"].string,
|
|
145
|
-
value: _propTypes["default"].number,
|
|
146
|
-
showValue: _propTypes["default"].bool,
|
|
147
|
-
mode: _propTypes["default"].oneOf(["large", "small", "overlay"]),
|
|
148
|
-
margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
|
|
149
|
-
top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
150
|
-
bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
151
|
-
left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
152
|
-
right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
|
|
153
|
-
}), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
|
|
154
|
-
};
|
|
155
|
-
|
|
156
139
|
var DXCSpinner = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n display: ", ";\n position: ", ";\n top: ", ";\n left: ", ";\n justify-content: ", ";\n align-items: ", ";\n z-index: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
157
140
|
return props.mode === "overlay" ? "100vh" : "";
|
|
158
141
|
}, function (props) {
|
|
@@ -62,6 +62,7 @@ export const Chromatic = () => (
|
|
|
62
62
|
<DxcSpinner margin="xlarge" mode="small" value="75"></DxcSpinner>
|
|
63
63
|
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
64
64
|
<DxcSpinner margin="xxlarge" mode="small" value="75"></DxcSpinner>
|
|
65
|
+
<hr />
|
|
65
66
|
</ExampleContainer>
|
|
66
67
|
</>
|
|
67
68
|
);
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Spinner = _interopRequireDefault(require("./Spinner"));
|
|
10
|
+
|
|
11
|
+
describe("Spinner component tests", function () {
|
|
12
|
+
test("Spinner renders with correct label", function () {
|
|
13
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
14
|
+
label: "test-loading"
|
|
15
|
+
})),
|
|
16
|
+
getByText = _render.getByText;
|
|
17
|
+
|
|
18
|
+
expect(getByText("test-loading")).toBeTruthy();
|
|
19
|
+
});
|
|
20
|
+
test("Spinner shows value correctly", function () {
|
|
21
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
22
|
+
label: "test-loading",
|
|
23
|
+
value: 75,
|
|
24
|
+
showValue: true
|
|
25
|
+
})),
|
|
26
|
+
getByText = _render2.getByText;
|
|
27
|
+
|
|
28
|
+
expect(getByText("75%")).toBeTruthy();
|
|
29
|
+
});
|
|
30
|
+
test("Small spinner hides value and label correctly", function () {
|
|
31
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
32
|
+
mode: "small",
|
|
33
|
+
label: "test-loading",
|
|
34
|
+
value: 75,
|
|
35
|
+
showValue: true
|
|
36
|
+
})),
|
|
37
|
+
queryByText = _render3.queryByText;
|
|
38
|
+
|
|
39
|
+
expect(queryByText("test-loading")).toBeFalsy();
|
|
40
|
+
expect(queryByText("75%")).toBeFalsy();
|
|
41
|
+
});
|
|
42
|
+
test("Overlay spinner shows value and label correctly", function () {
|
|
43
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
44
|
+
mode: "overlay",
|
|
45
|
+
label: "test-loading",
|
|
46
|
+
value: 75,
|
|
47
|
+
showValue: true
|
|
48
|
+
})),
|
|
49
|
+
getByText = _render4.getByText;
|
|
50
|
+
|
|
51
|
+
expect(getByText("test-loading")).toBeTruthy();
|
|
52
|
+
expect(getByText("75%")).toBeTruthy();
|
|
53
|
+
});
|
|
54
|
+
test("Get spinner by role", function () {
|
|
55
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
56
|
+
label: "test-loading",
|
|
57
|
+
value: 75,
|
|
58
|
+
showValue: true
|
|
59
|
+
})),
|
|
60
|
+
getByRole = _render5.getByRole;
|
|
61
|
+
|
|
62
|
+
expect(getByRole("progressbar")).toBeTruthy();
|
|
63
|
+
});
|
|
64
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
+
declare type Margin = {
|
|
3
|
+
top?: Space;
|
|
4
|
+
bottom?: Space;
|
|
5
|
+
left?: Space;
|
|
6
|
+
right?: Space;
|
|
7
|
+
};
|
|
8
|
+
declare type Props = {
|
|
9
|
+
/**
|
|
10
|
+
* Text to be placed inside the spinner.
|
|
11
|
+
*/
|
|
12
|
+
label?: string;
|
|
13
|
+
/**
|
|
14
|
+
* The value of the progress indicator. If it's received the
|
|
15
|
+
* component is determinate, otherwise is indeterminate.
|
|
16
|
+
*/
|
|
17
|
+
value?: number;
|
|
18
|
+
/**
|
|
19
|
+
* If true, the value is displayed inside the spinner..
|
|
20
|
+
*/
|
|
21
|
+
showValue?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Available modes of the spinner.
|
|
24
|
+
*/
|
|
25
|
+
mode?: "large" | "small" | "overlay";
|
|
26
|
+
/**
|
|
27
|
+
* Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
28
|
+
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
|
|
29
|
+
*/
|
|
30
|
+
margin?: Space | Margin;
|
|
31
|
+
};
|
|
32
|
+
export default Props;
|