@iobroker/adapter-react-v5 3.4.5 → 3.5.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 (113) hide show
  1. package/Components/JsonConfigComponent/ConfigAlive.js +3 -3
  2. package/Components/JsonConfigComponent/ConfigAlive.js.map +1 -1
  3. package/Components/JsonConfigComponent/ConfigAutocomplete.js +1 -1
  4. package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -1
  5. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +1 -1
  6. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
  7. package/Components/JsonConfigComponent/ConfigCRON.js +2 -2
  8. package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -1
  9. package/Components/JsonConfigComponent/ConfigCertificateSelect.js +1 -1
  10. package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
  11. package/Components/JsonConfigComponent/ConfigCheckLicense.js +2 -2
  12. package/Components/JsonConfigComponent/ConfigCheckLicense.js.map +1 -1
  13. package/Components/JsonConfigComponent/ConfigCheckbox.js +1 -1
  14. package/Components/JsonConfigComponent/ConfigCheckbox.js.map +1 -1
  15. package/Components/JsonConfigComponent/ConfigColor.js +2 -2
  16. package/Components/JsonConfigComponent/ConfigColor.js.map +1 -1
  17. package/Components/JsonConfigComponent/ConfigCoordinates.js +1 -1
  18. package/Components/JsonConfigComponent/ConfigCoordinates.js.map +1 -1
  19. package/Components/JsonConfigComponent/ConfigCustom.js +1 -1
  20. package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
  21. package/Components/JsonConfigComponent/ConfigFile.js +2 -2
  22. package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
  23. package/Components/JsonConfigComponent/ConfigFileSelector.js +4 -4
  24. package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
  25. package/Components/JsonConfigComponent/ConfigFunc.js +2 -2
  26. package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -1
  27. package/Components/JsonConfigComponent/ConfigGeneric.js +3 -3
  28. package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
  29. package/Components/JsonConfigComponent/ConfigIP.js +1 -1
  30. package/Components/JsonConfigComponent/ConfigIP.js.map +1 -1
  31. package/Components/JsonConfigComponent/ConfigImageUpload.js +2 -2
  32. package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
  33. package/Components/JsonConfigComponent/ConfigInstanceSelect.js +1 -1
  34. package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
  35. package/Components/JsonConfigComponent/ConfigJsonEditor.js +1 -1
  36. package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
  37. package/Components/JsonConfigComponent/ConfigLanguage.js +1 -1
  38. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
  39. package/Components/JsonConfigComponent/ConfigNumber.js +2 -2
  40. package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
  41. package/Components/JsonConfigComponent/ConfigObjectId.js +1 -1
  42. package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
  43. package/Components/JsonConfigComponent/ConfigPassword.js +1 -1
  44. package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -1
  45. package/Components/JsonConfigComponent/ConfigPattern.js +3 -3
  46. package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
  47. package/Components/JsonConfigComponent/ConfigRoom.js +3 -3
  48. package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -1
  49. package/Components/JsonConfigComponent/ConfigSelect.js +3 -2
  50. package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
  51. package/Components/JsonConfigComponent/ConfigSelectSendTo.js +1 -1
  52. package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
  53. package/Components/JsonConfigComponent/ConfigSendto.js +5 -5
  54. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
  55. package/Components/JsonConfigComponent/ConfigSetState.js +3 -3
  56. package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
  57. package/Components/JsonConfigComponent/ConfigStaticDivider.js +1 -1
  58. package/Components/JsonConfigComponent/ConfigStaticDivider.js.map +1 -1
  59. package/Components/JsonConfigComponent/ConfigStaticText.js +1 -1
  60. package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
  61. package/Components/JsonConfigComponent/ConfigTable.js +1 -1
  62. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  63. package/Components/JsonConfigComponent/ConfigText.js +4 -2
  64. package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
  65. package/Components/JsonConfigComponent/ConfigTextSendTo.js +3 -3
  66. package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
  67. package/Components/JsonConfigComponent/ConfigUUID.js +2 -2
  68. package/Components/JsonConfigComponent/ConfigUUID.js.map +1 -1
  69. package/Components/JsonConfigComponent/ConfigUser.js +3 -3
  70. package/Components/JsonConfigComponent/ConfigUser.js.map +1 -1
  71. package/Components/JsonConfigComponent/index.js +1 -1
  72. package/Components/JsonConfigComponent/index.js.map +1 -1
  73. package/Components/JsonConfigComponent/wrapper/Components/ColorPicker.d.ts +2 -0
  74. package/Components/JsonConfigComponent/wrapper/Components/ColorPicker.js +11 -0
  75. package/Components/JsonConfigComponent/wrapper/Components/ColorPicker.js.map +1 -0
  76. package/Components/JsonConfigComponent/wrapper/Components/Icon.d.ts +2 -0
  77. package/Components/JsonConfigComponent/wrapper/Components/Icon.js +11 -0
  78. package/Components/JsonConfigComponent/wrapper/Components/Icon.js.map +1 -0
  79. package/Components/JsonConfigComponent/wrapper/Components/TextWithIcon.d.ts +2 -0
  80. package/Components/JsonConfigComponent/wrapper/Components/TextWithIcon.js +11 -0
  81. package/Components/JsonConfigComponent/wrapper/Components/TextWithIcon.js.map +1 -0
  82. package/Components/JsonConfigComponent/wrapper/Components/UploadImage.d.ts +2 -0
  83. package/Components/JsonConfigComponent/wrapper/Components/UploadImage.js +11 -0
  84. package/Components/JsonConfigComponent/wrapper/Components/UploadImage.js.map +1 -0
  85. package/Components/JsonConfigComponent/wrapper/Components/Utils.d.ts +2 -0
  86. package/Components/JsonConfigComponent/wrapper/Components/Utils.js +11 -0
  87. package/Components/JsonConfigComponent/wrapper/Components/Utils.js.map +1 -0
  88. package/Components/JsonConfigComponent/wrapper/Dialogs/Confirm.d.ts +2 -0
  89. package/Components/JsonConfigComponent/wrapper/Dialogs/Confirm.js +11 -0
  90. package/Components/JsonConfigComponent/wrapper/Dialogs/Confirm.js.map +1 -0
  91. package/Components/JsonConfigComponent/wrapper/Dialogs/Cron.d.ts +2 -0
  92. package/Components/JsonConfigComponent/wrapper/Dialogs/Cron.js +11 -0
  93. package/Components/JsonConfigComponent/wrapper/Dialogs/Cron.js.map +1 -0
  94. package/Components/JsonConfigComponent/wrapper/Dialogs/Error.d.ts +2 -0
  95. package/Components/JsonConfigComponent/wrapper/Dialogs/Error.js +11 -0
  96. package/Components/JsonConfigComponent/wrapper/Dialogs/Error.js.map +1 -0
  97. package/Components/JsonConfigComponent/wrapper/Dialogs/Message.d.ts +1 -0
  98. package/Components/JsonConfigComponent/wrapper/Dialogs/Message.js +11 -0
  99. package/Components/JsonConfigComponent/wrapper/Dialogs/Message.js.map +1 -0
  100. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectFile.d.ts +2 -0
  101. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectFile.js +11 -0
  102. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectFile.js.map +1 -0
  103. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectID.d.ts +2 -0
  104. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectID.js +11 -0
  105. package/Components/JsonConfigComponent/wrapper/Dialogs/SelectID.js.map +1 -0
  106. package/Components/JsonConfigComponent/wrapper/i18n.d.ts +2 -0
  107. package/Components/JsonConfigComponent/wrapper/i18n.js +11 -0
  108. package/Components/JsonConfigComponent/wrapper/i18n.js.map +1 -0
  109. package/Components/JsonConfigComponent/wrapper/icons/IconCopy.d.ts +2 -0
  110. package/Components/JsonConfigComponent/wrapper/icons/IconCopy.js +11 -0
  111. package/Components/JsonConfigComponent/wrapper/icons/IconCopy.js.map +1 -0
  112. package/README.md +2 -2
  113. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigColor.js","names":["styles","theme","ConfigColor","state","showColorDialog","setState","colorDialogValue","value","onChange","props","attr","ColorPicker","getColor","error","disabled","defaultValue","ConfigGeneric","getValue","data","textColor","Utils","isUseBright","undefined","renderColorDialog","minWidth","width","getText","schema","label","readOnly","e","color","target","style","backgroundColor","endAdornment","onPaste","stopPropagation","shrink","propTypes","socket","PropTypes","object","isRequired","themeType","string","themeName","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigColor.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {withStyles} from '@mui/styles';\nimport { ChromePicker } from 'react-color';\n\nimport IconButton from '@mui/material/IconButton';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\n\nimport ClearIcon from '@mui/icons-material/Close';\n\nimport Utils from '../Utils';\nimport ColorPicker from '../ColorPicker';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({});\n\nclass ConfigColor extends ConfigGeneric {\n renderColorDialog() {\n return !!this.state.showColorDialog && <Dialog\n onClose={() => this.setState({showColorDialog: false})}\n open={this.state.showColorDialog}>\n <ChromePicker\n color={this.state.colorDialogValue}\n onChange={value =>\n this.setState({ colorDialogValue: value }, () =>\n this.onChange(this.props.attr, ColorPicker.getColor(this.state.colorDialogValue, true)))}\n />\n </Dialog>;\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n let textColor = Utils.isUseBright(value, null);\n if (textColor === null) {\n textColor = undefined;\n }\n return <>\n { this.renderColorDialog() }\n <TextField\n variant=\"standard\"\n disabled={!!disabled}\n style={{minWidth: 100, width: 'calc(100% - 8px)'}}\n label={this.getText(this.props.schema.label)}\n value={value || ''}\n onClick={() => !this.props.schema.readOnly && this.setState({ showColorDialog: true, colorDialogValue: value || '' })}\n onChange={e => {\n const color = e.target.value;\n this.onChange(this.props.attr, color);\n }}\n inputProps={{\n style: {\n //paddingLeft: noPadding ? 0 : 8,\n backgroundColor: value,\n color: textColor ? '#FFF' : '#000'\n },\n readOnly: this.props.schema.readOnly || false,\n }}\n InputProps={{\n endAdornment: value ?\n <IconButton\n disabled={!!this.props.onPaste}\n size=\"small\"\n onClick={e => {\n e.stopPropagation();\n this.onChange(this.props.attr, '');\n }}>\n <ClearIcon/>\n </IconButton>\n : undefined,\n }}\n InputLabelProps={{ shrink: true }}\n />\n </>;\n }\n}\n\nConfigColor.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)(ConfigColor);"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigColor.js","names":["styles","theme","ConfigColor","state","showColorDialog","setState","colorDialogValue","value","onChange","props","attr","ColorPicker","getColor","error","disabled","defaultValue","ConfigGeneric","getValue","data","textColor","Utils","isUseBright","undefined","renderColorDialog","minWidth","width","getText","schema","label","readOnly","e","color","target","style","backgroundColor","endAdornment","onPaste","stopPropagation","shrink","propTypes","socket","PropTypes","object","isRequired","themeType","string","themeName","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigColor.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {withStyles} from '@mui/styles';\nimport { ChromePicker } from 'react-color';\n\nimport IconButton from '@mui/material/IconButton';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\n\nimport ClearIcon from '@mui/icons-material/Close';\n\nimport Utils from './wrapper/Components/Utils';\nimport ColorPicker from './wrapper/Components/ColorPicker';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({});\n\nclass ConfigColor extends ConfigGeneric {\n renderColorDialog() {\n return !!this.state.showColorDialog && <Dialog\n onClose={() => this.setState({showColorDialog: false})}\n open={this.state.showColorDialog}>\n <ChromePicker\n color={this.state.colorDialogValue}\n onChange={value =>\n this.setState({ colorDialogValue: value }, () =>\n this.onChange(this.props.attr, ColorPicker.getColor(this.state.colorDialogValue, true)))}\n />\n </Dialog>;\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n let textColor = Utils.isUseBright(value, null);\n if (textColor === null) {\n textColor = undefined;\n }\n return <>\n { this.renderColorDialog() }\n <TextField\n variant=\"standard\"\n disabled={!!disabled}\n style={{minWidth: 100, width: 'calc(100% - 8px)'}}\n label={this.getText(this.props.schema.label)}\n value={value || ''}\n onClick={() => !this.props.schema.readOnly && this.setState({ showColorDialog: true, colorDialogValue: value || '' })}\n onChange={e => {\n const color = e.target.value;\n this.onChange(this.props.attr, color);\n }}\n inputProps={{\n style: {\n //paddingLeft: noPadding ? 0 : 8,\n backgroundColor: value,\n color: textColor ? '#FFF' : '#000'\n },\n readOnly: this.props.schema.readOnly || false,\n }}\n InputProps={{\n endAdornment: value ?\n <IconButton\n disabled={!!this.props.onPaste}\n size=\"small\"\n onClick={e => {\n e.stopPropagation();\n this.onChange(this.props.attr, '');\n }}>\n <ClearIcon/>\n </IconButton>\n : undefined,\n }}\n InputLabelProps={{ shrink: true }}\n />\n </>;\n }\n}\n\nConfigColor.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)(ConfigColor);"],"mappings":"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"}
@@ -17,7 +17,7 @@ var _styles = require("@mui/styles");
17
17
  var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
18
18
  var _Fab = _interopRequireDefault(require("@mui/material/Fab"));
19
19
  var _GpsFixed = _interopRequireDefault(require("@mui/icons-material/GpsFixed"));
20
- var _i18n = _interopRequireDefault(require("../../i18n"));
20
+ var _i18n = _interopRequireDefault(require("./wrapper/i18n"));
21
21
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
22
22
  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); }; }
23
23
  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; } }
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigCoordinates.js","names":["styles","theme","width","ConfigCoordinates","value","ConfigGeneric","getValue","props","data","attr","schema","autoInit","setTimeout","getCoordinates","socket","getSystemConfig","then","obj","common","longitude","latitude","window","alert","I18n","t","setState","divider","navigator","geolocation","getCurrentPosition","position","coords","getSystemCoordinates","error","disabled","defaultValue","classes","state","undefined","maxLength","max","e","target","onChange","trim","getText","placeholder","label","renderHelp","help","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigCoordinates.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\nimport Fab from '@mui/material/Fab';\n\nimport IconGpsFixed from '@mui/icons-material/GpsFixed';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n width: {\n width: 'calc(100% - 40px)',\n }\n});\n\nclass ConfigCoordinates extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (!value && this.props.schema.autoInit) {\n setTimeout(() => this.getCoordinates(), 300);\n }\n }\n\n getSystemCoordinates() {\n return this.props.socket.getSystemConfig()\n .then(obj => {\n if (obj && obj.common && (obj.common.longitude || obj.common.latitude)) {\n window.alert(I18n.t('ra_Used system settings'));\n this.setState({ value: obj.common.latitude + (this.props.schema.divider || ',') + obj.common.longitude });\n } else {\n window.alert(I18n.t('ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser'));\n }\n });\n }\n\n getCoordinates() {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n position => {\n if (position && position.coords) {\n this.setState({value: position.coords.latitude + (this.props.schema.divider || ',') + position.coords.longitude});\n } else {\n this.getSystemCoordinates();\n }\n },\n error => {\n this.getSystemCoordinates();\n }\n );\n } else {\n this.getSystemCoordinates();\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n return <>\n <TextField\n variant=\"standard\"\n className={this.props.classes.width}\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n onChange={e => {\n const value = e.target.value;\n this.setState({value}, () =>\n this.onChange(this.props.attr, (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 <Fab size=\"small\" onClick={() => this.getCoordinates()}><IconGpsFixed /></Fab>\n </>;\n }\n}\n\nConfigCoordinates.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)(ConfigCoordinates);"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigCoordinates.js","names":["styles","theme","width","ConfigCoordinates","value","ConfigGeneric","getValue","props","data","attr","schema","autoInit","setTimeout","getCoordinates","socket","getSystemConfig","then","obj","common","longitude","latitude","window","alert","I18n","t","setState","divider","navigator","geolocation","getCurrentPosition","position","coords","getSystemCoordinates","error","disabled","defaultValue","classes","state","undefined","maxLength","max","e","target","onChange","trim","getText","placeholder","label","renderHelp","help","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigCoordinates.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\nimport Fab from '@mui/material/Fab';\n\nimport IconGpsFixed from '@mui/icons-material/GpsFixed';\n\nimport I18n from './wrapper/i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n width: {\n width: 'calc(100% - 40px)',\n }\n});\n\nclass ConfigCoordinates extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (!value && this.props.schema.autoInit) {\n setTimeout(() => this.getCoordinates(), 300);\n }\n }\n\n getSystemCoordinates() {\n return this.props.socket.getSystemConfig()\n .then(obj => {\n if (obj && obj.common && (obj.common.longitude || obj.common.latitude)) {\n window.alert(I18n.t('ra_Used system settings'));\n this.setState({ value: obj.common.latitude + (this.props.schema.divider || ',') + obj.common.longitude });\n } else {\n window.alert(I18n.t('ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser'));\n }\n });\n }\n\n getCoordinates() {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n position => {\n if (position && position.coords) {\n this.setState({value: position.coords.latitude + (this.props.schema.divider || ',') + position.coords.longitude});\n } else {\n this.getSystemCoordinates();\n }\n },\n error => {\n this.getSystemCoordinates();\n }\n );\n } else {\n this.getSystemCoordinates();\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n return <>\n <TextField\n variant=\"standard\"\n className={this.props.classes.width}\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n onChange={e => {\n const value = e.target.value;\n this.setState({value}, () =>\n this.onChange(this.props.attr, (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 <Fab size=\"small\" onClick={() => this.getCoordinates()}><IconGpsFixed /></Fab>\n </>;\n }\n}\n\nConfigCoordinates.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)(ConfigCoordinates);"],"mappings":"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"}
@@ -19,7 +19,7 @@ var _react = _interopRequireWildcard(require("react"));
19
19
  var _propTypes = _interopRequireDefault(require("prop-types"));
20
20
  var _LinearProgress = _interopRequireDefault(require("@mui/material/LinearProgress"));
21
21
  var _Grid = _interopRequireDefault(require("@mui/material/Grid"));
22
- var _i18n = _interopRequireDefault(require("../../i18n"));
22
+ var _i18n = _interopRequireDefault(require("./wrapper/i18n"));
23
23
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
25
  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); }; }
@@ -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 => {\n if (lang !== 'en') {\n // try to load English\n return fetch(`${i18nURL}/i18n/en.json`)\n .then(data => data.json())\n .then(json => I18n.extendTranslations(json, lang))\n .catch(error => console.log(`Cannot load i18n \"${file}\": ${error}`));\n } else {\n console.log(`Cannot load i18n \"${file}\": ${error}`);\n }\n });\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 './wrapper/i18n';\n\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 => {\n if (lang !== 'en') {\n // try to load English\n return fetch(`${i18nURL}/i18n/en.json`)\n .then(data => data.json())\n .then(json => I18n.extendTranslations(json, lang))\n .catch(error => console.log(`Cannot load i18n \"${file}\": ${error}`));\n } else {\n console.log(`Cannot load i18n \"${file}\": ${error}`);\n }\n });\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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"}
@@ -21,7 +21,7 @@ var _Article = _interopRequireDefault(require("@mui/icons-material/Article"));
21
21
  var _Videocam = _interopRequireDefault(require("@mui/icons-material/Videocam"));
22
22
  var _Code = _interopRequireDefault(require("@mui/icons-material/Code"));
23
23
  var _PlayArrow = _interopRequireDefault(require("@mui/icons-material/PlayArrow"));
24
- var _FileSelect = _interopRequireDefault(require("../../Dialogs/FileSelect"));
24
+ var _SelectFile = _interopRequireDefault(require("./wrapper/Dialogs/SelectFile"));
25
25
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
26
26
  var _ConfigFileSelector = _interopRequireDefault(require("./ConfigFileSelector"));
27
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); }; }
@@ -136,7 +136,7 @@ var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
136
136
  if (!this.state.showFileBrowser) {
137
137
  return null;
138
138
  } else {
139
- return /*#__PURE__*/_react["default"].createElement(_FileSelect["default"], {
139
+ return /*#__PURE__*/_react["default"].createElement(_SelectFile["default"], {
140
140
  imagePrefix: this.props.imagePrefix,
141
141
  socket: this.props.socket,
142
142
  selected: this.state.value,
@@ -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 SelectFileDialog from './wrapper/Dialogs/SelectFile';\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 <SelectFileDialog\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":";;;;;;;;;;;;;AAAA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAAsD;AAAA;AAEtD,IAAMA,MAAM,GAAG,SAATA,MAAM,CAAGC,KAAK;EAAA,OAAK;IACrBC,SAAS,EAAE;MACPC,KAAK,EAAE;IACX,CAAC;IACDC,kBAAkB,EAAE;MAChBD,KAAK,EAAE,mBAAmB;MAC1BE,WAAW,EAAE;IACjB,CAAC;IACDC,aAAa,EAAE;MACXH,KAAK,EAAE,oBAAoB;MAC3BE,WAAW,EAAE;IACjB,CAAC;IACDE,aAAa,EAAE;MACXC,MAAM,EAAE,EAAE;MACVL,KAAK,EAAE,EAAE;MACTM,OAAO,EAAE,cAAc;MACvBJ,WAAW,EAAE;IACjB;EACJ,CAAC;AAAA,CAAC;AAEF,IAAMK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;AACvD,IAAMC,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAC9C,IAAMC,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACvC,IAAMC,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;AAC7C,IAAMC,MAAM,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;AAAC,IAE9BC,UAAU;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA,OACZ,6BAAoB;MAChB;MACA,IAAMC,KAAK,GAAGC,0BAAa,CAACC,QAAQ,CAAC,IAAI,CAACC,KAAK,CAACC,IAAI,EAAE,IAAI,CAACD,KAAK,CAACE,IAAI,CAAC;MACtE,IAAI,CAACC,WAAW,GAAG,IAAI,CAACH,KAAK,CAACG,WAAW,KAAKC,SAAS,GAAG,SAAS,GAAG,IAAI,CAACJ,KAAK,CAACG,WAAW;MAC5F,IAAI,CAACE,QAAQ,CAAC;QAAER,KAAK,EAALA;MAAM,CAAC,CAAC;IAC5B;EAAC;IAAA;IAAA,OAWD,oBAAW;MACP,IAAMS,GAAG,GAAG,IAAI,CAACC,KAAK,CAACV,KAAK,CAACW,OAAO,CAAC,GAAG,CAAC;MACzC,IAAIF,GAAG,KAAK,CAAC,CAAC,EAAE;QACZ,IAAMG,OAAO,GAAG,IAAI,CAACF,KAAK,CAACV,KAAK,CAACa,SAAS,CAAC,CAAC,EAAEJ,GAAG,CAAC;QAClD,IAAMK,IAAI,GAAG,IAAI,CAACJ,KAAK,CAACV,KAAK,CAACa,SAAS,CAACJ,GAAG,GAAG,CAAC,CAAC;QAChD,OAAO,IAAI,CAACN,KAAK,CAACY,MAAM,CAACC,QAAQ,CAACJ,OAAO,EAAEE,IAAI,EAAE,IAAI,CAAC;MAC1D;IACJ;EAAC;IAAA;IAAA,OAED,gBAAO;MACH,IAAI,CAACG,QAAQ,EAAE,CACVC,IAAI,CAAC,UAAAd,IAAI,EAAI;QACV,IAAI,OAAOe,YAAY,KAAK,WAAW,EAAE;UACrC,IAAMC,OAAO,GAAG,IAAID,YAAY,EAAE;UAClC,IAAME,GAAG,GAAGC,8BAAkB,CAACC,mBAAmB,CAACnB,IAAI,CAACoB,IAAI,CAAC;UAC7DJ,OAAO,CAACK,eAAe,CAACJ,GAAG,EAAE,UAAAK,MAAM,EAAI;YACnC,IAAMC,MAAM,GAAGP,OAAO,CAACQ,kBAAkB,EAAE,CAAC,CAAC;YAC7CD,MAAM,CAACD,MAAM,GAAGA,MAAM,CAAC,CAAsB;YAC7CC,MAAM,CAACE,OAAO,CAACT,OAAO,CAACU,WAAW,CAAC,CAAC,CAAS;YAC7CH,MAAM,CAACI,KAAK,CAAC,CAAC,CAAC;UACnB,CAAC,EAAE,UAAAC,GAAG;YAAA,OAAIC,MAAM,CAACC,KAAK,CAAC,eAAe,GAAGF,GAAG,CAAC;UAAA,EAAC;QAClD;MACJ,CAAC,CAAC;IACV;EAAC;IAAA;IAAA,OAED,mBAAU;MAAA;MACN,IAAMG,SAAS,GAAG,IAAI,CAACzB,KAAK,CAACV,KAAK,CAACoC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE,CAACC,WAAW,EAAE;MACjE,IAAI5C,SAAS,CAAC6C,QAAQ,CAACJ,SAAS,CAAC,EAAE;QAC/B,oBAAO;UAAK,SAAS,EAAE,IAAI,CAAChC,KAAK,CAACqC,OAAO,CAACjD,aAAc;UAAC,KAAK,EAAE;YAC5DkD,eAAe,gBAAS,IAAI,CAACnC,WAAW,cAAI,IAAI,CAACI,KAAK,CAACV,KAAK,MAAG;YAC/D0C,cAAc,EAAE,SAAS;YACzBC,gBAAgB,EAAE;UACtB;QAAE,EAAG;MACT,CAAC,MAAM,IAAIhD,SAAS,CAAC4C,QAAQ,CAACJ,SAAS,CAAC,EAAE;QACtC,oBAAO,gCAAC,sBAAU;UAAC,KAAK,EAAE;YAAES,KAAK,EAAE;UAAU,CAAE;UAAC,OAAO,EAAE;YAAA,OAAM,KAAI,CAACC,IAAI,EAAE;UAAA;QAAC,gBAAC,gCAAC,qBAAQ,OAAG,CAAa;MACzG,CAAC,MAAM,IAAIhD,OAAO,CAAC0C,QAAQ,CAACJ,SAAS,CAAC,EAAE;QACpC,oBAAO,gCAAC,mBAAQ,OAAG;MACvB,CAAC,MAAM,IAAIvC,SAAS,CAAC2C,QAAQ,CAACJ,SAAS,CAAC,EAAE;QACtC,oBAAO,gCAAC,oBAAS,OAAG;MACxB,CAAC,MAAM,IAAIrC,MAAM,CAACyC,QAAQ,CAACJ,SAAS,CAAC,EAAE;QACnC,oBAAO,gCAAC,gBAAQ,OAAG;MACvB;MACA,OAAO,IAAI;IACf;EAAC;IAAA;IAAA,OAED,6BAAoB;MAAA;MAChB,IAAI,CAAC,IAAI,CAACzB,KAAK,CAACoC,eAAe,EAAE;QAC7B,OAAO,IAAI;MACf,CAAC,MAAM;QACH,oBAAO,gCAAC,sBAAgB;UACpB,WAAW,EAAE,IAAI,CAAC3C,KAAK,CAACG,WAAY;UACpC,MAAM,EAAE,IAAI,CAACH,KAAK,CAACY,MAAO;UAC1B,QAAQ,EAAE,IAAI,CAACL,KAAK,CAACV,KAAM;UAC3B,OAAO,EAAE;YAAA,OAAM,MAAI,CAACQ,QAAQ,CAAC;cAAEsC,eAAe,EAAE;YAAK,CAAC,CAAC;UAAA,CAAC;UACxD,IAAI,EAAE,cAAA9C,KAAK,EAAI;YACX,MAAI,CAACQ,QAAQ,CAAC;cAAER,KAAK,EAALA;YAAM,CAAC,EAAE;cAAA,OACrB,MAAI,CAAC+C,QAAQ,CAAC,MAAI,CAAC5C,KAAK,CAACE,IAAI,EAAE,MAAI,CAACF,KAAK,CAAC6C,MAAM,CAACC,IAAI,KAAK,KAAK,GAAGjD,KAAK,GAAG,CAACA,KAAK,IAAI,EAAE,EAAEiD,IAAI,EAAE,CAAC;YAAA,EAAC;UACxG,CAAE;UACF,iBAAiB,EAAE,IAAI,CAAC9C,KAAK,CAAC6C,MAAM,CAACE,iBAAkB;UACvD,WAAW,EAAE,IAAI,CAAC/C,KAAK,CAAC6C,MAAM,CAACG,WAAY;UAC3C,aAAa,EAAE,IAAI,CAAChD,KAAK,CAAC6C,MAAM,CAACI,aAAc;UAC/C,iBAAiB,EAAE,IAAI,CAACjD,KAAK,CAAC6C,MAAM,CAACK,iBAAkB;UACvD,SAAS,EAAE,IAAI,CAAClD,KAAK,CAAC6C,MAAM,CAACM,SAAU;UACvC,WAAW,EAAE,IAAI,CAACnD,KAAK,CAAC6C,MAAM,CAACO,WAAY;UAC3C,SAAS,EAAE,IAAI,CAACpD,KAAK,CAAC6C,MAAM,CAACQ;QAAU,EACzC;MACN;IACJ;EAAC;IAAA;IAAA,OAED,oBAAWC,KAAK,EAAEC,QAAQ,EAAEC,YAAY,EAAE;MAAA;MACtC,IAAMC,IAAI,GAAG,IAAI,CAACC,OAAO,EAAE;MAE3B,oBAAO;QAAK,SAAS,EAAE,IAAI,CAAC1D,KAAK,CAACqC,OAAO,CAACtD;MAAU,GAC/C0E,IAAI,eACL,gCAAC,qBAAS;QACN,OAAO,EAAC,UAAU;QAClB,SAAS,EAAEA,IAAI,GAAG,IAAI,CAACzD,KAAK,CAACqC,OAAO,CAAClD,aAAa,GAAG,IAAI,CAACa,KAAK,CAACqC,OAAO,CAACpD,kBAAmB;QAC3F,KAAK,EAAE,IAAI,CAACsB,KAAK,CAACV,KAAK,KAAK,IAAI,IAAI,IAAI,CAACU,KAAK,CAACV,KAAK,KAAKO,SAAS,GAAG,EAAE,GAAG,IAAI,CAACG,KAAK,CAACV,KAAM;QAC3F,KAAK,EAAE,CAAC,CAACyD,KAAM;QACf,QAAQ,EAAE,CAAC,CAACC,QAAS;QACrB,UAAU,EAAE;UACRI,SAAS,EAAE,IAAI,CAAC3D,KAAK,CAAC6C,MAAM,CAACc,SAAS,IAAI,IAAI,CAAC3D,KAAK,CAAC6C,MAAM,CAACe,GAAG,IAAIxD,SAAS;UAC5EyD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC7D,KAAK,CAAC6C,MAAM,CAACiB;QAClC,CAAE;QACF,QAAQ,EAAE,kBAAAC,CAAC,EAAI;UACX,IAAMlE,KAAK,GAAGkE,CAAC,CAACC,MAAM,CAACnE,KAAK;UAC5B,MAAI,CAACQ,QAAQ,CAAC;YAAER,KAAK,EAALA;UAAM,CAAC,EAAE;YAAA,OACrB,MAAI,CAAC+C,QAAQ,CAAC,MAAI,CAAC5C,KAAK,CAACE,IAAI,EAAE,MAAI,CAACF,KAAK,CAAC6C,MAAM,CAACC,IAAI,KAAK,KAAK,GAAGjD,KAAK,GAAG,CAACA,KAAK,IAAI,EAAE,EAAEiD,IAAI,EAAE,CAAC;UAAA,EAAC;QACxG,CAAE;QACF,WAAW,EAAE,IAAI,CAACmB,OAAO,CAAC,IAAI,CAACjE,KAAK,CAAC6C,MAAM,CAACqB,WAAW,CAAE;QACzD,KAAK,EAAE,IAAI,CAACD,OAAO,CAAC,IAAI,CAACjE,KAAK,CAAC6C,MAAM,CAACsB,KAAK,CAAE;QAC7C,UAAU,EAAE,IAAI,CAACC,UAAU,CAAC,IAAI,CAACpE,KAAK,CAAC6C,MAAM,CAACwB,IAAI,EAAE,IAAI,CAACrE,KAAK,CAAC6C,MAAM,CAACyB,QAAQ,EAAE,IAAI,CAACtE,KAAK,CAAC6C,MAAM,CAAC0B,aAAa;MAAE,EACnH,eACF,gCAAC,kBAAM;QAAC,OAAO,EAAC,UAAU;QAAC,OAAO,EAAE;UAAA,OAAM,MAAI,CAAClE,QAAQ,CAAC;YAAEsC,eAAe,EAAE;UAAK,CAAC,CAAC;QAAA;MAAC,SAAa,EAC/F,IAAI,CAAC6B,iBAAiB,EAAE,CACvB;IACV;EAAC;IAAA;IAAA,OAzGD,kCAAgCxE,KAAK,EAAEO,KAAK,EAAE;MAC1C,IAAMV,KAAK,GAAGC,0BAAa,CAACC,QAAQ,CAACC,KAAK,CAACC,IAAI,EAAED,KAAK,CAACE,IAAI,CAAC;MAC5D,IAAIL,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKO,SAAS,IAAIP,KAAK,CAAC4E,QAAQ,EAAE,CAAC3B,IAAI,EAAE,KAAK,CAACvC,KAAK,CAACV,KAAK,IAAK,EAAE,EAAE4E,QAAQ,EAAE,CAAC3B,IAAI,EAAE,EAAE;QAC7G,OAAO;UAAEjD,KAAK,EAALA;QAAM,CAAC;MACpB,CAAC,MAAM;QACH,OAAO,IAAI;MACf;IACJ;EAAC;EAAA;AAAA,EAfoBC,0BAAa;AAoHtCF,UAAU,CAAC8E,SAAS,GAAG;EACnB9D,MAAM,EAAE+D,qBAAS,CAACC,MAAM,CAACC,UAAU;EACnCC,SAAS,EAAEH,qBAAS,CAACI,MAAM;EAC3BC,SAAS,EAAEL,qBAAS,CAACI,MAAM;EAC3BE,KAAK,EAAEN,qBAAS,CAACC,MAAM;EACvBM,SAAS,EAAEP,qBAAS,CAACI,MAAM;EAC3B9E,IAAI,EAAE0E,qBAAS,CAACC,MAAM,CAACC,UAAU;EACjChC,MAAM,EAAE8B,qBAAS,CAACC,MAAM;EACxBO,OAAO,EAAER,qBAAS,CAACS,IAAI;EACvBxC,QAAQ,EAAE+B,qBAAS,CAACS,IAAI;EACxBjF,WAAW,EAAEwE,qBAAS,CAACS;AAC3B,CAAC;AAAC,eAEa,IAAAC,kBAAU,EAACxG,MAAM,CAAC,CAACe,UAAU,CAAC;AAAA"}
@@ -35,13 +35,13 @@ var _Videocam = _interopRequireDefault(require("@mui/icons-material/Videocam"));
35
35
  var _Article = _interopRequireDefault(require("@mui/icons-material/Article"));
36
36
  var _Code = _interopRequireDefault(require("@mui/icons-material/Code"));
37
37
  var _fa = require("react-icons/fa");
38
- var _Utils = _interopRequireDefault(require("../../Components/Utils"));
39
- var _i18n = _interopRequireDefault(require("../../i18n"));
40
- var _Confirm = _interopRequireDefault(require("../../Dialogs/Confirm"));
38
+ var _Utils = _interopRequireDefault(require("./wrapper/Components/Utils"));
39
+ var _i18n = _interopRequireDefault(require("./wrapper/i18n"));
40
+ var _Confirm = _interopRequireDefault(require("./wrapper/Dialogs/Confirm"));
41
41
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
42
42
  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); }; }
43
43
  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; } }
44
- var styles = function styles(theme) {
44
+ var styles = function styles() {
45
45
  return {
46
46
  fullWidth: {
47
47
  width: '100%'
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigFileSelector.js","names":["styles","theme","fullWidth","width","fullWidthOneButton","fullWidthTwoButtons","fullWidthThreeButtons","dropZone","height","position","dropZoneEmpty","image","objectFit","margin","display","uploadDiv","uploadDivDragging","opacity","background","uploadCenterDiv","border","borderRadius","uploadCenterIcon","paddingTop","uploadCenterText","fontSize","uploadCenterTextAndIcon","textAlign","top","bottom","left","right","flexDirection","alignItems","justifyContent","disabledOpacity","cursor","error","deleteButton","selectedImage","marginRight","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFileSelector","props","dropzoneRef","React","createRef","imagePrefix","undefined","objectID","schema","replace","instance","path","upload","endsWith","updateFiles","then","value","ConfigGeneric","getValue","data","attr","setState","readFiles","pattern","files","folderName","filter","socket","readDir","dirFiles","f","length","file","isDir","readFolder","ok","includes","startsWith","regExp","RegExp","test","push","name","size","stats","Utils","formatBytes","console","pos","lastIndexOf","substring","folder","acceptedFiles","reader","FileReader","maxSize","onabort","log","onerror","onload","ext","split","pop","toLowerCase","window","alert","I18n","t","Math","round","base64","btoa","Uint8Array","result","reduce","byte","String","fromCharCode","writeFile64","e","readAsArrayBuffer","state","deleteFile","isOk","readFile","loadFile","AudioContext","context","buf","base64ToArrayBuffer","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","item","extension","classes","backgroundImage","backgroundSize","backgroundRepeat","disabled","defaultValue","folders","withFolder","forEach","selectOptions","map","label","noSize","noNone","unshift","find","buttons","refresh","play","element","getText","val","getIcon","target","onChange","help","renderHelp","helpLink","noTranslation","current","open","color","renderDeleteDialog","accept","last","uploadFile","errors","message","onDrop","getRootProps","getInputProps","clsx","uploadError","binaryString","atob","len","bytes","i","charCodeAt","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFileSelector.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\nimport Dropzone from 'react-dropzone';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\nimport IconButton from '@mui/material/IconButton';\nimport ListItemText from '@mui/material/ListItemText';\nimport ListItemIcon from '@mui/material/ListItemIcon';\n\nimport IconRefresh from '@mui/icons-material/Refresh';\nimport IconUpload from '@mui/icons-material/UploadFile';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconPlay from '@mui/icons-material/PlayArrow';\nimport IconAudio from '@mui/icons-material/MusicNote';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconText from '@mui/icons-material/Article';\nimport IconCode from '@mui/icons-material/Code';\nimport { FaFileUpload as UploadIcon } from 'react-icons/fa';\n\nimport Utils from '../../Components/Utils';\nimport I18n from '../../i18n';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 42px)'\n },\n fullWidthTwoButtons: {\n width: 'calc(100% - 84px)'\n },\n fullWidthThreeButtons: {\n width: 'calc(100% - 126x)'\n },\n dropZone: {\n width: '100%',\n height: '100%',\n position: 'absolute',\n },\n dropZoneEmpty: {\n\n },\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n\n uploadDiv: {\n position: 'relative',\n width: '100%',\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)'\n },\n\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: '100%',\n height: '100%',\n position: 'absolute',\n display: 'flex'\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n\n },\n disabledOpacity: {\n opacity: 0.3,\n cursor: 'default'\n },\n error: {\n border: '2px solid red'\n },\n deleteButton: {\n\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 ConfigFileSelector extends ConfigGeneric {\n constructor(props) {\n super(props);\n this.dropzoneRef = React.createRef();\n this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n this.objectID = (this.props.schema.objectID || '0_userdata.0').replace('%INSTANCE%', this.props.instance);\n this.path = this.props.schema.upload;\n if (this.path) {\n if (this.path === '/') {\n this.path = '';\n } else {\n if (!this.path.endsWith('/')) {\n this.path = this.path + '/';\n }\n }\n }\n\n // read files\n this.updateFiles()\n .then(() => {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n });\n }\n\n updateFiles() {\n return this.readFiles(this.props.schema.pattern)\n .then(files => this.setState({ files }));\n }\n\n async readFolder(folderName, files, filter) {\n try {\n const dirFiles = await this.props.socket.readDir(this.objectID, folderName.replace(/^\\//, '') || null);\n for (let f = 0; f < dirFiles.length; f++) {\n const file = dirFiles[f];\n if (file.isDir) {\n // read it\n await this.readFolder(`${folderName + file.file}/`, files, filter);\n } else {\n let ok = false;\n if (filter === '*.*' && file.file.includes('.')) {\n ok = true;\n } else if (!filter || filter === '*') {\n ok = true;\n } else if (filter === '.*' && file.file.startsWith('.')) {\n ok = true;\n } else {\n const regExp = new RegExp('^' + filter.replace(/\\./g, '\\\\.').replace(/\\*/g,'.*') + '$');\n ok = regExp.test(file.file);\n }\n\n ok && files.push({ name: folderName + file.file, size: file.stats ? Utils.formatBytes(file.stats.size) : '--' })\n }\n }\n } catch (e) {\n console.error(`Cannot read \"${folderName}\": ${e}`);\n }\n\n return files;\n }\n\n async readFiles(pattern) {\n const files = [];\n pattern = pattern || this.props.schema.pattern;\n if (!pattern) {\n pattern = '**/*.*';\n }\n let filter;\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n filter = pattern;\n } else {\n filter = pattern.substring(pos + 1);\n }\n\n if (pattern.startsWith('**')) {\n // read all folders\n await this.readFolder('/', files, filter);\n } else {\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n await this.readFolder('/', files, filter);\n } else {\n const folder = pattern.substring(0, pos + 1);\n await this.readFolder(folder, files, filter);\n }\n }\n\n return files;\n }\n\n onDrop(acceptedFiles) {\n const file = acceptedFiles[0];\n const reader = new FileReader();\n const maxSize = this.props.schema.maxSize || (2 * 1024 * 1024);\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n let ext = 'image/' + file.name.split('.').pop().toLowerCase();\n if (ext === 'image/jpg') {\n ext = 'image/jpeg';\n } else if (ext.includes('svg')) {\n ext = 'image/svg+xml';\n }\n if (file.size > maxSize) {\n return window.alert(I18n.t('File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));\n }\n const base64 = `data:${ext};base64,${btoa(\n new Uint8Array(reader.result)\n .reduce((data, byte) => data + String.fromCharCode(byte), ''))}`;\n\n this.props.socket.writeFile64(this.objectID, this.path + file.name, base64)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot upload file: ' + e));\n };\n reader.readAsArrayBuffer(file);\n }\n\n renderDeleteDialog() {\n if (!this.state.deleteFile) {\n return null;\n }\n return <ConfirmDialog\n title={ I18n.t('ra_Are you sure?') }\n text={ I18n.t('ra_File will be deleted') }\n ok={ I18n.t('ra_Delete') }\n cancel={ I18n.t('ra_Cancel') }\n onClose={isOk => {\n const deleteFile = this.state.deleteFile;\n this.setState({deleteFile: false}, () => {\n if (isOk) {\n this.props.socket.deleteFile(this.objectID, deleteFile)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot delete file: ' + e));\n }\n });\n }}\n />;\n }\n\n static base64ToArrayBuffer(base64) {\n const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n loadFile() {\n return this.props.socket.readFile(this.objectID, this.state.value, true);\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(item) {\n if (!item || !item.extension) {\n return null;\n }\n if (IMAGE_EXT.includes(item.extension)) {\n return <div className={this.props.classes.selectedImage} style={{\n backgroundImage: `url(${this.imagePrefix}/${this.objectID}/${item.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }} />;\n } else if (AUDIO_EXT.includes(item.extension)) {\n return <IconAudio />;\n } else if (DOC_EXT.includes(item.extension)) {\n return <IconText />;\n } else if (VIDEO_EXT.includes(item.extension)) {\n return <IconVideo />;\n } else if (JS_EXT.includes(item.extension)) {\n return <IconCode />;\n }\n return null;\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.files) {\n return null;\n }\n let folders = [];\n if (!this.props.schema.withFolder) {\n this.state.files.forEach(file => {\n const pos = file.name.lastIndexOf('/');\n if (pos === -1) {\n if (!folders.includes('/')) {\n folders.push('/');\n }\n } else {\n const folder = file.name.substring(0, pos + 1);\n if (!folders.includes(folder)) {\n folders.push(folder);\n }\n }\n });\n }\n\n const selectOptions = this.state.files\n .map(file => ({\n value: file.name,\n label: !this.props.schema.withFolder && folders.length === 1 ? `${file.name.substring(folders[0].length)}` : `${file.name}` + (this.props.schema.noSize ? '' : `(${file.size})`),\n extension: file.name.toLowerCase().split('.').pop(),\n }));\n\n if (!this.props.schema.noNone) {\n selectOptions.unshift({label: I18n.t('ra_none'), value: ''});\n }\n\n // eslint-disable-next-line\n const item = selectOptions.find(item => item.value === this.state.value);\n\n let buttons = 0;\n\n if (this.props.schema.upload) {\n buttons++;\n }\n if (this.props.schema.refresh) {\n buttons++;\n }\n let play = this.state.value && (this.state.value.endsWith('.mp3') || this.state.value.endsWith('.ogg') || this.state.value.endsWith('.wav'));\n // show play button\n if (play) {\n buttons++;\n }\n\n const element = <div className={this.props.classes.fullWidth}>\n <FormControl variant=\"standard\" style={{width: `calc(100% - ${buttons * 42}px)`}}>\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={val => {\n return <>{this.getIcon(item)}<span>{item?.label || ''}</span></>\n }}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {selectOptions.map(item => {\n return <MenuItem key={item.value} value={item.value}>\n <ListItemIcon>{this.getIcon(item)}</ListItemIcon>\n <ListItemText>{item.label}</ListItemText>\n {this.props.schema.delete && item.value ?\n <IconButton className={this.props.classes.deleteButton} size=\"small\"\n onClick={() => this.setState({deleteFile: item.value})}><IconDelete/></IconButton> : null}\n </MenuItem>;\n })}\n </Select>\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>\n { this.props.schema.refresh && <IconButton onClick={() => this.updateFiles()}><IconRefresh /></IconButton> }\n { this.props.schema.upload && <IconButton onClick={() => this.dropzoneRef.current?.open()}><IconUpload /></IconButton> }\n { play && <IconButton style={{ color: '#00FF00' }} onClick={() => this.play()}><IconPlay /></IconButton> }\n </div>;\n\n if (!this.props.schema.upload) {\n return <>{element}{this.renderDeleteDialog()}</>;\n } else {\n let accept = {'*/*': []};\n if (this.props.schema.pattern) {\n const last = this.props.schema.pattern.split('/').pop().toLowerCase().replace(/.*\\./, '');\n if (last === 'png' || last === 'jpg' || last === 'svg') {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg']\n };\n } else if (last === 'mp3' || last === 'ogg' || last === 'wav') {\n accept = {\n 'audio/*': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'ics') {\n accept = {\n 'text/calendar': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'txt') {\n accept = {\n 'text/plain': ['.txt']\n };\n } else if (last === 'pem') {\n accept = {\n 'text/plain': ['.pem']\n };\n } else if (last === 'pem') {\n accept = {\n '*/*': ['.' + last]\n };\n }\n }\n\n return <Dropzone\n ref={this.dropzoneRef}\n multiple={false}\n accept={accept}\n noKeyboard\n noClick\n maxSize={this.props.schema.maxSize || 2 * 1024 * 1024}\n onDragEnter={() => {\n this.setState({ uploadFile: 'dragging' });\n }}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert((errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message) || I18n.t('Cannot upload'));\n } else {\n return this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => <div\n className={Utils.clsx(\n this.props.classes.uploadDiv,\n this.state.uploadFile === 'dragging' && this.props.classes.uploadDivDragging,\n disabled && this.props.classes.disabledOpacity,\n )}\n {...getRootProps()}\n >\n <input {...getInputProps()} />\n {this.state.uploadFile === 'dragging' ? <div className={Utils.clsx(this.props.classes.uploadCenterDiv, this.state.uploadError && this.props.classes.error)}>\n <div className={this.props.classes.uploadCenterTextAndIcon}>\n <UploadIcon className={this.props.classes.uploadCenterIcon} />\n <div className={this.props.classes.uploadCenterText}>{\n this.state.uploadFile === 'dragging' ? I18n.t('ra_Drop file here') :\n I18n.t('ra_Place your files here or click here to open the browse dialog')}</div>\n </div>\n </div> : null}\n {element}\n {this.renderDeleteDialog()}\n </div>}\n </Dropzone>;\n }\n }\n}\n\nConfigFileSelector.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)(ConfigFileSelector);"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigFileSelector.js","names":["styles","fullWidth","width","fullWidthOneButton","fullWidthTwoButtons","fullWidthThreeButtons","dropZone","height","position","dropZoneEmpty","image","objectFit","margin","display","uploadDiv","uploadDivDragging","opacity","background","uploadCenterDiv","border","borderRadius","uploadCenterIcon","paddingTop","uploadCenterText","fontSize","uploadCenterTextAndIcon","textAlign","top","bottom","left","right","flexDirection","alignItems","justifyContent","disabledOpacity","cursor","error","deleteButton","selectedImage","marginRight","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFileSelector","props","dropzoneRef","React","createRef","imagePrefix","undefined","objectID","schema","replace","instance","path","upload","endsWith","updateFiles","then","value","ConfigGeneric","getValue","data","attr","setState","readFiles","pattern","files","folderName","filter","socket","readDir","dirFiles","f","length","file","isDir","readFolder","ok","includes","startsWith","regExp","RegExp","test","push","name","size","stats","Utils","formatBytes","console","pos","lastIndexOf","substring","folder","acceptedFiles","reader","FileReader","maxSize","onabort","log","onerror","onload","ext","split","pop","toLowerCase","window","alert","I18n","t","Math","round","base64","btoa","Uint8Array","result","reduce","byte","String","fromCharCode","writeFile64","e","readAsArrayBuffer","state","deleteFile","isOk","readFile","loadFile","AudioContext","context","buf","base64ToArrayBuffer","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","item","extension","classes","backgroundImage","backgroundSize","backgroundRepeat","disabled","defaultValue","folders","withFolder","forEach","selectOptions","map","label","noSize","noNone","unshift","find","buttons","refresh","play","element","getText","val","getIcon","target","onChange","help","renderHelp","helpLink","noTranslation","current","open","color","renderDeleteDialog","accept","last","uploadFile","errors","message","onDrop","getRootProps","getInputProps","clsx","uploadError","binaryString","atob","len","bytes","i","charCodeAt","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFileSelector.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\nimport Dropzone from 'react-dropzone';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\nimport IconButton from '@mui/material/IconButton';\nimport ListItemText from '@mui/material/ListItemText';\nimport ListItemIcon from '@mui/material/ListItemIcon';\n\nimport IconRefresh from '@mui/icons-material/Refresh';\nimport IconUpload from '@mui/icons-material/UploadFile';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconPlay from '@mui/icons-material/PlayArrow';\nimport IconAudio from '@mui/icons-material/MusicNote';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconText from '@mui/icons-material/Article';\nimport IconCode from '@mui/icons-material/Code';\nimport { FaFileUpload as UploadIcon } from 'react-icons/fa';\n\nimport Utils from './wrapper/Components/Utils';\nimport I18n from './wrapper/i18n';\nimport ConfirmDialog from './wrapper/Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = () => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 42px)'\n },\n fullWidthTwoButtons: {\n width: 'calc(100% - 84px)'\n },\n fullWidthThreeButtons: {\n width: 'calc(100% - 126x)'\n },\n dropZone: {\n width: '100%',\n height: '100%',\n position: 'absolute',\n },\n dropZoneEmpty: {\n\n },\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n\n uploadDiv: {\n position: 'relative',\n width: '100%',\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)'\n },\n\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: '100%',\n height: '100%',\n position: 'absolute',\n display: 'flex'\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n\n },\n disabledOpacity: {\n opacity: 0.3,\n cursor: 'default'\n },\n error: {\n border: '2px solid red'\n },\n deleteButton: {\n\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 ConfigFileSelector extends ConfigGeneric {\n constructor(props) {\n super(props);\n this.dropzoneRef = React.createRef();\n this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n this.objectID = (this.props.schema.objectID || '0_userdata.0').replace('%INSTANCE%', this.props.instance);\n this.path = this.props.schema.upload;\n if (this.path) {\n if (this.path === '/') {\n this.path = '';\n } else {\n if (!this.path.endsWith('/')) {\n this.path = this.path + '/';\n }\n }\n }\n\n // read files\n this.updateFiles()\n .then(() => {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n });\n }\n\n updateFiles() {\n return this.readFiles(this.props.schema.pattern)\n .then(files => this.setState({ files }));\n }\n\n async readFolder(folderName, files, filter) {\n try {\n const dirFiles = await this.props.socket.readDir(this.objectID, folderName.replace(/^\\//, '') || null);\n for (let f = 0; f < dirFiles.length; f++) {\n const file = dirFiles[f];\n if (file.isDir) {\n // read it\n await this.readFolder(`${folderName + file.file}/`, files, filter);\n } else {\n let ok = false;\n if (filter === '*.*' && file.file.includes('.')) {\n ok = true;\n } else if (!filter || filter === '*') {\n ok = true;\n } else if (filter === '.*' && file.file.startsWith('.')) {\n ok = true;\n } else {\n const regExp = new RegExp('^' + filter.replace(/\\./g, '\\\\.').replace(/\\*/g,'.*') + '$');\n ok = regExp.test(file.file);\n }\n\n ok && files.push({ name: folderName + file.file, size: file.stats ? Utils.formatBytes(file.stats.size) : '--' })\n }\n }\n } catch (e) {\n console.error(`Cannot read \"${folderName}\": ${e}`);\n }\n\n return files;\n }\n\n async readFiles(pattern) {\n const files = [];\n pattern = pattern || this.props.schema.pattern;\n if (!pattern) {\n pattern = '**/*.*';\n }\n let filter;\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n filter = pattern;\n } else {\n filter = pattern.substring(pos + 1);\n }\n\n if (pattern.startsWith('**')) {\n // read all folders\n await this.readFolder('/', files, filter);\n } else {\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n await this.readFolder('/', files, filter);\n } else {\n const folder = pattern.substring(0, pos + 1);\n await this.readFolder(folder, files, filter);\n }\n }\n\n return files;\n }\n\n onDrop(acceptedFiles) {\n const file = acceptedFiles[0];\n const reader = new FileReader();\n const maxSize = this.props.schema.maxSize || (2 * 1024 * 1024);\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n let ext = 'image/' + file.name.split('.').pop().toLowerCase();\n if (ext === 'image/jpg') {\n ext = 'image/jpeg';\n } else if (ext.includes('svg')) {\n ext = 'image/svg+xml';\n }\n if (file.size > maxSize) {\n return window.alert(I18n.t('File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));\n }\n const base64 = `data:${ext};base64,${btoa(\n new Uint8Array(reader.result)\n .reduce((data, byte) => data + String.fromCharCode(byte), ''))}`;\n\n this.props.socket.writeFile64(this.objectID, this.path + file.name, base64)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot upload file: ' + e));\n };\n reader.readAsArrayBuffer(file);\n }\n\n renderDeleteDialog() {\n if (!this.state.deleteFile) {\n return null;\n }\n return <ConfirmDialog\n title={ I18n.t('ra_Are you sure?') }\n text={ I18n.t('ra_File will be deleted') }\n ok={ I18n.t('ra_Delete') }\n cancel={ I18n.t('ra_Cancel') }\n onClose={isOk => {\n const deleteFile = this.state.deleteFile;\n this.setState({deleteFile: false}, () => {\n if (isOk) {\n this.props.socket.deleteFile(this.objectID, deleteFile)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot delete file: ' + e));\n }\n });\n }}\n />;\n }\n\n static base64ToArrayBuffer(base64) {\n const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n loadFile() {\n return this.props.socket.readFile(this.objectID, this.state.value, true);\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(item) {\n if (!item || !item.extension) {\n return null;\n }\n if (IMAGE_EXT.includes(item.extension)) {\n return <div className={this.props.classes.selectedImage} style={{\n backgroundImage: `url(${this.imagePrefix}/${this.objectID}/${item.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }} />;\n } else if (AUDIO_EXT.includes(item.extension)) {\n return <IconAudio />;\n } else if (DOC_EXT.includes(item.extension)) {\n return <IconText />;\n } else if (VIDEO_EXT.includes(item.extension)) {\n return <IconVideo />;\n } else if (JS_EXT.includes(item.extension)) {\n return <IconCode />;\n }\n return null;\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.files) {\n return null;\n }\n let folders = [];\n if (!this.props.schema.withFolder) {\n this.state.files.forEach(file => {\n const pos = file.name.lastIndexOf('/');\n if (pos === -1) {\n if (!folders.includes('/')) {\n folders.push('/');\n }\n } else {\n const folder = file.name.substring(0, pos + 1);\n if (!folders.includes(folder)) {\n folders.push(folder);\n }\n }\n });\n }\n\n const selectOptions = this.state.files\n .map(file => ({\n value: file.name,\n label: !this.props.schema.withFolder && folders.length === 1 ? `${file.name.substring(folders[0].length)}` : `${file.name}` + (this.props.schema.noSize ? '' : `(${file.size})`),\n extension: file.name.toLowerCase().split('.').pop(),\n }));\n\n if (!this.props.schema.noNone) {\n selectOptions.unshift({label: I18n.t('ra_none'), value: ''});\n }\n\n // eslint-disable-next-line\n const item = selectOptions.find(item => item.value === this.state.value);\n\n let buttons = 0;\n\n if (this.props.schema.upload) {\n buttons++;\n }\n if (this.props.schema.refresh) {\n buttons++;\n }\n let play = this.state.value && (this.state.value.endsWith('.mp3') || this.state.value.endsWith('.ogg') || this.state.value.endsWith('.wav'));\n // show play button\n if (play) {\n buttons++;\n }\n\n const element = <div className={this.props.classes.fullWidth}>\n <FormControl variant=\"standard\" style={{width: `calc(100% - ${buttons * 42}px)`}}>\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={val => {\n return <>{this.getIcon(item)}<span>{item?.label || ''}</span></>\n }}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {selectOptions.map(item => {\n return <MenuItem key={item.value} value={item.value}>\n <ListItemIcon>{this.getIcon(item)}</ListItemIcon>\n <ListItemText>{item.label}</ListItemText>\n {this.props.schema.delete && item.value ?\n <IconButton className={this.props.classes.deleteButton} size=\"small\"\n onClick={() => this.setState({deleteFile: item.value})}><IconDelete/></IconButton> : null}\n </MenuItem>;\n })}\n </Select>\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>\n { this.props.schema.refresh && <IconButton onClick={() => this.updateFiles()}><IconRefresh /></IconButton> }\n { this.props.schema.upload && <IconButton onClick={() => this.dropzoneRef.current?.open()}><IconUpload /></IconButton> }\n { play && <IconButton style={{ color: '#00FF00' }} onClick={() => this.play()}><IconPlay /></IconButton> }\n </div>;\n\n if (!this.props.schema.upload) {\n return <>{element}{this.renderDeleteDialog()}</>;\n } else {\n let accept = {'*/*': []};\n if (this.props.schema.pattern) {\n const last = this.props.schema.pattern.split('/').pop().toLowerCase().replace(/.*\\./, '');\n if (last === 'png' || last === 'jpg' || last === 'svg') {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg']\n };\n } else if (last === 'mp3' || last === 'ogg' || last === 'wav') {\n accept = {\n 'audio/*': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'ics') {\n accept = {\n 'text/calendar': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'txt') {\n accept = {\n 'text/plain': ['.txt']\n };\n } else if (last === 'pem') {\n accept = {\n 'text/plain': ['.pem']\n };\n } else if (last === 'pem') {\n accept = {\n '*/*': ['.' + last]\n };\n }\n }\n\n return <Dropzone\n ref={this.dropzoneRef}\n multiple={false}\n accept={accept}\n noKeyboard\n noClick\n maxSize={this.props.schema.maxSize || 2 * 1024 * 1024}\n onDragEnter={() => {\n this.setState({ uploadFile: 'dragging' });\n }}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert((errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message) || I18n.t('Cannot upload'));\n } else {\n return this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => <div\n className={Utils.clsx(\n this.props.classes.uploadDiv,\n this.state.uploadFile === 'dragging' && this.props.classes.uploadDivDragging,\n disabled && this.props.classes.disabledOpacity,\n )}\n {...getRootProps()}\n >\n <input {...getInputProps()} />\n {this.state.uploadFile === 'dragging' ? <div className={Utils.clsx(this.props.classes.uploadCenterDiv, this.state.uploadError && this.props.classes.error)}>\n <div className={this.props.classes.uploadCenterTextAndIcon}>\n <UploadIcon className={this.props.classes.uploadCenterIcon} />\n <div className={this.props.classes.uploadCenterText}>{\n this.state.uploadFile === 'dragging' ? I18n.t('ra_Drop file here') :\n I18n.t('ra_Place your files here or click here to open the browse dialog')}</div>\n </div>\n </div> : null}\n {element}\n {this.renderDeleteDialog()}\n </div>}\n </Dropzone>;\n }\n }\n}\n\nConfigFileSelector.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)(ConfigFileSelector);"],"mappings":"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"}
@@ -19,8 +19,8 @@ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
19
19
  var _FormHelperText = _interopRequireDefault(require("@mui/material/FormHelperText"));
20
20
  var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
21
21
  var _Select = _interopRequireDefault(require("@mui/material/Select"));
22
- var _TextWithIcon = _interopRequireDefault(require("../TextWithIcon"));
23
- var _i18n = _interopRequireDefault(require("../../i18n"));
22
+ var _TextWithIcon = _interopRequireDefault(require("./wrapper/Components/TextWithIcon"));
23
+ var _i18n = _interopRequireDefault(require("./wrapper/i18n"));
24
24
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
25
25
  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); }; }
26
26
  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; } }
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigFunc.js","names":["styles","theme","fullWidth","width","ConfigFunc","value","ConfigGeneric","getValue","props","data","attr","socket","getEnums","then","enums","selectOptions","Object","keys","map","id","schema","replace","label","getText","common","name","obj","setState","error","disabled","defaultValue","state","item","find","classes","val","themeType","I18n","getLanguage","e","target","onChange","DIFFERENT_VALUE","opacity","help","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFunc.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport TextWithIcon from '../TextWithIcon';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigFunc extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.props.socket.getEnums('functions')\n .then(enums => {\n const selectOptions = Object.keys(enums)\n .map(id => ({ value: this.props.schema.short ? id.replace('enum.functions.', '') : id, label: this.getText(enums[id].common.name), obj: enums[id]}));\n this.setState({ value, selectOptions });\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions.find(item => item.value === this.state.value);\n\n return <FormControl\n variant=\"standard\"\n className={this.props.classes.fullWidth}\n >\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={val => item ? <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()}/> : ''}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {this.state.selectOptions.map(item =>\n <MenuItem key={item.value} value={item.value} style={item.value === ConfigGeneric.DIFFERENT_VALUE ? {opacity: 0.5} : {}}>\n <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()}/>\n </MenuItem>)}\n </Select>\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>;\n }\n}\n\nConfigFunc.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)(ConfigFunc);"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigFunc.js","names":["styles","theme","fullWidth","width","ConfigFunc","value","ConfigGeneric","getValue","props","data","attr","socket","getEnums","then","enums","selectOptions","Object","keys","map","id","schema","replace","label","getText","common","name","obj","setState","error","disabled","defaultValue","state","item","find","classes","val","themeType","I18n","getLanguage","e","target","onChange","DIFFERENT_VALUE","opacity","help","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFunc.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport TextWithIcon from './wrapper/Components/TextWithIcon';\nimport I18n from './wrapper/i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigFunc extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.props.socket.getEnums('functions')\n .then(enums => {\n const selectOptions = Object.keys(enums)\n .map(id => ({ value: this.props.schema.short ? id.replace('enum.functions.', '') : id, label: this.getText(enums[id].common.name), obj: enums[id]}));\n this.setState({ value, selectOptions });\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions.find(item => item.value === this.state.value);\n\n return <FormControl\n variant=\"standard\"\n className={this.props.classes.fullWidth}\n >\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={val => item ? <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()}/> : ''}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {this.state.selectOptions.map(item =>\n <MenuItem key={item.value} value={item.value} style={item.value === ConfigGeneric.DIFFERENT_VALUE ? {opacity: 0.5} : {}}>\n <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()}/>\n </MenuItem>)}\n </Select>\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>;\n }\n}\n\nConfigFunc.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)(ConfigFunc);"],"mappings":"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"}