@dxc-technology/halstack-react 0.0.0-ec7b867 → 0.0.0-ecc45e2
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/HalstackContext.d.ts +12 -0
- package/HalstackContext.js +295 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +7 -28
- package/accordion/Accordion.stories.tsx +12 -12
- package/accordion/Accordion.test.js +72 -0
- package/accordion/types.d.ts +5 -1
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +14 -15
- package/accordion-group/AccordionGroup.stories.tsx +1 -1
- package/accordion-group/AccordionGroup.test.js +151 -0
- package/accordion-group/types.d.ts +5 -1
- package/alert/Alert.js +4 -1
- package/alert/Alert.test.js +92 -0
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +5 -0
- package/{list → badge}/types.js +0 -0
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +94 -95
- package/bleed/types.d.ts +25 -1
- package/box/Box.js +22 -32
- package/box/Box.test.js +18 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/{radio → bulleted-list}/types.js +0 -0
- package/button/Button.js +53 -68
- package/button/Button.stories.tsx +9 -0
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +7 -7
- package/card/Card.js +24 -27
- package/card/Card.test.js +50 -0
- package/checkbox/Checkbox.d.ts +1 -1
- package/checkbox/Checkbox.js +43 -39
- package/checkbox/Checkbox.stories.tsx +124 -128
- package/checkbox/Checkbox.test.js +78 -0
- package/checkbox/types.d.ts +7 -3
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +1 -1
- package/common/variables.js +229 -336
- package/date-input/DateInput.js +56 -42
- package/date-input/DateInput.stories.tsx +7 -7
- package/date-input/DateInput.test.js +479 -0
- package/date-input/types.d.ts +16 -9
- package/dialog/Dialog.js +46 -50
- package/dialog/Dialog.stories.tsx +1 -2
- package/dialog/Dialog.test.js +70 -0
- package/dialog/types.d.ts +2 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +242 -250
- package/dropdown/Dropdown.stories.tsx +126 -63
- package/dropdown/Dropdown.test.js +591 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +80 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +92 -0
- package/dropdown/types.d.ts +25 -5
- package/file-input/FileInput.js +9 -6
- package/file-input/FileInput.test.js +457 -0
- package/file-input/FileItem.js +7 -5
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +21 -0
- package/{row → flex}/types.js +0 -0
- package/footer/Footer.js +15 -88
- package/footer/Footer.test.js +109 -0
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +1 -1
- package/header/Header.js +95 -114
- package/header/Header.stories.tsx +46 -36
- package/header/Header.test.js +79 -0
- package/header/Icons.js +2 -2
- package/header/types.d.ts +2 -2
- package/heading/Heading.test.js +186 -0
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +36 -36
- package/inset/types.d.ts +25 -1
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +71 -131
- package/layout/ApplicationLayout.stories.tsx +83 -93
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +18 -33
- package/link/Link.d.ts +3 -2
- package/link/Link.js +57 -74
- package/link/Link.stories.tsx +95 -53
- package/link/Link.test.js +83 -0
- package/link/types.d.ts +7 -23
- package/main.d.ts +10 -15
- package/main.js +48 -82
- package/number-input/NumberInput.js +11 -18
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +506 -0
- package/number-input/types.d.ts +17 -10
- package/package.json +12 -10
- package/paginator/Paginator.js +17 -38
- package/paginator/Paginator.test.js +308 -0
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +7 -4
- package/password-input/PasswordInput.test.js +180 -0
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +57 -51
- package/progress-bar/ProgressBar.stories.jsx +13 -11
- package/progress-bar/ProgressBar.test.js +110 -0
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +118 -0
- package/quick-nav/QuickNav.stories.tsx +264 -0
- package/quick-nav/types.d.ts +21 -0
- package/{stack → quick-nav}/types.js +0 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +25 -24
- package/radio-group/RadioGroup.js +58 -50
- package/radio-group/RadioGroup.stories.tsx +60 -39
- package/radio-group/RadioGroup.test.js +530 -83
- package/radio-group/types.d.ts +80 -2
- package/resultsetTable/ResultsetTable.test.js +348 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +199 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +110 -0
- package/select/Select.js +145 -365
- package/select/Select.stories.tsx +231 -176
- package/select/Select.test.js +2175 -0
- package/select/types.d.ts +52 -12
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +184 -52
- package/sidenav/Sidenav.stories.tsx +154 -156
- package/sidenav/Sidenav.test.js +44 -0
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +5 -4
- package/slider/Slider.stories.tsx +8 -8
- package/slider/Slider.test.js +187 -0
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +1 -1
- package/spinner/Spinner.test.js +64 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +127 -55
- package/switch/Switch.stories.tsx +20 -42
- package/switch/Switch.test.js +212 -0
- package/switch/types.d.ts +9 -6
- package/table/Table.test.js +26 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +9 -11
- package/tabs/Tabs.stories.tsx +0 -8
- package/tabs/Tabs.test.js +140 -0
- package/tabs/types.d.ts +5 -1
- package/tabs-nav/NavTabs.d.ts +8 -0
- package/tabs-nav/NavTabs.js +125 -0
- package/tabs-nav/NavTabs.stories.tsx +170 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +130 -0
- package/tabs-nav/types.d.ts +53 -0
- package/tabs-nav/types.js +5 -0
- package/tag/Tag.js +14 -19
- package/tag/Tag.stories.tsx +12 -8
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +1 -1
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +55 -0
- package/text-input/TextInput.js +68 -101
- package/text-input/TextInput.stories.tsx +31 -14
- package/text-input/TextInput.test.js +1712 -0
- package/text-input/types.d.ts +31 -12
- package/textarea/Textarea.js +20 -27
- package/textarea/Textarea.stories.jsx +33 -12
- package/textarea/Textarea.test.js +437 -0
- package/textarea/types.d.ts +18 -11
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +5 -4
- package/toggle-group/ToggleGroup.stories.tsx +4 -4
- package/toggle-group/ToggleGroup.test.js +156 -0
- package/toggle-group/types.d.ts +9 -1
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +131 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.js +2 -2
- package/useTranslatedLabels.d.ts +2 -0
- package/useTranslatedLabels.js +20 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +58 -54
- package/wizard/Wizard.stories.tsx +33 -24
- package/wizard/Wizard.test.js +141 -0
- package/wizard/types.d.ts +10 -5
- package/ThemeContext.d.ts +0 -15
- package/ThemeContext.js +0 -243
- 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/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- 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/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/types.d.ts +0 -54
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -10
- 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 -9
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- 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/select/Select.js
CHANGED
|
@@ -23,103 +23,42 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
23
23
|
|
|
24
24
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
25
|
|
|
26
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
27
|
+
|
|
26
28
|
var _variables = require("../common/variables.js");
|
|
27
29
|
|
|
28
30
|
var _uuid = require("uuid");
|
|
29
31
|
|
|
30
32
|
var _utils = require("../common/utils.js");
|
|
31
33
|
|
|
32
|
-
var
|
|
34
|
+
var _Icons = _interopRequireDefault(require("./Icons"));
|
|
35
|
+
|
|
36
|
+
var _Listbox = _interopRequireDefault(require("./Listbox"));
|
|
37
|
+
|
|
38
|
+
var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
|
|
33
39
|
|
|
34
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17
|
|
40
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
|
|
35
41
|
|
|
36
42
|
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
43
|
|
|
38
44
|
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
45
|
|
|
40
|
-
var
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
role: "img",
|
|
53
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
54
|
-
height: "24px",
|
|
55
|
-
viewBox: "0 0 24 24",
|
|
56
|
-
width: "24px",
|
|
57
|
-
fill: "currentColor"
|
|
58
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
59
|
-
d: "M0 0h24v24H0V0z",
|
|
60
|
-
fill: "none"
|
|
61
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
62
|
-
d: "M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6 1.41 1.41z"
|
|
63
|
-
})),
|
|
64
|
-
arrowDown: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
65
|
-
role: "img",
|
|
66
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
67
|
-
height: "24px",
|
|
68
|
-
viewBox: "0 0 24 24",
|
|
69
|
-
width: "24px",
|
|
70
|
-
fill: "currentColor"
|
|
71
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
72
|
-
d: "M0 0h24v24H0V0z",
|
|
73
|
-
fill: "none"
|
|
74
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
75
|
-
d: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"
|
|
76
|
-
})),
|
|
77
|
-
clear: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
78
|
-
role: "img",
|
|
79
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
80
|
-
width: "24",
|
|
81
|
-
height: "24",
|
|
82
|
-
viewBox: "0 0 24 24",
|
|
83
|
-
fill: "currentColor"
|
|
84
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
85
|
-
d: "M0 0h24v24H0V0z",
|
|
86
|
-
fill: "none"
|
|
87
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
88
|
-
d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
|
|
89
|
-
})),
|
|
90
|
-
selected: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
91
|
-
role: "img",
|
|
92
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
93
|
-
height: "24px",
|
|
94
|
-
viewBox: "0 0 24 24",
|
|
95
|
-
width: "24px",
|
|
96
|
-
fill: "currentColor"
|
|
97
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
98
|
-
d: "M0 0h24v24H0z",
|
|
99
|
-
fill: "none"
|
|
100
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
101
|
-
d: "M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"
|
|
102
|
-
})),
|
|
103
|
-
searchOff: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
104
|
-
role: "img",
|
|
105
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
106
|
-
height: "24px",
|
|
107
|
-
viewBox: "0 0 24 24",
|
|
108
|
-
width: "24px",
|
|
109
|
-
fill: "currentColor"
|
|
110
|
-
}, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("rect", {
|
|
111
|
-
fill: "none",
|
|
112
|
-
height: "24",
|
|
113
|
-
width: "24"
|
|
114
|
-
})), /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
|
|
115
|
-
d: "M15.5,14h-0.79l-0.28-0.27C15.41,12.59,16,11.11,16,9.5C16,5.91,13.09,3,9.5,3C6.08,3,3.28,5.64,3.03,9h2.02 C5.3,6.75,7.18,5,9.5,5C11.99,5,14,7.01,14,9.5S11.99,14,9.5,14c-0.17,0-0.33-0.03-0.5-0.05v2.02C9.17,15.99,9.33,16,9.5,16 c1.61,0,3.09-0.59,4.23-1.57L14,14.71v0.79l5,4.99L20.49,19L15.5,14z"
|
|
116
|
-
}), /*#__PURE__*/_react["default"].createElement("polygon", {
|
|
117
|
-
points: "6.47,10.82 4,13.29 1.53,10.82 0.82,11.53 3.29,14 0.82,16.47 1.53,17.18 4,14.71 6.47,17.18 7.18,16.47 4.71,14 7.18,11.53"
|
|
118
|
-
}))))
|
|
46
|
+
var groupsHaveOptions = function groupsHaveOptions(innerOptions) {
|
|
47
|
+
return innerOptions[0].hasOwnProperty("options") ? innerOptions[0].options ? innerOptions.some(function (groupOption) {
|
|
48
|
+
return groupOption.options.length > 0;
|
|
49
|
+
}) : false : true;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
var filteredGroupsHaveOptions = function filteredGroupsHaveOptions(filteredOptions) {
|
|
53
|
+
return filteredOptions !== null && filteredOptions !== void 0 && filteredOptions[0].options ? filteredOptions.some(function (groupOption) {
|
|
54
|
+
var _groupOption$options;
|
|
55
|
+
|
|
56
|
+
return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
|
|
57
|
+
}) : true;
|
|
119
58
|
};
|
|
120
59
|
|
|
121
|
-
var
|
|
122
|
-
return
|
|
60
|
+
var canOpenOptions = function canOpenOptions(options, disabled) {
|
|
61
|
+
return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions(options);
|
|
123
62
|
};
|
|
124
63
|
|
|
125
64
|
var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, searchValue) {
|
|
@@ -151,8 +90,7 @@ var getLastOptionIndex = function getLastOptionIndex(options, filteredOptions, s
|
|
|
151
90
|
return optional && !multiple ? last + 1 : last;
|
|
152
91
|
};
|
|
153
92
|
|
|
154
|
-
var getSelectedOption = function getSelectedOption(options, multiple, optional,
|
|
155
|
-
var val = value !== null && value !== void 0 ? value : innerValue;
|
|
93
|
+
var getSelectedOption = function getSelectedOption(value, options, multiple, optional, optionalItem) {
|
|
156
94
|
var selectedOption = multiple ? [] : {};
|
|
157
95
|
var singleSelectionIndex;
|
|
158
96
|
|
|
@@ -161,21 +99,21 @@ var getSelectedOption = function getSelectedOption(options, multiple, optional,
|
|
|
161
99
|
options.forEach(function (option) {
|
|
162
100
|
if (option.options) {
|
|
163
101
|
option.options.forEach(function (singleOption) {
|
|
164
|
-
if (
|
|
102
|
+
if (value.includes(singleOption.value)) selectedOption.push(singleOption);
|
|
165
103
|
});
|
|
166
|
-
} else if (
|
|
104
|
+
} else if (value.includes(option.value)) selectedOption.push(option);
|
|
167
105
|
});
|
|
168
106
|
}
|
|
169
107
|
} else {
|
|
170
|
-
if (optional &&
|
|
171
|
-
selectedOption =
|
|
108
|
+
if (optional && value === "") {
|
|
109
|
+
selectedOption = optionalItem;
|
|
172
110
|
singleSelectionIndex = 0;
|
|
173
111
|
} else if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
|
|
174
112
|
var group_index = 0;
|
|
175
113
|
options.some(function (option, index) {
|
|
176
114
|
if (option.options) {
|
|
177
115
|
option.options.some(function (singleOption) {
|
|
178
|
-
if (singleOption.value ===
|
|
116
|
+
if (singleOption.value === value) {
|
|
179
117
|
selectedOption = singleOption;
|
|
180
118
|
singleSelectionIndex = optional ? group_index + 1 : group_index;
|
|
181
119
|
return true;
|
|
@@ -183,7 +121,7 @@ var getSelectedOption = function getSelectedOption(options, multiple, optional,
|
|
|
183
121
|
|
|
184
122
|
group_index++;
|
|
185
123
|
});
|
|
186
|
-
} else if (option.value ===
|
|
124
|
+
} else if (option.value === value) {
|
|
187
125
|
selectedOption = option;
|
|
188
126
|
singleSelectionIndex = optional ? index + 1 : index;
|
|
189
127
|
return true;
|
|
@@ -198,12 +136,17 @@ var getSelectedOption = function getSelectedOption(options, multiple, optional,
|
|
|
198
136
|
};
|
|
199
137
|
};
|
|
200
138
|
|
|
139
|
+
var notOptionalCheck = function notOptionalCheck(value, multiple, optional) {
|
|
140
|
+
return !optional && (multiple ? value.length === 0 : value === "");
|
|
141
|
+
};
|
|
142
|
+
|
|
201
143
|
var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
202
144
|
var _selectedOption$label;
|
|
203
145
|
|
|
204
146
|
var label = _ref.label,
|
|
205
147
|
_ref$name = _ref.name,
|
|
206
148
|
name = _ref$name === void 0 ? "" : _ref$name,
|
|
149
|
+
defaultValue = _ref.defaultValue,
|
|
207
150
|
value = _ref.value,
|
|
208
151
|
options = _ref.options,
|
|
209
152
|
helperText = _ref.helperText,
|
|
@@ -231,9 +174,10 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
231
174
|
selectId = _useState2[0];
|
|
232
175
|
|
|
233
176
|
var selectLabelId = "label-".concat(selectId);
|
|
177
|
+
var errorId = "error-".concat(selectId);
|
|
234
178
|
var optionsListId = "".concat(selectId, "-listbox");
|
|
235
179
|
|
|
236
|
-
var _useState3 = (0, _react.useState)(multiple ? [] : ""),
|
|
180
|
+
var _useState3 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : ""),
|
|
237
181
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
238
182
|
innerValue = _useState4[0],
|
|
239
183
|
setInnerValue = _useState4[1];
|
|
@@ -253,11 +197,11 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
253
197
|
isOpen = _useState10[0],
|
|
254
198
|
changeIsOpen = _useState10[1];
|
|
255
199
|
|
|
256
|
-
var
|
|
200
|
+
var selectRef = (0, _react.useRef)(null);
|
|
257
201
|
var selectSearchInputRef = (0, _react.useRef)(null);
|
|
258
|
-
var selectOptionsListRef = (0, _react.useRef)(null);
|
|
259
202
|
var colorsTheme = (0, _useTheme["default"])();
|
|
260
|
-
var
|
|
203
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
204
|
+
var optionalItem = {
|
|
261
205
|
label: placeholder,
|
|
262
206
|
value: ""
|
|
263
207
|
};
|
|
@@ -266,42 +210,16 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
266
210
|
}, [options, searchValue]);
|
|
267
211
|
var lastOptionIndex = (0, _react.useMemo)(function () {
|
|
268
212
|
return getLastOptionIndex(options, filteredOptions, searchable, optional, multiple);
|
|
269
|
-
}, [
|
|
213
|
+
}, [options, filteredOptions, searchable, optional, multiple]);
|
|
270
214
|
|
|
271
215
|
var _useMemo = (0, _react.useMemo)(function () {
|
|
272
|
-
return getSelectedOption(options, multiple, optional,
|
|
273
|
-
}, [options, multiple, optional,
|
|
216
|
+
return getSelectedOption(value !== null && value !== void 0 ? value : innerValue, options, multiple, optional, optionalItem);
|
|
217
|
+
}, [value, innerValue, options, multiple, optional, optionalItem]),
|
|
274
218
|
selectedOption = _useMemo.selectedOption,
|
|
275
219
|
singleSelectionIndex = _useMemo.singleSelectionIndex;
|
|
276
220
|
|
|
277
|
-
var notOptionalCheck = function notOptionalCheck(value) {
|
|
278
|
-
return value === "" && !optional;
|
|
279
|
-
};
|
|
280
|
-
|
|
281
|
-
var notOptionalMultipleCheck = function notOptionalMultipleCheck() {
|
|
282
|
-
return (value !== null && value !== void 0 ? value : innerValue).length === 0 && !optional;
|
|
283
|
-
};
|
|
284
|
-
|
|
285
|
-
var canBeOpenOptions = function canBeOpenOptions() {
|
|
286
|
-
return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions();
|
|
287
|
-
};
|
|
288
|
-
|
|
289
|
-
var groupsHaveOptions = function groupsHaveOptions() {
|
|
290
|
-
return options[0].hasOwnProperty("options") ? options[0].options ? options.some(function (groupOption) {
|
|
291
|
-
return groupOption.options.length > 0;
|
|
292
|
-
}) : false : true;
|
|
293
|
-
};
|
|
294
|
-
|
|
295
|
-
var filteredGroupsHaveOptions = function filteredGroupsHaveOptions() {
|
|
296
|
-
return filteredOptions !== null && filteredOptions !== void 0 && filteredOptions[0].options ? filteredOptions.some(function (groupOption) {
|
|
297
|
-
var _groupOption$options;
|
|
298
|
-
|
|
299
|
-
return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
|
|
300
|
-
}) : true;
|
|
301
|
-
};
|
|
302
|
-
|
|
303
221
|
var openOptions = function openOptions() {
|
|
304
|
-
if (!isOpen &&
|
|
222
|
+
if (!isOpen && canOpenOptions(options, disabled)) changeIsOpen(true);
|
|
305
223
|
};
|
|
306
224
|
|
|
307
225
|
var closeOptions = function closeOptions() {
|
|
@@ -312,36 +230,21 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
312
230
|
};
|
|
313
231
|
|
|
314
232
|
var handleSelectChangeValue = function handleSelectChangeValue(newOption) {
|
|
315
|
-
|
|
316
|
-
var _res, _res2;
|
|
233
|
+
var newValue;
|
|
317
234
|
|
|
318
|
-
|
|
319
|
-
if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) value ?
|
|
235
|
+
if (multiple) {
|
|
236
|
+
if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) newValue = (value !== null && value !== void 0 ? value : innerValue).filter(function (optionVal) {
|
|
320
237
|
return optionVal !== newOption.value;
|
|
321
|
-
})
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
});else onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
332
|
-
value: (_res2 = res) !== null && _res2 !== void 0 ? _res2 : innerValue,
|
|
333
|
-
error: null
|
|
334
|
-
});
|
|
335
|
-
} else {
|
|
336
|
-
value !== null && value !== void 0 ? value : setInnerValue(newOption.value);
|
|
337
|
-
if (notOptionalCheck(newOption.value)) onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
338
|
-
value: newOption.value,
|
|
339
|
-
error: getNotOptionalErrorMessage()
|
|
340
|
-
});else onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
341
|
-
value: newOption.value,
|
|
342
|
-
error: null
|
|
343
|
-
});
|
|
344
|
-
}
|
|
238
|
+
});else newValue = [].concat((0, _toConsumableArray2["default"])(value !== null && value !== void 0 ? value : innerValue), [newOption.value]);
|
|
239
|
+
} else newValue = newOption.value;
|
|
240
|
+
|
|
241
|
+
value !== null && value !== void 0 ? value : setInnerValue(newValue);
|
|
242
|
+
notOptionalCheck(newValue, multiple, optional) ? onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
243
|
+
value: newValue,
|
|
244
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
245
|
+
}) : onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
246
|
+
value: newValue
|
|
247
|
+
});
|
|
345
248
|
};
|
|
346
249
|
|
|
347
250
|
var handleSelectOnClick = function handleSelectOnClick() {
|
|
@@ -362,20 +265,20 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
362
265
|
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
363
266
|
closeOptions();
|
|
364
267
|
setSearchValue("");
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
268
|
+
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
269
|
+
notOptionalCheck(currentValue, multiple, optional) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
270
|
+
value: currentValue,
|
|
271
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
272
|
+
}) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
273
|
+
value: currentValue
|
|
371
274
|
});
|
|
372
275
|
}
|
|
373
276
|
};
|
|
374
277
|
|
|
375
278
|
var handleSelectOnKeyDown = function handleSelectOnKeyDown(event) {
|
|
376
|
-
switch (event.
|
|
377
|
-
case
|
|
378
|
-
|
|
279
|
+
switch (event.key) {
|
|
280
|
+
case "Down":
|
|
281
|
+
case "ArrowDown":
|
|
379
282
|
event.preventDefault();
|
|
380
283
|
singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
|
|
381
284
|
if (visualFocusIndex < lastOptionIndex) return visualFocusIndex + 1;else if (visualFocusIndex === lastOptionIndex) return 0;
|
|
@@ -383,8 +286,8 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
383
286
|
openOptions();
|
|
384
287
|
break;
|
|
385
288
|
|
|
386
|
-
case
|
|
387
|
-
|
|
289
|
+
case "Up":
|
|
290
|
+
case "ArrowUp":
|
|
388
291
|
event.preventDefault();
|
|
389
292
|
singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
|
|
390
293
|
return visualFocusIndex === 0 || visualFocusIndex === -1 ? lastOptionIndex : visualFocusIndex - 1;
|
|
@@ -392,21 +295,20 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
392
295
|
openOptions();
|
|
393
296
|
break;
|
|
394
297
|
|
|
395
|
-
case
|
|
396
|
-
|
|
298
|
+
case "Esc":
|
|
299
|
+
case "Escape":
|
|
397
300
|
event.preventDefault();
|
|
398
301
|
closeOptions();
|
|
399
302
|
setSearchValue("");
|
|
400
303
|
break;
|
|
401
304
|
|
|
402
|
-
case
|
|
403
|
-
// Enter
|
|
305
|
+
case "Enter":
|
|
404
306
|
if (isOpen && visualFocusIndex >= 0) {
|
|
405
307
|
var accLength = optional && !multiple ? 1 : 0;
|
|
406
308
|
|
|
407
309
|
if (searchable) {
|
|
408
310
|
if (filteredOptions.length > 0) {
|
|
409
|
-
if (optional && !multiple && visualFocusIndex === 0 && filteredGroupsHaveOptions()) handleSelectChangeValue(
|
|
311
|
+
if (optional && !multiple && visualFocusIndex === 0 && filteredGroupsHaveOptions(filteredOptions)) handleSelectChangeValue(optionalItem);else filteredOptions[0].options ? filteredGroupsHaveOptions(filteredOptions) && filteredOptions.some(function (groupOption) {
|
|
410
312
|
var groupLength = accLength + groupOption.options.length;
|
|
411
313
|
groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
|
|
412
314
|
accLength = groupLength;
|
|
@@ -414,7 +316,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
414
316
|
}) : handleSelectChangeValue(filteredOptions[visualFocusIndex - accLength]);
|
|
415
317
|
}
|
|
416
318
|
} else {
|
|
417
|
-
if (optional && !multiple && visualFocusIndex === 0) handleSelectChangeValue(
|
|
319
|
+
if (optional && !multiple && visualFocusIndex === 0) handleSelectChangeValue(optionalItem);else options[0].options ? options.some(function (groupOption) {
|
|
418
320
|
var groupLength = accLength + groupOption.options.length;
|
|
419
321
|
groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
|
|
420
322
|
accLength = groupLength;
|
|
@@ -439,9 +341,11 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
439
341
|
var handleClearOptionsActionOnClick = function handleClearOptionsActionOnClick(event) {
|
|
440
342
|
event.stopPropagation();
|
|
441
343
|
value !== null && value !== void 0 ? value : setInnerValue([]);
|
|
442
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
344
|
+
!optional ? onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
443
345
|
value: [],
|
|
444
|
-
error:
|
|
346
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
347
|
+
}) : onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
348
|
+
value: []
|
|
445
349
|
});
|
|
446
350
|
};
|
|
447
351
|
|
|
@@ -450,96 +354,17 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
450
354
|
setSearchValue("");
|
|
451
355
|
};
|
|
452
356
|
|
|
453
|
-
(0, _react.
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
|
|
461
|
-
});
|
|
462
|
-
}
|
|
463
|
-
}, [isOpen]);
|
|
464
|
-
(0, _react.useLayoutEffect)(function () {
|
|
465
|
-
var _selectOptionsListRef, _visualFocusedOptionE;
|
|
466
|
-
|
|
467
|
-
var visualFocusedOptionEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : (_selectOptionsListRef = selectOptionsListRef.current) === null || _selectOptionsListRef === void 0 ? void 0 : _selectOptionsListRef.querySelectorAll("[role='option']")[visualFocusIndex];
|
|
468
|
-
visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
|
|
469
|
-
block: "nearest",
|
|
470
|
-
inline: "start"
|
|
471
|
-
});
|
|
472
|
-
}, [visualFocusIndex]);
|
|
473
|
-
|
|
474
|
-
var Option = function Option(_ref2) {
|
|
475
|
-
var option = _ref2.option,
|
|
476
|
-
index = _ref2.index,
|
|
477
|
-
_ref2$isGroupedOption = _ref2.isGroupedOption,
|
|
478
|
-
isGroupedOption = _ref2$isGroupedOption === void 0 ? false : _ref2$isGroupedOption;
|
|
479
|
-
var isSelected = multiple ? (value !== null && value !== void 0 ? value : innerValue).includes(option.value) : (value !== null && value !== void 0 ? value : innerValue) === option.value;
|
|
480
|
-
var isLastOption = index === lastOptionIndex;
|
|
481
|
-
return /*#__PURE__*/_react["default"].createElement(OptionItem, {
|
|
482
|
-
id: "option-".concat(index),
|
|
483
|
-
onClick: function onClick() {
|
|
484
|
-
handleSelectChangeValue(option);
|
|
485
|
-
!multiple && closeOptions();
|
|
486
|
-
setSearchValue("");
|
|
487
|
-
},
|
|
488
|
-
visualFocused: visualFocusIndex === index,
|
|
489
|
-
selected: isSelected,
|
|
490
|
-
role: "option",
|
|
491
|
-
"aria-selected": isSelected
|
|
492
|
-
}, /*#__PURE__*/_react["default"].createElement(StyledOption, {
|
|
493
|
-
visualFocused: visualFocusIndex === index,
|
|
494
|
-
selected: isSelected,
|
|
495
|
-
last: isLastOption,
|
|
496
|
-
grouped: isGroupedOption,
|
|
497
|
-
multiple: multiple
|
|
498
|
-
}, multiple && /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
499
|
-
tabIndex: -1,
|
|
500
|
-
checked: isSelected
|
|
501
|
-
}), option.icon && /*#__PURE__*/_react["default"].createElement(OptionIcon, {
|
|
502
|
-
grouped: isGroupedOption,
|
|
503
|
-
multiple: multiple,
|
|
504
|
-
role: !(typeof option.icon === "string") && "img"
|
|
505
|
-
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(OptionIconImg, {
|
|
506
|
-
src: option.icon
|
|
507
|
-
}) : option.icon), /*#__PURE__*/_react["default"].createElement(OptionContent, {
|
|
508
|
-
grouped: isGroupedOption,
|
|
509
|
-
hasIcon: option.icon,
|
|
510
|
-
multiple: multiple
|
|
511
|
-
}, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, selectIcons.selected))));
|
|
512
|
-
};
|
|
513
|
-
|
|
514
|
-
var globalIndex = optional && !multiple ? 0 : -1; // index for options, starting from 0 to options.length -1
|
|
515
|
-
|
|
516
|
-
var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
|
|
517
|
-
if (option.options) {
|
|
518
|
-
var groupId = "group-".concat(mapIndex);
|
|
519
|
-
return option.options.length > 0 && /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement(GroupList, {
|
|
520
|
-
role: "group",
|
|
521
|
-
"aria-labelledby": groupId
|
|
522
|
-
}, /*#__PURE__*/_react["default"].createElement(GroupLabel, {
|
|
523
|
-
role: "presentation",
|
|
524
|
-
id: groupId
|
|
525
|
-
}, option.label), option.options.map(function (singleOption) {
|
|
526
|
-
globalIndex++;
|
|
527
|
-
return /*#__PURE__*/_react["default"].createElement(Option, {
|
|
528
|
-
option: singleOption,
|
|
529
|
-
index: globalIndex,
|
|
530
|
-
isGroupedOption: true
|
|
531
|
-
});
|
|
532
|
-
})));
|
|
533
|
-
} else {
|
|
534
|
-
globalIndex++;
|
|
535
|
-
return /*#__PURE__*/_react["default"].createElement(Option, {
|
|
536
|
-
key: "option-".concat(option.value),
|
|
537
|
-
option: option,
|
|
538
|
-
index: globalIndex
|
|
539
|
-
});
|
|
540
|
-
}
|
|
541
|
-
};
|
|
357
|
+
var handleOptionOnClick = (0, _react.useCallback)(function (option) {
|
|
358
|
+
handleSelectChangeValue(option);
|
|
359
|
+
!multiple && closeOptions();
|
|
360
|
+
setSearchValue("");
|
|
361
|
+
}, [handleSelectChangeValue, closeOptions, multiple]);
|
|
362
|
+
var getSelectWidth = (0, _react.useCallback)(function () {
|
|
363
|
+
var _selectRef$current;
|
|
542
364
|
|
|
365
|
+
var rect = selectRef === null || selectRef === void 0 ? void 0 : (_selectRef$current = selectRef.current) === null || _selectRef$current === void 0 ? void 0 : _selectRef$current.getBoundingClientRect();
|
|
366
|
+
return rect === null || rect === void 0 ? void 0 : rect.width;
|
|
367
|
+
}, []);
|
|
543
368
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
544
369
|
theme: colorsTheme.select
|
|
545
370
|
}, /*#__PURE__*/_react["default"].createElement(SelectContainer, {
|
|
@@ -550,12 +375,16 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
550
375
|
id: selectLabelId,
|
|
551
376
|
disabled: disabled,
|
|
552
377
|
onClick: function onClick() {
|
|
553
|
-
|
|
378
|
+
selectRef.current.focus();
|
|
554
379
|
},
|
|
555
380
|
helperText: helperText
|
|
556
|
-
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null,
|
|
381
|
+
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
557
382
|
disabled: disabled
|
|
558
|
-
}, helperText), /*#__PURE__*/_react["default"].createElement(
|
|
383
|
+
}, helperText), /*#__PURE__*/_react["default"].createElement(Popover.Root, {
|
|
384
|
+
open: isOpen
|
|
385
|
+
}, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
|
|
386
|
+
asChild: true
|
|
387
|
+
}, /*#__PURE__*/_react["default"].createElement(Select, {
|
|
559
388
|
id: selectId,
|
|
560
389
|
disabled: disabled,
|
|
561
390
|
error: error,
|
|
@@ -563,16 +392,18 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
563
392
|
onClick: handleSelectOnClick,
|
|
564
393
|
onFocus: handleSelectOnFocus,
|
|
565
394
|
onKeyDown: handleSelectOnKeyDown,
|
|
566
|
-
ref:
|
|
567
|
-
tabIndex: tabIndex,
|
|
395
|
+
ref: selectRef,
|
|
396
|
+
tabIndex: disabled ? -1 : tabIndex,
|
|
568
397
|
role: "combobox",
|
|
569
398
|
"aria-controls": optionsListId,
|
|
399
|
+
"aria-disabled": disabled,
|
|
570
400
|
"aria-expanded": isOpen,
|
|
571
401
|
"aria-haspopup": "listbox",
|
|
572
|
-
"aria-labelledby": selectLabelId,
|
|
402
|
+
"aria-labelledby": label ? selectLabelId : undefined,
|
|
573
403
|
"aria-activedescendant": visualFocusIndex >= 0 ? "option-".concat(visualFocusIndex) : undefined,
|
|
574
|
-
"aria-invalid": error ?
|
|
575
|
-
"aria-
|
|
404
|
+
"aria-invalid": error ? true : false,
|
|
405
|
+
"aria-errormessage": error ? errorId : undefined,
|
|
406
|
+
"aria-required": !disabled && !optional
|
|
576
407
|
}, multiple && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
|
|
577
408
|
disabled: disabled
|
|
578
409
|
}, selectedOption.length), /*#__PURE__*/_react["default"].createElement(ClearOptionsAction, {
|
|
@@ -583,11 +414,11 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
583
414
|
},
|
|
584
415
|
onClick: handleClearOptionsActionOnClick,
|
|
585
416
|
tabIndex: -1,
|
|
586
|
-
title:
|
|
587
|
-
"aria-label":
|
|
588
|
-
},
|
|
417
|
+
title: translatedLabels.select.actionClearSelectionTitle,
|
|
418
|
+
"aria-label": translatedLabels.select.actionClearSelectionTitle
|
|
419
|
+
}, _Icons["default"].clear)), /*#__PURE__*/_react["default"].createElement(SearchableValueContainer, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
589
420
|
name: name,
|
|
590
|
-
value: multiple ? (value !== null && value !== void 0 ? value : innerValue).join(",
|
|
421
|
+
value: multiple ? (value !== null && value !== void 0 ? value : innerValue).join(",") : value !== null && value !== void 0 ? value : innerValue,
|
|
591
422
|
readOnly: true,
|
|
592
423
|
"aria-hidden": "true"
|
|
593
424
|
}), searchable && /*#__PURE__*/_react["default"].createElement(SearchInput, {
|
|
@@ -595,43 +426,54 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
595
426
|
disabled: disabled,
|
|
596
427
|
onChange: handleSearchIOnChange,
|
|
597
428
|
ref: selectSearchInputRef,
|
|
598
|
-
autoComplete: "
|
|
599
|
-
autoCorrect: "
|
|
600
|
-
size:
|
|
429
|
+
autoComplete: "nope",
|
|
430
|
+
autoCorrect: "nope",
|
|
431
|
+
size: 1
|
|
601
432
|
}), (!searchable || searchValue === "") && (multiple ? /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
602
433
|
disabled: disabled,
|
|
603
434
|
atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || searchable && isOpen
|
|
604
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
435
|
+
}, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, selectedOption.map(function (option) {
|
|
605
436
|
return option.label;
|
|
606
437
|
}).join(", ")), selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
607
438
|
disabled: disabled,
|
|
608
439
|
atBackground: !(value !== null && value !== void 0 ? value : innerValue) || searchable && isOpen
|
|
609
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
440
|
+
}, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, (_selectedOption$label = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) !== null && _selectedOption$label !== void 0 ? _selectedOption$label : placeholder)))), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, null, _Icons["default"].error), searchable && searchValue.length > 0 && /*#__PURE__*/_react["default"].createElement(ClearSearchAction, {
|
|
610
441
|
onMouseDown: function onMouseDown(event) {
|
|
611
442
|
// Avoid input to lose focus
|
|
612
443
|
event.preventDefault();
|
|
613
444
|
},
|
|
614
445
|
onClick: handleClearSearchActionOnClick,
|
|
615
446
|
tabIndex: -1,
|
|
616
|
-
title:
|
|
617
|
-
"aria-label":
|
|
618
|
-
},
|
|
447
|
+
title: translatedLabels.select.actionClearSearchTitle,
|
|
448
|
+
"aria-label": translatedLabels.select.actionClearSearchTitle
|
|
449
|
+
}, _Icons["default"].clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
|
|
619
450
|
disabled: disabled
|
|
620
|
-
}, isOpen ?
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
},
|
|
625
|
-
onMouseDown: function onMouseDown(event) {
|
|
451
|
+
}, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
|
|
452
|
+
sideOffset: 4,
|
|
453
|
+
onOpenAutoFocus: function onOpenAutoFocus(event) {
|
|
454
|
+
// Avoid select to lose focus when the list is opened
|
|
626
455
|
event.preventDefault();
|
|
627
456
|
},
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
457
|
+
onCloseAutoFocus: function onCloseAutoFocus(event) {
|
|
458
|
+
// Avoid select to lose focus when the list is closed
|
|
459
|
+
event.preventDefault();
|
|
460
|
+
}
|
|
461
|
+
}, /*#__PURE__*/_react["default"].createElement(_Listbox["default"], {
|
|
462
|
+
id: optionsListId,
|
|
463
|
+
currentValue: value !== null && value !== void 0 ? value : innerValue,
|
|
464
|
+
options: searchable ? filteredOptions : options,
|
|
465
|
+
visualFocusIndex: visualFocusIndex,
|
|
466
|
+
lastOptionIndex: lastOptionIndex,
|
|
467
|
+
multiple: multiple,
|
|
468
|
+
optional: optional,
|
|
469
|
+
optionalItem: optionalItem,
|
|
470
|
+
searchable: searchable,
|
|
471
|
+
handleOptionOnClick: handleOptionOnClick,
|
|
472
|
+
getSelectWidth: getSelectWidth
|
|
473
|
+
}))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
|
|
474
|
+
id: errorId,
|
|
475
|
+
"aria-live": error ? "assertive" : "off"
|
|
476
|
+
}, error)));
|
|
635
477
|
});
|
|
636
478
|
|
|
637
479
|
var sizes = {
|
|
@@ -727,9 +569,7 @@ var SelectionNumber = _styledComponents["default"].span(_templateObject7 || (_te
|
|
|
727
569
|
return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
|
|
728
570
|
});
|
|
729
571
|
|
|
730
|
-
var ClearOptionsAction = _styledComponents["default"].button(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n width: 23px;\n height: 22px;\n
|
|
731
|
-
return props.theme.fontFamily;
|
|
732
|
-
}, function (props) {
|
|
572
|
+
var ClearOptionsAction = _styledComponents["default"].button(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n width: 23px;\n height: 22px;\n border: none;\n padding: 0.25rem;\n ", "\n background-color: ", ";\n color: ", ";\n\n :focus-visible {\n outline: none;\n }\n ", "\n\n svg {\n line-height: 18px;\n }\n"])), function (props) {
|
|
733
573
|
return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
|
|
734
574
|
}, function (props) {
|
|
735
575
|
return props.disabled ? "transparent" : props.theme.enabledSelectionIndicatorActionBackgroundColor;
|
|
@@ -753,9 +593,11 @@ var SelectedOption = _styledComponents["default"].span(_templateObject10 || (_te
|
|
|
753
593
|
return props.theme.valueFontWeight;
|
|
754
594
|
});
|
|
755
595
|
|
|
756
|
-
var
|
|
596
|
+
var SelectedOptionLabel = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
|
|
597
|
+
|
|
598
|
+
var ValueInput = _styledComponents["default"].input(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
|
|
757
599
|
|
|
758
|
-
var SearchInput = _styledComponents["default"].input(
|
|
600
|
+
var SearchInput = _styledComponents["default"].input(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n grid-area: 1 / 1 / 1 / 1;\n height: calc(2.5rem - 2px);\n background: none;\n border: none;\n outline: none;\n padding: 0 0.5rem;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n"])), function (props) {
|
|
759
601
|
return props.disabled ? props.theme.disabledColor : props.theme.valueFontColor;
|
|
760
602
|
}, function (props) {
|
|
761
603
|
return props.theme.fontFamily;
|
|
@@ -767,21 +609,21 @@ var SearchInput = _styledComponents["default"].input(_templateObject12 || (_temp
|
|
|
767
609
|
return props.theme.valueFontWeight;
|
|
768
610
|
});
|
|
769
611
|
|
|
770
|
-
var ErrorIcon = _styledComponents["default"].span(
|
|
612
|
+
var ErrorIcon = _styledComponents["default"].span(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n padding: 3px;\n height: 18px;\n width: 18px;\n margin-left: 0.25rem;\n pointer-events: none;\n color: ", ";\n\n svg {\n line-height: 18px;\n font-size: 1.25rem;\n }\n"])), function (props) {
|
|
771
613
|
return props.theme.errorIconColor;
|
|
772
614
|
});
|
|
773
615
|
|
|
774
|
-
var Error = _styledComponents["default"].span(
|
|
616
|
+
var Error = _styledComponents["default"].span(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 1.5em;\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1.5em;\n margin-top: 0.25rem;\n"])), function (props) {
|
|
775
617
|
return props.theme.errorMessageColor;
|
|
776
618
|
}, function (props) {
|
|
777
619
|
return props.theme.fontFamily;
|
|
778
620
|
});
|
|
779
621
|
|
|
780
|
-
var CollapseIndicator = _styledComponents["default"].span(
|
|
622
|
+
var CollapseIndicator = _styledComponents["default"].span(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 16px;\n width: 16px;\n padding: 4px;\n margin-left: 0.25rem;\n color: ", ";\n"])), function (props) {
|
|
781
623
|
return props.disabled ? props.theme.disabledColor : props.theme.collapseIndicatorColor;
|
|
782
624
|
});
|
|
783
625
|
|
|
784
|
-
var ClearSearchAction = _styledComponents["default"].button(
|
|
626
|
+
var ClearSearchAction = _styledComponents["default"].button(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n font-size: 1rem;\n font-family: ", ";\n border: 1px solid transparent;\n border-radius: 2px;\n padding: 3px;\n margin-left: 0.25rem;\n background-color: ", ";\n color: ", ";\n\n cursor: pointer;\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:active {\n background-color: ", ";\n color: ", ";\n }\n svg {\n line-height: 18px;\n }\n"])), function (props) {
|
|
785
627
|
return props.theme.fontFamily;
|
|
786
628
|
}, function (props) {
|
|
787
629
|
return props.theme.actionBackgroundColor;
|
|
@@ -797,67 +639,5 @@ var ClearSearchAction = _styledComponents["default"].button(_templateObject16 ||
|
|
|
797
639
|
return props.theme.activeActionIconColor;
|
|
798
640
|
});
|
|
799
641
|
|
|
800
|
-
var OptionsList = _styledComponents["default"].ul(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n z-index: 1;\n max-height: 304px;\n overflow-y: auto;\n top: calc(100% + 4px);\n left: 0;\n margin: 0;\n padding: 0.25rem 0;\n width: 100%;\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
801
|
-
return props.theme.listDialogBackgroundColor;
|
|
802
|
-
}, function (props) {
|
|
803
|
-
return props.theme.listDialogBorderColor;
|
|
804
|
-
}, function (props) {
|
|
805
|
-
return props.theme.listOptionFontColor;
|
|
806
|
-
}, function (props) {
|
|
807
|
-
return props.theme.fontFamily;
|
|
808
|
-
}, function (props) {
|
|
809
|
-
return props.theme.listOptionFontSize;
|
|
810
|
-
}, function (props) {
|
|
811
|
-
return props.theme.listOptionFontStyle;
|
|
812
|
-
}, function (props) {
|
|
813
|
-
return props.theme.listOptionFontWeight;
|
|
814
|
-
});
|
|
815
|
-
|
|
816
|
-
var OptionsSystemMessage = _styledComponents["default"].span(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 4px 16px;\n color: ", ";\n font-size: 0.875rem;\n line-height: 1.715em;\n"])), function (props) {
|
|
817
|
-
return props.theme.systemMessageFontColor;
|
|
818
|
-
});
|
|
819
|
-
|
|
820
|
-
var NoMatchesFoundIcon = _styledComponents["default"].span(_templateObject19 || (_templateObject19 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 16px;\n width: 16px;\n padding: 4px;\n margin-right: 0.25rem;\n"])));
|
|
821
|
-
|
|
822
|
-
var GroupList = _styledComponents["default"].ul(_templateObject20 || (_templateObject20 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n"])));
|
|
823
|
-
|
|
824
|
-
var GroupLabel = _styledComponents["default"].li(_templateObject21 || (_templateObject21 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 4px 16px;\n font-weight: ", ";\n line-height: 1.715em;\n"])), function (props) {
|
|
825
|
-
return props.theme.listGroupLabelFontWeight;
|
|
826
|
-
});
|
|
827
|
-
|
|
828
|
-
var OptionItem = _styledComponents["default"].li(_templateObject22 || (_templateObject22 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 0.5rem;\n box-shadow: inset 0 0 0 2px transparent;\n ", "\n ", ";\n line-height: 1.715em;\n cursor: pointer;\n\n &:hover {\n ", ";\n }\n &:active {\n ", ";\n }\n"])), function (props) {
|
|
829
|
-
return props.visualFocused && "box-shadow: inset 0 0 0 2px ".concat(props.theme.focusListOptionBorderColor, ";");
|
|
830
|
-
}, function (props) {
|
|
831
|
-
return props.selected && "background-color: ".concat(props.theme.selectedListOptionBackgroundColor);
|
|
832
|
-
}, function (props) {
|
|
833
|
-
return props.selected ? "background-color: ".concat(props.theme.selectedHoverListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedHoverListOptionBackgroundColor, ";");
|
|
834
|
-
}, function (props) {
|
|
835
|
-
return props.selected ? "background-color: ".concat(props.theme.selectedActiveListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedActiveListOptionBackgroundColor, ";");
|
|
836
|
-
});
|
|
837
|
-
|
|
838
|
-
var StyledOption = _styledComponents["default"].span(_templateObject23 || (_templateObject23 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 0.5rem 0.188rem 0;\n min-height: 24px;\n ", "\n ", ";\n"])), function (props) {
|
|
839
|
-
return props.grouped && props.multiple && "padding-left: 16px;";
|
|
840
|
-
}, function (props) {
|
|
841
|
-
return props.last || props.visualFocused || props.selected ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
|
|
842
|
-
});
|
|
843
|
-
|
|
844
|
-
var OptionContent = _styledComponents["default"].span(_templateObject24 || (_templateObject24 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n width: 100%;\n overflow: hidden;\n ", "\n"])), function (props) {
|
|
845
|
-
return props.grouped && !props.multiple && !props.hasIcon ? "padding-left: 16px;" : "padding-left: 8px;";
|
|
846
|
-
});
|
|
847
|
-
|
|
848
|
-
var OptionIcon = _styledComponents["default"].span(_templateObject25 || (_templateObject25 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n ", "\n color: ", ";\n"])), function (props) {
|
|
849
|
-
return props.grouped && !props.multiple ? "padding-left: 16px;" : "padding-left: 8px;";
|
|
850
|
-
}, function (props) {
|
|
851
|
-
return props.theme.listOptionIconColor;
|
|
852
|
-
});
|
|
853
|
-
|
|
854
|
-
var OptionIconImg = _styledComponents["default"].img(_templateObject26 || (_templateObject26 = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n height: 16px;\n"])));
|
|
855
|
-
|
|
856
|
-
var OptionLabel = _styledComponents["default"].span(_templateObject27 || (_templateObject27 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
|
|
857
|
-
|
|
858
|
-
var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject28 || (_templateObject28 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 16px;\n width: 16px;\n margin-left: 4px;\n color: ", ";\n"])), function (props) {
|
|
859
|
-
return props.theme.selectedListOptionIconColor;
|
|
860
|
-
});
|
|
861
|
-
|
|
862
642
|
var _default = DxcSelect;
|
|
863
643
|
exports["default"] = _default;
|