@dxc-technology/halstack-react 0.0.0-bcc5ff3 → 0.0.0-bd364ae
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 +4 -2
- package/HalstackContext.js +110 -58
- 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 +31 -32
- package/bleed/types.d.ts +1 -1
- package/box/Box.js +22 -32
- package/card/Card.js +34 -36
- package/checkbox/Checkbox.js +4 -1
- package/common/variables.js +162 -68
- package/date-input/DateInput.js +5 -2
- package/file-input/FileInput.js +9 -6
- package/footer/Footer.js +7 -5
- package/header/Header.js +7 -4
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +32 -32
- package/inset/types.d.ts +1 -1
- package/layout/ApplicationLayout.d.ts +4 -3
- package/layout/ApplicationLayout.js +83 -102
- 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 +2 -2
- package/link/Link.js +23 -49
- package/link/types.d.ts +2 -3
- package/main.d.ts +3 -3
- package/main.js +14 -8
- package/package.json +1 -1
- package/paginator/Paginator.js +17 -38
- package/password-input/PasswordInput.js +7 -4
- package/password-input/PasswordInput.test.js +1 -2
- package/progress-bar/ProgressBar.js +1 -1
- package/progress-bar/ProgressBar.stories.jsx +11 -11
- package/quick-nav/QuickNav.js +65 -17
- package/quick-nav/QuickNav.stories.tsx +2 -2
- package/quick-nav/types.d.ts +1 -1
- package/radio-group/Radio.js +1 -1
- package/radio-group/RadioGroup.js +8 -6
- package/select/Listbox.js +4 -1
- package/select/Select.js +37 -47
- package/select/Select.stories.tsx +14 -2
- package/select/Select.test.js +257 -194
- package/sidenav/Sidenav.d.ts +1 -1
- package/sidenav/Sidenav.js +20 -9
- package/spinner/Spinner.js +1 -1
- package/switch/Switch.js +4 -1
- 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/{radio → tabs-nav}/types.js +0 -0
- package/text-input/TextInput.js +19 -20
- package/textarea/Textarea.js +10 -19
- package/useTranslatedLabels.d.ts +2 -0
- package/useTranslatedLabels.js +20 -0
- package/wizard/Wizard.js +27 -25
- 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/quick-nav/QuickNav.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
@@ -11,54 +13,100 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
|
|
|
11
13
|
|
|
12
14
|
var _react = _interopRequireDefault(require("react"));
|
|
13
15
|
|
|
14
|
-
var _styledComponents =
|
|
16
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
15
17
|
|
|
16
18
|
var _slugify = _interopRequireDefault(require("slugify"));
|
|
17
19
|
|
|
20
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
21
|
+
|
|
18
22
|
var _Heading = _interopRequireDefault(require("../heading/Heading"));
|
|
19
23
|
|
|
20
24
|
var _Stack = _interopRequireDefault(require("../stack/Stack"));
|
|
21
25
|
|
|
22
26
|
var _Inset = _interopRequireDefault(require("../inset/Inset"));
|
|
23
27
|
|
|
24
|
-
var _List = _interopRequireDefault(require("../list/List"));
|
|
25
|
-
|
|
26
28
|
var _Text = _interopRequireDefault(require("../text/Text"));
|
|
27
29
|
|
|
28
|
-
var
|
|
30
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
31
|
+
|
|
32
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
33
|
+
|
|
34
|
+
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); }
|
|
35
|
+
|
|
36
|
+
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; }
|
|
29
37
|
|
|
30
38
|
var DxcQuickNav = function DxcQuickNav(_ref) {
|
|
31
39
|
var title = _ref.title,
|
|
32
40
|
links = _ref.links;
|
|
33
|
-
|
|
34
|
-
|
|
41
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
42
|
+
var colorsTheme = (0, _useTheme["default"])();
|
|
43
|
+
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
44
|
+
theme: colorsTheme.quickNav
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement(QuickNavContainer, null, /*#__PURE__*/_react["default"].createElement(_Stack["default"], {
|
|
46
|
+
gutter: "xsmall"
|
|
35
47
|
}, /*#__PURE__*/_react["default"].createElement(_Heading["default"], {
|
|
36
48
|
level: 4,
|
|
37
|
-
text: title
|
|
38
|
-
}), /*#__PURE__*/_react["default"].createElement(
|
|
49
|
+
text: title || translatedLabels.quickNav.contentTitle
|
|
50
|
+
}), /*#__PURE__*/_react["default"].createElement(ListColumn, null, /*#__PURE__*/_react["default"].createElement(_Stack["default"], {
|
|
51
|
+
gutter: "xsmall"
|
|
52
|
+
}, links.map(function (link) {
|
|
39
53
|
var _link$links;
|
|
40
54
|
|
|
41
|
-
return /*#__PURE__*/_react["default"].createElement(_Inset["default"], {
|
|
42
|
-
space: "
|
|
55
|
+
return /*#__PURE__*/_react["default"].createElement(ListRow, null, /*#__PURE__*/_react["default"].createElement(_Inset["default"], {
|
|
56
|
+
space: "0.25rem"
|
|
43
57
|
}, /*#__PURE__*/_react["default"].createElement(_Text["default"], null, /*#__PURE__*/_react["default"].createElement(Link, {
|
|
44
58
|
href: "#".concat((0, _slugify["default"])(link === null || link === void 0 ? void 0 : link.label, {
|
|
45
59
|
lower: true
|
|
46
60
|
}))
|
|
47
61
|
}, link === null || link === void 0 ? void 0 : link.label), (_link$links = link.links) === null || _link$links === void 0 ? void 0 : _link$links.map(function (sublink) {
|
|
48
|
-
return /*#__PURE__*/_react["default"].createElement(_Inset["default"], {
|
|
49
|
-
horizontal: "
|
|
62
|
+
return /*#__PURE__*/_react["default"].createElement(ListRow, null, /*#__PURE__*/_react["default"].createElement(_Inset["default"], {
|
|
63
|
+
horizontal: "0.5rem"
|
|
50
64
|
}, /*#__PURE__*/_react["default"].createElement(_Text["default"], null, /*#__PURE__*/_react["default"].createElement(Link, {
|
|
51
65
|
href: "#".concat((0, _slugify["default"])(sublink === null || sublink === void 0 ? void 0 : sublink.label, {
|
|
52
66
|
lower: true
|
|
53
67
|
}))
|
|
54
|
-
}, sublink === null || sublink === void 0 ? void 0 : sublink.label)));
|
|
55
|
-
})));
|
|
56
|
-
}))));
|
|
68
|
+
}, sublink === null || sublink === void 0 ? void 0 : sublink.label))));
|
|
69
|
+
}))));
|
|
70
|
+
}))))));
|
|
57
71
|
};
|
|
58
72
|
|
|
59
|
-
var QuickNavContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding:
|
|
73
|
+
var QuickNavContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n border-left: 2px solid ", ";\n"])), function (props) {
|
|
74
|
+
return props.theme.paddingTop;
|
|
75
|
+
}, function (props) {
|
|
76
|
+
return props.theme.paddingBottom;
|
|
77
|
+
}, function (props) {
|
|
78
|
+
return props.theme.paddingLeft;
|
|
79
|
+
}, function (props) {
|
|
80
|
+
return props.theme.paddingRight;
|
|
81
|
+
}, function (props) {
|
|
82
|
+
return props.theme.dividerBorderColor;
|
|
83
|
+
});
|
|
60
84
|
|
|
61
|
-
var
|
|
85
|
+
var ListColumn = _styledComponents["default"].ul(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n list-style-type: none;\n margin: 0;\n padding: 0;\n"])));
|
|
86
|
+
|
|
87
|
+
var ListRow = _styledComponents["default"].li(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
88
|
+
|
|
89
|
+
var Link = _styledComponents["default"].a(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: none;\n font-size: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n\n &:hover {\n color: ", ";\n }\n &:focus {\n outline-color: ", ";\n outline-style: ", ";\n outline-width: ", ";\n border-radius: ", ";\n }\n"])), function (props) {
|
|
90
|
+
return props.theme.fontSize;
|
|
91
|
+
}, function (props) {
|
|
92
|
+
return props.theme.fontFamily;
|
|
93
|
+
}, function (props) {
|
|
94
|
+
return props.theme.fontStyle;
|
|
95
|
+
}, function (props) {
|
|
96
|
+
return props.theme.fontWeight;
|
|
97
|
+
}, function (props) {
|
|
98
|
+
return props.theme.fontColor;
|
|
99
|
+
}, function (props) {
|
|
100
|
+
return props.theme.hoverFontColor;
|
|
101
|
+
}, function (props) {
|
|
102
|
+
return props.theme.focusBorderColor;
|
|
103
|
+
}, function (props) {
|
|
104
|
+
return props.theme.focusBorderStyle;
|
|
105
|
+
}, function (props) {
|
|
106
|
+
return props.theme.focusBorderThickness;
|
|
107
|
+
}, function (props) {
|
|
108
|
+
return props.theme.focusBorderRadius;
|
|
109
|
+
});
|
|
62
110
|
|
|
63
111
|
var _default = DxcQuickNav;
|
|
64
112
|
exports["default"] = _default;
|
|
@@ -38,13 +38,13 @@ export const Chromatic = () => (
|
|
|
38
38
|
<ExampleContainer>
|
|
39
39
|
<Title title="Default" level={4} />
|
|
40
40
|
<QuickNavContainer>
|
|
41
|
-
<DxcQuickNav
|
|
41
|
+
<DxcQuickNav links={links}></DxcQuickNav>
|
|
42
42
|
</QuickNavContainer>
|
|
43
43
|
</ExampleContainer>
|
|
44
44
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
45
45
|
<Title title="Link hovered" level={4} />
|
|
46
46
|
<QuickNavContainer>
|
|
47
|
-
<DxcQuickNav
|
|
47
|
+
<DxcQuickNav links={links}></DxcQuickNav>
|
|
48
48
|
</QuickNavContainer>
|
|
49
49
|
</ExampleContainer>
|
|
50
50
|
<ExampleContainer>
|
package/quick-nav/types.d.ts
CHANGED
package/radio-group/Radio.js
CHANGED
|
@@ -133,7 +133,7 @@ var Label = _styledComponents["default"].span(_templateObject6 || (_templateObje
|
|
|
133
133
|
}, function (props) {
|
|
134
134
|
return props.theme.radioInputLabelLineHeight;
|
|
135
135
|
}, function (props) {
|
|
136
|
-
return props.disabled
|
|
136
|
+
return props.disabled ? "color: ".concat(props.theme.disabledRadioInputLabelFontColor, "; pointer-events: none;") : "color: ".concat(props.theme.radioInputLabelFontColor);
|
|
137
137
|
});
|
|
138
138
|
|
|
139
139
|
var _default = /*#__PURE__*/_react["default"].memo(DxcRadio);
|
|
@@ -23,6 +23,8 @@ var _uuid = require("uuid");
|
|
|
23
23
|
|
|
24
24
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
25
|
|
|
26
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
27
|
+
|
|
26
28
|
var _Radio = _interopRequireDefault(require("./Radio"));
|
|
27
29
|
|
|
28
30
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
@@ -47,8 +49,7 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
47
49
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
48
50
|
_ref$optional = _ref.optional,
|
|
49
51
|
optional = _ref$optional === void 0 ? false : _ref$optional,
|
|
50
|
-
|
|
51
|
-
optionalItemLabel = _ref$optionalItemLabe === void 0 ? "N/A" : _ref$optionalItemLabe,
|
|
52
|
+
optionalItemLabel = _ref.optionalItemLabel,
|
|
52
53
|
_ref$readonly = _ref.readonly,
|
|
53
54
|
readonly = _ref$readonly === void 0 ? false : _ref$readonly,
|
|
54
55
|
_ref$stacking = _ref.stacking,
|
|
@@ -78,8 +79,10 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
78
79
|
firstTimeFocus = _useState6[0],
|
|
79
80
|
setFirstTimeFocus = _useState6[1];
|
|
80
81
|
|
|
82
|
+
var colorsTheme = (0, _useTheme["default"])();
|
|
83
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
81
84
|
var optionalItem = {
|
|
82
|
-
label: optionalItemLabel,
|
|
85
|
+
label: optionalItemLabel || translatedLabels.radioGroup.optionalItemLabelDefault,
|
|
83
86
|
value: "",
|
|
84
87
|
disabled: disabled
|
|
85
88
|
};
|
|
@@ -92,7 +95,6 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
92
95
|
currentFocusIndex = _useState8[0],
|
|
93
96
|
setCurrentFocusIndex = _useState8[1];
|
|
94
97
|
|
|
95
|
-
var colorsTheme = (0, _useTheme["default"])();
|
|
96
98
|
var handleOnChange = (0, _react.useCallback)(function (newValue) {
|
|
97
99
|
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
98
100
|
|
|
@@ -109,7 +111,7 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
109
111
|
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
110
112
|
!optional && !Boolean(currentValue) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
111
113
|
value: currentValue,
|
|
112
|
-
error:
|
|
114
|
+
error: translatedLabels.formFields.requiredSelectionErrorMessage
|
|
113
115
|
}) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
114
116
|
value: currentValue
|
|
115
117
|
});
|
|
@@ -182,7 +184,7 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
182
184
|
id: radioGroupLabelId,
|
|
183
185
|
helperText: helperText,
|
|
184
186
|
disabled: disabled
|
|
185
|
-
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null,
|
|
187
|
+
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
186
188
|
disabled: disabled
|
|
187
189
|
}, helperText), /*#__PURE__*/_react["default"].createElement(RadioGroup, {
|
|
188
190
|
onBlur: handleOnBlur,
|
package/select/Listbox.js
CHANGED
|
@@ -17,6 +17,8 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
17
17
|
|
|
18
18
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
19
19
|
|
|
20
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
21
|
+
|
|
20
22
|
var _Option = _interopRequireDefault(require("./Option"));
|
|
21
23
|
|
|
22
24
|
var _Icons = _interopRequireDefault(require("./Icons"));
|
|
@@ -47,6 +49,7 @@ var Listbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
47
49
|
searchable = _ref.searchable,
|
|
48
50
|
handleOptionOnClick = _ref.handleOptionOnClick;
|
|
49
51
|
var colorsTheme = (0, _useTheme["default"])();
|
|
52
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
50
53
|
var globalIndex = optional && !multiple ? 0 : -1; // index for options, starting from 0 to options.length -1
|
|
51
54
|
|
|
52
55
|
var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
|
|
@@ -103,7 +106,7 @@ var Listbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
103
106
|
role: "listbox",
|
|
104
107
|
"aria-multiselectable": multiple,
|
|
105
108
|
"aria-orientation": "vertical"
|
|
106
|
-
}, searchable && (options.length === 0 || !groupsHaveOptions(options)) ? /*#__PURE__*/_react["default"].createElement(OptionsSystemMessage, null, /*#__PURE__*/_react["default"].createElement(NoMatchesFoundIcon, null, _Icons["default"].searchOff),
|
|
109
|
+
}, 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"], {
|
|
107
110
|
key: "option-".concat(optionalItem.value),
|
|
108
111
|
id: "option-".concat(0),
|
|
109
112
|
option: optionalItem,
|
package/select/Select.js
CHANGED
|
@@ -23,6 +23,8 @@ 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");
|
|
@@ -39,10 +41,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
39
41
|
|
|
40
42
|
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
43
|
|
|
42
|
-
var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
|
|
43
|
-
return "This field is required. Please, enter a value.";
|
|
44
|
-
};
|
|
45
|
-
|
|
46
44
|
var groupsHaveOptions = function groupsHaveOptions(innerOptions) {
|
|
47
45
|
return innerOptions[0].hasOwnProperty("options") ? innerOptions[0].options ? innerOptions.some(function (groupOption) {
|
|
48
46
|
return groupOption.options.length > 0;
|
|
@@ -57,6 +55,10 @@ var filteredGroupsHaveOptions = function filteredGroupsHaveOptions(filteredOptio
|
|
|
57
55
|
}) : true;
|
|
58
56
|
};
|
|
59
57
|
|
|
58
|
+
var canOpenOptions = function canOpenOptions(options, disabled) {
|
|
59
|
+
return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions(options);
|
|
60
|
+
};
|
|
61
|
+
|
|
60
62
|
var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, searchValue) {
|
|
61
63
|
if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
|
|
62
64
|
if (options[0].options) return options.map(function (optionGroup) {
|
|
@@ -132,6 +134,10 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
|
|
|
132
134
|
};
|
|
133
135
|
};
|
|
134
136
|
|
|
137
|
+
var notOptionalCheck = function notOptionalCheck(value, multiple, optional) {
|
|
138
|
+
return !optional && (multiple ? value.length === 0 : value === "");
|
|
139
|
+
};
|
|
140
|
+
|
|
135
141
|
var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
136
142
|
var _selectedOption$label;
|
|
137
143
|
|
|
@@ -193,6 +199,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
193
199
|
var selectSearchInputRef = (0, _react.useRef)(null);
|
|
194
200
|
var selectOptionsListRef = (0, _react.useRef)(null);
|
|
195
201
|
var colorsTheme = (0, _useTheme["default"])();
|
|
202
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
196
203
|
var optionalItem = {
|
|
197
204
|
label: placeholder,
|
|
198
205
|
value: ""
|
|
@@ -210,20 +217,8 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
210
217
|
selectedOption = _useMemo.selectedOption,
|
|
211
218
|
singleSelectionIndex = _useMemo.singleSelectionIndex;
|
|
212
219
|
|
|
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
220
|
var openOptions = function openOptions() {
|
|
226
|
-
if (!isOpen &&
|
|
221
|
+
if (!isOpen && canOpenOptions(options, disabled)) changeIsOpen(true);
|
|
227
222
|
};
|
|
228
223
|
|
|
229
224
|
var closeOptions = function closeOptions() {
|
|
@@ -234,27 +229,21 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
234
229
|
};
|
|
235
230
|
|
|
236
231
|
var handleSelectChangeValue = function handleSelectChangeValue(newOption) {
|
|
232
|
+
var newValue;
|
|
233
|
+
|
|
237
234
|
if (multiple) {
|
|
238
|
-
|
|
239
|
-
if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) res = (value !== null && value !== void 0 ? value : innerValue).filter(function (optionVal) {
|
|
235
|
+
if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) newValue = (value !== null && value !== void 0 ? value : innerValue).filter(function (optionVal) {
|
|
240
236
|
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
|
-
}
|
|
237
|
+
});else newValue = [].concat((0, _toConsumableArray2["default"])(value !== null && value !== void 0 ? value : innerValue), [newOption.value]);
|
|
238
|
+
} else newValue = newOption.value;
|
|
239
|
+
|
|
240
|
+
value !== null && value !== void 0 ? value : setInnerValue(newValue);
|
|
241
|
+
notOptionalCheck(newValue, multiple, optional) ? onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
242
|
+
value: newValue,
|
|
243
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
244
|
+
}) : onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
245
|
+
value: newValue
|
|
246
|
+
});
|
|
258
247
|
};
|
|
259
248
|
|
|
260
249
|
var handleSelectOnClick = function handleSelectOnClick() {
|
|
@@ -275,11 +264,12 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
275
264
|
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
276
265
|
closeOptions();
|
|
277
266
|
setSearchValue("");
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
267
|
+
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
268
|
+
notOptionalCheck(currentValue, multiple, optional) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
269
|
+
value: currentValue,
|
|
270
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
271
|
+
}) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
272
|
+
value: currentValue
|
|
283
273
|
});
|
|
284
274
|
}
|
|
285
275
|
};
|
|
@@ -353,7 +343,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
353
343
|
value !== null && value !== void 0 ? value : setInnerValue([]);
|
|
354
344
|
!optional ? onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
355
345
|
value: [],
|
|
356
|
-
error:
|
|
346
|
+
error: translatedLabels.formFields.requiredValueErrorMessage
|
|
357
347
|
}) : onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
358
348
|
value: []
|
|
359
349
|
});
|
|
@@ -402,7 +392,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
402
392
|
selectContainerRef.current.focus();
|
|
403
393
|
},
|
|
404
394
|
helperText: helperText
|
|
405
|
-
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null,
|
|
395
|
+
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
406
396
|
disabled: disabled
|
|
407
397
|
}, helperText), /*#__PURE__*/_react["default"].createElement(Select, {
|
|
408
398
|
id: selectId,
|
|
@@ -434,8 +424,8 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
434
424
|
},
|
|
435
425
|
onClick: handleClearOptionsActionOnClick,
|
|
436
426
|
tabIndex: -1,
|
|
437
|
-
title:
|
|
438
|
-
"aria-label":
|
|
427
|
+
title: translatedLabels.select.actionClearSelectionTitle,
|
|
428
|
+
"aria-label": translatedLabels.select.actionClearSelectionTitle
|
|
439
429
|
}, _Icons["default"].clear)), /*#__PURE__*/_react["default"].createElement(SearchableValueContainer, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
440
430
|
name: name,
|
|
441
431
|
value: multiple ? (value !== null && value !== void 0 ? value : innerValue).join(",") : value !== null && value !== void 0 ? value : innerValue,
|
|
@@ -464,8 +454,8 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
464
454
|
},
|
|
465
455
|
onClick: handleClearSearchActionOnClick,
|
|
466
456
|
tabIndex: -1,
|
|
467
|
-
title:
|
|
468
|
-
"aria-label":
|
|
457
|
+
title: translatedLabels.select.actionClearSearchTitle,
|
|
458
|
+
"aria-label": translatedLabels.select.actionClearSearchTitle
|
|
469
459
|
}, _Icons["default"].clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
|
|
470
460
|
disabled: disabled
|
|
471
461
|
}, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown), isOpen && /*#__PURE__*/_react["default"].createElement(_Listbox["default"], {
|
|
@@ -371,7 +371,13 @@ const SearchableSelect = () => (
|
|
|
371
371
|
const SearchableWithValue = () => (
|
|
372
372
|
<ExampleContainer expanded>
|
|
373
373
|
<Title title="Searchable select with value" theme="light" level={4} />
|
|
374
|
-
<DxcSelect
|
|
374
|
+
<DxcSelect
|
|
375
|
+
label="Select Label"
|
|
376
|
+
searchable
|
|
377
|
+
defaultValue="1"
|
|
378
|
+
options={single_options}
|
|
379
|
+
placeholder="Choose an option"
|
|
380
|
+
/>
|
|
375
381
|
</ExampleContainer>
|
|
376
382
|
);
|
|
377
383
|
|
|
@@ -398,7 +404,13 @@ const DefaultGroupedOptionsSelect = () => (
|
|
|
398
404
|
const MultipleGroupedOptionsSelect = () => (
|
|
399
405
|
<ExampleContainer expanded>
|
|
400
406
|
<Title title="Grouped options multiple select" theme="light" level={4} />
|
|
401
|
-
<DxcSelect
|
|
407
|
+
<DxcSelect
|
|
408
|
+
label="Label"
|
|
409
|
+
options={group_options}
|
|
410
|
+
defaultValue={["0", "2"]}
|
|
411
|
+
multiple
|
|
412
|
+
placeholder="Choose an option"
|
|
413
|
+
/>
|
|
402
414
|
</ExampleContainer>
|
|
403
415
|
);
|
|
404
416
|
const RescaledIcons = () => (
|