@iobroker/adapter-react-v5 4.13.0 → 4.13.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 (464) hide show
  1. package/AdminConnection.js.map +1 -1
  2. package/Components/404.js +13 -13
  3. package/Components/404.js.map +1 -0
  4. package/Components/ColorPicker.js +54 -54
  5. package/Components/ColorPicker.js.map +1 -1
  6. package/Components/ComplexCron.js.map +1 -1
  7. package/Components/CustomModal.js.map +1 -0
  8. package/Components/FileBrowser.js +5 -1
  9. package/Components/FileBrowser.js.map +1 -0
  10. package/Components/FileViewer.js.map +1 -0
  11. package/Components/Icon.js.map +1 -0
  12. package/Components/IconPicker.js.map +1 -0
  13. package/Components/IconSelector.js.map +1 -0
  14. package/Components/Image.js.map +1 -0
  15. package/Components/JsonConfigComponent/ChipInput.d.ts +12 -0
  16. package/Components/JsonConfigComponent/ChipInput.js +763 -0
  17. package/Components/JsonConfigComponent/ChipInput.js.map +1 -0
  18. package/Components/JsonConfigComponent/ConfigAccordion.d.ts +15 -0
  19. package/Components/JsonConfigComponent/ConfigAccordion.js +348 -0
  20. package/Components/JsonConfigComponent/ConfigAccordion.js.map +1 -0
  21. package/Components/JsonConfigComponent/ConfigAlive.d.ts +10 -0
  22. package/Components/JsonConfigComponent/ConfigAlive.js +105 -0
  23. package/Components/JsonConfigComponent/ConfigAlive.js.map +1 -0
  24. package/Components/JsonConfigComponent/ConfigAutocomplete.d.ts +37 -0
  25. package/Components/JsonConfigComponent/ConfigAutocomplete.js +73 -0
  26. package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -0
  27. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.d.ts +17 -0
  28. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +131 -0
  29. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -0
  30. package/Components/JsonConfigComponent/ConfigCRON.d.ts +15 -0
  31. package/Components/JsonConfigComponent/ConfigCRON.js +157 -0
  32. package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -0
  33. package/Components/JsonConfigComponent/ConfigCertCollection.d.ts +14 -0
  34. package/Components/JsonConfigComponent/ConfigCertCollection.js +128 -0
  35. package/Components/JsonConfigComponent/ConfigCertCollection.js.map +1 -0
  36. package/Components/JsonConfigComponent/ConfigCertificateSelect.d.ts +14 -0
  37. package/Components/JsonConfigComponent/ConfigCertificateSelect.js +149 -0
  38. package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -0
  39. package/Components/JsonConfigComponent/ConfigCertificates.d.ts +14 -0
  40. package/Components/JsonConfigComponent/ConfigCertificates.js +284 -0
  41. package/Components/JsonConfigComponent/ConfigCertificates.js.map +1 -0
  42. package/Components/JsonConfigComponent/ConfigCheckLicense.d.ts +3 -0
  43. package/Components/JsonConfigComponent/ConfigCheckLicense.js +821 -0
  44. package/Components/JsonConfigComponent/ConfigCheckLicense.js.map +1 -0
  45. package/Components/JsonConfigComponent/ConfigCheckbox.d.ts +15 -0
  46. package/Components/JsonConfigComponent/ConfigCheckbox.js +40 -0
  47. package/Components/JsonConfigComponent/ConfigCheckbox.js.map +1 -0
  48. package/Components/JsonConfigComponent/ConfigChip.d.ts +14 -0
  49. package/Components/JsonConfigComponent/ConfigChip.js +120 -0
  50. package/Components/JsonConfigComponent/ConfigChip.js.map +1 -0
  51. package/Components/JsonConfigComponent/ConfigColor.d.ts +22 -0
  52. package/Components/JsonConfigComponent/ConfigColor.js +120 -0
  53. package/Components/JsonConfigComponent/ConfigColor.js.map +1 -0
  54. package/Components/JsonConfigComponent/ConfigCoordinates.d.ts +14 -0
  55. package/Components/JsonConfigComponent/ConfigCoordinates.js +265 -0
  56. package/Components/JsonConfigComponent/ConfigCoordinates.js.map +1 -0
  57. package/Components/JsonConfigComponent/ConfigCustom.d.ts +26 -0
  58. package/Components/JsonConfigComponent/ConfigCustom.js +316 -0
  59. package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -0
  60. package/Components/JsonConfigComponent/ConfigDatePicker.d.ts +14 -0
  61. package/Components/JsonConfigComponent/ConfigDatePicker.js +91 -0
  62. package/Components/JsonConfigComponent/ConfigDatePicker.js.map +1 -0
  63. package/Components/JsonConfigComponent/ConfigDeviceManager.d.ts +6 -0
  64. package/Components/JsonConfigComponent/ConfigDeviceManager.js +18 -0
  65. package/Components/JsonConfigComponent/ConfigFile.d.ts +15 -0
  66. package/Components/JsonConfigComponent/ConfigFile.js +228 -0
  67. package/Components/JsonConfigComponent/ConfigFile.js.map +1 -0
  68. package/Components/JsonConfigComponent/ConfigFileSelector.d.ts +3 -0
  69. package/Components/JsonConfigComponent/ConfigFileSelector.js +625 -0
  70. package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -0
  71. package/Components/JsonConfigComponent/ConfigFunc.d.ts +14 -0
  72. package/Components/JsonConfigComponent/ConfigFunc.js +124 -0
  73. package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -0
  74. package/Components/JsonConfigComponent/ConfigGeneric.d.ts +95 -0
  75. package/Components/JsonConfigComponent/ConfigGeneric.js +646 -0
  76. package/Components/JsonConfigComponent/ConfigIP.d.ts +14 -0
  77. package/Components/JsonConfigComponent/ConfigIP.js +130 -0
  78. package/Components/JsonConfigComponent/ConfigIP.js.map +1 -0
  79. package/Components/JsonConfigComponent/ConfigImageSendTo.d.ts +10 -0
  80. package/Components/JsonConfigComponent/ConfigImageSendTo.js +114 -0
  81. package/Components/JsonConfigComponent/ConfigImageSendTo.js.map +1 -0
  82. package/Components/JsonConfigComponent/ConfigImageUpload.d.ts +14 -0
  83. package/Components/JsonConfigComponent/ConfigImageUpload.js +166 -0
  84. package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -0
  85. package/Components/JsonConfigComponent/ConfigInstanceSelect.d.ts +14 -0
  86. package/Components/JsonConfigComponent/ConfigInstanceSelect.js +264 -0
  87. package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -0
  88. package/Components/JsonConfigComponent/ConfigInterface.d.ts +14 -0
  89. package/Components/JsonConfigComponent/ConfigInterface.js +146 -0
  90. package/Components/JsonConfigComponent/ConfigInterface.js.map +1 -0
  91. package/Components/JsonConfigComponent/ConfigJsonEditor.d.ts +13 -0
  92. package/Components/JsonConfigComponent/ConfigJsonEditor.js +145 -0
  93. package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -0
  94. package/Components/JsonConfigComponent/ConfigLanguage.d.ts +7 -0
  95. package/Components/JsonConfigComponent/ConfigLanguage.js +110 -0
  96. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -0
  97. package/Components/JsonConfigComponent/ConfigLicense.d.ts +24 -0
  98. package/Components/JsonConfigComponent/ConfigLicense.js +183 -0
  99. package/Components/JsonConfigComponent/ConfigLicense.js.map +1 -0
  100. package/Components/JsonConfigComponent/ConfigNumber.d.ts +17 -0
  101. package/Components/JsonConfigComponent/ConfigNumber.js +117 -0
  102. package/Components/JsonConfigComponent/ConfigObjectId.d.ts +17 -0
  103. package/Components/JsonConfigComponent/ConfigObjectId.js +167 -0
  104. package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -0
  105. package/Components/JsonConfigComponent/ConfigPanel.d.ts +3 -0
  106. package/Components/JsonConfigComponent/ConfigPanel.js +396 -0
  107. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -0
  108. package/Components/JsonConfigComponent/ConfigPassword.d.ts +14 -0
  109. package/Components/JsonConfigComponent/ConfigPassword.js +193 -0
  110. package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -0
  111. package/Components/JsonConfigComponent/ConfigPattern.d.ts +21 -0
  112. package/Components/JsonConfigComponent/ConfigPattern.js +65 -0
  113. package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -0
  114. package/Components/JsonConfigComponent/ConfigPort.d.ts +3 -0
  115. package/Components/JsonConfigComponent/ConfigPort.js +176 -0
  116. package/Components/JsonConfigComponent/ConfigRoom.d.ts +14 -0
  117. package/Components/JsonConfigComponent/ConfigRoom.js +124 -0
  118. package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -0
  119. package/Components/JsonConfigComponent/ConfigSelect.d.ts +14 -0
  120. package/Components/JsonConfigComponent/ConfigSelect.js +159 -0
  121. package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -0
  122. package/Components/JsonConfigComponent/ConfigSelectSendTo.d.ts +17 -0
  123. package/Components/JsonConfigComponent/ConfigSelectSendTo.js +272 -0
  124. package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -0
  125. package/Components/JsonConfigComponent/ConfigSendto.d.ts +24 -0
  126. package/Components/JsonConfigComponent/ConfigSendto.js +294 -0
  127. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -0
  128. package/Components/JsonConfigComponent/ConfigSetState.d.ts +18 -0
  129. package/Components/JsonConfigComponent/ConfigSetState.js +185 -0
  130. package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -0
  131. package/Components/JsonConfigComponent/ConfigSlider.d.ts +14 -0
  132. package/Components/JsonConfigComponent/ConfigSlider.js +119 -0
  133. package/Components/JsonConfigComponent/ConfigSlider.js.map +1 -0
  134. package/Components/JsonConfigComponent/ConfigStaticDivider.d.ts +14 -0
  135. package/Components/JsonConfigComponent/ConfigStaticDivider.js +68 -0
  136. package/Components/JsonConfigComponent/ConfigStaticDivider.js.map +1 -0
  137. package/Components/JsonConfigComponent/ConfigStaticHeader.d.ts +14 -0
  138. package/Components/JsonConfigComponent/ConfigStaticHeader.js +81 -0
  139. package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -0
  140. package/Components/JsonConfigComponent/ConfigStaticImage.d.ts +14 -0
  141. package/Components/JsonConfigComponent/ConfigStaticImage.js +71 -0
  142. package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -0
  143. package/Components/JsonConfigComponent/ConfigStaticText.d.ts +14 -0
  144. package/Components/JsonConfigComponent/ConfigStaticText.js +88 -0
  145. package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -0
  146. package/Components/JsonConfigComponent/ConfigTable.d.ts +3 -0
  147. package/Components/JsonConfigComponent/ConfigTable.js +1064 -0
  148. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -0
  149. package/Components/JsonConfigComponent/ConfigTabs.d.ts +34 -0
  150. package/Components/JsonConfigComponent/ConfigTabs.js +162 -0
  151. package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -0
  152. package/Components/JsonConfigComponent/ConfigText.d.ts +14 -0
  153. package/Components/JsonConfigComponent/ConfigText.js +226 -0
  154. package/Components/JsonConfigComponent/ConfigText.js.map +1 -0
  155. package/Components/JsonConfigComponent/ConfigTextSendTo.d.ts +10 -0
  156. package/Components/JsonConfigComponent/ConfigTextSendTo.js +129 -0
  157. package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -0
  158. package/Components/JsonConfigComponent/ConfigTimePicker.d.ts +14 -0
  159. package/Components/JsonConfigComponent/ConfigTimePicker.js +85 -0
  160. package/Components/JsonConfigComponent/ConfigTimePicker.js.map +1 -0
  161. package/Components/JsonConfigComponent/ConfigTopic.d.ts +17 -0
  162. package/Components/JsonConfigComponent/ConfigTopic.js +110 -0
  163. package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -0
  164. package/Components/JsonConfigComponent/ConfigUUID.d.ts +15 -0
  165. package/Components/JsonConfigComponent/ConfigUUID.js +95 -0
  166. package/Components/JsonConfigComponent/ConfigUUID.js.map +1 -0
  167. package/Components/JsonConfigComponent/ConfigUser.d.ts +14 -0
  168. package/Components/JsonConfigComponent/ConfigUser.js +142 -0
  169. package/Components/JsonConfigComponent/ConfigUser.js.map +1 -0
  170. package/Components/JsonConfigComponent/DeviceManager/Communication.d.ts +63 -0
  171. package/Components/JsonConfigComponent/DeviceManager/Communication.js +268 -0
  172. package/Components/JsonConfigComponent/DeviceManager/DeviceActionButton.d.ts +11 -0
  173. package/Components/JsonConfigComponent/DeviceManager/DeviceActionButton.js +15 -0
  174. package/Components/JsonConfigComponent/DeviceManager/DeviceCard.d.ts +53 -0
  175. package/Components/JsonConfigComponent/DeviceManager/DeviceCard.js +340 -0
  176. package/Components/JsonConfigComponent/DeviceManager/DeviceControl.d.ts +45 -0
  177. package/Components/JsonConfigComponent/DeviceManager/DeviceControl.js +146 -0
  178. package/Components/JsonConfigComponent/DeviceManager/DeviceImageUpload.d.ts +12 -0
  179. package/Components/JsonConfigComponent/DeviceManager/DeviceImageUpload.js +69 -0
  180. package/Components/JsonConfigComponent/DeviceManager/DeviceList.d.ts +51 -0
  181. package/Components/JsonConfigComponent/DeviceManager/DeviceList.js +226 -0
  182. package/Components/JsonConfigComponent/DeviceManager/DeviceStatus.d.ts +13 -0
  183. package/Components/JsonConfigComponent/DeviceManager/DeviceStatus.js +111 -0
  184. package/Components/JsonConfigComponent/DeviceManager/InstanceActionButton.d.ts +7 -0
  185. package/Components/JsonConfigComponent/DeviceManager/InstanceActionButton.js +16 -0
  186. package/Components/JsonConfigComponent/DeviceManager/JsonConfig.d.ts +11 -0
  187. package/Components/JsonConfigComponent/DeviceManager/JsonConfig.js +94 -0
  188. package/Components/JsonConfigComponent/DeviceManager/TooltipButton.d.ts +10 -0
  189. package/Components/JsonConfigComponent/DeviceManager/TooltipButton.js +22 -0
  190. package/Components/JsonConfigComponent/DeviceManager/Utils.d.ts +12 -0
  191. package/Components/JsonConfigComponent/DeviceManager/Utils.js +158 -0
  192. package/Components/JsonConfigComponent/DeviceManager/i18n/de.json +21 -0
  193. package/Components/JsonConfigComponent/DeviceManager/i18n/en.json +21 -0
  194. package/Components/JsonConfigComponent/DeviceManager/i18n/es.json +21 -0
  195. package/Components/JsonConfigComponent/DeviceManager/i18n/fr.json +21 -0
  196. package/Components/JsonConfigComponent/DeviceManager/i18n/i18n.d.ts +26 -0
  197. package/Components/JsonConfigComponent/DeviceManager/i18n/it.json +21 -0
  198. package/Components/JsonConfigComponent/DeviceManager/i18n/nl.json +21 -0
  199. package/Components/JsonConfigComponent/DeviceManager/i18n/pl.json +21 -0
  200. package/Components/JsonConfigComponent/DeviceManager/i18n/pt.json +21 -0
  201. package/Components/JsonConfigComponent/DeviceManager/i18n/ru.json +21 -0
  202. package/Components/JsonConfigComponent/DeviceManager/i18n/uk.json +21 -0
  203. package/Components/JsonConfigComponent/DeviceManager/i18n/zh-cn.json +21 -0
  204. package/Components/JsonConfigComponent/DeviceManager/index.d.ts +2 -0
  205. package/Components/JsonConfigComponent/DeviceManager/index.js +10 -0
  206. package/Components/JsonConfigComponent/DeviceManager/index.js.map +1 -0
  207. package/Components/JsonConfigComponent/Utils.d.ts +9 -0
  208. package/Components/JsonConfigComponent/Utils.js +13 -0
  209. package/Components/JsonConfigComponent/index.d.ts +26 -0
  210. package/Components/JsonConfigComponent/index.js +520 -0
  211. package/Components/JsonConfigComponent/index.js.map +1 -0
  212. package/Components/JsonConfigComponent/wrapper/AdminConnection.d.ts +2 -0
  213. package/Components/JsonConfigComponent/wrapper/AdminConnection.js +7 -0
  214. package/Components/JsonConfigComponent/wrapper/Components/ColorPicker.d.ts +2 -0
  215. package/Components/JsonConfigComponent/wrapper/Components/ColorPicker.js +10 -0
  216. package/Components/JsonConfigComponent/wrapper/Components/ColorPicker.js.map +1 -0
  217. package/Components/JsonConfigComponent/wrapper/Components/Icon.d.ts +2 -0
  218. package/Components/JsonConfigComponent/wrapper/Components/Icon.js +10 -0
  219. package/Components/JsonConfigComponent/wrapper/Components/Icon.js.map +1 -0
  220. package/Components/JsonConfigComponent/wrapper/Components/TextWithIcon.d.ts +2 -0
  221. package/Components/JsonConfigComponent/wrapper/Components/TextWithIcon.js +10 -0
  222. package/Components/JsonConfigComponent/wrapper/Components/TextWithIcon.js.map +1 -0
  223. package/Components/JsonConfigComponent/wrapper/Components/UploadImage.d.ts +2 -0
  224. package/Components/JsonConfigComponent/wrapper/Components/UploadImage.js +10 -0
  225. package/Components/JsonConfigComponent/wrapper/Components/UploadImage.js.map +1 -0
  226. package/Components/JsonConfigComponent/wrapper/Components/Utils.d.ts +2 -0
  227. package/Components/JsonConfigComponent/wrapper/Components/Utils.js +10 -0
  228. package/Components/JsonConfigComponent/wrapper/Components/Utils.js.map +1 -0
  229. package/Components/JsonConfigComponent/wrapper/Dialogs/Confirm.d.ts +2 -0
  230. package/Components/JsonConfigComponent/wrapper/Dialogs/Confirm.js +10 -0
  231. package/Components/JsonConfigComponent/wrapper/Dialogs/Confirm.js.map +1 -0
  232. package/Components/JsonConfigComponent/wrapper/Dialogs/Cron.d.ts +2 -0
  233. package/Components/JsonConfigComponent/wrapper/Dialogs/Cron.js +10 -0
  234. package/Components/JsonConfigComponent/wrapper/Dialogs/Cron.js.map +1 -0
  235. package/Components/JsonConfigComponent/wrapper/Dialogs/Error.d.ts +2 -0
  236. package/Components/JsonConfigComponent/wrapper/Dialogs/Error.js +10 -0
  237. package/Components/JsonConfigComponent/wrapper/Dialogs/Error.js.map +1 -0
  238. package/Components/JsonConfigComponent/wrapper/Dialogs/Message.d.ts +2 -0
  239. package/Components/JsonConfigComponent/wrapper/Dialogs/Message.js +10 -0
  240. package/Components/JsonConfigComponent/wrapper/Dialogs/Message.js.map +1 -0
  241. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectFile.d.ts +2 -0
  242. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectFile.js +10 -0
  243. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectFile.js.map +1 -0
  244. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectID.d.ts +2 -0
  245. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectID.js +10 -0
  246. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectID.js.map +1 -0
  247. package/Components/JsonConfigComponent/wrapper/i18n.d.ts +2 -0
  248. package/Components/JsonConfigComponent/wrapper/i18n.js +10 -0
  249. package/Components/JsonConfigComponent/wrapper/i18n.js.map +1 -0
  250. package/Components/JsonConfigComponent/wrapper/icons/IconCopy.d.ts +2 -0
  251. package/Components/JsonConfigComponent/wrapper/icons/IconCopy.js +10 -0
  252. package/Components/JsonConfigComponent/wrapper/icons/IconCopy.js.map +1 -0
  253. package/Components/Loader.js +223 -223
  254. package/Components/Loader.js.map +1 -0
  255. package/Components/Loaders/PT.css +108 -108
  256. package/Components/Loaders/PT.js +103 -103
  257. package/Components/Loaders/PT.js.map +1 -0
  258. package/Components/Loaders/Vendor.css +13 -13
  259. package/Components/Loaders/Vendor.js +7 -7
  260. package/Components/Loaders/Vendor.js.map +1 -0
  261. package/Components/Logo.js.map +1 -0
  262. package/Components/MDUtils.js.map +1 -0
  263. package/Components/ObjectBrowser.js +344 -344
  264. package/Components/ObjectBrowser.js.map +1 -1
  265. package/Components/Router.js.map +1 -0
  266. package/Components/SaveCloseButtons.js.map +1 -0
  267. package/Components/Schedule.js.map +1 -0
  268. package/Components/SelectWithIcon.js.map +1 -0
  269. package/Components/SimpleCron/cron2text.js.map +1 -0
  270. package/Components/SimpleCron/cronText.js.map +1 -0
  271. package/Components/SimpleCron/index.js.map +1 -0
  272. package/Components/SimpleCron/jquery.cron.locale.js.map +1 -0
  273. package/Components/TabContainer.js.map +1 -0
  274. package/Components/TabContent.js.map +1 -0
  275. package/Components/TabHeader.js.map +1 -0
  276. package/Components/TableResize.js +5 -5
  277. package/Components/TableResize.js.map +1 -1
  278. package/Components/TextWithIcon.js.map +1 -0
  279. package/Components/ToggleThemeMenu.js.map +1 -0
  280. package/Components/TreeTable.js +70 -70
  281. package/Components/TreeTable.js.map +1 -1
  282. package/Components/UploadImage.js +305 -305
  283. package/Components/UploadImage.js.map +1 -0
  284. package/Components/Utils.js.map +1 -0
  285. package/Components/copy-to-clipboard.d.ts +13 -0
  286. package/Components/copy-to-clipboard.js +156 -0
  287. package/Components/copy-to-clipboard.js.map +1 -0
  288. package/Components/loader.css +221 -221
  289. package/Components/types.d.ts +82 -82
  290. package/Components/withWidth.js.map +1 -1
  291. package/Connection.js.map +1 -1
  292. package/Dialogs/ComplexCron.js.map +1 -0
  293. package/Dialogs/Confirm.js.map +1 -0
  294. package/Dialogs/Cron.js.map +1 -0
  295. package/Dialogs/Error.js.map +1 -0
  296. package/Dialogs/Message.js.map +1 -0
  297. package/Dialogs/SelectFile.js.map +1 -0
  298. package/Dialogs/SelectID.js.map +1 -0
  299. package/Dialogs/SimpleCron.js.map +1 -0
  300. package/Dialogs/TextInput.js.map +1 -0
  301. package/GenericApp.d.ts +2 -2
  302. package/GenericApp.js +49 -49
  303. package/GenericApp.js.map +1 -0
  304. package/LICENSE +22 -22
  305. package/LegacyConnection.d.ts +1 -1
  306. package/LegacyConnection.js +1 -0
  307. package/LegacyConnection.js.map +1 -0
  308. package/Prompt.js +7 -7
  309. package/Prompt.js.map +1 -0
  310. package/README.md +1101 -1101
  311. package/Theme.js.map +1 -0
  312. package/assets/devices/Alarm Systems.svg +18 -18
  313. package/assets/devices/Amplifier.svg +21 -21
  314. package/assets/devices/Awnings.svg +4 -4
  315. package/assets/devices/Battery Status.svg +4 -4
  316. package/assets/devices/Ceiling Spotlights.svg +15 -15
  317. package/assets/devices/Chandelier.svg +6 -6
  318. package/assets/devices/Climate.svg +11 -11
  319. package/assets/devices/Coffee Makers.svg +5 -5
  320. package/assets/devices/Cold Water.svg +31 -31
  321. package/assets/devices/Computer.svg +21 -21
  322. package/assets/devices/Consumption.svg +7 -7
  323. package/assets/devices/Curtains.svg +43 -43
  324. package/assets/devices/Dishwashers.svg +11 -11
  325. package/assets/devices/Doors.svg +5 -5
  326. package/assets/devices/Doorstep.svg +35 -35
  327. package/assets/devices/Dryer.svg +13 -13
  328. package/assets/devices/Fan.svg +20 -20
  329. package/assets/devices/Floor Lamps.svg +4 -4
  330. package/assets/devices/Garage Doors.svg +9 -9
  331. package/assets/devices/Gates.svg +32 -32
  332. package/assets/devices/Hairdryer.svg +23 -23
  333. package/assets/devices/Handle.svg +6 -6
  334. package/assets/devices/Hanging Lamps.svg +8 -8
  335. package/assets/devices/Heater.svg +44 -44
  336. package/assets/devices/Hoods.svg +11 -11
  337. package/assets/devices/Hot Water.svg +9 -9
  338. package/assets/devices/Humidity.svg +41 -41
  339. package/assets/devices/Iron.svg +4 -4
  340. package/assets/devices/Irrigation.svg +22 -22
  341. package/assets/devices/Led Strip.svg +30 -30
  342. package/assets/devices/Light.svg +29 -29
  343. package/assets/devices/Lightings.svg +46 -46
  344. package/assets/devices/Lock.svg +19 -19
  345. package/assets/devices/Louvre.svg +6 -6
  346. package/assets/devices/Mowing Machine.svg +8 -8
  347. package/assets/devices/Music.svg +12 -12
  348. package/assets/devices/Outdoor Blinds.svg +6 -6
  349. package/assets/devices/People.svg +19 -19
  350. package/assets/devices/Pool.svg +7 -7
  351. package/assets/devices/Power Consumption.svg +12 -12
  352. package/assets/devices/Printer.svg +9 -9
  353. package/assets/devices/Pump.svg +9 -9
  354. package/assets/devices/Receiver.svg +18 -18
  355. package/assets/devices/Sconces.svg +9 -9
  356. package/assets/devices/Security.svg +34 -34
  357. package/assets/devices/Shading.svg +4 -4
  358. package/assets/devices/Shutters.svg +10 -10
  359. package/assets/devices/SmokeDetector.svg +12 -12
  360. package/assets/devices/Sockets.svg +13 -13
  361. package/assets/devices/Speaker.svg +35 -35
  362. package/assets/devices/Stove.svg +11 -11
  363. package/assets/devices/Table Lamps.svg +11 -11
  364. package/assets/devices/Temperature Sensors.svg +28 -28
  365. package/assets/devices/Tv.svg +7 -7
  366. package/assets/devices/Vacuum Cleaner.svg +15 -15
  367. package/assets/devices/Ventilation.svg +12 -12
  368. package/assets/devices/Washing Machines.svg +15 -15
  369. package/assets/devices/Water Consumption.svg +5 -5
  370. package/assets/devices/Water Heater.svg +8 -8
  371. package/assets/devices/Water.svg +40 -40
  372. package/assets/devices/Weather.svg +28 -28
  373. package/assets/devices/Window.svg +7 -7
  374. package/assets/devices/list.json +993 -993
  375. package/assets/devices/names.txt +62 -62
  376. package/assets/devices/parseNames.js +34 -34
  377. package/assets/lamp_ceiling.svg +8 -8
  378. package/assets/lamp_table.svg +7 -7
  379. package/assets/no_icon.svg +9 -9
  380. package/assets/rooms/Anteroom.svg +52 -52
  381. package/assets/rooms/Attic.svg +21 -21
  382. package/assets/rooms/Balcony.svg +12 -12
  383. package/assets/rooms/Barn.svg +5 -5
  384. package/assets/rooms/Basement.svg +4 -4
  385. package/assets/rooms/Bathroom.svg +38 -38
  386. package/assets/rooms/Bedroom.svg +5 -5
  387. package/assets/rooms/Boiler Room.svg +12 -12
  388. package/assets/rooms/Carport.svg +17 -17
  389. package/assets/rooms/Cellar.svg +89 -89
  390. package/assets/rooms/Chamber.svg +9 -9
  391. package/assets/rooms/Corridor.svg +52 -52
  392. package/assets/rooms/Dining Area.svg +37 -37
  393. package/assets/rooms/Dining Room.svg +37 -37
  394. package/assets/rooms/Dining.svg +37 -37
  395. package/assets/rooms/Dressing Room.svg +4 -4
  396. package/assets/rooms/Driveway.svg +14 -14
  397. package/assets/rooms/Entrance.svg +44 -44
  398. package/assets/rooms/Equipment Room.svg +14 -14
  399. package/assets/rooms/Front Yard.svg +64 -64
  400. package/assets/rooms/Gallery.svg +13 -13
  401. package/assets/rooms/Garage.svg +20 -20
  402. package/assets/rooms/Garden.svg +12 -12
  403. package/assets/rooms/Ground Floor.svg +95 -95
  404. package/assets/rooms/Guest Bathroom.svg +32 -32
  405. package/assets/rooms/Guest Room.svg +5 -5
  406. package/assets/rooms/Gym.svg +4 -4
  407. package/assets/rooms/Hall.svg +19 -19
  408. package/assets/rooms/Home Theater.svg +7 -7
  409. package/assets/rooms/Kitchen.svg +17 -17
  410. package/assets/rooms/Laundry Room.svg +11 -11
  411. package/assets/rooms/Living Area.svg +10 -10
  412. package/assets/rooms/Living Room.svg +10 -10
  413. package/assets/rooms/Locker Room.svg +16 -16
  414. package/assets/rooms/Nursery.svg +4 -4
  415. package/assets/rooms/Office.svg +8 -8
  416. package/assets/rooms/Outdoors.svg +7 -7
  417. package/assets/rooms/Playroom.svg +5 -5
  418. package/assets/rooms/Pool.svg +7 -7
  419. package/assets/rooms/Rear Wall.svg +30 -30
  420. package/assets/rooms/Second Floor.svg +95 -95
  421. package/assets/rooms/Shed.svg +16 -16
  422. package/assets/rooms/Sleeping Area.svg +22 -22
  423. package/assets/rooms/Stairway.svg +4 -4
  424. package/assets/rooms/Stairwell.svg +15 -15
  425. package/assets/rooms/Storeroom.svg +4 -4
  426. package/assets/rooms/Summer House.svg +27 -27
  427. package/assets/rooms/Swimming Pool.svg +21 -21
  428. package/assets/rooms/Terrace.svg +6 -6
  429. package/assets/rooms/Toilet.svg +10 -10
  430. package/assets/rooms/Upstairs.svg +5 -5
  431. package/assets/rooms/Wardrobe.svg +60 -60
  432. package/assets/rooms/Washroom.svg +19 -19
  433. package/assets/rooms/Wc.svg +10 -10
  434. package/assets/rooms/Windscreen.svg +60 -60
  435. package/assets/rooms/Workshop.svg +22 -22
  436. package/assets/rooms/Workspace.svg +8 -8
  437. package/assets/rooms/list.json +945 -945
  438. package/assets/rooms/names.txt +59 -59
  439. package/assets/rooms/parseNames.js +34 -34
  440. package/craco-module-federation.js +69 -69
  441. package/i18n.js.map +1 -0
  442. package/icons/IconAdapter.js.map +1 -1
  443. package/icons/IconAlias.js.map +1 -1
  444. package/icons/IconChannel.js.map +1 -1
  445. package/icons/IconClearFilter.js.map +1 -1
  446. package/icons/IconClosed.js.map +1 -1
  447. package/icons/IconCopy.js +8 -8
  448. package/icons/IconCopy.js.map +1 -1
  449. package/icons/IconDevice.js.map +1 -1
  450. package/icons/IconDocument.js.map +1 -1
  451. package/icons/IconDocumentReadOnly.js.map +1 -1
  452. package/icons/IconExpert.js.map +1 -0
  453. package/icons/IconFx.js +1 -1
  454. package/icons/IconFx.js.map +1 -1
  455. package/icons/IconInstance.js.map +1 -1
  456. package/icons/IconLogout.js +9 -9
  457. package/icons/IconLogout.js.map +1 -1
  458. package/icons/IconNoIcon.js +8 -8
  459. package/icons/IconNoIcon.js.map +1 -1
  460. package/icons/IconOpen.js.map +1 -1
  461. package/icons/IconState.js.map +1 -1
  462. package/index.css +54 -54
  463. package/package.json +2 -2
  464. package/types.d.ts +94 -94
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.js","names":["_react","_interopRequireDefault","require","_copyToClipboard","_i18n","NAMESPACE","days","months","QUALITY_BITS","SIGNATURES","JVBERi0","R0lGODdh","R0lGODlh","iVBORw0KGgo","PHN2Zw","Qk1","AAABAA","Utils","_classCallCheck2","_createClass2","key","value","CapitalWords","name","split","filter","item","map","word","toUpperCase","substring","toLowerCase","join","formatSeconds","seconds","days_","Math","floor","hours","concat","minutes","text","I18n","t","getObjectName","objects","id","settings","options","isDesc","attr","language","common","window","sysLang","_typeof2","en","desc","de","ru","toString","replace","pos","lastIndexOf","trim","getObjectNameFromObj","obj","noTrim","_id","getSettingsOrder","forEnumId","Object","prototype","hasOwnProperty","call","custom","user","subOrder","JSON","parse","stringify","order","getSettingsCustomURLs","subURLs","URLs","reorder","list","source","dest","result","Array","from","_result$splice","splice","_result$splice2","_slicedToArray2","removed","getSettings","defaultEnabling","_obj","enabled","undefined","useCustom","icon","color","setSettings","s","useCommon","getIcon","style","length","createElement","startsWith","alt","src","prefix","getObjectIcon","parts","location","pathname","match","splitCamelCase","isUseBright","defaultValue","slice","r","g","b","rgb","parseInt","getTimeString","parseFloat","Number","isNaN","secs","getWindDirection","angle","padding","num","setDataFormat","format","dateFormat","indexOf","date2string","now","m","a","year","find","y","day","mm","Date","abs","getTime","date","getDay","getDate","getMonth","renderTextWithA","start","index","push","href","target","rel","title","getSmartName","states","instanceId","noCommon","_states$id$common","_states$common","smartName","getSmartNameFromObj","_obj$common","enableSmartName","removeSmartName","updateSmartName","newSmartName","byON","smartType","getLanguage","nnn","_smartName","role","includes","empty","nl","pl","it","fr","pt","es","uk","disableSmartName","copyToClipboard","e","stopPropagation","preventDefault","copy","getFileExtension","fileName","formatBytes","bytes","units","u","toFixed","getInvertedColor","themeType","invert","invertedColor","invertColor","hex","bw","padStart","alfa","console","warn","color2rgb","rgb2lab","pow","x","z","colorDistance","color1","color2","lab1","lab2","dltL","dltA","dltB","c1","sqrt","c2","dltC","dltH","sc","sh","dltLKlsl","dltCkcsc","dltHkhsh","i","_toVal","mix","str","isArray","k","clsx","tmp","arguments","getThemeName","themeName","vendorPrefix","_localStorage","localStorage","getItem","matchMedia","matches","getThemeType","setThemeName","setItem","toggleTheme","themes","getThemeNames","newTheme","parseQuery","query","forEach","part","decodeURIComponent","f","getParentId","p","pop","formatDate","dateObj","dd","getFullYear","v","getHours","getMinutes","getSeconds","getMilliseconds","formatTime","round","d","h","MDtext2link","openLink","url","open","MDgetTitle","extractHeader","header","body","lines","MDextractHeader","attrs","_header","line","pos_","MDremoveDocsify","doc","generateFile","filename","json","el","document","setAttribute","encodeURIComponent","display","appendChild","click","removeChild","quality2text","quality","clone","object","getStates","_obj$common2","ex","error","type","getSvg","fetch","then","response","blob","Promise","resolve","reader","FileReader","onload","readAsDataURL","detectMimeType","base64","signature","keys","isStableRepository","activeRepo","isStringInteger","isValidDate","_defineProperty2","_default","exports"],"sources":["Utils.js"],"sourcesContent":["/**\r\n * Copyright 2018-2023 Denis Haev <dogafox@gmail.com>\r\n *\r\n * MIT License\r\n *\r\n **/\r\nimport React from 'react';\r\nimport copy from './copy-to-clipboard';\r\nimport I18n from '../i18n';\r\n\r\nconst NAMESPACE = 'material';\r\nconst days = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\r\nconst months = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\r\nconst QUALITY_BITS = {\r\n 0x00: '0x00 - good',\r\n\r\n 0x01: '0x01 - general problem',\r\n 0x02: '0x02 - no connection problem',\r\n\r\n 0x10: '0x10 - substitute value from controller',\r\n 0x20: '0x20 - substitute initial value',\r\n 0x40: '0x40 - substitute value from device or instance',\r\n 0x80: '0x80 - substitute value from sensor',\r\n\r\n 0x11: '0x11 - general problem by instance',\r\n 0x41: '0x41 - general problem by device',\r\n 0x81: '0x81 - general problem by sensor',\r\n\r\n 0x12: '0x12 - instance not connected',\r\n 0x42: '0x42 - device not connected',\r\n 0x82: '0x82 - sensor not connected',\r\n\r\n 0x44: '0x44 - device reports error',\r\n 0x84: '0x84 - sensor reports error',\r\n};\r\nconst SIGNATURES = {\r\n JVBERi0: 'pdf',\r\n R0lGODdh: 'gif',\r\n R0lGODlh: 'gif',\r\n iVBORw0KGgo: 'png',\r\n '/9j/': 'jpg',\r\n PHN2Zw: 'svg',\r\n Qk1: 'bmp',\r\n AAABAA: 'ico', // 00 00 01 00 according to https://en.wikipedia.org/wiki/List_of_file_signatures\r\n};\r\n\r\nclass Utils {\r\n static namespace = NAMESPACE;\r\n\r\n static INSTANCES = 'instances';\r\n\r\n static dateFormat = ['DD', 'MM'];\r\n\r\n static FORBIDDEN_CHARS = /[^._\\-/ :!#$%&()+=@^{}|~\\p{Ll}\\p{Lu}\\p{Nd}]+/gu;\r\n\r\n /**\r\n * Capitalize words.\r\n * @param {string | undefined} name\r\n * @returns {string}\r\n */\r\n static CapitalWords(name) {\r\n return (name || '').split(/[\\s_]/)\r\n .filter(item => item)\r\n .map(word => (word ? word[0].toUpperCase() + word.substring(1).toLowerCase() : ''))\r\n .join(' ');\r\n }\r\n\r\n static formatSeconds(seconds) {\r\n const days_ = Math.floor(seconds / (3600 * 24));\r\n seconds %= 3600 * 24;\r\n let hours = Math.floor(seconds / 3600);\r\n if (hours < 10) {\r\n hours = `0${hours}`;\r\n }\r\n seconds %= 3600;\r\n let minutes = Math.floor(seconds / 60);\r\n if (minutes < 10) {\r\n minutes = `0${minutes}`;\r\n }\r\n seconds %= 60;\r\n seconds = Math.floor(seconds);\r\n if (seconds < 10) {\r\n seconds = `0${seconds}`;\r\n }\r\n let text = '';\r\n if (days_) {\r\n text += `${days_} ${I18n.t('ra_daysShortText')} `;\r\n }\r\n text += `${hours}:${minutes}:${seconds}`;\r\n\r\n return text;\r\n }\r\n\r\n /**\r\n * Get the name of the object by id from the name or description.\r\n * @param {Record<string, ioBroker.Object>} objects\r\n * @param {string} id\r\n * @param {{ name: any; } | ioBroker.Languages | null} settings\r\n * @param {{ language?: ioBroker.Languages; }} options\r\n * @param {boolean} [isDesc] Set to true to get the description.\r\n * @returns {string}\r\n */\r\n static getObjectName(objects, id, settings, options, isDesc) {\r\n const item = objects[id];\r\n let text;\r\n const attr = isDesc ? 'desc' : 'name';\r\n\r\n if (typeof settings === 'string' && !options) {\r\n options = { language: settings };\r\n settings = null;\r\n }\r\n\r\n options = options || {};\r\n if (!options.language) {\r\n options.language = (objects['system.config'] && objects['system.config'].common && objects['system.config'].common.language) || window.sysLang || 'en';\r\n }\r\n if (settings && settings.name) {\r\n text = settings.name;\r\n if (typeof text === 'object') {\r\n text = text[options.language] || text.en;\r\n }\r\n } else if (item && item.common && item.common[attr]) {\r\n text = item.common[attr];\r\n if (attr !== 'desc' && !text && item.common.desc) {\r\n text = item.common.desc;\r\n }\r\n if (typeof text === 'object') {\r\n text = text[options.language] || text.en || text.de || text.ru || '';\r\n }\r\n text = (text || '').toString().replace(/[_.]/g, ' ');\r\n\r\n if (text === text.toUpperCase()) {\r\n text = text[0] + text.substring(1).toLowerCase();\r\n }\r\n } else {\r\n const pos = id.lastIndexOf('.');\r\n text = id.substring(pos + 1).replace(/[_.]/g, ' ');\r\n text = Utils.CapitalWords(text);\r\n }\r\n\r\n return text.trim();\r\n }\r\n\r\n /**\r\n * Get the name of the object from the name or description.\r\n * @param {ioBroker.PartialObject} obj\r\n * @param {{ name: any; } | ioBroker.Languages | null } settings or language\r\n * @param {{ language?: ioBroker.Languages; } } options\r\n * @param {boolean} [isDesc] Set to true to get the description.\r\n * @param {boolean} [noTrim] Allow to use spaces in name (by edit)\r\n * @returns {string}\r\n */\r\n static getObjectNameFromObj(obj, settings, options, isDesc, noTrim) {\r\n const item = obj;\r\n let text = (obj && obj._id) || '';\r\n const attr = isDesc ? 'desc' : 'name';\r\n\r\n if (typeof settings === 'string' && !options) {\r\n options = { language: settings };\r\n settings = null;\r\n }\r\n\r\n options = options || {};\r\n\r\n if (settings && settings.name) {\r\n text = settings.name;\r\n if (typeof text === 'object') {\r\n text = text[options.language] || text.en;\r\n }\r\n } else if (item && item.common && item.common[attr]) {\r\n text = item.common[attr];\r\n if (attr !== 'desc' && !text && item.common.desc) {\r\n text = item.common.desc;\r\n }\r\n if (typeof text === 'object') {\r\n text = text[options.language] || text.en;\r\n }\r\n text = (text || '').toString().replace(/[_.]/g, ' ');\r\n\r\n if (text === text.toUpperCase()) {\r\n text = text[0] + text.substring(1).toLowerCase();\r\n }\r\n }\r\n return noTrim ? text : text.trim();\r\n }\r\n\r\n /**\r\n * @param {ioBroker.PartialObject | ioBroker.ObjectCommon} obj\r\n * @param {string} forEnumId\r\n * @param {{ user: string; }} options\r\n * @returns {string | null}\r\n */\r\n static getSettingsOrder(obj, forEnumId, options) {\r\n if (obj && Object.prototype.hasOwnProperty.call(obj, 'common')) {\r\n obj = obj.common;\r\n }\r\n let settings;\r\n if (obj && obj.custom) {\r\n settings = (obj.custom || {})[NAMESPACE];\r\n const user = options.user || 'admin';\r\n if (settings && settings[user]) {\r\n if (forEnumId) {\r\n if (settings[user].subOrder && settings[user].subOrder[forEnumId]) {\r\n return JSON.parse(JSON.stringify(settings[user].subOrder[forEnumId]));\r\n }\r\n } else if (settings[user].order) {\r\n return JSON.parse(JSON.stringify(settings[user].order));\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * @param {ioBroker.PartialObject | ioBroker.ObjectCommon} obj\r\n * @param {string} forEnumId\r\n * @param {{ user: string; }} options\r\n */\r\n static getSettingsCustomURLs(obj, forEnumId, options) {\r\n if (obj && Object.prototype.hasOwnProperty.call(obj, 'common')) {\r\n obj = obj.common;\r\n }\r\n let settings;\r\n if (obj && obj.custom) {\r\n settings = (obj.custom || {})[NAMESPACE];\r\n const user = options.user || 'admin';\r\n if (settings && settings[user]) {\r\n if (forEnumId) {\r\n if (settings[user].subURLs && settings[user].subURLs[forEnumId]) {\r\n return JSON.parse(JSON.stringify(settings[user].subURLs[forEnumId]));\r\n }\r\n } else if (settings[user].URLs) {\r\n return JSON.parse(JSON.stringify(settings[user].URLs));\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Reorder the array items in list between source and dest.\r\n * @param {Iterable<any> | ArrayLike<any>} list\r\n * @param {number} source\r\n * @param {number} dest\r\n */\r\n static reorder(list, source, dest) {\r\n const result = Array.from(list);\r\n const [removed] = result.splice(source, 1);\r\n result.splice(dest, 0, removed);\r\n return result;\r\n }\r\n\r\n /**\r\n * @param {any} obj\r\n * @param {{ id: any; user: any; name: any; icon: any; color: any; language: ioBroker.Languages; }} options\r\n * @param {boolean} [defaultEnabling]\r\n */\r\n static getSettings(obj, options, defaultEnabling) {\r\n let settings;\r\n const id = (obj && obj._id) || (options && options.id);\r\n if (obj && Object.prototype.hasOwnProperty.call(obj, 'common')) {\r\n obj = obj.common;\r\n }\r\n if (obj?.custom) {\r\n settings = obj.custom;\r\n settings = settings[NAMESPACE] && settings[NAMESPACE][options.user || 'admin'] ? JSON.parse(JSON.stringify(settings[NAMESPACE][options.user || 'admin'])) : { enabled: true };\r\n } else {\r\n settings = { enabled: defaultEnabling === undefined ? true : defaultEnabling, useCustom: false };\r\n }\r\n\r\n if (!Object.prototype.hasOwnProperty.call(settings, 'enabled')) {\r\n settings.enabled = defaultEnabling === undefined ? true : defaultEnabling;\r\n }\r\n\r\n // if (false && settings.useCommon) {\r\n // if (obj.color) settings.color = obj.color;\r\n // if (obj.icon) settings.icon = obj.icon;\r\n // if (obj.name) settings.name = obj.name;\r\n // } else {\r\n if (options) {\r\n if (!settings.name && options.name) settings.name = options.name;\r\n if (!settings.icon && options.icon) settings.icon = options.icon;\r\n if (!settings.color && options.color) settings.color = options.color;\r\n }\r\n\r\n if (obj) {\r\n if (!settings.color && obj.color) settings.color = obj.color;\r\n if (!settings.icon && obj.icon) settings.icon = obj.icon;\r\n if (!settings.name && obj.name) settings.name = obj.name;\r\n }\r\n // }\r\n\r\n if (typeof settings.name === 'object') {\r\n settings.name = settings.name[options.language] || settings.name.en;\r\n\r\n settings.name = (settings.name || '').toString().replace(/_/g, ' ');\r\n\r\n if (settings.name === settings.name.toUpperCase()) {\r\n settings.name = settings.name[0] + settings.name.substring(1).toLowerCase();\r\n }\r\n }\r\n if (!settings.name && id) {\r\n const pos = id.lastIndexOf('.');\r\n settings.name = id.substring(pos + 1).replace(/[_.]/g, ' ');\r\n settings.name = (settings.name || '').toString().replace(/_/g, ' ');\r\n settings.name = Utils.CapitalWords(settings.name);\r\n }\r\n\r\n return settings;\r\n }\r\n\r\n /**\r\n * @param {any} obj\r\n * @param {any} settings\r\n * @param {{ user: any; language: ioBroker.Languages; }} options\r\n */\r\n static setSettings(obj, settings, options) {\r\n if (obj) {\r\n obj.common = obj.common || {};\r\n obj.common.custom = obj.common.custom || {};\r\n obj.common.custom[NAMESPACE] = obj.common.custom[NAMESPACE] || {};\r\n obj.common.custom[NAMESPACE][options.user || 'admin'] = settings;\r\n const s = obj.common.custom[NAMESPACE][options.user || 'admin'];\r\n if (s.useCommon) {\r\n if (s.color !== undefined) {\r\n obj.common.color = s.color;\r\n delete s.color;\r\n }\r\n if (s.icon !== undefined) {\r\n obj.common.icon = s.icon;\r\n delete s.icon;\r\n }\r\n if (s.name !== undefined) {\r\n if (typeof obj.common.name !== 'object') {\r\n obj.common.name = {};\r\n obj.common.name[options.language] = s.name;\r\n } else {\r\n obj.common.name[options.language] = s.name;\r\n }\r\n delete s.name;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Get the icon for the given settings.\r\n * @param {{ icon: string | undefined; name: string | undefined; prefix: string | undefined}} settings\r\n * @param {any} style\r\n * @returns {JSX.Element | null}\r\n */\r\n static getIcon(settings, style) {\r\n if (settings && settings.icon) {\r\n // If UTF-8 icon\r\n if (settings.icon.length <= 2) {\r\n return <span style={style || {}}>{settings.icon}</span>;\r\n }\r\n if (settings.icon.startsWith('data:image')) {\r\n return <img alt={settings.name} src={settings.icon} style={style || {}} />;\r\n }\r\n // maybe later some changes for a second type\r\n return <img alt={settings.name} src={(settings.prefix || '') + settings.icon} style={style || {}} />;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Get the icon for the given object.\r\n * @param {string} id\r\n * @param {{ common: { icon: any; }; }} obj\r\n * @returns {string | null}\r\n */\r\n static getObjectIcon(id, obj) {\r\n // If id is Object\r\n if (typeof id === 'object') {\r\n obj = id;\r\n id = obj._id;\r\n }\r\n\r\n if (obj && obj.common && obj.common.icon) {\r\n let icon = obj.common.icon;\r\n // If UTF-8 icon\r\n if (typeof icon === 'string' && icon.length <= 2) {\r\n return icon;\r\n }\r\n if (icon.startsWith('data:image')) {\r\n return icon;\r\n }\r\n\r\n const parts = id.split('.');\r\n if (parts[0] === 'system') {\r\n icon = `adapter/${parts[2]}${icon.startsWith('/') ? '' : '/'}${icon}`;\r\n } else {\r\n icon = `adapter/${parts[0]}${icon.startsWith('/') ? '' : '/'}${icon}`;\r\n }\r\n\r\n if (window.location.pathname.match(/adapter\\/[^/]+\\/[^/]+\\.html/)) {\r\n icon = `../../${icon}`;\r\n } else if (window.location.pathname.match(/material\\/[.\\d]+/)) {\r\n icon = `../../${icon}`;\r\n } else if (window.location.pathname.match(/material\\//)) {\r\n icon = `../${icon}`;\r\n }\r\n return icon;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Splits CamelCase into words.\r\n * @param {string | undefined} text\r\n * @returns {string}\r\n */\r\n static splitCamelCase(text) {\r\n // if (false && text !== text.toUpperCase()) {\r\n // const words = text.split(/\\s+/);\r\n // for (let i = 0; i < words.length; i++) {\r\n // const word = words[i];\r\n // if (word.toLowerCase() !== word && word.toUpperCase() !== word) {\r\n // let z = 0;\r\n // const ww = [];\r\n // let start = 0;\r\n // while (z < word.length) {\r\n // if (word[z].match(/[A-ZÜÄÖА-Я]/)) {\r\n // ww.push(word.substring(start, z));\r\n // start = z;\r\n // }\r\n // z++;\r\n // }\r\n // if (start !== z) {\r\n // ww.push(word.substring(start, z));\r\n // }\r\n // for (let k = 0; k < ww.length; k++) {\r\n // words.splice(i + k, 0, ww[k]);\r\n // }\r\n // i += ww.length;\r\n // }\r\n // }\r\n //\r\n // return words.map(w => {\r\n // w = w.trim();\r\n // if (w) {\r\n // return w[0].toUpperCase() + w.substring(1).toLowerCase();\r\n // }\r\n // return '';\r\n // }).join(' ');\r\n // }\r\n return Utils.CapitalWords(text);\r\n }\r\n\r\n /**\r\n * Check if the given color is bright.\r\n * https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\r\n * @param {string | null | undefined} color\r\n * @param {boolean} [defaultValue]\r\n * @returns {boolean}\r\n */\r\n static isUseBright(color, defaultValue) {\r\n if (color === null || color === undefined || color === '') {\r\n return defaultValue === undefined ? true : defaultValue;\r\n }\r\n color = color.toString();\r\n if (color.startsWith('#')) {\r\n color = color.slice(1);\r\n }\r\n let r;\r\n let g;\r\n let b;\r\n\r\n const rgb = color.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\r\n if (rgb && rgb.length === 4) {\r\n r = parseInt(rgb[1], 10);\r\n g = parseInt(rgb[2], 10);\r\n b = parseInt(rgb[3], 10);\r\n } else {\r\n // convert 3-digit hex to 6-digits.\r\n if (color.length === 3) {\r\n color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];\r\n }\r\n // remove alfa channel\r\n if (color.length === 8) {\r\n color = color.substring(0, 6);\r\n } else if (color.length !== 6) {\r\n return false;\r\n }\r\n\r\n r = parseInt(color.slice(0, 2), 16);\r\n g = parseInt(color.slice(2, 4), 16);\r\n b = parseInt(color.slice(4, 6), 16);\r\n }\r\n\r\n // http://stackoverflow.com/a/3943023/112731\r\n return (r * 0.299 + g * 0.587 + b * 0.114) <= 186;\r\n }\r\n\r\n /**\r\n * Get the time string in the format 00:00.\r\n * @param {string | number} seconds\r\n */\r\n static getTimeString(seconds) {\r\n seconds = parseFloat(seconds);\r\n if (Number.isNaN(seconds)) {\r\n return '--:--';\r\n }\r\n const hours = Math.floor(seconds / 3600);\r\n let minutes = Math.floor((seconds % 3600) / 60);\r\n let secs = seconds % 60;\r\n if (hours) {\r\n if (minutes < 10) {\r\n minutes = `0${minutes}`;\r\n }\r\n if (secs < 10) {\r\n secs = `0${secs}`;\r\n }\r\n return `${hours}:${minutes}:${secs}`;\r\n }\r\n\r\n if (secs < 10) {\r\n secs = `0${secs}`;\r\n }\r\n return `${minutes}:${secs}`;\r\n }\r\n\r\n /**\r\n * Gets the wind direction with the given angle (degrees).\r\n * @param {number} angle in degrees.\r\n * @returns {string | undefined}\r\n */\r\n static getWindDirection(angle) {\r\n if (angle >= 0 && angle < 11.25) {\r\n return 'N';\r\n }\r\n if (angle >= 11.25 && angle < 33.75) {\r\n return 'NNE';\r\n }\r\n if (angle >= 33.75 && angle < 56.25) {\r\n return 'NE';\r\n }\r\n if (angle >= 56.25 && angle < 78.75) {\r\n return 'ENE';\r\n }\r\n if (angle >= 78.75 && angle < 101.25) {\r\n return 'E';\r\n }\r\n if (angle >= 101.25 && angle < 123.75) {\r\n return 'ESE';\r\n }\r\n if (angle >= 123.75 && angle < 146.25) {\r\n return 'SE';\r\n }\r\n if (angle >= 146.25 && angle < 168.75) {\r\n return 'SSE';\r\n }\r\n if (angle >= 168.75 && angle < 191.25) {\r\n return 'S';\r\n }\r\n if (angle >= 191.25 && angle < 213.75) {\r\n return 'SSW';\r\n }\r\n if (angle >= 213.75 && angle < 236.25) {\r\n return 'SW';\r\n }\r\n if (angle >= 236.25 && angle < 258.75) {\r\n return 'WSW';\r\n }\r\n if (angle >= 258.75 && angle < 281.25) {\r\n return 'W';\r\n }\r\n if (angle >= 281.25 && angle < 303.75) {\r\n return 'WNW';\r\n }\r\n if (angle >= 303.75 && angle < 326.25) {\r\n return 'NW';\r\n }\r\n if (angle >= 326.25 && angle < 348.75) {\r\n return 'NNW';\r\n }\r\n // if (angle >= 348.75) {\r\n return 'N';\r\n }\r\n\r\n /**\r\n * Pad the given number with a zero if it's not 2 digits long.\r\n * @param {string | number} num\r\n */\r\n static padding(num) {\r\n if (typeof num === 'string') {\r\n if (num.length < 2) {\r\n return `0${num}`;\r\n }\r\n return num;\r\n }\r\n if (num < 10) {\r\n return `0${num}`;\r\n }\r\n return num;\r\n }\r\n\r\n /**\r\n * Sets the date format.\r\n * @param {string} format\r\n */\r\n static setDataFormat(format) {\r\n if (format) {\r\n Utils.dateFormat = format.toUpperCase().split(/[.-/]/);\r\n Utils.dateFormat.splice(Utils.dateFormat.indexOf('YYYY'), 1);\r\n }\r\n }\r\n\r\n /**\r\n * Converts the date to a string.\r\n * @param {string | number | Date} now\r\n * @returns {string}\r\n */\r\n static date2string(now) {\r\n if (typeof now === 'string') {\r\n now = now.trim();\r\n if (!now) return '';\r\n // only letters\r\n if (now.match(/^[\\w\\s]+$/)) {\r\n // Day of the week\r\n return now;\r\n }\r\n const m = now.match(/(\\d{1,4})[-./](\\d{1,2})[-./](\\d{1,4})/);\r\n if (m) {\r\n const a = [parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10)];\r\n const year = a.find(y => y > 31);\r\n a.splice(a.indexOf(year), 1);\r\n const day = a.find(mm => mm > 12);\r\n if (day) {\r\n a.splice(a.indexOf(day), 1);\r\n now = new Date(year, a[0] - 1, day);\r\n } else if (Utils.dateFormat[0][0] === 'M' && Utils.dateFormat[1][0] === 'D') {\r\n // MM DD\r\n now = new Date(year, a[0] - 1, a[1]);\r\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\r\n now = new Date(year, a[1] - 1, a[0]);\r\n }\r\n } else if (Utils.dateFormat[0][0] === 'D' && Utils.dateFormat[1][0] === 'M') {\r\n // DD MM\r\n now = new Date(year, a[1] - 1, a[0]);\r\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\r\n now = new Date(year, a[0] - 1, a[1]);\r\n }\r\n } else {\r\n now = new Date(now);\r\n }\r\n } else {\r\n now = new Date(now);\r\n }\r\n } else {\r\n now = new Date(now);\r\n }\r\n\r\n let date = I18n.t(`ra_dow_${days[now.getDay()]}`).replace('ra_dow_', '');\r\n date += `. ${now.getDate()} ${I18n.t(`ra_month_${months[now.getMonth()]}`).replace('ra_month_', '')}`;\r\n return date;\r\n }\r\n\r\n /**\r\n * Render a text as a link.\r\n * @param {string} text\r\n * @returns {string | JSX.Element[]}\r\n */\r\n static renderTextWithA(text) {\r\n let m = text.match(/<a [^<]+<\\/a>|<br\\s?\\/?>|<b>[^<]+<\\/b>|<i>[^<]+<\\/i>/);\r\n if (m) {\r\n const result = [];\r\n let key = 1;\r\n do {\r\n const start = text.substring(0, m.index);\r\n text = text.substring(m.index + m[0].length);\r\n start && result.push(<span key={`a${key++}`}>{start}</span>);\r\n\r\n if (m[0].startsWith('<b>')) {\r\n result.push(<b key={`a${key++}`}>{m[0].substring(3, m[0].length - 4)}</b>);\r\n } else if (m[0].startsWith('<i>')) {\r\n result.push(<i key={`a${key++}`}>{m[0].substring(3, m[0].length - 4)}</i>);\r\n } else if (m[0].startsWith('<br')) {\r\n result.push(<br key={`a${key++}`} />);\r\n } else {\r\n const href = m[0].match(/href=\"([^\"]+)\"/) || m[0].match(/href='([^']+)'/);\r\n const target = m[0].match(/target=\"([^\"]+)\"/) || m[0].match(/target='([^']+)'/);\r\n const rel = m[0].match(/rel=\"([^\"]+)\"/) || m[0].match(/rel='([^']+)'/);\r\n const title = m[0].match(/>([^<]*)</);\r\n\r\n // eslint-disable-next-line\r\n result.push(<a\r\n key={`a${key++}`}\r\n href={href ? href[1] : ''}\r\n target={target ? target[1] : '_blank'}\r\n rel={rel ? rel[1] : ''}\r\n style={{ color: 'inherit' }}\r\n >\r\n {title ? title[1] : ''}\r\n </a>);\r\n }\r\n\r\n m = text && text.match(/<a [^<]+<\\/a>|<br\\s?\\/?>|<b>[^<]+<\\/b>|<i>[^<]+<\\/i>/);\r\n if (!m) {\r\n text && result.push(<span key={`a${key++}`}>{text}</span>);\r\n }\r\n } while (m);\r\n\r\n return result;\r\n }\r\n\r\n return text;\r\n }\r\n\r\n /**\r\n * Get the smart name of the given state.\r\n * @param {Record<string, ioBroker.StateObject> | ioBroker.StateObject} states\r\n * @param {string} id\r\n * @param {string} instanceId\r\n * @param {boolean} [noCommon]\r\n */\r\n static getSmartName(states, id, instanceId, noCommon) {\r\n if (!id) {\r\n if (!noCommon) {\r\n if (!states.common) {\r\n return states.smartName;\r\n }\r\n if (states && !states.common) {\r\n return states.smartName;\r\n }\r\n return states.common.smartName;\r\n }\r\n if (states && !states.common) {\r\n return states.smartName;\r\n }\r\n return states?.common?.custom && states.common.custom[instanceId] ?\r\n states.common.custom[instanceId].smartName : undefined;\r\n }\r\n if (!noCommon) {\r\n return states[id].common.smartName;\r\n }\r\n\r\n return (states[id] &&\r\n states[id].common?.custom &&\r\n states[id].common.custom[instanceId]) ?\r\n states[id].common.custom[instanceId].smartName || null : null;\r\n }\r\n\r\n /**\r\n * Get the smart name from a state.\r\n * @param {ioBroker.StateObject} obj\r\n * @param {string} instanceId\r\n * @param {boolean} [noCommon]\r\n */\r\n static getSmartNameFromObj(obj, instanceId, noCommon) {\r\n if (!noCommon) {\r\n if (!obj.common) {\r\n return obj.smartName;\r\n }\r\n if (obj && !obj.common) {\r\n return obj.smartName;\r\n }\r\n return obj.common.smartName;\r\n }\r\n if (obj && !obj.common) {\r\n return obj.smartName;\r\n }\r\n\r\n return obj?.common?.custom && obj.common.custom[instanceId] ?\r\n obj.common.custom[instanceId].smartName : undefined;\r\n }\r\n\r\n /**\r\n * Enable smart name for a state.\r\n * @param {ioBroker.StateObject} obj\r\n * @param {string} instanceId\r\n * @param {boolean} [noCommon]\r\n */\r\n static enableSmartName(obj, instanceId, noCommon) {\r\n if (noCommon) {\r\n obj.common.custom = obj.common.custom || {};\r\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\r\n obj.common.custom[instanceId].smartName = {};\r\n } else {\r\n obj.common.smartName = {};\r\n }\r\n }\r\n\r\n /**\r\n * Completely remove smart name from a state.\r\n * @param {ioBroker.StateObject} obj\r\n * @param {string | number} instanceId\r\n * @param {boolean} [noCommon]\r\n */\r\n static removeSmartName(obj, instanceId, noCommon) {\r\n if (noCommon) {\r\n if (obj.common && obj.common.custom && obj.common.custom[instanceId]) {\r\n obj.common.custom[instanceId] = null;\r\n }\r\n } else {\r\n obj.common.smartName = null;\r\n }\r\n }\r\n\r\n /**\r\n * Update the smartname of a state.\r\n * @param {ioBroker.StateObject} obj\r\n * @param {string} newSmartName\r\n * @param {string | undefined} byON\r\n * @param {string | undefined} smartType\r\n * @param {string} instanceId\r\n * @param {boolean} [noCommon]\r\n */\r\n static updateSmartName(obj, newSmartName, byON, smartType, instanceId, noCommon) {\r\n const language = I18n.getLanguage();\r\n\r\n // convert the old format\r\n if (typeof obj.common.smartName === 'string') {\r\n const nnn = obj.common.smartName;\r\n obj.common.smartName = {};\r\n obj.common.smartName[language] = nnn;\r\n }\r\n\r\n // convert the old settings\r\n if (obj.native && obj.native.byON) {\r\n delete obj.native.byON;\r\n let _smartName = obj.common.smartName;\r\n\r\n if (!_smartName || typeof _smartName !== 'object') {\r\n _smartName = { en: _smartName };\r\n _smartName[language] = _smartName.en;\r\n }\r\n obj.common.smartName = _smartName;\r\n }\r\n if (smartType !== undefined) {\r\n if (noCommon) {\r\n obj.common.custom = obj.common.custom || {};\r\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\r\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\r\n if (!smartType) {\r\n delete obj.common.custom[instanceId].smartName.smartType;\r\n } else {\r\n obj.common.custom[instanceId].smartName.smartType = smartType;\r\n }\r\n } else {\r\n obj.common.smartName = obj.common.smartName || {};\r\n if (!smartType) {\r\n delete obj.common.smartName.smartType;\r\n } else {\r\n obj.common.smartName.smartType = smartType;\r\n }\r\n }\r\n }\r\n\r\n if (byON !== undefined) {\r\n if (noCommon) {\r\n obj.common.custom = obj.common.custom || {};\r\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\r\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\r\n obj.common.custom[instanceId].smartName.byON = byON;\r\n } else {\r\n obj.common.smartName = obj.common.smartName || {};\r\n obj.common.smartName.byON = byON;\r\n }\r\n }\r\n\r\n if (newSmartName !== undefined) {\r\n let smartName;\r\n if (noCommon) {\r\n obj.common.custom = obj.common.custom || {};\r\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\r\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\r\n smartName = obj.common.custom[instanceId].smartName;\r\n } else {\r\n obj.common.smartName = obj.common.smartName || {};\r\n smartName = obj.common.smartName;\r\n }\r\n smartName[language] = newSmartName;\r\n\r\n // If smart name deleted\r\n if (smartName && (!smartName[language] ||\r\n (smartName[language] === obj.common.name &&\r\n (!obj.common.role || obj.common.role.includes('button'))))) {\r\n delete smartName[language];\r\n let empty = true;\r\n // Check if the structure has any definitions\r\n for (const key in smartName) {\r\n if (Object.prototype.hasOwnProperty.call(smartName, key)) {\r\n empty = false;\r\n break;\r\n }\r\n }\r\n // If empty => delete smartName completely\r\n if (empty) {\r\n if (noCommon) {\r\n if (obj.common.custom[instanceId].smartName.byON === undefined) {\r\n delete obj.common.custom[instanceId];\r\n } else {\r\n delete obj.common.custom[instanceId].en;\r\n delete obj.common.custom[instanceId].de;\r\n delete obj.common.custom[instanceId].ru;\r\n delete obj.common.custom[instanceId].nl;\r\n delete obj.common.custom[instanceId].pl;\r\n delete obj.common.custom[instanceId].it;\r\n delete obj.common.custom[instanceId].fr;\r\n delete obj.common.custom[instanceId].pt;\r\n delete obj.common.custom[instanceId].es;\r\n delete obj.common.custom[instanceId].uk;\r\n delete obj.common.custom[instanceId]['zh-cn'];\r\n }\r\n } else if (obj.common.smartName.byON !== undefined) {\r\n delete obj.common.smartName.en;\r\n delete obj.common.smartName.de;\r\n delete obj.common.smartName.ru;\r\n delete obj.common.smartName.nl;\r\n delete obj.common.smartName.pl;\r\n delete obj.common.smartName.it;\r\n delete obj.common.smartName.fr;\r\n delete obj.common.smartName.pt;\r\n delete obj.common.smartName.es;\r\n delete obj.common.smartName.uk;\r\n delete obj.common.smartName['zh-cn'];\r\n } else {\r\n obj.common.smartName = null;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Disable the smart name of a state.\r\n * @param {ioBroker.StateObject} obj\r\n * @param {string} instanceId\r\n * @param {boolean} [noCommon]\r\n */\r\n static disableSmartName(obj, instanceId, noCommon) {\r\n if (noCommon) {\r\n obj.common.custom = obj.common.custom || {};\r\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\r\n obj.common.custom[instanceId].smartName = false;\r\n } else {\r\n obj.common.smartName = false;\r\n }\r\n }\r\n\r\n /**\r\n * Copy text to the clipboard.\r\n * @param {string} text\r\n * @param {Event} [e]\r\n */\r\n static copyToClipboard(text, e) {\r\n e && e.stopPropagation();\r\n e && e.preventDefault();\r\n return copy(text);\r\n }\r\n\r\n /**\r\n * Gets the extension of a file name.\r\n * @param {string | null} [fileName] the file name.\r\n * @returns {string | null} The extension in lower case.\r\n */\r\n static getFileExtension(fileName) {\r\n const pos = (fileName || '').lastIndexOf('.');\r\n if (pos !== -1) {\r\n return fileName.substring(pos + 1).toLowerCase();\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Format number of bytes as a string with B, KB, MB or GB.\r\n * The base for all calculations is 1024.\r\n * @param {number} bytes The number of bytes.\r\n * @returns {string} The formatted string (e.g. '723.5 KB')\r\n */\r\n static formatBytes(bytes) {\r\n if (Math.abs(bytes) < 1024) {\r\n return `${bytes} B`;\r\n }\r\n\r\n const units = ['KB', 'MB', 'GB'];\r\n // const units = ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];\r\n let u = -1;\r\n\r\n do {\r\n bytes /= 1024;\r\n ++u;\r\n } while (Math.abs(bytes) >= 1024 && u < units.length - 1);\r\n\r\n return `${bytes.toFixed(1)} ${units[u]}`;\r\n }\r\n\r\n /**\r\n * Invert the given color according to a theme type to get the inverted text color for background\r\n * @param {string} color Color in the format '#rrggbb' or '#rgb' (or without a hash)\r\n * @param {string} themeType theme type\r\n * @param {string} invert dark theme has light color in control or light theme has light color in control\r\n * @returns {string | undefined}\r\n */\r\n static getInvertedColor(color, themeType, invert) {\r\n if (!color) {\r\n return undefined;\r\n }\r\n const invertedColor = Utils.invertColor(color, true);\r\n if (invertedColor === '#FFFFFF' && (themeType === 'dark' || (invert && themeType === 'light'))) {\r\n return '#DDD';\r\n }\r\n if (invertedColor === '#000000' && (themeType === 'light' || (invert && themeType === 'dark'))) {\r\n return '#222';\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n // Big thanks to: https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\r\n /**\r\n * Invert the given color\r\n * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash)\r\n * @param {boolean} bw Set to black or white.\r\n * @returns {string}\r\n */\r\n static invertColor(hex, bw) {\r\n if (hex === undefined || hex === null || hex === '' || typeof hex !== 'string') {\r\n return '';\r\n }\r\n if (hex.startsWith('rgba')) {\r\n const m = hex.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([.\\d]+)\\)/);\r\n if (m) {\r\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\r\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\r\n parseInt(m[2], 10).toString(16).padStart(2, '0');\r\n }\r\n } else if (hex.startsWith('rgb')) {\r\n const m = hex.match(/rgb?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\r\n if (m) {\r\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\r\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\r\n parseInt(m[2], 10).toString(16).padStart(2, '0');\r\n }\r\n } else if (hex.startsWith('#')) {\r\n hex = hex.slice(1);\r\n }\r\n // convert 3-digit hex to 6-digits.\r\n if (hex.length === 3) {\r\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\r\n }\r\n let alfa = null;\r\n if (hex.length === 8) {\r\n alfa = hex.substring(6, 8);\r\n hex = hex.substring(0, 6);\r\n } else if (hex.length !== 6) {\r\n console.warn(`Cannot invert color: ${hex}`);\r\n return hex;\r\n }\r\n let r = parseInt(hex.slice(0, 2), 16);\r\n let g = parseInt(hex.slice(2, 4), 16);\r\n let b = parseInt(hex.slice(4, 6), 16);\r\n\r\n if (bw) {\r\n // http://stackoverflow.com/a/3943023/112731\r\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186\r\n ? `#000000${alfa || ''}`\r\n : `#FFFFFF${alfa || ''}`;\r\n }\r\n // invert color components\r\n r = (255 - r).toString(16);\r\n g = (255 - g).toString(16);\r\n b = (255 - b).toString(16);\r\n // pad each with zeros and return\r\n return `#${r.padStart(2, '0')}${g.padStart(2, '0')}${b.padStart(2, '0')}${alfa || ''}`;\r\n }\r\n\r\n /**\r\n * Convert RGB to array [r, g, b]\r\n * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\r\n * @returns {Array<number>} Array with 3 elements [r, g, b]\r\n */\r\n static color2rgb(hex) {\r\n if (hex === undefined || hex === null || hex === '' || typeof hex !== 'string') {\r\n return '';\r\n }\r\n if (hex.startsWith('rgba')) {\r\n const m = hex.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([.\\d]+)\\)/);\r\n if (m) {\r\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\r\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\r\n parseInt(m[2], 10).toString(16).padStart(2, '0');\r\n }\r\n } else if (hex.startsWith('rgb')) {\r\n const m = hex.match(/rgb?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\r\n if (m) {\r\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\r\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\r\n parseInt(m[2], 10).toString(16).padStart(2, '0');\r\n }\r\n } else if (hex.startsWith('#')) {\r\n hex = hex.slice(1);\r\n }\r\n // convert 3-digit hex to 6-digits.\r\n if (hex.length === 3) {\r\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\r\n }\r\n if (hex.length !== 6 && hex.length !== 8) {\r\n console.warn(`Cannot invert color: ${hex}`);\r\n return false;\r\n }\r\n\r\n return [\r\n parseInt(hex.slice(0, 2), 16),\r\n parseInt(hex.slice(2, 4), 16),\r\n parseInt(hex.slice(4, 6), 16),\r\n ];\r\n }\r\n\r\n // Big thanks to: https://github.com/antimatter15/rgb-lab\r\n /**\r\n * Convert RGB to LAB\r\n * @param {Array<number>} rgb color in format [r,g,b]\r\n * @returns {Array<number>} lab color in format [l,a,b]\r\n */\r\n static rgb2lab(rgb) {\r\n let r = rgb[0] / 255;\r\n let g = rgb[1] / 255;\r\n let b = rgb[2] / 255;\r\n\r\n r = (r > 0.04045) ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92;\r\n g = (g > 0.04045) ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92;\r\n b = (b > 0.04045) ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92;\r\n\r\n let x = (r * 0.4124 + g * 0.3576 + b * 0.1805) / 0.95047;\r\n let y = (r * 0.2126 + g * 0.7152 + b * 0.0722); /* / 1.00000; */\r\n let z = (r * 0.0193 + g * 0.1192 + b * 0.9505) / 1.08883;\r\n\r\n x = (x > 0.008856) ? x ** 0.33333333 : (7.787 * x) + 0.137931; // 16 / 116;\r\n y = (y > 0.008856) ? y ** 0.33333333 : (7.787 * y) + 0.137931; // 16 / 116;\r\n z = (z > 0.008856) ? z ** 0.33333333 : (7.787 * z) + 0.137931; // 16 / 116;\r\n\r\n return [(116 * y) - 16, 500 * (x - y), 200 * (y - z)];\r\n }\r\n\r\n /**\r\n * Calculate the distance between two colors in LAB color space in the range 0-100^2\r\n * If distance is less than 1000, the colors are similar\r\n * @param {string} color1 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\r\n * @param {string} color2 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\r\n * @returns {number} distance in the range 0-100^2\r\n */\r\n static colorDistance(color1, color2) {\r\n const lab1 = Utils.rgb2lab(Utils.color2rgb(color1));\r\n const lab2 = Utils.rgb2lab(Utils.color2rgb(color2));\r\n const dltL = lab1[0] - lab2[0];\r\n const dltA = lab1[1] - lab2[1];\r\n const dltB = lab1[2] - lab2[2];\r\n const c1 = Math.sqrt(lab1[1] * lab1[1] + lab1[2] * lab1[2]);\r\n const c2 = Math.sqrt(lab2[1] * lab2[1] + lab2[2] * lab2[2]);\r\n const dltC = c1 - c2;\r\n let dltH = dltA * dltA + dltB * dltB - dltC * dltC;\r\n dltH = dltH < 0 ? 0 : Math.sqrt(dltH);\r\n const sc = 1.0 + 0.045 * c1;\r\n const sh = 1.0 + 0.015 * c1;\r\n const dltLKlsl = dltL;\r\n const dltCkcsc = dltC / sc;\r\n const dltHkhsh = dltH / sh;\r\n const i = dltLKlsl * dltLKlsl + dltCkcsc * dltCkcsc + dltHkhsh * dltHkhsh;\r\n return i < 0 ? 0 : i;\r\n }\r\n\r\n // https://github.com/lukeed/clsx/blob/master/src/index.js\r\n // License\r\n // MIT © Luke Edwards\r\n /**\r\n * @private\r\n * @param {any} mix\r\n * @returns {string}\r\n */\r\n static _toVal(mix) {\r\n let y;\r\n let str = '';\r\n\r\n if (typeof mix === 'string' || typeof mix === 'number') {\r\n str += mix;\r\n } else if (typeof mix === 'object') {\r\n if (Array.isArray(mix)) {\r\n for (let k = 0; k < mix.length; k++) {\r\n if (mix[k]) {\r\n y = Utils._toVal(mix[k]);\r\n if (y) {\r\n str && (str += ' ');\r\n str += y;\r\n }\r\n }\r\n }\r\n } else {\r\n for (const k in mix) {\r\n if (mix[k]) {\r\n str && (str += ' ');\r\n str += k;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n // https://github.com/lukeed/clsx/blob/master/src/index.js\r\n // License\r\n // MIT © Luke Edwards\r\n /**\r\n * Convert any object to a string with its values.\r\n * @returns {string}\r\n */\r\n static clsx() {\r\n let i = 0;\r\n let tmp;\r\n let x;\r\n let str = '';\r\n while (i < arguments.length) {\r\n // eslint-disable-next-line prefer-rest-params\r\n tmp = arguments[i++];\r\n if (tmp) {\r\n x = Utils._toVal(tmp);\r\n if (x) {\r\n str && (str += ' ');\r\n str += x;\r\n }\r\n }\r\n }\r\n return str;\r\n }\r\n\r\n /**\r\n * Get the current theme name (either from local storage or the browser settings).\r\n * @param {string} [themeName]\r\n * @returns {string}\r\n */\r\n static getThemeName(themeName = '') {\r\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\r\n return window.vendorPrefix;\r\n }\r\n\r\n return themeName || ((window._localStorage || window.localStorage).getItem('App.themeName') ?\r\n (window._localStorage || window.localStorage).getItem('App.themeName') : window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'colored');\r\n }\r\n\r\n /**\r\n * Get the type of theme.\r\n * @param {string} [themeName]\r\n * @returns {'dark' | 'light'}\r\n */\r\n static getThemeType(themeName = '') {\r\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\r\n return 'light';\r\n }\r\n\r\n themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');\r\n return themeName === 'dark' || themeName === 'blue' ? 'dark' : 'light';\r\n }\r\n\r\n /**\r\n * Set the theme name and theme type.\r\n * @param {string} themeName\r\n */\r\n static setThemeName(themeName) {\r\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\r\n return; // ignore\r\n }\r\n (window._localStorage || window.localStorage).setItem('App.themeName', themeName);\r\n (window._localStorage || window.localStorage).setItem('App.theme', themeName === 'dark' || themeName === 'blue' ? 'dark' : 'light');\r\n }\r\n\r\n /**\r\n * Toggle the theme name between 'dark' and 'colored'.\r\n * @param {string | null} themeName\r\n * @returns {string} the new theme name.\r\n */\r\n static toggleTheme(themeName) {\r\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\r\n return window.vendorPrefix;\r\n }\r\n themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');\r\n\r\n // dark => blue => colored => light => dark\r\n const themes = Utils.getThemeNames();\r\n const pos = themes.indexOf(themeName);\r\n let newTheme;\r\n if (pos !== -1) {\r\n newTheme = themes[(pos + 1) % themes.length];\r\n } else {\r\n newTheme = themes[0];\r\n }\r\n Utils.setThemeName(newTheme);\r\n\r\n return newTheme;\r\n }\r\n\r\n /**\r\n * Get the list of themes\r\n * @returns {array<string>} list of possible themes\r\n */\r\n static getThemeNames() {\r\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\r\n return [window.vendorPrefix];\r\n }\r\n\r\n return ['light', 'dark', 'blue', 'colored'];\r\n }\r\n\r\n /**\r\n * Parse a query string into its parts.\r\n * @param {string} query\r\n * @returns {Record<string, string | boolean | number>}\r\n */\r\n static parseQuery(query) {\r\n query = (query || '').toString().replace(/^\\?/, '');\r\n /** @type {Record<string, string | boolean | number>} */\r\n const result = {};\r\n query.split('&').forEach(part => {\r\n part = part.trim();\r\n if (part) {\r\n const parts = part.split('=');\r\n const attr = decodeURIComponent(parts[0]).trim();\r\n if (parts.length > 1) {\r\n result[attr] = decodeURIComponent(parts[1]);\r\n if (result[attr] === 'true') {\r\n result[attr] = true;\r\n } else if (result[attr] === 'false') {\r\n result[attr] = false;\r\n } else {\r\n const f = parseFloat(result[attr]);\r\n if (f.toString() === result[attr]) {\r\n result[attr] = f;\r\n }\r\n }\r\n } else {\r\n result[attr] = true;\r\n }\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n /**\r\n * Returns parent ID.\r\n * @param {string} id\r\n * @returns {string | null} parent ID or null if no parent\r\n */\r\n static getParentId(id) {\r\n const p = (id || '').toString().split('.');\r\n if (p.length > 1) {\r\n p.pop();\r\n return p.join('.');\r\n }\r\n\r\n return null;\r\n }\r\n\r\n static formatDate(dateObj, dateFormat) {\r\n // format could be DD.MM.YYYY, YYYY.MM.DD or MM/DD/YYYY\r\n\r\n if (!dateObj) {\r\n return '';\r\n }\r\n\r\n let text;\r\n let mm = dateObj.getMonth() + 1;\r\n if (mm < 10) {\r\n mm = `0${mm}`;\r\n }\r\n\r\n let dd = dateObj.getDate();\r\n if (dd < 10) {\r\n dd = `0${dd}`;\r\n }\r\n\r\n if (dateFormat === 'MM/DD/YYYY') {\r\n text = `${mm}/${dd}/${dateObj.getFullYear()}`;\r\n } else {\r\n text = `${dateObj.getFullYear()}-${mm}-${dd}`;\r\n }\r\n\r\n // time\r\n let v = dateObj.getHours();\r\n if (v < 10) {\r\n text += ` 0${v}`;\r\n } else {\r\n text += ` ${v}`;\r\n }\r\n v = dateObj.getMinutes();\r\n if (v < 10) {\r\n text += `:0${v}`;\r\n } else {\r\n text += `:${v}`;\r\n }\r\n\r\n v = dateObj.getSeconds();\r\n if (v < 10) {\r\n text += `:0${v}`;\r\n } else {\r\n text += `:${v}`;\r\n }\r\n\r\n v = dateObj.getMilliseconds();\r\n if (v < 10) {\r\n text += `.00${v}`;\r\n } else if (v < 100) {\r\n text += `.0${v}`;\r\n } else {\r\n text += `.${v}`;\r\n }\r\n\r\n return text;\r\n }\r\n\r\n static formatTime(seconds) {\r\n if (seconds) {\r\n seconds = Math.round(seconds);\r\n const d = Math.floor(seconds / (3600 * 24));\r\n const h = Math.floor((seconds % (3600 * 24)) / 3600);\r\n const m = Math.floor((seconds % 3600) / 60);\r\n const s = seconds % 60;\r\n if (d) {\r\n return `${d}.${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\r\n }\r\n if (h) {\r\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\r\n }\r\n\r\n return `0:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\r\n }\r\n return '0:00:00';\r\n }\r\n\r\n static MDtext2link(text) {\r\n const m = text.match(/\\d+\\.\\)\\s/);\r\n if (m) {\r\n text = text.replace(m[0], m[0].replace(/\\s/, '&nbsp;'));\r\n }\r\n\r\n return text.replace(/[^a-zA-Zа-яА-Я0-9]/g, '').trim().replace(/\\s/g, '').toLowerCase();\r\n }\r\n\r\n static openLink(url, target) {\r\n // replace IPv6 Address with [ipv6]:port\r\n url = url.replace(/\\/\\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\\d+)?\\//i, '//[$1]$2/');\r\n\r\n if (target === 'this') {\r\n window.location = url;\r\n } else {\r\n window.open(url, target || '_blank');\r\n }\r\n }\r\n\r\n static MDgetTitle(text) {\r\n const result = Utils.extractHeader(text);\r\n const header = result.header;\r\n let body = result.body;\r\n if (!header.title) {\r\n // remove {docsify-bla}\r\n body = body.replace(/{[^}]*}/g, '');\r\n body = body.trim();\r\n const lines = body.replace(/\\r/g, '').split('\\n');\r\n for (let i = 0; i < lines.length; i++) {\r\n if (lines[i].startsWith('# ')) {\r\n return lines[i].substring(2).trim();\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n return header.title;\r\n }\r\n\r\n static MDextractHeader(text) {\r\n const attrs = {};\r\n if (text.substring(0, 3) === '---') {\r\n const pos = text.substring(3).indexOf('\\n---');\r\n if (pos !== -1) {\r\n const _header = text.substring(3, pos + 3);\r\n const lines = _header.replace(/\\r/g, '').split('\\n');\r\n lines.forEach(line => {\r\n if (!line.trim()) {\r\n return;\r\n }\r\n const pos_ = line.indexOf(':');\r\n if (pos_ !== -1) {\r\n const attr = line.substring(0, pos_).trim();\r\n attrs[attr] = line.substring(pos_ + 1).trim();\r\n attrs[attr] = attrs[attr].replace(/^['\"]|['\"]$/g, '');\r\n if (attrs[attr] === 'true') {\r\n attrs[attr] = true;\r\n } else if (attrs[attr] === 'false') {\r\n attrs[attr] = false;\r\n } else if (parseFloat(attrs[attr]).toString() === attrs[attr]) {\r\n attrs[attr] = parseFloat(attrs[attr]);\r\n }\r\n } else {\r\n attrs[line.trim()] = true;\r\n }\r\n });\r\n text = text.substring(pos + 7);\r\n }\r\n }\r\n return { header: attrs, body: text };\r\n }\r\n\r\n static MDremoveDocsify(text) {\r\n const m = text.match(/{docsify-[^}]*}/g);\r\n if (m) {\r\n m.forEach(doc => text = text.replace(doc, ''));\r\n }\r\n return text;\r\n }\r\n\r\n /**\r\n * Generate the json file on the file for download.\r\n * @param {string} filename file name\r\n * @param {string} json file data\r\n * @returns {object} json structure (not stringified)\r\n */\r\n static generateFile(filename, json) {\r\n const el = document.createElement('a');\r\n el.setAttribute('href', `data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(json, null, 2))}`);\r\n el.setAttribute('download', filename);\r\n\r\n el.style.display = 'none';\r\n document.body.appendChild(el);\r\n\r\n el.click();\r\n\r\n document.body.removeChild(el);\r\n }\r\n\r\n /**\r\n * Convert quality code into text\r\n * @param {number} quality code\r\n * @returns {array<string>} lines that decode quality\r\n */\r\n static quality2text(quality) {\r\n // eslint-disable-next-line no-bitwise\r\n const custom = quality & 0xFFFF0000;\r\n const text = QUALITY_BITS[quality];\r\n let result;\r\n if (text) {\r\n result = [text];\r\n // eslint-disable-next-line no-bitwise\r\n } else if (quality & 0x01) {\r\n // eslint-disable-next-line no-bitwise\r\n result = [QUALITY_BITS[0x01], `0x${(quality & (0xFFFF & ~1)).toString(16)}`];\r\n // eslint-disable-next-line no-bitwise\r\n } else if (quality & 0x02) {\r\n // eslint-disable-next-line no-bitwise\r\n result = [QUALITY_BITS[0x02], `0x${(quality & (0xFFFF & ~2)).toString(16)}`];\r\n } else {\r\n result = [`0x${quality.toString(16)}`];\r\n }\r\n if (custom) {\r\n // eslint-disable-next-line no-bitwise\r\n result.push(`0x${(custom >> 16).toString(16).toUpperCase()}`);\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Deep copy object\r\n * @param {object} object\r\n * @returns {object}\r\n */\r\n static clone(object) {\r\n return JSON.parse(JSON.stringify(object));\r\n }\r\n\r\n /**\r\n * Get states of object\r\n * @param {object} obj\r\n * @returns {object} states as an object in form {\"value1\": \"label1\", \"value2\": \"label2\"} or null\r\n */\r\n static getStates(obj) {\r\n let states = obj?.common?.states;\r\n if (states) {\r\n if (typeof states === 'string' && states[0] === '{') {\r\n try {\r\n states = JSON.parse(states);\r\n } catch (ex) {\r\n console.error(`Cannot parse states: ${states}`);\r\n states = null;\r\n }\r\n } else if (typeof states === 'string') {\r\n // if old format val1:text1;val2:text2\r\n const parts = states.split(';');\r\n states = {};\r\n for (let p = 0; p < parts.length; p++) {\r\n const s = parts[p].split(':');\r\n states[s[0]] = s[1];\r\n }\r\n } else if (Array.isArray(states)) {\r\n const result = {};\r\n if (obj.common.type === 'number') {\r\n states.forEach((value, key) => result[key] = value);\r\n } else if (obj.common.type === 'string') {\r\n states.forEach(value => result[value] = value);\r\n } else if (obj.common.type === 'boolean') {\r\n result.false = states[0];\r\n result.true = states[1];\r\n }\r\n\r\n return result;\r\n }\r\n }\r\n\r\n return states;\r\n }\r\n\r\n /**\r\n * Get svg file as text\r\n * @param {string} url URL of SVG file\r\n * @returns {object} Promise with \"data:image...\"\r\n */\r\n static getSvg(url) {\r\n return fetch(url)\r\n .then(response => response.blob())\r\n .then(blob => new Promise(resolve => {\r\n const reader = new FileReader();\r\n // eslint-disable-next-line func-names\r\n reader.onload = function () { // do not optimize this function. \"this\" is important.\r\n resolve(this.result);\r\n };\r\n reader.readAsDataURL(blob);\r\n }));\r\n }\r\n\r\n /**\r\n * Detect file extension by its content\r\n * @param {string} base64 Base64 encoded binary file\r\n * @returns {string} Detected extension, like 'jpg'\r\n */\r\n static detectMimeType(base64) {\r\n const signature = Object.keys(SIGNATURES).find(s => base64.startsWith(s));\r\n return signature ? SIGNATURES[signature] : null;\r\n }\r\n\r\n /**\r\n * Check if configured repository is the stable repository\r\n *\r\n * @param {string | string[]} activeRepo current configured repository or multi repository\r\n * @return {boolean}\r\n */\r\n static isStableRepository(activeRepo) {\r\n return !!((\r\n typeof activeRepo === 'string' &&\r\n activeRepo.toLowerCase().startsWith('stable')\r\n )\r\n ||\r\n (\r\n activeRepo &&\r\n typeof activeRepo !== 'string' &&\r\n activeRepo.find(r => r.toLowerCase().startsWith('stable'))\r\n ));\r\n }\r\n\r\n /**\r\n * Check if given string is an integer\r\n *\r\n * @param {string} str string to check\r\n * @return {boolean}\r\n */\r\n static isStringInteger(str) {\r\n return parseInt(str).toString() === str;\r\n }\r\n\r\n /**\r\n * Check if the date is valid\r\n *\r\n * @param {Date} date\r\n * @return {boolean}\r\n */\r\n static isValidDate(date) {\r\n return date instanceof Date && !isNaN(date);\r\n }\r\n}\r\n\r\nexport default Utils;\r\n"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ declare function deselectCurrent(): () => void;
2
+ declare const clipboardToIE11Formatting: {
3
+ 'text/plain': string;
4
+ 'text/html': string;
5
+ default: string;
6
+ };
7
+ declare const defaultMessage = "Copy to clipboard: #{key}, Enter";
8
+ declare function format(message: string): string;
9
+ declare function copy(text: string, options?: {
10
+ debug?: boolean;
11
+ format?: string;
12
+ message?: string;
13
+ }): boolean;
@@ -0,0 +1,156 @@
1
+ /*
2
+ MIT License
3
+
4
+ Copyright (c) 2017 sudodoki <smd.deluzion@gmail.com>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
23
+ */
24
+ // https://github.com/sudodoki/toggle-selection/blob/gh-pages/index.js
25
+ function deselectCurrent() {
26
+ const selection = document.getSelection();
27
+ if (!(selection === null || selection === void 0 ? void 0 : selection.rangeCount)) {
28
+ return () => { };
29
+ }
30
+ let active = document.activeElement;
31
+ const ranges = [];
32
+ for (let i = 0; i < selection.rangeCount; i++) {
33
+ ranges.push(selection.getRangeAt(i));
34
+ }
35
+ switch (active === null || active === void 0 ? void 0 : active.tagName.toUpperCase()) { // .toUpperCase handles XHTML
36
+ case 'INPUT':
37
+ case 'TEXTAREA':
38
+ active.blur();
39
+ break;
40
+ default:
41
+ active = null;
42
+ break;
43
+ }
44
+ selection.removeAllRanges();
45
+ return () => {
46
+ selection.type === 'Caret' &&
47
+ selection.removeAllRanges();
48
+ if (!selection.rangeCount) {
49
+ ranges.forEach(range => selection.addRange(range));
50
+ }
51
+ active && active.focus();
52
+ };
53
+ }
54
+ // https://github.com/sudodoki/copy-to-clipboard/blob/master/index.js
55
+ const clipboardToIE11Formatting = {
56
+ 'text/plain': 'Text',
57
+ 'text/html': 'Url',
58
+ default: 'Text',
59
+ };
60
+ const defaultMessage = 'Copy to clipboard: #{key}, Enter';
61
+ function format(message) {
62
+ const copyKey = `${/mac os x/i.test(navigator.userAgent) ? '⌘' : 'Ctrl'}+C`;
63
+ return message.replace(/#{\s*key\s*}/g, copyKey);
64
+ }
65
+ function copy(text, options) {
66
+ let reselectPrevious;
67
+ let range;
68
+ let selection;
69
+ let mark;
70
+ let success = false;
71
+ options = options || {};
72
+ const debug = options.debug || false;
73
+ try {
74
+ reselectPrevious = deselectCurrent();
75
+ range = document.createRange();
76
+ selection = document.getSelection();
77
+ mark = document.createElement('span');
78
+ mark.textContent = text;
79
+ // avoid screen readers from reading out loud the text
80
+ mark.ariaHidden = 'true';
81
+ // reset user styles for span element
82
+ mark.style.all = 'unset';
83
+ // prevents scrolling to the end of the page
84
+ mark.style.position = 'fixed';
85
+ mark.style.top = '0px';
86
+ mark.style.clip = 'rect(0, 0, 0, 0)';
87
+ // used to preserve spaces and line breaks
88
+ mark.style.whiteSpace = 'pre';
89
+ // do not inherit user-select (it may be `none`)
90
+ // @ts-ignore
91
+ mark.style.webkitUserSelect = 'text';
92
+ // @ts-ignore
93
+ mark.style.MozUserSelect = 'text';
94
+ // @ts-ignore
95
+ mark.style.msUserSelect = 'text';
96
+ mark.style.userSelect = 'text';
97
+ mark.addEventListener('copy', e => {
98
+ var _a, _b, _c, _d;
99
+ e.stopPropagation();
100
+ if (options === null || options === void 0 ? void 0 : options.format) {
101
+ e.preventDefault();
102
+ if (typeof e.clipboardData === 'undefined') { // IE 11
103
+ debug && console.warn('unable to use e.clipboardData');
104
+ debug && console.warn('trying IE specific stuff');
105
+ (_a = window.clipboardData) === null || _a === void 0 ? void 0 : _a.clearData();
106
+ // @ts-ignore
107
+ const _format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting.default;
108
+ (_b = window.clipboardData) === null || _b === void 0 ? void 0 : _b.setData(_format, text);
109
+ }
110
+ else { // all other browsers
111
+ (_c = e.clipboardData) === null || _c === void 0 ? void 0 : _c.clearData();
112
+ (_d = e.clipboardData) === null || _d === void 0 ? void 0 : _d.setData(options.format, text);
113
+ }
114
+ }
115
+ });
116
+ document.body.appendChild(mark);
117
+ range.selectNodeContents(mark);
118
+ selection === null || selection === void 0 ? void 0 : selection.addRange(range);
119
+ const successful = document.execCommand('copy');
120
+ if (!successful) {
121
+ throw new Error('copy command was unsuccessful');
122
+ }
123
+ success = true;
124
+ }
125
+ catch (err) {
126
+ debug && console.error('unable to copy using execCommand: ', err);
127
+ debug && console.warn('trying IE specific stuff');
128
+ try {
129
+ window.clipboardData.setData(options.format || 'text', text);
130
+ // options.onCopy && options.onCopy((window as any).clipboardData);
131
+ success = true;
132
+ }
133
+ catch (error) {
134
+ debug && console.error('unable to copy using clipboardData: ', error);
135
+ debug && console.error('falling back to prompt');
136
+ const message = format('message' in options ? options.message || '' : defaultMessage);
137
+ window.prompt(message, text);
138
+ }
139
+ }
140
+ finally {
141
+ if (selection) {
142
+ if (range && typeof selection.removeRange === 'function') {
143
+ selection.removeRange(range);
144
+ }
145
+ else {
146
+ selection.removeAllRanges();
147
+ }
148
+ }
149
+ if (mark) {
150
+ document.body.removeChild(mark);
151
+ }
152
+ reselectPrevious && reselectPrevious();
153
+ }
154
+ return success;
155
+ }
156
+ module.exports = copy;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-to-clipboard.js","names":["deselectCurrent","selection","document","getSelection","rangeCount","active","activeElement","ranges","i","push","getRangeAt","tagName","toUpperCase","blur","removeAllRanges","type","forEach","range","addRange","focus","clipboardToIE11Formatting","defaultMessage","format","message","copyKey","concat","test","navigator","userAgent","replace","copy","text","options","reselectPrevious","mark","success","debug","createRange","createElement","textContent","ariaHidden","style","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","preventDefault","clipboardData","console","warn","window","clearData","_format","setData","onCopy","body","appendChild","selectNodeContents","successful","execCommand","Error","err","error","prompt","removeRange","removeChild","module","exports"],"sources":["copy-to-clipboard.js"],"sourcesContent":["/*\r\nMIT License\r\n\r\nCopyright (c) 2017 sudodoki <smd.deluzion@gmail.com>\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\r\n */\r\n// https://github.com/sudodoki/toggle-selection/blob/gh-pages/index.js\r\nfunction deselectCurrent() {\r\n const selection = document.getSelection();\r\n if (!selection.rangeCount) {\r\n return () => {};\r\n }\r\n let active = document.activeElement;\r\n\r\n const ranges = [];\r\n for (let i = 0; i < selection.rangeCount; i++) {\r\n ranges.push(selection.getRangeAt(i));\r\n }\r\n\r\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\r\n case 'INPUT':\r\n case 'TEXTAREA':\r\n active.blur();\r\n break;\r\n\r\n default:\r\n active = null;\r\n break;\r\n }\r\n\r\n selection.removeAllRanges();\r\n return () => {\r\n selection.type === 'Caret' &&\r\n selection.removeAllRanges();\r\n\r\n if (!selection.rangeCount) {\r\n ranges.forEach(range => selection.addRange(range));\r\n }\r\n\r\n active && active.focus();\r\n };\r\n}\r\n\r\n// https://github.com/sudodoki/copy-to-clipboard/blob/master/index.js\r\n\r\nconst clipboardToIE11Formatting = {\r\n 'text/plain': 'Text',\r\n 'text/html': 'Url',\r\n default: 'Text',\r\n};\r\n\r\nconst defaultMessage = 'Copy to clipboard: #{key}, Enter';\r\n\r\nfunction format(message) {\r\n const copyKey = `${/mac os x/i.test(navigator.userAgent) ? '⌘' : 'Ctrl'}+C`;\r\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\r\n}\r\n\r\nfunction copy(text, options) {\r\n let reselectPrevious;\r\n let range;\r\n let selection;\r\n let mark;\r\n let success = false;\r\n if (!options) {\r\n options = {};\r\n }\r\n const debug = options.debug || false;\r\n try {\r\n reselectPrevious = deselectCurrent();\r\n\r\n range = document.createRange();\r\n selection = document.getSelection();\r\n\r\n mark = document.createElement('span');\r\n mark.textContent = text;\r\n // avoid screen readers from reading out loud the text\r\n mark.ariaHidden = 'true';\r\n // reset user styles for span element\r\n mark.style.all = 'unset';\r\n // prevents scrolling to the end of the page\r\n mark.style.position = 'fixed';\r\n mark.style.top = 0;\r\n mark.style.clip = 'rect(0, 0, 0, 0)';\r\n // used to preserve spaces and line breaks\r\n mark.style.whiteSpace = 'pre';\r\n // do not inherit user-select (it may be `none`)\r\n mark.style.webkitUserSelect = 'text';\r\n mark.style.MozUserSelect = 'text';\r\n mark.style.msUserSelect = 'text';\r\n mark.style.userSelect = 'text';\r\n mark.addEventListener('copy', e => {\r\n e.stopPropagation();\r\n if (options.format) {\r\n e.preventDefault();\r\n if (typeof e.clipboardData === 'undefined') { // IE 11\r\n debug && console.warn('unable to use e.clipboardData');\r\n debug && console.warn('trying IE specific stuff');\r\n window.clipboardData.clearData();\r\n const _format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting.default;\r\n window.clipboardData.setData(_format, text);\r\n } else { // all other browsers\r\n e.clipboardData.clearData();\r\n e.clipboardData.setData(options.format, text);\r\n }\r\n }\r\n if (options.onCopy) {\r\n e.preventDefault();\r\n options.onCopy(e.clipboardData);\r\n }\r\n });\r\n\r\n document.body.appendChild(mark);\r\n\r\n range.selectNodeContents(mark);\r\n selection.addRange(range);\r\n\r\n const successful = document.execCommand('copy');\r\n if (!successful) {\r\n throw new Error('copy command was unsuccessful');\r\n }\r\n success = true;\r\n } catch (err) {\r\n debug && console.error('unable to copy using execCommand: ', err);\r\n debug && console.warn('trying IE specific stuff');\r\n try {\r\n window.clipboardData.setData(options.format || 'text', text);\r\n options.onCopy && options.onCopy(window.clipboardData);\r\n success = true;\r\n } catch (error) {\r\n debug && console.error('unable to copy using clipboardData: ', error);\r\n debug && console.error('falling back to prompt');\r\n const message = format('message' in options ? options.message : defaultMessage);\r\n window.prompt(message, text);\r\n }\r\n } finally {\r\n if (selection) {\r\n if (typeof selection.removeRange === 'function') {\r\n selection.removeRange(range);\r\n } else {\r\n selection.removeAllRanges();\r\n }\r\n }\r\n\r\n if (mark) {\r\n document.body.removeChild(mark);\r\n }\r\n reselectPrevious();\r\n }\r\n\r\n return success;\r\n}\r\n\r\nmodule.exports = copy;\r\n"],"mappings":"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"}