@dxc-technology/halstack-react 0.0.0-c9b5c13 → 0.0.0-c9c1158
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 +6 -18
- package/HalstackContext.d.ts +1347 -6
- package/HalstackContext.js +125 -110
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +116 -157
- package/accordion/Accordion.stories.tsx +102 -126
- package/accordion/Accordion.test.js +25 -41
- package/accordion/types.d.ts +5 -16
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +31 -98
- package/accordion-group/AccordionGroup.stories.tsx +94 -67
- package/accordion-group/AccordionGroup.test.js +52 -105
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +11 -16
- package/alert/Alert.js +19 -55
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.js +4 -17
- package/badge/types.d.ts +1 -1
- package/bleed/Bleed.js +14 -55
- package/bleed/Bleed.stories.tsx +95 -95
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +18 -56
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +99 -0
- package/bulleted-list/BulletedList.stories.tsx +116 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +61 -114
- package/button/Button.stories.tsx +160 -90
- package/button/Button.test.js +18 -17
- package/button/types.d.ts +12 -8
- package/card/Card.d.ts +1 -1
- package/card/Card.js +48 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +141 -178
- package/checkbox/Checkbox.stories.tsx +128 -94
- package/checkbox/Checkbox.test.js +160 -39
- package/checkbox/types.d.ts +11 -3
- package/chip/Chip.js +39 -79
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +16 -31
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1499 -0
- package/common/variables.js +1027 -1126
- package/container/Container.d.ts +4 -0
- package/container/Container.js +198 -0
- package/container/Container.stories.tsx +229 -0
- package/container/types.d.ts +74 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.js +150 -299
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +700 -371
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +115 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +58 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +72 -15
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +75 -106
- package/dialog/Dialog.stories.tsx +154 -171
- package/dialog/Dialog.test.js +287 -20
- package/dialog/types.d.ts +18 -25
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +243 -300
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +575 -165
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +67 -0
- package/dropdown/types.d.ts +32 -14
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +241 -355
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +369 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +45 -96
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +51 -101
- package/footer/Footer.stories.tsx +41 -19
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +2 -2
- package/footer/Icons.js +3 -8
- package/footer/types.d.ts +21 -22
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -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 +90 -162
- package/header/Header.stories.tsx +118 -39
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +4 -9
- package/header/types.d.ts +5 -20
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/inset/Inset.js +14 -55
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +51 -116
- package/layout/ApplicationLayout.stories.tsx +81 -45
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +51 -59
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +3 -9
- package/layout/types.d.ts +21 -32
- package/link/Link.js +25 -46
- package/link/Link.stories.tsx +73 -6
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +10 -10
- package/main.js +45 -95
- package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
- package/{tabs-nav → nav-tabs}/NavTabs.js +22 -57
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +111 -7
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +37 -44
- package/nav-tabs/Tab.js +117 -0
- package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +26 -35
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +701 -377
- package/number-input/types.d.ts +11 -5
- package/package.json +43 -45
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +22 -55
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +280 -211
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +27 -0
- package/paragraph/Paragraph.stories.tsx +27 -0
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.js +57 -126
- package/password-input/PasswordInput.stories.tsx +1 -32
- package/password-input/PasswordInput.test.js +160 -142
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.js +67 -87
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.js +29 -47
- package/quick-nav/QuickNav.stories.tsx +146 -27
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.js +67 -114
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +518 -457
- package/radio-group/types.d.ts +10 -10
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.js +159 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +117 -118
- package/{resultsetTable → resultset-table}/types.d.ts +7 -7
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +7 -7
- package/select/Icons.js +1 -5
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +42 -51
- package/select/Option.js +20 -50
- package/select/Select.js +125 -188
- package/select/Select.stories.tsx +516 -139
- package/select/Select.test.js +1965 -1751
- package/select/types.d.ts +16 -20
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +129 -77
- package/sidenav/Sidenav.stories.tsx +251 -151
- package/sidenav/Sidenav.test.js +26 -45
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +144 -168
- package/slider/Slider.test.js +185 -81
- package/slider/types.d.ts +7 -3
- package/spinner/Spinner.js +27 -63
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +26 -35
- package/spinner/types.d.ts +3 -3
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +148 -124
- package/switch/Switch.stories.tsx +37 -60
- package/switch/Switch.test.js +138 -56
- package/switch/types.d.ts +7 -3
- package/table/Table.js +7 -26
- package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
- package/table/Table.test.js +3 -8
- package/table/types.d.ts +8 -8
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +113 -0
- package/tabs/Tabs.js +315 -141
- package/tabs/Tabs.stories.tsx +119 -5
- package/tabs/Tabs.test.js +223 -69
- package/tabs/types.d.ts +28 -18
- package/tag/Tag.js +29 -61
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +20 -31
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +56 -0
- package/text-input/Suggestion.js +40 -28
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +89 -0
- package/text-input/TextInput.js +280 -458
- package/text-input/TextInput.stories.tsx +266 -275
- package/text-input/TextInput.test.js +1402 -1375
- package/text-input/types.d.ts +43 -16
- package/textarea/Textarea.js +63 -100
- package/textarea/Textarea.stories.tsx +175 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +95 -106
- package/toggle-group/ToggleGroup.stories.tsx +49 -4
- package/toggle-group/ToggleGroup.test.js +69 -88
- package/toggle-group/types.d.ts +26 -17
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +23 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1251 -1
- package/useTheme.js +2 -9
- package/useTranslatedLabels.d.ts +84 -1
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +114 -0
- package/wizard/Wizard.js +24 -66
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +7 -7
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/resultsetTable/ResultsetTable.js +0 -254
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -28
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -24
- package/tabs-nav/Tab.js +0 -132
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{list → bulleted-list}/types.js +0 -0
- /package/{resultsetTable → container}/types.js +0 -0
- /package/{row → flex}/types.js +0 -0
- /package/{stack → grid}/types.js +0 -0
- /package/{tabs-nav → image}/types.js +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
|
@@ -1,139 +1,131 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
-
|
|
14
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
-
|
|
16
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
|
|
20
13
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
|
-
|
|
22
14
|
var _uuid = require("uuid");
|
|
23
|
-
|
|
24
|
-
var _variables = require("../common/variables.js");
|
|
25
|
-
|
|
15
|
+
var _variables = require("../common/variables");
|
|
26
16
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
27
|
-
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
function _getRequireWildcardCache(
|
|
31
|
-
|
|
32
|
-
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; }
|
|
33
|
-
|
|
17
|
+
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
18
|
+
var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
19
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
20
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
21
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
34
22
|
var DxcToggleGroup = function DxcToggleGroup(_ref) {
|
|
35
23
|
var label = _ref.label,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
24
|
+
helperText = _ref.helperText,
|
|
25
|
+
defaultValue = _ref.defaultValue,
|
|
26
|
+
value = _ref.value,
|
|
27
|
+
onChange = _ref.onChange,
|
|
28
|
+
_ref$disabled = _ref.disabled,
|
|
29
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
30
|
+
options = _ref.options,
|
|
31
|
+
margin = _ref.margin,
|
|
32
|
+
_ref$multiple = _ref.multiple,
|
|
33
|
+
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
|
34
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
35
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
36
|
+
var _useState = (0, _react.useState)("label-toggle-group-".concat((0, _uuid.v4)())),
|
|
37
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
38
|
+
toggleGroupLabelId = _useState2[0];
|
|
39
|
+
var _useState3 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : -1),
|
|
40
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
41
|
+
selectedValue = _useState4[0],
|
|
42
|
+
setSelectedValue = _useState4[1];
|
|
48
43
|
var colorsTheme = (0, _useTheme["default"])();
|
|
49
|
-
|
|
50
|
-
var _useState = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : -1),
|
|
51
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
52
|
-
selectedValue = _useState2[0],
|
|
53
|
-
setSelectedValue = _useState2[1];
|
|
54
|
-
|
|
55
|
-
var _useState3 = (0, _react.useState)("toggle-group-".concat((0, _uuid.v4)())),
|
|
56
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
|
|
57
|
-
toggleGroupId = _useState4[0];
|
|
58
|
-
|
|
44
|
+
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
59
45
|
var handleToggleChange = function handleToggleChange(selectedOption) {
|
|
60
46
|
var newSelectedOptions;
|
|
61
|
-
|
|
62
47
|
if (value == null) {
|
|
63
48
|
if (multiple && Array.isArray(selectedValue)) {
|
|
64
49
|
newSelectedOptions = selectedValue.map(function (value) {
|
|
65
50
|
return value;
|
|
66
51
|
});
|
|
67
|
-
|
|
68
52
|
if (newSelectedOptions.includes(selectedOption)) {
|
|
69
53
|
var index = newSelectedOptions.indexOf(selectedOption);
|
|
70
54
|
newSelectedOptions.splice(index, 1);
|
|
71
55
|
} else {
|
|
72
56
|
newSelectedOptions.push(selectedOption);
|
|
73
57
|
}
|
|
74
|
-
|
|
75
58
|
setSelectedValue(newSelectedOptions);
|
|
76
59
|
} else setSelectedValue(selectedOption === selectedValue ? null : selectedOption);
|
|
77
60
|
} else if (multiple) {
|
|
78
61
|
newSelectedOptions = Array.isArray(value) ? value.map(function (v) {
|
|
79
62
|
return v;
|
|
80
63
|
}) : value;
|
|
81
|
-
|
|
82
64
|
if (newSelectedOptions.includes(selectedOption)) {
|
|
83
65
|
var _index = newSelectedOptions.indexOf(selectedOption);
|
|
84
|
-
|
|
85
66
|
newSelectedOptions.splice(_index, 1);
|
|
86
67
|
} else newSelectedOptions.push(selectedOption);
|
|
87
68
|
}
|
|
88
|
-
|
|
89
69
|
onChange === null || onChange === void 0 ? void 0 : onChange(multiple ? newSelectedOptions : selectedOption);
|
|
90
70
|
};
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
71
|
+
var handleOnKeyDown = function handleOnKeyDown(event, optionValue) {
|
|
72
|
+
switch (event.key) {
|
|
73
|
+
case "Enter":
|
|
74
|
+
case " ":
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
handleToggleChange(optionValue);
|
|
77
|
+
}
|
|
95
78
|
};
|
|
96
|
-
|
|
97
79
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
98
80
|
theme: colorsTheme.toggleGroup
|
|
99
81
|
}, /*#__PURE__*/_react["default"].createElement(ToggleGroup, {
|
|
100
|
-
margin: margin
|
|
101
|
-
disabled: disabled
|
|
82
|
+
margin: margin
|
|
102
83
|
}, /*#__PURE__*/_react["default"].createElement(Label, {
|
|
103
|
-
|
|
84
|
+
id: toggleGroupLabelId,
|
|
104
85
|
disabled: disabled
|
|
105
86
|
}, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
106
87
|
disabled: disabled
|
|
107
88
|
}, helperText), /*#__PURE__*/_react["default"].createElement(OptionsContainer, {
|
|
108
|
-
|
|
109
|
-
role: multiple ? "group" : "radiogroup"
|
|
89
|
+
"aria-labelledby": toggleGroupLabelId
|
|
110
90
|
}, options.map(function (option, i) {
|
|
111
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
"aria-
|
|
115
|
-
|
|
91
|
+
return /*#__PURE__*/_react["default"].createElement(ToggleButton, {
|
|
92
|
+
key: "toggle-".concat(i, "-").concat(option.label),
|
|
93
|
+
"aria-label": option.title,
|
|
94
|
+
"aria-pressed": multiple ? value ? Array.isArray(value) && value.includes(option.value) : Array.isArray(selectedValue) && selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue,
|
|
95
|
+
disabled: disabled,
|
|
116
96
|
onClick: function onClick() {
|
|
117
|
-
|
|
97
|
+
handleToggleChange(option.value);
|
|
118
98
|
},
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
isIcon: option.icon,
|
|
122
|
-
optionLabel: option.label,
|
|
123
|
-
disabled: disabled,
|
|
124
|
-
onKeyPress: function onKeyPress(event) {
|
|
125
|
-
handleKeyPress(event, option.value);
|
|
99
|
+
onKeyDown: function onKeyDown(event) {
|
|
100
|
+
handleOnKeyDown(event, option.value);
|
|
126
101
|
},
|
|
127
|
-
|
|
128
|
-
|
|
102
|
+
tabIndex: !disabled ? tabIndex : -1,
|
|
103
|
+
title: option.title,
|
|
104
|
+
backgroundType: backgroundType,
|
|
105
|
+
hasIcon: option.icon,
|
|
106
|
+
optionLabel: option.label,
|
|
107
|
+
selected: multiple ? value ? Array.isArray(value) && value.includes(option.value) : Array.isArray(selectedValue) && selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue
|
|
108
|
+
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
109
|
+
alignItems: "center"
|
|
110
|
+
}, option.icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
129
111
|
optionLabel: option.label
|
|
130
|
-
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(
|
|
112
|
+
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
131
113
|
src: option.icon
|
|
132
114
|
}) : option.icon), option.label && /*#__PURE__*/_react["default"].createElement(LabelContainer, null, option.label)));
|
|
133
115
|
}))));
|
|
134
116
|
};
|
|
135
|
-
|
|
136
|
-
|
|
117
|
+
var ToggleGroup = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
118
|
+
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
119
|
+
}, function (props) {
|
|
120
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
121
|
+
}, function (props) {
|
|
122
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
|
|
123
|
+
}, function (props) {
|
|
124
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
|
|
125
|
+
}, function (props) {
|
|
126
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
127
|
+
});
|
|
128
|
+
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) {
|
|
137
129
|
return props.disabled ? props.theme.disabledLabelFontColor : props.theme.labelFontColor;
|
|
138
130
|
}, function (props) {
|
|
139
131
|
return props.theme.labelFontFamily;
|
|
@@ -146,8 +138,7 @@ var Label = _styledComponents["default"].label(_templateObject || (_templateObje
|
|
|
146
138
|
}, function (props) {
|
|
147
139
|
return props.theme.labelLineHeight;
|
|
148
140
|
});
|
|
149
|
-
|
|
150
|
-
var HelperText = _styledComponents["default"].span(_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) {
|
|
141
|
+
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) {
|
|
151
142
|
return props.disabled ? props.theme.disabledHelperTextFontcolor : props.theme.helperTextFontColor;
|
|
152
143
|
}, function (props) {
|
|
153
144
|
return props.theme.helperTextFontFamily;
|
|
@@ -160,20 +151,7 @@ var HelperText = _styledComponents["default"].span(_templateObject2 || (_templat
|
|
|
160
151
|
}, function (props) {
|
|
161
152
|
return props.theme.helperTextLineHeight;
|
|
162
153
|
});
|
|
163
|
-
|
|
164
|
-
var ToggleGroup = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
165
|
-
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
166
|
-
}, function (props) {
|
|
167
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
168
|
-
}, function (props) {
|
|
169
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
|
|
170
|
-
}, function (props) {
|
|
171
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
|
|
172
|
-
}, function (props) {
|
|
173
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n width: max-content;\n opacity: 1;\n height: calc(48px - 4px - 4px);\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n border-color: ", ";\n background-color: ", ";\n padding: 4px;\n margin-top: ", ";\n"])), function (props) {
|
|
154
|
+
var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 0.25rem;\n width: max-content;\n height: calc(48px - 4px - 4px);\n padding: 0.25rem;\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n border-color: ", ";\n margin-top: ", ";\n background-color: ", ";\n"])), function (props) {
|
|
177
155
|
return props.theme.containerBorderThickness;
|
|
178
156
|
}, function (props) {
|
|
179
157
|
return props.theme.containerBorderStyle;
|
|
@@ -181,18 +159,36 @@ var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_te
|
|
|
181
159
|
return props.theme.containerBorderRadius;
|
|
182
160
|
}, function (props) {
|
|
183
161
|
return props.theme.containerBorderColor;
|
|
184
|
-
}, function (props) {
|
|
185
|
-
return props.theme.containerBackgroundColor;
|
|
186
162
|
}, function (props) {
|
|
187
163
|
return props.theme.containerMarginTop;
|
|
164
|
+
}, function (props) {
|
|
165
|
+
return props.theme.containerBackgroundColor;
|
|
188
166
|
});
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
167
|
+
var ToggleButton = _styledComponents["default"].button(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding-left: ", ";\n padding-right: ", ";\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n background-color: ", ";\n color: ", ";\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n color: #ffffff;\n }\n &:focus {\n outline: none;\n box-shadow: ", ";\n }\n &:disabled {\n background-color: ", ";\n color: ", ";\n cursor: not-allowed;\n }\n"])), function (props) {
|
|
168
|
+
return props.optionLabel && props.hasIcon || props.optionLabel && !props.hasIcon ? props.theme.labelPaddingLeft : props.theme.iconPaddingLeft;
|
|
169
|
+
}, function (props) {
|
|
170
|
+
return props.optionLabel && props.hasIcon || props.optionLabel && !props.hasIcon ? props.theme.labelPaddingRight : props.theme.iconPaddingRight;
|
|
171
|
+
}, function (props) {
|
|
172
|
+
return props.theme.optionBorderThickness;
|
|
173
|
+
}, function (props) {
|
|
174
|
+
return props.theme.optionBorderStyle;
|
|
175
|
+
}, function (props) {
|
|
176
|
+
return props.theme.optionBorderRadius;
|
|
177
|
+
}, function (props) {
|
|
178
|
+
return props.selected ? props.theme.selectedBackgroundColor : props.theme.unselectedBackgroundColor;
|
|
179
|
+
}, function (props) {
|
|
180
|
+
return props.selected ? props.theme.selectedFontColor : props.theme.unselectedFontColor;
|
|
192
181
|
}, function (props) {
|
|
193
|
-
return
|
|
182
|
+
return props.selected ? props.theme.selectedHoverBackgroundColor : props.theme.unselectedHoverBackgroundColor;
|
|
183
|
+
}, function (props) {
|
|
184
|
+
return props.selected ? props.theme.selectedActiveBackgroundColor : props.theme.unselectedActiveBackgroundColor;
|
|
185
|
+
}, function (props) {
|
|
186
|
+
return "0 0 0 ".concat(props.theme.optionFocusBorderThickness, " ").concat(props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor);
|
|
187
|
+
}, function (props) {
|
|
188
|
+
return props.selected ? props.theme.selectedDisabledBackgroundColor : props.theme.unselectedDisabledBackgroundColor;
|
|
189
|
+
}, function (props) {
|
|
190
|
+
return props.selected ? props.theme.selectedDisabledFontColor : props.theme.unselectedDisabledFontColor;
|
|
194
191
|
});
|
|
195
|
-
|
|
196
192
|
var LabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
197
193
|
return props.theme.optionLabelFontFamily;
|
|
198
194
|
}, function (props) {
|
|
@@ -202,14 +198,7 @@ var LabelContainer = _styledComponents["default"].span(_templateObject6 || (_tem
|
|
|
202
198
|
}, function (props) {
|
|
203
199
|
return props.theme.optionLabelFontWeight;
|
|
204
200
|
});
|
|
205
|
-
|
|
206
|
-
var OptionContent = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n align-items: center;\n"])));
|
|
207
|
-
|
|
208
|
-
var Icon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
209
|
-
|
|
210
|
-
var IconContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n height: 24px;\n width: 24px;\n overflow: hidden;\n display: flex;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
201
|
+
var IconContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 24px;\n width: 24px;\n margin-right: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
211
202
|
return props.optionLabel && props.theme.iconMarginRight;
|
|
212
203
|
});
|
|
213
|
-
|
|
214
|
-
var _default = DxcToggleGroup;
|
|
215
|
-
exports["default"] = _default;
|
|
204
|
+
var _default = exports["default"] = DxcToggleGroup;
|
|
@@ -3,9 +3,10 @@ import { userEvent, within } from "@storybook/testing-library";
|
|
|
3
3
|
import DxcToggleGroup from "./ToggleGroup";
|
|
4
4
|
import Title from "../../.storybook/components/Title";
|
|
5
5
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
6
7
|
|
|
7
8
|
export default {
|
|
8
|
-
title: "
|
|
9
|
+
title: "Toggle Group",
|
|
9
10
|
component: DxcToggleGroup,
|
|
10
11
|
};
|
|
11
12
|
|
|
@@ -41,7 +42,7 @@ const options = [
|
|
|
41
42
|
},
|
|
42
43
|
{
|
|
43
44
|
value: 2,
|
|
44
|
-
label: "
|
|
45
|
+
label: "X",
|
|
45
46
|
},
|
|
46
47
|
{
|
|
47
48
|
value: 3,
|
|
@@ -52,14 +53,17 @@ const optionsWithIcon = [
|
|
|
52
53
|
{
|
|
53
54
|
value: 1,
|
|
54
55
|
icon: wifiSVG,
|
|
56
|
+
title: "WiFi connection",
|
|
55
57
|
},
|
|
56
58
|
{
|
|
57
59
|
value: 2,
|
|
58
60
|
icon: ethernetSVG,
|
|
61
|
+
title: "Ethernet connection",
|
|
59
62
|
},
|
|
60
63
|
{
|
|
61
64
|
value: 3,
|
|
62
65
|
icon: gMobileSVG,
|
|
66
|
+
title: "3G Mobile data connection",
|
|
63
67
|
},
|
|
64
68
|
];
|
|
65
69
|
const optionsWithIconAndLabel = [
|
|
@@ -86,9 +90,19 @@ const twoOptions = [
|
|
|
86
90
|
},
|
|
87
91
|
{
|
|
88
92
|
value: 2,
|
|
89
|
-
label: "
|
|
93
|
+
label: "X",
|
|
90
94
|
},
|
|
91
95
|
];
|
|
96
|
+
|
|
97
|
+
const opinionatedTheme = {
|
|
98
|
+
toggleGroup: {
|
|
99
|
+
selectedBaseColor: "#5f249f",
|
|
100
|
+
selectedFontColor: "#ffffff",
|
|
101
|
+
unselectedBaseColor: "#e6e6e6",
|
|
102
|
+
unselectedFontColor: "#000000",
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
|
|
92
106
|
export const Chromatic = () => (
|
|
93
107
|
<>
|
|
94
108
|
<ExampleContainer>
|
|
@@ -154,6 +168,37 @@ export const Chromatic = () => (
|
|
|
154
168
|
<Title title="xxLarge" theme="light" level={4} />
|
|
155
169
|
<DxcToggleGroup label="xxLarge margin" options={options} margin="xxlarge" />
|
|
156
170
|
</ExampleContainer>
|
|
171
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
172
|
+
<ExampleContainer>
|
|
173
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
174
|
+
<Title title="Selected" theme="light" level={4} />
|
|
175
|
+
<DxcToggleGroup label="Selected" helperText="HelperText" defaultValue={2} options={options} />
|
|
176
|
+
</HalstackProvider>
|
|
177
|
+
</ExampleContainer>
|
|
178
|
+
<ExampleContainer>
|
|
179
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
180
|
+
<Title title="Icons & label toggle group" theme="light" level={4} />
|
|
181
|
+
<DxcToggleGroup label="Icons & label" options={optionsWithIconAndLabel} />
|
|
182
|
+
</HalstackProvider>
|
|
183
|
+
</ExampleContainer>
|
|
184
|
+
<ExampleContainer>
|
|
185
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
186
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
187
|
+
<DxcToggleGroup label="Disabled" defaultValue={2} options={options} disabled />
|
|
188
|
+
</HalstackProvider>
|
|
189
|
+
</ExampleContainer>
|
|
190
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
191
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
192
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
193
|
+
<DxcToggleGroup label="Hovered" options={twoOptions} defaultValue={2} />
|
|
194
|
+
</HalstackProvider>
|
|
195
|
+
</ExampleContainer>
|
|
196
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
197
|
+
<Title title="Actived" theme="light" level={4} />
|
|
198
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
199
|
+
<DxcToggleGroup label="Actived" options={twoOptions} defaultValue={2} />
|
|
200
|
+
</HalstackProvider>
|
|
201
|
+
</ExampleContainer>
|
|
157
202
|
</>
|
|
158
203
|
);
|
|
159
204
|
const OptionSelected = () => <DxcToggleGroup label="Toggle group" helperText="HelperText" options={options} />;
|
|
@@ -167,7 +212,7 @@ ToggleGroupSelectedActived.play = async ({ canvasElement }) => {
|
|
|
167
212
|
export const ToggleGroupUnselectedActived = OptionSelected.bind({});
|
|
168
213
|
ToggleGroupUnselectedActived.play = async ({ canvasElement }) => {
|
|
169
214
|
const canvas = within(canvasElement);
|
|
170
|
-
const option = canvas.getByText("
|
|
215
|
+
const option = canvas.getByText("X");
|
|
171
216
|
await userEvent.click(option);
|
|
172
217
|
userEvent.tab();
|
|
173
218
|
};
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
|
-
var _ToggleGroup = _interopRequireDefault(require("./ToggleGroup"));
|
|
10
|
-
|
|
6
|
+
var _ToggleGroup = _interopRequireDefault(require("./ToggleGroup.tsx"));
|
|
11
7
|
var options = [{
|
|
12
8
|
value: 1,
|
|
13
9
|
label: "Amazon"
|
|
@@ -24,12 +20,11 @@ var options = [{
|
|
|
24
20
|
describe("Toggle group component tests", function () {
|
|
25
21
|
test("Toggle group renders with correct labels", function () {
|
|
26
22
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
23
|
+
label: "Toggle group label",
|
|
24
|
+
helperText: "Toggle group helper text",
|
|
25
|
+
options: options
|
|
26
|
+
})),
|
|
27
|
+
getByText = _render.getByText;
|
|
33
28
|
expect(getByText("Toggle group label")).toBeTruthy();
|
|
34
29
|
expect(getByText("Toggle group helper text")).toBeTruthy();
|
|
35
30
|
expect(getByText("Amazon")).toBeTruthy();
|
|
@@ -37,120 +32,106 @@ describe("Toggle group component tests", function () {
|
|
|
37
32
|
expect(getByText("Apple")).toBeTruthy();
|
|
38
33
|
expect(getByText("Google")).toBeTruthy();
|
|
39
34
|
});
|
|
35
|
+
test("Toggle group renders with correct aria-label in only-icon scenario", function () {
|
|
36
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
37
|
+
label: "Toggle group label",
|
|
38
|
+
helperText: "Toggle group helper text",
|
|
39
|
+
options: [{
|
|
40
|
+
value: 1,
|
|
41
|
+
icon: "https://cdn.icon-icons.com/icons2/2645/PNG/512/mic_mute_icon_159965.png",
|
|
42
|
+
title: "Mute"
|
|
43
|
+
}]
|
|
44
|
+
})),
|
|
45
|
+
getByRole = _render2.getByRole;
|
|
46
|
+
expect(getByRole("button").getAttribute("aria-label")).toBe("Mute");
|
|
47
|
+
});
|
|
40
48
|
test("Uncontrolled toggle group calls correct function on change with value", function () {
|
|
41
49
|
var onChange = jest.fn();
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
getByText = _render2.getByText;
|
|
48
|
-
|
|
50
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
51
|
+
options: options,
|
|
52
|
+
onChange: onChange
|
|
53
|
+
})),
|
|
54
|
+
getByText = _render3.getByText;
|
|
49
55
|
var option = getByText("Ebay");
|
|
50
|
-
|
|
51
56
|
_react2.fireEvent.click(option);
|
|
52
|
-
|
|
53
57
|
expect(onChange).toHaveBeenCalledWith(2);
|
|
54
58
|
});
|
|
55
59
|
test("Controlled toggle group calls correct function on change with value", function () {
|
|
56
60
|
var onChange = jest.fn();
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
getByText = _render3.getByText;
|
|
64
|
-
|
|
61
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
62
|
+
options: options,
|
|
63
|
+
onChange: onChange,
|
|
64
|
+
value: 1
|
|
65
|
+
})),
|
|
66
|
+
getByText = _render4.getByText;
|
|
65
67
|
var option = getByText("Ebay");
|
|
66
|
-
|
|
67
68
|
_react2.fireEvent.click(option);
|
|
68
|
-
|
|
69
69
|
expect(onChange).toHaveBeenCalledWith(2);
|
|
70
70
|
});
|
|
71
71
|
test("Function on change is not called when disable", function () {
|
|
72
72
|
var onChange = jest.fn();
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
getByText = _render4.getByText;
|
|
80
|
-
|
|
73
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
74
|
+
options: options,
|
|
75
|
+
onChange: onChange,
|
|
76
|
+
disabled: true
|
|
77
|
+
})),
|
|
78
|
+
getByText = _render5.getByText;
|
|
81
79
|
var option = getByText("Ebay");
|
|
82
|
-
|
|
83
80
|
_react2.fireEvent.click(option);
|
|
84
|
-
|
|
85
81
|
expect(onChange).toHaveBeenCalledTimes(0);
|
|
86
82
|
});
|
|
87
83
|
test("Uncontrolled multiple toggle group calls correct function on change with value when is multiple", function () {
|
|
88
84
|
var onChange = jest.fn();
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
var toggleOptions = getAllByRole("switch");
|
|
98
|
-
|
|
85
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
86
|
+
options: options,
|
|
87
|
+
onChange: onChange,
|
|
88
|
+
multiple: true
|
|
89
|
+
})),
|
|
90
|
+
getAllByRole = _render6.getAllByRole;
|
|
91
|
+
var toggleOptions = getAllByRole("button");
|
|
99
92
|
_react2.fireEvent.click(toggleOptions[0]);
|
|
100
|
-
|
|
101
93
|
expect(onChange).toHaveBeenCalledWith([1]);
|
|
102
|
-
|
|
103
94
|
_react2.fireEvent.click(toggleOptions[1]);
|
|
104
|
-
|
|
105
95
|
_react2.fireEvent.click(toggleOptions[3]);
|
|
106
|
-
|
|
107
96
|
expect(onChange).toHaveBeenCalledWith([1, 2, 4]);
|
|
108
|
-
expect(toggleOptions[0].getAttribute("aria-
|
|
109
|
-
expect(toggleOptions[1].getAttribute("aria-
|
|
110
|
-
expect(toggleOptions[3].getAttribute("aria-
|
|
97
|
+
expect(toggleOptions[0].getAttribute("aria-pressed")).toBe("true");
|
|
98
|
+
expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
|
|
99
|
+
expect(toggleOptions[3].getAttribute("aria-pressed")).toBe("true");
|
|
111
100
|
});
|
|
112
101
|
test("Controlled multiple toggle returns always same values", function () {
|
|
113
102
|
var onChange = jest.fn();
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
getByText = _render6.getByText;
|
|
122
|
-
|
|
103
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
104
|
+
options: options,
|
|
105
|
+
onChange: onChange,
|
|
106
|
+
value: [1],
|
|
107
|
+
multiple: true
|
|
108
|
+
})),
|
|
109
|
+
getByText = _render7.getByText;
|
|
123
110
|
var option = getByText("Ebay");
|
|
124
|
-
|
|
125
111
|
_react2.fireEvent.click(option);
|
|
126
|
-
|
|
127
112
|
expect(onChange).toHaveBeenCalledWith([1, 2]);
|
|
128
113
|
var option2 = getByText("Google");
|
|
129
|
-
|
|
130
114
|
_react2.fireEvent.click(option2);
|
|
131
|
-
|
|
132
115
|
expect(onChange).toHaveBeenNthCalledWith(2, [1, 4]);
|
|
133
116
|
});
|
|
134
117
|
test("Single selection: Renders with correct default value", function () {
|
|
135
|
-
var
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
expect(toggleOptions[1].getAttribute("aria-checked")).toBe("true");
|
|
118
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
119
|
+
options: options,
|
|
120
|
+
defaultValue: 2
|
|
121
|
+
})),
|
|
122
|
+
getAllByRole = _render8.getAllByRole;
|
|
123
|
+
var toggleOptions = getAllByRole("button");
|
|
124
|
+
expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
|
|
143
125
|
});
|
|
144
126
|
test("Multiple selection: Renders with correct default value", function () {
|
|
145
|
-
var
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
expect(toggleOptions[
|
|
154
|
-
expect(toggleOptions[3].getAttribute("aria-checked")).toBe("true");
|
|
127
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
128
|
+
options: options,
|
|
129
|
+
defaultValue: [2, 4],
|
|
130
|
+
multiple: true
|
|
131
|
+
})),
|
|
132
|
+
getAllByRole = _render9.getAllByRole;
|
|
133
|
+
var toggleOptions = getAllByRole("button");
|
|
134
|
+
expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
|
|
135
|
+
expect(toggleOptions[3].getAttribute("aria-pressed")).toBe("true");
|
|
155
136
|
});
|
|
156
137
|
});
|