@navikt/ds-react 7.12.2 → 7.14.0-alpha.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/cjs/date/Date.Dialog.d.ts +18 -0
- package/cjs/date/Date.Dialog.js +67 -0
- package/cjs/date/Date.Dialog.js.map +1 -0
- package/cjs/date/Date.Input.d.ts +50 -0
- package/cjs/date/Date.Input.js +96 -0
- package/cjs/date/Date.Input.js.map +1 -0
- package/cjs/date/Date.locale.d.ts +44 -0
- package/cjs/date/Date.locale.js +57 -0
- package/cjs/date/Date.locale.js.map +1 -0
- package/cjs/date/Date.typeutils.d.ts +14 -0
- package/cjs/date/Date.typeutils.js +15 -0
- package/cjs/date/Date.typeutils.js.map +1 -0
- package/cjs/date/date-utils/calendar-range.d.ts +11 -0
- package/cjs/date/date-utils/calendar-range.js +30 -0
- package/cjs/date/date-utils/calendar-range.js.map +1 -0
- package/cjs/date/date-utils/check-dates.d.ts +8 -0
- package/cjs/date/date-utils/check-dates.js +20 -0
- package/cjs/date/date-utils/check-dates.js.map +1 -0
- package/cjs/date/date-utils/clamp-dates.d.ts +19 -0
- package/cjs/date/date-utils/clamp-dates.js +41 -0
- package/cjs/date/date-utils/clamp-dates.js.map +1 -0
- package/cjs/date/date-utils/dates-disabled.d.ts +1 -0
- package/cjs/date/date-utils/dates-disabled.js +29 -0
- package/cjs/date/date-utils/dates-disabled.js.map +1 -0
- package/cjs/date/date-utils/dropdown-options.d.ts +13 -0
- package/cjs/date/date-utils/dropdown-options.js +45 -0
- package/cjs/date/date-utils/dropdown-options.js.map +1 -0
- package/cjs/date/date-utils/format-date.d.ts +2 -0
- package/cjs/date/date-utils/format-date.js +13 -0
- package/cjs/date/date-utils/format-date.js.map +1 -0
- package/cjs/date/date-utils/index.d.ts +8 -0
- package/cjs/date/date-utils/index.js +27 -0
- package/cjs/date/date-utils/index.js.map +1 -0
- package/cjs/date/date-utils/is-match.d.ts +3 -0
- package/cjs/date/date-utils/is-match.js +61 -0
- package/cjs/date/date-utils/is-match.js.map +1 -0
- package/cjs/date/date-utils/parse-date.d.ts +4 -0
- package/cjs/date/date-utils/parse-date.js +87 -0
- package/cjs/date/date-utils/parse-date.js.map +1 -0
- package/cjs/date/datepicker/DatePicker.d.ts +3 -3
- package/cjs/date/datepicker/DatePicker.js +47 -63
- package/cjs/date/datepicker/DatePicker.js.map +1 -1
- package/cjs/date/datepicker/DatePicker.types.d.ts +108 -0
- package/cjs/date/datepicker/DatePicker.types.js +3 -0
- package/cjs/date/datepicker/DatePicker.types.js.map +1 -0
- package/cjs/date/datepicker/hooks/useDatepicker.d.ts +90 -0
- package/cjs/date/datepicker/hooks/useDatepicker.js +164 -0
- package/cjs/date/datepicker/hooks/useDatepicker.js.map +1 -0
- package/cjs/date/datepicker/hooks/useRangeDatepicker.d.ts +76 -0
- package/cjs/date/datepicker/hooks/useRangeDatepicker.js +322 -0
- package/cjs/date/datepicker/hooks/useRangeDatepicker.js.map +1 -0
- package/cjs/date/datepicker/index.d.ts +4 -3
- package/cjs/date/datepicker/index.js +8 -7
- package/cjs/date/datepicker/index.js.map +1 -1
- package/cjs/date/datepicker/parts/DatePicker.DayButton.d.ts +9 -0
- package/cjs/date/datepicker/parts/DatePicker.DayButton.js +70 -0
- package/cjs/date/datepicker/parts/DatePicker.DayButton.js.map +1 -0
- package/cjs/date/datepicker/parts/DatePicker.Months.d.ts +11 -0
- package/cjs/date/datepicker/parts/DatePicker.Months.js +84 -0
- package/cjs/date/datepicker/parts/DatePicker.Months.js.map +1 -0
- package/cjs/date/datepicker/parts/DatePicker.RDP.d.ts +15 -0
- package/cjs/date/datepicker/parts/DatePicker.RDP.js +103 -0
- package/cjs/date/datepicker/parts/DatePicker.RDP.js.map +1 -0
- package/cjs/date/datepicker/parts/DatePicker.Standalone.d.ts +18 -0
- package/cjs/date/datepicker/parts/DatePicker.Standalone.js +60 -0
- package/cjs/date/datepicker/parts/DatePicker.Standalone.js.map +1 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekNumber.d.ts +9 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekNumber.js +64 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekNumber.js.map +1 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekRow.d.ts +8 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekRow.js +28 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekRow.js.map +1 -0
- package/cjs/date/monthpicker/MonthPicker.context.d.ts +21 -0
- package/cjs/date/monthpicker/MonthPicker.context.js +48 -0
- package/cjs/date/monthpicker/MonthPicker.context.js.map +1 -0
- package/cjs/date/monthpicker/MonthPicker.d.ts +3 -3
- package/cjs/date/monthpicker/MonthPicker.js +34 -43
- package/cjs/date/monthpicker/MonthPicker.js.map +1 -1
- package/cjs/date/monthpicker/MonthPicker.types.d.ts +86 -0
- package/cjs/date/monthpicker/MonthPicker.types.js +3 -0
- package/cjs/date/monthpicker/MonthPicker.types.js.map +1 -0
- package/cjs/date/monthpicker/MonthPicker.util.d.ts +2 -0
- package/cjs/date/monthpicker/MonthPicker.util.js +156 -0
- package/cjs/date/monthpicker/MonthPicker.util.js.map +1 -0
- package/cjs/date/monthpicker/hooks/useMonthPicker.d.ts +85 -0
- package/cjs/date/monthpicker/hooks/useMonthPicker.js +179 -0
- package/cjs/date/monthpicker/hooks/useMonthPicker.js.map +1 -0
- package/cjs/date/monthpicker/index.d.ts +4 -4
- package/cjs/date/monthpicker/index.js +6 -6
- package/cjs/date/monthpicker/index.js.map +1 -1
- package/cjs/date/monthpicker/parts/MonthPicker.Button.d.ts +11 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Button.js +82 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Button.js.map +1 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Caption.d.ts +3 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Caption.js +52 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Caption.js.map +1 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Standalone.d.ts +10 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Standalone.js +51 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Standalone.js.map +1 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Table.d.ts +3 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Table.js +79 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Table.js.map +1 -0
- package/cjs/form/combobox/Combobox.d.ts +1 -1
- package/cjs/form/combobox/Input/InputController.d.ts +1 -1
- package/cjs/form/confirmation-panel/ConfirmationPanel.js +6 -1
- package/cjs/form/confirmation-panel/ConfirmationPanel.js.map +1 -1
- package/cjs/modal/Modal.js +2 -2
- package/cjs/modal/Modal.js.map +1 -1
- package/cjs/popover/Popover.js +3 -3
- package/cjs/popover/Popover.js.map +1 -1
- package/cjs/theme/Theme.d.ts +7 -1
- package/cjs/theme/Theme.js +24 -2
- package/cjs/theme/Theme.js.map +1 -1
- package/cjs/theme/index.d.ts +1 -1
- package/cjs/theme/index.js.map +1 -1
- package/cjs/tooltip/Tooltip.js +2 -5
- package/cjs/tooltip/Tooltip.js.map +1 -1
- package/esm/date/Date.Dialog.d.ts +18 -0
- package/esm/date/Date.Dialog.js +38 -0
- package/esm/date/Date.Dialog.js.map +1 -0
- package/esm/date/Date.Input.d.ts +50 -0
- package/esm/date/Date.Input.js +66 -0
- package/esm/date/Date.Input.js.map +1 -0
- package/esm/date/Date.locale.d.ts +44 -0
- package/esm/date/Date.locale.js +47 -0
- package/esm/date/Date.locale.js.map +1 -0
- package/esm/date/Date.typeutils.d.ts +14 -0
- package/esm/date/Date.typeutils.js +10 -0
- package/esm/date/Date.typeutils.js.map +1 -0
- package/esm/date/date-utils/calendar-range.d.ts +11 -0
- package/esm/date/date-utils/calendar-range.js +27 -0
- package/esm/date/date-utils/calendar-range.js.map +1 -0
- package/esm/date/date-utils/check-dates.d.ts +8 -0
- package/esm/date/date-utils/check-dates.js +14 -0
- package/esm/date/date-utils/check-dates.js.map +1 -0
- package/esm/date/date-utils/clamp-dates.d.ts +19 -0
- package/esm/date/date-utils/clamp-dates.js +37 -0
- package/esm/date/date-utils/clamp-dates.js.map +1 -0
- package/esm/date/date-utils/dates-disabled.d.ts +1 -0
- package/esm/date/date-utils/dates-disabled.js +25 -0
- package/esm/date/date-utils/dates-disabled.js.map +1 -0
- package/esm/date/date-utils/dropdown-options.d.ts +13 -0
- package/esm/date/date-utils/dropdown-options.js +41 -0
- package/esm/date/date-utils/dropdown-options.js.map +1 -0
- package/esm/date/date-utils/format-date.d.ts +2 -0
- package/esm/date/date-utils/format-date.js +9 -0
- package/esm/date/date-utils/format-date.js.map +1 -0
- package/esm/date/date-utils/index.d.ts +8 -0
- package/esm/date/date-utils/index.js +9 -0
- package/esm/date/date-utils/index.js.map +1 -0
- package/esm/date/date-utils/is-match.d.ts +3 -0
- package/esm/date/date-utils/is-match.js +57 -0
- package/esm/date/date-utils/is-match.js.map +1 -0
- package/esm/date/date-utils/parse-date.d.ts +4 -0
- package/esm/date/date-utils/parse-date.js +83 -0
- package/esm/date/date-utils/parse-date.js.map +1 -0
- package/esm/date/datepicker/DatePicker.d.ts +3 -3
- package/esm/date/datepicker/DatePicker.js +46 -62
- package/esm/date/datepicker/DatePicker.js.map +1 -1
- package/esm/date/datepicker/DatePicker.types.d.ts +108 -0
- package/esm/date/datepicker/DatePicker.types.js +2 -0
- package/esm/date/datepicker/DatePicker.types.js.map +1 -0
- package/esm/date/datepicker/hooks/useDatepicker.d.ts +90 -0
- package/esm/date/datepicker/hooks/useDatepicker.js +160 -0
- package/esm/date/datepicker/hooks/useDatepicker.js.map +1 -0
- package/esm/date/datepicker/hooks/useRangeDatepicker.d.ts +76 -0
- package/esm/date/datepicker/hooks/useRangeDatepicker.js +318 -0
- package/esm/date/datepicker/hooks/useRangeDatepicker.js.map +1 -0
- package/esm/date/datepicker/index.d.ts +4 -3
- package/esm/date/datepicker/index.js +4 -3
- package/esm/date/datepicker/index.js.map +1 -1
- package/esm/date/datepicker/parts/DatePicker.DayButton.d.ts +9 -0
- package/esm/date/datepicker/parts/DatePicker.DayButton.js +41 -0
- package/esm/date/datepicker/parts/DatePicker.DayButton.js.map +1 -0
- package/esm/date/datepicker/parts/DatePicker.Months.d.ts +11 -0
- package/esm/date/datepicker/parts/DatePicker.Months.js +58 -0
- package/esm/date/datepicker/parts/DatePicker.Months.js.map +1 -0
- package/esm/date/datepicker/parts/DatePicker.RDP.d.ts +15 -0
- package/esm/date/datepicker/parts/DatePicker.RDP.js +74 -0
- package/esm/date/datepicker/parts/DatePicker.RDP.js.map +1 -0
- package/esm/date/datepicker/parts/DatePicker.Standalone.d.ts +18 -0
- package/esm/date/datepicker/parts/DatePicker.Standalone.js +31 -0
- package/esm/date/datepicker/parts/DatePicker.Standalone.js.map +1 -0
- package/esm/date/datepicker/parts/DatePicker.WeekNumber.d.ts +9 -0
- package/esm/date/datepicker/parts/DatePicker.WeekNumber.js +35 -0
- package/esm/date/datepicker/parts/DatePicker.WeekNumber.js.map +1 -0
- package/esm/date/datepicker/parts/DatePicker.WeekRow.d.ts +8 -0
- package/esm/date/datepicker/parts/DatePicker.WeekRow.js +22 -0
- package/esm/date/datepicker/parts/DatePicker.WeekRow.js.map +1 -0
- package/esm/date/monthpicker/MonthPicker.context.d.ts +21 -0
- package/esm/date/monthpicker/MonthPicker.context.js +41 -0
- package/esm/date/monthpicker/MonthPicker.context.js.map +1 -0
- package/esm/date/monthpicker/MonthPicker.d.ts +3 -3
- package/esm/date/monthpicker/MonthPicker.js +31 -40
- package/esm/date/monthpicker/MonthPicker.js.map +1 -1
- package/esm/date/monthpicker/MonthPicker.types.d.ts +86 -0
- package/esm/date/monthpicker/MonthPicker.types.js +2 -0
- package/esm/date/monthpicker/MonthPicker.types.js.map +1 -0
- package/esm/date/monthpicker/MonthPicker.util.d.ts +2 -0
- package/esm/date/monthpicker/MonthPicker.util.js +152 -0
- package/esm/date/monthpicker/MonthPicker.util.js.map +1 -0
- package/esm/date/monthpicker/hooks/useMonthPicker.d.ts +85 -0
- package/esm/date/monthpicker/hooks/useMonthPicker.js +175 -0
- package/esm/date/monthpicker/hooks/useMonthPicker.js.map +1 -0
- package/esm/date/monthpicker/index.d.ts +4 -4
- package/esm/date/monthpicker/index.js +3 -3
- package/esm/date/monthpicker/index.js.map +1 -1
- package/esm/date/monthpicker/parts/MonthPicker.Button.d.ts +11 -0
- package/esm/date/monthpicker/parts/MonthPicker.Button.js +52 -0
- package/esm/date/monthpicker/parts/MonthPicker.Button.js.map +1 -0
- package/esm/date/monthpicker/parts/MonthPicker.Caption.d.ts +3 -0
- package/esm/date/monthpicker/parts/MonthPicker.Caption.js +46 -0
- package/esm/date/monthpicker/parts/MonthPicker.Caption.js.map +1 -0
- package/esm/date/monthpicker/parts/MonthPicker.Standalone.d.ts +10 -0
- package/esm/date/monthpicker/parts/MonthPicker.Standalone.js +22 -0
- package/esm/date/monthpicker/parts/MonthPicker.Standalone.js.map +1 -0
- package/esm/date/monthpicker/parts/MonthPicker.Table.d.ts +3 -0
- package/esm/date/monthpicker/parts/MonthPicker.Table.js +50 -0
- package/esm/date/monthpicker/parts/MonthPicker.Table.js.map +1 -0
- package/esm/form/combobox/Combobox.d.ts +1 -1
- package/esm/form/combobox/Input/InputController.d.ts +1 -1
- package/esm/form/confirmation-panel/ConfirmationPanel.js +6 -1
- package/esm/form/confirmation-panel/ConfirmationPanel.js.map +1 -1
- package/esm/modal/Modal.js +3 -3
- package/esm/modal/Modal.js.map +1 -1
- package/esm/popover/Popover.js +4 -4
- package/esm/popover/Popover.js.map +1 -1
- package/esm/theme/Theme.d.ts +7 -1
- package/esm/theme/Theme.js +22 -2
- package/esm/theme/Theme.js.map +1 -1
- package/esm/theme/index.d.ts +1 -1
- package/esm/theme/index.js.map +1 -1
- package/esm/tooltip/Tooltip.js +2 -5
- package/esm/tooltip/Tooltip.js.map +1 -1
- package/package.json +7 -8
- package/src/date/{parts/DateWrapper.tsx → Date.Dialog.tsx} +12 -9
- package/src/date/{parts/DateInput.tsx → Date.Input.tsx} +30 -5
- package/src/date/{utils/locale.ts → Date.locale.ts} +11 -2
- package/src/date/Date.typeutils.ts +32 -0
- package/src/date/date-utils/calendar-range.test.ts +54 -0
- package/src/date/date-utils/calendar-range.ts +46 -0
- package/src/date/date-utils/check-dates.test.ts +49 -0
- package/src/date/date-utils/check-dates.ts +28 -0
- package/src/date/date-utils/clamp-dates.test.ts +156 -0
- package/src/date/date-utils/clamp-dates.ts +63 -0
- package/src/date/{utils/__tests__ → date-utils}/dates-disabled.test.ts +1 -1
- package/src/date/{utils → date-utils}/dates-disabled.ts +1 -2
- package/src/date/date-utils/dropdown-options.test.ts +143 -0
- package/src/date/date-utils/dropdown-options.ts +79 -0
- package/src/date/{utils/__tests__ → date-utils}/format-dates.test.ts +2 -2
- package/src/date/date-utils/index.ts +16 -0
- package/src/date/{utils/__tests__ → date-utils}/is-match.test.ts +1 -1
- package/src/date/{utils → date-utils}/is-match.ts +2 -11
- package/src/date/{utils/__tests__ → date-utils}/parse-dates.test.ts +2 -1
- package/src/date/datepicker/DatePicker.tsx +67 -92
- package/src/date/datepicker/{types.ts → DatePicker.types.ts} +10 -4
- package/src/date/{hooks → datepicker/hooks}/useDatepicker.tsx +12 -13
- package/src/date/{hooks → datepicker/hooks}/useRangeDatepicker.test.tsx +1 -1
- package/src/date/{hooks → datepicker/hooks}/useRangeDatepicker.tsx +19 -19
- package/src/date/datepicker/index.ts +4 -5
- package/src/date/datepicker/parts/DatePicker.DayButton.tsx +56 -0
- package/src/date/datepicker/parts/DatePicker.Months.tsx +149 -0
- package/src/date/datepicker/parts/DatePicker.RDP.tsx +170 -0
- package/src/date/datepicker/parts/DatePicker.Standalone.tsx +93 -0
- package/src/date/datepicker/parts/DatePicker.WeekNumber.tsx +86 -0
- package/src/date/datepicker/parts/{WeekRow.tsx → DatePicker.WeekRow.tsx} +20 -21
- package/src/date/monthpicker/MonthPicker.context.tsx +103 -0
- package/src/date/monthpicker/MonthPicker.tsx +63 -68
- package/src/date/monthpicker/{types.ts → MonthPicker.types.ts} +1 -1
- package/src/date/{utils/navigation.ts → monthpicker/MonthPicker.util.ts} +2 -1
- package/src/date/{hooks → monthpicker/hooks}/useMonthPicker.tsx +14 -13
- package/src/date/monthpicker/index.ts +4 -4
- package/src/date/monthpicker/{MonthButton.tsx → parts/MonthPicker.Button.tsx} +21 -10
- package/src/date/monthpicker/{MonthCaption.tsx → parts/MonthPicker.Caption.tsx} +20 -21
- package/src/date/monthpicker/parts/MonthPicker.Standalone.tsx +86 -0
- package/src/date/monthpicker/{MonthSelector.tsx → parts/MonthPicker.Table.tsx} +7 -7
- package/src/form/confirmation-panel/ConfirmationPanel.tsx +7 -0
- package/src/modal/Modal.tsx +3 -3
- package/src/popover/Popover.tsx +4 -4
- package/src/react-css.d.ts +4 -0
- package/src/theme/RenameCSS.test.ts +80 -0
- package/src/theme/Theme.tsx +45 -8
- package/src/theme/index.ts +1 -1
- package/src/tooltip/Tooltip.tsx +2 -6
- package/src/date/context/index.ts +0 -9
- package/src/date/context/useDateInputContext.tsx +0 -34
- package/src/date/context/useDateTranslationContext.ts +0 -9
- package/src/date/context/useSharedMonthContext.tsx +0 -68
- package/src/date/datepicker/DatePickerStandalone.tsx +0 -136
- package/src/date/datepicker/datepicker.test.tsx +0 -28
- package/src/date/datepicker/parts/Caption.tsx +0 -54
- package/src/date/datepicker/parts/DayButton.tsx +0 -32
- package/src/date/datepicker/parts/DropdownCaption.tsx +0 -110
- package/src/date/datepicker/parts/HeadRow.tsx +0 -56
- package/src/date/datepicker/parts/Row.tsx +0 -48
- package/src/date/datepicker/parts/TableHead.tsx +0 -17
- package/src/date/datepicker/parts/WeekNumber.tsx +0 -75
- package/src/date/hooks/index.ts +0 -6
- package/src/date/monthpicker/MonthPickerStandalone.tsx +0 -102
- package/src/date/utils/__tests__/check-dates.test.ts +0 -22
- package/src/date/utils/__tests__/get-dates.test.ts +0 -121
- package/src/date/utils/__tests__/get-initial-year.test.ts +0 -83
- package/src/date/utils/__tests__/get-month-weeks.test.ts +0 -116
- package/src/date/utils/check-dates.ts +0 -13
- package/src/date/utils/get-dates.ts +0 -60
- package/src/date/utils/get-initial-year.ts +0 -25
- package/src/date/utils/get-month-weeks.ts +0 -93
- package/src/date/utils/index.ts +0 -18
- /package/src/date/{utils → date-utils}/format-date.ts +0 -0
- /package/src/date/{utils → date-utils}/parse-date.ts +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { DatePickerDefaultProps, MultipleMode, RangeMode, SingleMode } from "../DatePicker.types.js";
|
|
3
|
+
interface DatePickerStandaloneDefaultProps extends Omit<DatePickerDefaultProps, "open" | "onClose" | "onOpenToggle" | "wrapperClassName" | "strategy"> {
|
|
4
|
+
/**
|
|
5
|
+
* Datepicker classname
|
|
6
|
+
*/
|
|
7
|
+
className?: string;
|
|
8
|
+
/**
|
|
9
|
+
* If datepicker should be fixed to 6 weeks, regardless of actual weeks in month
|
|
10
|
+
* @default true
|
|
11
|
+
*/
|
|
12
|
+
fixedWeeks?: boolean;
|
|
13
|
+
}
|
|
14
|
+
type StandaloneConditionalModeProps = SingleMode | MultipleMode | RangeMode;
|
|
15
|
+
export type DatePickerStandaloneProps = DatePickerStandaloneDefaultProps & StandaloneConditionalModeProps;
|
|
16
|
+
export type DatePickerStandaloneType = React.ForwardRefExoticComponent<DatePickerStandaloneProps & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
export declare const DatePickerStandalone: DatePickerStandaloneType;
|
|
18
|
+
export default DatePickerStandalone;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import cl from "clsx";
|
|
13
|
+
import React, { forwardRef } from "react";
|
|
14
|
+
import { useControllableState } from "../../../util/hooks/index.js";
|
|
15
|
+
import { useI18n } from "../../../util/i18n/i18n.hooks.js";
|
|
16
|
+
import { DateTranslationContextProvider, getTranslations, } from "../../Date.locale.js";
|
|
17
|
+
import { ReactDayPicker } from "./DatePicker.RDP.js";
|
|
18
|
+
export const DatePickerStandalone = forwardRef((_a, ref) => {
|
|
19
|
+
var { className, locale, translations, selected, defaultSelected, onSelect, mode } = _a, rest = __rest(_a, ["className", "locale", "translations", "selected", "defaultSelected", "onSelect", "mode"]);
|
|
20
|
+
const translate = useI18n("DatePicker", translations, getTranslations(locale));
|
|
21
|
+
const [value, setValue] = useControllableState({
|
|
22
|
+
defaultValue: defaultSelected,
|
|
23
|
+
value: selected,
|
|
24
|
+
onChange: (newValue) => onSelect === null || onSelect === void 0 ? void 0 : onSelect(newValue),
|
|
25
|
+
});
|
|
26
|
+
return (React.createElement(DateTranslationContextProvider, { translate: translate },
|
|
27
|
+
React.createElement("div", { ref: ref, className: cl("navds-date__standalone-wrapper", className) },
|
|
28
|
+
React.createElement(ReactDayPicker, Object.assign({}, rest, { locale: locale, handleSelect: setValue, selected: value, mode: mode })))));
|
|
29
|
+
});
|
|
30
|
+
export default DatePickerStandalone;
|
|
31
|
+
//# sourceMappingURL=DatePicker.Standalone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.Standalone.js","sourceRoot":"","sources":["../../../../src/date/datepicker/parts/DatePicker.Standalone.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EACL,8BAA8B,EAC9B,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA2BlD,MAAM,CAAC,MAAM,oBAAoB,GAA6B,UAAU,CAItE,CACE,EASC,EACD,GAAG,EACH,EAAE;QAXF,EACE,SAAS,EACT,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,IAAI,OAEL,EADI,IAAI,cART,0FASC,CADQ;IAIT,MAAM,SAAS,GAAG,OAAO,CACvB,YAAY,EACZ,YAAY,EACZ,eAAe,CAAC,MAAM,CAAC,CACxB,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAE5C;QACA,YAAY,EAAE,eAAe;QAC7B,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,QAAe,CAAC;KACpD,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,8BAA8B,IAAC,SAAS,EAAE,SAAS;QAClD,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,gCAAgC,EAAE,SAAS,CAAC;YAE1D,oBAAC,cAAc,oBACT,IAAI,IACR,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,QAAQ,EACtB,QAAQ,EAAE,KAAY,EACtB,IAAI,EAAE,IAAW,IACjB,CACE,CACyB,CAClC,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CalendarWeek } from "react-day-picker";
|
|
3
|
+
import { MultipleMode } from "../DatePicker.types.js";
|
|
4
|
+
declare const DatePickerWeekNumber: ({ week: { weekNumber, days }, onWeekNumberClick, className, style, showOnDesktop, }: {
|
|
5
|
+
week: CalendarWeek;
|
|
6
|
+
onWeekNumberClick: MultipleMode["onWeekNumberClick"];
|
|
7
|
+
showOnDesktop: boolean;
|
|
8
|
+
} & React.ThHTMLAttributes<HTMLTableCellElement>) => React.JSX.Element;
|
|
9
|
+
export { DatePickerWeekNumber };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import cl from "clsx";
|
|
2
|
+
import React, { useMemo } from "react";
|
|
3
|
+
import { useDayPicker } from "react-day-picker";
|
|
4
|
+
import { Button } from "../../../button/index.js";
|
|
5
|
+
import { Hide, Show } from "../../../layout/responsive/index.js";
|
|
6
|
+
import { Detail } from "../../../typography/index.js";
|
|
7
|
+
import { useDateTranslationContext } from "../../Date.locale.js";
|
|
8
|
+
const DatePickerWeekNumber = ({ week: { weekNumber, days }, onWeekNumberClick, className, style, showOnDesktop, }) => {
|
|
9
|
+
const translate = useDateTranslationContext().translate;
|
|
10
|
+
const { getModifiers } = useDayPicker();
|
|
11
|
+
const hideWeek = useMemo(() => {
|
|
12
|
+
if (days.filter((day) => {
|
|
13
|
+
const mods = getModifiers(day);
|
|
14
|
+
return !(mods.hidden || mods.outside || mods.disabled);
|
|
15
|
+
}).length === 0) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
}, [days, getModifiers]);
|
|
20
|
+
const DisplayMode = showOnDesktop ? Show : Hide;
|
|
21
|
+
if (!onWeekNumberClick || hideWeek) {
|
|
22
|
+
return (React.createElement(DisplayMode, { above: "sm", asChild: true },
|
|
23
|
+
React.createElement("td", { className: "rdp-cell" },
|
|
24
|
+
React.createElement(Detail, { as: "span", textColor: "subtle", className: className, style: style, "aria-label": translate("weekNumber", { week: weekNumber }) }, weekNumber))));
|
|
25
|
+
}
|
|
26
|
+
return (React.createElement(DisplayMode, { above: "sm", asChild: true },
|
|
27
|
+
React.createElement("td", { className: cl("rdp-cell", {
|
|
28
|
+
"navds-date__week-wrapper": !showOnDesktop,
|
|
29
|
+
}) },
|
|
30
|
+
React.createElement(Button, { variant: "secondary-neutral", size: "small", name: "week-number", "aria-label": translate("selectWeekNumber", { week: weekNumber }), style: style, className: cl("navds-date__weeknumber", "rdp-weeknumber"), onClick: () => {
|
|
31
|
+
onWeekNumberClick(weekNumber, days.map((day) => day.date));
|
|
32
|
+
}, icon: React.createElement("span", { className: "navds-date__weeknumber-number" }, weekNumber) }))));
|
|
33
|
+
};
|
|
34
|
+
export { DatePickerWeekNumber };
|
|
35
|
+
//# sourceMappingURL=DatePicker.WeekNumber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.WeekNumber.js","sourceRoot":"","sources":["../../../../src/date/datepicker/parts/DatePicker.WeekNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAgB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,MAAM,oBAAoB,GAAG,CAAC,EAC5B,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAC1B,iBAAiB,EACjB,SAAS,EACT,KAAK,EACL,aAAa,GAKiC,EAAE,EAAE;IAClD,MAAM,SAAS,GAAG,yBAAyB,EAAE,CAAC,SAAS,CAAC;IAExD,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAAC;IAExC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,IACE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAEzB,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhD,IAAI,CAAC,iBAAiB,IAAI,QAAQ,EAAE,CAAC;QACnC,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,IAAI,EAAC,OAAO;YAC7B,4BAAI,SAAS,EAAC,UAAU;gBACtB,oBAAC,MAAM,IACL,EAAE,EAAC,MAAM,EACT,SAAS,EAAC,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,gBACA,SAAS,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,IAExD,UAAU,CACJ,CACN,CACO,CACf,CAAC;IACJ,CAAC;IAED,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,IAAI,EAAC,OAAO;QAC7B,4BACE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE;gBACxB,0BAA0B,EAAE,CAAC,aAAa;aAC3C,CAAC;YAEF,oBAAC,MAAM,IACL,OAAO,EAAC,mBAAmB,EAC3B,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,aAAa,gBACN,SAAS,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAC/D,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,EACzD,OAAO,EAAE,GAAG,EAAE;oBACZ,iBAAiB,CACf,UAAU,EACV,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAC5B,CAAC;gBACJ,CAAC,EACD,IAAI,EACF,8BAAM,SAAS,EAAC,+BAA+B,IAAE,UAAU,CAAQ,GAErE,CACC,CACO,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CalendarWeek } from "react-day-picker";
|
|
3
|
+
import { MultipleMode } from "../DatePicker.types.js";
|
|
4
|
+
declare const DatePickerWeekRow: ({ onWeekNumberClick, weeks, }: {
|
|
5
|
+
onWeekNumberClick: MultipleMode["onWeekNumberClick"];
|
|
6
|
+
weeks?: CalendarWeek[];
|
|
7
|
+
}) => React.JSX.Element | null;
|
|
8
|
+
export { DatePickerWeekRow };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Show } from "../../../layout/responsive/index.js";
|
|
3
|
+
import { Detail } from "../../../typography/index.js";
|
|
4
|
+
import { useId } from "../../../util/hooks/index.js";
|
|
5
|
+
import { useDateTranslationContext } from "../../Date.locale.js";
|
|
6
|
+
import { DatePickerWeekNumber } from "./DatePicker.WeekNumber.js";
|
|
7
|
+
const DatePickerWeekRow = ({ onWeekNumberClick, weeks, }) => {
|
|
8
|
+
const translate = useDateTranslationContext().translate;
|
|
9
|
+
const labelId = useId();
|
|
10
|
+
if (!onWeekNumberClick) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return (React.createElement(Show, { below: "sm", asChild: true },
|
|
14
|
+
React.createElement("table", { className: "rdp-table", role: "grid" },
|
|
15
|
+
React.createElement("tbody", { className: "rdp-tbody" },
|
|
16
|
+
React.createElement("tr", { className: "rdp-row navds-date__week-row" },
|
|
17
|
+
React.createElement(Detail, { as: "th", weight: "semibold", className: "rdp-cell navds-date__week-cell" },
|
|
18
|
+
React.createElement("span", { className: "navds-date__week-wrapper", id: labelId }, translate("week"))), weeks === null || weeks === void 0 ? void 0 :
|
|
19
|
+
weeks.map((week) => (React.createElement(DatePickerWeekNumber, { key: week.weekNumber, week: week, onWeekNumberClick: onWeekNumberClick, showOnDesktop: false, className: "navds-date__week-wrapper" }))))))));
|
|
20
|
+
};
|
|
21
|
+
export { DatePickerWeekRow };
|
|
22
|
+
//# sourceMappingURL=DatePicker.WeekRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.WeekRow.js","sourceRoot":"","sources":["../../../../src/date/datepicker/parts/DatePicker.WeekRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,iBAAiB,GAAG,CAAC,EACzB,iBAAiB,EACjB,KAAK,GAIN,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,yBAAyB,EAAE,CAAC,SAAS,CAAC;IACxD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IAExB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,oBAAC,IAAI,IAAC,KAAK,EAAC,IAAI,EAAC,OAAO;QACtB,+BAAO,SAAS,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM;YACtC,+BAAO,SAAS,EAAC,WAAW;gBAC1B,4BAAI,SAAS,EAAC,8BAA8B;oBAC1C,oBAAC,MAAM,IACL,EAAE,EAAC,IAAI,EACP,MAAM,EAAC,UAAU,EACjB,SAAS,EAAC,gCAAgC;wBAE1C,8BAAM,SAAS,EAAC,0BAA0B,EAAC,EAAE,EAAE,OAAO,IACnD,SAAS,CAAC,MAAM,CAAC,CACb,CACA,EAER,KAAK,aAAL,KAAK;oBAAL,KAAK,CAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACpB,oBAAC,oBAAoB,IACnB,GAAG,EAAE,IAAI,CAAC,UAAU,EACpB,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,KAAK,EACpB,SAAS,EAAC,0BAA0B,GACpC,CACH,CAAC,CACC,CACC,CACF,CACH,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Locale } from "date-fns";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { MonthPickerProps } from "./MonthPicker.types.js";
|
|
4
|
+
type MonthPickerProviderProps = Pick<MonthPickerProps, "dropdownCaption" | "disabled" | "selected" | "defaultSelected" | "onMonthSelect" | "year" | "onYearChange" | "fromDate" | "toDate"> & {
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
locale: Locale;
|
|
7
|
+
};
|
|
8
|
+
type MonthPickerContextProps = {
|
|
9
|
+
caption: "label" | "dropdown";
|
|
10
|
+
year: Date;
|
|
11
|
+
onYearChange: (year: Date) => void;
|
|
12
|
+
selected: MonthPickerProps["selected"];
|
|
13
|
+
onMonthSelect: MonthPickerProps["onMonthSelect"];
|
|
14
|
+
disabled: NonNullable<MonthPickerProps["disabled"]>;
|
|
15
|
+
locale: Locale;
|
|
16
|
+
fromDate?: MonthPickerProps["fromDate"];
|
|
17
|
+
toDate?: MonthPickerProps["toDate"];
|
|
18
|
+
};
|
|
19
|
+
declare const useMonthPickerContext: <S extends boolean = true>(strict?: S) => S extends true ? MonthPickerContextProps : MonthPickerContextProps | undefined;
|
|
20
|
+
declare const MonthPickerProvider: ({ children, disabled, year, onYearChange, fromDate, toDate, selected, defaultSelected, onMonthSelect, dropdownCaption, locale, }: MonthPickerProviderProps) => React.JSX.Element;
|
|
21
|
+
export { MonthPickerProvider, useMonthPickerContext };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { isSameYear } from "date-fns";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { createContext } from "../../util/create-context.js";
|
|
4
|
+
import { useControllableState } from "../../util/hooks/index.js";
|
|
5
|
+
import { clampDisplayYear } from "../date-utils/index.js";
|
|
6
|
+
const [MonthPickerContextProvider, useMonthPickerContext] = createContext({
|
|
7
|
+
name: "MonthPickerContext",
|
|
8
|
+
errorMessage: "useMonthPickerContext must be used within an MonthPickerContextProvider",
|
|
9
|
+
});
|
|
10
|
+
const MonthPickerProvider = ({ children, disabled = [], year, onYearChange, fromDate, toDate, selected, defaultSelected, onMonthSelect, dropdownCaption, locale, }) => {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
/**
|
|
13
|
+
* Controlls current displayed year in MonthPicker
|
|
14
|
+
*/
|
|
15
|
+
const [displayYear, setDisplayYear] = useControllableState({
|
|
16
|
+
defaultValue: (_b = clampDisplayYear({
|
|
17
|
+
month: (_a = year !== null && year !== void 0 ? year : selected) !== null && _a !== void 0 ? _a : defaultSelected,
|
|
18
|
+
start: fromDate,
|
|
19
|
+
end: toDate,
|
|
20
|
+
})) !== null && _b !== void 0 ? _b : new Date(),
|
|
21
|
+
value: year,
|
|
22
|
+
onChange: onYearChange,
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Allows both controlled and uncontrolled use of MonthPicker
|
|
26
|
+
*/
|
|
27
|
+
const [month, setMonth] = useControllableState({
|
|
28
|
+
defaultValue: defaultSelected,
|
|
29
|
+
value: selected,
|
|
30
|
+
onChange: onMonthSelect,
|
|
31
|
+
});
|
|
32
|
+
const handleDisplayYearUpdate = (newYear) => {
|
|
33
|
+
if (isSameYear(newYear, displayYear)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
setDisplayYear(newYear);
|
|
37
|
+
};
|
|
38
|
+
return (React.createElement(MonthPickerContextProvider, { caption: dropdownCaption && fromDate && toDate ? "dropdown" : "label", disabled: disabled, selected: month, onMonthSelect: setMonth, year: displayYear, onYearChange: handleDisplayYearUpdate, locale: locale, fromDate: fromDate, toDate: toDate }, children));
|
|
39
|
+
};
|
|
40
|
+
export { MonthPickerProvider, useMonthPickerContext };
|
|
41
|
+
//# sourceMappingURL=MonthPicker.context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthPicker.context.js","sourceRoot":"","sources":["../../../src/date/monthpicker/MonthPicker.context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA+BjD,MAAM,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,GACvD,aAAa,CAA0B;IACrC,IAAI,EAAE,oBAAoB;IAC1B,YAAY,EACV,yEAAyE;CAC5E,CAAC,CAAC;AAEL,MAAM,mBAAmB,GAAG,CAAC,EAC3B,QAAQ,EACR,QAAQ,GAAG,EAAE,EACb,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,eAAe,EACf,MAAM,GACmB,EAAE,EAAE;;IAC7B;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,oBAAoB,CAAC;QACzD,YAAY,EACV,MAAA,gBAAgB,CAAC;YACf,KAAK,EAAE,MAAA,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,QAAQ,mCAAI,eAAe;YAC1C,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE,MAAM;SACZ,CAAC,mCAAI,IAAI,IAAI,EAAE;QAClB,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAC;QAC7C,YAAY,EAAE,eAAe;QAC7B,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,aAAa;KACxB,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,CAAC,OAAa,EAAE,EAAE;QAChD,IAAI,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QACD,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,0BAA0B,IACzB,OAAO,EAAE,eAAe,IAAI,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EACrE,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,KAAK,EACf,aAAa,EAAE,QAAQ,EACvB,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,IAEb,QAAQ,CACkB,CAC9B,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { MonthPickerInput } from "../
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
2
|
+
import { MonthPickerInput } from "../Date.Input.js";
|
|
3
|
+
import { MonthPickerProps } from "./MonthPicker.types.js";
|
|
4
|
+
import { MonthPickerStandalone } from "./parts/MonthPicker.Standalone.js";
|
|
5
5
|
interface MonthPickerComponent extends React.ForwardRefExoticComponent<MonthPickerProps> {
|
|
6
6
|
/**
|
|
7
7
|
* @example
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import cl from "clsx";
|
|
2
2
|
import React, { forwardRef, useState } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import { useId } from "../../util/hooks/index.js";
|
|
3
|
+
import { useControllableState, useId } from "../../util/hooks/index.js";
|
|
5
4
|
import { useMergeRefs } from "../../util/hooks/useMergeRefs.js";
|
|
6
5
|
import { useDateLocale, useI18n } from "../../util/i18n/i18n.hooks.js";
|
|
7
|
-
import {
|
|
8
|
-
import { MonthPickerInput } from "../
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import MonthPickerStandalone from "./
|
|
13
|
-
import
|
|
6
|
+
import { DateDialog } from "../Date.Dialog.js";
|
|
7
|
+
import { DateInputContextProvider, MonthPickerInput } from "../Date.Input.js";
|
|
8
|
+
import { DateTranslationContextProvider, getLocaleFromString, getTranslations, } from "../Date.locale.js";
|
|
9
|
+
import { MonthPickerProvider } from "./MonthPicker.context.js";
|
|
10
|
+
import { MonthPickerCaption } from "./parts/MonthPicker.Caption.js";
|
|
11
|
+
import { MonthPickerStandalone } from "./parts/MonthPicker.Standalone.js";
|
|
12
|
+
import { MonthPickerTable } from "./parts/MonthPicker.Table.js";
|
|
14
13
|
/**
|
|
15
14
|
* A component that displays a month picker.
|
|
16
15
|
*
|
|
@@ -37,50 +36,42 @@ export const MonthPicker = forwardRef(({ children, dropdownCaption = false, from
|
|
|
37
36
|
const translate = useI18n("DatePicker", translations, getTranslations(locale));
|
|
38
37
|
const langProviderLocale = useDateLocale();
|
|
39
38
|
const ariaId = useId(id);
|
|
40
|
-
const [open, setOpen] =
|
|
39
|
+
const [open, setOpen] = useControllableState({
|
|
40
|
+
defaultValue: false,
|
|
41
|
+
value: _open,
|
|
42
|
+
onChange: () => {
|
|
43
|
+
onOpenToggle === null || onOpenToggle === void 0 ? void 0 : onOpenToggle();
|
|
44
|
+
},
|
|
45
|
+
});
|
|
41
46
|
/* We use state here to insure that anchor is defined if open is true on initial render */
|
|
42
47
|
const [wrapperRef, setWrapperRef] = useState(null);
|
|
43
48
|
const mergedRef = useMergeRefs(setWrapperRef, ref);
|
|
44
|
-
const [selectedMonth, setSelectedMonth] = useState(defaultSelected);
|
|
45
49
|
const handleSelect = (month) => {
|
|
46
|
-
var _a;
|
|
47
|
-
!onMonthSelect && setSelectedMonth(month);
|
|
48
50
|
onMonthSelect === null || onMonthSelect === void 0 ? void 0 : onMonthSelect(month);
|
|
49
|
-
|
|
51
|
+
if (month) {
|
|
52
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
53
|
+
setOpen(false);
|
|
54
|
+
}
|
|
50
55
|
};
|
|
51
56
|
if (dropdownCaption && (!fromDate || !toDate)) {
|
|
52
57
|
console.warn("Using dropdownCaption required fromDate and toDate");
|
|
53
58
|
return null;
|
|
54
59
|
}
|
|
55
60
|
return (React.createElement(DateTranslationContextProvider, { translate: translate },
|
|
56
|
-
React.createElement(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
children,
|
|
67
|
-
React.createElement(DateWrapper, { open: _open !== null && _open !== void 0 ? _open : open, anchor: wrapperRef, onClose: () => { var _a; return (_a = onClose === null || onClose === void 0 ? void 0 : onClose()) !== null && _a !== void 0 ? _a : setOpen(false); }, locale: locale, translate: translate, variant: "month", popoverProps: {
|
|
68
|
-
id: ariaId,
|
|
69
|
-
strategy,
|
|
70
|
-
} },
|
|
71
|
-
React.createElement(DayPickerProvider, { initialProps: {
|
|
72
|
-
locale: locale
|
|
73
|
-
? getLocaleFromString(locale)
|
|
74
|
-
: langProviderLocale,
|
|
75
|
-
selected: selected !== null && selected !== void 0 ? selected : selectedMonth,
|
|
76
|
-
toDate,
|
|
77
|
-
fromDate,
|
|
78
|
-
month: selected !== null && selected !== void 0 ? selected : selectedMonth,
|
|
61
|
+
React.createElement(DateInputContextProvider, { open: open, onOpen: () => setOpen((x) => !x), ariaId: ariaId, defined: true },
|
|
62
|
+
React.createElement(MonthPickerProvider, { dropdownCaption: dropdownCaption, defaultSelected: defaultSelected, selected: selected, disabled: disabled, fromDate: fromDate, toDate: toDate, year: year, onYearChange: onYearChange, onMonthSelect: handleSelect, locale: locale ? getLocaleFromString(locale) : langProviderLocale },
|
|
63
|
+
React.createElement("div", { ref: mergedRef, className: cl("navds-date__wrapper", wrapperClassName) },
|
|
64
|
+
children,
|
|
65
|
+
React.createElement(DateDialog, { open: open, anchor: wrapperRef, onClose: () => {
|
|
66
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
67
|
+
open && setOpen(false);
|
|
68
|
+
}, locale: locale, translate: translate, variant: "month", popoverProps: {
|
|
69
|
+
id: ariaId,
|
|
70
|
+
strategy,
|
|
79
71
|
} },
|
|
80
72
|
React.createElement("div", { className: cl("rdp-month", className) },
|
|
81
|
-
React.createElement(
|
|
82
|
-
|
|
83
|
-
React.createElement(MonthSelector, null)))))))));
|
|
73
|
+
React.createElement(MonthPickerCaption, null),
|
|
74
|
+
React.createElement(MonthPickerTable, null))))))));
|
|
84
75
|
});
|
|
85
76
|
MonthPicker.Standalone = MonthPickerStandalone;
|
|
86
77
|
MonthPicker.Input = MonthPickerInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthPicker.js","sourceRoot":"","sources":["../../../src/date/monthpicker/MonthPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MonthPicker.js","sourceRoot":"","sources":["../../../src/date/monthpicker/MonthPicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { ComponentTranslation } from "../../util/i18n/i18n.types.js";
|
|
2
|
+
import { Matcher } from "../Date.typeutils.js";
|
|
3
|
+
export interface MonthPickerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/**
|
|
5
|
+
* Element monthpicker anchors to. Use <MonthPicker.Input /> for built-in toggle,
|
|
6
|
+
* or make your own with the open/onClose props
|
|
7
|
+
*/
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Classname for datepicker in popover
|
|
11
|
+
*/
|
|
12
|
+
className?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Classname for wrapper
|
|
15
|
+
*/
|
|
16
|
+
wrapperClassName?: string;
|
|
17
|
+
/**
|
|
18
|
+
* The earliest month to start navigation.
|
|
19
|
+
*/
|
|
20
|
+
fromDate?: Date;
|
|
21
|
+
/**
|
|
22
|
+
* The latest day to end navigation.
|
|
23
|
+
*/
|
|
24
|
+
toDate?: Date;
|
|
25
|
+
/**
|
|
26
|
+
* Changes monthpicker locale
|
|
27
|
+
* @default "nb" (norsk bokmål)
|
|
28
|
+
* @deprecated Use `<Provider />`-component
|
|
29
|
+
*/
|
|
30
|
+
locale?: "nb" | "nn" | "en";
|
|
31
|
+
/**
|
|
32
|
+
* i18n-API for customizing texts and labels.
|
|
33
|
+
*
|
|
34
|
+
* **NB: If you need to change the language, use [Provider](https://aksel.nav.no/komponenter/core/provider#84d7ea5ec517) instead.**
|
|
35
|
+
*/
|
|
36
|
+
translations?: ComponentTranslation<"DatePicker">;
|
|
37
|
+
/**
|
|
38
|
+
* Display dropdown for choosing year. Needs `fromDate` + `toDate` to work.
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
dropdownCaption?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Apply the disabled modifier to the matching months. Uses a subset of React Day Picker Matcher type. https://react-day-picker.js.org/api/type-aliases/Matcher
|
|
44
|
+
*/
|
|
45
|
+
disabled?: Matcher[];
|
|
46
|
+
/**
|
|
47
|
+
* Controlled selected-month
|
|
48
|
+
*/
|
|
49
|
+
selected?: Date;
|
|
50
|
+
/**
|
|
51
|
+
* Default selected month.
|
|
52
|
+
*/
|
|
53
|
+
defaultSelected?: Date;
|
|
54
|
+
/**
|
|
55
|
+
* Open state for user-controlled state. Component controlled by default
|
|
56
|
+
*/
|
|
57
|
+
open?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* onClose callback for user-controlled state
|
|
60
|
+
*/
|
|
61
|
+
onClose?: () => void;
|
|
62
|
+
/**
|
|
63
|
+
* onOpenToggle callback for user-controlled-state. Only called if `<MonthPicker.Input />` is used
|
|
64
|
+
*/
|
|
65
|
+
onOpenToggle?: () => void;
|
|
66
|
+
/**
|
|
67
|
+
* Callback for user-controlled state
|
|
68
|
+
*/
|
|
69
|
+
onMonthSelect?: (month?: Date) => void;
|
|
70
|
+
/**
|
|
71
|
+
* Used to set visible year programmatically. Component controlled by default
|
|
72
|
+
*/
|
|
73
|
+
year?: Date;
|
|
74
|
+
/**
|
|
75
|
+
* Event fired when the user navigates between years.
|
|
76
|
+
*/
|
|
77
|
+
onYearChange?: (y?: Date) => void;
|
|
78
|
+
/**
|
|
79
|
+
* **Avoid using if possible!**
|
|
80
|
+
*
|
|
81
|
+
* Changes what CSS position property to use
|
|
82
|
+
* You want to use "fixed" if parent wrapper has position relative, but you want popover to escape
|
|
83
|
+
* @default "absolute"
|
|
84
|
+
*/
|
|
85
|
+
strategy?: "absolute" | "fixed";
|
|
86
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthPicker.types.js","sourceRoot":"","sources":["../../../src/date/monthpicker/MonthPicker.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { setYear } from "date-fns";
|
|
2
|
+
import { isMatch } from "../date-utils/index.js";
|
|
3
|
+
export const nextEnabled = (months, key, disabled, currentMonth, setYearState, yearState, dropdownCaption, fromDate, toDate) => {
|
|
4
|
+
const currentIndex = currentMonth.getMonth();
|
|
5
|
+
if (key === "Home") {
|
|
6
|
+
const nextDate = nextOnRow(currentIndex, months, yearState, disabled, "home");
|
|
7
|
+
if (nextDate) {
|
|
8
|
+
return nextDate;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
if (key === "End") {
|
|
12
|
+
const nextDate = nextOnRow(currentIndex, months, yearState, disabled, "end");
|
|
13
|
+
if (nextDate) {
|
|
14
|
+
return nextDate;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (key === "PageUp") {
|
|
18
|
+
if (!dropdownCaption ||
|
|
19
|
+
(fromDate && yearState.getFullYear() - 1 >= (fromDate === null || fromDate === void 0 ? void 0 : fromDate.getFullYear()))) {
|
|
20
|
+
setYearState(setYear(yearState, Number(yearState.getFullYear() - 1)));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (key === "PageDown") {
|
|
24
|
+
if (!dropdownCaption ||
|
|
25
|
+
(toDate && yearState.getFullYear() + 1 <= (toDate === null || toDate === void 0 ? void 0 : toDate.getFullYear()))) {
|
|
26
|
+
setYearState(setYear(yearState, Number(yearState.getFullYear() + 1)));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (key === "ArrowRight") {
|
|
30
|
+
const nextMonth = loopForward(currentIndex, months, yearState, setYearState, disabled, false, dropdownCaption, fromDate, toDate);
|
|
31
|
+
if (nextMonth) {
|
|
32
|
+
return setYear(months[nextMonth.index], nextMonth.year);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (key === "ArrowLeft") {
|
|
36
|
+
const prevMonth = loopBack(currentIndex - 1, months, disabled, yearState, setYearState, false, dropdownCaption, fromDate, toDate);
|
|
37
|
+
if (prevMonth) {
|
|
38
|
+
return setYear(months[prevMonth.index], prevMonth.year);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (key === "ArrowDown") {
|
|
42
|
+
if (months[currentIndex + 4] &&
|
|
43
|
+
!isMatch(setYear(months[currentIndex + 4], yearState.getFullYear()), disabled)) {
|
|
44
|
+
return setYear(months[currentIndex + 4], yearState.getFullYear());
|
|
45
|
+
}
|
|
46
|
+
const fallbackNext = loopForward(currentIndex, months, yearState, setYearState, disabled, true, dropdownCaption, fromDate, toDate);
|
|
47
|
+
if (fallbackNext &&
|
|
48
|
+
getRow(fallbackNext.index) !== getRow(currentIndex + 8)) {
|
|
49
|
+
return setYear(months[fallbackNext.index], fallbackNext.year);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (key === "ArrowUp") {
|
|
53
|
+
if (months[currentIndex - 4] &&
|
|
54
|
+
!isMatch(setYear(months[currentIndex - 4], Number(yearState.getFullYear())), disabled))
|
|
55
|
+
return setYear(months[currentIndex - 4], Number(yearState.getFullYear()));
|
|
56
|
+
const fallbackPrev = loopBack(currentIndex, months, disabled, yearState, setYearState, true, dropdownCaption, fromDate, toDate);
|
|
57
|
+
if (fallbackPrev)
|
|
58
|
+
return setYear(months[fallbackPrev.index], fallbackPrev.year);
|
|
59
|
+
}
|
|
60
|
+
return currentMonth;
|
|
61
|
+
};
|
|
62
|
+
const loopBack = (currentIndex, months, disabled, yearState, setYearState, rowCheck, dropdownCaption, fromDate, toDate) => {
|
|
63
|
+
let currentYear = setYear(yearState, Number(yearState.getFullYear()));
|
|
64
|
+
for (let i = currentIndex; i >= -1; i--) {
|
|
65
|
+
if (i === -1) {
|
|
66
|
+
if (isOutOfRange(dropdownCaption, setYear(currentYear, Number(currentYear.getFullYear() - 1)), fromDate, toDate))
|
|
67
|
+
return;
|
|
68
|
+
currentYear = setYear(currentYear, Number(currentYear.getFullYear() - 1));
|
|
69
|
+
setYearState(currentYear);
|
|
70
|
+
i = 11;
|
|
71
|
+
}
|
|
72
|
+
const month = months[i];
|
|
73
|
+
const isDisabled = !isMatch(setYear(month, Number(currentYear.getFullYear())), disabled);
|
|
74
|
+
if (rowCheck) {
|
|
75
|
+
if (isDisabled && getRow(i) !== getRow(currentIndex)) {
|
|
76
|
+
return { index: i, year: Number(currentYear.getFullYear()) };
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
if (isDisabled) {
|
|
81
|
+
return { index: i, year: Number(currentYear.getFullYear()) };
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const loopForward = (currentIndex, months, yearState, setYearState, disabled, rowCheck, dropdownCaption, fromDate, toDate) => {
|
|
87
|
+
let currentYear = setYear(yearState, Number(yearState.getFullYear()));
|
|
88
|
+
for (let i = currentIndex + 1; i < months.length + 1; i++) {
|
|
89
|
+
if (i === 12) {
|
|
90
|
+
if (isOutOfRange(dropdownCaption, setYear(currentYear, Number(currentYear.getFullYear() + 1)), fromDate, toDate))
|
|
91
|
+
return;
|
|
92
|
+
currentYear = setYear(currentYear, Number(currentYear.getFullYear() + 1));
|
|
93
|
+
setYearState(currentYear);
|
|
94
|
+
i = 0;
|
|
95
|
+
}
|
|
96
|
+
const month = months[i];
|
|
97
|
+
const isDisabled = !isMatch(setYear(month, Number(currentYear.getFullYear())), disabled);
|
|
98
|
+
if (rowCheck) {
|
|
99
|
+
if (isDisabled && getRow(i) !== getRow(currentIndex)) {
|
|
100
|
+
return { index: i, year: Number(currentYear.getFullYear()) };
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
if (isDisabled) {
|
|
105
|
+
return { index: i, year: Number(currentYear.getFullYear()) };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
const getRow = (index) => {
|
|
111
|
+
if (index >= 0 && index <= 3)
|
|
112
|
+
return 1;
|
|
113
|
+
if (index >= 4 && index <= 7)
|
|
114
|
+
return 2;
|
|
115
|
+
return 3;
|
|
116
|
+
};
|
|
117
|
+
const isOutOfRange = (dropdownCaption, year, fromDate, toDate) => {
|
|
118
|
+
if (dropdownCaption &&
|
|
119
|
+
fromDate &&
|
|
120
|
+
toDate &&
|
|
121
|
+
(year.getFullYear() < (fromDate === null || fromDate === void 0 ? void 0 : fromDate.getFullYear()) ||
|
|
122
|
+
year.getFullYear() > (toDate === null || toDate === void 0 ? void 0 : toDate.getFullYear()))) {
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
return false;
|
|
126
|
+
};
|
|
127
|
+
const nextOnRow = (currentIndex, months, yearState, disabled, mode) => {
|
|
128
|
+
const row = getRow(currentIndex);
|
|
129
|
+
let monthsOfRow = [];
|
|
130
|
+
switch (row) {
|
|
131
|
+
case 1:
|
|
132
|
+
monthsOfRow = months.slice(0, 4);
|
|
133
|
+
break;
|
|
134
|
+
case 2:
|
|
135
|
+
monthsOfRow = months.slice(4, 8);
|
|
136
|
+
break;
|
|
137
|
+
case 3:
|
|
138
|
+
monthsOfRow = months.slice(8, 12);
|
|
139
|
+
break;
|
|
140
|
+
default:
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
if (mode === "end")
|
|
144
|
+
monthsOfRow = monthsOfRow.reverse();
|
|
145
|
+
for (let i = 0; i < monthsOfRow.length; i++) {
|
|
146
|
+
const month = monthsOfRow[i];
|
|
147
|
+
if (!isMatch(setYear(month, Number(yearState.getFullYear())), disabled)) {
|
|
148
|
+
return setYear(month, Number(yearState.getFullYear()));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=MonthPicker.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthPicker.util.js","sourceRoot":"","sources":["../../../src/date/monthpicker/MonthPicker.util.ts"],"names":[],"mappings":"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"}
|