@dxc-technology/halstack-react 0.0.0-c291a0c → 0.0.0-c3c521c
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 +1215 -6
- package/HalstackContext.js +125 -110
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +116 -160
- package/accordion/Accordion.stories.tsx +102 -126
- package/accordion/Accordion.test.js +25 -41
- package/accordion/types.d.ts +5 -16
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +31 -98
- package/accordion-group/AccordionGroup.stories.tsx +94 -67
- package/accordion-group/AccordionGroup.test.js +52 -105
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +11 -16
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +47 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.js +20 -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 +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +13 -21
- package/bleed/Bleed.stories.tsx +64 -63
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +19 -60
- 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 -117
- package/button/Button.stories.tsx +160 -90
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +12 -8
- package/card/Card.d.ts +1 -1
- package/card/Card.js +48 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +140 -182
- 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 +1367 -0
- package/common/variables.js +909 -1140
- 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 +150 -299
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +700 -371
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +115 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +58 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +72 -15
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +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 +241 -355
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +369 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +45 -96
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +70 -117
- package/footer/Footer.stories.tsx +60 -19
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +66 -7
- package/footer/types.d.ts +25 -26
- 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 +85 -168
- 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 +13 -21
- package/inset/Inset.stories.tsx +5 -4
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +50 -115
- package/layout/ApplicationLayout.stories.tsx +81 -45
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +51 -59
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +3 -9
- package/layout/types.d.ts +21 -32
- package/link/Link.js +25 -46
- package/link/Link.stories.tsx +73 -6
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +12 -13
- package/main.js +45 -103
- package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
- package/{tabs-nav → nav-tabs}/NavTabs.js +28 -60
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
- package/nav-tabs/Tab.js +118 -0
- package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +26 -35
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +701 -377
- package/number-input/types.d.ts +11 -5
- package/package.json +43 -46
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +23 -59
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +253 -226
- 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 -126
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +160 -142
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.js +65 -91
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.js +27 -45
- package/quick-nav/QuickNav.stories.tsx +146 -27
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.js +67 -114
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +518 -457
- package/radio-group/types.d.ts +10 -10
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.js +159 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +101 -144
- 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.js +17 -49
- package/select/Option.js +27 -50
- package/select/Select.js +132 -202
- package/select/Select.stories.tsx +497 -152
- package/select/Select.test.js +1966 -1758
- package/select/types.d.ts +16 -19
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +127 -78
- 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/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +145 -126
- 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 +116 -0
- package/tabs/Tabs.js +314 -141
- package/tabs/Tabs.stories.tsx +120 -6
- package/tabs/Tabs.test.js +223 -69
- package/tabs/types.d.ts +28 -18
- package/tag/Tag.js +29 -61
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +20 -31
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +56 -0
- package/text-input/Suggestion.js +40 -28
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +84 -0
- package/text-input/TextInput.js +308 -506
- package/text-input/TextInput.stories.tsx +266 -275
- package/text-input/TextInput.test.js +1402 -1375
- package/text-input/types.d.ts +43 -16
- package/textarea/Textarea.js +70 -113
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +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 +1119 -1
- package/useTheme.js +2 -9
- package/useTranslatedLabels.d.ts +84 -1
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.js +24 -66
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +7 -7
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/inline/Inline.d.ts +0 -4
- package/inline/Inline.js +0 -54
- package/inline/Inline.stories.tsx +0 -264
- package/inline/types.d.ts +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -89
- package/list/types.d.ts +0 -7
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/resultsetTable/ResultsetTable.js +0 -254
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -28
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -4
- package/stack/Stack.js +0 -50
- package/stack/Stack.stories.tsx +0 -225
- package/stack/types.d.ts +0 -28
- package/tabs-nav/Tab.js +0 -132
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{inline → action-icon}/types.js +0 -0
- /package/{list → bulleted-list}/types.js +0 -0
- /package/{resultsetTable → container}/types.js +0 -0
- /package/{row → flex}/types.js +0 -0
- /package/{stack → grid}/types.js +0 -0
- /package/{tabs-nav → image}/types.js +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
package/select/Select.js
CHANGED
|
@@ -1,69 +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
16
|
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
27
|
-
|
|
28
|
-
var _variables = require("../common/variables.js");
|
|
29
|
-
|
|
17
|
+
var _variables = require("../common/variables");
|
|
30
18
|
var _uuid = require("uuid");
|
|
31
|
-
|
|
32
|
-
var _utils = require("../common/utils.js");
|
|
33
|
-
|
|
19
|
+
var _utils = require("../common/utils");
|
|
34
20
|
var _Icons = _interopRequireDefault(require("./Icons"));
|
|
35
|
-
|
|
36
21
|
var _Listbox = _interopRequireDefault(require("./Listbox"));
|
|
37
|
-
|
|
38
22
|
var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
|
|
39
|
-
|
|
40
23
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
|
|
41
|
-
|
|
42
|
-
function
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
var groupsHaveOptions = function groupsHaveOptions(innerOptions) {
|
|
47
|
-
return innerOptions[0].hasOwnProperty("options") ? innerOptions[0].options ? innerOptions.some(function (groupOption) {
|
|
48
|
-
return groupOption.options.length > 0;
|
|
49
|
-
}) : false : true;
|
|
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;
|
|
50
28
|
};
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
29
|
+
var isArrayOfOptionGroups = function isArrayOfOptionGroups(options) {
|
|
30
|
+
return isOptionGroup(options[0]);
|
|
31
|
+
};
|
|
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
|
-
|
|
60
38
|
var canOpenOptions = function canOpenOptions(options, disabled) {
|
|
61
39
|
return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions(options);
|
|
62
40
|
};
|
|
63
|
-
|
|
64
41
|
var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, searchValue) {
|
|
65
42
|
if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
|
|
66
|
-
if (options
|
|
43
|
+
if (isArrayOfOptionGroups(options)) return options.map(function (optionGroup) {
|
|
67
44
|
var group = {
|
|
68
45
|
label: optionGroup.label,
|
|
69
46
|
options: optionGroup.options.filter(function (option) {
|
|
@@ -76,32 +53,24 @@ var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, se
|
|
|
76
53
|
});
|
|
77
54
|
}
|
|
78
55
|
};
|
|
79
|
-
|
|
80
56
|
var getLastOptionIndex = function getLastOptionIndex(options, filteredOptions, searchable, optional, multiple) {
|
|
81
57
|
var last = 0;
|
|
82
|
-
|
|
83
58
|
var reducer = function reducer(acc, current) {
|
|
84
59
|
var _current$options;
|
|
85
|
-
|
|
86
60
|
return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
|
|
87
61
|
};
|
|
88
|
-
|
|
89
|
-
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;
|
|
90
63
|
return optional && !multiple ? last + 1 : last;
|
|
91
64
|
};
|
|
92
|
-
|
|
93
65
|
var getSelectedOption = function getSelectedOption(value, options, multiple, optional, optionalItem) {
|
|
94
66
|
var selectedOption = multiple ? [] : {};
|
|
95
67
|
var singleSelectionIndex;
|
|
96
|
-
|
|
97
68
|
if (multiple) {
|
|
98
69
|
if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
|
|
99
70
|
options.forEach(function (option) {
|
|
100
|
-
if (option.options) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
});
|
|
104
|
-
} 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);
|
|
105
74
|
});
|
|
106
75
|
}
|
|
107
76
|
} else {
|
|
@@ -111,14 +80,13 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
|
|
|
111
80
|
} else if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
|
|
112
81
|
var group_index = 0;
|
|
113
82
|
options.some(function (option, index) {
|
|
114
|
-
if (option
|
|
83
|
+
if (isOptionGroup(option)) {
|
|
115
84
|
option.options.some(function (singleOption) {
|
|
116
85
|
if (singleOption.value === value) {
|
|
117
86
|
selectedOption = singleOption;
|
|
118
87
|
singleSelectionIndex = optional ? group_index + 1 : group_index;
|
|
119
88
|
return true;
|
|
120
89
|
}
|
|
121
|
-
|
|
122
90
|
group_index++;
|
|
123
91
|
});
|
|
124
92
|
} else if (option.value === value) {
|
|
@@ -129,81 +97,93 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
|
|
|
129
97
|
});
|
|
130
98
|
}
|
|
131
99
|
}
|
|
132
|
-
|
|
133
100
|
return {
|
|
134
101
|
selectedOption: selectedOption,
|
|
135
102
|
singleSelectionIndex: singleSelectionIndex
|
|
136
103
|
};
|
|
137
104
|
};
|
|
138
|
-
|
|
105
|
+
var getSelectedOptionLabel = function getSelectedOptionLabel(placeholder, selectedOption) {
|
|
106
|
+
var _selectedOption$label;
|
|
107
|
+
if (Array.isArray(selectedOption)) return selectedOption.length === 0 ? placeholder : selectedOption.map(function (option) {
|
|
108
|
+
return option.label;
|
|
109
|
+
}).join(", ");else return (_selectedOption$label = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) !== null && _selectedOption$label !== void 0 ? _selectedOption$label : placeholder;
|
|
110
|
+
};
|
|
139
111
|
var notOptionalCheck = function notOptionalCheck(value, multiple, optional) {
|
|
140
112
|
return !optional && (multiple ? value.length === 0 : value === "");
|
|
141
113
|
};
|
|
142
|
-
|
|
114
|
+
var useWidth = function useWidth(target) {
|
|
115
|
+
var _useState = (0, _react.useState)(0),
|
|
116
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
117
|
+
width = _useState2[0],
|
|
118
|
+
setWidth = _useState2[1];
|
|
119
|
+
(0, _react.useEffect)(function () {
|
|
120
|
+
if (target != null) {
|
|
121
|
+
setWidth(target.getBoundingClientRect().width);
|
|
122
|
+
var triggerObserver = new ResizeObserver(function (entries) {
|
|
123
|
+
var rect = entries[0].target.getBoundingClientRect();
|
|
124
|
+
setWidth(rect === null || rect === void 0 ? void 0 : rect.width);
|
|
125
|
+
});
|
|
126
|
+
triggerObserver.observe(target);
|
|
127
|
+
return function () {
|
|
128
|
+
triggerObserver.unobserve(target);
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}, [target]);
|
|
132
|
+
return width;
|
|
133
|
+
};
|
|
143
134
|
var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
144
|
-
var
|
|
145
|
-
|
|
135
|
+
var _ref4;
|
|
146
136
|
var label = _ref.label,
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
selectId = _useState2[0];
|
|
175
|
-
|
|
137
|
+
_ref$name = _ref.name,
|
|
138
|
+
name = _ref$name === void 0 ? "" : _ref$name,
|
|
139
|
+
defaultValue = _ref.defaultValue,
|
|
140
|
+
value = _ref.value,
|
|
141
|
+
options = _ref.options,
|
|
142
|
+
helperText = _ref.helperText,
|
|
143
|
+
_ref$placeholder = _ref.placeholder,
|
|
144
|
+
placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
|
|
145
|
+
_ref$disabled = _ref.disabled,
|
|
146
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
147
|
+
_ref$optional = _ref.optional,
|
|
148
|
+
optional = _ref$optional === void 0 ? false : _ref$optional,
|
|
149
|
+
_ref$searchable = _ref.searchable,
|
|
150
|
+
searchable = _ref$searchable === void 0 ? false : _ref$searchable,
|
|
151
|
+
_ref$multiple = _ref.multiple,
|
|
152
|
+
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
|
153
|
+
onChange = _ref.onChange,
|
|
154
|
+
onBlur = _ref.onBlur,
|
|
155
|
+
error = _ref.error,
|
|
156
|
+
margin = _ref.margin,
|
|
157
|
+
_ref$size = _ref.size,
|
|
158
|
+
size = _ref$size === void 0 ? "medium" : _ref$size,
|
|
159
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
160
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
161
|
+
var _useState3 = (0, _react.useState)("select-".concat((0, _uuid.v4)())),
|
|
162
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
|
|
163
|
+
selectId = _useState4[0];
|
|
176
164
|
var selectLabelId = "label-".concat(selectId);
|
|
177
165
|
var errorId = "error-".concat(selectId);
|
|
178
166
|
var optionsListId = "".concat(selectId, "-listbox");
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
var _useState9 = (0, _react.useState)(false),
|
|
196
|
-
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
197
|
-
isOpen = _useState10[0],
|
|
198
|
-
changeIsOpen = _useState10[1];
|
|
199
|
-
|
|
200
|
-
var _useState11 = (0, _react.useState)(null),
|
|
201
|
-
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
202
|
-
listboxStyles = _useState12[0],
|
|
203
|
-
setListboxStyles = _useState12[1];
|
|
204
|
-
|
|
167
|
+
var _useState5 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : ""),
|
|
168
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
169
|
+
innerValue = _useState6[0],
|
|
170
|
+
setInnerValue = _useState6[1];
|
|
171
|
+
var _useState7 = (0, _react.useState)(""),
|
|
172
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
173
|
+
searchValue = _useState8[0],
|
|
174
|
+
setSearchValue = _useState8[1];
|
|
175
|
+
var _useState9 = (0, _react.useState)(-1),
|
|
176
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
177
|
+
visualFocusIndex = _useState10[0],
|
|
178
|
+
changeVisualFocusIndex = _useState10[1];
|
|
179
|
+
var _useState11 = (0, _react.useState)(false),
|
|
180
|
+
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
181
|
+
isOpen = _useState12[0],
|
|
182
|
+
changeIsOpen = _useState12[1];
|
|
205
183
|
var selectRef = (0, _react.useRef)(null);
|
|
206
184
|
var selectSearchInputRef = (0, _react.useRef)(null);
|
|
185
|
+
var selectedOptionLabelRef = (0, _react.useRef)(null);
|
|
186
|
+
var width = useWidth(selectRef.current);
|
|
207
187
|
var colorsTheme = (0, _useTheme["default"])();
|
|
208
188
|
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
209
189
|
var optionalItem = {
|
|
@@ -216,33 +196,28 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
216
196
|
var lastOptionIndex = (0, _react.useMemo)(function () {
|
|
217
197
|
return getLastOptionIndex(options, filteredOptions, searchable, optional, multiple);
|
|
218
198
|
}, [options, filteredOptions, searchable, optional, multiple]);
|
|
219
|
-
|
|
220
199
|
var _useMemo = (0, _react.useMemo)(function () {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
200
|
+
return getSelectedOption(value !== null && value !== void 0 ? value : innerValue, options, multiple, optional, optionalItem);
|
|
201
|
+
}, [value, innerValue, options, multiple, optional, optionalItem]),
|
|
202
|
+
selectedOption = _useMemo.selectedOption,
|
|
203
|
+
singleSelectionIndex = _useMemo.singleSelectionIndex;
|
|
226
204
|
var openOptions = function openOptions() {
|
|
227
205
|
if (!isOpen && canOpenOptions(options, disabled)) changeIsOpen(true);
|
|
228
206
|
};
|
|
229
|
-
|
|
230
207
|
var closeOptions = function closeOptions() {
|
|
231
208
|
if (isOpen) {
|
|
232
209
|
changeIsOpen(false);
|
|
233
210
|
changeVisualFocusIndex(-1);
|
|
234
211
|
}
|
|
235
212
|
};
|
|
236
|
-
|
|
237
213
|
var handleSelectChangeValue = function handleSelectChangeValue(newOption) {
|
|
238
214
|
var newValue;
|
|
239
|
-
|
|
240
215
|
if (multiple) {
|
|
241
|
-
|
|
216
|
+
var _ref2, _ref3;
|
|
217
|
+
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) {
|
|
242
218
|
return optionVal !== newOption.value;
|
|
243
|
-
});else newValue = [].concat((0, _toConsumableArray2["default"])(value !== null &&
|
|
219
|
+
});else newValue = [].concat((0, _toConsumableArray2["default"])((_ref3 = value && Array.isArray(value) && value) !== null && _ref3 !== void 0 ? _ref3 : innerValue && Array.isArray(innerValue) && innerValue), [newOption.value]);
|
|
244
220
|
} else newValue = newOption.value;
|
|
245
|
-
|
|
246
221
|
value !== null && value !== void 0 ? value : setInnerValue(newValue);
|
|
247
222
|
notOptionalCheck(newValue, multiple, optional) ? onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
248
223
|
value: newValue,
|
|
@@ -251,22 +226,18 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
251
226
|
value: newValue
|
|
252
227
|
});
|
|
253
228
|
};
|
|
254
|
-
|
|
255
229
|
var handleSelectOnClick = function handleSelectOnClick() {
|
|
256
230
|
searchable && selectSearchInputRef.current.focus();
|
|
257
|
-
|
|
258
231
|
if (isOpen) {
|
|
259
232
|
closeOptions();
|
|
260
233
|
setSearchValue("");
|
|
261
234
|
} else openOptions();
|
|
262
235
|
};
|
|
263
|
-
|
|
264
236
|
var handleSelectOnFocus = function handleSelectOnFocus(event) {
|
|
265
237
|
if (!event.currentTarget.contains(event.relatedTarget)) searchable && selectSearchInputRef.current.focus();
|
|
266
238
|
};
|
|
267
|
-
|
|
268
239
|
var handleSelectOnBlur = function handleSelectOnBlur(event) {
|
|
269
|
-
// focus leaves container (outside, not to
|
|
240
|
+
// focus leaves container (outside, not to a child)
|
|
270
241
|
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
271
242
|
closeOptions();
|
|
272
243
|
setSearchValue("");
|
|
@@ -279,42 +250,36 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
279
250
|
});
|
|
280
251
|
}
|
|
281
252
|
};
|
|
282
|
-
|
|
283
253
|
var handleSelectOnKeyDown = function handleSelectOnKeyDown(event) {
|
|
284
|
-
switch (event.
|
|
285
|
-
case
|
|
286
|
-
|
|
254
|
+
switch (event.key) {
|
|
255
|
+
case "Down":
|
|
256
|
+
case "ArrowDown":
|
|
287
257
|
event.preventDefault();
|
|
288
258
|
singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
|
|
289
259
|
if (visualFocusIndex < lastOptionIndex) return visualFocusIndex + 1;else if (visualFocusIndex === lastOptionIndex) return 0;
|
|
290
260
|
});
|
|
291
261
|
openOptions();
|
|
292
262
|
break;
|
|
293
|
-
|
|
294
|
-
case
|
|
295
|
-
// Arrow Up
|
|
263
|
+
case "Up":
|
|
264
|
+
case "ArrowUp":
|
|
296
265
|
event.preventDefault();
|
|
297
266
|
singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
|
|
298
267
|
return visualFocusIndex === 0 || visualFocusIndex === -1 ? lastOptionIndex : visualFocusIndex - 1;
|
|
299
268
|
});
|
|
300
269
|
openOptions();
|
|
301
270
|
break;
|
|
302
|
-
|
|
303
|
-
case
|
|
304
|
-
// Esc
|
|
271
|
+
case "Esc":
|
|
272
|
+
case "Escape":
|
|
305
273
|
event.preventDefault();
|
|
306
274
|
closeOptions();
|
|
307
275
|
setSearchValue("");
|
|
308
276
|
break;
|
|
309
|
-
|
|
310
|
-
case 13:
|
|
311
|
-
// Enter
|
|
277
|
+
case "Enter":
|
|
312
278
|
if (isOpen && visualFocusIndex >= 0) {
|
|
313
279
|
var accLength = optional && !multiple ? 1 : 0;
|
|
314
|
-
|
|
315
280
|
if (searchable) {
|
|
316
281
|
if (filteredOptions.length > 0) {
|
|
317
|
-
if (optional && !multiple && visualFocusIndex === 0 &&
|
|
282
|
+
if (optional && !multiple && visualFocusIndex === 0 && groupsHaveOptions(filteredOptions)) handleSelectChangeValue(optionalItem);else isArrayOfOptionGroups(filteredOptions) ? groupsHaveOptions(filteredOptions) && filteredOptions.some(function (groupOption) {
|
|
318
283
|
var groupLength = accLength + groupOption.options.length;
|
|
319
284
|
groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
|
|
320
285
|
accLength = groupLength;
|
|
@@ -322,28 +287,24 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
322
287
|
}) : handleSelectChangeValue(filteredOptions[visualFocusIndex - accLength]);
|
|
323
288
|
}
|
|
324
289
|
} else {
|
|
325
|
-
if (optional && !multiple && visualFocusIndex === 0) handleSelectChangeValue(optionalItem);else options
|
|
290
|
+
if (optional && !multiple && visualFocusIndex === 0) handleSelectChangeValue(optionalItem);else isArrayOfOptionGroups(options) ? options.some(function (groupOption) {
|
|
326
291
|
var groupLength = accLength + groupOption.options.length;
|
|
327
292
|
groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
|
|
328
293
|
accLength = groupLength;
|
|
329
294
|
return groupLength > visualFocusIndex;
|
|
330
295
|
}) : handleSelectChangeValue(options[visualFocusIndex - accLength]);
|
|
331
296
|
}
|
|
332
|
-
|
|
333
297
|
!multiple && closeOptions();
|
|
334
298
|
setSearchValue("");
|
|
335
299
|
}
|
|
336
|
-
|
|
337
300
|
break;
|
|
338
301
|
}
|
|
339
302
|
};
|
|
340
|
-
|
|
341
303
|
var handleSearchIOnChange = function handleSearchIOnChange(event) {
|
|
342
304
|
setSearchValue(event.target.value);
|
|
343
305
|
changeVisualFocusIndex(-1);
|
|
344
306
|
openOptions();
|
|
345
307
|
};
|
|
346
|
-
|
|
347
308
|
var handleClearOptionsActionOnClick = function handleClearOptionsActionOnClick(event) {
|
|
348
309
|
event.stopPropagation();
|
|
349
310
|
value !== null && value !== void 0 ? value : setInnerValue([]);
|
|
@@ -354,34 +315,20 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
354
315
|
value: []
|
|
355
316
|
});
|
|
356
317
|
};
|
|
357
|
-
|
|
358
318
|
var handleClearSearchActionOnClick = function handleClearSearchActionOnClick(event) {
|
|
359
319
|
event.stopPropagation();
|
|
360
320
|
setSearchValue("");
|
|
361
321
|
};
|
|
362
|
-
|
|
363
322
|
var handleOptionOnClick = (0, _react.useCallback)(function (option) {
|
|
364
323
|
handleSelectChangeValue(option);
|
|
365
324
|
!multiple && closeOptions();
|
|
366
325
|
setSearchValue("");
|
|
367
326
|
}, [handleSelectChangeValue, closeOptions, multiple]);
|
|
368
|
-
|
|
369
|
-
var handleListboxResize = function handleListboxResize() {
|
|
370
|
-
var _selectRef$current;
|
|
371
|
-
|
|
372
|
-
var rect = selectRef === null || selectRef === void 0 ? void 0 : (_selectRef$current = selectRef.current) === null || _selectRef$current === void 0 ? void 0 : _selectRef$current.getBoundingClientRect();
|
|
373
|
-
setListboxStyles({
|
|
374
|
-
width: rect === null || rect === void 0 ? void 0 : rect.width
|
|
375
|
-
});
|
|
376
|
-
};
|
|
377
|
-
|
|
378
327
|
(0, _react.useEffect)(function () {
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
};
|
|
384
|
-
}, [setListboxStyles]);
|
|
328
|
+
if ((selectedOptionLabelRef === null || selectedOptionLabelRef === void 0 ? void 0 : selectedOptionLabelRef.current) != null) {
|
|
329
|
+
if ((selectedOptionLabelRef === null || selectedOptionLabelRef === void 0 ? void 0 : selectedOptionLabelRef.current.scrollWidth) > (selectedOptionLabelRef === null || selectedOptionLabelRef === void 0 ? void 0 : selectedOptionLabelRef.current.clientWidth)) selectedOptionLabelRef.current.title = getSelectedOptionLabel(placeholder, selectedOption);else selectedOptionLabelRef.current.title = "";
|
|
330
|
+
}
|
|
331
|
+
}, [placeholder, selectedOption]);
|
|
385
332
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
386
333
|
theme: colorsTheme.select
|
|
387
334
|
}, /*#__PURE__*/_react["default"].createElement(SelectContainer, {
|
|
@@ -400,7 +347,8 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
400
347
|
}, helperText), /*#__PURE__*/_react["default"].createElement(Popover.Root, {
|
|
401
348
|
open: isOpen
|
|
402
349
|
}, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
|
|
403
|
-
asChild: true
|
|
350
|
+
asChild: true,
|
|
351
|
+
type: undefined
|
|
404
352
|
}, /*#__PURE__*/_react["default"].createElement(Select, {
|
|
405
353
|
id: selectId,
|
|
406
354
|
disabled: disabled,
|
|
@@ -410,7 +358,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
410
358
|
onFocus: handleSelectOnFocus,
|
|
411
359
|
onKeyDown: handleSelectOnKeyDown,
|
|
412
360
|
ref: selectRef,
|
|
413
|
-
tabIndex: tabIndex,
|
|
361
|
+
tabIndex: disabled ? -1 : tabIndex,
|
|
414
362
|
role: "combobox",
|
|
415
363
|
"aria-controls": optionsListId,
|
|
416
364
|
"aria-disabled": disabled,
|
|
@@ -418,10 +366,10 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
418
366
|
"aria-haspopup": "listbox",
|
|
419
367
|
"aria-labelledby": label ? selectLabelId : undefined,
|
|
420
368
|
"aria-activedescendant": visualFocusIndex >= 0 ? "option-".concat(visualFocusIndex) : undefined,
|
|
421
|
-
"aria-invalid": error ?
|
|
369
|
+
"aria-invalid": error ? true : false,
|
|
422
370
|
"aria-errormessage": error ? errorId : undefined,
|
|
423
371
|
"aria-required": !disabled && !optional
|
|
424
|
-
}, multiple && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
|
|
372
|
+
}, multiple && Array.isArray(selectedOption) && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
|
|
425
373
|
disabled: disabled
|
|
426
374
|
}, selectedOption.length), /*#__PURE__*/_react["default"].createElement(ClearOptionsAction, {
|
|
427
375
|
disabled: disabled,
|
|
@@ -435,7 +383,8 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
435
383
|
"aria-label": translatedLabels.select.actionClearSelectionTitle
|
|
436
384
|
}, _Icons["default"].clear)), /*#__PURE__*/_react["default"].createElement(SearchableValueContainer, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
437
385
|
name: name,
|
|
438
|
-
|
|
386
|
+
disabled: disabled,
|
|
387
|
+
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,
|
|
439
388
|
readOnly: true,
|
|
440
389
|
"aria-hidden": "true"
|
|
441
390
|
}), searchable && /*#__PURE__*/_react["default"].createElement(SearchInput, {
|
|
@@ -446,15 +395,12 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
446
395
|
autoComplete: "nope",
|
|
447
396
|
autoCorrect: "nope",
|
|
448
397
|
size: 1
|
|
449
|
-
}), (!searchable || searchValue === "") &&
|
|
450
|
-
disabled: disabled,
|
|
451
|
-
atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || searchable && isOpen
|
|
452
|
-
}, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, selectedOption.map(function (option) {
|
|
453
|
-
return option.label;
|
|
454
|
-
}).join(", ")), selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
398
|
+
}), (!searchable || searchValue === "") && /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
455
399
|
disabled: disabled,
|
|
456
|
-
atBackground: !(value !== null && value !== void 0 ? value : innerValue) || searchable && isOpen
|
|
457
|
-
}, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel,
|
|
400
|
+
atBackground: (multiple ? (value !== null && value !== void 0 ? value : innerValue).length === 0 : !(value !== null && value !== void 0 ? value : innerValue)) || searchable && isOpen
|
|
401
|
+
}, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, {
|
|
402
|
+
ref: selectedOptionLabelRef
|
|
403
|
+
}, getSelectedOptionLabel(placeholder, selectedOption)))), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, null, _Icons["default"].error), searchable && searchValue.length > 0 && /*#__PURE__*/_react["default"].createElement(ClearSearchAction, {
|
|
458
404
|
onMouseDown: function onMouseDown(event) {
|
|
459
405
|
// Avoid input to lose focus
|
|
460
406
|
event.preventDefault();
|
|
@@ -465,8 +411,11 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
465
411
|
"aria-label": translatedLabels.select.actionClearSearchTitle
|
|
466
412
|
}, _Icons["default"].clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
|
|
467
413
|
disabled: disabled
|
|
468
|
-
}, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
|
|
414
|
+
}, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown))), /*#__PURE__*/_react["default"].createElement(Popover.Portal, null, /*#__PURE__*/_react["default"].createElement(Popover.Content, {
|
|
469
415
|
sideOffset: 4,
|
|
416
|
+
style: {
|
|
417
|
+
zIndex: "2147483647"
|
|
418
|
+
},
|
|
470
419
|
onOpenAutoFocus: function onOpenAutoFocus(event) {
|
|
471
420
|
// Avoid select to lose focus when the list is opened
|
|
472
421
|
event.preventDefault();
|
|
@@ -486,24 +435,23 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
486
435
|
optionalItem: optionalItem,
|
|
487
436
|
searchable: searchable,
|
|
488
437
|
handleOptionOnClick: handleOptionOnClick,
|
|
489
|
-
styles:
|
|
490
|
-
|
|
438
|
+
styles: {
|
|
439
|
+
width: width
|
|
440
|
+
}
|
|
441
|
+
})))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
|
|
491
442
|
id: errorId,
|
|
492
443
|
"aria-live": error ? "assertive" : "off"
|
|
493
444
|
}, error)));
|
|
494
445
|
});
|
|
495
|
-
|
|
496
446
|
var sizes = {
|
|
497
447
|
small: "240px",
|
|
498
448
|
medium: "360px",
|
|
499
449
|
large: "480px",
|
|
500
450
|
fillParent: "100%"
|
|
501
451
|
};
|
|
502
|
-
|
|
503
452
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
504
453
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
505
454
|
};
|
|
506
|
-
|
|
507
455
|
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) {
|
|
508
456
|
return calculateWidth(props.margin, props.size);
|
|
509
457
|
}, function (props) {
|
|
@@ -517,7 +465,6 @@ var SelectContainer = _styledComponents["default"].div(_templateObject || (_temp
|
|
|
517
465
|
}, function (props) {
|
|
518
466
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
519
467
|
});
|
|
520
|
-
|
|
521
468
|
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) {
|
|
522
469
|
return props.disabled ? props.theme.disabledColor : props.theme.labelFontColor;
|
|
523
470
|
}, function (props) {
|
|
@@ -533,11 +480,9 @@ var Label = _styledComponents["default"].span(_templateObject2 || (_templateObje
|
|
|
533
480
|
}, function (props) {
|
|
534
481
|
return !props.helperText && "margin-bottom: 0.25rem";
|
|
535
482
|
});
|
|
536
|
-
|
|
537
483
|
var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
|
|
538
484
|
return props.theme.optionalLabelFontWeight;
|
|
539
485
|
});
|
|
540
|
-
|
|
541
486
|
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) {
|
|
542
487
|
return props.disabled ? props.theme.disabledColor : props.theme.helperTextFontColor;
|
|
543
488
|
}, function (props) {
|
|
@@ -551,7 +496,6 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
|
|
|
551
496
|
}, function (props) {
|
|
552
497
|
return props.theme.helperTextLineHeight;
|
|
553
498
|
});
|
|
554
|
-
|
|
555
499
|
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) {
|
|
556
500
|
return props.disabled && "background-color: ".concat(props.theme.disabledInputBackgroundColor);
|
|
557
501
|
}, function (props) {
|
|
@@ -563,11 +507,9 @@ var Select = _styledComponents["default"].div(_templateObject5 || (_templateObje
|
|
|
563
507
|
}, function (props) {
|
|
564
508
|
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 ");
|
|
565
509
|
});
|
|
566
|
-
|
|
567
510
|
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) {
|
|
568
511
|
return props.theme.selectionIndicatorBorderColor;
|
|
569
512
|
});
|
|
570
|
-
|
|
571
513
|
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) {
|
|
572
514
|
return !props.disabled && "background-color: ".concat(props.theme.selectionIndicatorBackgroundColor);
|
|
573
515
|
}, function (props) {
|
|
@@ -585,7 +527,6 @@ var SelectionNumber = _styledComponents["default"].span(_templateObject7 || (_te
|
|
|
585
527
|
}, function (props) {
|
|
586
528
|
return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
|
|
587
529
|
});
|
|
588
|
-
|
|
589
530
|
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) {
|
|
590
531
|
return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
|
|
591
532
|
}, function (props) {
|
|
@@ -595,9 +536,7 @@ var ClearOptionsAction = _styledComponents["default"].button(_templateObject8 ||
|
|
|
595
536
|
}, function (props) {
|
|
596
537
|
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 ");
|
|
597
538
|
});
|
|
598
|
-
|
|
599
539
|
var SearchableValueContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n width: 100%;\n"])));
|
|
600
|
-
|
|
601
540
|
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) {
|
|
602
541
|
if (props.disabled) return props.theme.disabledColor;else if (props.atBackground) return props.theme.placeholderFontColor;else return props.theme.valueFontColor;
|
|
603
542
|
}, function (props) {
|
|
@@ -609,11 +548,8 @@ var SelectedOption = _styledComponents["default"].span(_templateObject10 || (_te
|
|
|
609
548
|
}, function (props) {
|
|
610
549
|
return props.theme.valueFontWeight;
|
|
611
550
|
});
|
|
612
|
-
|
|
613
551
|
var SelectedOptionLabel = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
|
|
614
|
-
|
|
615
552
|
var ValueInput = _styledComponents["default"].input(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
|
|
616
|
-
|
|
617
553
|
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) {
|
|
618
554
|
return props.disabled ? props.theme.disabledColor : props.theme.valueFontColor;
|
|
619
555
|
}, function (props) {
|
|
@@ -625,21 +561,17 @@ var SearchInput = _styledComponents["default"].input(_templateObject13 || (_temp
|
|
|
625
561
|
}, function (props) {
|
|
626
562
|
return props.theme.valueFontWeight;
|
|
627
563
|
});
|
|
628
|
-
|
|
629
564
|
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) {
|
|
630
565
|
return props.theme.errorIconColor;
|
|
631
566
|
});
|
|
632
|
-
|
|
633
567
|
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) {
|
|
634
568
|
return props.theme.errorMessageColor;
|
|
635
569
|
}, function (props) {
|
|
636
570
|
return props.theme.fontFamily;
|
|
637
571
|
});
|
|
638
|
-
|
|
639
572
|
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) {
|
|
640
573
|
return props.disabled ? props.theme.disabledColor : props.theme.collapseIndicatorColor;
|
|
641
574
|
});
|
|
642
|
-
|
|
643
575
|
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) {
|
|
644
576
|
return props.theme.fontFamily;
|
|
645
577
|
}, function (props) {
|
|
@@ -655,6 +587,4 @@ var ClearSearchAction = _styledComponents["default"].button(_templateObject17 ||
|
|
|
655
587
|
}, function (props) {
|
|
656
588
|
return props.theme.activeActionIconColor;
|
|
657
589
|
});
|
|
658
|
-
|
|
659
|
-
var _default = DxcSelect;
|
|
660
|
-
exports["default"] = _default;
|
|
590
|
+
var _default = exports["default"] = DxcSelect;
|