# Calendar Компоненты календарей для выбора даты или диапазона дат. ## Calendar Props (свойства) для компонента Calendar: [{"name":"value","type":{"name":"(Date & CalendarValueType) | [DateType, DateType]"}},{"name":"isRange","type":{"name":"boolean"}},{"name":"isDouble","type":{"name":"boolean"}},{"name":"onChangeValue","type":{"name":"((value: Date, dateInfo?: DateInfo | undefined) => void) | ((values: [DateType, DateType], dateInfo?: DateInfo | undefined) => void)"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}},{"name":"size","type":{"name":"string"}},{"name":"view","type":{"name":"string"}},{"name":"onChangeStartOfRange","type":{"name":"((value: Date, dateInfo?: DateInfo) => void)"}}] Представляет собой универсальный компонент `Calendar` , в котором можно настроить любое доступное представление: базовый, двойной, базовый с диапазоном, двойной с диапазоном. ```tsx import React from 'react'; import { Calendar } from '@salutejs/plasma-web'; export function App() { const isRange = false; const isDouble = false; const min = new Date(2022, 4, 0); const max = new Date(2022, 6, 15); const date = { day: 6, monthIndex: 5, year: 2022, } const [value, setValue] = React.useState(undefined); const [valueRange, setValueRange] = React.useState([undefined]); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); const handleOnRangeChange = React.useCallback((newValue) => { setValueRange(newValue); }, []); const baseEvents = [ { date: new Date(2022, 5, 6), }, { date: new Date(2022, 5, 10), color: 'red', }, { date: new Date(2022, 5, 10), color: 'green', }, { date: new Date(2022, 5, 10), color: 'blue', }, ]; const eventsRange = Array.from(Array(10),((_, day) => ({ date: new Date(2022, 5, 15 + day), color: 'purple', }))); const disabledDays = Array.from(Array(5),((_, day) => ({ date: new Date(2022, 5, 11 + day), }))); return (
); } ``` # Calendar Компоненты календарей для выбора даты или диапазона дат. ## Calendar Props (свойства) для компонента Calendar: [{"name":"value","type":{"name":"(Date & CalendarValueType) | [DateType, DateType]"}},{"name":"isRange","type":{"name":"boolean"}},{"name":"isDouble","type":{"name":"boolean"}},{"name":"onChangeValue","type":{"name":"((value: Date, dateInfo?: DateInfo | undefined) => void) | ((values: [DateType, DateType], dateInfo?: DateInfo | undefined) => void)"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}},{"name":"size","type":{"name":"string"}},{"name":"view","type":{"name":"string"}},{"name":"onChangeStartOfRange","type":{"name":"((value: Date, dateInfo?: DateInfo) => void)"}}] Представляет собой универсальный компонент `Calendar` , в котором можно настроить любое доступное представление: базовый, двойной, базовый с диапазоном, двойной с диапазоном. ```tsx import React from 'react'; import { Calendar } from '@salutejs/plasma-web'; export function App() { const isRange = false; const isDouble = false; const min = new Date(2022, 4, 0); const max = new Date(2022, 6, 15); const date = { day: 6, monthIndex: 5, year: 2022, } const [value, setValue] = React.useState(undefined); const [valueRange, setValueRange] = React.useState([undefined]); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); const handleOnRangeChange = React.useCallback((newValue) => { setValueRange(newValue); }, []); const baseEvents = [ { date: new Date(2022, 5, 6), }, { date: new Date(2022, 5, 10), color: 'red', }, { date: new Date(2022, 5, 10), color: 'green', }, { date: new Date(2022, 5, 10), color: 'blue', }, ]; const eventsRange = Array.from(Array(10),((_, day) => ({ date: new Date(2022, 5, 15 + day), color: 'purple', }))); const disabledDays = Array.from(Array(5),((_, day) => ({ date: new Date(2022, 5, 11 + day), }))); return (
); } ``` Props (свойства) для компонента CalendarBase: [{"name":"view","type":{"name":"enum","raw":"\"default\"","value":[{"value":"\"default\""}]}},{"name":"size","type":{"name":"enum","raw":"\"m\" | \"s\" | \"l\" | \"xs\"","value":[{"value":"\"m\""},{"value":"\"s\""},{"value":"\"l\""},{"value":"\"xs\""}]}},{"name":"value","type":{"name":"CalendarValueType"}},{"name":"onChangeValue","type":{"name":"(value: Date, dateInfo?: DateInfo | undefined) => void"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}}] ```tsx import React from 'react'; import { CalendarBase } from '@salutejs/plasma-web'; export function App() { const min = new Date(2022, 4, 0); const max = new Date(2022, 7, 15); const [value, setValue] = React.useState(new Date(2022, 5, 6)); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` # Calendar Компоненты календарей для выбора даты или диапазона дат. ## Calendar Props (свойства) для компонента Calendar: [{"name":"value","type":{"name":"(Date & CalendarValueType) | [DateType, DateType]"}},{"name":"isRange","type":{"name":"boolean"}},{"name":"isDouble","type":{"name":"boolean"}},{"name":"onChangeValue","type":{"name":"((value: Date, dateInfo?: DateInfo | undefined) => void) | ((values: [DateType, DateType], dateInfo?: DateInfo | undefined) => void)"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}},{"name":"size","type":{"name":"string"}},{"name":"view","type":{"name":"string"}},{"name":"onChangeStartOfRange","type":{"name":"((value: Date, dateInfo?: DateInfo) => void)"}}] Представляет собой универсальный компонент `Calendar` , в котором можно настроить любое доступное представление: базовый, двойной, базовый с диапазоном, двойной с диапазоном. ```tsx import React from 'react'; import { Calendar } from '@salutejs/plasma-web'; export function App() { const isRange = false; const isDouble = false; const min = new Date(2022, 4, 0); const max = new Date(2022, 6, 15); const date = { day: 6, monthIndex: 5, year: 2022, } const [value, setValue] = React.useState(undefined); const [valueRange, setValueRange] = React.useState([undefined]); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); const handleOnRangeChange = React.useCallback((newValue) => { setValueRange(newValue); }, []); const baseEvents = [ { date: new Date(2022, 5, 6), }, { date: new Date(2022, 5, 10), color: 'red', }, { date: new Date(2022, 5, 10), color: 'green', }, { date: new Date(2022, 5, 10), color: 'blue', }, ]; const eventsRange = Array.from(Array(10),((_, day) => ({ date: new Date(2022, 5, 15 + day), color: 'purple', }))); const disabledDays = Array.from(Array(5),((_, day) => ({ date: new Date(2022, 5, 11 + day), }))); return (
); } ``` Props (свойства) для компонента CalendarBase: [{"name":"view","type":{"name":"enum","raw":"\"default\"","value":[{"value":"\"default\""}]}},{"name":"size","type":{"name":"enum","raw":"\"m\" | \"s\" | \"l\" | \"xs\"","value":[{"value":"\"m\""},{"value":"\"s\""},{"value":"\"l\""},{"value":"\"xs\""}]}},{"name":"value","type":{"name":"CalendarValueType"}},{"name":"onChangeValue","type":{"name":"(value: Date, dateInfo?: DateInfo | undefined) => void"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}}] ```tsx import React from 'react'; import { CalendarBase } from '@salutejs/plasma-web'; export function App() { const min = new Date(2022, 4, 0); const max = new Date(2022, 7, 15); const [value, setValue] = React.useState(new Date(2022, 5, 6)); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` Props (свойства) для компонента CalendarDouble: [{"name":"view","type":{"name":"enum","raw":"\"default\"","value":[{"value":"\"default\""}]}},{"name":"size","type":{"name":"enum","raw":"\"m\" | \"s\" | \"l\" | \"xs\"","value":[{"value":"\"m\""},{"value":"\"s\""},{"value":"\"l\""},{"value":"\"xs\""}]}},{"name":"value","type":{"name":"CalendarValueType"}},{"name":"onChangeValue","type":{"name":"(value: Date, dateInfo?: DateInfo | undefined) => void"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}}] ```tsx import React from 'react'; import { CalendarDouble } from '@salutejs/plasma-web'; export function App() { const min = new Date(2022, 4, 0); const max = new Date(2022, 7, 15); const [value, setValue] = React.useState(new Date(2022, 5, 6)); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` # Calendar Компоненты календарей для выбора даты или диапазона дат. ## Calendar Props (свойства) для компонента Calendar: [{"name":"value","type":{"name":"(Date & CalendarValueType) | [DateType, DateType]"}},{"name":"isRange","type":{"name":"boolean"}},{"name":"isDouble","type":{"name":"boolean"}},{"name":"onChangeValue","type":{"name":"((value: Date, dateInfo?: DateInfo | undefined) => void) | ((values: [DateType, DateType], dateInfo?: DateInfo | undefined) => void)"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}},{"name":"size","type":{"name":"string"}},{"name":"view","type":{"name":"string"}},{"name":"onChangeStartOfRange","type":{"name":"((value: Date, dateInfo?: DateInfo) => void)"}}] Представляет собой универсальный компонент `Calendar` , в котором можно настроить любое доступное представление: базовый, двойной, базовый с диапазоном, двойной с диапазоном. ```tsx import React from 'react'; import { Calendar } from '@salutejs/plasma-web'; export function App() { const isRange = false; const isDouble = false; const min = new Date(2022, 4, 0); const max = new Date(2022, 6, 15); const date = { day: 6, monthIndex: 5, year: 2022, } const [value, setValue] = React.useState(undefined); const [valueRange, setValueRange] = React.useState([undefined]); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); const handleOnRangeChange = React.useCallback((newValue) => { setValueRange(newValue); }, []); const baseEvents = [ { date: new Date(2022, 5, 6), }, { date: new Date(2022, 5, 10), color: 'red', }, { date: new Date(2022, 5, 10), color: 'green', }, { date: new Date(2022, 5, 10), color: 'blue', }, ]; const eventsRange = Array.from(Array(10),((_, day) => ({ date: new Date(2022, 5, 15 + day), color: 'purple', }))); const disabledDays = Array.from(Array(5),((_, day) => ({ date: new Date(2022, 5, 11 + day), }))); return (
); } ``` Props (свойства) для компонента CalendarBase: [{"name":"view","type":{"name":"enum","raw":"\"default\"","value":[{"value":"\"default\""}]}},{"name":"size","type":{"name":"enum","raw":"\"m\" | \"s\" | \"l\" | \"xs\"","value":[{"value":"\"m\""},{"value":"\"s\""},{"value":"\"l\""},{"value":"\"xs\""}]}},{"name":"value","type":{"name":"CalendarValueType"}},{"name":"onChangeValue","type":{"name":"(value: Date, dateInfo?: DateInfo | undefined) => void"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}}] ```tsx import React from 'react'; import { CalendarBase } from '@salutejs/plasma-web'; export function App() { const min = new Date(2022, 4, 0); const max = new Date(2022, 7, 15); const [value, setValue] = React.useState(new Date(2022, 5, 6)); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` Props (свойства) для компонента CalendarDouble: [{"name":"view","type":{"name":"enum","raw":"\"default\"","value":[{"value":"\"default\""}]}},{"name":"size","type":{"name":"enum","raw":"\"m\" | \"s\" | \"l\" | \"xs\"","value":[{"value":"\"m\""},{"value":"\"s\""},{"value":"\"l\""},{"value":"\"xs\""}]}},{"name":"value","type":{"name":"CalendarValueType"}},{"name":"onChangeValue","type":{"name":"(value: Date, dateInfo?: DateInfo | undefined) => void"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}}] ```tsx import React from 'react'; import { CalendarDouble } from '@salutejs/plasma-web'; export function App() { const min = new Date(2022, 4, 0); const max = new Date(2022, 7, 15); const [value, setValue] = React.useState(new Date(2022, 5, 6)); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` Props (свойства) для компонента CalendarBaseRange: [{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"view","type":{"name":"string"}},{"name":"date","type":{"name":"DateObject"}},{"name":"size","type":{"name":"string"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}},{"name":"value","type":{"name":"[DateType, DateType]"}},{"name":"onChangeValue","type":{"name":"(values: [DateType, DateType], dateInfo?: DateInfo | undefined) => void"}},{"name":"onChangeStartOfRange","type":{"name":"((value: Date, dateInfo?: DateInfo) => void)"}}] ```tsx import React from 'react'; import { CalendarBaseRange } from '@salutejs/plasma-web'; export function App() { const min = new Date(2022, 4, 0); const max = new Date(2022, 7, 15); const [value, setValue] = React.useState([new Date(2022, 5, 6), new Date(2022, 5, 16)]); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` # Calendar Компоненты календарей для выбора даты или диапазона дат. ## Calendar Props (свойства) для компонента Calendar: [{"name":"value","type":{"name":"(Date & CalendarValueType) | [DateType, DateType]"}},{"name":"isRange","type":{"name":"boolean"}},{"name":"isDouble","type":{"name":"boolean"}},{"name":"onChangeValue","type":{"name":"((value: Date, dateInfo?: DateInfo | undefined) => void) | ((values: [DateType, DateType], dateInfo?: DateInfo | undefined) => void)"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}},{"name":"size","type":{"name":"string"}},{"name":"view","type":{"name":"string"}},{"name":"onChangeStartOfRange","type":{"name":"((value: Date, dateInfo?: DateInfo) => void)"}}] Представляет собой универсальный компонент `Calendar` , в котором можно настроить любое доступное представление: базовый, двойной, базовый с диапазоном, двойной с диапазоном. ```tsx import React from 'react'; import { Calendar } from '@salutejs/plasma-web'; export function App() { const isRange = false; const isDouble = false; const min = new Date(2022, 4, 0); const max = new Date(2022, 6, 15); const date = { day: 6, monthIndex: 5, year: 2022, } const [value, setValue] = React.useState(undefined); const [valueRange, setValueRange] = React.useState([undefined]); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); const handleOnRangeChange = React.useCallback((newValue) => { setValueRange(newValue); }, []); const baseEvents = [ { date: new Date(2022, 5, 6), }, { date: new Date(2022, 5, 10), color: 'red', }, { date: new Date(2022, 5, 10), color: 'green', }, { date: new Date(2022, 5, 10), color: 'blue', }, ]; const eventsRange = Array.from(Array(10),((_, day) => ({ date: new Date(2022, 5, 15 + day), color: 'purple', }))); const disabledDays = Array.from(Array(5),((_, day) => ({ date: new Date(2022, 5, 11 + day), }))); return (
); } ``` Props (свойства) для компонента CalendarBase: [{"name":"view","type":{"name":"enum","raw":"\"default\"","value":[{"value":"\"default\""}]}},{"name":"size","type":{"name":"enum","raw":"\"m\" | \"s\" | \"l\" | \"xs\"","value":[{"value":"\"m\""},{"value":"\"s\""},{"value":"\"l\""},{"value":"\"xs\""}]}},{"name":"value","type":{"name":"CalendarValueType"}},{"name":"onChangeValue","type":{"name":"(value: Date, dateInfo?: DateInfo | undefined) => void"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}}] ```tsx import React from 'react'; import { CalendarBase } from '@salutejs/plasma-web'; export function App() { const min = new Date(2022, 4, 0); const max = new Date(2022, 7, 15); const [value, setValue] = React.useState(new Date(2022, 5, 6)); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` Props (свойства) для компонента CalendarDouble: [{"name":"view","type":{"name":"enum","raw":"\"default\"","value":[{"value":"\"default\""}]}},{"name":"size","type":{"name":"enum","raw":"\"m\" | \"s\" | \"l\" | \"xs\"","value":[{"value":"\"m\""},{"value":"\"s\""},{"value":"\"l\""},{"value":"\"xs\""}]}},{"name":"value","type":{"name":"CalendarValueType"}},{"name":"onChangeValue","type":{"name":"(value: Date, dateInfo?: DateInfo | undefined) => void"}},{"name":"date","type":{"name":"DateObject"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}}] ```tsx import React from 'react'; import { CalendarDouble } from '@salutejs/plasma-web'; export function App() { const min = new Date(2022, 4, 0); const max = new Date(2022, 7, 15); const [value, setValue] = React.useState(new Date(2022, 5, 6)); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` Props (свойства) для компонента CalendarBaseRange: [{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"view","type":{"name":"string"}},{"name":"date","type":{"name":"DateObject"}},{"name":"size","type":{"name":"string"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}},{"name":"value","type":{"name":"[DateType, DateType]"}},{"name":"onChangeValue","type":{"name":"(values: [DateType, DateType], dateInfo?: DateInfo | undefined) => void"}},{"name":"onChangeStartOfRange","type":{"name":"((value: Date, dateInfo?: DateInfo) => void)"}}] ```tsx import React from 'react'; import { CalendarBaseRange } from '@salutejs/plasma-web'; export function App() { const min = new Date(2022, 4, 0); const max = new Date(2022, 7, 15); const [value, setValue] = React.useState([new Date(2022, 5, 6), new Date(2022, 5, 16)]); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` Props (свойства) для компонента CalendarDoubleRange: [{"name":"type","type":{"name":"enum","raw":"\"Days\" | \"Months\" | \"Years\" | \"Quarters\"","value":[{"value":"\"Days\""},{"value":"\"Months\""},{"value":"\"Years\""},{"value":"\"Quarters\""}]}},{"name":"view","type":{"name":"string"}},{"name":"date","type":{"name":"DateObject"}},{"name":"size","type":{"name":"string"}},{"name":"min","type":{"name":"Date"}},{"name":"max","type":{"name":"Date"}},{"name":"renderFromDate","type":{"name":"Date"}},{"name":"includeEdgeDates","type":{"name":"boolean"}},{"name":"eventList","type":{"name":"EventDay[]"}},{"name":"disabledList","type":{"name":"DisabledDay[]"}},{"name":"eventMonthList","type":{"name":"EventDay[]"}},{"name":"disabledMonthList","type":{"name":"DisabledDay[]"}},{"name":"eventQuarterList","type":{"name":"EventDay[]"}},{"name":"disabledQuarterList","type":{"name":"DisabledDay[]"}},{"name":"eventYearList","type":{"name":"EventDay[]"}},{"name":"disabledYearList","type":{"name":"DisabledDay[]"}},{"name":"locale","type":{"name":"enum","raw":"Locales","value":[{"value":"\"ru\""},{"value":"\"en\""}]}},{"name":"stretched","type":{"name":"boolean"}},{"name":"value","type":{"name":"[DateType, DateType]"}},{"name":"onChangeValue","type":{"name":"(values: [DateType, DateType], dateInfo?: DateInfo | undefined) => void"}},{"name":"onChangeStartOfRange","type":{"name":"((value: Date, dateInfo?: DateInfo) => void)"}}] ```tsx import React from 'react'; import { CalendarDoubleRange } from '@salutejs/plasma-web'; export function App() { const min = new Date(2022, 4, 0); const max = new Date(2022, 7, 15); const [value, setValue] = React.useState([new Date(2022, 5, 6), new Date(2022, 6, 16)]); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` ## Размер календаря. Размер календаря задается с помощью свойства `size` . ```tsx import React from 'react'; import { CalendarBase } from '@salutejs/plasma-web'; export function App() { const [value, setValue] = React.useState(undefined); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` ## Сетка выбора даты. Конечное отображение сетки календаря задается с помощью свойства `type` . ```tsx import React from 'react'; import { CalendarBase } from '@salutejs/plasma-web'; export function App() { const [value, setValue] = React.useState(undefined); const handleOnChange = React.useCallback((newValue) => { setValue(newValue); }, []); return (
); } ``` ## Выбор языка. Для выбора языка необходимо указать свойство `locale: 'ru' | 'en'` . По-умолчанию используется `ru` . ```tsx import React from 'react'; import { CalendarBase } from '@salutejs/plasma-web'; export function App() { return (
); } ```