@dxc-technology/halstack-react 0.0.0-63ee6f9 → 0.0.0-64ec938
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HalstackContext.d.ts +12 -0
- package/HalstackContext.js +295 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +7 -28
- package/accordion/Accordion.stories.tsx +12 -12
- package/accordion/Accordion.test.js +19 -4
- package/accordion/types.d.ts +4 -0
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +14 -15
- package/accordion-group/AccordionGroup.stories.tsx +1 -1
- package/accordion-group/AccordionGroup.test.js +24 -6
- package/accordion-group/types.d.ts +4 -0
- package/alert/Alert.js +4 -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 +94 -95
- package/bleed/types.d.ts +1 -1
- package/box/Box.js +22 -32
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/{list → bulleted-list}/types.js +0 -0
- package/button/Button.js +14 -11
- package/card/Card.js +24 -27
- package/checkbox/Checkbox.d.ts +1 -1
- package/checkbox/Checkbox.js +38 -28
- package/checkbox/Checkbox.stories.tsx +124 -128
- package/checkbox/types.d.ts +3 -3
- package/common/variables.js +197 -84
- package/date-input/DateInput.js +38 -20
- package/date-input/DateInput.test.js +9 -22
- package/date-input/types.d.ts +12 -9
- package/dialog/Dialog.js +4 -32
- package/dropdown/Dropdown.js +13 -17
- package/dropdown/Dropdown.stories.tsx +1 -1
- package/file-input/FileInput.js +9 -6
- package/file-input/FileItem.js +7 -5
- package/flex/Flex.d.ts +3 -0
- package/flex/Flex.js +74 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +21 -0
- package/{radio → flex}/types.js +0 -0
- package/footer/Footer.js +15 -88
- package/footer/Icons.js +1 -1
- package/header/Header.js +27 -48
- package/header/Header.stories.tsx +46 -36
- package/header/Header.test.js +18 -2
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +36 -36
- package/inset/types.d.ts +25 -1
- package/layout/ApplicationLayout.d.ts +4 -3
- package/layout/ApplicationLayout.js +68 -113
- package/layout/ApplicationLayout.stories.tsx +14 -59
- 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 +5 -10
- package/link/Link.d.ts +3 -2
- package/link/Link.js +57 -74
- package/link/Link.stories.tsx +88 -53
- package/link/Link.test.js +7 -15
- package/link/types.d.ts +7 -23
- package/main.d.ts +8 -5
- package/main.js +51 -21
- package/number-input/NumberInput.test.js +2 -4
- package/number-input/types.d.ts +13 -10
- package/package.json +7 -5
- package/paginator/Paginator.js +17 -38
- package/paginator/Paginator.test.js +42 -0
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +7 -4
- package/password-input/PasswordInput.test.js +3 -6
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.js +1 -1
- package/progress-bar/ProgressBar.stories.jsx +11 -11
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +118 -0
- package/quick-nav/QuickNav.stories.tsx +264 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio-group/Radio.js +1 -1
- package/radio-group/RadioGroup.js +10 -7
- package/resultsetTable/ResultsetTable.test.js +42 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +175 -0
- package/select/Option.js +1 -1
- package/select/Select.js +106 -186
- package/select/Select.stories.tsx +144 -100
- package/select/Select.test.js +377 -231
- package/select/types.d.ts +32 -11
- package/sidenav/Sidenav.d.ts +1 -1
- package/sidenav/Sidenav.js +20 -9
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +2 -1
- package/slider/Slider.stories.tsx +8 -8
- package/slider/Slider.test.js +31 -10
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +1 -1
- package/stack/Stack.d.ts +2 -1
- package/stack/Stack.js +29 -70
- package/stack/Stack.stories.tsx +189 -90
- package/stack/types.d.ts +15 -7
- package/switch/Switch.d.ts +1 -1
- package/switch/Switch.js +35 -19
- package/switch/Switch.stories.tsx +14 -14
- package/switch/Switch.test.js +25 -0
- package/switch/types.d.ts +6 -2
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +9 -11
- package/tabs/Tabs.stories.tsx +0 -8
- package/tabs/Tabs.test.js +26 -9
- package/tabs/types.d.ts +4 -0
- package/tabs-nav/NavTabs.d.ts +8 -0
- package/tabs-nav/NavTabs.js +125 -0
- package/tabs-nav/NavTabs.stories.tsx +170 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +132 -0
- package/tabs-nav/types.d.ts +53 -0
- package/tabs-nav/types.js +5 -0
- package/tag/Tag.js +5 -8
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +55 -0
- package/text-input/TextInput.js +48 -76
- package/text-input/TextInput.test.js +22 -35
- package/text-input/types.d.ts +27 -12
- package/textarea/Textarea.js +12 -23
- package/textarea/Textarea.test.js +10 -20
- package/textarea/types.d.ts +14 -11
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +5 -4
- package/toggle-group/ToggleGroup.stories.tsx +4 -4
- package/toggle-group/ToggleGroup.test.js +35 -4
- package/toggle-group/types.d.ts +8 -0
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +131 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.js +2 -2
- package/useTranslatedLabels.d.ts +2 -0
- package/useTranslatedLabels.js +20 -0
- package/wizard/Wizard.js +35 -29
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
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 _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
27
|
+
|
|
26
28
|
var _variables = require("../common/variables.js");
|
|
27
29
|
|
|
28
30
|
var _uuid = require("uuid");
|
|
29
31
|
|
|
30
32
|
var _utils = require("../common/utils.js");
|
|
31
33
|
|
|
32
|
-
var _Option = _interopRequireDefault(require("../select/Option"));
|
|
33
|
-
|
|
34
34
|
var _Icons = _interopRequireDefault(require("./Icons"));
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _Listbox = _interopRequireDefault(require("./Listbox"));
|
|
37
|
+
|
|
38
|
+
var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
|
|
39
|
+
|
|
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) {
|
|
@@ -132,6 +136,10 @@ 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
|
+
|
|
135
143
|
var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
136
144
|
var _selectedOption$label;
|
|
137
145
|
|
|
@@ -189,10 +197,15 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
189
197
|
isOpen = _useState10[0],
|
|
190
198
|
changeIsOpen = _useState10[1];
|
|
191
199
|
|
|
192
|
-
var
|
|
200
|
+
var _useState11 = (0, _react.useState)(null),
|
|
201
|
+
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
202
|
+
listboxStyles = _useState12[0],
|
|
203
|
+
setListboxStyles = _useState12[1];
|
|
204
|
+
|
|
205
|
+
var selectRef = (0, _react.useRef)(null);
|
|
193
206
|
var selectSearchInputRef = (0, _react.useRef)(null);
|
|
194
|
-
var selectOptionsListRef = (0, _react.useRef)(null);
|
|
195
207
|
var colorsTheme = (0, _useTheme["default"])();
|
|
208
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
196
209
|
var optionalItem = {
|
|
197
210
|
label: placeholder,
|
|
198
211
|
value: ""
|
|
@@ -202,7 +215,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
202
215
|
}, [options, searchValue]);
|
|
203
216
|
var lastOptionIndex = (0, _react.useMemo)(function () {
|
|
204
217
|
return getLastOptionIndex(options, filteredOptions, searchable, optional, multiple);
|
|
205
|
-
}, [options, filteredOptions, searchable, optional, multiple
|
|
218
|
+
}, [options, filteredOptions, searchable, optional, multiple]);
|
|
206
219
|
|
|
207
220
|
var _useMemo = (0, _react.useMemo)(function () {
|
|
208
221
|
return getSelectedOption(value !== null && value !== void 0 ? value : innerValue, options, multiple, optional, optionalItem);
|
|
@@ -210,20 +223,8 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
210
223
|
selectedOption = _useMemo.selectedOption,
|
|
211
224
|
singleSelectionIndex = _useMemo.singleSelectionIndex;
|
|
212
225
|
|
|
213
|
-
var notOptionalCheck = function notOptionalCheck(value) {
|
|
214
|
-
return value === "" && !optional;
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
var notOptionalMultipleCheck = function notOptionalMultipleCheck() {
|
|
218
|
-
return (value !== null && value !== void 0 ? value : innerValue).length === 0 && !optional;
|
|
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
226
|
var openOptions = function openOptions() {
|
|
226
|
-
if (!isOpen &&
|
|
227
|
+
if (!isOpen && canOpenOptions(options, disabled)) changeIsOpen(true);
|
|
227
228
|
};
|
|
228
229
|
|
|
229
230
|
var closeOptions = function closeOptions() {
|
|
@@ -234,36 +235,21 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
234
235
|
};
|
|
235
236
|
|
|
236
237
|
var handleSelectChangeValue = function handleSelectChangeValue(newOption) {
|
|
237
|
-
|
|
238
|
-
var _res, _res2;
|
|
238
|
+
var newValue;
|
|
239
239
|
|
|
240
|
-
|
|
241
|
-
if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) value ?
|
|
240
|
+
if (multiple) {
|
|
241
|
+
if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) newValue = (value !== null && value !== void 0 ? value : innerValue).filter(function (optionVal) {
|
|
242
242
|
return optionVal !== newOption.value;
|
|
243
|
-
})
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
});else onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
254
|
-
value: (_res2 = res) !== null && _res2 !== void 0 ? _res2 : innerValue,
|
|
255
|
-
error: null
|
|
256
|
-
});
|
|
257
|
-
} else {
|
|
258
|
-
value !== null && value !== void 0 ? value : setInnerValue(newOption.value);
|
|
259
|
-
if (notOptionalCheck(newOption.value)) onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
260
|
-
value: newOption.value,
|
|
261
|
-
error: getNotOptionalErrorMessage()
|
|
262
|
-
});else onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
263
|
-
value: newOption.value,
|
|
264
|
-
error: null
|
|
265
|
-
});
|
|
266
|
-
}
|
|
243
|
+
});else newValue = [].concat((0, _toConsumableArray2["default"])(value !== null && value !== void 0 ? value : innerValue), [newOption.value]);
|
|
244
|
+
} else newValue = newOption.value;
|
|
245
|
+
|
|
246
|
+
value !== null && value !== void 0 ? value : setInnerValue(newValue);
|
|
247
|
+
notOptionalCheck(newValue, multiple, optional) ? onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
248
|
+
value: newValue,
|
|
249
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
250
|
+
}) : onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
251
|
+
value: newValue
|
|
252
|
+
});
|
|
267
253
|
};
|
|
268
254
|
|
|
269
255
|
var handleSelectOnClick = function handleSelectOnClick() {
|
|
@@ -284,12 +270,12 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
284
270
|
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
285
271
|
closeOptions();
|
|
286
272
|
setSearchValue("");
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
273
|
+
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
274
|
+
notOptionalCheck(currentValue, multiple, optional) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
275
|
+
value: currentValue,
|
|
276
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
277
|
+
}) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
278
|
+
value: currentValue
|
|
293
279
|
});
|
|
294
280
|
}
|
|
295
281
|
};
|
|
@@ -361,9 +347,11 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
361
347
|
var handleClearOptionsActionOnClick = function handleClearOptionsActionOnClick(event) {
|
|
362
348
|
event.stopPropagation();
|
|
363
349
|
value !== null && value !== void 0 ? value : setInnerValue([]);
|
|
364
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
350
|
+
!optional ? onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
365
351
|
value: [],
|
|
366
|
-
error:
|
|
352
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
353
|
+
}) : onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
354
|
+
value: []
|
|
367
355
|
});
|
|
368
356
|
};
|
|
369
357
|
|
|
@@ -377,66 +365,23 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
377
365
|
!multiple && closeOptions();
|
|
378
366
|
setSearchValue("");
|
|
379
367
|
}, [handleSelectChangeValue, closeOptions, multiple]);
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
|
|
388
|
-
});
|
|
389
|
-
}
|
|
390
|
-
}, [isOpen]);
|
|
391
|
-
(0, _react.useLayoutEffect)(function () {
|
|
392
|
-
var _selectOptionsListRef, _visualFocusedOptionE;
|
|
393
|
-
|
|
394
|
-
var visualFocusedOptionEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : (_selectOptionsListRef = selectOptionsListRef.current) === null || _selectOptionsListRef === void 0 ? void 0 : _selectOptionsListRef.querySelectorAll("[role='option']")[visualFocusIndex];
|
|
395
|
-
visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
|
|
396
|
-
block: "nearest",
|
|
397
|
-
inline: "start"
|
|
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
|
|
398
375
|
});
|
|
399
|
-
}, [visualFocusIndex]);
|
|
400
|
-
var globalIndex = optional && !multiple ? 0 : -1; // index for options, starting from 0 to options.length -1
|
|
401
|
-
|
|
402
|
-
var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
|
|
403
|
-
if (option.options) {
|
|
404
|
-
var groupId = "group-".concat(mapIndex);
|
|
405
|
-
return option.options.length > 0 && /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement(GroupList, {
|
|
406
|
-
role: "group",
|
|
407
|
-
"aria-labelledby": groupId
|
|
408
|
-
}, /*#__PURE__*/_react["default"].createElement(GroupLabel, {
|
|
409
|
-
role: "presentation",
|
|
410
|
-
id: groupId
|
|
411
|
-
}, option.label), option.options.map(function (singleOption) {
|
|
412
|
-
globalIndex++;
|
|
413
|
-
return /*#__PURE__*/_react["default"].createElement(_Option["default"], {
|
|
414
|
-
id: "option-".concat(globalIndex),
|
|
415
|
-
option: singleOption,
|
|
416
|
-
onClick: handleOptionOnClick,
|
|
417
|
-
multiple: multiple,
|
|
418
|
-
visualFocused: visualFocusIndex === globalIndex,
|
|
419
|
-
isGroupedOption: true,
|
|
420
|
-
isLastOption: lastOptionIndex === globalIndex,
|
|
421
|
-
isSelected: multiple ? (value !== null && value !== void 0 ? value : innerValue).includes(singleOption.value) : (value !== null && value !== void 0 ? value : innerValue) === singleOption.value
|
|
422
|
-
});
|
|
423
|
-
})));
|
|
424
|
-
} else {
|
|
425
|
-
globalIndex++;
|
|
426
|
-
return /*#__PURE__*/_react["default"].createElement(_Option["default"], {
|
|
427
|
-
key: "option-".concat(option.value),
|
|
428
|
-
id: "option-".concat(globalIndex),
|
|
429
|
-
option: option,
|
|
430
|
-
onClick: handleOptionOnClick,
|
|
431
|
-
multiple: multiple,
|
|
432
|
-
visualFocused: visualFocusIndex === globalIndex,
|
|
433
|
-
isGroupedOption: false,
|
|
434
|
-
isLastOption: lastOptionIndex === globalIndex,
|
|
435
|
-
isSelected: multiple ? (value !== null && value !== void 0 ? value : innerValue).includes(option.value) : (value !== null && value !== void 0 ? value : innerValue) === option.value
|
|
436
|
-
});
|
|
437
|
-
}
|
|
438
376
|
};
|
|
439
377
|
|
|
378
|
+
(0, _react.useEffect)(function () {
|
|
379
|
+
handleListboxResize();
|
|
380
|
+
window.addEventListener("resize", handleListboxResize);
|
|
381
|
+
return function () {
|
|
382
|
+
window.removeEventListener("resize", handleListboxResize);
|
|
383
|
+
};
|
|
384
|
+
}, [setListboxStyles]);
|
|
440
385
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
441
386
|
theme: colorsTheme.select
|
|
442
387
|
}, /*#__PURE__*/_react["default"].createElement(SelectContainer, {
|
|
@@ -447,12 +392,16 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
447
392
|
id: selectLabelId,
|
|
448
393
|
disabled: disabled,
|
|
449
394
|
onClick: function onClick() {
|
|
450
|
-
|
|
395
|
+
selectRef.current.focus();
|
|
451
396
|
},
|
|
452
397
|
helperText: helperText
|
|
453
|
-
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null,
|
|
398
|
+
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
454
399
|
disabled: disabled
|
|
455
|
-
}, helperText), /*#__PURE__*/_react["default"].createElement(
|
|
400
|
+
}, helperText), /*#__PURE__*/_react["default"].createElement(Popover.Root, {
|
|
401
|
+
open: isOpen
|
|
402
|
+
}, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
|
|
403
|
+
asChild: true
|
|
404
|
+
}, /*#__PURE__*/_react["default"].createElement(Select, {
|
|
456
405
|
id: selectId,
|
|
457
406
|
disabled: disabled,
|
|
458
407
|
error: error,
|
|
@@ -460,14 +409,14 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
460
409
|
onClick: handleSelectOnClick,
|
|
461
410
|
onFocus: handleSelectOnFocus,
|
|
462
411
|
onKeyDown: handleSelectOnKeyDown,
|
|
463
|
-
ref:
|
|
412
|
+
ref: selectRef,
|
|
464
413
|
tabIndex: tabIndex,
|
|
465
414
|
role: "combobox",
|
|
466
415
|
"aria-controls": optionsListId,
|
|
467
416
|
"aria-disabled": disabled,
|
|
468
417
|
"aria-expanded": isOpen,
|
|
469
418
|
"aria-haspopup": "listbox",
|
|
470
|
-
"aria-labelledby": selectLabelId,
|
|
419
|
+
"aria-labelledby": label ? selectLabelId : undefined,
|
|
471
420
|
"aria-activedescendant": visualFocusIndex >= 0 ? "option-".concat(visualFocusIndex) : undefined,
|
|
472
421
|
"aria-invalid": error ? "true" : "false",
|
|
473
422
|
"aria-errormessage": error ? errorId : undefined,
|
|
@@ -482,8 +431,8 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
482
431
|
},
|
|
483
432
|
onClick: handleClearOptionsActionOnClick,
|
|
484
433
|
tabIndex: -1,
|
|
485
|
-
title:
|
|
486
|
-
"aria-label":
|
|
434
|
+
title: translatedLabels.select.actionClearSelectionTitle,
|
|
435
|
+
"aria-label": translatedLabels.select.actionClearSelectionTitle
|
|
487
436
|
}, _Icons["default"].clear)), /*#__PURE__*/_react["default"].createElement(SearchableValueContainer, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
488
437
|
name: name,
|
|
489
438
|
value: multiple ? (value !== null && value !== void 0 ? value : innerValue).join(",") : value !== null && value !== void 0 ? value : innerValue,
|
|
@@ -496,48 +445,49 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
496
445
|
ref: selectSearchInputRef,
|
|
497
446
|
autoComplete: "nope",
|
|
498
447
|
autoCorrect: "nope",
|
|
499
|
-
size:
|
|
448
|
+
size: 1
|
|
500
449
|
}), (!searchable || searchValue === "") && (multiple ? /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
501
450
|
disabled: disabled,
|
|
502
451
|
atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || searchable && isOpen
|
|
503
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
452
|
+
}, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, selectedOption.map(function (option) {
|
|
504
453
|
return option.label;
|
|
505
454
|
}).join(", ")), selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
|
|
506
455
|
disabled: disabled,
|
|
507
456
|
atBackground: !(value !== null && value !== void 0 ? value : innerValue) || searchable && isOpen
|
|
508
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
457
|
+
}, /*#__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, {
|
|
509
458
|
onMouseDown: function onMouseDown(event) {
|
|
510
459
|
// Avoid input to lose focus
|
|
511
460
|
event.preventDefault();
|
|
512
461
|
},
|
|
513
462
|
onClick: handleClearSearchActionOnClick,
|
|
514
463
|
tabIndex: -1,
|
|
515
|
-
title:
|
|
516
|
-
"aria-label":
|
|
464
|
+
title: translatedLabels.select.actionClearSearchTitle,
|
|
465
|
+
"aria-label": translatedLabels.select.actionClearSearchTitle
|
|
517
466
|
}, _Icons["default"].clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
|
|
518
467
|
disabled: disabled
|
|
519
|
-
}, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown),
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
},
|
|
524
|
-
onMouseDown: function onMouseDown(event) {
|
|
468
|
+
}, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
|
|
469
|
+
sideOffset: 4,
|
|
470
|
+
onOpenAutoFocus: function onOpenAutoFocus(event) {
|
|
471
|
+
// Avoid select to lose focus when the list is opened
|
|
525
472
|
event.preventDefault();
|
|
526
473
|
},
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
},
|
|
532
|
-
id:
|
|
533
|
-
|
|
534
|
-
|
|
474
|
+
onCloseAutoFocus: function onCloseAutoFocus(event) {
|
|
475
|
+
// Avoid select to lose focus when the list is closed
|
|
476
|
+
event.preventDefault();
|
|
477
|
+
}
|
|
478
|
+
}, /*#__PURE__*/_react["default"].createElement(_Listbox["default"], {
|
|
479
|
+
id: optionsListId,
|
|
480
|
+
currentValue: value !== null && value !== void 0 ? value : innerValue,
|
|
481
|
+
options: searchable ? filteredOptions : options,
|
|
482
|
+
visualFocusIndex: visualFocusIndex,
|
|
483
|
+
lastOptionIndex: lastOptionIndex,
|
|
535
484
|
multiple: multiple,
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
485
|
+
optional: optional,
|
|
486
|
+
optionalItem: optionalItem,
|
|
487
|
+
searchable: searchable,
|
|
488
|
+
handleOptionOnClick: handleOptionOnClick,
|
|
489
|
+
styles: listboxStyles
|
|
490
|
+
}))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
|
|
541
491
|
id: errorId,
|
|
542
492
|
"aria-live": error ? "assertive" : "off"
|
|
543
493
|
}, error)));
|
|
@@ -636,9 +586,7 @@ var SelectionNumber = _styledComponents["default"].span(_templateObject7 || (_te
|
|
|
636
586
|
return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
|
|
637
587
|
});
|
|
638
588
|
|
|
639
|
-
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
|
|
640
|
-
return props.theme.fontFamily;
|
|
641
|
-
}, function (props) {
|
|
589
|
+
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) {
|
|
642
590
|
return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
|
|
643
591
|
}, function (props) {
|
|
644
592
|
return props.disabled ? "transparent" : props.theme.enabledSelectionIndicatorActionBackgroundColor;
|
|
@@ -662,9 +610,11 @@ var SelectedOption = _styledComponents["default"].span(_templateObject10 || (_te
|
|
|
662
610
|
return props.theme.valueFontWeight;
|
|
663
611
|
});
|
|
664
612
|
|
|
665
|
-
var
|
|
613
|
+
var SelectedOptionLabel = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
|
|
666
614
|
|
|
667
|
-
var
|
|
615
|
+
var ValueInput = _styledComponents["default"].input(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
|
|
616
|
+
|
|
617
|
+
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) {
|
|
668
618
|
return props.disabled ? props.theme.disabledColor : props.theme.valueFontColor;
|
|
669
619
|
}, function (props) {
|
|
670
620
|
return props.theme.fontFamily;
|
|
@@ -676,21 +626,21 @@ var SearchInput = _styledComponents["default"].input(_templateObject12 || (_temp
|
|
|
676
626
|
return props.theme.valueFontWeight;
|
|
677
627
|
});
|
|
678
628
|
|
|
679
|
-
var ErrorIcon = _styledComponents["default"].span(
|
|
629
|
+
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) {
|
|
680
630
|
return props.theme.errorIconColor;
|
|
681
631
|
});
|
|
682
632
|
|
|
683
|
-
var Error = _styledComponents["default"].span(
|
|
633
|
+
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) {
|
|
684
634
|
return props.theme.errorMessageColor;
|
|
685
635
|
}, function (props) {
|
|
686
636
|
return props.theme.fontFamily;
|
|
687
637
|
});
|
|
688
638
|
|
|
689
|
-
var CollapseIndicator = _styledComponents["default"].span(
|
|
639
|
+
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) {
|
|
690
640
|
return props.disabled ? props.theme.disabledColor : props.theme.collapseIndicatorColor;
|
|
691
641
|
});
|
|
692
642
|
|
|
693
|
-
var ClearSearchAction = _styledComponents["default"].button(
|
|
643
|
+
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) {
|
|
694
644
|
return props.theme.fontFamily;
|
|
695
645
|
}, function (props) {
|
|
696
646
|
return props.theme.actionBackgroundColor;
|
|
@@ -706,35 +656,5 @@ var ClearSearchAction = _styledComponents["default"].button(_templateObject16 ||
|
|
|
706
656
|
return props.theme.activeActionIconColor;
|
|
707
657
|
});
|
|
708
658
|
|
|
709
|
-
var OptionsList = _styledComponents["default"].ul(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n z-index: 1;\n max-height: 304px;\n overflow-y: auto;\n top: calc(100% + 4px);\n left: 0;\n margin: 0;\n padding: 0.25rem 0;\n width: 100%;\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
710
|
-
return props.theme.listDialogBackgroundColor;
|
|
711
|
-
}, function (props) {
|
|
712
|
-
return props.theme.listDialogBorderColor;
|
|
713
|
-
}, function (props) {
|
|
714
|
-
return props.theme.listOptionFontColor;
|
|
715
|
-
}, function (props) {
|
|
716
|
-
return props.theme.fontFamily;
|
|
717
|
-
}, function (props) {
|
|
718
|
-
return props.theme.listOptionFontSize;
|
|
719
|
-
}, function (props) {
|
|
720
|
-
return props.theme.listOptionFontStyle;
|
|
721
|
-
}, function (props) {
|
|
722
|
-
return props.theme.listOptionFontWeight;
|
|
723
|
-
});
|
|
724
|
-
|
|
725
|
-
var OptionsSystemMessage = _styledComponents["default"].span(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 4px 16px;\n color: ", ";\n font-size: 0.875rem;\n line-height: 1.715em;\n"])), function (props) {
|
|
726
|
-
return props.theme.systemMessageFontColor;
|
|
727
|
-
});
|
|
728
|
-
|
|
729
|
-
var NoMatchesFoundIcon = _styledComponents["default"].span(_templateObject19 || (_templateObject19 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 16px;\n width: 16px;\n padding: 4px;\n margin-right: 0.25rem;\n"])));
|
|
730
|
-
|
|
731
|
-
var GroupList = _styledComponents["default"].ul(_templateObject20 || (_templateObject20 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n"])));
|
|
732
|
-
|
|
733
|
-
var GroupLabel = _styledComponents["default"].li(_templateObject21 || (_templateObject21 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 4px 16px;\n font-weight: ", ";\n line-height: 1.715em;\n"])), function (props) {
|
|
734
|
-
return props.theme.listGroupLabelFontWeight;
|
|
735
|
-
});
|
|
736
|
-
|
|
737
|
-
var OptionLabel = _styledComponents["default"].span(_templateObject22 || (_templateObject22 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
|
|
738
|
-
|
|
739
659
|
var _default = DxcSelect;
|
|
740
660
|
exports["default"] = _default;
|