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