@dxc-technology/halstack-react 0.0.0-9bd9511 → 0.0.0-9c20370
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BackgroundColorContext.d.ts +3 -3
- package/BackgroundColorContext.js +12 -2
- package/HalstackContext.d.ts +1330 -7
- package/HalstackContext.js +84 -67
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +74 -55
- package/accordion/Accordion.stories.tsx +3 -101
- package/accordion/Accordion.test.js +34 -19
- package/accordion/types.d.ts +4 -16
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +49 -42
- package/accordion-group/AccordionGroup.stories.tsx +77 -76
- package/accordion-group/AccordionGroup.test.js +62 -54
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +6 -18
- package/alert/Alert.js +47 -20
- package/alert/Alert.test.js +46 -29
- package/alert/types.d.ts +3 -3
- package/badge/Badge.js +14 -2
- package/badge/types.d.ts +1 -1
- package/bleed/Bleed.js +21 -13
- package/bleed/Bleed.stories.tsx +1 -0
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +33 -33
- package/box/Box.stories.tsx +25 -53
- package/box/Box.test.js +7 -2
- package/box/types.d.ts +3 -15
- package/bulleted-list/BulletedList.js +36 -9
- package/bulleted-list/BulletedList.stories.tsx +7 -1
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.d.ts +1 -1
- package/button/Button.js +83 -71
- package/button/Button.stories.tsx +4 -4
- package/button/Button.test.js +28 -8
- package/button/types.d.ts +8 -4
- package/card/Card.d.ts +1 -1
- package/card/Card.js +67 -62
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +22 -11
- package/card/types.d.ts +4 -10
- package/checkbox/Checkbox.js +71 -27
- package/checkbox/Checkbox.test.js +60 -33
- package/checkbox/types.d.ts +4 -4
- package/chip/Chip.js +51 -48
- package/chip/Chip.stories.tsx +25 -17
- package/chip/Chip.test.js +29 -17
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +146 -0
- package/common/coreTokens.js +167 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +8 -3
- package/common/variables.d.ts +226 -175
- package/common/variables.js +956 -1133
- package/date-input/Calendar.js +55 -12
- package/date-input/DateInput.js +82 -35
- package/date-input/DateInput.test.js +351 -164
- package/date-input/DatePicker.js +38 -8
- package/date-input/Icons.js +12 -0
- package/date-input/YearPicker.js +30 -5
- package/date-input/types.d.ts +7 -7
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +83 -86
- package/dialog/Dialog.stories.tsx +127 -221
- package/dialog/Dialog.test.js +331 -18
- package/dialog/types.d.ts +1 -14
- package/dropdown/Dropdown.js +86 -32
- package/dropdown/Dropdown.test.js +211 -104
- package/dropdown/DropdownMenu.js +22 -8
- package/dropdown/DropdownMenuItem.js +15 -6
- package/dropdown/types.d.ts +8 -8
- package/file-input/FileInput.js +218 -134
- package/file-input/FileInput.test.js +343 -331
- package/file-input/FileItem.js +39 -12
- package/file-input/types.d.ts +10 -10
- package/flex/Flex.js +39 -25
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +74 -9
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +80 -68
- package/footer/Footer.stories.tsx +12 -89
- package/footer/Footer.test.js +47 -40
- package/footer/Icons.js +4 -0
- package/footer/types.d.ts +15 -17
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +91 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +72 -55
- package/header/Header.stories.tsx +7 -71
- package/header/Header.test.js +26 -13
- package/header/Icons.js +4 -0
- package/header/types.d.ts +2 -16
- package/heading/Heading.js +28 -7
- package/heading/Heading.test.js +88 -71
- package/heading/types.d.ts +3 -3
- package/inset/Inset.js +21 -13
- package/inset/Inset.stories.tsx +2 -1
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +5 -5
- package/layout/ApplicationLayout.js +57 -15
- package/layout/Icons.js +10 -0
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +4 -0
- package/layout/types.d.ts +5 -6
- package/link/Link.js +41 -21
- package/link/Link.test.js +42 -26
- package/link/types.d.ts +4 -4
- package/main.d.ts +2 -1
- package/main.js +55 -0
- package/nav-tabs/NavTabs.d.ts +2 -2
- package/nav-tabs/NavTabs.js +43 -16
- package/nav-tabs/NavTabs.stories.tsx +14 -0
- package/nav-tabs/NavTabs.test.js +44 -37
- package/nav-tabs/Tab.js +71 -45
- package/nav-tabs/types.d.ts +10 -11
- package/number-input/NumberInput.js +30 -20
- package/number-input/NumberInput.test.js +249 -113
- package/number-input/NumberInputContext.js +5 -0
- package/number-input/numberInputContextTypes.d.ts +1 -1
- package/number-input/types.d.ts +4 -4
- package/package.json +7 -7
- package/paginator/Icons.js +10 -0
- package/paginator/Paginator.js +39 -17
- package/paginator/Paginator.test.js +156 -104
- package/paginator/types.d.ts +1 -1
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +18 -8
- package/password-input/PasswordInput.js +51 -22
- package/password-input/PasswordInput.test.js +94 -51
- package/password-input/types.d.ts +4 -4
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +39 -14
- package/progress-bar/ProgressBar.test.js +53 -36
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.js +24 -2
- package/quick-nav/types.d.ts +2 -2
- package/radio-group/Radio.js +53 -22
- package/radio-group/RadioGroup.js +84 -41
- package/radio-group/RadioGroup.test.js +288 -186
- package/radio-group/types.d.ts +4 -4
- package/resultsetTable/Icons.js +3 -0
- package/resultsetTable/ResultsetTable.js +56 -21
- package/resultsetTable/ResultsetTable.test.js +75 -42
- package/resultsetTable/types.d.ts +5 -5
- package/select/Icons.js +3 -0
- package/select/Listbox.js +35 -10
- package/select/Option.js +24 -8
- package/select/Select.js +143 -56
- package/select/Select.test.js +839 -456
- package/select/types.d.ts +12 -12
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +51 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +116 -104
- package/sidenav/Sidenav.stories.tsx +60 -60
- package/sidenav/Sidenav.test.js +10 -3
- package/sidenav/types.d.ts +26 -23
- package/slider/Slider.js +84 -38
- package/slider/Slider.test.js +104 -76
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.js +51 -28
- package/spinner/Spinner.stories.jsx +28 -28
- package/spinner/Spinner.test.js +35 -26
- package/spinner/types.d.ts +3 -3
- package/switch/Switch.js +66 -24
- package/switch/Switch.test.js +97 -52
- package/switch/types.d.ts +4 -4
- package/table/Table.js +22 -4
- package/table/Table.test.js +7 -2
- package/table/types.d.ts +3 -3
- package/tabs/Tab.js +39 -22
- package/tabs/Tabs.js +131 -62
- package/tabs/Tabs.test.js +122 -67
- package/tabs/types.d.ts +8 -8
- package/tag/Tag.js +54 -27
- package/tag/Tag.test.js +31 -20
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.js +3 -0
- package/text-input/Suggestion.js +24 -8
- package/text-input/Suggestions.js +36 -11
- package/text-input/TextInput.js +144 -59
- package/text-input/TextInput.stories.tsx +1 -1
- package/text-input/TextInput.test.js +858 -539
- package/text-input/types.d.ts +9 -9
- package/textarea/Textarea.js +73 -38
- package/textarea/Textarea.test.js +173 -98
- package/textarea/types.d.ts +4 -4
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +59 -21
- package/toggle-group/ToggleGroup.test.js +72 -40
- package/toggle-group/types.d.ts +11 -11
- package/typography/Typography.d.ts +2 -2
- package/typography/Typography.js +23 -110
- package/typography/Typography.stories.tsx +1 -1
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +1234 -1
- package/useTheme.js +6 -0
- package/useTranslatedLabels.d.ts +84 -2
- package/useTranslatedLabels.js +5 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +108 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +138 -0
- package/wizard/Wizard.js +47 -13
- package/wizard/Wizard.test.js +81 -54
- package/wizard/types.d.ts +7 -8
- package/card/ice-cream.jpg +0 -0
- package/translatedLabelsType.d.ts +0 -82
- /package/{translatedLabelsType.js → grid/types.js} +0 -0
package/spinner/Spinner.test.js
CHANGED
|
@@ -1,55 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
5
7
|
var _react2 = require("@testing-library/react");
|
|
6
|
-
|
|
8
|
+
|
|
9
|
+
var _Spinner = _interopRequireDefault(require("./Spinner.tsx"));
|
|
10
|
+
|
|
7
11
|
describe("Spinner component tests", function () {
|
|
8
12
|
test("Spinner renders with correct label", function () {
|
|
9
13
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
label: "test-loading"
|
|
15
|
+
})),
|
|
16
|
+
getByText = _render.getByText;
|
|
17
|
+
|
|
13
18
|
expect(getByText("test-loading")).toBeTruthy();
|
|
14
19
|
});
|
|
15
20
|
test("Spinner shows value correctly", function () {
|
|
16
21
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
label: "test-loading",
|
|
23
|
+
value: 75,
|
|
24
|
+
showValue: true
|
|
25
|
+
})),
|
|
26
|
+
getByText = _render2.getByText;
|
|
27
|
+
|
|
22
28
|
expect(getByText("75%")).toBeTruthy();
|
|
23
29
|
});
|
|
24
30
|
test("Small spinner hides value and label correctly", function () {
|
|
25
31
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
mode: "small",
|
|
33
|
+
label: "test-loading",
|
|
34
|
+
value: 75,
|
|
35
|
+
showValue: true
|
|
36
|
+
})),
|
|
37
|
+
queryByText = _render3.queryByText;
|
|
38
|
+
|
|
32
39
|
expect(queryByText("test-loading")).toBeFalsy();
|
|
33
40
|
expect(queryByText("75%")).toBeFalsy();
|
|
34
41
|
});
|
|
35
42
|
test("Overlay spinner shows value and label correctly", function () {
|
|
36
43
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
mode: "overlay",
|
|
45
|
+
label: "test-loading",
|
|
46
|
+
value: 75,
|
|
47
|
+
showValue: true
|
|
48
|
+
})),
|
|
49
|
+
getByText = _render4.getByText;
|
|
50
|
+
|
|
43
51
|
expect(getByText("test-loading")).toBeTruthy();
|
|
44
52
|
expect(getByText("75%")).toBeTruthy();
|
|
45
53
|
});
|
|
46
54
|
test("Get spinner by role", function () {
|
|
47
55
|
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
label: "test-loading",
|
|
57
|
+
value: 75,
|
|
58
|
+
showValue: true
|
|
59
|
+
})),
|
|
60
|
+
getByRole = _render5.getByRole;
|
|
61
|
+
|
|
53
62
|
expect(getByRole("progressbar")).toBeTruthy();
|
|
54
63
|
});
|
|
55
64
|
});
|
package/spinner/types.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
-
type Margin = {
|
|
1
|
+
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
+
declare type Margin = {
|
|
3
3
|
top?: Space;
|
|
4
4
|
bottom?: Space;
|
|
5
5
|
left?: Space;
|
|
6
6
|
right?: Space;
|
|
7
7
|
};
|
|
8
|
-
type Props = {
|
|
8
|
+
declare type Props = {
|
|
9
9
|
/**
|
|
10
10
|
* Text to be placed inside the spinner.
|
|
11
11
|
*/
|
package/switch/Switch.js
CHANGED
|
@@ -1,57 +1,79 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports["default"] = void 0;
|
|
11
|
+
|
|
9
12
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
+
|
|
10
14
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
+
|
|
11
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
|
|
12
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
+
|
|
13
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
|
+
|
|
14
22
|
var _uuid = require("uuid");
|
|
23
|
+
|
|
15
24
|
var _variables = require("../common/variables");
|
|
16
|
-
|
|
25
|
+
|
|
26
|
+
var _utils = require("../common/utils");
|
|
27
|
+
|
|
17
28
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
29
|
+
|
|
18
30
|
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
31
|
+
|
|
19
32
|
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
33
|
+
|
|
20
34
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
35
|
+
|
|
21
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); }
|
|
37
|
+
|
|
22
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; }
|
|
39
|
+
|
|
23
40
|
var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
24
41
|
var defaultChecked = _ref.defaultChecked,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
checked = _ref.checked,
|
|
43
|
+
value = _ref.value,
|
|
44
|
+
_ref$label = _ref.label,
|
|
45
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
46
|
+
_ref$labelPosition = _ref.labelPosition,
|
|
47
|
+
labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
|
|
48
|
+
_ref$name = _ref.name,
|
|
49
|
+
name = _ref$name === void 0 ? "" : _ref$name,
|
|
50
|
+
_ref$disabled = _ref.disabled,
|
|
51
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
52
|
+
_ref$optional = _ref.optional,
|
|
53
|
+
optional = _ref$optional === void 0 ? false : _ref$optional,
|
|
54
|
+
onChange = _ref.onChange,
|
|
55
|
+
margin = _ref.margin,
|
|
56
|
+
_ref$size = _ref.size,
|
|
57
|
+
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
58
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
59
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
60
|
+
|
|
43
61
|
var _useState = (0, _react.useState)("switch-".concat((0, _uuid.v4)())),
|
|
44
|
-
|
|
45
|
-
|
|
62
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
63
|
+
switchId = _useState2[0];
|
|
64
|
+
|
|
46
65
|
var labelId = "label-".concat(switchId);
|
|
66
|
+
|
|
47
67
|
var _useState3 = (0, _react.useState)(defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : false),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
68
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
69
|
+
innerChecked = _useState4[0],
|
|
70
|
+
setInnerChecked = _useState4[1];
|
|
71
|
+
|
|
51
72
|
var colorsTheme = (0, _useTheme["default"])();
|
|
52
73
|
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
53
74
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
54
75
|
var refTrack = (0, _react.useRef)(null);
|
|
76
|
+
|
|
55
77
|
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
56
78
|
switch (event.key) {
|
|
57
79
|
case "Enter":
|
|
@@ -65,12 +87,14 @@ var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
65
87
|
break;
|
|
66
88
|
}
|
|
67
89
|
};
|
|
90
|
+
|
|
68
91
|
var handlerSwitchChange = function handlerSwitchChange(event) {
|
|
69
92
|
checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
|
|
70
93
|
return !innerChecked;
|
|
71
94
|
});
|
|
72
95
|
onChange === null || onChange === void 0 ? void 0 : onChange(checked ? !checked : !innerChecked);
|
|
73
96
|
};
|
|
97
|
+
|
|
74
98
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
75
99
|
theme: colorsTheme["switch"]
|
|
76
100
|
}, /*#__PURE__*/_react["default"].createElement(SwitchContainer, {
|
|
@@ -111,6 +135,7 @@ var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
111
135
|
label: label
|
|
112
136
|
}, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel), " ", label)));
|
|
113
137
|
});
|
|
138
|
+
|
|
114
139
|
var sizes = {
|
|
115
140
|
small: "60px",
|
|
116
141
|
medium: "240px",
|
|
@@ -118,49 +143,61 @@ var sizes = {
|
|
|
118
143
|
fillParent: "100%",
|
|
119
144
|
fitContent: "fit-content"
|
|
120
145
|
};
|
|
146
|
+
|
|
121
147
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
122
148
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
123
149
|
};
|
|
150
|
+
|
|
124
151
|
var getDisabledColor = function getDisabledColor(props, element, subelement) {
|
|
125
152
|
switch (element) {
|
|
126
153
|
case "track":
|
|
127
154
|
switch (subelement) {
|
|
128
155
|
case "check":
|
|
129
156
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedTrackBackgroundColorOnDark : props.theme.disabledCheckedTrackBackgroundColor;
|
|
157
|
+
|
|
130
158
|
case "uncheck":
|
|
131
159
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedTrackBackgroundColorOnDark : props.theme.disabledUncheckedTrackBackgroundColor;
|
|
132
160
|
}
|
|
161
|
+
|
|
133
162
|
case "thumb":
|
|
134
163
|
switch (subelement) {
|
|
135
164
|
case "check":
|
|
136
165
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedThumbBackgroundColorOnDark : props.theme.disabledCheckedThumbBackgroundColor;
|
|
166
|
+
|
|
137
167
|
case "uncheck":
|
|
138
168
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedThumbBackgroundColorOnDark : props.theme.disabledUncheckedThumbBackgroundColor;
|
|
139
169
|
}
|
|
170
|
+
|
|
140
171
|
case "label":
|
|
141
172
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor;
|
|
142
173
|
}
|
|
143
174
|
};
|
|
175
|
+
|
|
144
176
|
var getNotDisabledColor = function getNotDisabledColor(props, element, subelement) {
|
|
145
177
|
switch (element) {
|
|
146
178
|
case "track":
|
|
147
179
|
switch (subelement) {
|
|
148
180
|
case "check":
|
|
149
181
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedTrackBackgroundColorOnDark : props.theme.checkedTrackBackgroundColor;
|
|
182
|
+
|
|
150
183
|
case "uncheck":
|
|
151
184
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
|
|
152
185
|
}
|
|
186
|
+
|
|
153
187
|
case "thumb":
|
|
154
188
|
switch (subelement) {
|
|
155
189
|
case "check":
|
|
156
190
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedThumbBackgroundColorOnDark : props.theme.checkedThumbBackgroundColor;
|
|
191
|
+
|
|
157
192
|
case "uncheck":
|
|
158
193
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedThumbBackgroundColorOnDark : props.theme.uncheckedThumbBackgroundColor;
|
|
159
194
|
}
|
|
195
|
+
|
|
160
196
|
case "label":
|
|
161
197
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
|
|
162
198
|
}
|
|
163
199
|
};
|
|
200
|
+
|
|
164
201
|
var SwitchContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: ", ";\n height: 40px;\n cursor: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
165
202
|
return calculateWidth(props.margin, props.size);
|
|
166
203
|
}, function (props) {
|
|
@@ -176,6 +213,7 @@ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_temp
|
|
|
176
213
|
}, function (props) {
|
|
177
214
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
178
215
|
});
|
|
216
|
+
|
|
179
217
|
var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ", ";\n opacity: 1;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n\n ", ";\n\n ", "\n"])), function (props) {
|
|
180
218
|
return props.disabled ? getDisabledColor(props, "label") : getNotDisabledColor(props, "label");
|
|
181
219
|
}, function (props) {
|
|
@@ -191,8 +229,11 @@ var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_tem
|
|
|
191
229
|
}, function (props) {
|
|
192
230
|
return props.labelPosition === "before" && "order: -1";
|
|
193
231
|
});
|
|
232
|
+
|
|
194
233
|
var SwitchBase = _styledComponents["default"].label(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n margin: 0px 12px;\n"])));
|
|
234
|
+
|
|
195
235
|
var ValueInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
|
|
236
|
+
|
|
196
237
|
var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 15px;\n width: ", ";\n height: ", ";\n position: relative;\n cursor: ", ";\n\n &:focus-visible {\n outline: none;\n ::before {\n outline: ", ";\n outline-offset: 6px;\n }\n }\n\n /* Thumb element */\n ::before {\n content: \"\";\n transform: initial;\n position: absolute;\n width: ", ";\n height: ", ";\n border-radius: 50%;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n bottom: -6px;\n left: -4px;\n transform: translateX(0px);\n background-color: ", ";\n }\n\n /* Unchecked */\n background-color: ", ";\n\n /* Checked */\n &[aria-checked=\"true\"] {\n background-color: ", ";\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
|
|
197
238
|
return props.theme.trackWidth;
|
|
198
239
|
}, function (props) {
|
|
@@ -216,5 +257,6 @@ var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templa
|
|
|
216
257
|
}, function (props) {
|
|
217
258
|
return props.disabled ? getDisabledColor(props, "thumb", "check") : getNotDisabledColor(props, "thumb", "check");
|
|
218
259
|
});
|
|
260
|
+
|
|
219
261
|
var _default = DxcSwitch;
|
|
220
262
|
exports["default"] = _default;
|
package/switch/Switch.test.js
CHANGED
|
@@ -1,143 +1,186 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
5
7
|
var _react2 = require("@testing-library/react");
|
|
6
|
-
|
|
8
|
+
|
|
9
|
+
var _Switch = _interopRequireDefault(require("./Switch.tsx"));
|
|
10
|
+
|
|
7
11
|
describe("Switch component tests", function () {
|
|
8
12
|
test("Switch renders with correct text", function () {
|
|
9
13
|
var onChange = jest.fn(function (returnedValue) {
|
|
10
14
|
expect(returnedValue).toBe(true);
|
|
11
15
|
});
|
|
16
|
+
|
|
12
17
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
label: "SwitchComponent",
|
|
19
|
+
checked: false,
|
|
20
|
+
onChange: onChange
|
|
21
|
+
})),
|
|
22
|
+
getByText = _render.getByText;
|
|
23
|
+
|
|
18
24
|
expect(getByText("SwitchComponent")).toBeTruthy();
|
|
19
25
|
});
|
|
20
26
|
test("Calls correct function on click", function () {
|
|
21
27
|
var onChange = jest.fn();
|
|
28
|
+
|
|
22
29
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
label: "SwitchComponent",
|
|
31
|
+
checked: false,
|
|
32
|
+
onChange: onChange
|
|
33
|
+
})),
|
|
34
|
+
getByText = _render2.getByText;
|
|
35
|
+
|
|
28
36
|
_react2.fireEvent.click(getByText("SwitchComponent"));
|
|
37
|
+
|
|
29
38
|
expect(onChange).toHaveBeenCalled();
|
|
30
39
|
});
|
|
31
40
|
test("Calls correct function on key down", function () {
|
|
32
41
|
var onChange = jest.fn();
|
|
42
|
+
|
|
33
43
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
44
|
+
label: "SwitchComponent",
|
|
45
|
+
checked: false,
|
|
46
|
+
onChange: onChange
|
|
47
|
+
})),
|
|
48
|
+
getByText = _render3.getByText;
|
|
49
|
+
|
|
39
50
|
_react2.fireEvent.focus(getByText("SwitchComponent"));
|
|
51
|
+
|
|
40
52
|
_react2.fireEvent.keyDown(getByText("SwitchComponent"), {
|
|
41
53
|
key: "Enter"
|
|
42
54
|
});
|
|
55
|
+
|
|
43
56
|
expect(onChange).toHaveBeenCalled();
|
|
57
|
+
|
|
44
58
|
_react2.fireEvent.keyDown(getByText("SwitchComponent"), {
|
|
45
59
|
key: " "
|
|
46
60
|
});
|
|
61
|
+
|
|
47
62
|
expect(onChange).toHaveBeenCalled();
|
|
48
63
|
});
|
|
49
64
|
test("Everytime the user clicks the component the onchange function is called with the correct value CONTROLLED COMPONENT", function () {
|
|
50
65
|
var onChange = jest.fn();
|
|
66
|
+
|
|
51
67
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
68
|
+
label: "SwitchComponent",
|
|
69
|
+
checked: false,
|
|
70
|
+
onChange: onChange
|
|
71
|
+
})),
|
|
72
|
+
getByText = _render4.getByText;
|
|
73
|
+
|
|
57
74
|
_react2.fireEvent.click(getByText("SwitchComponent"));
|
|
75
|
+
|
|
58
76
|
_react2.fireEvent.click(getByText("SwitchComponent"));
|
|
77
|
+
|
|
59
78
|
expect(onChange.mock.calls[0][0]).toBe(true);
|
|
60
79
|
expect(onChange.mock.calls[1][0]).toBe(true);
|
|
61
80
|
});
|
|
62
81
|
test("Everytime the user use enter in the component, the onchange function is called with the correct value CONTROLLED COMPONENT", function () {
|
|
63
82
|
var onChange = jest.fn();
|
|
83
|
+
|
|
64
84
|
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
85
|
+
label: "SwitchComponent",
|
|
86
|
+
checked: false,
|
|
87
|
+
onChange: onChange
|
|
88
|
+
})),
|
|
89
|
+
getByText = _render5.getByText;
|
|
90
|
+
|
|
70
91
|
_react2.fireEvent.focus(getByText("SwitchComponent"));
|
|
92
|
+
|
|
71
93
|
_react2.fireEvent.keyDown(getByText("SwitchComponent"), {
|
|
72
94
|
key: "Enter"
|
|
73
95
|
});
|
|
96
|
+
|
|
74
97
|
_react2.fireEvent.keyDown(getByText("SwitchComponent"), {
|
|
75
98
|
key: "Enter"
|
|
76
99
|
});
|
|
100
|
+
|
|
77
101
|
expect(onChange.mock.calls[0][0]).toBe(true);
|
|
78
102
|
expect(onChange.mock.calls[1][0]).toBe(true);
|
|
79
103
|
});
|
|
80
104
|
test("Everytime the user use space in the component, the onchange function is called with the correct value CONTROLLED COMPONENT", function () {
|
|
81
105
|
var onChange = jest.fn();
|
|
106
|
+
|
|
82
107
|
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
108
|
+
label: "SwitchComponent",
|
|
109
|
+
checked: false,
|
|
110
|
+
onChange: onChange
|
|
111
|
+
})),
|
|
112
|
+
getByText = _render6.getByText;
|
|
113
|
+
|
|
88
114
|
_react2.fireEvent.focus(getByText("SwitchComponent"));
|
|
115
|
+
|
|
89
116
|
_react2.fireEvent.keyDown(getByText("SwitchComponent"), {
|
|
90
117
|
key: " "
|
|
91
118
|
});
|
|
119
|
+
|
|
92
120
|
_react2.fireEvent.keyDown(getByText("SwitchComponent"), {
|
|
93
121
|
key: " "
|
|
94
122
|
});
|
|
123
|
+
|
|
95
124
|
expect(onChange.mock.calls[0][0]).toBe(true);
|
|
96
125
|
expect(onChange.mock.calls[1][0]).toBe(true);
|
|
97
126
|
});
|
|
98
127
|
test("Everytime the user clicks the component the onchange function is called with the correct value UNCONTROLLED COMPONENT", function () {
|
|
99
128
|
var onChange = jest.fn();
|
|
129
|
+
|
|
100
130
|
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
131
|
+
label: "SwitchComponent",
|
|
132
|
+
onChange: onChange
|
|
133
|
+
})),
|
|
134
|
+
getByText = _render7.getByText;
|
|
135
|
+
|
|
105
136
|
_react2.fireEvent.click(getByText("SwitchComponent"));
|
|
137
|
+
|
|
106
138
|
_react2.fireEvent.click(getByText("SwitchComponent"));
|
|
139
|
+
|
|
107
140
|
expect(onChange.mock.calls[0][0]).toBe(true);
|
|
108
141
|
expect(onChange.mock.calls[1][0]).toBe(false);
|
|
109
142
|
});
|
|
110
143
|
test("Everytime the user use enter in the component, the onchange function is called with the correct value UNCONTROLLED COMPONENT", function () {
|
|
111
144
|
var onChange = jest.fn();
|
|
145
|
+
|
|
112
146
|
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
147
|
+
label: "SwitchComponent",
|
|
148
|
+
onChange: onChange
|
|
149
|
+
})),
|
|
150
|
+
getByText = _render8.getByText;
|
|
151
|
+
|
|
117
152
|
_react2.fireEvent.focus(getByText("SwitchComponent"));
|
|
153
|
+
|
|
118
154
|
_react2.fireEvent.keyDown(getByText("SwitchComponent"), {
|
|
119
155
|
key: "Enter"
|
|
120
156
|
});
|
|
157
|
+
|
|
121
158
|
_react2.fireEvent.keyDown(getByText("SwitchComponent"), {
|
|
122
159
|
key: "Enter"
|
|
123
160
|
});
|
|
161
|
+
|
|
124
162
|
expect(onChange.mock.calls[0][0]).toBe(true);
|
|
125
163
|
expect(onChange.mock.calls[1][0]).toBe(false);
|
|
126
164
|
});
|
|
127
165
|
test("Everytime the user use space in the component, the onchange function is called with the correct value UNCONTROLLED COMPONENT", function () {
|
|
128
166
|
var onChange = jest.fn();
|
|
167
|
+
|
|
129
168
|
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
169
|
+
label: "SwitchComponent",
|
|
170
|
+
onChange: onChange
|
|
171
|
+
})),
|
|
172
|
+
getByText = _render9.getByText;
|
|
173
|
+
|
|
134
174
|
_react2.fireEvent.focus(getByText("SwitchComponent"));
|
|
175
|
+
|
|
135
176
|
_react2.fireEvent.keyDown(getByText("SwitchComponent"), {
|
|
136
177
|
key: " "
|
|
137
178
|
});
|
|
179
|
+
|
|
138
180
|
_react2.fireEvent.keyDown(getByText("SwitchComponent"), {
|
|
139
181
|
key: " "
|
|
140
182
|
});
|
|
183
|
+
|
|
141
184
|
expect(onChange.mock.calls[0][0]).toBe(true);
|
|
142
185
|
expect(onChange.mock.calls[1][0]).toBe(false);
|
|
143
186
|
});
|
|
@@ -155,10 +198,11 @@ describe("Switch component tests", function () {
|
|
|
155
198
|
});
|
|
156
199
|
test("Renders with correct aria attributes", function () {
|
|
157
200
|
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
201
|
+
label: "Default label"
|
|
202
|
+
})),
|
|
203
|
+
getByText = _render10.getByText,
|
|
204
|
+
getByRole = _render10.getByRole;
|
|
205
|
+
|
|
162
206
|
var switchEl = getByRole("switch");
|
|
163
207
|
var label = getByText("Default label");
|
|
164
208
|
expect(switchEl.getAttribute("aria-labelledby")).toBe(label.id);
|
|
@@ -166,11 +210,12 @@ describe("Switch component tests", function () {
|
|
|
166
210
|
});
|
|
167
211
|
test("Renders disabled switch correctly", function () {
|
|
168
212
|
var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
213
|
+
label: "Default label",
|
|
214
|
+
disabled: true
|
|
215
|
+
})),
|
|
216
|
+
getByText = _render11.getByText,
|
|
217
|
+
getByRole = _render11.getByRole;
|
|
218
|
+
|
|
174
219
|
var switchEl = getByRole("switch");
|
|
175
220
|
var label = getByText("Default label");
|
|
176
221
|
expect(switchEl.getAttribute("aria-labelledby")).toBe(label.id);
|
package/switch/types.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
+
declare type Margin = {
|
|
3
3
|
top?: Space;
|
|
4
4
|
bottom?: Space;
|
|
5
5
|
left?: Space;
|
|
6
6
|
right?: Space;
|
|
7
7
|
};
|
|
8
|
-
type Props = {
|
|
8
|
+
declare type Props = {
|
|
9
9
|
/**
|
|
10
10
|
* Initial state of the switch, only when it is uncontrolled.
|
|
11
11
|
*/
|
|
@@ -62,5 +62,5 @@ type Props = {
|
|
|
62
62
|
/**
|
|
63
63
|
* Reference to the component.
|
|
64
64
|
*/
|
|
65
|
-
export type RefType = HTMLDivElement;
|
|
65
|
+
export declare type RefType = HTMLDivElement;
|
|
66
66
|
export default Props;
|