@iobroker/adapter-react-v5 7.2.4 → 7.2.6

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 (375) hide show
  1. package/README.md +6 -6
  2. package/build/AdminConnection.d.ts +1 -0
  3. package/build/AdminConnection.js +2 -0
  4. package/build/AdminConnection.js.map +1 -0
  5. package/{src/Components/404.tsx → build/Components/404.js} +14 -39
  6. package/build/Components/404.js.map +1 -0
  7. package/{Components → build/Components}/ColorPicker.d.ts +2 -2
  8. package/{Components → build/Components}/ColorPicker.js +50 -65
  9. package/build/Components/ColorPicker.js.map +1 -0
  10. package/{Components → build/Components}/ComplexCron.d.ts +2 -2
  11. package/{Components → build/Components}/ComplexCron.js +43 -71
  12. package/build/Components/ComplexCron.js.map +1 -0
  13. package/{Components → build/Components}/CopyToClipboard.d.ts +1 -2
  14. package/{src/Components/CopyToClipboard.tsx → build/Components/CopyToClipboard.js} +20 -38
  15. package/build/Components/CopyToClipboard.js.map +1 -0
  16. package/{Components → build/Components}/CustomModal.d.ts +3 -3
  17. package/build/Components/CustomModal.js +60 -0
  18. package/build/Components/CustomModal.js.map +1 -0
  19. package/{Components → build/Components}/FileBrowser.d.ts +2 -2
  20. package/{Components → build/Components}/FileBrowser.js +229 -236
  21. package/build/Components/FileBrowser.js.map +1 -0
  22. package/build/Components/FileViewer.d.ts +48 -0
  23. package/build/Components/FileViewer.js +277 -0
  24. package/build/Components/FileViewer.js.map +1 -0
  25. package/{Components → build/Components}/Icon.d.ts +1 -1
  26. package/build/Components/Icon.js +140 -0
  27. package/build/Components/Icon.js.map +1 -0
  28. package/{Components → build/Components}/IconPicker.d.ts +2 -2
  29. package/build/Components/IconPicker.js +73 -0
  30. package/build/Components/IconPicker.js.map +1 -0
  31. package/{Components → build/Components}/IconSelector.d.ts +3 -3
  32. package/{Components → build/Components}/IconSelector.js +29 -57
  33. package/build/Components/IconSelector.js.map +1 -0
  34. package/{Components → build/Components}/Image.d.ts +2 -2
  35. package/{Components → build/Components}/Image.js +16 -22
  36. package/build/Components/Image.js.map +1 -0
  37. package/{Components → build/Components}/Loader.d.ts +2 -2
  38. package/{Components → build/Components}/Loader.js +15 -40
  39. package/build/Components/Loader.js.map +1 -0
  40. package/{Components → build/Components}/Loaders/MV.d.ts +2 -2
  41. package/build/Components/Loaders/MV.js +61 -0
  42. package/build/Components/Loaders/MV.js.map +1 -0
  43. package/{Components → build/Components}/Loaders/PT.d.ts +2 -2
  44. package/{Components → build/Components}/Loaders/PT.js +10 -35
  45. package/build/Components/Loaders/PT.js.map +1 -0
  46. package/{Components → build/Components}/Loaders/Vendor.d.ts +2 -2
  47. package/build/Components/Loaders/Vendor.js +52 -0
  48. package/build/Components/Loaders/Vendor.js.map +1 -0
  49. package/{Components → build/Components}/Logo.d.ts +2 -2
  50. package/build/Components/Logo.js +108 -0
  51. package/build/Components/Logo.js.map +1 -0
  52. package/{Components → build/Components}/MDUtils.d.ts +1 -2
  53. package/{Components → build/Components}/MDUtils.js +4 -9
  54. package/build/Components/MDUtils.js.map +1 -0
  55. package/{Components → build/Components}/ObjectBrowser.d.ts +4 -4
  56. package/{Components → build/Components}/ObjectBrowser.js +1152 -1116
  57. package/build/Components/ObjectBrowser.js.map +1 -0
  58. package/{Components → build/Components}/Router.d.ts +1 -2
  59. package/{Components → build/Components}/Router.js +6 -7
  60. package/build/Components/Router.js.map +1 -0
  61. package/{Components → build/Components}/SaveCloseButtons.d.ts +2 -2
  62. package/build/Components/SaveCloseButtons.js +65 -0
  63. package/build/Components/SaveCloseButtons.js.map +1 -0
  64. package/{Components → build/Components}/Schedule.d.ts +2 -2
  65. package/{Components → build/Components}/Schedule.js +242 -257
  66. package/build/Components/Schedule.js.map +1 -0
  67. package/{Components → build/Components}/SelectWithIcon.d.ts +2 -2
  68. package/build/Components/SelectWithIcon.js +135 -0
  69. package/build/Components/SelectWithIcon.js.map +1 -0
  70. package/build/Components/SimpleCron/cronText.js +15 -0
  71. package/build/Components/SimpleCron/cronText.js.map +1 -0
  72. package/{Components → build/Components}/SimpleCron/index.d.ts +2 -2
  73. package/{Components → build/Components}/SimpleCron/index.js +55 -58
  74. package/build/Components/SimpleCron/index.js.map +1 -0
  75. package/{Components → build/Components}/TabContainer.d.ts +2 -2
  76. package/build/Components/TabContainer.js +23 -0
  77. package/build/Components/TabContainer.js.map +1 -0
  78. package/{Components → build/Components}/TabContent.d.ts +3 -2
  79. package/build/Components/TabContent.js +20 -0
  80. package/build/Components/TabContent.js.map +1 -0
  81. package/build/Components/TabHeader.d.ts +6 -0
  82. package/build/Components/TabHeader.js +6 -0
  83. package/build/Components/TabHeader.js.map +1 -0
  84. package/{Components → build/Components}/TableResize.d.ts +2 -2
  85. package/{src/Components/TableResize.tsx → build/Components/TableResize.js} +64 -134
  86. package/build/Components/TableResize.js.map +1 -0
  87. package/{Components → build/Components}/TextWithIcon.d.ts +2 -2
  88. package/{src/Components/TextWithIcon.tsx → build/Components/TextWithIcon.js} +30 -75
  89. package/build/Components/TextWithIcon.js.map +1 -0
  90. package/{Components → build/Components}/ToggleThemeMenu.d.ts +1 -1
  91. package/build/Components/ToggleThemeMenu.js +13 -0
  92. package/build/Components/ToggleThemeMenu.js.map +1 -0
  93. package/{Components → build/Components}/TreeTable.d.ts +3 -3
  94. package/{Components → build/Components}/TreeTable.js +87 -99
  95. package/build/Components/TreeTable.js.map +1 -0
  96. package/{Components → build/Components}/UploadImage.d.ts +2 -2
  97. package/{Components → build/Components}/UploadImage.js +46 -69
  98. package/build/Components/UploadImage.js.map +1 -0
  99. package/{Components → build/Components}/Utils.d.ts +2 -2
  100. package/{Components → build/Components}/Utils.js +47 -60
  101. package/build/Components/Utils.js.map +1 -0
  102. package/build/Components/withWidth.d.ts +2 -0
  103. package/build/Components/withWidth.js +22 -0
  104. package/build/Components/withWidth.js.map +1 -0
  105. package/build/Connection.d.ts +1 -0
  106. package/build/Connection.js +2 -0
  107. package/build/Connection.js.map +1 -0
  108. package/{Dialogs → build/Dialogs}/ComplexCron.d.ts +2 -2
  109. package/build/Dialogs/ComplexCron.js +85 -0
  110. package/build/Dialogs/ComplexCron.js.map +1 -0
  111. package/{Dialogs → build/Dialogs}/Confirm.d.ts +2 -2
  112. package/build/Dialogs/Confirm.js +83 -0
  113. package/build/Dialogs/Confirm.js.map +1 -0
  114. package/{Dialogs → build/Dialogs}/Cron.d.ts +2 -2
  115. package/build/Dialogs/Cron.js +72 -0
  116. package/build/Dialogs/Cron.js.map +1 -0
  117. package/{Dialogs → build/Dialogs}/Error.d.ts +2 -2
  118. package/build/Dialogs/Error.js +27 -0
  119. package/build/Dialogs/Error.js.map +1 -0
  120. package/{Dialogs → build/Dialogs}/Message.d.ts +2 -2
  121. package/build/Dialogs/Message.js +29 -0
  122. package/build/Dialogs/Message.js.map +1 -0
  123. package/{Dialogs → build/Dialogs}/SelectFile.d.ts +2 -2
  124. package/build/Dialogs/SelectFile.js +116 -0
  125. package/build/Dialogs/SelectFile.js.map +1 -0
  126. package/{Dialogs → build/Dialogs}/SelectID.d.ts +3 -3
  127. package/{Dialogs → build/Dialogs}/SelectID.js +28 -53
  128. package/build/Dialogs/SelectID.js.map +1 -0
  129. package/{Dialogs → build/Dialogs}/SimpleCron.d.ts +2 -2
  130. package/build/Dialogs/SimpleCron.js +46 -0
  131. package/build/Dialogs/SimpleCron.js.map +1 -0
  132. package/build/Dialogs/TextInput.d.ts +2 -0
  133. package/build/Dialogs/TextInput.js +31 -0
  134. package/build/Dialogs/TextInput.js.map +1 -0
  135. package/{GenericApp.d.ts → build/GenericApp.d.ts} +2 -3
  136. package/{GenericApp.js → build/GenericApp.js} +162 -176
  137. package/build/GenericApp.js.map +1 -0
  138. package/{LegacyConnection.d.ts → build/LegacyConnection.d.ts} +69 -4
  139. package/{LegacyConnection.js → build/LegacyConnection.js} +106 -99
  140. package/build/LegacyConnection.js.map +1 -0
  141. package/{Prompt.d.ts → build/Prompt.d.ts} +1 -1
  142. package/{Prompt.js → build/Prompt.js} +3 -4
  143. package/build/Prompt.js.map +1 -0
  144. package/build/Theme.d.ts +5 -0
  145. package/{Theme.js → build/Theme.js} +37 -32
  146. package/build/Theme.js.map +1 -0
  147. package/build/assets/devices/parseNames.d.ts +0 -0
  148. package/build/assets/devices/parseNames.js +35 -0
  149. package/build/assets/devices/parseNames.js.map +1 -0
  150. package/build/assets/rooms/parseNames.d.ts +0 -0
  151. package/build/assets/rooms/parseNames.js +35 -0
  152. package/build/assets/rooms/parseNames.js.map +1 -0
  153. package/build/dictionary.d.ts +1 -0
  154. package/build/dictionary.js +25 -0
  155. package/build/dictionary.js.map +1 -0
  156. package/build/i18n/de.json +449 -0
  157. package/build/i18n/en.json +449 -0
  158. package/build/i18n/es.json +449 -0
  159. package/build/i18n/fr.json +449 -0
  160. package/build/i18n/it.json +449 -0
  161. package/build/i18n/nl.json +449 -0
  162. package/build/i18n/pl.json +449 -0
  163. package/build/i18n/pt.json +449 -0
  164. package/build/i18n/ru.json +449 -0
  165. package/build/i18n/uk.json +449 -0
  166. package/build/i18n/zh-cn.json +449 -0
  167. package/{i18n.d.ts → build/i18n.d.ts} +2 -2
  168. package/{i18n.js → build/i18n.js} +9 -11
  169. package/build/i18n.js.map +1 -0
  170. package/build/icons/IconAdapter.d.ts +3 -0
  171. package/build/icons/IconAdapter.js +6 -0
  172. package/build/icons/IconAdapter.js.map +1 -0
  173. package/build/icons/IconAlias.d.ts +3 -0
  174. package/build/icons/IconAlias.js +6 -0
  175. package/build/icons/IconAlias.js.map +1 -0
  176. package/build/icons/IconChannel.d.ts +3 -0
  177. package/build/icons/IconChannel.js +9 -0
  178. package/build/icons/IconChannel.js.map +1 -0
  179. package/build/icons/IconClearFilter.d.ts +3 -0
  180. package/build/icons/IconClearFilter.js +7 -0
  181. package/build/icons/IconClearFilter.js.map +1 -0
  182. package/build/icons/IconClosed.d.ts +3 -0
  183. package/build/icons/IconClosed.js +6 -0
  184. package/build/icons/IconClosed.js.map +1 -0
  185. package/build/icons/IconCopy.d.ts +3 -0
  186. package/build/icons/IconCopy.js +5 -0
  187. package/build/icons/IconCopy.js.map +1 -0
  188. package/build/icons/IconDevice.d.ts +3 -0
  189. package/build/icons/IconDevice.js +15 -0
  190. package/build/icons/IconDevice.js.map +1 -0
  191. package/build/icons/IconDocument.d.ts +3 -0
  192. package/build/icons/IconDocument.js +6 -0
  193. package/build/icons/IconDocument.js.map +1 -0
  194. package/build/icons/IconDocumentReadOnly.d.ts +3 -0
  195. package/build/icons/IconDocumentReadOnly.js +7 -0
  196. package/build/icons/IconDocumentReadOnly.js.map +1 -0
  197. package/build/icons/IconExpert.d.ts +3 -0
  198. package/build/icons/IconExpert.js +6 -0
  199. package/build/icons/IconExpert.js.map +1 -0
  200. package/build/icons/IconFx.d.ts +3 -0
  201. package/build/icons/IconFx.js +5 -0
  202. package/build/icons/IconFx.js.map +1 -0
  203. package/build/icons/IconInstance.d.ts +3 -0
  204. package/build/icons/IconInstance.js +6 -0
  205. package/build/icons/IconInstance.js.map +1 -0
  206. package/build/icons/IconLogout.d.ts +3 -0
  207. package/build/icons/IconLogout.js +6 -0
  208. package/build/icons/IconLogout.js.map +1 -0
  209. package/build/icons/IconNoIcon.d.ts +3 -0
  210. package/build/icons/IconNoIcon.js +5 -0
  211. package/build/icons/IconNoIcon.js.map +1 -0
  212. package/build/icons/IconOpen.d.ts +3 -0
  213. package/build/icons/IconOpen.js +6 -0
  214. package/build/icons/IconOpen.js.map +1 -0
  215. package/{icons → build/icons}/IconProps.d.ts +1 -1
  216. package/build/icons/IconProps.js +2 -0
  217. package/build/icons/IconProps.js.map +1 -0
  218. package/build/icons/IconState.d.ts +3 -0
  219. package/build/icons/IconState.js +6 -0
  220. package/build/icons/IconState.js.map +1 -0
  221. package/build/index.d.ts +67 -0
  222. package/build/index.js +67 -0
  223. package/build/index.js.map +1 -0
  224. package/{types.d.ts → build/types.d.ts} +1 -1
  225. package/package.json +84 -48
  226. package/AdminConnection.d.ts +0 -2
  227. package/AdminConnection.js +0 -4
  228. package/Components/404.js +0 -101
  229. package/Components/CopyToClipboard.js +0 -163
  230. package/Components/CustomModal.js +0 -88
  231. package/Components/FileViewer.d.ts +0 -10
  232. package/Components/FileViewer.js +0 -305
  233. package/Components/Icon.js +0 -148
  234. package/Components/IconPicker.js +0 -98
  235. package/Components/Loaders/MV.js +0 -66
  236. package/Components/Loaders/Vendor.js +0 -77
  237. package/Components/Logo.js +0 -117
  238. package/Components/SaveCloseButtons.js +0 -69
  239. package/Components/SelectWithIcon.js +0 -168
  240. package/Components/SimpleCron/cronText.js +0 -19
  241. package/Components/TabContainer.js +0 -25
  242. package/Components/TabContent.js +0 -21
  243. package/Components/TabHeader.d.ts +0 -6
  244. package/Components/TabHeader.js +0 -11
  245. package/Components/TableResize.js +0 -226
  246. package/Components/TextWithIcon.js +0 -119
  247. package/Components/ToggleThemeMenu.js +0 -18
  248. package/Components/withWidth.d.ts +0 -3
  249. package/Components/withWidth.js +0 -27
  250. package/Connection.d.ts +0 -3
  251. package/Connection.js +0 -8
  252. package/Dialogs/ComplexCron.js +0 -90
  253. package/Dialogs/Confirm.js +0 -111
  254. package/Dialogs/Cron.js +0 -100
  255. package/Dialogs/Error.js +0 -55
  256. package/Dialogs/Message.js +0 -57
  257. package/Dialogs/SelectFile.js +0 -119
  258. package/Dialogs/SimpleCron.js +0 -51
  259. package/Dialogs/TextInput.d.ts +0 -3
  260. package/Dialogs/TextInput.js +0 -35
  261. package/Theme.d.ts +0 -6
  262. package/i18n/de.json +0 -449
  263. package/i18n/en.json +0 -449
  264. package/i18n/es.json +0 -449
  265. package/i18n/fr.json +0 -449
  266. package/i18n/it.json +0 -449
  267. package/i18n/nl.json +0 -449
  268. package/i18n/pl.json +0 -449
  269. package/i18n/pt.json +0 -449
  270. package/i18n/ru.json +0 -449
  271. package/i18n/uk.json +0 -449
  272. package/i18n/zh-cn.json +0 -449
  273. package/icons/IconAdapter.d.ts +0 -4
  274. package/icons/IconAdapter.js +0 -10
  275. package/icons/IconAlias.d.ts +0 -4
  276. package/icons/IconAlias.js +0 -10
  277. package/icons/IconChannel.d.ts +0 -4
  278. package/icons/IconChannel.js +0 -13
  279. package/icons/IconClearFilter.d.ts +0 -4
  280. package/icons/IconClearFilter.js +0 -11
  281. package/icons/IconClosed.d.ts +0 -4
  282. package/icons/IconClosed.js +0 -10
  283. package/icons/IconCopy.d.ts +0 -4
  284. package/icons/IconCopy.js +0 -9
  285. package/icons/IconDevice.d.ts +0 -4
  286. package/icons/IconDevice.js +0 -19
  287. package/icons/IconDocument.d.ts +0 -4
  288. package/icons/IconDocument.js +0 -10
  289. package/icons/IconDocumentReadOnly.d.ts +0 -4
  290. package/icons/IconDocumentReadOnly.js +0 -11
  291. package/icons/IconExpert.d.ts +0 -4
  292. package/icons/IconExpert.js +0 -10
  293. package/icons/IconFx.d.ts +0 -4
  294. package/icons/IconFx.js +0 -9
  295. package/icons/IconInstance.d.ts +0 -4
  296. package/icons/IconInstance.js +0 -10
  297. package/icons/IconLogout.d.ts +0 -4
  298. package/icons/IconLogout.js +0 -10
  299. package/icons/IconNoIcon.d.ts +0 -4
  300. package/icons/IconNoIcon.js +0 -9
  301. package/icons/IconOpen.d.ts +0 -4
  302. package/icons/IconOpen.js +0 -10
  303. package/icons/IconProps.js +0 -2
  304. package/icons/IconState.d.ts +0 -4
  305. package/icons/IconState.js +0 -10
  306. package/index.d.ts +0 -128
  307. package/index.js +0 -215
  308. package/src/AdminConnection.tsx +0 -3
  309. package/src/Components/ColorPicker.tsx +0 -343
  310. package/src/Components/ComplexCron.tsx +0 -561
  311. package/src/Components/CustomModal.tsx +0 -170
  312. package/src/Components/FileBrowser.tsx +0 -2560
  313. package/src/Components/FileViewer.tsx +0 -412
  314. package/src/Components/Icon.tsx +0 -238
  315. package/src/Components/IconPicker.tsx +0 -165
  316. package/src/Components/IconSelector.tsx +0 -2220
  317. package/src/Components/Image.tsx +0 -193
  318. package/src/Components/Loader.tsx +0 -328
  319. package/src/Components/Logo.tsx +0 -176
  320. package/src/Components/MDUtils.tsx +0 -104
  321. package/src/Components/ObjectBrowser.tsx +0 -8947
  322. package/src/Components/Router.tsx +0 -90
  323. package/src/Components/SaveCloseButtons.tsx +0 -117
  324. package/src/Components/Schedule.tsx +0 -1998
  325. package/src/Components/SelectWithIcon.tsx +0 -239
  326. package/src/Components/TabContainer.tsx +0 -57
  327. package/src/Components/TabContent.tsx +0 -38
  328. package/src/Components/TabHeader.tsx +0 -20
  329. package/src/Components/ToggleThemeMenu.tsx +0 -52
  330. package/src/Components/TreeTable.tsx +0 -1002
  331. package/src/Components/UploadImage.tsx +0 -643
  332. package/src/Components/Utils.tsx +0 -1802
  333. package/src/Components/loader.css +0 -231
  334. package/src/Components/withWidth.tsx +0 -32
  335. package/src/Connection.tsx +0 -5
  336. package/src/Dialogs/ComplexCron.tsx +0 -163
  337. package/src/Dialogs/Confirm.tsx +0 -185
  338. package/src/Dialogs/Cron.tsx +0 -192
  339. package/src/Dialogs/Error.tsx +0 -67
  340. package/src/Dialogs/Message.tsx +0 -73
  341. package/src/Dialogs/SelectFile.tsx +0 -280
  342. package/src/Dialogs/SelectID.tsx +0 -310
  343. package/src/Dialogs/SimpleCron.tsx +0 -101
  344. package/src/Dialogs/TextInput.tsx +0 -99
  345. package/src/GenericApp.tsx +0 -1076
  346. package/src/LegacyConnection.tsx +0 -3720
  347. package/src/Prompt.tsx +0 -22
  348. package/src/Theme.tsx +0 -472
  349. package/src/icons/IconAdapter.tsx +0 -22
  350. package/src/icons/IconAlias.tsx +0 -22
  351. package/src/icons/IconChannel.tsx +0 -60
  352. package/src/icons/IconClearFilter.tsx +0 -24
  353. package/src/icons/IconClosed.tsx +0 -22
  354. package/src/icons/IconCopy.tsx +0 -21
  355. package/src/icons/IconDevice.tsx +0 -126
  356. package/src/icons/IconDocument.tsx +0 -22
  357. package/src/icons/IconDocumentReadOnly.tsx +0 -27
  358. package/src/icons/IconExpert.tsx +0 -26
  359. package/src/icons/IconFx.tsx +0 -38
  360. package/src/icons/IconInstance.tsx +0 -22
  361. package/src/icons/IconLogout.tsx +0 -32
  362. package/src/icons/IconNoIcon.tsx +0 -21
  363. package/src/icons/IconOpen.tsx +0 -22
  364. package/src/icons/IconProps.tsx +0 -16
  365. package/src/icons/IconState.tsx +0 -38
  366. package/src/index.css +0 -56
  367. /package/{Components → build/Components}/404.d.ts +0 -0
  368. /package/{Components → build/Components}/SimpleCron/cronText.d.ts +0 -0
  369. /package/{assets → build/assets}/devices.json +0 -0
  370. /package/{assets → build/assets}/lamp_ceiling.svg +0 -0
  371. /package/{assets → build/assets}/lamp_table.svg +0 -0
  372. /package/{assets → build/assets}/no_icon.svg +0 -0
  373. /package/{assets → build/assets}/rooms.json +0 -0
  374. /package/{index.css → build/index.css} +0 -0
  375. /package/{tasks.js → tasksExample.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schedule.js","sourceRoot":"./src/","sources":["Components/Schedule.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component, type JSX } from 'react';\n\nimport {\n Input,\n Radio,\n FormControlLabel,\n FormGroup,\n Checkbox,\n MenuItem,\n Select,\n TextField,\n Box,\n type Theme,\n} from '@mui/material';\n\nimport { I18n } from '../i18n';\nimport type { IobTheme } from '../types';\nimport { Utils } from './Utils';\n\nconst styles: Record<string, any> = {\n hr: {\n border: 0,\n borderTop: '1px solid gray',\n },\n scrollWindow: {\n width: '100%',\n overflow: 'auto',\n height: 'calc(100% - 22px)',\n },\n rowDiv: {\n width: '100%',\n },\n modeDiv: {\n width: 200,\n display: 'inline-block',\n verticalAlign: 'top',\n },\n settingsDiv: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n inputTime: {\n width: 90,\n marginTop: 0,\n marginLeft: 5,\n },\n inputDate: {\n width: 140,\n marginTop: 0,\n marginLeft: 5,\n },\n inputEvery: {\n width: 40,\n marginLeft: 5,\n marginRight: 5,\n },\n inputRadio: {\n padding: '4px 12px',\n verticalAlign: 'top',\n },\n inputGroup: {\n maxWidth: 400,\n display: 'inline-block',\n },\n inputGroupElement: {\n width: 120,\n },\n inputDateDay: {\n width: 60,\n },\n inputDateDayCheck: {\n padding: 4,\n },\n inputSmallCheck: {\n padding: 0,\n },\n rowOnce: {},\n rowDays: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#ddeaff' : '#4b5057',\n }),\n rowDows: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDFFDD' : '#52646c',\n }),\n rowDates: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#747a86',\n }),\n rowWeeks: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#717680',\n }),\n rowMonths: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#DDFFFF' : '#1f5557',\n }),\n rowMonthsDates: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#EEFFFF' : '#3c5737',\n maxWidth: 600,\n }),\n rowYears: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#fbffdd' : '#574b33',\n }),\n rowDaysDows: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#EEEAFF' : '#573544',\n pl: '10px',\n pb: '10px',\n }),\n rowDowsDows: (theme: IobTheme) => ({\n background: theme.palette.mode !== 'dark' ? '#EEFFEE' : '#3d4c54',\n pl: '10px',\n pb: '10px',\n }),\n};\n\nconst WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\nconst PERIODS = {\n minutes: 'minutes',\n hours: 'hours',\n};\nconst ASTRO = [\n 'sunrise',\n 'sunriseEnd',\n 'goldenHourEnd',\n 'solarNoon',\n 'goldenHour',\n 'sunsetStart',\n 'sunset',\n 'dusk',\n 'nauticalDusk',\n 'night',\n 'nightEnd',\n 'nauticalDawn',\n 'dawn',\n 'nadir',\n];\n\nfunction padding(num: number): string {\n if (num < 10) {\n return `0${num}`;\n }\n return `${num}`;\n}\n\ninterface ScheduleConfig {\n time: {\n exactTime: boolean;\n start: string;\n end: string;\n mode: string;\n interval: number;\n };\n period: {\n once: string;\n days: number;\n dows: string;\n dates: string;\n weeks: number;\n months: string | number;\n years: number;\n yearMonth: number;\n yearDate: number;\n };\n valid: {\n from: string;\n to?: string;\n };\n}\n\n// interface TextTimeProps {\n// inputRef: React.RefObject<HTMLInputElement>;\n// placeholder?: string;\n// }\n\n// function TextTime(props: TextTimeProps) {\n// const { inputRef, ...other } = props;\n//\n// return <MaskedInput\n// {...other}\n// ref={inputRef}\n// mask={[/[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/]}\n// placeholderChar={props.placeholder || '00:00'}\n// showMask\n// />;\n// }\n\n// function TextDate(props: TextTimeProps) {\n// const { inputRef, ...other } = props;\n//\n// return <MaskedInput\n// {...other}\n// ref={inputRef}\n// mask={[/[0-3]/, /[0-9]/, '.', /[0-1]/, /[0-9]/, '.', '2', '0', /[0-9]/, /[0-9]/]}\n// placeholderChar={props.placeholder || '01.01.2020'}\n// showMask\n// />;\n// }\n\nconst DEFAULT: ScheduleConfig = {\n time: {\n exactTime: false,\n\n start: '00:00',\n end: '23:59',\n\n mode: 'hours',\n interval: 1,\n },\n period: {\n once: '',\n days: 1,\n dows: '',\n dates: '',\n weeks: 0,\n months: '',\n\n years: 0,\n yearMonth: 0,\n yearDate: 0,\n },\n valid: {\n from: '',\n to: '',\n },\n};\n\nfunction string2USdate(date: string): string {\n const parts = date.split('.');\n if (parts.length === 3) {\n return `${parts[2]}-${parts[1]}-${parts[0]}`;\n }\n return '';\n}\n\ninterface ScheduleProps {\n schedule: string | ScheduleConfig;\n onChange: (schedule: string, desc?: string) => void;\n theme: IobTheme;\n}\n\ninterface ScheduleState {\n schedule: ScheduleConfig;\n desc: string;\n}\n\nexport class Schedule extends Component<ScheduleProps, ScheduleState> {\n private readonly refFrom: React.RefObject<HTMLInputElement>;\n\n private readonly refTo: React.RefObject<HTMLInputElement>;\n\n private readonly refOnce: React.RefObject<HTMLInputElement>;\n\n private timerOnce: ReturnType<typeof setTimeout> | null = null;\n\n private timerFrom: ReturnType<typeof setTimeout> | null = null;\n\n private timerTo: ReturnType<typeof setTimeout> | null = null;\n\n constructor(props: ScheduleProps) {\n super(props);\n let schedule: ScheduleConfig | undefined;\n if (this.props.schedule && typeof this.props.schedule === 'string' && this.props.schedule[0] === '{') {\n try {\n schedule = JSON.parse(this.props.schedule);\n } catch {\n // ignore\n }\n } else if (typeof this.props.schedule === 'object') {\n schedule = this.props.schedule;\n }\n\n if (!schedule || !Object.keys(schedule).length) {\n setTimeout(() => this.onChange(this.state.schedule, true), 200);\n schedule = DEFAULT;\n }\n schedule = { ...DEFAULT, ...schedule };\n schedule.valid.from = schedule.valid.from || Schedule.now2string();\n\n this.refFrom = React.createRef();\n this.refTo = React.createRef();\n this.refOnce = React.createRef();\n\n this.state = {\n schedule,\n desc: Schedule.state2text(schedule),\n };\n\n if (JSON.stringify(schedule) !== this.props.schedule) {\n setTimeout(() => this.props.onChange && this.props.onChange(JSON.stringify(schedule)), 100);\n }\n }\n\n onChange(schedule: ScheduleConfig, force?: boolean): void {\n const isDiff = JSON.stringify(schedule) !== JSON.stringify(this.state.schedule);\n if (force || isDiff) {\n isDiff && this.setState({ schedule, desc: Schedule.state2text(schedule) });\n const copy = JSON.parse(JSON.stringify(schedule));\n if (copy.period.once) {\n const once = copy.period.once;\n delete copy.period;\n copy.period = { once };\n delete copy.valid;\n } else if (copy.period.days) {\n const days = copy.period.days;\n const daysOfWeek = copy.period.dows;\n delete copy.period;\n copy.period = { days };\n if (daysOfWeek && daysOfWeek !== '[]') {\n copy.period.dows = daysOfWeek;\n }\n } else if (copy.period.weeks) {\n const weeks = copy.period.weeks;\n const daysOfWeek = copy.period.dows;\n delete copy.period;\n copy.period = { weeks };\n if (daysOfWeek && daysOfWeek !== '[]') {\n copy.period.dows = daysOfWeek;\n }\n } else if (copy.period.months) {\n const months = copy.period.months;\n const dates = copy.period.dates;\n delete copy.period;\n copy.period = { months };\n if (dates && dates !== '[]') {\n copy.period.dates = dates;\n }\n } else if (copy.period.years) {\n const years = copy.period.years;\n const yearMonth = copy.period.yearMonth;\n const yearDate = copy.period.yearDate;\n delete copy.period;\n copy.period = { years, yearDate };\n if (yearMonth) {\n copy.period.yearMonth = yearMonth;\n }\n }\n\n if (copy.time.exactTime) {\n delete copy.time.end;\n delete copy.time.mode;\n delete copy.time.interval;\n } else {\n delete copy.time.exactTime;\n }\n if (copy.valid) {\n if (!copy.valid.to) {\n delete copy.valid.to;\n }\n if (\n copy.period.days === 1 ||\n copy.period.weeks === 1 ||\n copy.period.months === 1 ||\n copy.period.years === 1\n ) {\n const from = Schedule.string2date(copy.valid.from);\n const today = new Date();\n today.setHours(0);\n today.setMinutes(0);\n today.setSeconds(0);\n today.setMilliseconds(0);\n if (from <= today) {\n delete copy.valid.from;\n }\n }\n if (!copy.valid.from && !copy.valid.to) {\n delete copy.valid;\n }\n }\n\n this.props.onChange && this.props.onChange(JSON.stringify(copy), Schedule.state2text(schedule));\n }\n }\n\n static state2text(schedule: string | ScheduleConfig): string {\n if (typeof schedule === 'string') {\n try {\n schedule = JSON.parse(schedule) as ScheduleConfig;\n } catch {\n return '';\n }\n }\n\n const desc = [];\n const validFrom = Schedule.string2date(schedule.valid.from);\n if (schedule.period.once) {\n // once\n const once = Schedule.string2date(schedule.period.once);\n const now = new Date();\n now.setMilliseconds(0);\n now.setSeconds(0);\n now.setMinutes(0);\n now.setHours(0);\n\n //\n if (once < now) {\n // will be not executed anymore, because start is in the past\n return I18n.t('sch_desc_onceInPast');\n }\n // only once\n desc.push(I18n.t('sch_desc_once_on', schedule.period.once));\n } else if (schedule.period.days) {\n if (schedule.period.days === 1) {\n if (schedule.period.dows) {\n const daysOfWeek = JSON.parse(schedule.period.dows);\n if (daysOfWeek.length === 2 && daysOfWeek[0] === 0 && daysOfWeek[1] === 6) {\n // on weekends\n desc.push(I18n.t('sch_desc_onWeekends'));\n } else if (\n daysOfWeek.length === 5 &&\n daysOfWeek[0] === 1 &&\n daysOfWeek[1] === 2 &&\n daysOfWeek[2] === 3 &&\n daysOfWeek[3] === 4 &&\n daysOfWeek[4] === 5\n ) {\n // on workdays\n desc.push(I18n.t('sch_desc_onWorkdays'));\n } else {\n const tDows = daysOfWeek.map((day: number) => I18n.t(WEEKDAYS[day]));\n if (tDows.length === 1) {\n // on Monday\n desc.push(I18n.t('sch_desc_onWeekday', tDows[0]));\n } else if (tDows.length === 7) {\n // on every day\n desc.push(I18n.t('sch_desc_everyDay'));\n } else {\n const last = tDows.pop();\n // on Monday and Sunday\n desc.push(I18n.t('sch_desc_onWeekdays', tDows.join(', '), last));\n }\n }\n } else {\n desc.push(I18n.t('sch_desc_everyDay'));\n }\n } else {\n desc.push(I18n.t('sch_desc_everyNDay', schedule.period.days.toString()));\n }\n } else if (schedule.period.weeks) {\n if (schedule.period.weeks === 1) {\n desc.push(I18n.t('sch_desc_everyWeek'));\n } else {\n desc.push(I18n.t('sch_desc_everyNWeeks', schedule.period.weeks.toString()));\n }\n\n if (schedule.period.dows) {\n const daysOfWeek = JSON.parse(schedule.period.dows);\n if (daysOfWeek.length === 2 && daysOfWeek[0] === 0 && daysOfWeek[1] === 6) {\n // on weekends\n desc.push(I18n.t('sch_desc_onWeekends'));\n } else if (\n daysOfWeek.length === 5 &&\n daysOfWeek[0] === 1 &&\n daysOfWeek[1] === 2 &&\n daysOfWeek[2] === 3 &&\n daysOfWeek[3] === 4 &&\n daysOfWeek[4] === 5\n ) {\n // on workdays\n desc.push(I18n.t('sch_desc_onWorkdays'));\n } else {\n const tDows = daysOfWeek.map((day: number) => I18n.t(WEEKDAYS[day]));\n if (tDows.length === 1) {\n // on Monday\n desc.push(I18n.t('sch_desc_onWeekday', tDows[0]));\n } else if (tDows.length === 7) {\n // on every day\n desc.push(I18n.t('sch_desc_everyDay'));\n } else {\n const last = tDows.pop();\n // on Monday and Sunday\n desc.push(I18n.t('sch_desc_onWeekdays', tDows.join(', '), last));\n }\n }\n } else {\n return I18n.t('sch_desc_never');\n }\n } else if (schedule.period.months) {\n if (schedule.period.dates) {\n const dates = JSON.parse(schedule.period.dates);\n if (dates.length === 1) {\n // in 1 of month\n desc.push(I18n.t('sch_desc_onDate', dates[0]));\n } else if (dates.length === 31) {\n desc.push(I18n.t('sch_desc_onEveryDate'));\n } else if (!dates.length) {\n return I18n.t('sch_desc_never');\n } else {\n const last = dates.pop();\n // in 1 and 4 of month\n desc.push(I18n.t('sch_desc_onDates', dates.join(', '), last));\n }\n } else {\n desc.push(I18n.t('sch_desc_onEveryDate'));\n }\n\n if (schedule.period.months === 1) {\n desc.push(I18n.t('sch_desc_everyMonth'));\n } else if (typeof schedule.period.months === 'number') {\n desc.push(I18n.t('sch_desc_everyNMonths', schedule.period.months.toString()));\n } else {\n const months = JSON.parse(schedule.period.months);\n const tMonths = months.map((month: number) => I18n.t(MONTHS[month - 1]));\n if (!tMonths.length) {\n // in January\n return I18n.t('sch_desc_never');\n }\n if (tMonths.length === 1) {\n // in January\n desc.push(I18n.t('sch_desc_onMonth', tMonths[0]));\n } else if (tMonths.length === 12) {\n // every month\n desc.push(I18n.t('sch_desc_everyMonth'));\n } else {\n const last = tMonths.pop();\n // in January and May\n desc.push(I18n.t('sch_desc_onMonths', tMonths.join(', '), last));\n }\n }\n } else if (schedule.period.years) {\n if (schedule.period.years === 1) {\n desc.push(I18n.t('sch_desc_everyYear'));\n } else {\n desc.push(I18n.t('sch_desc_everyNYears', schedule.period.years.toString()));\n }\n desc.push(\n I18n.t(\n 'sch_desc_onDate',\n schedule.period.yearDate.toString(),\n schedule.period.yearMonth\n ? I18n.t(MONTHS[schedule.period.yearMonth - 1])\n : I18n.t('sch_desc_everyMonth'),\n ),\n );\n }\n\n // time\n if (schedule.time.exactTime) {\n if (ASTRO.includes(schedule.time.start)) {\n // at sunset\n desc.push(I18n.t('sch_desc_atTime', I18n.t(`sch_astro_${schedule.time.start}`)));\n } else {\n // at HH:MM\n desc.push(I18n.t('sch_desc_atTime', schedule.time.start));\n }\n } else {\n if (schedule.time.mode === PERIODS.minutes) {\n if (schedule.time.interval === 1) {\n // every minute\n desc.push(I18n.t('sch_desc_everyMinute'));\n } else {\n // every N minute\n desc.push(I18n.t('sch_desc_everyNMinutes', schedule.time.interval.toString()));\n }\n } else if (schedule.time.interval === 1) {\n // every minute\n desc.push(I18n.t('sch_desc_everyHour'));\n } else {\n // every N minute\n desc.push(I18n.t('sch_desc_everyNHours', schedule.time.interval.toString()));\n }\n\n const start =\n ASTRO.indexOf(schedule.time.start) !== -1\n ? I18n.t(`sch_astro_${schedule.time.start}`)\n : schedule.time.start;\n const end =\n ASTRO.indexOf(schedule.time.end) !== -1 ? I18n.t(`sch_astro_${schedule.time.end}`) : schedule.time.end;\n if (start !== '00:00' || (end !== '24:00' && end !== '23:59')) {\n // from HH:mm to HH:mm\n desc.push(I18n.t('sch_desc_intervalFromTo', start, end));\n }\n }\n\n if (!schedule.period.once) {\n // valid\n if (validFrom.getTime() > Date.now() && schedule.valid.to) {\n // from XXX to XXXX\n desc.push(I18n.t('sch_desc_validFromTo', schedule.valid.from, schedule.valid.to));\n } else if (validFrom.getTime() > Date.now()) {\n // from XXXX\n desc.push(I18n.t('sch_desc_validFrom', schedule.valid.from));\n } else if (schedule.valid.to) {\n // till XXXX\n desc.push(I18n.t('sch_desc_validTo', schedule.valid.to));\n }\n }\n return desc.join(' ');\n }\n\n getTimePeriodElements(): JSX.Element {\n const schedule = this.state.schedule;\n let wholeDay = false;\n let day = false;\n let night = false;\n let fromTo = true;\n if (schedule.time.start === '00:00' && schedule.time.end === '24:00') {\n wholeDay = true;\n fromTo = false;\n } else if (schedule.time.start === 'sunrise') {\n day = true;\n fromTo = false;\n } else if (schedule.time.start === 'sunset') {\n night = true;\n fromTo = false;\n }\n\n return (\n <div\n key=\"timePeriod\"\n style={styles.rowDiv}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!schedule.time.exactTime}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.exactTime = false;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_intervalTime')}\n />\n </div>\n <div style={styles.settingsDiv}>\n <div style={styles.settingsDiv}>\n {!schedule.time.exactTime && (\n <div>\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!fromTo}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = '00:00';\n _schedule.time.end = '23:59';\n this.onChange(_schedule);\n }}\n />\n }\n label={!fromTo ? I18n.t('sch_fromTo') : ''}\n />\n {fromTo && [\n <TextField\n variant=\"standard\"\n style={{ ...styles.inputTime, marginRight: 10 }}\n key=\"exactTimeFrom\"\n type=\"time\"\n sx={(theme: Theme) => ({\n '& input[type=\"time\"]::-webkit-calendar-picker-indicator': {\n filter: theme.palette.mode === 'dark' ? 'invert(80%)' : undefined,\n },\n })}\n value={this.state.schedule.time.start}\n // InputProps={{inputComponent: TextTime}}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = e.target.value;\n this.onChange(_schedule);\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n label={I18n.t('sch_from')}\n margin=\"normal\"\n />,\n <TextField\n variant=\"standard\"\n style={styles.inputTime}\n key=\"exactTimeTo\"\n type=\"time\"\n sx={(theme: Theme) => ({\n '& input[type=\"time\"]::-webkit-calendar-picker-indicator': {\n filter: theme.palette.mode === 'dark' ? 'invert(80%)' : undefined,\n },\n })}\n value={this.state.schedule.time.end}\n // InputProps={{inputComponent: TextTime}}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.end = e.target.value;\n this.onChange(_schedule);\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n label={I18n.t('sch_to')}\n margin=\"normal\"\n />,\n ]}\n </div>\n </div>\n )}\n\n {!schedule.time.exactTime && (\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!wholeDay}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = '00:00';\n _schedule.time.end = '24:00';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_wholeDay')}\n />\n </div>\n )}\n\n {!schedule.time.exactTime && (\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!day}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = 'sunrise';\n _schedule.time.end = 'sunset';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_astroDay')}\n />\n </div>\n )}\n\n {!schedule.time.exactTime && (\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!night}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = 'sunset';\n _schedule.time.end = 'sunrise';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_astroNight')}\n />\n </div>\n )}\n </div>\n {!schedule.time.exactTime && this.getPeriodSettingsMinutes(fromTo)}\n </div>\n </div>\n );\n }\n\n getTimeExactElements(): JSX.Element {\n const isAstro = ASTRO.includes(this.state.schedule.time.start);\n\n return (\n <div\n key=\"timeExact\"\n style={styles.rowDiv}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!this.state.schedule.time.exactTime}\n onClick={() => {\n const schedule = JSON.parse(JSON.stringify(this.state.schedule));\n schedule.time.exactTime = true;\n this.onChange(schedule);\n }}\n />\n }\n label={I18n.t('sch_exactTime')}\n />\n </div>\n {this.state.schedule.time.exactTime && (\n <Select\n variant=\"standard\"\n value={isAstro ? this.state.schedule.time.start : '00:00'}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = e.target.value;\n this.onChange(_schedule);\n }}\n >\n <MenuItem\n key=\"specific\"\n value=\"00:00\"\n >\n {I18n.t('sch_specificTime')}\n </MenuItem>\n {ASTRO.map(event => (\n <MenuItem\n key={event}\n value={event}\n >\n {I18n.t(`sch_astro_${event}`)}\n </MenuItem>\n ))}\n </Select>\n )}\n {this.state.schedule.time.exactTime && !isAstro && (\n <div style={styles.settingsDiv}>\n <TextField\n variant=\"standard\"\n style={styles.inputTime}\n key=\"exactTimeValue\"\n value={this.state.schedule.time.start}\n type=\"time\"\n sx={(theme: Theme) => ({\n '& input[type=\"time\"]::-webkit-calendar-picker-indicator': {\n filter: theme.palette.mode === 'dark' ? 'invert(80%)' : undefined,\n },\n })}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.start = e.target.value;\n this.onChange(_schedule);\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n margin=\"normal\"\n />\n </div>\n )}\n </div>\n );\n }\n\n static getDivider(): JSX.Element {\n return <hr style={styles.hr} />;\n }\n\n getPeriodModes(): JSX.Element[] {\n const schedule = this.state.schedule;\n const isOnce =\n !schedule.period.dows &&\n !schedule.period.months &&\n !schedule.period.dates &&\n !schedule.period.years &&\n !schedule.period.days &&\n !schedule.period.weeks;\n\n if (isOnce && !schedule.period.once) {\n schedule.period.once = Schedule.now2string(true);\n }\n\n return [\n // ----- once ---\n <div\n key=\"once\"\n style={{ ...styles.rowDiv, ...styles.rowOnce }}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!isOnce}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.once = _schedule.period.once || Schedule.now2string(true);\n _schedule.period.dows = '';\n _schedule.period.months = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodOnce')}\n />\n </div>\n {isOnce && (\n <div style={styles.settingsDiv}>\n <TextField\n variant=\"standard\"\n style={styles.inputDate}\n type=\"date\"\n ref={this.refOnce}\n key=\"exactDateAt\"\n defaultValue={string2USdate(schedule.period.once)}\n // InputProps={{inputComponent: TextTime}}\n onChange={e => {\n this.timerOnce && clearTimeout(this.timerOnce);\n this.timerOnce = null;\n\n if (this.refOnce.current) {\n this.refOnce.current.style.background = '#ff000030';\n }\n this.timerOnce = setTimeout(\n value => {\n this.timerOnce = null;\n if (this.refOnce.current) {\n this.refOnce.current.style.background = '';\n }\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const date = Schedule.string2date(value);\n if (date.toString() !== 'Invalid Date') {\n _schedule.period.once = `${padding(date.getDate())}.${padding(date.getMonth() + 1)}.${date.getFullYear()}`;\n this.onChange(_schedule);\n }\n },\n 1500,\n e.target.value,\n );\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n label={I18n.t('sch_at')}\n margin=\"normal\"\n />\n </div>\n )}\n </div>,\n\n // ----- days ---\n <Box\n component=\"div\"\n key=\"days\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowDays)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.days}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = 1;\n _schedule.period.dows = '';\n _schedule.period.months = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodDaily')}\n />\n </div>\n <div style={styles.settingsDiv}>\n {this.getPeriodSettingsDaily()}\n {schedule.period.days ? this.getPeriodSettingsWeekdays() : null}\n </div>\n </Box>,\n\n // ----- days of weeks ---\n /*\n !schedule.period.days && (\n <div key=\"dows\" style={styles.rowDiv + ' ' + styles.rowDows}>\n <div style={styles.modeDiv}>\n <FormControlLabel control={<Radio style={styles.inputRadio} checked={!!schedule.period.dows} onClick={() => {\n const schedule = JSON.parse(JSON.stringify(this.state.schedule));\n schedule.period.dows = schedule.period.dows ? '' : '[0,1,2,3,4,5,6]';\n this.onChange(schedule);\n }}/>}\n label={I18n.t('sch_periodWeekdays')} />\n </div>\n <div style={styles.settingsDiv}>\n {this.getPeriodSettingsWeekdays()}\n </div>\n </div>,\n */\n // ----- weeks ---\n <Box\n component=\"div\"\n key=\"weeks\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowDows)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.weeks}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = schedule.period.weeks ? 0 : 1;\n _schedule.period.dows = schedule.period.dows || '[0]';\n _schedule.period.months = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWeekly')}\n />\n </div>\n <Box\n component=\"div\"\n style={styles.settingsDiv}\n >\n <div style={styles.settingsDiv}>{this.getPeriodSettingsWeekly()}</div>\n <Box\n component=\"div\"\n sx={Utils.getStyle(this.props.theme, styles.settingsDiv, styles.rowDowsDows)}\n >\n {this.state.schedule.period.weeks ? this.getPeriodSettingsWeekdays() : null}\n </Box>\n </Box>\n </Box>,\n\n // ----- months ---\n <Box\n component=\"div\"\n key=\"months\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowMonths)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.months}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = 1;\n _schedule.period.dows = '';\n _schedule.period.dates = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodMonthly')}\n />\n </div>\n <div style={styles.settingsDiv}>\n {this.getPeriodSettingsMonthly()}\n {schedule.period.months ? (\n <Box>\n <Box\n component=\"div\"\n sx={Utils.getStyle(this.props.theme, styles.settingsDiv, styles.rowMonthsDates)}\n >\n <FormControlLabel\n control={\n <Checkbox\n style={styles.inputRadio}\n checked={!!schedule.period.dates}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = _schedule.period.months || 1;\n const dates = [];\n for (let i = 1; i <= 31; i++) {\n dates.push(i);\n }\n _schedule.period.dates =\n _schedule.period.dates || JSON.stringify(dates);\n _schedule.period.dows = '';\n _schedule.period.years = 0;\n _schedule.period.yearDate = 0;\n _schedule.period.yearMonth = 0;\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodDates')}\n />\n </Box>\n <Box\n component=\"div\"\n sx={Utils.getStyle(this.props.theme, styles.settingsDiv, styles.rowMonthsDates)}\n >\n {this.getPeriodSettingsDates()}\n </Box>\n </Box>\n ) : null}\n </div>\n </Box>,\n\n // ----- years ---\n <Box\n component=\"div\"\n key=\"years\"\n sx={Utils.getStyle(this.props.theme, styles.rowDiv, styles.rowYears)}\n >\n <div style={styles.modeDiv}>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!schedule.period.years}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = 1;\n _schedule.period.yearDate = 1;\n _schedule.period.yearMonth = 1;\n _schedule.period.dows = '';\n _schedule.period.months = 0;\n _schedule.period.dates = '';\n _schedule.period.weeks = 0;\n _schedule.period.days = 0;\n _schedule.period.once = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodYearly')}\n />\n </div>\n <div style={styles.settingsDiv}>\n <div style={styles.settingsDiv}>{this.getPeriodSettingsYearly()}</div>\n {!!schedule.period.years && (\n <div style={styles.settingsDiv}>\n <span>{I18n.t('sch_on')}</span>\n <Input\n key=\"input\"\n value={this.state.schedule.period.yearDate}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 1, max: 31 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.yearDate = parseInt(e.target.value, 10);\n if (_schedule.period.yearDate < 1) {\n _schedule.period.yearDate = 31;\n }\n if (_schedule.period.yearDate > 31) {\n _schedule.period.yearDate = 1;\n }\n this.onChange(_schedule);\n }}\n />\n <Select\n variant=\"standard\"\n value={schedule.period.yearMonth}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.yearMonth = e.target.value;\n this.onChange(_schedule);\n }}\n >\n <MenuItem\n key=\"every\"\n value={0}\n >\n {I18n.t('sch_yearEveryMonth')}\n </MenuItem>\n {MONTHS.map((month, i) => (\n <MenuItem\n key={month}\n value={i + 1}\n >\n {I18n.t(month)}\n </MenuItem>\n ))}\n </Select>\n </div>\n )}\n </div>\n </Box>,\n ];\n }\n\n getPeriodSettingsMinutes(fromTo: boolean): JSX.Element {\n return (\n <div style={{ display: 'inline-block', marginTop: fromTo ? 15 : 'inherit' }}>\n <label style={{ marginLeft: 4, marginRight: 4 }}>{I18n.t('sch_every')}</label>\n <Input\n value={this.state.schedule.time.interval}\n style={{\n ...styles.inputEvery,\n verticalAlign: 'bottom',\n }}\n type=\"number\"\n inputProps={{ min: 1 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.interval = parseInt(e.target.value, 10);\n this.onChange(_schedule);\n }}\n />\n <Select\n variant=\"standard\"\n value={this.state.schedule.time.mode}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.time.mode = e.target.value;\n this.onChange(_schedule);\n }}\n >\n <MenuItem value={PERIODS.minutes}>{I18n.t('sch_periodMinutes')}</MenuItem>\n <MenuItem value={PERIODS.hours}>{I18n.t('sch_periodHours')}</MenuItem>\n </Select>\n </div>\n );\n }\n\n getPeriodSettingsWeekdays(): JSX.Element[] {\n // || this.state.schedule.period.dows === '[1, 2, 3, 4, 5]' || this.state.schedule.period.dows === '[0, 6]'\n const schedule = this.state.schedule;\n const isSpecific =\n schedule.period.dows && schedule.period.dows !== '[1, 2, 3, 4, 5]' && schedule.period.dows !== '[0, 6]';\n return [\n <div key=\"workdays\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.dows === '[1, 2, 3, 4, 5]'}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dows = '[1, 2, 3, 4, 5]';\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWorkdays')}\n />\n </div>,\n\n <div key=\"weekend\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.dows === '[0, 6]'}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dows = '[0, 6]';\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWeekend')}\n />\n </div>,\n\n <div\n key=\"specific\"\n style={{ verticalAlign: 'top' }}\n >\n <FormControlLabel\n style={{ verticalAlign: 'top' }}\n control={\n <Radio\n style={styles.inputRadio}\n checked={!!isSpecific}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dows = '[0, 1, 2, 3, 4, 5, 6]';\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodWeekdays')}\n />\n {isSpecific && (schedule.period.days === 1 || schedule.period.weeks) && (\n <FormGroup\n row\n style={{ ...styles.inputGroup, width: 150 }}\n >\n {[1, 2, 3, 4, 5, 6, 0].map(i => (\n <FormControlLabel\n key={`specific_${i}`}\n style={styles.inputGroupElement}\n control={\n <Checkbox\n style={styles.inputSmallCheck}\n checked={schedule.period.dows.includes(i.toString())}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n let daysOfWeek: number[];\n try {\n daysOfWeek = JSON.parse(_schedule.period.dows);\n } catch {\n daysOfWeek = [];\n }\n if (e.target.checked && !daysOfWeek.includes(i)) {\n daysOfWeek.push(i);\n } else if (!e.target.checked && daysOfWeek.includes(i)) {\n daysOfWeek.splice(daysOfWeek.indexOf(i), 1);\n }\n daysOfWeek.sort((a: number, b: number) => a - b);\n _schedule.period.dows = JSON.stringify(daysOfWeek);\n if (_schedule.period.days) {\n _schedule.period.days = 1;\n }\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t(WEEKDAYS[i])}\n />\n ))}\n </FormGroup>\n )}\n </div>,\n ];\n }\n\n getPeriodSettingsDaily(): JSX.Element[] | null {\n if (!this.state.schedule.period.days) {\n return null;\n }\n const schedule = this.state.schedule;\n return [\n <div key=\"every_day\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.days === 1 && !schedule.period.dows}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = 1;\n _schedule.period.dows = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryDay')}\n />\n </div>,\n <div key=\"everyN_day\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.days > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = 2;\n _schedule.period.dows = '';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {schedule.period.days > 1 && [\n <Input\n key=\"input\"\n value={this.state.schedule.period.days}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.days = parseInt(e.target.value, 10);\n _schedule.period.dows = '';\n this.onChange(_schedule);\n }}\n />,\n <span\n key=\"span\"\n style={{ paddingRight: 10 }}\n >\n {I18n.t('sch_periodDay')}\n </span>,\n ]}\n </div>,\n ];\n }\n\n getPeriodSettingsWeekly(): JSX.Element[] | null {\n if (!this.state.schedule.period.weeks) {\n return null;\n }\n const schedule = this.state.schedule;\n return [\n <div\n key=\"radios\"\n style={{ display: 'inline-block', verticalAlign: 'top' }}\n >\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.weeks === 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = 1;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryWeek')}\n />\n </div>\n <div>\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.weeks > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = 2;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {schedule.period.weeks > 1 && [\n <Input\n key=\"input\"\n value={this.state.schedule.period.weeks}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.weeks = parseInt(e.target.value, 10);\n this.onChange(_schedule);\n }}\n />,\n <span key=\"text\">{I18n.t('sch_periodWeek')}</span>,\n ]}\n </div>\n </div>,\n ];\n }\n\n getPeriodSettingsDates(): JSX.Element | null {\n if (!this.state.schedule.period.dates) {\n return null;\n }\n const schedule = this.state.schedule;\n\n const dates = [];\n for (let i = 1; i <= 31; i++) {\n dates.push(i);\n }\n\n const parsedDates = JSON.parse(schedule.period.dates);\n\n return (\n <FormGroup\n row\n style={{ ...styles.inputGroup, maxWidth: 620 }}\n >\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={parsedDates.length === 31}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const _dates = [];\n for (let i = 1; i <= 31; i++) {\n _dates.push(i);\n }\n _schedule.period.dates = JSON.stringify(_dates);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_all')}\n />\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={!parsedDates.length}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.dates = '[]';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_no_one')}\n />\n {parsedDates.length !== 31 && !!parsedDates.length && (\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={false}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const result = [];\n const _parsedDates = JSON.parse(_schedule.period.dates);\n for (let i = 1; i <= 31; i++) {\n if (!_parsedDates.includes(i)) {\n result.push(i);\n }\n }\n result.sort((a, b) => a - b);\n _schedule.period.dates = JSON.stringify(result);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_invert')}\n />\n )}\n <div />\n {dates.map(i => (\n <FormControlLabel\n key={`date_${i}`}\n style={\n !i\n ? {\n ...styles.inputDateDay,\n opacity: 0,\n cursor: 'default',\n userSelect: 'none',\n pointerEvents: 'none',\n }\n : styles.inputDateDay\n }\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={JSON.parse(schedule.period.dates).includes(i)}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n let _dates;\n try {\n _dates = JSON.parse(_schedule.period.dates);\n } catch {\n _dates = [];\n }\n if (e.target.checked && !_dates.includes(i)) {\n _dates.push(i);\n } else if (!e.target.checked && _dates.includes(i)) {\n _dates.splice(_dates.indexOf(i), 1);\n }\n _dates.sort((a: number, b: number) => a - b);\n _schedule.period.dates = JSON.stringify(_dates);\n this.onChange(_schedule);\n }}\n />\n }\n label={\n i < 10\n ? [\n <span\n key=\"0\"\n style={{ opacity: 0 }}\n >\n 0\n </span>,\n <span key=\"num\">{i}</span>,\n ]\n : i\n }\n />\n ))}\n </FormGroup>\n );\n }\n\n getPeriodSettingsMonthly(): JSX.Element[] | null {\n if (!this.state.schedule.period.months) {\n return null;\n }\n const schedule = this.state.schedule;\n const parsedMonths = typeof schedule.period.months === 'string' ? JSON.parse(schedule.period.months) : [];\n\n return [\n <div key=\"every\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={typeof schedule.period.months === 'number' && schedule.period.months === 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = 1;\n this.onChange(schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryMonth')}\n />\n </div>,\n <div key=\"everyN\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={typeof schedule.period.months === 'number' && schedule.period.months > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = 2;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {typeof schedule.period.months === 'number' &&\n schedule.period.months > 1 && [\n <Input\n key=\"input\"\n value={schedule.period.months}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = parseInt(e.target.value, 10);\n if (_schedule.period.months < 1) {\n _schedule.period.months = 1;\n }\n this.onChange(_schedule);\n }}\n />,\n <span key=\"text\">{I18n.t('sch_periodMonth')}</span>,\n ]}\n </div>,\n <div\n key=\"specific\"\n style={{ verticalAlign: 'top' }}\n >\n <FormControlLabel\n style={{ verticalAlign: 'top' }}\n control={\n <Radio\n style={styles.inputRadio}\n checked={typeof schedule.period.months === 'string'}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = '[1,2,3,4,5,6,7,8,9,10,11,12]';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodSpecificMonths')}\n />\n {typeof schedule.period.months === 'string' && (\n <FormGroup\n row\n style={styles.inputGroup}\n >\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={parsedMonths.length === 12}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const months = [];\n for (let i = 1; i <= 12; i++) {\n months.push(i);\n }\n _schedule.period.months = JSON.stringify(months);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_all')}\n />\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={!parsedMonths.length}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.months = '[]';\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_no_one')}\n />\n {parsedMonths.length !== 12 && !!parsedMonths.length && (\n <FormControlLabel\n style={styles.inputDateDay}\n control={\n <Checkbox\n style={styles.inputDateDayCheck}\n checked={false}\n onChange={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const result = [];\n const _parsedMonths = JSON.parse(_schedule.period.months);\n for (let i = 1; i <= 12; i++) {\n if (!_parsedMonths.includes(i)) {\n result.push(i);\n }\n }\n result.sort((a, b) => a - b);\n _schedule.period.months = JSON.stringify(result);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_invert')}\n />\n )}\n <div />\n {MONTHS.map((month, i) => (\n <FormControlLabel\n key={`month_${i}`}\n style={styles.inputGroupElement}\n control={\n <Checkbox\n style={styles.inputSmallCheck}\n checked={\n typeof schedule.period.months === 'string'\n ? JSON.parse(schedule.period.months).includes(i + 1)\n : schedule.period.months === i\n }\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n let months;\n try {\n months = JSON.parse(_schedule.period.months);\n } catch {\n months = [];\n }\n if (e.target.checked && !months.includes(i + 1)) {\n months.push(i + 1);\n } else if (!e.target.checked && months.includes(i + 1)) {\n months.splice(months.indexOf(i + 1), 1);\n }\n months.sort((a: number, b: number) => a - b);\n _schedule.period.months = JSON.stringify(months);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t(month)}\n />\n ))}\n </FormGroup>\n )}\n </div>,\n ];\n }\n\n getPeriodSettingsYearly(): JSX.Element[] | null {\n if (!this.state.schedule.period.years) {\n return null;\n }\n const schedule = this.state.schedule;\n return [\n <div key=\"year\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.years === 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = 1;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEveryYear')}\n />\n </div>,\n <div key=\"every\">\n <FormControlLabel\n control={\n <Radio\n style={styles.inputRadio}\n checked={schedule.period.years > 1}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = 2;\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_periodEvery')}\n />\n {schedule.period.years > 1 && [\n <Input\n key=\"input\"\n value={this.state.schedule.period.years}\n style={styles.inputEvery}\n type=\"number\"\n inputProps={{ min: 2 }}\n onChange={e => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.period.years = parseInt(e.target.value, 10);\n if (_schedule.period.years < 1) {\n _schedule.period.years = 1;\n }\n this.onChange(_schedule);\n }}\n />,\n <span key=\"text\">{I18n.t('sch_periodYear')}</span>,\n ]}\n </div>,\n ];\n }\n\n static now2string(isEnd?: boolean): string {\n const d = new Date();\n d.setHours(0);\n d.setMinutes(0);\n d.setSeconds(0);\n d.setMilliseconds(0);\n if (isEnd) {\n d.setDate(d.getDate() + 2);\n d.setMilliseconds(d.getMilliseconds() - 1);\n }\n\n return `${padding(d.getDate())}.${padding(d.getMonth() + 1)}.${padding(d.getFullYear())}`;\n }\n\n static string2date(str: string): Date {\n let parts = str.split('.'); // 31.12.2019\n if (parts.length === 1) {\n parts = str.split('-'); // 2018-12-31\n return new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10));\n }\n return new Date(parseInt(parts[2], 10), parseInt(parts[1], 10) - 1, parseInt(parts[0], 10));\n }\n\n getValidSettings(): JSX.Element {\n const schedule = this.state.schedule;\n // ----- from ---\n return (\n <div style={styles.rowDiv}>\n <div style={{ ...styles.modeDiv, verticalAlign: 'middle' }}>\n <span style={{ fontWeight: 'bold', paddingRight: 10 }}>{I18n.t('sch_valid')}</span>\n <span>{I18n.t('sch_validFrom')}</span>\n </div>\n <div style={styles.settingsDiv}>\n <TextField\n variant=\"standard\"\n style={{ ...styles.inputDate, marginRight: 10 }}\n key=\"exactTimeFrom\"\n inputRef={this.refFrom}\n defaultValue={string2USdate(schedule.valid.from)}\n type=\"date\"\n // inputComponent={TextDate}\n onChange={e => {\n this.timerFrom && clearTimeout(this.timerFrom);\n\n if (this.refFrom.current) {\n this.refFrom.current.style.background = '#ff000030';\n }\n\n this.timerFrom = setTimeout(\n value => {\n this.timerFrom = null;\n if (this.refFrom.current) {\n this.refFrom.current.style.background = '';\n }\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const date = Schedule.string2date(value);\n if (date.toString() !== 'Invalid Date') {\n _schedule.valid.from = `${padding(date.getDate())}.${padding(date.getMonth() + 1)}.${date.getFullYear()}`;\n this.onChange(_schedule);\n }\n },\n 1500,\n e.target.value,\n );\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n margin=\"normal\"\n />\n <FormControlLabel\n control={\n <Checkbox\n style={styles.inputRadio}\n checked={!!schedule.valid.to}\n onClick={() => {\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n _schedule.valid.to = _schedule.valid.to ? '' : Schedule.now2string(true);\n this.onChange(_schedule);\n }}\n />\n }\n label={I18n.t('sch_validTo')}\n />\n {!!schedule.valid.to && (\n <TextField\n variant=\"standard\"\n inputRef={this.refTo}\n style={{ ...styles.inputDate, marginRight: 10 }}\n key=\"exactTimeFrom\"\n type=\"date\"\n defaultValue={string2USdate(schedule.valid.to)}\n // inputComponent={TextDate}\n onChange={e => {\n this.timerTo && clearTimeout(this.timerTo);\n\n if (this.refTo.current) {\n this.refTo.current.style.background = '#ff000030';\n }\n this.timerTo = setTimeout(\n value => {\n this.timerTo = null;\n if (this.refTo.current) {\n this.refTo.current.style.background = '';\n }\n const _schedule = JSON.parse(JSON.stringify(this.state.schedule));\n const date = Schedule.string2date(value);\n if (date.toString() !== 'Invalid Date') {\n _schedule.valid.to = `${padding(date.getDate())}.${padding(date.getMonth() + 1)}.${date.getFullYear()}`;\n this.onChange(_schedule);\n }\n },\n 1500,\n e.target.value,\n );\n }}\n slotProps={{\n inputLabel: { shrink: true },\n }}\n margin=\"normal\"\n />\n )}\n </div>\n </div>\n );\n }\n\n render(): JSX.Element {\n return (\n <div style={{ height: 'calc(100% - 48px)', width: '100%', overflow: 'hidden' }}>\n <div>{this.state.desc}</div>\n <div style={styles.scrollWindow}>\n <h5>{I18n.t('sch_time')}</h5>\n {this.getTimePeriodElements()}\n {this.getTimeExactElements()}\n {Schedule.getDivider()}\n <h5>{I18n.t('sch_period')}</h5>\n {this.getPeriodModes()}\n {!this.state.schedule.period.once && Schedule.getDivider()}\n {!this.state.schedule.period.once && this.getValidSettings()}\n </div>\n </div>\n );\n }\n}\n"]}
@@ -29,10 +29,10 @@ interface TextWithIconItem {
29
29
  interface SelectWithIconState {
30
30
  list: TextWithIconItem[];
31
31
  }
32
- declare class SelectWithIcon extends Component<SelectWithIconProps, SelectWithIconState> {
32
+ export declare class SelectWithIcon extends Component<SelectWithIconProps, SelectWithIconState> {
33
33
  private readonly wordDifferent;
34
34
  private timeout;
35
35
  constructor(props: SelectWithIconProps);
36
36
  render(): React.JSX.Element;
37
37
  }
38
- export default SelectWithIcon;
38
+ export {};
@@ -0,0 +1,135 @@
1
+ import React, { Component } from 'react';
2
+ import { FormControl, InputLabel, MenuItem, Select } from '@mui/material';
3
+ import { Icon } from './Icon';
4
+ import { Utils } from './Utils';
5
+ import { I18n } from '../i18n';
6
+ const styles = {
7
+ different: {
8
+ opacity: 0.5,
9
+ },
10
+ icon: {
11
+ width: 16,
12
+ height: 16,
13
+ marginRight: 8,
14
+ },
15
+ };
16
+ export class SelectWithIcon extends Component {
17
+ wordDifferent;
18
+ timeout = null;
19
+ constructor(props) {
20
+ super(props);
21
+ if (props.different) {
22
+ this.wordDifferent = props.t('ra___different__');
23
+ }
24
+ let list;
25
+ if (Array.isArray(props.list || props.options)) {
26
+ list = (props.list || props.options).map(obj => ({
27
+ name: Utils.getObjectNameFromObj(obj, props.lang)
28
+ .replace('system.group.', '')
29
+ .replace('system.user.', '')
30
+ .replace('enum.rooms.', '')
31
+ .replace('enum.functions.', ''),
32
+ value: obj._id,
33
+ icon: obj.common?.icon,
34
+ color: obj.common?.color,
35
+ }));
36
+ }
37
+ else {
38
+ list = Object.values((props.list || props.options)).map(obj => ({
39
+ name: Utils.getObjectNameFromObj(obj, props.lang)
40
+ .replace('system.group.', '')
41
+ .replace('system.user.', '')
42
+ .replace('enum.rooms.', '')
43
+ .replace('enum.functions.', ''),
44
+ value: obj._id,
45
+ icon: obj.common?.icon,
46
+ color: obj.common?.color,
47
+ }));
48
+ }
49
+ if (props.different && props.value === props.different) {
50
+ list.unshift({ value: props.different, name: this.wordDifferent || '' });
51
+ }
52
+ if (props.allowNone) {
53
+ list.unshift({ value: '', name: I18n.t('ra_none') });
54
+ }
55
+ this.state = {
56
+ list,
57
+ };
58
+ }
59
+ render() {
60
+ if (this.props.allowNone && !this.state.list.find(obj => obj.value === '')) {
61
+ this.timeout =
62
+ this.timeout ||
63
+ setTimeout(() => {
64
+ this.timeout = null;
65
+ const list = JSON.parse(JSON.stringify(this.state.list));
66
+ list.unshift({ value: '', name: I18n.t('ra_none') });
67
+ this.setState({ list });
68
+ }, 100);
69
+ }
70
+ else if (!this.props.allowNone && this.state.list.find(obj => obj.value === '')) {
71
+ this.timeout =
72
+ this.timeout ||
73
+ setTimeout(() => {
74
+ this.timeout = null;
75
+ const list = JSON.parse(JSON.stringify(this.state.list));
76
+ const i = this.state.list.findIndex(obj => obj.value === '');
77
+ list.splice(i, 1);
78
+ this.setState({ list });
79
+ }, 100);
80
+ }
81
+ const item = this.state.list.find(it => it.value === this.props.value ||
82
+ (this.props.removePrefix && it.value.replace(this.props.removePrefix, '') === this.props.value));
83
+ const style = this.props.value === this.props.different
84
+ ? {}
85
+ : {
86
+ color: item?.color || undefined,
87
+ backgroundColor: Utils.getInvertedColor(item?.color || '', this.props.themeType),
88
+ };
89
+ if (this.props.dense && this.props.style) {
90
+ Object.assign(style, this.props.style);
91
+ }
92
+ const select = (React.createElement(Select, { variant: "standard", disabled: this.props.disabled, value: this.props.value, slotProps: {
93
+ input: this.props.inputProps,
94
+ }, renderValue: ( /* value */) => (React.createElement("span", null,
95
+ item?.icon ? (React.createElement(Icon, { src: item?.icon, style: styles.icon })) : null,
96
+ item?.name)), sx: {
97
+ '&.MuiSelect-root': this.props.value === this.props.different ? styles.different : {},
98
+ }, classes: {
99
+ root: this.props.dense ? this.props.className : '',
100
+ }, style: style, onChange: el => {
101
+ if (this.props.different && el.target.value !== this.props.different) {
102
+ let pos = null;
103
+ for (let i = 0; i < this.state.list.length; i++) {
104
+ if (this.state.list[i].value === this.props.different) {
105
+ pos = i;
106
+ break;
107
+ }
108
+ }
109
+ if (pos !== null) {
110
+ const list = Utils.clone(this.state.list);
111
+ list.splice(pos, 1);
112
+ this.setState({ list }, () => this.props.onChange(el.target.value));
113
+ return;
114
+ }
115
+ }
116
+ this.props.onChange(this.props.removePrefix
117
+ ? el.target.value.replace(this.props.removePrefix, '')
118
+ : el.target.value);
119
+ } }, this.state.list.map(el => (React.createElement(MenuItem, { style: this.props.different && el.value === this.props.different
120
+ ? styles.different
121
+ : {
122
+ color: el.color || undefined,
123
+ backgroundColor: Utils.getInvertedColor(el.color || '', this.props.themeType),
124
+ }, key: el.value, value: el.value },
125
+ el.icon ? (React.createElement(Icon, { src: el.icon, style: styles.icon })) : null,
126
+ el.name)))));
127
+ if (this.props.dense) {
128
+ return select;
129
+ }
130
+ return (React.createElement(FormControl, { variant: "standard", fullWidth: !!this.props.fullWidth, style: this.props.style, className: this.props.className },
131
+ React.createElement(InputLabel, null, this.props.label),
132
+ select));
133
+ }
134
+ }
135
+ //# sourceMappingURL=SelectWithIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectWithIcon.js","sourceRoot":"./src/","sources":["Components/SelectWithIcon.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\n\nimport { FormControl, InputLabel, MenuItem, Select } from '@mui/material';\nimport type { InputProps } from '@mui/material/Input';\n\nimport type { ThemeType, Translate } from '../types';\n\nimport { Icon } from './Icon';\nimport { Utils } from './Utils';\nimport { I18n } from '../i18n';\n\nconst styles: Record<string, React.CSSProperties> = {\n different: {\n opacity: 0.5,\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8,\n },\n};\n\ninterface SelectWithIconProps {\n t: Translate;\n lang: ioBroker.Languages;\n themeType: ThemeType;\n value?: string;\n onChange: (id: string) => void;\n disabled?: boolean;\n list?: ioBroker.Object[] | Record<string, ioBroker.Object>; // one of \"list\"(Array) or \"options\"(object) is required\n options?: Record<string, any>; // one of \"list\"(Array) or \"options\"(object) is required\n different?: string | boolean;\n label?: string;\n fullWidth?: boolean;\n className?: string;\n style?: React.CSSProperties;\n removePrefix?: string;\n allowNone?: boolean;\n inputProps?: InputProps['inputProps'];\n dense?: boolean;\n}\n\ninterface TextWithIconItem {\n name: string;\n value: string;\n icon?: string;\n color?: string;\n}\n\ninterface SelectWithIconState {\n list: TextWithIconItem[];\n}\n\nexport class SelectWithIcon extends Component<SelectWithIconProps, SelectWithIconState> {\n private readonly wordDifferent: string | undefined;\n\n private timeout: ReturnType<typeof setTimeout> | null = null;\n\n constructor(props: SelectWithIconProps) {\n super(props);\n\n if (props.different) {\n this.wordDifferent = props.t('ra___different__');\n }\n\n let list: TextWithIconItem[];\n if (Array.isArray(props.list || props.options)) {\n list = ((props.list || props.options) as ioBroker.Object[]).map(obj => ({\n name: Utils.getObjectNameFromObj(obj, props.lang)\n .replace('system.group.', '')\n .replace('system.user.', '')\n .replace('enum.rooms.', '')\n .replace('enum.functions.', ''),\n value: obj._id,\n icon: obj.common?.icon,\n color: obj.common?.color,\n }));\n } else {\n list = Object.values((props.list || props.options) as Record<string, ioBroker.Object>).map(obj => ({\n name: Utils.getObjectNameFromObj(obj, props.lang)\n .replace('system.group.', '')\n .replace('system.user.', '')\n .replace('enum.rooms.', '')\n .replace('enum.functions.', ''),\n value: obj._id,\n icon: obj.common?.icon,\n color: obj.common?.color,\n }));\n }\n\n if (props.different && props.value === props.different) {\n list.unshift({ value: props.different, name: this.wordDifferent || '' });\n }\n\n if (props.allowNone) {\n list.unshift({ value: '', name: I18n.t('ra_none') });\n }\n\n this.state = {\n list,\n };\n }\n\n render(): React.JSX.Element {\n if (this.props.allowNone && !this.state.list.find(obj => obj.value === '')) {\n this.timeout =\n this.timeout ||\n setTimeout(() => {\n this.timeout = null;\n const list = JSON.parse(JSON.stringify(this.state.list));\n list.unshift({ value: '', name: I18n.t('ra_none') });\n this.setState({ list });\n }, 100);\n } else if (!this.props.allowNone && this.state.list.find(obj => obj.value === '')) {\n this.timeout =\n this.timeout ||\n setTimeout(() => {\n this.timeout = null;\n const list = JSON.parse(JSON.stringify(this.state.list));\n const i = this.state.list.findIndex(obj => obj.value === '');\n list.splice(i, 1);\n this.setState({ list });\n }, 100);\n }\n\n const item = this.state.list.find(\n it =>\n it.value === this.props.value ||\n (this.props.removePrefix && it.value.replace(this.props.removePrefix, '') === this.props.value),\n );\n\n const style =\n this.props.value === this.props.different\n ? {}\n : {\n color: item?.color || undefined,\n backgroundColor: Utils.getInvertedColor(item?.color || '', this.props.themeType),\n };\n\n if (this.props.dense && this.props.style) {\n Object.assign(style, this.props.style);\n }\n\n const select = (\n <Select\n variant=\"standard\"\n disabled={this.props.disabled}\n value={this.props.value}\n slotProps={{\n input: this.props.inputProps,\n }}\n renderValue={\n (/* value */) => (\n <span>\n {item?.icon ? (\n <Icon\n src={item?.icon}\n style={styles.icon}\n />\n ) : null}\n {item?.name}\n </span>\n )\n }\n sx={{\n '&.MuiSelect-root': this.props.value === this.props.different ? styles.different : {},\n }}\n classes={{\n root: this.props.dense ? this.props.className : '',\n }}\n style={style}\n onChange={el => {\n if (this.props.different && el.target.value !== this.props.different) {\n let pos = null;\n for (let i = 0; i < this.state.list.length; i++) {\n if (this.state.list[i].value === this.props.different) {\n pos = i;\n break;\n }\n }\n if (pos !== null) {\n const list: TextWithIconItem[] = Utils.clone(this.state.list) as TextWithIconItem[];\n list.splice(pos, 1);\n this.setState({ list }, () => this.props.onChange(el.target.value));\n return;\n }\n }\n\n this.props.onChange(\n this.props.removePrefix\n ? el.target.value.replace(this.props.removePrefix, '')\n : el.target.value,\n );\n }}\n >\n {this.state.list.map(el => (\n <MenuItem\n style={\n this.props.different && el.value === this.props.different\n ? styles.different\n : {\n color: el.color || undefined,\n backgroundColor: Utils.getInvertedColor(el.color || '', this.props.themeType),\n }\n }\n key={el.value}\n value={el.value}\n >\n {el.icon ? (\n <Icon\n src={el.icon}\n style={styles.icon}\n />\n ) : null}\n {el.name}\n </MenuItem>\n ))}\n </Select>\n );\n\n if (this.props.dense) {\n return select;\n }\n\n return (\n <FormControl\n variant=\"standard\"\n fullWidth={!!this.props.fullWidth}\n style={this.props.style}\n className={this.props.className}\n >\n <InputLabel>{this.props.label}</InputLabel>\n {select}\n </FormControl>\n );\n }\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import cronstrue from 'cronstrue';
2
+ import 'cronstrue/locales/fr';
3
+ import 'cronstrue/locales/es';
4
+ import 'cronstrue/locales/de';
5
+ import 'cronstrue/locales/it';
6
+ import 'cronstrue/locales/ru';
7
+ import 'cronstrue/locales/zh_CN';
8
+ import 'cronstrue/locales/uk';
9
+ import 'cronstrue/locales/pt_BR';
10
+ import 'cronstrue/locales/pl';
11
+ function convertCronToText(cron, lang) {
12
+ return cronstrue.toString(cron, { locale: lang });
13
+ }
14
+ export default convertCronToText;
15
+ //# sourceMappingURL=cronText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cronText.js","sourceRoot":"./src/","sources":["Components/SimpleCron/cronText.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,yBAAyB,CAAC;AACjC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,yBAAyB,CAAC;AACjC,OAAO,sBAAsB,CAAC;AAE9B,SAAS,iBAAiB,CAAC,IAAY,EAAE,IAAyB;IAC9D,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,eAAe,iBAAiB,CAAC","sourcesContent":["import cronstrue from 'cronstrue';\nimport 'cronstrue/locales/fr';\nimport 'cronstrue/locales/es';\nimport 'cronstrue/locales/de';\nimport 'cronstrue/locales/it';\nimport 'cronstrue/locales/ru';\nimport 'cronstrue/locales/zh_CN';\nimport 'cronstrue/locales/uk';\nimport 'cronstrue/locales/pt_BR';\nimport 'cronstrue/locales/pl';\n\nfunction convertCronToText(cron: string, lang?: ioBroker.Languages): string {\n return cronstrue.toString(cron, { locale: lang });\n}\n\nexport default convertCronToText;\n"]}
@@ -34,7 +34,7 @@ interface SimpleCronState {
34
34
  };
35
35
  }
36
36
  export declare function cron2state(cron: string, force?: boolean): Partial<SimpleCronState> | null;
37
- declare class SimpleCron extends React.Component<SimpleCronProps, SimpleCronState> {
37
+ export declare class SimpleCron extends React.Component<SimpleCronProps, SimpleCronState> {
38
38
  constructor(props: SimpleCronProps);
39
39
  static periodArray2text(list: number[], max?: number): string;
40
40
  static text2weekdays(text: string): number[];
@@ -52,4 +52,4 @@ declare class SimpleCron extends React.Component<SimpleCronProps, SimpleCronStat
52
52
  onChange(cron: string): void;
53
53
  render(): React.JSX.Element;
54
54
  }
55
- export default SimpleCron;
55
+ export {};