@dxc-technology/halstack-react 0.0.0-74c93cf → 0.0.0-74dd241
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BackgroundColorContext.js +1 -1
- package/HalstackContext.d.ts +2 -5
- package/HalstackContext.js +6 -6
- package/accordion/Accordion.accessibility.test.d.ts +1 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.js +9 -10
- package/accordion/Accordion.stories.tsx +4 -15
- package/accordion/Accordion.test.d.ts +1 -0
- package/accordion/Accordion.test.js +3 -3
- package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
- package/accordion-group/AccordionGroup.accessibility.test.js +82 -0
- package/accordion-group/AccordionGroup.js +1 -1
- package/accordion-group/AccordionGroup.stories.tsx +23 -23
- package/accordion-group/AccordionGroup.test.d.ts +1 -0
- package/accordion-group/AccordionGroup.test.js +5 -9
- package/accordion-group/AccordionGroupAccordion.js +1 -1
- package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.test.d.ts +1 -0
- package/action-icon/ActionIcon.test.js +1 -1
- package/alert/Alert.accessibility.test.d.ts +1 -0
- package/alert/Alert.accessibility.test.js +95 -0
- package/alert/Alert.js +21 -72
- package/alert/Alert.test.d.ts +1 -0
- package/alert/Alert.test.js +1 -1
- package/badge/Badge.accessibility.test.d.ts +1 -0
- package/badge/Badge.accessibility.test.js +129 -0
- package/badge/Badge.js +6 -4
- package/badge/Badge.stories.tsx +11 -11
- package/badge/Badge.test.d.ts +1 -0
- package/badge/Badge.test.js +2 -2
- package/badge/types.d.ts +1 -1
- package/box/Box.accessibility.test.d.ts +1 -0
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.js +1 -1
- package/box/Box.test.d.ts +1 -0
- package/box/Box.test.js +1 -1
- package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
- package/breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/breadcrumbs/Breadcrumbs.js +79 -0
- package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
- package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.test.js +168 -0
- package/breadcrumbs/Item.d.ts +4 -0
- package/breadcrumbs/Item.js +52 -0
- package/breadcrumbs/dropdownTheme.d.ts +53 -0
- package/breadcrumbs/dropdownTheme.js +62 -0
- package/breadcrumbs/types.d.ts +16 -0
- package/breadcrumbs/types.js +5 -0
- package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
- package/bulleted-list/BulletedList.accessibility.test.js +119 -0
- package/bulleted-list/BulletedList.js +7 -4
- package/bulleted-list/BulletedList.stories.tsx +1 -1
- package/button/Button.accessibility.test.d.ts +1 -0
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.js +1 -1
- package/button/Button.stories.tsx +3 -4
- package/button/Button.test.d.ts +1 -0
- package/button/Button.test.js +1 -1
- package/card/Card.accessibility.test.d.ts +1 -0
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.js +3 -2
- package/card/Card.stories.tsx +1 -1
- package/card/Card.test.d.ts +1 -0
- package/card/Card.test.js +1 -1
- package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.js +10 -13
- package/checkbox/Checkbox.test.d.ts +1 -0
- package/checkbox/Checkbox.test.js +1 -1
- package/chip/Chip.accessibility.test.d.ts +1 -0
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +11 -6
- package/chip/Chip.stories.tsx +6 -25
- package/chip/Chip.test.d.ts +1 -0
- package/chip/Chip.test.js +5 -5
- package/common/coreTokens.js +3 -3
- package/common/variables.d.ts +2 -5
- package/common/variables.js +68 -71
- package/container/Container.stories.tsx +3 -3
- package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
- package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
- package/contextual-menu/ContextualMenu.d.ts +3 -5
- package/contextual-menu/ContextualMenu.js +89 -52
- package/contextual-menu/ContextualMenu.stories.tsx +115 -74
- package/contextual-menu/ContextualMenu.test.d.ts +1 -0
- package/contextual-menu/ContextualMenu.test.js +200 -24
- package/contextual-menu/GroupItem.d.ts +4 -0
- package/contextual-menu/GroupItem.js +67 -0
- package/contextual-menu/ItemAction.d.ts +4 -0
- package/contextual-menu/ItemAction.js +50 -0
- package/contextual-menu/MenuItem.d.ts +4 -0
- package/contextual-menu/MenuItem.js +29 -0
- package/contextual-menu/SingleItem.d.ts +4 -0
- package/contextual-menu/SingleItem.js +38 -0
- package/contextual-menu/types.d.ts +50 -11
- package/date-input/Calendar.js +47 -31
- package/date-input/DateInput.accessibility.test.d.ts +1 -0
- package/date-input/DateInput.accessibility.test.js +229 -0
- package/date-input/DateInput.js +28 -23
- package/date-input/DateInput.stories.tsx +18 -12
- package/date-input/DateInput.test.d.ts +1 -0
- package/date-input/DateInput.test.js +39 -39
- package/date-input/DatePicker.js +13 -7
- package/date-input/YearPicker.js +10 -5
- package/dialog/Dialog.accessibility.test.d.ts +1 -0
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.js +9 -20
- package/dialog/Dialog.stories.tsx +8 -4
- package/dialog/Dialog.test.d.ts +1 -0
- package/dialog/Dialog.test.js +112 -49
- package/divider/Divider.accessibility.test.d.ts +1 -0
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.test.d.ts +1 -0
- package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
- package/dropdown/Dropdown.accessibility.test.js +183 -0
- package/dropdown/Dropdown.js +16 -15
- package/dropdown/Dropdown.stories.tsx +11 -11
- package/dropdown/Dropdown.test.d.ts +1 -0
- package/dropdown/Dropdown.test.js +101 -72
- package/dropdown/DropdownMenu.js +4 -4
- package/dropdown/DropdownMenuItem.js +2 -1
- package/file-input/FileInput.accessibility.test.d.ts +1 -0
- package/file-input/FileInput.accessibility.test.js +167 -0
- package/file-input/FileInput.js +6 -47
- package/file-input/FileInput.test.d.ts +1 -0
- package/file-input/FileInput.test.js +51 -106
- package/file-input/FileItem.js +18 -28
- package/file-input/types.d.ts +0 -4
- package/footer/Footer.accessibility.test.d.ts +1 -0
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.js +8 -6
- package/footer/Footer.stories.tsx +40 -3
- package/footer/Footer.test.d.ts +1 -0
- package/footer/Footer.test.js +1 -1
- package/footer/Icons.js +2 -30
- package/footer/types.d.ts +1 -1
- package/grid/Grid.stories.tsx +3 -1
- package/header/Header.accessibility.test.d.ts +1 -0
- package/header/Header.accessibility.test.js +94 -0
- package/header/Header.js +12 -22
- package/header/Header.stories.tsx +17 -1
- package/header/Header.test.d.ts +1 -0
- package/header/Header.test.js +1 -1
- package/header/Icons.js +1 -6
- package/heading/Heading.accessibility.test.d.ts +1 -0
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.d.ts +1 -0
- package/heading/Heading.test.js +1 -14
- package/icon/Icon.accessibility.test.d.ts +1 -0
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.js +1 -1
- package/image/Image.accessibility.test.d.ts +1 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.js +1 -1
- package/layout/ApplicationLayout.js +9 -6
- package/layout/Icons.d.ts +0 -1
- package/layout/Icons.js +1 -11
- package/link/Link.accessibility.test.d.ts +1 -0
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.js +8 -6
- package/link/Link.stories.tsx +4 -4
- package/link/Link.test.d.ts +1 -0
- package/link/Link.test.js +1 -1
- package/link/types.d.ts +1 -1
- package/main.d.ts +2 -1
- package/main.js +8 -1
- package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.js +19 -4
- package/nav-tabs/NavTabs.stories.tsx +41 -23
- package/nav-tabs/NavTabs.test.d.ts +1 -0
- package/nav-tabs/NavTabs.test.js +10 -9
- package/nav-tabs/Tab.js +17 -18
- package/nav-tabs/types.d.ts +1 -1
- package/number-input/NumberInput.accessibility.test.d.ts +1 -0
- package/number-input/NumberInput.accessibility.test.js +227 -0
- package/number-input/NumberInput.js +1 -1
- package/number-input/NumberInput.stories.tsx +2 -16
- package/number-input/NumberInput.test.d.ts +1 -0
- package/number-input/NumberInput.test.js +6 -7
- package/package.json +31 -27
- package/paginator/Paginator.accessibility.test.d.ts +1 -0
- package/paginator/Paginator.accessibility.test.js +78 -0
- package/paginator/Paginator.js +13 -10
- package/paginator/Paginator.test.d.ts +1 -0
- package/paginator/Paginator.test.js +2 -3
- package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
- package/password-input/PasswordInput.accessibility.test.js +152 -0
- package/password-input/PasswordInput.js +7 -7
- package/password-input/PasswordInput.stories.tsx +1 -1
- package/password-input/PasswordInput.test.d.ts +1 -0
- package/password-input/PasswordInput.test.js +6 -7
- package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +6 -4
- package/progress-bar/ProgressBar.test.d.ts +1 -0
- package/progress-bar/ProgressBar.test.js +1 -1
- package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +1 -1
- package/radio-group/Radio.js +6 -9
- package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +14 -16
- package/radio-group/RadioGroup.test.d.ts +1 -0
- package/radio-group/RadioGroup.test.js +3 -5
- package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +284 -0
- package/resultset-table/ResultsetTable.js +3 -2
- package/resultset-table/ResultsetTable.stories.tsx +13 -1
- package/resultset-table/ResultsetTable.test.d.ts +1 -0
- package/resultset-table/ResultsetTable.test.js +2 -4
- package/select/Listbox.js +24 -16
- package/select/Option.js +12 -10
- package/select/Select.accessibility.test.d.ts +1 -0
- package/select/Select.accessibility.test.js +227 -0
- package/select/Select.js +38 -28
- package/select/Select.stories.tsx +60 -112
- package/select/Select.test.d.ts +1 -0
- package/select/Select.test.js +371 -474
- package/select/types.d.ts +1 -1
- package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.js +16 -12
- package/sidenav/Sidenav.stories.tsx +5 -10
- package/sidenav/Sidenav.test.d.ts +1 -0
- package/sidenav/Sidenav.test.js +1 -1
- package/sidenav/types.d.ts +2 -2
- package/slider/Slider.accessibility.test.d.ts +1 -0
- package/slider/Slider.accessibility.test.js +103 -0
- package/slider/Slider.js +11 -13
- package/slider/Slider.stories.tsx +180 -0
- package/slider/Slider.test.d.ts +1 -0
- package/slider/Slider.test.js +13 -11
- package/spinner/Spinner.accessibility.test.d.ts +1 -0
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +6 -2
- package/spinner/Spinner.test.d.ts +1 -0
- package/spinner/Spinner.test.js +1 -1
- package/status-light/StatusLight.accessibility.test.d.ts +1 -0
- package/status-light/StatusLight.accessibility.test.js +157 -0
- package/status-light/StatusLight.test.d.ts +1 -0
- package/status-light/StatusLight.test.js +1 -1
- package/switch/Switch.accessibility.test.d.ts +1 -0
- package/switch/Switch.accessibility.test.js +98 -0
- package/switch/Switch.js +6 -9
- package/switch/Switch.stories.tsx +12 -0
- package/switch/Switch.test.d.ts +1 -0
- package/switch/Switch.test.js +1 -1
- package/table/Table.accessibility.test.d.ts +1 -0
- package/table/Table.accessibility.test.js +92 -0
- package/table/Table.js +1 -1
- package/table/Table.stories.tsx +13 -1
- package/table/Table.test.d.ts +1 -0
- package/table/Table.test.js +2 -4
- package/tabs/Tab.js +6 -5
- package/tabs/Tabs.accessibility.test.d.ts +1 -0
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +9 -20
- package/tabs/Tabs.stories.tsx +7 -3
- package/tabs/Tabs.test.d.ts +1 -0
- package/tabs/Tabs.test.js +20 -38
- package/tabs/types.d.ts +2 -2
- package/tag/Tag.accessibility.test.d.ts +1 -0
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +7 -7
- package/tag/Tag.stories.tsx +5 -8
- package/tag/Tag.test.d.ts +1 -0
- package/tag/Tag.test.js +5 -13
- package/tag/types.d.ts +2 -2
- package/text-input/Suggestion.js +1 -1
- package/text-input/Suggestions.js +17 -7
- package/text-input/TextInput.accessibility.test.d.ts +1 -0
- package/text-input/TextInput.accessibility.test.js +320 -0
- package/text-input/TextInput.js +34 -30
- package/text-input/TextInput.stories.tsx +10 -7
- package/text-input/TextInput.test.d.ts +1 -0
- package/text-input/TextInput.test.js +2 -3
- package/textarea/Textarea.accessibility.test.d.ts +1 -0
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +14 -13
- package/textarea/Textarea.test.d.ts +1 -0
- package/textarea/Textarea.test.js +1 -1
- package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.js +10 -12
- package/toggle-group/ToggleGroup.stories.tsx +4 -4
- package/toggle-group/ToggleGroup.test.d.ts +1 -0
- package/toggle-group/ToggleGroup.test.js +1 -1
- package/toggle-group/types.d.ts +2 -2
- package/typography/Typography.accessibility.test.d.ts +1 -0
- package/typography/Typography.accessibility.test.js +339 -0
- package/typography/Typography.stories.tsx +1 -3
- package/useTheme.d.ts +2 -5
- package/utils/BaseTypography.js +1 -1
- package/utils/FocusLock.js +3 -2
- package/wizard/Wizard.accessibility.test.d.ts +1 -0
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.js +14 -25
- package/wizard/Wizard.stories.tsx +20 -1
- package/wizard/Wizard.test.d.ts +1 -0
- package/wizard/Wizard.test.js +1 -1
- package/wizard/types.d.ts +1 -1
- package/contextual-menu/MenuItemAction.d.ts +0 -4
- package/contextual-menu/MenuItemAction.js +0 -46
- package/date-input/Icons.d.ts +0 -6
- package/date-input/Icons.js +0 -58
- package/paginator/Icons.d.ts +0 -5
- package/paginator/Icons.js +0 -40
- package/password-input/Icons.d.ts +0 -6
- package/password-input/Icons.js +0 -35
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -89
- package/sidenav/Icons.d.ts +0 -7
- package/sidenav/Icons.js +0 -47
- package/text-input/Icons.d.ts +0 -8
- package/text-input/Icons.js +0 -56
package/date-input/Calendar.js
CHANGED
|
@@ -11,10 +11,9 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
13
|
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
14
|
-
var
|
|
15
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
14
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
16
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
18
17
|
var getDays = function getDays(innerDate) {
|
|
19
18
|
var monthDayCells = [];
|
|
20
19
|
var lastMonthNumberOfDays = innerDate.set("month", innerDate.get("month") - 1).endOf("month");
|
|
@@ -49,12 +48,20 @@ var getDateToFocus = function getDateToFocus(selectedDate, innerDate, today) {
|
|
|
49
48
|
var isDaySelected = function isDaySelected(date, selectedDate) {
|
|
50
49
|
return (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("month")) === date.month && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === date.year && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("date")) === date.day;
|
|
51
50
|
};
|
|
51
|
+
var divideDaysIntoWeeks = function divideDaysIntoWeeks(data, weekSize) {
|
|
52
|
+
return Array.from({
|
|
53
|
+
length: Math.ceil(data.length / weekSize)
|
|
54
|
+
}, function (_, rowIndex) {
|
|
55
|
+
return data.slice(rowIndex * weekSize, (rowIndex + 1) * weekSize);
|
|
56
|
+
});
|
|
57
|
+
};
|
|
52
58
|
var Calendar = function Calendar(_ref) {
|
|
53
59
|
var selectedDate = _ref.selectedDate,
|
|
54
60
|
innerDate = _ref.innerDate,
|
|
55
61
|
onInnerDateChange = _ref.onInnerDateChange,
|
|
56
62
|
onDaySelect = _ref.onDaySelect,
|
|
57
63
|
today = _ref.today;
|
|
64
|
+
var id = (0, _react.useId)();
|
|
58
65
|
var _useState = (0, _react.useState)(getDateToFocus(selectedDate, innerDate, today)),
|
|
59
66
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
60
67
|
dateToFocus = _useState2[0],
|
|
@@ -88,7 +95,7 @@ var Calendar = function Calendar(_ref) {
|
|
|
88
95
|
(0, _react.useEffect)(function () {
|
|
89
96
|
if (isFocusable) {
|
|
90
97
|
var _document$getElementB;
|
|
91
|
-
(_document$getElementB = document.getElementById("
|
|
98
|
+
(_document$getElementB = document.getElementById("".concat(id, "_day_").concat(dateToFocus.get("date"), "_month").concat(dateToFocus.get("month")))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.focus();
|
|
92
99
|
setIsFocusable(false);
|
|
93
100
|
}
|
|
94
101
|
}, [dateToFocus, isFocusable]);
|
|
@@ -146,33 +153,40 @@ var Calendar = function Calendar(_ref) {
|
|
|
146
153
|
break;
|
|
147
154
|
}
|
|
148
155
|
};
|
|
149
|
-
return /*#__PURE__*/_react["default"].createElement(CalendarContainer,
|
|
150
|
-
|
|
151
|
-
|
|
156
|
+
return /*#__PURE__*/_react["default"].createElement(CalendarContainer, {
|
|
157
|
+
role: "grid"
|
|
158
|
+
}, /*#__PURE__*/_react["default"].createElement(CalendarHeaderRow, {
|
|
159
|
+
role: "row"
|
|
152
160
|
}, weekDays.map(function (weekDay) {
|
|
153
161
|
return /*#__PURE__*/_react["default"].createElement(WeekHeaderCell, {
|
|
154
|
-
key: weekDay
|
|
162
|
+
key: weekDay,
|
|
163
|
+
role: "columnheader"
|
|
155
164
|
}, weekDay);
|
|
156
|
-
})), /*#__PURE__*/_react["default"].createElement(
|
|
157
|
-
onBlur: handleOnBlur
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
165
|
+
})), /*#__PURE__*/_react["default"].createElement(MonthContainer, {
|
|
166
|
+
onBlur: handleOnBlur,
|
|
167
|
+
role: "rowgroup"
|
|
168
|
+
}, divideDaysIntoWeeks(dayCells, weekDays.length).map(function (week, rowIndex) {
|
|
169
|
+
return /*#__PURE__*/_react["default"].createElement(WeekContainer, {
|
|
170
|
+
key: "".concat(id, "_week_").concat(rowIndex),
|
|
171
|
+
role: "row"
|
|
172
|
+
}, week.map(function (date, index) {
|
|
173
|
+
return /*#__PURE__*/_react["default"].createElement(DayCellButton, {
|
|
174
|
+
id: "".concat(id, "_day_").concat(date.day, "_month").concat(date.month),
|
|
175
|
+
role: "gridcell",
|
|
176
|
+
"aria-selected": isDaySelected(date, selectedDate),
|
|
177
|
+
onKeyDown: function onKeyDown(event) {
|
|
178
|
+
return handleDayKeyboardEvent(event, date);
|
|
179
|
+
},
|
|
180
|
+
onClick: function onClick() {
|
|
181
|
+
return onDateClickHandler(date);
|
|
182
|
+
},
|
|
183
|
+
selected: isDaySelected(date, selectedDate),
|
|
184
|
+
actualMonth: date.month === innerDate.get("month"),
|
|
185
|
+
autoFocus: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month"),
|
|
186
|
+
tabIndex: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month") ? 0 : -1,
|
|
187
|
+
isCurrentDay: today.get("date") === date.day && today.get("month") === innerDate.get("month") && today.get("month") === date.month && today.get("year") === innerDate.get("year")
|
|
188
|
+
}, date.day);
|
|
189
|
+
}));
|
|
176
190
|
})));
|
|
177
191
|
};
|
|
178
192
|
var CalendarContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0px 8px 8px 8px;\n width: 292px;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
@@ -184,9 +198,11 @@ var CalendarContainer = _styledComponents["default"].div(_templateObject || (_te
|
|
|
184
198
|
}, function (props) {
|
|
185
199
|
return props.theme.dateInput.pickerFontWeight;
|
|
186
200
|
});
|
|
187
|
-
var
|
|
188
|
-
var
|
|
189
|
-
var
|
|
201
|
+
var CalendarHeaderRow = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n"])));
|
|
202
|
+
var WeekHeaderCell = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n"])));
|
|
203
|
+
var MonthContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n flex-direction: column;\n justify-content: space-between;\n"])));
|
|
204
|
+
var WeekContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n justify-content: space-between;\n"])));
|
|
205
|
+
var DayCellButton = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 36px;\n height: 36px;\n padding: 0;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n\n &:focus {\n outline: ", " solid 2px;\n }\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:active {\n background-color: ", ";\n color: ", ";\n }\n\n ", "\n background-color: ", ";\n color: ", ";\n"])), function (props) {
|
|
190
206
|
return props.theme.dateInput.pickerFontFamily;
|
|
191
207
|
}, function (props) {
|
|
192
208
|
return props.theme.dateInput.pickerFontSize;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _react2 = require("@testing-library/react");
|
|
10
|
+
var _axeHelper = require("../../test/accessibility/axe-helper.js");
|
|
11
|
+
var _DateInput = _interopRequireDefault(require("./DateInput"));
|
|
12
|
+
var _disabledRules = require("../../test/accessibility/rules/specific/date-input/disabledRules.js");
|
|
13
|
+
// Mocking DOMRect for Radix Primitive Popover
|
|
14
|
+
global.globalThis = global;
|
|
15
|
+
global.DOMRect = {
|
|
16
|
+
fromRect: function fromRect() {
|
|
17
|
+
return {
|
|
18
|
+
top: 0,
|
|
19
|
+
left: 0,
|
|
20
|
+
bottom: 0,
|
|
21
|
+
right: 0,
|
|
22
|
+
width: 0,
|
|
23
|
+
height: 0,
|
|
24
|
+
x: 0,
|
|
25
|
+
y: 0
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
global.ResizeObserver = /*#__PURE__*/function () {
|
|
30
|
+
function ResizeObserver() {
|
|
31
|
+
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
32
|
+
}
|
|
33
|
+
return (0, _createClass2["default"])(ResizeObserver, [{
|
|
34
|
+
key: "observe",
|
|
35
|
+
value: function observe() {}
|
|
36
|
+
}, {
|
|
37
|
+
key: "unobserve",
|
|
38
|
+
value: function unobserve() {}
|
|
39
|
+
}, {
|
|
40
|
+
key: "disconnect",
|
|
41
|
+
value: function disconnect() {}
|
|
42
|
+
}]);
|
|
43
|
+
}();
|
|
44
|
+
|
|
45
|
+
// TODO: REMOVE
|
|
46
|
+
|
|
47
|
+
var disabledRules = {
|
|
48
|
+
rules: _disabledRules.disabledRules.reduce(function (rulesObj, rule) {
|
|
49
|
+
rulesObj[rule] = {
|
|
50
|
+
enabled: false
|
|
51
|
+
};
|
|
52
|
+
return rulesObj;
|
|
53
|
+
}, {})
|
|
54
|
+
};
|
|
55
|
+
describe("DateInput component accessibility tests", function () {
|
|
56
|
+
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
57
|
+
var _render, baseElement, results;
|
|
58
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
59
|
+
while (1) switch (_context.prev = _context.next) {
|
|
60
|
+
case 0:
|
|
61
|
+
// baseElement is needed when using React Portals
|
|
62
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
63
|
+
label: "Example label",
|
|
64
|
+
helperText: "Help message",
|
|
65
|
+
defaultValue: "06-04-2007",
|
|
66
|
+
format: "dd/mm/yy",
|
|
67
|
+
name: "DateInput Name",
|
|
68
|
+
margin: "medium",
|
|
69
|
+
size: "medium",
|
|
70
|
+
placeholder: true,
|
|
71
|
+
clearable: true
|
|
72
|
+
})), baseElement = _render.baseElement;
|
|
73
|
+
_context.next = 3;
|
|
74
|
+
return (0, _axeHelper.axe)(baseElement, disabledRules);
|
|
75
|
+
case 3:
|
|
76
|
+
results = _context.sent;
|
|
77
|
+
expect(results).toHaveNoViolations();
|
|
78
|
+
case 5:
|
|
79
|
+
case "end":
|
|
80
|
+
return _context.stop();
|
|
81
|
+
}
|
|
82
|
+
}, _callee);
|
|
83
|
+
})));
|
|
84
|
+
it("Should not have basic accessibility issues for autocomplete mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
85
|
+
var _render2, baseElement, results;
|
|
86
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
87
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
88
|
+
case 0:
|
|
89
|
+
// baseElement is needed when using React Portals
|
|
90
|
+
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
91
|
+
label: "Example label",
|
|
92
|
+
helperText: "Help message",
|
|
93
|
+
defaultValue: "06-04-2007",
|
|
94
|
+
format: "dd/mm/yy",
|
|
95
|
+
name: "DateInput Name",
|
|
96
|
+
margin: "medium",
|
|
97
|
+
size: "medium",
|
|
98
|
+
placeholder: true,
|
|
99
|
+
autocomplete: "on"
|
|
100
|
+
})), baseElement = _render2.baseElement;
|
|
101
|
+
_context2.next = 3;
|
|
102
|
+
return (0, _axeHelper.axe)(baseElement, disabledRules);
|
|
103
|
+
case 3:
|
|
104
|
+
results = _context2.sent;
|
|
105
|
+
expect(results).toHaveNoViolations();
|
|
106
|
+
case 5:
|
|
107
|
+
case "end":
|
|
108
|
+
return _context2.stop();
|
|
109
|
+
}
|
|
110
|
+
}, _callee2);
|
|
111
|
+
})));
|
|
112
|
+
it("Should not have basic accessibility issues for optional mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
113
|
+
var _render3, baseElement, results;
|
|
114
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
115
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
116
|
+
case 0:
|
|
117
|
+
// baseElement is needed when using React Portals
|
|
118
|
+
_render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
119
|
+
label: "Example label",
|
|
120
|
+
helperText: "Help message",
|
|
121
|
+
defaultValue: "06-04-2007",
|
|
122
|
+
format: "dd/mm/yy",
|
|
123
|
+
name: "DateInput Name",
|
|
124
|
+
margin: "medium",
|
|
125
|
+
size: "medium",
|
|
126
|
+
placeholder: true,
|
|
127
|
+
optional: true
|
|
128
|
+
})), baseElement = _render3.baseElement;
|
|
129
|
+
_context3.next = 3;
|
|
130
|
+
return (0, _axeHelper.axe)(baseElement, disabledRules);
|
|
131
|
+
case 3:
|
|
132
|
+
results = _context3.sent;
|
|
133
|
+
expect(results).toHaveNoViolations();
|
|
134
|
+
case 5:
|
|
135
|
+
case "end":
|
|
136
|
+
return _context3.stop();
|
|
137
|
+
}
|
|
138
|
+
}, _callee3);
|
|
139
|
+
})));
|
|
140
|
+
it("Should not have basic accessibility issues for error mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
141
|
+
var _render4, baseElement, results;
|
|
142
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
143
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
144
|
+
case 0:
|
|
145
|
+
// baseElement is needed when using React Portals
|
|
146
|
+
_render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
147
|
+
label: "Example label",
|
|
148
|
+
helperText: "Help message",
|
|
149
|
+
defaultValue: "06-04-2007",
|
|
150
|
+
format: "dd/mm/yy",
|
|
151
|
+
name: "DateInput Name",
|
|
152
|
+
margin: "medium",
|
|
153
|
+
error: "Error message.",
|
|
154
|
+
size: "medium",
|
|
155
|
+
placeholder: true,
|
|
156
|
+
clearable: true
|
|
157
|
+
})), baseElement = _render4.baseElement;
|
|
158
|
+
_context4.next = 3;
|
|
159
|
+
return (0, _axeHelper.axe)(baseElement, disabledRules);
|
|
160
|
+
case 3:
|
|
161
|
+
results = _context4.sent;
|
|
162
|
+
expect(results).toHaveNoViolations();
|
|
163
|
+
case 5:
|
|
164
|
+
case "end":
|
|
165
|
+
return _context4.stop();
|
|
166
|
+
}
|
|
167
|
+
}, _callee4);
|
|
168
|
+
})));
|
|
169
|
+
it("Should not have basic accessibility issues for read-only mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
170
|
+
var _render5, baseElement, results;
|
|
171
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
172
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
173
|
+
case 0:
|
|
174
|
+
// baseElement is needed when using React Portals
|
|
175
|
+
_render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
176
|
+
label: "Example label",
|
|
177
|
+
helperText: "Help message",
|
|
178
|
+
defaultValue: "06-04-2007",
|
|
179
|
+
format: "dd/mm/yy",
|
|
180
|
+
name: "DateInput Name",
|
|
181
|
+
margin: "medium",
|
|
182
|
+
error: "Error message.",
|
|
183
|
+
size: "medium",
|
|
184
|
+
placeholder: true,
|
|
185
|
+
clearable: true,
|
|
186
|
+
readOnly: true
|
|
187
|
+
})), baseElement = _render5.baseElement;
|
|
188
|
+
_context5.next = 3;
|
|
189
|
+
return (0, _axeHelper.axe)(baseElement, disabledRules);
|
|
190
|
+
case 3:
|
|
191
|
+
results = _context5.sent;
|
|
192
|
+
expect(results).toHaveNoViolations();
|
|
193
|
+
case 5:
|
|
194
|
+
case "end":
|
|
195
|
+
return _context5.stop();
|
|
196
|
+
}
|
|
197
|
+
}, _callee5);
|
|
198
|
+
})));
|
|
199
|
+
it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
200
|
+
var _render6, baseElement, results;
|
|
201
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
202
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
203
|
+
case 0:
|
|
204
|
+
// baseElement is needed when using React Portals
|
|
205
|
+
_render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
206
|
+
label: "Example label",
|
|
207
|
+
helperText: "Help message",
|
|
208
|
+
defaultValue: "06-04-2007",
|
|
209
|
+
format: "dd/mm/yy",
|
|
210
|
+
name: "DateInput Name",
|
|
211
|
+
margin: "medium",
|
|
212
|
+
error: "Error message.",
|
|
213
|
+
size: "medium",
|
|
214
|
+
placeholder: true,
|
|
215
|
+
clearable: true,
|
|
216
|
+
disabled: true
|
|
217
|
+
})), baseElement = _render6.baseElement;
|
|
218
|
+
_context6.next = 3;
|
|
219
|
+
return (0, _axeHelper.axe)(baseElement, disabledRules);
|
|
220
|
+
case 3:
|
|
221
|
+
results = _context6.sent;
|
|
222
|
+
expect(results).toHaveNoViolations();
|
|
223
|
+
case 5:
|
|
224
|
+
case "end":
|
|
225
|
+
return _context6.stop();
|
|
226
|
+
}
|
|
227
|
+
}, _callee6);
|
|
228
|
+
})));
|
|
229
|
+
});
|
package/date-input/DateInput.js
CHANGED
|
@@ -18,11 +18,9 @@ var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
|
|
|
18
18
|
var _DatePicker = _interopRequireDefault(require("./DatePicker"));
|
|
19
19
|
var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
|
|
20
20
|
var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
|
|
21
|
-
var
|
|
22
|
-
var _Icons = require("./Icons");
|
|
23
|
-
var _templateObject;
|
|
21
|
+
var _templateObject, _templateObject2;
|
|
24
22
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
25
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
23
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
26
24
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
27
25
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
28
26
|
_dayjs["default"].extend(_customParseFormat["default"]);
|
|
@@ -77,17 +75,15 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
77
75
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
78
76
|
isOpen = _useState4[0],
|
|
79
77
|
setIsOpen = _useState4[1];
|
|
80
|
-
var
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
var calendarId = "date-picker-".concat((0, _react.useId)());
|
|
79
|
+
var _useState5 = (0, _react.useState)(getValueForPicker((_ref2 = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref2 !== void 0 ? _ref2 : "", format)),
|
|
80
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
81
|
+
dayjsDate = _useState6[0],
|
|
82
|
+
setDayjsDate = _useState6[1];
|
|
83
|
+
var _useState7 = (0, _react.useState)(innerValue || value ? !format.toUpperCase().includes("YYYY") && +getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format).format("YY") < 68 ? 2000 : 1900 : undefined),
|
|
84
84
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
var _useState9 = (0, _react.useState)(innerValue || value ? !format.toUpperCase().includes("YYYY") && +getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format).format("YY") < 68 ? 2000 : 1900 : undefined),
|
|
88
|
-
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
89
|
-
lastValidYear = _useState10[0],
|
|
90
|
-
setLastValidYear = _useState10[1];
|
|
85
|
+
lastValidYear = _useState8[0],
|
|
86
|
+
setLastValidYear = _useState8[1];
|
|
91
87
|
var colorsTheme = (0, _useTheme["default"])();
|
|
92
88
|
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
93
89
|
var dateRef = (0, _react.useRef)(null);
|
|
@@ -96,12 +92,14 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
96
92
|
}, [value, format, lastValidYear]);
|
|
97
93
|
(0, _react.useEffect)(function () {
|
|
98
94
|
if (!disabled) {
|
|
99
|
-
var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='
|
|
95
|
+
var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='Select date']");
|
|
100
96
|
actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-haspopup", true);
|
|
101
97
|
actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("role", "combobox");
|
|
102
98
|
actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-expanded", isOpen);
|
|
103
99
|
actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-controls", calendarId);
|
|
104
|
-
|
|
100
|
+
if (isOpen) {
|
|
101
|
+
actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
|
|
102
|
+
}
|
|
105
103
|
}
|
|
106
104
|
}, [isOpen, disabled, calendarId]);
|
|
107
105
|
var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
|
|
@@ -166,16 +164,20 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
166
164
|
setIsOpen(false);
|
|
167
165
|
};
|
|
168
166
|
var handleDatePickerEscKeydown = function handleDatePickerEscKeydown(event) {
|
|
169
|
-
event.
|
|
170
|
-
|
|
171
|
-
|
|
167
|
+
if (event.key === "Escape") {
|
|
168
|
+
event.preventDefault();
|
|
169
|
+
isOpen && event.stopPropagation();
|
|
170
|
+
closeCalendar();
|
|
171
|
+
dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
|
|
172
|
+
}
|
|
172
173
|
};
|
|
173
174
|
var handleDatePickerOnBlur = function handleDatePickerOnBlur(event) {
|
|
174
175
|
if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) closeCalendar();
|
|
175
176
|
};
|
|
176
177
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
177
178
|
theme: colorsTheme
|
|
178
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
179
|
+
}, /*#__PURE__*/_react["default"].createElement(DateInputContainer, {
|
|
180
|
+
size: size,
|
|
179
181
|
ref: ref
|
|
180
182
|
}, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
|
|
181
183
|
open: isOpen
|
|
@@ -191,8 +193,8 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
191
193
|
placeholder: placeholder ? format.toUpperCase() : null,
|
|
192
194
|
action: {
|
|
193
195
|
onClick: openCalendar,
|
|
194
|
-
icon:
|
|
195
|
-
title: "
|
|
196
|
+
icon: "filled_calendar_today",
|
|
197
|
+
title: "Select date"
|
|
196
198
|
},
|
|
197
199
|
clearable: clearable,
|
|
198
200
|
disabled: disabled,
|
|
@@ -211,7 +213,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
211
213
|
align: "end",
|
|
212
214
|
"aria-modal": true,
|
|
213
215
|
onBlur: handleDatePickerOnBlur,
|
|
214
|
-
|
|
216
|
+
onKeyDown: handleDatePickerEscKeydown,
|
|
215
217
|
avoidCollisions: false
|
|
216
218
|
}, /*#__PURE__*/_react["default"].createElement(_DatePicker["default"], {
|
|
217
219
|
id: calendarId,
|
|
@@ -220,4 +222,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
220
222
|
}))))));
|
|
221
223
|
});
|
|
222
224
|
var StyledPopoverContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 2147483647;\n &:focus-visible {\n outline: none;\n }\n"])));
|
|
225
|
+
var DateInputContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n"])), function (props) {
|
|
226
|
+
return props.size == "fillParent" && "width: 100%;";
|
|
227
|
+
});
|
|
223
228
|
var _default = exports["default"] = DxcDateInput;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { userEvent, within, fireEvent, screen } from "@storybook/
|
|
2
|
+
import { userEvent, within, fireEvent, screen } from "@storybook/test";
|
|
3
3
|
import DxcDateInput from "./DateInput";
|
|
4
4
|
import DxcDatePicker from "./DatePicker";
|
|
5
5
|
import YearPicker from "./YearPicker";
|
|
@@ -10,10 +10,22 @@ import dayjs from "dayjs";
|
|
|
10
10
|
import useTheme from "../useTheme";
|
|
11
11
|
import { ThemeProvider } from "styled-components";
|
|
12
12
|
import { HalstackProvider } from "../HalstackContext";
|
|
13
|
+
import preview from "../../.storybook/preview";
|
|
14
|
+
import { disabledRules } from "../../test/accessibility/rules/specific/date-input/disabledRules";
|
|
13
15
|
|
|
14
16
|
export default {
|
|
15
17
|
title: "Date Input",
|
|
16
18
|
component: DxcDateInput,
|
|
19
|
+
parameters: {
|
|
20
|
+
a11y: {
|
|
21
|
+
config: {
|
|
22
|
+
rules: [
|
|
23
|
+
...disabledRules.map((ruleId) => ({ id: ruleId, enabled: false })),
|
|
24
|
+
...preview?.parameters?.a11y?.config?.rules,
|
|
25
|
+
],
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
17
29
|
};
|
|
18
30
|
|
|
19
31
|
const opinionatedTheme = {
|
|
@@ -41,13 +53,7 @@ const DateInputChromatic = () => (
|
|
|
41
53
|
</ExampleContainer>
|
|
42
54
|
<ExampleContainer>
|
|
43
55
|
<Title title="Read only" theme="light" level={4} />
|
|
44
|
-
<DxcDateInput
|
|
45
|
-
label="Example label"
|
|
46
|
-
helperText="Help message"
|
|
47
|
-
defaultValue="06-04-2007"
|
|
48
|
-
clearable
|
|
49
|
-
readOnly
|
|
50
|
-
/>
|
|
56
|
+
<DxcDateInput label="Example label" helperText="Help message" defaultValue="06-04-2007" clearable readOnly />
|
|
51
57
|
</ExampleContainer>
|
|
52
58
|
<ExampleContainer>
|
|
53
59
|
<Title title="Invalid" theme="light" level={4} />
|
|
@@ -202,15 +208,15 @@ const DatePickerButtonStates = () => {
|
|
|
202
208
|
<ThemeProvider theme={colorsTheme}>
|
|
203
209
|
<ExampleContainer pseudoState="pseudo-focus">
|
|
204
210
|
<Title title="Isolated calendar focused" theme="light" level={4} />
|
|
205
|
-
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-
|
|
211
|
+
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar1" />
|
|
206
212
|
</ExampleContainer>
|
|
207
213
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
208
214
|
<Title title="Isolated calendar hovered" theme="light" level={4} />
|
|
209
|
-
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-
|
|
215
|
+
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar2" />
|
|
210
216
|
</ExampleContainer>
|
|
211
217
|
<ExampleContainer pseudoState="pseudo-active">
|
|
212
218
|
<Title title="Isolated calendar actived" theme="light" level={4} />
|
|
213
|
-
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-
|
|
219
|
+
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar3" />
|
|
214
220
|
</ExampleContainer>
|
|
215
221
|
</ThemeProvider>
|
|
216
222
|
</>
|
|
@@ -220,7 +226,7 @@ const DatePickerButtonStates = () => {
|
|
|
220
226
|
export const DatePickerStates = DatePickerButtonStates.bind({});
|
|
221
227
|
DatePickerStates.play = async ({ canvasElement }) => {
|
|
222
228
|
const canvas = within(canvasElement);
|
|
223
|
-
const dateBtn = canvas.getAllByTitle("
|
|
229
|
+
const dateBtn = canvas.getAllByTitle("Select date")[0];
|
|
224
230
|
await userEvent.click(dateBtn);
|
|
225
231
|
};
|
|
226
232
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|