@dnb/eufemia 10.66.0 → 10.66.1
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/CHANGELOG.md +12 -0
- package/cjs/components/date-picker/DatePickerInput.js +49 -40
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/help-button/HelpButtonInline.d.ts +1 -0
- package/cjs/components/help-button/HelpButtonInline.js +3 -2
- package/cjs/components/help-button/HelpButtonInline.js.map +1 -1
- package/cjs/components/upload/Upload.js +4 -5
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/UploadFileInput.d.ts +4 -1
- package/cjs/components/upload/UploadFileInput.js +11 -3
- package/cjs/components/upload/UploadFileInput.js.map +1 -1
- package/cjs/components/upload/types.d.ts +1 -1
- package/cjs/components/upload/types.js.map +1 -1
- package/cjs/extensions/forms/Field/Composition/Composition.js +2 -1
- package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js +2 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/style/dnb-upload.css +5 -0
- package/cjs/extensions/forms/Field/Upload/style/dnb-upload.min.css +1 -1
- package/cjs/extensions/forms/Field/Upload/style/dnb-upload.scss +6 -0
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +6 -1
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +6 -1
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +6 -1
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +6 -1
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +12 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +12 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +12 -2
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +6 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +6 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/date-picker/DatePickerInput.js +49 -40
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/help-button/HelpButtonInline.d.ts +1 -0
- package/components/help-button/HelpButtonInline.js +3 -2
- package/components/help-button/HelpButtonInline.js.map +1 -1
- package/components/upload/Upload.js +3 -4
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/UploadFileInput.d.ts +4 -1
- package/components/upload/UploadFileInput.js +10 -3
- package/components/upload/UploadFileInput.js.map +1 -1
- package/components/upload/types.d.ts +1 -1
- package/components/upload/types.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.js +49 -40
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/help-button/HelpButtonInline.d.ts +1 -0
- package/es/components/help-button/HelpButtonInline.js +3 -2
- package/es/components/help-button/HelpButtonInline.js.map +1 -1
- package/es/components/upload/Upload.js +3 -4
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/UploadFileInput.d.ts +4 -1
- package/es/components/upload/UploadFileInput.js +10 -3
- package/es/components/upload/UploadFileInput.js.map +1 -1
- package/es/components/upload/types.d.ts +1 -1
- package/es/components/upload/types.js.map +1 -1
- package/es/extensions/forms/Field/Composition/Composition.js +2 -1
- package/es/extensions/forms/Field/Composition/Composition.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/es/extensions/forms/Field/Date/Date.js +1 -1
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Upload/Upload.js +2 -1
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/Field/Upload/style/dnb-upload.css +5 -0
- package/es/extensions/forms/Field/Upload/style/dnb-upload.min.css +1 -1
- package/es/extensions/forms/Field/Upload/style/dnb-upload.scss +6 -0
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +1 -1
- package/es/extensions/forms/style/dnb-forms.css +6 -1
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +6 -1
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +6 -1
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +6 -1
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +12 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +12 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +12 -2
- package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +6 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +6 -1
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/Field/Composition/Composition.js +2 -1
- package/extensions/forms/Field/Composition/Composition.js.map +1 -1
- package/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/extensions/forms/Field/Date/Date.js +1 -1
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Upload/Upload.js +2 -1
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/Field/Upload/style/dnb-upload.css +5 -0
- package/extensions/forms/Field/Upload/style/dnb-upload.min.css +1 -1
- package/extensions/forms/Field/Upload/style/dnb-upload.scss +6 -0
- package/extensions/forms/ValueBlock/style/dnb-value-block.css +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.scss +1 -1
- package/extensions/forms/style/dnb-forms.css +6 -1
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +6 -1
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +6 -1
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +6 -1
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +12 -2
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +12 -2
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +12 -2
- package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +6 -1
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +6 -1
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to @dnb/eufemia will be documented in this file. See
|
|
4
4
|
[Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [10.66.1](https://github.com/dnbexperience/eufemia/compare/v10.66.0...v10.66.1) (2025-03-05)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### :bug: Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **DatePicker:** clear internal date when passing null ([#4656](https://github.com/dnbexperience/eufemia/issues/4656)) ([3ba3b26](https://github.com/dnbexperience/eufemia/commit/3ba3b26e7d948efee1e98d160f9587574e10a2b2))
|
|
12
|
+
* **Field.Date:** add missing support for `skipPortal` ([#4666](https://github.com/dnbexperience/eufemia/issues/4666)) ([975f3ea](https://github.com/dnbexperience/eufemia/commit/975f3ea8f5b8e8e8cb0adcdab32b84289a026af7))
|
|
13
|
+
* **Field.Upload:** improve styling of `help` button ([#4659](https://github.com/dnbexperience/eufemia/issues/4659)) ([8a10d7c](https://github.com/dnbexperience/eufemia/commit/8a10d7c9db7f155d6502f78f11c5a6140693c5be))
|
|
14
|
+
* **Field.Upload:** set `aria-required` and `required` props in input rather than div ([#4655](https://github.com/dnbexperience/eufemia/issues/4655)) ([7db1f04](https://github.com/dnbexperience/eufemia/commit/7db1f0431679872765d5716e2a85bab645918c4b))
|
|
15
|
+
* **Forms:** always render Field.Composition with a `fieldset` ([#4661](https://github.com/dnbexperience/eufemia/issues/4661)) ([a3991a1](https://github.com/dnbexperience/eufemia/commit/a3991a1eedae31a1413ce974182f20efa5ea59ab))
|
|
16
|
+
* **Value.SummaryList:** spacing of `help` when wrapped in `Form.InfoOverlay` ([#4667](https://github.com/dnbexperience/eufemia/issues/4667)) ([b7a2702](https://github.com/dnbexperience/eufemia/commit/b7a2702ce0afbf4d2d88c9a528dbd5cc4a28b939)), closes [/github.com/dnbexperience/eufemia/pull/4667/files#diff-281ca53e6a78ae24056e8fc94bf0274576aef89044ddcc613fb09b0844023e13R50](https://github.com/dnbexperience//github.com/dnbexperience/eufemia/pull/4667/files/issues/diff-281ca53e6a78ae24056e8fc94bf0274576aef89044ddcc613fb09b0844023e13R50)
|
|
17
|
+
|
|
6
18
|
## [10.66.0](https://github.com/dnbexperience/eufemia/compare/v10.65.1...v10.66.0) (2025-03-04)
|
|
7
19
|
|
|
8
20
|
|
|
@@ -109,34 +109,35 @@ function DatePickerInput(externalProps) {
|
|
|
109
109
|
__endMonth,
|
|
110
110
|
__endYear
|
|
111
111
|
}), [__startDay, __startMonth, __startYear, __endDay, __endMonth, __endYear]);
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
endDayRef
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const dateRefs = (0, _react.
|
|
133
|
-
startDay:
|
|
134
|
-
startMonth:
|
|
135
|
-
startYear:
|
|
136
|
-
endDay:
|
|
137
|
-
endMonth:
|
|
138
|
-
endYear:
|
|
139
|
-
})
|
|
112
|
+
const inputRefs = (0, _react.useRef)({
|
|
113
|
+
startDayRef: {
|
|
114
|
+
current: undefined
|
|
115
|
+
},
|
|
116
|
+
startMonthRef: {
|
|
117
|
+
current: undefined
|
|
118
|
+
},
|
|
119
|
+
startYearRef: {
|
|
120
|
+
current: undefined
|
|
121
|
+
},
|
|
122
|
+
endDayRef: {
|
|
123
|
+
current: undefined
|
|
124
|
+
},
|
|
125
|
+
endMonthRef: {
|
|
126
|
+
current: undefined
|
|
127
|
+
},
|
|
128
|
+
endYearRef: {
|
|
129
|
+
current: undefined
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
const dateRefs = (0, _react.useRef)({
|
|
133
|
+
startDay: '',
|
|
134
|
+
startMonth: '',
|
|
135
|
+
startYear: '',
|
|
136
|
+
endDay: '',
|
|
137
|
+
endMonth: '',
|
|
138
|
+
endYear: ''
|
|
139
|
+
});
|
|
140
|
+
syncDateRefs(dateRefs, inputDates);
|
|
140
141
|
const startDateRef = (0, _react.useRef)();
|
|
141
142
|
const endDateRef = (0, _react.useRef)();
|
|
142
143
|
const temporaryDates = (0, _react.useMemo)(() => ({
|
|
@@ -245,7 +246,7 @@ function DatePickerInput(externalProps) {
|
|
|
245
246
|
event
|
|
246
247
|
} = _ref2;
|
|
247
248
|
const getDates = () => ['start', 'end'].reduce((acc, mode) => {
|
|
248
|
-
acc[`${mode}Date`] = [dateRefs[`${mode}Year`]
|
|
249
|
+
acc[`${mode}Date`] = [dateRefs.current[`${mode}Year`] || inputDates[`__${mode}Year`] || 'yyyy', dateRefs.current[`${mode}Month`] || inputDates[`__${mode}Month`] || 'mm', dateRefs.current[`${mode}Day`] || inputDates[`__${mode}Day`] || 'dd'].join('-');
|
|
249
250
|
return acc;
|
|
250
251
|
}, {
|
|
251
252
|
startDate: undefined,
|
|
@@ -414,17 +415,16 @@ function DatePickerInput(externalProps) {
|
|
|
414
415
|
}
|
|
415
416
|
}, [prepareCounting, selectStart]);
|
|
416
417
|
const setDate = (0, _react.useCallback)((event, mode, type) => {
|
|
417
|
-
var _dateRefs, _dateRefs2, _dateRefs3;
|
|
418
418
|
event.persist();
|
|
419
419
|
const value = event.target.value;
|
|
420
|
-
dateRefs[`${mode}${type}`]
|
|
420
|
+
dateRefs.current[`${mode}${type}`] = value;
|
|
421
421
|
if (modeDate[`${mode}Date`]) {
|
|
422
422
|
temporaryDates[`${mode}Date`].current = modeDate[`${mode}Date`];
|
|
423
423
|
}
|
|
424
424
|
const fallback = temporaryDates[`${mode}Date`].current;
|
|
425
|
-
const year =
|
|
426
|
-
const month =
|
|
427
|
-
const day =
|
|
425
|
+
const year = dateRefs.current[`${mode}Year`] || fallback && fallback.getFullYear();
|
|
426
|
+
const month = dateRefs.current[`${mode}Month`] || fallback && fallback.getMonth() + 1;
|
|
427
|
+
const day = dateRefs.current[`${mode}Day`] || fallback && fallback.getDate();
|
|
428
428
|
const date = new Date(parseFloat(String(year)), parseFloat(String(month)) - 1, parseFloat(String(day)));
|
|
429
429
|
const isValidDate = !/[^0-9]/.test(String(day)) && !/[^0-9]/.test(String(month)) && !/[^0-9]/.test(String(year)) && (0, _isValid.default)(date) && date.getDate() == parseFloat(String(day)) && date.getMonth() + 1 == parseFloat(String(month)) && date.getFullYear() == parseFloat(String(year));
|
|
430
430
|
const dateString = `${year}-${month}-${day}`;
|
|
@@ -509,7 +509,7 @@ function DatePickerInput(externalProps) {
|
|
|
509
509
|
const inputSizeClassName = size && `dnb-date-picker__input--${size}`;
|
|
510
510
|
switch (state) {
|
|
511
511
|
case 'd':
|
|
512
|
-
refList.current.push(inputRefs[`${mode}DayRef`]);
|
|
512
|
+
refList.current.push(inputRefs.current[`${mode}DayRef`]);
|
|
513
513
|
return _react.default.createElement(_react.default.Fragment, {
|
|
514
514
|
key: 'dd' + i
|
|
515
515
|
}, _react.default.createElement(DateField, _extends({}, element, {
|
|
@@ -518,7 +518,7 @@ function DatePickerInput(externalProps) {
|
|
|
518
518
|
className: (0, _classnames.default)("dnb-date-picker__input dnb-date-picker__input--day", element.className, inputSizeClassName),
|
|
519
519
|
size: 2,
|
|
520
520
|
mask: [/[0-3]/, /[0-9]/],
|
|
521
|
-
inputRef: inputRefs[`${mode}DayRef`],
|
|
521
|
+
inputRef: inputRefs.current[`${mode}DayRef`],
|
|
522
522
|
onChange: dateSetters[`set_${mode}Day`],
|
|
523
523
|
value: inputDates[`__${mode}Day`] || '',
|
|
524
524
|
"aria-labelledby": `${id}-${mode}-day-label`
|
|
@@ -529,7 +529,7 @@ function DatePickerInput(externalProps) {
|
|
|
529
529
|
htmlFor: `${id}-${mode}-day`
|
|
530
530
|
}, isRangeLabel + day));
|
|
531
531
|
case 'm':
|
|
532
|
-
refList.current.push(inputRefs[`${mode}MonthRef`]);
|
|
532
|
+
refList.current.push(inputRefs.current[`${mode}MonthRef`]);
|
|
533
533
|
return _react.default.createElement(_react.default.Fragment, {
|
|
534
534
|
key: 'mm' + i
|
|
535
535
|
}, _react.default.createElement(DateField, _extends({}, element, {
|
|
@@ -538,7 +538,7 @@ function DatePickerInput(externalProps) {
|
|
|
538
538
|
className: (0, _classnames.default)("dnb-date-picker__input dnb-date-picker__input--month", element.className, inputSizeClassName),
|
|
539
539
|
size: 2,
|
|
540
540
|
mask: [/[0-1]/, /[0-9]/],
|
|
541
|
-
inputRef: inputRefs[`${mode}MonthRef`],
|
|
541
|
+
inputRef: inputRefs.current[`${mode}MonthRef`],
|
|
542
542
|
onChange: dateSetters[`set_${mode}Month`],
|
|
543
543
|
value: inputDates[`__${mode}Month`] || '',
|
|
544
544
|
"aria-labelledby": `${id}-${mode}-month-label`
|
|
@@ -549,7 +549,7 @@ function DatePickerInput(externalProps) {
|
|
|
549
549
|
htmlFor: `${id}-${mode}-month`
|
|
550
550
|
}, isRangeLabel + month));
|
|
551
551
|
case 'y':
|
|
552
|
-
refList.current.push(inputRefs[`${mode}YearRef`]);
|
|
552
|
+
refList.current.push(inputRefs.current[`${mode}YearRef`]);
|
|
553
553
|
return _react.default.createElement(_react.default.Fragment, {
|
|
554
554
|
key: 'yy' + i
|
|
555
555
|
}, _react.default.createElement(DateField, _extends({}, element, {
|
|
@@ -558,7 +558,7 @@ function DatePickerInput(externalProps) {
|
|
|
558
558
|
className: (0, _classnames.default)("dnb-date-picker__input dnb-date-picker__input--year", element.className, inputSizeClassName),
|
|
559
559
|
size: 4,
|
|
560
560
|
mask: [/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/],
|
|
561
|
-
inputRef: inputRefs[`${mode}YearRef`],
|
|
561
|
+
inputRef: inputRefs.current[`${mode}YearRef`],
|
|
562
562
|
onChange: dateSetters[`set_${mode}Year`],
|
|
563
563
|
value: inputDates[`__${mode}Year`] || '',
|
|
564
564
|
"aria-labelledby": `${id}-${mode}-year-label`
|
|
@@ -655,5 +655,14 @@ function InputElement(_ref5) {
|
|
|
655
655
|
value: value
|
|
656
656
|
}, props));
|
|
657
657
|
}
|
|
658
|
+
function syncDateRefs(dateRefs, inputDates) {
|
|
659
|
+
for (const date in dateRefs.current) {
|
|
660
|
+
const dateRefValue = dateRefs.current[date];
|
|
661
|
+
const inputDateValue = inputDates[`__${date}`];
|
|
662
|
+
if (dateRefValue !== inputDateValue) {
|
|
663
|
+
dateRefs.current[date] = inputDateValue;
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
}
|
|
658
667
|
const wait = duration => new Promise(r => setTimeout(r, duration));
|
|
659
668
|
//# sourceMappingURL=DatePickerInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerInput.js","names":["_react","_interopRequireWildcard","require","_addDays","_interopRequireDefault","_addMonths","_addYears","_isValid","_parseISO","_classnames","_TextMask","_Button","_Input","_componentHelper","_DatePickerCalc","_DatePickerContext","_shared","_span","_excluded","_excluded2","_excluded3","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","defaultProps","maskOrder","maskPlaceholder","separatorRexExp","statusState","opened","DatePickerInput","externalProps","props","isRange","id","title","submitAttributes","onFocus","onBlur","onChange","onSubmit","selectedDateTitle","showInput","inputElement","lang","disabled","skeleton","size","status","statusProps","attributes","focusState","setFocusState","useState","partialDates","setPartialDates","partialStartDate","partialEndDate","invalidDatesRef","useRef","invalidStartDate","invalidEndDate","isDateFullyFilledOutRef","updateDates","callOnChangeHandler","hasHadValidDate","getReturnObject","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","startDate","endDate","onType","label","useContext","DatePickerContext","translation","useTranslation","DatePicker","modeDate","useMemo","inputDates","startDayRef","startMonthRef","startYearRef","endDayRef","endMonthRef","endYearRef","inputRefs","startDayDateRef","endDayDateRef","startMonthDateRef","endMonthDateRef","startYearDateRef","endYearDateRef","dateRefs","startDay","startMonth","startYear","endDay","endMonth","endYear","startDateRef","endDateRef","temporaryDates","refList","focusMode","maskList","separators","match","split","reduce","acc","cur","shift","pasteHandler","useCallback","event","current","success","clipboardData","window","getData","preventDefault","possibleFormats","date","sep","replace","reverse","join","index","convertStringToDate","dateFormat","mode","error","warn","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","_ref","isValid","callOnType","_ref2","getDates","parsedStartDate","parseISO","parsedEndDate","isStartDateValid","isEndDateValid","_getReturnObject","is_valid","is_valid_start_date","is_valid_end_date","returnObject","typedDates","start_date","end_date","prepareCounting","_ref3","keyCode","isDate","getAttribute","isInRange","count","addDays","addMonths","addYears","wait","selectAll","e","selectStart","focus","setSelectionRange","onFocusHandler","onBlurHandler","onKeyDownHandler","selectionStart","selectionEnd","persist","parseFloat","firstSelectionStart","secondSelectionStart","test","refListArray","findIndex","_ref4","nextSibling","prevSibling","endPos","setDate","type","_dateRefs","_dateRefs2","_dateRefs3","fallback","year","getFullYear","month","getMonth","day","getDate","Date","isValidDate","dateString","dateSetters","set_startDay","set_startMonth","set_startYear","set_endDay","set_endMonth","set_endYear","getPlaceholderChar","generateDateList","element","map","slice","placeholderChar","isRangeLabel","onKeyDown","onPaste","DateField","React","isValidElement","InputElement","inputSizeClassName","createElement","Fragment","className","classnames","mask","inputRef","hidden","htmlFor","renderInputElement","startDateList","endDateList","formatDate","openPickerText","validateDOMAttributes","SubmitElement","SubmitButton","Button","innerRef","ref","input_state","input_element","status_state","submit_element","icon","variant","on_submit","on_click","_default","exports","select","_ref5","guide","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","duration","Promise","r","setTimeout"],"sources":["../../../../src/components/date-picker/DatePickerInput.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n MutableRefObject,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\n// date-fns\nimport addDays from 'date-fns/addDays'\nimport addMonths from 'date-fns/addMonths'\nimport addYears from 'date-fns/addYears'\nimport isValid from 'date-fns/isValid'\nimport parseISO from 'date-fns/parseISO'\n\nimport classnames from 'classnames'\nimport TextMask, { TextMaskProps } from '../input-masked/TextMask'\nimport Button from '../button/Button'\nimport Input, { SubmitButton } from '../input/Input'\nimport type { InputInputElement, InputSize } from '../Input'\nimport { warn, validateDOMAttributes } from '../../shared/component-helper'\nimport { convertStringToDate } from './DatePickerCalc'\nimport DatePickerContext from './DatePickerContext'\n\nimport type {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../FormStatus'\nimport type { SkeletonShow } from '../Skeleton'\nimport { ReturnObject } from './DatePickerProvider'\nimport { DatePickerEventAttributes } from './DatePicker'\nimport { useTranslation } from '../../shared'\n\nexport type DatePickerInputProps = Omit<\n React.HTMLProps<HTMLInputElement>,\n | 'children'\n | 'ref'\n | 'value'\n | 'size'\n | 'onFocus'\n | 'onBlur'\n | 'onSubmit'\n | 'label'\n> & {\n selectedDateTitle?: string\n maskOrder?: string\n maskPlaceholder?: string\n separatorRexExp?: RegExp\n submitAttributes?: Record<string, unknown>\n isRange?: boolean\n /**\n * The sizes you can choose is `small` (1.5rem), `default` (2rem), `medium` (2.5rem) and `large` (3rem) are supported component sizes. Defaults to `default` / `null`.\n */\n size?: InputSize\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Use an object to define additional FormStatus properties.\n */\n statusProps?: FormStatusProps\n /**\n * Gives you the possibility to use a plain/vanilla `<input />` HTML element by defining it as a string `input_element=\"input\"`, a React element, or a render function `input_element={(internalProps) => (<Return />)}`. Can also be used in circumstances where the `react-text-mask` not should be used, e.g. in testing environments. Defaults to custom masked input.\n */\n inputElement?: InputInputElement\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * To open the date-picker by default. Defaults to `false`.\n */\n opened?: boolean\n showInput?: boolean\n onSubmit?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onChange?: (\n event: ReturnObject<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input gets focus.\n */\n onFocus?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input lose focus.\n */\n onBlur?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n}\n\nexport type InvalidDates = {\n invalidDate?: string\n invalidStartDate?: string\n invalidEndDate?: string\n}\n\nconst defaultProps: DatePickerInputProps = {\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå',\n separatorRexExp: /[-/ ]/g,\n statusState: 'error',\n opened: false,\n}\n\nfunction DatePickerInput(externalProps: DatePickerInputProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n isRange,\n maskOrder,\n separatorRexExp,\n id,\n title,\n submitAttributes,\n maskPlaceholder, // eslint-disable-line\n onFocus,\n onBlur,\n onChange, // eslint-disable-line\n onSubmit, // eslint-disable-line\n selectedDateTitle, // eslint-disable-line\n showInput, // eslint-disable-line\n inputElement,\n lang,\n disabled,\n skeleton,\n opened,\n size,\n status,\n statusState,\n statusProps,\n\n ...attributes\n } = props\n\n const [focusState, setFocusState] = useState<string>('virgin')\n // TODO: Turn into a ref, as these values should not trigger a rerender\n const [partialDates, setPartialDates] = useState({\n partialStartDate: '',\n partialEndDate: '',\n })\n\n const invalidDatesRef = useRef<InvalidDates>({\n invalidStartDate: null,\n invalidEndDate: null,\n })\n const isDateFullyFilledOutRef = useRef(false)\n\n const {\n updateDates,\n callOnChangeHandler,\n hasHadValidDate,\n getReturnObject,\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n startDate,\n endDate,\n props: { onType, label },\n } = useContext(DatePickerContext)\n\n const translation = useTranslation().DatePicker\n\n const modeDate = useMemo(\n () => ({\n startDate,\n endDate,\n }),\n [startDate, endDate]\n )\n\n const inputDates = useMemo(\n () => ({\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n }),\n [\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n ]\n )\n\n // Used in refList, and initiated inside object to to maintain the way of accessing mimic `this`, used in this component\n // Should probably refactor at one point, or move to own hook\n const startDayRef = useRef<HTMLInputElement>()\n const startMonthRef = useRef<HTMLInputElement>()\n const startYearRef = useRef<HTMLInputElement>()\n const endDayRef = useRef<HTMLInputElement>()\n const endMonthRef = useRef<HTMLInputElement>()\n const endYearRef = useRef<HTMLInputElement>()\n\n const inputRefs = useMemo(\n () => ({\n startDayRef,\n startMonthRef,\n startYearRef,\n endDayRef,\n endMonthRef,\n endYearRef,\n }),\n []\n )\n\n const startDayDateRef = useRef<string>()\n const endDayDateRef = useRef<string>()\n const startMonthDateRef = useRef<string>()\n const endMonthDateRef = useRef<string>()\n const startYearDateRef = useRef<string>()\n const endYearDateRef = useRef<string>()\n\n const dateRefs = useMemo(\n () => ({\n startDay: startDayDateRef,\n startMonth: endDayDateRef,\n startYear: startMonthDateRef,\n endDay: endMonthDateRef,\n endMonth: startYearDateRef,\n endYear: endYearDateRef,\n }),\n []\n )\n\n const startDateRef = useRef<Date>()\n const endDateRef = useRef<Date>()\n\n const temporaryDates = useMemo(\n () => ({ startDate: startDateRef, endDate: endDateRef }),\n []\n )\n\n const refList = useRef<Array<MutableRefObject<HTMLInputElement>>>()\n\n const focusMode = useRef<string>()\n\n const maskList = useMemo(() => {\n const separators = maskOrder.match(separatorRexExp)\n\n return maskOrder\n .split(separatorRexExp)\n .reduce<Array<string>>((acc, cur) => {\n if (!cur) {\n return acc\n }\n\n acc.push(cur)\n\n if (separators.length > 0) {\n // makes sure that separators are added at the correct places and removed from array when added\n acc.push(separators.shift())\n }\n\n return acc\n }, [])\n }, [maskOrder, separatorRexExp])\n\n const pasteHandler = useCallback(\n async (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!focusMode.current) {\n return // Stop here\n }\n\n const success = (\n event.clipboardData ||\n (typeof window !== 'undefined' && window['clipboardData'])\n ).getData('text')\n\n if (!success) {\n return // Stop here\n }\n\n event.preventDefault()\n\n try {\n const separators = ['.', '/']\n const possibleFormats = ['yyyy-MM-dd']\n\n // TODO: Merge these loops\n possibleFormats.forEach((date) => {\n separators.forEach((sep) => {\n possibleFormats.push(date.replace(/-/g, sep))\n })\n })\n\n possibleFormats.forEach((date) => {\n possibleFormats.push(date.split('').reverse().join(''))\n })\n\n let date: Date\n let index = 0\n\n for (index; index < possibleFormats.length; ++index) {\n date = convertStringToDate(success, {\n dateFormat: possibleFormats[index],\n })\n\n if (date) {\n break\n }\n }\n\n const mode =\n focusMode.current === 'start' ? 'startDate' : 'endDate'\n\n if (date) {\n updateDates({\n [mode]: date,\n })\n }\n } catch (error: unknown) {\n warn(error)\n }\n },\n [updateDates]\n )\n\n const callOnChangeAsInvalid = useCallback(\n (state: {\n endDate?: Date\n starDate?: Date\n event: React.ChangeEvent<HTMLInputElement>\n }) => {\n updateDates(\n {\n hoverDate: null,\n },\n (dates) => {\n // Should fire if user has filled out an invalid date,\n // or if the date was valid. Like if the user has pressed backspace or removed the valid date.\n if (isDateFullyFilledOutRef.current || hasHadValidDate) {\n const { startDate, endDate, event } = {\n ...state,\n ...dates,\n }\n callOnChangeHandler({\n startDate,\n endDate,\n event,\n ...invalidDatesRef.current,\n })\n }\n }\n )\n },\n [updateDates, callOnChangeHandler, hasHadValidDate]\n )\n\n const callOnChange = useCallback(\n ({\n startDate,\n endDate,\n event,\n }: {\n startDate?: Date\n endDate?: Date\n event:\n | React.ChangeEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n }) => {\n const state = {}\n if (typeof startDate !== 'undefined' && isValid(startDate)) {\n state['startDate'] = startDate\n }\n if (!isRange) {\n endDate = startDate\n }\n if (typeof endDate !== 'undefined' && isValid(endDate)) {\n state['endDate'] = endDate\n }\n\n updateDates(state, (dates) => {\n if (\n (typeof startDate !== 'undefined' && isValid(startDate)) ||\n (typeof endDate !== 'undefined' && isValid(endDate))\n ) {\n callOnChangeHandler({\n event,\n ...dates,\n ...invalidDatesRef.current,\n })\n }\n })\n },\n [updateDates, callOnChangeHandler, isRange]\n )\n\n const callOnType = useCallback(\n ({ event }: { event: React.ChangeEvent<HTMLInputElement> }) => {\n const getDates = () =>\n ['start', 'end'].reduce(\n (acc, mode) => {\n acc[`${mode}Date`] = [\n dateRefs[`${mode}Year`].current ||\n inputDates[`__${mode}Year`] ||\n 'yyyy',\n dateRefs[`${mode}Month`].current ||\n inputDates[`__${mode}Month`] ||\n 'mm',\n dateRefs[`${mode}Day`].current ||\n inputDates[`__${mode}Day`] ||\n 'dd',\n ].join('-')\n return acc\n },\n { startDate: undefined, endDate: undefined }\n )\n\n // Get the typed dates, so we can ...\n const { startDate, endDate } = getDates()\n // Get the partial dates, so we can know if something was typed or not in an optional date field\n const partialStartDate = startDate\n const partialEndDate = endDate\n\n setPartialDates({\n partialStartDate,\n partialEndDate,\n })\n\n const parsedStartDate = parseISO(startDate)\n const parsedEndDate = parseISO(endDate)\n\n const isStartDateValid = isValid(parsedStartDate)\n const isEndDateValid = isValid(parsedEndDate)\n\n const {\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject\n } = getReturnObject({\n startDate: isStartDateValid ? parsedStartDate : null,\n endDate: isEndDateValid ? parsedEndDate : null,\n event,\n partialStartDate,\n partialEndDate,\n ...invalidDatesRef.current,\n })\n\n // Re-assigns dates to the typed date, instead of `null` from getReturnObject, if dates are invalid\n const typedDates = {\n ...(!isRange && is_valid === false && { date: startDate }),\n ...(isRange &&\n is_valid_start_date === false && { start_date: startDate }),\n ...(isRange &&\n is_valid_end_date === false && { end_date: endDate }),\n }\n\n onType?.({\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject,\n ...typedDates,\n })\n },\n [isRange, dateRefs, getReturnObject, inputDates, onType]\n )\n\n const prepareCounting = useCallback(\n async ({\n keyCode,\n target,\n event,\n }: {\n keyCode: string\n target: HTMLInputElement\n event: React.KeyboardEvent<HTMLInputElement>\n }) => {\n try {\n const isDate = target\n .getAttribute('class')\n .match(/__input--(day|month|year)($|\\s)/)[1]\n\n const isInRange = target\n .getAttribute('id')\n .match(/-(start|end)-(day|month|year)/)[1]\n\n let date = isInRange === 'start' ? startDate : endDate\n\n // do nothing if date is not set yet\n if (!date) {\n return\n }\n\n const count = keyCode === 'ArrowUp' ? 1 : -1\n\n if (keyCode === 'ArrowUp' || keyCode === 'ArrowDown') {\n switch (isDate) {\n case 'day':\n date = addDays(date, count)\n break\n case 'month':\n date = addMonths(date, count)\n break\n case 'year':\n date = addYears(date, count)\n break\n }\n }\n\n callOnChange({\n [isInRange === 'start' ? 'startDate' : 'endDate']: date,\n event,\n })\n\n await wait(1) // to get the correct position afterwards\n\n selectAll(target)\n } catch (e) {\n warn(e)\n }\n },\n [startDate, endDate, callOnChange]\n )\n\n const selectStart = useCallback((target: HTMLInputElement) => {\n target.focus()\n target.setSelectionRange(0, 0)\n }, [])\n\n const onFocusHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n try {\n selectAll(event.target)\n } catch (e) {\n warn(e)\n }\n\n setFocusState('focus')\n\n onFocus?.({\n ...event,\n ...getReturnObject({ event }),\n })\n },\n [getReturnObject, onFocus]\n )\n\n const onBlurHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n focusMode.current = null\n setFocusState('blur')\n\n onBlur?.({\n ...event,\n ...getReturnObject({ event }),\n ...partialDates,\n })\n },\n [onBlur, getReturnObject, partialDates]\n )\n\n const onKeyDownHandler = useCallback(\n async (event: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode = event.key\n const target = event.target as HTMLInputElement\n\n if (target.selectionStart !== target.selectionEnd) {\n selectStart(target)\n }\n\n // only to process key up and down press\n switch (keyCode) {\n case 'ArrowUp':\n case 'ArrowDown':\n event.persist()\n event.preventDefault()\n prepareCounting({ event, keyCode, target })\n return false\n case 'Tab':\n return false\n }\n\n // the rest is for value entry\n\n const size = parseFloat(target.getAttribute('size'))\n const firstSelectionStart = target.selectionStart\n\n await wait(1) // to get the correct position afterwards\n\n const secondSelectionStart = target.selectionStart\n // Always false (since the old keycode function set number keys to undefined) but needed to not break tests\n const isValid = /[0-9]/g.test(keyCode)\n const refListArray = refList.current\n\n const index = refListArray.findIndex(\n ({ current }) => current === target\n )\n\n if (\n index < refListArray.length - 1 &&\n ((secondSelectionStart === size &&\n isValid &&\n keyCode !== 'ArrowLeft' &&\n keyCode !== 'Backspace') ||\n (firstSelectionStart === size && keyCode === 'ArrowRight'))\n ) {\n try {\n // stop in case there is no next input element\n if (!refListArray[index + 1].current) {\n return\n }\n const nextSibling = refListArray[index + 1].current\n if (nextSibling) {\n nextSibling.focus()\n nextSibling.setSelectionRange(0, 0)\n }\n } catch (e) {\n warn(e)\n }\n } else if (firstSelectionStart === 0 && index > 0) {\n switch (keyCode) {\n case 'ArrowLeft':\n case 'Backspace':\n try {\n const prevSibling = refListArray[index - 1].current\n if (prevSibling) {\n const endPos = prevSibling.value.length\n prevSibling.focus()\n prevSibling.setSelectionRange(endPos, endPos)\n }\n } catch (e) {\n warn(e)\n }\n break\n }\n }\n },\n [prepareCounting, selectStart]\n )\n\n const setDate = useCallback(\n (\n event: React.ChangeEvent<HTMLInputElement>,\n mode: 'start' | 'end',\n type: 'Day' | 'Month' | 'Year'\n ) => {\n event.persist() // since we have later a state update and afterwards the callback\n\n const value = (event.target as HTMLInputElement).value\n\n dateRefs[`${mode}${type}`].current = value\n\n if (modeDate[`${mode}Date`]) {\n temporaryDates[`${mode}Date`].current = modeDate[`${mode}Date`]\n }\n\n const fallback = temporaryDates[`${mode}Date`].current\n\n // provide fallbacks to create a temp fallback\n const year =\n dateRefs[`${mode}Year`]?.current ||\n (fallback && fallback.getFullYear())\n const month =\n dateRefs[`${mode}Month`]?.current ||\n (fallback && fallback.getMonth() + 1)\n const day =\n dateRefs[`${mode}Day`]?.current || (fallback && fallback.getDate())\n\n // calculate new date\n const date = new Date(\n parseFloat(String(year)),\n parseFloat(String(month)) - 1,\n parseFloat(String(day))\n )\n\n const isValidDate =\n !/[^0-9]/.test(String(day)) &&\n !/[^0-9]/.test(String(month)) &&\n !/[^0-9]/.test(String(year)) &&\n isValid(date) &&\n date.getDate() == parseFloat(String(day)) &&\n date.getMonth() + 1 == parseFloat(String(month)) &&\n date.getFullYear() == parseFloat(String(year))\n\n const dateString = `${year}-${month}-${day}`\n\n isDateFullyFilledOutRef.current =\n /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(dateString)\n\n // update the date\n if (isValidDate) {\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: null }\n : { invalidEndDate: null }),\n }\n\n callOnChange({\n [`${mode}Date`]: date,\n event,\n })\n } else {\n updateDates({\n [`${mode}Date`]: null,\n [`__${mode}${type}`]: value,\n })\n\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: dateString }\n : { invalidEndDate: dateString }),\n }\n\n callOnChangeAsInvalid({\n [`${mode}Date`]: null,\n event,\n })\n }\n\n callOnType({ event })\n },\n [\n updateDates,\n callOnChange,\n callOnChangeAsInvalid,\n callOnType,\n modeDate,\n dateRefs,\n temporaryDates,\n ]\n )\n\n const dateSetters = useMemo(\n () => ({\n set_startDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Day')\n },\n\n set_startMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Month')\n },\n\n set_startYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Year')\n },\n\n set_endDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Day')\n },\n\n set_endMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Month')\n },\n\n set_endYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Year')\n },\n }),\n [setDate]\n )\n\n const getPlaceholderChar = useCallback(\n (value: string) => {\n const index = maskOrder.indexOf(value)\n return maskPlaceholder[index]\n },\n [maskOrder, maskPlaceholder]\n )\n\n // TODO: Replace with MutliInputMask\n const generateDateList = useCallback(\n (\n element: Omit<React.HTMLProps<HTMLInputElement>, 'size'> &\n DatePickerEventAttributes,\n mode: 'start' | 'end'\n ) => {\n return maskList.map((value, i) => {\n const state = value.slice(0, 1)\n const placeholderChar = getPlaceholderChar(value)\n const { day, month, year } = translation\n const isRangeLabel = isRange ? `${translation[mode]} ` : ''\n\n if (!separatorRexExp.test(value)) {\n if (!inputElement) {\n element = {\n ...element,\n onKeyDown: onKeyDownHandler,\n onPaste: pasteHandler,\n onFocus: (e) => {\n focusMode.current = mode\n onFocusHandler(e)\n },\n onBlur: onBlurHandler,\n placeholderChar,\n }\n }\n\n // this makes it possible to use a vanilla <input /> like: input_element=\"input\"\n const DateField =\n inputElement && React.isValidElement(inputElement)\n ? inputElement.type\n : InputElement\n\n const inputSizeClassName =\n size && `dnb-date-picker__input--${size}`\n\n switch (state) {\n case 'd':\n refList.current.push(inputRefs[`${mode}DayRef`])\n\n return (\n <React.Fragment key={'dd' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-day`}\n key={'di' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--day',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-3]/, /[0-9]/]}\n inputRef={inputRefs[`${mode}DayRef`]}\n onChange={dateSetters[`set_${mode}Day`]}\n value={inputDates[`__${mode}Day`] || ''}\n aria-labelledby={`${id}-${mode}-day-label`}\n />\n <label\n key={'dl' + i}\n hidden\n id={`${id}-${mode}-day-label`}\n htmlFor={`${id}-${mode}-day`}\n >\n {isRangeLabel + day}\n </label>\n </React.Fragment>\n )\n case 'm':\n refList.current.push(inputRefs[`${mode}MonthRef`])\n\n return (\n <React.Fragment key={'mm' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-month`}\n key={'mi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--month',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-1]/, /[0-9]/]}\n inputRef={inputRefs[`${mode}MonthRef`]}\n onChange={dateSetters[`set_${mode}Month`]}\n value={inputDates[`__${mode}Month`] || ''}\n aria-labelledby={`${id}-${mode}-month-label`}\n />\n <label\n key={'ml' + i}\n hidden\n id={`${id}-${mode}-month-label`}\n htmlFor={`${id}-${mode}-month`}\n >\n {isRangeLabel + month}\n </label>\n </React.Fragment>\n )\n case 'y':\n refList.current.push(inputRefs[`${mode}YearRef`])\n\n return (\n <React.Fragment key={'yy' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-year`}\n key={'yi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--year',\n inputSizeClassName\n )}\n size={4}\n mask={[/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/]}\n inputRef={inputRefs[`${mode}YearRef`]}\n onChange={dateSetters[`set_${mode}Year`]}\n value={inputDates[`__${mode}Year`] || ''}\n aria-labelledby={`${id}-${mode}-year-label`}\n />\n <label\n key={'yl' + i}\n hidden\n id={`${id}-${mode}-year-label`}\n htmlFor={`${id}-${mode}-year`}\n >\n {isRangeLabel + year}\n </label>\n </React.Fragment>\n )\n }\n }\n return (\n <span\n key={'s' + i}\n className=\"dnb-date-picker--separator\"\n aria-hidden\n >\n {placeholderChar}\n </span>\n )\n })\n },\n [\n id,\n inputElement,\n isRange,\n size,\n translation,\n separatorRexExp,\n dateSetters,\n inputRefs,\n maskList,\n onBlurHandler,\n onFocusHandler,\n getPlaceholderChar,\n pasteHandler,\n onKeyDownHandler,\n inputDates,\n ]\n )\n\n const renderInputElement = useCallback(\n (\n element: React.HTMLProps<HTMLInputElement> &\n DatePickerEventAttributes\n ) => {\n refList.current = []\n const startDateList = generateDateList(element, 'start')\n const endDateList = generateDateList(element, 'end')\n\n return (\n <span\n id={`${id}-input`}\n className=\"dnb-date-picker__input__wrapper\"\n >\n {startDateList}\n {isRange && (\n <span className=\"dnb-date-picker--separator\" aria-hidden>\n {' – '}\n </span>\n )}\n {isRange && endDateList}\n </span>\n )\n },\n [id, isRange, generateDateList]\n )\n\n const formatDate = useMemo(\n () =>\n selectedDateTitle\n ? `${selectedDateTitle}, ${translation.openPickerText}`\n : translation.openPickerText,\n [selectedDateTitle, translation]\n )\n\n validateDOMAttributes(props, attributes)\n validateDOMAttributes(null, submitAttributes)\n\n const SubmitElement: React.ElementType = useMemo(\n () => (showInput ? SubmitButton : Button),\n [showInput]\n )\n\n if (!showInput) {\n // Use Button inner ref\n submitAttributes.innerRef = submitAttributes.ref\n submitAttributes.ref = null\n }\n\n return (\n <fieldset className=\"dnb-date-picker__fieldset\" lang={lang}>\n {label && <legend className=\"dnb-sr-only\">{label}</legend>}\n <Input\n id={`${id}__input`}\n input_state={disabled ? 'disabled' : focusState}\n input_element={\n inputElement && typeof inputElement !== 'string'\n ? typeof inputElement === 'function'\n ? inputElement(props)\n : inputElement\n : renderInputElement\n }\n disabled={disabled || skeleton}\n skeleton={skeleton}\n size={size}\n status={!opened ? status : null}\n status_state={statusState}\n {...statusProps}\n submit_element={\n <SubmitElement\n id={id}\n disabled={disabled}\n skeleton={skeleton}\n className={classnames(\n showInput && 'dnb-button--input-button',\n opened ? 'dnb-button--active' : null\n )}\n aria-label={formatDate}\n title={title}\n size={size}\n status={status}\n status_state={statusState}\n type=\"button\"\n icon=\"calendar\"\n variant=\"secondary\"\n on_submit={onSubmit}\n on_click={onSubmit}\n {...submitAttributes}\n {...statusProps}\n />\n }\n lang={lang}\n {...attributes}\n />\n </fieldset>\n )\n}\n\nexport default DatePickerInput\n\nfunction selectAll(target: HTMLInputElement) {\n target.focus()\n target.select()\n}\n\nfunction InputElement({ className, value, ...props }: TextMaskProps) {\n return (\n <TextMask\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n spellCheck={false}\n autoCorrect=\"off\"\n className={classnames(\n className,\n /\\d+/.test(String(value)) && 'dnb-date-picker__input--highlight'\n )}\n value={value}\n {...props}\n />\n )\n}\n\nconst wait = (duration: number) =>\n new Promise((r) => setTimeout(r, duration))\n"],"mappings":";;;;;;;AAKA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAUA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,SAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,QAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,SAAA,GAAAJ,sBAAA,CAAAF,OAAA;AAEA,IAAAO,WAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,SAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,OAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,MAAA,GAAAX,uBAAA,CAAAC,OAAA;AAEA,IAAAW,gBAAA,GAAAX,OAAA;AACA,IAAAY,eAAA,GAAAZ,OAAA;AACA,IAAAa,kBAAA,GAAAX,sBAAA,CAAAF,OAAA;AAUA,IAAAc,OAAA,GAAAd,OAAA;AAA6C,IAAAe,KAAA;AAAA,MAAAC,SAAA;EAAAC,UAAA;EAAAC,UAAA;AAAA,SAAAhB,uBAAAiB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAxB,wBAAAoB,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAAA,SAAAI,yBAAAF,MAAA,EAAAG,QAAA,QAAAH,MAAA,yBAAAJ,MAAA,GAAAQ,6BAAA,CAAAJ,MAAA,EAAAG,QAAA,OAAAhB,GAAA,EAAAU,CAAA,MAAAb,MAAA,CAAAqB,qBAAA,QAAAC,gBAAA,GAAAtB,MAAA,CAAAqB,qBAAA,CAAAL,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAAS,gBAAA,CAAAP,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAAmB,gBAAA,CAAAT,CAAA,OAAAM,QAAA,CAAAI,OAAA,CAAApB,GAAA,uBAAAH,MAAA,CAAAI,SAAA,CAAAoB,oBAAA,CAAAlB,IAAA,CAAAU,MAAA,EAAAb,GAAA,aAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,cAAAS,MAAA;AAAA,SAAAQ,8BAAAJ,MAAA,EAAAG,QAAA,QAAAH,MAAA,yBAAAJ,MAAA,WAAAa,UAAA,GAAAzB,MAAA,CAAA0B,IAAA,CAAAV,MAAA,OAAAb,GAAA,EAAAU,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAY,UAAA,CAAAV,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAAsB,UAAA,CAAAZ,CAAA,OAAAM,QAAA,CAAAI,OAAA,CAAApB,GAAA,kBAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,YAAAS,MAAA;AAAA,SAAAe,QAAAC,MAAA,EAAAC,cAAA,QAAAH,IAAA,GAAA1B,MAAA,CAAA0B,IAAA,CAAAE,MAAA,OAAA5B,MAAA,CAAAqB,qBAAA,QAAAS,OAAA,GAAA9B,MAAA,CAAAqB,qBAAA,CAAAO,MAAA,GAAAC,cAAA,KAAAC,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAhC,MAAA,CAAAE,wBAAA,CAAA0B,MAAA,EAAAI,GAAA,EAAAC,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAjB,KAAA,CAAAS,IAAA,EAAAI,OAAA,YAAAJ,IAAA;AAAA,SAAAS,cAAAvB,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAc,OAAA,CAAA3B,MAAA,CAAAgB,MAAA,OAAAoB,OAAA,WAAAjC,GAAA,IAAAkC,eAAA,CAAAzB,MAAA,EAAAT,GAAA,EAAAa,MAAA,CAAAb,GAAA,SAAAH,MAAA,CAAAsC,yBAAA,GAAAtC,MAAA,CAAAuC,gBAAA,CAAA3B,MAAA,EAAAZ,MAAA,CAAAsC,yBAAA,CAAAtB,MAAA,KAAAW,OAAA,CAAA3B,MAAA,CAAAgB,MAAA,GAAAoB,OAAA,WAAAjC,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAW,MAAA,EAAAT,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAc,MAAA,EAAAb,GAAA,iBAAAS,MAAA;AAAA,SAAAyB,gBAAAlD,GAAA,EAAAgB,GAAA,EAAAqC,KAAA,IAAArC,GAAA,GAAAsC,cAAA,CAAAtC,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAAqC,KAAA,EAAAA,KAAA,EAAAP,UAAA,QAAAS,YAAA,QAAAC,QAAA,oBAAAxD,GAAA,CAAAgB,GAAA,IAAAqC,KAAA,WAAArD,GAAA;AAAA,SAAAsD,eAAAG,GAAA,QAAAzC,GAAA,GAAA0C,YAAA,CAAAD,GAAA,2BAAAzC,GAAA,gBAAAA,GAAA,GAAA2C,MAAA,CAAA3C,GAAA;AAAA,SAAA0C,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAA3C,IAAA,CAAAyC,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAwE7C,MAAMS,YAAkC,GAAG;EACzCC,SAAS,EAAE,YAAY;EACvBC,eAAe,EAAE,YAAY;EAC7BC,eAAe,EAAE,QAAQ;EACzBC,WAAW,EAAE,OAAO;EACpBC,MAAM,EAAE;AACV,CAAC;AAED,SAASC,eAAeA,CAACC,aAAmC,EAAE;EAC5D,MAAMC,KAAK,GAAA7B,aAAA,CAAAA,aAAA,KAAQqB,YAAY,GAAKO,aAAa,CAAE;EAEnD,MAAM;MACJE,OAAO;MACPR,SAAS;MACTE,eAAe;MACfO,EAAE;MACFC,KAAK;MACLC,gBAAgB;MAChBV,eAAe;MACfW,OAAO;MACPC,MAAM;MACNC,QAAQ;MACRC,QAAQ;MACRC,iBAAiB;MACjBC,SAAS;MACTC,YAAY;MACZC,IAAI;MACJC,QAAQ;MACRC,QAAQ;MACRjB,MAAM;MACNkB,IAAI;MACJC,MAAM;MACNpB,WAAW;MACXqB;IAGF,CAAC,GAAGjB,KAAK;IADJkB,UAAU,GAAAhE,wBAAA,CACX8C,KAAK,EAAAhF,SAAA;EAET,MAAM,CAACmG,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAS,QAAQ,CAAC;EAE9D,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAF,eAAQ,EAAC;IAC/CG,gBAAgB,EAAE,EAAE;IACpBC,cAAc,EAAE;EAClB,CAAC,CAAC;EAEF,MAAMC,eAAe,GAAG,IAAAC,aAAM,EAAe;IAC3CC,gBAAgB,EAAE,IAAI;IACtBC,cAAc,EAAE;EAClB,CAAC,CAAC;EACF,MAAMC,uBAAuB,GAAG,IAAAH,aAAM,EAAC,KAAK,CAAC;EAE7C,MAAM;IACJI,WAAW;IACXC,mBAAmB;IACnBC,eAAe;IACfC,eAAe;IACfC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,QAAQ;IACRC,UAAU;IACVC,SAAS;IACTC,SAAS;IACTC,OAAO;IACP1C,KAAK,EAAE;MAAE2C,MAAM;MAAEC;IAAM;EACzB,CAAC,GAAG,IAAAC,iBAAU,EAACC,0BAAiB,CAAC;EAEjC,MAAMC,WAAW,GAAG,IAAAC,sBAAc,EAAC,CAAC,CAACC,UAAU;EAE/C,MAAMC,QAAQ,GAAG,IAAAC,cAAO,EACtB,OAAO;IACLV,SAAS;IACTC;EACF,CAAC,CAAC,EACF,CAACD,SAAS,EAAEC,OAAO,CACrB,CAAC;EAED,MAAMU,UAAU,GAAG,IAAAD,cAAO,EACxB,OAAO;IACLhB,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,QAAQ;IACRC,UAAU;IACVC;EACF,CAAC,CAAC,EACF,CACEL,UAAU,EACVC,YAAY,EACZC,WAAW,EACXC,QAAQ,EACRC,UAAU,EACVC,SAAS,CAEb,CAAC;EAID,MAAMa,WAAW,GAAG,IAAA1B,aAAM,EAAmB,CAAC;EAC9C,MAAM2B,aAAa,GAAG,IAAA3B,aAAM,EAAmB,CAAC;EAChD,MAAM4B,YAAY,GAAG,IAAA5B,aAAM,EAAmB,CAAC;EAC/C,MAAM6B,SAAS,GAAG,IAAA7B,aAAM,EAAmB,CAAC;EAC5C,MAAM8B,WAAW,GAAG,IAAA9B,aAAM,EAAmB,CAAC;EAC9C,MAAM+B,UAAU,GAAG,IAAA/B,aAAM,EAAmB,CAAC;EAE7C,MAAMgC,SAAS,GAAG,IAAAR,cAAO,EACvB,OAAO;IACLE,WAAW;IACXC,aAAa;IACbC,YAAY;IACZC,SAAS;IACTC,WAAW;IACXC;EACF,CAAC,CAAC,EACF,EACF,CAAC;EAED,MAAME,eAAe,GAAG,IAAAjC,aAAM,EAAS,CAAC;EACxC,MAAMkC,aAAa,GAAG,IAAAlC,aAAM,EAAS,CAAC;EACtC,MAAMmC,iBAAiB,GAAG,IAAAnC,aAAM,EAAS,CAAC;EAC1C,MAAMoC,eAAe,GAAG,IAAApC,aAAM,EAAS,CAAC;EACxC,MAAMqC,gBAAgB,GAAG,IAAArC,aAAM,EAAS,CAAC;EACzC,MAAMsC,cAAc,GAAG,IAAAtC,aAAM,EAAS,CAAC;EAEvC,MAAMuC,QAAQ,GAAG,IAAAf,cAAO,EACtB,OAAO;IACLgB,QAAQ,EAAEP,eAAe;IACzBQ,UAAU,EAAEP,aAAa;IACzBQ,SAAS,EAAEP,iBAAiB;IAC5BQ,MAAM,EAAEP,eAAe;IACvBQ,QAAQ,EAAEP,gBAAgB;IAC1BQ,OAAO,EAAEP;EACX,CAAC,CAAC,EACF,EACF,CAAC;EAED,MAAMQ,YAAY,GAAG,IAAA9C,aAAM,EAAO,CAAC;EACnC,MAAM+C,UAAU,GAAG,IAAA/C,aAAM,EAAO,CAAC;EAEjC,MAAMgD,cAAc,GAAG,IAAAxB,cAAO,EAC5B,OAAO;IAAEV,SAAS,EAAEgC,YAAY;IAAE/B,OAAO,EAAEgC;EAAW,CAAC,CAAC,EACxD,EACF,CAAC;EAED,MAAME,OAAO,GAAG,IAAAjD,aAAM,EAA4C,CAAC;EAEnE,MAAMkD,SAAS,GAAG,IAAAlD,aAAM,EAAS,CAAC;EAElC,MAAMmD,QAAQ,GAAG,IAAA3B,cAAO,EAAC,MAAM;IAC7B,MAAM4B,UAAU,GAAGtF,SAAS,CAACuF,KAAK,CAACrF,eAAe,CAAC;IAEnD,OAAOF,SAAS,CACbwF,KAAK,CAACtF,eAAe,CAAC,CACtBuF,MAAM,CAAgB,CAACC,GAAG,EAAEC,GAAG,KAAK;MACnC,IAAI,CAACA,GAAG,EAAE;QACR,OAAOD,GAAG;MACZ;MAEAA,GAAG,CAACjH,IAAI,CAACkH,GAAG,CAAC;MAEb,IAAIL,UAAU,CAAChI,MAAM,GAAG,CAAC,EAAE;QAEzBoI,GAAG,CAACjH,IAAI,CAAC6G,UAAU,CAACM,KAAK,CAAC,CAAC,CAAC;MAC9B;MAEA,OAAOF,GAAG;IACZ,CAAC,EAAE,EAAE,CAAC;EACV,CAAC,EAAE,CAAC1F,SAAS,EAAEE,eAAe,CAAC,CAAC;EAEhC,MAAM2F,YAAY,GAAG,IAAAC,kBAAW,EAC9B,MAAOC,KAA6C,IAAK;IACvD,IAAI,CAACX,SAAS,CAACY,OAAO,EAAE;MACtB;IACF;IAEA,MAAMC,OAAO,GAAG,CACdF,KAAK,CAACG,aAAa,IAClB,OAAOC,MAAM,KAAK,WAAW,IAAIA,MAAM,CAAC,eAAe,CAAE,EAC1DC,OAAO,CAAC,MAAM,CAAC;IAEjB,IAAI,CAACH,OAAO,EAAE;MACZ;IACF;IAEAF,KAAK,CAACM,cAAc,CAAC,CAAC;IAEtB,IAAI;MACF,MAAMf,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;MAC7B,MAAMgB,eAAe,GAAG,CAAC,YAAY,CAAC;MAGtCA,eAAe,CAAC3H,OAAO,CAAE4H,IAAI,IAAK;QAChCjB,UAAU,CAAC3G,OAAO,CAAE6H,GAAG,IAAK;UAC1BF,eAAe,CAAC7H,IAAI,CAAC8H,IAAI,CAACE,OAAO,CAAC,IAAI,EAAED,GAAG,CAAC,CAAC;QAC/C,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFF,eAAe,CAAC3H,OAAO,CAAE4H,IAAI,IAAK;QAChCD,eAAe,CAAC7H,IAAI,CAAC8H,IAAI,CAACf,KAAK,CAAC,EAAE,CAAC,CAACkB,OAAO,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC,CAAC;MACzD,CAAC,CAAC;MAEF,IAAIJ,IAAU;MACd,IAAIK,KAAK,GAAG,CAAC;MAEb,KAAKA,KAAK,EAAEA,KAAK,GAAGN,eAAe,CAAChJ,MAAM,EAAE,EAAEsJ,KAAK,EAAE;QACnDL,IAAI,GAAG,IAAAM,mCAAmB,EAACZ,OAAO,EAAE;UAClCa,UAAU,EAAER,eAAe,CAACM,KAAK;QACnC,CAAC,CAAC;QAEF,IAAIL,IAAI,EAAE;UACR;QACF;MACF;MAEA,MAAMQ,IAAI,GACR3B,SAAS,CAACY,OAAO,KAAK,OAAO,GAAG,WAAW,GAAG,SAAS;MAEzD,IAAIO,IAAI,EAAE;QACRjE,WAAW,CAAC;UACV,CAACyE,IAAI,GAAGR;QACV,CAAC,CAAC;MACJ;IACF,CAAC,CAAC,OAAOS,KAAc,EAAE;MACvB,IAAAC,qBAAI,EAACD,KAAK,CAAC;IACb;EACF,CAAC,EACD,CAAC1E,WAAW,CACd,CAAC;EAED,MAAM4E,qBAAqB,GAAG,IAAApB,kBAAW,EACtCqB,KAIA,IAAK;IACJ7E,WAAW,CACT;MACE8E,SAAS,EAAE;IACb,CAAC,EACAC,KAAK,IAAK;MAGT,IAAIhF,uBAAuB,CAAC2D,OAAO,IAAIxD,eAAe,EAAE;QACtD,MAAM;UAAEQ,SAAS;UAAEC,OAAO;UAAE8C;QAAM,CAAC,GAAArH,aAAA,CAAAA,aAAA,KAC9ByI,KAAK,GACLE,KAAK,CACT;QACD9E,mBAAmB,CAAA7D,aAAA;UACjBsE,SAAS;UACTC,OAAO;UACP8C;QAAK,GACF9D,eAAe,CAAC+D,OAAO,CAC3B,CAAC;MACJ;IACF,CACF,CAAC;EACH,CAAC,EACD,CAAC1D,WAAW,EAAEC,mBAAmB,EAAEC,eAAe,CACpD,CAAC;EAED,MAAM8E,YAAY,GAAG,IAAAxB,kBAAW,EAC9ByB,IAAA,IAUM;IAAA,IAVL;MACCvE,SAAS;MACTC,OAAO;MACP8C;IAOF,CAAC,GAAAwB,IAAA;IACC,MAAMJ,KAAK,GAAG,CAAC,CAAC;IAChB,IAAI,OAAOnE,SAAS,KAAK,WAAW,IAAI,IAAAwE,gBAAO,EAACxE,SAAS,CAAC,EAAE;MAC1DmE,KAAK,CAAC,WAAW,CAAC,GAAGnE,SAAS;IAChC;IACA,IAAI,CAACxC,OAAO,EAAE;MACZyC,OAAO,GAAGD,SAAS;IACrB;IACA,IAAI,OAAOC,OAAO,KAAK,WAAW,IAAI,IAAAuE,gBAAO,EAACvE,OAAO,CAAC,EAAE;MACtDkE,KAAK,CAAC,SAAS,CAAC,GAAGlE,OAAO;IAC5B;IAEAX,WAAW,CAAC6E,KAAK,EAAGE,KAAK,IAAK;MAC5B,IACG,OAAOrE,SAAS,KAAK,WAAW,IAAI,IAAAwE,gBAAO,EAACxE,SAAS,CAAC,IACtD,OAAOC,OAAO,KAAK,WAAW,IAAI,IAAAuE,gBAAO,EAACvE,OAAO,CAAE,EACpD;QACAV,mBAAmB,CAAA7D,aAAA,CAAAA,aAAA;UACjBqH;QAAK,GACFsB,KAAK,GACLpF,eAAe,CAAC+D,OAAO,CAC3B,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAAC1D,WAAW,EAAEC,mBAAmB,EAAE/B,OAAO,CAC5C,CAAC;EAED,MAAMiH,UAAU,GAAG,IAAA3B,kBAAW,EAC5B4B,KAAA,IAA+D;IAAA,IAA9D;MAAE3B;IAAsD,CAAC,GAAA2B,KAAA;IACxD,MAAMC,QAAQ,GAAGA,CAAA,KACf,CAAC,OAAO,EAAE,KAAK,CAAC,CAAClC,MAAM,CACrB,CAACC,GAAG,EAAEqB,IAAI,KAAK;MACbrB,GAAG,CAAE,GAAEqB,IAAK,MAAK,CAAC,GAAG,CACnBtC,QAAQ,CAAE,GAAEsC,IAAK,MAAK,CAAC,CAACf,OAAO,IAC7BrC,UAAU,CAAE,KAAIoD,IAAK,MAAK,CAAC,IAC3B,MAAM,EACRtC,QAAQ,CAAE,GAAEsC,IAAK,OAAM,CAAC,CAACf,OAAO,IAC9BrC,UAAU,CAAE,KAAIoD,IAAK,OAAM,CAAC,IAC5B,IAAI,EACNtC,QAAQ,CAAE,GAAEsC,IAAK,KAAI,CAAC,CAACf,OAAO,IAC5BrC,UAAU,CAAE,KAAIoD,IAAK,KAAI,CAAC,IAC1B,IAAI,CACP,CAACJ,IAAI,CAAC,GAAG,CAAC;MACX,OAAOjB,GAAG;IACZ,CAAC,EACD;MAAE1C,SAAS,EAAErD,SAAS;MAAEsD,OAAO,EAAEtD;IAAU,CAC7C,CAAC;IAGH,MAAM;MAAEqD,SAAS;MAAEC;IAAQ,CAAC,GAAG0E,QAAQ,CAAC,CAAC;IAEzC,MAAM5F,gBAAgB,GAAGiB,SAAS;IAClC,MAAMhB,cAAc,GAAGiB,OAAO;IAE9BnB,eAAe,CAAC;MACdC,gBAAgB;MAChBC;IACF,CAAC,CAAC;IAEF,MAAM4F,eAAe,GAAG,IAAAC,iBAAQ,EAAC7E,SAAS,CAAC;IAC3C,MAAM8E,aAAa,GAAG,IAAAD,iBAAQ,EAAC5E,OAAO,CAAC;IAEvC,MAAM8E,gBAAgB,GAAG,IAAAP,gBAAO,EAACI,eAAe,CAAC;IACjD,MAAMI,cAAc,GAAG,IAAAR,gBAAO,EAACM,aAAa,CAAC;IAE7C,MAAAG,gBAAA,GAKIxF,eAAe,CAAA/D,aAAA;QACjBsE,SAAS,EAAE+E,gBAAgB,GAAGH,eAAe,GAAG,IAAI;QACpD3E,OAAO,EAAE+E,cAAc,GAAGF,aAAa,GAAG,IAAI;QAC9C/B,KAAK;QACLhE,gBAAgB;QAChBC;MAAc,GACXC,eAAe,CAAC+D,OAAO,CAC3B,CAAC;MAZI;QACJkC,QAAQ;QACRC,mBAAmB;QACnBC;MAEF,CAAC,GAAAH,gBAAA;MADII,YAAY,GAAA5K,wBAAA,CAAAwK,gBAAA,EAAAzM,UAAA;IAWjB,MAAM8M,UAAU,GAAA5J,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACV,CAAC8B,OAAO,IAAI0H,QAAQ,KAAK,KAAK,IAAI;MAAE3B,IAAI,EAAEvD;IAAU,CAAC,GACrDxC,OAAO,IACT2H,mBAAmB,KAAK,KAAK,IAAI;MAAEI,UAAU,EAAEvF;IAAU,CAAC,GACxDxC,OAAO,IACT4H,iBAAiB,KAAK,KAAK,IAAI;MAAEI,QAAQ,EAAEvF;IAAQ,CAAC,CACvD;IAEDC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAAxE,aAAA,CAAAA,aAAA;MACJwJ,QAAQ;MACRC,mBAAmB;MACnBC;IAAiB,GACdC,YAAY,GACZC,UAAU,CACd,CAAC;EACJ,CAAC,EACD,CAAC9H,OAAO,EAAEiE,QAAQ,EAAEhC,eAAe,EAAEkB,UAAU,EAAET,MAAM,CACzD,CAAC;EAED,MAAMuF,eAAe,GAAG,IAAA3C,kBAAW,EACjC,MAAA4C,KAAA,IAQM;IAAA,IARC;MACLC,OAAO;MACPxL,MAAM;MACN4I;IAKF,CAAC,GAAA2C,KAAA;IACC,IAAI;MACF,MAAME,MAAM,GAAGzL,MAAM,CAClB0L,YAAY,CAAC,OAAO,CAAC,CACrBtD,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC;MAE9C,MAAMuD,SAAS,GAAG3L,MAAM,CACrB0L,YAAY,CAAC,IAAI,CAAC,CAClBtD,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;MAE5C,IAAIgB,IAAI,GAAGuC,SAAS,KAAK,OAAO,GAAG9F,SAAS,GAAGC,OAAO;MAGtD,IAAI,CAACsD,IAAI,EAAE;QACT;MACF;MAEA,MAAMwC,KAAK,GAAGJ,OAAO,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;MAE5C,IAAIA,OAAO,KAAK,SAAS,IAAIA,OAAO,KAAK,WAAW,EAAE;QACpD,QAAQC,MAAM;UACZ,KAAK,KAAK;YACRrC,IAAI,GAAG,IAAAyC,gBAAO,EAACzC,IAAI,EAAEwC,KAAK,CAAC;YAC3B;UACF,KAAK,OAAO;YACVxC,IAAI,GAAG,IAAA0C,kBAAS,EAAC1C,IAAI,EAAEwC,KAAK,CAAC;YAC7B;UACF,KAAK,MAAM;YACTxC,IAAI,GAAG,IAAA2C,iBAAQ,EAAC3C,IAAI,EAAEwC,KAAK,CAAC;YAC5B;QACJ;MACF;MAEAzB,YAAY,CAAC;QACX,CAACwB,SAAS,KAAK,OAAO,GAAG,WAAW,GAAG,SAAS,GAAGvC,IAAI;QACvDR;MACF,CAAC,CAAC;MAEF,MAAMoD,IAAI,CAAC,CAAC,CAAC;MAEbC,SAAS,CAACjM,MAAM,CAAC;IACnB,CAAC,CAAC,OAAOkM,CAAC,EAAE;MACV,IAAApC,qBAAI,EAACoC,CAAC,CAAC;IACT;EACF,CAAC,EACD,CAACrG,SAAS,EAAEC,OAAO,EAAEqE,YAAY,CACnC,CAAC;EAED,MAAMgC,WAAW,GAAG,IAAAxD,kBAAW,EAAE3I,MAAwB,IAAK;IAC5DA,MAAM,CAACoM,KAAK,CAAC,CAAC;IACdpM,MAAM,CAACqM,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;EAChC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,cAAc,GAAG,IAAA3D,kBAAW,EAC/BC,KAAyC,IAAK;IAC7C,IAAI;MACFqD,SAAS,CAACrD,KAAK,CAAC5I,MAAM,CAAC;IACzB,CAAC,CAAC,OAAOkM,CAAC,EAAE;MACV,IAAApC,qBAAI,EAACoC,CAAC,CAAC;IACT;IAEA1H,aAAa,CAAC,OAAO,CAAC;IAEtBf,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAAlC,aAAA,CAAAA,aAAA,KACFqH,KAAK,GACLtD,eAAe,CAAC;MAAEsD;IAAM,CAAC,CAAC,CAC9B,CAAC;EACJ,CAAC,EACD,CAACtD,eAAe,EAAE7B,OAAO,CAC3B,CAAC;EAED,MAAM8I,aAAa,GAAG,IAAA5D,kBAAW,EAC9BC,KAAyC,IAAK;IAC7CX,SAAS,CAACY,OAAO,GAAG,IAAI;IACxBrE,aAAa,CAAC,MAAM,CAAC;IAErBd,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAAnC,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACDqH,KAAK,GACLtD,eAAe,CAAC;MAAEsD;IAAM,CAAC,CAAC,GAC1BlE,YAAY,CAChB,CAAC;EACJ,CAAC,EACD,CAAChB,MAAM,EAAE4B,eAAe,EAAEZ,YAAY,CACxC,CAAC;EAED,MAAM8H,gBAAgB,GAAG,IAAA7D,kBAAW,EAClC,MAAOC,KAA4C,IAAK;IACtD,MAAM4C,OAAO,GAAG5C,KAAK,CAACrJ,GAAG;IACzB,MAAMS,MAAM,GAAG4I,KAAK,CAAC5I,MAA0B;IAE/C,IAAIA,MAAM,CAACyM,cAAc,KAAKzM,MAAM,CAAC0M,YAAY,EAAE;MACjDP,WAAW,CAACnM,MAAM,CAAC;IACrB;IAGA,QAAQwL,OAAO;MACb,KAAK,SAAS;MACd,KAAK,WAAW;QACd5C,KAAK,CAAC+D,OAAO,CAAC,CAAC;QACf/D,KAAK,CAACM,cAAc,CAAC,CAAC;QACtBoC,eAAe,CAAC;UAAE1C,KAAK;UAAE4C,OAAO;UAAExL;QAAO,CAAC,CAAC;QAC3C,OAAO,KAAK;MACd,KAAK,KAAK;QACR,OAAO,KAAK;IAChB;IAIA,MAAMmE,IAAI,GAAGyI,UAAU,CAAC5M,MAAM,CAAC0L,YAAY,CAAC,MAAM,CAAC,CAAC;IACpD,MAAMmB,mBAAmB,GAAG7M,MAAM,CAACyM,cAAc;IAEjD,MAAMT,IAAI,CAAC,CAAC,CAAC;IAEb,MAAMc,oBAAoB,GAAG9M,MAAM,CAACyM,cAAc;IAElD,MAAMpC,OAAO,GAAG,QAAQ,CAAC0C,IAAI,CAACvB,OAAO,CAAC;IACtC,MAAMwB,YAAY,GAAGhF,OAAO,CAACa,OAAO;IAEpC,MAAMY,KAAK,GAAGuD,YAAY,CAACC,SAAS,CAClCC,KAAA;MAAA,IAAC;QAAErE;MAAQ,CAAC,GAAAqE,KAAA;MAAA,OAAKrE,OAAO,KAAK7I,MAAM;IAAA,CACrC,CAAC;IAED,IACEyJ,KAAK,GAAGuD,YAAY,CAAC7M,MAAM,GAAG,CAAC,KAC7B2M,oBAAoB,KAAK3I,IAAI,IAC7BkG,OAAO,IACPmB,OAAO,KAAK,WAAW,IACvBA,OAAO,KAAK,WAAW,IACtBqB,mBAAmB,KAAK1I,IAAI,IAAIqH,OAAO,KAAK,YAAa,CAAC,EAC7D;MACA,IAAI;QAEF,IAAI,CAACwB,YAAY,CAACvD,KAAK,GAAG,CAAC,CAAC,CAACZ,OAAO,EAAE;UACpC;QACF;QACA,MAAMsE,WAAW,GAAGH,YAAY,CAACvD,KAAK,GAAG,CAAC,CAAC,CAACZ,OAAO;QACnD,IAAIsE,WAAW,EAAE;UACfA,WAAW,CAACf,KAAK,CAAC,CAAC;UACnBe,WAAW,CAACd,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC;MACF,CAAC,CAAC,OAAOH,CAAC,EAAE;QACV,IAAApC,qBAAI,EAACoC,CAAC,CAAC;MACT;IACF,CAAC,MAAM,IAAIW,mBAAmB,KAAK,CAAC,IAAIpD,KAAK,GAAG,CAAC,EAAE;MACjD,QAAQ+B,OAAO;QACb,KAAK,WAAW;QAChB,KAAK,WAAW;UACd,IAAI;YACF,MAAM4B,WAAW,GAAGJ,YAAY,CAACvD,KAAK,GAAG,CAAC,CAAC,CAACZ,OAAO;YACnD,IAAIuE,WAAW,EAAE;cACf,MAAMC,MAAM,GAAGD,WAAW,CAACxL,KAAK,CAACzB,MAAM;cACvCiN,WAAW,CAAChB,KAAK,CAAC,CAAC;cACnBgB,WAAW,CAACf,iBAAiB,CAACgB,MAAM,EAAEA,MAAM,CAAC;YAC/C;UACF,CAAC,CAAC,OAAOnB,CAAC,EAAE;YACV,IAAApC,qBAAI,EAACoC,CAAC,CAAC;UACT;UACA;MACJ;IACF;EACF,CAAC,EACD,CAACZ,eAAe,EAAEa,WAAW,CAC/B,CAAC;EAED,MAAMmB,OAAO,GAAG,IAAA3E,kBAAW,EACzB,CACEC,KAA0C,EAC1CgB,IAAqB,EACrB2D,IAA8B,KAC3B;IAAA,IAAAC,SAAA,EAAAC,UAAA,EAAAC,UAAA;IACH9E,KAAK,CAAC+D,OAAO,CAAC,CAAC;IAEf,MAAM/K,KAAK,GAAIgH,KAAK,CAAC5I,MAAM,CAAsB4B,KAAK;IAEtD0F,QAAQ,CAAE,GAAEsC,IAAK,GAAE2D,IAAK,EAAC,CAAC,CAAC1E,OAAO,GAAGjH,KAAK;IAE1C,IAAI0E,QAAQ,CAAE,GAAEsD,IAAK,MAAK,CAAC,EAAE;MAC3B7B,cAAc,CAAE,GAAE6B,IAAK,MAAK,CAAC,CAACf,OAAO,GAAGvC,QAAQ,CAAE,GAAEsD,IAAK,MAAK,CAAC;IACjE;IAEA,MAAM+D,QAAQ,GAAG5F,cAAc,CAAE,GAAE6B,IAAK,MAAK,CAAC,CAACf,OAAO;IAGtD,MAAM+E,IAAI,GACR,EAAAJ,SAAA,GAAAlG,QAAQ,CAAE,GAAEsC,IAAK,MAAK,CAAC,cAAA4D,SAAA,uBAAvBA,SAAA,CAAyB3E,OAAO,KAC/B8E,QAAQ,IAAIA,QAAQ,CAACE,WAAW,CAAC,CAAE;IACtC,MAAMC,KAAK,GACT,EAAAL,UAAA,GAAAnG,QAAQ,CAAE,GAAEsC,IAAK,OAAM,CAAC,cAAA6D,UAAA,uBAAxBA,UAAA,CAA0B5E,OAAO,KAChC8E,QAAQ,IAAIA,QAAQ,CAACI,QAAQ,CAAC,CAAC,GAAG,CAAE;IACvC,MAAMC,GAAG,GACP,EAAAN,UAAA,GAAApG,QAAQ,CAAE,GAAEsC,IAAK,KAAI,CAAC,cAAA8D,UAAA,uBAAtBA,UAAA,CAAwB7E,OAAO,KAAK8E,QAAQ,IAAIA,QAAQ,CAACM,OAAO,CAAC,CAAE;IAGrE,MAAM7E,IAAI,GAAG,IAAI8E,IAAI,CACnBtB,UAAU,CAAC1K,MAAM,CAAC0L,IAAI,CAAC,CAAC,EACxBhB,UAAU,CAAC1K,MAAM,CAAC4L,KAAK,CAAC,CAAC,GAAG,CAAC,EAC7BlB,UAAU,CAAC1K,MAAM,CAAC8L,GAAG,CAAC,CACxB,CAAC;IAED,MAAMG,WAAW,GACf,CAAC,QAAQ,CAACpB,IAAI,CAAC7K,MAAM,CAAC8L,GAAG,CAAC,CAAC,IAC3B,CAAC,QAAQ,CAACjB,IAAI,CAAC7K,MAAM,CAAC4L,KAAK,CAAC,CAAC,IAC7B,CAAC,QAAQ,CAACf,IAAI,CAAC7K,MAAM,CAAC0L,IAAI,CAAC,CAAC,IAC5B,IAAAvD,gBAAO,EAACjB,IAAI,CAAC,IACbA,IAAI,CAAC6E,OAAO,CAAC,CAAC,IAAIrB,UAAU,CAAC1K,MAAM,CAAC8L,GAAG,CAAC,CAAC,IACzC5E,IAAI,CAAC2E,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAInB,UAAU,CAAC1K,MAAM,CAAC4L,KAAK,CAAC,CAAC,IAChD1E,IAAI,CAACyE,WAAW,CAAC,CAAC,IAAIjB,UAAU,CAAC1K,MAAM,CAAC0L,IAAI,CAAC,CAAC;IAEhD,MAAMQ,UAAU,GAAI,GAAER,IAAK,IAAGE,KAAM,IAAGE,GAAI,EAAC;IAE5C9I,uBAAuB,CAAC2D,OAAO,GAC7B,8BAA8B,CAACkE,IAAI,CAACqB,UAAU,CAAC;IAGjD,IAAID,WAAW,EAAE;MACfrJ,eAAe,CAAC+D,OAAO,GAAAtH,aAAA,CAAAA,aAAA,KAClBuD,eAAe,CAAC+D,OAAO,GACtBe,IAAI,KAAK,OAAO,GAChB;QAAE5E,gBAAgB,EAAE;MAAK,CAAC,GAC1B;QAAEC,cAAc,EAAE;MAAK,CAAC,CAC7B;MAEDkF,YAAY,CAAC;QACX,CAAE,GAAEP,IAAK,MAAK,GAAGR,IAAI;QACrBR;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACLzD,WAAW,CAAC;QACV,CAAE,GAAEyE,IAAK,MAAK,GAAG,IAAI;QACrB,CAAE,KAAIA,IAAK,GAAE2D,IAAK,EAAC,GAAG3L;MACxB,CAAC,CAAC;MAEFkD,eAAe,CAAC+D,OAAO,GAAAtH,aAAA,CAAAA,aAAA,KAClBuD,eAAe,CAAC+D,OAAO,GACtBe,IAAI,KAAK,OAAO,GAChB;QAAE5E,gBAAgB,EAAEoJ;MAAW,CAAC,GAChC;QAAEnJ,cAAc,EAAEmJ;MAAW,CAAC,CACnC;MAEDrE,qBAAqB,CAAC;QACpB,CAAE,GAAEH,IAAK,MAAK,GAAG,IAAI;QACrBhB;MACF,CAAC,CAAC;IACJ;IAEA0B,UAAU,CAAC;MAAE1B;IAAM,CAAC,CAAC;EACvB,CAAC,EACD,CACEzD,WAAW,EACXgF,YAAY,EACZJ,qBAAqB,EACrBO,UAAU,EACVhE,QAAQ,EACRgB,QAAQ,EACRS,cAAc,CAElB,CAAC;EAED,MAAMsG,WAAW,GAAG,IAAA9H,cAAO,EACzB,OAAO;IACL+H,YAAY,EAAG1F,KAA0C,IAAK;MAC5D0E,OAAO,CAAC1E,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;IAChC,CAAC;IAED2F,cAAc,EAAG3F,KAA0C,IAAK;MAC9D0E,OAAO,CAAC1E,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;IAClC,CAAC;IAED4F,aAAa,EAAG5F,KAA0C,IAAK;MAC7D0E,OAAO,CAAC1E,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;IACjC,CAAC;IAED6F,UAAU,EAAG7F,KAA0C,IAAK;MAC1D0E,OAAO,CAAC1E,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IAC9B,CAAC;IAED8F,YAAY,EAAG9F,KAA0C,IAAK;MAC5D0E,OAAO,CAAC1E,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;IAChC,CAAC;IAED+F,WAAW,EAAG/F,KAA0C,IAAK;MAC3D0E,OAAO,CAAC1E,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;IAC/B;EACF,CAAC,CAAC,EACF,CAAC0E,OAAO,CACV,CAAC;EAED,MAAMsB,kBAAkB,GAAG,IAAAjG,kBAAW,EACnC/G,KAAa,IAAK;IACjB,MAAM6H,KAAK,GAAG5G,SAAS,CAAClC,OAAO,CAACiB,KAAK,CAAC;IACtC,OAAOkB,eAAe,CAAC2G,KAAK,CAAC;EAC/B,CAAC,EACD,CAAC5G,SAAS,EAAEC,eAAe,CAC7B,CAAC;EAGD,MAAM+L,gBAAgB,GAAG,IAAAlG,kBAAW,EAClC,CACEmG,OAC2B,EAC3BlF,IAAqB,KAClB;IACH,OAAO1B,QAAQ,CAAC6G,GAAG,CAAC,CAACnN,KAAK,EAAE3B,CAAC,KAAK;MAChC,MAAM+J,KAAK,GAAGpI,KAAK,CAACoN,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;MAC/B,MAAMC,eAAe,GAAGL,kBAAkB,CAAChN,KAAK,CAAC;MACjD,MAAM;QAAEoM,GAAG;QAAEF,KAAK;QAAEF;MAAK,CAAC,GAAGzH,WAAW;MACxC,MAAM+I,YAAY,GAAG7L,OAAO,GAAI,GAAE8C,WAAW,CAACyD,IAAI,CAAE,GAAE,GAAG,EAAE;MAE3D,IAAI,CAAC7G,eAAe,CAACgK,IAAI,CAACnL,KAAK,CAAC,EAAE;QAChC,IAAI,CAACmC,YAAY,EAAE;UACjB+K,OAAO,GAAAvN,aAAA,CAAAA,aAAA,KACFuN,OAAO;YACVK,SAAS,EAAE3C,gBAAgB;YAC3B4C,OAAO,EAAE1G,YAAY;YACrBjF,OAAO,EAAGyI,CAAC,IAAK;cACdjE,SAAS,CAACY,OAAO,GAAGe,IAAI;cACxB0C,cAAc,CAACJ,CAAC,CAAC;YACnB,CAAC;YACDxI,MAAM,EAAE6I,aAAa;YACrB0C;UAAe,EAChB;QACH;QAGA,MAAMI,SAAS,GACbtL,YAAY,IAAIuL,cAAK,CAACC,cAAc,CAACxL,YAAY,CAAC,GAC9CA,YAAY,CAACwJ,IAAI,GACjBiC,YAAY;QAElB,MAAMC,kBAAkB,GACtBtL,IAAI,IAAK,2BAA0BA,IAAK,EAAC;QAE3C,QAAQ6F,KAAK;UACX,KAAK,GAAG;YACNhC,OAAO,CAACa,OAAO,CAACvH,IAAI,CAACyF,SAAS,CAAE,GAAE6C,IAAK,QAAO,CAAC,CAAC;YAEhD,OACE1M,MAAA,CAAAuB,OAAA,CAAAiR,aAAA,CAACxS,MAAA,CAAAuB,OAAK,CAACkR,QAAQ;cAACpQ,GAAG,EAAE,IAAI,GAAGU;YAAE,GAC5B/C,MAAA,CAAAuB,OAAA,CAAAiR,aAAA,CAACL,SAAS,EAAAxP,QAAA,KACJiP,OAAO;cACXxL,EAAE,EAAG,GAAEA,EAAG,IAAGsG,IAAK,MAAM;cACxBrK,GAAG,EAAE,IAAI,GAAGU,CAAE;cACd2P,SAAS,EAAE,IAAAC,mBAAU,wDACnBf,OAAO,CAACc,SAAS,EAGjBH,kBACF,CAAE;cACFtL,IAAI,EAAE,CAAE;cACR2L,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAE;cACzBC,QAAQ,EAAEhJ,SAAS,CAAE,GAAE6C,IAAK,QAAO,CAAE;cACrCjG,QAAQ,EAAE0K,WAAW,CAAE,OAAMzE,IAAK,KAAI,CAAE;cACxChI,KAAK,EAAE4E,UAAU,CAAE,KAAIoD,IAAK,KAAI,CAAC,IAAI,EAAG;cACxC,mBAAkB,GAAEtG,EAAG,IAAGsG,IAAK;YAAY,EAC5C,CAAC,EACF1M,MAAA,CAAAuB,OAAA,CAAAiR,aAAA;cACEnQ,GAAG,EAAE,IAAI,GAAGU,CAAE;cACd+P,MAAM;cACN1M,EAAE,EAAG,GAAEA,EAAG,IAAGsG,IAAK,YAAY;cAC9BqG,OAAO,EAAG,GAAE3M,EAAG,IAAGsG,IAAK;YAAM,GAE5BsF,YAAY,GAAGlB,GACX,CACO,CAAC;UAErB,KAAK,GAAG;YACNhG,OAAO,CAACa,OAAO,CAACvH,IAAI,CAACyF,SAAS,CAAE,GAAE6C,IAAK,UAAS,CAAC,CAAC;YAElD,OACE1M,MAAA,CAAAuB,OAAA,CAAAiR,aAAA,CAACxS,MAAA,CAAAuB,OAAK,CAACkR,QAAQ;cAACpQ,GAAG,EAAE,IAAI,GAAGU;YAAE,GAC5B/C,MAAA,CAAAuB,OAAA,CAAAiR,aAAA,CAACL,SAAS,EAAAxP,QAAA,KACJiP,OAAO;cACXxL,EAAE,EAAG,GAAEA,EAAG,IAAGsG,IAAK,QAAQ;cAC1BrK,GAAG,EAAE,IAAI,GAAGU,CAAE;cACd2P,SAAS,EAAE,IAAAC,mBAAU,0DACnBf,OAAO,CAACc,SAAS,EAGjBH,kBACF,CAAE;cACFtL,IAAI,EAAE,CAAE;cACR2L,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAE;cACzBC,QAAQ,EAAEhJ,SAAS,CAAE,GAAE6C,IAAK,UAAS,CAAE;cACvCjG,QAAQ,EAAE0K,WAAW,CAAE,OAAMzE,IAAK,OAAM,CAAE;cAC1ChI,KAAK,EAAE4E,UAAU,CAAE,KAAIoD,IAAK,OAAM,CAAC,IAAI,EAAG;cAC1C,mBAAkB,GAAEtG,EAAG,IAAGsG,IAAK;YAAc,EAC9C,CAAC,EACF1M,MAAA,CAAAuB,OAAA,CAAAiR,aAAA;cACEnQ,GAAG,EAAE,IAAI,GAAGU,CAAE;cACd+P,MAAM;cACN1M,EAAE,EAAG,GAAEA,EAAG,IAAGsG,IAAK,cAAc;cAChCqG,OAAO,EAAG,GAAE3M,EAAG,IAAGsG,IAAK;YAAQ,GAE9BsF,YAAY,GAAGpB,KACX,CACO,CAAC;UAErB,KAAK,GAAG;YACN9F,OAAO,CAACa,OAAO,CAACvH,IAAI,CAACyF,SAAS,CAAE,GAAE6C,IAAK,SAAQ,CAAC,CAAC;YAEjD,OACE1M,MAAA,CAAAuB,OAAA,CAAAiR,aAAA,CAACxS,MAAA,CAAAuB,OAAK,CAACkR,QAAQ;cAACpQ,GAAG,EAAE,IAAI,GAAGU;YAAE,GAC5B/C,MAAA,CAAAuB,OAAA,CAAAiR,aAAA,CAACL,SAAS,EAAAxP,QAAA,KACJiP,OAAO;cACXxL,EAAE,EAAG,GAAEA,EAAG,IAAGsG,IAAK,OAAO;cACzBrK,GAAG,EAAE,IAAI,GAAGU,CAAE;cACd2P,SAAS,EAAE,IAAAC,mBAAU,yDACnBf,OAAO,CAACc,SAAS,EAGjBH,kBACF,CAAE;cACFtL,IAAI,EAAE,CAAE;cACR2L,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAE;cAC3CC,QAAQ,EAAEhJ,SAAS,CAAE,GAAE6C,IAAK,SAAQ,CAAE;cACtCjG,QAAQ,EAAE0K,WAAW,CAAE,OAAMzE,IAAK,MAAK,CAAE;cACzChI,KAAK,EAAE4E,UAAU,CAAE,KAAIoD,IAAK,MAAK,CAAC,IAAI,EAAG;cACzC,mBAAkB,GAAEtG,EAAG,IAAGsG,IAAK;YAAa,EAC7C,CAAC,EACF1M,MAAA,CAAAuB,OAAA,CAAAiR,aAAA;cACEnQ,GAAG,EAAE,IAAI,GAAGU,CAAE;cACd+P,MAAM;cACN1M,EAAE,EAAG,GAAEA,EAAG,IAAGsG,IAAK,aAAa;cAC/BqG,OAAO,EAAG,GAAE3M,EAAG,IAAGsG,IAAK;YAAO,GAE7BsF,YAAY,GAAGtB,IACX,CACO,CAAC;QAEvB;MACF;MACA,OACE1Q,MAAA,CAAAuB,OAAA,CAAAiR,aAAA;QACEnQ,GAAG,EAAE,GAAG,GAAGU,CAAE;QACb2P,SAAS,EAAC,4BAA4B;QACtC;MAAW,GAEVX,eACG,CAAC;IAEX,CAAC,CAAC;EACJ,CAAC,EACD,CACE3L,EAAE,EACFS,YAAY,EACZV,OAAO,EACPc,IAAI,EACJgC,WAAW,EACXpD,eAAe,EACfsL,WAAW,EACXtH,SAAS,EACTmB,QAAQ,EACRqE,aAAa,EACbD,cAAc,EACdsC,kBAAkB,EAClBlG,YAAY,EACZ8D,gBAAgB,EAChBhG,UAAU,CAEd,CAAC;EAED,MAAM0J,kBAAkB,GAAG,IAAAvH,kBAAW,EAElCmG,OAC2B,IACxB;IACH9G,OAAO,CAACa,OAAO,GAAG,EAAE;IACpB,MAAMsH,aAAa,GAAGtB,gBAAgB,CAACC,OAAO,EAAE,OAAO,CAAC;IACxD,MAAMsB,WAAW,GAAGvB,gBAAgB,CAACC,OAAO,EAAE,KAAK,CAAC;IAEpD,OACE5R,MAAA,CAAAuB,OAAA,CAAAiR,aAAA;MACEpM,EAAE,EAAG,GAAEA,EAAG,QAAQ;MAClBsM,SAAS,EAAC;IAAiC,GAE1CO,aAAa,EACb9M,OAAO,KAAAlF,KAAA,KAAAA,KAAA,GACNjB,MAAA,CAAAuB,OAAA,CAAAiR,aAAA;MAAME,SAAS,EAAC,4BAA4B;MAAC;IAAW,GACrD,KACG,CAAC,EACR,EACAvM,OAAO,IAAI+M,WACR,CAAC;EAEX,CAAC,EACD,CAAC9M,EAAE,EAAED,OAAO,EAAEwL,gBAAgB,CAChC,CAAC;EAED,MAAMwB,UAAU,GAAG,IAAA9J,cAAO,EACxB,MACE1C,iBAAiB,GACZ,GAAEA,iBAAkB,KAAIsC,WAAW,CAACmK,cAAe,EAAC,GACrDnK,WAAW,CAACmK,cAAc,EAChC,CAACzM,iBAAiB,EAAEsC,WAAW,CACjC,CAAC;EAED,IAAAoK,sCAAqB,EAACnN,KAAK,EAAEkB,UAAU,CAAC;EACxC,IAAAiM,sCAAqB,EAAC,IAAI,EAAE/M,gBAAgB,CAAC;EAE7C,MAAMgN,aAAgC,GAAG,IAAAjK,cAAO,EAC9C,MAAOzC,SAAS,GAAG2M,mBAAY,GAAGC,eAAO,EACzC,CAAC5M,SAAS,CACZ,CAAC;EAED,IAAI,CAACA,SAAS,EAAE;IAEdN,gBAAgB,CAACmN,QAAQ,GAAGnN,gBAAgB,CAACoN,GAAG;IAChDpN,gBAAgB,CAACoN,GAAG,GAAG,IAAI;EAC7B;EAEA,OACE1T,MAAA,CAAAuB,OAAA,CAAAiR,aAAA;IAAUE,SAAS,EAAC,2BAA2B;IAAC5L,IAAI,EAAEA;EAAK,GACxDgC,KAAK,IAAI9I,MAAA,CAAAuB,OAAA,CAAAiR,aAAA;IAAQE,SAAS,EAAC;EAAa,GAAE5J,KAAc,CAAC,EAC1D9I,MAAA,CAAAuB,OAAA,CAAAiR,aAAA,CAAC5R,MAAA,CAAAW,OAAK,EAAAoB,QAAA;IACJyD,EAAE,EAAG,GAAEA,EAAG,SAAS;IACnBuN,WAAW,EAAE5M,QAAQ,GAAG,UAAU,GAAGM,UAAW;IAChDuM,aAAa,EACX/M,YAAY,IAAI,OAAOA,YAAY,KAAK,QAAQ,GAC5C,OAAOA,YAAY,KAAK,UAAU,GAChCA,YAAY,CAACX,KAAK,CAAC,GACnBW,YAAY,GACdmM,kBACL;IACDjM,QAAQ,EAAEA,QAAQ,IAAIC,QAAS;IAC/BA,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEA,IAAK;IACXC,MAAM,EAAE,CAACnB,MAAM,GAAGmB,MAAM,GAAG,IAAK;IAChC2M,YAAY,EAAE/N;EAAY,GACtBqB,WAAW;IACf2M,cAAc,EACZ9T,MAAA,CAAAuB,OAAA,CAAAiR,aAAA,CAACc,aAAa,EAAA3Q,QAAA;MACZyD,EAAE,EAAEA,EAAG;MACPW,QAAQ,EAAEA,QAAS;MACnBC,QAAQ,EAAEA,QAAS;MACnB0L,SAAS,EAAE,IAAAC,mBAAU,EACnB/L,SAAS,IAAI,0BAA0B,EACvCb,MAAM,IAAG,oBACX,CAAE;MACF,cAAYoN,UAAW;MACvB9M,KAAK,EAAEA,KAAM;MACbY,IAAI,EAAEA,IAAK;MACXC,MAAM,EAAEA,MAAO;MACf2M,YAAY,EAAE/N,WAAY;MAC1BuK,IAAI,EAAC,QAAQ;MACb0D,IAAI,EAAC,UAAU;MACfC,OAAO,EAAC,WAAW;MACnBC,SAAS,EAAEvN,QAAS;MACpBwN,QAAQ,EAAExN;IAAS,GACfJ,gBAAgB,EAChBa,WAAW,CAChB,CACF;IACDL,IAAI,EAAEA;EAAK,GACPM,UAAU,CACf,CACO,CAAC;AAEf;AAAC,IAAA+M,QAAA,GAEcnO,eAAe;AAAAoO,OAAA,CAAA7S,OAAA,GAAA4S,QAAA;AAE9B,SAASpF,SAASA,CAACjM,MAAwB,EAAE;EAC3CA,MAAM,CAACoM,KAAK,CAAC,CAAC;EACdpM,MAAM,CAACuR,MAAM,CAAC,CAAC;AACjB;AAEA,SAAS/B,YAAYA,CAAAgC,KAAA,EAAgD;EAAA,IAA/C;MAAE5B,SAAS;MAAEhO;IAA+B,CAAC,GAAA4P,KAAA;IAAtBpO,KAAK,GAAA9C,wBAAA,CAAAkR,KAAA,EAAAlT,UAAA;EAChD,OACEpB,MAAA,CAAAuB,OAAA,CAAAiR,aAAA,CAAC9R,SAAA,CAAAa,OAAQ,EAAAoB,QAAA;IACP4R,KAAK,EAAE,IAAK;IACZC,QAAQ,EAAE,IAAK;IACfC,iBAAiB,EAAE,KAAM;IACzBC,YAAY,EAAC,KAAK;IAClBC,cAAc,EAAC,MAAM;IACrBC,UAAU,EAAE,KAAM;IAClBC,WAAW,EAAC,KAAK;IACjBnC,SAAS,EAAE,IAAAC,mBAAU,EACnBD,SAAS,EACT,KAAK,CAAC7C,IAAI,CAAC7K,MAAM,CAACN,KAAK,CAAC,CAAC,IAAI,mCAC/B,CAAE;IACFA,KAAK,EAAEA;EAAM,GACTwB,KAAK,CACV,CAAC;AAEN;AAEA,MAAM4I,IAAI,GAAIgG,QAAgB,IAC5B,IAAIC,OAAO,CAAEC,CAAC,IAAKC,UAAU,CAACD,CAAC,EAAEF,QAAQ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"DatePickerInput.js","names":["_react","_interopRequireWildcard","require","_addDays","_interopRequireDefault","_addMonths","_addYears","_isValid","_parseISO","_classnames","_TextMask","_Button","_Input","_componentHelper","_DatePickerCalc","_DatePickerContext","_shared","_span","_excluded","_excluded2","_excluded3","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","defaultProps","maskOrder","maskPlaceholder","separatorRexExp","statusState","opened","DatePickerInput","externalProps","props","isRange","id","title","submitAttributes","onFocus","onBlur","onChange","onSubmit","selectedDateTitle","showInput","inputElement","lang","disabled","skeleton","size","status","statusProps","attributes","focusState","setFocusState","useState","partialDates","setPartialDates","partialStartDate","partialEndDate","invalidDatesRef","useRef","invalidStartDate","invalidEndDate","isDateFullyFilledOutRef","updateDates","callOnChangeHandler","hasHadValidDate","getReturnObject","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","startDate","endDate","onType","label","useContext","DatePickerContext","translation","useTranslation","DatePicker","modeDate","useMemo","inputDates","inputRefs","startDayRef","current","startMonthRef","startYearRef","endDayRef","endMonthRef","endYearRef","dateRefs","startDay","startMonth","startYear","endDay","endMonth","endYear","syncDateRefs","startDateRef","endDateRef","temporaryDates","refList","focusMode","maskList","separators","match","split","reduce","acc","cur","shift","pasteHandler","useCallback","event","success","clipboardData","window","getData","preventDefault","possibleFormats","date","sep","replace","reverse","join","index","convertStringToDate","dateFormat","mode","error","warn","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","_ref","isValid","callOnType","_ref2","getDates","parsedStartDate","parseISO","parsedEndDate","isStartDateValid","isEndDateValid","_getReturnObject","is_valid","is_valid_start_date","is_valid_end_date","returnObject","typedDates","start_date","end_date","prepareCounting","_ref3","keyCode","isDate","getAttribute","isInRange","count","addDays","addMonths","addYears","wait","selectAll","e","selectStart","focus","setSelectionRange","onFocusHandler","onBlurHandler","onKeyDownHandler","selectionStart","selectionEnd","persist","parseFloat","firstSelectionStart","secondSelectionStart","test","refListArray","findIndex","_ref4","nextSibling","prevSibling","endPos","setDate","type","fallback","year","getFullYear","month","getMonth","day","getDate","Date","isValidDate","dateString","dateSetters","set_startDay","set_startMonth","set_startYear","set_endDay","set_endMonth","set_endYear","getPlaceholderChar","generateDateList","element","map","slice","placeholderChar","isRangeLabel","onKeyDown","onPaste","DateField","React","isValidElement","InputElement","inputSizeClassName","createElement","Fragment","className","classnames","mask","inputRef","hidden","htmlFor","renderInputElement","startDateList","endDateList","formatDate","openPickerText","validateDOMAttributes","SubmitElement","SubmitButton","Button","innerRef","ref","input_state","input_element","status_state","submit_element","icon","variant","on_submit","on_click","_default","exports","select","_ref5","guide","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","dateRefValue","inputDateValue","duration","Promise","r","setTimeout"],"sources":["../../../../src/components/date-picker/DatePickerInput.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n MutableRefObject,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\n// date-fns\nimport addDays from 'date-fns/addDays'\nimport addMonths from 'date-fns/addMonths'\nimport addYears from 'date-fns/addYears'\nimport isValid from 'date-fns/isValid'\nimport parseISO from 'date-fns/parseISO'\n\nimport classnames from 'classnames'\nimport TextMask, { TextMaskProps } from '../input-masked/TextMask'\nimport Button from '../button/Button'\nimport Input, { SubmitButton } from '../input/Input'\nimport type { InputInputElement, InputSize } from '../Input'\nimport { warn, validateDOMAttributes } from '../../shared/component-helper'\nimport { convertStringToDate } from './DatePickerCalc'\nimport DatePickerContext from './DatePickerContext'\n\nimport type {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../FormStatus'\nimport type { SkeletonShow } from '../Skeleton'\nimport { ReturnObject } from './DatePickerProvider'\nimport { DatePickerEventAttributes } from './DatePicker'\nimport { useTranslation } from '../../shared'\nimport { DatePickerInputDates } from './hooks/useDates'\n\nexport type DatePickerInputProps = Omit<\n React.HTMLProps<HTMLInputElement>,\n | 'children'\n | 'ref'\n | 'value'\n | 'size'\n | 'onFocus'\n | 'onBlur'\n | 'onSubmit'\n | 'label'\n> & {\n selectedDateTitle?: string\n maskOrder?: string\n maskPlaceholder?: string\n separatorRexExp?: RegExp\n submitAttributes?: Record<string, unknown>\n isRange?: boolean\n /**\n * The sizes you can choose is `small` (1.5rem), `default` (2rem), `medium` (2.5rem) and `large` (3rem) are supported component sizes. Defaults to `default` / `null`.\n */\n size?: InputSize\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Use an object to define additional FormStatus properties.\n */\n statusProps?: FormStatusProps\n /**\n * Gives you the possibility to use a plain/vanilla `<input />` HTML element by defining it as a string `input_element=\"input\"`, a React element, or a render function `input_element={(internalProps) => (<Return />)}`. Can also be used in circumstances where the `react-text-mask` not should be used, e.g. in testing environments. Defaults to custom masked input.\n */\n inputElement?: InputInputElement\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * To open the date-picker by default. Defaults to `false`.\n */\n opened?: boolean\n showInput?: boolean\n onSubmit?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onChange?: (\n event: ReturnObject<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input gets focus.\n */\n onFocus?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input lose focus.\n */\n onBlur?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n}\n\nexport type InvalidDates = {\n invalidDate?: string\n invalidStartDate?: string\n invalidEndDate?: string\n}\n\nconst defaultProps: DatePickerInputProps = {\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå',\n separatorRexExp: /[-/ ]/g,\n statusState: 'error',\n opened: false,\n}\n\nfunction DatePickerInput(externalProps: DatePickerInputProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n isRange,\n maskOrder,\n separatorRexExp,\n id,\n title,\n submitAttributes,\n maskPlaceholder, // eslint-disable-line\n onFocus,\n onBlur,\n onChange, // eslint-disable-line\n onSubmit, // eslint-disable-line\n selectedDateTitle, // eslint-disable-line\n showInput, // eslint-disable-line\n inputElement,\n lang,\n disabled,\n skeleton,\n opened,\n size,\n status,\n statusState,\n statusProps,\n\n ...attributes\n } = props\n\n const [focusState, setFocusState] = useState<string>('virgin')\n // TODO: Turn into a ref, as these values should not trigger a rerender\n const [partialDates, setPartialDates] = useState({\n partialStartDate: '',\n partialEndDate: '',\n })\n\n const invalidDatesRef = useRef<InvalidDates>({\n invalidStartDate: null,\n invalidEndDate: null,\n })\n const isDateFullyFilledOutRef = useRef(false)\n\n const {\n updateDates,\n callOnChangeHandler,\n hasHadValidDate,\n getReturnObject,\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n startDate,\n endDate,\n props: { onType, label },\n } = useContext(DatePickerContext)\n\n const translation = useTranslation().DatePicker\n\n const modeDate = useMemo(\n () => ({\n startDate,\n endDate,\n }),\n [startDate, endDate]\n )\n\n const inputDates = useMemo(\n () => ({\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n }),\n [\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n ]\n )\n\n const inputRefs = useRef<\n Record<string, MutableRefObject<HTMLInputElement>>\n >({\n startDayRef: { current: undefined },\n startMonthRef: { current: undefined },\n startYearRef: { current: undefined },\n endDayRef: { current: undefined },\n endMonthRef: { current: undefined },\n endYearRef: { current: undefined },\n })\n\n const dateRefs = useRef<Record<string, string>>({\n startDay: '',\n startMonth: '',\n startYear: '',\n endDay: '',\n endMonth: '',\n endYear: '',\n })\n\n // Keep dateRefs in sync with inputDates on re-render\n syncDateRefs(dateRefs, inputDates)\n\n const startDateRef = useRef<Date>()\n const endDateRef = useRef<Date>()\n\n const temporaryDates = useMemo(\n () => ({ startDate: startDateRef, endDate: endDateRef }),\n []\n )\n\n const refList = useRef<Array<MutableRefObject<HTMLInputElement>>>()\n\n const focusMode = useRef<string>()\n\n const maskList = useMemo(() => {\n const separators = maskOrder.match(separatorRexExp)\n\n return maskOrder\n .split(separatorRexExp)\n .reduce<Array<string>>((acc, cur) => {\n if (!cur) {\n return acc\n }\n\n acc.push(cur)\n\n if (separators.length > 0) {\n // makes sure that separators are added at the correct places and removed from array when added\n acc.push(separators.shift())\n }\n\n return acc\n }, [])\n }, [maskOrder, separatorRexExp])\n\n const pasteHandler = useCallback(\n async (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!focusMode.current) {\n return // Stop here\n }\n\n const success = (\n event.clipboardData ||\n (typeof window !== 'undefined' && window['clipboardData'])\n ).getData('text')\n\n if (!success) {\n return // Stop here\n }\n\n event.preventDefault()\n\n try {\n const separators = ['.', '/']\n const possibleFormats = ['yyyy-MM-dd']\n\n // TODO: Merge these loops\n possibleFormats.forEach((date) => {\n separators.forEach((sep) => {\n possibleFormats.push(date.replace(/-/g, sep))\n })\n })\n\n possibleFormats.forEach((date) => {\n possibleFormats.push(date.split('').reverse().join(''))\n })\n\n let date: Date\n let index = 0\n\n for (index; index < possibleFormats.length; ++index) {\n date = convertStringToDate(success, {\n dateFormat: possibleFormats[index],\n })\n\n if (date) {\n break\n }\n }\n\n const mode =\n focusMode.current === 'start' ? 'startDate' : 'endDate'\n\n if (date) {\n updateDates({\n [mode]: date,\n })\n }\n } catch (error: unknown) {\n warn(error)\n }\n },\n [updateDates]\n )\n\n const callOnChangeAsInvalid = useCallback(\n (state: {\n endDate?: Date\n starDate?: Date\n event: React.ChangeEvent<HTMLInputElement>\n }) => {\n updateDates(\n {\n hoverDate: null,\n },\n (dates) => {\n // Should fire if user has filled out an invalid date,\n // or if the date was valid. Like if the user has pressed backspace or removed the valid date.\n if (isDateFullyFilledOutRef.current || hasHadValidDate) {\n const { startDate, endDate, event } = {\n ...state,\n ...dates,\n }\n callOnChangeHandler({\n startDate,\n endDate,\n event,\n ...invalidDatesRef.current,\n })\n }\n }\n )\n },\n [updateDates, callOnChangeHandler, hasHadValidDate]\n )\n\n const callOnChange = useCallback(\n ({\n startDate,\n endDate,\n event,\n }: {\n startDate?: Date\n endDate?: Date\n event:\n | React.ChangeEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n }) => {\n const state = {}\n if (typeof startDate !== 'undefined' && isValid(startDate)) {\n state['startDate'] = startDate\n }\n if (!isRange) {\n endDate = startDate\n }\n if (typeof endDate !== 'undefined' && isValid(endDate)) {\n state['endDate'] = endDate\n }\n\n updateDates(state, (dates) => {\n if (\n (typeof startDate !== 'undefined' && isValid(startDate)) ||\n (typeof endDate !== 'undefined' && isValid(endDate))\n ) {\n callOnChangeHandler({\n event,\n ...dates,\n ...invalidDatesRef.current,\n })\n }\n })\n },\n [updateDates, callOnChangeHandler, isRange]\n )\n\n const callOnType = useCallback(\n ({ event }: { event: React.ChangeEvent<HTMLInputElement> }) => {\n const getDates = () =>\n ['start', 'end'].reduce(\n (acc, mode) => {\n acc[`${mode}Date`] = [\n dateRefs.current[`${mode}Year`] ||\n inputDates[`__${mode}Year`] ||\n 'yyyy',\n dateRefs.current[`${mode}Month`] ||\n inputDates[`__${mode}Month`] ||\n 'mm',\n dateRefs.current[`${mode}Day`] ||\n inputDates[`__${mode}Day`] ||\n 'dd',\n ].join('-')\n return acc\n },\n { startDate: undefined, endDate: undefined }\n )\n\n // Get the typed dates, so we can ...\n const { startDate, endDate } = getDates()\n // Get the partial dates, so we can know if something was typed or not in an optional date field\n const partialStartDate = startDate\n const partialEndDate = endDate\n\n setPartialDates({\n partialStartDate,\n partialEndDate,\n })\n\n const parsedStartDate = parseISO(startDate)\n const parsedEndDate = parseISO(endDate)\n\n const isStartDateValid = isValid(parsedStartDate)\n const isEndDateValid = isValid(parsedEndDate)\n\n const {\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject\n } = getReturnObject({\n startDate: isStartDateValid ? parsedStartDate : null,\n endDate: isEndDateValid ? parsedEndDate : null,\n event,\n partialStartDate,\n partialEndDate,\n ...invalidDatesRef.current,\n })\n\n // Re-assigns dates to the typed date, instead of `null` from getReturnObject, if dates are invalid\n const typedDates = {\n ...(!isRange && is_valid === false && { date: startDate }),\n ...(isRange &&\n is_valid_start_date === false && { start_date: startDate }),\n ...(isRange &&\n is_valid_end_date === false && { end_date: endDate }),\n }\n\n onType?.({\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject,\n ...typedDates,\n })\n },\n [isRange, dateRefs, getReturnObject, inputDates, onType]\n )\n\n const prepareCounting = useCallback(\n async ({\n keyCode,\n target,\n event,\n }: {\n keyCode: string\n target: HTMLInputElement\n event: React.KeyboardEvent<HTMLInputElement>\n }) => {\n try {\n const isDate = target\n .getAttribute('class')\n .match(/__input--(day|month|year)($|\\s)/)[1]\n\n const isInRange = target\n .getAttribute('id')\n .match(/-(start|end)-(day|month|year)/)[1]\n\n let date = isInRange === 'start' ? startDate : endDate\n\n // do nothing if date is not set yet\n if (!date) {\n return\n }\n\n const count = keyCode === 'ArrowUp' ? 1 : -1\n\n if (keyCode === 'ArrowUp' || keyCode === 'ArrowDown') {\n switch (isDate) {\n case 'day':\n date = addDays(date, count)\n break\n case 'month':\n date = addMonths(date, count)\n break\n case 'year':\n date = addYears(date, count)\n break\n }\n }\n\n callOnChange({\n [isInRange === 'start' ? 'startDate' : 'endDate']: date,\n event,\n })\n\n await wait(1) // to get the correct position afterwards\n\n selectAll(target)\n } catch (e) {\n warn(e)\n }\n },\n [startDate, endDate, callOnChange]\n )\n\n const selectStart = useCallback((target: HTMLInputElement) => {\n target.focus()\n target.setSelectionRange(0, 0)\n }, [])\n\n const onFocusHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n try {\n selectAll(event.target)\n } catch (e) {\n warn(e)\n }\n\n setFocusState('focus')\n\n onFocus?.({\n ...event,\n ...getReturnObject({ event }),\n })\n },\n [getReturnObject, onFocus]\n )\n\n const onBlurHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n focusMode.current = null\n setFocusState('blur')\n\n onBlur?.({\n ...event,\n ...getReturnObject({ event }),\n ...partialDates,\n })\n },\n [onBlur, getReturnObject, partialDates]\n )\n\n const onKeyDownHandler = useCallback(\n async (event: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode = event.key\n const target = event.target as HTMLInputElement\n\n if (target.selectionStart !== target.selectionEnd) {\n selectStart(target)\n }\n\n // only to process key up and down press\n switch (keyCode) {\n case 'ArrowUp':\n case 'ArrowDown':\n event.persist()\n event.preventDefault()\n prepareCounting({ event, keyCode, target })\n return false\n case 'Tab':\n return false\n }\n\n // the rest is for value entry\n\n const size = parseFloat(target.getAttribute('size'))\n const firstSelectionStart = target.selectionStart\n\n await wait(1) // to get the correct position afterwards\n\n const secondSelectionStart = target.selectionStart\n // Always false (since the old keycode function set number keys to undefined) but needed to not break tests\n const isValid = /[0-9]/g.test(keyCode)\n const refListArray = refList.current\n\n const index = refListArray.findIndex(\n ({ current }) => current === target\n )\n\n if (\n index < refListArray.length - 1 &&\n ((secondSelectionStart === size &&\n isValid &&\n keyCode !== 'ArrowLeft' &&\n keyCode !== 'Backspace') ||\n (firstSelectionStart === size && keyCode === 'ArrowRight'))\n ) {\n try {\n // stop in case there is no next input element\n if (!refListArray[index + 1].current) {\n return\n }\n const nextSibling = refListArray[index + 1].current\n if (nextSibling) {\n nextSibling.focus()\n nextSibling.setSelectionRange(0, 0)\n }\n } catch (e) {\n warn(e)\n }\n } else if (firstSelectionStart === 0 && index > 0) {\n switch (keyCode) {\n case 'ArrowLeft':\n case 'Backspace':\n try {\n const prevSibling = refListArray[index - 1].current\n if (prevSibling) {\n const endPos = prevSibling.value.length\n prevSibling.focus()\n prevSibling.setSelectionRange(endPos, endPos)\n }\n } catch (e) {\n warn(e)\n }\n break\n }\n }\n },\n [prepareCounting, selectStart]\n )\n\n const setDate = useCallback(\n (\n event: React.ChangeEvent<HTMLInputElement>,\n mode: 'start' | 'end',\n type: 'Day' | 'Month' | 'Year'\n ) => {\n event.persist() // since we have later a state update and afterwards the callback\n\n const value = (event.target as HTMLInputElement).value\n\n dateRefs.current[`${mode}${type}`] = value\n\n if (modeDate[`${mode}Date`]) {\n temporaryDates[`${mode}Date`].current = modeDate[`${mode}Date`]\n }\n\n const fallback = temporaryDates[`${mode}Date`].current\n\n // provide fallbacks to create a temp fallback\n const year =\n dateRefs.current[`${mode}Year`] ||\n (fallback && fallback.getFullYear())\n const month =\n dateRefs.current[`${mode}Month`] ||\n (fallback && fallback.getMonth() + 1)\n const day =\n dateRefs.current[`${mode}Day`] || (fallback && fallback.getDate())\n\n // calculate new date\n const date = new Date(\n parseFloat(String(year)),\n parseFloat(String(month)) - 1,\n parseFloat(String(day))\n )\n\n const isValidDate =\n !/[^0-9]/.test(String(day)) &&\n !/[^0-9]/.test(String(month)) &&\n !/[^0-9]/.test(String(year)) &&\n isValid(date) &&\n date.getDate() == parseFloat(String(day)) &&\n date.getMonth() + 1 == parseFloat(String(month)) &&\n date.getFullYear() == parseFloat(String(year))\n\n const dateString = `${year}-${month}-${day}`\n\n isDateFullyFilledOutRef.current =\n /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(dateString)\n\n // update the date\n if (isValidDate) {\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: null }\n : { invalidEndDate: null }),\n }\n\n callOnChange({\n [`${mode}Date`]: date,\n event,\n })\n } else {\n updateDates({\n [`${mode}Date`]: null,\n [`__${mode}${type}`]: value,\n })\n\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: dateString }\n : { invalidEndDate: dateString }),\n }\n\n callOnChangeAsInvalid({\n [`${mode}Date`]: null,\n event,\n })\n }\n\n callOnType({ event })\n },\n [\n updateDates,\n callOnChange,\n callOnChangeAsInvalid,\n callOnType,\n modeDate,\n dateRefs,\n temporaryDates,\n ]\n )\n\n const dateSetters = useMemo(\n () => ({\n set_startDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Day')\n },\n\n set_startMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Month')\n },\n\n set_startYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Year')\n },\n\n set_endDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Day')\n },\n\n set_endMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Month')\n },\n\n set_endYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Year')\n },\n }),\n [setDate]\n )\n\n const getPlaceholderChar = useCallback(\n (value: string) => {\n const index = maskOrder.indexOf(value)\n return maskPlaceholder[index]\n },\n [maskOrder, maskPlaceholder]\n )\n\n // TODO: Replace with MutliInputMask\n const generateDateList = useCallback(\n (\n element: Omit<React.HTMLProps<HTMLInputElement>, 'size'> &\n DatePickerEventAttributes,\n mode: 'start' | 'end'\n ) => {\n return maskList.map((value, i) => {\n const state = value.slice(0, 1)\n const placeholderChar = getPlaceholderChar(value)\n const { day, month, year } = translation\n const isRangeLabel = isRange ? `${translation[mode]} ` : ''\n\n if (!separatorRexExp.test(value)) {\n if (!inputElement) {\n element = {\n ...element,\n onKeyDown: onKeyDownHandler,\n onPaste: pasteHandler,\n onFocus: (e) => {\n focusMode.current = mode\n onFocusHandler(e)\n },\n onBlur: onBlurHandler,\n placeholderChar,\n }\n }\n\n // this makes it possible to use a vanilla <input /> like: input_element=\"input\"\n const DateField =\n inputElement && React.isValidElement(inputElement)\n ? inputElement.type\n : InputElement\n\n const inputSizeClassName =\n size && `dnb-date-picker__input--${size}`\n\n switch (state) {\n case 'd':\n refList.current.push(inputRefs.current[`${mode}DayRef`])\n\n return (\n <React.Fragment key={'dd' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-day`}\n key={'di' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--day',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-3]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}DayRef`]}\n onChange={dateSetters[`set_${mode}Day`]}\n value={inputDates[`__${mode}Day`] || ''}\n aria-labelledby={`${id}-${mode}-day-label`}\n />\n <label\n key={'dl' + i}\n hidden\n id={`${id}-${mode}-day-label`}\n htmlFor={`${id}-${mode}-day`}\n >\n {isRangeLabel + day}\n </label>\n </React.Fragment>\n )\n case 'm':\n refList.current.push(inputRefs.current[`${mode}MonthRef`])\n\n return (\n <React.Fragment key={'mm' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-month`}\n key={'mi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--month',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-1]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}MonthRef`]}\n onChange={dateSetters[`set_${mode}Month`]}\n value={inputDates[`__${mode}Month`] || ''}\n aria-labelledby={`${id}-${mode}-month-label`}\n />\n <label\n key={'ml' + i}\n hidden\n id={`${id}-${mode}-month-label`}\n htmlFor={`${id}-${mode}-month`}\n >\n {isRangeLabel + month}\n </label>\n </React.Fragment>\n )\n case 'y':\n refList.current.push(inputRefs.current[`${mode}YearRef`])\n\n return (\n <React.Fragment key={'yy' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-year`}\n key={'yi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--year',\n inputSizeClassName\n )}\n size={4}\n mask={[/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}YearRef`]}\n onChange={dateSetters[`set_${mode}Year`]}\n value={inputDates[`__${mode}Year`] || ''}\n aria-labelledby={`${id}-${mode}-year-label`}\n />\n <label\n key={'yl' + i}\n hidden\n id={`${id}-${mode}-year-label`}\n htmlFor={`${id}-${mode}-year`}\n >\n {isRangeLabel + year}\n </label>\n </React.Fragment>\n )\n }\n }\n return (\n <span\n key={'s' + i}\n className=\"dnb-date-picker--separator\"\n aria-hidden\n >\n {placeholderChar}\n </span>\n )\n })\n },\n [\n id,\n inputElement,\n isRange,\n size,\n translation,\n separatorRexExp,\n dateSetters,\n inputRefs,\n maskList,\n onBlurHandler,\n onFocusHandler,\n getPlaceholderChar,\n pasteHandler,\n onKeyDownHandler,\n inputDates,\n ]\n )\n\n const renderInputElement = useCallback(\n (\n element: React.HTMLProps<HTMLInputElement> &\n DatePickerEventAttributes\n ) => {\n refList.current = []\n const startDateList = generateDateList(element, 'start')\n const endDateList = generateDateList(element, 'end')\n\n return (\n <span\n id={`${id}-input`}\n className=\"dnb-date-picker__input__wrapper\"\n >\n {startDateList}\n {isRange && (\n <span className=\"dnb-date-picker--separator\" aria-hidden>\n {' – '}\n </span>\n )}\n {isRange && endDateList}\n </span>\n )\n },\n [id, isRange, generateDateList]\n )\n\n const formatDate = useMemo(\n () =>\n selectedDateTitle\n ? `${selectedDateTitle}, ${translation.openPickerText}`\n : translation.openPickerText,\n [selectedDateTitle, translation]\n )\n\n validateDOMAttributes(props, attributes)\n validateDOMAttributes(null, submitAttributes)\n\n const SubmitElement: React.ElementType = useMemo(\n () => (showInput ? SubmitButton : Button),\n [showInput]\n )\n\n if (!showInput) {\n // Use Button inner ref\n submitAttributes.innerRef = submitAttributes.ref\n submitAttributes.ref = null\n }\n\n return (\n <fieldset className=\"dnb-date-picker__fieldset\" lang={lang}>\n {label && <legend className=\"dnb-sr-only\">{label}</legend>}\n <Input\n id={`${id}__input`}\n input_state={disabled ? 'disabled' : focusState}\n input_element={\n inputElement && typeof inputElement !== 'string'\n ? typeof inputElement === 'function'\n ? inputElement(props)\n : inputElement\n : renderInputElement\n }\n disabled={disabled || skeleton}\n skeleton={skeleton}\n size={size}\n status={!opened ? status : null}\n status_state={statusState}\n {...statusProps}\n submit_element={\n <SubmitElement\n id={id}\n disabled={disabled}\n skeleton={skeleton}\n className={classnames(\n showInput && 'dnb-button--input-button',\n opened ? 'dnb-button--active' : null\n )}\n aria-label={formatDate}\n title={title}\n size={size}\n status={status}\n status_state={statusState}\n type=\"button\"\n icon=\"calendar\"\n variant=\"secondary\"\n on_submit={onSubmit}\n on_click={onSubmit}\n {...submitAttributes}\n {...statusProps}\n />\n }\n lang={lang}\n {...attributes}\n />\n </fieldset>\n )\n}\n\nexport default DatePickerInput\n\nfunction selectAll(target: HTMLInputElement) {\n target.focus()\n target.select()\n}\n\nfunction InputElement({ className, value, ...props }: TextMaskProps) {\n return (\n <TextMask\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n spellCheck={false}\n autoCorrect=\"off\"\n className={classnames(\n className,\n /\\d+/.test(String(value)) && 'dnb-date-picker__input--highlight'\n )}\n value={value}\n {...props}\n />\n )\n}\n\nfunction syncDateRefs(\n dateRefs: React.MutableRefObject<Record<string, string>>,\n inputDates: DatePickerInputDates\n) {\n for (const date in dateRefs.current) {\n const dateRefValue = dateRefs.current[date]\n const inputDateValue = inputDates[`__${date}`]\n\n if (dateRefValue !== inputDateValue) {\n dateRefs.current[date] = inputDateValue\n }\n }\n}\n\nconst wait = (duration: number) =>\n new Promise((r) => setTimeout(r, duration))\n"],"mappings":"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"}
|
|
@@ -38,6 +38,7 @@ export type HelpButtonInlineContentProps = SpacingProps & {
|
|
|
38
38
|
help?: HelpProps;
|
|
39
39
|
breakout?: boolean;
|
|
40
40
|
outset?: boolean;
|
|
41
|
+
roundedCorner?: boolean;
|
|
41
42
|
focusWhenOpen?: boolean;
|
|
42
43
|
};
|
|
43
44
|
export declare function HelpButtonInlineContent(props: HelpButtonInlineContentProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -21,7 +21,7 @@ var _Dialog = _interopRequireDefault(require("../Dialog"));
|
|
|
21
21
|
var _icons = require("../../icons");
|
|
22
22
|
var _QuestionIcon, _CloseIcon;
|
|
23
23
|
const _excluded = ["contentId", "size", "help", "focusWhenOpen", "className", "children"],
|
|
24
|
-
_excluded2 = ["contentId", "className", "children", "help", "breakout", "outset", "focusWhenOpen"];
|
|
24
|
+
_excluded2 = ["contentId", "className", "children", "help", "breakout", "outset", "roundedCorner", "focusWhenOpen"];
|
|
25
25
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
27
|
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; }
|
|
@@ -112,6 +112,7 @@ function HelpButtonInlineContent(props) {
|
|
|
112
112
|
help: helpProp,
|
|
113
113
|
breakout = true,
|
|
114
114
|
outset = true,
|
|
115
|
+
roundedCorner = true,
|
|
115
116
|
focusWhenOpen: focusWhenOpenProp
|
|
116
117
|
} = props,
|
|
117
118
|
rest = _objectWithoutProperties(props, _excluded2);
|
|
@@ -195,7 +196,7 @@ function HelpButtonInlineContent(props) {
|
|
|
195
196
|
innerRef: innerRef,
|
|
196
197
|
outset: outsetFromLayout,
|
|
197
198
|
breakout: breakoutFromLayout,
|
|
198
|
-
roundedCorner: !breakoutFromLayout,
|
|
199
|
+
roundedCorner: roundedCorner !== null && roundedCorner !== void 0 ? roundedCorner : !breakoutFromLayout,
|
|
199
200
|
innerSpace: breakoutFromLayout ? {
|
|
200
201
|
top: 'small',
|
|
201
202
|
bottom: 'medium'
|