@salt-ds/lab 1.0.0-alpha.89 → 1.0.0-alpha.90
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 +103 -0
- package/css/salt-lab.css +120 -643
- package/dist-cjs/calendar/index.js +61 -0
- package/dist-cjs/calendar/index.js.map +1 -0
- package/dist-cjs/content-status/ContentStatus.js +1 -1
- package/dist-cjs/content-status/ContentStatus.js.map +1 -1
- package/dist-cjs/date-input/index.js +23 -0
- package/dist-cjs/date-input/index.js.map +1 -0
- package/dist-cjs/date-picker/index.js +106 -0
- package/dist-cjs/date-picker/index.js.map +1 -0
- package/dist-cjs/index.js +58 -56
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/localization-provider/index.js +26 -0
- package/dist-cjs/localization-provider/index.js.map +1 -0
- package/dist-cjs/rating/Rating.css.js +1 -1
- package/dist-cjs/rating/Rating.js +11 -16
- package/dist-cjs/rating/Rating.js.map +1 -1
- package/dist-cjs/side-panel/SidePanel.css.js +6 -0
- package/dist-cjs/side-panel/SidePanel.css.js.map +1 -0
- package/dist-cjs/side-panel/SidePanel.js +156 -0
- package/dist-cjs/side-panel/SidePanel.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelContent.css.js +6 -0
- package/dist-cjs/side-panel/SidePanelContent.css.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelContent.js +86 -0
- package/dist-cjs/side-panel/SidePanelContent.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelHeader.css.js +6 -0
- package/dist-cjs/side-panel/SidePanelHeader.css.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelHeader.js +26 -0
- package/dist-cjs/side-panel/SidePanelHeader.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelProvider.js +71 -0
- package/dist-cjs/side-panel/SidePanelProvider.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelTitle.css.js +6 -0
- package/dist-cjs/side-panel/SidePanelTitle.css.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelTitle.js +47 -0
- package/dist-cjs/side-panel/SidePanelTitle.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelTrigger.js +37 -0
- package/dist-cjs/side-panel/SidePanelTrigger.js.map +1 -0
- package/dist-cjs/side-panel/internal/SidePanelContext.js +31 -0
- package/dist-cjs/side-panel/internal/SidePanelContext.js.map +1 -0
- package/dist-cjs/side-panel/useSidePanel.js +41 -0
- package/dist-cjs/side-panel/useSidePanel.js.map +1 -0
- package/dist-cjs/utils/deprecatedExport.js +30 -0
- package/dist-cjs/utils/deprecatedExport.js.map +1 -0
- package/dist-es/calendar/index.js +50 -0
- package/dist-es/calendar/index.js.map +1 -0
- package/dist-es/content-status/ContentStatus.js +1 -1
- package/dist-es/content-status/ContentStatus.js.map +1 -1
- package/dist-es/date-input/index.js +20 -0
- package/dist-es/date-input/index.js.map +1 -0
- package/dist-es/date-picker/index.js +85 -0
- package/dist-es/date-picker/index.js.map +1 -0
- package/dist-es/index.js +12 -23
- package/dist-es/index.js.map +1 -1
- package/dist-es/localization-provider/index.js +20 -0
- package/dist-es/localization-provider/index.js.map +1 -0
- package/dist-es/rating/Rating.css.js +1 -1
- package/dist-es/rating/Rating.js +13 -18
- package/dist-es/rating/Rating.js.map +1 -1
- package/dist-es/side-panel/SidePanel.css.js +4 -0
- package/dist-es/side-panel/SidePanel.css.js.map +1 -0
- package/dist-es/side-panel/SidePanel.js +154 -0
- package/dist-es/side-panel/SidePanel.js.map +1 -0
- package/dist-es/side-panel/SidePanelContent.css.js +4 -0
- package/dist-es/side-panel/SidePanelContent.css.js.map +1 -0
- package/dist-es/side-panel/SidePanelContent.js +84 -0
- package/dist-es/side-panel/SidePanelContent.js.map +1 -0
- package/dist-es/side-panel/SidePanelHeader.css.js +4 -0
- package/dist-es/side-panel/SidePanelHeader.css.js.map +1 -0
- package/dist-es/side-panel/SidePanelHeader.js +24 -0
- package/dist-es/side-panel/SidePanelHeader.js.map +1 -0
- package/dist-es/side-panel/SidePanelProvider.js +69 -0
- package/dist-es/side-panel/SidePanelProvider.js.map +1 -0
- package/dist-es/side-panel/SidePanelTitle.css.js +4 -0
- package/dist-es/side-panel/SidePanelTitle.css.js.map +1 -0
- package/dist-es/side-panel/SidePanelTitle.js +45 -0
- package/dist-es/side-panel/SidePanelTitle.js.map +1 -0
- package/dist-es/side-panel/SidePanelTrigger.js +35 -0
- package/dist-es/side-panel/SidePanelTrigger.js.map +1 -0
- package/dist-es/side-panel/internal/SidePanelContext.js +28 -0
- package/dist-es/side-panel/internal/SidePanelContext.js.map +1 -0
- package/dist-es/side-panel/useSidePanel.js +39 -0
- package/dist-es/side-panel/useSidePanel.js.map +1 -0
- package/dist-es/utils/deprecatedExport.js +27 -0
- package/dist-es/utils/deprecatedExport.js.map +1 -0
- package/dist-types/calendar/index.d.ts +13 -8
- package/dist-types/date-input/index.d.ts +3 -2
- package/dist-types/index.d.ts +1 -0
- package/dist-types/localization-provider/index.d.ts +9 -1
- package/dist-types/rating/Rating.d.ts +1 -2
- package/dist-types/side-panel/SidePanel.d.ts +27 -0
- package/dist-types/side-panel/SidePanelContent.d.ts +4 -0
- package/dist-types/side-panel/SidePanelHeader.d.ts +4 -0
- package/dist-types/side-panel/SidePanelProvider.d.ts +20 -0
- package/dist-types/side-panel/SidePanelTitle.d.ts +4 -0
- package/dist-types/side-panel/SidePanelTrigger.d.ts +5 -0
- package/dist-types/side-panel/index.d.ts +7 -0
- package/dist-types/side-panel/internal/SidePanelContext.d.ts +48 -0
- package/dist-types/side-panel/internal/index.d.ts +1 -0
- package/dist-types/side-panel/useSidePanel.d.ts +32 -0
- package/dist-types/utils/deprecatedExport.d.ts +11 -0
- package/package.json +5 -12
- package/dist-cjs/calendar/Calendar.css.js +0 -6
- package/dist-cjs/calendar/Calendar.css.js.map +0 -1
- package/dist-cjs/calendar/Calendar.js +0 -152
- package/dist-cjs/calendar/Calendar.js.map +0 -1
- package/dist-cjs/calendar/CalendarGrid.js +0 -85
- package/dist-cjs/calendar/CalendarGrid.js.map +0 -1
- package/dist-cjs/calendar/CalendarMonthHeader.css.js +0 -6
- package/dist-cjs/calendar/CalendarMonthHeader.css.js.map +0 -1
- package/dist-cjs/calendar/CalendarMonthHeader.js +0 -48
- package/dist-cjs/calendar/CalendarMonthHeader.js.map +0 -1
- package/dist-cjs/calendar/CalendarNavigation.css.js +0 -6
- package/dist-cjs/calendar/CalendarNavigation.css.js.map +0 -1
- package/dist-cjs/calendar/CalendarNavigation.js +0 -337
- package/dist-cjs/calendar/CalendarNavigation.js.map +0 -1
- package/dist-cjs/calendar/CalendarWeekHeader.css.js +0 -6
- package/dist-cjs/calendar/CalendarWeekHeader.css.js.map +0 -1
- package/dist-cjs/calendar/CalendarWeekHeader.js +0 -46
- package/dist-cjs/calendar/CalendarWeekHeader.js.map +0 -1
- package/dist-cjs/calendar/internal/CalendarContext.js +0 -25
- package/dist-cjs/calendar/internal/CalendarContext.js.map +0 -1
- package/dist-cjs/calendar/internal/CalendarDay.css.js +0 -6
- package/dist-cjs/calendar/internal/CalendarDay.css.js.map +0 -1
- package/dist-cjs/calendar/internal/CalendarDay.js +0 -97
- package/dist-cjs/calendar/internal/CalendarDay.js.map +0 -1
- package/dist-cjs/calendar/internal/CalendarMonth.css.js +0 -6
- package/dist-cjs/calendar/internal/CalendarMonth.css.js.map +0 -1
- package/dist-cjs/calendar/internal/CalendarMonth.js +0 -76
- package/dist-cjs/calendar/internal/CalendarMonth.js.map +0 -1
- package/dist-cjs/calendar/internal/useFocusManagement.js +0 -68
- package/dist-cjs/calendar/internal/useFocusManagement.js.map +0 -1
- package/dist-cjs/calendar/internal/utils.js +0 -50
- package/dist-cjs/calendar/internal/utils.js.map +0 -1
- package/dist-cjs/calendar/useCalendar.js +0 -183
- package/dist-cjs/calendar/useCalendar.js.map +0 -1
- package/dist-cjs/calendar/useCalendarDay.js +0 -85
- package/dist-cjs/calendar/useCalendarDay.js.map +0 -1
- package/dist-cjs/calendar/useCalendarSelection.js +0 -604
- package/dist-cjs/calendar/useCalendarSelection.js.map +0 -1
- package/dist-cjs/date-input/DateInput.css.js +0 -6
- package/dist-cjs/date-input/DateInput.css.js.map +0 -1
- package/dist-cjs/date-input/DateInputRange.js +0 -352
- package/dist-cjs/date-input/DateInputRange.js.map +0 -1
- package/dist-cjs/date-input/DateInputSingle.js +0 -234
- package/dist-cjs/date-input/DateInputSingle.js.map +0 -1
- package/dist-cjs/date-picker/DatePicker.js +0 -75
- package/dist-cjs/date-picker/DatePicker.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerActions.css.js +0 -6
- package/dist-cjs/date-picker/DatePickerActions.css.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerActions.js +0 -91
- package/dist-cjs/date-picker/DatePickerActions.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerContext.js +0 -36
- package/dist-cjs/date-picker/DatePickerContext.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerHelperText.css.js +0 -6
- package/dist-cjs/date-picker/DatePickerHelperText.css.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerHelperText.js +0 -36
- package/dist-cjs/date-picker/DatePickerHelperText.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerOverlay.css.js +0 -6
- package/dist-cjs/date-picker/DatePickerOverlay.css.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerOverlay.js +0 -48
- package/dist-cjs/date-picker/DatePickerOverlay.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerOverlayProvider.js +0 -166
- package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerPanel.css.js +0 -6
- package/dist-cjs/date-picker/DatePickerPanel.css.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerRangeGridPanel.js +0 -246
- package/dist-cjs/date-picker/DatePickerRangeGridPanel.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerRangeInput.js +0 -202
- package/dist-cjs/date-picker/DatePickerRangeInput.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerRangePanel.js +0 -355
- package/dist-cjs/date-picker/DatePickerRangePanel.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerSingleGridPanel.js +0 -253
- package/dist-cjs/date-picker/DatePickerSingleGridPanel.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerSingleInput.js +0 -148
- package/dist-cjs/date-picker/DatePickerSingleInput.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerSinglePanel.js +0 -20
- package/dist-cjs/date-picker/DatePickerSinglePanel.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerTrigger.js +0 -32
- package/dist-cjs/date-picker/DatePickerTrigger.js.map +0 -1
- package/dist-cjs/date-picker/useDatePicker.js +0 -201
- package/dist-cjs/date-picker/useDatePicker.js.map +0 -1
- package/dist-cjs/date-picker/useFocusOut.js +0 -43
- package/dist-cjs/date-picker/useFocusOut.js.map +0 -1
- package/dist-cjs/date-picker/useKeyboard.js +0 -22
- package/dist-cjs/date-picker/useKeyboard.js.map +0 -1
- package/dist-cjs/localization-provider/LocalizationProvider.js +0 -51
- package/dist-cjs/localization-provider/LocalizationProvider.js.map +0 -1
- package/dist-es/calendar/Calendar.css.js +0 -4
- package/dist-es/calendar/Calendar.css.js.map +0 -1
- package/dist-es/calendar/Calendar.js +0 -150
- package/dist-es/calendar/Calendar.js.map +0 -1
- package/dist-es/calendar/CalendarGrid.js +0 -83
- package/dist-es/calendar/CalendarGrid.js.map +0 -1
- package/dist-es/calendar/CalendarMonthHeader.css.js +0 -4
- package/dist-es/calendar/CalendarMonthHeader.css.js.map +0 -1
- package/dist-es/calendar/CalendarMonthHeader.js +0 -46
- package/dist-es/calendar/CalendarMonthHeader.js.map +0 -1
- package/dist-es/calendar/CalendarNavigation.css.js +0 -4
- package/dist-es/calendar/CalendarNavigation.css.js.map +0 -1
- package/dist-es/calendar/CalendarNavigation.js +0 -335
- package/dist-es/calendar/CalendarNavigation.js.map +0 -1
- package/dist-es/calendar/CalendarWeekHeader.css.js +0 -4
- package/dist-es/calendar/CalendarWeekHeader.css.js.map +0 -1
- package/dist-es/calendar/CalendarWeekHeader.js +0 -44
- package/dist-es/calendar/CalendarWeekHeader.js.map +0 -1
- package/dist-es/calendar/internal/CalendarContext.js +0 -22
- package/dist-es/calendar/internal/CalendarContext.js.map +0 -1
- package/dist-es/calendar/internal/CalendarDay.css.js +0 -4
- package/dist-es/calendar/internal/CalendarDay.css.js.map +0 -1
- package/dist-es/calendar/internal/CalendarDay.js +0 -95
- package/dist-es/calendar/internal/CalendarDay.js.map +0 -1
- package/dist-es/calendar/internal/CalendarMonth.css.js +0 -4
- package/dist-es/calendar/internal/CalendarMonth.css.js.map +0 -1
- package/dist-es/calendar/internal/CalendarMonth.js +0 -74
- package/dist-es/calendar/internal/CalendarMonth.js.map +0 -1
- package/dist-es/calendar/internal/useFocusManagement.js +0 -66
- package/dist-es/calendar/internal/useFocusManagement.js.map +0 -1
- package/dist-es/calendar/internal/utils.js +0 -44
- package/dist-es/calendar/internal/utils.js.map +0 -1
- package/dist-es/calendar/useCalendar.js +0 -181
- package/dist-es/calendar/useCalendar.js.map +0 -1
- package/dist-es/calendar/useCalendarDay.js +0 -83
- package/dist-es/calendar/useCalendarDay.js.map +0 -1
- package/dist-es/calendar/useCalendarSelection.js +0 -600
- package/dist-es/calendar/useCalendarSelection.js.map +0 -1
- package/dist-es/date-input/DateInput.css.js +0 -4
- package/dist-es/date-input/DateInput.css.js.map +0 -1
- package/dist-es/date-input/DateInputRange.js +0 -349
- package/dist-es/date-input/DateInputRange.js.map +0 -1
- package/dist-es/date-input/DateInputSingle.js +0 -232
- package/dist-es/date-input/DateInputSingle.js.map +0 -1
- package/dist-es/date-picker/DatePicker.js +0 -72
- package/dist-es/date-picker/DatePicker.js.map +0 -1
- package/dist-es/date-picker/DatePickerActions.css.js +0 -4
- package/dist-es/date-picker/DatePickerActions.css.js.map +0 -1
- package/dist-es/date-picker/DatePickerActions.js +0 -89
- package/dist-es/date-picker/DatePickerActions.js.map +0 -1
- package/dist-es/date-picker/DatePickerContext.js +0 -32
- package/dist-es/date-picker/DatePickerContext.js.map +0 -1
- package/dist-es/date-picker/DatePickerHelperText.css.js +0 -4
- package/dist-es/date-picker/DatePickerHelperText.css.js.map +0 -1
- package/dist-es/date-picker/DatePickerHelperText.js +0 -34
- package/dist-es/date-picker/DatePickerHelperText.js.map +0 -1
- package/dist-es/date-picker/DatePickerOverlay.css.js +0 -4
- package/dist-es/date-picker/DatePickerOverlay.css.js.map +0 -1
- package/dist-es/date-picker/DatePickerOverlay.js +0 -46
- package/dist-es/date-picker/DatePickerOverlay.js.map +0 -1
- package/dist-es/date-picker/DatePickerOverlayProvider.js +0 -163
- package/dist-es/date-picker/DatePickerOverlayProvider.js.map +0 -1
- package/dist-es/date-picker/DatePickerPanel.css.js +0 -4
- package/dist-es/date-picker/DatePickerPanel.css.js.map +0 -1
- package/dist-es/date-picker/DatePickerRangeGridPanel.js +0 -244
- package/dist-es/date-picker/DatePickerRangeGridPanel.js.map +0 -1
- package/dist-es/date-picker/DatePickerRangeInput.js +0 -199
- package/dist-es/date-picker/DatePickerRangeInput.js.map +0 -1
- package/dist-es/date-picker/DatePickerRangePanel.js +0 -353
- package/dist-es/date-picker/DatePickerRangePanel.js.map +0 -1
- package/dist-es/date-picker/DatePickerSingleGridPanel.js +0 -251
- package/dist-es/date-picker/DatePickerSingleGridPanel.js.map +0 -1
- package/dist-es/date-picker/DatePickerSingleInput.js +0 -146
- package/dist-es/date-picker/DatePickerSingleInput.js.map +0 -1
- package/dist-es/date-picker/DatePickerSinglePanel.js +0 -18
- package/dist-es/date-picker/DatePickerSinglePanel.js.map +0 -1
- package/dist-es/date-picker/DatePickerTrigger.js +0 -30
- package/dist-es/date-picker/DatePickerTrigger.js.map +0 -1
- package/dist-es/date-picker/useDatePicker.js +0 -199
- package/dist-es/date-picker/useDatePicker.js.map +0 -1
- package/dist-es/date-picker/useFocusOut.js +0 -41
- package/dist-es/date-picker/useFocusOut.js.map +0 -1
- package/dist-es/date-picker/useKeyboard.js +0 -20
- package/dist-es/date-picker/useKeyboard.js.map +0 -1
- package/dist-es/localization-provider/LocalizationProvider.js +0 -47
- package/dist-es/localization-provider/LocalizationProvider.js.map +0 -1
- package/dist-types/calendar/Calendar.d.ts +0 -116
- package/dist-types/calendar/CalendarGrid.d.ts +0 -29
- package/dist-types/calendar/CalendarMonthHeader.d.ts +0 -18
- package/dist-types/calendar/CalendarNavigation.d.ts +0 -64
- package/dist-types/calendar/CalendarWeekHeader.d.ts +0 -6
- package/dist-types/calendar/internal/CalendarContext.d.ts +0 -7
- package/dist-types/calendar/internal/CalendarDay.d.ts +0 -32
- package/dist-types/calendar/internal/CalendarMonth.d.ts +0 -13
- package/dist-types/calendar/internal/useFocusManagement.d.ts +0 -9
- package/dist-types/calendar/internal/utils.d.ts +0 -6
- package/dist-types/calendar/useCalendar.d.ts +0 -294
- package/dist-types/calendar/useCalendarDay.d.ts +0 -56
- package/dist-types/calendar/useCalendarSelection.d.ts +0 -365
- package/dist-types/date-input/DateInputRange.d.ts +0 -136
- package/dist-types/date-input/DateInputSingle.d.ts +0 -104
- package/dist-types/date-picker/DatePicker.d.ts +0 -55
- package/dist-types/date-picker/DatePickerActions.d.ts +0 -81
- package/dist-types/date-picker/DatePickerContext.d.ts +0 -188
- package/dist-types/date-picker/DatePickerHelperText.d.ts +0 -4
- package/dist-types/date-picker/DatePickerOverlay.d.ts +0 -11
- package/dist-types/date-picker/DatePickerOverlayProvider.d.ts +0 -102
- package/dist-types/date-picker/DatePickerRangeGridPanel.d.ts +0 -16
- package/dist-types/date-picker/DatePickerRangeInput.d.ts +0 -18
- package/dist-types/date-picker/DatePickerRangePanel.d.ts +0 -84
- package/dist-types/date-picker/DatePickerSingleGridPanel.d.ts +0 -64
- package/dist-types/date-picker/DatePickerSingleInput.d.ts +0 -17
- package/dist-types/date-picker/DatePickerSinglePanel.d.ts +0 -8
- package/dist-types/date-picker/DatePickerTrigger.d.ts +0 -9
- package/dist-types/date-picker/index.d.ts +0 -13
- package/dist-types/date-picker/useDatePicker.d.ts +0 -119
- package/dist-types/date-picker/useFocusOut.d.ts +0 -9
- package/dist-types/date-picker/useKeyboard.d.ts +0 -20
- package/dist-types/localization-provider/LocalizationProvider.d.ts +0 -62
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var core = require('@salt-ds/core');
|
|
5
|
-
var styles = require('@salt-ds/styles');
|
|
6
|
-
var window = require('@salt-ds/window');
|
|
7
|
-
var clsx = require('clsx');
|
|
8
|
-
var react = require('react');
|
|
9
|
-
var Calendar = require('../calendar/Calendar.js');
|
|
10
|
-
var CalendarGrid = require('../calendar/CalendarGrid.js');
|
|
11
|
-
var CalendarNavigation = require('../calendar/CalendarNavigation.js');
|
|
12
|
-
require('../calendar/CalendarWeekHeader.js');
|
|
13
|
-
var LocalizationProvider = require('../localization-provider/LocalizationProvider.js');
|
|
14
|
-
require('../calendar/useCalendarSelection.js');
|
|
15
|
-
require('../calendar/internal/CalendarContext.js');
|
|
16
|
-
var utils = require('../calendar/internal/utils.js');
|
|
17
|
-
var DatePickerContext = require('./DatePickerContext.js');
|
|
18
|
-
var DatePickerOverlayProvider = require('./DatePickerOverlayProvider.js');
|
|
19
|
-
var DatePickerPanel = require('./DatePickerPanel.css.js');
|
|
20
|
-
|
|
21
|
-
const withBaseName = core.makePrefixer("saltDatePickerPanel");
|
|
22
|
-
const DatePickerSingleGridPanel = react.forwardRef(
|
|
23
|
-
function DatePickerSingleGridPanel2(props, ref) {
|
|
24
|
-
const { dateAdapter } = LocalizationProvider.useLocalization();
|
|
25
|
-
const {
|
|
26
|
-
CalendarProps,
|
|
27
|
-
CalendarNavigationProps,
|
|
28
|
-
CalendarGridProps,
|
|
29
|
-
className,
|
|
30
|
-
defaultVisibleMonth,
|
|
31
|
-
visibleMonth: visibleMonthProp,
|
|
32
|
-
onVisibleMonthChange,
|
|
33
|
-
helperText,
|
|
34
|
-
onFocusedDateChange,
|
|
35
|
-
onHoveredDateChange,
|
|
36
|
-
onSelectionChange,
|
|
37
|
-
numberOfVisibleMonths = 1,
|
|
38
|
-
columns = numberOfVisibleMonths,
|
|
39
|
-
...rest
|
|
40
|
-
} = props;
|
|
41
|
-
const targetWindow = window.useWindow();
|
|
42
|
-
styles.useComponentCssInjection({
|
|
43
|
-
testId: "salt-date-picker-single-grid-panel",
|
|
44
|
-
css: DatePickerPanel,
|
|
45
|
-
window: targetWindow
|
|
46
|
-
});
|
|
47
|
-
const stateAndHelpers = DatePickerContext.useDatePickerContext({
|
|
48
|
-
selectionVariant: "single"
|
|
49
|
-
});
|
|
50
|
-
const {
|
|
51
|
-
state: {
|
|
52
|
-
timezone,
|
|
53
|
-
selectedDate = null,
|
|
54
|
-
minDate = dateAdapter.startOf(dateAdapter.today(timezone), "month"),
|
|
55
|
-
maxDate = dateAdapter.add(minDate, { months: 1 })
|
|
56
|
-
},
|
|
57
|
-
helpers: { select, isDayHighlighted, isDayUnselectable }
|
|
58
|
-
} = stateAndHelpers;
|
|
59
|
-
const { matchedBreakpoints } = core.useBreakpoint();
|
|
60
|
-
const responsiveColumns = core.resolveResponsiveValue(columns, matchedBreakpoints) ?? 1;
|
|
61
|
-
const responsiveNumberOfVisibleMonths = core.resolveResponsiveValue(numberOfVisibleMonths, matchedBreakpoints) ?? 1;
|
|
62
|
-
const {
|
|
63
|
-
state: { focused, initialFocusRef }
|
|
64
|
-
} = DatePickerOverlayProvider.useDatePickerOverlay();
|
|
65
|
-
const [hoveredDate, setHoveredDate] = react.useState(null);
|
|
66
|
-
const [uncontrolledDefaultVisibleMonth] = react.useState(() => {
|
|
67
|
-
const validDate = dateAdapter.isValid(selectedDate) ? selectedDate : dateAdapter.today(timezone);
|
|
68
|
-
return defaultVisibleMonth || dateAdapter.startOf(validDate, "month");
|
|
69
|
-
});
|
|
70
|
-
const [visibleMonth, setVisibleMonth] = core.useControlled({
|
|
71
|
-
controlled: visibleMonthProp,
|
|
72
|
-
default: uncontrolledDefaultVisibleMonth,
|
|
73
|
-
name: "DatePickerSingleGridPanel",
|
|
74
|
-
state: "visibleMonth"
|
|
75
|
-
});
|
|
76
|
-
const [focusedDate, setFocusedDate] = react.useState(null);
|
|
77
|
-
const calendarGridFocused = react.useRef(false);
|
|
78
|
-
const handleSelectionChange = react.useCallback(
|
|
79
|
-
(event, newDate) => {
|
|
80
|
-
const singleDate = newDate;
|
|
81
|
-
select(event, singleDate);
|
|
82
|
-
onSelectionChange == null ? void 0 : onSelectionChange(event, singleDate);
|
|
83
|
-
},
|
|
84
|
-
[onSelectionChange, select]
|
|
85
|
-
);
|
|
86
|
-
const handleHoveredDateChange = react.useCallback(
|
|
87
|
-
(event, newHoveredDate) => {
|
|
88
|
-
setHoveredDate(newHoveredDate);
|
|
89
|
-
onHoveredDateChange == null ? void 0 : onHoveredDateChange(event, newHoveredDate);
|
|
90
|
-
},
|
|
91
|
-
[onHoveredDateChange]
|
|
92
|
-
);
|
|
93
|
-
const handleVisibleMonthChange = react.useCallback(
|
|
94
|
-
(event, newVisibleMonth) => {
|
|
95
|
-
setVisibleMonth(newVisibleMonth);
|
|
96
|
-
onVisibleMonthChange == null ? void 0 : onVisibleMonthChange(event, newVisibleMonth);
|
|
97
|
-
},
|
|
98
|
-
[onVisibleMonthChange]
|
|
99
|
-
);
|
|
100
|
-
const handleFocusedDateChange = react.useCallback(
|
|
101
|
-
(event, newFocusedDate) => {
|
|
102
|
-
setFocusedDate(newFocusedDate);
|
|
103
|
-
if (!newFocusedDate) {
|
|
104
|
-
onFocusedDateChange == null ? void 0 : onFocusedDateChange(event, newFocusedDate);
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
const startOfFocusedMonth = dateAdapter.startOf(
|
|
108
|
-
newFocusedDate,
|
|
109
|
-
"month"
|
|
110
|
-
);
|
|
111
|
-
const lastVisibleMonth = dateAdapter.add(visibleMonth, {
|
|
112
|
-
months: responsiveNumberOfVisibleMonths - 1
|
|
113
|
-
});
|
|
114
|
-
const isBeforeVisibleMonth = dateAdapter.compare(startOfFocusedMonth, visibleMonth) < 0;
|
|
115
|
-
const isAfterLastVisibleMonth = dateAdapter.compare(startOfFocusedMonth, lastVisibleMonth) > 0;
|
|
116
|
-
if (isBeforeVisibleMonth) {
|
|
117
|
-
handleVisibleMonthChange(event, startOfFocusedMonth);
|
|
118
|
-
} else if (isAfterLastVisibleMonth) {
|
|
119
|
-
const newLastVisibleMonth = dateAdapter.subtract(
|
|
120
|
-
startOfFocusedMonth,
|
|
121
|
-
{
|
|
122
|
-
months: responsiveNumberOfVisibleMonths - 1
|
|
123
|
-
}
|
|
124
|
-
);
|
|
125
|
-
handleVisibleMonthChange(event, newLastVisibleMonth);
|
|
126
|
-
}
|
|
127
|
-
onFocusedDateChange == null ? void 0 : onFocusedDateChange(event, newFocusedDate);
|
|
128
|
-
},
|
|
129
|
-
[
|
|
130
|
-
dateAdapter,
|
|
131
|
-
handleVisibleMonthChange,
|
|
132
|
-
onFocusedDateChange,
|
|
133
|
-
responsiveNumberOfVisibleMonths,
|
|
134
|
-
visibleMonth
|
|
135
|
-
]
|
|
136
|
-
);
|
|
137
|
-
const getNextFocusedDate = react.useCallback(() => {
|
|
138
|
-
const isOutsideAllowedDates = (date) => {
|
|
139
|
-
return dateAdapter.compare(date, minDate) < 0 || dateAdapter.compare(date, maxDate) > 0;
|
|
140
|
-
};
|
|
141
|
-
const isDaySelectable = (date) => !(date && ((isDayUnselectable == null ? void 0 : isDayUnselectable(date)) || isOutsideAllowedDates(date)));
|
|
142
|
-
const startVisibleMonth = dateAdapter.startOf(visibleMonth, "month");
|
|
143
|
-
const endVisibleMonth = dateAdapter.add(visibleMonth, {
|
|
144
|
-
months: responsiveNumberOfVisibleMonths - 1
|
|
145
|
-
});
|
|
146
|
-
const selectedDateStartOfMonth = selectedDate ? dateAdapter.startOf(selectedDate, "month") : null;
|
|
147
|
-
const getVisibleSelectedDate = () => {
|
|
148
|
-
if (selectedDateStartOfMonth && dateAdapter.compare(selectedDateStartOfMonth, startVisibleMonth) >= 0 && dateAdapter.compare(selectedDateStartOfMonth, endVisibleMonth) <= 0) {
|
|
149
|
-
return selectedDate;
|
|
150
|
-
}
|
|
151
|
-
return null;
|
|
152
|
-
};
|
|
153
|
-
const focusSelectedDate = getVisibleSelectedDate();
|
|
154
|
-
if (focusSelectedDate && isDaySelectable(focusSelectedDate)) {
|
|
155
|
-
return focusSelectedDate;
|
|
156
|
-
}
|
|
157
|
-
const today = dateAdapter.today(timezone);
|
|
158
|
-
const todayStartOfMonth = dateAdapter.startOf(today, "month");
|
|
159
|
-
if (dateAdapter.compare(todayStartOfMonth, startVisibleMonth) >= 0 && dateAdapter.compare(todayStartOfMonth, endVisibleMonth) <= 0 && isDaySelectable(today)) {
|
|
160
|
-
return today;
|
|
161
|
-
}
|
|
162
|
-
const getFirstSelectableDate = (startMonth, numberOfMonths) => {
|
|
163
|
-
for (let i = 0; i < numberOfMonths; i++) {
|
|
164
|
-
const currentMonth = dateAdapter.add(startMonth, { months: i });
|
|
165
|
-
const firstSelectableDate = utils.generateDatesForMonth(
|
|
166
|
-
dateAdapter,
|
|
167
|
-
currentMonth
|
|
168
|
-
).find((visibleDay) => isDaySelectable(visibleDay));
|
|
169
|
-
if (firstSelectableDate) {
|
|
170
|
-
return firstSelectableDate;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
return null;
|
|
174
|
-
};
|
|
175
|
-
return getFirstSelectableDate(
|
|
176
|
-
startVisibleMonth,
|
|
177
|
-
responsiveNumberOfVisibleMonths
|
|
178
|
-
);
|
|
179
|
-
}, [
|
|
180
|
-
dateAdapter,
|
|
181
|
-
isDayUnselectable,
|
|
182
|
-
minDate,
|
|
183
|
-
maxDate,
|
|
184
|
-
responsiveNumberOfVisibleMonths,
|
|
185
|
-
selectedDate,
|
|
186
|
-
visibleMonth,
|
|
187
|
-
timezone
|
|
188
|
-
]);
|
|
189
|
-
core.useIsomorphicLayoutEffect(() => {
|
|
190
|
-
if (focused && !calendarGridFocused.current) {
|
|
191
|
-
setFocusedDate((prevFocusedDate) => {
|
|
192
|
-
if (!prevFocusedDate) {
|
|
193
|
-
return getNextFocusedDate();
|
|
194
|
-
}
|
|
195
|
-
return prevFocusedDate;
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
calendarGridFocused.current = focused;
|
|
199
|
-
}, [focused]);
|
|
200
|
-
const calendarProps = {
|
|
201
|
-
visibleMonth,
|
|
202
|
-
focusedDateRef: initialFocusRef,
|
|
203
|
-
focusedDate: (calendarGridFocused == null ? void 0 : calendarGridFocused.current) ? focusedDate : null,
|
|
204
|
-
hoveredDate,
|
|
205
|
-
isDayHighlighted,
|
|
206
|
-
isDayUnselectable,
|
|
207
|
-
hideOutOfRangeDates: true,
|
|
208
|
-
selectedDate,
|
|
209
|
-
minDate,
|
|
210
|
-
maxDate,
|
|
211
|
-
numberOfVisibleMonths: responsiveNumberOfVisibleMonths,
|
|
212
|
-
onFocusedDateChange: handleFocusedDateChange,
|
|
213
|
-
onHoveredDateChange: handleHoveredDateChange,
|
|
214
|
-
onSelectionChange: handleSelectionChange,
|
|
215
|
-
onVisibleMonthChange: handleVisibleMonthChange,
|
|
216
|
-
timezone,
|
|
217
|
-
...CalendarProps
|
|
218
|
-
};
|
|
219
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
220
|
-
core.StackLayout,
|
|
221
|
-
{
|
|
222
|
-
separators: true,
|
|
223
|
-
gap: 0,
|
|
224
|
-
className: clsx.clsx(className, withBaseName("container")),
|
|
225
|
-
ref,
|
|
226
|
-
...rest,
|
|
227
|
-
children: [
|
|
228
|
-
helperText && /* @__PURE__ */ jsxRuntime.jsx(core.FlexItem, { className: withBaseName("header"), children: /* @__PURE__ */ jsxRuntime.jsx(core.FormFieldHelperText, { children: helperText }) }),
|
|
229
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.FlexLayout, { gap: 0, children: /* @__PURE__ */ jsxRuntime.jsx(core.FormFieldContext.Provider, { value: {}, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
230
|
-
Calendar.Calendar,
|
|
231
|
-
{
|
|
232
|
-
selectionVariant: "single",
|
|
233
|
-
...calendarProps,
|
|
234
|
-
children: [
|
|
235
|
-
/* @__PURE__ */ jsxRuntime.jsx(CalendarNavigation.CalendarNavigation, { ...CalendarNavigationProps }),
|
|
236
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
237
|
-
CalendarGrid.CalendarGrid,
|
|
238
|
-
{
|
|
239
|
-
columns: responsiveColumns,
|
|
240
|
-
...CalendarGridProps
|
|
241
|
-
}
|
|
242
|
-
)
|
|
243
|
-
]
|
|
244
|
-
}
|
|
245
|
-
) }) })
|
|
246
|
-
]
|
|
247
|
-
}
|
|
248
|
-
);
|
|
249
|
-
}
|
|
250
|
-
);
|
|
251
|
-
|
|
252
|
-
exports.DatePickerSingleGridPanel = DatePickerSingleGridPanel;
|
|
253
|
-
//# sourceMappingURL=DatePickerSingleGridPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerSingleGridPanel.js","sources":["../src/date-picker/DatePickerSingleGridPanel.tsx"],"sourcesContent":["import {\n FlexItem,\n FlexLayout,\n FormFieldContext,\n type FormFieldContextValue,\n FormFieldHelperText,\n makePrefixer,\n type ResponsiveProp,\n resolveResponsiveValue,\n StackLayout,\n useBreakpoint,\n useControlled,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type SyntheticEvent,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport {\n Calendar,\n CalendarGrid,\n type CalendarGridProps,\n CalendarNavigation,\n type CalendarNavigationProps,\n type CalendarSingleProps,\n type DateRangeSelection,\n type SingleDateSelection,\n} from \"../calendar\";\nimport { generateDatesForMonth } from \"../calendar/internal/utils\";\nimport { useLocalization } from \"../localization-provider\";\nimport {\n type SingleDatePickerState,\n useDatePickerContext,\n} from \"./DatePickerContext\";\nimport { useDatePickerOverlay } from \"./DatePickerOverlayProvider\";\nimport datePickerPanelCss from \"./DatePickerPanel.css\";\n\n/**\n * Base props for the DatePickerPanel grid components.\n * @template TDate - The type of the date object.\n */\nexport interface DatePickerPanelBaseProps<TDate extends DateFrameworkType>\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Helper text to be displayed below the date picker.\n */\n helperText?: string;\n /**\n * The visible month for the first visible calendar\n */\n visibleMonth?: TDate;\n /**\n * Number of columns.\n */\n columns?: ResponsiveProp<number | string>;\n /**\n * Number of visible months, maximum 12, defaults to 1\n */\n numberOfVisibleMonths?: ResponsiveProp<\n 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12\n >;\n /**\n * The default visible month.\n */\n defaultVisibleMonth?: TDate;\n /**\n * Callback fired when the visible month changes.\n * @param event - The synthetic event or null if triggered by code.\n * @param visibleMonth - The new visible month.\n */\n onVisibleMonthChange?: (\n event: SyntheticEvent | null,\n visibleMonth: TDate,\n ) => void;\n /**\n * Callback fired when the focused date changes.\n * @param event - The synthetic event or null if triggered by code.\n * @param focusedDate - The new hovered date.\n */\n onFocusedDateChange?: (\n event: SyntheticEvent | null,\n focusedDate?: TDate | null,\n ) => void;\n /**\n * Callback fired when the hovered date changes.\n * @param event - The synthetic event.\n * @param hoveredDate - The new hovered date.\n */\n onHoveredDateChange?: (\n event: SyntheticEvent,\n hoveredDate?: TDate | null,\n ) => void;\n /**\n * Props to be passed to the CalendarNavigation component.\n */\n CalendarNavigationProps?: Partial<CalendarNavigationProps<TDate>>;\n /**\n * Props to be passed to the CalendarGrid component.\n */\n CalendarGridProps?: Partial<CalendarGridProps<TDate>>;\n}\n\nconst withBaseName = makePrefixer(\"saltDatePickerPanel\");\n\nexport type DatePickerSingleGridPanelProps<TDate extends DateFrameworkType> =\n DatePickerPanelBaseProps<TDate> &\n SingleDateSelection<TDate> & {\n onSelectionChange?: (\n event: SyntheticEvent,\n selectedDate?: TDate | null,\n ) => void;\n CalendarProps?: Partial<\n Omit<\n CalendarSingleProps<TDate>,\n | \"selectionVariant\"\n | \"selectedDate\"\n | \"defaultSelectedDate\"\n | \"onSelectionChange\"\n | \"onVisibleMonthChange\"\n >\n >;\n };\n\nexport const DatePickerSingleGridPanel = forwardRef(\n function DatePickerSingleGridPanel<TDate extends DateFrameworkType>(\n props: DatePickerSingleGridPanelProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n ) {\n const { dateAdapter } = useLocalization<TDate>();\n\n const {\n CalendarProps,\n CalendarNavigationProps,\n CalendarGridProps,\n className,\n defaultVisibleMonth,\n visibleMonth: visibleMonthProp,\n onVisibleMonthChange,\n helperText,\n onFocusedDateChange,\n onHoveredDateChange,\n onSelectionChange,\n numberOfVisibleMonths = 1,\n columns = numberOfVisibleMonths,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-date-picker-single-grid-panel\",\n css: datePickerPanelCss,\n window: targetWindow,\n });\n\n const stateAndHelpers: SingleDatePickerState<TDate> = useDatePickerContext({\n selectionVariant: \"single\",\n });\n\n const {\n state: {\n timezone,\n selectedDate = null,\n minDate = dateAdapter.startOf(dateAdapter.today(timezone), \"month\"),\n maxDate = dateAdapter.add(minDate, { months: 1 }),\n },\n helpers: { select, isDayHighlighted, isDayUnselectable },\n } = stateAndHelpers;\n\n const { matchedBreakpoints } = useBreakpoint();\n\n const responsiveColumns =\n resolveResponsiveValue(columns, matchedBreakpoints) ?? 1;\n const responsiveNumberOfVisibleMonths =\n resolveResponsiveValue(numberOfVisibleMonths, matchedBreakpoints) ?? 1;\n\n const {\n state: { focused, initialFocusRef },\n } = useDatePickerOverlay();\n\n const [hoveredDate, setHoveredDate] = useState<TDate | null>(null);\n\n const [uncontrolledDefaultVisibleMonth] = useState(() => {\n const validDate = dateAdapter.isValid(selectedDate)\n ? selectedDate\n : dateAdapter.today(timezone);\n return defaultVisibleMonth || dateAdapter.startOf(validDate, \"month\");\n });\n const [visibleMonth, setVisibleMonth] = useControlled({\n controlled: visibleMonthProp,\n default: uncontrolledDefaultVisibleMonth,\n name: \"DatePickerSingleGridPanel\",\n state: \"visibleMonth\",\n });\n\n const [focusedDate, setFocusedDate] = useState<TDate | null>(null);\n const calendarGridFocused = useRef(false);\n\n const handleSelectionChange = useCallback(\n (\n event: SyntheticEvent,\n newDate: TDate | DateRangeSelection<TDate> | null,\n ) => {\n const singleDate = newDate as TDate | null;\n select(event, singleDate);\n onSelectionChange?.(event, singleDate);\n },\n [onSelectionChange, select],\n );\n\n const handleHoveredDateChange = useCallback(\n (event: SyntheticEvent, newHoveredDate: TDate | null) => {\n setHoveredDate(newHoveredDate);\n onHoveredDateChange?.(event, newHoveredDate);\n },\n [onHoveredDateChange],\n );\n\n const handleVisibleMonthChange = useCallback(\n (event: SyntheticEvent | null, newVisibleMonth: TDate) => {\n setVisibleMonth(newVisibleMonth);\n onVisibleMonthChange?.(event, newVisibleMonth);\n },\n [onVisibleMonthChange],\n );\n\n const handleFocusedDateChange = useCallback(\n (event: SyntheticEvent | null, newFocusedDate: TDate) => {\n setFocusedDate(newFocusedDate);\n if (!newFocusedDate) {\n onFocusedDateChange?.(event, newFocusedDate);\n return;\n }\n\n const startOfFocusedMonth = dateAdapter.startOf(\n newFocusedDate,\n \"month\",\n );\n const lastVisibleMonth = dateAdapter.add(visibleMonth, {\n months: responsiveNumberOfVisibleMonths - 1,\n });\n\n const isBeforeVisibleMonth =\n dateAdapter.compare(startOfFocusedMonth, visibleMonth) < 0;\n const isAfterLastVisibleMonth =\n dateAdapter.compare(startOfFocusedMonth, lastVisibleMonth) > 0;\n\n if (isBeforeVisibleMonth) {\n handleVisibleMonthChange(event, startOfFocusedMonth);\n } else if (isAfterLastVisibleMonth) {\n const newLastVisibleMonth = dateAdapter.subtract(\n startOfFocusedMonth,\n {\n months: responsiveNumberOfVisibleMonths - 1,\n },\n );\n handleVisibleMonthChange(event, newLastVisibleMonth);\n }\n onFocusedDateChange?.(event, newFocusedDate);\n },\n [\n dateAdapter,\n handleVisibleMonthChange,\n onFocusedDateChange,\n responsiveNumberOfVisibleMonths,\n visibleMonth,\n ],\n );\n\n const getNextFocusedDate = useCallback(() => {\n const isOutsideAllowedDates = (date: TDate) => {\n return (\n dateAdapter.compare(date, minDate) < 0 ||\n dateAdapter.compare(date, maxDate) > 0\n );\n };\n const isDaySelectable = (date: TDate) =>\n !(date && (isDayUnselectable?.(date) || isOutsideAllowedDates(date)));\n\n const startVisibleMonth = dateAdapter.startOf(visibleMonth, \"month\");\n const endVisibleMonth = dateAdapter.add(visibleMonth, {\n months: responsiveNumberOfVisibleMonths - 1,\n });\n const selectedDateStartOfMonth = selectedDate\n ? dateAdapter.startOf(selectedDate, \"month\")\n : null;\n\n const getVisibleSelectedDate = () => {\n if (\n selectedDateStartOfMonth &&\n dateAdapter.compare(selectedDateStartOfMonth, startVisibleMonth) >=\n 0 &&\n dateAdapter.compare(selectedDateStartOfMonth, endVisibleMonth) <= 0\n ) {\n return selectedDate;\n }\n return null;\n };\n\n const focusSelectedDate = getVisibleSelectedDate();\n if (focusSelectedDate && isDaySelectable(focusSelectedDate)) {\n return focusSelectedDate;\n }\n\n // Today\n const today = dateAdapter.today(timezone);\n const todayStartOfMonth = dateAdapter.startOf(today, \"month\");\n if (\n dateAdapter.compare(todayStartOfMonth, startVisibleMonth) >= 0 &&\n dateAdapter.compare(todayStartOfMonth, endVisibleMonth) <= 0 &&\n isDaySelectable(today)\n ) {\n return today;\n }\n\n // First selectable date across visible months\n const getFirstSelectableDate = (\n startMonth: TDate,\n numberOfMonths: number,\n ) => {\n for (let i = 0; i < numberOfMonths; i++) {\n const currentMonth = dateAdapter.add(startMonth, { months: i });\n const firstSelectableDate = generateDatesForMonth(\n dateAdapter,\n currentMonth,\n ).find((visibleDay) => isDaySelectable(visibleDay));\n\n if (firstSelectableDate) {\n return firstSelectableDate;\n }\n }\n\n return null;\n };\n\n return getFirstSelectableDate(\n startVisibleMonth,\n responsiveNumberOfVisibleMonths,\n );\n }, [\n dateAdapter,\n isDayUnselectable,\n minDate,\n maxDate,\n responsiveNumberOfVisibleMonths,\n selectedDate,\n visibleMonth,\n timezone,\n ]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: only run when focus/min/max date changes\n useIsomorphicLayoutEffect(() => {\n // Called when the overlay opens or the focus shifts between trigger and overlay\n if (focused && !calendarGridFocused.current) {\n setFocusedDate((prevFocusedDate) => {\n if (!prevFocusedDate) {\n return getNextFocusedDate();\n }\n return prevFocusedDate;\n });\n }\n calendarGridFocused.current = focused;\n }, [focused]);\n\n const calendarProps = {\n visibleMonth,\n focusedDateRef: initialFocusRef,\n focusedDate: calendarGridFocused?.current ? focusedDate : null,\n hoveredDate,\n isDayHighlighted,\n isDayUnselectable,\n hideOutOfRangeDates: true,\n selectedDate,\n minDate,\n maxDate,\n numberOfVisibleMonths: responsiveNumberOfVisibleMonths,\n onFocusedDateChange: handleFocusedDateChange,\n onHoveredDateChange: handleHoveredDateChange,\n onSelectionChange: handleSelectionChange,\n onVisibleMonthChange: handleVisibleMonthChange,\n timezone,\n ...CalendarProps,\n };\n\n return (\n <StackLayout\n separators\n gap={0}\n className={clsx(className, withBaseName(\"container\"))}\n ref={ref}\n {...rest}\n >\n {helperText && (\n <FlexItem className={withBaseName(\"header\")}>\n <FormFieldHelperText>{helperText}</FormFieldHelperText>\n </FlexItem>\n )}\n <FlexLayout gap={0}>\n <FormFieldContext.Provider value={{} as FormFieldContextValue}>\n <Calendar\n selectionVariant={\"single\"}\n {...(calendarProps as Partial<CalendarSingleProps<TDate>>)}\n >\n <CalendarNavigation {...CalendarNavigationProps} />\n <CalendarGrid\n columns={responsiveColumns}\n {...CalendarGridProps}\n />\n </Calendar>\n </FormFieldContext.Provider>\n </FlexLayout>\n </StackLayout>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","DatePickerSingleGridPanel","useLocalization","useWindow","useComponentCssInjection","datePickerPanelCss","useDatePickerContext","useBreakpoint","resolveResponsiveValue","useDatePickerOverlay","useState","useControlled","useRef","useCallback","generateDatesForMonth","useIsomorphicLayoutEffect","jsxs","StackLayout","clsx","jsx","FlexItem","FormFieldHelperText","FlexLayout","FormFieldContext","Calendar","CalendarNavigation","CalendarGrid"],"mappings":"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"}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var core = require('@salt-ds/core');
|
|
5
|
-
var dateAdapters = require('@salt-ds/date-adapters');
|
|
6
|
-
var icons = require('@salt-ds/icons');
|
|
7
|
-
var clsx = require('clsx');
|
|
8
|
-
var react = require('react');
|
|
9
|
-
require('../date-input/DateInputRange.js');
|
|
10
|
-
var DateInputSingle = require('../date-input/DateInputSingle.js');
|
|
11
|
-
var LocalizationProvider = require('../localization-provider/LocalizationProvider.js');
|
|
12
|
-
var DatePickerContext = require('./DatePickerContext.js');
|
|
13
|
-
var DatePickerOverlayProvider = require('./DatePickerOverlayProvider.js');
|
|
14
|
-
|
|
15
|
-
const withBaseName = core.makePrefixer("saltDatePickerSingleInput");
|
|
16
|
-
function defaultSingleValidation(dateAdapter, date, details, minDate, maxDate) {
|
|
17
|
-
var _a, _b;
|
|
18
|
-
if (!date) {
|
|
19
|
-
details.errors = details.errors ?? [];
|
|
20
|
-
const hasUnsetError = details.errors.some(
|
|
21
|
-
(err) => err.type === dateAdapters.DateDetailError.UNSET
|
|
22
|
-
);
|
|
23
|
-
if (!hasUnsetError) {
|
|
24
|
-
details.errors.push({
|
|
25
|
-
type: dateAdapters.DateDetailError.UNSET,
|
|
26
|
-
message: "no date defined"
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
} else {
|
|
30
|
-
if (minDate && dateAdapter.isValid(date) && dateAdapter.compare(date, minDate) < 0) {
|
|
31
|
-
details.errors = details.errors ?? [];
|
|
32
|
-
(_a = details.errors) == null ? void 0 : _a.push({
|
|
33
|
-
type: "min-date",
|
|
34
|
-
message: "is before min date"
|
|
35
|
-
});
|
|
36
|
-
} else if (maxDate && dateAdapter.isValid(date) && dateAdapter.compare(date, maxDate) > 0) {
|
|
37
|
-
details.errors = details.errors ?? [];
|
|
38
|
-
(_b = details.errors) == null ? void 0 : _b.push({
|
|
39
|
-
type: "max-date",
|
|
40
|
-
message: "is after max date"
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return details;
|
|
45
|
-
}
|
|
46
|
-
const DatePickerSingleInput = react.forwardRef(
|
|
47
|
-
(props, ref) => {
|
|
48
|
-
const { dateAdapter } = LocalizationProvider.useLocalization();
|
|
49
|
-
const {
|
|
50
|
-
className,
|
|
51
|
-
value: valueProp,
|
|
52
|
-
validate,
|
|
53
|
-
defaultValue,
|
|
54
|
-
onDateValueChange,
|
|
55
|
-
...rest
|
|
56
|
-
} = props;
|
|
57
|
-
const {
|
|
58
|
-
state: {
|
|
59
|
-
selectedDate,
|
|
60
|
-
disabled,
|
|
61
|
-
readOnly,
|
|
62
|
-
cancelled,
|
|
63
|
-
minDate,
|
|
64
|
-
maxDate,
|
|
65
|
-
timezone
|
|
66
|
-
},
|
|
67
|
-
helpers: { select }
|
|
68
|
-
} = DatePickerContext.useDatePickerContext({ selectionVariant: "single" });
|
|
69
|
-
const {
|
|
70
|
-
state: { open },
|
|
71
|
-
helpers: { setOpen }
|
|
72
|
-
} = DatePickerOverlayProvider.useDatePickerOverlay();
|
|
73
|
-
const previousValue = react.useRef();
|
|
74
|
-
const [value, setValue] = core.useControlled({
|
|
75
|
-
controlled: valueProp,
|
|
76
|
-
default: defaultValue,
|
|
77
|
-
name: "DatePickerSingleInput",
|
|
78
|
-
state: "value"
|
|
79
|
-
});
|
|
80
|
-
const handleCalendarButton = react.useCallback(
|
|
81
|
-
(event) => {
|
|
82
|
-
event.persist();
|
|
83
|
-
setOpen(!open, event.nativeEvent, "click");
|
|
84
|
-
event.stopPropagation();
|
|
85
|
-
},
|
|
86
|
-
[open, setOpen]
|
|
87
|
-
);
|
|
88
|
-
const handleDateChange = react.useCallback(
|
|
89
|
-
(event, date, details) => {
|
|
90
|
-
const validatedDetails = validate ? validate(date, details) : defaultSingleValidation(
|
|
91
|
-
dateAdapter,
|
|
92
|
-
date,
|
|
93
|
-
details,
|
|
94
|
-
minDate,
|
|
95
|
-
maxDate
|
|
96
|
-
);
|
|
97
|
-
select(event, date, validatedDetails);
|
|
98
|
-
},
|
|
99
|
-
[dateAdapter, minDate, maxDate, select, validate]
|
|
100
|
-
);
|
|
101
|
-
const handleDateValueChange = react.useCallback(
|
|
102
|
-
(event, newDateValue) => {
|
|
103
|
-
setValue(newDateValue);
|
|
104
|
-
onDateValueChange == null ? void 0 : onDateValueChange(event, newDateValue);
|
|
105
|
-
},
|
|
106
|
-
[onDateValueChange]
|
|
107
|
-
);
|
|
108
|
-
react.useEffect(() => {
|
|
109
|
-
if (open) {
|
|
110
|
-
previousValue.current = value;
|
|
111
|
-
}
|
|
112
|
-
}, [open]);
|
|
113
|
-
react.useEffect(() => {
|
|
114
|
-
if (cancelled) {
|
|
115
|
-
setValue(previousValue == null ? void 0 : previousValue.current);
|
|
116
|
-
}
|
|
117
|
-
}, [cancelled]);
|
|
118
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
119
|
-
DateInputSingle.DateInputSingle,
|
|
120
|
-
{
|
|
121
|
-
value: value ?? "",
|
|
122
|
-
className: clsx.clsx(withBaseName(), className),
|
|
123
|
-
date: selectedDate ?? null,
|
|
124
|
-
readOnly,
|
|
125
|
-
disabled,
|
|
126
|
-
ref,
|
|
127
|
-
onDateChange: handleDateChange,
|
|
128
|
-
onDateValueChange: handleDateValueChange,
|
|
129
|
-
endAdornment: !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
|
|
130
|
-
core.Button,
|
|
131
|
-
{
|
|
132
|
-
appearance: "transparent",
|
|
133
|
-
sentiment: "neutral",
|
|
134
|
-
onClick: handleCalendarButton,
|
|
135
|
-
disabled,
|
|
136
|
-
"aria-label": "Open Calendar",
|
|
137
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(icons.CalendarIcon, { "aria-hidden": true })
|
|
138
|
-
}
|
|
139
|
-
),
|
|
140
|
-
timezone,
|
|
141
|
-
...rest
|
|
142
|
-
}
|
|
143
|
-
);
|
|
144
|
-
}
|
|
145
|
-
);
|
|
146
|
-
|
|
147
|
-
exports.DatePickerSingleInput = DatePickerSingleInput;
|
|
148
|
-
//# sourceMappingURL=DatePickerSingleInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerSingleInput.js","sources":["../src/date-picker/DatePickerSingleInput.tsx"],"sourcesContent":["import { Button, makePrefixer, useControlled } from \"@salt-ds/core\";\nimport {\n DateDetailError,\n type DateFrameworkType,\n type SaltDateAdapter,\n} from \"@salt-ds/date-adapters\";\nimport { CalendarIcon } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport {\n forwardRef,\n type MouseEventHandler,\n type SyntheticEvent,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport type { SingleDateSelection } from \"../calendar\";\nimport {\n DateInputSingle,\n type DateInputSingleDetails,\n type DateInputSingleProps,\n} from \"../date-input\";\nimport { useLocalization } from \"../localization-provider\";\nimport { useDatePickerContext } from \"./DatePickerContext\";\nimport { useDatePickerOverlay } from \"./DatePickerOverlayProvider\";\n\nconst withBaseName = makePrefixer(\"saltDatePickerSingleInput\");\n\n/**\n * Props for the DatePickerSingleInput component.\n * @template TDate - The type of the date object.\n */\nexport interface DatePickerSingleInputProps<TDate extends DateFrameworkType>\n extends DateInputSingleProps<TDate> {\n /**\n * Function to validate the entered date\n * @param date - The selected date\n * @param details - The details of date selection, either a valid date or error\n * @returns updated DateInputSingleDetails details\n */\n validate?: (\n date: SingleDateSelection<TDate>,\n details: DateInputSingleDetails,\n ) => DateInputSingleDetails;\n}\n\nfunction defaultSingleValidation<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n date: TDate,\n details: DateInputSingleDetails,\n minDate?: TDate,\n maxDate?: TDate,\n): DateInputSingleDetails {\n if (!date) {\n details.errors = details.errors ?? [];\n const hasUnsetError = details.errors.some(\n (err) => err.type === DateDetailError.UNSET,\n );\n if (!hasUnsetError) {\n details.errors.push({\n type: DateDetailError.UNSET,\n message: \"no date defined\",\n });\n }\n } else {\n if (\n minDate &&\n dateAdapter.isValid(date) &&\n dateAdapter.compare(date, minDate) < 0\n ) {\n details.errors = details.errors ?? [];\n details.errors?.push({\n type: \"min-date\",\n message: \"is before min date\",\n });\n } else if (\n maxDate &&\n dateAdapter.isValid(date) &&\n dateAdapter.compare(date, maxDate) > 0\n ) {\n details.errors = details.errors ?? [];\n details.errors?.push({\n type: \"max-date\",\n message: \"is after max date\",\n });\n }\n }\n return details;\n}\n\nexport const DatePickerSingleInput = forwardRef<\n HTMLDivElement,\n DatePickerSingleInputProps<DateFrameworkType>\n>(\n <TDate extends DateFrameworkType>(\n props: DatePickerSingleInputProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n ) => {\n const { dateAdapter } = useLocalization<TDate>();\n\n const {\n className,\n value: valueProp,\n validate,\n defaultValue,\n onDateValueChange,\n ...rest\n } = props;\n\n const {\n state: {\n selectedDate,\n disabled,\n readOnly,\n cancelled,\n minDate,\n maxDate,\n timezone,\n },\n helpers: { select },\n } = useDatePickerContext<TDate>({ selectionVariant: \"single\" });\n const {\n state: { open },\n helpers: { setOpen },\n } = useDatePickerOverlay();\n\n const previousValue = useRef<typeof valueProp>();\n\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: \"DatePickerSingleInput\",\n state: \"value\",\n });\n\n const handleCalendarButton: MouseEventHandler<HTMLButtonElement> =\n useCallback(\n (event) => {\n event.persist();\n setOpen(!open, event.nativeEvent, \"click\");\n event.stopPropagation();\n },\n [open, setOpen],\n );\n\n const handleDateChange = useCallback(\n (\n event: SyntheticEvent,\n date: SingleDateSelection<TDate>,\n details: DateInputSingleDetails,\n ) => {\n const validatedDetails = validate\n ? validate(date, details)\n : defaultSingleValidation<TDate>(\n dateAdapter,\n date,\n details,\n minDate,\n maxDate,\n );\n select(event, date, validatedDetails);\n },\n [dateAdapter, minDate, maxDate, select, validate],\n );\n\n const handleDateValueChange = useCallback(\n (event: SyntheticEvent | null, newDateValue: string) => {\n setValue(newDateValue);\n onDateValueChange?.(event, newDateValue);\n },\n [onDateValueChange],\n );\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: should run when open changes and not selected date or value\n useEffect(() => {\n if (open) {\n previousValue.current = value;\n }\n }, [open]);\n\n useEffect(() => {\n if (cancelled) {\n setValue(previousValue?.current);\n }\n }, [cancelled]);\n\n return (\n <DateInputSingle\n value={value ?? \"\"}\n className={clsx(withBaseName(), className)}\n date={selectedDate ?? null}\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n onDateChange={handleDateChange}\n onDateValueChange={handleDateValueChange}\n endAdornment={\n !readOnly && (\n <Button\n appearance=\"transparent\"\n sentiment=\"neutral\"\n onClick={handleCalendarButton}\n disabled={disabled}\n aria-label=\"Open Calendar\"\n >\n <CalendarIcon aria-hidden />\n </Button>\n )\n }\n timezone={timezone}\n {...rest}\n />\n );\n },\n);\n"],"names":["makePrefixer","DateDetailError","forwardRef","useLocalization","useDatePickerContext","useDatePickerOverlay","useRef","useControlled","useCallback","useEffect","jsx","DateInputSingle","clsx","Button","CalendarIcon"],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var react = require('react');
|
|
5
|
-
var DatePickerSingleGridPanel = require('./DatePickerSingleGridPanel.js');
|
|
6
|
-
|
|
7
|
-
const DatePickerSinglePanel = react.forwardRef(function DatePickerSinglePanel2(props, ref) {
|
|
8
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9
|
-
DatePickerSingleGridPanel.DatePickerSingleGridPanel,
|
|
10
|
-
{
|
|
11
|
-
ref,
|
|
12
|
-
columns: 1,
|
|
13
|
-
numberOfVisibleMonths: 1,
|
|
14
|
-
...props
|
|
15
|
-
}
|
|
16
|
-
);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
exports.DatePickerSinglePanel = DatePickerSinglePanel;
|
|
20
|
-
//# sourceMappingURL=DatePickerSinglePanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerSinglePanel.js","sources":["../src/date-picker/DatePickerSinglePanel.tsx"],"sourcesContent":["import type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport { forwardRef } from \"react\";\nimport {\n DatePickerSingleGridPanel,\n type DatePickerSingleGridPanelProps,\n} from \"./DatePickerSingleGridPanel\";\n\n/**\n * @deprecated DatePickerSinglePanel is deprecated. Use DatePickerSingleGridPanel instead.\n * This component will be deleted when we move DatePickerSingleGridPanel from labs to core.\n */\nexport const DatePickerSinglePanel = forwardRef(function DatePickerSinglePanel<\n TDate,\n>(\n props: DatePickerSingleGridPanelProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n) {\n return (\n <DatePickerSingleGridPanel\n ref={ref}\n columns={1}\n numberOfVisibleMonths={1}\n {...(props as DatePickerSingleGridPanelProps<DateFrameworkType>)}\n />\n );\n});\n"],"names":["forwardRef","DatePickerSinglePanel","jsx","DatePickerSingleGridPanel"],"mappings":";;;;;;AAWO,MAAM,qBAAA,GAAwBA,gBAAA,CAAW,SAASC,sBAAAA,CAGvD,OACA,GAAA,EACA;AACA,EAAA,uBACEC,cAAA;AAAA,IAACC,mDAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,OAAA,EAAS,CAAA;AAAA,MACT,qBAAA,EAAuB,CAAA;AAAA,MACtB,GAAI;AAAA;AAAA,GACP;AAEJ,CAAC;;;;"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var core = require('@salt-ds/core');
|
|
5
|
-
var clsx = require('clsx');
|
|
6
|
-
var react = require('react');
|
|
7
|
-
var DatePickerOverlayProvider = require('./DatePickerOverlayProvider.js');
|
|
8
|
-
|
|
9
|
-
const withBaseName = core.makePrefixer("saltDatePickerTrigger");
|
|
10
|
-
const DatePickerTrigger = react.forwardRef((props, ref) => {
|
|
11
|
-
const { children, className, ...rest } = props;
|
|
12
|
-
const {
|
|
13
|
-
state: { floatingUIResult },
|
|
14
|
-
helpers: { getReferenceProps }
|
|
15
|
-
} = DatePickerOverlayProvider.useDatePickerOverlay();
|
|
16
|
-
const triggerRef = core.useForkRef(
|
|
17
|
-
ref,
|
|
18
|
-
floatingUIResult == null ? void 0 : floatingUIResult.reference
|
|
19
|
-
);
|
|
20
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21
|
-
"div",
|
|
22
|
-
{
|
|
23
|
-
className: clsx.clsx(withBaseName(), className),
|
|
24
|
-
ref: triggerRef,
|
|
25
|
-
...getReferenceProps(rest),
|
|
26
|
-
children
|
|
27
|
-
}
|
|
28
|
-
);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
exports.DatePickerTrigger = DatePickerTrigger;
|
|
32
|
-
//# sourceMappingURL=DatePickerTrigger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerTrigger.js","sources":["../src/date-picker/DatePickerTrigger.tsx"],"sourcesContent":["import { makePrefixer, useForkRef } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { useDatePickerOverlay } from \"./DatePickerOverlayProvider\";\n\nconst withBaseName = makePrefixer(\"saltDatePickerTrigger\");\n\n/**\n * Props for the DatePickerTrigger component.\n */\nexport interface DatePickerTriggerProps {\n className?: string;\n children?: ReactNode;\n}\n\nexport const DatePickerTrigger = forwardRef<\n HTMLDivElement,\n DatePickerTriggerProps\n>((props: DatePickerTriggerProps, ref: React.Ref<HTMLDivElement>) => {\n const { children, className, ...rest } = props;\n\n const {\n state: { floatingUIResult },\n helpers: { getReferenceProps },\n } = useDatePickerOverlay();\n\n const triggerRef = useForkRef<HTMLDivElement>(\n ref,\n floatingUIResult?.reference,\n );\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n ref={triggerRef}\n {...getReferenceProps(rest)}\n >\n {children}\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","useDatePickerOverlay","useForkRef","jsx","clsx"],"mappings":";;;;;;;;AAKA,MAAM,YAAA,GAAeA,kBAAa,uBAAuB,CAAA;AAUlD,MAAM,iBAAA,GAAoBC,gBAAA,CAG/B,CAAC,KAAA,EAA+B,GAAA,KAAmC;AACnE,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAEzC,EAAA,MAAM;AAAA,IACJ,KAAA,EAAO,EAAE,gBAAA,EAAiB;AAAA,IAC1B,OAAA,EAAS,EAAE,iBAAA;AAAkB,MAC3BC,8CAAA,EAAqB;AAEzB,EAAA,MAAM,UAAA,GAAaC,eAAA;AAAA,IACjB,GAAA;AAAA,IACA,gBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA,CAAkB;AAAA,GACpB;AAEA,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA,EAAK,UAAA;AAAA,MACJ,GAAG,kBAAkB,IAAI,CAAA;AAAA,MAEzB;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
|