@dxc-technology/halstack-react 0.0.0-b2237e2 → 0.0.0-b230d97
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.js +55 -50
- package/accordion/Accordion.js +117 -104
- package/accordion/Accordion.stories.tsx +103 -15
- package/accordion/Accordion.test.js +9 -10
- package/accordion/types.d.ts +5 -4
- package/accordion-group/AccordionGroup.js +1 -21
- package/accordion-group/AccordionGroup.stories.tsx +27 -1
- package/accordion-group/AccordionGroup.test.js +20 -45
- package/accordion-group/types.d.ts +10 -3
- package/alert/Alert.js +1 -1
- package/box/Box.js +1 -1
- package/box/types.d.ts +1 -0
- package/bulleted-list/types.d.ts +1 -1
- package/button/Button.js +50 -70
- package/button/Button.stories.tsx +159 -8
- package/button/types.d.ts +7 -7
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +92 -99
- package/checkbox/Checkbox.stories.tsx +131 -59
- package/checkbox/Checkbox.test.js +93 -16
- package/checkbox/types.d.ts +6 -2
- package/chip/Chip.js +16 -22
- package/chip/Chip.stories.tsx +96 -9
- package/chip/types.d.ts +1 -1
- package/common/variables.js +281 -259
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +134 -237
- package/date-input/DateInput.stories.tsx +137 -38
- 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 +52 -28
- package/dialog/Dialog.stories.tsx +57 -2
- package/dialog/Dialog.test.js +34 -4
- package/dialog/types.d.ts +3 -2
- 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 +504 -108
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +70 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +81 -0
- package/dropdown/types.d.ts +25 -5
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +177 -219
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +53 -12
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +38 -63
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.d.ts +1 -1
- package/flex/Flex.js +31 -19
- package/flex/types.d.ts +15 -4
- package/footer/Footer.stories.tsx +99 -1
- package/footer/types.d.ts +2 -1
- package/header/Header.js +87 -87
- package/header/Header.stories.tsx +127 -6
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/layout/ApplicationLayout.js +3 -3
- package/layout/ApplicationLayout.stories.tsx +1 -0
- package/link/Link.js +1 -1
- package/link/types.d.ts +1 -1
- package/number-input/NumberInput.test.js +43 -7
- package/package.json +16 -21
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +6 -12
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +18 -11
- package/password-input/PasswordInput.test.js +13 -12
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +56 -50
- package/progress-bar/ProgressBar.stories.jsx +36 -3
- package/progress-bar/ProgressBar.test.js +67 -22
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.js +11 -12
- package/quick-nav/QuickNav.stories.tsx +111 -19
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +43 -28
- package/radio-group/RadioGroup.js +24 -24
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +123 -96
- 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 +48 -107
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +40 -63
- package/resultsetTable/types.d.ts +2 -2
- package/select/Listbox.js +4 -10
- package/select/Option.js +11 -24
- package/select/Select.js +54 -50
- package/select/Select.stories.tsx +494 -149
- package/select/Select.test.js +338 -272
- package/select/types.d.ts +3 -5
- package/sidenav/Sidenav.js +8 -10
- package/sidenav/Sidenav.stories.tsx +148 -46
- package/sidenav/types.d.ts +1 -1
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +120 -95
- package/slider/Slider.stories.tsx +64 -1
- package/slider/Slider.test.js +121 -21
- package/slider/types.d.ts +6 -2
- package/spinner/Spinner.js +2 -2
- package/spinner/Spinner.stories.jsx +27 -1
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +135 -68
- package/switch/Switch.stories.tsx +41 -30
- package/switch/Switch.test.js +144 -17
- package/switch/types.d.ts +6 -2
- package/table/Table.js +1 -1
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +1 -1
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +133 -0
- package/tabs/Tabs.js +360 -104
- package/tabs/Tabs.stories.tsx +119 -5
- package/tabs/Tabs.test.js +217 -6
- package/tabs/types.d.ts +15 -5
- package/tabs-nav/NavTabs.js +5 -5
- package/tabs-nav/NavTabs.stories.tsx +8 -6
- package/tabs-nav/Tab.js +8 -12
- package/tabs-nav/types.d.ts +1 -1
- package/tag/Tag.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.js +38 -9
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +195 -292
- package/text-input/TextInput.stories.tsx +280 -185
- package/text-input/TextInput.test.js +737 -725
- package/text-input/types.d.ts +22 -3
- package/toggle-group/ToggleGroup.stories.tsx +42 -0
- package/toggle-group/types.d.ts +1 -1
- package/wizard/Wizard.stories.tsx +20 -0
- package/wizard/types.d.ts +1 -1
- package/common/RequiredComponent.js +0 -32
package/dropdown/Dropdown.js
CHANGED
|
@@ -19,30 +19,72 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
21
|
|
|
22
|
-
var _Popper = _interopRequireDefault(require("@material-ui/core/Popper"));
|
|
23
|
-
|
|
24
|
-
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
25
|
-
|
|
26
|
-
var _core = require("@material-ui/core");
|
|
27
|
-
|
|
28
|
-
var _Grow = _interopRequireDefault(require("@material-ui/core/Grow"));
|
|
29
|
-
|
|
30
|
-
var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
|
|
31
|
-
|
|
32
|
-
var _MenuList = _interopRequireDefault(require("@material-ui/core/MenuList"));
|
|
33
|
-
|
|
34
22
|
var _variables = require("../common/variables.js");
|
|
35
23
|
|
|
36
24
|
var _utils = require("../common/utils.js");
|
|
37
25
|
|
|
38
26
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
39
27
|
|
|
40
|
-
var
|
|
28
|
+
var _uuid = require("uuid");
|
|
29
|
+
|
|
30
|
+
var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
|
|
31
|
+
|
|
32
|
+
var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
|
|
33
|
+
|
|
34
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
41
35
|
|
|
42
36
|
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); }
|
|
43
37
|
|
|
44
38
|
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; }
|
|
45
39
|
|
|
40
|
+
var upArrowIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
41
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
42
|
+
width: "24",
|
|
43
|
+
height: "24",
|
|
44
|
+
viewBox: "0 0 24 24",
|
|
45
|
+
fill: "currentColor"
|
|
46
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
47
|
+
d: "M7 14l5-5 5 5z"
|
|
48
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
49
|
+
d: "M0 0h24v24H0z",
|
|
50
|
+
fill: "none"
|
|
51
|
+
}));
|
|
52
|
+
|
|
53
|
+
var downArrowIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
54
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
55
|
+
width: "24",
|
|
56
|
+
height: "24",
|
|
57
|
+
viewBox: "0 0 24 24",
|
|
58
|
+
fill: "currentColor"
|
|
59
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
60
|
+
d: "M7 10l5 5 5-5z"
|
|
61
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
62
|
+
d: "M0 0h24v24H0z",
|
|
63
|
+
fill: "none"
|
|
64
|
+
}));
|
|
65
|
+
|
|
66
|
+
var useWidth = function useWidth(target) {
|
|
67
|
+
var _useState = (0, _react.useState)(0),
|
|
68
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
69
|
+
width = _useState2[0],
|
|
70
|
+
setWidth = _useState2[1];
|
|
71
|
+
|
|
72
|
+
(0, _react.useEffect)(function () {
|
|
73
|
+
if (target != null) {
|
|
74
|
+
setWidth(target.getBoundingClientRect().width);
|
|
75
|
+
var triggerObserver = new ResizeObserver(function (entries) {
|
|
76
|
+
var rect = entries[0].target.getBoundingClientRect();
|
|
77
|
+
setWidth(rect === null || rect === void 0 ? void 0 : rect.width);
|
|
78
|
+
});
|
|
79
|
+
triggerObserver.observe(target);
|
|
80
|
+
return function () {
|
|
81
|
+
triggerObserver.unobserve(target);
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}, [target]);
|
|
85
|
+
return width;
|
|
86
|
+
};
|
|
87
|
+
|
|
46
88
|
var DxcDropdown = function DxcDropdown(_ref) {
|
|
47
89
|
var options = _ref.options,
|
|
48
90
|
_ref$optionsIconPosit = _ref.optionsIconPosition,
|
|
@@ -54,173 +96,206 @@ var DxcDropdown = function DxcDropdown(_ref) {
|
|
|
54
96
|
label = _ref$label === void 0 ? "" : _ref$label,
|
|
55
97
|
_ref$caretHidden = _ref.caretHidden,
|
|
56
98
|
caretHidden = _ref$caretHidden === void 0 ? false : _ref$caretHidden,
|
|
57
|
-
|
|
99
|
+
_ref$disabled = _ref.disabled,
|
|
100
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
58
101
|
_ref$expandOnHover = _ref.expandOnHover,
|
|
59
102
|
expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover,
|
|
103
|
+
onSelectOption = _ref.onSelectOption,
|
|
60
104
|
margin = _ref.margin,
|
|
61
105
|
_ref$size = _ref.size,
|
|
62
106
|
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
63
107
|
_ref$tabIndex = _ref.tabIndex,
|
|
64
|
-
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex
|
|
65
|
-
_ref$disabled = _ref.disabled,
|
|
66
|
-
disabled = _ref$disabled === void 0 ? false : _ref$disabled;
|
|
108
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
67
109
|
|
|
68
|
-
var
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
110
|
+
var _useState3 = (0, _react.useState)("trigger-".concat((0, _uuid.v4)())),
|
|
111
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
|
|
112
|
+
triggerId = _useState4[0];
|
|
113
|
+
|
|
114
|
+
var menuId = "menu-".concat(triggerId);
|
|
115
|
+
|
|
116
|
+
var _useState5 = (0, _react.useState)(false),
|
|
117
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
118
|
+
isOpen = _useState6[0],
|
|
119
|
+
changeIsOpen = _useState6[1];
|
|
120
|
+
|
|
121
|
+
var _useState7 = (0, _react.useState)(0),
|
|
122
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
123
|
+
visualFocusIndex = _useState8[0],
|
|
124
|
+
setVisualFocusIndex = _useState8[1];
|
|
72
125
|
|
|
73
126
|
var colorsTheme = (0, _useTheme["default"])();
|
|
74
|
-
var
|
|
127
|
+
var triggerRef = (0, _react.useRef)(null);
|
|
128
|
+
var menuRef = (0, _react.useRef)(null);
|
|
129
|
+
var width = useWidth(triggerRef.current);
|
|
75
130
|
|
|
76
|
-
var
|
|
77
|
-
|
|
131
|
+
var handleOnOpenMenu = function handleOnOpenMenu() {
|
|
132
|
+
changeIsOpen(true);
|
|
78
133
|
};
|
|
79
134
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
135
|
+
var handleOnCloseMenu = function handleOnCloseMenu() {
|
|
136
|
+
changeIsOpen(false);
|
|
137
|
+
setVisualFocusIndex(0);
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
var handleMenuItemOnClick = (0, _react.useCallback)(function (value) {
|
|
141
|
+
var _triggerRef$current;
|
|
142
|
+
|
|
143
|
+
onSelectOption(value);
|
|
144
|
+
handleOnCloseMenu();
|
|
145
|
+
(_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.focus();
|
|
146
|
+
}, [onSelectOption]);
|
|
147
|
+
|
|
148
|
+
var handleOnBlur = function handleOnBlur(event) {
|
|
149
|
+
!event.currentTarget.contains(event.relatedTarget) && handleOnCloseMenu();
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
var handleTriggerOnClick = function handleTriggerOnClick() {
|
|
153
|
+
changeIsOpen(function (isOpen) {
|
|
154
|
+
return !isOpen;
|
|
155
|
+
});
|
|
156
|
+
};
|
|
85
157
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
function handleClose() {
|
|
106
|
-
setAnchorEl(null);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
var handleCloseOver = expandOnHover ? handleClose : undefined;
|
|
110
|
-
|
|
111
|
-
var UpArrowIcon = function UpArrowIcon() {
|
|
112
|
-
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
113
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
114
|
-
width: "24",
|
|
115
|
-
height: "24",
|
|
116
|
-
viewBox: "0 0 24 24",
|
|
117
|
-
fill: "currentColor"
|
|
118
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
119
|
-
d: "M7 14l5-5 5 5z"
|
|
120
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
121
|
-
d: "M0 0h24v24H0z",
|
|
122
|
-
fill: "none"
|
|
123
|
-
}));
|
|
158
|
+
var handleTriggerOnKeyDown = function handleTriggerOnKeyDown(event) {
|
|
159
|
+
switch (event.key) {
|
|
160
|
+
case "Up":
|
|
161
|
+
case "ArrowUp":
|
|
162
|
+
event.preventDefault();
|
|
163
|
+
setVisualFocusIndex(options.length - 1);
|
|
164
|
+
handleOnOpenMenu();
|
|
165
|
+
break;
|
|
166
|
+
|
|
167
|
+
case " ":
|
|
168
|
+
case "Down":
|
|
169
|
+
case "ArrowDown":
|
|
170
|
+
case "Enter":
|
|
171
|
+
event.preventDefault();
|
|
172
|
+
handleOnOpenMenu();
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
124
175
|
};
|
|
125
176
|
|
|
126
|
-
var
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
viewBox: "0 0 24 24",
|
|
132
|
-
fill: "currentColor"
|
|
133
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
134
|
-
d: "M7 10l5 5 5-5z"
|
|
135
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
136
|
-
d: "M0 0h24v24H0z",
|
|
137
|
-
fill: "none"
|
|
138
|
-
}));
|
|
177
|
+
var setPreviousIndexFocus = function setPreviousIndexFocus() {
|
|
178
|
+
setVisualFocusIndex(function (currentFocusIndex) {
|
|
179
|
+
var index = currentFocusIndex === 0 ? options.length - 1 : currentFocusIndex - 1;
|
|
180
|
+
return index;
|
|
181
|
+
});
|
|
139
182
|
};
|
|
140
183
|
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
184
|
+
var setNextIndexFocus = function setNextIndexFocus() {
|
|
185
|
+
setVisualFocusIndex(function (currentFocusIndex) {
|
|
186
|
+
var index = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;
|
|
187
|
+
return index;
|
|
188
|
+
});
|
|
189
|
+
};
|
|
145
190
|
|
|
191
|
+
var handleMenuOnKeyDown = (0, _react.useCallback)(function (event) {
|
|
192
|
+
var _triggerRef$current2, _triggerRef$current3;
|
|
193
|
+
|
|
194
|
+
switch (event.key) {
|
|
195
|
+
case "Up":
|
|
196
|
+
case "ArrowUp":
|
|
197
|
+
event.preventDefault();
|
|
198
|
+
setPreviousIndexFocus();
|
|
199
|
+
break;
|
|
200
|
+
|
|
201
|
+
case "Down":
|
|
202
|
+
case "ArrowDown":
|
|
203
|
+
event.preventDefault();
|
|
204
|
+
setNextIndexFocus();
|
|
205
|
+
break;
|
|
206
|
+
|
|
207
|
+
case " ":
|
|
208
|
+
case "Enter":
|
|
209
|
+
event.preventDefault();
|
|
210
|
+
handleMenuItemOnClick(options[visualFocusIndex].value);
|
|
211
|
+
break;
|
|
212
|
+
|
|
213
|
+
case "Esc":
|
|
214
|
+
case "Escape":
|
|
215
|
+
event.preventDefault();
|
|
216
|
+
handleOnCloseMenu();
|
|
217
|
+
(_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.focus();
|
|
218
|
+
break;
|
|
219
|
+
|
|
220
|
+
case "Home":
|
|
221
|
+
case "PageUp":
|
|
222
|
+
event.preventDefault();
|
|
223
|
+
setVisualFocusIndex(0);
|
|
224
|
+
break;
|
|
225
|
+
|
|
226
|
+
case "End":
|
|
227
|
+
case "PageDown":
|
|
228
|
+
event.preventDefault();
|
|
229
|
+
setVisualFocusIndex(options.length - 1);
|
|
230
|
+
break;
|
|
231
|
+
|
|
232
|
+
case "Tab":
|
|
233
|
+
handleOnCloseMenu();
|
|
234
|
+
(_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : _triggerRef$current3.focus();
|
|
235
|
+
break;
|
|
236
|
+
}
|
|
237
|
+
}, [onSelectOption, visualFocusIndex, options]);
|
|
238
|
+
(0, _react.useLayoutEffect)(function () {
|
|
239
|
+
var _menuRef$current, _visualFocusedMenuIte;
|
|
240
|
+
|
|
241
|
+
var visualFocusedMenuItem = menuRef === null || menuRef === void 0 ? void 0 : (_menuRef$current = menuRef.current) === null || _menuRef$current === void 0 ? void 0 : _menuRef$current.querySelectorAll("[role='menuitem']")[visualFocusIndex];
|
|
242
|
+
visualFocusedMenuItem === null || visualFocusedMenuItem === void 0 ? void 0 : (_visualFocusedMenuIte = visualFocusedMenuItem.scrollIntoView) === null || _visualFocusedMenuIte === void 0 ? void 0 : _visualFocusedMenuIte.call(visualFocusedMenuItem, {
|
|
243
|
+
block: "nearest",
|
|
244
|
+
inline: "start"
|
|
245
|
+
});
|
|
246
|
+
}, [visualFocusIndex]);
|
|
146
247
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
147
248
|
theme: colorsTheme.dropdown
|
|
148
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
249
|
+
}, /*#__PURE__*/_react["default"].createElement(DropdownContainer, {
|
|
250
|
+
onMouseEnter: !disabled && expandOnHover ? handleOnOpenMenu : undefined,
|
|
251
|
+
onMouseLeave: !disabled && expandOnHover ? handleOnCloseMenu : undefined,
|
|
252
|
+
onBlur: !disabled ? handleOnBlur : undefined,
|
|
149
253
|
margin: margin,
|
|
150
|
-
size: size
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
onBlur: handleCloseOver
|
|
254
|
+
size: size
|
|
255
|
+
}, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
|
|
256
|
+
open: isOpen
|
|
257
|
+
}, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
|
|
258
|
+
asChild: true,
|
|
259
|
+
type: undefined
|
|
157
260
|
}, /*#__PURE__*/_react["default"].createElement(DropdownTrigger, {
|
|
158
|
-
|
|
159
|
-
|
|
261
|
+
onClick: handleTriggerOnClick,
|
|
262
|
+
onKeyDown: handleTriggerOnKeyDown,
|
|
263
|
+
onBlur: function onBlur(event) {
|
|
264
|
+
event.stopPropagation();
|
|
265
|
+
},
|
|
160
266
|
disabled: disabled,
|
|
161
267
|
label: label,
|
|
162
|
-
caretHidden: caretHidden,
|
|
163
268
|
margin: margin,
|
|
164
269
|
size: size,
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
disabled: disabled
|
|
173
|
-
|
|
270
|
+
id: triggerId,
|
|
271
|
+
"aria-haspopup": "true",
|
|
272
|
+
"aria-controls": menuId,
|
|
273
|
+
"aria-expanded": isOpen ? true : undefined,
|
|
274
|
+
tabIndex: tabIndex,
|
|
275
|
+
ref: triggerRef
|
|
276
|
+
}, /*#__PURE__*/_react["default"].createElement(DropdownTriggerContent, null, label && iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(DropdownTriggerIcon, {
|
|
277
|
+
disabled: disabled,
|
|
278
|
+
role: typeof icon === "string" ? undefined : "img"
|
|
279
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
174
280
|
src: icon
|
|
175
|
-
}) : icon), iconPosition === "before" &&
|
|
176
|
-
caretHidden: caretHidden,
|
|
281
|
+
}) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label)), !caretHidden && /*#__PURE__*/_react["default"].createElement(CaretIcon, {
|
|
177
282
|
disabled: disabled
|
|
178
|
-
},
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
283
|
+
}, isOpen ? upArrowIcon : downArrowIcon))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
|
|
284
|
+
sideOffset: 1,
|
|
285
|
+
asChild: true
|
|
286
|
+
}, /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
|
|
287
|
+
id: menuId,
|
|
288
|
+
dropdownTriggerId: triggerId,
|
|
289
|
+
options: options,
|
|
290
|
+
iconsPosition: optionsIconPosition,
|
|
291
|
+
visualFocusIndex: visualFocusIndex,
|
|
292
|
+
menuItemOnClick: handleMenuItemOnClick,
|
|
293
|
+
onKeyDown: handleMenuOnKeyDown,
|
|
294
|
+
styles: {
|
|
295
|
+
width: width
|
|
190
296
|
},
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
role: undefined,
|
|
194
|
-
transition: true,
|
|
195
|
-
disablePortal: true,
|
|
196
|
-
placement: "bottom-start"
|
|
197
|
-
}, function (_ref2) {
|
|
198
|
-
var TransitionProps = _ref2.TransitionProps;
|
|
199
|
-
return /*#__PURE__*/_react["default"].createElement(_Grow["default"], TransitionProps, /*#__PURE__*/_react["default"].createElement(_Paper["default"], null, /*#__PURE__*/_react["default"].createElement(_core.ClickAwayListener, {
|
|
200
|
-
onClickAway: handleClose
|
|
201
|
-
}, /*#__PURE__*/_react["default"].createElement(_MenuList["default"], {
|
|
202
|
-
autoFocusItem: Boolean(anchorEl),
|
|
203
|
-
id: "menu-list-grow"
|
|
204
|
-
}, options.map(function (option) {
|
|
205
|
-
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
206
|
-
key: option.value,
|
|
207
|
-
value: option.value,
|
|
208
|
-
disableRipple: true,
|
|
209
|
-
onClick: function onClick(event) {
|
|
210
|
-
return handleMenuItemClick(option);
|
|
211
|
-
}
|
|
212
|
-
}, optionsIconPosition === "after" && /*#__PURE__*/_react["default"].createElement("span", {
|
|
213
|
-
className: "optionLabel"
|
|
214
|
-
}, option.label), option.icon && /*#__PURE__*/_react["default"].createElement(ListIconContainer, {
|
|
215
|
-
label: option.label,
|
|
216
|
-
iconPosition: optionsIconPosition
|
|
217
|
-
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(ListIcon, {
|
|
218
|
-
src: option.icon
|
|
219
|
-
}) : option.icon), optionsIconPosition === "before" && /*#__PURE__*/_react["default"].createElement("span", {
|
|
220
|
-
className: "optionLabel"
|
|
221
|
-
}, option.label));
|
|
222
|
-
})))));
|
|
223
|
-
}))));
|
|
297
|
+
ref: menuRef
|
|
298
|
+
})))));
|
|
224
299
|
};
|
|
225
300
|
|
|
226
301
|
var sizes = {
|
|
@@ -228,18 +303,14 @@ var sizes = {
|
|
|
228
303
|
medium: "240px",
|
|
229
304
|
large: "480px",
|
|
230
305
|
fillParent: "100%",
|
|
231
|
-
fitContent: "
|
|
306
|
+
fitContent: "fit-content"
|
|
232
307
|
};
|
|
233
308
|
|
|
234
309
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
235
|
-
|
|
236
|
-
return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
return sizes[size];
|
|
310
|
+
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
240
311
|
};
|
|
241
312
|
|
|
242
|
-
var
|
|
313
|
+
var DropdownContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-block;\n width: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
243
314
|
return calculateWidth(props.margin, props.size);
|
|
244
315
|
}, function (props) {
|
|
245
316
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
@@ -253,64 +324,10 @@ var DXCDropdownContainer = _styledComponents["default"].div(_templateObject || (
|
|
|
253
324
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
254
325
|
});
|
|
255
326
|
|
|
256
|
-
var
|
|
257
|
-
return
|
|
258
|
-
}, function (props) {
|
|
259
|
-
return props.theme.optionPaddingTop;
|
|
260
|
-
}, function (props) {
|
|
261
|
-
return props.theme.optionPaddingBottom;
|
|
262
|
-
}, function (props) {
|
|
263
|
-
return props.theme.optionPaddingLeft;
|
|
264
|
-
}, function (props) {
|
|
265
|
-
return props.theme.optionPaddingRight;
|
|
266
|
-
}, function (props) {
|
|
267
|
-
return "".concat(props.width, "px");
|
|
268
|
-
}, function (props) {
|
|
269
|
-
return props.theme.borderThickness;
|
|
270
|
-
}, function (props) {
|
|
271
|
-
return props.theme.borderStyle;
|
|
272
|
-
}, function (props) {
|
|
273
|
-
return props.theme.borderColor;
|
|
274
|
-
}, function (props) {
|
|
275
|
-
return props.theme.borderRadius;
|
|
276
|
-
}, function (props) {
|
|
277
|
-
return props.theme.borderRadius;
|
|
278
|
-
}, function (props) {
|
|
279
|
-
return props.theme.scrollBarTrackColor;
|
|
280
|
-
}, function (props) {
|
|
281
|
-
return props.theme.scrollBarThumbColor;
|
|
282
|
-
}, function (props) {
|
|
283
|
-
return props.theme.optionBackgroundColor;
|
|
284
|
-
}, function (props) {
|
|
285
|
-
return props.theme.optionFontFamily;
|
|
286
|
-
}, function (props) {
|
|
287
|
-
return props.theme.optionFontSize;
|
|
288
|
-
}, function (props) {
|
|
289
|
-
return props.theme.optionFontStyle;
|
|
290
|
-
}, function (props) {
|
|
291
|
-
return props.theme.optionFontWeight;
|
|
292
|
-
}, function (props) {
|
|
293
|
-
return props.theme.optionFontColor;
|
|
294
|
-
}, function (props) {
|
|
295
|
-
return props.theme.focusColor;
|
|
296
|
-
}, function (props) {
|
|
297
|
-
return props.theme.hoverOptionBackgroundColor;
|
|
298
|
-
}, function (props) {
|
|
299
|
-
return props.theme.activeOptionBackgroundColor;
|
|
300
|
-
}, function (props) {
|
|
301
|
-
return props.theme.focusColor;
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n height: auto;\n min-height: 40px;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n min-width: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n background-color: ", ";\n color: ", ";\n border-bottom-right-radius: ", ";\n border-bottom-left-radius: ", ";\n\n ", ";\n"])), function (props) {
|
|
305
|
-
return props.disabled ? "not-allowed" : "pointer";
|
|
306
|
-
}, function (props) {
|
|
307
|
-
return props.theme.buttonFontFamily;
|
|
308
|
-
}, function (props) {
|
|
309
|
-
return props.theme.buttonFontSize;
|
|
310
|
-
}, function (props) {
|
|
311
|
-
return props.theme.buttonFontStyle;
|
|
327
|
+
var DropdownTrigger = _styledComponents["default"].button(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: ", ";\n width: 100%;\n min-height: 40px;\n min-width: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n background-color: ", ";\n color: ", ";\n cursor: ", ";\n\n ", ";\n"])), function (props) {
|
|
328
|
+
return props.theme.caretIconSpacing;
|
|
312
329
|
}, function (props) {
|
|
313
|
-
return props.
|
|
330
|
+
return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
|
|
314
331
|
}, function (props) {
|
|
315
332
|
return props.theme.borderRadius;
|
|
316
333
|
}, function (props) {
|
|
@@ -319,8 +336,6 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
|
|
|
319
336
|
return props.theme.borderStyle;
|
|
320
337
|
}, function (props) {
|
|
321
338
|
return props.disabled ? props.theme.disabledBorderColor : props.theme.borderColor;
|
|
322
|
-
}, function (props) {
|
|
323
|
-
return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
|
|
324
339
|
}, function (props) {
|
|
325
340
|
return props.theme.buttonPaddingTop;
|
|
326
341
|
}, function (props) {
|
|
@@ -334,52 +349,34 @@ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_
|
|
|
334
349
|
}, function (props) {
|
|
335
350
|
return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
|
|
336
351
|
}, function (props) {
|
|
337
|
-
return props.
|
|
338
|
-
}, function (props) {
|
|
339
|
-
return props.opened ? "0px" : props.theme.borderRadius;
|
|
352
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
340
353
|
}, function (props) {
|
|
341
|
-
return !props.disabled && "
|
|
354
|
+
return !props.disabled && "\n &:focus {\n outline: ".concat(props.theme.focusColor, " solid 2px;\n outline-offset: -2px;\n }\n &:hover {\n background-color: ").concat(props.theme.hoverButtonBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeButtonBackgroundColor, ";\n }\n ");
|
|
342
355
|
});
|
|
343
356
|
|
|
344
|
-
var
|
|
345
|
-
|
|
346
|
-
var DropdownTriggerContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n margin-left: 0px;\n margin-right: 0px;\n width: ", ";\n white-space: nowrap;\n"])), function (props) {
|
|
347
|
-
return props.caretHidden ? "100%" : "calc(100% - 36px)";
|
|
357
|
+
var DropdownTriggerContent = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n gap: ", ";\n margin-left: 0px;\n margin-right: 0px;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n"])), function (props) {
|
|
358
|
+
return props.theme.buttonIconSpacing;
|
|
348
359
|
});
|
|
349
360
|
|
|
350
|
-
var
|
|
351
|
-
|
|
352
|
-
var ButtonIconContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n color: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
353
|
-
return props.theme.buttonIconSize;
|
|
354
|
-
}, function (props) {
|
|
355
|
-
return props.theme.buttonIconSize;
|
|
361
|
+
var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n"])), function (props) {
|
|
362
|
+
return props.theme.buttonFontFamily;
|
|
356
363
|
}, function (props) {
|
|
357
|
-
return props.
|
|
364
|
+
return props.theme.buttonFontSize;
|
|
358
365
|
}, function (props) {
|
|
359
|
-
return props.
|
|
366
|
+
return props.theme.buttonFontStyle;
|
|
360
367
|
}, function (props) {
|
|
361
|
-
return props.
|
|
368
|
+
return props.theme.buttonFontWeight;
|
|
362
369
|
});
|
|
363
370
|
|
|
364
|
-
var
|
|
365
|
-
|
|
366
|
-
var ListIconContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n color: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
367
|
-
return props.theme.optionIconSize;
|
|
368
|
-
}, function (props) {
|
|
369
|
-
return props.theme.optionIconSize;
|
|
370
|
-
}, function (props) {
|
|
371
|
-
return props.iconPosition === "after" && props.label !== "" && props.theme.optionIconSpacing || "0px";
|
|
371
|
+
var DropdownTriggerIcon = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
|
|
372
|
+
return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
|
|
372
373
|
}, function (props) {
|
|
373
|
-
return props.
|
|
374
|
+
return props.theme.buttonIconSize;
|
|
374
375
|
}, function (props) {
|
|
375
|
-
return props.theme.
|
|
376
|
+
return props.theme.buttonIconSize;
|
|
376
377
|
});
|
|
377
378
|
|
|
378
|
-
var
|
|
379
|
-
return props.caretHidden ? "none" : "inline-flex";
|
|
380
|
-
}, function (props) {
|
|
381
|
-
return props.theme.caretIconSpacing;
|
|
382
|
-
}, function (props) {
|
|
379
|
+
var CaretIcon = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
|
|
383
380
|
return props.disabled ? props.theme.disabledColor : props.theme.caretIconColor;
|
|
384
381
|
}, function (props) {
|
|
385
382
|
return props.theme.caretIconSize;
|