@dxc-technology/halstack-react 0.0.0-31c6b1f → 0.0.0-324b670
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 +1 -10
- package/BackgroundColorContext.js +5 -22
- package/HalstackContext.d.ts +1235 -0
- package/HalstackContext.js +310 -0
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +116 -160
- package/accordion/Accordion.stories.tsx +103 -127
- 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 +23 -59
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +8 -19
- package/badge/types.d.ts +2 -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 +30 -81
- 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 +89 -0
- package/bulleted-list/BulletedList.stories.tsx +115 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +63 -115
- 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 +64 -107
- 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 +142 -181
- 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 +1381 -0
- package/common/variables.js +998 -1117
- package/container/Container.d.ts +4 -0
- package/container/Container.js +194 -0
- package/container/Container.stories.tsx +214 -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 +153 -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 +73 -107
- package/dialog/Dialog.stories.tsx +320 -167
- 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 +246 -357
- 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 +50 -99
- 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 +57 -115
- 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 -28
- 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 -170
- 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 -19
- 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 +16 -6
- package/layout/ApplicationLayout.js +82 -166
- package/layout/ApplicationLayout.stories.tsx +85 -94
- package/layout/Icons.d.ts +8 -0
- package/layout/Icons.js +51 -48
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +13 -0
- package/layout/types.d.ts +19 -35
- package/link/Link.d.ts +3 -2
- package/link/Link.js +61 -95
- package/link/Link.stories.tsx +155 -53
- package/link/Link.test.js +25 -53
- package/link/types.d.ts +15 -31
- package/main.d.ts +11 -12
- package/main.js +58 -109
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +90 -0
- package/nav-tabs/NavTabs.stories.tsx +274 -0
- package/nav-tabs/NavTabs.test.js +75 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +117 -0
- package/nav-tabs/types.d.ts +52 -0
- 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 +12 -6
- package/package.json +44 -46
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +34 -91
- 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 +22 -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 -123
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +160 -143
- package/password-input/types.d.ts +9 -8
- package/progress-bar/ProgressBar.js +65 -91
- package/progress-bar/ProgressBar.stories.tsx +93 -0
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.js +71 -41
- 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 +71 -116
- 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 +46 -51
- package/select/Option.js +20 -50
- package/select/Select.js +155 -228
- package/select/Select.stories.tsx +525 -136
- package/select/Select.test.js +1973 -1696
- 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 +131 -71
- 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 +149 -181
- package/slider/Slider.test.js +185 -81
- package/slider/types.d.ts +7 -3
- package/spinner/Spinner.js +31 -75
- 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 +147 -125
- 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 +8 -30
- 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 -11
- 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.d.ts +4 -0
- package/text-input/Suggestion.js +67 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +84 -0
- package/text-input/TextInput.js +309 -527
- package/text-input/TextInput.stories.tsx +266 -275
- package/text-input/TextInput.test.js +1403 -1376
- package/text-input/types.d.ts +53 -14
- package/textarea/Textarea.js +79 -131
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +10 -6
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +92 -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 +1133 -1
- package/useTheme.js +4 -11
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +14 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +121 -0
- package/wizard/Wizard.js +51 -91
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +7 -7
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- 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/progress-bar/ProgressBar.stories.jsx +0 -58
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -173
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- 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/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/{radio → container}/types.js +0 -0
- /package/{resultsetTable → flex}/types.js +0 -0
- /package/{row → grid}/types.js +0 -0
- /package/{stack → image}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
package/select/Select.js
CHANGED
|
@@ -1,62 +1,42 @@
|
|
|
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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
17
|
-
|
|
18
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
19
|
-
|
|
20
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
-
|
|
22
14
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
23
|
-
|
|
24
15
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
|
-
|
|
26
|
-
var _variables = require("../common/variables
|
|
27
|
-
|
|
16
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
17
|
+
var _variables = require("../common/variables");
|
|
28
18
|
var _uuid = require("uuid");
|
|
29
|
-
|
|
30
|
-
var _utils = require("../common/utils.js");
|
|
31
|
-
|
|
19
|
+
var _utils = require("../common/utils");
|
|
32
20
|
var _Icons = _interopRequireDefault(require("./Icons"));
|
|
33
|
-
|
|
34
21
|
var _Listbox = _interopRequireDefault(require("./Listbox"));
|
|
35
|
-
|
|
36
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
|
|
37
|
-
|
|
38
|
-
function
|
|
39
|
-
|
|
40
|
-
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; }
|
|
41
|
-
|
|
42
|
-
var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
|
|
43
|
-
return "This field is required. Please, enter a value.";
|
|
44
|
-
};
|
|
45
|
-
|
|
22
|
+
var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
|
|
23
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17; // @ts-nocheck
|
|
24
|
+
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); }
|
|
25
|
+
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; }
|
|
46
26
|
var groupsHaveOptions = function groupsHaveOptions(innerOptions) {
|
|
47
27
|
return innerOptions[0].hasOwnProperty("options") ? innerOptions[0].options ? innerOptions.some(function (groupOption) {
|
|
48
28
|
return groupOption.options.length > 0;
|
|
49
29
|
}) : false : true;
|
|
50
30
|
};
|
|
51
|
-
|
|
52
31
|
var filteredGroupsHaveOptions = function filteredGroupsHaveOptions(filteredOptions) {
|
|
53
32
|
return filteredOptions !== null && filteredOptions !== void 0 && filteredOptions[0].options ? filteredOptions.some(function (groupOption) {
|
|
54
33
|
var _groupOption$options;
|
|
55
|
-
|
|
56
34
|
return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
|
|
57
35
|
}) : true;
|
|
58
36
|
};
|
|
59
|
-
|
|
37
|
+
var canOpenOptions = function canOpenOptions(options, disabled) {
|
|
38
|
+
return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions(options);
|
|
39
|
+
};
|
|
60
40
|
var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, searchValue) {
|
|
61
41
|
if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
|
|
62
42
|
if (options[0].options) return options.map(function (optionGroup) {
|
|
@@ -72,32 +52,26 @@ var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, se
|
|
|
72
52
|
});
|
|
73
53
|
}
|
|
74
54
|
};
|
|
75
|
-
|
|
76
55
|
var getLastOptionIndex = function getLastOptionIndex(options, filteredOptions, searchable, optional, multiple) {
|
|
77
56
|
var last = 0;
|
|
78
|
-
|
|
79
57
|
var reducer = function reducer(acc, current) {
|
|
80
58
|
var _current$options;
|
|
81
|
-
|
|
82
59
|
return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
|
|
83
60
|
};
|
|
84
|
-
|
|
85
61
|
if (searchable && filteredOptions.length > 0) filteredOptions[0].options ? last = filteredOptions.reduce(reducer, 0) - 1 : last = filteredOptions.length - 1;else if ((options === null || options === void 0 ? void 0 : options.length) > 0) options[0].options ? last = options.reduce(reducer, 0) - 1 : last = options.length - 1;
|
|
86
62
|
return optional && !multiple ? last + 1 : last;
|
|
87
63
|
};
|
|
88
|
-
|
|
89
64
|
var getSelectedOption = function getSelectedOption(value, options, multiple, optional, optionalItem) {
|
|
90
65
|
var selectedOption = multiple ? [] : {};
|
|
91
66
|
var singleSelectionIndex;
|
|
92
|
-
|
|
93
67
|
if (multiple) {
|
|
94
68
|
if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
|
|
95
69
|
options.forEach(function (option) {
|
|
96
70
|
if (option.options) {
|
|
97
71
|
option.options.forEach(function (singleOption) {
|
|
98
|
-
if (value.includes(singleOption.value)) selectedOption.push(singleOption);
|
|
72
|
+
if (value.includes(singleOption.value) && Array.isArray(selectedOption)) selectedOption.push(singleOption);
|
|
99
73
|
});
|
|
100
|
-
} else if (value.includes(option.value)) selectedOption.push(option);
|
|
74
|
+
} else if (value.includes(option.value) && Array.isArray(selectedOption)) selectedOption.push(option);
|
|
101
75
|
});
|
|
102
76
|
}
|
|
103
77
|
} else {
|
|
@@ -114,7 +88,6 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
|
|
|
114
88
|
singleSelectionIndex = optional ? group_index + 1 : group_index;
|
|
115
89
|
return true;
|
|
116
90
|
}
|
|
117
|
-
|
|
118
91
|
group_index++;
|
|
119
92
|
});
|
|
120
93
|
} else if (option.value === value) {
|
|
@@ -125,74 +98,88 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
|
|
|
125
98
|
});
|
|
126
99
|
}
|
|
127
100
|
}
|
|
128
|
-
|
|
129
101
|
return {
|
|
130
102
|
selectedOption: selectedOption,
|
|
131
103
|
singleSelectionIndex: singleSelectionIndex
|
|
132
104
|
};
|
|
133
105
|
};
|
|
134
|
-
|
|
106
|
+
var notOptionalCheck = function notOptionalCheck(value, multiple, optional) {
|
|
107
|
+
return !optional && (multiple ? value.length === 0 : value === "");
|
|
108
|
+
};
|
|
109
|
+
var useWidth = function useWidth(target) {
|
|
110
|
+
var _useState = (0, _react.useState)(0),
|
|
111
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
112
|
+
width = _useState2[0],
|
|
113
|
+
setWidth = _useState2[1];
|
|
114
|
+
(0, _react.useEffect)(function () {
|
|
115
|
+
if (target != null) {
|
|
116
|
+
setWidth(target.getBoundingClientRect().width);
|
|
117
|
+
var triggerObserver = new ResizeObserver(function (entries) {
|
|
118
|
+
var rect = entries[0].target.getBoundingClientRect();
|
|
119
|
+
setWidth(rect === null || rect === void 0 ? void 0 : rect.width);
|
|
120
|
+
});
|
|
121
|
+
triggerObserver.observe(target);
|
|
122
|
+
return function () {
|
|
123
|
+
triggerObserver.unobserve(target);
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}, [target]);
|
|
127
|
+
return width;
|
|
128
|
+
};
|
|
135
129
|
var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
136
|
-
var _selectedOption$label;
|
|
137
|
-
|
|
130
|
+
var _ref4, _selectedOption$label;
|
|
138
131
|
var label = _ref.label,
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
selectId = _useState2[0];
|
|
167
|
-
|
|
132
|
+
_ref$name = _ref.name,
|
|
133
|
+
name = _ref$name === void 0 ? "" : _ref$name,
|
|
134
|
+
defaultValue = _ref.defaultValue,
|
|
135
|
+
value = _ref.value,
|
|
136
|
+
options = _ref.options,
|
|
137
|
+
helperText = _ref.helperText,
|
|
138
|
+
_ref$placeholder = _ref.placeholder,
|
|
139
|
+
placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
|
|
140
|
+
_ref$disabled = _ref.disabled,
|
|
141
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
142
|
+
_ref$optional = _ref.optional,
|
|
143
|
+
optional = _ref$optional === void 0 ? false : _ref$optional,
|
|
144
|
+
_ref$searchable = _ref.searchable,
|
|
145
|
+
searchable = _ref$searchable === void 0 ? false : _ref$searchable,
|
|
146
|
+
_ref$multiple = _ref.multiple,
|
|
147
|
+
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
|
148
|
+
onChange = _ref.onChange,
|
|
149
|
+
onBlur = _ref.onBlur,
|
|
150
|
+
error = _ref.error,
|
|
151
|
+
margin = _ref.margin,
|
|
152
|
+
_ref$size = _ref.size,
|
|
153
|
+
size = _ref$size === void 0 ? "medium" : _ref$size,
|
|
154
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
155
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
156
|
+
var _useState3 = (0, _react.useState)("select-".concat((0, _uuid.v4)())),
|
|
157
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
|
|
158
|
+
selectId = _useState4[0];
|
|
168
159
|
var selectLabelId = "label-".concat(selectId);
|
|
169
160
|
var errorId = "error-".concat(selectId);
|
|
170
161
|
var optionsListId = "".concat(selectId, "-listbox");
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
var
|
|
188
|
-
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
189
|
-
isOpen = _useState10[0],
|
|
190
|
-
changeIsOpen = _useState10[1];
|
|
191
|
-
|
|
192
|
-
var selectContainerRef = (0, _react.useRef)(null);
|
|
162
|
+
var _useState5 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : ""),
|
|
163
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
164
|
+
innerValue = _useState6[0],
|
|
165
|
+
setInnerValue = _useState6[1];
|
|
166
|
+
var _useState7 = (0, _react.useState)(""),
|
|
167
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
168
|
+
searchValue = _useState8[0],
|
|
169
|
+
setSearchValue = _useState8[1];
|
|
170
|
+
var _useState9 = (0, _react.useState)(-1),
|
|
171
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
172
|
+
visualFocusIndex = _useState10[0],
|
|
173
|
+
changeVisualFocusIndex = _useState10[1];
|
|
174
|
+
var _useState11 = (0, _react.useState)(false),
|
|
175
|
+
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
176
|
+
isOpen = _useState12[0],
|
|
177
|
+
changeIsOpen = _useState12[1];
|
|
178
|
+
var selectRef = (0, _react.useRef)(null);
|
|
193
179
|
var selectSearchInputRef = (0, _react.useRef)(null);
|
|
194
|
-
var
|
|
180
|
+
var width = useWidth(selectRef.current);
|
|
195
181
|
var colorsTheme = (0, _useTheme["default"])();
|
|
182
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
196
183
|
var optionalItem = {
|
|
197
184
|
label: placeholder,
|
|
198
185
|
value: ""
|
|
@@ -203,119 +190,87 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
203
190
|
var lastOptionIndex = (0, _react.useMemo)(function () {
|
|
204
191
|
return getLastOptionIndex(options, filteredOptions, searchable, optional, multiple);
|
|
205
192
|
}, [options, filteredOptions, searchable, optional, multiple]);
|
|
206
|
-
|
|
207
193
|
var _useMemo = (0, _react.useMemo)(function () {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
var notOptionalCheck = function notOptionalCheck(value) {
|
|
214
|
-
return !optional && value === "";
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
var notOptionalMultipleCheck = function notOptionalMultipleCheck(value) {
|
|
218
|
-
return !optional && value.length === 0;
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
var canBeOpenOptions = function canBeOpenOptions() {
|
|
222
|
-
return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions(options);
|
|
223
|
-
};
|
|
224
|
-
|
|
194
|
+
return getSelectedOption(value !== null && value !== void 0 ? value : innerValue, options, multiple, optional, optionalItem);
|
|
195
|
+
}, [value, innerValue, options, multiple, optional, optionalItem]),
|
|
196
|
+
selectedOption = _useMemo.selectedOption,
|
|
197
|
+
singleSelectionIndex = _useMemo.singleSelectionIndex;
|
|
225
198
|
var openOptions = function openOptions() {
|
|
226
|
-
if (!isOpen &&
|
|
199
|
+
if (!isOpen && canOpenOptions(options, disabled)) changeIsOpen(true);
|
|
227
200
|
};
|
|
228
|
-
|
|
229
201
|
var closeOptions = function closeOptions() {
|
|
230
202
|
if (isOpen) {
|
|
231
203
|
changeIsOpen(false);
|
|
232
204
|
changeVisualFocusIndex(-1);
|
|
233
205
|
}
|
|
234
206
|
};
|
|
235
|
-
|
|
236
207
|
var handleSelectChangeValue = function handleSelectChangeValue(newOption) {
|
|
208
|
+
var newValue;
|
|
237
209
|
if (multiple) {
|
|
238
|
-
var
|
|
239
|
-
if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value))
|
|
210
|
+
var _ref2, _ref3;
|
|
211
|
+
if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) newValue = ((_ref2 = value && Array.isArray(value) && value) !== null && _ref2 !== void 0 ? _ref2 : innerValue && Array.isArray(innerValue) && innerValue).filter(function (optionVal) {
|
|
240
212
|
return optionVal !== newOption.value;
|
|
241
|
-
});else
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
}
|
|
250
|
-
value !== null && value !== void 0 ? value : setInnerValue(newOption.value);
|
|
251
|
-
if (notOptionalCheck(newOption.value)) onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
252
|
-
value: newOption.value,
|
|
253
|
-
error: getNotOptionalErrorMessage()
|
|
254
|
-
});else onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
255
|
-
value: newOption.value
|
|
256
|
-
});
|
|
257
|
-
}
|
|
213
|
+
});else newValue = [].concat((0, _toConsumableArray2["default"])((_ref3 = value && Array.isArray(value) && value) !== null && _ref3 !== void 0 ? _ref3 : innerValue && Array.isArray(innerValue) && innerValue), [newOption.value]);
|
|
214
|
+
} else newValue = newOption.value;
|
|
215
|
+
value !== null && value !== void 0 ? value : setInnerValue(newValue);
|
|
216
|
+
notOptionalCheck(newValue, multiple, optional) ? onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
217
|
+
value: newValue,
|
|
218
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
219
|
+
}) : onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
220
|
+
value: newValue
|
|
221
|
+
});
|
|
258
222
|
};
|
|
259
|
-
|
|
260
223
|
var handleSelectOnClick = function handleSelectOnClick() {
|
|
261
224
|
searchable && selectSearchInputRef.current.focus();
|
|
262
|
-
|
|
263
225
|
if (isOpen) {
|
|
264
226
|
closeOptions();
|
|
265
227
|
setSearchValue("");
|
|
266
228
|
} else openOptions();
|
|
267
229
|
};
|
|
268
|
-
|
|
269
230
|
var handleSelectOnFocus = function handleSelectOnFocus(event) {
|
|
270
231
|
if (!event.currentTarget.contains(event.relatedTarget)) searchable && selectSearchInputRef.current.focus();
|
|
271
232
|
};
|
|
272
|
-
|
|
273
233
|
var handleSelectOnBlur = function handleSelectOnBlur(event) {
|
|
274
234
|
// focus leaves container (outside, not to childs)
|
|
275
235
|
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
276
236
|
closeOptions();
|
|
277
237
|
setSearchValue("");
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
238
|
+
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
239
|
+
notOptionalCheck(currentValue, multiple, optional) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
240
|
+
value: currentValue,
|
|
241
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
242
|
+
}) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
243
|
+
value: currentValue
|
|
283
244
|
});
|
|
284
245
|
}
|
|
285
246
|
};
|
|
286
|
-
|
|
287
247
|
var handleSelectOnKeyDown = function handleSelectOnKeyDown(event) {
|
|
288
|
-
switch (event.
|
|
289
|
-
case
|
|
290
|
-
|
|
248
|
+
switch (event.key) {
|
|
249
|
+
case "Down":
|
|
250
|
+
case "ArrowDown":
|
|
291
251
|
event.preventDefault();
|
|
292
252
|
singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
|
|
293
253
|
if (visualFocusIndex < lastOptionIndex) return visualFocusIndex + 1;else if (visualFocusIndex === lastOptionIndex) return 0;
|
|
294
254
|
});
|
|
295
255
|
openOptions();
|
|
296
256
|
break;
|
|
297
|
-
|
|
298
|
-
case
|
|
299
|
-
// Arrow Up
|
|
257
|
+
case "Up":
|
|
258
|
+
case "ArrowUp":
|
|
300
259
|
event.preventDefault();
|
|
301
260
|
singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
|
|
302
261
|
return visualFocusIndex === 0 || visualFocusIndex === -1 ? lastOptionIndex : visualFocusIndex - 1;
|
|
303
262
|
});
|
|
304
263
|
openOptions();
|
|
305
264
|
break;
|
|
306
|
-
|
|
307
|
-
case
|
|
308
|
-
// Esc
|
|
265
|
+
case "Esc":
|
|
266
|
+
case "Escape":
|
|
309
267
|
event.preventDefault();
|
|
310
268
|
closeOptions();
|
|
311
269
|
setSearchValue("");
|
|
312
270
|
break;
|
|
313
|
-
|
|
314
|
-
case 13:
|
|
315
|
-
// Enter
|
|
271
|
+
case "Enter":
|
|
316
272
|
if (isOpen && visualFocusIndex >= 0) {
|
|
317
273
|
var accLength = optional && !multiple ? 1 : 0;
|
|
318
|
-
|
|
319
274
|
if (searchable) {
|
|
320
275
|
if (filteredOptions.length > 0) {
|
|
321
276
|
if (optional && !multiple && visualFocusIndex === 0 && filteredGroupsHaveOptions(filteredOptions)) handleSelectChangeValue(optionalItem);else filteredOptions[0].options ? filteredGroupsHaveOptions(filteredOptions) && filteredOptions.some(function (groupOption) {
|
|
@@ -333,62 +288,36 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
333
288
|
return groupLength > visualFocusIndex;
|
|
334
289
|
}) : handleSelectChangeValue(options[visualFocusIndex - accLength]);
|
|
335
290
|
}
|
|
336
|
-
|
|
337
291
|
!multiple && closeOptions();
|
|
338
292
|
setSearchValue("");
|
|
339
293
|
}
|
|
340
|
-
|
|
341
294
|
break;
|
|
342
295
|
}
|
|
343
296
|
};
|
|
344
|
-
|
|
345
297
|
var handleSearchIOnChange = function handleSearchIOnChange(event) {
|
|
346
298
|
setSearchValue(event.target.value);
|
|
347
299
|
changeVisualFocusIndex(-1);
|
|
348
300
|
openOptions();
|
|
349
301
|
};
|
|
350
|
-
|
|
351
302
|
var handleClearOptionsActionOnClick = function handleClearOptionsActionOnClick(event) {
|
|
352
303
|
event.stopPropagation();
|
|
353
304
|
value !== null && value !== void 0 ? value : setInnerValue([]);
|
|
354
305
|
!optional ? onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
355
306
|
value: [],
|
|
356
|
-
error:
|
|
307
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
357
308
|
}) : onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
358
309
|
value: []
|
|
359
310
|
});
|
|
360
311
|
};
|
|
361
|
-
|
|
362
312
|
var handleClearSearchActionOnClick = function handleClearSearchActionOnClick(event) {
|
|
363
313
|
event.stopPropagation();
|
|
364
314
|
setSearchValue("");
|
|
365
315
|
};
|
|
366
|
-
|
|
367
316
|
var handleOptionOnClick = (0, _react.useCallback)(function (option) {
|
|
368
317
|
handleSelectChangeValue(option);
|
|
369
318
|
!multiple && closeOptions();
|
|
370
319
|
setSearchValue("");
|
|
371
320
|
}, [handleSelectChangeValue, closeOptions, multiple]);
|
|
372
|
-
(0, _react.useLayoutEffect)(function () {
|
|
373
|
-
if (isOpen && singleSelectionIndex) {
|
|
374
|
-
var _listEl$scrollTo;
|
|
375
|
-
|
|
376
|
-
var listEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : selectOptionsListRef.current;
|
|
377
|
-
var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
|
|
378
|
-
listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
|
|
379
|
-
top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
|
|
380
|
-
});
|
|
381
|
-
}
|
|
382
|
-
}, [isOpen]);
|
|
383
|
-
(0, _react.useLayoutEffect)(function () {
|
|
384
|
-
var _selectOptionsListRef, _visualFocusedOptionE;
|
|
385
|
-
|
|
386
|
-
var visualFocusedOptionEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : (_selectOptionsListRef = selectOptionsListRef.current) === null || _selectOptionsListRef === void 0 ? void 0 : _selectOptionsListRef.querySelectorAll("[role='option']")[visualFocusIndex];
|
|
387
|
-
visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
|
|
388
|
-
block: "nearest",
|
|
389
|
-
inline: "start"
|
|
390
|
-
});
|
|
391
|
-
}, [visualFocusIndex]);
|
|
392
321
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
393
322
|
theme: colorsTheme.select
|
|
394
323
|
}, /*#__PURE__*/_react["default"].createElement(SelectContainer, {
|
|
@@ -399,12 +328,17 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
399
328
|
id: selectLabelId,
|
|
400
329
|
disabled: disabled,
|
|
401
330
|
onClick: function onClick() {
|
|
402
|
-
|
|
331
|
+
selectRef.current.focus();
|
|
403
332
|
},
|
|
404
333
|
helperText: helperText
|
|
405
|
-
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null,
|
|
334
|
+
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
406
335
|
disabled: disabled
|
|
407
|
-
}, helperText), /*#__PURE__*/_react["default"].createElement(
|
|
336
|
+
}, helperText), /*#__PURE__*/_react["default"].createElement(Popover.Root, {
|
|
337
|
+
open: isOpen
|
|
338
|
+
}, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
|
|
339
|
+
asChild: true,
|
|
340
|
+
type: undefined
|
|
341
|
+
}, /*#__PURE__*/_react["default"].createElement(Select, {
|
|
408
342
|
id: selectId,
|
|
409
343
|
disabled: disabled,
|
|
410
344
|
error: error,
|
|
@@ -412,19 +346,19 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
412
346
|
onClick: handleSelectOnClick,
|
|
413
347
|
onFocus: handleSelectOnFocus,
|
|
414
348
|
onKeyDown: handleSelectOnKeyDown,
|
|
415
|
-
ref:
|
|
416
|
-
tabIndex: tabIndex,
|
|
349
|
+
ref: selectRef,
|
|
350
|
+
tabIndex: disabled ? -1 : tabIndex,
|
|
417
351
|
role: "combobox",
|
|
418
352
|
"aria-controls": optionsListId,
|
|
419
353
|
"aria-disabled": disabled,
|
|
420
354
|
"aria-expanded": isOpen,
|
|
421
355
|
"aria-haspopup": "listbox",
|
|
422
|
-
"aria-labelledby": selectLabelId,
|
|
356
|
+
"aria-labelledby": label ? selectLabelId : undefined,
|
|
423
357
|
"aria-activedescendant": visualFocusIndex >= 0 ? "option-".concat(visualFocusIndex) : undefined,
|
|
424
|
-
"aria-invalid": error ?
|
|
358
|
+
"aria-invalid": error ? true : false,
|
|
425
359
|
"aria-errormessage": error ? errorId : undefined,
|
|
426
360
|
"aria-required": !disabled && !optional
|
|
427
|
-
}, multiple && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
|
|
361
|
+
}, multiple && Array.isArray(selectedOption) && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
|
|
428
362
|
disabled: disabled
|
|
429
363
|
}, selectedOption.length), /*#__PURE__*/_react["default"].createElement(ClearOptionsAction, {
|
|
430
364
|
disabled: disabled,
|
|
@@ -434,11 +368,12 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
434
368
|
},
|
|
435
369
|
onClick: handleClearOptionsActionOnClick,
|
|
436
370
|
tabIndex: -1,
|
|
437
|
-
title:
|
|
438
|
-
"aria-label":
|
|
371
|
+
title: translatedLabels.select.actionClearSelectionTitle,
|
|
372
|
+
"aria-label": translatedLabels.select.actionClearSelectionTitle
|
|
439
373
|
}, _Icons["default"].clear)), /*#__PURE__*/_react["default"].createElement(SearchableValueContainer, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
440
374
|
name: name,
|
|
441
|
-
|
|
375
|
+
disabled: disabled,
|
|
376
|
+
value: multiple ? ((_ref4 = value && Array.isArray(value) && value) !== null && _ref4 !== void 0 ? _ref4 : innerValue && Array.isArray(innerValue) && innerValue).join(",") : value !== null && value !== void 0 ? value : innerValue,
|
|
442
377
|
readOnly: true,
|
|
443
378
|
"aria-hidden": "true"
|
|
444
379
|
}), searchable && /*#__PURE__*/_react["default"].createElement(SearchInput, {
|
|
@@ -452,9 +387,9 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
452
387
|
}), (!searchable || searchValue === "") && (multiple ? /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
453
388
|
disabled: disabled,
|
|
454
389
|
atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || searchable && isOpen
|
|
455
|
-
}, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, selectedOption.map(function (option) {
|
|
390
|
+
}, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, Array.isArray(selectedOption) && selectedOption.map(function (option) {
|
|
456
391
|
return option.label;
|
|
457
|
-
}).join(", ")), selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
392
|
+
}).join(", ")), Array.isArray(selectedOption) && selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
458
393
|
disabled: disabled,
|
|
459
394
|
atBackground: !(value !== null && value !== void 0 ? value : innerValue) || searchable && isOpen
|
|
460
395
|
}, /*#__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, {
|
|
@@ -464,11 +399,24 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
464
399
|
},
|
|
465
400
|
onClick: handleClearSearchActionOnClick,
|
|
466
401
|
tabIndex: -1,
|
|
467
|
-
title:
|
|
468
|
-
"aria-label":
|
|
402
|
+
title: translatedLabels.select.actionClearSearchTitle,
|
|
403
|
+
"aria-label": translatedLabels.select.actionClearSearchTitle
|
|
469
404
|
}, _Icons["default"].clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
|
|
470
405
|
disabled: disabled
|
|
471
|
-
}, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown),
|
|
406
|
+
}, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown))), /*#__PURE__*/_react["default"].createElement(Popover.Portal, null, /*#__PURE__*/_react["default"].createElement(Popover.Content, {
|
|
407
|
+
sideOffset: 4,
|
|
408
|
+
style: {
|
|
409
|
+
zIndex: "2147483647"
|
|
410
|
+
},
|
|
411
|
+
onOpenAutoFocus: function onOpenAutoFocus(event) {
|
|
412
|
+
// Avoid select to lose focus when the list is opened
|
|
413
|
+
event.preventDefault();
|
|
414
|
+
},
|
|
415
|
+
onCloseAutoFocus: function onCloseAutoFocus(event) {
|
|
416
|
+
// Avoid select to lose focus when the list is closed
|
|
417
|
+
event.preventDefault();
|
|
418
|
+
}
|
|
419
|
+
}, /*#__PURE__*/_react["default"].createElement(_Listbox["default"], {
|
|
472
420
|
id: optionsListId,
|
|
473
421
|
currentValue: value !== null && value !== void 0 ? value : innerValue,
|
|
474
422
|
options: searchable ? filteredOptions : options,
|
|
@@ -479,24 +427,23 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
479
427
|
optionalItem: optionalItem,
|
|
480
428
|
searchable: searchable,
|
|
481
429
|
handleOptionOnClick: handleOptionOnClick,
|
|
482
|
-
|
|
483
|
-
|
|
430
|
+
styles: {
|
|
431
|
+
width: width
|
|
432
|
+
}
|
|
433
|
+
})))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
|
|
484
434
|
id: errorId,
|
|
485
435
|
"aria-live": error ? "assertive" : "off"
|
|
486
436
|
}, error)));
|
|
487
437
|
});
|
|
488
|
-
|
|
489
438
|
var sizes = {
|
|
490
439
|
small: "240px",
|
|
491
440
|
medium: "360px",
|
|
492
441
|
large: "480px",
|
|
493
442
|
fillParent: "100%"
|
|
494
443
|
};
|
|
495
|
-
|
|
496
444
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
497
445
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
498
446
|
};
|
|
499
|
-
|
|
500
447
|
var SelectContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
501
448
|
return calculateWidth(props.margin, props.size);
|
|
502
449
|
}, function (props) {
|
|
@@ -510,7 +457,6 @@ var SelectContainer = _styledComponents["default"].div(_templateObject || (_temp
|
|
|
510
457
|
}, function (props) {
|
|
511
458
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
512
459
|
});
|
|
513
|
-
|
|
514
460
|
var Label = _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 cursor: default;\n ", "\n"])), function (props) {
|
|
515
461
|
return props.disabled ? props.theme.disabledColor : props.theme.labelFontColor;
|
|
516
462
|
}, function (props) {
|
|
@@ -526,11 +472,9 @@ var Label = _styledComponents["default"].span(_templateObject2 || (_templateObje
|
|
|
526
472
|
}, function (props) {
|
|
527
473
|
return !props.helperText && "margin-bottom: 0.25rem";
|
|
528
474
|
});
|
|
529
|
-
|
|
530
475
|
var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
|
|
531
476
|
return props.theme.optionalLabelFontWeight;
|
|
532
477
|
});
|
|
533
|
-
|
|
534
478
|
var HelperText = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n margin-bottom: 0.25rem;\n"])), function (props) {
|
|
535
479
|
return props.disabled ? props.theme.disabledColor : props.theme.helperTextFontColor;
|
|
536
480
|
}, function (props) {
|
|
@@ -544,7 +488,6 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
|
|
|
544
488
|
}, function (props) {
|
|
545
489
|
return props.theme.helperTextLineHeight;
|
|
546
490
|
});
|
|
547
|
-
|
|
548
491
|
var Select = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n position: relative;\n align-items: center;\n height: calc(2.5rem - 2px);\n padding: 0 0.5rem;\n outline: none;\n ", ";\n box-shadow: 0 0 0 2px transparent;\n border-radius: 4px;\n border: 1px solid\n ", ";\n ", "\n ", ";\n\n ", ";\n"])), function (props) {
|
|
549
492
|
return props.disabled && "background-color: ".concat(props.theme.disabledInputBackgroundColor);
|
|
550
493
|
}, function (props) {
|
|
@@ -556,11 +499,9 @@ var Select = _styledComponents["default"].div(_templateObject5 || (_templateObje
|
|
|
556
499
|
}, function (props) {
|
|
557
500
|
return !props.disabled && "\n &:hover {\n border-color: ".concat(props.error ? "transparent" : props.theme.hoverInputBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.theme.hoverInputErrorBorderColor, ";"), "\n }\n &:focus-within {\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.theme.focusInputBorderColor, ";\n }\n ");
|
|
558
501
|
});
|
|
559
|
-
|
|
560
502
|
var SelectionIndicator = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n border: 1px solid ", ";\n border-radius: 2px;\n max-height: 22px;\n width: 46px;\n"])), function (props) {
|
|
561
503
|
return props.theme.selectionIndicatorBorderColor;
|
|
562
504
|
});
|
|
563
|
-
|
|
564
505
|
var SelectionNumber = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n user-select: none;\n ", ";\n border-right: 1px solid ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n ", "\n"])), function (props) {
|
|
565
506
|
return !props.disabled && "background-color: ".concat(props.theme.selectionIndicatorBackgroundColor);
|
|
566
507
|
}, function (props) {
|
|
@@ -578,10 +519,7 @@ var SelectionNumber = _styledComponents["default"].span(_templateObject7 || (_te
|
|
|
578
519
|
}, function (props) {
|
|
579
520
|
return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
|
|
580
521
|
});
|
|
581
|
-
|
|
582
|
-
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 font-size: 1rem;\n font-family: ", ";\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) {
|
|
583
|
-
return props.theme.fontFamily;
|
|
584
|
-
}, function (props) {
|
|
522
|
+
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) {
|
|
585
523
|
return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
|
|
586
524
|
}, function (props) {
|
|
587
525
|
return props.disabled ? "transparent" : props.theme.enabledSelectionIndicatorActionBackgroundColor;
|
|
@@ -590,9 +528,7 @@ var ClearOptionsAction = _styledComponents["default"].button(_templateObject8 ||
|
|
|
590
528
|
}, function (props) {
|
|
591
529
|
return !props.disabled && "\n &:hover {\n background-color: ".concat(props.theme.hoverSelectionIndicatorActionBackgroundColor, ";\n color: ").concat(props.theme.hoverSelectionIndicatorActionIconColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeSelectionIndicatorActionBackgroundColor, ";\n color: ").concat(props.theme.activeSelectionIndicatorActionIconColor, ";\n }\n ");
|
|
592
530
|
});
|
|
593
|
-
|
|
594
531
|
var SearchableValueContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n width: 100%;\n"])));
|
|
595
|
-
|
|
596
532
|
var SelectedOption = _styledComponents["default"].span(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n grid-area: 1 / 1 / 1 / 1;\n display: inline-flex;\n align-items: center;\n height: calc(2.5rem - 2px);\n padding: 0 0.5rem;\n user-select: none;\n overflow: hidden;\n\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
597
533
|
if (props.disabled) return props.theme.disabledColor;else if (props.atBackground) return props.theme.placeholderFontColor;else return props.theme.valueFontColor;
|
|
598
534
|
}, function (props) {
|
|
@@ -604,11 +540,8 @@ var SelectedOption = _styledComponents["default"].span(_templateObject10 || (_te
|
|
|
604
540
|
}, function (props) {
|
|
605
541
|
return props.theme.valueFontWeight;
|
|
606
542
|
});
|
|
607
|
-
|
|
608
543
|
var SelectedOptionLabel = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
|
|
609
|
-
|
|
610
544
|
var ValueInput = _styledComponents["default"].input(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
|
|
611
|
-
|
|
612
545
|
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) {
|
|
613
546
|
return props.disabled ? props.theme.disabledColor : props.theme.valueFontColor;
|
|
614
547
|
}, function (props) {
|
|
@@ -620,21 +553,17 @@ var SearchInput = _styledComponents["default"].input(_templateObject13 || (_temp
|
|
|
620
553
|
}, function (props) {
|
|
621
554
|
return props.theme.valueFontWeight;
|
|
622
555
|
});
|
|
623
|
-
|
|
624
556
|
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) {
|
|
625
557
|
return props.theme.errorIconColor;
|
|
626
558
|
});
|
|
627
|
-
|
|
628
559
|
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) {
|
|
629
560
|
return props.theme.errorMessageColor;
|
|
630
561
|
}, function (props) {
|
|
631
562
|
return props.theme.fontFamily;
|
|
632
563
|
});
|
|
633
|
-
|
|
634
564
|
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) {
|
|
635
565
|
return props.disabled ? props.theme.disabledColor : props.theme.collapseIndicatorColor;
|
|
636
566
|
});
|
|
637
|
-
|
|
638
567
|
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) {
|
|
639
568
|
return props.theme.fontFamily;
|
|
640
569
|
}, function (props) {
|
|
@@ -650,6 +579,4 @@ var ClearSearchAction = _styledComponents["default"].button(_templateObject17 ||
|
|
|
650
579
|
}, function (props) {
|
|
651
580
|
return props.theme.activeActionIconColor;
|
|
652
581
|
});
|
|
653
|
-
|
|
654
|
-
var _default = DxcSelect;
|
|
655
|
-
exports["default"] = _default;
|
|
582
|
+
var _default = exports["default"] = DxcSelect;
|