Range Calendar

size
mode
disabled
readOnly
minValue
maxValue
focusedValue
import {RangeCalendar} from '@gravity-ui/date-components';

RangeCalendar es un componente de interfaz de usuario potente, flexible y fácil de usar diseñado para seleccionar un rango de fechas. Creado con React, combina la funcionalidad de un calendario y un selector de rango de fechas, lo que lo convierte en una opción ideal para las aplicaciones que requieren que los usuarios ingresen una fecha de inicio y finalización. Se puede controlar si se establece la value propiedad. O puede estar descontrolado si no establece ningún valor, pero en este caso puede administrar el estado inicial con una propiedad defaultValue opcional. El componente no está controlado de forma predeterminada.

Adición útil

Para establecer las fechas en el formato correcto, es posible que deba incluir ayudantes adicionales de la biblioteca de Date Utils.

import {dateTimeParse, dateTime} from '@gravity-ui/date-utils';

[!NOTE] Row with "Selected range: ..." is not a part of the component. It was added to examples only for clarity.

Tamaño

Para controlar el tamaño del RangeCalendar uso de la size propiedad. El tamaño predeterminado es m.

Selected range:
 
Selected range:
 
Selected range:
 
<RangeCalendar size="m" />
<RangeCalendar size="l" />
<RangeCalendar size="xl" />

Valor

Valor mínimo y máximo

La minValue propiedad permite especificar la fecha y la hora más tempranas que puede introducir el usuario. Por el contrario, la maxValue propiedad especifica la fecha y la hora más recientes que se pueden introducir. Todos los demás valores se deshabilitarán para el usuario.

Selected range:
 
<RangeCalendar minValue={dateTimeParse('01.01.2024')} maxValue={dateTimeParse('01.01.2025')} />

Modo

Define el intervalo de tiempo que RangeCalendar debe mostrarse. Con mode usted puede elegirlo de forma controlada. De forma descontrolada, no es necesario especificar ningún valor. También puedes configurar el modo inicial de forma descontrolada con defaultMode prop.

days- modo predeterminado para RangeCalendar. Muestra los días del mes.

months- muestra los meses del año

quarters- muestra trimestres por años (no está disponible como valor en defaultMode)

years- muestra varios años para seleccionar

Puedes limitar los modos habilitados mediante el uso de prop. modes

Selected range:
 
<RangeCalendar defaultMode="months"/>

Estados

Discapacitado

El estado en el RangeCalendar que no desea que el usuario pueda interactuar con el componente.

Selected range:
06/05/2025 - 06/09/2025
<RangeCalendar
  disabled={true}
  defaultValue={{start: dateTime().add({days: 2}), end: dateTime().subtract({days: 2})}}
/>

Solo lectura

readOnly es un atributo booleano que, cuando se establece en verdadero, hace que el RangeCalendar componente sea inmutable para el usuario. Esto significa que, si bien la entrada mostrará su valor actual, los usuarios no podrán cambiarla.

Selected range:
06/05/2025 - 06/09/2025
<RangeCalendar
  readOnly={true}
  defaultValue={{start: dateTime().add({days: 2}), end: dateTime().subtract({days: 2})}}
/>

Valor enfocado

Permite seleccionar la fecha en la que se centra la RangeCalendar vista. Si necesita controlarlo, debe usar focusedValue utilería. Puede establecer el valor de enfoque inicial para un componente no controlado con un accesorio defaultFocusedValue opcional.

Selected range:
06/05/2025 - 06/09/2025
<RangeCalendar
  defaultFocusedValue={dateTimeParse('01.01.2020')} defaultValue={{start: dateTime().add({days: 2}), end: dateTime().subtract({days: 2})}}
/>

Zona horaria

timeZone es la propiedad para establecer la zona horaria del valor de la entrada. Más información sobre las zonas horarias

Propiedades

NombreDescripciónTipoPredeterminado
aria, descrita porEl aria-describedby atributo del controlstring
detalles de ariaEl aria-details atributo del controlstring
etiqueta ariaEl aria-label atributo del controlstring
aria - etiquetada porEl aria-labelledby atributo del controlstring
autoFocusEl autofocus atributo del controlboolean
classNameEl nombre de la clase contenedora del controlstring
defaultFocusedValueLa fecha en la que se centra cuando el calendario se monta por primera vez (sin control)DateTime
defaultModeModo inicial para mostrar en el calendariodays years
defaultValueEstablece el valor inicial del componente no controlado.RangeValue<DateTime>
discapacitadoIndica que el usuario no puede interactuar con el controlbooleanfalse
focusedValueEstablezca la vista predeterminada del componente no controlado que incluye este valorDateTime null
identificaciónEl id atributo del controlstring
isDateUnavailableLlamada que se solicita para cada fecha del calendario. Si se devuelve verdadero, significa que la fecha no está disponible.((date: DateTime) => boolean)
isWeekendLlamada que se solicita para cada fecha del calendario. Si vuelve a ser cierto, entonces la fecha es fin de semana.((date: DateTime) => boolean)
maxValueLa fecha máxima permitida que puede seleccionar un usuario.DateTime
minValueLa fecha mínima permitida que un usuario puede seleccionar.DateTime
modoDefine el intervalo de tiempo que RangeCalendar debe mostrarse de forma controlada.days years
modosModos disponibles para el usuarioParcial<Record<RangeCalendarLayout, boolean>>{days: true, months: true, quarters: false, years: true }
onBlurSe dispara cuando el control pierde el foco. Proporciona un evento de enfoque como argumento de devolución de llamada(e: focusEvent<Element, Element> () => vacío)
onFocusSe dispara cuando el control se enfoca. Proporciona un evento de enfoque como argumento de devolución de llamada(e: focusEvent<Element, Element> () => vacío)
onFocusUpdateSe activa cuando cambia la fecha de enfoque del control.((date: DateTime) => void)
onUpdateSe activa cuando se cambia el valor.((value: DateTime) => void
onUpdateModeSe dispara cuando se cambia el modo.(valor: 'días'| 'meses'| 'trimestre'| «años») => nulo
readOnlySi el valor del calendario es inmutable.booleanfalse
tamañoEl tamaño del control"m" "xl""m"
estiloEstablece el estilo en línea del elemento.CSSProperties
timeZoneEstablece la zona horaria. Más información sobre las zonas horariasstring
valorEl valor del controlRangeValuenull