@iobroker/adapter-react-v5 2.1.9 → 3.0.0

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.
Files changed (138) hide show
  1. package/Components/404.js.map +1 -1
  2. package/Components/ColorPicker.js.map +1 -1
  3. package/Components/ComplexCron.js.map +1 -1
  4. package/Components/FileBrowser.js +248 -222
  5. package/Components/FileBrowser.js.map +1 -1
  6. package/Components/FileViewer.js +219 -75
  7. package/Components/FileViewer.js.map +1 -1
  8. package/Components/Icon.js.map +1 -1
  9. package/Components/IconPicker.js.map +1 -1
  10. package/Components/IconSelector.js.map +1 -1
  11. package/Components/Image.js.map +1 -1
  12. package/Components/JsonConfigComponent/ChipInput.js +925 -0
  13. package/Components/JsonConfigComponent/ChipInput.js.map +1 -0
  14. package/Components/JsonConfigComponent/ConfigAlive.js +135 -0
  15. package/Components/JsonConfigComponent/ConfigAlive.js.map +1 -0
  16. package/Components/JsonConfigComponent/ConfigAutocomplete.js +204 -0
  17. package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -0
  18. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +311 -0
  19. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -0
  20. package/Components/JsonConfigComponent/ConfigCRON.js +195 -0
  21. package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -0
  22. package/Components/JsonConfigComponent/ConfigCertificateSelect.js +178 -0
  23. package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -0
  24. package/Components/JsonConfigComponent/ConfigCheckbox.js +112 -0
  25. package/Components/JsonConfigComponent/ConfigCheckbox.js.map +1 -0
  26. package/Components/JsonConfigComponent/ConfigChip.js +149 -0
  27. package/Components/JsonConfigComponent/ConfigChip.js.map +1 -0
  28. package/Components/JsonConfigComponent/ConfigColor.js +156 -0
  29. package/Components/JsonConfigComponent/ConfigColor.js.map +1 -0
  30. package/Components/JsonConfigComponent/ConfigCoordinates.js +165 -0
  31. package/Components/JsonConfigComponent/ConfigCoordinates.js.map +1 -0
  32. package/Components/JsonConfigComponent/ConfigCustomEasyAccess.js +180 -0
  33. package/Components/JsonConfigComponent/ConfigCustomEasyAccess.js.map +1 -0
  34. package/Components/JsonConfigComponent/ConfigDatePicker.js +117 -0
  35. package/Components/JsonConfigComponent/ConfigDatePicker.js.map +1 -0
  36. package/Components/JsonConfigComponent/ConfigGeneric.js +660 -0
  37. package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -0
  38. package/Components/JsonConfigComponent/ConfigIP.js +151 -0
  39. package/Components/JsonConfigComponent/ConfigIP.js.map +1 -0
  40. package/Components/JsonConfigComponent/ConfigImageUpload.js +215 -0
  41. package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -0
  42. package/Components/JsonConfigComponent/ConfigInstanceSelect.js +197 -0
  43. package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -0
  44. package/Components/JsonConfigComponent/ConfigJsonEditor.js +211 -0
  45. package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -0
  46. package/Components/JsonConfigComponent/ConfigLanguage.js +175 -0
  47. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -0
  48. package/Components/JsonConfigComponent/ConfigNumber.js +194 -0
  49. package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -0
  50. package/Components/JsonConfigComponent/ConfigObjectId.js +201 -0
  51. package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -0
  52. package/Components/JsonConfigComponent/ConfigPanel.js +421 -0
  53. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -0
  54. package/Components/JsonConfigComponent/ConfigPassword.js +236 -0
  55. package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -0
  56. package/Components/JsonConfigComponent/ConfigPattern.js +94 -0
  57. package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -0
  58. package/Components/JsonConfigComponent/ConfigSelect.js +163 -0
  59. package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -0
  60. package/Components/JsonConfigComponent/ConfigSelectSendTo.js +258 -0
  61. package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -0
  62. package/Components/JsonConfigComponent/ConfigSendto.js +282 -0
  63. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -0
  64. package/Components/JsonConfigComponent/ConfigSetState.js +266 -0
  65. package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -0
  66. package/Components/JsonConfigComponent/ConfigStaticDivider.js +88 -0
  67. package/Components/JsonConfigComponent/ConfigStaticDivider.js.map +1 -0
  68. package/Components/JsonConfigComponent/ConfigStaticHeader.js +81 -0
  69. package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -0
  70. package/Components/JsonConfigComponent/ConfigStaticImage.js +88 -0
  71. package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -0
  72. package/Components/JsonConfigComponent/ConfigStaticText.js +104 -0
  73. package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -0
  74. package/Components/JsonConfigComponent/ConfigTable.js +651 -0
  75. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -0
  76. package/Components/JsonConfigComponent/ConfigTabs.js +166 -0
  77. package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -0
  78. package/Components/JsonConfigComponent/ConfigText.js +170 -0
  79. package/Components/JsonConfigComponent/ConfigText.js.map +1 -0
  80. package/Components/JsonConfigComponent/ConfigTextSendTo.js +168 -0
  81. package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -0
  82. package/Components/JsonConfigComponent/ConfigTimePicker.js +111 -0
  83. package/Components/JsonConfigComponent/ConfigTimePicker.js.map +1 -0
  84. package/Components/JsonConfigComponent/ConfigTopic.js +140 -0
  85. package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -0
  86. package/Components/JsonConfigComponent/ConfigUser.js +176 -0
  87. package/Components/JsonConfigComponent/ConfigUser.js.map +1 -0
  88. package/Components/JsonConfigComponent/index.js +511 -0
  89. package/Components/JsonConfigComponent/index.js.map +1 -0
  90. package/Components/Loader.js.map +1 -1
  91. package/Components/Loaders/PT.js.map +1 -1
  92. package/Components/Loaders/Vendor.js.map +1 -1
  93. package/Components/Logo.js.map +1 -1
  94. package/Components/MDUtils.js.map +1 -1
  95. package/Components/ObjectBrowser.js +24 -42
  96. package/Components/ObjectBrowser.js.map +1 -1
  97. package/Components/Router.js.map +1 -1
  98. package/Components/SaveCloseButtons.js.map +1 -1
  99. package/Components/Schedule.js.map +1 -1
  100. package/Components/SelectWithIcon.js.map +1 -1
  101. package/Components/SimpleCron/cronText.js.map +1 -1
  102. package/Components/SimpleCron/index.js.map +1 -1
  103. package/Components/TabContainer.js.map +1 -1
  104. package/Components/TabContent.js.map +1 -1
  105. package/Components/TabHeader.js.map +1 -1
  106. package/Components/TextWithIcon.js.map +1 -1
  107. package/Components/TreeTable.js.map +1 -1
  108. package/Components/Utils.js +25 -0
  109. package/Components/Utils.js.map +1 -1
  110. package/Components/withWidth.js +42 -0
  111. package/Components/withWidth.js.map +1 -0
  112. package/Connection.js.map +1 -1
  113. package/Dialogs/ComplexCron.js.map +1 -1
  114. package/Dialogs/Confirm.js.map +1 -1
  115. package/Dialogs/Cron.js.map +1 -1
  116. package/Dialogs/Error.js.map +1 -1
  117. package/Dialogs/Message.js.map +1 -1
  118. package/Dialogs/SelectID.js.map +1 -1
  119. package/Dialogs/SimpleCron.js.map +1 -1
  120. package/Dialogs/TextInput.js.map +1 -1
  121. package/GenericApp.js.map +1 -1
  122. package/README.md +11 -1
  123. package/Theme.js.map +1 -1
  124. package/icons/IconAdapter.js.map +1 -1
  125. package/icons/IconAlias.js.map +1 -1
  126. package/icons/IconChannel.js.map +1 -1
  127. package/icons/IconClearFilter.js.map +1 -1
  128. package/icons/IconClosed.js.map +1 -1
  129. package/icons/IconCopy.js.map +1 -1
  130. package/icons/IconDevice.js.map +1 -1
  131. package/icons/IconDocument.js.map +1 -1
  132. package/icons/IconExpert.js.map +1 -1
  133. package/icons/IconFx.js.map +1 -1
  134. package/icons/IconInstance.js.map +1 -1
  135. package/icons/IconLogout.js.map +1 -1
  136. package/icons/IconOpen.js.map +1 -1
  137. package/icons/IconState.js.map +1 -1
  138. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"Schedule.js","names":["styles","theme","hr","border","borderTop","scrollWindow","width","overflow","height","rowDiv","modeDiv","display","verticalAlign","settingsDiv","inputTime","marginTop","marginLeft","inputDate","inputEvery","marginRight","inputRadio","padding","inputGroup","maxWidth","inputGroupElement","inputDateDay","inputDateDayCheck","inputSmallCheck","rowOnce","rowDays","background","palette","mode","rowDows","rowDates","rowWeeks","rowMonths","rowMonthsDates","rowYears","rowDaysDows","paddingLeft","paddingBottom","rowDowsDows","WEEKDAYS","MONTHS","PERIODS","ASTRO","num","TextTime","props","inputRef","other","placeholder","propTypes","PropTypes","func","isRequired","TextDate","DEFAULT","time","exactTime","start","end","interval","period","once","days","dows","dates","weeks","months","years","yearMonth","yearDate","valid","from","to","string2USdate","date","parts","split","length","Schedule","schedule","JSON","parse","e","Object","keys","onChange","setTimeout","state","assign","now2string","refFrom","React","createRef","refTo","refOnce","desc","state2text","stringify","force","isDiff","setState","copy","string2date","today","Date","setHours","setMinutes","setSeconds","setMilliseconds","wholeDay","day","night","fromTo","classes","_schedule","I18n","t","target","value","shrink","getPeriodSettingsMinutes","isAstro","indexOf","map","event","isOnce","timerOnce","clearTimeout","current","style","toString","getDate","getMonth","getFullYear","getPeriodSettingsDaily","getPeriodSettingsWeekdays","getPeriodSettingsWeekly","getPeriodSettingsMonthly","i","push","getPeriodSettingsDates","getPeriodSettingsYearly","parseInt","month","minutes","hours","isSpecific","includes","checked","splice","sort","a","b","paddingRight","parsedDates","result","opacity","cursor","userSelect","pointerEvents","parsedMonths","fontWeight","timerFrom","timerTo","getTimePeriodElements","getTimeExactElements","getDivider","getPeriodModes","getValidSettings","validFrom","now","tDows","last","pop","join","tMonths","getTime","isEnd","d","setDate","getMilliseconds","str","Component","string"],"sources":["Schedule.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Input from '@mui/material/Input';\nimport Radio from '@mui/material/Radio';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport FormGroup from '@mui/material/FormGroup';\nimport Checkbox from '@mui/material/Checkbox';\nimport MaskedInput from 'react-text-mask';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport TextField from '@mui/material/TextField';\n\nimport I18n from '../i18n';\n\nconst styles = theme => ({\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\n rowDays: {\n background: theme.palette.mode !== 'dark' ? '#ddeaff' : '#4b5057'\n },\n rowDows: {\n background: theme.palette.mode !== 'dark' ? '#DDFFDD' : '#52646c'\n },\n rowDates: {\n background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#747a86'\n },\n rowWeeks: {\n background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#717680'\n },\n rowMonths: {\n background: theme.palette.mode !== 'dark' ? '#DDFFFF' : '#1f5557'\n },\n rowMonthsDates: {\n background: theme.palette.mode !== 'dark' ? '#EEFFFF' : '#3c5737',\n maxWidth: 600\n },\n rowYears: {\n background: theme.palette.mode !== 'dark' ? '#fbffdd' : '#574b33'\n },\n rowDaysDows: {\n background: theme.palette.mode !== 'dark' ? '#EEEAFF' : '#573544',\n paddingLeft: 10,\n paddingBottom: 10\n },\n rowDowsDows: {\n background: theme.palette.mode !== 'dark' ? '#EEFFEE' : '#3d4c54',\n paddingLeft: 10,\n paddingBottom: 10\n }\n});\n\nconst WEEKDAYS = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n 'Sunday',\n];\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) {\n if (num < 10) {\n return '0' + num;\n } else {\n return '' + num;\n }\n}\n\nfunction TextTime(props) {\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\nTextTime.propTypes = {\n inputRef: PropTypes.func.isRequired,\n};\n\nfunction TextDate(props) {\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\nTextDate.propTypes = {\n inputRef: PropTypes.func.isRequired,\n};\n\nconst DEFAULT = {\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) {\n const parts = date.split('.');\n if (parts.length === 3) {\n return parts[2] + '-' + parts[1] + '-' + parts[0];\n }\n\n}\n\nclass Schedule extends React.Component {\n constructor(props) {\n super(props);\n let schedule;\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 (e) {\n\n }\n }\n\n if ((!schedule || !Object.keys(schedule).length) && this.props.onChange) {\n setTimeout(() => this.onChange(this.state.schedule, true), 200);\n }\n schedule = schedule || {};\n schedule = Object.assign({}, 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(() =>\n this.props.onChange && this.props.onChange(JSON.stringify(schedule)), 100);\n }\n }\n\n onChange(schedule, force) {\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 let once = copy.period.once;\n delete copy.period;\n copy.period = {once};\n delete copy.valid;\n } else if (copy.period.days) {\n let days = copy.period.days;\n let dows = copy.period.dows;\n delete copy.period;\n copy.period = {days};\n if (dows && dows !== '[]') {\n copy.period.dows = dows;\n }\n } else if (copy.period.weeks) {\n let weeks = copy.period.weeks;\n let dows = copy.period.dows;\n delete copy.period;\n copy.period = {weeks};\n if (dows && dows !== '[]') {\n copy.period.dows = dows;\n }\n } else if (copy.period.months) {\n let months = copy.period.months;\n let 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 let years = copy.period.years;\n let yearMonth = copy.period.yearMonth;\n let 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 (copy.period.days === 1 || copy.period.weeks === 1 || copy.period.months === 1 || copy.period.years === 1) {\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) {\n if (typeof schedule === 'string') {\n try {\n schedule = JSON.parse(schedule);\n } catch (e) {\n schedule = {};\n }\n }\n\n let desc = [];\n let validFrom = Schedule.string2date(schedule.valid.from);\n if (schedule.period.once) {\n // once\n let once = Schedule.string2date(schedule.period.once);\n let 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 ne be not executed any more, because start is in the past\n return I18n.t('sch_desc_onceInPast');\n } else {\n // only once\n desc.push(I18n.t('sch_desc_once_on', schedule.period.once));\n }\n } else if (schedule.period.days) {\n if (schedule.period.days === 1) {\n if (schedule.period.dows) {\n const dows = JSON.parse(schedule.period.dows);\n if (dows.length === 2 && dows[0] === 0 && dows[1] === 6) {\n // on weekends\n desc.push(I18n.t('sch_desc_onWeekends'));\n } else if (dows.length === 5 && dows[0] === 1 && dows[1] === 2 && dows[2] === 3 && dows[3] === 4 && dows[4] === 5) {\n // on workdays\n desc.push(I18n.t('sch_desc_onWorkdays'));\n } else {\n const tDows = dows.map(day => 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));\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));\n }\n\n if (schedule.period.dows) {\n const dows = JSON.parse(schedule.period.dows);\n if (dows.length === 2 && dows[0] === 0 && dows[1] === 6) {\n // on weekends\n desc.push(I18n.t('sch_desc_onWeekends'));\n } else if (dows.length === 5 && dows[0] === 1 && dows[1] === 2 && dows[2] === 3 && dows[3] === 4 && dows[4] === 5) {\n // on workdays\n desc.push(I18n.t('sch_desc_onWorkdays'));\n } else {\n const tDows = dows.map(day => 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));\n } else {\n const months = JSON.parse(schedule.period.months);\n const tMonths = months.map(month => I18n.t(MONTHS[month - 1]));\n if (!tMonths.length) {\n // in January\n return I18n.t('sch_desc_never');\n } else 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));\n }\n desc.push(I18n.t('sch_desc_onDate', schedule.period.yearDate, schedule.period.yearMonth ? I18n.t(MONTHS[schedule.period.yearMonth - 1]) : I18n.t('sch_desc_everyMonth')));\n }\n\n // time\n if (schedule.time.exactTime) {\n if (ASTRO.indexOf(schedule.time.start) !== -1) {\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 minutes\n desc.push(I18n.t('sch_desc_everyNMinutes', schedule.time.interval));\n }\n } else {\n if (schedule.time.interval === 1) {\n // every minute\n desc.push(I18n.t('sch_desc_everyHour'));\n } else {\n // every N minutes\n desc.push(I18n.t('sch_desc_everyNHours', schedule.time.interval));\n }\n }\n const start = ASTRO.indexOf(schedule.time.start) !== -1 ? I18n.t('sch_astro_' + schedule.time.start) : schedule.time.start;\n const end = 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() {\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 <div key=\"timePeriod\" className={this.props.classes.rowDiv}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 }}/>} label={I18n.t('sch_intervalTime')}/>\n </div>\n <div className={this.props.classes.settingsDiv}>\n <div className={this.props.classes.settingsDiv}>\n {!schedule.time.exactTime && <div>\n <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={!fromTo ? I18n.t('sch_fromTo') : ''}/>\n {fromTo && [\n <TextField\n variant=\"standard\"\n className={this.props.classes.inputTime}\n style={{marginRight: 10}}\n key=\"exactTimeFrom\"\n type=\"time\"\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 InputLabelProps={{shrink: true,}}\n label={I18n.t('sch_from')}\n margin=\"normal\"\n />,\n <TextField\n variant=\"standard\"\n className={this.props.classes.inputTime}\n key=\"exactTimeTo\"\n type=\"time\"\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 InputLabelProps={{shrink: true,}}\n label={I18n.t('sch_to')}\n margin=\"normal\"\n />\n ]}\n </div>\n </div>}\n\n {!schedule.time.exactTime && <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 }}/>} label={I18n.t('sch_wholeDay')}/></div>}\n\n {!schedule.time.exactTime && <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 }}/>} label={I18n.t('sch_astroDay')}/></div>}\n\n {!schedule.time.exactTime && <div><FormControlLabel\n control={<Radio\n className={this.props.classes.inputRadio}\n checked={!!night} 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 }}/>} label={I18n.t('sch_astroNight')}/></div>}\n </div>\n {!schedule.time.exactTime && this.getPeriodSettingsMinutes()}\n </div>\n </div>;\n }\n\n getTimeExactElements() {\n const isAstro = ASTRO.indexOf(this.state.schedule.time.start) !== -1;\n\n return <div key=\"timeExact\" className={this.props.classes.rowDiv}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel control={<Radio\n className={this.props.classes.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 }}/>} label={I18n.t('sch_exactTime')}/>\n </div>\n {this.state.schedule.time.exactTime && <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 key=\"specific\" value={'00:00'}>{I18n.t('sch_specificTime')}</MenuItem>\n {ASTRO.map(event => <MenuItem key={event} value={event}>{I18n.t('sch_astro_' + event)}</MenuItem>)}\n </Select>\n }\n {this.state.schedule.time.exactTime && !isAstro &&\n <div className={this.props.classes.settingsDiv}><TextField\n variant=\"standard\"\n className={this.props.classes.inputTime}\n key=\"exactTimeValue\"\n value={this.state.schedule.time.start}\n type=\"time\"\n // 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 InputLabelProps={{shrink: true,}}\n margin=\"normal\"\n /></div>\n }\n </div>;\n }\n\n getDivider() {\n return <hr className={this.props.classes.hr}/>;\n }\n\n getPeriodModes() {\n const schedule = this.state.schedule;\n const isOnce = !schedule.period.dows && !schedule.period.months && !schedule.period.dates && !schedule.period.years && !schedule.period.days && !schedule.period.weeks;\n if (isOnce && !schedule.period.once) {\n schedule.period.once = Schedule.now2string(true);\n }\n\n return [\n // ----- once ---\n <div key=\"once\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowOnce}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodOnce')}/>\n </div>\n {isOnce && <div className={this.props.classes.settingsDiv}>\n {<TextField\n variant=\"standard\"\n className={this.props.classes.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\n this.refOnce.current.style.background = '#ff000030';\n this.timerOnce = setTimeout(value => {\n this.timerOnce = null;\n this.refOnce.current.style.background = '';\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 }, 1500, e.target.value);\n }}\n InputLabelProps={{shrink: true,}}\n label={I18n.t('sch_at')}\n margin=\"normal\"\n />}\n </div>}\n </div>,\n\n\n // ----- days ---\n <div key=\"days\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowDays}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodDaily')}/>\n </div>\n <div className={this.props.classes.settingsDiv}>\n {this.getPeriodSettingsDaily()}\n {schedule.period.days ? this.getPeriodSettingsWeekdays() : null}\n </div>\n </div>,\n\n\n // ----- days of weeks ---\n /*!schedule.period.days && (\n <div key=\"dows\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowDows}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel control={<Radio className={this.props.classes.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 className={this.props.classes.settingsDiv}>\n {this.getPeriodSettingsWeekdays()}\n </div>\n </div>,\n*/\n // ----- weeks ---\n <div key=\"weeks\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowDows}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodWeekly')}/>\n </div>\n <div className={this.props.classes.settingsDiv}>\n <div className={this.props.classes.settingsDiv}>{this.getPeriodSettingsWeekly()}</div>\n <div\n className={this.props.classes.settingsDiv + ' ' + this.props.classes.rowDowsDows}>{this.state.schedule.period.weeks ? this.getPeriodSettingsWeekdays() : null}</div>\n </div>\n </div>,\n\n\n // ----- months ---\n <div key=\"months\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowMonths}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodMonthly')}/>\n </div>\n <div className={this.props.classes.settingsDiv}>\n {this.getPeriodSettingsMonthly()}\n {schedule.period.months ? <div>\n <div className={this.props.classes.settingsDiv + ' ' + this.props.classes.rowMonthsDates}>\n <FormControlLabel\n control={<Checkbox\n className={this.props.classes.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 = _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 label={I18n.t('sch_periodDates')}/></div>\n <div className={this.props.classes.settingsDiv + ' ' + this.props.classes.rowMonthsDates}>\n {this.getPeriodSettingsDates()}\n </div>\n </div> : null}\n </div>\n </div>,\n\n\n // ----- years ---\n <div key=\"years\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowYears}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodYearly')}/>\n </div>\n <div className={this.props.classes.settingsDiv}>\n <div className={this.props.classes.settingsDiv}>{this.getPeriodSettingsYearly()}</div>\n {!!schedule.period.years && <div className={this.props.classes.settingsDiv}>\n <span>{I18n.t('sch_on')}</span>\n <Input\n key=\"input\"\n value={this.state.schedule.period.yearDate}\n className={this.props.classes.inputEvery}\n type=\"number\"\n min=\"1\"\n 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) _schedule.period.yearDate = 31;\n if (_schedule.period.yearDate > 31) _schedule.period.yearDate = 1;\n this.onChange(_schedule);\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 key=\"every\" value={0}>{I18n.t('sch_yearEveryMonth')}</MenuItem>\n {MONTHS.map((month, i) => <MenuItem key={month} value={i + 1}>{I18n.t(month)}</MenuItem>)}\n </Select>\n </div>}\n </div>\n </div>,\n ];\n }\n\n getPeriodSettingsMinutes() {\n return <div style={{display: 'inline-block'}}>\n <label>{I18n.t('sch_every')}</label>\n <Input\n value={this.state.schedule.time.interval}\n style={{verticalAlign: 'bottom'}}\n className={this.props.classes.inputEvery}\n type=\"number\"\n 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 <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 getPeriodSettingsWeekdays() {\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 = schedule.period.dows && schedule.period.dows !== '[1, 2, 3, 4, 5]' && schedule.period.dows !== '[0, 6]';\n return [\n <div key=\"workdays\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodWorkdays')}/></div>,\n\n <div key=\"weekend\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodWeekend')}/></div>,\n\n <div\n key=\"specific\"\n style={{verticalAlign: 'top'}}\n ><FormControlLabel\n style={{verticalAlign: 'top'}}\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodWeekdays')}/>\n {isSpecific && (schedule.period.days === 1 || schedule.period.weeks) &&\n <FormGroup row className={this.props.classes.inputGroup} style={{width: 150}}>\n {[1, 2, 3, 4, 5, 6, 0].map(i =>\n <FormControlLabel\n key={'specific_' + i}\n className={this.props.classes.inputGroupElement}\n control={\n <Checkbox\n className={this.props.classes.inputSmallCheck}\n checked={schedule.period.dows.includes('' + i)}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n let dows;\n try {\n dows = JSON.parse(_schedule.period.dows);\n } catch (e) {\n dows = [];\n }\n if (e.target.checked && !dows.includes(i)) {\n dows.push(i);\n } else if (!e.target.checked && dows.includes(i)) {\n dows.splice(dows.indexOf(i), 1);\n }\n dows.sort((a, b) => a - b);\n _schedule.period.dows = JSON.stringify(dows);\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 </FormGroup>}\n </div>,\n ];\n }\n\n getPeriodSettingsDaily() {\n if (!this.state.schedule.period.days) {\n return;\n }\n const schedule = this.state.schedule;\n return [\n <div key=\"every_day\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEveryDay')}/></div>,\n <div key=\"everyN_day\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEvery')}/>\n {schedule.period.days > 1 && [<Input\n key=\"input\"\n value={this.state.schedule.period.days}\n className={this.props.classes.inputEvery}\n type=\"number\"\n 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 <span key=\"span\" style={{paddingRight: 10}}>{I18n.t('sch_periodDay')}</span>]}\n </div>,\n ];\n }\n\n getPeriodSettingsWeekly() {\n if (!this.state.schedule.period.weeks) {\n return;\n }\n const schedule = this.state.schedule;\n return [\n <div key=\"radios\" style={{display: 'inline-block', verticalAlign: 'top'}}>\n <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEveryWeek')}/></div>\n <div>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEvery')}/>\n {schedule.period.weeks > 1 && [<Input\n value={this.state.schedule.period.weeks}\n className={this.props.classes.inputEvery}\n type=\"number\"\n 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 }}/>, <span>{I18n.t('sch_periodWeek')}</span>]}\n </div>\n </div>,\n ];\n }\n\n getPeriodSettingsDates() {\n if (!this.state.schedule.period.dates) {\n return;\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 <FormGroup\n row\n className={this.props.classes.inputGroup}\n style={{maxWidth: 620}}\n >\n <FormControlLabel\n className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={parsedDates.length === 31}\n onChange={e => {\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 } label={I18n.t('sch_all')}\n />\n <FormControlLabel\n className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={!parsedDates.length}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dates = '[]';\n this.onChange(_schedule);\n }}\n />\n } label={I18n.t('sch_no_one')}\n />\n {parsedDates.length !== 31 && !!parsedDates.length &&\n <FormControlLabel\n className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={false}\n onChange={e => {\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.indexOf(i) === -1) {\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 <div/>\n {dates.map(i =>\n <FormControlLabel\n key={'date_' + i}\n className={this.props.classes.inputDateDay}\n style={!i ? {\n opacity: 0,\n cursor: 'default',\n userSelect: 'none',\n pointerEvents: 'none'\n } : {}}\n control={\n <Checkbox\n className={this.props.classes.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 (e) {\n dates = [];\n }\n if (e.target.checked && dates.indexOf(i) === -1) {\n dates.push(i);\n } else if (!e.target.checked && dates.indexOf(i) !== -1) {\n dates.splice(dates.indexOf(i), 1);\n }\n dates.sort((a, b) => a - b);\n _schedule.period.dates = JSON.stringify(dates);\n this.onChange(_schedule);\n }}\n />\n }\n label={i < 10 ? [<span key=\"0\" style={{opacity: 0}}>0</span>,\n <span key=\"num\">{i}</span>] : i}\n />)}\n </FormGroup>;\n }\n\n getPeriodSettingsMonthly() {\n if (!this.state.schedule.period.months) {\n return;\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\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEveryMonth')}/></div>,\n <div key=\"everyN\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEvery')}/>\n {typeof schedule.period.months === 'number' && schedule.period.months > 1 && [<Input\n value={schedule.period.months}\n className={this.props.classes.inputEvery}\n type=\"number\"\n 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) _schedule.period.months = 1;\n this.onChange(_schedule);\n }}/>, <span>{I18n.t('sch_periodMonth')}</span>]}\n </div>,\n <div key=\"specific\" style={{verticalAlign: 'top'}}><FormControlLabel\n style={{verticalAlign: 'top'}}\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodSpecificMonths')}/>\n {typeof schedule.period.months === 'string' &&\n <FormGroup\n row\n className={this.props.classes.inputGroup}>\n <FormControlLabel\n className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={parsedMonths.length === 12}\n onChange={e => {\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 } label={I18n.t('sch_all')}\n />\n <FormControlLabel\n className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={!parsedMonths.length}\n onChange={e => {\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 className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={false}\n onChange={e => {\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.indexOf(i) === -1) {\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 <div/>\n {MONTHS.map((month, i) =>\n <FormControlLabel\n className={this.props.classes.inputGroupElement}\n control={\n <Checkbox\n className={this.props.classes.inputSmallCheck}\n checked={JSON.parse(schedule.period.months).includes(i + 1)}\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 (e) {\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, b) => a - b);\n _schedule.period.months = JSON.stringify(months);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t(month)}\n />)}\n </FormGroup>}\n </div>,\n ];\n }\n\n getPeriodSettingsYearly() {\n if (!this.state.schedule.period.years) {\n return;\n }\n const schedule = this.state.schedule;\n return [\n <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEveryYear')}/></div>,\n <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEvery')}/>\n {schedule.period.years > 1 &&\n [<Input\n value={this.state.schedule.period.years}\n className={this.props.classes.inputEvery} type=\"number\" 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) _schedule.period.years = 1;\n this.onChange(_schedule);\n }}/>,\n <span>{I18n.t('sch_periodYear')}</span>]}\n </div>,\n ];\n }\n\n static now2string(isEnd) {\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) {\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 } else {\n return new Date(parseInt(parts[2], 10), parseInt(parts[1], 10) - 1, parseInt(parts[0], 10));\n }\n }\n\n getValidSettings() {\n const schedule = this.state.schedule;\n // ----- from ---\n return <div className={this.props.classes.rowDiv}>\n <div className={this.props.classes.modeDiv} style={{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 className={this.props.classes.settingsDiv}>\n <TextField\n variant=\"standard\"\n className={this.props.classes.inputDate}\n style={{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 this.refFrom.current.style.background = '#ff000030';\n\n this.timerFrom = setTimeout(value => {\n this.timerFrom = null;\n this.refFrom.current.style.background = '';\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 }, 1500, e.target.value);\n }}\n InputLabelProps={{shrink: true,}}\n margin=\"normal\"\n />\n <FormControlLabel\n control={<Checkbox\n className={this.props.classes.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 label={I18n.t('sch_validTo')}/>\n {!!schedule.valid.to && <TextField\n variant=\"standard\"\n inputRef={this.refTo}\n className={this.props.classes.inputDate}\n style={{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 this.refTo.current.style.background = '#ff000030';\n this.timerTo = setTimeout(value => {\n this.timerTo = null;\n this.refTo.current.style.background = '';\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 }, 1500, e.target.value);\n }}\n InputLabelProps={{shrink: true,}}\n margin=\"normal\"\n />}\n </div>\n </div>;\n }\n\n render() {\n return <div style={{height: 'calc(100% - 48px)', width: '100%', overflow: 'hidden'}}>\n <div>{this.state.desc}</div>\n <div className={this.props.classes.scrollWindow}>\n <h5>{I18n.t('sch_time')}</h5>\n {this.getTimePeriodElements()}\n {this.getTimeExactElements()}\n {this.getDivider()}\n <h5>{I18n.t('sch_period')}</h5>\n {this.getPeriodModes()}\n {!this.state.schedule.period.once && this.getDivider()}\n {!this.state.schedule.period.once && this.getValidSettings()}\n </div>\n </div>;\n }\n}\n\nSchedule.propTypes = {\n schedule: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(Schedule);\n\n"],"mappings":"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"}
1
+ {"version":3,"file":"Schedule.js","names":["styles","theme","hr","border","borderTop","scrollWindow","width","overflow","height","rowDiv","modeDiv","display","verticalAlign","settingsDiv","inputTime","marginTop","marginLeft","inputDate","inputEvery","marginRight","inputRadio","padding","inputGroup","maxWidth","inputGroupElement","inputDateDay","inputDateDayCheck","inputSmallCheck","rowOnce","rowDays","background","palette","mode","rowDows","rowDates","rowWeeks","rowMonths","rowMonthsDates","rowYears","rowDaysDows","paddingLeft","paddingBottom","rowDowsDows","WEEKDAYS","MONTHS","PERIODS","ASTRO","num","TextTime","props","inputRef","other","placeholder","propTypes","PropTypes","func","isRequired","TextDate","DEFAULT","time","exactTime","start","end","interval","period","once","days","dows","dates","weeks","months","years","yearMonth","yearDate","valid","from","to","string2USdate","date","parts","split","length","Schedule","schedule","JSON","parse","e","Object","keys","onChange","setTimeout","state","assign","now2string","refFrom","React","createRef","refTo","refOnce","desc","state2text","stringify","force","isDiff","setState","copy","string2date","today","Date","setHours","setMinutes","setSeconds","setMilliseconds","wholeDay","day","night","fromTo","classes","_schedule","I18n","t","target","value","shrink","getPeriodSettingsMinutes","isAstro","indexOf","map","event","isOnce","timerOnce","clearTimeout","current","style","toString","getDate","getMonth","getFullYear","getPeriodSettingsDaily","getPeriodSettingsWeekdays","getPeriodSettingsWeekly","getPeriodSettingsMonthly","i","push","getPeriodSettingsDates","getPeriodSettingsYearly","parseInt","month","minutes","hours","isSpecific","includes","checked","splice","sort","a","b","paddingRight","parsedDates","result","opacity","cursor","userSelect","pointerEvents","parsedMonths","fontWeight","timerFrom","timerTo","getTimePeriodElements","getTimeExactElements","getDivider","getPeriodModes","getValidSettings","validFrom","now","tDows","last","pop","join","tMonths","getTime","isEnd","d","setDate","getMilliseconds","str","Component","string","withStyles"],"sources":["Schedule.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Input from '@mui/material/Input';\nimport Radio from '@mui/material/Radio';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport FormGroup from '@mui/material/FormGroup';\nimport Checkbox from '@mui/material/Checkbox';\nimport MaskedInput from 'react-text-mask';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport TextField from '@mui/material/TextField';\n\nimport I18n from '../i18n';\n\nconst styles = theme => ({\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\n rowDays: {\n background: theme.palette.mode !== 'dark' ? '#ddeaff' : '#4b5057'\n },\n rowDows: {\n background: theme.palette.mode !== 'dark' ? '#DDFFDD' : '#52646c'\n },\n rowDates: {\n background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#747a86'\n },\n rowWeeks: {\n background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#717680'\n },\n rowMonths: {\n background: theme.palette.mode !== 'dark' ? '#DDFFFF' : '#1f5557'\n },\n rowMonthsDates: {\n background: theme.palette.mode !== 'dark' ? '#EEFFFF' : '#3c5737',\n maxWidth: 600\n },\n rowYears: {\n background: theme.palette.mode !== 'dark' ? '#fbffdd' : '#574b33'\n },\n rowDaysDows: {\n background: theme.palette.mode !== 'dark' ? '#EEEAFF' : '#573544',\n paddingLeft: 10,\n paddingBottom: 10\n },\n rowDowsDows: {\n background: theme.palette.mode !== 'dark' ? '#EEFFEE' : '#3d4c54',\n paddingLeft: 10,\n paddingBottom: 10\n }\n});\n\nconst WEEKDAYS = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n 'Sunday',\n];\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) {\n if (num < 10) {\n return '0' + num;\n } else {\n return '' + num;\n }\n}\n\nfunction TextTime(props) {\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\nTextTime.propTypes = {\n inputRef: PropTypes.func.isRequired,\n};\n\nfunction TextDate(props) {\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\nTextDate.propTypes = {\n inputRef: PropTypes.func.isRequired,\n};\n\nconst DEFAULT = {\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) {\n const parts = date.split('.');\n if (parts.length === 3) {\n return parts[2] + '-' + parts[1] + '-' + parts[0];\n }\n\n}\n\nclass Schedule extends React.Component {\n constructor(props) {\n super(props);\n let schedule;\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 (e) {\n\n }\n }\n\n if ((!schedule || !Object.keys(schedule).length) && this.props.onChange) {\n setTimeout(() => this.onChange(this.state.schedule, true), 200);\n }\n schedule = schedule || {};\n schedule = Object.assign({}, 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(() =>\n this.props.onChange && this.props.onChange(JSON.stringify(schedule)), 100);\n }\n }\n\n onChange(schedule, force) {\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 let once = copy.period.once;\n delete copy.period;\n copy.period = {once};\n delete copy.valid;\n } else if (copy.period.days) {\n let days = copy.period.days;\n let dows = copy.period.dows;\n delete copy.period;\n copy.period = {days};\n if (dows && dows !== '[]') {\n copy.period.dows = dows;\n }\n } else if (copy.period.weeks) {\n let weeks = copy.period.weeks;\n let dows = copy.period.dows;\n delete copy.period;\n copy.period = {weeks};\n if (dows && dows !== '[]') {\n copy.period.dows = dows;\n }\n } else if (copy.period.months) {\n let months = copy.period.months;\n let 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 let years = copy.period.years;\n let yearMonth = copy.period.yearMonth;\n let 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 (copy.period.days === 1 || copy.period.weeks === 1 || copy.period.months === 1 || copy.period.years === 1) {\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) {\n if (typeof schedule === 'string') {\n try {\n schedule = JSON.parse(schedule);\n } catch (e) {\n schedule = {};\n }\n }\n\n let desc = [];\n let validFrom = Schedule.string2date(schedule.valid.from);\n if (schedule.period.once) {\n // once\n let once = Schedule.string2date(schedule.period.once);\n let 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 ne be not executed any more, because start is in the past\n return I18n.t('sch_desc_onceInPast');\n } else {\n // only once\n desc.push(I18n.t('sch_desc_once_on', schedule.period.once));\n }\n } else if (schedule.period.days) {\n if (schedule.period.days === 1) {\n if (schedule.period.dows) {\n const dows = JSON.parse(schedule.period.dows);\n if (dows.length === 2 && dows[0] === 0 && dows[1] === 6) {\n // on weekends\n desc.push(I18n.t('sch_desc_onWeekends'));\n } else if (dows.length === 5 && dows[0] === 1 && dows[1] === 2 && dows[2] === 3 && dows[3] === 4 && dows[4] === 5) {\n // on workdays\n desc.push(I18n.t('sch_desc_onWorkdays'));\n } else {\n const tDows = dows.map(day => 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));\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));\n }\n\n if (schedule.period.dows) {\n const dows = JSON.parse(schedule.period.dows);\n if (dows.length === 2 && dows[0] === 0 && dows[1] === 6) {\n // on weekends\n desc.push(I18n.t('sch_desc_onWeekends'));\n } else if (dows.length === 5 && dows[0] === 1 && dows[1] === 2 && dows[2] === 3 && dows[3] === 4 && dows[4] === 5) {\n // on workdays\n desc.push(I18n.t('sch_desc_onWorkdays'));\n } else {\n const tDows = dows.map(day => 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));\n } else {\n const months = JSON.parse(schedule.period.months);\n const tMonths = months.map(month => I18n.t(MONTHS[month - 1]));\n if (!tMonths.length) {\n // in January\n return I18n.t('sch_desc_never');\n } else 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));\n }\n desc.push(I18n.t('sch_desc_onDate', schedule.period.yearDate, schedule.period.yearMonth ? I18n.t(MONTHS[schedule.period.yearMonth - 1]) : I18n.t('sch_desc_everyMonth')));\n }\n\n // time\n if (schedule.time.exactTime) {\n if (ASTRO.indexOf(schedule.time.start) !== -1) {\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 minutes\n desc.push(I18n.t('sch_desc_everyNMinutes', schedule.time.interval));\n }\n } else {\n if (schedule.time.interval === 1) {\n // every minute\n desc.push(I18n.t('sch_desc_everyHour'));\n } else {\n // every N minutes\n desc.push(I18n.t('sch_desc_everyNHours', schedule.time.interval));\n }\n }\n const start = ASTRO.indexOf(schedule.time.start) !== -1 ? I18n.t('sch_astro_' + schedule.time.start) : schedule.time.start;\n const end = 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() {\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 <div key=\"timePeriod\" className={this.props.classes.rowDiv}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 }}/>} label={I18n.t('sch_intervalTime')}/>\n </div>\n <div className={this.props.classes.settingsDiv}>\n <div className={this.props.classes.settingsDiv}>\n {!schedule.time.exactTime && <div>\n <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={!fromTo ? I18n.t('sch_fromTo') : ''}/>\n {fromTo && [\n <TextField\n variant=\"standard\"\n className={this.props.classes.inputTime}\n style={{marginRight: 10}}\n key=\"exactTimeFrom\"\n type=\"time\"\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 InputLabelProps={{shrink: true,}}\n label={I18n.t('sch_from')}\n margin=\"normal\"\n />,\n <TextField\n variant=\"standard\"\n className={this.props.classes.inputTime}\n key=\"exactTimeTo\"\n type=\"time\"\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 InputLabelProps={{shrink: true,}}\n label={I18n.t('sch_to')}\n margin=\"normal\"\n />\n ]}\n </div>\n </div>}\n\n {!schedule.time.exactTime && <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 }}/>} label={I18n.t('sch_wholeDay')}/></div>}\n\n {!schedule.time.exactTime && <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 }}/>} label={I18n.t('sch_astroDay')}/></div>}\n\n {!schedule.time.exactTime && <div><FormControlLabel\n control={<Radio\n className={this.props.classes.inputRadio}\n checked={!!night} 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 }}/>} label={I18n.t('sch_astroNight')}/></div>}\n </div>\n {!schedule.time.exactTime && this.getPeriodSettingsMinutes()}\n </div>\n </div>;\n }\n\n getTimeExactElements() {\n const isAstro = ASTRO.indexOf(this.state.schedule.time.start) !== -1;\n\n return <div key=\"timeExact\" className={this.props.classes.rowDiv}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel control={<Radio\n className={this.props.classes.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 }}/>} label={I18n.t('sch_exactTime')}/>\n </div>\n {this.state.schedule.time.exactTime && <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 key=\"specific\" value={'00:00'}>{I18n.t('sch_specificTime')}</MenuItem>\n {ASTRO.map(event => <MenuItem key={event} value={event}>{I18n.t('sch_astro_' + event)}</MenuItem>)}\n </Select>\n }\n {this.state.schedule.time.exactTime && !isAstro &&\n <div className={this.props.classes.settingsDiv}><TextField\n variant=\"standard\"\n className={this.props.classes.inputTime}\n key=\"exactTimeValue\"\n value={this.state.schedule.time.start}\n type=\"time\"\n // 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 InputLabelProps={{shrink: true,}}\n margin=\"normal\"\n /></div>\n }\n </div>;\n }\n\n getDivider() {\n return <hr className={this.props.classes.hr}/>;\n }\n\n getPeriodModes() {\n const schedule = this.state.schedule;\n const isOnce = !schedule.period.dows && !schedule.period.months && !schedule.period.dates && !schedule.period.years && !schedule.period.days && !schedule.period.weeks;\n if (isOnce && !schedule.period.once) {\n schedule.period.once = Schedule.now2string(true);\n }\n\n return [\n // ----- once ---\n <div key=\"once\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowOnce}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodOnce')}/>\n </div>\n {isOnce && <div className={this.props.classes.settingsDiv}>\n {<TextField\n variant=\"standard\"\n className={this.props.classes.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\n this.refOnce.current.style.background = '#ff000030';\n this.timerOnce = setTimeout(value => {\n this.timerOnce = null;\n this.refOnce.current.style.background = '';\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 }, 1500, e.target.value);\n }}\n InputLabelProps={{shrink: true,}}\n label={I18n.t('sch_at')}\n margin=\"normal\"\n />}\n </div>}\n </div>,\n\n\n // ----- days ---\n <div key=\"days\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowDays}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodDaily')}/>\n </div>\n <div className={this.props.classes.settingsDiv}>\n {this.getPeriodSettingsDaily()}\n {schedule.period.days ? this.getPeriodSettingsWeekdays() : null}\n </div>\n </div>,\n\n\n // ----- days of weeks ---\n /*!schedule.period.days && (\n <div key=\"dows\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowDows}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel control={<Radio className={this.props.classes.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 className={this.props.classes.settingsDiv}>\n {this.getPeriodSettingsWeekdays()}\n </div>\n </div>,\n*/\n // ----- weeks ---\n <div key=\"weeks\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowDows}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodWeekly')}/>\n </div>\n <div className={this.props.classes.settingsDiv}>\n <div className={this.props.classes.settingsDiv}>{this.getPeriodSettingsWeekly()}</div>\n <div\n className={this.props.classes.settingsDiv + ' ' + this.props.classes.rowDowsDows}>{this.state.schedule.period.weeks ? this.getPeriodSettingsWeekdays() : null}</div>\n </div>\n </div>,\n\n\n // ----- months ---\n <div key=\"months\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowMonths}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodMonthly')}/>\n </div>\n <div className={this.props.classes.settingsDiv}>\n {this.getPeriodSettingsMonthly()}\n {schedule.period.months ? <div>\n <div className={this.props.classes.settingsDiv + ' ' + this.props.classes.rowMonthsDates}>\n <FormControlLabel\n control={<Checkbox\n className={this.props.classes.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 = _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 label={I18n.t('sch_periodDates')}/></div>\n <div className={this.props.classes.settingsDiv + ' ' + this.props.classes.rowMonthsDates}>\n {this.getPeriodSettingsDates()}\n </div>\n </div> : null}\n </div>\n </div>,\n\n\n // ----- years ---\n <div key=\"years\" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowYears}>\n <div className={this.props.classes.modeDiv}>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodYearly')}/>\n </div>\n <div className={this.props.classes.settingsDiv}>\n <div className={this.props.classes.settingsDiv}>{this.getPeriodSettingsYearly()}</div>\n {!!schedule.period.years && <div className={this.props.classes.settingsDiv}>\n <span>{I18n.t('sch_on')}</span>\n <Input\n key=\"input\"\n value={this.state.schedule.period.yearDate}\n className={this.props.classes.inputEvery}\n type=\"number\"\n min=\"1\"\n 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) _schedule.period.yearDate = 31;\n if (_schedule.period.yearDate > 31) _schedule.period.yearDate = 1;\n this.onChange(_schedule);\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 key=\"every\" value={0}>{I18n.t('sch_yearEveryMonth')}</MenuItem>\n {MONTHS.map((month, i) => <MenuItem key={month} value={i + 1}>{I18n.t(month)}</MenuItem>)}\n </Select>\n </div>}\n </div>\n </div>,\n ];\n }\n\n getPeriodSettingsMinutes() {\n return <div style={{display: 'inline-block'}}>\n <label>{I18n.t('sch_every')}</label>\n <Input\n value={this.state.schedule.time.interval}\n style={{verticalAlign: 'bottom'}}\n className={this.props.classes.inputEvery}\n type=\"number\"\n 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 <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 getPeriodSettingsWeekdays() {\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 = schedule.period.dows && schedule.period.dows !== '[1, 2, 3, 4, 5]' && schedule.period.dows !== '[0, 6]';\n return [\n <div key=\"workdays\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodWorkdays')}/></div>,\n\n <div key=\"weekend\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodWeekend')}/></div>,\n\n <div\n key=\"specific\"\n style={{verticalAlign: 'top'}}\n ><FormControlLabel\n style={{verticalAlign: 'top'}}\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodWeekdays')}/>\n {isSpecific && (schedule.period.days === 1 || schedule.period.weeks) &&\n <FormGroup row className={this.props.classes.inputGroup} style={{width: 150}}>\n {[1, 2, 3, 4, 5, 6, 0].map(i =>\n <FormControlLabel\n key={'specific_' + i}\n className={this.props.classes.inputGroupElement}\n control={\n <Checkbox\n className={this.props.classes.inputSmallCheck}\n checked={schedule.period.dows.includes('' + i)}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n let dows;\n try {\n dows = JSON.parse(_schedule.period.dows);\n } catch (e) {\n dows = [];\n }\n if (e.target.checked && !dows.includes(i)) {\n dows.push(i);\n } else if (!e.target.checked && dows.includes(i)) {\n dows.splice(dows.indexOf(i), 1);\n }\n dows.sort((a, b) => a - b);\n _schedule.period.dows = JSON.stringify(dows);\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 </FormGroup>}\n </div>,\n ];\n }\n\n getPeriodSettingsDaily() {\n if (!this.state.schedule.period.days) {\n return;\n }\n const schedule = this.state.schedule;\n return [\n <div key=\"every_day\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEveryDay')}/></div>,\n <div key=\"everyN_day\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEvery')}/>\n {schedule.period.days > 1 && [<Input\n key=\"input\"\n value={this.state.schedule.period.days}\n className={this.props.classes.inputEvery}\n type=\"number\"\n 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 <span key=\"span\" style={{paddingRight: 10}}>{I18n.t('sch_periodDay')}</span>]}\n </div>,\n ];\n }\n\n getPeriodSettingsWeekly() {\n if (!this.state.schedule.period.weeks) {\n return;\n }\n const schedule = this.state.schedule;\n return [\n <div key=\"radios\" style={{display: 'inline-block', verticalAlign: 'top'}}>\n <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEveryWeek')}/></div>\n <div>\n <FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEvery')}/>\n {schedule.period.weeks > 1 && [<Input\n value={this.state.schedule.period.weeks}\n className={this.props.classes.inputEvery}\n type=\"number\"\n 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 }}/>, <span>{I18n.t('sch_periodWeek')}</span>]}\n </div>\n </div>,\n ];\n }\n\n getPeriodSettingsDates() {\n if (!this.state.schedule.period.dates) {\n return;\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 <FormGroup\n row\n className={this.props.classes.inputGroup}\n style={{maxWidth: 620}}\n >\n <FormControlLabel\n className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={parsedDates.length === 31}\n onChange={e => {\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 } label={I18n.t('sch_all')}\n />\n <FormControlLabel\n className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={!parsedDates.length}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dates = '[]';\n this.onChange(_schedule);\n }}\n />\n } label={I18n.t('sch_no_one')}\n />\n {parsedDates.length !== 31 && !!parsedDates.length &&\n <FormControlLabel\n className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={false}\n onChange={e => {\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.indexOf(i) === -1) {\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 <div/>\n {dates.map(i =>\n <FormControlLabel\n key={'date_' + i}\n className={this.props.classes.inputDateDay}\n style={!i ? {\n opacity: 0,\n cursor: 'default',\n userSelect: 'none',\n pointerEvents: 'none'\n } : {}}\n control={\n <Checkbox\n className={this.props.classes.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 (e) {\n dates = [];\n }\n if (e.target.checked && dates.indexOf(i) === -1) {\n dates.push(i);\n } else if (!e.target.checked && dates.indexOf(i) !== -1) {\n dates.splice(dates.indexOf(i), 1);\n }\n dates.sort((a, b) => a - b);\n _schedule.period.dates = JSON.stringify(dates);\n this.onChange(_schedule);\n }}\n />\n }\n label={i < 10 ? [<span key=\"0\" style={{opacity: 0}}>0</span>,\n <span key=\"num\">{i}</span>] : i}\n />)}\n </FormGroup>;\n }\n\n getPeriodSettingsMonthly() {\n if (!this.state.schedule.period.months) {\n return;\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\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEveryMonth')}/></div>,\n <div key=\"everyN\"><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEvery')}/>\n {typeof schedule.period.months === 'number' && schedule.period.months > 1 && [<Input\n value={schedule.period.months}\n className={this.props.classes.inputEvery}\n type=\"number\"\n 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) _schedule.period.months = 1;\n this.onChange(_schedule);\n }}/>, <span>{I18n.t('sch_periodMonth')}</span>]}\n </div>,\n <div key=\"specific\" style={{verticalAlign: 'top'}}><FormControlLabel\n style={{verticalAlign: 'top'}}\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodSpecificMonths')}/>\n {typeof schedule.period.months === 'string' &&\n <FormGroup\n row\n className={this.props.classes.inputGroup}>\n <FormControlLabel\n className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={parsedMonths.length === 12}\n onChange={e => {\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 } label={I18n.t('sch_all')}\n />\n <FormControlLabel\n className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={!parsedMonths.length}\n onChange={e => {\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 className={this.props.classes.inputDateDay}\n control={\n <Checkbox\n className={this.props.classes.inputDateDayCheck}\n checked={false}\n onChange={e => {\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.indexOf(i) === -1) {\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 <div/>\n {MONTHS.map((month, i) =>\n <FormControlLabel\n className={this.props.classes.inputGroupElement}\n control={\n <Checkbox\n className={this.props.classes.inputSmallCheck}\n checked={JSON.parse(schedule.period.months).includes(i + 1)}\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 (e) {\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, b) => a - b);\n _schedule.period.months = JSON.stringify(months);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t(month)}\n />)}\n </FormGroup>}\n </div>,\n ];\n }\n\n getPeriodSettingsYearly() {\n if (!this.state.schedule.period.years) {\n return;\n }\n const schedule = this.state.schedule;\n return [\n <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEveryYear')}/></div>,\n <div><FormControlLabel\n control={<Radio\n className={this.props.classes.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 label={I18n.t('sch_periodEvery')}/>\n {schedule.period.years > 1 &&\n [<Input\n value={this.state.schedule.period.years}\n className={this.props.classes.inputEvery} type=\"number\" 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) _schedule.period.years = 1;\n this.onChange(_schedule);\n }}/>,\n <span>{I18n.t('sch_periodYear')}</span>]}\n </div>,\n ];\n }\n\n static now2string(isEnd) {\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) {\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 } else {\n return new Date(parseInt(parts[2], 10), parseInt(parts[1], 10) - 1, parseInt(parts[0], 10));\n }\n }\n\n getValidSettings() {\n const schedule = this.state.schedule;\n // ----- from ---\n return <div className={this.props.classes.rowDiv}>\n <div className={this.props.classes.modeDiv} style={{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 className={this.props.classes.settingsDiv}>\n <TextField\n variant=\"standard\"\n className={this.props.classes.inputDate}\n style={{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 this.refFrom.current.style.background = '#ff000030';\n\n this.timerFrom = setTimeout(value => {\n this.timerFrom = null;\n this.refFrom.current.style.background = '';\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 }, 1500, e.target.value);\n }}\n InputLabelProps={{shrink: true,}}\n margin=\"normal\"\n />\n <FormControlLabel\n control={<Checkbox\n className={this.props.classes.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 label={I18n.t('sch_validTo')}/>\n {!!schedule.valid.to && <TextField\n variant=\"standard\"\n inputRef={this.refTo}\n className={this.props.classes.inputDate}\n style={{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 this.refTo.current.style.background = '#ff000030';\n this.timerTo = setTimeout(value => {\n this.timerTo = null;\n this.refTo.current.style.background = '';\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 }, 1500, e.target.value);\n }}\n InputLabelProps={{shrink: true,}}\n margin=\"normal\"\n />}\n </div>\n </div>;\n }\n\n render() {\n return <div style={{height: 'calc(100% - 48px)', width: '100%', overflow: 'hidden'}}>\n <div>{this.state.desc}</div>\n <div className={this.props.classes.scrollWindow}>\n <h5>{I18n.t('sch_time')}</h5>\n {this.getTimePeriodElements()}\n {this.getTimeExactElements()}\n {this.getDivider()}\n <h5>{I18n.t('sch_period')}</h5>\n {this.getPeriodModes()}\n {!this.state.schedule.period.once && this.getDivider()}\n {!this.state.schedule.period.once && this.getValidSettings()}\n </div>\n </div>;\n }\n}\n\nSchedule.propTypes = {\n schedule: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(Schedule);\n\n"],"mappings":"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"}