@iobroker/adapter-react-v5 4.13.1 → 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 (462) 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.js.map +1 -0
  306. package/Prompt.js +7 -7
  307. package/Prompt.js.map +1 -0
  308. package/README.md +1101 -1101
  309. package/Theme.js.map +1 -0
  310. package/assets/devices/Alarm Systems.svg +18 -18
  311. package/assets/devices/Amplifier.svg +21 -21
  312. package/assets/devices/Awnings.svg +4 -4
  313. package/assets/devices/Battery Status.svg +4 -4
  314. package/assets/devices/Ceiling Spotlights.svg +15 -15
  315. package/assets/devices/Chandelier.svg +6 -6
  316. package/assets/devices/Climate.svg +11 -11
  317. package/assets/devices/Coffee Makers.svg +5 -5
  318. package/assets/devices/Cold Water.svg +31 -31
  319. package/assets/devices/Computer.svg +21 -21
  320. package/assets/devices/Consumption.svg +7 -7
  321. package/assets/devices/Curtains.svg +43 -43
  322. package/assets/devices/Dishwashers.svg +11 -11
  323. package/assets/devices/Doors.svg +5 -5
  324. package/assets/devices/Doorstep.svg +35 -35
  325. package/assets/devices/Dryer.svg +13 -13
  326. package/assets/devices/Fan.svg +20 -20
  327. package/assets/devices/Floor Lamps.svg +4 -4
  328. package/assets/devices/Garage Doors.svg +9 -9
  329. package/assets/devices/Gates.svg +32 -32
  330. package/assets/devices/Hairdryer.svg +23 -23
  331. package/assets/devices/Handle.svg +6 -6
  332. package/assets/devices/Hanging Lamps.svg +8 -8
  333. package/assets/devices/Heater.svg +44 -44
  334. package/assets/devices/Hoods.svg +11 -11
  335. package/assets/devices/Hot Water.svg +9 -9
  336. package/assets/devices/Humidity.svg +41 -41
  337. package/assets/devices/Iron.svg +4 -4
  338. package/assets/devices/Irrigation.svg +22 -22
  339. package/assets/devices/Led Strip.svg +30 -30
  340. package/assets/devices/Light.svg +29 -29
  341. package/assets/devices/Lightings.svg +46 -46
  342. package/assets/devices/Lock.svg +19 -19
  343. package/assets/devices/Louvre.svg +6 -6
  344. package/assets/devices/Mowing Machine.svg +8 -8
  345. package/assets/devices/Music.svg +12 -12
  346. package/assets/devices/Outdoor Blinds.svg +6 -6
  347. package/assets/devices/People.svg +19 -19
  348. package/assets/devices/Pool.svg +7 -7
  349. package/assets/devices/Power Consumption.svg +12 -12
  350. package/assets/devices/Printer.svg +9 -9
  351. package/assets/devices/Pump.svg +9 -9
  352. package/assets/devices/Receiver.svg +18 -18
  353. package/assets/devices/Sconces.svg +9 -9
  354. package/assets/devices/Security.svg +34 -34
  355. package/assets/devices/Shading.svg +4 -4
  356. package/assets/devices/Shutters.svg +10 -10
  357. package/assets/devices/SmokeDetector.svg +12 -12
  358. package/assets/devices/Sockets.svg +13 -13
  359. package/assets/devices/Speaker.svg +35 -35
  360. package/assets/devices/Stove.svg +11 -11
  361. package/assets/devices/Table Lamps.svg +11 -11
  362. package/assets/devices/Temperature Sensors.svg +28 -28
  363. package/assets/devices/Tv.svg +7 -7
  364. package/assets/devices/Vacuum Cleaner.svg +15 -15
  365. package/assets/devices/Ventilation.svg +12 -12
  366. package/assets/devices/Washing Machines.svg +15 -15
  367. package/assets/devices/Water Consumption.svg +5 -5
  368. package/assets/devices/Water Heater.svg +8 -8
  369. package/assets/devices/Water.svg +40 -40
  370. package/assets/devices/Weather.svg +28 -28
  371. package/assets/devices/Window.svg +7 -7
  372. package/assets/devices/list.json +993 -993
  373. package/assets/devices/names.txt +62 -62
  374. package/assets/devices/parseNames.js +34 -34
  375. package/assets/lamp_ceiling.svg +8 -8
  376. package/assets/lamp_table.svg +7 -7
  377. package/assets/no_icon.svg +9 -9
  378. package/assets/rooms/Anteroom.svg +52 -52
  379. package/assets/rooms/Attic.svg +21 -21
  380. package/assets/rooms/Balcony.svg +12 -12
  381. package/assets/rooms/Barn.svg +5 -5
  382. package/assets/rooms/Basement.svg +4 -4
  383. package/assets/rooms/Bathroom.svg +38 -38
  384. package/assets/rooms/Bedroom.svg +5 -5
  385. package/assets/rooms/Boiler Room.svg +12 -12
  386. package/assets/rooms/Carport.svg +17 -17
  387. package/assets/rooms/Cellar.svg +89 -89
  388. package/assets/rooms/Chamber.svg +9 -9
  389. package/assets/rooms/Corridor.svg +52 -52
  390. package/assets/rooms/Dining Area.svg +37 -37
  391. package/assets/rooms/Dining Room.svg +37 -37
  392. package/assets/rooms/Dining.svg +37 -37
  393. package/assets/rooms/Dressing Room.svg +4 -4
  394. package/assets/rooms/Driveway.svg +14 -14
  395. package/assets/rooms/Entrance.svg +44 -44
  396. package/assets/rooms/Equipment Room.svg +14 -14
  397. package/assets/rooms/Front Yard.svg +64 -64
  398. package/assets/rooms/Gallery.svg +13 -13
  399. package/assets/rooms/Garage.svg +20 -20
  400. package/assets/rooms/Garden.svg +12 -12
  401. package/assets/rooms/Ground Floor.svg +95 -95
  402. package/assets/rooms/Guest Bathroom.svg +32 -32
  403. package/assets/rooms/Guest Room.svg +5 -5
  404. package/assets/rooms/Gym.svg +4 -4
  405. package/assets/rooms/Hall.svg +19 -19
  406. package/assets/rooms/Home Theater.svg +7 -7
  407. package/assets/rooms/Kitchen.svg +17 -17
  408. package/assets/rooms/Laundry Room.svg +11 -11
  409. package/assets/rooms/Living Area.svg +10 -10
  410. package/assets/rooms/Living Room.svg +10 -10
  411. package/assets/rooms/Locker Room.svg +16 -16
  412. package/assets/rooms/Nursery.svg +4 -4
  413. package/assets/rooms/Office.svg +8 -8
  414. package/assets/rooms/Outdoors.svg +7 -7
  415. package/assets/rooms/Playroom.svg +5 -5
  416. package/assets/rooms/Pool.svg +7 -7
  417. package/assets/rooms/Rear Wall.svg +30 -30
  418. package/assets/rooms/Second Floor.svg +95 -95
  419. package/assets/rooms/Shed.svg +16 -16
  420. package/assets/rooms/Sleeping Area.svg +22 -22
  421. package/assets/rooms/Stairway.svg +4 -4
  422. package/assets/rooms/Stairwell.svg +15 -15
  423. package/assets/rooms/Storeroom.svg +4 -4
  424. package/assets/rooms/Summer House.svg +27 -27
  425. package/assets/rooms/Swimming Pool.svg +21 -21
  426. package/assets/rooms/Terrace.svg +6 -6
  427. package/assets/rooms/Toilet.svg +10 -10
  428. package/assets/rooms/Upstairs.svg +5 -5
  429. package/assets/rooms/Wardrobe.svg +60 -60
  430. package/assets/rooms/Washroom.svg +19 -19
  431. package/assets/rooms/Wc.svg +10 -10
  432. package/assets/rooms/Windscreen.svg +60 -60
  433. package/assets/rooms/Workshop.svg +22 -22
  434. package/assets/rooms/Workspace.svg +8 -8
  435. package/assets/rooms/list.json +945 -945
  436. package/assets/rooms/names.txt +59 -59
  437. package/assets/rooms/parseNames.js +34 -34
  438. package/craco-module-federation.js +69 -69
  439. package/i18n.js.map +1 -0
  440. package/icons/IconAdapter.js.map +1 -1
  441. package/icons/IconAlias.js.map +1 -1
  442. package/icons/IconChannel.js.map +1 -1
  443. package/icons/IconClearFilter.js.map +1 -1
  444. package/icons/IconClosed.js.map +1 -1
  445. package/icons/IconCopy.js +8 -8
  446. package/icons/IconCopy.js.map +1 -1
  447. package/icons/IconDevice.js.map +1 -1
  448. package/icons/IconDocument.js.map +1 -1
  449. package/icons/IconDocumentReadOnly.js.map +1 -1
  450. package/icons/IconExpert.js.map +1 -0
  451. package/icons/IconFx.js +1 -1
  452. package/icons/IconFx.js.map +1 -1
  453. package/icons/IconInstance.js.map +1 -1
  454. package/icons/IconLogout.js +9 -9
  455. package/icons/IconLogout.js.map +1 -1
  456. package/icons/IconNoIcon.js +8 -8
  457. package/icons/IconNoIcon.js.map +1 -1
  458. package/icons/IconOpen.js.map +1 -1
  459. package/icons/IconState.js.map +1 -1
  460. package/index.css +54 -54
  461. package/package.json +2 -2
  462. package/types.d.ts +94 -94
@@ -189,6 +189,7 @@ const styles = (theme) => ({
189
189
  width: 60,
190
190
  verticalAlign: 'top',
191
191
  textAlign: 'right',
192
+ whiteSpace: 'nowrap',
192
193
  },
193
194
  itemAccessTable: {
194
195
  // display: 'inline-block',
@@ -206,6 +207,9 @@ const styles = (theme) => ({
206
207
  objectFit: 'contain',
207
208
  maxHeight: 30,
208
209
  },
210
+ itemNoImageTable: {
211
+ marginTop: 6,
212
+ },
209
213
  itemIconTable: {
210
214
  display: 'inline-block',
211
215
  marginTop: 1,
@@ -1042,7 +1046,7 @@ class FileBrowser extends react_1.Component {
1042
1046
  }, onClick: e => this.select(item.id, e), style: this.state.viewType === TABLE ? { marginLeft: padding, width: `calc(100% - ${padding}px)` } : {}, className: Utils_1.default.clsx('browserItem', this.props.classes[`item${this.state.viewType}`], this.props.classes[`itemFile${this.state.viewType}`], this.state.selected === item.id && this.props.classes.itemSelected) },
1043
1047
  ext && FileViewer_1.EXTENSIONS.images.includes(ext) ?
1044
1048
  this.state.fileErrors.includes(item.id) ?
1045
- react_1.default.createElement(IconNoIcon_1.default, { className: Utils_1.default.clsx(this.props.classes[`itemImage${this.state.viewType}`], this.getClassBackgroundImage()) }) :
1049
+ react_1.default.createElement(IconNoIcon_1.default, { className: Utils_1.default.clsx(this.props.classes[`itemImage${this.state.viewType}`], this.getClassBackgroundImage(), this.props.classes[`itemNoImage${this.state.viewType}`]) }) :
1046
1050
  react_1.default.createElement(Icon_1.default, { onError: e => {
1047
1051
  // @ts-expect-error it exists
1048
1052
  e.target.onerror = null;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileBrowser.js","names":["_react","_interopRequireWildcard","require","_styles","_propTypes","_interopRequireDefault","_reactDropzone","_material","_iconsMaterial","_Error","_Utils","_TextInput","_IconExpert","_IconClosed","_IconOpen","_IconNoIcon","_withWidth","_FileViewer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof3","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_callSuper","o","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","valueOf","ROW_HEIGHT","BUTTON_WIDTH","TILE_HEIGHT","TILE_WIDTH","NOT_FOUND","FILE_TYPE_ICONS","all","FileIcon","images","TypeIconImages","code","JSIcon","txt","TypeIconTxt","audio","TypeIconAudio","video","TypeIconVideo","styles","theme","dialog","height","concat","mixins","toolbar","minHeight","root","width","overflow","position","filesDiv","spacing","overflowX","overflowY","padding","filesDivHint","bottom","left","opacity","fontStyle","fontSize","filesDivTable","parseInt","filesDivTile","display","alignContent","alignItems","flexWrap","flex","itemTile","userSelect","cursor","textAlign","transition","margin","background","palette","secondary","light","color","Utils","invertColor","main","itemNameFolderTile","fontWeight","itemNameTile","textOverflow","wordBreak","itemFolderIconTile","paddingLeft","itemFolderIconBack","top","zIndex","mode","itemSizeTile","itemImageTile","objectFit","itemIconTile","itemSelected","primary","itemTable","lineHeight","itemNameTable","verticalAlign","flexGrow","itemNameFolderTable","itemSizeTable","itemAccessTable","paddingRight","justifyContent","itemImageTable","marginTop","maxHeight","itemIconTable","itemFolderTable","itemFolderTemp","itemFolderIconTable","marginLeft","itemDownloadButtonTable","minWidth","borderRadius","backgroundColor","paddingTop","itemDownloadEmptyTable","itemAclButtonTable","itemDeleteButtonTable","uploadDiv","right","uploadDivDragging","uploadCenterDiv","border","uploadCenterIcon","uploadCenterText","uploadCloseButton","uploadCenterTextAndIcon","menuButtonExpertActive","menuButtonRestrictActive","pathDiv","marginRight","whiteSpace","pathDivInput","pathDivBreadcrumbDir","backgroundImageLight","backgroundImageDark","backgroundImageColored","direction","specialFolder","USER_DATA","sortFolders","b","folder","name","getParentDir","dir","parts","split","length","pop","join","isFile","path","ext","getFileExtension","toLowerCase","match","TABLE","TILE","FileBrowser","_Component","_inherits2","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","id","fileName","size","key","pos","lastIndexOf","substring","console","log","state","folders","_tempTimeout","clearTimeout","setTimeout","browseFolder","then","setState","array","_ref","backgroundImage","indexOf","window","_localStorage","localStorage","setItem","classes","expanded","getItem","limitPath","limitToObjectID","limitToPath","endsWith","JSON","parse","filter","startsWith","viewType","showViewTypeButton","selected","currentDir","restrictToFolder","push","Array","isArray","filterEmpty","expertMode","addFolder","uploadFile","deleteItem","viewer","formatEditFile","errorText","modalEditOfAccess","queueLength","loadAllFolders","fileErrors","filterByType","showTypesMenu","imagePrefix","levelPadding","mounted","suppressDeleteConfirm","browseList","browseListRunning","initialReadFinished","supportSubscribes","_createClass2","value","_loadFolders","_asyncToGenerator2","_regenerator","mark","_callee","_this2","wrap","_callee$","_context","prev","next","sent","browseFolders","_toConsumableArray2","findItem","pathFocus","scrollToSelected","stop","loadFolders","arguments","el","document","getElementById","scrollIntoView","componentDidMount","_this3","socket","checkFeatureSupported","result","subscribeFiles","onFileChange","componentWillUnmount","unsubscribeFiles","values","forEach","timer","foldersList","_newFolders","_resolve","_this4","keys","Promise","resolve","shift","readDirSerial","adapter","relPath","_this5","reject","processBrowseList","level","_this6","processing","readDir","files","item","folderId","_checkEmpty","force","_this7","map","error","readMetaItems","objs","_folders","userData","obj","_id","findIndex","splice","title","common","meta","from","ts","icon","acl","sort","unshift","alert","file","isDir","stats","modified","modifiedAt","toggleFolder","_this8","stopPropagation","stringify","temp","err","changeFolder","_this9","lastSelect","Date","now","_folder","altKey","shiftKey","ctrlKey","metaKey","onSelect","select","cb","_this10","filterFiles","includes","EXTENSIONS","renderFolder","_this11","Icon","IconOpen","IconClosed","isUserData","isSpecialData","createElement","style","onClick","onDoubleClick","_typeof2","lang","end","className","clsx","undefined","Hidden","smDown","formatAcl","allowDownload","allowDelete","IconButton","Delete","renderBackFolder","_this12","ArrowBack","formatSize","formatBytes","_this13","access","permissions","toString","padStart","modalEditOfAccessControl","getFileIcon","Bookmark","BookmarkBorder","Code","Description","MusicNote","InsertDriveFile","renderFile","_this14","getClassBackgroundImage","onError","target","onerror","src","alt","getEditFile","Edit","tabIndex","download","href","SaveAlt","renderItems","_this15","res","CircularProgress","renderToolbar","_this16","IconType","showTypeSelector","isInFolder","findFirstFolder","Toolbar","variant","allowNonRestricted","edge","menuButton","FolderSpecial","showExpertButton","List","ViewModule","FolderOpen","Refresh","allowCreateFolder","disabled","CreateNewFolder","allowUpload","Publish","Tooltip","Menu","open","anchorEl","onClose","type","MyIcon","MenuItem","removeItem","ListItemIcon","ListItemText","setStateBackgroundImage","Brightness6","parentFolder","find","renderInputDialog","_this17","applyText","cancelText","titleText","promptText","labelText","verify","text","parent","replace","componentDidUpdate","_this18","setOpacityTimer","items","getElementsByClassName","data","writeFile64","_item","renderUpload","_this19","Fab","Close","onDragEnter","onDragLeave","onDrop","acceptedFiles","count","reader","FileReader","onabort","onload","readAsArrayBuffer","_ref2","getRootProps","getInputProps","_extends2","deleteRecursive","_this20","deleteFolder","parentId","f","deleteFile","_this21","newState","renderDeleteDialog","_this22","Dialog","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","autoFocus","renderViewDialog","_this23","themeType","renderError","_this24","updateItemsAcl","info","_this25","cacheFolders","changed","it","cacheFoldersTimeout","changeToPath","_this26","renderBreadcrumb","_this27","p","Breadcrumbs","part","pathDivBreadcrumbSelected","renderPath","_this28","Input","onKeyDown","keyCode","endAdornment","KeyboardReturn","onBlur","onChange","render","_this29","ready","LinearProgress","foldersLoading","showToolbar","allowView","getDerivedStateFromProps","Component","defaultProps","propTypes","PropTypes","object","string","func","isRequired","bool","tileView","_export","withWidth","withStyles","_default","exports"],"sources":["FileBrowser.js"],"sourcesContent":["/**\r\n * Copyright 2020-2023, Denis Haev <dogafox@gmail.com>\r\n *\r\n * MIT License\r\n *\r\n * */\r\nimport React, { Component } from 'react';\r\nimport { withStyles } from '@mui/styles';\r\nimport PropTypes from 'prop-types';\r\nimport Dropzone from 'react-dropzone';\r\n\r\nimport {\r\n LinearProgress,\r\n Hidden,\r\n ListItemIcon,\r\n ListItemText,\r\n Menu,\r\n MenuItem,\r\n Tooltip,\r\n CircularProgress,\r\n Toolbar,\r\n IconButton,\r\n Fab,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogContentText,\r\n DialogActions,\r\n Button,\r\n Input,\r\n Breadcrumbs,\r\n} from '@mui/material';\r\n\r\n// MUI Icons\r\nimport {\r\n Refresh as RefreshIcon,\r\n Close as CloseIcon,\r\n Bookmark as JsonIcon,\r\n BookmarkBorder as CssIcon,\r\n Description as HtmlIcon,\r\n Edit as EditIcon,\r\n Code as JSIcon,\r\n InsertDriveFile as FileIcon,\r\n Publish as UploadIcon,\r\n MusicNote as MusicIcon,\r\n SaveAlt as DownloadIcon,\r\n CreateNewFolder as AddFolderIcon,\r\n FolderOpen as EmptyFilterIcon,\r\n List as IconList,\r\n ViewModule as IconTile,\r\n ArrowBack as IconBack,\r\n Delete as DeleteIcon,\r\n Brightness6 as Brightness5Icon,\r\n Image as TypeIconImages,\r\n FontDownload as TypeIconTxt,\r\n AudioFile as TypeIconAudio,\r\n Videocam as TypeIconVideo,\r\n KeyboardReturn as EnterIcon,\r\n FolderSpecial as RestrictedIcon,\r\n} from '@mui/icons-material';\r\n\r\nimport ErrorDialog from '../Dialogs/Error';\r\nimport Utils from './Utils';\r\nimport TextInputDialog from '../Dialogs/TextInput';\r\n\r\n// Custom Icons\r\nimport ExpertIcon from '../icons/IconExpert';\r\nimport IconClosed from '../icons/IconClosed';\r\nimport IconOpen from '../icons/IconOpen';\r\nimport IconNoIcon from '../icons/IconNoIcon';\r\n\r\nimport withWidth from './withWidth';\r\n\r\nimport FileViewer, { EXTENSIONS } from './FileViewer';\r\n\r\nconst ROW_HEIGHT = 32;\r\nconst BUTTON_WIDTH = 32;\r\nconst TILE_HEIGHT = 120;\r\nconst TILE_WIDTH = 64;\r\n\r\nconst NOT_FOUND = 'Not found';\r\n\r\nconst FILE_TYPE_ICONS = {\r\n all: FileIcon,\r\n images: TypeIconImages,\r\n code: JSIcon,\r\n txt: TypeIconTxt,\r\n audio: TypeIconAudio,\r\n video: TypeIconVideo,\r\n};\r\n\r\nconst styles = theme => ({\r\n dialog: {\r\n height: `calc(100% - ${theme.mixins.toolbar.minHeight}px)`,\r\n },\r\n root: {\r\n width: '100%',\r\n overflow: 'hidden',\r\n height: '100%',\r\n position: 'relative',\r\n },\r\n filesDiv: {\r\n width: `calc(100% - ${theme.spacing(2)})`,\r\n overflowX: 'hidden',\r\n overflowY: 'auto',\r\n padding: theme.spacing(1),\r\n },\r\n filesDivHint: {\r\n position: 'absolute',\r\n bottom: 0,\r\n left: 20,\r\n opacity: 0.7,\r\n fontStyle: 'italic',\r\n fontSize: 12,\r\n },\r\n filesDivTable: {\r\n height: `calc(100% - ${48 + parseInt(theme.spacing(1), 10)}px)`,\r\n },\r\n filesDivTile: {\r\n height: `calc(100% - ${48 * 2 + parseInt(theme.spacing(1), 10)}px)`,\r\n display: 'flex',\r\n alignContent: 'flex-start',\r\n alignItems: 'stretch',\r\n flexWrap: 'wrap',\r\n flex: `0 0 ${TILE_WIDTH}px`,\r\n },\r\n\r\n itemTile: {\r\n position: 'relative',\r\n userSelect: 'none',\r\n cursor: 'pointer',\r\n height: TILE_HEIGHT,\r\n width: TILE_WIDTH,\r\n display: 'inline-block',\r\n textAlign: 'center',\r\n opacity: 0.1,\r\n transition: 'opacity 1s',\r\n margin: 4,\r\n '&:hover': {\r\n background: theme.palette.secondary.light,\r\n color: Utils.invertColor(theme.palette.secondary.main, true),\r\n },\r\n },\r\n itemNameFolderTile: {\r\n fontWeight: 'bold',\r\n },\r\n itemNameTile: {\r\n width: '100%',\r\n height: 32,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n fontSize: 12,\r\n textAlign: 'center',\r\n wordBreak: 'break-all',\r\n },\r\n itemFolderIconTile: {\r\n width: '100%',\r\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\r\n display: 'block',\r\n paddingLeft: 8,\r\n color: theme.palette.secondary.main || '#fbff7d',\r\n },\r\n itemFolderIconBack: {\r\n position: 'absolute',\r\n top: 22,\r\n left: 18,\r\n zIndex: 1,\r\n color: theme.palette.mode === 'dark' ? '#FFF' : '#000',\r\n },\r\n itemSizeTile: {\r\n width: '100%',\r\n height: 16,\r\n textAlign: 'center',\r\n fontSize: 10,\r\n },\r\n itemImageTile: {\r\n width: 'calc(100% - 8px)',\r\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\r\n margin: 4,\r\n display: 'block',\r\n textAlign: 'center',\r\n objectFit: 'contain',\r\n },\r\n itemIconTile: {\r\n width: '100%',\r\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\r\n display: 'block',\r\n objectFit: 'contain',\r\n },\r\n\r\n itemSelected: {\r\n background: theme.palette.primary.main,\r\n color: Utils.invertColor(theme.palette.primary.main, true),\r\n },\r\n\r\n itemTable: {\r\n userSelect: 'none',\r\n cursor: 'pointer',\r\n height: ROW_HEIGHT,\r\n display: 'inline-flex',\r\n lineHeight: `${ROW_HEIGHT}px`,\r\n '&:hover': {\r\n background: theme.palette.secondary.light,\r\n color: Utils.invertColor(theme.palette.secondary.main, true),\r\n },\r\n },\r\n itemNameTable: {\r\n display: 'inline-block',\r\n paddingLeft: 10,\r\n fontSize: '1rem',\r\n verticalAlign: 'top',\r\n flexGrow: 1,\r\n },\r\n itemNameFolderTable: {\r\n fontWeight: 'bold',\r\n },\r\n itemSizeTable: {\r\n display: 'inline-block',\r\n width: 60,\r\n verticalAlign: 'top',\r\n textAlign: 'right',\r\n },\r\n itemAccessTable: {\r\n // display: 'inline-block',\r\n verticalAlign: 'top',\r\n width: 60,\r\n textAlign: 'right',\r\n paddingRight: 5,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n },\r\n itemImageTable: {\r\n display: 'inline-block',\r\n width: 30,\r\n marginTop: 1,\r\n objectFit: 'contain',\r\n maxHeight: 30,\r\n },\r\n itemIconTable: {\r\n display: 'inline-block',\r\n marginTop: 1,\r\n width: 30,\r\n height: 30,\r\n },\r\n itemFolderTable: {\r\n\r\n },\r\n itemFolderTemp: {\r\n opacity: 0.4,\r\n },\r\n itemFolderIconTable: {\r\n marginTop: 1,\r\n marginLeft: theme.spacing(1),\r\n display: 'inline-block',\r\n width: 30,\r\n height: 30,\r\n color: theme.palette.secondary.main || '#fbff7d',\r\n },\r\n itemDownloadButtonTable: {\r\n display: 'inline-block',\r\n width: BUTTON_WIDTH,\r\n height: ROW_HEIGHT,\r\n minWidth: BUTTON_WIDTH,\r\n verticalAlign: 'middle',\r\n textAlign: 'center',\r\n padding: 0,\r\n borderRadius: BUTTON_WIDTH / 2,\r\n '&:hover': {\r\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255, 255, 255, 0.08)' : 'rgba(0, 0, 0, 0.08)',\r\n },\r\n '& span': {\r\n paddingTop: 9,\r\n },\r\n '& svg': {\r\n width: 14,\r\n height: 14,\r\n fontSize: '1rem',\r\n marginTop: -3,\r\n verticalAlign: 'middle',\r\n color: theme.palette.mode === 'dark' ? '#EEE' : '#111',\r\n },\r\n },\r\n itemDownloadEmptyTable: {\r\n display: 'inline-block',\r\n width: BUTTON_WIDTH,\r\n height: ROW_HEIGHT,\r\n minWidth: BUTTON_WIDTH,\r\n padding: 0,\r\n },\r\n itemAclButtonTable: {\r\n width: BUTTON_WIDTH,\r\n height: ROW_HEIGHT,\r\n minWidth: BUTTON_WIDTH,\r\n verticalAlign: 'top',\r\n padding: 0,\r\n fontSize: 12,\r\n display: 'flex',\r\n },\r\n itemDeleteButtonTable: {\r\n display: 'inline-block',\r\n width: BUTTON_WIDTH,\r\n height: ROW_HEIGHT,\r\n minWidth: BUTTON_WIDTH,\r\n verticalAlign: 'top',\r\n padding: 0,\r\n '& svg': {\r\n width: 18,\r\n height: 18,\r\n fontSize: '1.5rem',\r\n },\r\n },\r\n\r\n uploadDiv: {\r\n top: 0,\r\n zIndex: 1,\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n position: 'absolute',\r\n opacity: 0.9,\r\n textAlign: 'center',\r\n background: '#FFFFFF',\r\n },\r\n uploadDivDragging: {\r\n opacity: 1,\r\n },\r\n\r\n uploadCenterDiv: {\r\n margin: 20,\r\n border: '3px dashed grey',\r\n borderRadius: 30,\r\n width: 'calc(100% - 40px)',\r\n height: 'calc(100% - 40px)',\r\n position: 'relative',\r\n color: theme.palette.mode === 'dark' ? '#222' : '#CCC',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n uploadCenterIcon: {\r\n width: '25%',\r\n height: '25%',\r\n },\r\n uploadCenterText: {\r\n fontSize: 24,\r\n fontWeight: 'bold',\r\n },\r\n uploadCloseButton: {\r\n zIndex: 2,\r\n position: 'absolute',\r\n top: 30,\r\n right: 30,\r\n },\r\n uploadCenterTextAndIcon: {\r\n position: 'absolute',\r\n height: '30%',\r\n width: '100%',\r\n margin: 'auto',\r\n opacity: 0.3,\r\n },\r\n menuButtonExpertActive: {\r\n color: '#c00000',\r\n },\r\n menuButtonRestrictActive: {\r\n color: '#c05000',\r\n },\r\n pathDiv: {\r\n display: 'flex',\r\n width: `calc(100% - ${theme.spacing(2)})`,\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n textOverflow: 'clip',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n pathDivInput: {\r\n width: '100%',\r\n },\r\n pathDivBreadcrumbDir: {\r\n paddingLeft: 2,\r\n paddingRight: 2,\r\n cursor: 'pointer',\r\n '&:hover': {\r\n background: theme.palette.primary.main,\r\n },\r\n },\r\n backgroundImageLight: {\r\n background: 'white',\r\n },\r\n backgroundImageDark: {\r\n background: 'black',\r\n },\r\n backgroundImageColored: {\r\n background: 'silver',\r\n },\r\n '@media screen and (max-width: 500px)': {\r\n itemNameTable: {\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n textAlign: 'end',\r\n direction: 'rtl',\r\n },\r\n },\r\n specialFolder: {\r\n color: theme.palette.mode === 'dark' ? '#229b0f' : '#5dd300',\r\n },\r\n});\r\n\r\nconst USER_DATA = '0_userdata.0';\r\n\r\nfunction sortFolders(a, b) {\r\n if (a.folder && b.folder) {\r\n return a.name > b.name ? 1 : (a.name < b.name ? -1 : 0);\r\n }\r\n if (a.folder) {\r\n return -1;\r\n }\r\n if (b.folder) {\r\n return 1;\r\n }\r\n return a.name > b.name ? 1 : (a.name < b.name ? -1 : 0);\r\n}\r\n\r\nfunction getParentDir(dir) {\r\n const parts = (dir || '').split('/');\r\n parts.length && parts.pop();\r\n return parts.join('/');\r\n}\r\n\r\nfunction isFile(path) {\r\n const ext = Utils.getFileExtension(path);\r\n return !!(ext && ext.toLowerCase().match(/[a-z]+/) && ext.length < 5);\r\n}\r\n\r\nconst TABLE = 'Table';\r\nconst TILE = 'Tile';\r\n\r\n/**\r\n * @extends {React.Component<import('./types').FileBrowserProps>}\r\n */\r\nclass FileBrowser extends Component {\r\n /**\r\n * @param {Readonly<import(\"./types\").FileBrowserProps>} props\r\n */\r\n constructor(props) {\r\n super(props);\r\n let expanded = (window._localStorage || window.localStorage).getItem('files.expanded') || '[]';\r\n\r\n if (this.props.limitPath) {\r\n const parts = this.props.limitPath.split('/');\r\n this.limitToObjectID = parts[0];\r\n this.limitToPath = !parts.length ? null : (parts.length === 1 && parts[0] === '' ? null : parts.join('/'));\r\n if (this.limitToPath && this.limitToPath.endsWith('/')) {\r\n this.limitToPath.substring(0, this.limitToPath.length - 1);\r\n }\r\n }\r\n\r\n try {\r\n expanded = JSON.parse(expanded);\r\n if (this.limitToPath) {\r\n expanded = expanded.filter(id => id.startsWith(`${this.limitToPath}/`) || id === this.limitToPath || this.limitToPath.startsWith(`${id}/`));\r\n }\r\n } catch (e) {\r\n expanded = [];\r\n }\r\n\r\n let viewType;\r\n if (this.props.showViewTypeButton) {\r\n viewType = (window._localStorage || window.localStorage).getItem('files.viewType') || TABLE;\r\n } else {\r\n viewType = TABLE;\r\n }\r\n\r\n let selected = this.props.selected || (window._localStorage || window.localStorage).getItem('files.selected') || USER_DATA;\r\n\r\n let currentDir = '';\r\n\r\n if (props.restrictToFolder) {\r\n selected = props.restrictToFolder;\r\n currentDir = props.restrictToFolder;\r\n const parts = props.restrictToFolder.split('/');\r\n expanded = [];\r\n let path = '';\r\n for (let i = 0; i < parts.length; i++) {\r\n path += (path ? '/' : '') + parts[i];\r\n expanded.push(path);\r\n }\r\n } else {\r\n // TODO: Now we do not support multiple selection\r\n if (Array.isArray(selected)) {\r\n selected = selected[0];\r\n }\r\n\r\n if (isFile(selected)) {\r\n currentDir = getParentDir(selected);\r\n } else {\r\n currentDir = selected;\r\n }\r\n }\r\n const backgroundImage = (window._localStorage || window.localStorage).getItem('files.backgroundImage') || null;\r\n\r\n this.state = {\r\n viewType,\r\n folders: {},\r\n filterEmpty: (window._localStorage || window.localStorage).getItem('files.empty') !== 'false',\r\n expanded,\r\n currentDir,\r\n expertMode: this.props.expertMode,\r\n addFolder: false,\r\n uploadFile: false,\r\n deleteItem: '',\r\n // marked: [],\r\n viewer: '',\r\n formatEditFile: '',\r\n path: selected,\r\n selected,\r\n errorText: '',\r\n modalEditOfAccess: false,\r\n backgroundImage,\r\n queueLength: 0,\r\n loadAllFolders: false,\r\n // allFoldersLoaded: false,\r\n fileErrors: [],\r\n filterByType: props.filterByType || window.localStorage.getItem('files.filterByType') || '',\r\n showTypesMenu: null,\r\n restrictToFolder: props.restrictToFolder || '',\r\n };\r\n\r\n this.imagePrefix = this.props.imagePrefix || './files/';\r\n\r\n this.levelPadding = this.props.levelPadding || 20;\r\n this.mounted = true;\r\n this.suppressDeleteConfirm = 0;\r\n\r\n this.browseList = [];\r\n this.browseListRunning = false;\r\n this.initialReadFinished = false;\r\n this.supportSubscribes = null;\r\n this._tempTimeout = {};\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n if (props.expertMode !== undefined && props.expertMode !== state.expertMode) {\r\n return { expertMode: props.expertMode, loadAllFolders: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n async loadFolders() {\r\n this.initialReadFinished = false;\r\n\r\n let folders = await this.browseFolder('/');\r\n\r\n if (this.state.viewType === TABLE) {\r\n folders = await this.browseFolders([...this.state.expanded], folders);\r\n } else if (\r\n this.state.currentDir &&\r\n this.state.currentDir !== '/' &&\r\n (!this.limitToObjectID || this.state.currentDir.startsWith(this.limitToObjectID))\r\n ) {\r\n folders = await this.browseFolder(this.state.currentDir, folders);\r\n }\r\n\r\n this.setState({ folders }, () => {\r\n if (this.state.viewType === TABLE && !this.findItem(this.state.selected)) {\r\n const parts = this.state.selected.split('/');\r\n while (parts.length && !this.findItem(parts.join('/'))) {\r\n parts.pop();\r\n }\r\n let selected;\r\n if (parts.length) {\r\n selected = parts.join('/');\r\n } else {\r\n selected = USER_DATA;\r\n }\r\n this.setState({ selected, path: selected, pathFocus: false }, () => this.scrollToSelected());\r\n } else {\r\n this.scrollToSelected();\r\n }\r\n this.initialReadFinished = true;\r\n });\r\n }\r\n\r\n scrollToSelected() {\r\n if (this.mounted) {\r\n const el = document.getElementById(this.state.selected);\r\n el && el.scrollIntoView();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.mounted = true;\r\n this.loadFolders();\r\n return this.props.socket.checkFeatureSupported('BINARY_STATE_EVENT')\r\n .then(result => {\r\n this.supportSubscribes = result;\r\n this.supportSubscribes && this.props.socket.subscribeFiles('*', '*', this.onFileChange);\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n this.supportSubscribes && this.props.socket.unsubscribeFiles('*', '*', this.onFileChange);\r\n this.mounted = false;\r\n this.browseList = null;\r\n this.browseListRunning = false;\r\n Object.values(this._tempTimeout)\r\n .forEach(timer => timer && clearTimeout(timer));\r\n this._tempTimeout = {};\r\n }\r\n\r\n browseFolders(foldersList, _newFolders, _resolve) {\r\n if (!_newFolders) {\r\n _newFolders = {};\r\n Object.keys(this.state.folders).forEach(folder => _newFolders[folder] = this.state.folders[folder]);\r\n }\r\n\r\n if (!_resolve) {\r\n return new Promise(resolve => {\r\n this.browseFolders(foldersList, _newFolders, resolve);\r\n });\r\n }\r\n\r\n if (!foldersList || !foldersList.length) {\r\n return _resolve(_newFolders);\r\n }\r\n\r\n return this.browseFolder(foldersList.shift(), _newFolders)\r\n .then(() => setTimeout(() => this.browseFolders(foldersList, _newFolders, _resolve), 0))\r\n .catch(() => setTimeout(() => this.browseFolders(foldersList, _newFolders, _resolve), 0));\r\n }\r\n\r\n readDirSerial(adapter, relPath) {\r\n return new Promise((resolve, reject) => {\r\n if (this.browseList) { // if component still mounted\r\n this.browseList.push({\r\n resolve, reject, adapter, relPath,\r\n });\r\n !this.browseListRunning && this.processBrowseList();\r\n }\r\n });\r\n }\r\n\r\n processBrowseList(level) {\r\n if (!this.browseListRunning && this.browseList && this.browseList.length) {\r\n this.browseListRunning = true;\r\n if (this.browseList.length > 10) {\r\n // not too often\r\n if (!(this.browseList.length % 10)) {\r\n this.setState({ queueLength: this.browseList.length });\r\n }\r\n } else {\r\n this.setState({ queueLength: this.browseList.length });\r\n }\r\n\r\n this.browseList[0].processing = true;\r\n this.props.socket.readDir(this.browseList[0].adapter, this.browseList[0].relPath)\r\n .then(files => {\r\n if (this.browseList) { // if component still mounted\r\n const item = this.browseList.shift();\r\n if (item) {\r\n const resolve = item.resolve;\r\n item.resolve = null;\r\n item.reject = null;\r\n item.adapter = null;\r\n item.relPath = null;\r\n resolve(files);\r\n this.browseListRunning = false;\r\n if (this.browseList.length) {\r\n if (level < 5) {\r\n this.processBrowseList(level + 1);\r\n } else {\r\n setTimeout(() => this.processBrowseList(0), 0);\r\n }\r\n } else {\r\n this.setState({ queueLength: 0 });\r\n }\r\n } else {\r\n this.setState({ queueLength: 0 });\r\n }\r\n }\r\n })\r\n .catch(e => {\r\n if (this.browseList) { // if component still mounted\r\n const item = this.browseList.shift();\r\n if (item) {\r\n const reject = item.reject;\r\n item.resolve = null;\r\n item.reject = null;\r\n item.adapter = null;\r\n item.relPath = null;\r\n reject(e);\r\n this.browseListRunning = false;\r\n if (this.browseList.length) {\r\n if (level < 5) {\r\n this.processBrowseList(level + 1);\r\n } else {\r\n setTimeout(() => this.processBrowseList(0), 0);\r\n }\r\n } else {\r\n this.setState({ queueLength: 0 });\r\n }\r\n } else {\r\n this.setState({ queueLength: 0 });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n browseFolder(folderId, _newFolders, _checkEmpty, force) {\r\n if (typeof _newFolders === 'boolean') {\r\n force = _newFolders;\r\n _newFolders = null;\r\n }\r\n\r\n if (!_newFolders) {\r\n _newFolders = {};\r\n Object.keys(this.state.folders).forEach(folder =>\r\n _newFolders[folder] = this.state.folders[folder]);\r\n }\r\n\r\n if (_newFolders[folderId] && !force) {\r\n if (!_checkEmpty) {\r\n return new Promise((resolve, reject) => {\r\n Promise.all(_newFolders[folderId].filter(item => item.folder).map(item =>\r\n this.browseFolder(item.id, _newFolders, true)\r\n .catch(() => { })))\r\n .then(() => resolve(_newFolders))\r\n .catch(error => reject(error));\r\n });\r\n }\r\n\r\n return Promise.resolve(_newFolders);\r\n }\r\n\r\n if (!folderId || folderId === '/') {\r\n return this.props.socket.readMetaItems()\r\n .then(objs => {\r\n const _folders = [];\r\n let userData = null;\r\n\r\n if (this.state.restrictToFolder) {\r\n const adapter = this.state.restrictToFolder.split('/')[0];\r\n objs = objs.filter(obj => obj._id === adapter);\r\n } else if (!this.state.expertMode) {\r\n // load only adapter.admin and not other meta files like hm-rpc.0.devices.blablabla\r\n objs = objs.filter(obj => !obj._id.endsWith('.admin'));\r\n }\r\n\r\n const pos = objs.findIndex(obj => obj._id === 'system.meta.uuid');\r\n if (pos !== -1) {\r\n objs.splice(pos, 1);\r\n }\r\n\r\n objs.forEach(obj => {\r\n if (this.limitToObjectID && this.limitToObjectID !== obj._id) {\r\n return;\r\n }\r\n\r\n const item = {\r\n id: obj._id,\r\n name: obj._id,\r\n title: (obj.common && obj.common.name) || obj._id,\r\n meta: true,\r\n from: obj.from,\r\n ts: obj.ts,\r\n color: obj.common && obj.common.color,\r\n icon: obj.common && obj.common.icon,\r\n folder: true,\r\n acl: obj.acl,\r\n level: 0,\r\n };\r\n if (item.id === USER_DATA) {\r\n // user data must be first\r\n userData = item;\r\n } else {\r\n _folders.push(item);\r\n }\r\n });\r\n _folders.sort((a, b) => (a.id > b.id ? 1 : (a.id < b.id ? -1 : 0)));\r\n if (!this.limitToObjectID || this.limitToObjectID === USER_DATA) {\r\n userData && _folders.unshift(userData);\r\n }\r\n\r\n _newFolders[folderId || '/'] = _folders;\r\n\r\n if (!_checkEmpty) {\r\n return Promise.all(_folders.filter(item => item.folder).map(item =>\r\n this.browseFolder(item.id, _newFolders, true)\r\n .catch(() => { })))\r\n .then(() => _newFolders);\r\n }\r\n\r\n return _newFolders;\r\n })\r\n .catch(e => this.initialReadFinished && window.alert(`Cannot read meta items: ${e}`));\r\n }\r\n\r\n const parts = folderId.split('/');\r\n const level = parts.length;\r\n const adapter = parts.shift();\r\n const relPath = parts.join('/');\r\n\r\n // make all requests here serial\r\n return this.readDirSerial(adapter, relPath)\r\n .then(files => {\r\n const _folders = [];\r\n\r\n files.forEach(file => {\r\n const item = {\r\n id: `${folderId}/${file.file}`,\r\n ext: Utils.getFileExtension(file.file),\r\n folder: file.isDir,\r\n name: file.file,\r\n size: file.stats && file.stats.size,\r\n modified: file.modifiedAt,\r\n acl: file.acl,\r\n level,\r\n };\r\n\r\n if (this.state.restrictToFolder) {\r\n if (item.folder && (item.id.startsWith(`${this.state.restrictToFolder}/`) || item.id === this.state.restrictToFolder || this.state.restrictToFolder.startsWith(`${item.id}/`))) {\r\n _folders.push(item);\r\n } else if (item.id.startsWith(`${this.state.restrictToFolder}/`)) {\r\n _folders.push(item);\r\n }\r\n } else if (this.limitToPath) {\r\n if (item.folder && (item.id.startsWith(`${this.limitToPath}/`) || item.id === this.limitToPath || this.limitToPath.startsWith(`${item.id}/`))) {\r\n _folders.push(item);\r\n } else if (item.id.startsWith(`${this.limitToPath}/`)) {\r\n _folders.push(item);\r\n }\r\n } else {\r\n _folders.push(item);\r\n }\r\n });\r\n\r\n _folders.sort(sortFolders);\r\n _newFolders[folderId] = _folders;\r\n\r\n if (!_checkEmpty) {\r\n return Promise.all(_folders\r\n .filter(item => item.folder)\r\n .map(item => this.browseFolder(item.id, _newFolders, true)))\r\n .then(() => _newFolders);\r\n }\r\n\r\n return _newFolders;\r\n })\r\n .catch(e => {\r\n this.initialReadFinished && window.alert(`Cannot read ${adapter}${relPath ? `/${relPath}` : ''}: ${e}`);\r\n _newFolders[folderId] = [];\r\n return _newFolders;\r\n });\r\n }\r\n\r\n toggleFolder(item, e) {\r\n e && e.stopPropagation();\r\n const expanded = [...this.state.expanded];\r\n const pos = expanded.indexOf(item.id);\r\n if (pos === -1) {\r\n expanded.push(item.id);\r\n expanded.sort();\r\n\r\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\r\n\r\n if (!item.temp) {\r\n this.browseFolder(item.id)\r\n .then(folders => this.setState({ expanded, folders }))\r\n .catch(err => window.alert(err === NOT_FOUND ? this.props.t('ra_Cannot find \"%s\"', item.id) : this.props.t('ra_Cannot read \"%s\"', item.id)));\r\n } else {\r\n this.setState({ expanded });\r\n }\r\n } else {\r\n expanded.splice(pos, 1);\r\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\r\n this.setState({ expanded });\r\n }\r\n }\r\n\r\n onFileChange = (id, fileName, size) => {\r\n const key = `${id}/${fileName}`;\r\n const pos = key.lastIndexOf('/');\r\n const folder = key.substring(0, pos);\r\n console.log(`File changed ${key}[${size}]`);\r\n\r\n if (this.state.folders[folder]) {\r\n this._tempTimeout[folder] && clearTimeout(this._tempTimeout[folder]);\r\n\r\n this._tempTimeout[folder] = setTimeout(() => {\r\n delete this._tempTimeout[folder];\r\n\r\n this.browseFolder(folder, true)\r\n .then(folders => this.setState({ folders }));\r\n }, 300);\r\n }\r\n };\r\n\r\n changeFolder(e, folder) {\r\n e && e.stopPropagation();\r\n\r\n this.lastSelect = Date.now();\r\n\r\n let _folder = folder || getParentDir(this.state.currentDir);\r\n\r\n if (_folder === '/') {\r\n _folder = '';\r\n }\r\n\r\n (window._localStorage || window.localStorage).setItem('files.currentDir', _folder);\r\n\r\n if (folder && e && (e.altKey || e.shiftKey || e.ctrlKey || e.metaKey)) {\r\n return this.setState({ selected: _folder });\r\n }\r\n\r\n if (_folder && !this.state.folders[_folder]) {\r\n return this.browseFolder(_folder)\r\n .then(folders =>\r\n this.setState({\r\n folders,\r\n path: _folder,\r\n currentDir: _folder,\r\n selected: _folder,\r\n pathFocus: false,\r\n }, () =>\r\n this.props.onSelect && this.props.onSelect('')));\r\n }\r\n\r\n return this.setState({\r\n currentDir: _folder,\r\n selected: _folder,\r\n path: _folder,\r\n pathFocus: false,\r\n }, () =>\r\n this.props.onSelect && this.props.onSelect(''));\r\n }\r\n\r\n select(id, e, cb) {\r\n if (typeof e === 'function') {\r\n cb = e;\r\n e = null;\r\n }\r\n e && e.stopPropagation();\r\n this.lastSelect = Date.now();\r\n\r\n (window._localStorage || window.localStorage).setItem('files.selected', id);\r\n\r\n this.setState({ selected: id, path: id, pathFocus: false }, () => {\r\n if (this.props.onSelect) {\r\n const ext = Utils.getFileExtension(id);\r\n if ((!this.props.filterFiles || this.props.filterFiles.includes(ext)) &&\r\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(ext))\r\n ) {\r\n this.props.onSelect(id, false, !!this.state.folders[id]);\r\n } else {\r\n this.props.onSelect('');\r\n }\r\n }\r\n cb && cb();\r\n });\r\n }\r\n\r\n renderFolder(item, expanded) {\r\n if (this.state.viewType === TABLE &&\r\n this.state.filterEmpty &&\r\n (!this.state.folders[item.id] || !this.state.folders[item.id].length) &&\r\n item.id !== USER_DATA && !item.temp\r\n ) {\r\n return null;\r\n }\r\n const Icon = expanded ? IconOpen : IconClosed;\r\n const padding = this.state.viewType === TABLE ? item.level * this.levelPadding : 0;\r\n const isUserData = item.name === USER_DATA;\r\n const isSpecialData = isUserData || item.name === 'vis.0' || item.name === 'vis-2.0';\r\n\r\n return <div\r\n key={item.id}\r\n id={item.id}\r\n style={this.state.viewType === TABLE ? { marginLeft: padding, width: `calc(100% - ${padding}px` } : {}}\r\n onClick={e => (this.state.viewType === TABLE ? this.select(item.id, e) : this.changeFolder(e, item.id))}\r\n onDoubleClick={e => this.state.viewType === TABLE && this.toggleFolder(item, e)}\r\n title={item.title && typeof item.title === 'object' ? (item.title[this.props.lang] || item.title.end || '') : (item.title || null)}\r\n className={Utils.clsx(\r\n 'browserItem',\r\n this.props.classes[`item${this.state.viewType}`],\r\n this.props.classes[`itemFolder${this.state.viewType}`],\r\n this.state.selected === item.id && this.props.classes.itemSelected,\r\n item.temp && this.props.classes.itemFolderTemp,\r\n )}\r\n >\r\n <Icon\r\n className={Utils.clsx(this.props.classes[`itemFolderIcon${this.state.viewType}`], isSpecialData && this.props.classes.specialFolder)}\r\n onClick={this.state.viewType === TABLE ? e => this.toggleFolder(item, e) : undefined}\r\n />\r\n\r\n <div className={Utils.clsx(this.props.classes[`itemName${this.state.viewType}`], this.props.classes[`itemNameFolder${this.state.viewType}`])}>\r\n {isUserData ? this.props.t('ra_User files') : item.name}\r\n </div>\r\n\r\n <Hidden smDown>\r\n <div className={this.props.classes[`itemSize${this.state.viewType}`]}>\r\n {this.state.viewType === TABLE && this.state.folders[item.id] ? this.state.folders[item.id].length : ''}\r\n </div>\r\n </Hidden>\r\n\r\n <Hidden smDown>\r\n {this.state.viewType === TABLE && this.props.expertMode ? this.formatAcl(item.acl) : null}\r\n </Hidden>\r\n\r\n <Hidden smDown>\r\n {this.state.viewType === TABLE && this.props.expertMode ? <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} /> : null}\r\n </Hidden>\r\n {this.state.viewType === TABLE && this.props.allowDownload ? <div className={this.props.classes[`itemDownloadEmpty${this.state.viewType}`]} /> : null}\r\n\r\n {this.state.viewType === TABLE && this.props.allowDelete && this.state.folders[item.id] && this.state.folders[item.id].length ?\r\n <IconButton\r\n aria-label=\"delete\"\r\n onClick={e => {\r\n e.stopPropagation();\r\n if (this.suppressDeleteConfirm > Date.now()) {\r\n this.deleteItem(item.id);\r\n } else {\r\n this.setState({ deleteItem: item.id });\r\n }\r\n }}\r\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\r\n size=\"large\"\r\n >\r\n <DeleteIcon fontSize=\"small\" />\r\n </IconButton>\r\n :\r\n (this.state.viewType === TABLE && this.props.allowDelete ? <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} /> : null)}\r\n </div>;\r\n }\r\n\r\n renderBackFolder() {\r\n return <div\r\n key={this.state.currentDir}\r\n id={this.state.currentDir}\r\n onClick={e => this.changeFolder(e)}\r\n title={this.props.t('ra_Back to %s', getParentDir(this.state.currentDir))}\r\n className={Utils.clsx(\r\n 'browserItem',\r\n this.props.classes[`item${this.state.viewType}`],\r\n this.props.classes[`itemFolder${this.state.viewType}`],\r\n )}\r\n >\r\n <IconClosed className={this.props.classes[`itemFolderIcon${this.state.viewType}`]} />\r\n <IconBack className={this.props.classes.itemFolderIconBack} />\r\n\r\n <div\r\n className={Utils.clsx(this.props.classes[`itemName${this.state.viewType}`], this.props.classes[`itemNameFolder${this.state.viewType}`])}\r\n >\r\n..\r\n </div>\r\n </div>;\r\n }\r\n\r\n formatSize(size) {\r\n return <div className={this.props.classes[`itemSize${this.state.viewType}`]}>{size || size === 0 ? Utils.formatBytes(size) : ''}</div>;\r\n }\r\n\r\n formatAcl(acl) {\r\n let access = acl && (acl.permissions || acl.file);\r\n if (access) {\r\n access = access.toString(16).padStart(3, '0');\r\n }\r\n\r\n return <div className={this.props.classes[`itemAccess${this.state.viewType}`]}>\r\n {this.props.modalEditOfAccessControl ? <IconButton\r\n size=\"large\"\r\n onClick={() => this.setState({ modalEditOfAccess: true })}\r\n className={this.props.classes[`itemAclButton${this.state.viewType}`]}\r\n >\r\n {access || '---'}\r\n </IconButton> : access || '---'}\r\n </div>;\r\n }\r\n\r\n getFileIcon(ext) {\r\n switch (ext) {\r\n case 'json':\r\n case 'json5':\r\n return <JsonIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\r\n\r\n case 'css':\r\n return <CssIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\r\n\r\n case 'js':\r\n case 'ts':\r\n return <JSIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\r\n\r\n case 'html':\r\n case 'md':\r\n return <HtmlIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\r\n\r\n case 'mp3':\r\n case 'ogg':\r\n case 'wav':\r\n case 'm4a':\r\n case 'mp4':\r\n case 'flac':\r\n return <MusicIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\r\n\r\n default:\r\n return <FileIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\r\n }\r\n }\r\n\r\n static getEditFile(ext) {\r\n switch (ext) {\r\n case 'json':\r\n case 'json5':\r\n case 'js':\r\n case 'html':\r\n case 'txt':\r\n case 'css':\r\n case 'log':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n setStateBackgroundImage = () => {\r\n const array = ['light', 'dark', 'colored', 'delete'];\r\n this.setState(({ backgroundImage }) => {\r\n if (array.indexOf(backgroundImage) !== -1 && array.length - 1 !== array.indexOf(backgroundImage)) {\r\n (window._localStorage || window.localStorage).setItem('files.backgroundImage', array[array.indexOf(backgroundImage) + 1]);\r\n return { backgroundImage: array[array.indexOf(backgroundImage) + 1] };\r\n }\r\n (window._localStorage || window.localStorage).setItem('files.backgroundImage', array[0]);\r\n return { backgroundImage: array[0] };\r\n });\r\n };\r\n\r\n getClassBackgroundImage = () => {\r\n // ['light', 'dark', 'colored', 'delete']\r\n switch (this.state.backgroundImage) {\r\n case 'light':\r\n return this.props.classes.backgroundImageLight;\r\n case 'dark':\r\n return this.props.classes.backgroundImageDark;\r\n case 'colored':\r\n return this.props.classes.backgroundImageColored;\r\n case 'delete':\r\n return null;\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n renderFile(item) {\r\n const padding = this.state.viewType === TABLE ? item.level * this.levelPadding : 0;\r\n const ext = Utils.getFileExtension(item.name);\r\n\r\n return <div\r\n key={item.id}\r\n id={item.id}\r\n onDoubleClick={e => {\r\n e.stopPropagation();\r\n if (!this.props.onSelect) {\r\n this.setState({ viewer: this.imagePrefix + item.id, formatEditFile: ext });\r\n } else if (\r\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\r\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\r\n ) {\r\n this.props.onSelect(item.id, true, !!this.state.folders[item.id]);\r\n }\r\n }}\r\n onClick={e => this.select(item.id, e)}\r\n style={this.state.viewType === TABLE ? { marginLeft: padding, width: `calc(100% - ${padding}px)` } : {}}\r\n className={Utils.clsx(\r\n 'browserItem',\r\n this.props.classes[`item${this.state.viewType}`],\r\n this.props.classes[`itemFile${this.state.viewType}`],\r\n this.state.selected === item.id && this.props.classes.itemSelected,\r\n )}\r\n >\r\n {EXTENSIONS.images.includes(ext) ?\r\n this.state.fileErrors.includes(item.id) ?\r\n <IconNoIcon className={Utils.clsx(this.props.classes[`itemImage${this.state.viewType}`], this.getClassBackgroundImage())} /> :\r\n <img\r\n onError={e => {\r\n e.target.onerror = null;\r\n const fileErrors = [...this.state.fileErrors];\r\n if (!fileErrors.includes(item.id)) {\r\n fileErrors.push(item.id);\r\n this.setState({ fileErrors });\r\n }\r\n }}\r\n className={Utils.clsx(this.props.classes[`itemImage${this.state.viewType}`], this.getClassBackgroundImage())}\r\n src={this.imagePrefix + item.id}\r\n alt={item.name}\r\n />\r\n :\r\n this.getFileIcon(ext)}\r\n <div className={this.props.classes[`itemName${this.state.viewType}`]}>{item.name}</div>\r\n <Hidden smDown>{this.formatSize(item.size)}</Hidden>\r\n <Hidden smDown>{this.state.viewType === TABLE && this.props.expertMode ? this.formatAcl(item.acl) : null}</Hidden>\r\n <Hidden smDown>\r\n {this.state.viewType === TABLE && this.props.expertMode && FileBrowser.getEditFile(ext) ?\r\n <IconButton\r\n aria-label=\"edit\"\r\n onClick={e => {\r\n e.stopPropagation();\r\n if (!this.props.onSelect) {\r\n this.setState({ viewer: this.imagePrefix + item.id, formatEditFile: ext });\r\n } else if (\r\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\r\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\r\n ) {\r\n this.props.onSelect(item.id, true, !!this.state.folders[item.id]);\r\n }\r\n }}\r\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\r\n size=\"large\"\r\n >\r\n <EditIcon fontSize=\"small\" />\r\n </IconButton>\r\n :\r\n <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} />}\r\n </Hidden>\r\n {this.state.viewType === TABLE && this.props.allowDownload ? <a\r\n className={Utils.clsx('MuiButtonBase-root', 'MuiIconButton-root', 'MuiIconButton-sizeLarge', this.props.classes.itemDownloadButtonTable)}\r\n tabIndex=\"0\"\r\n download={item.id}\r\n href={this.imagePrefix + item.id}\r\n onClick={e => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n <DownloadIcon />\r\n </a> : null}\r\n\r\n {this.state.viewType === TABLE &&\r\n this.props.allowDelete &&\r\n item.id !== 'vis.0/' &&\r\n item.id !== 'vis-2.0/' &&\r\n item.id !== USER_DATA\r\n ?\r\n <IconButton\r\n aria-label=\"delete\"\r\n onClick={e => {\r\n e.stopPropagation();\r\n if (this.suppressDeleteConfirm > Date.now()) {\r\n this.deleteItem(item.id);\r\n } else {\r\n this.setState({ deleteItem: item.id });\r\n }\r\n }}\r\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\r\n size=\"large\"\r\n >\r\n <DeleteIcon fontSize=\"small\" />\r\n </IconButton>\r\n :\r\n (this.state.viewType === TABLE && this.props.allowDelete ?\r\n <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} />\r\n :\r\n null\r\n )}\r\n </div>;\r\n }\r\n\r\n renderItems(folderId) {\r\n if (this.state.folders && this.state.folders[folderId]) {\r\n // tile\r\n if (this.state.viewType === TILE) {\r\n const res = [];\r\n if (folderId && folderId !== '/') {\r\n res.push(this.renderBackFolder());\r\n }\r\n this.state.folders[folderId].forEach(item => {\r\n if (item.folder) {\r\n res.push(this.renderFolder(item));\r\n } else if (\r\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\r\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\r\n ) {\r\n res.push(this.renderFile(item));\r\n }\r\n });\r\n return res;\r\n }\r\n return this.state.folders[folderId].map(item => {\r\n const res = [];\r\n if (item.folder) {\r\n const expanded = this.state.expanded.includes(item.id);\r\n\r\n res.push(this.renderFolder(item, expanded));\r\n if (this.state.folders[item.id] && expanded) {\r\n res.push(this.renderItems(item.id));\r\n }\r\n } else if (\r\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\r\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\r\n ) {\r\n res.push(this.renderFile(item));\r\n } else {\r\n return null;\r\n }\r\n\r\n return res;\r\n });\r\n }\r\n\r\n return <div style={{ position: 'relative' }}>\r\n <CircularProgress key={folderId} color=\"secondary\" size={24} />\r\n <div style={{\r\n position: 'absolute', zIndex: 2, top: 4, width: 24, textAlign: 'center',\r\n }}\r\n >\r\n {this.state.queueLength}\r\n </div>\r\n </div>;\r\n }\r\n\r\n renderToolbar() {\r\n const IconType = this.props.showTypeSelector ? (FILE_TYPE_ICONS[this.state.filterByType || 'all'] || FILE_TYPE_ICONS.all) : null;\r\n\r\n const isInFolder = this.findFirstFolder(this.state.selected);\r\n\r\n return <Toolbar key=\"toolbar\" variant=\"dense\">\r\n {this.props.allowNonRestricted && this.props.restrictToFolder ? <IconButton\r\n edge=\"start\"\r\n title={this.state.restrictToFolder ? this.props.t('ra_Show all folders') : this.props.t('ra_Restrict to folder')}\r\n className={Utils.clsx(this.props.classes.menuButton, this.state.restrictToFolder && this.props.classes.menuButtonRestrictActive)}\r\n aria-label=\"restricted to folder\"\r\n onClick={() => this.setState({\r\n restrictToFolder: this.state.restrictToFolder ? '' : this.props.restrictToFolder,\r\n loadAllFolders: true,\r\n })}\r\n size=\"small\"\r\n >\r\n <RestrictedIcon fontSize=\"small\" />\r\n </IconButton> : null}\r\n {this.props.showExpertButton ? <IconButton\r\n edge=\"start\"\r\n title={this.props.t('ra_Toggle expert mode')}\r\n className={Utils.clsx(this.props.classes.menuButton, this.state.expertMode && this.props.classes.menuButtonExpertActive)}\r\n aria-label=\"expert mode\"\r\n onClick={() => this.setState({ expertMode: !this.state.expertMode })}\r\n size=\"small\"\r\n >\r\n <ExpertIcon fontSize=\"small\" />\r\n </IconButton> : null}\r\n {this.props.showViewTypeButton ? <IconButton\r\n edge=\"start\"\r\n title={this.props.t('ra_Toggle view mode')}\r\n className={this.props.classes.menuButton}\r\n aria-label=\"view mode\"\r\n onClick={() => {\r\n const viewType = this.state.viewType === TABLE ? TILE : TABLE;\r\n (window._localStorage || window.localStorage).setItem('files.viewType', viewType);\r\n let currentDir = this.state.selected;\r\n if (isFile(currentDir)) {\r\n currentDir = getParentDir(currentDir);\r\n }\r\n this.setState({ viewType, currentDir }, () => {\r\n if (this.state.viewType === TABLE) {\r\n this.scrollToSelected();\r\n }\r\n });\r\n }}\r\n size=\"small\"\r\n >\r\n {this.state.viewType !== TABLE ? <IconList fontSize=\"small\" /> : <IconTile fontSize=\"small\" />}\r\n </IconButton> : null}\r\n <IconButton\r\n edge=\"start\"\r\n title={this.props.t('ra_Hide empty folders')}\r\n className={this.props.classes.menuButton}\r\n color={this.state.filterEmpty ? 'secondary' : 'inherit'}\r\n aria-label=\"filter empty\"\r\n onClick={() => {\r\n (window._localStorage || window.localStorage).setItem('file.empty', !this.state.filterEmpty);\r\n this.setState({ filterEmpty: !this.state.filterEmpty });\r\n }}\r\n size=\"small\"\r\n >\r\n <EmptyFilterIcon fontSize=\"small\" />\r\n </IconButton>\r\n <IconButton\r\n edge=\"start\"\r\n title={this.props.t('ra_Reload files')}\r\n className={this.props.classes.menuButton}\r\n color=\"inherit\"\r\n aria-label=\"reload files\"\r\n onClick={() => this.setState({ folders: {} }, () => this.loadFolders())}\r\n size=\"small\"\r\n >\r\n <RefreshIcon fontSize=\"small\" />\r\n </IconButton>\r\n {this.props.allowCreateFolder ? <IconButton\r\n edge=\"start\"\r\n disabled={\r\n !this.state.selected ||\r\n !isInFolder ||\r\n (\r\n this.limitToPath &&\r\n !this.state.selected.startsWith(`${this.limitToPath}/`) &&\r\n this.limitToPath !== this.state.selected\r\n )\r\n }\r\n title={this.props.t('ra_Create folder')}\r\n className={this.props.classes.menuButton}\r\n color=\"inherit\"\r\n aria-label=\"add folder\"\r\n onClick={() => this.setState({ addFolder: true })}\r\n size=\"small\"\r\n >\r\n <AddFolderIcon fontSize=\"small\" />\r\n </IconButton> : null}\r\n {this.props.allowUpload ? <IconButton\r\n edge=\"start\"\r\n disabled={\r\n !this.state.selected ||\r\n !isInFolder ||\r\n (\r\n this.limitToPath &&\r\n !this.state.selected.startsWith(`${this.limitToPath}/`) &&\r\n this.limitToPath !== this.state.selected\r\n )\r\n }\r\n title={this.props.t('ra_Upload file')}\r\n className={this.props.classes.menuButton}\r\n color=\"inherit\"\r\n aria-label=\"upload file\"\r\n onClick={() => this.setState({ uploadFile: true })}\r\n size=\"small\"\r\n >\r\n <UploadIcon fontSize=\"small\" />\r\n </IconButton> : null}\r\n {this.props.showTypeSelector ? <Tooltip title={this.props.t('ra_Filter files')}>\r\n <IconButton size=\"small\" onClick={e => this.setState({ showTypesMenu: e.target })}>\r\n <IconType fontSize=\"small\" />\r\n </IconButton>\r\n </Tooltip> : null}\r\n {this.state.showTypesMenu ? <Menu\r\n open={!0}\r\n anchorEl={this.state.showTypesMenu}\r\n onClose={() => this.setState({ showTypesMenu: null })}\r\n >\r\n {Object.keys(FILE_TYPE_ICONS).map(type => {\r\n const MyIcon = FILE_TYPE_ICONS[type];\r\n return <MenuItem\r\n key={type}\r\n selected={this.state.filterByType === type}\r\n onClick={() => {\r\n if (type === 'all') {\r\n (window._localStorage || window.localStorage).removeItem('files.filterByType');\r\n this.setState({ filterByType: '', showTypesMenu: null });\r\n } else {\r\n (window._localStorage || window.localStorage).setItem('files.filterByType', type);\r\n this.setState({ filterByType: type, showTypesMenu: null });\r\n }\r\n }}\r\n >\r\n <ListItemIcon><MyIcon fontSize=\"small\" /></ListItemIcon>\r\n <ListItemText>{this.props.t(`ra_fileType_${type}`)}</ListItemText>\r\n </MenuItem>;\r\n })}\r\n </Menu> : null}\r\n <Tooltip title={this.props.t('ra_Background image')}>\r\n <IconButton\r\n color=\"inherit\"\r\n edge=\"start\"\r\n className={this.props.classes.menuButton}\r\n onClick={this.setStateBackgroundImage}\r\n size=\"small\"\r\n >\r\n <Brightness5Icon fontSize=\"small\" />\r\n </IconButton>\r\n </Tooltip>\r\n {this.state.viewType !== TABLE && this.props.allowDelete ? <Tooltip title={this.props.t('ra_Delete')}>\r\n <span>\r\n <IconButton\r\n aria-label=\"delete\"\r\n disabled={\r\n !this.state.selected ||\r\n this.state.selected === 'vis.0/' ||\r\n this.state.selected === 'vis-2.0/' ||\r\n this.state.selected === USER_DATA\r\n }\r\n color=\"inherit\"\r\n edge=\"start\"\r\n className={this.props.classes.menuButton}\r\n onClick={e => {\r\n e.stopPropagation();\r\n if (this.suppressDeleteConfirm > Date.now()) {\r\n this.deleteItem(this.state.selected);\r\n } else {\r\n this.setState({ deleteItem: this.state.selected });\r\n }\r\n }}\r\n size=\"small\"\r\n >\r\n <DeleteIcon fontSize=\"small\" />\r\n </IconButton>\r\n </span>\r\n </Tooltip> : null}\r\n </Toolbar>;\r\n }\r\n\r\n findItem(id, folders) {\r\n folders = folders || this.state.folders;\r\n if (!folders) {\r\n return null;\r\n }\r\n const parts = id.split('/');\r\n parts.pop();\r\n const parentFolder = parts.join('/') || '/';\r\n if (!folders[parentFolder]) {\r\n return null;\r\n }\r\n return folders[parentFolder].find(item => item.id === id);\r\n }\r\n\r\n renderInputDialog() {\r\n if (this.state.addFolder) {\r\n const parentFolder = this.findFirstFolder(this.state.selected);\r\n\r\n if (!parentFolder) {\r\n return window.alert(this.props.t('ra_Invalid parent folder!'));\r\n }\r\n\r\n return <TextInputDialog\r\n key=\"inputDialog\"\r\n applyText={this.props.t('ra_Create')}\r\n cancelText={this.props.t('ra_Cancel')}\r\n titleText={this.props.t('ra_Create new folder in %s', this.state.selected)}\r\n promptText={this.props.t('ra_If no file will be created in the folder, it will disappear after the browser closed')}\r\n labelText={this.props.t('ra_Folder name')}\r\n verify={text => (this.state.folders[parentFolder].find(item => item.name === text) ? '' : this.props.t('ra_Duplicate name'))}\r\n onClose={name => {\r\n if (name) {\r\n const folders = {};\r\n Object.keys(this.state.folders).forEach(folder => folders[folder] = this.state.folders[folder]);\r\n const parent = this.findItem(parentFolder);\r\n const id = `${parentFolder}/${name}`;\r\n folders[parentFolder].push({\r\n id,\r\n level: parent.level + 1,\r\n name,\r\n folder: true,\r\n temp: true,\r\n });\r\n\r\n folders[parentFolder].sort(sortFolders);\r\n\r\n folders[id] = [];\r\n const expanded = [...this.state.expanded];\r\n if (!expanded.includes(parentFolder)) {\r\n expanded.push(parentFolder);\r\n expanded.sort();\r\n }\r\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\r\n this.setState({ addFolder: false, folders, expanded }, () =>\r\n this.select(id));\r\n } else {\r\n this.setState({ addFolder: false });\r\n }\r\n }}\r\n replace={text => text.replace(/[^-_\\w\\d]/, '_')}\r\n />;\r\n }\r\n return null;\r\n }\r\n\r\n componentDidUpdate(/* prevProps , prevState, snapshot */) {\r\n this.setOpacityTimer && clearTimeout(this.setOpacityTimer);\r\n this.setOpacityTimer = setTimeout(() => {\r\n this.setOpacityTimer = null;\r\n const items = window.document.getElementsByClassName('browserItem');\r\n for (let i = 0; i < items.length; i++) {\r\n items[i].style.opacity = 1;\r\n }\r\n }, 100);\r\n }\r\n\r\n uploadFile(fileName, data) {\r\n const parts = fileName.split('/');\r\n const adapter = parts.shift();\r\n return this.props.socket.writeFile64(adapter, parts.join('/'), data)\r\n .catch(e => window.alert(`Cannot write file: ${e}`));\r\n }\r\n\r\n findFirstFolder(id) {\r\n let parentFolder = id;\r\n const item = this.findItem(parentFolder);\r\n // find folder\r\n if (item && !item.folder) {\r\n const parts = parentFolder.split('/');\r\n parts.pop();\r\n parentFolder = '';\r\n while (parts.length) {\r\n const _item = this.findItem(parts.join('/'));\r\n if (_item && _item.folder) {\r\n parentFolder = parts.join('/');\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return parentFolder;\r\n }\r\n\r\n renderUpload() {\r\n if (this.state.uploadFile) {\r\n return [\r\n <Fab\r\n key=\"close\"\r\n color=\"primary\"\r\n aria-label=\"close\"\r\n className={this.props.classes.uploadCloseButton}\r\n onClick={() => this.setState({ uploadFile: false })}\r\n >\r\n <CloseIcon />\r\n </Fab>,\r\n <Dropzone\r\n key=\"dropzone\"\r\n onDragEnter={() => this.setState({ uploadFile: 'dragging' })}\r\n onDragLeave={() => this.setState({ uploadFile: true })}\r\n onDrop={acceptedFiles => {\r\n let count = acceptedFiles.length;\r\n\r\n acceptedFiles.forEach(file => {\r\n const reader = new FileReader();\r\n\r\n reader.onabort = () => console.log('file reading was aborted');\r\n reader.onerror = () => console.log('file reading has failed');\r\n reader.onload = () => {\r\n const parentFolder = this.findFirstFolder(this.state.selected);\r\n\r\n if (!parentFolder) {\r\n window.alert(this.props.t('ra_Invalid parent folder!'));\r\n } else {\r\n const id = `${parentFolder}/${file.name}`;\r\n\r\n this.uploadFile(id, reader.result)\r\n .then(() => {\r\n if (!--count) {\r\n this.setState({ uploadFile: false }, () => {\r\n if (this.supportSubscribes) {\r\n // open current folder\r\n const expanded = [...this.state.expanded];\r\n if (!expanded.includes(parentFolder)) {\r\n expanded.push(parentFolder);\r\n expanded.sort();\r\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\r\n }\r\n this.setState({ expanded }, () =>\r\n this.select(id));\r\n } else {\r\n setTimeout(\r\n () =>\r\n this.browseFolder(parentFolder, true)\r\n .then(folders => {\r\n // open current folder\r\n const expanded = [...this.state.expanded];\r\n if (!expanded.includes(parentFolder)) {\r\n expanded.push(parentFolder);\r\n expanded.sort();\r\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\r\n }\r\n this.setState({ folders, expanded }, () =>\r\n this.select(id));\r\n }),\r\n 500,\r\n );\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n reader.readAsArrayBuffer(file);\r\n });\r\n }}\r\n >\r\n {({ getRootProps, getInputProps }) => (\r\n <div\r\n className={Utils.clsx(this.props.classes.uploadDiv, this.state.uploadFile === 'dragging' && this.props.classes.uploadDivDragging)}\r\n {...getRootProps()}\r\n >\r\n <input {...getInputProps()} />\r\n <div className={this.props.classes.uploadCenterDiv}>\r\n <div className={this.props.classes.uploadCenterTextAndIcon}>\r\n <UploadIcon className={this.props.classes.uploadCenterIcon} />\r\n <div className={this.props.classes.uploadCenterText}>\r\n {\r\n this.state.uploadFile === 'dragging' ? this.props.t('ra_Drop file here') :\r\n this.props.t('ra_Place your files here or click here to open the browse dialog')\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>)}\r\n </Dropzone>,\r\n ];\r\n }\r\n return null;\r\n }\r\n\r\n deleteRecursive(id) {\r\n const item = this.findItem(id);\r\n if (item.folder) {\r\n return (this.state.folders[id] ? Promise.all(this.state.folders[id].map(_item =>\r\n this.deleteRecursive(_item.id))) : Promise.resolve())\r\n .then(() => {\r\n // If it is folder of second level\r\n if (item.level >= 1) {\r\n const parts = id.split('/');\r\n const adapter = parts.shift();\r\n this.props.socket.deleteFolder(adapter, parts.join('/'))\r\n .then(() => {\r\n // remove this folder\r\n const folders = JSON.parse(JSON.stringify(this.state.folders));\r\n delete folders[item.id];\r\n // delete folder from parent item\r\n const parentId = getParentDir(item.id);\r\n const parentFolder = folders[parentId];\r\n if (parentFolder) {\r\n const pos = parentFolder.indexOf(parentFolder.find(f => f.id === item.id));\r\n if (pos !== -1) {\r\n parentFolder.splice(pos, 1);\r\n }\r\n\r\n this.select(parentId, () => this.setState({ folders }));\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n const parts = id.split('/');\r\n const adapter = parts.shift();\r\n if (parts.length) {\r\n return this.props.socket.deleteFile(adapter, parts.join('/'))\r\n .catch(e => window.alert(`Cannot delete file: ${e}`));\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n deleteItem(deleteItem) {\r\n deleteItem = deleteItem || this.state.deleteItem;\r\n\r\n this.setState({ deleteItem: '' }, () =>\r\n this.deleteRecursive(deleteItem)\r\n .then(() => {\r\n const newState = {};\r\n const pos = this.state.expanded.indexOf(deleteItem);\r\n if (pos !== -1) {\r\n const expanded = [...this.state.expanded];\r\n expanded.splice(pos, 1);\r\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\r\n newState.expanded = expanded;\r\n }\r\n\r\n if (this.state.selected === deleteItem) {\r\n const parts = this.state.selected.split('/');\r\n parts.pop();\r\n newState.selected = parts.join('/');\r\n }\r\n\r\n if (!this.supportSubscribes) {\r\n const parentFolder = this.findFirstFolder(deleteItem);\r\n const folders = {};\r\n\r\n Object.keys(this.state.folders).forEach(name => {\r\n if (name !== parentFolder && !name.startsWith(`${parentFolder}/`)) {\r\n folders[name] = this.state.folders[name];\r\n }\r\n });\r\n\r\n newState.folders = folders;\r\n\r\n this.setState(newState, () =>\r\n setTimeout(() => this.browseFolders([...this.state.expanded], folders)\r\n .then(_folders => this.setState({ folders: _folders })), 200));\r\n } else {\r\n this.setState(newState);\r\n }\r\n }));\r\n }\r\n\r\n renderDeleteDialog() {\r\n if (this.state.deleteItem) {\r\n return <Dialog\r\n key=\"deleteDialog\"\r\n open={!0}\r\n onClose={() => this.setState({ deleteItem: '' })}\r\n aria-labelledby=\"ar_dialog_file_delete_title\"\r\n >\r\n <DialogTitle id=\"ar_dialog_file_delete_title\">{this.props.t('ra_Confirm deletion of %s', this.state.deleteItem.split('/').pop())}</DialogTitle>\r\n <DialogContent>\r\n <DialogContentText>\r\n {this.props.t('ra_Are you sure?')}\r\n </DialogContentText>\r\n </DialogContent>\r\n <DialogActions>\r\n <Button\r\n color=\"grey\"\r\n variant=\"contained\"\r\n onClick={() => {\r\n this.suppressDeleteConfirm = Date.now() + 60000 * 5;\r\n this.deleteItem();\r\n }}\r\n >\r\n {this.props.t('ra_Delete (no confirm for 5 mins)')}\r\n </Button>\r\n <Button variant=\"contained\" onClick={() => this.deleteItem()} color=\"primary\" autoFocus>{this.props.t('ra_Delete')}</Button>\r\n <Button variant=\"contained\" onClick={() => this.setState({ deleteItem: '' })} color=\"grey\">{this.props.t('ra_Cancel')}</Button>\r\n </DialogActions>\r\n </Dialog>;\r\n }\r\n return false;\r\n }\r\n\r\n renderViewDialog() {\r\n return this.state.viewer ? <FileViewer\r\n supportSubscribes={this.supportSubscribes}\r\n key={this.state.viewer}\r\n href={this.state.viewer}\r\n formatEditFile={this.state.formatEditFile}\r\n themeType={this.props.themeType}\r\n setStateBackgroundImage={this.setStateBackgroundImage}\r\n getClassBackgroundImage={this.getClassBackgroundImage}\r\n t={this.props.t}\r\n socket={this.props.socket}\r\n lang={this.props.lang}\r\n expertMode={this.state.expertMode}\r\n onClose={() => this.setState({ viewer: '', formatEditFile: '' })}\r\n /> : null;\r\n }\r\n\r\n renderError() {\r\n if (this.state.errorText) {\r\n return <ErrorDialog\r\n classes={{ }}\r\n key=\"errorDialog\"\r\n text={this.state.errorText}\r\n onClose={() => this.setState({ errorText: '' })}\r\n />;\r\n }\r\n return null;\r\n }\r\n\r\n // used in tabs/Files\r\n // eslint-disable-next-line react/no-unused-class-component-methods\r\n updateItemsAcl(info) {\r\n this.cacheFolders = this.cacheFolders || JSON.parse(JSON.stringify(this.state.folders));\r\n let changed;\r\n\r\n info.forEach(it => {\r\n const item = this.findItem(it.id, this.cacheFolders);\r\n if (item && JSON.stringify(item.acl) !== JSON.stringify(it.acl)) {\r\n item.acl = it.acl;\r\n changed = true;\r\n }\r\n });\r\n if (changed) {\r\n this.cacheFoldersTimeout && clearTimeout(this.cacheFoldersTimeout);\r\n this.cacheFoldersTimeout = setTimeout(() => {\r\n this.cacheFoldersTimeout = null;\r\n const folders = this.cacheFolders;\r\n this.cacheFolders = null;\r\n this.setState({ folders });\r\n }, 200);\r\n }\r\n }\r\n\r\n changeToPath() {\r\n setTimeout(() => {\r\n if (this.state.path !== this.state.selected && (!this.lastSelect || Date.now() - this.lastSelect > 100)) {\r\n let folder = this.state.path;\r\n if (isFile(this.state.path)) {\r\n folder = getParentDir(this.state.path);\r\n }\r\n new Promise(resolve => {\r\n if (!this.state.folders[folder]) {\r\n this.browseFolder(folder)\r\n .then(folders => this.setState({ folders }, () => resolve(true)))\r\n .catch(err => this.setState({ errorText: err === NOT_FOUND ? this.props.t('ra_Cannot find \"%s\"', folder) : this.props.t('ra_Cannot read \"%s\"', folder) }));\r\n } else {\r\n resolve(true);\r\n }\r\n })\r\n .then(result =>\r\n result && this.setState({ selected: this.state.path, currentDir: folder, pathFocus: false }));\r\n } else if (!this.lastSelect || Date.now() - this.lastSelect > 100) {\r\n this.setState({ pathFocus: false });\r\n }\r\n }, 100);\r\n }\r\n\r\n renderBreadcrumb() {\r\n const parts = this.state.currentDir.startsWith('/') ? this.state.currentDir.split('/') : (`/${this.state.currentDir}`).split('/');\r\n const p = [];\r\n return <Breadcrumbs style={{ paddingLeft: 8 }}>\r\n {parts.map((part, i) => {\r\n part && p.push(part);\r\n const path = p.join('/');\r\n if (i < parts.length - 1) {\r\n return <div\r\n key={`${this.state.selected}_${i}`}\r\n className={this.props.classes.pathDivBreadcrumbDir}\r\n onClick={e => this.changeFolder(e, path || '/')}\r\n >\r\n {part || this.props.t('ra_Root')}\r\n </div>;\r\n }\r\n\r\n return <div\r\n className={this.props.classes.pathDivBreadcrumbSelected}\r\n key={`${this.state.selected}_${i}`}\r\n onClick={() => this.setState({ pathFocus: true })}\r\n >\r\n {part}\r\n </div>;\r\n })}\r\n </Breadcrumbs>;\r\n }\r\n\r\n renderPath() {\r\n return <div key=\"path\" className={this.props.classes.pathDiv}>\r\n {this.state.pathFocus ?\r\n <Input\r\n value={this.state.path}\r\n onKeyDown={e => {\r\n if (e.keyCode === 13) {\r\n this.changeToPath();\r\n } else if (e.keyCode === 27) {\r\n this.setState({ pathFocus: false });\r\n }\r\n }}\r\n endAdornment={<IconButton size=\"small\" onClick={() => this.changeToPath()}><EnterIcon /></IconButton>}\r\n onBlur={() => this.changeToPath()}\r\n onChange={e => this.setState({ path: e.target.value })}\r\n className={this.props.classes.pathDivInput}\r\n />\r\n :\r\n this.renderBreadcrumb()}\r\n </div>;\r\n }\r\n\r\n render() {\r\n if (!this.props.ready) {\r\n return <LinearProgress />;\r\n }\r\n\r\n if (this.state.loadAllFolders && !this.foldersLoading) {\r\n this.foldersLoading = true;\r\n setTimeout(() => {\r\n this.setState({ loadAllFolders: false, folders: {} }, () => {\r\n this.foldersLoading = false;\r\n this.loadFolders();\r\n });\r\n }, 300);\r\n }\r\n\r\n return <div style={this.props.style} className={Utils.clsx(this.props.classes.root, this.props.className)}>\r\n {this.props.showToolbar ? this.renderToolbar() : null}\r\n {this.state.viewType === TILE ? this.renderPath() : null}\r\n <div\r\n className={Utils.clsx(this.props.classes.filesDiv, this.props.classes[`filesDiv${this.state.viewType}`])}\r\n onClick={e => {\r\n if (this.state.viewType !== TABLE) {\r\n if (this.state.selected !== (this.state.currentDir || '/')) {\r\n this.changeFolder(e, this.state.currentDir || '/');\r\n } else {\r\n e.stopPropagation();\r\n }\r\n }\r\n }}\r\n >\r\n {this.state.viewType === TABLE ? this.renderItems('/') : this.renderItems(this.state.currentDir || '/')}\r\n {this.state.viewType !== TABLE ? <div className={this.props.classes.filesDivHint}>{this.props.t('ra_select_folder_hint')}</div> : null}\r\n </div>\r\n {this.props.allowUpload ? this.renderInputDialog() : null}\r\n {this.props.allowUpload ? this.renderUpload() : null}\r\n {this.props.allowDelete ? this.renderDeleteDialog() : null}\r\n {this.props.allowView ? this.renderViewDialog() : null}\r\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this)}\r\n {this.renderError()}\r\n </div>;\r\n }\r\n}\r\n\r\nFileBrowser.defaultProps = {\r\n modalEditOfAccessControl: () => { },\r\n};\r\n\r\nFileBrowser.propTypes = {\r\n style: PropTypes.object,\r\n className: PropTypes.string,\r\n t: PropTypes.func.isRequired,\r\n lang: PropTypes.string.isRequired,\r\n socket: PropTypes.object.isRequired,\r\n ready: PropTypes.bool,\r\n expertMode: PropTypes.bool,\r\n showTypeSelector: PropTypes.bool,\r\n showToolbar: PropTypes.bool,\r\n allowUpload: PropTypes.bool,\r\n allowDownload: PropTypes.bool,\r\n allowCreateFolder: PropTypes.bool,\r\n allowDelete: PropTypes.bool,\r\n allowView: PropTypes.bool,\r\n imagePrefix: PropTypes.string,\r\n showExpertButton: PropTypes.bool,\r\n viewType: PropTypes.string,\r\n showViewTypeButton: PropTypes.bool,\r\n themeType: PropTypes.string,\r\n restrictToFolder: PropTypes.string, // If defined, allow selecting only files from this folder\r\n allowNonRestricted: PropTypes.bool, // If restrictToFolder defined, allow selecting files outside of this folder\r\n\r\n selected: PropTypes.string,\r\n tileView: PropTypes.bool,\r\n filterFiles: PropTypes.array, // like ['png', 'svg', 'bmp', 'jpg', 'jpeg', 'gif']\r\n filterByType: PropTypes.string, // images, code or txt from EXTENSIONS\r\n onSelect: PropTypes.func, // function (id, isDoubleClick)\r\n\r\n modalEditOfAccessControl: PropTypes.func,\r\n};\r\n\r\n/** @type {typeof FileBrowser} */\r\nconst _export = withWidth()(withStyles(styles)(FileBrowser));\r\nexport default _export;\r\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileViewer.js","names":["_react","_interopRequireWildcard","require","_styles","_propTypes","_interopRequireDefault","_material","_fa","_iconsMaterial","_IconNoIcon","_withWidth","_Utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_callSuper","o","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","valueOf","styles","dialog","height","paper","content","textAlign","textarea","width","img","objectFit","dialogTitle","justifyContent","display","EXTENSIONS","exports","images","code","txt","audio","video","bufferToBase64","buffer","isFull","binary","bytes","Uint8Array","len","byteLength","String","fromCharCode","window","btoa","FileViewer","_Component","_inherits2","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","id","fileName","size","state","changed","timeout","clearTimeout","setTimeout","alert","text","readFile","setState","forceUpdate","Date","now","ext","Utils","getFileExtension","href","editing","editingValue","copyPossible","includes","imgError","_createClass2","key","value","_this2","parts","split","splice","adapter","name","join","socket","then","data","file","undefined","newState","type","toLowerCase","endsWith","atob","console","error","detectMimeType","concat","componentDidMount","supportSubscribes","subscribeFiles","onFileChanged","componentWillUnmount","getContent","_this3","createElement","className","clsx","classes","getClassBackgroundImage","onError","target","onerror","src","alt","TextField","variant","multiline","inputProps","readOnly","InputProps","render","_this4","Dialog","scrollPaper","scroll","open","onClose","fullWidth","maxWidth","DialogTitle","IconButton","color","onClick","setStateBackgroundImage","Brightness6","DialogContent","DialogActions","Button","copyToClipboard","startIcon","FaCopy","disabled","writeFile64","Save","Close","getEditFile","Component","propTypes","PropTypes","func","string","isRequired","bool","_export","withWidth","withStyles","_default"],"sources":["FileViewer.js"],"sourcesContent":["// File viewer in adapter-react does not support write\r\n// import { Buffer } from 'buffer';\r\nimport React, { Component } from 'react';\r\nimport { withStyles } from '@mui/styles';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {\r\n TextField,\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n IconButton,\r\n} from '@mui/material';\r\n\r\n// Icons\r\nimport { FaCopy as CopyIcon } from 'react-icons/fa';\r\nimport {\r\n Close as CloseIcon,\r\n Save as SaveIcon,\r\n Brightness6 as Brightness5Icon,\r\n} from '@mui/icons-material';\r\n\r\nimport IconNoIcon from '../icons/IconNoIcon';\r\nimport withWidth from './withWidth';\r\nimport Utils from './Utils';\r\n// File viewer in adapter-react does not use ace editor\r\n// import Editor from './Editor';\r\n\r\nconst styles = () => ({\r\n dialog: {\r\n height: '100%',\r\n },\r\n paper: {\r\n height: 'calc(100% - 64px)',\r\n },\r\n content: {\r\n textAlign: 'center',\r\n },\r\n textarea: {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n img: {\r\n width: 'auto',\r\n height: 'calc(100% - 5px)',\r\n objectFit: 'contain',\r\n },\r\n dialogTitle: {\r\n justifyContent: 'space-between',\r\n display: 'flex',\r\n },\r\n});\r\n\r\nexport const EXTENSIONS = {\r\n images: ['png', 'jpg', 'svg', 'jpeg', 'bmp', 'gif', 'apng', 'avif', 'webp'],\r\n code: ['js', 'json', 'json5', 'md'],\r\n txt: ['log', 'txt', 'html', 'css', 'xml'],\r\n audio: ['mp3', 'wav', 'ogg', 'acc'],\r\n video: ['mp4', 'mov', 'avi'],\r\n};\r\n\r\nfunction bufferToBase64(buffer, isFull) {\r\n let binary = '';\r\n const bytes = new Uint8Array(buffer);\r\n const len = bytes.byteLength;\r\n for (let i = 0; i < len && (isFull || i < 50); i++) {\r\n binary += String.fromCharCode(bytes[i]);\r\n }\r\n return window.btoa(binary);\r\n}\r\n\r\n/**\r\n * @typedef {object} FileViewerProps\r\n * @property {string} [key] The key to identify this component.\r\n * @property {import('../types').Translator} t Translation function\r\n * @property {ioBroker.Languages} [lang] The selected language.\r\n * @property {boolean} [expertMode] Is expert mode enabled? (default: false)\r\n * @property {() => void} onClose Callback when the viewer is closed.\r\n * @property {string} href The URL to the file to be displayed.\r\n *\r\n * @extends {React.Component<FileViewerProps>}\r\n */\r\nclass FileViewer extends Component {\r\n /**\r\n * @param {Readonly<FileViewerProps>} props\r\n */\r\n constructor(props) {\r\n super(props);\r\n const ext = Utils.getFileExtension(this.props.href);\r\n\r\n this.state = {\r\n text: null,\r\n code: null,\r\n ext,\r\n // File viewer in adapter-react does not support write\r\n editing: /* !!this.props.formatEditFile || */ false,\r\n editingValue: null,\r\n copyPossible: EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext),\r\n forceUpdate: Date.now(),\r\n changed: false,\r\n imgError: false,\r\n };\r\n }\r\n\r\n readFile() {\r\n if (this.props.href) {\r\n const parts = this.props.href.split('/');\r\n parts.splice(0, 2);\r\n const adapter = parts[0];\r\n const name = parts.splice(1).join('/');\r\n\r\n this.props.socket.readFile(adapter, name)\r\n .then(data => {\r\n if (data.file !== undefined) {\r\n data = data.file;\r\n }\r\n\r\n const newState = { copyPossible: this.state.copyPossible, ext: this.state.ext };\r\n // try to detect valid extension\r\n if (data.type === 'Buffer') {\r\n if (name.toLowerCase().endsWith('.json5')) {\r\n newState.ext = 'json5';\r\n newState.copyPossible = true;\r\n try {\r\n data = atob(bufferToBase64(data.data, true));\r\n } catch (e) {\r\n console.error('Cannot convert base64 to string');\r\n data = '';\r\n }\r\n } else {\r\n const ext = Utils.detectMimeType(bufferToBase64(data.data));\r\n if (ext) {\r\n newState.ext = ext;\r\n newState.copyPossible = EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext);\r\n }\r\n }\r\n }\r\n\r\n if (newState.copyPossible) {\r\n if (EXTENSIONS.txt.includes(newState.ext)) {\r\n newState.text = data;\r\n newState.editingValue = data;\r\n } else if (EXTENSIONS.code.includes(newState.ext)) {\r\n newState.code = data;\r\n newState.editingValue = data;\r\n }\r\n }\r\n\r\n this.setState(newState);\r\n })\r\n .catch(e => window.alert(`Cannot read file: ${e}`));\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.readFile();\r\n\r\n const parts = this.props.href.split('/');\r\n parts.splice(0, 2);\r\n const adapter = parts[0];\r\n const name = parts.splice(1).join('/');\r\n\r\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.timeout && clearTimeout(this.timeout);\r\n const parts = this.props.href.split('/');\r\n parts.splice(0, 2);\r\n const adapter = parts[0];\r\n const name = parts.splice(1).join('/');\r\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\r\n }\r\n\r\n onFileChanged = (id, fileName, size) => {\r\n if (!this.state.changed) {\r\n this.timeout && clearTimeout(this.timeout);\r\n this.timeout = setTimeout(() => {\r\n this.timeout = null;\r\n if (size === null) {\r\n window.alert('Show file was deleted!');\r\n } else if (this.state.text !== null || this.state.code !== null) {\r\n this.readFile();\r\n } else {\r\n this.setState({ forceUpdate: Date.now() });\r\n }\r\n }, 300);\r\n }\r\n };\r\n\r\n writeFile64 = () => {\r\n /*\r\n // File viewer in adapter-react does not support write\r\n const parts = this.props.href.split('/');\r\n const data = this.state.editingValue;\r\n parts.splice(0, 2);\r\n const adapter = parts[0];\r\n const name = parts.splice(1).join('/');\r\n this.props.socket.writeFile64(adapter, name, Buffer.from(data).toString('base64'))\r\n .then(() => this.props.onClose())\r\n .catch(e => window.alert(`Cannot write file: ${e}`));\r\n */\r\n };\r\n\r\n static getEditFile(ext) {\r\n switch (ext) {\r\n case 'json':\r\n return 'json';\r\n case 'json5':\r\n return 'json5';\r\n case 'js':\r\n return 'javascript';\r\n case 'html':\r\n return 'html';\r\n case 'txt':\r\n return 'html';\r\n default:\r\n return 'json';\r\n }\r\n }\r\n\r\n getContent() {\r\n if (EXTENSIONS.images.includes(this.state.ext)) {\r\n if (this.state.imgError) {\r\n return <IconNoIcon className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())} />;\r\n }\r\n return <img\r\n onError={e => {\r\n e.target.onerror = null;\r\n this.setState({ imgError: true });\r\n }}\r\n className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())}\r\n src={`${this.props.href}?ts=${this.state.forceUpdate}`}\r\n alt={this.props.href}\r\n />;\r\n }\r\n if (this.state.code !== null || this.state.text !== null || this.state.editing) {\r\n // File viewer in adapter-react does not support write\r\n // return <AceEditor\r\n // mode={FileViewer.getEditFile(this.props.formatEditFile)}\r\n // width=\"100%\"\r\n // height=\"100%\"\r\n // theme={this.props.themeName === 'dark' ? 'clouds_midnight' : 'chrome'}\r\n // value={this.state.editingValue || this.state.code || this.state.text}\r\n // onChange={newValue => this.setState({ editingValue: newValue, changed: true })}\r\n // name=\"UNIQUE_ID_OF_DIV\"\r\n // readOnly={!this.state.editing}\r\n // fontSize={14}\r\n // setOptions={{\r\n // enableBasicAutocompletion: true,\r\n // enableLiveAutocompletion: true,\r\n // enableSnippets: true,\r\n // }}\r\n // editorProps={{ $blockScrolling: true }}\r\n // />;\r\n return <TextField\r\n variant=\"standard\"\r\n className={this.props.classes.textarea}\r\n multiline\r\n inputProps={{ readOnly: !this.state.editing }}\r\n value={this.state.editingValue || this.state.code || this.state.text}\r\n // onChange={newValue => this.setState({ editingValue: newValue, changed: true })}\r\n InputProps={{ readOnly: !this.state.editing }}\r\n />;\r\n }\r\n return null;\r\n }\r\n\r\n render() {\r\n return <Dialog\r\n classes={{ scrollPaper: this.props.classes.dialog, paper: this.props.classes.paper }}\r\n scroll=\"paper\"\r\n open={!!this.props.href}\r\n onClose={() => this.props.onClose()}\r\n fullWidth\r\n maxWidth=\"xl\"\r\n aria-labelledby=\"ar_dialog_file_view_title\"\r\n >\r\n <div className={this.props.classes.dialogTitle}>\r\n <DialogTitle id=\"ar_dialog_file_view_title\">{`${this.props.t(this.state.editing ? 'Edit' : 'View')}: ${this.props.href}`}</DialogTitle>\r\n {EXTENSIONS.images.includes(this.state.ext) && <div>\r\n <IconButton\r\n size=\"large\"\r\n color=\"inherit\"\r\n onClick={this.props.setStateBackgroundImage}\r\n >\r\n <Brightness5Icon />\r\n </IconButton>\r\n </div>}\r\n </div>\r\n <DialogContent className={this.props.classes.content}>\r\n {this.getContent()}\r\n </DialogContent>\r\n <DialogActions>\r\n {this.state.copyPossible ?\r\n <Button\r\n color=\"grey\"\r\n onClick={e => Utils.copyToClipboard(this.state.text || this.state.code, e)}\r\n startIcon={<CopyIcon />}\r\n >\r\n {this.props.t('Copy content')}\r\n </Button> : null}\r\n {this.state.editing ?\r\n <Button\r\n color=\"grey\"\r\n disabled={this.state.editingValue === this.state.code || this.state.editingValue === this.state.text}\r\n variant=\"contained\"\r\n onClick={this.writeFile64}\r\n startIcon={<SaveIcon />}\r\n >\r\n {this.props.t('Save')}\r\n </Button> : null}\r\n <Button\r\n variant=\"contained\"\r\n onClick={() => this.props.onClose()}\r\n color=\"primary\"\r\n startIcon={<CloseIcon />}\r\n >\r\n {this.props.t('Close')}\r\n </Button>\r\n </DialogActions>\r\n </Dialog>;\r\n }\r\n}\r\n\r\nFileViewer.propTypes = {\r\n t: PropTypes.func,\r\n onClose: PropTypes.func,\r\n href: PropTypes.string.isRequired,\r\n supportSubscribes: PropTypes.bool,\r\n};\r\n\r\n/** @type {typeof FileViewer} */\r\nconst _export = withWidth()(withStyles(styles)(FileViewer));\r\nexport default _export;\r\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactInlinesvg","_iconsMaterial","_IconAlias","_Utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","getSystemIcon","obj","icon","id","_id","startsWith","createElement","SettingsApplications","className","Photo","SupervisedUserCircle","PersonOutlined","Router","endsWith","Wifi","Info","type","Description","getSelectIdIcon","imagePrefix","src","common","cIcon","includes","instance","concat","name","split","Icon","_React$Component","_inherits2","_classCallCheck2","_createClass2","key","value","render","props","title","undefined","style","height","marginTop","styleUTF8","Utils","clsx","_this$props$style","_this$props$style2","_this$props$style3","width","alt","React","Component","propTypes","PropTypes","string","oneOfType","object","isRequired","_default","exports"],"sources":["Icon.js"],"sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SVG from 'react-inlinesvg';\r\n\r\nimport {\r\n SettingsApplications as IconSystem,\r\n Photo as IconPhoto,\r\n SupervisedUserCircle as IconGroup,\r\n PersonOutlined as IconUser,\r\n Router as IconHost,\r\n Wifi as IconConnection,\r\n Info as IconInfo,\r\n Description as IconMeta,\r\n} from '@mui/icons-material';\r\nimport IconAlias from '../icons/IconAlias';\r\n\r\nimport Utils from './Utils';\r\n\r\nexport function getSystemIcon(obj) {\r\n let icon;\r\n const id = obj?._id;\r\n\r\n if (!id) {\r\n return null;\r\n }\r\n\r\n // system or design has special icons\r\n if (id.startsWith('_design/') || (id === 'system')) {\r\n icon = <IconSystem className=\"iconOwn\" />;\r\n } else if (id === '0_userdata' || id === '0_userdata.0') {\r\n icon = <IconPhoto className=\"iconOwn\" />;\r\n } else if (id === 'alias' || id === 'alias.0') {\r\n icon = <IconAlias className=\"iconOwn\" />;\r\n } else if (id === 'system.adapter') {\r\n icon = <IconSystem className=\"iconOwn\" />;\r\n } else if (id === 'system.group') {\r\n icon = <IconGroup className=\"iconOwn\" />;\r\n } else if (id === 'system.user') {\r\n icon = <IconUser className=\"iconOwn\" />;\r\n } else if (id === 'system.host') {\r\n icon = <IconHost className=\"iconOwn\" />;\r\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\r\n icon = <IconConnection className=\"iconOwn\" />;\r\n } else if (id.endsWith('.info')) {\r\n icon = <IconInfo className=\"iconOwn\" />;\r\n } else if (obj?.type === 'meta') {\r\n icon = <IconMeta className=\"iconOwn\" />;\r\n }\r\n\r\n return icon || null;\r\n}\r\n\r\nexport function getSelectIdIcon(obj, imagePrefix) {\r\n imagePrefix = imagePrefix || '.'; // http://localhost:8081';\r\n let src = '';\r\n const common = obj?.common;\r\n\r\n if (common) {\r\n const cIcon = common.icon;\r\n if (cIcon) {\r\n if (!cIcon.startsWith('data:image/')) {\r\n if (cIcon.includes('.')) {\r\n let instance;\r\n if (obj.type === 'instance' || obj.type === 'adapter') {\r\n src = `${imagePrefix}/adapter/${common.name}/${cIcon}`;\r\n } else if (obj._id && obj._id.startsWith('system.adapter.')) {\r\n instance = obj._id.split('.', 3);\r\n if (cIcon[0] === '/') {\r\n instance[2] += cIcon;\r\n } else {\r\n instance[2] += `/${cIcon}`;\r\n }\r\n src = `${imagePrefix}/adapter/${instance[2]}`;\r\n } else {\r\n instance = obj._id.split('.', 2);\r\n if (cIcon[0] === '/') {\r\n instance[0] += cIcon;\r\n } else {\r\n instance[0] += `/${cIcon}`;\r\n }\r\n src = `${imagePrefix}/adapter/${instance[0]}`;\r\n }\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n // base 64 image\r\n src = cIcon;\r\n }\r\n }\r\n }\r\n\r\n return src || null;\r\n}\r\n\r\nclass Icon extends React.Component {\r\n render() {\r\n if (this.props.src) {\r\n if (typeof this.props.src === 'string') {\r\n if (this.props.src.length < 3) {\r\n // utf-8 char\r\n return <span\r\n title={this.props.title || undefined}\r\n style={{ height: 27, marginTop: -8, ...(this.props.styleUTF8 || this.props.style) }}\r\n className={Utils.clsx(this.props.className, 'iconOwn')}\r\n >\r\n {this.props.src}\r\n </span>;\r\n }\r\n if (this.props.src.startsWith('data:image/svg')) {\r\n return <SVG\r\n title={this.props.title || undefined}\r\n src={this.props.src}\r\n className={Utils.clsx(this.props.className, 'iconOwn')}\r\n width={this.props.style?.width || 28}\r\n height={this.props.style?.height || this.props.style?.width || 28}\r\n style={this.props.style || {}}\r\n />;\r\n }\r\n return <img\r\n title={this.props.title || undefined}\r\n style={this.props.style || {}}\r\n className={Utils.clsx(this.props.className, 'iconOwn')}\r\n src={this.props.src}\r\n alt=\"\"\r\n />;\r\n }\r\n return this.props.src;\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nIcon.propTypes = {\r\n title: PropTypes.string,\r\n src: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n styleUTF8: PropTypes.object,\r\n};\r\n\r\nexport default Icon;\r\n"],"mappings":"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"}