@react-stately/calendar 3.0.0-nightly.1436 → 3.0.0-nightly.1452
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/dist/main.js +3 -3
- package/dist/main.js.map +1 -1
- package/dist/module.js +3 -3
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +58 -16
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/types.ts +55 -13
- package/src/useCalendarState.ts +4 -4
- package/src/useRangeCalendarState.ts +3 -3
- package/src/utils.ts +6 -6
package/dist/main.js
CHANGED
|
@@ -250,13 +250,13 @@ function $6adad0c8536fc209$export$6d095e787d2b5e1f(props) {
|
|
|
250
250
|
return $4301262d71f567b9$export$eac50920cf2fd59a(date, minValue, maxValue);
|
|
251
251
|
},
|
|
252
252
|
isSelected (date) {
|
|
253
|
-
return calendarDateValue != null && $hEzMm$internationalizeddate.isSameDay(date, calendarDateValue);
|
|
253
|
+
return calendarDateValue != null && $hEzMm$internationalizeddate.isSameDay(date, calendarDateValue) && !this.isCellDisabled(date);
|
|
254
254
|
},
|
|
255
255
|
isCellFocused (date) {
|
|
256
256
|
return isFocused && focusedDate && $hEzMm$internationalizeddate.isSameDay(date, focusedDate);
|
|
257
257
|
},
|
|
258
258
|
isCellDisabled (date) {
|
|
259
|
-
return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || $4301262d71f567b9$export$eac50920cf2fd59a(date, minValue, maxValue);
|
|
259
|
+
return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || $4301262d71f567b9$export$eac50920cf2fd59a(date, minValue, maxValue) || props.isDateDisabled && props.isDateDisabled(date);
|
|
260
260
|
},
|
|
261
261
|
isPreviousVisibleRangeInvalid () {
|
|
262
262
|
return $4301262d71f567b9$export$eac50920cf2fd59a(startDate.subtract({
|
|
@@ -333,7 +333,7 @@ function $e49f7b861e5e8049$export$9a987164d97ecc90(props) {
|
|
|
333
333
|
if (anchorDate) calendar.setFocusedDate(date);
|
|
334
334
|
},
|
|
335
335
|
isSelected (date) {
|
|
336
|
-
return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0;
|
|
336
|
+
return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date);
|
|
337
337
|
},
|
|
338
338
|
isDragging: isDragging,
|
|
339
339
|
setDragging: setDragging
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/@react-stately/calendar/src/index.ts","packages/@react-stately/calendar/src/types.ts","packages/@react-stately/calendar/src/useCalendarState.ts","packages/@react-stately/calendar/src/utils.ts","packages/@react-stately/calendar/src/useRangeCalendarState.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport * from './types';\nexport * from './useCalendarState';\nexport * from './useRangeCalendarState';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CalendarDate} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\nimport {RangeValue} from '@react-types/shared';\n\nexport interface CalendarStateBase {\n isDisabled: boolean,\n isReadOnly: boolean,\n visibleRange: RangeValue<CalendarDate>,\n timeZone: string,\n focusedDate: CalendarDate,\n setFocusedDate(value: CalendarDate): void,\n focusNextDay(): void,\n focusPreviousDay(): void,\n focusNextRow(): void,\n focusPreviousRow(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n focusPageStart(): void,\n focusPageEnd(): void,\n focusNextSection(): void,\n focusPreviousSection(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n selectFocusedDate(): void,\n selectDate(date: CalendarDate): void,\n isFocused: boolean,\n setFocused(value: boolean): void,\n isInvalid(date: CalendarDate): boolean,\n isSelected(date: CalendarDate): boolean,\n isCellFocused(date: CalendarDate): boolean,\n isCellDisabled(date: CalendarDate): boolean,\n isPreviousVisibleRangeInvalid(): boolean,\n isNextVisibleRangeInvalid(): boolean\n}\n\nexport interface CalendarState extends CalendarStateBase {\n value: CalendarDate,\n setValue(value: CalendarDate): void\n}\n\nexport interface RangeCalendarState extends CalendarStateBase {\n value: RangeValue<DateValue>,\n setValue(value: RangeValue<DateValue>): void,\n highlightDate(date: CalendarDate): void,\n anchorDate: CalendarDate | null,\n setAnchorDate(date: CalendarDate | null): void,\n highlightedRange: RangeValue<CalendarDate>,\n isDragging: boolean,\n setDragging(isDragging: boolean): void\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter, alignEnd, alignStart, constrainStart, constrainValue, isInvalid} from './utils';\nimport {\n Calendar,\n CalendarDate,\n Duration,\n GregorianCalendar,\n isSameDay,\n toCalendar,\n toCalendarDate,\n today\n} from '@internationalized/date';\nimport {CalendarProps, DateValue} from '@react-types/calendar';\nimport {CalendarState} from './types';\nimport {useControlledState} from '@react-stately/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\ninterface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: Duration,\n selectionAlignment?: 'start' | 'center' | 'end'\n}\n\nexport function useCalendarState<T extends DateValue>(props: CalendarStateOptions<T>): CalendarState {\n let defaultFormatter = useDateFormatter();\n let resolvedOptions = useMemo(() => defaultFormatter.resolvedOptions(), [defaultFormatter]);\n let {\n locale,\n createCalendar,\n visibleDuration = {months: 1},\n minValue,\n maxValue,\n selectionAlignment\n } = props;\n\n let calendar = useMemo(() => createCalendar(resolvedOptions.calendar), [createCalendar, resolvedOptions.calendar]);\n\n let [value, setControlledValue] = useControlledState<DateValue>(props.value, props.defaultValue, props.onChange);\n let calendarDateValue = useMemo(() => value ? toCalendar(toCalendarDate(value), calendar) : null, [value, calendar]);\n let timeZone = useMemo(() => value && 'timeZone' in value ? value.timeZone : resolvedOptions.timeZone, [value, resolvedOptions.timeZone]);\n let defaultDate = useMemo(() => calendarDateValue || constrainValue(toCalendar(today(timeZone), calendar), minValue, maxValue), [calendarDateValue, timeZone, calendar, minValue, maxValue]);\n let [startDate, setStartDate] = useState(() => {\n switch (selectionAlignment) {\n case 'start':\n return alignStart(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'end':\n return alignEnd(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'center':\n default:\n return alignCenter(defaultDate, visibleDuration, locale, minValue, maxValue);\n }\n });\n let [focusedDate, setFocusedDate] = useState(defaultDate);\n let [isFocused, setFocused] = useState(props.autoFocus || false);\n\n let endDate = useMemo(() => startDate.add(visibleDuration).subtract({days: 1}), [startDate, visibleDuration]);\n\n // Reset focused date and visible range when calendar changes.\n let lastCalendarIdentifier = useRef(calendar.identifier);\n useEffect(() => {\n if (calendar.identifier !== lastCalendarIdentifier.current) {\n let newFocusedDate = toCalendar(focusedDate, calendar);\n setStartDate(alignCenter(newFocusedDate, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(newFocusedDate);\n lastCalendarIdentifier.current = calendar.identifier;\n }\n }, [calendar, focusedDate, visibleDuration, locale, minValue, maxValue]);\n\n // Sets focus to a specific cell date\n function focusCell(date: CalendarDate) {\n // date = constrain(focusedDate, date, visibleDuration, locale, minValue, maxValue);\n date = constrainValue(date, minValue, maxValue);\n\n let next = startDate.add(visibleDuration);\n if (date.compare(startDate) < 0) {\n setStartDate(alignEnd(date, visibleDuration, locale, minValue, maxValue));\n } else if (date.compare(next) >= 0) {\n setStartDate(alignStart(date, visibleDuration, locale, minValue, maxValue));\n }\n\n setFocusedDate(date);\n }\n\n function setValue(newValue: CalendarDate) {\n if (!props.isDisabled && !props.isReadOnly) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, value?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (value && 'hour' in value) {\n setControlledValue(value.set(newValue));\n } else {\n setControlledValue(newValue);\n }\n }\n }\n\n return {\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly,\n value: calendarDateValue,\n setValue,\n visibleRange: {\n start: startDate,\n end: endDate\n },\n focusedDate,\n timeZone,\n setFocusedDate(date) {\n setFocusedDate(date);\n setFocused(true);\n },\n focusNextDay() {\n focusCell(focusedDate.add({days: 1}));\n },\n focusPreviousDay() {\n focusCell(focusedDate.subtract({days: 1}));\n },\n focusNextRow() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({weeks: 1}));\n }\n },\n focusPreviousRow() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({weeks: 1}));\n }\n },\n focusNextPage() {\n let start = startDate.add(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.add(visibleDuration), minValue, maxValue));\n },\n focusPreviousPage() {\n let start = startDate.subtract(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.subtract(visibleDuration), minValue, maxValue));\n },\n focusPageStart() {\n focusCell(startDate);\n },\n focusPageEnd() {\n focusCell(endDate);\n },\n focusNextSection() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.add({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({years: 1}));\n }\n },\n focusPreviousSection() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.subtract({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({years: 1}));\n }\n },\n selectFocusedDate() {\n setValue(focusedDate);\n },\n selectDate(date) {\n setValue(date);\n },\n isFocused,\n setFocused,\n isInvalid(date) {\n return isInvalid(date, minValue, maxValue);\n },\n isSelected(date) {\n return calendarDateValue != null && isSameDay(date, calendarDateValue);\n },\n isCellFocused(date) {\n return isFocused && focusedDate && isSameDay(date, focusedDate);\n },\n isCellDisabled(date) {\n return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue);\n },\n isPreviousVisibleRangeInvalid() {\n return isInvalid(startDate.subtract({days: 1}), minValue, maxValue);\n },\n isNextVisibleRangeInvalid() {\n return isInvalid(endDate.add({days: 1}), minValue, maxValue);\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {\n CalendarDate,\n Duration,\n maxDate,\n minDate,\n startOfMonth,\n startOfWeek,\n startOfYear,\n toCalendarDate\n} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\n\nexport function isInvalid(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n return (minValue != null && date.compare(minValue) < 0) ||\n (maxValue != null && date.compare(maxValue) > 0);\n}\n\nexport function alignCenter(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let halfDuration: Duration = {};\n for (let key in duration) {\n halfDuration[key] = Math.floor(duration[key] / 2);\n if (halfDuration[key] > 0 && duration[key] % 2 === 0) {\n halfDuration[key]--;\n }\n }\n\n let aligned = alignStart(date, duration, locale).subtract(halfDuration);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignStart(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n // align to the start of the largest unit\n let aligned = date;\n if (duration.years) {\n aligned = startOfYear(date);\n } else if (duration.months) {\n aligned = startOfMonth(date);\n } else if (duration.weeks) {\n aligned = startOfWeek(date, locale);\n }\n\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignEnd(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let d = {...duration};\n // subtract 1 from the smallest unit\n if (duration.days) {\n d.days--;\n } else if (duration.weeks) {\n d.weeks--;\n } else if (duration.months) {\n d.months--;\n } else if (duration.years) {\n d.years--;\n }\n\n let aligned = alignStart(date, duration, locale).subtract(d);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function constrainStart(\n date: CalendarDate,\n aligned: CalendarDate,\n duration: Duration,\n locale: string,\n minValue: DateValue,\n maxValue: DateValue) {\n if (minValue && date.compare(minValue) >= 0) {\n aligned = maxDate(\n aligned,\n alignStart(toCalendarDate(minValue), duration, locale)\n );\n }\n\n if (maxValue && date.compare(maxValue) <= 0) {\n aligned = minDate(\n aligned,\n alignEnd(toCalendarDate(maxValue), duration, locale)\n );\n }\n\n return aligned;\n}\n\nexport function constrainValue(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n if (minValue) {\n date = maxDate(date, toCalendarDate(minValue));\n }\n\n if (maxValue) {\n date = minDate(date, toCalendarDate(maxValue));\n }\n\n return date;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter} from './utils';\nimport {Calendar, CalendarDate, Duration, GregorianCalendar, toCalendar, toCalendarDate} from '@internationalized/date';\nimport {DateRange, DateValue} from '@react-types/calendar';\nimport {RangeCalendarProps} from '@react-types/calendar';\nimport {RangeCalendarState} from './types';\nimport {RangeValue} from '@react-types/shared';\nimport {useCalendarState} from './useCalendarState';\nimport {useControlledState} from '@react-stately/utils';\nimport {useState} from 'react';\n\ninterface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: Duration\n}\n\nexport function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState {\n let {value: valueProp, defaultValue, onChange, createCalendar, locale, visibleDuration = {months: 1}, minValue, maxValue, ...calendarProps} = props;\n let [value, setValue] = useControlledState<DateRange>(\n valueProp,\n defaultValue,\n onChange\n );\n\n let [anchorDate, setAnchorDate] = useState(null);\n let alignment: 'center' | 'start' = 'center';\n if (value && value.start && value.end) {\n let start = alignCenter(toCalendarDate(value.start), visibleDuration, locale, minValue, maxValue);\n let end = start.add(visibleDuration).subtract({days: 1});\n\n if (value.end.compare(end) > 0) {\n alignment = 'start';\n }\n }\n\n let calendar = useCalendarState({\n ...calendarProps,\n value: value && value.start,\n createCalendar,\n locale,\n visibleDuration,\n minValue,\n maxValue,\n selectionAlignment: alignment\n });\n\n let highlightedRange = anchorDate ? makeRange(anchorDate, calendar.focusedDate) : value && makeRange(value.start, value.end);\n let selectDate = (date: CalendarDate) => {\n if (props.isReadOnly) {\n return;\n }\n\n if (!anchorDate) {\n setAnchorDate(date);\n } else {\n let range = makeRange(anchorDate, date);\n setValue({\n start: convertValue(range.start, value?.start),\n end: convertValue(range.end, value?.end)\n });\n setAnchorDate(null);\n }\n };\n\n let [isDragging, setDragging] = useState(false);\n\n return {\n ...calendar,\n value,\n setValue,\n anchorDate,\n setAnchorDate,\n highlightedRange,\n selectFocusedDate() {\n selectDate(calendar.focusedDate);\n },\n selectDate,\n highlightDate(date) {\n if (anchorDate) {\n calendar.setFocusedDate(date);\n }\n },\n isSelected(date) {\n return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0;\n },\n isDragging,\n setDragging\n };\n}\n\nfunction makeRange(start: DateValue, end: DateValue): RangeValue<CalendarDate> {\n if (!start || !end) {\n return null;\n }\n\n if (end.compare(start) < 0) {\n [start, end] = [end, start];\n }\n\n return {start: toCalendarDate(start), end: toCalendarDate(end)};\n}\n\nfunction convertValue(newValue: CalendarDate, oldValue: DateValue) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, oldValue?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (oldValue && 'hour' in oldValue) {\n return oldValue.set(newValue);\n }\n\n return newValue;\n}\n"],"names":[],"version":3,"file":"main.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/@react-stately/calendar/src/index.ts","packages/@react-stately/calendar/src/types.ts","packages/@react-stately/calendar/src/useCalendarState.ts","packages/@react-stately/calendar/src/utils.ts","packages/@react-stately/calendar/src/useRangeCalendarState.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport * from './types';\nexport * from './useCalendarState';\nexport * from './useRangeCalendarState';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CalendarDate} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\nimport {RangeValue} from '@react-types/shared';\n\nexport interface CalendarStateBase {\n /** Whether the calendar is disabled. */\n readonly isDisabled: boolean,\n /** Whether the calendar is in a read only state. */\n readonly isReadOnly: boolean,\n /** The date range that is currently visible in the calendar. */\n readonly visibleRange: RangeValue<CalendarDate>,\n /** The time zone of the dates currently being displayed. */\n readonly timeZone: string,\n /** The currently focused date. */\n readonly focusedDate: CalendarDate,\n /** Sets the focused date. */\n setFocusedDate(value: CalendarDate): void,\n /** Moves focus to the next calendar date. */\n focusNextDay(): void,\n /** Moves focus to the previous calendar date. */\n focusPreviousDay(): void,\n /** Moves focus to the next row of dates, e.g. the next week. */\n focusNextRow(): void,\n /** Moves focus to the previous row of dates, e.g. the previous work. */\n focusPreviousRow(): void,\n /** Moves focus to the next page of dates, e.g. the next month if one month is visible. */\n focusNextPage(): void,\n /** Moves focus to the previous page of dates, e.g. the previous month if one month is visible. */\n focusPreviousPage(): void,\n /** Moves focus to the start of the current page of dates, e.g. the start of the first visible month. */\n focusPageStart(): void,\n /** Moves focus to the end of the current page of dates, e.g. the end of the last visible month. */\n focusPageEnd(): void,\n /**\n * Moves focus to the next larger section of dates based on what is currently displayed.\n * If days are displayed, then moves to the next visible range. If weeks are displayed, then\n * moves to the next month. If months or years are displayed, moves to the next year.\n */\n focusNextSection(): void,\n /**\n * Moves focus to the previous larger section of dates based on what is currently displayed.\n * If days are displayed, then moves to the previous visible range. If weeks are displayed, then\n * moves to the previous month. If months or years are displayed, moves to the previous year.\n */\n focusPreviousSection(): void,\n /** Selects the currently focused date. */\n selectFocusedDate(): void,\n /** Selects the given date. */\n selectDate(date: CalendarDate): void,\n /** Whether focus is currently within the calendar. */\n readonly isFocused: boolean,\n /** Sets whether focus is currently within the calendar. */\n setFocused(value: boolean): void,\n /** Returns whether the given date is invalid according to the `minValue` and `maxValue` props. */\n isInvalid(date: CalendarDate): boolean,\n /** Returns whether the given date is currently selected. */\n isSelected(date: CalendarDate): boolean,\n /** Returns whether the given date is currently focused. */\n isCellFocused(date: CalendarDate): boolean,\n /** Returns whether the given date is disabled according to the `minValue, `maxValue`, and `isDisabled` props. */\n isCellDisabled(date: CalendarDate): boolean,\n /** Returns whether the previous visible date range is allowed to be selected according to the `minValue` prop. */\n isPreviousVisibleRangeInvalid(): boolean,\n /** Returns whether the next visible date range is allowed to be selected according to the `maxValue` prop. */\n isNextVisibleRangeInvalid(): boolean\n}\n\nexport interface CalendarState extends CalendarStateBase {\n /** The currently selected date. */\n readonly value: CalendarDate,\n /** Sets the currently selected date. */\n setValue(value: CalendarDate): void\n}\n\nexport interface RangeCalendarState extends CalendarStateBase {\n /** The currently selected date range. */\n readonly value: RangeValue<DateValue>,\n /** Sets the currently selected date range. */\n setValue(value: RangeValue<DateValue>): void,\n /** Highlights the given date during selection, e.g. by hovering or dragging. */\n highlightDate(date: CalendarDate): void,\n /** The current anchor date that the user clicked on to begin range selection. */\n readonly anchorDate: CalendarDate | null,\n /** Sets the anchor date that the user clicked on to begin range selection. */\n setAnchorDate(date: CalendarDate | null): void,\n /** The currently highlighted date range. */\n readonly highlightedRange: RangeValue<CalendarDate>,\n /** Whether the user is currently dragging over the calendar. */\n readonly isDragging: boolean,\n /** Sets whether the user is dragging over the calendar. */\n setDragging(isDragging: boolean): void\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter, alignEnd, alignStart, constrainStart, constrainValue, isInvalid} from './utils';\nimport {\n Calendar,\n CalendarDate,\n DateDuration,\n GregorianCalendar,\n isSameDay,\n toCalendar,\n toCalendarDate,\n today\n} from '@internationalized/date';\nimport {CalendarProps, DateValue} from '@react-types/calendar';\nimport {CalendarState} from './types';\nimport {useControlledState} from '@react-stately/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\ninterface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: DateDuration,\n selectionAlignment?: 'start' | 'center' | 'end'\n}\n\nexport function useCalendarState<T extends DateValue>(props: CalendarStateOptions<T>): CalendarState {\n let defaultFormatter = useDateFormatter();\n let resolvedOptions = useMemo(() => defaultFormatter.resolvedOptions(), [defaultFormatter]);\n let {\n locale,\n createCalendar,\n visibleDuration = {months: 1},\n minValue,\n maxValue,\n selectionAlignment\n } = props;\n\n let calendar = useMemo(() => createCalendar(resolvedOptions.calendar), [createCalendar, resolvedOptions.calendar]);\n\n let [value, setControlledValue] = useControlledState<DateValue>(props.value, props.defaultValue, props.onChange);\n let calendarDateValue = useMemo(() => value ? toCalendar(toCalendarDate(value), calendar) : null, [value, calendar]);\n let timeZone = useMemo(() => value && 'timeZone' in value ? value.timeZone : resolvedOptions.timeZone, [value, resolvedOptions.timeZone]);\n let defaultDate = useMemo(() => calendarDateValue || constrainValue(toCalendar(today(timeZone), calendar), minValue, maxValue), [calendarDateValue, timeZone, calendar, minValue, maxValue]);\n let [startDate, setStartDate] = useState(() => {\n switch (selectionAlignment) {\n case 'start':\n return alignStart(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'end':\n return alignEnd(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'center':\n default:\n return alignCenter(defaultDate, visibleDuration, locale, minValue, maxValue);\n }\n });\n let [focusedDate, setFocusedDate] = useState(defaultDate);\n let [isFocused, setFocused] = useState(props.autoFocus || false);\n\n let endDate = useMemo(() => startDate.add(visibleDuration).subtract({days: 1}), [startDate, visibleDuration]);\n\n // Reset focused date and visible range when calendar changes.\n let lastCalendarIdentifier = useRef(calendar.identifier);\n useEffect(() => {\n if (calendar.identifier !== lastCalendarIdentifier.current) {\n let newFocusedDate = toCalendar(focusedDate, calendar);\n setStartDate(alignCenter(newFocusedDate, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(newFocusedDate);\n lastCalendarIdentifier.current = calendar.identifier;\n }\n }, [calendar, focusedDate, visibleDuration, locale, minValue, maxValue]);\n\n // Sets focus to a specific cell date\n function focusCell(date: CalendarDate) {\n // date = constrain(focusedDate, date, visibleDuration, locale, minValue, maxValue);\n date = constrainValue(date, minValue, maxValue);\n\n let next = startDate.add(visibleDuration);\n if (date.compare(startDate) < 0) {\n setStartDate(alignEnd(date, visibleDuration, locale, minValue, maxValue));\n } else if (date.compare(next) >= 0) {\n setStartDate(alignStart(date, visibleDuration, locale, minValue, maxValue));\n }\n\n setFocusedDate(date);\n }\n\n function setValue(newValue: CalendarDate) {\n if (!props.isDisabled && !props.isReadOnly) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, value?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (value && 'hour' in value) {\n setControlledValue(value.set(newValue));\n } else {\n setControlledValue(newValue);\n }\n }\n }\n\n return {\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly,\n value: calendarDateValue,\n setValue,\n visibleRange: {\n start: startDate,\n end: endDate\n },\n focusedDate,\n timeZone,\n setFocusedDate(date) {\n setFocusedDate(date);\n setFocused(true);\n },\n focusNextDay() {\n focusCell(focusedDate.add({days: 1}));\n },\n focusPreviousDay() {\n focusCell(focusedDate.subtract({days: 1}));\n },\n focusNextRow() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({weeks: 1}));\n }\n },\n focusPreviousRow() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({weeks: 1}));\n }\n },\n focusNextPage() {\n let start = startDate.add(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.add(visibleDuration), minValue, maxValue));\n },\n focusPreviousPage() {\n let start = startDate.subtract(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.subtract(visibleDuration), minValue, maxValue));\n },\n focusPageStart() {\n focusCell(startDate);\n },\n focusPageEnd() {\n focusCell(endDate);\n },\n focusNextSection() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.add({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({years: 1}));\n }\n },\n focusPreviousSection() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.subtract({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({years: 1}));\n }\n },\n selectFocusedDate() {\n setValue(focusedDate);\n },\n selectDate(date) {\n setValue(date);\n },\n isFocused,\n setFocused,\n isInvalid(date) {\n return isInvalid(date, minValue, maxValue);\n },\n isSelected(date) {\n return calendarDateValue != null && isSameDay(date, calendarDateValue) && !this.isCellDisabled(date);\n },\n isCellFocused(date) {\n return isFocused && focusedDate && isSameDay(date, focusedDate);\n },\n isCellDisabled(date) {\n return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue) || (props.isDateDisabled && props.isDateDisabled(date));\n },\n isPreviousVisibleRangeInvalid() {\n return isInvalid(startDate.subtract({days: 1}), minValue, maxValue);\n },\n isNextVisibleRangeInvalid() {\n return isInvalid(endDate.add({days: 1}), minValue, maxValue);\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {\n CalendarDate,\n DateDuration,\n maxDate,\n minDate,\n startOfMonth,\n startOfWeek,\n startOfYear,\n toCalendarDate\n} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\n\nexport function isInvalid(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n return (minValue != null && date.compare(minValue) < 0) ||\n (maxValue != null && date.compare(maxValue) > 0);\n}\n\nexport function alignCenter(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let halfDuration: DateDuration = {};\n for (let key in duration) {\n halfDuration[key] = Math.floor(duration[key] / 2);\n if (halfDuration[key] > 0 && duration[key] % 2 === 0) {\n halfDuration[key]--;\n }\n }\n\n let aligned = alignStart(date, duration, locale).subtract(halfDuration);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignStart(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n // align to the start of the largest unit\n let aligned = date;\n if (duration.years) {\n aligned = startOfYear(date);\n } else if (duration.months) {\n aligned = startOfMonth(date);\n } else if (duration.weeks) {\n aligned = startOfWeek(date, locale);\n }\n\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignEnd(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let d = {...duration};\n // subtract 1 from the smallest unit\n if (duration.days) {\n d.days--;\n } else if (duration.weeks) {\n d.weeks--;\n } else if (duration.months) {\n d.months--;\n } else if (duration.years) {\n d.years--;\n }\n\n let aligned = alignStart(date, duration, locale).subtract(d);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function constrainStart(\n date: CalendarDate,\n aligned: CalendarDate,\n duration: DateDuration,\n locale: string,\n minValue: DateValue,\n maxValue: DateValue) {\n if (minValue && date.compare(minValue) >= 0) {\n aligned = maxDate(\n aligned,\n alignStart(toCalendarDate(minValue), duration, locale)\n );\n }\n\n if (maxValue && date.compare(maxValue) <= 0) {\n aligned = minDate(\n aligned,\n alignEnd(toCalendarDate(maxValue), duration, locale)\n );\n }\n\n return aligned;\n}\n\nexport function constrainValue(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n if (minValue) {\n date = maxDate(date, toCalendarDate(minValue));\n }\n\n if (maxValue) {\n date = minDate(date, toCalendarDate(maxValue));\n }\n\n return date;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter} from './utils';\nimport {Calendar, CalendarDate, DateDuration, GregorianCalendar, toCalendar, toCalendarDate} from '@internationalized/date';\nimport {DateRange, DateValue} from '@react-types/calendar';\nimport {RangeCalendarProps} from '@react-types/calendar';\nimport {RangeCalendarState} from './types';\nimport {RangeValue} from '@react-types/shared';\nimport {useCalendarState} from './useCalendarState';\nimport {useControlledState} from '@react-stately/utils';\nimport {useState} from 'react';\n\ninterface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: DateDuration\n}\n\nexport function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState {\n let {value: valueProp, defaultValue, onChange, createCalendar, locale, visibleDuration = {months: 1}, minValue, maxValue, ...calendarProps} = props;\n let [value, setValue] = useControlledState<DateRange>(\n valueProp,\n defaultValue,\n onChange\n );\n\n let [anchorDate, setAnchorDate] = useState(null);\n let alignment: 'center' | 'start' = 'center';\n if (value && value.start && value.end) {\n let start = alignCenter(toCalendarDate(value.start), visibleDuration, locale, minValue, maxValue);\n let end = start.add(visibleDuration).subtract({days: 1});\n\n if (value.end.compare(end) > 0) {\n alignment = 'start';\n }\n }\n\n let calendar = useCalendarState({\n ...calendarProps,\n value: value && value.start,\n createCalendar,\n locale,\n visibleDuration,\n minValue,\n maxValue,\n selectionAlignment: alignment\n });\n\n let highlightedRange = anchorDate ? makeRange(anchorDate, calendar.focusedDate) : value && makeRange(value.start, value.end);\n let selectDate = (date: CalendarDate) => {\n if (props.isReadOnly) {\n return;\n }\n\n if (!anchorDate) {\n setAnchorDate(date);\n } else {\n let range = makeRange(anchorDate, date);\n setValue({\n start: convertValue(range.start, value?.start),\n end: convertValue(range.end, value?.end)\n });\n setAnchorDate(null);\n }\n };\n\n let [isDragging, setDragging] = useState(false);\n\n return {\n ...calendar,\n value,\n setValue,\n anchorDate,\n setAnchorDate,\n highlightedRange,\n selectFocusedDate() {\n selectDate(calendar.focusedDate);\n },\n selectDate,\n highlightDate(date) {\n if (anchorDate) {\n calendar.setFocusedDate(date);\n }\n },\n isSelected(date) {\n return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date);\n },\n isDragging,\n setDragging\n };\n}\n\nfunction makeRange(start: DateValue, end: DateValue): RangeValue<CalendarDate> {\n if (!start || !end) {\n return null;\n }\n\n if (end.compare(start) < 0) {\n [start, end] = [end, start];\n }\n\n return {start: toCalendarDate(start), end: toCalendarDate(end)};\n}\n\nfunction convertValue(newValue: CalendarDate, oldValue: DateValue) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, oldValue?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (oldValue && 'hour' in oldValue) {\n return oldValue.set(newValue);\n }\n\n return newValue;\n}\n"],"names":[],"version":3,"file":"main.js.map"}
|
package/dist/module.js
CHANGED
|
@@ -234,13 +234,13 @@ function $131cf43a05231e1e$export$6d095e787d2b5e1f(props) {
|
|
|
234
234
|
return $f62d864046160412$export$eac50920cf2fd59a(date, minValue, maxValue);
|
|
235
235
|
},
|
|
236
236
|
isSelected (date) {
|
|
237
|
-
return calendarDateValue != null && $keQhS$isSameDay(date, calendarDateValue);
|
|
237
|
+
return calendarDateValue != null && $keQhS$isSameDay(date, calendarDateValue) && !this.isCellDisabled(date);
|
|
238
238
|
},
|
|
239
239
|
isCellFocused (date) {
|
|
240
240
|
return isFocused && focusedDate && $keQhS$isSameDay(date, focusedDate);
|
|
241
241
|
},
|
|
242
242
|
isCellDisabled (date) {
|
|
243
|
-
return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || $f62d864046160412$export$eac50920cf2fd59a(date, minValue, maxValue);
|
|
243
|
+
return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || $f62d864046160412$export$eac50920cf2fd59a(date, minValue, maxValue) || props.isDateDisabled && props.isDateDisabled(date);
|
|
244
244
|
},
|
|
245
245
|
isPreviousVisibleRangeInvalid () {
|
|
246
246
|
return $f62d864046160412$export$eac50920cf2fd59a(startDate.subtract({
|
|
@@ -317,7 +317,7 @@ function $9a36b6ba2fb1a7c5$export$9a987164d97ecc90(props) {
|
|
|
317
317
|
if (anchorDate) calendar.setFocusedDate(date);
|
|
318
318
|
},
|
|
319
319
|
isSelected (date) {
|
|
320
|
-
return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0;
|
|
320
|
+
return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date);
|
|
321
321
|
},
|
|
322
322
|
isDragging: isDragging,
|
|
323
323
|
setDragging: setDragging
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/@react-stately/calendar/src/index.ts","packages/@react-stately/calendar/src/types.ts","packages/@react-stately/calendar/src/useCalendarState.ts","packages/@react-stately/calendar/src/utils.ts","packages/@react-stately/calendar/src/useRangeCalendarState.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport * from './types';\nexport * from './useCalendarState';\nexport * from './useRangeCalendarState';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CalendarDate} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\nimport {RangeValue} from '@react-types/shared';\n\nexport interface CalendarStateBase {\n isDisabled: boolean,\n isReadOnly: boolean,\n visibleRange: RangeValue<CalendarDate>,\n timeZone: string,\n focusedDate: CalendarDate,\n setFocusedDate(value: CalendarDate): void,\n focusNextDay(): void,\n focusPreviousDay(): void,\n focusNextRow(): void,\n focusPreviousRow(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n focusPageStart(): void,\n focusPageEnd(): void,\n focusNextSection(): void,\n focusPreviousSection(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n selectFocusedDate(): void,\n selectDate(date: CalendarDate): void,\n isFocused: boolean,\n setFocused(value: boolean): void,\n isInvalid(date: CalendarDate): boolean,\n isSelected(date: CalendarDate): boolean,\n isCellFocused(date: CalendarDate): boolean,\n isCellDisabled(date: CalendarDate): boolean,\n isPreviousVisibleRangeInvalid(): boolean,\n isNextVisibleRangeInvalid(): boolean\n}\n\nexport interface CalendarState extends CalendarStateBase {\n value: CalendarDate,\n setValue(value: CalendarDate): void\n}\n\nexport interface RangeCalendarState extends CalendarStateBase {\n value: RangeValue<DateValue>,\n setValue(value: RangeValue<DateValue>): void,\n highlightDate(date: CalendarDate): void,\n anchorDate: CalendarDate | null,\n setAnchorDate(date: CalendarDate | null): void,\n highlightedRange: RangeValue<CalendarDate>,\n isDragging: boolean,\n setDragging(isDragging: boolean): void\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter, alignEnd, alignStart, constrainStart, constrainValue, isInvalid} from './utils';\nimport {\n Calendar,\n CalendarDate,\n Duration,\n GregorianCalendar,\n isSameDay,\n toCalendar,\n toCalendarDate,\n today\n} from '@internationalized/date';\nimport {CalendarProps, DateValue} from '@react-types/calendar';\nimport {CalendarState} from './types';\nimport {useControlledState} from '@react-stately/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\ninterface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: Duration,\n selectionAlignment?: 'start' | 'center' | 'end'\n}\n\nexport function useCalendarState<T extends DateValue>(props: CalendarStateOptions<T>): CalendarState {\n let defaultFormatter = useDateFormatter();\n let resolvedOptions = useMemo(() => defaultFormatter.resolvedOptions(), [defaultFormatter]);\n let {\n locale,\n createCalendar,\n visibleDuration = {months: 1},\n minValue,\n maxValue,\n selectionAlignment\n } = props;\n\n let calendar = useMemo(() => createCalendar(resolvedOptions.calendar), [createCalendar, resolvedOptions.calendar]);\n\n let [value, setControlledValue] = useControlledState<DateValue>(props.value, props.defaultValue, props.onChange);\n let calendarDateValue = useMemo(() => value ? toCalendar(toCalendarDate(value), calendar) : null, [value, calendar]);\n let timeZone = useMemo(() => value && 'timeZone' in value ? value.timeZone : resolvedOptions.timeZone, [value, resolvedOptions.timeZone]);\n let defaultDate = useMemo(() => calendarDateValue || constrainValue(toCalendar(today(timeZone), calendar), minValue, maxValue), [calendarDateValue, timeZone, calendar, minValue, maxValue]);\n let [startDate, setStartDate] = useState(() => {\n switch (selectionAlignment) {\n case 'start':\n return alignStart(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'end':\n return alignEnd(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'center':\n default:\n return alignCenter(defaultDate, visibleDuration, locale, minValue, maxValue);\n }\n });\n let [focusedDate, setFocusedDate] = useState(defaultDate);\n let [isFocused, setFocused] = useState(props.autoFocus || false);\n\n let endDate = useMemo(() => startDate.add(visibleDuration).subtract({days: 1}), [startDate, visibleDuration]);\n\n // Reset focused date and visible range when calendar changes.\n let lastCalendarIdentifier = useRef(calendar.identifier);\n useEffect(() => {\n if (calendar.identifier !== lastCalendarIdentifier.current) {\n let newFocusedDate = toCalendar(focusedDate, calendar);\n setStartDate(alignCenter(newFocusedDate, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(newFocusedDate);\n lastCalendarIdentifier.current = calendar.identifier;\n }\n }, [calendar, focusedDate, visibleDuration, locale, minValue, maxValue]);\n\n // Sets focus to a specific cell date\n function focusCell(date: CalendarDate) {\n // date = constrain(focusedDate, date, visibleDuration, locale, minValue, maxValue);\n date = constrainValue(date, minValue, maxValue);\n\n let next = startDate.add(visibleDuration);\n if (date.compare(startDate) < 0) {\n setStartDate(alignEnd(date, visibleDuration, locale, minValue, maxValue));\n } else if (date.compare(next) >= 0) {\n setStartDate(alignStart(date, visibleDuration, locale, minValue, maxValue));\n }\n\n setFocusedDate(date);\n }\n\n function setValue(newValue: CalendarDate) {\n if (!props.isDisabled && !props.isReadOnly) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, value?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (value && 'hour' in value) {\n setControlledValue(value.set(newValue));\n } else {\n setControlledValue(newValue);\n }\n }\n }\n\n return {\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly,\n value: calendarDateValue,\n setValue,\n visibleRange: {\n start: startDate,\n end: endDate\n },\n focusedDate,\n timeZone,\n setFocusedDate(date) {\n setFocusedDate(date);\n setFocused(true);\n },\n focusNextDay() {\n focusCell(focusedDate.add({days: 1}));\n },\n focusPreviousDay() {\n focusCell(focusedDate.subtract({days: 1}));\n },\n focusNextRow() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({weeks: 1}));\n }\n },\n focusPreviousRow() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({weeks: 1}));\n }\n },\n focusNextPage() {\n let start = startDate.add(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.add(visibleDuration), minValue, maxValue));\n },\n focusPreviousPage() {\n let start = startDate.subtract(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.subtract(visibleDuration), minValue, maxValue));\n },\n focusPageStart() {\n focusCell(startDate);\n },\n focusPageEnd() {\n focusCell(endDate);\n },\n focusNextSection() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.add({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({years: 1}));\n }\n },\n focusPreviousSection() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.subtract({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({years: 1}));\n }\n },\n selectFocusedDate() {\n setValue(focusedDate);\n },\n selectDate(date) {\n setValue(date);\n },\n isFocused,\n setFocused,\n isInvalid(date) {\n return isInvalid(date, minValue, maxValue);\n },\n isSelected(date) {\n return calendarDateValue != null && isSameDay(date, calendarDateValue);\n },\n isCellFocused(date) {\n return isFocused && focusedDate && isSameDay(date, focusedDate);\n },\n isCellDisabled(date) {\n return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue);\n },\n isPreviousVisibleRangeInvalid() {\n return isInvalid(startDate.subtract({days: 1}), minValue, maxValue);\n },\n isNextVisibleRangeInvalid() {\n return isInvalid(endDate.add({days: 1}), minValue, maxValue);\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {\n CalendarDate,\n Duration,\n maxDate,\n minDate,\n startOfMonth,\n startOfWeek,\n startOfYear,\n toCalendarDate\n} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\n\nexport function isInvalid(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n return (minValue != null && date.compare(minValue) < 0) ||\n (maxValue != null && date.compare(maxValue) > 0);\n}\n\nexport function alignCenter(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let halfDuration: Duration = {};\n for (let key in duration) {\n halfDuration[key] = Math.floor(duration[key] / 2);\n if (halfDuration[key] > 0 && duration[key] % 2 === 0) {\n halfDuration[key]--;\n }\n }\n\n let aligned = alignStart(date, duration, locale).subtract(halfDuration);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignStart(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n // align to the start of the largest unit\n let aligned = date;\n if (duration.years) {\n aligned = startOfYear(date);\n } else if (duration.months) {\n aligned = startOfMonth(date);\n } else if (duration.weeks) {\n aligned = startOfWeek(date, locale);\n }\n\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignEnd(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let d = {...duration};\n // subtract 1 from the smallest unit\n if (duration.days) {\n d.days--;\n } else if (duration.weeks) {\n d.weeks--;\n } else if (duration.months) {\n d.months--;\n } else if (duration.years) {\n d.years--;\n }\n\n let aligned = alignStart(date, duration, locale).subtract(d);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function constrainStart(\n date: CalendarDate,\n aligned: CalendarDate,\n duration: Duration,\n locale: string,\n minValue: DateValue,\n maxValue: DateValue) {\n if (minValue && date.compare(minValue) >= 0) {\n aligned = maxDate(\n aligned,\n alignStart(toCalendarDate(minValue), duration, locale)\n );\n }\n\n if (maxValue && date.compare(maxValue) <= 0) {\n aligned = minDate(\n aligned,\n alignEnd(toCalendarDate(maxValue), duration, locale)\n );\n }\n\n return aligned;\n}\n\nexport function constrainValue(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n if (minValue) {\n date = maxDate(date, toCalendarDate(minValue));\n }\n\n if (maxValue) {\n date = minDate(date, toCalendarDate(maxValue));\n }\n\n return date;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter} from './utils';\nimport {Calendar, CalendarDate, Duration, GregorianCalendar, toCalendar, toCalendarDate} from '@internationalized/date';\nimport {DateRange, DateValue} from '@react-types/calendar';\nimport {RangeCalendarProps} from '@react-types/calendar';\nimport {RangeCalendarState} from './types';\nimport {RangeValue} from '@react-types/shared';\nimport {useCalendarState} from './useCalendarState';\nimport {useControlledState} from '@react-stately/utils';\nimport {useState} from 'react';\n\ninterface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: Duration\n}\n\nexport function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState {\n let {value: valueProp, defaultValue, onChange, createCalendar, locale, visibleDuration = {months: 1}, minValue, maxValue, ...calendarProps} = props;\n let [value, setValue] = useControlledState<DateRange>(\n valueProp,\n defaultValue,\n onChange\n );\n\n let [anchorDate, setAnchorDate] = useState(null);\n let alignment: 'center' | 'start' = 'center';\n if (value && value.start && value.end) {\n let start = alignCenter(toCalendarDate(value.start), visibleDuration, locale, minValue, maxValue);\n let end = start.add(visibleDuration).subtract({days: 1});\n\n if (value.end.compare(end) > 0) {\n alignment = 'start';\n }\n }\n\n let calendar = useCalendarState({\n ...calendarProps,\n value: value && value.start,\n createCalendar,\n locale,\n visibleDuration,\n minValue,\n maxValue,\n selectionAlignment: alignment\n });\n\n let highlightedRange = anchorDate ? makeRange(anchorDate, calendar.focusedDate) : value && makeRange(value.start, value.end);\n let selectDate = (date: CalendarDate) => {\n if (props.isReadOnly) {\n return;\n }\n\n if (!anchorDate) {\n setAnchorDate(date);\n } else {\n let range = makeRange(anchorDate, date);\n setValue({\n start: convertValue(range.start, value?.start),\n end: convertValue(range.end, value?.end)\n });\n setAnchorDate(null);\n }\n };\n\n let [isDragging, setDragging] = useState(false);\n\n return {\n ...calendar,\n value,\n setValue,\n anchorDate,\n setAnchorDate,\n highlightedRange,\n selectFocusedDate() {\n selectDate(calendar.focusedDate);\n },\n selectDate,\n highlightDate(date) {\n if (anchorDate) {\n calendar.setFocusedDate(date);\n }\n },\n isSelected(date) {\n return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0;\n },\n isDragging,\n setDragging\n };\n}\n\nfunction makeRange(start: DateValue, end: DateValue): RangeValue<CalendarDate> {\n if (!start || !end) {\n return null;\n }\n\n if (end.compare(start) < 0) {\n [start, end] = [end, start];\n }\n\n return {start: toCalendarDate(start), end: toCalendarDate(end)};\n}\n\nfunction convertValue(newValue: CalendarDate, oldValue: DateValue) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, oldValue?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (oldValue && 'hour' in oldValue) {\n return oldValue.set(newValue);\n }\n\n return newValue;\n}\n"],"names":[],"version":3,"file":"module.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/@react-stately/calendar/src/index.ts","packages/@react-stately/calendar/src/types.ts","packages/@react-stately/calendar/src/useCalendarState.ts","packages/@react-stately/calendar/src/utils.ts","packages/@react-stately/calendar/src/useRangeCalendarState.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport * from './types';\nexport * from './useCalendarState';\nexport * from './useRangeCalendarState';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CalendarDate} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\nimport {RangeValue} from '@react-types/shared';\n\nexport interface CalendarStateBase {\n /** Whether the calendar is disabled. */\n readonly isDisabled: boolean,\n /** Whether the calendar is in a read only state. */\n readonly isReadOnly: boolean,\n /** The date range that is currently visible in the calendar. */\n readonly visibleRange: RangeValue<CalendarDate>,\n /** The time zone of the dates currently being displayed. */\n readonly timeZone: string,\n /** The currently focused date. */\n readonly focusedDate: CalendarDate,\n /** Sets the focused date. */\n setFocusedDate(value: CalendarDate): void,\n /** Moves focus to the next calendar date. */\n focusNextDay(): void,\n /** Moves focus to the previous calendar date. */\n focusPreviousDay(): void,\n /** Moves focus to the next row of dates, e.g. the next week. */\n focusNextRow(): void,\n /** Moves focus to the previous row of dates, e.g. the previous work. */\n focusPreviousRow(): void,\n /** Moves focus to the next page of dates, e.g. the next month if one month is visible. */\n focusNextPage(): void,\n /** Moves focus to the previous page of dates, e.g. the previous month if one month is visible. */\n focusPreviousPage(): void,\n /** Moves focus to the start of the current page of dates, e.g. the start of the first visible month. */\n focusPageStart(): void,\n /** Moves focus to the end of the current page of dates, e.g. the end of the last visible month. */\n focusPageEnd(): void,\n /**\n * Moves focus to the next larger section of dates based on what is currently displayed.\n * If days are displayed, then moves to the next visible range. If weeks are displayed, then\n * moves to the next month. If months or years are displayed, moves to the next year.\n */\n focusNextSection(): void,\n /**\n * Moves focus to the previous larger section of dates based on what is currently displayed.\n * If days are displayed, then moves to the previous visible range. If weeks are displayed, then\n * moves to the previous month. If months or years are displayed, moves to the previous year.\n */\n focusPreviousSection(): void,\n /** Selects the currently focused date. */\n selectFocusedDate(): void,\n /** Selects the given date. */\n selectDate(date: CalendarDate): void,\n /** Whether focus is currently within the calendar. */\n readonly isFocused: boolean,\n /** Sets whether focus is currently within the calendar. */\n setFocused(value: boolean): void,\n /** Returns whether the given date is invalid according to the `minValue` and `maxValue` props. */\n isInvalid(date: CalendarDate): boolean,\n /** Returns whether the given date is currently selected. */\n isSelected(date: CalendarDate): boolean,\n /** Returns whether the given date is currently focused. */\n isCellFocused(date: CalendarDate): boolean,\n /** Returns whether the given date is disabled according to the `minValue, `maxValue`, and `isDisabled` props. */\n isCellDisabled(date: CalendarDate): boolean,\n /** Returns whether the previous visible date range is allowed to be selected according to the `minValue` prop. */\n isPreviousVisibleRangeInvalid(): boolean,\n /** Returns whether the next visible date range is allowed to be selected according to the `maxValue` prop. */\n isNextVisibleRangeInvalid(): boolean\n}\n\nexport interface CalendarState extends CalendarStateBase {\n /** The currently selected date. */\n readonly value: CalendarDate,\n /** Sets the currently selected date. */\n setValue(value: CalendarDate): void\n}\n\nexport interface RangeCalendarState extends CalendarStateBase {\n /** The currently selected date range. */\n readonly value: RangeValue<DateValue>,\n /** Sets the currently selected date range. */\n setValue(value: RangeValue<DateValue>): void,\n /** Highlights the given date during selection, e.g. by hovering or dragging. */\n highlightDate(date: CalendarDate): void,\n /** The current anchor date that the user clicked on to begin range selection. */\n readonly anchorDate: CalendarDate | null,\n /** Sets the anchor date that the user clicked on to begin range selection. */\n setAnchorDate(date: CalendarDate | null): void,\n /** The currently highlighted date range. */\n readonly highlightedRange: RangeValue<CalendarDate>,\n /** Whether the user is currently dragging over the calendar. */\n readonly isDragging: boolean,\n /** Sets whether the user is dragging over the calendar. */\n setDragging(isDragging: boolean): void\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter, alignEnd, alignStart, constrainStart, constrainValue, isInvalid} from './utils';\nimport {\n Calendar,\n CalendarDate,\n DateDuration,\n GregorianCalendar,\n isSameDay,\n toCalendar,\n toCalendarDate,\n today\n} from '@internationalized/date';\nimport {CalendarProps, DateValue} from '@react-types/calendar';\nimport {CalendarState} from './types';\nimport {useControlledState} from '@react-stately/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\ninterface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: DateDuration,\n selectionAlignment?: 'start' | 'center' | 'end'\n}\n\nexport function useCalendarState<T extends DateValue>(props: CalendarStateOptions<T>): CalendarState {\n let defaultFormatter = useDateFormatter();\n let resolvedOptions = useMemo(() => defaultFormatter.resolvedOptions(), [defaultFormatter]);\n let {\n locale,\n createCalendar,\n visibleDuration = {months: 1},\n minValue,\n maxValue,\n selectionAlignment\n } = props;\n\n let calendar = useMemo(() => createCalendar(resolvedOptions.calendar), [createCalendar, resolvedOptions.calendar]);\n\n let [value, setControlledValue] = useControlledState<DateValue>(props.value, props.defaultValue, props.onChange);\n let calendarDateValue = useMemo(() => value ? toCalendar(toCalendarDate(value), calendar) : null, [value, calendar]);\n let timeZone = useMemo(() => value && 'timeZone' in value ? value.timeZone : resolvedOptions.timeZone, [value, resolvedOptions.timeZone]);\n let defaultDate = useMemo(() => calendarDateValue || constrainValue(toCalendar(today(timeZone), calendar), minValue, maxValue), [calendarDateValue, timeZone, calendar, minValue, maxValue]);\n let [startDate, setStartDate] = useState(() => {\n switch (selectionAlignment) {\n case 'start':\n return alignStart(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'end':\n return alignEnd(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'center':\n default:\n return alignCenter(defaultDate, visibleDuration, locale, minValue, maxValue);\n }\n });\n let [focusedDate, setFocusedDate] = useState(defaultDate);\n let [isFocused, setFocused] = useState(props.autoFocus || false);\n\n let endDate = useMemo(() => startDate.add(visibleDuration).subtract({days: 1}), [startDate, visibleDuration]);\n\n // Reset focused date and visible range when calendar changes.\n let lastCalendarIdentifier = useRef(calendar.identifier);\n useEffect(() => {\n if (calendar.identifier !== lastCalendarIdentifier.current) {\n let newFocusedDate = toCalendar(focusedDate, calendar);\n setStartDate(alignCenter(newFocusedDate, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(newFocusedDate);\n lastCalendarIdentifier.current = calendar.identifier;\n }\n }, [calendar, focusedDate, visibleDuration, locale, minValue, maxValue]);\n\n // Sets focus to a specific cell date\n function focusCell(date: CalendarDate) {\n // date = constrain(focusedDate, date, visibleDuration, locale, minValue, maxValue);\n date = constrainValue(date, minValue, maxValue);\n\n let next = startDate.add(visibleDuration);\n if (date.compare(startDate) < 0) {\n setStartDate(alignEnd(date, visibleDuration, locale, minValue, maxValue));\n } else if (date.compare(next) >= 0) {\n setStartDate(alignStart(date, visibleDuration, locale, minValue, maxValue));\n }\n\n setFocusedDate(date);\n }\n\n function setValue(newValue: CalendarDate) {\n if (!props.isDisabled && !props.isReadOnly) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, value?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (value && 'hour' in value) {\n setControlledValue(value.set(newValue));\n } else {\n setControlledValue(newValue);\n }\n }\n }\n\n return {\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly,\n value: calendarDateValue,\n setValue,\n visibleRange: {\n start: startDate,\n end: endDate\n },\n focusedDate,\n timeZone,\n setFocusedDate(date) {\n setFocusedDate(date);\n setFocused(true);\n },\n focusNextDay() {\n focusCell(focusedDate.add({days: 1}));\n },\n focusPreviousDay() {\n focusCell(focusedDate.subtract({days: 1}));\n },\n focusNextRow() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({weeks: 1}));\n }\n },\n focusPreviousRow() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({weeks: 1}));\n }\n },\n focusNextPage() {\n let start = startDate.add(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.add(visibleDuration), minValue, maxValue));\n },\n focusPreviousPage() {\n let start = startDate.subtract(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.subtract(visibleDuration), minValue, maxValue));\n },\n focusPageStart() {\n focusCell(startDate);\n },\n focusPageEnd() {\n focusCell(endDate);\n },\n focusNextSection() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.add({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({years: 1}));\n }\n },\n focusPreviousSection() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.subtract({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({years: 1}));\n }\n },\n selectFocusedDate() {\n setValue(focusedDate);\n },\n selectDate(date) {\n setValue(date);\n },\n isFocused,\n setFocused,\n isInvalid(date) {\n return isInvalid(date, minValue, maxValue);\n },\n isSelected(date) {\n return calendarDateValue != null && isSameDay(date, calendarDateValue) && !this.isCellDisabled(date);\n },\n isCellFocused(date) {\n return isFocused && focusedDate && isSameDay(date, focusedDate);\n },\n isCellDisabled(date) {\n return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue) || (props.isDateDisabled && props.isDateDisabled(date));\n },\n isPreviousVisibleRangeInvalid() {\n return isInvalid(startDate.subtract({days: 1}), minValue, maxValue);\n },\n isNextVisibleRangeInvalid() {\n return isInvalid(endDate.add({days: 1}), minValue, maxValue);\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {\n CalendarDate,\n DateDuration,\n maxDate,\n minDate,\n startOfMonth,\n startOfWeek,\n startOfYear,\n toCalendarDate\n} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\n\nexport function isInvalid(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n return (minValue != null && date.compare(minValue) < 0) ||\n (maxValue != null && date.compare(maxValue) > 0);\n}\n\nexport function alignCenter(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let halfDuration: DateDuration = {};\n for (let key in duration) {\n halfDuration[key] = Math.floor(duration[key] / 2);\n if (halfDuration[key] > 0 && duration[key] % 2 === 0) {\n halfDuration[key]--;\n }\n }\n\n let aligned = alignStart(date, duration, locale).subtract(halfDuration);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignStart(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n // align to the start of the largest unit\n let aligned = date;\n if (duration.years) {\n aligned = startOfYear(date);\n } else if (duration.months) {\n aligned = startOfMonth(date);\n } else if (duration.weeks) {\n aligned = startOfWeek(date, locale);\n }\n\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignEnd(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let d = {...duration};\n // subtract 1 from the smallest unit\n if (duration.days) {\n d.days--;\n } else if (duration.weeks) {\n d.weeks--;\n } else if (duration.months) {\n d.months--;\n } else if (duration.years) {\n d.years--;\n }\n\n let aligned = alignStart(date, duration, locale).subtract(d);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function constrainStart(\n date: CalendarDate,\n aligned: CalendarDate,\n duration: DateDuration,\n locale: string,\n minValue: DateValue,\n maxValue: DateValue) {\n if (minValue && date.compare(minValue) >= 0) {\n aligned = maxDate(\n aligned,\n alignStart(toCalendarDate(minValue), duration, locale)\n );\n }\n\n if (maxValue && date.compare(maxValue) <= 0) {\n aligned = minDate(\n aligned,\n alignEnd(toCalendarDate(maxValue), duration, locale)\n );\n }\n\n return aligned;\n}\n\nexport function constrainValue(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n if (minValue) {\n date = maxDate(date, toCalendarDate(minValue));\n }\n\n if (maxValue) {\n date = minDate(date, toCalendarDate(maxValue));\n }\n\n return date;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter} from './utils';\nimport {Calendar, CalendarDate, DateDuration, GregorianCalendar, toCalendar, toCalendarDate} from '@internationalized/date';\nimport {DateRange, DateValue} from '@react-types/calendar';\nimport {RangeCalendarProps} from '@react-types/calendar';\nimport {RangeCalendarState} from './types';\nimport {RangeValue} from '@react-types/shared';\nimport {useCalendarState} from './useCalendarState';\nimport {useControlledState} from '@react-stately/utils';\nimport {useState} from 'react';\n\ninterface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: DateDuration\n}\n\nexport function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState {\n let {value: valueProp, defaultValue, onChange, createCalendar, locale, visibleDuration = {months: 1}, minValue, maxValue, ...calendarProps} = props;\n let [value, setValue] = useControlledState<DateRange>(\n valueProp,\n defaultValue,\n onChange\n );\n\n let [anchorDate, setAnchorDate] = useState(null);\n let alignment: 'center' | 'start' = 'center';\n if (value && value.start && value.end) {\n let start = alignCenter(toCalendarDate(value.start), visibleDuration, locale, minValue, maxValue);\n let end = start.add(visibleDuration).subtract({days: 1});\n\n if (value.end.compare(end) > 0) {\n alignment = 'start';\n }\n }\n\n let calendar = useCalendarState({\n ...calendarProps,\n value: value && value.start,\n createCalendar,\n locale,\n visibleDuration,\n minValue,\n maxValue,\n selectionAlignment: alignment\n });\n\n let highlightedRange = anchorDate ? makeRange(anchorDate, calendar.focusedDate) : value && makeRange(value.start, value.end);\n let selectDate = (date: CalendarDate) => {\n if (props.isReadOnly) {\n return;\n }\n\n if (!anchorDate) {\n setAnchorDate(date);\n } else {\n let range = makeRange(anchorDate, date);\n setValue({\n start: convertValue(range.start, value?.start),\n end: convertValue(range.end, value?.end)\n });\n setAnchorDate(null);\n }\n };\n\n let [isDragging, setDragging] = useState(false);\n\n return {\n ...calendar,\n value,\n setValue,\n anchorDate,\n setAnchorDate,\n highlightedRange,\n selectFocusedDate() {\n selectDate(calendar.focusedDate);\n },\n selectDate,\n highlightDate(date) {\n if (anchorDate) {\n calendar.setFocusedDate(date);\n }\n },\n isSelected(date) {\n return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date);\n },\n isDragging,\n setDragging\n };\n}\n\nfunction makeRange(start: DateValue, end: DateValue): RangeValue<CalendarDate> {\n if (!start || !end) {\n return null;\n }\n\n if (end.compare(start) < 0) {\n [start, end] = [end, start];\n }\n\n return {start: toCalendarDate(start), end: toCalendarDate(end)};\n}\n\nfunction convertValue(newValue: CalendarDate, oldValue: DateValue) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, oldValue?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (oldValue && 'hour' in oldValue) {\n return oldValue.set(newValue);\n }\n\n return newValue;\n}\n"],"names":[],"version":3,"file":"module.js.map"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,61 +1,103 @@
|
|
|
1
|
-
import { CalendarDate, Calendar,
|
|
1
|
+
import { CalendarDate, Calendar, DateDuration } from "@internationalized/date";
|
|
2
2
|
import { DateValue, CalendarProps, RangeCalendarProps } from "@react-types/calendar";
|
|
3
3
|
import { RangeValue } from "@react-types/shared";
|
|
4
4
|
export interface CalendarStateBase {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
/** Whether the calendar is disabled. */
|
|
6
|
+
readonly isDisabled: boolean;
|
|
7
|
+
/** Whether the calendar is in a read only state. */
|
|
8
|
+
readonly isReadOnly: boolean;
|
|
9
|
+
/** The date range that is currently visible in the calendar. */
|
|
10
|
+
readonly visibleRange: RangeValue<CalendarDate>;
|
|
11
|
+
/** The time zone of the dates currently being displayed. */
|
|
12
|
+
readonly timeZone: string;
|
|
13
|
+
/** The currently focused date. */
|
|
14
|
+
readonly focusedDate: CalendarDate;
|
|
15
|
+
/** Sets the focused date. */
|
|
10
16
|
setFocusedDate(value: CalendarDate): void;
|
|
17
|
+
/** Moves focus to the next calendar date. */
|
|
11
18
|
focusNextDay(): void;
|
|
19
|
+
/** Moves focus to the previous calendar date. */
|
|
12
20
|
focusPreviousDay(): void;
|
|
21
|
+
/** Moves focus to the next row of dates, e.g. the next week. */
|
|
13
22
|
focusNextRow(): void;
|
|
23
|
+
/** Moves focus to the previous row of dates, e.g. the previous work. */
|
|
14
24
|
focusPreviousRow(): void;
|
|
25
|
+
/** Moves focus to the next page of dates, e.g. the next month if one month is visible. */
|
|
15
26
|
focusNextPage(): void;
|
|
27
|
+
/** Moves focus to the previous page of dates, e.g. the previous month if one month is visible. */
|
|
16
28
|
focusPreviousPage(): void;
|
|
29
|
+
/** Moves focus to the start of the current page of dates, e.g. the start of the first visible month. */
|
|
17
30
|
focusPageStart(): void;
|
|
31
|
+
/** Moves focus to the end of the current page of dates, e.g. the end of the last visible month. */
|
|
18
32
|
focusPageEnd(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Moves focus to the next larger section of dates based on what is currently displayed.
|
|
35
|
+
* If days are displayed, then moves to the next visible range. If weeks are displayed, then
|
|
36
|
+
* moves to the next month. If months or years are displayed, moves to the next year.
|
|
37
|
+
*/
|
|
19
38
|
focusNextSection(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Moves focus to the previous larger section of dates based on what is currently displayed.
|
|
41
|
+
* If days are displayed, then moves to the previous visible range. If weeks are displayed, then
|
|
42
|
+
* moves to the previous month. If months or years are displayed, moves to the previous year.
|
|
43
|
+
*/
|
|
20
44
|
focusPreviousSection(): void;
|
|
21
|
-
|
|
22
|
-
focusPreviousPage(): void;
|
|
45
|
+
/** Selects the currently focused date. */
|
|
23
46
|
selectFocusedDate(): void;
|
|
47
|
+
/** Selects the given date. */
|
|
24
48
|
selectDate(date: CalendarDate): void;
|
|
25
|
-
|
|
49
|
+
/** Whether focus is currently within the calendar. */
|
|
50
|
+
readonly isFocused: boolean;
|
|
51
|
+
/** Sets whether focus is currently within the calendar. */
|
|
26
52
|
setFocused(value: boolean): void;
|
|
53
|
+
/** Returns whether the given date is invalid according to the `minValue` and `maxValue` props. */
|
|
27
54
|
isInvalid(date: CalendarDate): boolean;
|
|
55
|
+
/** Returns whether the given date is currently selected. */
|
|
28
56
|
isSelected(date: CalendarDate): boolean;
|
|
57
|
+
/** Returns whether the given date is currently focused. */
|
|
29
58
|
isCellFocused(date: CalendarDate): boolean;
|
|
59
|
+
/** Returns whether the given date is disabled according to the `minValue, `maxValue`, and `isDisabled` props. */
|
|
30
60
|
isCellDisabled(date: CalendarDate): boolean;
|
|
61
|
+
/** Returns whether the previous visible date range is allowed to be selected according to the `minValue` prop. */
|
|
31
62
|
isPreviousVisibleRangeInvalid(): boolean;
|
|
63
|
+
/** Returns whether the next visible date range is allowed to be selected according to the `maxValue` prop. */
|
|
32
64
|
isNextVisibleRangeInvalid(): boolean;
|
|
33
65
|
}
|
|
34
66
|
export interface CalendarState extends CalendarStateBase {
|
|
35
|
-
|
|
67
|
+
/** The currently selected date. */
|
|
68
|
+
readonly value: CalendarDate;
|
|
69
|
+
/** Sets the currently selected date. */
|
|
36
70
|
setValue(value: CalendarDate): void;
|
|
37
71
|
}
|
|
38
72
|
export interface RangeCalendarState extends CalendarStateBase {
|
|
39
|
-
|
|
73
|
+
/** The currently selected date range. */
|
|
74
|
+
readonly value: RangeValue<DateValue>;
|
|
75
|
+
/** Sets the currently selected date range. */
|
|
40
76
|
setValue(value: RangeValue<DateValue>): void;
|
|
77
|
+
/** Highlights the given date during selection, e.g. by hovering or dragging. */
|
|
41
78
|
highlightDate(date: CalendarDate): void;
|
|
42
|
-
|
|
79
|
+
/** The current anchor date that the user clicked on to begin range selection. */
|
|
80
|
+
readonly anchorDate: CalendarDate | null;
|
|
81
|
+
/** Sets the anchor date that the user clicked on to begin range selection. */
|
|
43
82
|
setAnchorDate(date: CalendarDate | null): void;
|
|
44
|
-
|
|
45
|
-
|
|
83
|
+
/** The currently highlighted date range. */
|
|
84
|
+
readonly highlightedRange: RangeValue<CalendarDate>;
|
|
85
|
+
/** Whether the user is currently dragging over the calendar. */
|
|
86
|
+
readonly isDragging: boolean;
|
|
87
|
+
/** Sets whether the user is dragging over the calendar. */
|
|
46
88
|
setDragging(isDragging: boolean): void;
|
|
47
89
|
}
|
|
48
90
|
interface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {
|
|
49
91
|
locale: string;
|
|
50
92
|
createCalendar: (name: string) => Calendar;
|
|
51
|
-
visibleDuration?:
|
|
93
|
+
visibleDuration?: DateDuration;
|
|
52
94
|
selectionAlignment?: 'start' | 'center' | 'end';
|
|
53
95
|
}
|
|
54
96
|
export function useCalendarState<T extends DateValue>(props: CalendarStateOptions<T>): CalendarState;
|
|
55
97
|
interface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {
|
|
56
98
|
locale: string;
|
|
57
99
|
createCalendar: (name: string) => Calendar;
|
|
58
|
-
visibleDuration?:
|
|
100
|
+
visibleDuration?: DateDuration;
|
|
59
101
|
}
|
|
60
102
|
export function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState;
|
|
61
103
|
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;AAgBA;IACE,UAAU,EAAE,OAAO,CAAC;
|
|
1
|
+
{"mappings":"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","sources":["packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/types.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/utils.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/useCalendarState.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/useRangeCalendarState.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/index.ts","packages/@react-stately/calendar/src/index.ts"],"sourcesContent":[null,null,null,null,null,"/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport * from './types';\nexport * from './useCalendarState';\nexport * from './useRangeCalendarState';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-stately/calendar",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.1452+320c69908",
|
|
4
4
|
"description": "Spectrum UI components in React",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@babel/runtime": "^7.6.2",
|
|
21
|
-
"@internationalized/date": "3.0.0-nightly.
|
|
22
|
-
"@react-aria/i18n": "3.0.0-nightly.
|
|
23
|
-
"@react-stately/utils": "3.0.0-nightly.
|
|
24
|
-
"@react-types/calendar": "3.0.0-nightly.
|
|
25
|
-
"@react-types/datepicker": "3.0.0-nightly.
|
|
26
|
-
"@react-types/shared": "3.0.0-nightly.
|
|
21
|
+
"@internationalized/date": "3.0.0-nightly.3148+320c69908",
|
|
22
|
+
"@react-aria/i18n": "3.0.0-nightly.1452+320c69908",
|
|
23
|
+
"@react-stately/utils": "3.0.0-nightly.1452+320c69908",
|
|
24
|
+
"@react-types/calendar": "3.0.0-nightly.3148+320c69908",
|
|
25
|
+
"@react-types/datepicker": "3.0.0-nightly.3148+320c69908",
|
|
26
|
+
"@react-types/shared": "3.0.0-nightly.1452+320c69908",
|
|
27
27
|
"date-fns": "^1.30.1"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "320c69908b41be47a3abb2878d04f90384e54321"
|
|
36
36
|
}
|
package/src/types.ts
CHANGED
|
@@ -15,48 +15,90 @@ import {DateValue} from '@react-types/calendar';
|
|
|
15
15
|
import {RangeValue} from '@react-types/shared';
|
|
16
16
|
|
|
17
17
|
export interface CalendarStateBase {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
/** Whether the calendar is disabled. */
|
|
19
|
+
readonly isDisabled: boolean,
|
|
20
|
+
/** Whether the calendar is in a read only state. */
|
|
21
|
+
readonly isReadOnly: boolean,
|
|
22
|
+
/** The date range that is currently visible in the calendar. */
|
|
23
|
+
readonly visibleRange: RangeValue<CalendarDate>,
|
|
24
|
+
/** The time zone of the dates currently being displayed. */
|
|
25
|
+
readonly timeZone: string,
|
|
26
|
+
/** The currently focused date. */
|
|
27
|
+
readonly focusedDate: CalendarDate,
|
|
28
|
+
/** Sets the focused date. */
|
|
23
29
|
setFocusedDate(value: CalendarDate): void,
|
|
30
|
+
/** Moves focus to the next calendar date. */
|
|
24
31
|
focusNextDay(): void,
|
|
32
|
+
/** Moves focus to the previous calendar date. */
|
|
25
33
|
focusPreviousDay(): void,
|
|
34
|
+
/** Moves focus to the next row of dates, e.g. the next week. */
|
|
26
35
|
focusNextRow(): void,
|
|
36
|
+
/** Moves focus to the previous row of dates, e.g. the previous work. */
|
|
27
37
|
focusPreviousRow(): void,
|
|
38
|
+
/** Moves focus to the next page of dates, e.g. the next month if one month is visible. */
|
|
28
39
|
focusNextPage(): void,
|
|
40
|
+
/** Moves focus to the previous page of dates, e.g. the previous month if one month is visible. */
|
|
29
41
|
focusPreviousPage(): void,
|
|
42
|
+
/** Moves focus to the start of the current page of dates, e.g. the start of the first visible month. */
|
|
30
43
|
focusPageStart(): void,
|
|
44
|
+
/** Moves focus to the end of the current page of dates, e.g. the end of the last visible month. */
|
|
31
45
|
focusPageEnd(): void,
|
|
46
|
+
/**
|
|
47
|
+
* Moves focus to the next larger section of dates based on what is currently displayed.
|
|
48
|
+
* If days are displayed, then moves to the next visible range. If weeks are displayed, then
|
|
49
|
+
* moves to the next month. If months or years are displayed, moves to the next year.
|
|
50
|
+
*/
|
|
32
51
|
focusNextSection(): void,
|
|
52
|
+
/**
|
|
53
|
+
* Moves focus to the previous larger section of dates based on what is currently displayed.
|
|
54
|
+
* If days are displayed, then moves to the previous visible range. If weeks are displayed, then
|
|
55
|
+
* moves to the previous month. If months or years are displayed, moves to the previous year.
|
|
56
|
+
*/
|
|
33
57
|
focusPreviousSection(): void,
|
|
34
|
-
|
|
35
|
-
focusPreviousPage(): void,
|
|
58
|
+
/** Selects the currently focused date. */
|
|
36
59
|
selectFocusedDate(): void,
|
|
60
|
+
/** Selects the given date. */
|
|
37
61
|
selectDate(date: CalendarDate): void,
|
|
38
|
-
|
|
62
|
+
/** Whether focus is currently within the calendar. */
|
|
63
|
+
readonly isFocused: boolean,
|
|
64
|
+
/** Sets whether focus is currently within the calendar. */
|
|
39
65
|
setFocused(value: boolean): void,
|
|
66
|
+
/** Returns whether the given date is invalid according to the `minValue` and `maxValue` props. */
|
|
40
67
|
isInvalid(date: CalendarDate): boolean,
|
|
68
|
+
/** Returns whether the given date is currently selected. */
|
|
41
69
|
isSelected(date: CalendarDate): boolean,
|
|
70
|
+
/** Returns whether the given date is currently focused. */
|
|
42
71
|
isCellFocused(date: CalendarDate): boolean,
|
|
72
|
+
/** Returns whether the given date is disabled according to the `minValue, `maxValue`, and `isDisabled` props. */
|
|
43
73
|
isCellDisabled(date: CalendarDate): boolean,
|
|
74
|
+
/** Returns whether the previous visible date range is allowed to be selected according to the `minValue` prop. */
|
|
44
75
|
isPreviousVisibleRangeInvalid(): boolean,
|
|
76
|
+
/** Returns whether the next visible date range is allowed to be selected according to the `maxValue` prop. */
|
|
45
77
|
isNextVisibleRangeInvalid(): boolean
|
|
46
78
|
}
|
|
47
79
|
|
|
48
80
|
export interface CalendarState extends CalendarStateBase {
|
|
49
|
-
|
|
81
|
+
/** The currently selected date. */
|
|
82
|
+
readonly value: CalendarDate,
|
|
83
|
+
/** Sets the currently selected date. */
|
|
50
84
|
setValue(value: CalendarDate): void
|
|
51
85
|
}
|
|
52
86
|
|
|
53
87
|
export interface RangeCalendarState extends CalendarStateBase {
|
|
54
|
-
|
|
88
|
+
/** The currently selected date range. */
|
|
89
|
+
readonly value: RangeValue<DateValue>,
|
|
90
|
+
/** Sets the currently selected date range. */
|
|
55
91
|
setValue(value: RangeValue<DateValue>): void,
|
|
92
|
+
/** Highlights the given date during selection, e.g. by hovering or dragging. */
|
|
56
93
|
highlightDate(date: CalendarDate): void,
|
|
57
|
-
|
|
94
|
+
/** The current anchor date that the user clicked on to begin range selection. */
|
|
95
|
+
readonly anchorDate: CalendarDate | null,
|
|
96
|
+
/** Sets the anchor date that the user clicked on to begin range selection. */
|
|
58
97
|
setAnchorDate(date: CalendarDate | null): void,
|
|
59
|
-
|
|
60
|
-
|
|
98
|
+
/** The currently highlighted date range. */
|
|
99
|
+
readonly highlightedRange: RangeValue<CalendarDate>,
|
|
100
|
+
/** Whether the user is currently dragging over the calendar. */
|
|
101
|
+
readonly isDragging: boolean,
|
|
102
|
+
/** Sets whether the user is dragging over the calendar. */
|
|
61
103
|
setDragging(isDragging: boolean): void
|
|
62
104
|
}
|
package/src/useCalendarState.ts
CHANGED
|
@@ -14,7 +14,7 @@ import {alignCenter, alignEnd, alignStart, constrainStart, constrainValue, isInv
|
|
|
14
14
|
import {
|
|
15
15
|
Calendar,
|
|
16
16
|
CalendarDate,
|
|
17
|
-
|
|
17
|
+
DateDuration,
|
|
18
18
|
GregorianCalendar,
|
|
19
19
|
isSameDay,
|
|
20
20
|
toCalendar,
|
|
@@ -30,7 +30,7 @@ import {useEffect, useMemo, useRef, useState} from 'react';
|
|
|
30
30
|
interface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {
|
|
31
31
|
locale: string,
|
|
32
32
|
createCalendar: (name: string) => Calendar,
|
|
33
|
-
visibleDuration?:
|
|
33
|
+
visibleDuration?: DateDuration,
|
|
34
34
|
selectionAlignment?: 'start' | 'center' | 'end'
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -190,13 +190,13 @@ export function useCalendarState<T extends DateValue>(props: CalendarStateOption
|
|
|
190
190
|
return isInvalid(date, minValue, maxValue);
|
|
191
191
|
},
|
|
192
192
|
isSelected(date) {
|
|
193
|
-
return calendarDateValue != null && isSameDay(date, calendarDateValue);
|
|
193
|
+
return calendarDateValue != null && isSameDay(date, calendarDateValue) && !this.isCellDisabled(date);
|
|
194
194
|
},
|
|
195
195
|
isCellFocused(date) {
|
|
196
196
|
return isFocused && focusedDate && isSameDay(date, focusedDate);
|
|
197
197
|
},
|
|
198
198
|
isCellDisabled(date) {
|
|
199
|
-
return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue);
|
|
199
|
+
return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue) || (props.isDateDisabled && props.isDateDisabled(date));
|
|
200
200
|
},
|
|
201
201
|
isPreviousVisibleRangeInvalid() {
|
|
202
202
|
return isInvalid(startDate.subtract({days: 1}), minValue, maxValue);
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import {alignCenter} from './utils';
|
|
14
|
-
import {Calendar, CalendarDate,
|
|
14
|
+
import {Calendar, CalendarDate, DateDuration, GregorianCalendar, toCalendar, toCalendarDate} from '@internationalized/date';
|
|
15
15
|
import {DateRange, DateValue} from '@react-types/calendar';
|
|
16
16
|
import {RangeCalendarProps} from '@react-types/calendar';
|
|
17
17
|
import {RangeCalendarState} from './types';
|
|
@@ -23,7 +23,7 @@ import {useState} from 'react';
|
|
|
23
23
|
interface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {
|
|
24
24
|
locale: string,
|
|
25
25
|
createCalendar: (name: string) => Calendar,
|
|
26
|
-
visibleDuration?:
|
|
26
|
+
visibleDuration?: DateDuration
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState {
|
|
@@ -93,7 +93,7 @@ export function useRangeCalendarState<T extends DateValue>(props: RangeCalendarS
|
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
95
|
isSelected(date) {
|
|
96
|
-
return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0;
|
|
96
|
+
return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date);
|
|
97
97
|
},
|
|
98
98
|
isDragging,
|
|
99
99
|
setDragging
|
package/src/utils.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import {
|
|
13
13
|
CalendarDate,
|
|
14
|
-
|
|
14
|
+
DateDuration,
|
|
15
15
|
maxDate,
|
|
16
16
|
minDate,
|
|
17
17
|
startOfMonth,
|
|
@@ -26,8 +26,8 @@ export function isInvalid(date: CalendarDate, minValue: DateValue, maxValue: Dat
|
|
|
26
26
|
(maxValue != null && date.compare(maxValue) > 0);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export function alignCenter(date: CalendarDate, duration:
|
|
30
|
-
let halfDuration:
|
|
29
|
+
export function alignCenter(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {
|
|
30
|
+
let halfDuration: DateDuration = {};
|
|
31
31
|
for (let key in duration) {
|
|
32
32
|
halfDuration[key] = Math.floor(duration[key] / 2);
|
|
33
33
|
if (halfDuration[key] > 0 && duration[key] % 2 === 0) {
|
|
@@ -39,7 +39,7 @@ export function alignCenter(date: CalendarDate, duration: Duration, locale: stri
|
|
|
39
39
|
return constrainStart(date, aligned, duration, locale, minValue, maxValue);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
export function alignStart(date: CalendarDate, duration:
|
|
42
|
+
export function alignStart(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {
|
|
43
43
|
// align to the start of the largest unit
|
|
44
44
|
let aligned = date;
|
|
45
45
|
if (duration.years) {
|
|
@@ -53,7 +53,7 @@ export function alignStart(date: CalendarDate, duration: Duration, locale: strin
|
|
|
53
53
|
return constrainStart(date, aligned, duration, locale, minValue, maxValue);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
export function alignEnd(date: CalendarDate, duration:
|
|
56
|
+
export function alignEnd(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {
|
|
57
57
|
let d = {...duration};
|
|
58
58
|
// subtract 1 from the smallest unit
|
|
59
59
|
if (duration.days) {
|
|
@@ -73,7 +73,7 @@ export function alignEnd(date: CalendarDate, duration: Duration, locale: string,
|
|
|
73
73
|
export function constrainStart(
|
|
74
74
|
date: CalendarDate,
|
|
75
75
|
aligned: CalendarDate,
|
|
76
|
-
duration:
|
|
76
|
+
duration: DateDuration,
|
|
77
77
|
locale: string,
|
|
78
78
|
minValue: DateValue,
|
|
79
79
|
maxValue: DateValue) {
|