@iobroker/adapter-react-v5 7.4.1 → 7.4.2
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/README.md +2 -2
- package/build/Components/IconDeviceType.js +1 -1
- package/build/Components/IconDeviceType.js.map +1 -1
- package/build/Components/IobUri.d.ts +14 -0
- package/build/Components/IobUri.js +168 -0
- package/build/Components/IobUri.js.map +1 -0
- package/build/Components/Schedule.d.ts +1 -1
- package/build/Components/Schedule.js.map +1 -1
- package/build/index.d.ts +2 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/i18n/de.json +450 -0
- package/i18n/en.json +450 -0
- package/i18n/es.json +450 -0
- package/i18n/fr.json +450 -0
- package/i18n/it.json +450 -0
- package/i18n/nl.json +450 -0
- package/i18n/pl.json +450 -0
- package/i18n/pt.json +450 -0
- package/i18n/ru.json +450 -0
- package/i18n/uk.json +450 -0
- package/i18n/zh-cn.json +450 -0
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schedule.js","sourceRoot":"./src/","sources":["Components/Schedule.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component, type JSX } from 'react';\n\nimport {\n Input,\n Radio,\n FormControlLabel,\n FormGroup,\n Checkbox,\n MenuItem,\n Select,\n TextField,\n Box,\n type Theme,\n} from '@mui/material';\n\nimport { I18n } from '../i18n';\nimport type { IobTheme } from '../types';\nimport { Utils } from './Utils';\n\nconst styles: Record<string, any> = {\n hr: {\n border: 0,\n borderTop: '1px solid gray',\n },\n scrollWindow: {\n width: '100%',\n overflow: 'auto',\n height: 'calc(100% - 22px)',\n },\n rowDiv: {\n width: '100%',\n },\n modeDiv: {\n width: 200,\n display: 'inline-block',\n verticalAlign: 'top',\n },\n settingsDiv: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n inputTime: {\n width: 90,\n marginTop: 0,\n marginLeft: 5,\n },\n inputDate: {\n width: 140,\n marginTop: 0,\n marginLeft: 5,\n },\n inputEvery: {\n width: 40,\n marginLeft: 5,\n marginRight: 5,\n },\n inputRadio: {\n padding: '4px 12px',\n verticalAlign: 'top',\n },\n inputGroup: {\n maxWidth: 400,\n display: 'inline-block',\n },\n inputGroupElement: {\n width: 120,\n },\n inputDateDay: {\n width: 60,\n },\n inputDateDayCheck: {\n padding: 4,\n },\n inputSmallCheck: {\n padding: 0,\n },\n rowOnce: {},\n rowDays: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#ddeaff' : '#4b5057',\n }),\n rowDows: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDFFDD' : '#52646c',\n }),\n rowDates: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#747a86',\n }),\n rowWeeks: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#717680',\n }),\n rowMonths: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDFFFF' : '#1f5557',\n }),\n rowMonthsDates: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#EEFFFF' : '#3c5737',\n maxWidth: 600,\n }),\n rowYears: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#fbffdd' : '#574b33',\n }),\n rowDaysDows: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#EEEAFF' : '#573544',\n pl: '10px',\n pb: '10px',\n }),\n rowDowsDows: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#EEFFEE' : '#3d4c54',\n pl: '10px',\n pb: '10px',\n }),\n};\n\nconst WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\nconst PERIODS = {\n minutes: 'minutes',\n hours: 'hours',\n};\nconst ASTRO = [\n 'sunrise',\n 'sunriseEnd',\n 'goldenHourEnd',\n 'solarNoon',\n 'goldenHour',\n 'sunsetStart',\n 'sunset',\n 'dusk',\n 'nauticalDusk',\n 'night',\n 'nightEnd',\n 'nauticalDawn',\n 'dawn',\n 'nadir',\n];\n\nfunction padding(num: number): string {\n if (num < 10) {\n return `0${num}`;\n }\n return `${num}`;\n}\n\ninterface ScheduleConfig {\n time: {\n exactTime: boolean;\n start: string;\n end: string;\n mode: string;\n interval: number;\n };\n period: {\n once: string;\n days: number;\n dows: string;\n dates: string;\n weeks: number;\n months: string | number;\n years: number;\n yearMonth: number;\n yearDate: number;\n };\n valid: {\n from: string;\n to?: string;\n };\n}\n\n// interface TextTimeProps {\n// inputRef: React.RefObject<HTMLInputElement>;\n// placeholder?: string;\n// }\n\n// function TextTime(props: TextTimeProps) {\n// const { inputRef, ...other } = props;\n//\n// return <MaskedInput\n// {...other}\n// ref={inputRef}\n// mask={[/[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/]}\n// placeholderChar={props.placeholder || '00:00'}\n// showMask\n// />;\n// }\n\n// function TextDate(props: TextTimeProps) {\n// const { inputRef, ...other } = props;\n//\n// return <MaskedInput\n// {...other}\n// ref={inputRef}\n// mask={[/[0-3]/, /[0-9]/, '.', /[0-1]/, /[0-9]/, '.', '2', '0', /[0-9]/, /[0-9]/]}\n// placeholderChar={props.placeholder || '01.01.2020'}\n// showMask\n// />;\n// }\n\nconst DEFAULT: ScheduleConfig = {\n time: {\n exactTime: false,\n\n start: '00:00',\n end: '23:59',\n\n mode: 'hours',\n interval: 1,\n },\n period: {\n once: '',\n days: 1,\n dows: '',\n dates: '',\n weeks: 0,\n months: '',\n\n years: 0,\n yearMonth: 0,\n yearDate: 0,\n },\n valid: {\n from: '',\n to: '',\n },\n};\n\nfunction string2USdate(date: string): string {\n const parts = date.split('.');\n if (parts.length === 3) {\n return `${parts[2]}-${parts[1]}-${parts[0]}`;\n }\n return '';\n}\n\ninterface ScheduleProps {\n schedule: string | ScheduleConfig;\n onChange: (schedule: string, desc?: string) => void;\n theme: IobTheme;\n}\n\ninterface ScheduleState {\n schedule: ScheduleConfig;\n desc: string;\n}\n\nexport class Schedule extends Component<ScheduleProps, ScheduleState> {\n private readonly refFrom: React.RefObject<HTMLInputElement>;\n\n private readonly refTo: React.RefObject<HTMLInputElement>;\n\n private readonly refOnce: React.RefObject<HTMLInputElement>;\n\n private timerOnce: ReturnType<typeof setTimeout> | null = null;\n\n private timerFrom: ReturnType<typeof setTimeout> | null = null;\n\n private timerTo: ReturnType<typeof setTimeout> | null = null;\n\n constructor(props: ScheduleProps) {\n super(props);\n let schedule: ScheduleConfig | undefined;\n if (this.props.schedule && typeof this.props.schedule === 'string' && this.props.schedule[0] === '{') {\n try {\n schedule = JSON.parse(this.props.schedule);\n } catch {\n // ignore\n }\n } else if (typeof this.props.schedule === 'object') {\n schedule = this.props.schedule;\n }\n\n if (!schedule || !Object.keys(schedule).length) {\n setTimeout(() => this.onChange(this.state.schedule, true), 200);\n schedule = DEFAULT;\n }\n schedule = { ...DEFAULT, ...schedule };\n schedule.valid.from = schedule.valid.from || Schedule.now2string();\n\n this.refFrom = React.createRef();\n this.refTo = React.createRef();\n this.refOnce = React.createRef();\n\n this.state = {\n schedule,\n desc: Schedule.state2text(schedule),\n };\n\n if (JSON.stringify(schedule) !== this.props.schedule) {\n setTimeout(() => this.props.onChange && this.props.onChange(JSON.stringify(schedule)), 100);\n }\n }\n\n onChange(schedule: ScheduleConfig, force?: boolean): void {\n const isDiff = JSON.stringify(schedule) !== JSON.stringify(this.state.schedule);\n if (force || isDiff) {\n isDiff && this.setState({ schedule, desc: Schedule.state2text(schedule) });\n const copy = JSON.parse(JSON.stringify(schedule));\n if (copy.period.once) {\n const once = copy.period.once;\n delete copy.period;\n copy.period = { once };\n delete copy.valid;\n } else if (copy.period.days) {\n const days = copy.period.days;\n const daysOfWeek = copy.period.dows;\n delete copy.period;\n copy.period = { days };\n if (daysOfWeek && daysOfWeek !== '[]') {\n copy.period.dows = daysOfWeek;\n }\n } else if (copy.period.weeks) {\n const weeks = copy.period.weeks;\n const daysOfWeek = copy.period.dows;\n delete copy.period;\n copy.period = { weeks };\n if (daysOfWeek && daysOfWeek !== '[]') {\n copy.period.dows = daysOfWeek;\n }\n } else if (copy.period.months) {\n const months = copy.period.months;\n const dates = copy.period.dates;\n delete copy.period;\n copy.period = { months };\n if (dates && dates !== '[]') {\n copy.period.dates = dates;\n }\n } else if (copy.period.years) {\n const years = copy.period.years;\n const yearMonth = copy.period.yearMonth;\n const yearDate = copy.period.yearDate;\n delete copy.period;\n copy.period = { years, yearDate };\n if (yearMonth) {\n copy.period.yearMonth = yearMonth;\n }\n }\n\n if (copy.time.exactTime) {\n delete copy.time.end;\n delete copy.time.mode;\n delete copy.time.interval;\n } else {\n delete copy.time.exactTime;\n }\n if (copy.valid) {\n if (!copy.valid.to) {\n delete copy.valid.to;\n }\n if (\n copy.period.days === 1 ||\n copy.period.weeks === 1 ||\n copy.period.months === 1 ||\n copy.period.years === 1\n ) {\n const from = Schedule.string2date(copy.valid.from);\n const today = new Date();\n today.setHours(0);\n today.setMinutes(0);\n today.setSeconds(0);\n today.setMilliseconds(0);\n if (from <= today) {\n delete copy.valid.from;\n }\n }\n if (!copy.valid.from && !copy.valid.to) {\n delete copy.valid;\n }\n }\n\n this.props.onChange && this.props.onChange(JSON.stringify(copy), Schedule.state2text(schedule));\n }\n }\n\n static state2text(schedule: string | ScheduleConfig): string {\n if (typeof schedule === 'string') {\n try {\n schedule = JSON.parse(schedule) as ScheduleConfig;\n } catch {\n return '';\n }\n }\n\n const desc = [];\n const validFrom = Schedule.string2date(schedule.valid.from);\n if (schedule.period.once) {\n // once\n const once = Schedule.string2date(schedule.period.once);\n const now = new Date();\n now.setMilliseconds(0);\n now.setSeconds(0);\n now.setMinutes(0);\n now.setHours(0);\n\n //\n if (once < now) {\n // will be not executed anymore, because start is in the past\n return I18n.t('sch_desc_onceInPast');\n }\n // only once\n desc.push(I18n.t('sch_desc_once_on', schedule.period.once));\n } else if (schedule.period.days) {\n if (schedule.period.days === 1) {\n if (schedule.period.dows) {\n const daysOfWeek = JSON.parse(schedule.period.dows);\n if (daysOfWeek.length === 2 && daysOfWeek[0] === 0 && daysOfWeek[1] === 6) {\n // on weekends\n desc.push(I18n.t('sch_desc_onWeekends'));\n } else if (\n daysOfWeek.length === 5 &&\n daysOfWeek[0] === 1 &&\n daysOfWeek[1] === 2 &&\n daysOfWeek[2] === 3 &&\n daysOfWeek[3] === 4 &&\n daysOfWeek[4] === 5\n ) {\n // on workdays\n desc.push(I18n.t('sch_desc_onWorkdays'));\n } else {\n const tDows = daysOfWeek.map((day: number) => I18n.t(WEEKDAYS[day]));\n if (tDows.length === 1) {\n // on Monday\n desc.push(I18n.t('sch_desc_onWeekday', tDows[0]));\n } else if (tDows.length === 7) {\n // on every day\n desc.push(I18n.t('sch_desc_everyDay'));\n } else {\n const last = tDows.pop();\n // on Monday and Sunday\n desc.push(I18n.t('sch_desc_onWeekdays', tDows.join(', '), last));\n }\n }\n } else {\n desc.push(I18n.t('sch_desc_everyDay'));\n }\n } else {\n desc.push(I18n.t('sch_desc_everyNDay', schedule.period.days.toString()));\n }\n } else if (schedule.period.weeks) {\n if (schedule.period.weeks === 1) {\n desc.push(I18n.t('sch_desc_everyWeek'));\n } else {\n desc.push(I18n.t('sch_desc_everyNWeeks', schedule.period.weeks.toString()));\n }\n\n if (schedule.period.dows) {\n const daysOfWeek = JSON.parse(schedule.period.dows);\n if (daysOfWeek.length === 2 && daysOfWeek[0] === 0 && daysOfWeek[1] === 6) {\n // on weekends\n desc.push(I18n.t('sch_desc_onWeekends'));\n } else if (\n daysOfWeek.length === 5 &&\n daysOfWeek[0] === 1 &&\n daysOfWeek[1] === 2 &&\n daysOfWeek[2] === 3 &&\n daysOfWeek[3] === 4 &&\n daysOfWeek[4] === 5\n ) {\n // on workdays\n desc.push(I18n.t('sch_desc_onWorkdays'));\n } else {\n const tDows = daysOfWeek.map((day: number) => I18n.t(WEEKDAYS[day]));\n if (tDows.length === 1) {\n // on Monday\n desc.push(I18n.t('sch_desc_onWeekday', tDows[0]));\n } else if (tDows.length === 7) {\n // on every day\n desc.push(I18n.t('sch_desc_everyDay'));\n } else {\n const last = tDows.pop();\n // on Monday and Sunday\n desc.push(I18n.t('sch_desc_onWeekdays', tDows.join(', '), last));\n }\n }\n } else {\n return I18n.t('sch_desc_never');\n }\n } else if (schedule.period.months) {\n if (schedule.period.dates) {\n const dates = JSON.parse(schedule.period.dates);\n if (dates.length === 1) {\n // in 1 of month\n desc.push(I18n.t('sch_desc_onDate', dates[0]));\n } else if (dates.length === 31) {\n desc.push(I18n.t('sch_desc_onEveryDate'));\n } else if (!dates.length) {\n return I18n.t('sch_desc_never');\n } else {\n const last = dates.pop();\n // in 1 and 4 of month\n desc.push(I18n.t('sch_desc_onDates', dates.join(', '), last));\n }\n } else {\n desc.push(I18n.t('sch_desc_onEveryDate'));\n }\n\n if (schedule.period.months === 1) {\n desc.push(I18n.t('sch_desc_everyMonth'));\n } else if (typeof schedule.period.months === 'number') {\n desc.push(I18n.t('sch_desc_everyNMonths', schedule.period.months.toString()));\n } else {\n const months = JSON.parse(schedule.period.months);\n const tMonths = months.map((month: number) => I18n.t(MONTHS[month - 1]));\n if (!tMonths.length) {\n // in January\n return I18n.t('sch_desc_never');\n }\n if (tMonths.length === 1) {\n // in January\n desc.push(I18n.t('sch_desc_onMonth', tMonths[0]));\n } else if (tMonths.length === 12) {\n // every month\n desc.push(I18n.t('sch_desc_everyMonth'));\n } else {\n const last = tMonths.pop();\n // in January and May\n desc.push(I18n.t('sch_desc_onMonths', tMonths.join(', '), last));\n }\n }\n } else if (schedule.period.years) {\n if (schedule.period.years === 1) {\n desc.push(I18n.t('sch_desc_everyYear'));\n } else {\n desc.push(I18n.t('sch_desc_everyNYears', schedule.period.years.toString()));\n }\n desc.push(\n I18n.t(\n 'sch_desc_onDate',\n schedule.period.yearDate.toString(),\n schedule.period.yearMonth\n ? I18n.t(MONTHS[schedule.period.yearMonth - 1])\n : I18n.t('sch_desc_everyMonth'),\n ),\n );\n }\n\n // time\n if (schedule.time.exactTime) {\n if (ASTRO.includes(schedule.time.start)) {\n // at sunset\n desc.push(I18n.t('sch_desc_atTime', I18n.t(`sch_astro_${schedule.time.start}`)));\n } else {\n // at HH:MM\n desc.push(I18n.t('sch_desc_atTime', schedule.time.start));\n }\n } else {\n if (schedule.time.mode === PERIODS.minutes) {\n if (schedule.time.interval === 1) {\n // every minute\n desc.push(I18n.t('sch_desc_everyMinute'));\n } else {\n // every N minute\n desc.push(I18n.t('sch_desc_everyNMinutes', schedule.time.interval.toString()));\n }\n } else if (schedule.time.interval === 1) {\n // every minute\n desc.push(I18n.t('sch_desc_everyHour'));\n } else {\n // every N minute\n desc.push(I18n.t('sch_desc_everyNHours', schedule.time.interval.toString()));\n }\n\n const start =\n ASTRO.indexOf(schedule.time.start) !== -1\n ? I18n.t(`sch_astro_${schedule.time.start}`)\n : schedule.time.start;\n const end =\n ASTRO.indexOf(schedule.time.end) !== -1 ? I18n.t(`sch_astro_${schedule.time.end}`) : schedule.time.end;\n if (start !== '00:00' || (end !== '24:00' && end !== '23:59')) {\n // from HH:mm to HH:mm\n desc.push(I18n.t('sch_desc_intervalFromTo', start, end));\n }\n }\n\n if (!schedule.period.once) {\n // valid\n if (validFrom.getTime() > Date.now() && schedule.valid.to) {\n // from XXX to XXXX\n desc.push(I18n.t('sch_desc_validFromTo', schedule.valid.from, schedule.valid.to));\n } else if (validFrom.getTime() > Date.now()) {\n // from XXXX\n desc.push(I18n.t('sch_desc_validFrom', schedule.valid.from));\n } else if (schedule.valid.to) {\n // till XXXX\n desc.push(I18n.t('sch_desc_validTo', schedule.valid.to));\n }\n }\n return desc.join(' ');\n }\n\n getTimePeriodElements(): JSX.Element {\n const schedule = this.state.schedule;\n let wholeDay = false;\n let day = false;\n let night = false;\n let fromTo = true;\n if (schedule.time.start === '00:00' && schedule.time.end === '24:00') {\n wholeDay = true;\n fromTo = false;\n } else if (schedule.time.start === 'sunrise') {\n day = true;\n fromTo = false;\n } else if (schedule.time.start === 'sunset') {\n night = true;\n fromTo = false;\n }\n\n return (\n <div\n key=\"timePeriod\"\n style={styles.rowDiv}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!schedule.time.exactTime}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.exactTime = false;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_intervalTime')}\n />\n </div>\n <div style={styles.settingsDiv}>\n <div style={styles.settingsDiv}>\n {!schedule.time.exactTime && (\n <div>\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!fromTo}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = '00:00';\n _schedule.time.end = '23:59';\n this.onChange(_schedule);\n }}\n />\n }\n label={!fromTo ? I18n.t('sch_fromTo') : ''}\n />\n {fromTo && [\n <TextField\n variant=\"standard\"\n style={{ ...styles.inputTime, marginRight: 10 }}\n key=\"exactTimeFrom\"\n type=\"time\"\n sx={(theme: Theme) => ({\n '& input[type=\"time\"]::-webkit-calendar-picker-indicator': {\n filter: theme.palette.mode === 'dark' ? 'invert(80%)' : undefined,\n },\n })}\n value={this.state.schedule.time.start}\n // InputProps={{inputComponent: TextTime}}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = e.target.value;\n this.onChange(_schedule);\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n label={I18n.t('sch_from')}\n margin=\"normal\"\n />,\n <TextField\n variant=\"standard\"\n style={styles.inputTime}\n key=\"exactTimeTo\"\n type=\"time\"\n sx={(theme: Theme) => ({\n '& input[type=\"time\"]::-webkit-calendar-picker-indicator': {\n filter: theme.palette.mode === 'dark' ? 'invert(80%)' : undefined,\n },\n })}\n value={this.state.schedule.time.end}\n // InputProps={{inputComponent: TextTime}}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.end = e.target.value;\n this.onChange(_schedule);\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n label={I18n.t('sch_to')}\n margin=\"normal\"\n />,\n ]}\n </div>\n </div>\n )}\n\n {!schedule.time.exactTime && (\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!wholeDay}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = '00:00';\n _schedule.time.end = '24:00';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_wholeDay')}\n />\n </div>\n )}\n\n {!schedule.time.exactTime && (\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!day}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = 'sunrise';\n _schedule.time.end = 'sunset';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_astroDay')}\n />\n </div>\n )}\n\n {!schedule.time.exactTime && (\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!night}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = 'sunset';\n _schedule.time.end = 'sunrise';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_astroNight')}\n />\n </div>\n )}\n </div>\n {!schedule.time.exactTime && this.getPeriodSettingsMinutes(fromTo)}\n </div>\n </div>\n );\n }\n\n getTimeExactElements(): JSX.Element {\n const isAstro = ASTRO.includes(this.state.schedule.time.start);\n\n return (\n <div\n key=\"timeExact\"\n style={styles.rowDiv}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!this.state.schedule.time.exactTime}\n onClick={() => {\n const schedule = JSON.parse(JSON.stringify(this.state.schedule));\n schedule.time.exactTime = true;\n this.onChange(schedule);\n }}\n />\n }\n label={I18n.t('sch_exactTime')}\n />\n </div>\n {this.state.schedule.time.exactTime && (\n <Select\n variant=\"standard\"\n value={isAstro ? this.state.schedule.time.start : '00:00'}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = e.target.value;\n this.onChange(_schedule);\n }}\n >\n <MenuItem\n key=\"specific\"\n value=\"00:00\"\n >\n {I18n.t('sch_specificTime')}\n </MenuItem>\n {ASTRO.map(event => (\n <MenuItem\n key={event}\n value={event}\n >\n {I18n.t(`sch_astro_${event}`)}\n </MenuItem>\n ))}\n </Select>\n )}\n {this.state.schedule.time.exactTime && !isAstro && (\n <div style={styles.settingsDiv}>\n <TextField\n variant=\"standard\"\n style={styles.inputTime}\n key=\"exactTimeValue\"\n value={this.state.schedule.time.start}\n type=\"time\"\n sx={(theme: Theme) => ({\n '& input[type=\"time\"]::-webkit-calendar-picker-indicator': {\n filter: theme.palette.mode === 'dark' ? 'invert(80%)' : undefined,\n },\n })}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = e.target.value;\n this.onChange(_schedule);\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n margin=\"normal\"\n />\n </div>\n )}\n </div>\n );\n }\n\n static getDivider(): JSX.Element {\n return <hr style={styles.hr} />;\n }\n\n getPeriodModes(): JSX.Element[] {\n const schedule = this.state.schedule;\n const isOnce =\n !schedule.period.dows &&\n !schedule.period.months &&\n !schedule.period.dates &&\n !schedule.period.years &&\n !schedule.period.days &&\n !schedule.period.weeks;\n\n if (isOnce && !schedule.period.once) {\n schedule.period.once = Schedule.now2string(true);\n }\n\n return [\n // ----- once ---\n <div\n key=\"once\"\n style={{ ...styles.rowDiv, ...styles.rowOnce }}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!isOnce}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.once = _schedule.period.once || Schedule.now2string(true);\n _schedule.period.dows = '';\n _schedule.period.months = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodOnce')}\n />\n </div>\n {isOnce && (\n <div style={styles.settingsDiv}>\n <TextField\n variant=\"standard\"\n style={styles.inputDate}\n type=\"date\"\n ref={this.refOnce}\n key=\"exactDateAt\"\n defaultValue={string2USdate(schedule.period.once)}\n // InputProps={{inputComponent: TextTime}}\n onChange={e => {\n this.timerOnce && clearTimeout(this.timerOnce);\n this.timerOnce = null;\n\n if (this.refOnce.current) {\n this.refOnce.current.style.background = '#ff000030';\n }\n this.timerOnce = setTimeout(\n value => {\n this.timerOnce = null;\n if (this.refOnce.current) {\n this.refOnce.current.style.background = '';\n }\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const date = Schedule.string2date(value);\n if (date.toString() !== 'Invalid Date') {\n _schedule.period.once = `${padding(date.getDate())}.${padding(date.getMonth() + 1)}.${date.getFullYear()}`;\n this.onChange(_schedule);\n }\n },\n 1500,\n e.target.value,\n );\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n label={I18n.t('sch_at')}\n margin=\"normal\"\n />\n </div>\n )}\n </div>,\n\n // ----- days ---\n <Box\n component=\"div\"\n key=\"days\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowDays)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.days}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = 1;\n _schedule.period.dows = '';\n _schedule.period.months = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodDaily')}\n />\n </div>\n <div style={styles.settingsDiv}>\n {this.getPeriodSettingsDaily()}\n {schedule.period.days ? this.getPeriodSettingsWeekdays() : null}\n </div>\n </Box>,\n\n // ----- days of weeks ---\n /*\n !schedule.period.days && (\n <div key=\"dows\" style={styles.rowDiv + ' ' + styles.rowDows}>\n <div style={styles.modeDiv}>\n <FormControlLabel control={<Radio style={styles.inputRadio} checked={!!schedule.period.dows} onClick={() => {\n const schedule = JSON.parse(JSON.stringify(this.state.schedule));\n schedule.period.dows = schedule.period.dows ? '' : '[0,1,2,3,4,5,6]';\n this.onChange(schedule);\n }}/>}\n label={I18n.t('sch_periodWeekdays')} />\n </div>\n <div style={styles.settingsDiv}>\n {this.getPeriodSettingsWeekdays()}\n </div>\n </div>,\n */\n // ----- weeks ---\n <Box\n component=\"div\"\n key=\"weeks\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowDows)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.weeks}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = schedule.period.weeks ? 0 : 1;\n _schedule.period.dows = schedule.period.dows || '[0]';\n _schedule.period.months = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWeekly')}\n />\n </div>\n <Box\n component=\"div\"\n style={styles.settingsDiv}\n >\n <div style={styles.settingsDiv}>{this.getPeriodSettingsWeekly()}</div>\n <Box\n component=\"div\"\n sx={Utils.getStyle(this.props.theme, styles.settingsDiv, styles.rowDowsDows)}\n >\n {this.state.schedule.period.weeks ? this.getPeriodSettingsWeekdays() : null}\n </Box>\n </Box>\n </Box>,\n\n // ----- months ---\n <Box\n component=\"div\"\n key=\"months\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowMonths)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.months}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = 1;\n _schedule.period.dows = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodMonthly')}\n />\n </div>\n <div style={styles.settingsDiv}>\n {this.getPeriodSettingsMonthly()}\n {schedule.period.months ? (\n <Box>\n <Box\n component=\"div\"\n sx={Utils.getStyle(this.props.theme, styles.settingsDiv, styles.rowMonthsDates)}\n >\n <FormControlLabel\n control={\n <Checkbox\n style={styles.inputRadio}\n checked={!!schedule.period.dates}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = _schedule.period.months || 1;\n const dates = [];\n for (let i = 1; i <= 31; i++) {\n dates.push(i);\n }\n _schedule.period.dates =\n _schedule.period.dates || JSON.stringify(dates);\n _schedule.period.dows = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodDates')}\n />\n </Box>\n <Box\n component=\"div\"\n sx={Utils.getStyle(this.props.theme, styles.settingsDiv, styles.rowMonthsDates)}\n >\n {this.getPeriodSettingsDates()}\n </Box>\n </Box>\n ) : null}\n </div>\n </Box>,\n\n // ----- years ---\n <Box\n component=\"div\"\n key=\"years\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowYears)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.years}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = 1;\n _schedule.period.yearDate = 1;\n _schedule.period.yearMonth = 1;\n _schedule.period.dows = '';\n _schedule.period.months = 0;\n _schedule.period.dates = '';\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodYearly')}\n />\n </div>\n <div style={styles.settingsDiv}>\n <div style={styles.settingsDiv}>{this.getPeriodSettingsYearly()}</div>\n {!!schedule.period.years && (\n <div style={styles.settingsDiv}>\n <span>{I18n.t('sch_on')}</span>\n <Input\n key=\"input\"\n value={this.state.schedule.period.yearDate}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 1, max: 31 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.yearDate = parseInt(e.target.value, 10);\n if (_schedule.period.yearDate < 1) {\n _schedule.period.yearDate = 31;\n }\n if (_schedule.period.yearDate > 31) {\n _schedule.period.yearDate = 1;\n }\n this.onChange(_schedule);\n }}\n />\n <Select\n variant=\"standard\"\n value={schedule.period.yearMonth}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.yearMonth = e.target.value;\n this.onChange(_schedule);\n }}\n >\n <MenuItem\n key=\"every\"\n value={0}\n >\n {I18n.t('sch_yearEveryMonth')}\n </MenuItem>\n {MONTHS.map((month, i) => (\n <MenuItem\n key={month}\n value={i + 1}\n >\n {I18n.t(month)}\n </MenuItem>\n ))}\n </Select>\n </div>\n )}\n </div>\n </Box>,\n ];\n }\n\n getPeriodSettingsMinutes(fromTo: boolean): JSX.Element {\n return (\n <div style={{ display: 'inline-block', marginTop: fromTo ? 15 : 'inherit' }}>\n <label style={{ marginLeft: 4, marginRight: 4 }}>{I18n.t('sch_every')}</label>\n <Input\n value={this.state.schedule.time.interval}\n style={{\n ...styles.inputEvery,\n verticalAlign: 'bottom',\n }}\n type=\"number\"\n inputProps={{ min: 1 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.interval = parseInt(e.target.value, 10);\n this.onChange(_schedule);\n }}\n />\n <Select\n variant=\"standard\"\n value={this.state.schedule.time.mode}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.mode = e.target.value;\n this.onChange(_schedule);\n }}\n >\n <MenuItem value={PERIODS.minutes}>{I18n.t('sch_periodMinutes')}</MenuItem>\n <MenuItem value={PERIODS.hours}>{I18n.t('sch_periodHours')}</MenuItem>\n </Select>\n </div>\n );\n }\n\n getPeriodSettingsWeekdays(): JSX.Element[] {\n // || this.state.schedule.period.dows === '[1, 2, 3, 4, 5]' || this.state.schedule.period.dows === '[0, 6]'\n const schedule = this.state.schedule;\n const isSpecific =\n schedule.period.dows && schedule.period.dows !== '[1, 2, 3, 4, 5]' && schedule.period.dows !== '[0, 6]';\n return [\n <div key=\"workdays\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.dows === '[1, 2, 3, 4, 5]'}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dows = '[1, 2, 3, 4, 5]';\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWorkdays')}\n />\n </div>,\n\n <div key=\"weekend\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.dows === '[0, 6]'}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dows = '[0, 6]';\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWeekend')}\n />\n </div>,\n\n <div\n key=\"specific\"\n style={{ verticalAlign: 'top' }}\n >\n <FormControlLabel\n style={{ verticalAlign: 'top' }}\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!isSpecific}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dows = '[0, 1, 2, 3, 4, 5, 6]';\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWeekdays')}\n />\n {isSpecific && (schedule.period.days === 1 || schedule.period.weeks) && (\n <FormGroup\n row\n style={{ ...styles.inputGroup, width: 150 }}\n >\n {[1, 2, 3, 4, 5, 6, 0].map(i => (\n <FormControlLabel\n key={`specific_${i}`}\n style={styles.inputGroupElement}\n control={\n <Checkbox\n style={styles.inputSmallCheck}\n checked={schedule.period.dows.includes(i.toString())}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n let daysOfWeek: number[];\n try {\n daysOfWeek = JSON.parse(_schedule.period.dows);\n } catch {\n daysOfWeek = [];\n }\n if (e.target.checked && !daysOfWeek.includes(i)) {\n daysOfWeek.push(i);\n } else if (!e.target.checked && daysOfWeek.includes(i)) {\n daysOfWeek.splice(daysOfWeek.indexOf(i), 1);\n }\n daysOfWeek.sort((a: number, b: number) => a - b);\n _schedule.period.dows = JSON.stringify(daysOfWeek);\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t(WEEKDAYS[i])}\n />\n ))}\n </FormGroup>\n )}\n </div>,\n ];\n }\n\n getPeriodSettingsDaily(): JSX.Element[] | null {\n if (!this.state.schedule.period.days) {\n return null;\n }\n const schedule = this.state.schedule;\n return [\n <div key=\"every_day\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.days === 1 && !schedule.period.dows}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = 1;\n _schedule.period.dows = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryDay')}\n />\n </div>,\n <div key=\"everyN_day\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.days > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = 2;\n _schedule.period.dows = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {schedule.period.days > 1 && [\n <Input\n key=\"input\"\n value={this.state.schedule.period.days}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = parseInt(e.target.value, 10);\n _schedule.period.dows = '';\n this.onChange(_schedule);\n }}\n />,\n <span\n key=\"span\"\n style={{ paddingRight: 10 }}\n >\n {I18n.t('sch_periodDay')}\n </span>,\n ]}\n </div>,\n ];\n }\n\n getPeriodSettingsWeekly(): JSX.Element[] | null {\n if (!this.state.schedule.period.weeks) {\n return null;\n }\n const schedule = this.state.schedule;\n return [\n <div\n key=\"radios\"\n style={{ display: 'inline-block', verticalAlign: 'top' }}\n >\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.weeks === 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = 1;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryWeek')}\n />\n </div>\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.weeks > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = 2;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {schedule.period.weeks > 1 && [\n <Input\n key=\"input\"\n value={this.state.schedule.period.weeks}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = parseInt(e.target.value, 10);\n this.onChange(_schedule);\n }}\n />,\n <span key=\"text\">{I18n.t('sch_periodWeek')}</span>,\n ]}\n </div>\n </div>,\n ];\n }\n\n getPeriodSettingsDates(): JSX.Element | null {\n if (!this.state.schedule.period.dates) {\n return null;\n }\n const schedule = this.state.schedule;\n\n const dates = [];\n for (let i = 1; i <= 31; i++) {\n dates.push(i);\n }\n\n const parsedDates = JSON.parse(schedule.period.dates);\n\n return (\n <FormGroup\n row\n style={{ ...styles.inputGroup, maxWidth: 620 }}\n >\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={parsedDates.length === 31}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const _dates = [];\n for (let i = 1; i <= 31; i++) {\n _dates.push(i);\n }\n _schedule.period.dates = JSON.stringify(_dates);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_all')}\n />\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={!parsedDates.length}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dates = '[]';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_no_one')}\n />\n {parsedDates.length !== 31 && !!parsedDates.length && (\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={false}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const result = [];\n const _parsedDates = JSON.parse(_schedule.period.dates);\n for (let i = 1; i <= 31; i++) {\n if (!_parsedDates.includes(i)) {\n result.push(i);\n }\n }\n result.sort((a, b) => a - b);\n _schedule.period.dates = JSON.stringify(result);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_invert')}\n />\n )}\n <div />\n {dates.map(i => (\n <FormControlLabel\n key={`date_${i}`}\n style={\n !i\n ? {\n ...styles.inputDateDay,\n opacity: 0,\n cursor: 'default',\n userSelect: 'none',\n pointerEvents: 'none',\n }\n : styles.inputDateDay\n }\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={JSON.parse(schedule.period.dates).includes(i)}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n let _dates;\n try {\n _dates = JSON.parse(_schedule.period.dates);\n } catch {\n _dates = [];\n }\n if (e.target.checked && !_dates.includes(i)) {\n _dates.push(i);\n } else if (!e.target.checked && _dates.includes(i)) {\n _dates.splice(_dates.indexOf(i), 1);\n }\n _dates.sort((a: number, b: number) => a - b);\n _schedule.period.dates = JSON.stringify(_dates);\n this.onChange(_schedule);\n }}\n />\n }\n label={\n i < 10\n ? [\n <span\n key=\"0\"\n style={{ opacity: 0 }}\n >\n 0\n </span>,\n <span key=\"num\">{i}</span>,\n ]\n : i\n }\n />\n ))}\n </FormGroup>\n );\n }\n\n getPeriodSettingsMonthly(): JSX.Element[] | null {\n if (!this.state.schedule.period.months) {\n return null;\n }\n const schedule = this.state.schedule;\n const parsedMonths = typeof schedule.period.months === 'string' ? JSON.parse(schedule.period.months) : [];\n\n return [\n <div key=\"every\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={typeof schedule.period.months === 'number' && schedule.period.months === 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = 1;\n this.onChange(schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryMonth')}\n />\n </div>,\n <div key=\"everyN\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={typeof schedule.period.months === 'number' && schedule.period.months > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = 2;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {typeof schedule.period.months === 'number' &&\n schedule.period.months > 1 && [\n <Input\n key=\"input\"\n value={schedule.period.months}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = parseInt(e.target.value, 10);\n if (_schedule.period.months < 1) {\n _schedule.period.months = 1;\n }\n this.onChange(_schedule);\n }}\n />,\n <span key=\"text\">{I18n.t('sch_periodMonth')}</span>,\n ]}\n </div>,\n <div\n key=\"specific\"\n style={{ verticalAlign: 'top' }}\n >\n <FormControlLabel\n style={{ verticalAlign: 'top' }}\n control={\n <Radio\n style={styles.inputRadio}\n checked={typeof schedule.period.months === 'string'}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = '[1,2,3,4,5,6,7,8,9,10,11,12]';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodSpecificMonths')}\n />\n {typeof schedule.period.months === 'string' && (\n <FormGroup\n row\n style={styles.inputGroup}\n >\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={parsedMonths.length === 12}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const months = [];\n for (let i = 1; i <= 12; i++) {\n months.push(i);\n }\n _schedule.period.months = JSON.stringify(months);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_all')}\n />\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={!parsedMonths.length}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = '[]';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_no_one')}\n />\n {parsedMonths.length !== 12 && !!parsedMonths.length && (\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={false}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const result = [];\n const _parsedMonths = JSON.parse(_schedule.period.months);\n for (let i = 1; i <= 12; i++) {\n if (!_parsedMonths.includes(i)) {\n result.push(i);\n }\n }\n result.sort((a, b) => a - b);\n _schedule.period.months = JSON.stringify(result);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_invert')}\n />\n )}\n <div />\n {MONTHS.map((month, i) => (\n <FormControlLabel\n key={`month_${i}`}\n style={styles.inputGroupElement}\n control={\n <Checkbox\n style={styles.inputSmallCheck}\n checked={\n typeof schedule.period.months === 'string'\n ? JSON.parse(schedule.period.months).includes(i + 1)\n : schedule.period.months === i\n }\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n let months;\n try {\n months = JSON.parse(_schedule.period.months);\n } catch {\n months = [];\n }\n if (e.target.checked && !months.includes(i + 1)) {\n months.push(i + 1);\n } else if (!e.target.checked && months.includes(i + 1)) {\n months.splice(months.indexOf(i + 1), 1);\n }\n months.sort((a: number, b: number) => a - b);\n _schedule.period.months = JSON.stringify(months);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t(month)}\n />\n ))}\n </FormGroup>\n )}\n </div>,\n ];\n }\n\n getPeriodSettingsYearly(): JSX.Element[] | null {\n if (!this.state.schedule.period.years) {\n return null;\n }\n const schedule = this.state.schedule;\n return [\n <div key=\"year\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.years === 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = 1;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryYear')}\n />\n </div>,\n <div key=\"every\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.years > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = 2;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {schedule.period.years > 1 && [\n <Input\n key=\"input\"\n value={this.state.schedule.period.years}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = parseInt(e.target.value, 10);\n if (_schedule.period.years < 1) {\n _schedule.period.years = 1;\n }\n this.onChange(_schedule);\n }}\n />,\n <span key=\"text\">{I18n.t('sch_periodYear')}</span>,\n ]}\n </div>,\n ];\n }\n\n static now2string(isEnd?: boolean): string {\n const d = new Date();\n d.setHours(0);\n d.setMinutes(0);\n d.setSeconds(0);\n d.setMilliseconds(0);\n if (isEnd) {\n d.setDate(d.getDate() + 2);\n d.setMilliseconds(d.getMilliseconds() - 1);\n }\n\n return `${padding(d.getDate())}.${padding(d.getMonth() + 1)}.${padding(d.getFullYear())}`;\n }\n\n static string2date(str: string): Date {\n let parts = str.split('.'); // 31.12.2019\n if (parts.length === 1) {\n parts = str.split('-'); // 2018-12-31\n return new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10));\n }\n return new Date(parseInt(parts[2], 10), parseInt(parts[1], 10) - 1, parseInt(parts[0], 10));\n }\n\n getValidSettings(): JSX.Element {\n const schedule = this.state.schedule;\n // ----- from ---\n return (\n <div style={styles.rowDiv}>\n <div style={{ ...styles.modeDiv, verticalAlign: 'middle' }}>\n <span style={{ fontWeight: 'bold', paddingRight: 10 }}>{I18n.t('sch_valid')}</span>\n <span>{I18n.t('sch_validFrom')}</span>\n </div>\n <div style={styles.settingsDiv}>\n <TextField\n variant=\"standard\"\n style={{ ...styles.inputDate, marginRight: 10 }}\n key=\"exactTimeFrom\"\n inputRef={this.refFrom}\n defaultValue={string2USdate(schedule.valid.from)}\n type=\"date\"\n // inputComponent={TextDate}\n onChange={e => {\n this.timerFrom && clearTimeout(this.timerFrom);\n\n if (this.refFrom.current) {\n this.refFrom.current.style.background = '#ff000030';\n }\n\n this.timerFrom = setTimeout(\n value => {\n this.timerFrom = null;\n if (this.refFrom.current) {\n this.refFrom.current.style.background = '';\n }\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const date = Schedule.string2date(value);\n if (date.toString() !== 'Invalid Date') {\n _schedule.valid.from = `${padding(date.getDate())}.${padding(date.getMonth() + 1)}.${date.getFullYear()}`;\n this.onChange(_schedule);\n }\n },\n 1500,\n e.target.value,\n );\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n margin=\"normal\"\n />\n <FormControlLabel\n control={\n <Checkbox\n style={styles.inputRadio}\n checked={!!schedule.valid.to}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.valid.to = _schedule.valid.to ? '' : Schedule.now2string(true);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_validTo')}\n />\n {!!schedule.valid.to && (\n <TextField\n variant=\"standard\"\n inputRef={this.refTo}\n style={{ ...styles.inputDate, marginRight: 10 }}\n key=\"exactTimeFrom\"\n type=\"date\"\n defaultValue={string2USdate(schedule.valid.to)}\n // inputComponent={TextDate}\n onChange={e => {\n this.timerTo && clearTimeout(this.timerTo);\n\n if (this.refTo.current) {\n this.refTo.current.style.background = '#ff000030';\n }\n this.timerTo = setTimeout(\n value => {\n this.timerTo = null;\n if (this.refTo.current) {\n this.refTo.current.style.background = '';\n }\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const date = Schedule.string2date(value);\n if (date.toString() !== 'Invalid Date') {\n _schedule.valid.to = `${padding(date.getDate())}.${padding(date.getMonth() + 1)}.${date.getFullYear()}`;\n this.onChange(_schedule);\n }\n },\n 1500,\n e.target.value,\n );\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n margin=\"normal\"\n />\n )}\n </div>\n </div>\n );\n }\n\n render(): JSX.Element {\n return (\n <div style={{ height: 'calc(100% - 48px)', width: '100%', overflow: 'hidden' }}>\n <div>{this.state.desc}</div>\n <div style={styles.scrollWindow}>\n <h5>{I18n.t('sch_time')}</h5>\n {this.getTimePeriodElements()}\n {this.getTimeExactElements()}\n {Schedule.getDivider()}\n <h5>{I18n.t('sch_period')}</h5>\n {this.getPeriodModes()}\n {!this.state.schedule.period.once && Schedule.getDivider()}\n {!this.state.schedule.period.once && this.getValidSettings()}\n </div>\n </div>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Schedule.js","sourceRoot":"./src/","sources":["Components/Schedule.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component, type JSX } from 'react';\n\nimport {\n Input,\n Radio,\n FormControlLabel,\n FormGroup,\n Checkbox,\n MenuItem,\n Select,\n TextField,\n Box,\n type Theme,\n} from '@mui/material';\n\nimport { I18n } from '../i18n';\nimport type { IobTheme } from '../types';\nimport { Utils } from './Utils';\n\nconst styles: Record<string, any> = {\n hr: {\n border: 0,\n borderTop: '1px solid gray',\n },\n scrollWindow: {\n width: '100%',\n overflow: 'auto',\n height: 'calc(100% - 22px)',\n },\n rowDiv: {\n width: '100%',\n },\n modeDiv: {\n width: 200,\n display: 'inline-block',\n verticalAlign: 'top',\n },\n settingsDiv: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n inputTime: {\n width: 90,\n marginTop: 0,\n marginLeft: 5,\n },\n inputDate: {\n width: 140,\n marginTop: 0,\n marginLeft: 5,\n },\n inputEvery: {\n width: 40,\n marginLeft: 5,\n marginRight: 5,\n },\n inputRadio: {\n padding: '4px 12px',\n verticalAlign: 'top',\n },\n inputGroup: {\n maxWidth: 400,\n display: 'inline-block',\n },\n inputGroupElement: {\n width: 120,\n },\n inputDateDay: {\n width: 60,\n },\n inputDateDayCheck: {\n padding: 4,\n },\n inputSmallCheck: {\n padding: 0,\n },\n rowOnce: {},\n rowDays: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#ddeaff' : '#4b5057',\n }),\n rowDows: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDFFDD' : '#52646c',\n }),\n rowDates: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#747a86',\n }),\n rowWeeks: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#717680',\n }),\n rowMonths: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDFFFF' : '#1f5557',\n }),\n rowMonthsDates: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#EEFFFF' : '#3c5737',\n maxWidth: 600,\n }),\n rowYears: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#fbffdd' : '#574b33',\n }),\n rowDaysDows: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#EEEAFF' : '#573544',\n pl: '10px',\n pb: '10px',\n }),\n rowDowsDows: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#EEFFEE' : '#3d4c54',\n pl: '10px',\n pb: '10px',\n }),\n};\n\nconst WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\nconst PERIODS = {\n minutes: 'minutes',\n hours: 'hours',\n};\nconst ASTRO = [\n 'sunrise',\n 'sunriseEnd',\n 'goldenHourEnd',\n 'solarNoon',\n 'goldenHour',\n 'sunsetStart',\n 'sunset',\n 'dusk',\n 'nauticalDusk',\n 'night',\n 'nightEnd',\n 'nauticalDawn',\n 'dawn',\n 'nadir',\n];\n\nfunction padding(num: number): string {\n if (num < 10) {\n return `0${num}`;\n }\n return `${num}`;\n}\n\nexport interface ScheduleConfig {\n time: {\n exactTime: boolean;\n start: string;\n end: string;\n mode: string;\n interval: number;\n };\n period: {\n once: string;\n days: number;\n dows: string;\n dates: string;\n weeks: number;\n months: string | number;\n years: number;\n yearMonth: number;\n yearDate: number;\n };\n valid: {\n from: string;\n to?: string;\n };\n}\n\n// interface TextTimeProps {\n// inputRef: React.RefObject<HTMLInputElement>;\n// placeholder?: string;\n// }\n\n// function TextTime(props: TextTimeProps) {\n// const { inputRef, ...other } = props;\n//\n// return <MaskedInput\n// {...other}\n// ref={inputRef}\n// mask={[/[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/]}\n// placeholderChar={props.placeholder || '00:00'}\n// showMask\n// />;\n// }\n\n// function TextDate(props: TextTimeProps) {\n// const { inputRef, ...other } = props;\n//\n// return <MaskedInput\n// {...other}\n// ref={inputRef}\n// mask={[/[0-3]/, /[0-9]/, '.', /[0-1]/, /[0-9]/, '.', '2', '0', /[0-9]/, /[0-9]/]}\n// placeholderChar={props.placeholder || '01.01.2020'}\n// showMask\n// />;\n// }\n\nconst DEFAULT: ScheduleConfig = {\n time: {\n exactTime: false,\n\n start: '00:00',\n end: '23:59',\n\n mode: 'hours',\n interval: 1,\n },\n period: {\n once: '',\n days: 1,\n dows: '',\n dates: '',\n weeks: 0,\n months: '',\n\n years: 0,\n yearMonth: 0,\n yearDate: 0,\n },\n valid: {\n from: '',\n to: '',\n },\n};\n\nfunction string2USdate(date: string): string {\n const parts = date.split('.');\n if (parts.length === 3) {\n return `${parts[2]}-${parts[1]}-${parts[0]}`;\n }\n return '';\n}\n\ninterface ScheduleProps {\n schedule: string | ScheduleConfig;\n onChange: (schedule: string, desc?: string) => void;\n theme: IobTheme;\n}\n\ninterface ScheduleState {\n schedule: ScheduleConfig;\n desc: string;\n}\n\nexport class Schedule extends Component<ScheduleProps, ScheduleState> {\n private readonly refFrom: React.RefObject<HTMLInputElement>;\n\n private readonly refTo: React.RefObject<HTMLInputElement>;\n\n private readonly refOnce: React.RefObject<HTMLInputElement>;\n\n private timerOnce: ReturnType<typeof setTimeout> | null = null;\n\n private timerFrom: ReturnType<typeof setTimeout> | null = null;\n\n private timerTo: ReturnType<typeof setTimeout> | null = null;\n\n constructor(props: ScheduleProps) {\n super(props);\n let schedule: ScheduleConfig | undefined;\n if (this.props.schedule && typeof this.props.schedule === 'string' && this.props.schedule[0] === '{') {\n try {\n schedule = JSON.parse(this.props.schedule);\n } catch {\n // ignore\n }\n } else if (typeof this.props.schedule === 'object') {\n schedule = this.props.schedule;\n }\n\n if (!schedule || !Object.keys(schedule).length) {\n setTimeout(() => this.onChange(this.state.schedule, true), 200);\n schedule = DEFAULT;\n }\n schedule = { ...DEFAULT, ...schedule };\n schedule.valid.from = schedule.valid.from || Schedule.now2string();\n\n this.refFrom = React.createRef();\n this.refTo = React.createRef();\n this.refOnce = React.createRef();\n\n this.state = {\n schedule,\n desc: Schedule.state2text(schedule),\n };\n\n if (JSON.stringify(schedule) !== this.props.schedule) {\n setTimeout(() => this.props.onChange && this.props.onChange(JSON.stringify(schedule)), 100);\n }\n }\n\n onChange(schedule: ScheduleConfig, force?: boolean): void {\n const isDiff = JSON.stringify(schedule) !== JSON.stringify(this.state.schedule);\n if (force || isDiff) {\n isDiff && this.setState({ schedule, desc: Schedule.state2text(schedule) });\n const copy = JSON.parse(JSON.stringify(schedule));\n if (copy.period.once) {\n const once = copy.period.once;\n delete copy.period;\n copy.period = { once };\n delete copy.valid;\n } else if (copy.period.days) {\n const days = copy.period.days;\n const daysOfWeek = copy.period.dows;\n delete copy.period;\n copy.period = { days };\n if (daysOfWeek && daysOfWeek !== '[]') {\n copy.period.dows = daysOfWeek;\n }\n } else if (copy.period.weeks) {\n const weeks = copy.period.weeks;\n const daysOfWeek = copy.period.dows;\n delete copy.period;\n copy.period = { weeks };\n if (daysOfWeek && daysOfWeek !== '[]') {\n copy.period.dows = daysOfWeek;\n }\n } else if (copy.period.months) {\n const months = copy.period.months;\n const dates = copy.period.dates;\n delete copy.period;\n copy.period = { months };\n if (dates && dates !== '[]') {\n copy.period.dates = dates;\n }\n } else if (copy.period.years) {\n const years = copy.period.years;\n const yearMonth = copy.period.yearMonth;\n const yearDate = copy.period.yearDate;\n delete copy.period;\n copy.period = { years, yearDate };\n if (yearMonth) {\n copy.period.yearMonth = yearMonth;\n }\n }\n\n if (copy.time.exactTime) {\n delete copy.time.end;\n delete copy.time.mode;\n delete copy.time.interval;\n } else {\n delete copy.time.exactTime;\n }\n if (copy.valid) {\n if (!copy.valid.to) {\n delete copy.valid.to;\n }\n if (\n copy.period.days === 1 ||\n copy.period.weeks === 1 ||\n copy.period.months === 1 ||\n copy.period.years === 1\n ) {\n const from = Schedule.string2date(copy.valid.from);\n const today = new Date();\n today.setHours(0);\n today.setMinutes(0);\n today.setSeconds(0);\n today.setMilliseconds(0);\n if (from <= today) {\n delete copy.valid.from;\n }\n }\n if (!copy.valid.from && !copy.valid.to) {\n delete copy.valid;\n }\n }\n\n this.props.onChange && this.props.onChange(JSON.stringify(copy), Schedule.state2text(schedule));\n }\n }\n\n static state2text(schedule: string | ScheduleConfig): string {\n if (typeof schedule === 'string') {\n try {\n schedule = JSON.parse(schedule) as ScheduleConfig;\n } catch {\n return '';\n }\n }\n\n const desc = [];\n const validFrom = Schedule.string2date(schedule.valid.from);\n if (schedule.period.once) {\n // once\n const once = Schedule.string2date(schedule.period.once);\n const now = new Date();\n now.setMilliseconds(0);\n now.setSeconds(0);\n now.setMinutes(0);\n now.setHours(0);\n\n //\n if (once < now) {\n // will be not executed anymore, because start is in the past\n return I18n.t('sch_desc_onceInPast');\n }\n // only once\n desc.push(I18n.t('sch_desc_once_on', schedule.period.once));\n } else if (schedule.period.days) {\n if (schedule.period.days === 1) {\n if (schedule.period.dows) {\n const daysOfWeek = JSON.parse(schedule.period.dows);\n if (daysOfWeek.length === 2 && daysOfWeek[0] === 0 && daysOfWeek[1] === 6) {\n // on weekends\n desc.push(I18n.t('sch_desc_onWeekends'));\n } else if (\n daysOfWeek.length === 5 &&\n daysOfWeek[0] === 1 &&\n daysOfWeek[1] === 2 &&\n daysOfWeek[2] === 3 &&\n daysOfWeek[3] === 4 &&\n daysOfWeek[4] === 5\n ) {\n // on workdays\n desc.push(I18n.t('sch_desc_onWorkdays'));\n } else {\n const tDows = daysOfWeek.map((day: number) => I18n.t(WEEKDAYS[day]));\n if (tDows.length === 1) {\n // on Monday\n desc.push(I18n.t('sch_desc_onWeekday', tDows[0]));\n } else if (tDows.length === 7) {\n // on every day\n desc.push(I18n.t('sch_desc_everyDay'));\n } else {\n const last = tDows.pop();\n // on Monday and Sunday\n desc.push(I18n.t('sch_desc_onWeekdays', tDows.join(', '), last));\n }\n }\n } else {\n desc.push(I18n.t('sch_desc_everyDay'));\n }\n } else {\n desc.push(I18n.t('sch_desc_everyNDay', schedule.period.days.toString()));\n }\n } else if (schedule.period.weeks) {\n if (schedule.period.weeks === 1) {\n desc.push(I18n.t('sch_desc_everyWeek'));\n } else {\n desc.push(I18n.t('sch_desc_everyNWeeks', schedule.period.weeks.toString()));\n }\n\n if (schedule.period.dows) {\n const daysOfWeek = JSON.parse(schedule.period.dows);\n if (daysOfWeek.length === 2 && daysOfWeek[0] === 0 && daysOfWeek[1] === 6) {\n // on weekends\n desc.push(I18n.t('sch_desc_onWeekends'));\n } else if (\n daysOfWeek.length === 5 &&\n daysOfWeek[0] === 1 &&\n daysOfWeek[1] === 2 &&\n daysOfWeek[2] === 3 &&\n daysOfWeek[3] === 4 &&\n daysOfWeek[4] === 5\n ) {\n // on workdays\n desc.push(I18n.t('sch_desc_onWorkdays'));\n } else {\n const tDows = daysOfWeek.map((day: number) => I18n.t(WEEKDAYS[day]));\n if (tDows.length === 1) {\n // on Monday\n desc.push(I18n.t('sch_desc_onWeekday', tDows[0]));\n } else if (tDows.length === 7) {\n // on every day\n desc.push(I18n.t('sch_desc_everyDay'));\n } else {\n const last = tDows.pop();\n // on Monday and Sunday\n desc.push(I18n.t('sch_desc_onWeekdays', tDows.join(', '), last));\n }\n }\n } else {\n return I18n.t('sch_desc_never');\n }\n } else if (schedule.period.months) {\n if (schedule.period.dates) {\n const dates = JSON.parse(schedule.period.dates);\n if (dates.length === 1) {\n // in 1 of month\n desc.push(I18n.t('sch_desc_onDate', dates[0]));\n } else if (dates.length === 31) {\n desc.push(I18n.t('sch_desc_onEveryDate'));\n } else if (!dates.length) {\n return I18n.t('sch_desc_never');\n } else {\n const last = dates.pop();\n // in 1 and 4 of month\n desc.push(I18n.t('sch_desc_onDates', dates.join(', '), last));\n }\n } else {\n desc.push(I18n.t('sch_desc_onEveryDate'));\n }\n\n if (schedule.period.months === 1) {\n desc.push(I18n.t('sch_desc_everyMonth'));\n } else if (typeof schedule.period.months === 'number') {\n desc.push(I18n.t('sch_desc_everyNMonths', schedule.period.months.toString()));\n } else {\n const months = JSON.parse(schedule.period.months);\n const tMonths = months.map((month: number) => I18n.t(MONTHS[month - 1]));\n if (!tMonths.length) {\n // in January\n return I18n.t('sch_desc_never');\n }\n if (tMonths.length === 1) {\n // in January\n desc.push(I18n.t('sch_desc_onMonth', tMonths[0]));\n } else if (tMonths.length === 12) {\n // every month\n desc.push(I18n.t('sch_desc_everyMonth'));\n } else {\n const last = tMonths.pop();\n // in January and May\n desc.push(I18n.t('sch_desc_onMonths', tMonths.join(', '), last));\n }\n }\n } else if (schedule.period.years) {\n if (schedule.period.years === 1) {\n desc.push(I18n.t('sch_desc_everyYear'));\n } else {\n desc.push(I18n.t('sch_desc_everyNYears', schedule.period.years.toString()));\n }\n desc.push(\n I18n.t(\n 'sch_desc_onDate',\n schedule.period.yearDate.toString(),\n schedule.period.yearMonth\n ? I18n.t(MONTHS[schedule.period.yearMonth - 1])\n : I18n.t('sch_desc_everyMonth'),\n ),\n );\n }\n\n // time\n if (schedule.time.exactTime) {\n if (ASTRO.includes(schedule.time.start)) {\n // at sunset\n desc.push(I18n.t('sch_desc_atTime', I18n.t(`sch_astro_${schedule.time.start}`)));\n } else {\n // at HH:MM\n desc.push(I18n.t('sch_desc_atTime', schedule.time.start));\n }\n } else {\n if (schedule.time.mode === PERIODS.minutes) {\n if (schedule.time.interval === 1) {\n // every minute\n desc.push(I18n.t('sch_desc_everyMinute'));\n } else {\n // every N minute\n desc.push(I18n.t('sch_desc_everyNMinutes', schedule.time.interval.toString()));\n }\n } else if (schedule.time.interval === 1) {\n // every minute\n desc.push(I18n.t('sch_desc_everyHour'));\n } else {\n // every N minute\n desc.push(I18n.t('sch_desc_everyNHours', schedule.time.interval.toString()));\n }\n\n const start =\n ASTRO.indexOf(schedule.time.start) !== -1\n ? I18n.t(`sch_astro_${schedule.time.start}`)\n : schedule.time.start;\n const end =\n ASTRO.indexOf(schedule.time.end) !== -1 ? I18n.t(`sch_astro_${schedule.time.end}`) : schedule.time.end;\n if (start !== '00:00' || (end !== '24:00' && end !== '23:59')) {\n // from HH:mm to HH:mm\n desc.push(I18n.t('sch_desc_intervalFromTo', start, end));\n }\n }\n\n if (!schedule.period.once) {\n // valid\n if (validFrom.getTime() > Date.now() && schedule.valid.to) {\n // from XXX to XXXX\n desc.push(I18n.t('sch_desc_validFromTo', schedule.valid.from, schedule.valid.to));\n } else if (validFrom.getTime() > Date.now()) {\n // from XXXX\n desc.push(I18n.t('sch_desc_validFrom', schedule.valid.from));\n } else if (schedule.valid.to) {\n // till XXXX\n desc.push(I18n.t('sch_desc_validTo', schedule.valid.to));\n }\n }\n return desc.join(' ');\n }\n\n getTimePeriodElements(): JSX.Element {\n const schedule = this.state.schedule;\n let wholeDay = false;\n let day = false;\n let night = false;\n let fromTo = true;\n if (schedule.time.start === '00:00' && schedule.time.end === '24:00') {\n wholeDay = true;\n fromTo = false;\n } else if (schedule.time.start === 'sunrise') {\n day = true;\n fromTo = false;\n } else if (schedule.time.start === 'sunset') {\n night = true;\n fromTo = false;\n }\n\n return (\n <div\n key=\"timePeriod\"\n style={styles.rowDiv}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!schedule.time.exactTime}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.exactTime = false;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_intervalTime')}\n />\n </div>\n <div style={styles.settingsDiv}>\n <div style={styles.settingsDiv}>\n {!schedule.time.exactTime && (\n <div>\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!fromTo}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = '00:00';\n _schedule.time.end = '23:59';\n this.onChange(_schedule);\n }}\n />\n }\n label={!fromTo ? I18n.t('sch_fromTo') : ''}\n />\n {fromTo && [\n <TextField\n variant=\"standard\"\n style={{ ...styles.inputTime, marginRight: 10 }}\n key=\"exactTimeFrom\"\n type=\"time\"\n sx={(theme: Theme) => ({\n '& input[type=\"time\"]::-webkit-calendar-picker-indicator': {\n filter: theme.palette.mode === 'dark' ? 'invert(80%)' : undefined,\n },\n })}\n value={this.state.schedule.time.start}\n // InputProps={{inputComponent: TextTime}}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = e.target.value;\n this.onChange(_schedule);\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n label={I18n.t('sch_from')}\n margin=\"normal\"\n />,\n <TextField\n variant=\"standard\"\n style={styles.inputTime}\n key=\"exactTimeTo\"\n type=\"time\"\n sx={(theme: Theme) => ({\n '& input[type=\"time\"]::-webkit-calendar-picker-indicator': {\n filter: theme.palette.mode === 'dark' ? 'invert(80%)' : undefined,\n },\n })}\n value={this.state.schedule.time.end}\n // InputProps={{inputComponent: TextTime}}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.end = e.target.value;\n this.onChange(_schedule);\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n label={I18n.t('sch_to')}\n margin=\"normal\"\n />,\n ]}\n </div>\n </div>\n )}\n\n {!schedule.time.exactTime && (\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!wholeDay}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = '00:00';\n _schedule.time.end = '24:00';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_wholeDay')}\n />\n </div>\n )}\n\n {!schedule.time.exactTime && (\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!day}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = 'sunrise';\n _schedule.time.end = 'sunset';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_astroDay')}\n />\n </div>\n )}\n\n {!schedule.time.exactTime && (\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!night}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = 'sunset';\n _schedule.time.end = 'sunrise';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_astroNight')}\n />\n </div>\n )}\n </div>\n {!schedule.time.exactTime && this.getPeriodSettingsMinutes(fromTo)}\n </div>\n </div>\n );\n }\n\n getTimeExactElements(): JSX.Element {\n const isAstro = ASTRO.includes(this.state.schedule.time.start);\n\n return (\n <div\n key=\"timeExact\"\n style={styles.rowDiv}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!this.state.schedule.time.exactTime}\n onClick={() => {\n const schedule = JSON.parse(JSON.stringify(this.state.schedule));\n schedule.time.exactTime = true;\n this.onChange(schedule);\n }}\n />\n }\n label={I18n.t('sch_exactTime')}\n />\n </div>\n {this.state.schedule.time.exactTime && (\n <Select\n variant=\"standard\"\n value={isAstro ? this.state.schedule.time.start : '00:00'}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = e.target.value;\n this.onChange(_schedule);\n }}\n >\n <MenuItem\n key=\"specific\"\n value=\"00:00\"\n >\n {I18n.t('sch_specificTime')}\n </MenuItem>\n {ASTRO.map(event => (\n <MenuItem\n key={event}\n value={event}\n >\n {I18n.t(`sch_astro_${event}`)}\n </MenuItem>\n ))}\n </Select>\n )}\n {this.state.schedule.time.exactTime && !isAstro && (\n <div style={styles.settingsDiv}>\n <TextField\n variant=\"standard\"\n style={styles.inputTime}\n key=\"exactTimeValue\"\n value={this.state.schedule.time.start}\n type=\"time\"\n sx={(theme: Theme) => ({\n '& input[type=\"time\"]::-webkit-calendar-picker-indicator': {\n filter: theme.palette.mode === 'dark' ? 'invert(80%)' : undefined,\n },\n })}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = e.target.value;\n this.onChange(_schedule);\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n margin=\"normal\"\n />\n </div>\n )}\n </div>\n );\n }\n\n static getDivider(): JSX.Element {\n return <hr style={styles.hr} />;\n }\n\n getPeriodModes(): JSX.Element[] {\n const schedule = this.state.schedule;\n const isOnce =\n !schedule.period.dows &&\n !schedule.period.months &&\n !schedule.period.dates &&\n !schedule.period.years &&\n !schedule.period.days &&\n !schedule.period.weeks;\n\n if (isOnce && !schedule.period.once) {\n schedule.period.once = Schedule.now2string(true);\n }\n\n return [\n // ----- once ---\n <div\n key=\"once\"\n style={{ ...styles.rowDiv, ...styles.rowOnce }}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!isOnce}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.once = _schedule.period.once || Schedule.now2string(true);\n _schedule.period.dows = '';\n _schedule.period.months = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodOnce')}\n />\n </div>\n {isOnce && (\n <div style={styles.settingsDiv}>\n <TextField\n variant=\"standard\"\n style={styles.inputDate}\n type=\"date\"\n ref={this.refOnce}\n key=\"exactDateAt\"\n defaultValue={string2USdate(schedule.period.once)}\n // InputProps={{inputComponent: TextTime}}\n onChange={e => {\n this.timerOnce && clearTimeout(this.timerOnce);\n this.timerOnce = null;\n\n if (this.refOnce.current) {\n this.refOnce.current.style.background = '#ff000030';\n }\n this.timerOnce = setTimeout(\n value => {\n this.timerOnce = null;\n if (this.refOnce.current) {\n this.refOnce.current.style.background = '';\n }\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const date = Schedule.string2date(value);\n if (date.toString() !== 'Invalid Date') {\n _schedule.period.once = `${padding(date.getDate())}.${padding(date.getMonth() + 1)}.${date.getFullYear()}`;\n this.onChange(_schedule);\n }\n },\n 1500,\n e.target.value,\n );\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n label={I18n.t('sch_at')}\n margin=\"normal\"\n />\n </div>\n )}\n </div>,\n\n // ----- days ---\n <Box\n component=\"div\"\n key=\"days\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowDays)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.days}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = 1;\n _schedule.period.dows = '';\n _schedule.period.months = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodDaily')}\n />\n </div>\n <div style={styles.settingsDiv}>\n {this.getPeriodSettingsDaily()}\n {schedule.period.days ? this.getPeriodSettingsWeekdays() : null}\n </div>\n </Box>,\n\n // ----- days of weeks ---\n /*\n !schedule.period.days && (\n <div key=\"dows\" style={styles.rowDiv + ' ' + styles.rowDows}>\n <div style={styles.modeDiv}>\n <FormControlLabel control={<Radio style={styles.inputRadio} checked={!!schedule.period.dows} onClick={() => {\n const schedule = JSON.parse(JSON.stringify(this.state.schedule));\n schedule.period.dows = schedule.period.dows ? '' : '[0,1,2,3,4,5,6]';\n this.onChange(schedule);\n }}/>}\n label={I18n.t('sch_periodWeekdays')} />\n </div>\n <div style={styles.settingsDiv}>\n {this.getPeriodSettingsWeekdays()}\n </div>\n </div>,\n */\n // ----- weeks ---\n <Box\n component=\"div\"\n key=\"weeks\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowDows)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.weeks}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = schedule.period.weeks ? 0 : 1;\n _schedule.period.dows = schedule.period.dows || '[0]';\n _schedule.period.months = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWeekly')}\n />\n </div>\n <Box\n component=\"div\"\n style={styles.settingsDiv}\n >\n <div style={styles.settingsDiv}>{this.getPeriodSettingsWeekly()}</div>\n <Box\n component=\"div\"\n sx={Utils.getStyle(this.props.theme, styles.settingsDiv, styles.rowDowsDows)}\n >\n {this.state.schedule.period.weeks ? this.getPeriodSettingsWeekdays() : null}\n </Box>\n </Box>\n </Box>,\n\n // ----- months ---\n <Box\n component=\"div\"\n key=\"months\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowMonths)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.months}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = 1;\n _schedule.period.dows = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodMonthly')}\n />\n </div>\n <div style={styles.settingsDiv}>\n {this.getPeriodSettingsMonthly()}\n {schedule.period.months ? (\n <Box>\n <Box\n component=\"div\"\n sx={Utils.getStyle(this.props.theme, styles.settingsDiv, styles.rowMonthsDates)}\n >\n <FormControlLabel\n control={\n <Checkbox\n style={styles.inputRadio}\n checked={!!schedule.period.dates}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = _schedule.period.months || 1;\n const dates = [];\n for (let i = 1; i <= 31; i++) {\n dates.push(i);\n }\n _schedule.period.dates =\n _schedule.period.dates || JSON.stringify(dates);\n _schedule.period.dows = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodDates')}\n />\n </Box>\n <Box\n component=\"div\"\n sx={Utils.getStyle(this.props.theme, styles.settingsDiv, styles.rowMonthsDates)}\n >\n {this.getPeriodSettingsDates()}\n </Box>\n </Box>\n ) : null}\n </div>\n </Box>,\n\n // ----- years ---\n <Box\n component=\"div\"\n key=\"years\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowYears)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.years}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = 1;\n _schedule.period.yearDate = 1;\n _schedule.period.yearMonth = 1;\n _schedule.period.dows = '';\n _schedule.period.months = 0;\n _schedule.period.dates = '';\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodYearly')}\n />\n </div>\n <div style={styles.settingsDiv}>\n <div style={styles.settingsDiv}>{this.getPeriodSettingsYearly()}</div>\n {!!schedule.period.years && (\n <div style={styles.settingsDiv}>\n <span>{I18n.t('sch_on')}</span>\n <Input\n key=\"input\"\n value={this.state.schedule.period.yearDate}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 1, max: 31 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.yearDate = parseInt(e.target.value, 10);\n if (_schedule.period.yearDate < 1) {\n _schedule.period.yearDate = 31;\n }\n if (_schedule.period.yearDate > 31) {\n _schedule.period.yearDate = 1;\n }\n this.onChange(_schedule);\n }}\n />\n <Select\n variant=\"standard\"\n value={schedule.period.yearMonth}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.yearMonth = e.target.value;\n this.onChange(_schedule);\n }}\n >\n <MenuItem\n key=\"every\"\n value={0}\n >\n {I18n.t('sch_yearEveryMonth')}\n </MenuItem>\n {MONTHS.map((month, i) => (\n <MenuItem\n key={month}\n value={i + 1}\n >\n {I18n.t(month)}\n </MenuItem>\n ))}\n </Select>\n </div>\n )}\n </div>\n </Box>,\n ];\n }\n\n getPeriodSettingsMinutes(fromTo: boolean): JSX.Element {\n return (\n <div style={{ display: 'inline-block', marginTop: fromTo ? 15 : 'inherit' }}>\n <label style={{ marginLeft: 4, marginRight: 4 }}>{I18n.t('sch_every')}</label>\n <Input\n value={this.state.schedule.time.interval}\n style={{\n ...styles.inputEvery,\n verticalAlign: 'bottom',\n }}\n type=\"number\"\n inputProps={{ min: 1 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.interval = parseInt(e.target.value, 10);\n this.onChange(_schedule);\n }}\n />\n <Select\n variant=\"standard\"\n value={this.state.schedule.time.mode}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.mode = e.target.value;\n this.onChange(_schedule);\n }}\n >\n <MenuItem value={PERIODS.minutes}>{I18n.t('sch_periodMinutes')}</MenuItem>\n <MenuItem value={PERIODS.hours}>{I18n.t('sch_periodHours')}</MenuItem>\n </Select>\n </div>\n );\n }\n\n getPeriodSettingsWeekdays(): JSX.Element[] {\n // || this.state.schedule.period.dows === '[1, 2, 3, 4, 5]' || this.state.schedule.period.dows === '[0, 6]'\n const schedule = this.state.schedule;\n const isSpecific =\n schedule.period.dows && schedule.period.dows !== '[1, 2, 3, 4, 5]' && schedule.period.dows !== '[0, 6]';\n return [\n <div key=\"workdays\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.dows === '[1, 2, 3, 4, 5]'}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dows = '[1, 2, 3, 4, 5]';\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWorkdays')}\n />\n </div>,\n\n <div key=\"weekend\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.dows === '[0, 6]'}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dows = '[0, 6]';\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWeekend')}\n />\n </div>,\n\n <div\n key=\"specific\"\n style={{ verticalAlign: 'top' }}\n >\n <FormControlLabel\n style={{ verticalAlign: 'top' }}\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!isSpecific}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dows = '[0, 1, 2, 3, 4, 5, 6]';\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWeekdays')}\n />\n {isSpecific && (schedule.period.days === 1 || schedule.period.weeks) && (\n <FormGroup\n row\n style={{ ...styles.inputGroup, width: 150 }}\n >\n {[1, 2, 3, 4, 5, 6, 0].map(i => (\n <FormControlLabel\n key={`specific_${i}`}\n style={styles.inputGroupElement}\n control={\n <Checkbox\n style={styles.inputSmallCheck}\n checked={schedule.period.dows.includes(i.toString())}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n let daysOfWeek: number[];\n try {\n daysOfWeek = JSON.parse(_schedule.period.dows);\n } catch {\n daysOfWeek = [];\n }\n if (e.target.checked && !daysOfWeek.includes(i)) {\n daysOfWeek.push(i);\n } else if (!e.target.checked && daysOfWeek.includes(i)) {\n daysOfWeek.splice(daysOfWeek.indexOf(i), 1);\n }\n daysOfWeek.sort((a: number, b: number) => a - b);\n _schedule.period.dows = JSON.stringify(daysOfWeek);\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t(WEEKDAYS[i])}\n />\n ))}\n </FormGroup>\n )}\n </div>,\n ];\n }\n\n getPeriodSettingsDaily(): JSX.Element[] | null {\n if (!this.state.schedule.period.days) {\n return null;\n }\n const schedule = this.state.schedule;\n return [\n <div key=\"every_day\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.days === 1 && !schedule.period.dows}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = 1;\n _schedule.period.dows = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryDay')}\n />\n </div>,\n <div key=\"everyN_day\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.days > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = 2;\n _schedule.period.dows = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {schedule.period.days > 1 && [\n <Input\n key=\"input\"\n value={this.state.schedule.period.days}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = parseInt(e.target.value, 10);\n _schedule.period.dows = '';\n this.onChange(_schedule);\n }}\n />,\n <span\n key=\"span\"\n style={{ paddingRight: 10 }}\n >\n {I18n.t('sch_periodDay')}\n </span>,\n ]}\n </div>,\n ];\n }\n\n getPeriodSettingsWeekly(): JSX.Element[] | null {\n if (!this.state.schedule.period.weeks) {\n return null;\n }\n const schedule = this.state.schedule;\n return [\n <div\n key=\"radios\"\n style={{ display: 'inline-block', verticalAlign: 'top' }}\n >\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.weeks === 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = 1;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryWeek')}\n />\n </div>\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.weeks > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = 2;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {schedule.period.weeks > 1 && [\n <Input\n key=\"input\"\n value={this.state.schedule.period.weeks}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = parseInt(e.target.value, 10);\n this.onChange(_schedule);\n }}\n />,\n <span key=\"text\">{I18n.t('sch_periodWeek')}</span>,\n ]}\n </div>\n </div>,\n ];\n }\n\n getPeriodSettingsDates(): JSX.Element | null {\n if (!this.state.schedule.period.dates) {\n return null;\n }\n const schedule = this.state.schedule;\n\n const dates = [];\n for (let i = 1; i <= 31; i++) {\n dates.push(i);\n }\n\n const parsedDates = JSON.parse(schedule.period.dates);\n\n return (\n <FormGroup\n row\n style={{ ...styles.inputGroup, maxWidth: 620 }}\n >\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={parsedDates.length === 31}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const _dates = [];\n for (let i = 1; i <= 31; i++) {\n _dates.push(i);\n }\n _schedule.period.dates = JSON.stringify(_dates);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_all')}\n />\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={!parsedDates.length}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dates = '[]';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_no_one')}\n />\n {parsedDates.length !== 31 && !!parsedDates.length && (\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={false}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const result = [];\n const _parsedDates = JSON.parse(_schedule.period.dates);\n for (let i = 1; i <= 31; i++) {\n if (!_parsedDates.includes(i)) {\n result.push(i);\n }\n }\n result.sort((a, b) => a - b);\n _schedule.period.dates = JSON.stringify(result);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_invert')}\n />\n )}\n <div />\n {dates.map(i => (\n <FormControlLabel\n key={`date_${i}`}\n style={\n !i\n ? {\n ...styles.inputDateDay,\n opacity: 0,\n cursor: 'default',\n userSelect: 'none',\n pointerEvents: 'none',\n }\n : styles.inputDateDay\n }\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={JSON.parse(schedule.period.dates).includes(i)}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n let _dates;\n try {\n _dates = JSON.parse(_schedule.period.dates);\n } catch {\n _dates = [];\n }\n if (e.target.checked && !_dates.includes(i)) {\n _dates.push(i);\n } else if (!e.target.checked && _dates.includes(i)) {\n _dates.splice(_dates.indexOf(i), 1);\n }\n _dates.sort((a: number, b: number) => a - b);\n _schedule.period.dates = JSON.stringify(_dates);\n this.onChange(_schedule);\n }}\n />\n }\n label={\n i < 10\n ? [\n <span\n key=\"0\"\n style={{ opacity: 0 }}\n >\n 0\n </span>,\n <span key=\"num\">{i}</span>,\n ]\n : i\n }\n />\n ))}\n </FormGroup>\n );\n }\n\n getPeriodSettingsMonthly(): JSX.Element[] | null {\n if (!this.state.schedule.period.months) {\n return null;\n }\n const schedule = this.state.schedule;\n const parsedMonths = typeof schedule.period.months === 'string' ? JSON.parse(schedule.period.months) : [];\n\n return [\n <div key=\"every\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={typeof schedule.period.months === 'number' && schedule.period.months === 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = 1;\n this.onChange(schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryMonth')}\n />\n </div>,\n <div key=\"everyN\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={typeof schedule.period.months === 'number' && schedule.period.months > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = 2;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {typeof schedule.period.months === 'number' &&\n schedule.period.months > 1 && [\n <Input\n key=\"input\"\n value={schedule.period.months}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = parseInt(e.target.value, 10);\n if (_schedule.period.months < 1) {\n _schedule.period.months = 1;\n }\n this.onChange(_schedule);\n }}\n />,\n <span key=\"text\">{I18n.t('sch_periodMonth')}</span>,\n ]}\n </div>,\n <div\n key=\"specific\"\n style={{ verticalAlign: 'top' }}\n >\n <FormControlLabel\n style={{ verticalAlign: 'top' }}\n control={\n <Radio\n style={styles.inputRadio}\n checked={typeof schedule.period.months === 'string'}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = '[1,2,3,4,5,6,7,8,9,10,11,12]';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodSpecificMonths')}\n />\n {typeof schedule.period.months === 'string' && (\n <FormGroup\n row\n style={styles.inputGroup}\n >\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={parsedMonths.length === 12}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const months = [];\n for (let i = 1; i <= 12; i++) {\n months.push(i);\n }\n _schedule.period.months = JSON.stringify(months);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_all')}\n />\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={!parsedMonths.length}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = '[]';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_no_one')}\n />\n {parsedMonths.length !== 12 && !!parsedMonths.length && (\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={false}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const result = [];\n const _parsedMonths = JSON.parse(_schedule.period.months);\n for (let i = 1; i <= 12; i++) {\n if (!_parsedMonths.includes(i)) {\n result.push(i);\n }\n }\n result.sort((a, b) => a - b);\n _schedule.period.months = JSON.stringify(result);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_invert')}\n />\n )}\n <div />\n {MONTHS.map((month, i) => (\n <FormControlLabel\n key={`month_${i}`}\n style={styles.inputGroupElement}\n control={\n <Checkbox\n style={styles.inputSmallCheck}\n checked={\n typeof schedule.period.months === 'string'\n ? JSON.parse(schedule.period.months).includes(i + 1)\n : schedule.period.months === i\n }\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n let months;\n try {\n months = JSON.parse(_schedule.period.months);\n } catch {\n months = [];\n }\n if (e.target.checked && !months.includes(i + 1)) {\n months.push(i + 1);\n } else if (!e.target.checked && months.includes(i + 1)) {\n months.splice(months.indexOf(i + 1), 1);\n }\n months.sort((a: number, b: number) => a - b);\n _schedule.period.months = JSON.stringify(months);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t(month)}\n />\n ))}\n </FormGroup>\n )}\n </div>,\n ];\n }\n\n getPeriodSettingsYearly(): JSX.Element[] | null {\n if (!this.state.schedule.period.years) {\n return null;\n }\n const schedule = this.state.schedule;\n return [\n <div key=\"year\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.years === 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = 1;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryYear')}\n />\n </div>,\n <div key=\"every\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.years > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = 2;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {schedule.period.years > 1 && [\n <Input\n key=\"input\"\n value={this.state.schedule.period.years}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = parseInt(e.target.value, 10);\n if (_schedule.period.years < 1) {\n _schedule.period.years = 1;\n }\n this.onChange(_schedule);\n }}\n />,\n <span key=\"text\">{I18n.t('sch_periodYear')}</span>,\n ]}\n </div>,\n ];\n }\n\n static now2string(isEnd?: boolean): string {\n const d = new Date();\n d.setHours(0);\n d.setMinutes(0);\n d.setSeconds(0);\n d.setMilliseconds(0);\n if (isEnd) {\n d.setDate(d.getDate() + 2);\n d.setMilliseconds(d.getMilliseconds() - 1);\n }\n\n return `${padding(d.getDate())}.${padding(d.getMonth() + 1)}.${padding(d.getFullYear())}`;\n }\n\n static string2date(str: string): Date {\n let parts = str.split('.'); // 31.12.2019\n if (parts.length === 1) {\n parts = str.split('-'); // 2018-12-31\n return new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10));\n }\n return new Date(parseInt(parts[2], 10), parseInt(parts[1], 10) - 1, parseInt(parts[0], 10));\n }\n\n getValidSettings(): JSX.Element {\n const schedule = this.state.schedule;\n // ----- from ---\n return (\n <div style={styles.rowDiv}>\n <div style={{ ...styles.modeDiv, verticalAlign: 'middle' }}>\n <span style={{ fontWeight: 'bold', paddingRight: 10 }}>{I18n.t('sch_valid')}</span>\n <span>{I18n.t('sch_validFrom')}</span>\n </div>\n <div style={styles.settingsDiv}>\n <TextField\n variant=\"standard\"\n style={{ ...styles.inputDate, marginRight: 10 }}\n key=\"exactTimeFrom\"\n inputRef={this.refFrom}\n defaultValue={string2USdate(schedule.valid.from)}\n type=\"date\"\n // inputComponent={TextDate}\n onChange={e => {\n this.timerFrom && clearTimeout(this.timerFrom);\n\n if (this.refFrom.current) {\n this.refFrom.current.style.background = '#ff000030';\n }\n\n this.timerFrom = setTimeout(\n value => {\n this.timerFrom = null;\n if (this.refFrom.current) {\n this.refFrom.current.style.background = '';\n }\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const date = Schedule.string2date(value);\n if (date.toString() !== 'Invalid Date') {\n _schedule.valid.from = `${padding(date.getDate())}.${padding(date.getMonth() + 1)}.${date.getFullYear()}`;\n this.onChange(_schedule);\n }\n },\n 1500,\n e.target.value,\n );\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n margin=\"normal\"\n />\n <FormControlLabel\n control={\n <Checkbox\n style={styles.inputRadio}\n checked={!!schedule.valid.to}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.valid.to = _schedule.valid.to ? '' : Schedule.now2string(true);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_validTo')}\n />\n {!!schedule.valid.to && (\n <TextField\n variant=\"standard\"\n inputRef={this.refTo}\n style={{ ...styles.inputDate, marginRight: 10 }}\n key=\"exactTimeFrom\"\n type=\"date\"\n defaultValue={string2USdate(schedule.valid.to)}\n // inputComponent={TextDate}\n onChange={e => {\n this.timerTo && clearTimeout(this.timerTo);\n\n if (this.refTo.current) {\n this.refTo.current.style.background = '#ff000030';\n }\n this.timerTo = setTimeout(\n value => {\n this.timerTo = null;\n if (this.refTo.current) {\n this.refTo.current.style.background = '';\n }\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const date = Schedule.string2date(value);\n if (date.toString() !== 'Invalid Date') {\n _schedule.valid.to = `${padding(date.getDate())}.${padding(date.getMonth() + 1)}.${date.getFullYear()}`;\n this.onChange(_schedule);\n }\n },\n 1500,\n e.target.value,\n );\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n margin=\"normal\"\n />\n )}\n </div>\n </div>\n );\n }\n\n render(): JSX.Element {\n return (\n <div style={{ height: 'calc(100% - 48px)', width: '100%', overflow: 'hidden' }}>\n <div>{this.state.desc}</div>\n <div style={styles.scrollWindow}>\n <h5>{I18n.t('sch_time')}</h5>\n {this.getTimePeriodElements()}\n {this.getTimeExactElements()}\n {Schedule.getDivider()}\n <h5>{I18n.t('sch_period')}</h5>\n {this.getPeriodModes()}\n {!this.state.schedule.period.once && Schedule.getDivider()}\n {!this.state.schedule.period.once && this.getValidSettings()}\n </div>\n </div>\n );\n }\n}\n"]}
|