@iobroker/adapter-react-v5 3.1.10 → 3.1.13
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.
- package/Components/CustomModal.js +33 -13
- package/Components/CustomModal.js.map +1 -1
- package/Components/JsonConfigComponent/ChipInput.js +10 -10
- package/Components/JsonConfigComponent/ChipInput.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +1 -1
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFile.js +106 -12
- package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFileSelector.js +11 -13
- package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFunc.js +157 -0
- package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -0
- package/Components/JsonConfigComponent/ConfigGeneric.js +1 -1
- package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigImageUpload.js +3 -3
- package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js +17 -4
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPanel.js +9 -1
- package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigRoom.js +157 -0
- package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -0
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js +116 -24
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSlider.js +147 -0
- package/Components/JsonConfigComponent/ConfigSlider.js.map +1 -0
- package/Components/JsonConfigComponent/ConfigTable.js +4 -4
- package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTextSendTo.js +1 -1
- package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
- package/Components/Loader.js +9 -4
- package/Components/Loader.js.map +1 -1
- package/Components/UploadImage.js +11 -10
- package/Components/UploadImage.js.map +1 -1
- package/Connection.js +31 -26
- package/Connection.js.map +1 -1
- package/README.md +6 -0
- package/i18n/de.json +4 -1
- package/i18n/en.json +4 -1
- package/i18n/es.json +4 -1
- package/i18n/fr.json +4 -1
- package/i18n/it.json +4 -1
- package/i18n/nl.json +4 -1
- package/i18n/pl.json +4 -1
- package/i18n/pt.json +4 -1
- package/i18n/ru.json +4 -1
- package/i18n/zh-cn.json +4 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigTable.js","names":["styles","theme","fullWidth","width","root","paper","marginBottom","spacing","backgroundColor","headerText","table","minWidth","visuallyHidden","border","clip","height","margin","overflow","padding","position","top","addIcon","display","justifyContent","highlight","palette","mode","color","secondary","main","text","primary","dark","title","flex","rootTool","paddingLeft","paddingRight","silver","opacity","filteredOut","textAlign","buttonEmpty","buttonCell","whiteSpace","objectToArray","object","nameOfFirstAttr","nameOfSecondAttr","array","Object","keys","forEach","key","item","push","assign","arrayToObject","row","undefined","ConfigTable","props","property","orderCheck","state","order","orderBy","isAsc","newOrder","newValue","stableSort","setState","iteration","applyFilter","value","comparator","getComparator","stabilizedThis","map","el","index","sort","a","b","JSON","parse","stringify","visibleValue","splice","pos","indexOf","i","onChangeWrapper","updateVisible","typingTimer","clearTimeout","setTimeout","schema","objKeyName","objValue","objValueName","onChange","attr","handleRequestSort","newItem","items","reduce","accumulator","currentValue","defaultValue","defaultFunc","custom","executeCustom","data","instanceObj","length","execute","clear","_","filterRefs","valueInputRef","current","children","toLowerCase","filter","idx","includes","createRef","ConfigGeneric","getValue","Array","isArray","filterOn","attrItem","systemConfig","schemaForAttribute","find","schemaItem","socket","adapterName","instance","common","alive","themeType","themeName","customs","valueChange","newObj","error","onError","buttonsWidth","classes","headCell","endsWith","clsx","I18n","t","endAdornment","getText","noDelete","disabled","doAnyFilterSet","isAnyFilterSet","label","allowAddByFilter","onAdd","enhancedTableHead","itemTable","onMoveUp","onMoveDown","onDelete","e","help","renderHelp","helpLink","noTranslation","descendingComparator","propTypes","PropTypes","isRequired","string","style","className","func","withStyles"],"sources":["JsonConfigComponent/ConfigTable.jsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { /*lighten,*/ withStyles } from '@mui/styles';\nimport clsx from 'clsx';\n\nimport FormHelperText from '@mui/material/FormHelperText';\nimport { IconButton, InputAdornment, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TableSortLabel, TextField, Toolbar, Tooltip, Typography } from '@mui/material';\n\nimport AddIcon from '@mui/icons-material/Add';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport CloseIcon from '@mui/icons-material/Close';\nimport UpIcon from '@mui/icons-material/ArrowUpward';\nimport DownIcon from '@mui/icons-material/ArrowDownward';\nimport IconFilterOn from '@mui/icons-material/FilterAlt';\nimport IconFilterOff from '@mui/icons-material/FilterAltOff';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n root: {\n width: '100%',\n },\n paper: {\n width: '100%',\n marginBottom: theme.spacing(2),\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\n },\n headerText: {\n width: '100%'\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n addIcon: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n highlight:\n theme.palette.mode === 'light'\n ? {\n color: theme.palette.secondary.main,\n // backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n }\n : {\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.secondary.dark,\n },\n title: {\n flex: '1 1 100%',\n },\n rootTool: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n },\n silver: {\n opacity: 0.2\n },\n flex: {\n display: 'flex'\n },\n filteredOut: {\n padding: 10,\n display: 'flex',\n textAlign: 'center'\n },\n buttonEmpty: {\n width: 30,\n display: 'inline-block'\n },\n buttonCell: {\n whiteSpace: 'nowrap',\n }\n});\n\nfunction objectToArray(object, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const array = [];\n Object.keys(object).forEach(key => {\n const item = {};\n item[nameOfFirstAttr] = key;\n\n if (nameOfSecondAttr) {\n item[nameOfSecondAttr] = object[key]\n array.push(item);\n } else {\n array.push(Object.assign(item, object[key]));\n }\n });\n\n return array;\n}\n\nfunction arrayToObject(array, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const object = {};\n\n array.forEach(row => {\n let key = row[nameOfFirstAttr];\n if (key === null || key === undefined) {\n key = '';\n }\n delete row[nameOfFirstAttr];\n\n if (nameOfSecondAttr) {\n object[key] = row[nameOfSecondAttr];\n } else {\n object[key] = row;\n }\n });\n\n return object;\n}\n\nclass ConfigTable extends ConfigGeneric {\n constructor(props) {\n super(props)\n this.filterRefs = {};\n this.props.schema.items = this.props.schema.items || [];\n this.props.schema.items.forEach(el => {\n if (el.filter) {\n this.filterRefs[el.attr] = createRef();\n }\n });\n }\n\n async componentDidMount() {\n super.componentDidMount();\n let value = ConfigGeneric.getValue(this.props.data, this.props.attr) || [];\n\n // if the list is given as an object\n if (this.props.schema.objKeyName) {\n value = objectToArray(value, this.props.schema.objKeyName, this.props.schema.objValueName);\n }\n\n if (!Array.isArray(value)) {\n value = [];\n }\n\n const visibleValue = value.map((_, i) => i);\n\n this.setState({\n value,\n visibleValue,\n orderBy: /*this.props.schema.items.length ? this.props.schema.items[0].attr : */'',\n order: 'asc',\n iteration: 0,\n filterOn: [],\n });\n }\n\n componentWillUnmount() {\n this.typingTimer && clearTimeout(this.typingTimer)\n this.typingTimer = null;\n super.componentWillUnmount();\n }\n\n itemTable(attrItem, data, idx) {\n const { value, systemConfig } = this.state;\n const { schema } = this.props;\n const schemaForAttribute = schema.items.find(el => el.attr === attrItem);\n\n if (!schemaForAttribute) {\n return null;\n }\n\n const schemaItem = {\n items: {\n [attrItem]: schemaForAttribute\n }\n };\n\n return <ConfigPanel\n index={idx + this.state.iteration}\n arrayIndex={idx}\n globalData={this.props.data}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.props.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={data}\n table\n custom\n schema={schemaItem}\n systemConfig={systemConfig}\n customs={this.props.customs}\n onChange={(attr, valueChange) => {\n const newObj = JSON.parse(JSON.stringify(value));\n newObj[idx][attr] = valueChange;\n this.setState({ value: newObj }, () =>\n this.onChangeWrapper(newObj,true));\n }}\n onError={(error, attr) => this.onError(error, attr)}\n />;\n }\n\n static descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n } else\n if (b[orderBy] > a[orderBy]) {\n return 1;\n } else {\n return 0;\n }\n }\n\n static getComparator(order, orderBy) {\n return order === 'desc'\n ? (a, b) => ConfigTable.descendingComparator(a, b, orderBy)\n : (a, b) => -ConfigTable.descendingComparator(a, b, orderBy);\n }\n\n handleRequestSort = (property, orderCheck = false) => {\n const { order, orderBy } = this.state;\n if (orderBy) {\n const isAsc = orderBy === property && order === 'asc';\n const newOrder = orderCheck ? order : (isAsc ? 'desc' : 'asc');\n const newValue = this.stableSort(newOrder, property);\n this.setState({ order: newOrder, orderBy: property, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, newValue));\n }\n }\n\n stableSort = (order, orderBy) => {\n const { value } = this.state;\n const comparator = ConfigTable.getComparator(order, orderBy);\n const stabilizedThis = value.map((el, index) => [el, index]);\n\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order !== 0) {\n return order;\n } else {\n return a[1] - b[1];\n }\n });\n\n return stabilizedThis.map(el => el[0]);\n }\n\n enhancedTableHead(buttonsWidth) {\n const { schema, classes } = this.props;\n const { order, orderBy } = this.state;\n return <TableHead>\n <TableRow>\n {schema.items.map(headCell => (\n <TableCell\n style={{ width: typeof headCell.width === 'string' && headCell.width.endsWith('%') ? headCell.width : headCell.width }}\n key={headCell.attr}\n align=\"left\"\n sortDirection={orderBy === headCell.attr ? order : false}\n >\n <div className={classes.flex}>\n {headCell.sort && <TableSortLabel\n active\n className={clsx(orderBy !== headCell.attr && classes.silver)}\n direction={orderBy === headCell.attr ? order : 'asc'}\n onClick={() => this.handleRequestSort(headCell.attr)}\n />}\n {headCell.filter && this.state.filterOn.includes(headCell.attr) ?\n <TextField\n variant=\"standard\"\n ref={this.filterRefs[headCell.attr]}\n onChange={() => this.applyFilter()}\n title={I18n.t('ra_You can filter entries by entering here some text')}\n InputProps={{\n endAdornment: this.filterRefs[headCell.attr]?.current?.children[0]?.children[0]?.value && <InputAdornment position=\"end\">\n <IconButton\n size=\"small\"\n onClick={() => {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }}\n >\n <CloseIcon />\n </IconButton>\n </InputAdornment>,\n }}\n fullWidth\n placeholder={this.getText(headCell.title)}\n />\n : <span className={this.props.classes.headerText}>{this.getText(headCell.title)}</span>}\n { headCell.filter ? <IconButton\n title={I18n.t('ra_Show/hide filter input')}\n size=\"small\"\n onClick={() => {\n const filterOn = [...this.state.filterOn];\n const pos = this.state.filterOn.indexOf(headCell.attr);\n if (pos === -1) {\n filterOn.push(headCell.attr);\n } else {\n filterOn.splice(pos, 1);\n }\n this.setState({ filterOn }, () => {\n if (pos && this.filterRefs[headCell.attr].current.children[0].children[0].value) {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }\n });\n }}\n >{this.state.filterOn.includes(headCell.attr) ? <IconFilterOff /> : <IconFilterOn />}</IconButton> : null}\n </div>\n </TableCell>\n ))}\n {!schema.noDelete && <TableCell style={{ paddingLeft: 20, paddingRight: 20, width: buttonsWidth, textAlign: 'right' }} padding=\"checkbox\">\n <IconButton disabled size=\"small\">\n <DeleteIcon />\n </IconButton>\n </TableCell>}\n </TableRow>\n </TableHead>;\n }\n\n onDelete = index => () => {\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n let visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n newValue.splice(index, 1);\n const pos = visibleValue.indexOf(index);\n if (pos !== -1) {\n visibleValue.splice(pos, 1);\n visibleValue = visibleValue.map(i => i > index ? i - 1 : i);\n }\n\n this.setState({ value: newValue, visibleValue, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(newValue));\n };\n\n onChangeWrapper = (newValue, updateVisible = false) => {\n this.typingTimer && clearTimeout(this.typingTimer);\n\n this.typingTimer = setTimeout((value, updateVisible) => {\n this.typingTimer = null;\n\n if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(JSON.parse(JSON.stringify(value)), this.props.schema.objKeyName, this.props.schema.objValueName);\n this.onChange(this.props.attr, objValue);\n } else {\n this.onChange(this.props.attr, value);\n }\n\n if (updateVisible) {\n this.applyFilter(false, value);\n this.handleRequestSort(this.state.orderBy, true);\n }\n }, 300, newValue, updateVisible);\n }\n\n onAdd = () => {\n const { schema } = this.props;\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n const visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n\n const newItem = schema.items.reduce((accumulator, currentValue) => {\n let defaultValue;\n if (currentValue.defaultFunc) {\n if (this.props.custom) {\n defaultValue = currentValue.defaultFunc ? this.executeCustom(currentValue.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, newValue.length, this.props.data) : this.props.schema.default;\n } else {\n defaultValue = currentValue.defaultFunc ? this.execute(currentValue.defaultFunc, this.props.schema.default, this.props.data, newValue.length, this.props.data) : this.props.schema.default;\n }\n } else {\n defaultValue = currentValue.default === undefined ? null : currentValue.default;\n }\n\n accumulator[currentValue.attr] = defaultValue;\n return accumulator;\n }, {});\n\n newValue.push(newItem);\n visibleValue.push(newValue.length - 1);\n\n this.setState({ value: newValue, visibleValue }, () =>\n this.onChangeWrapper(newValue));\n }\n\n isAnyFilterSet() {\n return Object.keys(this.filterRefs).find(attr => this.filterRefs[attr].current?.children[0].children[0].value);\n }\n\n applyFilter = (clear = false, value = this.state.value) => {\n let visibleValue = value.map((_, i) => i);\n Object.keys(this.filterRefs).forEach(attr => {\n let valueInputRef = this.filterRefs[attr].current?.children[0].children[0].value;\n if (!clear && valueInputRef) {\n valueInputRef = valueInputRef.toLowerCase();\n visibleValue = visibleValue.filter(idx => value[idx] && value[idx][attr] && value[idx][attr].toLowerCase().includes(valueInputRef));\n } else if (this.filterRefs[attr].current) {\n this.filterRefs[attr].current.children[0].children[0].value = '';\n }\n });\n\n if (JSON.stringify(visibleValue) !== JSON.stringify(this.state.visibleValue)) {\n this.setState({ visibleValue });\n }\n }\n\n onMoveUp(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx - 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n onMoveDown(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx + 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n renderItem(error, disabled, defaultValue) {\n const { classes, schema } = this.props;\n const { value, visibleValue } = this.state;\n\n if (!value) {\n return null;\n }\n\n const doAnyFilterSet = this.isAnyFilterSet();\n\n return <Paper className={classes.paper}>\n <div className={classes.addIcon}>\n {schema.label ? <Toolbar\n variant=\"dense\"\n className={classes.rootTool}\n >\n <Typography className={classes.title} variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {this.getText(schema.label)}\n </Typography>\n </Toolbar> : null}\n {!schema.noDelete ? <Tooltip title={doAnyFilterSet ? I18n.t('ra_Cannot add items with set filter') : I18n.t('ra_Add row')}>\n <span>\n <IconButton disabled={!!doAnyFilterSet && !this.props.schema.allowAddByFilter} onClick={this.onAdd}>\n <AddIcon />\n </IconButton>\n </span>\n </Tooltip> : null}\n </div>\n <TableContainer>\n <Table className={classes.table} size=\"small\">\n {this.enhancedTableHead(!doAnyFilterSet && !this.state.orderBy ? 120 : 64)}\n <TableBody>\n {visibleValue.map((idx, i) =>\n <TableRow\n hover\n key={idx}\n >\n {schema.items.map(headCell => {\n return <TableCell key={headCell.attr + '_' + idx} align=\"left\">\n {this.itemTable(headCell.attr, value[idx], idx)}\n </TableCell>;\n })}\n {!schema.noDelete && <TableCell align=\"left\" className={classes.buttonCell}>\n {!doAnyFilterSet && !this.state.orderBy ? (i ? <Tooltip title={I18n.t('ra_Move up')}>\n <IconButton size=\"small\" onClick={() => this.onMoveUp(idx)}>\n <UpIcon />\n </IconButton>\n </Tooltip> : <div className={classes.buttonEmpty}/>) : null}\n {!doAnyFilterSet && !this.state.orderBy ? (i < visibleValue.length - 1 ? <Tooltip title={I18n.t('ra_Move down')}>\n <IconButton size=\"small\" onClick={() => this.onMoveDown(idx)}>\n <DownIcon />\n </IconButton>\n </Tooltip> : <div className={classes.buttonEmpty}/> ) : null}\n <Tooltip title={I18n.t('ra_Delete current row')}>\n <IconButton size=\"small\" onClick={this.onDelete(idx)}>\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n </TableCell>}\n </TableRow>)}\n </TableBody>\n </Table>\n {!visibleValue.length && value.length ?\n <div className={classes.filteredOut}>\n <Typography className={classes.title} variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {I18n.t('ra_All items are filtered out')}\n <IconButton\n size=\"small\"\n onClick={e => this.applyFilter(true)}\n >\n <CloseIcon />\n </IconButton>\n </Typography>\n </div> : null}\n </TableContainer>\n {schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </Paper>;\n }\n}\n\nConfigTable.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)(ConfigTable);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConfigTable.js","names":["styles","theme","fullWidth","width","root","paper","marginBottom","spacing","backgroundColor","headerText","table","minWidth","visuallyHidden","border","clip","height","margin","overflow","padding","position","top","addIcon","display","justifyContent","highlight","palette","mode","color","secondary","main","text","primary","dark","title","flex","rootTool","paddingLeft","paddingRight","silver","opacity","filteredOut","textAlign","buttonEmpty","buttonCell","whiteSpace","objectToArray","object","nameOfFirstAttr","nameOfSecondAttr","array","Object","keys","forEach","key","item","push","assign","arrayToObject","row","undefined","ConfigTable","props","property","orderCheck","state","order","orderBy","isAsc","newOrder","newValue","stableSort","setState","iteration","applyFilter","value","comparator","getComparator","stabilizedThis","map","el","index","sort","a","b","JSON","parse","stringify","visibleValue","splice","pos","indexOf","i","onChangeWrapper","updateVisible","typingTimer","clearTimeout","setTimeout","schema","objKeyName","objValue","objValueName","onChange","attr","handleRequestSort","newItem","items","reduce","accumulator","currentValue","defaultValue","defaultFunc","custom","executeCustom","data","instanceObj","length","execute","clear","_","filterRefs","valueInputRef","current","children","toLowerCase","filter","idx","includes","createRef","ConfigGeneric","getValue","Array","isArray","filterOn","attrItem","systemConfig","schemaForAttribute","find","schemaItem","socket","adapterName","instance","common","alive","themeType","themeName","customs","valueChange","newObj","error","onError","buttonsWidth","classes","headCell","endsWith","clsx","I18n","t","endAdornment","getText","noDelete","disabled","doAnyFilterSet","isAnyFilterSet","label","allowAddByFilter","onAdd","enhancedTableHead","itemTable","onMoveUp","onMoveDown","onDelete","e","help","renderHelp","helpLink","noTranslation","descendingComparator","propTypes","PropTypes","isRequired","string","style","className","func","withStyles"],"sources":["JsonConfigComponent/ConfigTable.jsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { /*lighten,*/ withStyles } from '@mui/styles';\nimport clsx from 'clsx';\n\nimport FormHelperText from '@mui/material/FormHelperText';\nimport { IconButton, InputAdornment, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TableSortLabel, TextField, Toolbar, Tooltip, Typography } from '@mui/material';\n\nimport AddIcon from '@mui/icons-material/Add';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport CloseIcon from '@mui/icons-material/Close';\nimport UpIcon from '@mui/icons-material/ArrowUpward';\nimport DownIcon from '@mui/icons-material/ArrowDownward';\nimport IconFilterOn from '@mui/icons-material/FilterAlt';\nimport IconFilterOff from '@mui/icons-material/FilterAltOff';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n root: {\n width: '100%',\n },\n paper: {\n width: '100%',\n marginBottom: theme.spacing(2),\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\n },\n headerText: {\n width: '100%'\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n addIcon: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n highlight:\n theme.palette.mode === 'light'\n ? {\n color: theme.palette.secondary.main,\n // backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n }\n : {\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.secondary.dark,\n },\n title: {\n flex: '1 1 100%',\n },\n rootTool: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n },\n silver: {\n opacity: 0.2\n },\n flex: {\n display: 'flex'\n },\n filteredOut: {\n padding: 10,\n display: 'flex',\n textAlign: 'center'\n },\n buttonEmpty: {\n width: 30,\n display: 'inline-block'\n },\n buttonCell: {\n whiteSpace: 'nowrap',\n }\n});\n\nfunction objectToArray(object, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const array = [];\n Object.keys(object).forEach(key => {\n const item = {};\n item[nameOfFirstAttr] = key;\n\n if (nameOfSecondAttr) {\n item[nameOfSecondAttr] = object[key]\n array.push(item);\n } else {\n array.push(Object.assign(item, object[key]));\n }\n });\n\n return array;\n}\n\nfunction arrayToObject(array, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const object = {};\n\n array.forEach(row => {\n let key = row[nameOfFirstAttr];\n if (key === null || key === undefined) {\n key = '';\n }\n delete row[nameOfFirstAttr];\n\n if (nameOfSecondAttr) {\n object[key] = row[nameOfSecondAttr];\n } else {\n object[key] = row;\n }\n });\n\n return object;\n}\n\nclass ConfigTable extends ConfigGeneric {\n constructor(props) {\n super(props)\n this.filterRefs = {};\n this.props.schema.items = this.props.schema.items || [];\n this.props.schema.items.forEach(el => {\n if (el.filter) {\n this.filterRefs[el.attr] = createRef();\n }\n });\n }\n\n async componentDidMount() {\n super.componentDidMount();\n let value = ConfigGeneric.getValue(this.props.data, this.props.attr) || [];\n\n // if the list is given as an object\n if (this.props.schema.objKeyName) {\n value = objectToArray(value, this.props.schema.objKeyName, this.props.schema.objValueName);\n }\n\n if (!Array.isArray(value)) {\n value = [];\n }\n\n const visibleValue = value.map((_, i) => i);\n\n this.setState({\n value,\n visibleValue,\n orderBy: /*this.props.schema.items.length ? this.props.schema.items[0].attr : */'',\n order: 'asc',\n iteration: 0,\n filterOn: [],\n });\n }\n\n componentWillUnmount() {\n this.typingTimer && clearTimeout(this.typingTimer)\n this.typingTimer = null;\n super.componentWillUnmount();\n }\n\n itemTable(attrItem, data, idx) {\n const { value, systemConfig } = this.state;\n const { schema } = this.props;\n const schemaForAttribute = schema.items && schema.items.find(el => el.attr === attrItem);\n\n if (!schemaForAttribute) {\n return null;\n }\n\n const schemaItem = {\n items: {\n [attrItem]: schemaForAttribute\n }\n };\n\n return <ConfigPanel\n index={idx + this.state.iteration}\n arrayIndex={idx}\n globalData={this.props.data}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.props.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={data}\n table\n custom\n schema={schemaItem}\n systemConfig={systemConfig}\n customs={this.props.customs}\n onChange={(attr, valueChange) => {\n const newObj = JSON.parse(JSON.stringify(value));\n newObj[idx][attr] = valueChange;\n this.setState({ value: newObj }, () =>\n this.onChangeWrapper(newObj,true));\n }}\n onError={(error, attr) => this.onError(error, attr)}\n />;\n }\n\n static descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n } else\n if (b[orderBy] > a[orderBy]) {\n return 1;\n } else {\n return 0;\n }\n }\n\n static getComparator(order, orderBy) {\n return order === 'desc'\n ? (a, b) => ConfigTable.descendingComparator(a, b, orderBy)\n : (a, b) => -ConfigTable.descendingComparator(a, b, orderBy);\n }\n\n handleRequestSort = (property, orderCheck = false) => {\n const { order, orderBy } = this.state;\n if (orderBy) {\n const isAsc = orderBy === property && order === 'asc';\n const newOrder = orderCheck ? order : (isAsc ? 'desc' : 'asc');\n const newValue = this.stableSort(newOrder, property);\n this.setState({ order: newOrder, orderBy: property, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, newValue));\n }\n }\n\n stableSort = (order, orderBy) => {\n const { value } = this.state;\n const comparator = ConfigTable.getComparator(order, orderBy);\n const stabilizedThis = value.map((el, index) => [el, index]);\n\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order !== 0) {\n return order;\n } else {\n return a[1] - b[1];\n }\n });\n\n return stabilizedThis.map(el => el[0]);\n }\n\n enhancedTableHead(buttonsWidth) {\n const { schema, classes } = this.props;\n const { order, orderBy } = this.state;\n return <TableHead>\n <TableRow>\n {schema.items && schema.items.map(headCell => (\n <TableCell\n style={{ width: typeof headCell.width === 'string' && headCell.width.endsWith('%') ? headCell.width : headCell.width }}\n key={headCell.attr}\n align=\"left\"\n sortDirection={orderBy === headCell.attr ? order : false}\n >\n <div className={classes.flex}>\n {headCell.sort && <TableSortLabel\n active\n className={clsx(orderBy !== headCell.attr && classes.silver)}\n direction={orderBy === headCell.attr ? order : 'asc'}\n onClick={() => this.handleRequestSort(headCell.attr)}\n />}\n {headCell.filter && this.state.filterOn.includes(headCell.attr) ?\n <TextField\n variant=\"standard\"\n ref={this.filterRefs[headCell.attr]}\n onChange={() => this.applyFilter()}\n title={I18n.t('ra_You can filter entries by entering here some text')}\n InputProps={{\n endAdornment: this.filterRefs[headCell.attr]?.current?.children[0]?.children[0]?.value && <InputAdornment position=\"end\">\n <IconButton\n size=\"small\"\n onClick={() => {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }}\n >\n <CloseIcon />\n </IconButton>\n </InputAdornment>,\n }}\n fullWidth\n placeholder={this.getText(headCell.title)}\n />\n : <span className={this.props.classes.headerText}>{this.getText(headCell.title)}</span>}\n { headCell.filter ? <IconButton\n title={I18n.t('ra_Show/hide filter input')}\n size=\"small\"\n onClick={() => {\n const filterOn = [...this.state.filterOn];\n const pos = this.state.filterOn.indexOf(headCell.attr);\n if (pos === -1) {\n filterOn.push(headCell.attr);\n } else {\n filterOn.splice(pos, 1);\n }\n this.setState({ filterOn }, () => {\n if (pos && this.filterRefs[headCell.attr].current.children[0].children[0].value) {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }\n });\n }}\n >{this.state.filterOn.includes(headCell.attr) ? <IconFilterOff /> : <IconFilterOn />}</IconButton> : null}\n </div>\n </TableCell>\n ))}\n {!schema.noDelete && <TableCell style={{ paddingLeft: 20, paddingRight: 20, width: buttonsWidth, textAlign: 'right' }} padding=\"checkbox\">\n <IconButton disabled size=\"small\">\n <DeleteIcon />\n </IconButton>\n </TableCell>}\n </TableRow>\n </TableHead>;\n }\n\n onDelete = index => () => {\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n let visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n newValue.splice(index, 1);\n const pos = visibleValue.indexOf(index);\n if (pos !== -1) {\n visibleValue.splice(pos, 1);\n visibleValue = visibleValue.map(i => i > index ? i - 1 : i);\n }\n\n this.setState({ value: newValue, visibleValue, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(newValue));\n };\n\n onChangeWrapper = (newValue, updateVisible = false) => {\n this.typingTimer && clearTimeout(this.typingTimer);\n\n this.typingTimer = setTimeout((value, updateVisible) => {\n this.typingTimer = null;\n\n if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(JSON.parse(JSON.stringify(value)), this.props.schema.objKeyName, this.props.schema.objValueName);\n this.onChange(this.props.attr, objValue);\n } else {\n this.onChange(this.props.attr, value);\n }\n\n if (updateVisible) {\n this.applyFilter(false, value);\n this.handleRequestSort(this.state.orderBy, true);\n }\n }, 300, newValue, updateVisible);\n }\n\n onAdd = () => {\n const { schema } = this.props;\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n const visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n\n const newItem = schema.items && schema.items.reduce((accumulator, currentValue) => {\n let defaultValue;\n if (currentValue.defaultFunc) {\n if (this.props.custom) {\n defaultValue = currentValue.defaultFunc ? this.executeCustom(currentValue.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, newValue.length, this.props.data) : this.props.schema.default;\n } else {\n defaultValue = currentValue.defaultFunc ? this.execute(currentValue.defaultFunc, this.props.schema.default, this.props.data, newValue.length, this.props.data) : this.props.schema.default;\n }\n } else {\n defaultValue = currentValue.default === undefined ? null : currentValue.default;\n }\n\n accumulator[currentValue.attr] = defaultValue;\n return accumulator;\n }, {});\n\n newValue.push(newItem);\n visibleValue.push(newValue.length - 1);\n\n this.setState({ value: newValue, visibleValue }, () =>\n this.onChangeWrapper(newValue));\n }\n\n isAnyFilterSet() {\n return Object.keys(this.filterRefs).find(attr => this.filterRefs[attr].current?.children[0].children[0].value);\n }\n\n applyFilter = (clear = false, value = this.state.value) => {\n let visibleValue = value.map((_, i) => i);\n Object.keys(this.filterRefs).forEach(attr => {\n let valueInputRef = this.filterRefs[attr].current?.children[0].children[0].value;\n if (!clear && valueInputRef) {\n valueInputRef = valueInputRef.toLowerCase();\n visibleValue = visibleValue.filter(idx => value[idx] && value[idx][attr] && value[idx][attr].toLowerCase().includes(valueInputRef));\n } else if (this.filterRefs[attr].current) {\n this.filterRefs[attr].current.children[0].children[0].value = '';\n }\n });\n\n if (JSON.stringify(visibleValue) !== JSON.stringify(this.state.visibleValue)) {\n this.setState({ visibleValue });\n }\n }\n\n onMoveUp(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx - 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n onMoveDown(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx + 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n renderItem(error, disabled, defaultValue) {\n const { classes, schema } = this.props;\n const { value, visibleValue } = this.state;\n\n if (!value) {\n return null;\n }\n\n const doAnyFilterSet = this.isAnyFilterSet();\n\n return <Paper className={classes.paper}>\n <div className={classes.addIcon}>\n {schema.label ? <Toolbar\n variant=\"dense\"\n className={classes.rootTool}\n >\n <Typography className={classes.title} variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {this.getText(schema.label)}\n </Typography>\n </Toolbar> : null}\n {!schema.noDelete ? <Tooltip title={doAnyFilterSet ? I18n.t('ra_Cannot add items with set filter') : I18n.t('ra_Add row')}>\n <span>\n <IconButton disabled={!!doAnyFilterSet && !this.props.schema.allowAddByFilter} onClick={this.onAdd}>\n <AddIcon />\n </IconButton>\n </span>\n </Tooltip> : null}\n </div>\n <TableContainer>\n <Table className={classes.table} size=\"small\">\n {this.enhancedTableHead(!doAnyFilterSet && !this.state.orderBy ? 120 : 64)}\n <TableBody>\n {visibleValue.map((idx, i) =>\n <TableRow\n hover\n key={idx}\n >\n {schema.items && schema.items.map(headCell =>\n <TableCell key={headCell.attr + '_' + idx} align=\"left\">\n {this.itemTable(headCell.attr, value[idx], idx)}\n </TableCell>\n )}\n {!schema.noDelete && <TableCell align=\"left\" className={classes.buttonCell}>\n {!doAnyFilterSet && !this.state.orderBy ? (i ? <Tooltip title={I18n.t('ra_Move up')}>\n <IconButton size=\"small\" onClick={() => this.onMoveUp(idx)}>\n <UpIcon />\n </IconButton>\n </Tooltip> : <div className={classes.buttonEmpty}/>) : null}\n {!doAnyFilterSet && !this.state.orderBy ? (i < visibleValue.length - 1 ? <Tooltip title={I18n.t('ra_Move down')}>\n <IconButton size=\"small\" onClick={() => this.onMoveDown(idx)}>\n <DownIcon />\n </IconButton>\n </Tooltip> : <div className={classes.buttonEmpty}/> ) : null}\n <Tooltip title={I18n.t('ra_Delete current row')}>\n <IconButton size=\"small\" onClick={this.onDelete(idx)}>\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n </TableCell>}\n </TableRow>)}\n </TableBody>\n </Table>\n {!visibleValue.length && value.length ?\n <div className={classes.filteredOut}>\n <Typography className={classes.title} variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {I18n.t('ra_All items are filtered out')}\n <IconButton\n size=\"small\"\n onClick={e => this.applyFilter(true)}\n >\n <CloseIcon />\n </IconButton>\n </Typography>\n </div> : null}\n </TableContainer>\n {schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </Paper>;\n }\n}\n\nConfigTable.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)(ConfigTable);\n"],"mappings":"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"}
|
|
@@ -85,7 +85,7 @@ var ConfigTextSendTo = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
85
85
|
data = null;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
this.props.socket.sendTo(this.props.adapterName
|
|
88
|
+
this.props.socket.sendTo("".concat(this.props.adapterName, ".").concat(this.props.instance), this.props.schema.command || 'send', data).then(function (text) {
|
|
89
89
|
return _this.setState({
|
|
90
90
|
text: text || '',
|
|
91
91
|
context: _this.getContext()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigTextSendTo.js","names":["styles","theme","fullWidth","width","ConfigTextSendTo","askInstance","props","alive","data","schema","undefined","jsonData","getPattern","JSON","parse","e","console","error","socket","sendTo","adapterName","instance","command","then","text","setState","context","getContext","Array","isArray","alsoDependsOn","forEach","attr","ConfigGeneric","getValue","stringify","disabled","defaultValue","state","setTimeout","container","endAdornment","copyToClipboard","copy","window","alert","getText","label","renderHelp","help","helpLink","noTranslation","classes","propTypes","PropTypes","object","isRequired","string","number","withStyles"],"sources":["JsonConfigComponent/ConfigTextSendTo.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\n\nimport copy from '../copy-to-clipboard';\nimport CopyIcon from '../../icons/IconCopy';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigTextSendTo extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.askInstance();\n }\n\n askInstance() {\n if (this.props.alive) {\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(this.props.adapterName
|
|
1
|
+
{"version":3,"file":"ConfigTextSendTo.js","names":["styles","theme","fullWidth","width","ConfigTextSendTo","askInstance","props","alive","data","schema","undefined","jsonData","getPattern","JSON","parse","e","console","error","socket","sendTo","adapterName","instance","command","then","text","setState","context","getContext","Array","isArray","alsoDependsOn","forEach","attr","ConfigGeneric","getValue","stringify","disabled","defaultValue","state","setTimeout","container","endAdornment","copyToClipboard","copy","window","alert","getText","label","renderHelp","help","helpLink","noTranslation","classes","propTypes","PropTypes","object","isRequired","string","number","withStyles"],"sources":["JsonConfigComponent/ConfigTextSendTo.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\n\nimport copy from '../copy-to-clipboard';\nimport CopyIcon from '../../icons/IconCopy';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigTextSendTo extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.askInstance();\n }\n\n askInstance() {\n if (this.props.alive) {\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(`${this.props.adapterName}.${this.props.instance}`, this.props.schema.command || 'send', data)\n .then(text => this.setState({text: text || '', context: this.getContext()}));\n }\n }\n\n getContext() {\n const context = {};\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(attr =>\n context[attr] = ConfigGeneric.getValue(this.props.data, attr));\n }\n return JSON.stringify(context);\n }\n\n renderItem(error, disabled, defaultValue) {\n if (this.state.text === undefined) {\n return null;\n }\n\n if (this.props.alive) {\n const context = this.getContext();\n if (context !== this.state.context) {\n setTimeout(() => {\n this.askInstance();\n }, 300);\n }\n }\n\n if (this.props.schema.container === 'text') {\n return <TextField\n variant=\"standard\"\n fullWidth\n InputProps={{\n endAdornment: this.props.schema.copyToClipboard ?\n <IconButton\n size=\"small\"\n onClick={e => {\n copy(this.state.text);\n window.alert('Copied');\n }}>\n <CopyIcon/>\n </IconButton>\n : undefined,\n }}\n value={this.state.text}\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 } else {\n return <div className={this.props.classes.fullWidth}>{this.state.text}</div>;\n }\n }\n}\n\nConfigTextSendTo.propTypes = {\n socket: PropTypes.object.isRequired,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n};\n\nexport default withStyles(styles)(ConfigTextSendTo);"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AAEA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;EAAA,OAAK;IACrBC,SAAS,EAAE;MACPC,KAAK,EAAE;IADA;EADU,CAAL;AAAA,CAApB;;IAMMC,gB;;;;;;;;;;;;WACF,6BAAoB;MAChB;MAEA,KAAKC,WAAL;IACH;;;WAED,uBAAc;MAAA;;MACV,IAAI,KAAKC,KAAL,CAAWC,KAAf,EAAsB;QAClB,IAAIC,IAAI,GAAG,KAAKF,KAAL,CAAWG,MAAX,CAAkBD,IAA7B;;QACA,IAAIA,IAAI,KAAKE,SAAT,IAAsB,KAAKJ,KAAL,CAAWG,MAAX,CAAkBE,QAA5C,EAAsD;UAClDH,IAAI,GAAG,KAAKI,UAAL,CAAgB,KAAKN,KAAL,CAAWG,MAAX,CAAkBE,QAAlC,CAAP;;UACA,IAAI;YACAH,IAAI,GAAGK,IAAI,CAACC,KAAL,CAAWN,IAAX,CAAP;UACH,CAFD,CAEE,OAAOO,CAAP,EAAU;YACRC,OAAO,CAACC,KAAR,CAAc,6BAA6BT,IAA3C;UACH;QACJ;;QAED,IAAIA,IAAI,KAAKE,SAAb,EAAwB;UACpBF,IAAI,GAAG,IAAP;QACH;;QAED,KAAKF,KAAL,CAAWY,MAAX,CAAkBC,MAAlB,WAA4B,KAAKb,KAAL,CAAWc,WAAvC,cAAsD,KAAKd,KAAL,CAAWe,QAAjE,GAA6E,KAAKf,KAAL,CAAWG,MAAX,CAAkBa,OAAlB,IAA6B,MAA1G,EAAkHd,IAAlH,EACKe,IADL,CACU,UAAAC,IAAI;UAAA,OAAI,KAAI,CAACC,QAAL,CAAc;YAACD,IAAI,EAAEA,IAAI,IAAI,EAAf;YAAmBE,OAAO,EAAE,KAAI,CAACC,UAAL;UAA5B,CAAd,CAAJ;QAAA,CADd;MAEH;IACJ;;;WAED,sBAAa;MAAA;;MACT,IAAMD,OAAO,GAAG,EAAhB;;MACA,IAAIE,KAAK,CAACC,OAAN,CAAc,KAAKvB,KAAL,CAAWG,MAAX,CAAkBqB,aAAhC,CAAJ,EAAoD;QAChD,KAAKxB,KAAL,CAAWG,MAAX,CAAkBqB,aAAlB,CAAgCC,OAAhC,CAAwC,UAAAC,IAAI;UAAA,OACxCN,OAAO,CAACM,IAAD,CAAP,GAAgBC,0BAAA,CAAcC,QAAd,CAAuB,MAAI,CAAC5B,KAAL,CAAWE,IAAlC,EAAwCwB,IAAxC,CADwB;QAAA,CAA5C;MAEH;;MACD,OAAOnB,IAAI,CAACsB,SAAL,CAAeT,OAAf,CAAP;IACH;;;WAED,oBAAWT,KAAX,EAAkBmB,QAAlB,EAA4BC,YAA5B,EAA0C;MAAA;;MACtC,IAAI,KAAKC,KAAL,CAAWd,IAAX,KAAoBd,SAAxB,EAAmC;QAC/B,OAAO,IAAP;MACH;;MAED,IAAI,KAAKJ,KAAL,CAAWC,KAAf,EAAsB;QAClB,IAAMmB,OAAO,GAAG,KAAKC,UAAL,EAAhB;;QACA,IAAID,OAAO,KAAK,KAAKY,KAAL,CAAWZ,OAA3B,EAAoC;UAChCa,UAAU,CAAC,YAAM;YACb,MAAI,CAAClC,WAAL;UACH,CAFS,EAEP,GAFO,CAAV;QAGH;MACJ;;MAED,IAAI,KAAKC,KAAL,CAAWG,MAAX,CAAkB+B,SAAlB,KAAgC,MAApC,EAA4C;QACxC,oBAAO,gCAAC,qBAAD;UACH,OAAO,EAAC,UADL;UAEH,SAAS,MAFN;UAGH,UAAU,EAAE;YACRC,YAAY,EAAE,KAAKnC,KAAL,CAAWG,MAAX,CAAkBiC,eAAlB,gBACV,gCAAC,sBAAD;cACI,IAAI,EAAC,OADT;cAEI,OAAO,EAAE,iBAAA3B,CAAC,EAAI;gBACV,IAAA4B,2BAAA,EAAK,MAAI,CAACL,KAAL,CAAWd,IAAhB;gBACAoB,MAAM,CAACC,KAAP,CAAa,QAAb;cACH;YALL,gBAMI,gCAAC,oBAAD,OANJ,CADU,GASRnC;UAVE,CAHT;UAeH,KAAK,EAAE,KAAK4B,KAAL,CAAWd,IAff;UAgBH,KAAK,EAAE,KAAKsB,OAAL,CAAa,KAAKxC,KAAL,CAAWG,MAAX,CAAkBsC,KAA/B,CAhBJ;UAiBH,UAAU,EAAE,KAAKC,UAAL,CAAgB,KAAK1C,KAAL,CAAWG,MAAX,CAAkBwC,IAAlC,EAAwC,KAAK3C,KAAL,CAAWG,MAAX,CAAkByC,QAA1D,EAAoE,KAAK5C,KAAL,CAAWG,MAAX,CAAkB0C,aAAtF;QAjBT,EAAP;MAmBH,CApBD,MAoBO;QACH,oBAAO;UAAK,SAAS,EAAE,KAAK7C,KAAL,CAAW8C,OAAX,CAAmBlD;QAAnC,GAA+C,KAAKoC,KAAL,CAAWd,IAA1D,CAAP;MACH;IACJ;;;EA1E0BS,0B;;AA6E/B7B,gBAAgB,CAACiD,SAAjB,GAA6B;EACzBnC,MAAM,EAAEoC,qBAAA,CAAUC,MAAV,CAAiBC,UADA;EAEzBhD,IAAI,EAAE8C,qBAAA,CAAUC,MAAV,CAAiBC,UAFE;EAGzB/C,MAAM,EAAE6C,qBAAA,CAAUC,MAHO;EAIzBnC,WAAW,EAAEkC,qBAAA,CAAUG,MAJE;EAKzBpC,QAAQ,EAAEiC,qBAAA,CAAUI;AALK,CAA7B;;eAQe,IAAAC,kBAAA,EAAW3D,MAAX,EAAmBI,gBAAnB,C"}
|
package/Components/Loader.js
CHANGED
|
@@ -64,8 +64,13 @@ var Loader = /*#__PURE__*/function (_React$Component) {
|
|
|
64
64
|
var size = this.props.size || 234;
|
|
65
65
|
var theme = this.props.themeType || this.props.theme || 'light';
|
|
66
66
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
67
|
-
className: 'logo-back logo-background-' + theme
|
|
68
|
-
|
|
67
|
+
className: 'logo-back logo-background-' + theme,
|
|
68
|
+
style: {
|
|
69
|
+
backgroundImage: window.loadingBackgroundImage && window.loadingBackgroundImage !== '@@loginBackgroundImage@@' ? window.loadingBackgroundImage : undefined,
|
|
70
|
+
backgroundColor: window.loadingBackgroundColor && window.loadingBackgroundColor !== '@@loginBackgroundColor@@' ? window.loadingBackgroundColor : undefined,
|
|
71
|
+
backgroundSize: 'cover'
|
|
72
|
+
}
|
|
73
|
+
}, window.loadingHideLogo === 'true' ? null : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
69
74
|
className: "logo-div",
|
|
70
75
|
style: {
|
|
71
76
|
width: size,
|
|
@@ -82,7 +87,7 @@ var Loader = /*#__PURE__*/function (_React$Component) {
|
|
|
82
87
|
left: '57%'
|
|
83
88
|
}
|
|
84
89
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
85
|
-
className:
|
|
90
|
+
className: "logo-border logo-background-".concat(theme, " logo-animate-wait"),
|
|
86
91
|
style: {
|
|
87
92
|
borderWidth: size * 0.132
|
|
88
93
|
}
|
|
@@ -104,7 +109,7 @@ var Loader = /*#__PURE__*/function (_React$Component) {
|
|
|
104
109
|
width: size + 11,
|
|
105
110
|
height: size + 11
|
|
106
111
|
}
|
|
107
|
-
}));
|
|
112
|
+
})));
|
|
108
113
|
}
|
|
109
114
|
}]);
|
|
110
115
|
return Loader;
|
package/Components/Loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loader.js","names":["loaderStyles","Loader","props","window","document","getElementById","style","createElement","setAttribute","innerHTML","head","appendChild","size","theme","themeType","width","height","left","borderWidth","top","bottom","React","Component","propTypes","PropTypes","number","string","_export"],"sources":["Loader.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n// import './loader.css'\nconst loaderStyles = `\n/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n\n.logo-background-light, .logo-background-colored {\n background: white;\n}\n.logo-background-dark, .logo-background-blue {\n background: black;\n}\n.logo-div {\n position: absolute;\n top: 50%;\n left: 50%;\n -ms-transform: translateX(-50%) translateY(-50%);\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n overflow: hidden;\n border-radius: 50%;\n z-index: 2;\n}\n.logo-border {\n /*border-color: #164477;*/\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n border-radius: 50%;\n border-style: solid;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n.logo-top {\n position: absolute;\n width: 4.5%;\n height: 16%;\n top: 0;\n z-index: 2;\n}\n.logo-i {\n position: absolute;\n width: 14.5%;\n height: 60%;\n top: 20%;\n left: 42%;\n background: #3399CC;\n}\n.logo-i-top {\n position: absolute;\n width: 14.5%;\n height: 4%;\n left: 42%;\n background: #3399CC;\n border-radius: 100%;\n}\n.logo-back {\n width: 100%;\n height: 100%;\n z-index: 0;\n overflow: hidden;\n}\n@keyframes logo-grow {\n 0% {\n width: 230px;\n height: 230px;\n transform: translate(-50%,-50%) scale(1);\n opacity: 1\n }\n 99% {\n width: 230px;\n height: 230px;\n transform: translate(-50%,-50%) scale(10);\n opacity: 0;\n }\n 100% {\n width: 0;\n height: 0;\n opacity: 0;\n }\n}\n@keyframes logo-spin { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }\n@keyframes logo-color-inside-light {\n 0% {\n background: #FEFEFE;\n }\n 100% {\n background: #3399CC;\n }\n}\n@keyframes logo-color-inside-dark {\n 0% {\n background: #030303;\n }\n 100% {\n background: #3399CC;\n }\n}\n@keyframes logo-color-inside-colored {\n 0% {\n background: #FEFEFE;\n }\n 100% {\n background: #3399CC;\n }\n}\n@keyframes logo-color-inside-blue {\n 0% {\n background: #030303;\n }\n 100% {\n background: #3399CC;\n }\n}\n\n@keyframes logo-color-outside-light {\n 0% {\n border-color: #FEFEFE;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n@keyframes logo-color-outside-dark {\n 0% {\n border-color: #040404;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n@keyframes logo-color-outside-colored {\n 0% {\n border-color: #FEFEFE;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n@keyframes logo-color-outside-blue {\n 0% {\n border-color: #040404;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n\n.logo-animate-wait {\n animation: logo-color-outside 1.5s, logo-spin 1.5s linear infinite;\n}\n\n.logo-animate-grow-light {\n background: #DDD;\n}\n.logo-animate-grow-dark {\n background: #1d1d1d;\n}\n.logo-animate-grow-colored {\n background: #DDD;\n}\n.logo-animate-grow-blue {\n background: #1d1d1d;\n}\n\n.logo-animate-grow {\n display: inline-block;\n text-align: center;\n z-index: 1;\n top: 50%;\n left: 50%;\n -ms-transform: translateX(-50%) translateY(-50%);\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n width: 245px;\n height: 245px;\n border-radius: 50%;\n position: absolute;\n animation: logo-grow 1s 1 ease forwards;\n}\n\n.logo-animate-color-inside-light {\n animation: logo-color-inside-light 2.5s;\n}\n.logo-animate-color-inside-dark {\n animation: logo-color-inside-dark 2.5s;\n}\n.logo-animate-color-inside-colored {\n animation: logo-color-inside-colored 2.5s;\n}\n.logo-animate-color-inside-blue {\n animation: logo-color-inside-blue 2.5s;\n}\n\n.logo-animate-color-outside-light {\n animation: logo-color-outside-light 1.5s;\n}\n.logo-animate-color-outside-dark {\n animation: logo-color-outside-dark 1.5s;\n}\n.logo-animate-color-outside-colored {\n animation: logo-color-outside-colored 1.5s;\n}\n.logo-animate-color-outside-blue {\n animation: logo-color-outside-blue 1.5s;\n}\n`;\n\n/**\n * @typedef {object} LoaderProps\n * @property {string} [key] The key to identify this component.\n * @property {number} [size] The size in pixels of this loader.\n * @property {string} [themeType] The chosen theme type.\n * @property {string} [theme] The chosen theme.\n *\n * @extends {React.Component<LoaderProps>}\n */\nclass Loader extends React.Component {\n constructor(props) {\n super(props);\n\n if (!window.document.getElementById('loader-iobroker-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'loader-iobroker-component');\n style.innerHTML = loaderStyles;\n window.document.head.appendChild(style);\n }\n }\n\n render() {\n const size = this.props.size || 234;\n const theme = this.props.themeType || this.props.theme || 'light';\n return <div className={'logo-back logo-background-' + theme}>\n <div className=\"logo-div\" style={{width: size, height: size}}>\n <div className={'logo-top logo-background-' + theme} style={{left: '37%'}}/>\n <div className={'logo-top logo-background-' + theme} style={{left: '57%'}}/>\n <div\n className={'logo-border logo-background-' + theme + ' logo-animate-wait'}\n style={{borderWidth: size * 0.132}}\n />\n <div className={'logo-i logo-animate-color-inside-' + theme}/>\n <div className={'logo-i-top logo-animate-color-inside-' + theme} style={{top: '18%'}}/>\n <div className={'logo-i-top logo-animate-color-inside-' + theme} style={{bottom: '18%'}}/>\n </div>\n <div className={'logo-animate-grow logo-animate-grow-' + theme}\n style={{width: size + 11, height: size + 11}}\n />\n </div>;\n }\n}\n\nLoader.propTypes = {\n size: PropTypes.number,\n themeType: PropTypes.string\n};\n\n/** @type {typeof Loader} */\nconst _export = Loader;\nexport default _export;"],"mappings":";;;;;;;;;;;;;;;;;;;AAMA;;AACA;;;;;;AACA;AACA,IAAMA,YAAY,otJAAlB;AAiOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMC,M;;;;;EACF,gBAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACf,0BAAMA,KAAN;;IAEA,IAAI,CAACC,MAAM,CAACC,QAAP,CAAgBC,cAAhB,CAA+B,2BAA/B,CAAL,EAAkE;MAC9D,IAAMC,KAAK,GAAGH,MAAM,CAACC,QAAP,CAAgBG,aAAhB,CAA8B,OAA9B,CAAd;MACAD,KAAK,CAACE,YAAN,CAAmB,IAAnB,EAAyB,2BAAzB;MACAF,KAAK,CAACG,SAAN,GAAkBT,YAAlB;MACAG,MAAM,CAACC,QAAP,CAAgBM,IAAhB,CAAqBC,WAArB,CAAiCL,KAAjC;IACH;;IARc;EASlB;;;;WAED,kBAAS;MACL,IAAMM,IAAI,GAAG,KAAKV,KAAL,CAAWU,IAAX,IAAmB,GAAhC;MACA,IAAMC,KAAK,GAAG,KAAKX,KAAL,CAAWY,SAAX,IAAwB,KAAKZ,KAAL,CAAWW,KAAnC,IAA4C,OAA1D;MACA,oBAAO;QAAK,SAAS,EAAE,+BAA+BA;MAA/C,gBACH;QAAK,SAAS,EAAC,UAAf;QAA0B,KAAK,EAAE;UAACE,KAAK,EAAEH,IAAR;UAAcI,MAAM,EAAEJ;QAAtB;MAAjC,gBACI;QAAK,SAAS,EAAE,8BAA8BC,KAA9C;QAAqD,KAAK,EAAE;UAACI,IAAI,EAAE;QAAP;MAA5D,EADJ,eAEI;QAAK,SAAS,EAAE,8BAA8BJ,KAA9C;QAAqD,KAAK,EAAE;UAACI,IAAI,EAAE;QAAP;MAA5D,EAFJ,eAGI;QACI,SAAS,EAAE,iCAAiCJ,KAAjC,GAAyC,oBADxD;QAEI,KAAK,EAAE;UAACK,WAAW,EAAEN,IAAI,GAAG;QAArB;MAFX,EAHJ,eAOI;QAAK,SAAS,EAAE,sCAAsCC;MAAtD,EAPJ,eAQI;QAAK,SAAS,EAAE,0CAA0CA,KAA1D;QAAiE,KAAK,EAAE;UAACM,GAAG,EAAE;QAAN;MAAxE,EARJ,eASI;QAAK,SAAS,EAAE,0CAA0CN,KAA1D;QAAiE,KAAK,EAAE;UAACO,MAAM,EAAE;QAAT;MAAxE,EATJ,CADG,eAYH;QAAK,SAAS,EAAE,yCAAyCP,KAAzD;QACK,KAAK,EAAE;UAACE,KAAK,EAAEH,IAAI,GAAG,EAAf;UAAmBI,MAAM,EAAEJ,IAAI,GAAG;QAAlC;MADZ,EAZG,CAAP;IAgBH;;;EA/BgBS,iBAAA,CAAMC,S;;AAkC3BrB,MAAM,CAACsB,SAAP,GAAmB;EACfX,IAAI,EAAEY,qBAAA,CAAUC,MADD;EAEfX,SAAS,EAAEU,qBAAA,CAAUE;AAFN,CAAnB;AAKA;;AACA,IAAMC,OAAO,GAAG1B,MAAhB;eACe0B,O"}
|
|
1
|
+
{"version":3,"file":"Loader.js","names":["loaderStyles","Loader","props","window","document","getElementById","style","createElement","setAttribute","innerHTML","head","appendChild","size","theme","themeType","backgroundImage","loadingBackgroundImage","undefined","backgroundColor","loadingBackgroundColor","backgroundSize","loadingHideLogo","width","height","left","borderWidth","top","bottom","React","Component","propTypes","PropTypes","number","string","_export"],"sources":["Loader.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n// import './loader.css'\nconst loaderStyles = `\n/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n\n.logo-background-light, .logo-background-colored {\n background: white;\n}\n.logo-background-dark, .logo-background-blue {\n background: black;\n}\n.logo-div {\n position: absolute;\n top: 50%;\n left: 50%;\n -ms-transform: translateX(-50%) translateY(-50%);\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n overflow: hidden;\n border-radius: 50%;\n z-index: 2;\n}\n.logo-border {\n /*border-color: #164477;*/\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n border-radius: 50%;\n border-style: solid;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n.logo-top {\n position: absolute;\n width: 4.5%;\n height: 16%;\n top: 0;\n z-index: 2;\n}\n.logo-i {\n position: absolute;\n width: 14.5%;\n height: 60%;\n top: 20%;\n left: 42%;\n background: #3399CC;\n}\n.logo-i-top {\n position: absolute;\n width: 14.5%;\n height: 4%;\n left: 42%;\n background: #3399CC;\n border-radius: 100%;\n}\n.logo-back {\n width: 100%;\n height: 100%;\n z-index: 0;\n overflow: hidden;\n}\n@keyframes logo-grow {\n 0% {\n width: 230px;\n height: 230px;\n transform: translate(-50%,-50%) scale(1);\n opacity: 1\n }\n 99% {\n width: 230px;\n height: 230px;\n transform: translate(-50%,-50%) scale(10);\n opacity: 0;\n }\n 100% {\n width: 0;\n height: 0;\n opacity: 0;\n }\n}\n@keyframes logo-spin { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }\n@keyframes logo-color-inside-light {\n 0% {\n background: #FEFEFE;\n }\n 100% {\n background: #3399CC;\n }\n}\n@keyframes logo-color-inside-dark {\n 0% {\n background: #030303;\n }\n 100% {\n background: #3399CC;\n }\n}\n@keyframes logo-color-inside-colored {\n 0% {\n background: #FEFEFE;\n }\n 100% {\n background: #3399CC;\n }\n}\n@keyframes logo-color-inside-blue {\n 0% {\n background: #030303;\n }\n 100% {\n background: #3399CC;\n }\n}\n\n@keyframes logo-color-outside-light {\n 0% {\n border-color: #FEFEFE;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n@keyframes logo-color-outside-dark {\n 0% {\n border-color: #040404;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n@keyframes logo-color-outside-colored {\n 0% {\n border-color: #FEFEFE;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n@keyframes logo-color-outside-blue {\n 0% {\n border-color: #040404;\n }\n 100% {\n border-top-color: #3399CC;\n border-left-color: #164477;\n border-bottom-color: #164477;\n border-right-color: #164477;\n }\n}\n\n.logo-animate-wait {\n animation: logo-color-outside 1.5s, logo-spin 1.5s linear infinite;\n}\n\n.logo-animate-grow-light {\n background: #DDD;\n}\n.logo-animate-grow-dark {\n background: #1d1d1d;\n}\n.logo-animate-grow-colored {\n background: #DDD;\n}\n.logo-animate-grow-blue {\n background: #1d1d1d;\n}\n\n.logo-animate-grow {\n display: inline-block;\n text-align: center;\n z-index: 1;\n top: 50%;\n left: 50%;\n -ms-transform: translateX(-50%) translateY(-50%);\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n width: 245px;\n height: 245px;\n border-radius: 50%;\n position: absolute;\n animation: logo-grow 1s 1 ease forwards;\n}\n\n.logo-animate-color-inside-light {\n animation: logo-color-inside-light 2.5s;\n}\n.logo-animate-color-inside-dark {\n animation: logo-color-inside-dark 2.5s;\n}\n.logo-animate-color-inside-colored {\n animation: logo-color-inside-colored 2.5s;\n}\n.logo-animate-color-inside-blue {\n animation: logo-color-inside-blue 2.5s;\n}\n\n.logo-animate-color-outside-light {\n animation: logo-color-outside-light 1.5s;\n}\n.logo-animate-color-outside-dark {\n animation: logo-color-outside-dark 1.5s;\n}\n.logo-animate-color-outside-colored {\n animation: logo-color-outside-colored 1.5s;\n}\n.logo-animate-color-outside-blue {\n animation: logo-color-outside-blue 1.5s;\n}\n`;\n\n/**\n * @typedef {object} LoaderProps\n * @property {string} [key] The key to identify this component.\n * @property {number} [size] The size in pixels of this loader.\n * @property {string} [themeType] The chosen theme type.\n * @property {string} [theme] The chosen theme.\n *\n * @extends {React.Component<LoaderProps>}\n */\nclass Loader extends React.Component {\n constructor(props) {\n super(props);\n\n if (!window.document.getElementById('loader-iobroker-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'loader-iobroker-component');\n style.innerHTML = loaderStyles;\n window.document.head.appendChild(style);\n }\n }\n\n render() {\n const size = this.props.size || 234;\n const theme = this.props.themeType || this.props.theme || 'light';\n return <div className={'logo-back logo-background-' + theme}\n style={{\n backgroundImage: window.loadingBackgroundImage && window.loadingBackgroundImage !== '@@loginBackgroundImage@@' ? window.loadingBackgroundImage : undefined,\n backgroundColor: window.loadingBackgroundColor && window.loadingBackgroundColor !== '@@loginBackgroundColor@@' ? window.loadingBackgroundColor : undefined,\n backgroundSize: 'cover',\n }}\n >\n {window.loadingHideLogo === 'true' ?\n null\n :\n <>\n <div className=\"logo-div\" style={{ width: size, height: size }}>\n <div className={'logo-top logo-background-' + theme} style={{ left: '37%' }}/>\n <div className={'logo-top logo-background-' + theme} style={{ left: '57%' }}/>\n <div\n className={`logo-border logo-background-${theme} logo-animate-wait`}\n style={{ borderWidth: size * 0.132 }}\n />\n <div className={'logo-i logo-animate-color-inside-' + theme}/>\n <div className={'logo-i-top logo-animate-color-inside-' + theme} style={{ top: '18%' }}/>\n <div className={'logo-i-top logo-animate-color-inside-' + theme} style={{ bottom: '18%' }}/>\n </div>\n <div className={'logo-animate-grow logo-animate-grow-' + theme}\n style={{ width: size + 11, height: size + 11 }}\n />\n </>\n }\n </div>;\n }\n}\n\nLoader.propTypes = {\n size: PropTypes.number,\n themeType: PropTypes.string\n};\n\n/** @type {typeof Loader} */\nconst _export = Loader;\nexport default _export;"],"mappings":";;;;;;;;;;;;;;;;;;;AAMA;;AACA;;;;;;AACA;AACA,IAAMA,YAAY,otJAAlB;AAiOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMC,M;;;;;EACF,gBAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACf,0BAAMA,KAAN;;IAEA,IAAI,CAACC,MAAM,CAACC,QAAP,CAAgBC,cAAhB,CAA+B,2BAA/B,CAAL,EAAkE;MAC9D,IAAMC,KAAK,GAAGH,MAAM,CAACC,QAAP,CAAgBG,aAAhB,CAA8B,OAA9B,CAAd;MACAD,KAAK,CAACE,YAAN,CAAmB,IAAnB,EAAyB,2BAAzB;MACAF,KAAK,CAACG,SAAN,GAAkBT,YAAlB;MACAG,MAAM,CAACC,QAAP,CAAgBM,IAAhB,CAAqBC,WAArB,CAAiCL,KAAjC;IACH;;IARc;EASlB;;;;WAED,kBAAS;MACL,IAAMM,IAAI,GAAG,KAAKV,KAAL,CAAWU,IAAX,IAAmB,GAAhC;MACA,IAAMC,KAAK,GAAG,KAAKX,KAAL,CAAWY,SAAX,IAAwB,KAAKZ,KAAL,CAAWW,KAAnC,IAA4C,OAA1D;MACA,oBAAO;QAAK,SAAS,EAAE,+BAA+BA,KAA/C;QACH,KAAK,EAAE;UACHE,eAAe,EAAEZ,MAAM,CAACa,sBAAP,IAAiCb,MAAM,CAACa,sBAAP,KAAkC,0BAAnE,GAAgGb,MAAM,CAACa,sBAAvG,GAAgIC,SAD9I;UAEHC,eAAe,EAAEf,MAAM,CAACgB,sBAAP,IAAiChB,MAAM,CAACgB,sBAAP,KAAkC,0BAAnE,GAAgGhB,MAAM,CAACgB,sBAAvG,GAAgIF,SAF9I;UAGHG,cAAc,EAAE;QAHb;MADJ,GAOFjB,MAAM,CAACkB,eAAP,KAA2B,MAA3B,GACG,IADH,gBAGG,+EACI;QAAK,SAAS,EAAC,UAAf;QAA0B,KAAK,EAAE;UAAEC,KAAK,EAAEV,IAAT;UAAeW,MAAM,EAAEX;QAAvB;MAAjC,gBACI;QAAK,SAAS,EAAE,8BAA8BC,KAA9C;QAAqD,KAAK,EAAE;UAAEW,IAAI,EAAE;QAAR;MAA5D,EADJ,eAEI;QAAK,SAAS,EAAE,8BAA8BX,KAA9C;QAAqD,KAAK,EAAE;UAAEW,IAAI,EAAE;QAAR;MAA5D,EAFJ,eAGI;QACI,SAAS,wCAAiCX,KAAjC,uBADb;QAEI,KAAK,EAAE;UAAEY,WAAW,EAAEb,IAAI,GAAG;QAAtB;MAFX,EAHJ,eAOI;QAAK,SAAS,EAAE,sCAAsCC;MAAtD,EAPJ,eAQI;QAAK,SAAS,EAAE,0CAA0CA,KAA1D;QAAiE,KAAK,EAAE;UAAEa,GAAG,EAAE;QAAP;MAAxE,EARJ,eASI;QAAK,SAAS,EAAE,0CAA0Cb,KAA1D;QAAiE,KAAK,EAAE;UAAEc,MAAM,EAAE;QAAV;MAAxE,EATJ,CADJ,eAYI;QAAK,SAAS,EAAE,yCAAyCd,KAAzD;QACA,KAAK,EAAE;UAAES,KAAK,EAAEV,IAAI,GAAG,EAAhB;UAAoBW,MAAM,EAAEX,IAAI,GAAG;QAAnC;MADP,EAZJ,CAVD,CAAP;IA4BH;;;EA3CgBgB,iBAAA,CAAMC,S;;AA8C3B5B,MAAM,CAAC6B,SAAP,GAAmB;EACflB,IAAI,EAAEmB,qBAAA,CAAUC,MADD;EAEflB,SAAS,EAAEiB,qBAAA,CAAUE;AAFN,CAAnB;AAKA;;AACA,IAAMC,OAAO,GAAGjC,MAAhB;eACeiC,O"}
|
|
@@ -181,7 +181,7 @@ var UploadImage = /*#__PURE__*/function (_Component) {
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
if (file.size > maxSize) {
|
|
184
|
-
return window.alert(t('
|
|
184
|
+
return window.alert(t('ra_File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));
|
|
185
185
|
}
|
|
186
186
|
|
|
187
187
|
var base64 = "data:".concat(ext, ";base64,").concat(btoa(new Uint8Array(reader.result).reduce(function (data, _byte) {
|
|
@@ -234,7 +234,7 @@ var UploadImage = /*#__PURE__*/function (_Component) {
|
|
|
234
234
|
});
|
|
235
235
|
|
|
236
236
|
if (!acceptedFiles.length) {
|
|
237
|
-
window.alert(errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message || t('
|
|
237
|
+
window.alert(errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message || t('ra_Cannot upload'));
|
|
238
238
|
} else {
|
|
239
239
|
return _this2.onDrop(acceptedFiles);
|
|
240
240
|
}
|
|
@@ -252,10 +252,10 @@ var UploadImage = /*#__PURE__*/function (_Component) {
|
|
|
252
252
|
className: classes.uploadCenterIcon
|
|
253
253
|
}), /*#__PURE__*/React.createElement("div", {
|
|
254
254
|
className: classes.uploadCenterText
|
|
255
|
-
}, uploadFile === 'dragging' ? t('
|
|
255
|
+
}, uploadFile === 'dragging' ? t('ra_Drop file here') : t('ra_Place your files here or click here to open the browse dialog'))) : removeIconFunc && !cropHandler && /*#__PURE__*/React.createElement("div", {
|
|
256
256
|
className: classes.buttonRemoveWrapper
|
|
257
257
|
}, /*#__PURE__*/React.createElement(_material.Tooltip, {
|
|
258
|
-
title: t('
|
|
258
|
+
title: t('ra_Clear')
|
|
259
259
|
}, /*#__PURE__*/React.createElement(_IconButton["default"], {
|
|
260
260
|
size: "large",
|
|
261
261
|
onClick: function onClick(e) {
|
|
@@ -265,7 +265,7 @@ var UploadImage = /*#__PURE__*/function (_Component) {
|
|
|
265
265
|
}, /*#__PURE__*/React.createElement(_Close["default"], null)))), icon && crop && /*#__PURE__*/React.createElement("div", {
|
|
266
266
|
className: classes.buttonCropWrapper
|
|
267
267
|
}, /*#__PURE__*/React.createElement(_material.Tooltip, {
|
|
268
|
-
title: t('
|
|
268
|
+
title: t('ra_Crop')
|
|
269
269
|
}, /*#__PURE__*/React.createElement(_IconButton["default"], {
|
|
270
270
|
size: "large",
|
|
271
271
|
onClick: function onClick(e) {
|
|
@@ -284,7 +284,6 @@ var UploadImage = /*#__PURE__*/function (_Component) {
|
|
|
284
284
|
}, /*#__PURE__*/React.createElement(_Crop["default"], {
|
|
285
285
|
color: cropHandler ? 'primary' : 'inherit'
|
|
286
286
|
}))), /*#__PURE__*/React.createElement(_material.Menu, {
|
|
287
|
-
id: "simple-menu",
|
|
288
287
|
anchorEl: anchorEl,
|
|
289
288
|
keepMounted: true,
|
|
290
289
|
open: Boolean(anchorEl),
|
|
@@ -305,14 +304,14 @@ var UploadImage = /*#__PURE__*/function (_Component) {
|
|
|
305
304
|
onChange(imageElement.getCroppedCanvas().toDataURL());
|
|
306
305
|
});
|
|
307
306
|
}
|
|
308
|
-
}, t('
|
|
307
|
+
}, t('ra_Save')), /*#__PURE__*/React.createElement(_material.MenuItem, {
|
|
309
308
|
onClick: function onClick() {
|
|
310
309
|
return _this2.setState({
|
|
311
310
|
anchorEl: null,
|
|
312
311
|
cropHandler: false
|
|
313
312
|
});
|
|
314
313
|
}
|
|
315
|
-
}, t('
|
|
314
|
+
}, t('ra_Close')))), icon && !cropHandler ? /*#__PURE__*/React.createElement("img", {
|
|
316
315
|
src: icon,
|
|
317
316
|
className: classes.image,
|
|
318
317
|
alt: "icon"
|
|
@@ -339,7 +338,9 @@ UploadImage.defaultProps = {
|
|
|
339
338
|
maxSize: 10 * 1024,
|
|
340
339
|
icon: null,
|
|
341
340
|
removeIconFunc: null,
|
|
342
|
-
accept:
|
|
341
|
+
accept: {
|
|
342
|
+
'image/*': []
|
|
343
|
+
},
|
|
343
344
|
error: false,
|
|
344
345
|
onChange: function onChange(base64) {
|
|
345
346
|
return console.log(base64);
|
|
@@ -356,7 +357,7 @@ UploadImage.propTypes = {
|
|
|
356
357
|
crop: _propTypes["default"].bool,
|
|
357
358
|
error: _propTypes["default"].bool,
|
|
358
359
|
onChange: _propTypes["default"].func,
|
|
359
|
-
accept: _propTypes["default"].
|
|
360
|
+
accept: _propTypes["default"].object,
|
|
360
361
|
t: _propTypes["default"].func
|
|
361
362
|
};
|
|
362
363
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadImage.js","names":["cropperStyles","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","window","document","getElementById","style","createElement","setAttribute","innerHTML","head","appendChild","acceptedFiles","maxSize","t","onChange","file","reader","FileReader","onabort","console","log","onerror","onload","ext","name","split","pop","toLowerCase","includes","size","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';\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\n// import 'cropperjs/dist/cropper.css';\nconst cropperStyles = `\n/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:11.623Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n}\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 0.75);\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: 0.5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n}\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n}\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: 0.75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center::before,\n.cropper-center::after {\n background-color: #eee;\n content: ' ';\n display: block;\n position: absolute;\n}\n\n.cropper-center::before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n}\n\n.cropper-center::after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n}\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n}\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n}\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: 0.75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n}\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n}\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n}\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n}\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n}\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n}\n\n@media (min-width: 768px) {\n .cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n}\n\n@media (min-width: 1200px) {\n .cropper-point.point-se {\n height: 5px;\n opacity: 0.75;\n width: 5px;\n }\n}\n\n.cropper-point.point-se::before {\n background-color: #39f;\n bottom: -50%;\n content: ' ';\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n}\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n`;\n\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 if (!window.document.getElementById('cropper-style-json-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'cropper-style-json-component');\n style.innerHTML = cropperStyles;\n window.document.head.appendChild(style);\n }\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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"}
|
|
1
|
+
{"version":3,"file":"UploadImage.js","names":["cropperStyles","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","window","document","getElementById","style","createElement","setAttribute","innerHTML","head","appendChild","acceptedFiles","maxSize","t","onChange","file","reader","FileReader","onabort","console","log","onerror","onload","ext","name","split","pop","toLowerCase","includes","size","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","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';\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\n// import 'cropperjs/dist/cropper.css';\nconst cropperStyles = `\n/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:11.623Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n}\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 0.75);\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: 0.5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n}\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n}\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: 0.75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center::before,\n.cropper-center::after {\n background-color: #eee;\n content: ' ';\n display: block;\n position: absolute;\n}\n\n.cropper-center::before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n}\n\n.cropper-center::after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n}\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n}\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n}\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: 0.75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n}\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n}\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n}\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n}\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n}\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n}\n\n@media (min-width: 768px) {\n .cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n}\n\n@media (min-width: 1200px) {\n .cropper-point.point-se {\n height: 5px;\n opacity: 0.75;\n width: 5px;\n }\n}\n\n.cropper-point.point-se::before {\n background-color: #39f;\n bottom: -50%;\n content: ' ';\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n}\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n`;\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 if (!window.document.getElementById('cropper-style-json-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'cropper-style-json-component');\n style.innerHTML = cropperStyles;\n window.document.head.appendChild(style);\n }\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('ra_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('ra_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('ra_Drop file here') :\n t('ra_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('ra_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('ra_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 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('ra_Save')}</MenuItem>\n <MenuItem onClick={() => this.setState({ anchorEl: null, cropHandler: false })}>{t('ra_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.object,\n t: PropTypes.func,\n};\n\nexport default withStyles(styles)(UploadImage);\n"],"mappings":"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"}
|