@iobroker/adapter-react-v5 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/Components/404.js +155 -0
  2. package/Components/404.js.map +1 -0
  3. package/Components/ColorPicker.js +313 -0
  4. package/Components/ColorPicker.js.map +1 -0
  5. package/Components/ComplexCron.js +606 -0
  6. package/Components/ComplexCron.js.map +1 -0
  7. package/Components/FileBrowser.js +2147 -0
  8. package/Components/FileBrowser.js.map +1 -0
  9. package/Components/FileViewer.js +245 -0
  10. package/Components/FileViewer.js.map +1 -0
  11. package/Components/Icon.js +234 -0
  12. package/Components/Icon.js.map +1 -0
  13. package/Components/IconPicker.js +188 -0
  14. package/Components/IconPicker.js.map +1 -0
  15. package/Components/IconSelector.js +337 -0
  16. package/Components/IconSelector.js.map +1 -0
  17. package/Components/Image.js +215 -0
  18. package/Components/Image.js.map +1 -0
  19. package/Components/Loader.js +134 -0
  20. package/Components/Loader.js.map +1 -0
  21. package/Components/Loaders/PT.css +109 -0
  22. package/Components/Loaders/PT.js +104 -0
  23. package/Components/Loaders/PT.js.map +1 -0
  24. package/Components/Loaders/Vendor.css +13 -0
  25. package/Components/Loaders/Vendor.js +108 -0
  26. package/Components/Loaders/Vendor.js.map +1 -0
  27. package/Components/Logo.js +230 -0
  28. package/Components/Logo.js.map +1 -0
  29. package/Components/MDUtils.js +141 -0
  30. package/Components/MDUtils.js.map +1 -0
  31. package/Components/ObjectBrowser.js +6119 -0
  32. package/Components/ObjectBrowser.js.map +1 -0
  33. package/Components/Router.js +152 -0
  34. package/Components/Router.js.map +1 -0
  35. package/Components/SaveCloseButtons.js +177 -0
  36. package/Components/SaveCloseButtons.js.map +1 -0
  37. package/Components/Schedule.js +1891 -0
  38. package/Components/Schedule.js.map +1 -0
  39. package/Components/SelectWithIcon.js +235 -0
  40. package/Components/SelectWithIcon.js.map +1 -0
  41. package/Components/SimpleCron/cron2text.js +563 -0
  42. package/Components/SimpleCron/cron2text.js.map +1 -0
  43. package/Components/SimpleCron/cronText.js +60 -0
  44. package/Components/SimpleCron/cronText.js.map +1 -0
  45. package/Components/SimpleCron/index.js +861 -0
  46. package/Components/SimpleCron/index.js.map +1 -0
  47. package/Components/SimpleCron/jquery.cron.locale.js +322 -0
  48. package/Components/SimpleCron/jquery.cron.locale.js.map +1 -0
  49. package/Components/TabContainer.js +108 -0
  50. package/Components/TabContainer.js.map +1 -0
  51. package/Components/TabContent.js +96 -0
  52. package/Components/TabContent.js.map +1 -0
  53. package/Components/TabHeader.js +72 -0
  54. package/Components/TabHeader.js.map +1 -0
  55. package/Components/TextWithIcon.js +148 -0
  56. package/Components/TextWithIcon.js.map +1 -0
  57. package/Components/ToggleThemeMenu.js +49 -0
  58. package/Components/ToggleThemeMenu.js.map +1 -0
  59. package/Components/TreeTable.js +1030 -0
  60. package/Components/TreeTable.js.map +1 -0
  61. package/Components/Utils.js +1763 -0
  62. package/Components/Utils.js.map +1 -0
  63. package/Components/copy-to-clipboard.js +183 -0
  64. package/Components/copy-to-clipboard.js.map +1 -0
  65. package/Components/loader.css +222 -0
  66. package/Components/types.d.ts +121 -0
  67. package/Connection.js +3334 -0
  68. package/Connection.js.map +1 -0
  69. package/Dialogs/ComplexCron.js +193 -0
  70. package/Dialogs/ComplexCron.js.map +1 -0
  71. package/Dialogs/Confirm.js +211 -0
  72. package/Dialogs/Confirm.js.map +1 -0
  73. package/Dialogs/Cron.js +254 -0
  74. package/Dialogs/Cron.js.map +1 -0
  75. package/Dialogs/Error.js +137 -0
  76. package/Dialogs/Error.js.map +1 -0
  77. package/Dialogs/Message.js +118 -0
  78. package/Dialogs/Message.js.map +1 -0
  79. package/Dialogs/SelectID.js +313 -0
  80. package/Dialogs/SelectID.js.map +1 -0
  81. package/Dialogs/SimpleCron.js +177 -0
  82. package/Dialogs/SimpleCron.js.map +1 -0
  83. package/Dialogs/TextInput.js +194 -0
  84. package/Dialogs/TextInput.js.map +1 -0
  85. package/GenericApp.js +1022 -0
  86. package/GenericApp.js.map +1 -0
  87. package/LICENSE +22 -0
  88. package/Prompt.js +21 -0
  89. package/Prompt.js.map +1 -0
  90. package/README.md +645 -0
  91. package/Theme.js +422 -0
  92. package/Theme.js.map +1 -0
  93. package/assets/devices/Alarm Systems.svg +19 -0
  94. package/assets/devices/Amplifier.svg +22 -0
  95. package/assets/devices/Awnings.svg +5 -0
  96. package/assets/devices/Battery Status.svg +5 -0
  97. package/assets/devices/Ceiling Spotlights.svg +16 -0
  98. package/assets/devices/Chandelier.svg +7 -0
  99. package/assets/devices/Climate.svg +12 -0
  100. package/assets/devices/Coffee Makers.svg +6 -0
  101. package/assets/devices/Cold Water.svg +31 -0
  102. package/assets/devices/Computer.svg +21 -0
  103. package/assets/devices/Consumption.svg +8 -0
  104. package/assets/devices/Curtains.svg +43 -0
  105. package/assets/devices/Dishwashers.svg +12 -0
  106. package/assets/devices/Doors.svg +6 -0
  107. package/assets/devices/Doorstep.svg +35 -0
  108. package/assets/devices/Dryer.svg +14 -0
  109. package/assets/devices/Fan.svg +20 -0
  110. package/assets/devices/Floor Lamps.svg +5 -0
  111. package/assets/devices/Garage Doors.svg +9 -0
  112. package/assets/devices/Gates.svg +32 -0
  113. package/assets/devices/Hairdryer.svg +23 -0
  114. package/assets/devices/Handle.svg +6 -0
  115. package/assets/devices/Hanging Lamps.svg +9 -0
  116. package/assets/devices/Heater.svg +44 -0
  117. package/assets/devices/Hoods.svg +12 -0
  118. package/assets/devices/Hot Water.svg +10 -0
  119. package/assets/devices/Humidity.svg +41 -0
  120. package/assets/devices/Iron.svg +5 -0
  121. package/assets/devices/Irrigation.svg +42 -0
  122. package/assets/devices/Led Strip.svg +31 -0
  123. package/assets/devices/Light.svg +30 -0
  124. package/assets/devices/Lightings.svg +46 -0
  125. package/assets/devices/Lock.svg +19 -0
  126. package/assets/devices/Louvre.svg +7 -0
  127. package/assets/devices/Mowing Machine.svg +9 -0
  128. package/assets/devices/Music.svg +13 -0
  129. package/assets/devices/Outdoor Blinds.svg +7 -0
  130. package/assets/devices/People.svg +19 -0
  131. package/assets/devices/Pool.svg +8 -0
  132. package/assets/devices/Power Consumption.svg +13 -0
  133. package/assets/devices/Printer.svg +10 -0
  134. package/assets/devices/Pump.svg +10 -0
  135. package/assets/devices/Receiver.svg +19 -0
  136. package/assets/devices/Sconces.svg +10 -0
  137. package/assets/devices/Security.svg +34 -0
  138. package/assets/devices/Shading.svg +5 -0
  139. package/assets/devices/Shutters.svg +11 -0
  140. package/assets/devices/SmokeDetector.svg +13 -0
  141. package/assets/devices/Sockets.svg +13 -0
  142. package/assets/devices/Speaker.svg +35 -0
  143. package/assets/devices/Stove.svg +12 -0
  144. package/assets/devices/Table Lamps.svg +12 -0
  145. package/assets/devices/Temperature Sensors.svg +28 -0
  146. package/assets/devices/Tv.svg +8 -0
  147. package/assets/devices/Vacuum Cleaner.svg +16 -0
  148. package/assets/devices/Ventilation.svg +12 -0
  149. package/assets/devices/Washing Machines.svg +16 -0
  150. package/assets/devices/Water Consumption.svg +6 -0
  151. package/assets/devices/Water Heater.svg +8 -0
  152. package/assets/devices/Water.svg +40 -0
  153. package/assets/devices/Weather.svg +28 -0
  154. package/assets/devices/Window.svg +8 -0
  155. package/assets/devices/list.json +994 -0
  156. package/assets/devices/names.txt +63 -0
  157. package/assets/devices/parseNames.js +34 -0
  158. package/assets/lamp_ceiling.svg +9 -0
  159. package/assets/lamp_table.svg +8 -0
  160. package/assets/no_icon.svg +9 -0
  161. package/assets/rooms/Anteroom.svg +53 -0
  162. package/assets/rooms/Attic.svg +21 -0
  163. package/assets/rooms/Balcony.svg +13 -0
  164. package/assets/rooms/Barn.svg +6 -0
  165. package/assets/rooms/Basement.svg +5 -0
  166. package/assets/rooms/Bathroom.svg +38 -0
  167. package/assets/rooms/Bedroom.svg +5 -0
  168. package/assets/rooms/Boiler Room.svg +13 -0
  169. package/assets/rooms/Carport.svg +17 -0
  170. package/assets/rooms/Cellar.svg +89 -0
  171. package/assets/rooms/Chamber.svg +9 -0
  172. package/assets/rooms/Corridor.svg +53 -0
  173. package/assets/rooms/Dining Area.svg +37 -0
  174. package/assets/rooms/Dining Room.svg +37 -0
  175. package/assets/rooms/Dining.svg +37 -0
  176. package/assets/rooms/Dressing Room.svg +5 -0
  177. package/assets/rooms/Driveway.svg +15 -0
  178. package/assets/rooms/Entrance.svg +44 -0
  179. package/assets/rooms/Equipment Room.svg +15 -0
  180. package/assets/rooms/Front Yard.svg +64 -0
  181. package/assets/rooms/Gallery.svg +14 -0
  182. package/assets/rooms/Garage.svg +20 -0
  183. package/assets/rooms/Garden.svg +13 -0
  184. package/assets/rooms/Ground Floor.svg +95 -0
  185. package/assets/rooms/Guest Bathroom.svg +33 -0
  186. package/assets/rooms/Guest Room.svg +5 -0
  187. package/assets/rooms/Gym.svg +5 -0
  188. package/assets/rooms/Hall.svg +19 -0
  189. package/assets/rooms/Home Theater.svg +8 -0
  190. package/assets/rooms/Kitchen.svg +18 -0
  191. package/assets/rooms/Laundry Room.svg +12 -0
  192. package/assets/rooms/Living Area.svg +11 -0
  193. package/assets/rooms/Living Room.svg +10 -0
  194. package/assets/rooms/Locker Room.svg +17 -0
  195. package/assets/rooms/Nursery.svg +5 -0
  196. package/assets/rooms/Office.svg +8 -0
  197. package/assets/rooms/Outdoors.svg +7 -0
  198. package/assets/rooms/Playroom.svg +6 -0
  199. package/assets/rooms/Pool.svg +8 -0
  200. package/assets/rooms/Rear Wall.svg +30 -0
  201. package/assets/rooms/Second Floor.svg +95 -0
  202. package/assets/rooms/Shed.svg +16 -0
  203. package/assets/rooms/Sleeping Area.svg +22 -0
  204. package/assets/rooms/Stairway.svg +5 -0
  205. package/assets/rooms/Stairwell.svg +15 -0
  206. package/assets/rooms/Storeroom.svg +5 -0
  207. package/assets/rooms/Summer House.svg +27 -0
  208. package/assets/rooms/Swimming Pool.svg +21 -0
  209. package/assets/rooms/Terrace.svg +7 -0
  210. package/assets/rooms/Toilet.svg +10 -0
  211. package/assets/rooms/Upstairs.svg +6 -0
  212. package/assets/rooms/Wardrobe.svg +60 -0
  213. package/assets/rooms/Washroom.svg +20 -0
  214. package/assets/rooms/Wc.svg +10 -0
  215. package/assets/rooms/Windscreen.svg +60 -0
  216. package/assets/rooms/Workshop.svg +23 -0
  217. package/assets/rooms/Workspace.svg +8 -0
  218. package/assets/rooms/list.json +946 -0
  219. package/assets/rooms/names.txt +60 -0
  220. package/assets/rooms/parseNames.js +34 -0
  221. package/gulpfile.js +113 -0
  222. package/i18n/de.json +280 -0
  223. package/i18n/en.json +280 -0
  224. package/i18n/es.json +267 -0
  225. package/i18n/fr.json +267 -0
  226. package/i18n/it.json +267 -0
  227. package/i18n/nl.json +267 -0
  228. package/i18n/pl.json +267 -0
  229. package/i18n/pt.json +267 -0
  230. package/i18n/ru.json +280 -0
  231. package/i18n/zh-cn.json +267 -0
  232. package/i18n.js +171 -0
  233. package/i18n.js.map +1 -0
  234. package/icons/IconAdapter.js +39 -0
  235. package/icons/IconAdapter.js.map +1 -0
  236. package/icons/IconAlias.js +39 -0
  237. package/icons/IconAlias.js.map +1 -0
  238. package/icons/IconChannel.js +80 -0
  239. package/icons/IconChannel.js.map +1 -0
  240. package/icons/IconClearFilter.js +41 -0
  241. package/icons/IconClearFilter.js.map +1 -0
  242. package/icons/IconClosed.js +39 -0
  243. package/icons/IconClosed.js.map +1 -0
  244. package/icons/IconCopy.js +48 -0
  245. package/icons/IconCopy.js.map +1 -0
  246. package/icons/IconDevice.js +147 -0
  247. package/icons/IconDevice.js.map +1 -0
  248. package/icons/IconDocument.js +39 -0
  249. package/icons/IconDocument.js.map +1 -0
  250. package/icons/IconExpert.js +50 -0
  251. package/icons/IconExpert.js.map +1 -0
  252. package/icons/IconFx.js +39 -0
  253. package/icons/IconFx.js.map +1 -0
  254. package/icons/IconInstance.js +39 -0
  255. package/icons/IconInstance.js.map +1 -0
  256. package/icons/IconLogout.js +50 -0
  257. package/icons/IconLogout.js.map +1 -0
  258. package/icons/IconOpen.js +39 -0
  259. package/icons/IconOpen.js.map +1 -0
  260. package/icons/IconState.js +58 -0
  261. package/icons/IconState.js.map +1 -0
  262. package/index.css +55 -0
  263. package/package.json +42 -0
  264. package/types.d.ts +84 -0
@@ -0,0 +1,1891 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles"));
15
+
16
+ var _Input = _interopRequireDefault(require("@mui/material/Input"));
17
+
18
+ var _Radio = _interopRequireDefault(require("@mui/material/Radio"));
19
+
20
+ var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
21
+
22
+ var _FormGroup = _interopRequireDefault(require("@mui/material/FormGroup"));
23
+
24
+ var _Checkbox = _interopRequireDefault(require("@mui/material/Checkbox"));
25
+
26
+ var _reactTextMask = _interopRequireDefault(require("react-text-mask"));
27
+
28
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
29
+
30
+ var _Select = _interopRequireDefault(require("@mui/material/Select"));
31
+
32
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
33
+
34
+ var _i18n = _interopRequireDefault(require("../i18n"));
35
+
36
+ var _excluded = ["inputRef"],
37
+ _excluded2 = ["inputRef"];
38
+
39
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
40
+
41
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
42
+
43
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
44
+
45
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
46
+
47
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
48
+
49
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
50
+
51
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
52
+
53
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
54
+
55
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
56
+
57
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
58
+
59
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
60
+
61
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
62
+
63
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
64
+
65
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
66
+
67
+ var styles = function styles(theme) {
68
+ return {
69
+ hr: {
70
+ border: 0,
71
+ borderTop: '1px solid gray'
72
+ },
73
+ scrollWindow: {
74
+ width: '100%',
75
+ overflow: 'auto',
76
+ height: 'calc(100% - 22px)'
77
+ },
78
+ rowDiv: {
79
+ width: '100%'
80
+ },
81
+ modeDiv: {
82
+ width: 200,
83
+ display: 'inline-block',
84
+ verticalAlign: 'top'
85
+ },
86
+ settingsDiv: {
87
+ display: 'inline-block',
88
+ verticalAlign: 'top'
89
+ },
90
+ inputTime: {
91
+ width: 90,
92
+ marginTop: 0,
93
+ marginLeft: 5
94
+ },
95
+ inputDate: {
96
+ width: 140,
97
+ marginTop: 0,
98
+ marginLeft: 5
99
+ },
100
+ inputEvery: {
101
+ width: 40,
102
+ marginLeft: 5,
103
+ marginRight: 5
104
+ },
105
+ inputRadio: {
106
+ padding: '4px 12px',
107
+ verticalAlign: 'top'
108
+ },
109
+ inputGroup: {
110
+ maxWidth: 400,
111
+ display: 'inline-block'
112
+ },
113
+ inputGroupElement: {
114
+ width: 120
115
+ },
116
+ inputDateDay: {
117
+ width: 60
118
+ },
119
+ inputDateDayCheck: {
120
+ padding: 4
121
+ },
122
+ inputSmallCheck: {
123
+ padding: 0
124
+ },
125
+ rowOnce: {},
126
+ rowDays: {
127
+ background: theme.palette.mode !== 'dark' ? '#ddeaff' : '#4b5057'
128
+ },
129
+ rowDows: {
130
+ background: theme.palette.mode !== 'dark' ? '#DDFFDD' : '#52646c'
131
+ },
132
+ rowDates: {
133
+ background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#747a86'
134
+ },
135
+ rowWeeks: {
136
+ background: theme.palette.mode !== 'dark' ? '#DDDDFF' : '#717680'
137
+ },
138
+ rowMonths: {
139
+ background: theme.palette.mode !== 'dark' ? '#DDFFFF' : '#1f5557'
140
+ },
141
+ rowMonthsDates: {
142
+ background: theme.palette.mode !== 'dark' ? '#EEFFFF' : '#3c5737',
143
+ maxWidth: 600
144
+ },
145
+ rowYears: {
146
+ background: theme.palette.mode !== 'dark' ? '#fbffdd' : '#574b33'
147
+ },
148
+ rowDaysDows: {
149
+ background: theme.palette.mode !== 'dark' ? '#EEEAFF' : '#573544',
150
+ paddingLeft: 10,
151
+ paddingBottom: 10
152
+ },
153
+ rowDowsDows: {
154
+ background: theme.palette.mode !== 'dark' ? '#EEFFEE' : '#3d4c54',
155
+ paddingLeft: 10,
156
+ paddingBottom: 10
157
+ }
158
+ };
159
+ };
160
+
161
+ var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
162
+ var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
163
+ var PERIODS = {
164
+ 'minutes': 'minutes',
165
+ 'hours': 'hours'
166
+ };
167
+ var ASTRO = ['sunrise', 'sunriseEnd', 'goldenHourEnd', 'solarNoon', 'goldenHour', 'sunsetStart', 'sunset', 'dusk', 'nauticalDusk', 'night', 'nightEnd', 'nauticalDawn', 'dawn', 'nadir'];
168
+
169
+ function padding(num) {
170
+ if (num < 10) {
171
+ return '0' + num;
172
+ } else {
173
+ return '' + num;
174
+ }
175
+ }
176
+
177
+ function TextTime(props) {
178
+ var inputRef = props.inputRef,
179
+ other = _objectWithoutProperties(props, _excluded);
180
+
181
+ return /*#__PURE__*/_react["default"].createElement(_reactTextMask["default"], _extends({}, other, {
182
+ ref: inputRef,
183
+ mask: [/[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/],
184
+ placeholderChar: props.placeholder || '00:00',
185
+ showMask: true
186
+ }));
187
+ }
188
+
189
+ TextTime.propTypes = {
190
+ inputRef: _propTypes["default"].func.isRequired
191
+ };
192
+
193
+ function TextDate(props) {
194
+ var inputRef = props.inputRef,
195
+ other = _objectWithoutProperties(props, _excluded2);
196
+
197
+ return /*#__PURE__*/_react["default"].createElement(_reactTextMask["default"], _extends({}, other, {
198
+ ref: inputRef,
199
+ mask: [/[0-3]/, /[0-9]/, '.', /[0-1]/, /[0-9]/, '.', '2', '0', /[0-9]/, /[0-9]/],
200
+ placeholderChar: props.placeholder || '01.01.2020',
201
+ showMask: true
202
+ }));
203
+ }
204
+
205
+ TextDate.propTypes = {
206
+ inputRef: _propTypes["default"].func.isRequired
207
+ };
208
+ var DEFAULT = {
209
+ time: {
210
+ exactTime: false,
211
+ start: '00:00',
212
+ end: '23:59',
213
+ mode: 'hours',
214
+ interval: 1
215
+ },
216
+ period: {
217
+ once: '',
218
+ days: 1,
219
+ dows: '',
220
+ dates: '',
221
+ weeks: 0,
222
+ months: '',
223
+ years: 0,
224
+ yearMonth: 0,
225
+ yearDate: 0
226
+ },
227
+ valid: {
228
+ from: '',
229
+ to: ''
230
+ }
231
+ };
232
+
233
+ function string2USdate(date) {
234
+ var parts = date.split('.');
235
+
236
+ if (parts.length === 3) {
237
+ return parts[2] + '-' + parts[1] + '-' + parts[0];
238
+ }
239
+ }
240
+
241
+ var Schedule = /*#__PURE__*/function (_React$Component) {
242
+ _inherits(Schedule, _React$Component);
243
+
244
+ var _super = _createSuper(Schedule);
245
+
246
+ function Schedule(props) {
247
+ var _this;
248
+
249
+ _classCallCheck(this, Schedule);
250
+
251
+ _this = _super.call(this, props);
252
+ var schedule;
253
+
254
+ if (_this.props.schedule && typeof _this.props.schedule === 'string' && _this.props.schedule[0] === '{') {
255
+ try {
256
+ schedule = JSON.parse(_this.props.schedule);
257
+ } catch (e) {}
258
+ }
259
+
260
+ if ((!schedule || !Object.keys(schedule).length) && _this.props.onChange) {
261
+ setTimeout(function () {
262
+ return _this.onChange(_this.state.schedule, true);
263
+ }, 200);
264
+ }
265
+
266
+ schedule = schedule || {};
267
+ schedule = Object.assign({}, DEFAULT, schedule);
268
+ schedule.valid.from = schedule.valid.from || Schedule.now2string();
269
+ _this.refFrom = /*#__PURE__*/_react["default"].createRef();
270
+ _this.refTo = /*#__PURE__*/_react["default"].createRef();
271
+ _this.refOnce = /*#__PURE__*/_react["default"].createRef();
272
+ _this.state = {
273
+ schedule: schedule,
274
+ desc: Schedule.state2text(schedule)
275
+ };
276
+
277
+ if (JSON.stringify(schedule) !== _this.props.schedule) {
278
+ setTimeout(function () {
279
+ return _this.props.onChange && _this.props.onChange(JSON.stringify(schedule));
280
+ }, 100);
281
+ }
282
+
283
+ return _this;
284
+ }
285
+
286
+ _createClass(Schedule, [{
287
+ key: "onChange",
288
+ value: function onChange(schedule, force) {
289
+ var isDiff = JSON.stringify(schedule) !== JSON.stringify(this.state.schedule);
290
+
291
+ if (force || isDiff) {
292
+ isDiff && this.setState({
293
+ schedule: schedule,
294
+ desc: Schedule.state2text(schedule)
295
+ });
296
+ var copy = JSON.parse(JSON.stringify(schedule));
297
+
298
+ if (copy.period.once) {
299
+ var once = copy.period.once;
300
+ delete copy.period;
301
+ copy.period = {
302
+ once: once
303
+ };
304
+ delete copy.valid;
305
+ } else if (copy.period.days) {
306
+ var days = copy.period.days;
307
+ var dows = copy.period.dows;
308
+ delete copy.period;
309
+ copy.period = {
310
+ days: days
311
+ };
312
+
313
+ if (dows && dows !== '[]') {
314
+ copy.period.dows = dows;
315
+ }
316
+ } else if (copy.period.weeks) {
317
+ var weeks = copy.period.weeks;
318
+ var _dows = copy.period.dows;
319
+ delete copy.period;
320
+ copy.period = {
321
+ weeks: weeks
322
+ };
323
+
324
+ if (_dows && _dows !== '[]') {
325
+ copy.period.dows = _dows;
326
+ }
327
+ } else if (copy.period.months) {
328
+ var months = copy.period.months;
329
+ var dates = copy.period.dates;
330
+ delete copy.period;
331
+ copy.period = {
332
+ months: months
333
+ };
334
+
335
+ if (dates && dates !== '[]') {
336
+ copy.period.dates = dates;
337
+ }
338
+ } else if (copy.period.years) {
339
+ var years = copy.period.years;
340
+ var yearMonth = copy.period.yearMonth;
341
+ var yearDate = copy.period.yearDate;
342
+ delete copy.period;
343
+ copy.period = {
344
+ years: years,
345
+ yearDate: yearDate
346
+ };
347
+
348
+ if (yearMonth) {
349
+ copy.period.yearMonth = yearMonth;
350
+ }
351
+ }
352
+
353
+ if (copy.time.exactTime) {
354
+ delete copy.time.end;
355
+ delete copy.time.mode;
356
+ delete copy.time.interval;
357
+ } else {
358
+ delete copy.time.exactTime;
359
+ }
360
+
361
+ if (copy.valid) {
362
+ if (!copy.valid.to) {
363
+ delete copy.valid.to;
364
+ }
365
+
366
+ if (copy.period.days === 1 || copy.period.weeks === 1 || copy.period.months === 1 || copy.period.years === 1) {
367
+ var from = Schedule.string2date(copy.valid.from);
368
+ var today = new Date();
369
+ today.setHours(0);
370
+ today.setMinutes(0);
371
+ today.setSeconds(0);
372
+ today.setMilliseconds(0);
373
+
374
+ if (from <= today) {
375
+ delete copy.valid.from;
376
+ }
377
+ }
378
+
379
+ if (!copy.valid.from && !copy.valid.to) {
380
+ delete copy.valid;
381
+ }
382
+ }
383
+
384
+ this.props.onChange && this.props.onChange(JSON.stringify(copy), Schedule.state2text(schedule));
385
+ }
386
+ }
387
+ }, {
388
+ key: "getTimePeriodElements",
389
+ value: function getTimePeriodElements() {
390
+ var _this2 = this;
391
+
392
+ var schedule = this.state.schedule;
393
+ var wholeDay = false;
394
+ var day = false;
395
+ var night = false;
396
+ var fromTo = true;
397
+
398
+ if (schedule.time.start === '00:00' && schedule.time.end === '24:00') {
399
+ wholeDay = true;
400
+ fromTo = false;
401
+ } else if (schedule.time.start === 'sunrise') {
402
+ day = true;
403
+ fromTo = false;
404
+ } else if (schedule.time.start === 'sunset') {
405
+ night = true;
406
+ fromTo = false;
407
+ }
408
+
409
+ return /*#__PURE__*/_react["default"].createElement("div", {
410
+ key: "timePeriod",
411
+ className: this.props.classes.rowDiv
412
+ }, /*#__PURE__*/_react["default"].createElement("div", {
413
+ className: this.props.classes.modeDiv
414
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
415
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
416
+ className: this.props.classes.inputRadio,
417
+ checked: !schedule.time.exactTime,
418
+ onClick: function onClick() {
419
+ var _schedule = JSON.parse(JSON.stringify(_this2.state.schedule));
420
+
421
+ _schedule.time.exactTime = false;
422
+
423
+ _this2.onChange(_schedule);
424
+ }
425
+ }),
426
+ label: _i18n["default"].t('sch_intervalTime')
427
+ })), /*#__PURE__*/_react["default"].createElement("div", {
428
+ className: this.props.classes.settingsDiv
429
+ }, /*#__PURE__*/_react["default"].createElement("div", {
430
+ className: this.props.classes.settingsDiv
431
+ }, !schedule.time.exactTime && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
432
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
433
+ className: this.props.classes.inputRadio,
434
+ checked: !!fromTo,
435
+ onClick: function onClick() {
436
+ var _schedule = JSON.parse(JSON.stringify(_this2.state.schedule));
437
+
438
+ _schedule.time.start = '00:00';
439
+ _schedule.time.end = '23:59';
440
+
441
+ _this2.onChange(_schedule);
442
+ }
443
+ }),
444
+ label: !fromTo ? _i18n["default"].t('sch_fromTo') : ''
445
+ }), fromTo && [/*#__PURE__*/_react["default"].createElement(_TextField["default"], {
446
+ variant: "standard",
447
+ className: this.props.classes.inputTime,
448
+ style: {
449
+ marginRight: 10
450
+ },
451
+ key: "exactTimeFrom",
452
+ type: "time",
453
+ value: this.state.schedule.time.start //InputProps={{inputComponent: TextTime}}
454
+ ,
455
+ onChange: function onChange(e) {
456
+ var _schedule = JSON.parse(JSON.stringify(_this2.state.schedule));
457
+
458
+ _schedule.time.start = e.target.value;
459
+
460
+ _this2.onChange(_schedule);
461
+ },
462
+ InputLabelProps: {
463
+ shrink: true
464
+ },
465
+ label: _i18n["default"].t('sch_from'),
466
+ margin: "normal"
467
+ }), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
468
+ variant: "standard",
469
+ className: this.props.classes.inputTime,
470
+ key: "exactTimeTo",
471
+ type: "time",
472
+ value: this.state.schedule.time.end //InputProps={{inputComponent: TextTime}}
473
+ ,
474
+ onChange: function onChange(e) {
475
+ var _schedule = JSON.parse(JSON.stringify(_this2.state.schedule));
476
+
477
+ _schedule.time.end = e.target.value;
478
+
479
+ _this2.onChange(_schedule);
480
+ },
481
+ InputLabelProps: {
482
+ shrink: true
483
+ },
484
+ label: _i18n["default"].t('sch_to'),
485
+ margin: "normal"
486
+ })])), !schedule.time.exactTime && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
487
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
488
+ className: this.props.classes.inputRadio,
489
+ checked: !!wholeDay,
490
+ onClick: function onClick() {
491
+ var _schedule = JSON.parse(JSON.stringify(_this2.state.schedule));
492
+
493
+ _schedule.time.start = '00:00';
494
+ _schedule.time.end = '24:00';
495
+
496
+ _this2.onChange(_schedule);
497
+ }
498
+ }),
499
+ label: _i18n["default"].t('sch_wholeDay')
500
+ })), !schedule.time.exactTime && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
501
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
502
+ className: this.props.classes.inputRadio,
503
+ checked: !!day,
504
+ onClick: function onClick() {
505
+ var _schedule = JSON.parse(JSON.stringify(_this2.state.schedule));
506
+
507
+ _schedule.time.start = 'sunrise';
508
+ _schedule.time.end = 'sunset';
509
+
510
+ _this2.onChange(_schedule);
511
+ }
512
+ }),
513
+ label: _i18n["default"].t('sch_astroDay')
514
+ })), !schedule.time.exactTime && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
515
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
516
+ className: this.props.classes.inputRadio,
517
+ checked: !!night,
518
+ onClick: function onClick() {
519
+ var _schedule = JSON.parse(JSON.stringify(_this2.state.schedule));
520
+
521
+ _schedule.time.start = 'sunset';
522
+ _schedule.time.end = 'sunrise';
523
+
524
+ _this2.onChange(_schedule);
525
+ }
526
+ }),
527
+ label: _i18n["default"].t('sch_astroNight')
528
+ }))), !schedule.time.exactTime && this.getPeriodSettingsMinutes()));
529
+ }
530
+ }, {
531
+ key: "getTimeExactElements",
532
+ value: function getTimeExactElements() {
533
+ var _this3 = this;
534
+
535
+ var isAstro = ASTRO.indexOf(this.state.schedule.time.start) !== -1;
536
+ return /*#__PURE__*/_react["default"].createElement("div", {
537
+ key: "timeExact",
538
+ className: this.props.classes.rowDiv
539
+ }, /*#__PURE__*/_react["default"].createElement("div", {
540
+ className: this.props.classes.modeDiv
541
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
542
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
543
+ className: this.props.classes.inputRadio,
544
+ checked: !!this.state.schedule.time.exactTime,
545
+ onClick: function onClick() {
546
+ var schedule = JSON.parse(JSON.stringify(_this3.state.schedule));
547
+ schedule.time.exactTime = true;
548
+
549
+ _this3.onChange(schedule);
550
+ }
551
+ }),
552
+ label: _i18n["default"].t('sch_exactTime')
553
+ })), this.state.schedule.time.exactTime && /*#__PURE__*/_react["default"].createElement(_Select["default"], {
554
+ variant: "standard",
555
+ value: isAstro ? this.state.schedule.time.start : '00:00',
556
+ onChange: function onChange(e) {
557
+ var _schedule = JSON.parse(JSON.stringify(_this3.state.schedule));
558
+
559
+ _schedule.time.start = e.target.value;
560
+
561
+ _this3.onChange(_schedule);
562
+ }
563
+ }, /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
564
+ key: "specific",
565
+ value: '00:00'
566
+ }, _i18n["default"].t('sch_specificTime')), ASTRO.map(function (event) {
567
+ return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
568
+ key: event,
569
+ value: event
570
+ }, _i18n["default"].t('sch_astro_' + event));
571
+ })), this.state.schedule.time.exactTime && !isAstro && /*#__PURE__*/_react["default"].createElement("div", {
572
+ className: this.props.classes.settingsDiv
573
+ }, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
574
+ variant: "standard",
575
+ className: this.props.classes.inputTime,
576
+ key: "exactTimeValue",
577
+ value: this.state.schedule.time.start,
578
+ type: "time" // inputComponent={TextTime}
579
+ ,
580
+ onChange: function onChange(e) {
581
+ var _schedule = JSON.parse(JSON.stringify(_this3.state.schedule));
582
+
583
+ _schedule.time.start = e.target.value;
584
+
585
+ _this3.onChange(_schedule);
586
+ },
587
+ InputLabelProps: {
588
+ shrink: true
589
+ },
590
+ margin: "normal"
591
+ })));
592
+ }
593
+ }, {
594
+ key: "getDivider",
595
+ value: function getDivider() {
596
+ return /*#__PURE__*/_react["default"].createElement("hr", {
597
+ className: this.props.classes.hr
598
+ });
599
+ }
600
+ }, {
601
+ key: "getPeriodModes",
602
+ value: function getPeriodModes() {
603
+ var _this4 = this;
604
+
605
+ var schedule = this.state.schedule;
606
+ var isOnce = !schedule.period.dows && !schedule.period.months && !schedule.period.dates && !schedule.period.years && !schedule.period.days && !schedule.period.weeks;
607
+
608
+ if (isOnce && !schedule.period.once) {
609
+ schedule.period.once = Schedule.now2string(true);
610
+ }
611
+
612
+ return [
613
+ /*#__PURE__*/
614
+ // ----- once ---
615
+ _react["default"].createElement("div", {
616
+ key: "once",
617
+ className: this.props.classes.rowDiv + ' ' + this.props.classes.rowOnce
618
+ }, /*#__PURE__*/_react["default"].createElement("div", {
619
+ className: this.props.classes.modeDiv
620
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
621
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
622
+ className: this.props.classes.inputRadio,
623
+ checked: !!isOnce,
624
+ onClick: function onClick() {
625
+ var _schedule = JSON.parse(JSON.stringify(_this4.state.schedule));
626
+
627
+ _schedule.period.once = _schedule.period.once || Schedule.now2string(true);
628
+ _schedule.period.dows = '';
629
+ _schedule.period.months = '';
630
+ _schedule.period.dates = '';
631
+ _schedule.period.years = 0;
632
+ _schedule.period.yearDate = 0;
633
+ _schedule.period.yearMonth = 0;
634
+ _schedule.period.weeks = 0;
635
+ _schedule.period.days = 0;
636
+
637
+ _this4.onChange(_schedule);
638
+ }
639
+ }),
640
+ label: _i18n["default"].t('sch_periodOnce')
641
+ })), isOnce && /*#__PURE__*/_react["default"].createElement("div", {
642
+ className: this.props.classes.settingsDiv
643
+ }, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
644
+ variant: "standard",
645
+ className: this.props.classes.inputDate,
646
+ type: "date",
647
+ ref: this.refOnce,
648
+ key: "exactDateAt",
649
+ defaultValue: string2USdate(schedule.period.once) //InputProps={{inputComponent: TextTime}}
650
+ ,
651
+ onChange: function onChange(e) {
652
+ _this4.timerOnce && clearTimeout(_this4.timerOnce);
653
+ _this4.refOnce.current.style.background = '#ff000030';
654
+ _this4.timerOnce = setTimeout(function (value) {
655
+ _this4.timerOnce = null;
656
+ _this4.refOnce.current.style.background = '';
657
+
658
+ var _schedule = JSON.parse(JSON.stringify(_this4.state.schedule));
659
+
660
+ var date = Schedule.string2date(value);
661
+
662
+ if (date.toString() !== 'Invalid Date') {
663
+ _schedule.period.once = padding(date.getDate()) + '.' + padding(date.getMonth() + 1) + '.' + date.getFullYear();
664
+
665
+ _this4.onChange(_schedule);
666
+ }
667
+ }, 1500, e.target.value);
668
+ },
669
+ InputLabelProps: {
670
+ shrink: true
671
+ },
672
+ label: _i18n["default"].t('sch_at'),
673
+ margin: "normal"
674
+ }))),
675
+ /*#__PURE__*/
676
+ // ----- days ---
677
+ _react["default"].createElement("div", {
678
+ key: "days",
679
+ className: this.props.classes.rowDiv + ' ' + this.props.classes.rowDays
680
+ }, /*#__PURE__*/_react["default"].createElement("div", {
681
+ className: this.props.classes.modeDiv
682
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
683
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
684
+ className: this.props.classes.inputRadio,
685
+ checked: !!schedule.period.days,
686
+ onClick: function onClick() {
687
+ var _schedule = JSON.parse(JSON.stringify(_this4.state.schedule));
688
+
689
+ _schedule.period.days = 1;
690
+ _schedule.period.dows = '';
691
+ _schedule.period.months = '';
692
+ _schedule.period.dates = '';
693
+ _schedule.period.years = 0;
694
+ _schedule.period.yearDate = 0;
695
+ _schedule.period.yearMonth = 0;
696
+ _schedule.period.weeks = 0;
697
+ _schedule.period.once = '';
698
+
699
+ _this4.onChange(_schedule);
700
+ }
701
+ }),
702
+ label: _i18n["default"].t('sch_periodDaily')
703
+ })), /*#__PURE__*/_react["default"].createElement("div", {
704
+ className: this.props.classes.settingsDiv
705
+ }, this.getPeriodSettingsDaily(), schedule.period.days ? this.getPeriodSettingsWeekdays() : null)),
706
+ /*#__PURE__*/
707
+ // ----- days of weeks ---
708
+
709
+ /*!schedule.period.days && (
710
+ <div key="dows" className={this.props.classes.rowDiv + ' ' + this.props.classes.rowDows}>
711
+ <div className={this.props.classes.modeDiv}>
712
+ <FormControlLabel control={<Radio className={this.props.classes.inputRadio} checked={!!schedule.period.dows} onClick={() => {
713
+ const schedule = JSON.parse(JSON.stringify(this.state.schedule));
714
+ schedule.period.dows = schedule.period.dows ? '' : '[0,1,2,3,4,5,6]';
715
+ this.onChange(schedule);
716
+ }}/>}
717
+ label={I18n.t('sch_periodWeekdays')} />
718
+ </div>
719
+ <div className={this.props.classes.settingsDiv}>
720
+ {this.getPeriodSettingsWeekdays()}
721
+ </div>
722
+ </div>,
723
+ */
724
+ // ----- weeks ---
725
+ _react["default"].createElement("div", {
726
+ key: "weeks",
727
+ className: this.props.classes.rowDiv + ' ' + this.props.classes.rowDows
728
+ }, /*#__PURE__*/_react["default"].createElement("div", {
729
+ className: this.props.classes.modeDiv
730
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
731
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
732
+ className: this.props.classes.inputRadio,
733
+ checked: !!schedule.period.weeks,
734
+ onClick: function onClick() {
735
+ var _schedule = JSON.parse(JSON.stringify(_this4.state.schedule));
736
+
737
+ _schedule.period.weeks = schedule.period.weeks ? 0 : 1;
738
+ _schedule.period.dows = schedule.period.dows || '[0]';
739
+ _schedule.period.months = '';
740
+ _schedule.period.dates = '';
741
+ _schedule.period.years = 0;
742
+ _schedule.period.yearDate = 0;
743
+ _schedule.period.yearMonth = 0;
744
+ _schedule.period.days = 0;
745
+ _schedule.period.once = '';
746
+
747
+ _this4.onChange(_schedule);
748
+ }
749
+ }),
750
+ label: _i18n["default"].t('sch_periodWeekly')
751
+ })), /*#__PURE__*/_react["default"].createElement("div", {
752
+ className: this.props.classes.settingsDiv
753
+ }, /*#__PURE__*/_react["default"].createElement("div", {
754
+ className: this.props.classes.settingsDiv
755
+ }, this.getPeriodSettingsWeekly()), /*#__PURE__*/_react["default"].createElement("div", {
756
+ className: this.props.classes.settingsDiv + ' ' + this.props.classes.rowDowsDows
757
+ }, this.state.schedule.period.weeks ? this.getPeriodSettingsWeekdays() : null))),
758
+ /*#__PURE__*/
759
+ // ----- months ---
760
+ _react["default"].createElement("div", {
761
+ key: "months",
762
+ className: this.props.classes.rowDiv + ' ' + this.props.classes.rowMonths
763
+ }, /*#__PURE__*/_react["default"].createElement("div", {
764
+ className: this.props.classes.modeDiv
765
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
766
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
767
+ className: this.props.classes.inputRadio,
768
+ checked: !!schedule.period.months,
769
+ onClick: function onClick() {
770
+ var _schedule = JSON.parse(JSON.stringify(_this4.state.schedule));
771
+
772
+ _schedule.period.months = 1;
773
+ _schedule.period.dows = '';
774
+ _schedule.period.dates = '';
775
+ _schedule.period.years = 0;
776
+ _schedule.period.yearDate = 0;
777
+ _schedule.period.yearMonth = 0;
778
+ _schedule.period.weeks = 0;
779
+ _schedule.period.days = 0;
780
+ _schedule.period.once = '';
781
+
782
+ _this4.onChange(_schedule);
783
+ }
784
+ }),
785
+ label: _i18n["default"].t('sch_periodMonthly')
786
+ })), /*#__PURE__*/_react["default"].createElement("div", {
787
+ className: this.props.classes.settingsDiv
788
+ }, this.getPeriodSettingsMonthly(), schedule.period.months ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
789
+ className: this.props.classes.settingsDiv + ' ' + this.props.classes.rowMonthsDates
790
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
791
+ control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
792
+ className: this.props.classes.inputRadio,
793
+ checked: !!schedule.period.dates,
794
+ onClick: function onClick() {
795
+ var _schedule = JSON.parse(JSON.stringify(_this4.state.schedule));
796
+
797
+ _schedule.period.months = _schedule.period.months || 1;
798
+ var dates = [];
799
+
800
+ for (var i = 1; i <= 31; i++) {
801
+ dates.push(i);
802
+ }
803
+
804
+ _schedule.period.dates = _schedule.period.dates || JSON.stringify(dates);
805
+ _schedule.period.dows = '';
806
+ _schedule.period.years = 0;
807
+ _schedule.period.yearDate = 0;
808
+ _schedule.period.yearMonth = 0;
809
+ _schedule.period.weeks = 0;
810
+ _schedule.period.days = 0;
811
+ _schedule.period.once = '';
812
+
813
+ _this4.onChange(_schedule);
814
+ }
815
+ }),
816
+ label: _i18n["default"].t('sch_periodDates')
817
+ })), /*#__PURE__*/_react["default"].createElement("div", {
818
+ className: this.props.classes.settingsDiv + ' ' + this.props.classes.rowMonthsDates
819
+ }, this.getPeriodSettingsDates())) : null)),
820
+ /*#__PURE__*/
821
+ // ----- years ---
822
+ _react["default"].createElement("div", {
823
+ key: "years",
824
+ className: this.props.classes.rowDiv + ' ' + this.props.classes.rowYears
825
+ }, /*#__PURE__*/_react["default"].createElement("div", {
826
+ className: this.props.classes.modeDiv
827
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
828
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
829
+ className: this.props.classes.inputRadio,
830
+ checked: !!schedule.period.years,
831
+ onClick: function onClick() {
832
+ var _schedule = JSON.parse(JSON.stringify(_this4.state.schedule));
833
+
834
+ _schedule.period.years = 1;
835
+ _schedule.period.yearDate = 1;
836
+ _schedule.period.yearMonth = 1;
837
+ _schedule.period.dows = '';
838
+ _schedule.period.months = 0;
839
+ _schedule.period.dates = '';
840
+ _schedule.period.weeks = 0;
841
+ _schedule.period.days = 0;
842
+ _schedule.period.once = '';
843
+
844
+ _this4.onChange(_schedule);
845
+ }
846
+ }),
847
+ label: _i18n["default"].t('sch_periodYearly')
848
+ })), /*#__PURE__*/_react["default"].createElement("div", {
849
+ className: this.props.classes.settingsDiv
850
+ }, /*#__PURE__*/_react["default"].createElement("div", {
851
+ className: this.props.classes.settingsDiv
852
+ }, this.getPeriodSettingsYearly()), !!schedule.period.years && /*#__PURE__*/_react["default"].createElement("div", {
853
+ className: this.props.classes.settingsDiv
854
+ }, /*#__PURE__*/_react["default"].createElement("span", null, _i18n["default"].t('sch_on')), /*#__PURE__*/_react["default"].createElement(_Input["default"], {
855
+ key: "input",
856
+ value: this.state.schedule.period.yearDate,
857
+ className: this.props.classes.inputEvery,
858
+ type: "number",
859
+ min: "1",
860
+ max: "31",
861
+ onChange: function onChange(e) {
862
+ var _schedule = JSON.parse(JSON.stringify(_this4.state.schedule));
863
+
864
+ _schedule.period.yearDate = parseInt(e.target.value, 10);
865
+ if (_schedule.period.yearDate < 1) _schedule.period.yearDate = 31;
866
+ if (_schedule.period.yearDate > 31) _schedule.period.yearDate = 1;
867
+
868
+ _this4.onChange(_schedule);
869
+ }
870
+ }), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
871
+ variant: "standard",
872
+ value: schedule.period.yearMonth,
873
+ onChange: function onChange(e) {
874
+ var _schedule = JSON.parse(JSON.stringify(_this4.state.schedule));
875
+
876
+ _schedule.period.yearMonth = e.target.value;
877
+
878
+ _this4.onChange(_schedule);
879
+ }
880
+ }, /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
881
+ key: "every",
882
+ value: 0
883
+ }, _i18n["default"].t('sch_yearEveryMonth')), MONTHS.map(function (month, i) {
884
+ return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
885
+ key: month,
886
+ value: i + 1
887
+ }, _i18n["default"].t(month));
888
+ })))))];
889
+ }
890
+ }, {
891
+ key: "getPeriodSettingsMinutes",
892
+ value: function getPeriodSettingsMinutes() {
893
+ var _this5 = this;
894
+
895
+ return /*#__PURE__*/_react["default"].createElement("div", {
896
+ style: {
897
+ display: 'inline-block'
898
+ }
899
+ }, /*#__PURE__*/_react["default"].createElement("label", null, _i18n["default"].t('sch_every')), /*#__PURE__*/_react["default"].createElement(_Input["default"], {
900
+ value: this.state.schedule.time.interval,
901
+ style: {
902
+ verticalAlign: 'bottom'
903
+ },
904
+ className: this.props.classes.inputEvery,
905
+ type: "number",
906
+ min: "1",
907
+ onChange: function onChange(e) {
908
+ var _schedule = JSON.parse(JSON.stringify(_this5.state.schedule));
909
+
910
+ _schedule.time.interval = parseInt(e.target.value, 10);
911
+
912
+ _this5.onChange(_schedule);
913
+ }
914
+ }), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
915
+ variant: "standard",
916
+ value: this.state.schedule.time.mode,
917
+ onChange: function onChange(e) {
918
+ var _schedule = JSON.parse(JSON.stringify(_this5.state.schedule));
919
+
920
+ _schedule.time.mode = e.target.value;
921
+
922
+ _this5.onChange(_schedule);
923
+ }
924
+ }, /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
925
+ value: PERIODS.minutes
926
+ }, _i18n["default"].t('sch_periodMinutes')), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
927
+ value: PERIODS.hours
928
+ }, _i18n["default"].t('sch_periodHours'))));
929
+ }
930
+ }, {
931
+ key: "getPeriodSettingsWeekdays",
932
+ value: function getPeriodSettingsWeekdays() {
933
+ var _this6 = this;
934
+
935
+ // || this.state.schedule.period.dows === '[1, 2, 3, 4, 5]' || this.state.schedule.period.dows === '[0, 6]'
936
+ var schedule = this.state.schedule;
937
+ var isSpecific = schedule.period.dows && schedule.period.dows !== '[1, 2, 3, 4, 5]' && schedule.period.dows !== '[0, 6]';
938
+ return [/*#__PURE__*/_react["default"].createElement("div", {
939
+ key: "workdays"
940
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
941
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
942
+ className: this.props.classes.inputRadio,
943
+ checked: schedule.period.dows === '[1, 2, 3, 4, 5]',
944
+ onClick: function onClick() {
945
+ var _schedule = JSON.parse(JSON.stringify(_this6.state.schedule));
946
+
947
+ _schedule.period.dows = '[1, 2, 3, 4, 5]';
948
+
949
+ if (_schedule.period.days) {
950
+ _schedule.period.days = 1;
951
+ }
952
+
953
+ _this6.onChange(_schedule);
954
+ }
955
+ }),
956
+ label: _i18n["default"].t('sch_periodWorkdays')
957
+ })), /*#__PURE__*/_react["default"].createElement("div", {
958
+ key: "weekend"
959
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
960
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
961
+ className: this.props.classes.inputRadio,
962
+ checked: schedule.period.dows === '[0, 6]',
963
+ onClick: function onClick() {
964
+ var _schedule = JSON.parse(JSON.stringify(_this6.state.schedule));
965
+
966
+ _schedule.period.dows = '[0, 6]';
967
+
968
+ if (_schedule.period.days) {
969
+ _schedule.period.days = 1;
970
+ }
971
+
972
+ _this6.onChange(_schedule);
973
+ }
974
+ }),
975
+ label: _i18n["default"].t('sch_periodWeekend')
976
+ })), /*#__PURE__*/_react["default"].createElement("div", {
977
+ key: "specific",
978
+ style: {
979
+ verticalAlign: 'top'
980
+ }
981
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
982
+ style: {
983
+ verticalAlign: 'top'
984
+ },
985
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
986
+ className: this.props.classes.inputRadio,
987
+ checked: !!isSpecific,
988
+ onClick: function onClick() {
989
+ var _schedule = JSON.parse(JSON.stringify(_this6.state.schedule));
990
+
991
+ _schedule.period.dows = '[0,1,2,3,4,5,6]';
992
+
993
+ if (_schedule.period.days) {
994
+ _schedule.period.days = 1;
995
+ }
996
+
997
+ _this6.onChange(_schedule);
998
+ }
999
+ }),
1000
+ label: _i18n["default"].t('sch_periodWeekdays')
1001
+ }), isSpecific && (schedule.period.days === 1 || schedule.period.weeks) && /*#__PURE__*/_react["default"].createElement(_FormGroup["default"], {
1002
+ row: true,
1003
+ className: this.props.classes.inputGroup,
1004
+ style: {
1005
+ width: 150
1006
+ }
1007
+ }, [1, 2, 3, 4, 5, 6, 0].map(function (i) {
1008
+ return /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1009
+ key: 'specific_' + i,
1010
+ className: _this6.props.classes.inputGroupElement,
1011
+ control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
1012
+ className: _this6.props.classes.inputSmallCheck,
1013
+ checked: schedule.period.dows.includes('' + i),
1014
+ onChange: function onChange(e) {
1015
+ var _schedule = JSON.parse(JSON.stringify(_this6.state.schedule));
1016
+
1017
+ var dows;
1018
+
1019
+ try {
1020
+ dows = JSON.parse(_schedule.period.dows);
1021
+ } catch (e) {
1022
+ dows = [];
1023
+ }
1024
+
1025
+ if (e.target.checked && !dows.includes(i)) {
1026
+ dows.push(i);
1027
+ } else if (!e.target.checked && dows.includes(i)) {
1028
+ dows.splice(dows.indexOf(i), 1);
1029
+ }
1030
+
1031
+ dows.sort(function (a, b) {
1032
+ return a - b;
1033
+ });
1034
+ _schedule.period.dows = JSON.stringify(dows);
1035
+
1036
+ if (_schedule.period.days) {
1037
+ _schedule.period.days = 1;
1038
+ }
1039
+
1040
+ _this6.onChange(_schedule);
1041
+ }
1042
+ }),
1043
+ label: _i18n["default"].t(WEEKDAYS[i])
1044
+ });
1045
+ })))];
1046
+ }
1047
+ }, {
1048
+ key: "getPeriodSettingsDaily",
1049
+ value: function getPeriodSettingsDaily() {
1050
+ var _this7 = this;
1051
+
1052
+ if (!this.state.schedule.period.days) {
1053
+ return;
1054
+ }
1055
+
1056
+ var schedule = this.state.schedule;
1057
+ return [/*#__PURE__*/_react["default"].createElement("div", {
1058
+ key: "every_day"
1059
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1060
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
1061
+ className: this.props.classes.inputRadio,
1062
+ checked: schedule.period.days === 1 && !schedule.period.dows,
1063
+ onClick: function onClick() {
1064
+ var _schedule = JSON.parse(JSON.stringify(_this7.state.schedule));
1065
+
1066
+ _schedule.period.days = 1;
1067
+ _schedule.period.dows = '';
1068
+
1069
+ _this7.onChange(_schedule);
1070
+ }
1071
+ }),
1072
+ label: _i18n["default"].t('sch_periodEveryDay')
1073
+ })), /*#__PURE__*/_react["default"].createElement("div", {
1074
+ key: "everyN_day"
1075
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1076
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
1077
+ className: this.props.classes.inputRadio,
1078
+ checked: schedule.period.days > 1,
1079
+ onClick: function onClick() {
1080
+ var _schedule = JSON.parse(JSON.stringify(_this7.state.schedule));
1081
+
1082
+ _schedule.period.days = 2;
1083
+ _schedule.period.dows = '';
1084
+
1085
+ _this7.onChange(_schedule);
1086
+ }
1087
+ }),
1088
+ label: _i18n["default"].t('sch_periodEvery')
1089
+ }), schedule.period.days > 1 && [/*#__PURE__*/_react["default"].createElement(_Input["default"], {
1090
+ key: "input",
1091
+ value: this.state.schedule.period.days,
1092
+ className: this.props.classes.inputEvery,
1093
+ type: "number",
1094
+ min: "2",
1095
+ onChange: function onChange(e) {
1096
+ var _schedule = JSON.parse(JSON.stringify(_this7.state.schedule));
1097
+
1098
+ _schedule.period.days = parseInt(e.target.value, 10);
1099
+ _schedule.period.dows = '';
1100
+
1101
+ _this7.onChange(_schedule);
1102
+ }
1103
+ }), /*#__PURE__*/_react["default"].createElement("span", {
1104
+ key: "span",
1105
+ style: {
1106
+ paddingRight: 10
1107
+ }
1108
+ }, _i18n["default"].t('sch_periodDay'))])];
1109
+ }
1110
+ }, {
1111
+ key: "getPeriodSettingsWeekly",
1112
+ value: function getPeriodSettingsWeekly() {
1113
+ var _this8 = this;
1114
+
1115
+ if (!this.state.schedule.period.weeks) {
1116
+ return;
1117
+ }
1118
+
1119
+ var schedule = this.state.schedule;
1120
+ return [/*#__PURE__*/_react["default"].createElement("div", {
1121
+ key: "radios",
1122
+ style: {
1123
+ display: 'inline-block',
1124
+ verticalAlign: 'top'
1125
+ }
1126
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1127
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
1128
+ className: this.props.classes.inputRadio,
1129
+ checked: schedule.period.weeks === 1,
1130
+ onClick: function onClick() {
1131
+ var _schedule = JSON.parse(JSON.stringify(_this8.state.schedule));
1132
+
1133
+ _schedule.period.weeks = 1;
1134
+
1135
+ _this8.onChange(_schedule);
1136
+ }
1137
+ }),
1138
+ label: _i18n["default"].t('sch_periodEveryWeek')
1139
+ })), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1140
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
1141
+ className: this.props.classes.inputRadio,
1142
+ checked: schedule.period.weeks > 1,
1143
+ onClick: function onClick() {
1144
+ var _schedule = JSON.parse(JSON.stringify(_this8.state.schedule));
1145
+
1146
+ _schedule.period.weeks = 2;
1147
+
1148
+ _this8.onChange(_schedule);
1149
+ }
1150
+ }),
1151
+ label: _i18n["default"].t('sch_periodEvery')
1152
+ }), schedule.period.weeks > 1 && [/*#__PURE__*/_react["default"].createElement(_Input["default"], {
1153
+ value: this.state.schedule.period.weeks,
1154
+ className: this.props.classes.inputEvery,
1155
+ type: "number",
1156
+ min: "2",
1157
+ onChange: function onChange(e) {
1158
+ var _schedule = JSON.parse(JSON.stringify(_this8.state.schedule));
1159
+
1160
+ _schedule.period.weeks = parseInt(e.target.value, 10);
1161
+
1162
+ _this8.onChange(_schedule);
1163
+ }
1164
+ }), /*#__PURE__*/_react["default"].createElement("span", null, _i18n["default"].t('sch_periodWeek'))]))];
1165
+ }
1166
+ }, {
1167
+ key: "getPeriodSettingsDates",
1168
+ value: function getPeriodSettingsDates() {
1169
+ var _this9 = this;
1170
+
1171
+ if (!this.state.schedule.period.dates) {
1172
+ return;
1173
+ }
1174
+
1175
+ var schedule = this.state.schedule;
1176
+ var dates = [];
1177
+
1178
+ for (var i = 1; i <= 31; i++) {
1179
+ dates.push(i);
1180
+ }
1181
+
1182
+ var parsedDates = JSON.parse(schedule.period.dates);
1183
+ return /*#__PURE__*/_react["default"].createElement(_FormGroup["default"], {
1184
+ row: true,
1185
+ className: this.props.classes.inputGroup,
1186
+ style: {
1187
+ maxWidth: 620
1188
+ }
1189
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1190
+ className: this.props.classes.inputDateDay,
1191
+ control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
1192
+ className: this.props.classes.inputDateDayCheck,
1193
+ checked: parsedDates.length === 31,
1194
+ onChange: function onChange(e) {
1195
+ var _schedule = JSON.parse(JSON.stringify(_this9.state.schedule));
1196
+
1197
+ var dates = [];
1198
+
1199
+ for (var _i = 1; _i <= 31; _i++) {
1200
+ dates.push(_i);
1201
+ }
1202
+
1203
+ _schedule.period.dates = JSON.stringify(dates);
1204
+
1205
+ _this9.onChange(_schedule);
1206
+ }
1207
+ }),
1208
+ label: _i18n["default"].t('sch_all')
1209
+ }), /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1210
+ className: this.props.classes.inputDateDay,
1211
+ control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
1212
+ className: this.props.classes.inputDateDayCheck,
1213
+ checked: !parsedDates.length,
1214
+ onChange: function onChange(e) {
1215
+ var _schedule = JSON.parse(JSON.stringify(_this9.state.schedule));
1216
+
1217
+ _schedule.period.dates = '[]';
1218
+
1219
+ _this9.onChange(_schedule);
1220
+ }
1221
+ }),
1222
+ label: _i18n["default"].t('sch_no_one')
1223
+ }), parsedDates.length !== 31 && !!parsedDates.length && /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1224
+ className: this.props.classes.inputDateDay,
1225
+ control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
1226
+ className: this.props.classes.inputDateDayCheck,
1227
+ checked: false,
1228
+ onChange: function onChange(e) {
1229
+ var _schedule = JSON.parse(JSON.stringify(_this9.state.schedule));
1230
+
1231
+ var result = [];
1232
+ var parsedDates = JSON.parse(_schedule.period.dates);
1233
+
1234
+ for (var _i2 = 1; _i2 <= 31; _i2++) {
1235
+ if (parsedDates.indexOf(_i2) === -1) {
1236
+ result.push(_i2);
1237
+ }
1238
+ }
1239
+
1240
+ result.sort(function (a, b) {
1241
+ return a - b;
1242
+ });
1243
+ _schedule.period.dates = JSON.stringify(result);
1244
+
1245
+ _this9.onChange(_schedule);
1246
+ }
1247
+ }),
1248
+ label: _i18n["default"].t('sch_invert')
1249
+ }), /*#__PURE__*/_react["default"].createElement("div", null), dates.map(function (i) {
1250
+ return /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1251
+ key: 'date_' + i,
1252
+ className: _this9.props.classes.inputDateDay,
1253
+ style: !i ? {
1254
+ opacity: 0,
1255
+ cursor: 'default',
1256
+ userSelect: 'none',
1257
+ pointerEvents: 'none'
1258
+ } : {},
1259
+ control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
1260
+ className: _this9.props.classes.inputDateDayCheck,
1261
+ checked: JSON.parse(schedule.period.dates).includes(i),
1262
+ onChange: function onChange(e) {
1263
+ var _schedule = JSON.parse(JSON.stringify(_this9.state.schedule));
1264
+
1265
+ var dates;
1266
+
1267
+ try {
1268
+ dates = JSON.parse(_schedule.period.dates);
1269
+ } catch (e) {
1270
+ dates = [];
1271
+ }
1272
+
1273
+ if (e.target.checked && dates.indexOf(i) === -1) {
1274
+ dates.push(i);
1275
+ } else if (!e.target.checked && dates.indexOf(i) !== -1) {
1276
+ dates.splice(dates.indexOf(i), 1);
1277
+ }
1278
+
1279
+ dates.sort(function (a, b) {
1280
+ return a - b;
1281
+ });
1282
+ _schedule.period.dates = JSON.stringify(dates);
1283
+
1284
+ _this9.onChange(_schedule);
1285
+ }
1286
+ }),
1287
+ label: i < 10 ? [/*#__PURE__*/_react["default"].createElement("span", {
1288
+ key: "0",
1289
+ style: {
1290
+ opacity: 0
1291
+ }
1292
+ }, "0"), /*#__PURE__*/_react["default"].createElement("span", {
1293
+ key: "num"
1294
+ }, i)] : i
1295
+ });
1296
+ }));
1297
+ }
1298
+ }, {
1299
+ key: "getPeriodSettingsMonthly",
1300
+ value: function getPeriodSettingsMonthly() {
1301
+ var _this10 = this;
1302
+
1303
+ if (!this.state.schedule.period.months) {
1304
+ return;
1305
+ }
1306
+
1307
+ var schedule = this.state.schedule;
1308
+ var parsedMonths = typeof schedule.period.months === 'string' ? JSON.parse(schedule.period.months) : [];
1309
+ return [/*#__PURE__*/_react["default"].createElement("div", {
1310
+ key: "every"
1311
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1312
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
1313
+ className: this.props.classes.inputRadio,
1314
+ checked: typeof schedule.period.months === 'number' && schedule.period.months === 1,
1315
+ onClick: function onClick() {
1316
+ var _schedule = JSON.parse(JSON.stringify(_this10.state.schedule));
1317
+
1318
+ _schedule.period.months = 1;
1319
+
1320
+ _this10.onChange(schedule);
1321
+ }
1322
+ }),
1323
+ label: _i18n["default"].t('sch_periodEveryMonth')
1324
+ })), /*#__PURE__*/_react["default"].createElement("div", {
1325
+ key: "everyN"
1326
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1327
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
1328
+ className: this.props.classes.inputRadio,
1329
+ checked: typeof schedule.period.months === 'number' && schedule.period.months > 1,
1330
+ onClick: function onClick() {
1331
+ var _schedule = JSON.parse(JSON.stringify(_this10.state.schedule));
1332
+
1333
+ _schedule.period.months = 2;
1334
+
1335
+ _this10.onChange(_schedule);
1336
+ }
1337
+ }),
1338
+ label: _i18n["default"].t('sch_periodEvery')
1339
+ }), typeof schedule.period.months === 'number' && schedule.period.months > 1 && [/*#__PURE__*/_react["default"].createElement(_Input["default"], {
1340
+ value: schedule.period.months,
1341
+ className: this.props.classes.inputEvery,
1342
+ type: "number",
1343
+ min: "2",
1344
+ onChange: function onChange(e) {
1345
+ var _schedule = JSON.parse(JSON.stringify(_this10.state.schedule));
1346
+
1347
+ _schedule.period.months = parseInt(e.target.value, 10);
1348
+ if (_schedule.period.months < 1) _schedule.period.months = 1;
1349
+
1350
+ _this10.onChange(_schedule);
1351
+ }
1352
+ }), /*#__PURE__*/_react["default"].createElement("span", null, _i18n["default"].t('sch_periodMonth'))]), /*#__PURE__*/_react["default"].createElement("div", {
1353
+ key: "specific",
1354
+ style: {
1355
+ verticalAlign: 'top'
1356
+ }
1357
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1358
+ style: {
1359
+ verticalAlign: 'top'
1360
+ },
1361
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
1362
+ className: this.props.classes.inputRadio,
1363
+ checked: typeof schedule.period.months === 'string',
1364
+ onClick: function onClick() {
1365
+ var _schedule = JSON.parse(JSON.stringify(_this10.state.schedule));
1366
+
1367
+ _schedule.period.months = '[1,2,3,4,5,6,7,8,9,10,11,12]';
1368
+
1369
+ _this10.onChange(_schedule);
1370
+ }
1371
+ }),
1372
+ label: _i18n["default"].t('sch_periodSpecificMonths')
1373
+ }), typeof schedule.period.months === 'string' && /*#__PURE__*/_react["default"].createElement(_FormGroup["default"], {
1374
+ row: true,
1375
+ className: this.props.classes.inputGroup
1376
+ }, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1377
+ className: this.props.classes.inputDateDay,
1378
+ control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
1379
+ className: this.props.classes.inputDateDayCheck,
1380
+ checked: parsedMonths.length === 12,
1381
+ onChange: function onChange(e) {
1382
+ var _schedule = JSON.parse(JSON.stringify(_this10.state.schedule));
1383
+
1384
+ var months = [];
1385
+
1386
+ for (var i = 1; i <= 12; i++) {
1387
+ months.push(i);
1388
+ }
1389
+
1390
+ _schedule.period.months = JSON.stringify(months);
1391
+
1392
+ _this10.onChange(_schedule);
1393
+ }
1394
+ }),
1395
+ label: _i18n["default"].t('sch_all')
1396
+ }), /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1397
+ className: this.props.classes.inputDateDay,
1398
+ control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
1399
+ className: this.props.classes.inputDateDayCheck,
1400
+ checked: !parsedMonths.length,
1401
+ onChange: function onChange(e) {
1402
+ var _schedule = JSON.parse(JSON.stringify(_this10.state.schedule));
1403
+
1404
+ _schedule.period.months = '[]';
1405
+
1406
+ _this10.onChange(_schedule);
1407
+ }
1408
+ }),
1409
+ label: _i18n["default"].t('sch_no_one')
1410
+ }), parsedMonths.length !== 12 && !!parsedMonths.length && /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1411
+ className: this.props.classes.inputDateDay,
1412
+ control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
1413
+ className: this.props.classes.inputDateDayCheck,
1414
+ checked: false,
1415
+ onChange: function onChange(e) {
1416
+ var _schedule = JSON.parse(JSON.stringify(_this10.state.schedule));
1417
+
1418
+ var result = [];
1419
+ var parsedMonths = JSON.parse(_schedule.period.months);
1420
+
1421
+ for (var i = 1; i <= 12; i++) {
1422
+ if (parsedMonths.indexOf(i) === -1) {
1423
+ result.push(i);
1424
+ }
1425
+ }
1426
+
1427
+ result.sort(function (a, b) {
1428
+ return a - b;
1429
+ });
1430
+ _schedule.period.months = JSON.stringify(result);
1431
+
1432
+ _this10.onChange(_schedule);
1433
+ }
1434
+ }),
1435
+ label: _i18n["default"].t('sch_invert')
1436
+ }), /*#__PURE__*/_react["default"].createElement("div", null), MONTHS.map(function (month, i) {
1437
+ return /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1438
+ className: _this10.props.classes.inputGroupElement,
1439
+ control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
1440
+ className: _this10.props.classes.inputSmallCheck,
1441
+ checked: JSON.parse(schedule.period.months).includes(i + 1),
1442
+ onChange: function onChange(e) {
1443
+ var _schedule = JSON.parse(JSON.stringify(_this10.state.schedule));
1444
+
1445
+ var months;
1446
+
1447
+ try {
1448
+ months = JSON.parse(_schedule.period.months);
1449
+ } catch (e) {
1450
+ months = [];
1451
+ }
1452
+
1453
+ if (e.target.checked && !months.includes(i + 1)) {
1454
+ months.push(i + 1);
1455
+ } else if (!e.target.checked && months.includes(i + 1)) {
1456
+ months.splice(months.indexOf(i + 1), 1);
1457
+ }
1458
+
1459
+ months.sort(function (a, b) {
1460
+ return a - b;
1461
+ });
1462
+ _schedule.period.months = JSON.stringify(months);
1463
+
1464
+ _this10.onChange(_schedule);
1465
+ }
1466
+ }),
1467
+ label: _i18n["default"].t(month)
1468
+ });
1469
+ })))];
1470
+ }
1471
+ }, {
1472
+ key: "getPeriodSettingsYearly",
1473
+ value: function getPeriodSettingsYearly() {
1474
+ var _this11 = this;
1475
+
1476
+ if (!this.state.schedule.period.years) {
1477
+ return;
1478
+ }
1479
+
1480
+ var schedule = this.state.schedule;
1481
+ return [/*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1482
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
1483
+ className: this.props.classes.inputRadio,
1484
+ checked: schedule.period.years === 1,
1485
+ onClick: function onClick() {
1486
+ var _schedule = JSON.parse(JSON.stringify(_this11.state.schedule));
1487
+
1488
+ _schedule.period.years = 1;
1489
+
1490
+ _this11.onChange(_schedule);
1491
+ }
1492
+ }),
1493
+ label: _i18n["default"].t('sch_periodEveryYear')
1494
+ })), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1495
+ control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
1496
+ className: this.props.classes.inputRadio,
1497
+ checked: schedule.period.years > 1,
1498
+ onClick: function onClick() {
1499
+ var _schedule = JSON.parse(JSON.stringify(_this11.state.schedule));
1500
+
1501
+ _schedule.period.years = 2;
1502
+
1503
+ _this11.onChange(_schedule);
1504
+ }
1505
+ }),
1506
+ label: _i18n["default"].t('sch_periodEvery')
1507
+ }), schedule.period.years > 1 && [/*#__PURE__*/_react["default"].createElement(_Input["default"], {
1508
+ value: this.state.schedule.period.years,
1509
+ className: this.props.classes.inputEvery,
1510
+ type: "number",
1511
+ min: "2",
1512
+ onChange: function onChange(e) {
1513
+ var _schedule = JSON.parse(JSON.stringify(_this11.state.schedule));
1514
+
1515
+ _schedule.period.years = parseInt(e.target.value, 10);
1516
+ if (_schedule.period.years < 1) _schedule.period.years = 1;
1517
+
1518
+ _this11.onChange(_schedule);
1519
+ }
1520
+ }), /*#__PURE__*/_react["default"].createElement("span", null, _i18n["default"].t('sch_periodYear'))])];
1521
+ }
1522
+ }, {
1523
+ key: "getValidSettings",
1524
+ value: function getValidSettings() {
1525
+ var _this12 = this;
1526
+
1527
+ var schedule = this.state.schedule; // ----- from ---
1528
+
1529
+ return /*#__PURE__*/_react["default"].createElement("div", {
1530
+ className: this.props.classes.rowDiv
1531
+ }, /*#__PURE__*/_react["default"].createElement("div", {
1532
+ className: this.props.classes.modeDiv,
1533
+ style: {
1534
+ verticalAlign: 'middle'
1535
+ }
1536
+ }, /*#__PURE__*/_react["default"].createElement("span", {
1537
+ style: {
1538
+ fontWeight: 'bold',
1539
+ paddingRight: 10
1540
+ }
1541
+ }, _i18n["default"].t('sch_valid')), /*#__PURE__*/_react["default"].createElement("span", null, _i18n["default"].t('sch_validFrom'))), /*#__PURE__*/_react["default"].createElement("div", {
1542
+ className: this.props.classes.settingsDiv
1543
+ }, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
1544
+ variant: "standard",
1545
+ className: this.props.classes.inputDate,
1546
+ style: {
1547
+ marginRight: 10
1548
+ },
1549
+ key: "exactTimeFrom",
1550
+ inputRef: this.refFrom,
1551
+ defaultValue: string2USdate(schedule.valid.from),
1552
+ type: "date" //inputComponent={TextDate}
1553
+ ,
1554
+ onChange: function onChange(e) {
1555
+ _this12.timerFrom && clearTimeout(_this12.timerFrom);
1556
+ _this12.refFrom.current.style.background = '#ff000030';
1557
+ _this12.timerFrom = setTimeout(function (value) {
1558
+ _this12.timerFrom = null;
1559
+ _this12.refFrom.current.style.background = '';
1560
+
1561
+ var _schedule = JSON.parse(JSON.stringify(_this12.state.schedule));
1562
+
1563
+ var date = Schedule.string2date(value);
1564
+
1565
+ if (date.toString() !== 'Invalid Date') {
1566
+ _schedule.valid.from = "".concat(padding(date.getDate()), ".").concat(padding(date.getMonth() + 1), ".").concat(date.getFullYear());
1567
+
1568
+ _this12.onChange(_schedule);
1569
+ }
1570
+ }, 1500, e.target.value);
1571
+ },
1572
+ InputLabelProps: {
1573
+ shrink: true
1574
+ },
1575
+ margin: "normal"
1576
+ }), /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
1577
+ control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
1578
+ className: this.props.classes.inputRadio,
1579
+ checked: !!schedule.valid.to,
1580
+ onClick: function onClick() {
1581
+ var _schedule = JSON.parse(JSON.stringify(_this12.state.schedule));
1582
+
1583
+ _schedule.valid.to = _schedule.valid.to ? '' : Schedule.now2string(true);
1584
+
1585
+ _this12.onChange(_schedule);
1586
+ }
1587
+ }),
1588
+ label: _i18n["default"].t('sch_validTo')
1589
+ }), !!schedule.valid.to && /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
1590
+ variant: "standard",
1591
+ inputRef: this.refTo,
1592
+ className: this.props.classes.inputDate,
1593
+ style: {
1594
+ marginRight: 10
1595
+ },
1596
+ key: "exactTimeFrom",
1597
+ type: "date",
1598
+ defaultValue: string2USdate(schedule.valid.to) //inputComponent={TextDate}
1599
+ ,
1600
+ onChange: function onChange(e) {
1601
+ _this12.timerTo && clearTimeout(_this12.timerTo);
1602
+ _this12.refTo.current.style.background = '#ff000030';
1603
+ _this12.timerTo = setTimeout(function (value) {
1604
+ _this12.timerTo = null;
1605
+ _this12.refTo.current.style.background = '';
1606
+
1607
+ var _schedule = JSON.parse(JSON.stringify(_this12.state.schedule));
1608
+
1609
+ var date = Schedule.string2date(value);
1610
+
1611
+ if (date.toString() !== 'Invalid Date') {
1612
+ _schedule.valid.to = "".concat(padding(date.getDate()), ".").concat(padding(date.getMonth() + 1), ".").concat(date.getFullYear());
1613
+
1614
+ _this12.onChange(_schedule);
1615
+ }
1616
+ }, 1500, e.target.value);
1617
+ },
1618
+ InputLabelProps: {
1619
+ shrink: true
1620
+ },
1621
+ margin: "normal"
1622
+ })));
1623
+ }
1624
+ }, {
1625
+ key: "render",
1626
+ value: function render() {
1627
+ return /*#__PURE__*/_react["default"].createElement("div", {
1628
+ style: {
1629
+ height: 'calc(100% - 48px)',
1630
+ width: '100%',
1631
+ overflow: 'hidden'
1632
+ }
1633
+ }, /*#__PURE__*/_react["default"].createElement("div", null, this.state.desc), /*#__PURE__*/_react["default"].createElement("div", {
1634
+ className: this.props.classes.scrollWindow
1635
+ }, /*#__PURE__*/_react["default"].createElement("h5", null, _i18n["default"].t('sch_time')), this.getTimePeriodElements(), this.getTimeExactElements(), this.getDivider(), /*#__PURE__*/_react["default"].createElement("h5", null, _i18n["default"].t('sch_period')), this.getPeriodModes(), !this.state.schedule.period.once && this.getDivider(), !this.state.schedule.period.once && this.getValidSettings()));
1636
+ }
1637
+ }], [{
1638
+ key: "state2text",
1639
+ value: function state2text(schedule) {
1640
+ if (typeof schedule === 'string') {
1641
+ try {
1642
+ schedule = JSON.parse(schedule);
1643
+ } catch (e) {
1644
+ schedule = {};
1645
+ }
1646
+ }
1647
+
1648
+ var desc = [];
1649
+ var validFrom = Schedule.string2date(schedule.valid.from);
1650
+
1651
+ if (schedule.period.once) {
1652
+ // once
1653
+ var once = Schedule.string2date(schedule.period.once);
1654
+ var now = new Date();
1655
+ now.setMilliseconds(0);
1656
+ now.setSeconds(0);
1657
+ now.setMinutes(0);
1658
+ now.setHours(0); //
1659
+
1660
+ if (once < now) {
1661
+ // will ne be not executed any more, because start is in the past
1662
+ return _i18n["default"].t('sch_desc_onceInPast');
1663
+ } else {
1664
+ // only once
1665
+ desc.push(_i18n["default"].t('sch_desc_once_on', schedule.period.once));
1666
+ }
1667
+ } else if (schedule.period.days) {
1668
+ if (schedule.period.days === 1) {
1669
+ if (schedule.period.dows) {
1670
+ var dows = JSON.parse(schedule.period.dows);
1671
+
1672
+ if (dows.length === 2 && dows[0] === 0 && dows[1] === 6) {
1673
+ // on weekends
1674
+ desc.push(_i18n["default"].t('sch_desc_onWeekends'));
1675
+ } else if (dows.length === 5 && dows[0] === 1 && dows[1] === 2 && dows[2] === 3 && dows[3] === 4 && dows[4] === 5) {
1676
+ // on workdays
1677
+ desc.push(_i18n["default"].t('sch_desc_onWorkdays'));
1678
+ } else {
1679
+ var tDows = dows.map(function (day) {
1680
+ return _i18n["default"].t(WEEKDAYS[day]);
1681
+ });
1682
+
1683
+ if (tDows.length === 1) {
1684
+ // on Monday
1685
+ desc.push(_i18n["default"].t('sch_desc_onWeekday', tDows[0]));
1686
+ } else if (tDows.length === 7) {
1687
+ // on every day
1688
+ desc.push(_i18n["default"].t('sch_desc_everyDay'));
1689
+ } else {
1690
+ var last = tDows.pop(); // on Monday and Sunday
1691
+
1692
+ desc.push(_i18n["default"].t('sch_desc_onWeekdays', tDows.join(', '), last));
1693
+ }
1694
+ }
1695
+ } else {
1696
+ desc.push(_i18n["default"].t('sch_desc_everyDay'));
1697
+ }
1698
+ } else {
1699
+ desc.push(_i18n["default"].t('sch_desc_everyNDay', schedule.period.days));
1700
+ }
1701
+ } else if (schedule.period.weeks) {
1702
+ if (schedule.period.weeks === 1) {
1703
+ desc.push(_i18n["default"].t('sch_desc_everyWeek'));
1704
+ } else {
1705
+ desc.push(_i18n["default"].t('sch_desc_everyNWeeks', schedule.period.weeks));
1706
+ }
1707
+
1708
+ if (schedule.period.dows) {
1709
+ var _dows2 = JSON.parse(schedule.period.dows);
1710
+
1711
+ if (_dows2.length === 2 && _dows2[0] === 0 && _dows2[1] === 6) {
1712
+ // on weekends
1713
+ desc.push(_i18n["default"].t('sch_desc_onWeekends'));
1714
+ } else if (_dows2.length === 5 && _dows2[0] === 1 && _dows2[1] === 2 && _dows2[2] === 3 && _dows2[3] === 4 && _dows2[4] === 5) {
1715
+ // on workdays
1716
+ desc.push(_i18n["default"].t('sch_desc_onWorkdays'));
1717
+ } else {
1718
+ var _tDows = _dows2.map(function (day) {
1719
+ return _i18n["default"].t(WEEKDAYS[day]);
1720
+ });
1721
+
1722
+ if (_tDows.length === 1) {
1723
+ // on Monday
1724
+ desc.push(_i18n["default"].t('sch_desc_onWeekday', _tDows[0]));
1725
+ } else if (_tDows.length === 7) {
1726
+ // on every day
1727
+ desc.push(_i18n["default"].t('sch_desc_everyDay'));
1728
+ } else {
1729
+ var _last = _tDows.pop(); // on Monday and Sunday
1730
+
1731
+
1732
+ desc.push(_i18n["default"].t('sch_desc_onWeekdays', _tDows.join(', '), _last));
1733
+ }
1734
+ }
1735
+ } else {
1736
+ return _i18n["default"].t('sch_desc_never');
1737
+ }
1738
+ } else if (schedule.period.months) {
1739
+ if (schedule.period.dates) {
1740
+ var dates = JSON.parse(schedule.period.dates);
1741
+
1742
+ if (dates.length === 1) {
1743
+ // in 1 of month
1744
+ desc.push(_i18n["default"].t('sch_desc_onDate', dates[0]));
1745
+ } else if (dates.length === 31) {
1746
+ desc.push(_i18n["default"].t('sch_desc_onEveryDate'));
1747
+ } else if (!dates.length) {
1748
+ return _i18n["default"].t('sch_desc_never');
1749
+ } else {
1750
+ var _last2 = dates.pop(); // in 1 and 4 of month
1751
+
1752
+
1753
+ desc.push(_i18n["default"].t('sch_desc_onDates', dates.join(', '), _last2));
1754
+ }
1755
+ } else {
1756
+ desc.push(_i18n["default"].t('sch_desc_onEveryDate'));
1757
+ }
1758
+
1759
+ if (schedule.period.months === 1) {
1760
+ desc.push(_i18n["default"].t('sch_desc_everyMonth'));
1761
+ } else if (typeof schedule.period.months === 'number') {
1762
+ desc.push(_i18n["default"].t('sch_desc_everyNMonths', schedule.period.months));
1763
+ } else {
1764
+ var months = JSON.parse(schedule.period.months);
1765
+ var tMonths = months.map(function (month) {
1766
+ return _i18n["default"].t(MONTHS[month - 1]);
1767
+ });
1768
+
1769
+ if (!tMonths.length) {
1770
+ // in January
1771
+ return _i18n["default"].t('sch_desc_never');
1772
+ } else if (tMonths.length === 1) {
1773
+ // in January
1774
+ desc.push(_i18n["default"].t('sch_desc_onMonth', tMonths[0]));
1775
+ } else if (tMonths.length === 12) {
1776
+ // every month
1777
+ desc.push(_i18n["default"].t('sch_desc_everyMonth'));
1778
+ } else {
1779
+ var _last3 = tMonths.pop(); // in January and May
1780
+
1781
+
1782
+ desc.push(_i18n["default"].t('sch_desc_onMonths', tMonths.join(', '), _last3));
1783
+ }
1784
+ }
1785
+ } else if (schedule.period.years) {
1786
+ if (schedule.period.years === 1) {
1787
+ desc.push(_i18n["default"].t('sch_desc_everyYear'));
1788
+ } else {
1789
+ desc.push(_i18n["default"].t('sch_desc_everyNYears', schedule.period.years));
1790
+ }
1791
+
1792
+ desc.push(_i18n["default"].t('sch_desc_onDate', schedule.period.yearDate, schedule.period.yearMonth ? _i18n["default"].t(MONTHS[schedule.period.yearMonth - 1]) : _i18n["default"].t('sch_desc_everyMonth')));
1793
+ } // time
1794
+
1795
+
1796
+ if (schedule.time.exactTime) {
1797
+ if (ASTRO.indexOf(schedule.time.start) !== -1) {
1798
+ // at sunset
1799
+ desc.push(_i18n["default"].t('sch_desc_atTime', _i18n["default"].t('sch_astro_' + schedule.time.start)));
1800
+ } else {
1801
+ // at HH:MM
1802
+ desc.push(_i18n["default"].t('sch_desc_atTime', schedule.time.start));
1803
+ }
1804
+ } else {
1805
+ if (schedule.time.mode === PERIODS.minutes) {
1806
+ if (schedule.time.interval === 1) {
1807
+ // every minute
1808
+ desc.push(_i18n["default"].t('sch_desc_everyMinute'));
1809
+ } else {
1810
+ // every N minutes
1811
+ desc.push(_i18n["default"].t('sch_desc_everyNMinutes', schedule.time.interval));
1812
+ }
1813
+ } else {
1814
+ if (schedule.time.interval === 1) {
1815
+ // every minute
1816
+ desc.push(_i18n["default"].t('sch_desc_everyHour'));
1817
+ } else {
1818
+ // every N minutes
1819
+ desc.push(_i18n["default"].t('sch_desc_everyNHours', schedule.time.interval));
1820
+ }
1821
+ }
1822
+
1823
+ var start = ASTRO.indexOf(schedule.time.start) !== -1 ? _i18n["default"].t('sch_astro_' + schedule.time.start) : schedule.time.start;
1824
+ var end = ASTRO.indexOf(schedule.time.end) !== -1 ? _i18n["default"].t('sch_astro_' + schedule.time.end) : schedule.time.end;
1825
+
1826
+ if (start !== '00:00' || end !== '24:00' && end !== '23:59') {
1827
+ // from HH:mm to HH:mm
1828
+ desc.push(_i18n["default"].t('sch_desc_intervalFromTo', start, end));
1829
+ }
1830
+ }
1831
+
1832
+ if (!schedule.period.once) {
1833
+ // valid
1834
+ if (validFrom.getTime() > Date.now() && schedule.valid.to) {
1835
+ // from XXX to XXXX
1836
+ desc.push(_i18n["default"].t('sch_desc_validFromTo', schedule.valid.from, schedule.valid.to));
1837
+ } else if (validFrom.getTime() > Date.now()) {
1838
+ // from XXXX
1839
+ desc.push(_i18n["default"].t('sch_desc_validFrom', schedule.valid.from));
1840
+ } else if (schedule.valid.to) {
1841
+ // till XXXX
1842
+ desc.push(_i18n["default"].t('sch_desc_validTo', schedule.valid.to));
1843
+ }
1844
+ }
1845
+
1846
+ return desc.join(' ');
1847
+ }
1848
+ }, {
1849
+ key: "now2string",
1850
+ value: function now2string(isEnd) {
1851
+ var d = new Date();
1852
+ d.setHours(0);
1853
+ d.setMinutes(0);
1854
+ d.setSeconds(0);
1855
+ d.setMilliseconds(0);
1856
+
1857
+ if (isEnd) {
1858
+ d.setDate(d.getDate() + 2);
1859
+ d.setMilliseconds(d.getMilliseconds() - 1);
1860
+ }
1861
+
1862
+ return "".concat(padding(d.getDate()), ".").concat(padding(d.getMonth() + 1), ".").concat(padding(d.getFullYear()));
1863
+ }
1864
+ }, {
1865
+ key: "string2date",
1866
+ value: function string2date(str) {
1867
+ var parts = str.split('.'); // 31.12.2019
1868
+
1869
+ if (parts.length === 1) {
1870
+ parts = str.split('-'); // 2018-12-31
1871
+
1872
+ return new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10));
1873
+ } else {
1874
+ return new Date(parseInt(parts[2], 10), parseInt(parts[1], 10) - 1, parseInt(parts[0], 10));
1875
+ }
1876
+ }
1877
+ }]);
1878
+
1879
+ return Schedule;
1880
+ }(_react["default"].Component);
1881
+
1882
+ Schedule.propTypes = {
1883
+ schedule: _propTypes["default"].string,
1884
+ onChange: _propTypes["default"].func,
1885
+ language: _propTypes["default"].string
1886
+ };
1887
+
1888
+ var _default = (0, _withStyles["default"])(styles)(Schedule);
1889
+
1890
+ exports["default"] = _default;
1891
+ //# sourceMappingURL=Schedule.js.map