@dxc-technology/halstack-react 0.0.0-0af2013 → 0.0.0-0bb6041
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 +2 -2
- package/BackgroundColorContext.js +1 -1
- package/HalstackContext.d.ts +1331 -5
- package/HalstackContext.js +179 -87
- package/accordion/Accordion.js +118 -110
- package/accordion/Accordion.stories.tsx +104 -16
- package/accordion/Accordion.test.js +10 -11
- package/accordion/types.d.ts +2 -1
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +25 -65
- package/accordion-group/AccordionGroup.stories.tsx +27 -1
- package/accordion-group/AccordionGroup.test.js +21 -46
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +8 -1
- package/alert/Alert.js +9 -10
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +1 -1
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +1 -0
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +95 -95
- package/bleed/types.d.ts +1 -1
- package/box/Box.js +25 -37
- package/box/Box.stories.tsx +15 -0
- package/box/Box.test.js +1 -1
- package/box/types.d.ts +1 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +125 -0
- package/bulleted-list/BulletedList.stories.tsx +206 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.js +52 -73
- package/button/Button.stories.tsx +159 -8
- package/button/Button.test.js +1 -1
- package/button/types.d.ts +5 -5
- package/card/Card.js +41 -44
- package/card/Card.stories.tsx +12 -13
- package/card/Card.test.js +1 -1
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +97 -101
- package/checkbox/Checkbox.stories.tsx +131 -59
- package/checkbox/Checkbox.test.js +94 -17
- package/checkbox/types.d.ts +4 -0
- package/chip/Chip.js +28 -49
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +3 -5
- package/chip/types.d.ts +1 -1
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +146 -0
- package/common/coreTokens.js +167 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +4 -4
- package/common/variables.d.ts +1482 -0
- package/common/variables.js +1095 -1106
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +136 -236
- package/date-input/DateInput.stories.tsx +199 -33
- package/date-input/DateInput.test.js +494 -138
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +146 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +126 -0
- package/date-input/types.d.ts +51 -0
- package/dialog/Dialog.js +80 -69
- package/dialog/Dialog.stories.tsx +230 -123
- package/dialog/Dialog.test.js +334 -5
- package/dialog/types.d.ts +1 -0
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +246 -249
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +507 -110
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +74 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +79 -0
- package/dropdown/types.d.ts +23 -3
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +180 -223
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +14 -14
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +44 -66
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +71 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.js +12 -12
- package/footer/Footer.stories.tsx +99 -1
- package/footer/Footer.test.js +14 -26
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +2 -1
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +91 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +3 -2
- package/header/Header.js +95 -92
- package/header/Header.stories.tsx +152 -9
- package/header/Header.test.js +2 -2
- package/header/Icons.js +2 -2
- package/header/types.d.ts +1 -0
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +1 -1
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +1 -1
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +71 -118
- package/layout/ApplicationLayout.stories.tsx +84 -93
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +19 -35
- package/link/Link.d.ts +2 -2
- package/link/Link.js +26 -52
- package/link/Link.stories.tsx +73 -6
- package/link/Link.test.js +2 -4
- package/link/types.d.ts +5 -6
- package/main.d.ts +8 -10
- package/main.js +42 -52
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +122 -0
- package/nav-tabs/NavTabs.stories.tsx +274 -0
- package/nav-tabs/NavTabs.test.js +82 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +146 -0
- package/nav-tabs/types.d.ts +52 -0
- package/number-input/NumberInput.test.js +44 -8
- package/number-input/types.d.ts +1 -1
- package/package.json +17 -21
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +20 -49
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +91 -39
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +7 -4
- package/password-input/PasswordInput.test.js +15 -15
- package/password-input/types.d.ts +1 -1
- package/progress-bar/ProgressBar.js +61 -55
- package/progress-bar/ProgressBar.stories.jsx +47 -12
- package/progress-bar/ProgressBar.test.js +68 -23
- package/quick-nav/QuickNav.js +75 -22
- package/quick-nav/QuickNav.stories.tsx +145 -26
- package/quick-nav/types.d.ts +1 -1
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +46 -31
- package/radio-group/RadioGroup.js +37 -36
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +124 -97
- package/radio-group/types.d.ts +2 -2
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +49 -108
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +61 -42
- package/resultsetTable/types.d.ts +1 -1
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +37 -16
- package/select/Option.js +11 -24
- package/select/Select.js +127 -116
- package/select/Select.stories.tsx +522 -133
- package/select/Select.test.js +474 -303
- package/select/types.d.ts +3 -6
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +51 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +146 -44
- package/sidenav/Sidenav.stories.tsx +251 -151
- package/sidenav/Sidenav.test.js +25 -37
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +121 -97
- package/slider/Slider.stories.tsx +64 -1
- package/slider/Slider.test.js +122 -22
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +18 -24
- package/spinner/Spinner.stories.jsx +53 -27
- package/spinner/Spinner.test.js +1 -1
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +140 -70
- package/switch/Switch.stories.tsx +41 -30
- package/switch/Switch.test.js +145 -18
- package/switch/types.d.ts +4 -0
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +2 -2
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +132 -0
- package/tabs/Tabs.js +358 -108
- package/tabs/Tabs.stories.tsx +119 -5
- package/tabs/Tabs.test.js +220 -10
- package/tabs/types.d.ts +13 -3
- package/tag/Tag.js +8 -10
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +1 -1
- package/tag/types.d.ts +1 -1
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +84 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +219 -342
- package/text-input/TextInput.stories.tsx +280 -185
- package/text-input/TextInput.test.js +737 -726
- package/text-input/types.d.ts +33 -2
- package/textarea/Textarea.js +13 -23
- package/textarea/Textarea.stories.jsx +60 -1
- package/textarea/Textarea.test.js +2 -4
- package/textarea/types.d.ts +1 -1
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +7 -4
- package/toggle-group/ToggleGroup.stories.tsx +42 -0
- package/toggle-group/ToggleGroup.test.js +1 -1
- package/toggle-group/types.d.ts +2 -2
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +32 -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 +1234 -1
- package/useTheme.js +1 -1
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +20 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +108 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +138 -0
- package/wizard/Wizard.js +37 -42
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +1 -1
- package/wizard/types.d.ts +3 -3
- 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/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -173
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/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/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/{list → bulleted-list}/types.js +0 -0
- /package/{radio → flex}/types.js +0 -0
- /package/{row → grid}/types.js +0 -0
- /package/{stack → nav-tabs}/types.js +0 -0
package/select/Listbox.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ListboxProps } from "./types";
|
|
3
|
-
declare const _default: React.MemoExoticComponent<
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ id, currentValue, options, visualFocusIndex, lastOptionIndex, multiple, optional, optionalItem, searchable, handleOptionOnClick, styles, }: ListboxProps) => JSX.Element>;
|
|
4
4
|
export default _default;
|
package/select/Listbox.js
CHANGED
|
@@ -11,11 +11,11 @@ exports["default"] = void 0;
|
|
|
11
11
|
|
|
12
12
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
13
|
|
|
14
|
-
var _react =
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
15
|
|
|
16
|
-
var _styledComponents =
|
|
16
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
19
19
|
|
|
20
20
|
var _Option = _interopRequireDefault(require("./Option"));
|
|
21
21
|
|
|
@@ -35,7 +35,7 @@ var groupsHaveOptions = function groupsHaveOptions(options) {
|
|
|
35
35
|
}) : true;
|
|
36
36
|
};
|
|
37
37
|
|
|
38
|
-
var Listbox =
|
|
38
|
+
var Listbox = function Listbox(_ref) {
|
|
39
39
|
var id = _ref.id,
|
|
40
40
|
currentValue = _ref.currentValue,
|
|
41
41
|
options = _ref.options,
|
|
@@ -45,9 +45,11 @@ var Listbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
45
45
|
optional = _ref.optional,
|
|
46
46
|
optionalItem = _ref.optionalItem,
|
|
47
47
|
searchable = _ref.searchable,
|
|
48
|
-
handleOptionOnClick = _ref.handleOptionOnClick
|
|
49
|
-
|
|
50
|
-
var
|
|
48
|
+
handleOptionOnClick = _ref.handleOptionOnClick,
|
|
49
|
+
styles = _ref.styles;
|
|
50
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
51
|
+
var listboxRef = (0, _react.useRef)(null);
|
|
52
|
+
var globalIndex = optional && !multiple ? 0 : -1;
|
|
51
53
|
|
|
52
54
|
var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
|
|
53
55
|
if (option.options) {
|
|
@@ -89,9 +91,27 @@ var Listbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
89
91
|
}
|
|
90
92
|
};
|
|
91
93
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
(0, _react.useLayoutEffect)(function () {
|
|
95
|
+
if (currentValue && !multiple) {
|
|
96
|
+
var _listEl$scrollTo;
|
|
97
|
+
|
|
98
|
+
var listEl = listboxRef === null || listboxRef === void 0 ? void 0 : listboxRef.current;
|
|
99
|
+
var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
|
|
100
|
+
listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
|
|
101
|
+
top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}, [currentValue, multiple]);
|
|
105
|
+
(0, _react.useLayoutEffect)(function () {
|
|
106
|
+
var _listboxRef$current, _visualFocusedOptionE;
|
|
107
|
+
|
|
108
|
+
var visualFocusedOptionEl = listboxRef === null || listboxRef === void 0 ? void 0 : (_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.querySelectorAll("[role='option']")[visualFocusIndex];
|
|
109
|
+
visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
|
|
110
|
+
block: "nearest",
|
|
111
|
+
inline: "start"
|
|
112
|
+
});
|
|
113
|
+
}, [visualFocusIndex]);
|
|
114
|
+
return /*#__PURE__*/_react["default"].createElement(ListboxContainer, {
|
|
95
115
|
id: id,
|
|
96
116
|
onClick: function onClick(event) {
|
|
97
117
|
event.stopPropagation();
|
|
@@ -99,11 +119,12 @@ var Listbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
99
119
|
onMouseDown: function onMouseDown(event) {
|
|
100
120
|
event.preventDefault();
|
|
101
121
|
},
|
|
102
|
-
ref:
|
|
122
|
+
ref: listboxRef,
|
|
103
123
|
role: "listbox",
|
|
104
124
|
"aria-multiselectable": multiple,
|
|
105
|
-
|
|
106
|
-
}, searchable && (options.length === 0 || !groupsHaveOptions(options)) ? /*#__PURE__*/_react["default"].createElement(OptionsSystemMessage, null, /*#__PURE__*/_react["default"].createElement(NoMatchesFoundIcon, null, _Icons["default"].searchOff),
|
|
125
|
+
style: styles
|
|
126
|
+
}, searchable && (options.length === 0 || !groupsHaveOptions(options)) ? /*#__PURE__*/_react["default"].createElement(OptionsSystemMessage, null, /*#__PURE__*/_react["default"].createElement(NoMatchesFoundIcon, null, _Icons["default"].searchOff), translatedLabels.select.noMatchesErrorMessage) : optional && !multiple && /*#__PURE__*/_react["default"].createElement(_Option["default"], {
|
|
127
|
+
key: "option-".concat(optionalItem.value),
|
|
107
128
|
id: "option-".concat(0),
|
|
108
129
|
option: optionalItem,
|
|
109
130
|
onClick: handleOptionOnClick,
|
|
@@ -112,10 +133,10 @@ var Listbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
112
133
|
isGroupedOption: false,
|
|
113
134
|
isLastOption: lastOptionIndex === 0,
|
|
114
135
|
isSelected: multiple ? currentValue.includes(optionalItem.value) : currentValue === optionalItem.value
|
|
115
|
-
}), options.map(mapOptionFunc))
|
|
116
|
-
}
|
|
136
|
+
}), options.map(mapOptionFunc));
|
|
137
|
+
};
|
|
117
138
|
|
|
118
|
-
var ListboxContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
139
|
+
var ListboxContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 304px;\n overflow-y: auto;\n margin: 0;\n padding: 0.25rem 0;\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
119
140
|
return props.theme.listDialogBackgroundColor;
|
|
120
141
|
}, function (props) {
|
|
121
142
|
return props.theme.listDialogBorderColor;
|
package/select/Option.js
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
@@ -13,19 +11,13 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
|
|
|
13
11
|
|
|
14
12
|
var _react = _interopRequireDefault(require("react"));
|
|
15
13
|
|
|
16
|
-
var _styledComponents =
|
|
17
|
-
|
|
18
|
-
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
14
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
19
15
|
|
|
20
16
|
var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
|
|
21
17
|
|
|
22
18
|
var _Icons = _interopRequireDefault(require("./Icons"));
|
|
23
19
|
|
|
24
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6
|
|
25
|
-
|
|
26
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
-
|
|
28
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
29
21
|
|
|
30
22
|
var Option = function Option(_ref) {
|
|
31
23
|
var id = _ref.id,
|
|
@@ -37,10 +29,7 @@ var Option = function Option(_ref) {
|
|
|
37
29
|
isGroupedOption = _ref$isGroupedOption === void 0 ? false : _ref$isGroupedOption,
|
|
38
30
|
isLastOption = _ref.isLastOption,
|
|
39
31
|
isSelected = _ref.isSelected;
|
|
40
|
-
|
|
41
|
-
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
42
|
-
theme: colorsTheme.select
|
|
43
|
-
}, /*#__PURE__*/_react["default"].createElement(OptionItem, {
|
|
32
|
+
return /*#__PURE__*/_react["default"].createElement(OptionItem, {
|
|
44
33
|
id: id,
|
|
45
34
|
onClick: function onClick() {
|
|
46
35
|
_onClick(option);
|
|
@@ -62,13 +51,13 @@ var Option = function Option(_ref) {
|
|
|
62
51
|
grouped: isGroupedOption,
|
|
63
52
|
multiple: multiple,
|
|
64
53
|
role: !(typeof option.icon === "string") ? "img" : undefined
|
|
65
|
-
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(
|
|
54
|
+
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
66
55
|
src: option.icon
|
|
67
56
|
}) : option.icon), /*#__PURE__*/_react["default"].createElement(OptionContent, {
|
|
68
57
|
grouped: isGroupedOption,
|
|
69
58
|
hasIcon: option.icon ? true : false,
|
|
70
59
|
multiple: multiple
|
|
71
|
-
}, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, _Icons["default"].selected))))
|
|
60
|
+
}, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, _Icons["default"].selected))));
|
|
72
61
|
};
|
|
73
62
|
|
|
74
63
|
var OptionItem = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 0.5rem;\n box-shadow: inset 0 0 0 2px transparent;\n ", "\n ", ";\n line-height: 1.715em;\n cursor: pointer;\n\n &:hover {\n ", ";\n }\n &:active {\n ", ";\n }\n"])), function (props) {
|
|
@@ -87,21 +76,19 @@ var StyledOption = _styledComponents["default"].span(_templateObject2 || (_templ
|
|
|
87
76
|
return props.last || props.visualFocused || props.selected ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
|
|
88
77
|
});
|
|
89
78
|
|
|
90
|
-
var OptionIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n
|
|
91
|
-
return props.grouped && !props.multiple ? "
|
|
79
|
+
var OptionIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.125rem;\n margin-left: ", ";\n color: ", ";\n\n svg,\n img {\n height: 20px;\n width: 20px;\n }\n"])), function (props) {
|
|
80
|
+
return props.grouped && !props.multiple ? "16px" : "8px";
|
|
92
81
|
}, function (props) {
|
|
93
82
|
return props.theme.listOptionIconColor;
|
|
94
83
|
});
|
|
95
84
|
|
|
96
|
-
var OptionContent = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n width: 100%;\n overflow: hidden;\n ", "
|
|
97
|
-
return props.grouped && !props.multiple && !props.hasIcon ? "
|
|
85
|
+
var OptionContent = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n gap: 0.25rem;\n width: 100%;\n overflow: hidden;\n margin-left: ", ";\n"])), function (props) {
|
|
86
|
+
return props.grouped && !props.multiple && !props.hasIcon ? "16px" : "8px";
|
|
98
87
|
});
|
|
99
88
|
|
|
100
|
-
var
|
|
101
|
-
|
|
102
|
-
var OptionLabel = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
|
|
89
|
+
var OptionLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
|
|
103
90
|
|
|
104
|
-
var OptionSelectedIndicator = _styledComponents["default"].span(
|
|
91
|
+
var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n color: ", ";\n\n svg {\n width: 16px;\n height: 16px;\n }\n"])), function (props) {
|
|
105
92
|
return props.theme.selectedListOptionIconColor;
|
|
106
93
|
});
|
|
107
94
|
|
package/select/Select.js
CHANGED
|
@@ -23,26 +23,26 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
23
23
|
|
|
24
24
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
27
|
+
|
|
28
|
+
var _variables = require("../common/variables");
|
|
27
29
|
|
|
28
30
|
var _uuid = require("uuid");
|
|
29
31
|
|
|
30
|
-
var _utils = require("../common/utils
|
|
32
|
+
var _utils = require("../common/utils");
|
|
31
33
|
|
|
32
34
|
var _Icons = _interopRequireDefault(require("./Icons"));
|
|
33
35
|
|
|
34
36
|
var _Listbox = _interopRequireDefault(require("./Listbox"));
|
|
35
37
|
|
|
38
|
+
var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
|
|
39
|
+
|
|
36
40
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
|
|
37
41
|
|
|
38
42
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
39
43
|
|
|
40
44
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
41
45
|
|
|
42
|
-
var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
|
|
43
|
-
return "This field is required. Please, enter a value.";
|
|
44
|
-
};
|
|
45
|
-
|
|
46
46
|
var groupsHaveOptions = function groupsHaveOptions(innerOptions) {
|
|
47
47
|
return innerOptions[0].hasOwnProperty("options") ? innerOptions[0].options ? innerOptions.some(function (groupOption) {
|
|
48
48
|
return groupOption.options.length > 0;
|
|
@@ -57,6 +57,10 @@ var filteredGroupsHaveOptions = function filteredGroupsHaveOptions(filteredOptio
|
|
|
57
57
|
}) : true;
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
+
var canOpenOptions = function canOpenOptions(options, disabled) {
|
|
61
|
+
return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions(options);
|
|
62
|
+
};
|
|
63
|
+
|
|
60
64
|
var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, searchValue) {
|
|
61
65
|
if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
|
|
62
66
|
if (options[0].options) return options.map(function (optionGroup) {
|
|
@@ -95,9 +99,9 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
|
|
|
95
99
|
options.forEach(function (option) {
|
|
96
100
|
if (option.options) {
|
|
97
101
|
option.options.forEach(function (singleOption) {
|
|
98
|
-
if (value.includes(singleOption.value)) selectedOption.push(singleOption);
|
|
102
|
+
if (value.includes(singleOption.value) && Array.isArray(selectedOption)) selectedOption.push(singleOption);
|
|
99
103
|
});
|
|
100
|
-
} else if (value.includes(option.value)) selectedOption.push(option);
|
|
104
|
+
} else if (value.includes(option.value) && Array.isArray(selectedOption)) selectedOption.push(option);
|
|
101
105
|
});
|
|
102
106
|
}
|
|
103
107
|
} else {
|
|
@@ -132,8 +136,34 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
|
|
|
132
136
|
};
|
|
133
137
|
};
|
|
134
138
|
|
|
139
|
+
var notOptionalCheck = function notOptionalCheck(value, multiple, optional) {
|
|
140
|
+
return !optional && (multiple ? value.length === 0 : value === "");
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
var useWidth = function useWidth(target) {
|
|
144
|
+
var _useState = (0, _react.useState)(0),
|
|
145
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
146
|
+
width = _useState2[0],
|
|
147
|
+
setWidth = _useState2[1];
|
|
148
|
+
|
|
149
|
+
(0, _react.useEffect)(function () {
|
|
150
|
+
if (target != null) {
|
|
151
|
+
setWidth(target.getBoundingClientRect().width);
|
|
152
|
+
var triggerObserver = new ResizeObserver(function (entries) {
|
|
153
|
+
var rect = entries[0].target.getBoundingClientRect();
|
|
154
|
+
setWidth(rect === null || rect === void 0 ? void 0 : rect.width);
|
|
155
|
+
});
|
|
156
|
+
triggerObserver.observe(target);
|
|
157
|
+
return function () {
|
|
158
|
+
triggerObserver.unobserve(target);
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}, [target]);
|
|
162
|
+
return width;
|
|
163
|
+
};
|
|
164
|
+
|
|
135
165
|
var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
136
|
-
var _selectedOption$label;
|
|
166
|
+
var _ref4, _selectedOption$label;
|
|
137
167
|
|
|
138
168
|
var label = _ref.label,
|
|
139
169
|
_ref$name = _ref.name,
|
|
@@ -161,38 +191,39 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
161
191
|
_ref$tabIndex = _ref.tabIndex,
|
|
162
192
|
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
163
193
|
|
|
164
|
-
var
|
|
165
|
-
|
|
166
|
-
selectId =
|
|
194
|
+
var _useState3 = (0, _react.useState)("select-".concat((0, _uuid.v4)())),
|
|
195
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
|
|
196
|
+
selectId = _useState4[0];
|
|
167
197
|
|
|
168
198
|
var selectLabelId = "label-".concat(selectId);
|
|
169
199
|
var errorId = "error-".concat(selectId);
|
|
170
200
|
var optionsListId = "".concat(selectId, "-listbox");
|
|
171
201
|
|
|
172
|
-
var
|
|
173
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
174
|
-
innerValue = _useState4[0],
|
|
175
|
-
setInnerValue = _useState4[1];
|
|
176
|
-
|
|
177
|
-
var _useState5 = (0, _react.useState)(""),
|
|
202
|
+
var _useState5 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : ""),
|
|
178
203
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
179
|
-
|
|
180
|
-
|
|
204
|
+
innerValue = _useState6[0],
|
|
205
|
+
setInnerValue = _useState6[1];
|
|
181
206
|
|
|
182
|
-
var _useState7 = (0, _react.useState)(
|
|
207
|
+
var _useState7 = (0, _react.useState)(""),
|
|
183
208
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
184
|
-
|
|
185
|
-
|
|
209
|
+
searchValue = _useState8[0],
|
|
210
|
+
setSearchValue = _useState8[1];
|
|
186
211
|
|
|
187
|
-
var _useState9 = (0, _react.useState)(
|
|
212
|
+
var _useState9 = (0, _react.useState)(-1),
|
|
188
213
|
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
189
|
-
|
|
190
|
-
|
|
214
|
+
visualFocusIndex = _useState10[0],
|
|
215
|
+
changeVisualFocusIndex = _useState10[1];
|
|
216
|
+
|
|
217
|
+
var _useState11 = (0, _react.useState)(false),
|
|
218
|
+
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
219
|
+
isOpen = _useState12[0],
|
|
220
|
+
changeIsOpen = _useState12[1];
|
|
191
221
|
|
|
192
|
-
var
|
|
222
|
+
var selectRef = (0, _react.useRef)(null);
|
|
193
223
|
var selectSearchInputRef = (0, _react.useRef)(null);
|
|
194
|
-
var
|
|
224
|
+
var width = useWidth(selectRef.current);
|
|
195
225
|
var colorsTheme = (0, _useTheme["default"])();
|
|
226
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
196
227
|
var optionalItem = {
|
|
197
228
|
label: placeholder,
|
|
198
229
|
value: ""
|
|
@@ -210,20 +241,8 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
210
241
|
selectedOption = _useMemo.selectedOption,
|
|
211
242
|
singleSelectionIndex = _useMemo.singleSelectionIndex;
|
|
212
243
|
|
|
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
|
-
|
|
225
244
|
var openOptions = function openOptions() {
|
|
226
|
-
if (!isOpen &&
|
|
245
|
+
if (!isOpen && canOpenOptions(options, disabled)) changeIsOpen(true);
|
|
227
246
|
};
|
|
228
247
|
|
|
229
248
|
var closeOptions = function closeOptions() {
|
|
@@ -234,27 +253,23 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
234
253
|
};
|
|
235
254
|
|
|
236
255
|
var handleSelectChangeValue = function handleSelectChangeValue(newOption) {
|
|
256
|
+
var newValue;
|
|
257
|
+
|
|
237
258
|
if (multiple) {
|
|
238
|
-
var
|
|
239
|
-
|
|
259
|
+
var _ref2, _ref3;
|
|
260
|
+
|
|
261
|
+
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
262
|
return optionVal !== newOption.value;
|
|
241
|
-
});else
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
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
|
-
}
|
|
263
|
+
});else newValue = [].concat((0, _toConsumableArray2["default"])((_ref3 = value && Array.isArray(value) && value) !== null && _ref3 !== void 0 ? _ref3 : innerValue && Array.isArray(innerValue) && innerValue), [newOption.value]);
|
|
264
|
+
} else newValue = newOption.value;
|
|
265
|
+
|
|
266
|
+
value !== null && value !== void 0 ? value : setInnerValue(newValue);
|
|
267
|
+
notOptionalCheck(newValue, multiple, optional) ? onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
268
|
+
value: newValue,
|
|
269
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
270
|
+
}) : onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
271
|
+
value: newValue
|
|
272
|
+
});
|
|
258
273
|
};
|
|
259
274
|
|
|
260
275
|
var handleSelectOnClick = function handleSelectOnClick() {
|
|
@@ -275,19 +290,20 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
275
290
|
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
276
291
|
closeOptions();
|
|
277
292
|
setSearchValue("");
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
293
|
+
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
294
|
+
notOptionalCheck(currentValue, multiple, optional) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
295
|
+
value: currentValue,
|
|
296
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
297
|
+
}) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
298
|
+
value: currentValue
|
|
283
299
|
});
|
|
284
300
|
}
|
|
285
301
|
};
|
|
286
302
|
|
|
287
303
|
var handleSelectOnKeyDown = function handleSelectOnKeyDown(event) {
|
|
288
|
-
switch (event.
|
|
289
|
-
case
|
|
290
|
-
|
|
304
|
+
switch (event.key) {
|
|
305
|
+
case "Down":
|
|
306
|
+
case "ArrowDown":
|
|
291
307
|
event.preventDefault();
|
|
292
308
|
singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
|
|
293
309
|
if (visualFocusIndex < lastOptionIndex) return visualFocusIndex + 1;else if (visualFocusIndex === lastOptionIndex) return 0;
|
|
@@ -295,8 +311,8 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
295
311
|
openOptions();
|
|
296
312
|
break;
|
|
297
313
|
|
|
298
|
-
case
|
|
299
|
-
|
|
314
|
+
case "Up":
|
|
315
|
+
case "ArrowUp":
|
|
300
316
|
event.preventDefault();
|
|
301
317
|
singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
|
|
302
318
|
return visualFocusIndex === 0 || visualFocusIndex === -1 ? lastOptionIndex : visualFocusIndex - 1;
|
|
@@ -304,15 +320,14 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
304
320
|
openOptions();
|
|
305
321
|
break;
|
|
306
322
|
|
|
307
|
-
case
|
|
308
|
-
|
|
323
|
+
case "Esc":
|
|
324
|
+
case "Escape":
|
|
309
325
|
event.preventDefault();
|
|
310
326
|
closeOptions();
|
|
311
327
|
setSearchValue("");
|
|
312
328
|
break;
|
|
313
329
|
|
|
314
|
-
case
|
|
315
|
-
// Enter
|
|
330
|
+
case "Enter":
|
|
316
331
|
if (isOpen && visualFocusIndex >= 0) {
|
|
317
332
|
var accLength = optional && !multiple ? 1 : 0;
|
|
318
333
|
|
|
@@ -353,7 +368,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
353
368
|
value !== null && value !== void 0 ? value : setInnerValue([]);
|
|
354
369
|
!optional ? onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
355
370
|
value: [],
|
|
356
|
-
error:
|
|
371
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
357
372
|
}) : onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
358
373
|
value: []
|
|
359
374
|
});
|
|
@@ -369,26 +384,6 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
369
384
|
!multiple && closeOptions();
|
|
370
385
|
setSearchValue("");
|
|
371
386
|
}, [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
387
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
393
388
|
theme: colorsTheme.select
|
|
394
389
|
}, /*#__PURE__*/_react["default"].createElement(SelectContainer, {
|
|
@@ -399,12 +394,17 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
399
394
|
id: selectLabelId,
|
|
400
395
|
disabled: disabled,
|
|
401
396
|
onClick: function onClick() {
|
|
402
|
-
|
|
397
|
+
selectRef.current.focus();
|
|
403
398
|
},
|
|
404
399
|
helperText: helperText
|
|
405
|
-
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null,
|
|
400
|
+
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
406
401
|
disabled: disabled
|
|
407
|
-
}, helperText), /*#__PURE__*/_react["default"].createElement(
|
|
402
|
+
}, helperText), /*#__PURE__*/_react["default"].createElement(Popover.Root, {
|
|
403
|
+
open: isOpen
|
|
404
|
+
}, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
|
|
405
|
+
asChild: true,
|
|
406
|
+
type: undefined
|
|
407
|
+
}, /*#__PURE__*/_react["default"].createElement(Select, {
|
|
408
408
|
id: selectId,
|
|
409
409
|
disabled: disabled,
|
|
410
410
|
error: error,
|
|
@@ -412,19 +412,19 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
412
412
|
onClick: handleSelectOnClick,
|
|
413
413
|
onFocus: handleSelectOnFocus,
|
|
414
414
|
onKeyDown: handleSelectOnKeyDown,
|
|
415
|
-
ref:
|
|
416
|
-
tabIndex: tabIndex,
|
|
415
|
+
ref: selectRef,
|
|
416
|
+
tabIndex: disabled ? -1 : tabIndex,
|
|
417
417
|
role: "combobox",
|
|
418
418
|
"aria-controls": optionsListId,
|
|
419
419
|
"aria-disabled": disabled,
|
|
420
420
|
"aria-expanded": isOpen,
|
|
421
421
|
"aria-haspopup": "listbox",
|
|
422
|
-
"aria-labelledby": selectLabelId,
|
|
422
|
+
"aria-labelledby": label ? selectLabelId : undefined,
|
|
423
423
|
"aria-activedescendant": visualFocusIndex >= 0 ? "option-".concat(visualFocusIndex) : undefined,
|
|
424
|
-
"aria-invalid": error ?
|
|
424
|
+
"aria-invalid": error ? true : false,
|
|
425
425
|
"aria-errormessage": error ? errorId : undefined,
|
|
426
426
|
"aria-required": !disabled && !optional
|
|
427
|
-
}, multiple && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
|
|
427
|
+
}, multiple && Array.isArray(selectedOption) && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
|
|
428
428
|
disabled: disabled
|
|
429
429
|
}, selectedOption.length), /*#__PURE__*/_react["default"].createElement(ClearOptionsAction, {
|
|
430
430
|
disabled: disabled,
|
|
@@ -434,11 +434,12 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
434
434
|
},
|
|
435
435
|
onClick: handleClearOptionsActionOnClick,
|
|
436
436
|
tabIndex: -1,
|
|
437
|
-
title:
|
|
438
|
-
"aria-label":
|
|
437
|
+
title: translatedLabels.select.actionClearSelectionTitle,
|
|
438
|
+
"aria-label": translatedLabels.select.actionClearSelectionTitle
|
|
439
439
|
}, _Icons["default"].clear)), /*#__PURE__*/_react["default"].createElement(SearchableValueContainer, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
440
440
|
name: name,
|
|
441
|
-
|
|
441
|
+
disabled: disabled,
|
|
442
|
+
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
443
|
readOnly: true,
|
|
443
444
|
"aria-hidden": "true"
|
|
444
445
|
}), searchable && /*#__PURE__*/_react["default"].createElement(SearchInput, {
|
|
@@ -452,9 +453,9 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
452
453
|
}), (!searchable || searchValue === "") && (multiple ? /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
453
454
|
disabled: disabled,
|
|
454
455
|
atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || searchable && isOpen
|
|
455
|
-
}, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, selectedOption.map(function (option) {
|
|
456
|
+
}, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, Array.isArray(selectedOption) && selectedOption.map(function (option) {
|
|
456
457
|
return option.label;
|
|
457
|
-
}).join(", ")), selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
458
|
+
}).join(", ")), Array.isArray(selectedOption) && selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
458
459
|
disabled: disabled,
|
|
459
460
|
atBackground: !(value !== null && value !== void 0 ? value : innerValue) || searchable && isOpen
|
|
460
461
|
}, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, (_selectedOption$label = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) !== null && _selectedOption$label !== void 0 ? _selectedOption$label : placeholder)))), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, null, _Icons["default"].error), searchable && searchValue.length > 0 && /*#__PURE__*/_react["default"].createElement(ClearSearchAction, {
|
|
@@ -464,11 +465,21 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
464
465
|
},
|
|
465
466
|
onClick: handleClearSearchActionOnClick,
|
|
466
467
|
tabIndex: -1,
|
|
467
|
-
title:
|
|
468
|
-
"aria-label":
|
|
468
|
+
title: translatedLabels.select.actionClearSearchTitle,
|
|
469
|
+
"aria-label": translatedLabels.select.actionClearSearchTitle
|
|
469
470
|
}, _Icons["default"].clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
|
|
470
471
|
disabled: disabled
|
|
471
|
-
}, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown),
|
|
472
|
+
}, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
|
|
473
|
+
sideOffset: 4,
|
|
474
|
+
onOpenAutoFocus: function onOpenAutoFocus(event) {
|
|
475
|
+
// Avoid select to lose focus when the list is opened
|
|
476
|
+
event.preventDefault();
|
|
477
|
+
},
|
|
478
|
+
onCloseAutoFocus: function onCloseAutoFocus(event) {
|
|
479
|
+
// Avoid select to lose focus when the list is closed
|
|
480
|
+
event.preventDefault();
|
|
481
|
+
}
|
|
482
|
+
}, /*#__PURE__*/_react["default"].createElement(_Listbox["default"], {
|
|
472
483
|
id: optionsListId,
|
|
473
484
|
currentValue: value !== null && value !== void 0 ? value : innerValue,
|
|
474
485
|
options: searchable ? filteredOptions : options,
|
|
@@ -479,8 +490,10 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
479
490
|
optionalItem: optionalItem,
|
|
480
491
|
searchable: searchable,
|
|
481
492
|
handleOptionOnClick: handleOptionOnClick,
|
|
482
|
-
|
|
483
|
-
|
|
493
|
+
styles: {
|
|
494
|
+
width: width
|
|
495
|
+
}
|
|
496
|
+
}))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
|
|
484
497
|
id: errorId,
|
|
485
498
|
"aria-live": error ? "assertive" : "off"
|
|
486
499
|
}, error)));
|
|
@@ -579,9 +592,7 @@ var SelectionNumber = _styledComponents["default"].span(_templateObject7 || (_te
|
|
|
579
592
|
return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
|
|
580
593
|
});
|
|
581
594
|
|
|
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
|
|
583
|
-
return props.theme.fontFamily;
|
|
584
|
-
}, function (props) {
|
|
595
|
+
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
596
|
return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
|
|
586
597
|
}, function (props) {
|
|
587
598
|
return props.disabled ? "transparent" : props.theme.enabledSelectionIndicatorActionBackgroundColor;
|