@iobroker/adapter-react-v5 3.0.1 → 3.0.4

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 (68) hide show
  1. package/Components/CustomModal.js +168 -0
  2. package/Components/CustomModal.js.map +1 -0
  3. package/Components/FileBrowser.js +2 -2
  4. package/Components/FileBrowser.js.map +1 -1
  5. package/Components/JsonConfigComponent/ConfigAlive.js +5 -3
  6. package/Components/JsonConfigComponent/ConfigAlive.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 +7 -5
  10. package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
  11. package/Components/JsonConfigComponent/ConfigCheckbox.js +8 -6
  12. package/Components/JsonConfigComponent/ConfigCheckbox.js.map +1 -1
  13. package/Components/JsonConfigComponent/ConfigChip.js +5 -3
  14. package/Components/JsonConfigComponent/ConfigChip.js.map +1 -1
  15. package/Components/JsonConfigComponent/ConfigColor.js +9 -7
  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/ConfigCustomEasyAccess.js +12 -10
  20. package/Components/JsonConfigComponent/ConfigCustomEasyAccess.js.map +1 -1
  21. package/Components/JsonConfigComponent/ConfigGeneric.js +3 -3
  22. package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
  23. package/Components/JsonConfigComponent/ConfigIP.js +7 -5
  24. package/Components/JsonConfigComponent/ConfigIP.js.map +1 -1
  25. package/Components/JsonConfigComponent/ConfigInstanceSelect.js +8 -6
  26. package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
  27. package/Components/JsonConfigComponent/ConfigJsonEditor.js +10 -8
  28. package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
  29. package/Components/JsonConfigComponent/ConfigLanguage.js +7 -5
  30. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
  31. package/Components/JsonConfigComponent/ConfigNumber.js +1 -1
  32. package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
  33. package/Components/JsonConfigComponent/ConfigObjectId.js +1 -1
  34. package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
  35. package/Components/JsonConfigComponent/ConfigPassword.js +1 -1
  36. package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -1
  37. package/Components/JsonConfigComponent/ConfigPattern.js +7 -5
  38. package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
  39. package/Components/JsonConfigComponent/ConfigSelect.js +6 -4
  40. package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
  41. package/Components/JsonConfigComponent/ConfigSelectSendTo.js +5 -5
  42. package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
  43. package/Components/JsonConfigComponent/ConfigSendto.js +5 -5
  44. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
  45. package/Components/JsonConfigComponent/ConfigSetState.js +3 -3
  46. package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
  47. package/Components/JsonConfigComponent/ConfigStaticDivider.js +4 -2
  48. package/Components/JsonConfigComponent/ConfigStaticDivider.js.map +1 -1
  49. package/Components/JsonConfigComponent/ConfigStaticHeader.js +3 -1
  50. package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -1
  51. package/Components/JsonConfigComponent/ConfigStaticImage.js +3 -1
  52. package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
  53. package/Components/JsonConfigComponent/ConfigStaticText.js +1 -1
  54. package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
  55. package/Components/JsonConfigComponent/ConfigTable.js +1 -1
  56. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  57. package/Components/JsonConfigComponent/ConfigTextSendTo.js +2 -2
  58. package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
  59. package/Components/JsonConfigComponent/ConfigUser.js +2 -2
  60. package/Components/JsonConfigComponent/ConfigUser.js.map +1 -1
  61. package/Components/JsonConfigComponent/index.js +1 -1
  62. package/Components/JsonConfigComponent/index.js.map +1 -1
  63. package/Components/UploadImage.js +357 -0
  64. package/Components/UploadImage.js.map +1 -0
  65. package/Components/withWidth.js +3 -1
  66. package/Components/withWidth.js.map +1 -1
  67. package/README.md +1 -1
  68. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigUser.js","names":["styles","theme","fullWidth","width","icon","height","marginRight","ConfigUser","props","socket","getUsers","then","users","_users","lang","I18n","getLanguage","schema","forEach","user","_id","color","common","name","Utils","getObjectNameFromObj","replace","setState","error","disabled","defaultValue","value","ConfigGeneric","getValue","data","attr","classes","getText","label","val","state","undefined","backgroundColor","getInvertedColor","themeType","e","onChange","target","Object","keys","map","id","help","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigUser.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 Icon from '@iobroker/adapter-react-v5/Components/Icon';\nimport I18n from '@iobroker/adapter-react-v5/i18n';\nimport Utils from '../Utils';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8\n }\n});\n\nclass ConfigUser extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n this.props.socket.getUsers()\n .then(users => {\n const _users = {};\n const lang = I18n.getLanguage();\n\n if (this.props.schema.short) {\n users.forEach(user => _users[user._id] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n } else {\n users.forEach(user => _users[user._id.replace(/^system\\.user\\./, '')] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n }\n\n this.setState({users: _users});\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n return <FormControl variant=\"standard\" className={this.props.classes.fullWidth}>\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n renderValue={val => <span>{this.state.users && this.state.users[val]?.icon ? <Icon src={this.state.users && this.state.users[val]?.icon} className={this.props.classes.icon} /> : null}{(this.state.users && this.state.users[val]?.name) || val || ''}</span>}\n style={{ color: (this.state.users && this.state.users[value]?.color) || undefined, backgroundColor: Utils.getInvertedColor(this.state.users && this.state.users[value]?.color, this.props.themeType) }}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.users && Object.keys(this.state.users).map(id => <MenuItem style={{ color: this.state.users[id].color || undefined, backgroundColor: Utils.getInvertedColor(this.state.users[id].color, this.props.themeType) }} key={id} value={id}>\n {this.state.users[id].icon ? <Icon src={this.state.users[id].icon} className={this.props.classes.icon} /> : null}\n {this.state.users[id].name}\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\nConfigUser.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)(ConfigUser);"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigUser.js","names":["styles","theme","fullWidth","width","icon","height","marginRight","ConfigUser","props","socket","getUsers","then","users","_users","lang","I18n","getLanguage","schema","forEach","user","_id","color","common","name","Utils","getObjectNameFromObj","replace","setState","error","disabled","defaultValue","value","ConfigGeneric","getValue","data","attr","classes","getText","label","val","state","undefined","backgroundColor","getInvertedColor","themeType","e","onChange","target","Object","keys","map","id","help","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigUser.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 Icon from '../Icon';\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8\n }\n});\n\nclass ConfigUser extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n this.props.socket.getUsers()\n .then(users => {\n const _users = {};\n const lang = I18n.getLanguage();\n\n if (this.props.schema.short) {\n users.forEach(user => _users[user._id] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n } else {\n users.forEach(user => _users[user._id.replace(/^system\\.user\\./, '')] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n }\n\n this.setState({users: _users});\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n return <FormControl variant=\"standard\" className={this.props.classes.fullWidth}>\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n renderValue={val => <span>{this.state.users && this.state.users[val]?.icon ? <Icon src={this.state.users && this.state.users[val]?.icon} className={this.props.classes.icon} /> : null}{(this.state.users && this.state.users[val]?.name) || val || ''}</span>}\n style={{ color: (this.state.users && this.state.users[value]?.color) || undefined, backgroundColor: Utils.getInvertedColor(this.state.users && this.state.users[value]?.color, this.props.themeType) }}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.users && Object.keys(this.state.users).map(id => <MenuItem style={{ color: this.state.users[id].color || undefined, backgroundColor: Utils.getInvertedColor(this.state.users[id].color, this.props.themeType) }} key={id} value={id}>\n {this.state.users[id].icon ? <Icon src={this.state.users[id].icon} className={this.props.classes.icon} /> : null}\n {this.state.users[id].name}\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\nConfigUser.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)(ConfigUser);"],"mappings":"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"}
@@ -33,7 +33,7 @@ var _styles = require("@mui/styles");
33
33
 
34
34
  var _LinearProgress = _interopRequireDefault(require("@mui/material/LinearProgress"));
35
35
 
36
- var _i18n = _interopRequireDefault(require("@iobroker/adapter-react-v5/i18n"));
36
+ var _i18n = _interopRequireDefault(require("../../i18n"));
37
37
 
38
38
  var _ConfigTabs = _interopRequireDefault(require("./ConfigTabs"));
39
39
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["styles","theme","root","width","height","JsonConfigComponent","props","commandRunning","setState","id","state","val","alive","data","value","cb","onValueChange","_data","Object","keys","forEach","attr","startsWith","changed","JSON","stringify","originalData","onChange","error","errors","parse","onError","length","Array","isArray","a","forceUpdateHandlers","updateData","systemConfig","schema","buildDependencies","readData","custom","common","Promise","resolve","socket","getObject","adapterName","instance","then","obj","readSettings","getCompactSystemConfig","getState","subscribeState","onAlive","_list","items","flatten","attrs","confirm","alsoDependsOn","dep","console","warn","replace","confirmDependsOn","depObj","cancel","push","onChangeDependsOn","hidden","hiddenDependsOn","label","labelDependsOn","help","helpDependsOn","item","type","onCommandRunning","themeType","themeName","customs","dateFormat","isFloatComma","multiEdit","customObj","instanceObj","forceUpdate","registerOnForceUpdate","classes","renderItem","i18n","lang","I18n","getLanguage","path","fileExists","exists","fileName","readFile","json","file","undefined","extendTranslations","e","Component","propTypes","PropTypes","object","isRequired","string","number","bool","style","className","func","withStyles"],"sources":["JsonConfigComponent/index.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport LinearProgress from '@mui/material/LinearProgress';\n\nimport I18n from '@iobroker/adapter-react-v5/i18n';\n\nimport ConfigTabs from './ConfigTabs';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n height: '100%'\n }\n});\n\nclass JsonConfigComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n originalData: JSON.stringify(this.props.data),\n changed: false,\n errors: {\n\n },\n updateData: this.props.updateData,\n systemConfig: null,\n alive: false,\n commandRunning: false,\n };\n\n this.forceUpdateHandlers = {};\n\n this.schema = JSON.parse(JSON.stringify(this.props.schema));\n this.buildDependencies(this.schema);\n\n this.readData();\n }\n\n static getDerivedStateFromProps(props, state) {\n if (JSON.stringify(props.updateData) !== JSON.stringify(state.updateData)) {\n return {updateData: props.updateData, originalData: JSON.stringify(props.data)};\n } else {\n return null;\n }\n }\n\n static loadI18n(socket, i18n, adapterName) {\n if (i18n === true || (i18n && typeof i18n === 'string')) {\n const lang = I18n.getLanguage();\n const path = typeof i18n === 'string' ? i18n : 'i18n';\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}.json`)\n .then(exists => {\n if (exists) {\n return `${path}/${lang}.json`;\n } else {\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}/translations.json`)\n .then(exists =>\n exists ? `${path}/${lang}/translations.json` : '')\n }\n })\n .then(fileName => {\n if (fileName) {\n return socket.readFile(adapterName + '.admin', fileName)\n .then(json => {\n if (json.file !== undefined) {\n json = json.file;\n }\n try {\n json = JSON.parse(json);\n // apply file to I18n\n I18n.extendTranslations(json, lang);\n } catch (e) {\n console.error(`Cannot parse language file \"${adapterName}.admin/${fileName}: ${e}`);\n }\n })\n } else {\n console.warn(`Cannot find i18n for ${adapterName} / ${fileName}`);\n return Promise.resolve();\n }\n });\n } else if (i18n && typeof i18n === 'object') {\n I18n.extendTranslations(i18n);\n return Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n\n onCommandRunning = commandRunning => this.setState( {commandRunning});\n\n readSettings() {\n if ((this.props.custom || this.props.common) && this.props.data) {\n return Promise.resolve();\n } else {\n return this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`)\n .then(obj => this.setState({common: obj.common, data: this.props.data || obj.native}));\n }\n }\n\n readData() {\n this.readSettings()\n .then(() => this.props.socket.getCompactSystemConfig())\n .then(systemConfig =>\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`)\n .then(state => {\n if (this.props.custom) {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)});\n } else {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)}, () =>\n this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`, this.onAlive));\n }\n }));\n }\n\n onAlive = (id, state) => {\n if ((state?.val || false) !== this.state.alive) {\n this.setState({alive: state?.val || false});\n }\n }\n\n onChange = (data, value, cb) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(data, value);\n cb && cb();\n } else {\n const state = {data};\n\n const _data = {};\n // remove all attributes starting with \"_\"\n Object.keys(data).forEach(attr => !attr.startsWith('_') && (_data[attr] = data[attr]));\n\n state.changed = JSON.stringify(_data) !== this.state.originalData;\n\n this.setState({state}, () => {\n this.props.onChange(_data, state.changed);\n cb && cb();\n });\n }\n }\n\n onError = (attr, error) => {\n const errors = JSON.parse(JSON.stringify(this.state.errors));\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n if (JSON.stringify(errors) !== JSON.parse(JSON.stringify(this.state.errors))) {\n this.setState({errors}, () =>\n this.props.onError(!!Object.keys(this.state.errors).length));\n }\n }\n\n flatten(schema, _list) {\n _list = _list || {};\n if (schema.items) {\n Object.keys(schema.items).forEach(attr => {\n _list[attr] = schema.items[attr];\n this.flatten(schema.items[attr], _list);\n });\n }\n\n return _list;\n }\n\n buildDependencies(schema) {\n const attrs = this.flatten(schema);\n Object.keys(attrs).forEach(attr => {\n if (attrs[attr].confirm?.alsoDependsOn) {\n attrs[attr].confirm?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n if (depObj.confirm) {\n depObj.confirm.cancel = 'Undo';\n }\n\n attrs[dep].confirmDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].onChange?.alsoDependsOn) {\n attrs[attr].onChange?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].onChangeDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].hidden?.alsoDependsOn) {\n attrs[attr].hidden?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].hiddenDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].label?.alsoDependsOn) {\n attrs[attr].label?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].labelDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].help?.alsoDependsOn) {\n attrs[attr].help?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].helpDependsOn.push(depObj);\n }\n });\n }\n });\n }\n\n renderItem(item) {\n if (item.type === 'tabs') {\n return <ConfigTabs\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n forceUpdate={this.forceUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />;\n } else if (item.type === 'panel' || !item.type) {\n return <ConfigPanel\n index={1000}\n isParentTab={true}\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n\n forceUpdate={this.forceUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />\n }\n }\n\n forceUpdate = (attr, data) => {\n if (Array.isArray(attr)) {\n attr.forEach(a =>\n this.forceUpdateHandlers[a] && this.forceUpdateHandlers[a](data));\n } else {\n if (this.forceUpdateHandlers[attr]) {\n this.forceUpdateHandlers[attr](data);\n }\n }\n }\n\n registerOnForceUpdate = (attr, cb) => {\n if (cb) {\n this.forceUpdateHandlers[attr] = cb;\n } else if (this.forceUpdateHandlers[attr]) {\n delete this.forceUpdateHandlers[attr];\n }\n }\n\n render() {\n if (!this.state.systemConfig) {\n return <LinearProgress />;\n }\n\n return <div className={this.props.classes.root}>\n {this.renderItem(this.schema)}\n </div>;\n }\n}\n\nJsonConfigComponent.propTypes = {\n socket: PropTypes.object.isRequired,\n\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n common: PropTypes.object,\n customs: PropTypes.object, // custom components\n\n custom: PropTypes.bool, // is the customs settings must be shown\n customObj: PropTypes.object,\n multiEdit: PropTypes.bool, // set if user edits more than one object simultaneously\n instanceObj: PropTypes.object,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n updateData: PropTypes.number,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n onValueChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(JsonConfigComponent);"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["styles","theme","root","width","height","JsonConfigComponent","props","commandRunning","setState","id","state","val","alive","data","value","cb","onValueChange","_data","Object","keys","forEach","attr","startsWith","changed","JSON","stringify","originalData","onChange","error","errors","parse","onError","length","Array","isArray","a","forceUpdateHandlers","updateData","systemConfig","schema","buildDependencies","readData","custom","common","Promise","resolve","socket","getObject","adapterName","instance","then","obj","readSettings","getCompactSystemConfig","getState","subscribeState","onAlive","_list","items","flatten","attrs","confirm","alsoDependsOn","dep","console","warn","replace","confirmDependsOn","depObj","cancel","push","onChangeDependsOn","hidden","hiddenDependsOn","label","labelDependsOn","help","helpDependsOn","item","type","onCommandRunning","themeType","themeName","customs","dateFormat","isFloatComma","multiEdit","customObj","instanceObj","forceUpdate","registerOnForceUpdate","classes","renderItem","i18n","lang","I18n","getLanguage","path","fileExists","exists","fileName","readFile","json","file","undefined","extendTranslations","e","Component","propTypes","PropTypes","object","isRequired","string","number","bool","style","className","func","withStyles"],"sources":["JsonConfigComponent/index.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport LinearProgress from '@mui/material/LinearProgress';\n\nimport I18n from '../../i18n';\n\nimport ConfigTabs from './ConfigTabs';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n height: '100%'\n }\n});\n\nclass JsonConfigComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n originalData: JSON.stringify(this.props.data),\n changed: false,\n errors: {\n\n },\n updateData: this.props.updateData,\n systemConfig: null,\n alive: false,\n commandRunning: false,\n };\n\n this.forceUpdateHandlers = {};\n\n this.schema = JSON.parse(JSON.stringify(this.props.schema));\n this.buildDependencies(this.schema);\n\n this.readData();\n }\n\n static getDerivedStateFromProps(props, state) {\n if (JSON.stringify(props.updateData) !== JSON.stringify(state.updateData)) {\n return {updateData: props.updateData, originalData: JSON.stringify(props.data)};\n } else {\n return null;\n }\n }\n\n static loadI18n(socket, i18n, adapterName) {\n if (i18n === true || (i18n && typeof i18n === 'string')) {\n const lang = I18n.getLanguage();\n const path = typeof i18n === 'string' ? i18n : 'i18n';\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}.json`)\n .then(exists => {\n if (exists) {\n return `${path}/${lang}.json`;\n } else {\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}/translations.json`)\n .then(exists =>\n exists ? `${path}/${lang}/translations.json` : '')\n }\n })\n .then(fileName => {\n if (fileName) {\n return socket.readFile(adapterName + '.admin', fileName)\n .then(json => {\n if (json.file !== undefined) {\n json = json.file;\n }\n try {\n json = JSON.parse(json);\n // apply file to I18n\n I18n.extendTranslations(json, lang);\n } catch (e) {\n console.error(`Cannot parse language file \"${adapterName}.admin/${fileName}: ${e}`);\n }\n })\n } else {\n console.warn(`Cannot find i18n for ${adapterName} / ${fileName}`);\n return Promise.resolve();\n }\n });\n } else if (i18n && typeof i18n === 'object') {\n I18n.extendTranslations(i18n);\n return Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n\n onCommandRunning = commandRunning => this.setState( {commandRunning});\n\n readSettings() {\n if ((this.props.custom || this.props.common) && this.props.data) {\n return Promise.resolve();\n } else {\n return this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`)\n .then(obj => this.setState({common: obj.common, data: this.props.data || obj.native}));\n }\n }\n\n readData() {\n this.readSettings()\n .then(() => this.props.socket.getCompactSystemConfig())\n .then(systemConfig =>\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`)\n .then(state => {\n if (this.props.custom) {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)});\n } else {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)}, () =>\n this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`, this.onAlive));\n }\n }));\n }\n\n onAlive = (id, state) => {\n if ((state?.val || false) !== this.state.alive) {\n this.setState({alive: state?.val || false});\n }\n }\n\n onChange = (data, value, cb) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(data, value);\n cb && cb();\n } else {\n const state = {data};\n\n const _data = {};\n // remove all attributes starting with \"_\"\n Object.keys(data).forEach(attr => !attr.startsWith('_') && (_data[attr] = data[attr]));\n\n state.changed = JSON.stringify(_data) !== this.state.originalData;\n\n this.setState({state}, () => {\n this.props.onChange(_data, state.changed);\n cb && cb();\n });\n }\n }\n\n onError = (attr, error) => {\n const errors = JSON.parse(JSON.stringify(this.state.errors));\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n if (JSON.stringify(errors) !== JSON.parse(JSON.stringify(this.state.errors))) {\n this.setState({errors}, () =>\n this.props.onError(!!Object.keys(this.state.errors).length));\n }\n }\n\n flatten(schema, _list) {\n _list = _list || {};\n if (schema.items) {\n Object.keys(schema.items).forEach(attr => {\n _list[attr] = schema.items[attr];\n this.flatten(schema.items[attr], _list);\n });\n }\n\n return _list;\n }\n\n buildDependencies(schema) {\n const attrs = this.flatten(schema);\n Object.keys(attrs).forEach(attr => {\n if (attrs[attr].confirm?.alsoDependsOn) {\n attrs[attr].confirm?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n if (depObj.confirm) {\n depObj.confirm.cancel = 'Undo';\n }\n\n attrs[dep].confirmDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].onChange?.alsoDependsOn) {\n attrs[attr].onChange?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].onChangeDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].hidden?.alsoDependsOn) {\n attrs[attr].hidden?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].hiddenDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].label?.alsoDependsOn) {\n attrs[attr].label?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].labelDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].help?.alsoDependsOn) {\n attrs[attr].help?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].helpDependsOn.push(depObj);\n }\n });\n }\n });\n }\n\n renderItem(item) {\n if (item.type === 'tabs') {\n return <ConfigTabs\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n forceUpdate={this.forceUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />;\n } else if (item.type === 'panel' || !item.type) {\n return <ConfigPanel\n index={1000}\n isParentTab={true}\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n\n forceUpdate={this.forceUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />\n }\n }\n\n forceUpdate = (attr, data) => {\n if (Array.isArray(attr)) {\n attr.forEach(a =>\n this.forceUpdateHandlers[a] && this.forceUpdateHandlers[a](data));\n } else {\n if (this.forceUpdateHandlers[attr]) {\n this.forceUpdateHandlers[attr](data);\n }\n }\n }\n\n registerOnForceUpdate = (attr, cb) => {\n if (cb) {\n this.forceUpdateHandlers[attr] = cb;\n } else if (this.forceUpdateHandlers[attr]) {\n delete this.forceUpdateHandlers[attr];\n }\n }\n\n render() {\n if (!this.state.systemConfig) {\n return <LinearProgress />;\n }\n\n return <div className={this.props.classes.root}>\n {this.renderItem(this.schema)}\n </div>;\n }\n}\n\nJsonConfigComponent.propTypes = {\n socket: PropTypes.object.isRequired,\n\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n common: PropTypes.object,\n customs: PropTypes.object, // custom components\n\n custom: PropTypes.bool, // is the customs settings must be shown\n customObj: PropTypes.object,\n multiEdit: PropTypes.bool, // set if user edits more than one object simultaneously\n instanceObj: PropTypes.object,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n updateData: PropTypes.number,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n onValueChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(JsonConfigComponent);"],"mappings":"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"}
@@ -0,0 +1,357 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _react = require("react");
23
+
24
+ var _clsx = _interopRequireDefault(require("clsx"));
25
+
26
+ var _propTypes = _interopRequireDefault(require("prop-types"));
27
+
28
+ var _reactDropzone = _interopRequireDefault(require("react-dropzone"));
29
+
30
+ var _reactCropper = require("react-cropper");
31
+
32
+ require("cropperjs/dist/cropper.css");
33
+
34
+ var _styles = require("@mui/styles");
35
+
36
+ var _material = require("@mui/material");
37
+
38
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
39
+
40
+ var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
41
+
42
+ var _Crop = _interopRequireDefault(require("@mui/icons-material/Crop"));
43
+
44
+ var _fa = require("react-icons/fa");
45
+
46
+ 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); }; }
47
+
48
+ 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; } }
49
+
50
+ var styles = function styles(theme) {
51
+ return {
52
+ dropZone: {
53
+ width: '100%',
54
+ height: 100,
55
+ position: 'relative'
56
+ },
57
+ dropZoneEmpty: {},
58
+ image: {
59
+ objectFit: 'contain',
60
+ margin: 'auto',
61
+ display: 'flex',
62
+ width: '100%',
63
+ height: '100%'
64
+ },
65
+ uploadDiv: {
66
+ position: 'relative',
67
+ width: '100%',
68
+ height: 300,
69
+ opacity: 0.9,
70
+ marginTop: 30,
71
+ cursor: 'pointer',
72
+ outline: 'none'
73
+ },
74
+ uploadDivDragging: {
75
+ opacity: 1,
76
+ background: 'rgba(128,255,128,0.1)'
77
+ },
78
+ uploadCenterDiv: {
79
+ margin: 5,
80
+ border: '3px dashed grey',
81
+ borderRadius: 5,
82
+ width: 'calc(100% - 10px)',
83
+ height: 'calc(100% - 10px)',
84
+ position: 'relative',
85
+ display: 'flex'
86
+ },
87
+ uploadCenterIcon: {
88
+ paddingTop: 10,
89
+ width: 48,
90
+ height: 48
91
+ },
92
+ uploadCenterText: {
93
+ fontSize: 16
94
+ },
95
+ uploadCenterTextAndIcon: {
96
+ textAlign: 'center',
97
+ position: 'absolute',
98
+ top: 0,
99
+ bottom: 0,
100
+ left: 0,
101
+ right: 0,
102
+ display: 'flex',
103
+ flexDirection: 'column',
104
+ alignItems: 'center',
105
+ justifyContent: 'center'
106
+ },
107
+ disabledOpacity: {
108
+ opacity: 0.3,
109
+ cursor: 'default'
110
+ },
111
+ buttonRemoveWrapper: {
112
+ position: 'absolute',
113
+ zIndex: 222,
114
+ right: 0
115
+ },
116
+ buttonCropWrapper: {
117
+ position: 'absolute',
118
+ zIndex: 222,
119
+ right: 0,
120
+ top: 50
121
+ },
122
+ error: {
123
+ border: '2px solid red'
124
+ }
125
+ };
126
+ };
127
+
128
+ var UploadImage = /*#__PURE__*/function (_Component) {
129
+ (0, _inherits2["default"])(UploadImage, _Component);
130
+
131
+ var _super = _createSuper(UploadImage);
132
+
133
+ function UploadImage(props) {
134
+ var _this;
135
+
136
+ (0, _classCallCheck2["default"])(this, UploadImage);
137
+ _this = _super.call(this, props);
138
+ _this.state = {
139
+ uploadFile: false,
140
+ anchorEl: null,
141
+ cropHandler: false
142
+ };
143
+ _this.cropperRef = /*#__PURE__*/(0, _react.createRef)();
144
+ return _this;
145
+ }
146
+
147
+ (0, _createClass2["default"])(UploadImage, [{
148
+ key: "onDrop",
149
+ value: function onDrop(acceptedFiles) {
150
+ var _this$props = this.props,
151
+ maxSize = _this$props.maxSize,
152
+ t = _this$props.t,
153
+ onChange = _this$props.onChange;
154
+ var file = acceptedFiles[0];
155
+ var reader = new FileReader();
156
+
157
+ reader.onabort = function () {
158
+ return console.log('file reading was aborted');
159
+ };
160
+
161
+ reader.onerror = function () {
162
+ return console.log('file reading has failed');
163
+ };
164
+
165
+ reader.onload = function () {
166
+ var ext = 'image/' + file.name.split('.').pop().toLowerCase();
167
+
168
+ if (ext === 'image/jpg') {
169
+ ext = 'image/jpeg';
170
+ } else if (ext.includes('svg')) {
171
+ ext = 'image/svg+xml';
172
+ }
173
+
174
+ if (file.size > maxSize) {
175
+ return window.alert(t('File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));
176
+ }
177
+
178
+ var base64 = "data:".concat(ext, ";base64,").concat(btoa(new Uint8Array(reader.result).reduce(function (data, _byte) {
179
+ return data + String.fromCharCode(_byte);
180
+ }, '')));
181
+ onChange(base64);
182
+ };
183
+
184
+ reader.readAsArrayBuffer(file);
185
+ }
186
+ }, {
187
+ key: "render",
188
+ value: function render() {
189
+ var _this2 = this;
190
+
191
+ var _this$props2 = this.props,
192
+ disabled = _this$props2.disabled,
193
+ maxSize = _this$props2.maxSize,
194
+ classes = _this$props2.classes,
195
+ icon = _this$props2.icon,
196
+ t = _this$props2.t,
197
+ removeIconFunc = _this$props2.removeIconFunc,
198
+ accept = _this$props2.accept,
199
+ error = _this$props2.error,
200
+ crop = _this$props2.crop,
201
+ onChange = _this$props2.onChange;
202
+ var _this$state = this.state,
203
+ uploadFile = _this$state.uploadFile,
204
+ anchorEl = _this$state.anchorEl,
205
+ cropHandler = _this$state.cropHandler;
206
+ return /*#__PURE__*/React.createElement(_reactDropzone["default"], {
207
+ disabled: disabled || cropHandler,
208
+ key: "dropzone",
209
+ multiple: false,
210
+ accept: accept,
211
+ maxSize: maxSize,
212
+ onDragEnter: function onDragEnter() {
213
+ return _this2.setState({
214
+ uploadFile: 'dragging'
215
+ });
216
+ },
217
+ onDragLeave: function onDragLeave() {
218
+ return _this2.setState({
219
+ uploadFile: true
220
+ });
221
+ },
222
+ onDrop: function onDrop(acceptedFiles, errors) {
223
+ _this2.setState({
224
+ uploadFile: false
225
+ });
226
+
227
+ if (!acceptedFiles.length) {
228
+ window.alert(errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message || t('Cannot upload'));
229
+ } else {
230
+ return _this2.onDrop(acceptedFiles);
231
+ }
232
+ }
233
+ }, function (_ref) {
234
+ var getRootProps = _ref.getRootProps,
235
+ getInputProps = _ref.getInputProps;
236
+ return /*#__PURE__*/React.createElement("div", (0, _extends2["default"])({
237
+ className: (0, _clsx["default"])(classes.uploadDiv, uploadFile === 'dragging' && classes.uploadDivDragging, classes.dropZone, disabled && classes.disabledOpacity, !icon && classes.dropZoneEmpty)
238
+ }, getRootProps()), /*#__PURE__*/React.createElement("input", getInputProps()), /*#__PURE__*/React.createElement("div", {
239
+ className: (0, _clsx["default"])(classes.uploadCenterDiv, error && classes.error)
240
+ }, !icon ? /*#__PURE__*/React.createElement("div", {
241
+ className: classes.uploadCenterTextAndIcon
242
+ }, /*#__PURE__*/React.createElement(_fa.FaFileUpload, {
243
+ className: classes.uploadCenterIcon
244
+ }), /*#__PURE__*/React.createElement("div", {
245
+ className: classes.uploadCenterText
246
+ }, uploadFile === 'dragging' ? t('Drop file here') : t('Place your files here or click here to open the browse dialog'))) : removeIconFunc && !cropHandler && /*#__PURE__*/React.createElement("div", {
247
+ className: classes.buttonRemoveWrapper
248
+ }, /*#__PURE__*/React.createElement(_material.Tooltip, {
249
+ title: t('Clear')
250
+ }, /*#__PURE__*/React.createElement(_IconButton["default"], {
251
+ size: "large",
252
+ onClick: function onClick(e) {
253
+ removeIconFunc && removeIconFunc();
254
+ e.stopPropagation();
255
+ }
256
+ }, /*#__PURE__*/React.createElement(_Close["default"], null)))), icon && crop && /*#__PURE__*/React.createElement("div", {
257
+ className: classes.buttonCropWrapper
258
+ }, /*#__PURE__*/React.createElement(_material.Tooltip, {
259
+ title: t('Crop')
260
+ }, /*#__PURE__*/React.createElement(_IconButton["default"], {
261
+ size: "large",
262
+ onClick: function onClick(e) {
263
+ if (!cropHandler) {
264
+ _this2.setState({
265
+ cropHandler: true
266
+ });
267
+ } else {
268
+ _this2.setState({
269
+ anchorEl: e.currentTarget
270
+ });
271
+ }
272
+
273
+ e.stopPropagation();
274
+ }
275
+ }, /*#__PURE__*/React.createElement(_Crop["default"], {
276
+ color: cropHandler ? 'primary' : 'inherit'
277
+ }))), /*#__PURE__*/React.createElement(_material.Menu, {
278
+ id: "simple-menu",
279
+ anchorEl: anchorEl,
280
+ keepMounted: true,
281
+ open: Boolean(anchorEl),
282
+ onClose: function onClose() {
283
+ return _this2.setState({
284
+ anchorEl: null
285
+ });
286
+ }
287
+ }, /*#__PURE__*/React.createElement(_material.MenuItem, {
288
+ onClick: function onClick() {
289
+ return _this2.setState({
290
+ anchorEl: null,
291
+ cropHandler: false
292
+ }, function () {
293
+ var _this2$cropperRef, _this2$cropperRef$cur;
294
+
295
+ var imageElement = (_this2$cropperRef = _this2.cropperRef) === null || _this2$cropperRef === void 0 ? void 0 : (_this2$cropperRef$cur = _this2$cropperRef.current) === null || _this2$cropperRef$cur === void 0 ? void 0 : _this2$cropperRef$cur.cropper;
296
+ onChange(imageElement.getCroppedCanvas().toDataURL());
297
+ });
298
+ }
299
+ }, t('Save')), /*#__PURE__*/React.createElement(_material.MenuItem, {
300
+ onClick: function onClick() {
301
+ return _this2.setState({
302
+ anchorEl: null,
303
+ cropHandler: false
304
+ });
305
+ }
306
+ }, t('Close')))), icon && !cropHandler ? /*#__PURE__*/React.createElement("img", {
307
+ src: icon,
308
+ className: classes.image,
309
+ alt: "icon"
310
+ }) : null, icon && crop && cropHandler ? /*#__PURE__*/React.createElement(_reactCropper.Cropper, {
311
+ ref: _this2.cropperRef,
312
+ className: classes.image,
313
+ src: icon,
314
+ initialAspectRatio: 1,
315
+ viewMode: 1,
316
+ guides: false,
317
+ minCropBoxHeight: 10,
318
+ minCropBoxWidth: 10,
319
+ background: false,
320
+ checkOrientation: false
321
+ }) : null));
322
+ });
323
+ }
324
+ }]);
325
+ return UploadImage;
326
+ }(_react.Component);
327
+
328
+ UploadImage.defaultProps = {
329
+ disabled: false,
330
+ maxSize: 10 * 1024,
331
+ icon: null,
332
+ removeIconFunc: null,
333
+ accept: 'image/*',
334
+ error: false,
335
+ onChange: function onChange(base64) {
336
+ return console.log(base64);
337
+ },
338
+ t: function t(el) {
339
+ return el;
340
+ },
341
+ crop: false
342
+ };
343
+ UploadImage.propTypes = {
344
+ classes: _propTypes["default"].object,
345
+ maxSize: _propTypes["default"].number,
346
+ disabled: _propTypes["default"].bool,
347
+ crop: _propTypes["default"].bool,
348
+ error: _propTypes["default"].bool,
349
+ onChange: _propTypes["default"].func,
350
+ accept: _propTypes["default"].string,
351
+ t: _propTypes["default"].func
352
+ };
353
+
354
+ var _default = (0, _styles.withStyles)(styles)(UploadImage);
355
+
356
+ exports["default"] = _default;
357
+ //# sourceMappingURL=UploadImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadImage.js","names":["styles","theme","dropZone","width","height","position","dropZoneEmpty","image","objectFit","margin","display","uploadDiv","opacity","marginTop","cursor","outline","uploadDivDragging","background","uploadCenterDiv","border","borderRadius","uploadCenterIcon","paddingTop","uploadCenterText","fontSize","uploadCenterTextAndIcon","textAlign","top","bottom","left","right","flexDirection","alignItems","justifyContent","disabledOpacity","buttonRemoveWrapper","zIndex","buttonCropWrapper","error","UploadImage","props","state","uploadFile","anchorEl","cropHandler","cropperRef","createRef","acceptedFiles","maxSize","t","onChange","file","reader","FileReader","onabort","console","log","onerror","onload","ext","name","split","pop","toLowerCase","includes","size","window","alert","Math","round","base64","btoa","Uint8Array","result","reduce","data","byte","String","fromCharCode","readAsArrayBuffer","disabled","classes","icon","removeIconFunc","accept","crop","setState","errors","length","message","onDrop","getRootProps","getInputProps","clsx","e","stopPropagation","currentTarget","Boolean","imageElement","current","cropper","getCroppedCanvas","toDataURL","Component","defaultProps","el","propTypes","PropTypes","object","number","bool","func","string","withStyles"],"sources":["UploadImage.jsx"],"sourcesContent":["import { Component, createRef } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport Dropzone from 'react-dropzone';\nimport { Cropper } from 'react-cropper';\nimport 'cropperjs/dist/cropper.css';\n\nimport { withStyles } from '@mui/styles';\nimport { Menu, MenuItem, Tooltip } from '@mui/material';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconClose from '@mui/icons-material/Close';\nimport CropIcon from '@mui/icons-material/Crop';\nimport { FaFileUpload as UploadIcon } from 'react-icons/fa';\n\nconst styles = theme => ({\n dropZone: {\n width: '100%',\n height: 100,\n position: 'relative',\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 height: 300,\n opacity: 0.9,\n marginTop: 30,\n cursor: 'pointer',\n outline: 'none'\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: 'calc(100% - 10px)',\n height: 'calc(100% - 10px)',\n position: 'relative',\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 buttonRemoveWrapper: {\n position: 'absolute',\n zIndex: 222,\n right: 0\n },\n buttonCropWrapper: {\n position: 'absolute',\n zIndex: 222,\n right: 0,\n top: 50\n },\n error: {\n border: '2px solid red'\n }\n});\n\nclass UploadImage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n uploadFile: false,\n anchorEl: null,\n cropHandler: false,\n };\n this.cropperRef = createRef();\n }\n\n onDrop(acceptedFiles) {\n const { maxSize, t, onChange } = this.props;\n\n const file = acceptedFiles[0];\n const reader = new FileReader();\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(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 onChange(base64);\n };\n reader.readAsArrayBuffer(file);\n }\n\n render() {\n const { disabled, maxSize, classes, icon, t, removeIconFunc, accept, error, crop, onChange } = this.props;\n const { uploadFile, anchorEl, cropHandler } = this.state;\n return <Dropzone\n disabled={disabled || cropHandler}\n key=\"dropzone\"\n multiple={false}\n accept={accept}\n maxSize={maxSize}\n onDragEnter={() => this.setState({ uploadFile: 'dragging' })}\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) || t('Cannot upload'));\n } else {\n return this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => <div\n className={clsx(\n classes.uploadDiv,\n uploadFile === 'dragging' && classes.uploadDivDragging,\n classes.dropZone,\n disabled && classes.disabledOpacity,\n !icon && classes.dropZoneEmpty\n )}\n {...getRootProps()}>\n <input {...getInputProps()} />\n <div className={clsx(classes.uploadCenterDiv, error && classes.error)}>\n {!icon ? <div className={classes.uploadCenterTextAndIcon}>\n <UploadIcon className={classes.uploadCenterIcon} />\n <div className={classes.uploadCenterText}>{\n uploadFile === 'dragging' ? t('Drop file here') :\n t('Place your files here or click here to open the browse dialog')}</div>\n </div>\n :\n removeIconFunc && !cropHandler && <div className={classes.buttonRemoveWrapper}>\n <Tooltip title={t('Clear')}>\n <IconButton size=\"large\" onClick={e => {\n removeIconFunc && removeIconFunc();\n e.stopPropagation();\n }}><IconClose />\n </IconButton>\n </Tooltip>\n </div>\n }\n {icon && crop && <div className={classes.buttonCropWrapper}>\n <Tooltip title={t('Crop')}>\n <IconButton size=\"large\" onClick={e => {\n if (!cropHandler) {\n this.setState({ cropHandler: true });\n } else {\n this.setState({ anchorEl: e.currentTarget });\n }\n e.stopPropagation();\n }}><CropIcon color={cropHandler ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>\n <Menu\n id=\"simple-menu\"\n anchorEl={anchorEl}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={() => this.setState({ anchorEl: null })}\n >\n <MenuItem onClick={() => this.setState({ anchorEl: null, cropHandler: false }, () => {\n const imageElement = this.cropperRef?.current?.cropper;\n onChange(imageElement.getCroppedCanvas().toDataURL());\n })}>{t('Save')}</MenuItem>\n <MenuItem onClick={() => this.setState({ anchorEl: null, cropHandler: false })}>{t('Close')}</MenuItem>\n </Menu>\n </div>}\n {icon && !cropHandler ? <img src={icon} className={classes.image} alt=\"icon\" /> : null}\n\n {icon && crop && cropHandler ? <Cropper\n ref={this.cropperRef}\n className={classes.image}\n src={icon}\n initialAspectRatio={1}\n viewMode={1}\n guides={false}\n minCropBoxHeight={10}\n minCropBoxWidth={10}\n background={false}\n checkOrientation={false}\n /> : null}\n </div>\n </div>}\n </Dropzone>;\n }\n}\n\nUploadImage.defaultProps = {\n disabled: false,\n maxSize: 10 * 1024,\n icon: null,\n removeIconFunc: null,\n accept: 'image/*',\n error: false,\n onChange: base64 => console.log(base64),\n t: el => el,\n crop: false,\n};\n\nUploadImage.propTypes = {\n classes: PropTypes.object,\n maxSize: PropTypes.number,\n disabled: PropTypes.bool,\n crop: PropTypes.bool,\n error: PropTypes.bool,\n onChange: PropTypes.func,\n accept: PropTypes.string,\n t: PropTypes.func,\n};\n\nexport default withStyles(styles)(UploadImage);\n"],"mappings":"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"}
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
14
+ var _react = _interopRequireDefault(require("react"));
15
+
14
16
  var _styles = require("@mui/material/styles");
15
17
 
16
18
  var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
@@ -30,7 +32,7 @@ var withWidth = function withWidth() {
30
32
  return function (WrappedComponent) {
31
33
  return function (props) {
32
34
  var width = useWidth();
33
- return /*#__PURE__*/React.createElement(WrappedComponent, (0, _extends2["default"])({}, props, {
35
+ return /*#__PURE__*/_react["default"].createElement(WrappedComponent, (0, _extends2["default"])({}, props, {
34
36
  width: width
35
37
  }));
36
38
  };
@@ -1 +1 @@
1
- {"version":3,"file":"withWidth.js","names":["useWidth","theme","useTheme","keys","breakpoints","reverse","reduce","output","key","matches","useMediaQuery","up","withWidth","WrappedComponent","props","width"],"sources":["withWidth.js"],"sourcesContent":["import { useTheme } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nfunction useWidth() {\n const theme = useTheme();\n const keys = [...theme.breakpoints.keys].reverse();\n return keys.reduce((output, key) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const matches = useMediaQuery(theme.breakpoints.up(key));\n return !output && matches ? key : output;\n }, null) || 'xs';\n}\n\n// FIXME checkout https://mui.com/components/use-media-query/#migrating-from-withwidth\nconst withWidth = () => WrappedComponent => props => {\n const width = useWidth();\n return <WrappedComponent {...props} width={width} />;\n};\n\nexport default withWidth;"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA,SAASA,QAAT,GAAoB;EAChB,IAAMC,KAAK,GAAG,IAAAC,gBAAA,GAAd;EACA,IAAMC,IAAI,GAAG,oCAAIF,KAAK,CAACG,WAAN,CAAkBD,IAAtB,EAA4BE,OAA5B,EAAb;EACA,OAAOF,IAAI,CAACG,MAAL,CAAY,UAACC,MAAD,EAASC,GAAT,EAAiB;IAChC;IACA,IAAMC,OAAO,GAAG,IAAAC,yBAAA,EAAcT,KAAK,CAACG,WAAN,CAAkBO,EAAlB,CAAqBH,GAArB,CAAd,CAAhB;IACA,OAAO,CAACD,MAAD,IAAWE,OAAX,GAAqBD,GAArB,GAA2BD,MAAlC;EACH,CAJM,EAIJ,IAJI,KAIK,IAJZ;AAKH,C,CAED;;;AACA,IAAMK,SAAS,GAAG,SAAZA,SAAY;EAAA,OAAM,UAAAC,gBAAgB;IAAA,OAAI,UAAAC,KAAK,EAAI;MACjD,IAAMC,KAAK,GAAGf,QAAQ,EAAtB;MACA,oBAAO,oBAAC,gBAAD,gCAAsBc,KAAtB;QAA6B,KAAK,EAAEC;MAApC,GAAP;IACH,CAHuC;EAAA,CAAtB;AAAA,CAAlB;;eAKeH,S"}
1
+ {"version":3,"file":"withWidth.js","names":["useWidth","theme","useTheme","keys","breakpoints","reverse","reduce","output","key","matches","useMediaQuery","up","withWidth","WrappedComponent","props","width"],"sources":["withWidth.js"],"sourcesContent":["import React from 'react';\nimport { useTheme } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nfunction useWidth() {\n const theme = useTheme();\n const keys = [...theme.breakpoints.keys].reverse();\n return keys.reduce((output, key) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const matches = useMediaQuery(theme.breakpoints.up(key));\n return !output && matches ? key : output;\n }, null) || 'xs';\n}\n\n// FIXME checkout https://mui.com/components/use-media-query/#migrating-from-withwidth\nconst withWidth = () => WrappedComponent => props => {\n const width = useWidth();\n return <WrappedComponent {...props} width={width} />;\n};\n\nexport default withWidth;"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA,SAASA,QAAT,GAAoB;EAChB,IAAMC,KAAK,GAAG,IAAAC,gBAAA,GAAd;EACA,IAAMC,IAAI,GAAG,oCAAIF,KAAK,CAACG,WAAN,CAAkBD,IAAtB,EAA4BE,OAA5B,EAAb;EACA,OAAOF,IAAI,CAACG,MAAL,CAAY,UAACC,MAAD,EAASC,GAAT,EAAiB;IAChC;IACA,IAAMC,OAAO,GAAG,IAAAC,yBAAA,EAAcT,KAAK,CAACG,WAAN,CAAkBO,EAAlB,CAAqBH,GAArB,CAAd,CAAhB;IACA,OAAO,CAACD,MAAD,IAAWE,OAAX,GAAqBD,GAArB,GAA2BD,MAAlC;EACH,CAJM,EAIJ,IAJI,KAIK,IAJZ;AAKH,C,CAED;;;AACA,IAAMK,SAAS,GAAG,SAAZA,SAAY;EAAA,OAAM,UAAAC,gBAAgB;IAAA,OAAI,UAAAC,KAAK,EAAI;MACjD,IAAMC,KAAK,GAAGf,QAAQ,EAAtB;MACA,oBAAO,gCAAC,gBAAD,gCAAsBc,KAAtB;QAA6B,KAAK,EAAEC;MAApC,GAAP;IACH,CAHuC;EAAA,CAAtB;AAAA,CAAlB;;eAKeH,S"}