@iobroker/adapter-react-v5 3.1.34 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/Components/404.js +0 -23
  2. package/Components/404.js.map +1 -1
  3. package/Components/ColorPicker.js +6 -37
  4. package/Components/ColorPicker.js.map +1 -1
  5. package/Components/ComplexCron.js +10 -84
  6. package/Components/ComplexCron.js.map +1 -1
  7. package/Components/CustomModal.js +29 -54
  8. package/Components/CustomModal.js.map +1 -1
  9. package/Components/FileBrowser.js +15 -265
  10. package/Components/FileBrowser.js.map +1 -1
  11. package/Components/FileViewer.js +7 -68
  12. package/Components/FileViewer.js.map +1 -1
  13. package/Components/Icon.d.ts +1 -1
  14. package/Components/Icon.js +2 -42
  15. package/Components/Icon.js.map +1 -1
  16. package/Components/IconPicker.js +6 -28
  17. package/Components/IconPicker.js.map +1 -1
  18. package/Components/IconSelector.js +3 -55
  19. package/Components/IconSelector.js.map +1 -1
  20. package/Components/Image.js +1 -38
  21. package/Components/Image.js.map +1 -1
  22. package/Components/JsonConfigComponent/ChipInput.js +66 -197
  23. package/Components/JsonConfigComponent/ChipInput.js.map +1 -1
  24. package/Components/JsonConfigComponent/ConfigAlive.js +0 -31
  25. package/Components/JsonConfigComponent/ConfigAlive.js.map +1 -1
  26. package/Components/JsonConfigComponent/ConfigAutocomplete.js +6 -39
  27. package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -1
  28. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +6 -52
  29. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
  30. package/Components/JsonConfigComponent/ConfigCRON.js +5 -39
  31. package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -1
  32. package/Components/JsonConfigComponent/ConfigCertificateSelect.js +4 -42
  33. package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
  34. package/Components/JsonConfigComponent/ConfigCheckbox.js +0 -28
  35. package/Components/JsonConfigComponent/ConfigCheckbox.js.map +1 -1
  36. package/Components/JsonConfigComponent/ConfigChip.js +4 -33
  37. package/Components/JsonConfigComponent/ConfigChip.js.map +1 -1
  38. package/Components/JsonConfigComponent/ConfigColor.js +0 -34
  39. package/Components/JsonConfigComponent/ConfigColor.js.map +1 -1
  40. package/Components/JsonConfigComponent/ConfigCoordinates.js +0 -33
  41. package/Components/JsonConfigComponent/ConfigCoordinates.js.map +1 -1
  42. package/Components/JsonConfigComponent/ConfigCustom.js +14 -73
  43. package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
  44. package/Components/JsonConfigComponent/ConfigDatePicker.js +0 -25
  45. package/Components/JsonConfigComponent/ConfigDatePicker.js.map +1 -1
  46. package/Components/JsonConfigComponent/ConfigFile.js +0 -46
  47. package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
  48. package/Components/JsonConfigComponent/ConfigFileSelector.js +7 -126
  49. package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
  50. package/Components/JsonConfigComponent/ConfigFunc.js +0 -34
  51. package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -1
  52. package/Components/JsonConfigComponent/ConfigGeneric.js +15 -110
  53. package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
  54. package/Components/JsonConfigComponent/ConfigIP.js +2 -35
  55. package/Components/JsonConfigComponent/ConfigIP.js.map +1 -1
  56. package/Components/JsonConfigComponent/ConfigImageUpload.js +4 -44
  57. package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
  58. package/Components/JsonConfigComponent/ConfigInstanceSelect.js +1 -59
  59. package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
  60. package/Components/JsonConfigComponent/ConfigJsonEditor.js +7 -40
  61. package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
  62. package/Components/JsonConfigComponent/ConfigLanguage.js +2 -42
  63. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
  64. package/Components/JsonConfigComponent/ConfigNumber.js +2 -45
  65. package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
  66. package/Components/JsonConfigComponent/ConfigObjectId.js +6 -40
  67. package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
  68. package/Components/JsonConfigComponent/ConfigPanel.js +7 -91
  69. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
  70. package/Components/JsonConfigComponent/ConfigPassword.js +0 -42
  71. package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -1
  72. package/Components/JsonConfigComponent/ConfigPattern.js +0 -25
  73. package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
  74. package/Components/JsonConfigComponent/ConfigRoom.js +0 -34
  75. package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -1
  76. package/Components/JsonConfigComponent/ConfigSelect.js +4 -34
  77. package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
  78. package/Components/JsonConfigComponent/ConfigSelectSendTo.js +11 -67
  79. package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
  80. package/Components/JsonConfigComponent/ConfigSendto.js +8 -91
  81. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
  82. package/Components/JsonConfigComponent/ConfigSetState.js +0 -55
  83. package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
  84. package/Components/JsonConfigComponent/ConfigSlider.js +0 -28
  85. package/Components/JsonConfigComponent/ConfigSlider.js.map +1 -1
  86. package/Components/JsonConfigComponent/ConfigStaticDivider.js +0 -21
  87. package/Components/JsonConfigComponent/ConfigStaticDivider.js.map +1 -1
  88. package/Components/JsonConfigComponent/ConfigStaticHeader.js +0 -24
  89. package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -1
  90. package/Components/JsonConfigComponent/ConfigStaticImage.js +0 -23
  91. package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
  92. package/Components/JsonConfigComponent/ConfigStaticText.js +0 -31
  93. package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
  94. package/Components/JsonConfigComponent/ConfigTable.js +13 -105
  95. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  96. package/Components/JsonConfigComponent/ConfigTabs.js +2 -35
  97. package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
  98. package/Components/JsonConfigComponent/ConfigText.js +0 -34
  99. package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
  100. package/Components/JsonConfigComponent/ConfigTextSendTo.js +0 -37
  101. package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
  102. package/Components/JsonConfigComponent/ConfigTimePicker.js +0 -25
  103. package/Components/JsonConfigComponent/ConfigTimePicker.js.map +1 -1
  104. package/Components/JsonConfigComponent/ConfigTopic.js +0 -29
  105. package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -1
  106. package/Components/JsonConfigComponent/ConfigUser.js +2 -40
  107. package/Components/JsonConfigComponent/ConfigUser.js.map +1 -1
  108. package/Components/JsonConfigComponent/index.js +5 -81
  109. package/Components/JsonConfigComponent/index.js.map +1 -1
  110. package/Components/Loader.js +2 -20
  111. package/Components/Loader.js.map +1 -1
  112. package/Components/Loaders/PT.js +2 -20
  113. package/Components/Loaders/PT.js.map +1 -1
  114. package/Components/Loaders/Vendor.js +2 -21
  115. package/Components/Loaders/Vendor.js.map +1 -1
  116. package/Components/Logo.js +6 -39
  117. package/Components/Logo.js.map +1 -1
  118. package/Components/MDUtils.js +3 -27
  119. package/Components/MDUtils.js.map +1 -1
  120. package/Components/ObjectBrowser.d.ts +1 -1
  121. package/Components/ObjectBrowser.js +181 -788
  122. package/Components/ObjectBrowser.js.map +1 -1
  123. package/Components/Router.js +7 -31
  124. package/Components/Router.js.map +1 -1
  125. package/Components/SaveCloseButtons.js +2 -32
  126. package/Components/SaveCloseButtons.js.map +1 -1
  127. package/Components/Schedule.js +29 -251
  128. package/Components/Schedule.js.map +1 -1
  129. package/Components/SelectWithIcon.d.ts +1 -1
  130. package/Components/SelectWithIcon.js +0 -48
  131. package/Components/SelectWithIcon.js.map +1 -1
  132. package/Components/SimpleCron/cron2text.js +45 -91
  133. package/Components/SimpleCron/cron2text.js.map +1 -1
  134. package/Components/SimpleCron/cronText.js +0 -6
  135. package/Components/SimpleCron/cronText.js.map +1 -1
  136. package/Components/SimpleCron/index.js +19 -102
  137. package/Components/SimpleCron/index.js.map +1 -1
  138. package/Components/SimpleCron/jquery.cron.locale.js +44 -24
  139. package/Components/SimpleCron/jquery.cron.locale.js.map +1 -1
  140. package/Components/TabContainer.js +2 -23
  141. package/Components/TabContainer.js.map +1 -1
  142. package/Components/TabContent.js +2 -22
  143. package/Components/TabContent.js.map +1 -1
  144. package/Components/TabHeader.js +1 -17
  145. package/Components/TabHeader.js.map +1 -1
  146. package/Components/TableResize.js +6 -51
  147. package/Components/TableResize.js.map +1 -1
  148. package/Components/TextWithIcon.js +0 -20
  149. package/Components/TextWithIcon.js.map +1 -1
  150. package/Components/ToggleThemeMenu.js +5 -13
  151. package/Components/ToggleThemeMenu.js.map +1 -1
  152. package/Components/TreeTable.js +4 -121
  153. package/Components/TreeTable.js.map +1 -1
  154. package/Components/UploadImage.js +17 -60
  155. package/Components/UploadImage.js.map +1 -1
  156. package/Components/Utils.js +87 -263
  157. package/Components/Utils.js.map +1 -1
  158. package/Components/copy-to-clipboard.js +16 -38
  159. package/Components/copy-to-clipboard.js.map +1 -1
  160. package/Components/withWidth.js +2 -10
  161. package/Components/withWidth.js.map +1 -1
  162. package/Connection.d.ts +1 -0
  163. package/Connection.js +156 -527
  164. package/Connection.js.map +1 -1
  165. package/Dialogs/ComplexCron.js +0 -34
  166. package/Dialogs/ComplexCron.js.map +1 -1
  167. package/Dialogs/Confirm.js +1 -39
  168. package/Dialogs/Confirm.js.map +1 -1
  169. package/Dialogs/Cron.js +1 -37
  170. package/Dialogs/Cron.js.map +1 -1
  171. package/Dialogs/Error.d.ts +1 -1
  172. package/Dialogs/Error.js +2 -29
  173. package/Dialogs/Error.js.map +1 -1
  174. package/Dialogs/FileSelect.js +2 -36
  175. package/Dialogs/FileSelect.js.map +1 -1
  176. package/Dialogs/Message.js +2 -27
  177. package/Dialogs/Message.js.map +1 -1
  178. package/Dialogs/SelectID.d.ts +1 -1
  179. package/Dialogs/SelectID.js +3 -40
  180. package/Dialogs/SelectID.js.map +1 -1
  181. package/Dialogs/SimpleCron.js +1 -33
  182. package/Dialogs/SimpleCron.js.map +1 -1
  183. package/Dialogs/TextInput.js +2 -34
  184. package/Dialogs/TextInput.js.map +1 -1
  185. package/GenericApp.js +55 -150
  186. package/GenericApp.js.map +1 -1
  187. package/Prompt.js +0 -2
  188. package/Prompt.js.map +1 -1
  189. package/README.md +11 -4
  190. package/Theme.js +7 -22
  191. package/Theme.js.map +1 -1
  192. package/i18n/uk.json +326 -0
  193. package/i18n.d.ts +2 -0
  194. package/i18n.js +9 -29
  195. package/i18n.js.map +1 -1
  196. package/icons/IconAdapter.d.ts +2 -2
  197. package/icons/IconAdapter.js +2 -6
  198. package/icons/IconAdapter.js.map +1 -1
  199. package/icons/IconAlias.d.ts +2 -2
  200. package/icons/IconAlias.js +2 -6
  201. package/icons/IconAlias.js.map +1 -1
  202. package/icons/IconChannel.d.ts +2 -2
  203. package/icons/IconChannel.js +2 -6
  204. package/icons/IconChannel.js.map +1 -1
  205. package/icons/IconClearFilter.d.ts +2 -2
  206. package/icons/IconClearFilter.js +0 -5
  207. package/icons/IconClearFilter.js.map +1 -1
  208. package/icons/IconClosed.d.ts +2 -2
  209. package/icons/IconClosed.js +0 -5
  210. package/icons/IconClosed.js.map +1 -1
  211. package/icons/IconCopy.d.ts +2 -2
  212. package/icons/IconCopy.js +0 -5
  213. package/icons/IconCopy.js.map +1 -1
  214. package/icons/IconDevice.d.ts +2 -2
  215. package/icons/IconDevice.js +0 -5
  216. package/icons/IconDevice.js.map +1 -1
  217. package/icons/IconDocument.d.ts +2 -2
  218. package/icons/IconDocument.js +0 -5
  219. package/icons/IconDocument.js.map +1 -1
  220. package/icons/IconDocumentReadOnly.d.ts +2 -2
  221. package/icons/IconDocumentReadOnly.js +0 -5
  222. package/icons/IconDocumentReadOnly.js.map +1 -1
  223. package/icons/IconExpert.d.ts +2 -2
  224. package/icons/IconExpert.js +0 -5
  225. package/icons/IconExpert.js.map +1 -1
  226. package/icons/IconFx.d.ts +2 -2
  227. package/icons/IconFx.js +0 -5
  228. package/icons/IconFx.js.map +1 -1
  229. package/icons/IconInstance.d.ts +2 -2
  230. package/icons/IconInstance.js +0 -5
  231. package/icons/IconInstance.js.map +1 -1
  232. package/icons/IconLogout.d.ts +2 -2
  233. package/icons/IconLogout.js +0 -5
  234. package/icons/IconLogout.js.map +1 -1
  235. package/icons/IconNoIcon.d.ts +2 -2
  236. package/icons/IconNoIcon.js +0 -5
  237. package/icons/IconNoIcon.js.map +1 -1
  238. package/icons/IconOpen.d.ts +2 -2
  239. package/icons/IconOpen.js +0 -5
  240. package/icons/IconOpen.js.map +1 -1
  241. package/icons/IconState.d.ts +2 -2
  242. package/icons/IconState.js +0 -6
  243. package/icons/IconState.js.map +1 -1
  244. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigCustom.js","names":["getOrLoadRemote","remote","shareScope","remoteFallbackUrl","undefined","Promise","resolve","reject","window","existingRemote","document","querySelector","onload","__initialized","__webpack_share_scopes__","init","console","error","onerror","d","script","createElement","type","setAttribute","async","src","getElementsByTagName","appendChild","loadComponent","sharedScope","module","url","container","get","factory","Module","ConfigCustom","props","state","Component","schema","setState","startsWith","location","protocol","host","replace","adapterName","i18n","pos","lastIndexOf","i18nURL","substring","lang","I18n","getLanguage","file","fetch","then","data","json","extendTranslations","log","name","split","uniqueName","fileToLoad","componentName","join","component","keys","Object","item","xs","lg","md","sm","assign","marginBottom","textAlign","width","style","themeType","darkStyle","newLine","flexBasis","height","propTypes","socket","PropTypes","object","string","themeName","className","attr","isRequired","onError","func","onChange"],"sources":["JsonConfigComponent/ConfigCustom.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Grid from '@mui/material/Grid';\n\nimport I18n from '../../i18n';\nconst getOrLoadRemote = (remote, shareScope, remoteFallbackUrl = undefined) =>\n new Promise((resolve, reject) => {\n // check if remote exists on window\n if (!window[remote]) {\n // search dom to see if remote tag exists, but might still be loading (async)\n const existingRemote = document.querySelector(`script[data-webpack=\"${remote}\"]`);\n // when remote is loaded.\n const onload = async () => {\n // check if it was initialized\n if (window[remote]) {\n if (!window[remote].__initialized) {\n // if share scope doesn't exist (like in webpack 4) then expect shareScope to be a manual object\n if (typeof __webpack_share_scopes__ === 'undefined') {\n // use default share scope object passed in manually\n await window[remote].init(shareScope.default);\n } else {\n // otherwise, init share scope as usual\n // eslint-disable-next-line\n await window[remote].init(__webpack_share_scopes__[shareScope]);\n }\n // mark remote as initialized\n window[remote].__initialized = true;\n }\n } else {\n console.error('Cannot load ' + remote);\n return reject('Cannot load ' + remote);\n }\n // resolve promise so marking remote as loaded\n resolve(window[remote]);\n };\n\n if (existingRemote) {\n // if existing remote but not loaded, hook into its onload and wait for it to be ready\n existingRemote.onload = onload;\n existingRemote.onerror = reject;\n // check if remote fallback exists as param passed to function\n // TODO: should scan public config for a matching key if no override exists\n } else if (remoteFallbackUrl) {\n // inject remote if a fallback exists and call the same onload function\n const d = document;\n const script = d.createElement('script');\n script.type = 'text/javascript';\n // mark as data-webpack so runtime can track it internally\n script.setAttribute('data-webpack', `${remote}`);\n script.async = true;\n script.onerror = reject;\n script.onload = onload;\n script.src = remoteFallbackUrl;\n d.getElementsByTagName('head')[0].appendChild(script);\n } else {\n // no remote and no fallback exist, reject\n reject(`Cannot Find Remote ${remote} to inject`);\n }\n } else {\n // remote already instantiated, resolve\n resolve(window[remote]);\n }\n });\n\nconst loadComponent = (remote, sharedScope, module, url) => async () => {\n const container = await getOrLoadRemote(remote, sharedScope, url);\n const factory = await container.get(module);\n const Module = factory();\n return Module;\n};\n\nclass ConfigCustom extends Component {\n constructor(props) {\n super(props);\n // schema.url - location of Widget\n // schema.name - Component name\n // schema.i18n - i18n\n\n this.state = {\n Component: null,\n error: '',\n };\n }\n\n // load component dynamically\n async componentDidMount() {\n if (!this.props.schema.url) {\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: 'URL is empty. Cannot load custom component!' });\n return;\n }\n\n let url;\n /*if (this.props.schema.url.startsWith('http:') || this.props.schema.url.startsWith('https:')) {\n url = this.props.schema.url;\n } else */\n if (this.props.schema.url.startsWith('./')) {\n url = `${window.location.protocol}//${window.location.host}${this.props.schema.url.replace(/^\\./, '')}`;\n } else {\n url = `${window.location.protocol}//${window.location.host}/adapter/${this.props.adapterName}/${this.props.schema.url}`;\n }\n\n if (this.props.schema.i18n === true) {\n // load i18n from files\n const pos = url.lastIndexOf('/');\n let i18nURL;\n if (pos !== -1) {\n i18nURL = url.substring(0, pos);\n } else {\n i18nURL = url;\n }\n const lang = I18n.getLanguage();\n const file = `${i18nURL}/i18n/${lang}.json`;\n\n await fetch(file)\n .then(data => data.json())\n .then(json => I18n.extendTranslations(json, lang))\n .catch(error => console.log(`Cannot load i18n \"${file}\": ${error}`));\n } else if (this.props.schema.i18n && typeof this.props.schema.i18n === 'object') {\n try {\n I18n.extendTranslations(this.props.schema.i18n);\n } catch (error) {\n console.error(`Cannot import i18n: ${error}`);\n }\n }\n\n try {\n const [uniqueName, fileToLoad, ...componentName] = this.props.schema.name.split('/');\n console.log(uniqueName, fileToLoad, componentName.join('/'));\n // const component = await window.importFederation(uniqueName, {url, format: 'esm', from: 'vite'}, fileToLoad);\n const component = (await loadComponent(uniqueName, 'default', `./${fileToLoad}`, url)()).default;\n\n if (!component || !component || !component[componentName.join('/')]) {\n const keys = Object.keys(component || {});\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: `Component ${this.props.schema.name} not found in ${this.props.schema.url}. Found: ${keys.join(', ')}` });\n } else {\n this.setState({ Component: component[componentName.join('/')] });\n }\n } catch (error) {\n this.setState({ error: `Cannot import from ${this.props.schema.url}: ${error}` });\n }\n }\n\n render() {\n const Component = this.state.Component;\n\n // render temporary placeholder\n if (!Component) {\n if (this.state.error) {\n return;\n } else {\n const schema = this.props.schema || {};\n\n const item = <Grid\n item\n xs={schema.xs || undefined}\n lg={schema.lg || undefined}\n md={schema.md || undefined}\n sm={schema.sm || undefined}\n style={Object.assign({}, {\n marginBottom: 0,\n //marginRight: 8,\n textAlign: 'left',\n width: schema.type === 'divider' || schema.type === 'header' ? schema.width || '100%' : undefined\n }, schema.style, this.props.themeType === 'dark' ? schema.darkStyle : {})}>\n {this.state.error ? <div>{this.state.error}</div> : <LinearProgress />}\n </Grid>;\n\n if (schema.newLine) {\n return <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>;\n } else {\n return item;\n }\n }\n }\n\n return <Component {...this.props} />;\n }\n}\n\nConfigCustom.propTypes = {\n socket: PropTypes.object,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n attr: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object.isRequired,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default ConfigCustom;"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigCustom.js","names":["getOrLoadRemote","remote","shareScope","remoteFallbackUrl","undefined","Promise","resolve","reject","window","existingRemote","document","querySelector","onload","__initialized","__webpack_share_scopes__","init","console","error","onerror","d","script","createElement","type","setAttribute","async","src","getElementsByTagName","appendChild","loadComponent","sharedScope","module","url","container","get","factory","Module","ConfigCustom","props","state","Component","schema","setState","startsWith","location","protocol","host","replace","adapterName","i18n","pos","lastIndexOf","i18nURL","substring","lang","I18n","getLanguage","file","fetch","then","data","json","extendTranslations","log","name","split","uniqueName","fileToLoad","componentName","join","component","keys","Object","item","xs","lg","md","sm","assign","marginBottom","textAlign","width","style","themeType","darkStyle","newLine","flexBasis","height","propTypes","socket","PropTypes","object","string","themeName","className","attr","isRequired","onError","func","onChange"],"sources":["JsonConfigComponent/ConfigCustom.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Grid from '@mui/material/Grid';\n\nimport I18n from '../../i18n';\nconst getOrLoadRemote = (remote, shareScope, remoteFallbackUrl = undefined) =>\n new Promise((resolve, reject) => {\n // check if remote exists on window\n if (!window[remote]) {\n // search dom to see if remote tag exists, but might still be loading (async)\n const existingRemote = document.querySelector(`script[data-webpack=\"${remote}\"]`);\n // when remote is loaded.\n const onload = async () => {\n // check if it was initialized\n if (window[remote]) {\n if (!window[remote].__initialized) {\n // if share scope doesn't exist (like in webpack 4) then expect shareScope to be a manual object\n if (typeof __webpack_share_scopes__ === 'undefined') {\n // use default share scope object passed in manually\n await window[remote].init(shareScope.default);\n } else {\n // otherwise, init share scope as usual\n // eslint-disable-next-line\n await window[remote].init(__webpack_share_scopes__[shareScope]);\n }\n // mark remote as initialized\n window[remote].__initialized = true;\n }\n } else {\n console.error('Cannot load ' + remote);\n return reject('Cannot load ' + remote);\n }\n // resolve promise so marking remote as loaded\n resolve(window[remote]);\n };\n\n if (existingRemote) {\n // if existing remote but not loaded, hook into its onload and wait for it to be ready\n existingRemote.onload = onload;\n existingRemote.onerror = reject;\n // check if remote fallback exists as param passed to function\n // TODO: should scan public config for a matching key if no override exists\n } else if (remoteFallbackUrl) {\n // inject remote if a fallback exists and call the same onload function\n const d = document;\n const script = d.createElement('script');\n script.type = 'text/javascript';\n // mark as data-webpack so runtime can track it internally\n script.setAttribute('data-webpack', `${remote}`);\n script.async = true;\n script.onerror = reject;\n script.onload = onload;\n script.src = remoteFallbackUrl;\n d.getElementsByTagName('head')[0].appendChild(script);\n } else {\n // no remote and no fallback exist, reject\n reject(`Cannot Find Remote ${remote} to inject`);\n }\n } else {\n // remote already instantiated, resolve\n resolve(window[remote]);\n }\n });\n\nconst loadComponent = (remote, sharedScope, module, url) => async () => {\n const container = await getOrLoadRemote(remote, sharedScope, url);\n const factory = await container.get(module);\n const Module = factory();\n return Module;\n};\n\nclass ConfigCustom extends Component {\n constructor(props) {\n super(props);\n // schema.url - location of Widget\n // schema.name - Component name\n // schema.i18n - i18n\n\n this.state = {\n Component: null,\n error: '',\n };\n }\n\n // load component dynamically\n async componentDidMount() {\n if (!this.props.schema.url) {\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: 'URL is empty. Cannot load custom component!' });\n return;\n }\n\n let url;\n /*if (this.props.schema.url.startsWith('http:') || this.props.schema.url.startsWith('https:')) {\n url = this.props.schema.url;\n } else */\n if (this.props.schema.url.startsWith('./')) {\n url = `${window.location.protocol}//${window.location.host}${this.props.schema.url.replace(/^\\./, '')}`;\n } else {\n url = `${window.location.protocol}//${window.location.host}/adapter/${this.props.adapterName}/${this.props.schema.url}`;\n }\n\n if (this.props.schema.i18n === true) {\n // load i18n from files\n const pos = url.lastIndexOf('/');\n let i18nURL;\n if (pos !== -1) {\n i18nURL = url.substring(0, pos);\n } else {\n i18nURL = url;\n }\n const lang = I18n.getLanguage();\n const file = `${i18nURL}/i18n/${lang}.json`;\n\n await fetch(file)\n .then(data => data.json())\n .then(json => I18n.extendTranslations(json, lang))\n .catch(error => console.log(`Cannot load i18n \"${file}\": ${error}`));\n } else if (this.props.schema.i18n && typeof this.props.schema.i18n === 'object') {\n try {\n I18n.extendTranslations(this.props.schema.i18n);\n } catch (error) {\n console.error(`Cannot import i18n: ${error}`);\n }\n }\n\n try {\n const [uniqueName, fileToLoad, ...componentName] = this.props.schema.name.split('/');\n console.log(uniqueName, fileToLoad, componentName.join('/'));\n // const component = await window.importFederation(uniqueName, {url, format: 'esm', from: 'vite'}, fileToLoad);\n const component = (await loadComponent(uniqueName, 'default', `./${fileToLoad}`, url)()).default;\n\n if (!component || !component || !component[componentName.join('/')]) {\n const keys = Object.keys(component || {});\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: `Component ${this.props.schema.name} not found in ${this.props.schema.url}. Found: ${keys.join(', ')}` });\n } else {\n this.setState({ Component: component[componentName.join('/')] });\n }\n } catch (error) {\n this.setState({ error: `Cannot import from ${this.props.schema.url}: ${error}` });\n }\n }\n\n render() {\n const Component = this.state.Component;\n\n // render temporary placeholder\n if (!Component) {\n if (this.state.error) {\n return;\n } else {\n const schema = this.props.schema || {};\n\n const item = <Grid\n item\n xs={schema.xs || undefined}\n lg={schema.lg || undefined}\n md={schema.md || undefined}\n sm={schema.sm || undefined}\n style={Object.assign({}, {\n marginBottom: 0,\n //marginRight: 8,\n textAlign: 'left',\n width: schema.type === 'divider' || schema.type === 'header' ? schema.width || '100%' : undefined\n }, schema.style, this.props.themeType === 'dark' ? schema.darkStyle : {})}>\n {this.state.error ? <div>{this.state.error}</div> : <LinearProgress />}\n </Grid>;\n\n if (schema.newLine) {\n return <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>;\n } else {\n return item;\n }\n }\n }\n\n return <Component {...this.props} />;\n }\n}\n\nConfigCustom.propTypes = {\n socket: PropTypes.object,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n attr: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object.isRequired,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default ConfigCustom;"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AAEA;AACA;AAEA;AAA8B;AAAA;AAAA;AAAA;AAC9B,IAAMA,eAAe,GAAG,SAAlBA,eAAe,CAAIC,MAAM,EAAEC,UAAU;EAAA,IAAEC,iBAAiB,uEAAGC,SAAS;EAAA,OACtE,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IACjC;IACI,IAAI,CAACC,MAAM,CAACP,MAAM,CAAC,EAAE;MACjB;MACA,IAAMQ,cAAc,GAAGC,QAAQ,CAACC,aAAa,iCAAyBV,MAAM,SAAK;MACjF;MACA,IAAMW,MAAM;QAAA,yFAAG;UAAA;YAAA;cAAA;gBAAA;kBAAA,KAEPJ,MAAM,CAACP,MAAM,CAAC;oBAAA;oBAAA;kBAAA;kBAAA,IACTO,MAAM,CAACP,MAAM,CAAC,CAACY,aAAa;oBAAA;oBAAA;kBAAA;kBAAA,MAEzB,OAAOC,wBAAwB,KAAK,WAAW;oBAAA;oBAAA;kBAAA;kBAAA;kBAAA,OAEzCN,MAAM,CAACP,MAAM,CAAC,CAACc,IAAI,CAACb,UAAU,WAAQ,CAAC;gBAAA;kBAAA;kBAAA;gBAAA;kBAAA;kBAAA,OAIvCM,MAAM,CAACP,MAAM,CAAC,CAACc,IAAI,CAACD,wBAAwB,CAACZ,UAAU,CAAC,CAAC;gBAAA;kBAEnE;kBACAM,MAAM,CAACP,MAAM,CAAC,CAACY,aAAa,GAAG,IAAI;gBAAC;kBAAA;kBAAA;gBAAA;kBAGxCG,OAAO,CAACC,KAAK,CAAC,cAAc,GAAGhB,MAAM,CAAC;kBAAC,iCAChCM,MAAM,CAAC,cAAc,GAAGN,MAAM,CAAC;gBAAA;kBAE1C;kBACAK,OAAO,CAACE,MAAM,CAACP,MAAM,CAAC,CAAC;gBAAC;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA,CAC3B;QAAA,gBAtBKW,MAAM;UAAA;QAAA;MAAA,GAsBX;MAED,IAAIH,cAAc,EAAE;QAChB;QACAA,cAAc,CAACG,MAAM,GAAGA,MAAM;QAC9BH,cAAc,CAACS,OAAO,GAAGX,MAAM;QAC/B;QACA;MACJ,CAAC,MAAM,IAAIJ,iBAAiB,EAAE;QAC1B;QACA,IAAMgB,CAAC,GAAGT,QAAQ;QAClB,IAAMU,MAAM,GAAGD,CAAC,CAACE,aAAa,CAAC,QAAQ,CAAC;QACxCD,MAAM,CAACE,IAAI,GAAG,iBAAiB;QAC/B;QACAF,MAAM,CAACG,YAAY,CAAC,cAAc,YAAKtB,MAAM,EAAG;QAChDmB,MAAM,CAACI,KAAK,GAAG,IAAI;QACnBJ,MAAM,CAACF,OAAO,GAAGX,MAAM;QACvBa,MAAM,CAACR,MAAM,GAAGA,MAAM;QACtBQ,MAAM,CAACK,GAAG,GAAGtB,iBAAiB;QAC9BgB,CAAC,CAACO,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAACC,WAAW,CAACP,MAAM,CAAC;MACzD,CAAC,MAAM;QACH;QACAb,MAAM,8BAAuBN,MAAM,gBAAa;MACpD;IACJ,CAAC,MAAM;MACH;MACAK,OAAO,CAACE,MAAM,CAACP,MAAM,CAAC,CAAC;IAC3B;EACJ,CAAC,CAAC;AAAA;AAEN,IAAM2B,aAAa,GAAG,SAAhBA,aAAa,CAAI3B,MAAM,EAAE4B,WAAW,EAAEC,MAAM,EAAEC,GAAG;EAAA,kGAAK;IAAA;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OAChC/B,eAAe,CAACC,MAAM,EAAE4B,WAAW,EAAEE,GAAG,CAAC;UAAA;YAA3DC,SAAS;YAAA;YAAA,OACOA,SAAS,CAACC,GAAG,CAACH,MAAM,CAAC;UAAA;YAArCI,OAAO;YACPC,MAAM,GAAGD,OAAO,EAAE;YAAA,kCACjBC,MAAM;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAChB;AAAA;AAAC,IAEIC,YAAY;EAAA;EAAA;EACd,sBAAYC,KAAK,EAAE;IAAA;IAAA;IACf,0BAAMA,KAAK;IACX;IACA;IACA;;IAEA,MAAKC,KAAK,GAAG;MACTC,SAAS,EAAE,IAAI;MACftB,KAAK,EAAE;IACX,CAAC;IAAC;EACN;;EAEA;EAAA;IAAA;IAAA;MAAA,uGACA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,IACS,IAAI,CAACoB,KAAK,CAACG,MAAM,CAACT,GAAG;kBAAA;kBAAA;gBAAA;gBACtBf,OAAO,CAACC,KAAK,CAAC,6CAA6C,CAAC;gBAC5D,IAAI,CAACwB,QAAQ,CAAC;kBAAExB,KAAK,EAAE;gBAA8C,CAAC,CAAC;gBAAC;cAAA;gBAK5E;AACR;AACA;gBACQ,IAAI,IAAI,CAACoB,KAAK,CAACG,MAAM,CAACT,GAAG,CAACW,UAAU,CAAC,IAAI,CAAC,EAAE;kBACxCX,GAAG,aAAMvB,MAAM,CAACmC,QAAQ,CAACC,QAAQ,eAAKpC,MAAM,CAACmC,QAAQ,CAACE,IAAI,SAAG,IAAI,CAACR,KAAK,CAACG,MAAM,CAACT,GAAG,CAACe,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE;gBAC3G,CAAC,MAAM;kBACHf,GAAG,aAAMvB,MAAM,CAACmC,QAAQ,CAACC,QAAQ,eAAKpC,MAAM,CAACmC,QAAQ,CAACE,IAAI,sBAAY,IAAI,CAACR,KAAK,CAACU,WAAW,cAAI,IAAI,CAACV,KAAK,CAACG,MAAM,CAACT,GAAG,CAAE;gBAC3H;gBAAC,MAEG,IAAI,CAACM,KAAK,CAACG,MAAM,CAACQ,IAAI,KAAK,IAAI;kBAAA;kBAAA;gBAAA;gBAC/B;gBACMC,GAAG,GAAGlB,GAAG,CAACmB,WAAW,CAAC,GAAG,CAAC;gBAEhC,IAAID,GAAG,KAAK,CAAC,CAAC,EAAE;kBACZE,OAAO,GAAGpB,GAAG,CAACqB,SAAS,CAAC,CAAC,EAAEH,GAAG,CAAC;gBACnC,CAAC,MAAM;kBACHE,OAAO,GAAGpB,GAAG;gBACjB;gBACMsB,IAAI,GAAGC,gBAAI,CAACC,WAAW,EAAE;gBACzBC,IAAI,aAAML,OAAO,mBAASE,IAAI;gBAAA;gBAAA,OAE9BI,KAAK,CAACD,IAAI,CAAC,CACZE,IAAI,CAAC,UAAAC,IAAI;kBAAA,OAAIA,IAAI,CAACC,IAAI,EAAE;gBAAA,EAAC,CACzBF,IAAI,CAAC,UAAAE,IAAI;kBAAA,OAAIN,gBAAI,CAACO,kBAAkB,CAACD,IAAI,EAAEP,IAAI,CAAC;gBAAA,EAAC,SAC5C,CAAC,UAAApC,KAAK;kBAAA,OAAID,OAAO,CAAC8C,GAAG,8BAAsBN,IAAI,iBAAMvC,KAAK,EAAG;gBAAA,EAAC;cAAA;gBAAA;gBAAA;cAAA;gBACrE,IAAI,IAAI,CAACoB,KAAK,CAACG,MAAM,CAACQ,IAAI,IAAI,yBAAO,IAAI,CAACX,KAAK,CAACG,MAAM,CAACQ,IAAI,MAAK,QAAQ,EAAE;kBAC7E,IAAI;oBACAM,gBAAI,CAACO,kBAAkB,CAAC,IAAI,CAACxB,KAAK,CAACG,MAAM,CAACQ,IAAI,CAAC;kBACnD,CAAC,CAAC,OAAO/B,KAAK,EAAE;oBACZD,OAAO,CAACC,KAAK,+BAAwBA,KAAK,EAAG;kBACjD;gBACJ;cAAC;gBAAA;gBAAA,wBAGsD,IAAI,CAACoB,KAAK,CAACG,MAAM,CAACuB,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,6EAA7EC,UAAU,8BAAEC,UAAU,8BAAKC,aAAa;gBAC/CnD,OAAO,CAAC8C,GAAG,CAACG,UAAU,EAAEC,UAAU,EAAEC,aAAa,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5D;gBAAA;gBAAA,OACyBxC,aAAa,CAACqC,UAAU,EAAE,SAAS,cAAOC,UAAU,GAAInC,GAAG,CAAC,EAAE;cAAA;gBAAjFsC,SAAS;gBAEf,IAAI,CAACA,SAAS,IAAI,CAACA,SAAS,IAAI,CAACA,SAAS,CAACF,aAAa,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;kBAC3DE,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACD,SAAS,IAAI,CAAC,CAAC,CAAC;kBACzCrD,OAAO,CAACC,KAAK,CAAC,6CAA6C,CAAC;kBAC5D,IAAI,CAACwB,QAAQ,CAAC;oBAAExB,KAAK,sBAAe,IAAI,CAACoB,KAAK,CAACG,MAAM,CAACuB,IAAI,2BAAiB,IAAI,CAAC1B,KAAK,CAACG,MAAM,CAACT,GAAG,sBAAYuC,IAAI,CAACF,IAAI,CAAC,IAAI,CAAC;kBAAG,CAAC,CAAC;gBACpI,CAAC,MAAM;kBACH,IAAI,CAAC3B,QAAQ,CAAC;oBAAEF,SAAS,EAAE8B,SAAS,CAACF,aAAa,CAACC,IAAI,CAAC,GAAG,CAAC;kBAAE,CAAC,CAAC;gBACpE;gBAAC;gBAAA;cAAA;gBAAA;gBAAA;gBAED,IAAI,CAAC3B,QAAQ,CAAC;kBAAExB,KAAK,+BAAwB,IAAI,CAACoB,KAAK,CAACG,MAAM,CAACT,GAAG;gBAAa,CAAC,CAAC;cAAC;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAEzF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,kBAAS;MACL,IAAMQ,SAAS,GAAG,IAAI,CAACD,KAAK,CAACC,SAAS;;MAEtC;MACA,IAAI,CAACA,SAAS,EAAE;QACZ,IAAI,IAAI,CAACD,KAAK,CAACrB,KAAK,EAAE;UAClB;QACJ,CAAC,MAAM;UACH,IAAMuB,MAAM,GAAG,IAAI,CAACH,KAAK,CAACG,MAAM,IAAI,CAAC,CAAC;UAEtC,IAAMgC,IAAI,gBAAG,gCAAC,gBAAI;YACd,IAAI;YACJ,EAAE,EAAEhC,MAAM,CAACiC,EAAE,IAAIrE,SAAU;YAC3B,EAAE,EAAEoC,MAAM,CAACkC,EAAE,IAAItE,SAAU;YAC3B,EAAE,EAAEoC,MAAM,CAACmC,EAAE,IAAIvE,SAAU;YAC3B,EAAE,EAAEoC,MAAM,CAACoC,EAAE,IAAIxE,SAAU;YAC3B,KAAK,EAAEmE,MAAM,CAACM,MAAM,CAAC,CAAC,CAAC,EAAE;cACrBC,YAAY,EAAE,CAAC;cACf;cACAC,SAAS,EAAE,MAAM;cACjBC,KAAK,EAAExC,MAAM,CAAClB,IAAI,KAAK,SAAS,IAAIkB,MAAM,CAAClB,IAAI,KAAK,QAAQ,GAAGkB,MAAM,CAACwC,KAAK,IAAI,MAAM,GAAG5E;YAC5F,CAAC,EAAEoC,MAAM,CAACyC,KAAK,EAAE,IAAI,CAAC5C,KAAK,CAAC6C,SAAS,KAAK,MAAM,GAAG1C,MAAM,CAAC2C,SAAS,GAAG,CAAC,CAAC;UAAE,GACzE,IAAI,CAAC7C,KAAK,CAACrB,KAAK,gBAAG,6CAAM,IAAI,CAACqB,KAAK,CAACrB,KAAK,CAAO,gBAAG,gCAAC,0BAAc,OAAG,CACnE;UAEP,IAAIuB,MAAM,CAAC4C,OAAO,EAAE;YAChB,oBAAO,+EACH;cAAK,KAAK,EAAE;gBAAEC,SAAS,EAAE,MAAM;gBAAEC,MAAM,EAAE;cAAE;YAAE,EAAG,EAC/Cd,IAAI,CACN;UACP,CAAC,MAAM;YACH,OAAOA,IAAI;UACf;QACJ;MACJ;MAEA,oBAAO,gCAAC,SAAS,EAAK,IAAI,CAACnC,KAAK,CAAI;IACxC;EAAC;EAAA;AAAA,EA9GsBE,gBAAS;AAiHpCH,YAAY,CAACmD,SAAS,GAAG;EACrBC,MAAM,EAAEC,qBAAS,CAACC,MAAM;EACxBR,SAAS,EAAEO,qBAAS,CAACE,MAAM;EAC3BC,SAAS,EAAEH,qBAAS,CAACE,MAAM;EAC3BV,KAAK,EAAEQ,qBAAS,CAACC,MAAM;EACvBG,SAAS,EAAEJ,qBAAS,CAACE,MAAM;EAC3BG,IAAI,EAAEL,qBAAS,CAACE,MAAM;EACtBhC,IAAI,EAAE8B,qBAAS,CAACC,MAAM,CAACK,UAAU;EACjCvD,MAAM,EAAEiD,qBAAS,CAACC,MAAM,CAACK,UAAU;EACnCC,OAAO,EAAEP,qBAAS,CAACQ,IAAI;EACvBC,QAAQ,EAAET,qBAAS,CAACQ;AACxB,CAAC;AAAC,eAEa7D,YAAY;AAAA"}
@@ -1,38 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
-
16
11
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
14
  var _react = _interopRequireDefault(require("react"));
23
-
24
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
16
  var _styles = require("@mui/styles");
27
-
28
17
  var _xDatePickers = require("@mui/x-date-pickers");
29
-
30
18
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
31
-
32
19
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
33
-
34
20
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
-
36
21
  var styles = function styles(theme) {
37
22
  return {
38
23
  indeterminate: {
@@ -40,24 +25,18 @@ var styles = function styles(theme) {
40
25
  }
41
26
  };
42
27
  };
43
-
44
28
  var ConfigDatePicker = /*#__PURE__*/function (_ConfigGeneric) {
45
29
  (0, _inherits2["default"])(ConfigDatePicker, _ConfigGeneric);
46
-
47
30
  var _super = _createSuper(ConfigDatePicker);
48
-
49
31
  function ConfigDatePicker() {
50
32
  (0, _classCallCheck2["default"])(this, ConfigDatePicker);
51
33
  return _super.apply(this, arguments);
52
34
  }
53
-
54
35
  (0, _createClass2["default"])(ConfigDatePicker, [{
55
36
  key: "componentDidMount",
56
37
  value: function componentDidMount() {
57
38
  (0, _get2["default"])((0, _getPrototypeOf2["default"])(ConfigDatePicker.prototype), "componentDidMount", this).call(this);
58
-
59
39
  var value = _ConfigGeneric2["default"].getValue(this.props.data, this.props.attr);
60
-
61
40
  this.setState({
62
41
  value: value
63
42
  });
@@ -66,7 +45,6 @@ var ConfigDatePicker = /*#__PURE__*/function (_ConfigGeneric) {
66
45
  key: "renderItem",
67
46
  value: function renderItem(error, disabled, defaultValue) {
68
47
  var _this = this;
69
-
70
48
  return /*#__PURE__*/_react["default"].createElement(_xDatePickers.DatePicker, {
71
49
  fullWidth: true,
72
50
  margin: "normal",
@@ -98,7 +76,6 @@ var ConfigDatePicker = /*#__PURE__*/function (_ConfigGeneric) {
98
76
  }]);
99
77
  return ConfigDatePicker;
100
78
  }(_ConfigGeneric2["default"]);
101
-
102
79
  ConfigDatePicker.propTypes = {
103
80
  socket: _propTypes["default"].object.isRequired,
104
81
  themeType: _propTypes["default"].string,
@@ -110,8 +87,6 @@ ConfigDatePicker.propTypes = {
110
87
  onError: _propTypes["default"].func,
111
88
  onChange: _propTypes["default"].func
112
89
  };
113
-
114
90
  var _default = (0, _styles.withStyles)(styles)(ConfigDatePicker);
115
-
116
91
  exports["default"] = _default;
117
92
  //# sourceMappingURL=ConfigDatePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigDatePicker.js","names":["styles","theme","indeterminate","opacity","ConfigDatePicker","value","ConfigGeneric","getValue","props","data","attr","setState","error","disabled","defaultValue","systemConfig","dateFormat","toLowerCase","replace","state","undefined","Date","maxLength","schema","max","onChange","shrink","getText","placeholder","label","renderHelp","help","helpLink","noTranslation","propTypes","socket","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigDatePicker.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { DatePicker } from '@mui/x-date-pickers';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n }\n});\n\nclass ConfigDatePicker extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n }\n\n renderItem(error, disabled, defaultValue) {\n return <DatePicker\n fullWidth\n margin=\"normal\"\n format={this.props.systemConfig.dateFormat.toLowerCase().replace('mm','MM')}\n error={!!error}\n disabled={!!disabled}\n value={this.state.value === null || this.state.value === undefined ? new Date() : this.state.value}\n KeyboardButtonProps={{\n 'aria-label': 'change date',\n }}\n inputProps={{ maxLength: this.props.schema.maxLength || this.props.schema.max || undefined }}\n onChange={value => {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, value));\n }}\n InputLabelProps={{\n shrink: true,\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n}\n\nConfigDatePicker.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigDatePicker);"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAEA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;EAAA,OAAK;IACrBC,aAAa,EAAE;MACXC,OAAO,EAAE;IADE;EADM,CAAL;AAAA,CAApB;;IAMMC,gB;;;;;;;;;;;;WACF,6BAAoB;MAChB;;MACA,IAAMC,KAAK,GAAGC,0BAAA,CAAcC,QAAd,CAAuB,KAAKC,KAAL,CAAWC,IAAlC,EAAwC,KAAKD,KAAL,CAAWE,IAAnD,CAAd;;MACA,KAAKC,QAAL,CAAc;QAAEN,KAAK,EAALA;MAAF,CAAd;IACH;;;WAED,oBAAWO,KAAX,EAAkBC,QAAlB,EAA4BC,YAA5B,EAA0C;MAAA;;MACtC,oBAAO,gCAAC,wBAAD;QACH,SAAS,MADN;QAEH,MAAM,EAAC,QAFJ;QAGH,MAAM,EAAE,KAAKN,KAAL,CAAWO,YAAX,CAAwBC,UAAxB,CAAmCC,WAAnC,GAAiDC,OAAjD,CAAyD,IAAzD,EAA8D,IAA9D,CAHL;QAIH,KAAK,EAAE,CAAC,CAACN,KAJN;QAKH,QAAQ,EAAE,CAAC,CAACC,QALT;QAMH,KAAK,EAAE,KAAKM,KAAL,CAAWd,KAAX,KAAqB,IAArB,IAA6B,KAAKc,KAAL,CAAWd,KAAX,KAAqBe,SAAlD,GAA8D,IAAIC,IAAJ,EAA9D,GAA2E,KAAKF,KAAL,CAAWd,KAN1F;QAOH,mBAAmB,EAAE;UACjB,cAAc;QADG,CAPlB;QAUH,UAAU,EAAE;UAAEiB,SAAS,EAAE,KAAKd,KAAL,CAAWe,MAAX,CAAkBD,SAAlB,IAA+B,KAAKd,KAAL,CAAWe,MAAX,CAAkBC,GAAjD,IAAwDJ;QAArE,CAVT;QAWH,QAAQ,EAAE,kBAAAf,KAAK,EAAI;UACf,KAAI,CAACM,QAAL,CAAc;YAAEN,KAAK,EAALA;UAAF,CAAd,EAAyB;YAAA,OACrB,KAAI,CAACoB,QAAL,CAAc,KAAI,CAACjB,KAAL,CAAWE,IAAzB,EAA+BL,KAA/B,CADqB;UAAA,CAAzB;QAEH,CAdE;QAeH,eAAe,EAAE;UACbqB,MAAM,EAAE;QADK,CAfd;QAkBH,WAAW,EAAE,KAAKC,OAAL,CAAa,KAAKnB,KAAL,CAAWe,MAAX,CAAkBK,WAA/B,CAlBV;QAmBH,KAAK,EAAE,KAAKD,OAAL,CAAa,KAAKnB,KAAL,CAAWe,MAAX,CAAkBM,KAA/B,CAnBJ;QAoBH,UAAU,EAAE,KAAKC,UAAL,CAAgB,KAAKtB,KAAL,CAAWe,MAAX,CAAkBQ,IAAlC,EAAwC,KAAKvB,KAAL,CAAWe,MAAX,CAAkBS,QAA1D,EAAoE,KAAKxB,KAAL,CAAWe,MAAX,CAAkBU,aAAtF;MApBT,EAAP;IAsBH;;;EA9B0B3B,0B;;AAiC/BF,gBAAgB,CAAC8B,SAAjB,GAA6B;EACzBC,MAAM,EAAEC,qBAAA,CAAUC,MAAV,CAAiBC,UADA;EAEzBC,SAAS,EAAEH,qBAAA,CAAUI,MAFI;EAGzBC,SAAS,EAAEL,qBAAA,CAAUI,MAHI;EAIzBE,KAAK,EAAEN,qBAAA,CAAUC,MAJQ;EAKzBM,SAAS,EAAEP,qBAAA,CAAUI,MALI;EAMzB/B,IAAI,EAAE2B,qBAAA,CAAUC,MAAV,CAAiBC,UANE;EAOzBf,MAAM,EAAEa,qBAAA,CAAUC,MAPO;EAQzBO,OAAO,EAAER,qBAAA,CAAUS,IARM;EASzBpB,QAAQ,EAAEW,qBAAA,CAAUS;AATK,CAA7B;;eAYe,IAAAC,kBAAA,EAAW9C,MAAX,EAAmBI,gBAAnB,C"}
1
+ {"version":3,"file":"ConfigDatePicker.js","names":["styles","theme","indeterminate","opacity","ConfigDatePicker","value","ConfigGeneric","getValue","props","data","attr","setState","error","disabled","defaultValue","systemConfig","dateFormat","toLowerCase","replace","state","undefined","Date","maxLength","schema","max","onChange","shrink","getText","placeholder","label","renderHelp","help","helpLink","noTranslation","propTypes","socket","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigDatePicker.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { DatePicker } from '@mui/x-date-pickers';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n }\n});\n\nclass ConfigDatePicker extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n }\n\n renderItem(error, disabled, defaultValue) {\n return <DatePicker\n fullWidth\n margin=\"normal\"\n format={this.props.systemConfig.dateFormat.toLowerCase().replace('mm','MM')}\n error={!!error}\n disabled={!!disabled}\n value={this.state.value === null || this.state.value === undefined ? new Date() : this.state.value}\n KeyboardButtonProps={{\n 'aria-label': 'change date',\n }}\n inputProps={{ maxLength: this.props.schema.maxLength || this.props.schema.max || undefined }}\n onChange={value => {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, value));\n }}\n InputLabelProps={{\n shrink: true,\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n}\n\nConfigDatePicker.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigDatePicker);"],"mappings":"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"}
@@ -1,54 +1,31 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
-
16
11
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
14
  var _react = _interopRequireDefault(require("react"));
23
-
24
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
16
  var _styles = require("@mui/styles");
27
-
28
17
  var _Button = _interopRequireDefault(require("@mui/material/Button"));
29
-
30
18
  var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
31
-
32
19
  var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
33
-
34
20
  var _Article = _interopRequireDefault(require("@mui/icons-material/Article"));
35
-
36
21
  var _Videocam = _interopRequireDefault(require("@mui/icons-material/Videocam"));
37
-
38
22
  var _Code = _interopRequireDefault(require("@mui/icons-material/Code"));
39
-
40
23
  var _PlayArrow = _interopRequireDefault(require("@mui/icons-material/PlayArrow"));
41
-
42
24
  var _FileSelect = _interopRequireDefault(require("../../Dialogs/FileSelect"));
43
-
44
25
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
45
-
46
26
  var _ConfigFileSelector = _interopRequireDefault(require("./ConfigFileSelector"));
47
-
48
27
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
49
-
50
28
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
51
-
52
29
  var styles = function styles(theme) {
53
30
  return {
54
31
  fullWidth: {
@@ -70,30 +47,23 @@ var styles = function styles(theme) {
70
47
  }
71
48
  };
72
49
  };
73
-
74
50
  var IMAGE_EXT = ['jpg', 'jpeg', 'svg', 'png', 'webp'];
75
51
  var AUDIO_EXT = ['mp3', 'ogg', 'wav', 'aac'];
76
52
  var VIDEO_EXT = ['avi', 'mp4', 'mov'];
77
53
  var DOC_EXT = ['txt', 'log', 'html', 'htm'];
78
54
  var JS_EXT = ['json', 'js', 'ts'];
79
-
80
55
  var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
81
56
  (0, _inherits2["default"])(ConfigFile, _ConfigGeneric);
82
-
83
57
  var _super = _createSuper(ConfigFile);
84
-
85
58
  function ConfigFile() {
86
59
  (0, _classCallCheck2["default"])(this, ConfigFile);
87
60
  return _super.apply(this, arguments);
88
61
  }
89
-
90
62
  (0, _createClass2["default"])(ConfigFile, [{
91
63
  key: "componentDidMount",
92
64
  value: function componentDidMount() {
93
65
  (0, _get2["default"])((0, _getPrototypeOf2["default"])(ConfigFile.prototype), "componentDidMount", this).call(this);
94
-
95
66
  var value = _ConfigGeneric2["default"].getValue(this.props.data, this.props.attr);
96
-
97
67
  this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;
98
68
  this.setState({
99
69
  value: value
@@ -103,7 +73,6 @@ var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
103
73
  key: "loadFile",
104
74
  value: function loadFile() {
105
75
  var pos = this.state.value.indexOf('/');
106
-
107
76
  if (pos !== -1) {
108
77
  var adapter = this.state.value.substring(0, pos);
109
78
  var path = this.state.value.substring(pos + 1);
@@ -116,16 +85,11 @@ var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
116
85
  this.loadFile().then(function (data) {
117
86
  if (typeof AudioContext !== 'undefined') {
118
87
  var context = new AudioContext();
119
-
120
88
  var buf = _ConfigFileSelector["default"].base64ToArrayBuffer(data.file);
121
-
122
89
  context.decodeAudioData(buf, function (buffer) {
123
90
  var source = context.createBufferSource(); // creates a sound source
124
-
125
91
  source.buffer = buffer; // tell the source which sound to play
126
-
127
92
  source.connect(context.destination); // connect the source to the context's destination (the speakers)
128
-
129
93
  source.start(0);
130
94
  }, function (err) {
131
95
  return window.alert('Cannot play: ' + err);
@@ -137,9 +101,7 @@ var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
137
101
  key: "getIcon",
138
102
  value: function getIcon() {
139
103
  var _this = this;
140
-
141
104
  var extension = this.state.value.split('.').pop().toLowerCase();
142
-
143
105
  if (IMAGE_EXT.includes(extension)) {
144
106
  return /*#__PURE__*/_react["default"].createElement("div", {
145
107
  className: this.props.classes.selectedImage,
@@ -165,14 +127,12 @@ var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
165
127
  } else if (JS_EXT.includes(extension)) {
166
128
  return /*#__PURE__*/_react["default"].createElement(_Code["default"], null);
167
129
  }
168
-
169
130
  return null;
170
131
  }
171
132
  }, {
172
133
  key: "renderFileBrowser",
173
134
  value: function renderFileBrowser() {
174
135
  var _this2 = this;
175
-
176
136
  if (!this.state.showFileBrowser) {
177
137
  return null;
178
138
  } else {
@@ -206,7 +166,6 @@ var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
206
166
  key: "renderItem",
207
167
  value: function renderItem(error, disabled, defaultValue) {
208
168
  var _this3 = this;
209
-
210
169
  var icon = this.getIcon();
211
170
  return /*#__PURE__*/_react["default"].createElement("div", {
212
171
  className: this.props.classes.fullWidth
@@ -222,7 +181,6 @@ var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
222
181
  },
223
182
  onChange: function onChange(e) {
224
183
  var value = e.target.value;
225
-
226
184
  _this3.setState({
227
185
  value: value
228
186
  }, function () {
@@ -245,7 +203,6 @@ var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
245
203
  key: "getDerivedStateFromProps",
246
204
  value: function getDerivedStateFromProps(props, state) {
247
205
  var value = _ConfigGeneric2["default"].getValue(props.data, props.attr);
248
-
249
206
  if (value === null || value === undefined || value.toString().trim() !== (state.value || '').toString().trim()) {
250
207
  return {
251
208
  value: value
@@ -257,7 +214,6 @@ var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
257
214
  }]);
258
215
  return ConfigFile;
259
216
  }(_ConfigGeneric2["default"]);
260
-
261
217
  ConfigFile.propTypes = {
262
218
  socket: _propTypes["default"].object.isRequired,
263
219
  themeType: _propTypes["default"].string,
@@ -270,8 +226,6 @@ ConfigFile.propTypes = {
270
226
  onChange: _propTypes["default"].func,
271
227
  imagePrefix: _propTypes["default"].func
272
228
  };
273
-
274
229
  var _default = (0, _styles.withStyles)(styles)(ConfigFile);
275
-
276
230
  exports["default"] = _default;
277
231
  //# sourceMappingURL=ConfigFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigFile.js","names":["styles","theme","fullWidth","width","fullWidthOneButton","marginRight","fullWidthIcon","selectedImage","height","display","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFile","value","ConfigGeneric","getValue","props","data","attr","imagePrefix","undefined","setState","pos","state","indexOf","adapter","substring","path","socket","readFile","loadFile","then","AudioContext","context","buf","ConfigFileSelector","base64ToArrayBuffer","file","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","window","alert","extension","split","pop","toLowerCase","includes","classes","backgroundImage","backgroundSize","backgroundRepeat","color","play","showFileBrowser","onChange","schema","trim","selectOnlyFolders","allowUpload","allowDownload","allowCreateFolder","allowView","showToolbar","limitPath","error","disabled","defaultValue","icon","getIcon","maxLength","max","readOnly","disableEdit","e","target","getText","placeholder","label","renderHelp","help","helpLink","noTranslation","renderFileBrowser","toString","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFile.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconText from '@mui/icons-material/Article';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconCode from '@mui/icons-material/Code';\nimport IconPlay from '@mui/icons-material/PlayArrow';\n\nimport FileSelectDialog from '../../Dialogs/FileSelect';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigFileSelector from './ConfigFileSelector';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 69px)',\n marginRight: 4,\n },\n fullWidthIcon: {\n width: 'calc(100% - 119px)',\n marginRight: 4,\n },\n selectedImage: {\n height: 40,\n width: 40,\n display: 'inline-block',\n marginRight: 8,\n }\n});\n\nconst IMAGE_EXT = ['jpg', 'jpeg', 'svg', 'png', 'webp'];\nconst AUDIO_EXT = ['mp3', 'ogg', 'wav', 'aac'];\nconst VIDEO_EXT = ['avi', 'mp4', 'mov'];\nconst DOC_EXT = ['txt', 'log', 'html', 'htm'];\nconst JS_EXT = ['json', 'js', 'ts'];\n\nclass ConfigFile extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;\n this.setState({ value });\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = ConfigGeneric.getValue(props.data, props.attr);\n if (value === null || value === undefined || value.toString().trim() !== (state.value || '').toString().trim()) {\n return { value };\n } else {\n return null;\n }\n }\n\n loadFile() {\n const pos = this.state.value.indexOf('/');\n if (pos !== -1) {\n const adapter = this.state.value.substring(0, pos);\n const path = this.state.value.substring(pos + 1);\n return this.props.socket.readFile(adapter, path, true);\n }\n }\n\n play() {\n this.loadFile()\n .then(data => {\n if (typeof AudioContext !== 'undefined') {\n const context = new AudioContext();\n const buf = ConfigFileSelector.base64ToArrayBuffer(data.file);\n context.decodeAudioData(buf, buffer => {\n const source = context.createBufferSource(); // creates a sound source\n source.buffer = buffer; // tell the source which sound to play\n source.connect(context.destination); // connect the source to the context's destination (the speakers)\n source.start(0);\n }, err => window.alert('Cannot play: ' + err));\n }\n });\n }\n\n getIcon() {\n const extension = this.state.value.split('.').pop().toLowerCase();\n if (IMAGE_EXT.includes(extension)) {\n return <div className={this.props.classes.selectedImage} style={{\n backgroundImage: `url(${this.imagePrefix}/${this.state.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }} />;\n } else if (AUDIO_EXT.includes(extension)) {\n return <IconButton style={{ color: '#00FF00' }} onClick={() => this.play()}><IconPlay /></IconButton>;\n } else if (DOC_EXT.includes(extension)) {\n return <IconText />;\n } else if (VIDEO_EXT.includes(extension)) {\n return <IconVideo />;\n } else if (JS_EXT.includes(extension)) {\n return <IconCode />;\n }\n return null;\n }\n\n renderFileBrowser() {\n if (!this.state.showFileBrowser) {\n return null;\n } else {\n return <FileSelectDialog\n imagePrefix={this.props.imagePrefix}\n socket={this.props.socket}\n selected={this.state.value}\n onClose={() => this.setState({ showFileBrowser: false})}\n onOk={value => {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n selectOnlyFolders={this.props.schema.selectOnlyFolders}\n allowUpload={this.props.schema.allowUpload}\n allowDownload={this.props.schema.allowDownload}\n allowCreateFolder={this.props.schema.allowCreateFolder}\n allowView={this.props.schema.allowView}\n showToolbar={this.props.schema.showToolbar}\n limitPath={this.props.schema.limitPath}\n />;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n const icon = this.getIcon();\n\n return <div className={this.props.classes.fullWidth}>\n {icon}\n <TextField\n variant=\"standard\"\n className={icon ? this.props.classes.fullWidthIcon : this.props.classes.fullWidthOneButton}\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n inputProps={{\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n readOnly: !!this.props.schema.disableEdit\n }}\n onChange={e => {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n <Button variant=\"outlined\" onClick={() => this.setState({ showFileBrowser: true })}>...</Button>\n {this.renderFileBrowser()}\n </div>;\n }\n}\n\nConfigFile.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n imagePrefix: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFile);"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigFile.js","names":["styles","theme","fullWidth","width","fullWidthOneButton","marginRight","fullWidthIcon","selectedImage","height","display","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFile","value","ConfigGeneric","getValue","props","data","attr","imagePrefix","undefined","setState","pos","state","indexOf","adapter","substring","path","socket","readFile","loadFile","then","AudioContext","context","buf","ConfigFileSelector","base64ToArrayBuffer","file","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","window","alert","extension","split","pop","toLowerCase","includes","classes","backgroundImage","backgroundSize","backgroundRepeat","color","play","showFileBrowser","onChange","schema","trim","selectOnlyFolders","allowUpload","allowDownload","allowCreateFolder","allowView","showToolbar","limitPath","error","disabled","defaultValue","icon","getIcon","maxLength","max","readOnly","disableEdit","e","target","getText","placeholder","label","renderHelp","help","helpLink","noTranslation","renderFileBrowser","toString","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFile.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconText from '@mui/icons-material/Article';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconCode from '@mui/icons-material/Code';\nimport IconPlay from '@mui/icons-material/PlayArrow';\n\nimport FileSelectDialog from '../../Dialogs/FileSelect';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigFileSelector from './ConfigFileSelector';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 69px)',\n marginRight: 4,\n },\n fullWidthIcon: {\n width: 'calc(100% - 119px)',\n marginRight: 4,\n },\n selectedImage: {\n height: 40,\n width: 40,\n display: 'inline-block',\n marginRight: 8,\n }\n});\n\nconst IMAGE_EXT = ['jpg', 'jpeg', 'svg', 'png', 'webp'];\nconst AUDIO_EXT = ['mp3', 'ogg', 'wav', 'aac'];\nconst VIDEO_EXT = ['avi', 'mp4', 'mov'];\nconst DOC_EXT = ['txt', 'log', 'html', 'htm'];\nconst JS_EXT = ['json', 'js', 'ts'];\n\nclass ConfigFile extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;\n this.setState({ value });\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = ConfigGeneric.getValue(props.data, props.attr);\n if (value === null || value === undefined || value.toString().trim() !== (state.value || '').toString().trim()) {\n return { value };\n } else {\n return null;\n }\n }\n\n loadFile() {\n const pos = this.state.value.indexOf('/');\n if (pos !== -1) {\n const adapter = this.state.value.substring(0, pos);\n const path = this.state.value.substring(pos + 1);\n return this.props.socket.readFile(adapter, path, true);\n }\n }\n\n play() {\n this.loadFile()\n .then(data => {\n if (typeof AudioContext !== 'undefined') {\n const context = new AudioContext();\n const buf = ConfigFileSelector.base64ToArrayBuffer(data.file);\n context.decodeAudioData(buf, buffer => {\n const source = context.createBufferSource(); // creates a sound source\n source.buffer = buffer; // tell the source which sound to play\n source.connect(context.destination); // connect the source to the context's destination (the speakers)\n source.start(0);\n }, err => window.alert('Cannot play: ' + err));\n }\n });\n }\n\n getIcon() {\n const extension = this.state.value.split('.').pop().toLowerCase();\n if (IMAGE_EXT.includes(extension)) {\n return <div className={this.props.classes.selectedImage} style={{\n backgroundImage: `url(${this.imagePrefix}/${this.state.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }} />;\n } else if (AUDIO_EXT.includes(extension)) {\n return <IconButton style={{ color: '#00FF00' }} onClick={() => this.play()}><IconPlay /></IconButton>;\n } else if (DOC_EXT.includes(extension)) {\n return <IconText />;\n } else if (VIDEO_EXT.includes(extension)) {\n return <IconVideo />;\n } else if (JS_EXT.includes(extension)) {\n return <IconCode />;\n }\n return null;\n }\n\n renderFileBrowser() {\n if (!this.state.showFileBrowser) {\n return null;\n } else {\n return <FileSelectDialog\n imagePrefix={this.props.imagePrefix}\n socket={this.props.socket}\n selected={this.state.value}\n onClose={() => this.setState({ showFileBrowser: false})}\n onOk={value => {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n selectOnlyFolders={this.props.schema.selectOnlyFolders}\n allowUpload={this.props.schema.allowUpload}\n allowDownload={this.props.schema.allowDownload}\n allowCreateFolder={this.props.schema.allowCreateFolder}\n allowView={this.props.schema.allowView}\n showToolbar={this.props.schema.showToolbar}\n limitPath={this.props.schema.limitPath}\n />;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n const icon = this.getIcon();\n\n return <div className={this.props.classes.fullWidth}>\n {icon}\n <TextField\n variant=\"standard\"\n className={icon ? this.props.classes.fullWidthIcon : this.props.classes.fullWidthOneButton}\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n inputProps={{\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n readOnly: !!this.props.schema.disableEdit\n }}\n onChange={e => {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n <Button variant=\"outlined\" onClick={() => this.setState({ showFileBrowser: true })}>...</Button>\n {this.renderFileBrowser()}\n </div>;\n }\n}\n\nConfigFile.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n imagePrefix: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFile);"],"mappings":"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"}