@iobroker/adapter-react-v5 2.1.7 → 2.1.11
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/404.js +17 -25
- package/Components/404.js.map +1 -1
- package/Components/ColorPicker.js +25 -35
- package/Components/ColorPicker.js.map +1 -1
- package/Components/ComplexCron.js +29 -37
- package/Components/ComplexCron.js.map +1 -1
- package/Components/FileBrowser.js +281 -276
- package/Components/FileBrowser.js.map +1 -1
- package/Components/FileViewer.js +230 -96
- package/Components/FileViewer.js.map +1 -1
- package/Components/Icon.js +15 -25
- package/Components/Icon.js.map +1 -1
- package/Components/IconPicker.js +6 -6
- package/Components/IconPicker.js.map +1 -1
- package/Components/IconSelector.js +25 -31
- package/Components/IconSelector.js.map +1 -1
- package/Components/Image.js +15 -25
- package/Components/Image.js.map +1 -1
- package/Components/Loader.js +14 -24
- package/Components/Loader.js.map +1 -1
- package/Components/Loaders/PT.js +13 -23
- package/Components/Loaders/PT.js.map +1 -1
- package/Components/Loaders/Vendor.js +14 -24
- package/Components/Loaders/Vendor.js.map +1 -1
- package/Components/Logo.js +15 -25
- package/Components/Logo.js.map +1 -1
- package/Components/MDUtils.js +14 -11
- package/Components/MDUtils.js.map +1 -1
- package/Components/ObjectBrowser.js +127 -210
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/Router.js +13 -21
- package/Components/Router.js.map +1 -1
- package/Components/SaveCloseButtons.js +15 -25
- package/Components/SaveCloseButtons.js.map +1 -1
- package/Components/Schedule.js +23 -37
- package/Components/Schedule.js.map +1 -1
- package/Components/SelectWithIcon.js +17 -25
- package/Components/SelectWithIcon.js.map +1 -1
- package/Components/SimpleCron/cronText.js +2 -2
- package/Components/SimpleCron/cronText.js.map +1 -1
- package/Components/SimpleCron/index.js +24 -34
- package/Components/SimpleCron/index.js.map +1 -1
- package/Components/TabContainer.js +18 -28
- package/Components/TabContainer.js.map +1 -1
- package/Components/TabContent.js +17 -27
- package/Components/TabContent.js.map +1 -1
- package/Components/TabHeader.js +13 -23
- package/Components/TabHeader.js.map +1 -1
- package/Components/TextWithIcon.js +5 -5
- package/Components/TextWithIcon.js.map +1 -1
- package/Components/ToggleThemeMenu.js +2 -2
- package/Components/ToggleThemeMenu.js.map +1 -1
- package/Components/TreeTable.js +21 -42
- package/Components/TreeTable.js.map +1 -1
- package/Components/Utils.js +56 -42
- package/Components/Utils.js.map +1 -1
- package/Components/withWidth.js +42 -0
- package/Components/withWidth.js.map +1 -0
- package/Connection.js +15 -22
- package/Connection.js.map +1 -1
- package/Dialogs/ComplexCron.js +15 -25
- package/Dialogs/ComplexCron.js.map +1 -1
- package/Dialogs/Confirm.js +15 -25
- package/Dialogs/Confirm.js.map +1 -1
- package/Dialogs/Cron.js +19 -27
- package/Dialogs/Cron.js.map +1 -1
- package/Dialogs/Error.js +15 -25
- package/Dialogs/Error.js.map +1 -1
- package/Dialogs/Message.js +15 -25
- package/Dialogs/Message.js.map +1 -1
- package/Dialogs/SelectID.js +19 -27
- package/Dialogs/SelectID.js.map +1 -1
- package/Dialogs/SimpleCron.js +15 -25
- package/Dialogs/SimpleCron.js.map +1 -1
- package/Dialogs/TextInput.js +18 -28
- package/Dialogs/TextInput.js.map +1 -1
- package/GenericApp.js +37 -49
- package/GenericApp.js.map +1 -1
- package/README.md +12 -1
- package/Theme.js +2 -2
- package/Theme.js.map +1 -1
- package/i18n.js +10 -14
- package/i18n.js.map +1 -1
- package/icons/IconAdapter.js +2 -2
- package/icons/IconAdapter.js.map +1 -1
- package/icons/IconAlias.js +2 -2
- package/icons/IconAlias.js.map +1 -1
- package/icons/IconChannel.js +2 -2
- package/icons/IconChannel.js.map +1 -1
- package/icons/IconClearFilter.js +2 -2
- package/icons/IconClearFilter.js.map +1 -1
- package/icons/IconClosed.js +2 -2
- package/icons/IconClosed.js.map +1 -1
- package/icons/IconCopy.js +2 -2
- package/icons/IconCopy.js.map +1 -1
- package/icons/IconDevice.js +2 -2
- package/icons/IconDevice.js.map +1 -1
- package/icons/IconDocument.js +2 -2
- package/icons/IconDocument.js.map +1 -1
- package/icons/IconExpert.js +2 -2
- package/icons/IconExpert.js.map +1 -1
- package/icons/IconFx.js +2 -2
- package/icons/IconFx.js.map +1 -1
- package/icons/IconInstance.js +2 -2
- package/icons/IconInstance.js.map +1 -1
- package/icons/IconLogout.js +2 -2
- package/icons/IconLogout.js.map +1 -1
- package/icons/IconOpen.js +2 -2
- package/icons/IconOpen.js.map +1 -1
- package/icons/IconState.js +6 -6
- package/icons/IconState.js.map +1 -1
- package/package.json +10 -10
package/Components/Icon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.js","names":["getSystemIcon","obj","icon","id","_id","startsWith","endsWith","type","getSelectIdIcon","imagePrefix","src","common","cIcon","includes","instance","name","split","Icon","props","length","title","undefined","Object","assign","height","marginTop","styleUTF8","style","Utils","clsx","className","width","React","Component","propTypes","color","PropTypes","string","oneOfType","object","isRequired"],"sources":["Icon.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport SVG from 'react-inlinesvg';\n\nimport IconSystem from '@mui/icons-material/SettingsApplications';\nimport IconPhoto from '@mui/icons-material/Photo';\nimport IconGroup from '@mui/icons-material/SupervisedUserCircle';\nimport IconUser from '@mui/icons-material/PersonOutlined';\nimport IconHost from '@mui/icons-material/Router';\nimport IconConnection from '@mui/icons-material/Wifi';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconMeta from '@mui/icons-material/Description';\nimport IconAlias from '../icons/IconAlias';\n\nimport Utils from './Utils';\n\nexport function getSystemIcon(obj) {\n let icon;\n const id = obj?._id;\n\n if (!id) {\n return null;\n }\n\n // system or design have special icons\n if (id.startsWith('_design/') || (id === 'system')) {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (obj?.type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n }\n\n return icon || null;\n}\n\nexport function getSelectIdIcon(obj, imagePrefix) {\n imagePrefix = imagePrefix || '.';//http://localhost:8081';\n let src = '';\n const common = obj?.common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (obj.type === 'instance' || obj.type === 'adapter') {\n src = imagePrefix + '/adapter/' + common.name + '/' + cIcon;\n } else if (obj._id && obj._id.startsWith('system.adapter.')) {\n instance = obj._id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += '/' + cIcon;\n }\n src = imagePrefix + '/adapter/' + instance[2];\n } else {\n instance = obj._id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += '/' + cIcon;\n }\n src = imagePrefix + '/adapter/' + instance[0];\n }\n } else {\n return null;\n }\n } else {\n // base 64 image\n src = cIcon;\n }\n }\n }\n\n return src || null;\n}\n\nclass Icon extends React.Component {\n render() {\n if (this.props.src) {\n if (typeof this.props.src === 'string') {\n if (this.props.src.length < 3) {\n return <span title={this.props.title || undefined} style={Object.assign({height: 27, marginTop: -8}, this.props.styleUTF8 || this.props.style)} className={ Utils.clsx(this.props.className, 'iconOwn') }>{this.props.src}</span>; // utf-8 char\n } else {\n if (this.props.src.startsWith('data:image/svg')) {\n return <SVG title={this.props.title || undefined} src={this.props.src} className={ Utils.clsx(this.props.className, 'iconOwn') } width={this.props.style?.width || 28} height={this.props.style?.height || this.props.style?.width || 28} style={this.props.style || {}}/>;\n } else {\n return <img title={this.props.title || undefined} style={this.props.style || {}} className={ Utils.clsx(this.props.className, 'iconOwn') } src={ this.props.src } alt=\"\" />;\n }\n }\n } else {\n return this.props.src;\n }\n } else {\n return null;\n }\n }\n}\n\nIcon.propTypes = {\n color: PropTypes.string,\n title: PropTypes.string,\n src: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n className: PropTypes.string,\n imagePrefix: PropTypes.string,\n style: PropTypes.object,\n styleUTF8: PropTypes.object,\n};\n\nexport default Icon;"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Icon.js","names":["getSystemIcon","obj","icon","id","_id","startsWith","endsWith","type","getSelectIdIcon","imagePrefix","src","common","cIcon","includes","instance","name","split","Icon","props","length","title","undefined","Object","assign","height","marginTop","styleUTF8","style","Utils","clsx","className","width","React","Component","propTypes","color","PropTypes","string","oneOfType","object","isRequired"],"sources":["Icon.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport SVG from 'react-inlinesvg';\n\nimport IconSystem from '@mui/icons-material/SettingsApplications';\nimport IconPhoto from '@mui/icons-material/Photo';\nimport IconGroup from '@mui/icons-material/SupervisedUserCircle';\nimport IconUser from '@mui/icons-material/PersonOutlined';\nimport IconHost from '@mui/icons-material/Router';\nimport IconConnection from '@mui/icons-material/Wifi';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconMeta from '@mui/icons-material/Description';\nimport IconAlias from '../icons/IconAlias';\n\nimport Utils from './Utils';\n\nexport function getSystemIcon(obj) {\n let icon;\n const id = obj?._id;\n\n if (!id) {\n return null;\n }\n\n // system or design have special icons\n if (id.startsWith('_design/') || (id === 'system')) {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (obj?.type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n }\n\n return icon || null;\n}\n\nexport function getSelectIdIcon(obj, imagePrefix) {\n imagePrefix = imagePrefix || '.';//http://localhost:8081';\n let src = '';\n const common = obj?.common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (obj.type === 'instance' || obj.type === 'adapter') {\n src = imagePrefix + '/adapter/' + common.name + '/' + cIcon;\n } else if (obj._id && obj._id.startsWith('system.adapter.')) {\n instance = obj._id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += '/' + cIcon;\n }\n src = imagePrefix + '/adapter/' + instance[2];\n } else {\n instance = obj._id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += '/' + cIcon;\n }\n src = imagePrefix + '/adapter/' + instance[0];\n }\n } else {\n return null;\n }\n } else {\n // base 64 image\n src = cIcon;\n }\n }\n }\n\n return src || null;\n}\n\nclass Icon extends React.Component {\n render() {\n if (this.props.src) {\n if (typeof this.props.src === 'string') {\n if (this.props.src.length < 3) {\n return <span title={this.props.title || undefined} style={Object.assign({height: 27, marginTop: -8}, this.props.styleUTF8 || this.props.style)} className={ Utils.clsx(this.props.className, 'iconOwn') }>{this.props.src}</span>; // utf-8 char\n } else {\n if (this.props.src.startsWith('data:image/svg')) {\n return <SVG title={this.props.title || undefined} src={this.props.src} className={ Utils.clsx(this.props.className, 'iconOwn') } width={this.props.style?.width || 28} height={this.props.style?.height || this.props.style?.width || 28} style={this.props.style || {}}/>;\n } else {\n return <img title={this.props.title || undefined} style={this.props.style || {}} className={ Utils.clsx(this.props.className, 'iconOwn') } src={ this.props.src } alt=\"\" />;\n }\n }\n } else {\n return this.props.src;\n }\n } else {\n return null;\n }\n }\n}\n\nIcon.propTypes = {\n color: PropTypes.string,\n title: PropTypes.string,\n src: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n className: PropTypes.string,\n imagePrefix: PropTypes.string,\n style: PropTypes.object,\n styleUTF8: PropTypes.object,\n};\n\nexport default Icon;"],"mappings":"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"}
|
package/Components/IconPicker.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports["default"] = void 0;
|
|
9
11
|
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
10
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
15
|
|
|
12
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -31,14 +35,10 @@ var _i18n = _interopRequireDefault(require("../i18n"));
|
|
|
31
35
|
|
|
32
36
|
var _Utils = _interopRequireDefault(require("./Utils"));
|
|
33
37
|
|
|
34
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
35
|
-
|
|
36
38
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
39
|
|
|
38
40
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
39
41
|
|
|
40
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
41
|
-
|
|
42
42
|
/**
|
|
43
43
|
* @typedef {object} IconPickerProps
|
|
44
44
|
* @property {string} [value] The value.
|
|
@@ -154,7 +154,7 @@ var IconPicker = function IconPicker(props) {
|
|
|
154
154
|
},
|
|
155
155
|
t: _i18n["default"].t,
|
|
156
156
|
lang: _i18n["default"].getLanguage()
|
|
157
|
-
}), !props.disabled && /*#__PURE__*/_react["default"].createElement("div",
|
|
157
|
+
}), !props.disabled && /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, getRootProps(), {
|
|
158
158
|
className: classes.dragField,
|
|
159
159
|
style: isDragActive ? {
|
|
160
160
|
backgroundColor: 'rgba(0, 255, 0, 0.1)'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconPicker.js","names":["IconPicker","props","IconCustom","icon","useStyles","theme","formContainer","display","justifyContent","alignItems","formControl","padding","flexGrow","divContainer","width","height","whiteSpace","lineHeight","marginRight","dragField","textAlign","minHeight","border","borderRadius","formIcon","margin","opacity","text","verticalAlign","classes","onDrop","acceptedFiles","reader","FileReader","addEventListener","onChange","result","readAsDataURL","getRootProps","getInputProps","isDragActive","root","customClasses","label","value","Utils","clsx","previewClassName","disabled","I18n","t","icons","onlyRooms","onlyDevices","base64","getLanguage","backgroundColor","cursor","propTypes","PropTypes","string","object","any","bool","func","isRequired","array"],"sources":["IconPicker.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useDropzone} from 'react-dropzone';\nimport makeStyles from '@mui/styles/makeStyles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport IconButton from '@mui/material/IconButton';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport IconSelector from './IconSelector';\nimport Icon from './Icon';\nimport I18n from '../i18n';\nimport Utils from './Utils';\n\n/**\n * @typedef {object} IconPickerProps\n * @property {string} [value] The value.\n * @property {string} [label] The label.\n * @property {boolean} [disabled] Set to true to disable the icon picker.\n * @property {(icon: string) => void} onChange The icon change callback.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {React.CSSProperties} [style] Additional styling for this component.\n * @property {string} [className] The CSS class name.\n *\n * @extends {React.Component<IconPickerProps>}\n */\nlet IconPicker = function (props) {\n let IconCustom = props.icon;\n\n const useStyles = makeStyles(theme => ({\n formContainer : {\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'center'\n },\n formControl : {\n display: 'flex',\n padding: 24,\n flexGrow: 1000\n },\n divContainer: {\n width: 32 + 24,\n height: 32,\n whiteSpace: 'nowrap',\n lineHeight: '32px',\n marginRight: 8\n },\n dragField: {\n textAlign: 'center',\n display: 'table',\n minHeight: 90,\n width: 'calc(100% - 60px)',\n border: '2px dashed #777',\n borderRadius: 10,\n padding: 4,\n },\n formIcon : {\n margin: 10,\n opacity: 0.6\n },\n text: {\n display: 'table-cell',\n verticalAlign: 'middle',\n }\n }));\n\n const classes = useStyles();\n\n const onDrop = useCallback(acceptedFiles => {\n const reader = new FileReader();\n\n reader.addEventListener('load', () =>\n props.onChange(reader.result), false);\n\n if (acceptedFiles[0]) {\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const {getRootProps, getInputProps, isDragActive} = useDropzone({onDrop});\n\n return <div className={classes.formContainer}>\n {IconCustom ? <IconCustom className={ classes.formIcon }/> : null}\n <FormControl variant=\"standard\" className={classes.formControl} style={{padding: 3}}>\n <InputLabel shrink classes={{root: props.customClasses?.label}}>\n { props.label }\n </InputLabel>\n <div className={ classes.formContainer }>\n {props.value ?\n <div className={ classes.divContainer }>\n <Icon alt=\"\" className={Utils.clsx(props.previewClassName, props.customClasses?.icon)} src={props.value}/>\n {!props.disabled && <IconButton\n style={{verticalAlign: 'top'}}\n title={I18n.t('ra_Clear icon')}\n size=\"small\"\n onClick={() => props.onChange('')}\n >\n <ClearIcon/>\n </IconButton>}\n </div>\n :\n (!props.disabled && <IconSelector\n icons={props.icons}\n onlyRooms={props.onlyRooms}\n onlyDevices={props.onlyDevices}\n onSelect={base64 => props.onChange(base64)}\n t={I18n.t}\n lang={I18n.getLanguage()}\n />)\n }\n\n {!props.disabled && <div\n {...getRootProps()}\n className={classes.dragField}\n style={isDragActive ? {backgroundColor: 'rgba(0, 255, 0, 0.1)'} : {cursor: 'pointer'}}\n >\n <input {...getInputProps()} />\n {\n isDragActive ?\n <span className={classes.text}>{I18n.t('ra_Drop the files here...')}</span> :\n <span className={classes.text}>{I18n.t(`ra_Drag 'n' drop some files here, or click to select files`)}</span>\n }\n </div>}\n </div>\n </FormControl>\n </div>;\n};\n\nIconPicker.propTypes = {\n previewClassName: PropTypes.string,\n icon: PropTypes.object,\n customClasses: PropTypes.object,\n label: PropTypes.string,\n value: PropTypes.any,\n disabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n};\n\n/** @type {typeof IconPicker} */\nexport default IconPicker;"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IconPicker.js","names":["IconPicker","props","IconCustom","icon","useStyles","makeStyles","theme","formContainer","display","justifyContent","alignItems","formControl","padding","flexGrow","divContainer","width","height","whiteSpace","lineHeight","marginRight","dragField","textAlign","minHeight","border","borderRadius","formIcon","margin","opacity","text","verticalAlign","classes","onDrop","useCallback","acceptedFiles","reader","FileReader","addEventListener","onChange","result","readAsDataURL","useDropzone","getRootProps","getInputProps","isDragActive","root","customClasses","label","value","Utils","clsx","previewClassName","disabled","I18n","t","icons","onlyRooms","onlyDevices","base64","getLanguage","backgroundColor","cursor","propTypes","PropTypes","string","object","any","bool","func","isRequired","array"],"sources":["IconPicker.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useDropzone} from 'react-dropzone';\nimport makeStyles from '@mui/styles/makeStyles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport IconButton from '@mui/material/IconButton';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport IconSelector from './IconSelector';\nimport Icon from './Icon';\nimport I18n from '../i18n';\nimport Utils from './Utils';\n\n/**\n * @typedef {object} IconPickerProps\n * @property {string} [value] The value.\n * @property {string} [label] The label.\n * @property {boolean} [disabled] Set to true to disable the icon picker.\n * @property {(icon: string) => void} onChange The icon change callback.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {React.CSSProperties} [style] Additional styling for this component.\n * @property {string} [className] The CSS class name.\n *\n * @extends {React.Component<IconPickerProps>}\n */\nlet IconPicker = function (props) {\n let IconCustom = props.icon;\n\n const useStyles = makeStyles(theme => ({\n formContainer : {\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'center'\n },\n formControl : {\n display: 'flex',\n padding: 24,\n flexGrow: 1000\n },\n divContainer: {\n width: 32 + 24,\n height: 32,\n whiteSpace: 'nowrap',\n lineHeight: '32px',\n marginRight: 8\n },\n dragField: {\n textAlign: 'center',\n display: 'table',\n minHeight: 90,\n width: 'calc(100% - 60px)',\n border: '2px dashed #777',\n borderRadius: 10,\n padding: 4,\n },\n formIcon : {\n margin: 10,\n opacity: 0.6\n },\n text: {\n display: 'table-cell',\n verticalAlign: 'middle',\n }\n }));\n\n const classes = useStyles();\n\n const onDrop = useCallback(acceptedFiles => {\n const reader = new FileReader();\n\n reader.addEventListener('load', () =>\n props.onChange(reader.result), false);\n\n if (acceptedFiles[0]) {\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const {getRootProps, getInputProps, isDragActive} = useDropzone({onDrop});\n\n return <div className={classes.formContainer}>\n {IconCustom ? <IconCustom className={ classes.formIcon }/> : null}\n <FormControl variant=\"standard\" className={classes.formControl} style={{padding: 3}}>\n <InputLabel shrink classes={{root: props.customClasses?.label}}>\n { props.label }\n </InputLabel>\n <div className={ classes.formContainer }>\n {props.value ?\n <div className={ classes.divContainer }>\n <Icon alt=\"\" className={Utils.clsx(props.previewClassName, props.customClasses?.icon)} src={props.value}/>\n {!props.disabled && <IconButton\n style={{verticalAlign: 'top'}}\n title={I18n.t('ra_Clear icon')}\n size=\"small\"\n onClick={() => props.onChange('')}\n >\n <ClearIcon/>\n </IconButton>}\n </div>\n :\n (!props.disabled && <IconSelector\n icons={props.icons}\n onlyRooms={props.onlyRooms}\n onlyDevices={props.onlyDevices}\n onSelect={base64 => props.onChange(base64)}\n t={I18n.t}\n lang={I18n.getLanguage()}\n />)\n }\n\n {!props.disabled && <div\n {...getRootProps()}\n className={classes.dragField}\n style={isDragActive ? {backgroundColor: 'rgba(0, 255, 0, 0.1)'} : {cursor: 'pointer'}}\n >\n <input {...getInputProps()} />\n {\n isDragActive ?\n <span className={classes.text}>{I18n.t('ra_Drop the files here...')}</span> :\n <span className={classes.text}>{I18n.t(`ra_Drag 'n' drop some files here, or click to select files`)}</span>\n }\n </div>}\n </div>\n </FormControl>\n </div>;\n};\n\nIconPicker.propTypes = {\n previewClassName: PropTypes.string,\n icon: PropTypes.object,\n customClasses: PropTypes.object,\n label: PropTypes.string,\n value: PropTypes.any,\n disabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n};\n\n/** @type {typeof IconPicker} */\nexport default IconPicker;"],"mappings":"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"}
|
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
3
7
|
Object.defineProperty(exports, "__esModule", {
|
|
4
8
|
value: true
|
|
5
9
|
});
|
|
6
10
|
exports["default"] = void 0;
|
|
7
11
|
|
|
12
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
18
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
|
|
20
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
|
|
22
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
+
|
|
8
24
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
25
|
|
|
10
26
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -39,44 +55,23 @@ var _list = _interopRequireDefault(require("../assets/devices/list.json"));
|
|
|
39
55
|
|
|
40
56
|
var _list2 = _interopRequireDefault(require("../assets/rooms/list.json"));
|
|
41
57
|
|
|
42
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
43
|
-
|
|
44
58
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
45
59
|
|
|
46
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
47
|
-
|
|
48
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
60
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
49
61
|
|
|
50
|
-
function
|
|
51
|
-
|
|
52
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
53
|
-
|
|
54
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
55
|
-
|
|
56
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
57
|
-
|
|
58
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
59
|
-
|
|
60
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
61
|
-
|
|
62
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
63
|
-
|
|
64
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
62
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
65
63
|
|
|
66
64
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
67
65
|
|
|
68
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
69
|
-
|
|
70
66
|
var IconSelector = /*#__PURE__*/function (_Component) {
|
|
71
|
-
|
|
67
|
+
(0, _inherits2["default"])(IconSelector, _Component);
|
|
72
68
|
|
|
73
69
|
var _super = _createSuper(IconSelector);
|
|
74
70
|
|
|
75
71
|
function IconSelector(props) {
|
|
76
72
|
var _this;
|
|
77
73
|
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
(0, _classCallCheck2["default"])(this, IconSelector);
|
|
80
75
|
_this = _super.call(this, props);
|
|
81
76
|
_this.state = {
|
|
82
77
|
opened: false,
|
|
@@ -87,7 +82,7 @@ var IconSelector = /*#__PURE__*/function (_Component) {
|
|
|
87
82
|
return _this;
|
|
88
83
|
}
|
|
89
84
|
|
|
90
|
-
|
|
85
|
+
(0, _createClass2["default"])(IconSelector, [{
|
|
91
86
|
key: "loadAllIcons",
|
|
92
87
|
value: function loadAllIcons() {
|
|
93
88
|
var _this2 = this;
|
|
@@ -108,7 +103,7 @@ var IconSelector = /*#__PURE__*/function (_Component) {
|
|
|
108
103
|
|
|
109
104
|
if (templates) {
|
|
110
105
|
templates.forEach(function (item) {
|
|
111
|
-
if (item.name &&
|
|
106
|
+
if (item.name && (0, _typeof2["default"])(item.name) === 'object') {
|
|
112
107
|
item.name = item.name[_this2.props.lang] || item.name.en || item._id;
|
|
113
108
|
}
|
|
114
109
|
|
|
@@ -140,7 +135,7 @@ var IconSelector = /*#__PURE__*/function (_Component) {
|
|
|
140
135
|
if (templates) {
|
|
141
136
|
var offset = promises.length;
|
|
142
137
|
templates && templates.forEach(function (item) {
|
|
143
|
-
if (item.name &&
|
|
138
|
+
if (item.name && (0, _typeof2["default"])(item.name) === 'object') {
|
|
144
139
|
item.name = item.name[_this2.props.lang] || item.name.en || item._id;
|
|
145
140
|
}
|
|
146
141
|
|
|
@@ -181,9 +176,9 @@ var IconSelector = /*#__PURE__*/function (_Component) {
|
|
|
181
176
|
var _promises = _this2.props.icons.map(function (item, i) {
|
|
182
177
|
var href;
|
|
183
178
|
|
|
184
|
-
if (
|
|
179
|
+
if ((0, _typeof2["default"])(item) === 'object') {
|
|
185
180
|
href = item.icon || item.src || item.href;
|
|
186
|
-
names[i] =
|
|
181
|
+
names[i] = (0, _typeof2["default"])(item.name) === 'object' ? item.name[_this2.props.lang] || item.name.en || item._id : item.name;
|
|
187
182
|
|
|
188
183
|
if (!names[i]) {
|
|
189
184
|
var parts = href.split('.');
|
|
@@ -318,7 +313,6 @@ var IconSelector = /*#__PURE__*/function (_Component) {
|
|
|
318
313
|
}, this.props.t('ra_Close')))) : null);
|
|
319
314
|
}
|
|
320
315
|
}]);
|
|
321
|
-
|
|
322
316
|
return IconSelector;
|
|
323
317
|
}(_react.Component);
|
|
324
318
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconSelector.js","names":["IconSelector","props","state","opened","names","filter","icons","loading","setState","templates","onlyRooms","onlyDevices","rooms","promises","forEach","item","name","lang","en","_id","i","find","_item","_i","icon","template","image","require","e","Promise","resolve","push","Utils","getSvg","then","devices","offset","length","all","isAnyName","map","href","src","parts","split","pop","startsWith","t","loadAllIcons","minWidth","marginRight","marginLeft","target","value","toLowerCase","endAdornment","undefined","width","textAlign","includes","onSelect","onChange","height","borderRadius","Component","propTypes","PropTypes","array","bool","func","isRequired","string"],"sources":["IconSelector.js"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport Button from '@mui/material/Button';\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport CloseIcon from '@mui/icons-material/Close';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport Icon from './Icon';\nimport Utils from './Utils';\n\nimport devices from '../assets/devices/list.json';\nimport rooms from '../assets/rooms/list.json';\n\nclass IconSelector extends Component {\n constructor(props) {\n super(props);\n this.state = {\n opened: false,\n names: [],\n filter: '',\n icons: props.icons || null,\n };\n }\n\n loadAllIcons() {\n if (this.state.loading || this.state.icons) {\n return;\n }\n this.setState({loading: true}, () => {\n const icons = [];\n const names = [];\n\n if (!this.props.icons) {\n let templates = this.props.onlyRooms || (!this.props.onlyRooms && !this.props.onlyDevices) ? rooms : null;\n\n const promises = [];\n if (templates) {\n templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/rooms/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i] = icon));\n });\n }\n\n templates = this.props.onlyDevices || (!this.props.onlyRooms && !this.props.onlyDevices) ? devices : null;\n if (templates) {\n const offset = promises.length;\n templates && templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/devices/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i + offset] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i + offset] = icon));\n });\n }\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n } else {\n const promises = this.props.icons.map((item, i) => {\n let href;\n if (typeof item === 'object') {\n href = item.icon || item.src || item.href;\n names[i] = typeof item.name === 'object' ? item.name[this.props.lang] || item.name.en || item._id : item.name;\n if (!names[i]) {\n const parts = href.split('.');\n parts.pop();\n names[i] = parts[parts.length - 1];\n }\n } else {\n href = item;\n }\n\n if (href) {\n if (href.startsWith('data:')) {\n icons[i] = href;\n return Promise.resolve();\n } else {\n return Utils.getSvg(href)\n .then(icon =>\n icons[i] = icon);\n }\n } else {\n return Promise.resolve();\n }\n });\n\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n }\n });\n }\n\n render() {\n if (this.state.loading) {\n return <CircularProgress />;\n }\n\n return <>\n <Button\n color=\"grey\"\n variant=\"outlined\"\n title={this.props.t('ra_Select predefined icon')}\n onClick={() => this.setState({opened: true}, () => this.loadAllIcons())} style={{minWidth: 40, marginRight: 8}}\n >...</Button>\n {this.state.opened ? <Dialog onClose={() => this.setState({opened: false})} open={true}>\n <DialogTitle>{this.props.t('ra_Select predefined icon')}\n {this.state.isAnyName ? <TextField\n variant=\"standard\"\n margin=\"dense\"\n style={{marginLeft: 20}}\n value={this.state.filter}\n onChange={e => this.setState({filter: e.target.value.toLowerCase()})}\n placeholder={this.props.t('ra_Filter')}\n InputProps={{\n endAdornment: this.state.filter\n ?\n <IconButton\n size=\"small\"\n onClick={() => this.setState({filter: ''})}>\n <ClearIcon />\n </IconButton>\n :\n undefined,\n }}\n /> : null}\n </DialogTitle>\n <DialogContent>\n <div style={{width: '100%', textAlign: 'center'}}>\n {this.state.icons && this.state.icons.map((icon, i) => {\n if (!this.state.filter || (this.state.names[i] && this.state.names[i].toLowerCase().includes(this.state.filter))) {\n return <Tooltip title={this.state.names[i] || ''} key={i}>\n <IconButton\n onClick={() =>\n this.setState({opened: false}, () =>\n (this.props.onSelect || this.props.onChange)(icon))\n }\n size=\"large\"\n >\n <Icon src={icon} alt={i} style={{width: 32, height: 32, borderRadius: 5}}/>\n </IconButton>\n </Tooltip>;\n } else {\n return null;\n }\n })}\n </div>\n </DialogContent>\n <DialogActions>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => this.setState({opened: false})}\n startIcon={<CloseIcon />}\n >\n {this.props.t('ra_Close')}\n </Button>\n </DialogActions>\n </Dialog> : null}\n </>;\n }\n}\n\nIconSelector.propTypes = {\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n onSelect: PropTypes.func, // one of onSelect or onChange are required\n onChange: PropTypes.func,\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n};\n\n/** @type {typeof IconSelector} */\nexport default IconSelector;"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IconSelector.js","names":["IconSelector","props","state","opened","names","filter","icons","loading","setState","templates","onlyRooms","onlyDevices","rooms","promises","forEach","item","name","lang","en","_id","i","find","_item","_i","icon","template","image","require","e","Promise","resolve","push","Utils","getSvg","then","devices","offset","length","all","isAnyName","map","href","src","parts","split","pop","startsWith","t","loadAllIcons","minWidth","marginRight","marginLeft","target","value","toLowerCase","endAdornment","undefined","width","textAlign","includes","onSelect","onChange","height","borderRadius","Component","propTypes","PropTypes","array","bool","func","isRequired","string"],"sources":["IconSelector.js"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport Button from '@mui/material/Button';\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport CloseIcon from '@mui/icons-material/Close';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport Icon from './Icon';\nimport Utils from './Utils';\n\nimport devices from '../assets/devices/list.json';\nimport rooms from '../assets/rooms/list.json';\n\nclass IconSelector extends Component {\n constructor(props) {\n super(props);\n this.state = {\n opened: false,\n names: [],\n filter: '',\n icons: props.icons || null,\n };\n }\n\n loadAllIcons() {\n if (this.state.loading || this.state.icons) {\n return;\n }\n this.setState({loading: true}, () => {\n const icons = [];\n const names = [];\n\n if (!this.props.icons) {\n let templates = this.props.onlyRooms || (!this.props.onlyRooms && !this.props.onlyDevices) ? rooms : null;\n\n const promises = [];\n if (templates) {\n templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/rooms/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i] = icon));\n });\n }\n\n templates = this.props.onlyDevices || (!this.props.onlyRooms && !this.props.onlyDevices) ? devices : null;\n if (templates) {\n const offset = promises.length;\n templates && templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/devices/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i + offset] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i + offset] = icon));\n });\n }\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n } else {\n const promises = this.props.icons.map((item, i) => {\n let href;\n if (typeof item === 'object') {\n href = item.icon || item.src || item.href;\n names[i] = typeof item.name === 'object' ? item.name[this.props.lang] || item.name.en || item._id : item.name;\n if (!names[i]) {\n const parts = href.split('.');\n parts.pop();\n names[i] = parts[parts.length - 1];\n }\n } else {\n href = item;\n }\n\n if (href) {\n if (href.startsWith('data:')) {\n icons[i] = href;\n return Promise.resolve();\n } else {\n return Utils.getSvg(href)\n .then(icon =>\n icons[i] = icon);\n }\n } else {\n return Promise.resolve();\n }\n });\n\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n }\n });\n }\n\n render() {\n if (this.state.loading) {\n return <CircularProgress />;\n }\n\n return <>\n <Button\n color=\"grey\"\n variant=\"outlined\"\n title={this.props.t('ra_Select predefined icon')}\n onClick={() => this.setState({opened: true}, () => this.loadAllIcons())} style={{minWidth: 40, marginRight: 8}}\n >...</Button>\n {this.state.opened ? <Dialog onClose={() => this.setState({opened: false})} open={true}>\n <DialogTitle>{this.props.t('ra_Select predefined icon')}\n {this.state.isAnyName ? <TextField\n variant=\"standard\"\n margin=\"dense\"\n style={{marginLeft: 20}}\n value={this.state.filter}\n onChange={e => this.setState({filter: e.target.value.toLowerCase()})}\n placeholder={this.props.t('ra_Filter')}\n InputProps={{\n endAdornment: this.state.filter\n ?\n <IconButton\n size=\"small\"\n onClick={() => this.setState({filter: ''})}>\n <ClearIcon />\n </IconButton>\n :\n undefined,\n }}\n /> : null}\n </DialogTitle>\n <DialogContent>\n <div style={{width: '100%', textAlign: 'center'}}>\n {this.state.icons && this.state.icons.map((icon, i) => {\n if (!this.state.filter || (this.state.names[i] && this.state.names[i].toLowerCase().includes(this.state.filter))) {\n return <Tooltip title={this.state.names[i] || ''} key={i}>\n <IconButton\n onClick={() =>\n this.setState({opened: false}, () =>\n (this.props.onSelect || this.props.onChange)(icon))\n }\n size=\"large\"\n >\n <Icon src={icon} alt={i} style={{width: 32, height: 32, borderRadius: 5}}/>\n </IconButton>\n </Tooltip>;\n } else {\n return null;\n }\n })}\n </div>\n </DialogContent>\n <DialogActions>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => this.setState({opened: false})}\n startIcon={<CloseIcon />}\n >\n {this.props.t('ra_Close')}\n </Button>\n </DialogActions>\n </Dialog> : null}\n </>;\n }\n}\n\nIconSelector.propTypes = {\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n onSelect: PropTypes.func, // one of onSelect or onChange are required\n onChange: PropTypes.func,\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n};\n\n/** @type {typeof IconSelector} */\nexport default IconSelector;"],"mappings":"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"}
|
package/Components/Image.js
CHANGED
|
@@ -1,42 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
-
|
|
14
|
-
var _no_icon = _interopRequireDefault(require("../assets/no_icon.svg"));
|
|
15
|
-
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
17
11
|
|
|
18
|
-
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
19
13
|
|
|
20
|
-
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
21
15
|
|
|
22
|
-
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
23
17
|
|
|
24
|
-
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
25
19
|
|
|
26
|
-
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
27
21
|
|
|
28
|
-
|
|
22
|
+
var _react = _interopRequireDefault(require("react"));
|
|
29
23
|
|
|
30
|
-
|
|
24
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
25
|
|
|
32
|
-
|
|
26
|
+
var _no_icon = _interopRequireDefault(require("../assets/no_icon.svg"));
|
|
33
27
|
|
|
34
|
-
function
|
|
28
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
35
29
|
|
|
36
30
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
37
31
|
|
|
38
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
39
|
-
|
|
40
32
|
function getElementFromSource(src) {
|
|
41
33
|
var svgContainer = document.createElement('div');
|
|
42
34
|
svgContainer.innerHTML = src;
|
|
@@ -87,15 +79,14 @@ function serializeAttrs(map) {
|
|
|
87
79
|
|
|
88
80
|
|
|
89
81
|
var Image = /*#__PURE__*/function (_React$Component) {
|
|
90
|
-
|
|
82
|
+
(0, _inherits2["default"])(Image, _React$Component);
|
|
91
83
|
|
|
92
84
|
var _super = _createSuper(Image);
|
|
93
85
|
|
|
94
86
|
function Image(props) {
|
|
95
87
|
var _this;
|
|
96
88
|
|
|
97
|
-
|
|
98
|
-
|
|
89
|
+
(0, _classCallCheck2["default"])(this, Image);
|
|
99
90
|
_this = _super.call(this, props);
|
|
100
91
|
_this.state = {
|
|
101
92
|
svg: !!(_this.props.src && _this.props.src.startsWith('data:')),
|
|
@@ -109,7 +100,7 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
109
100
|
return _this;
|
|
110
101
|
}
|
|
111
102
|
|
|
112
|
-
|
|
103
|
+
(0, _createClass2["default"])(Image, [{
|
|
113
104
|
key: "getSvgFromData",
|
|
114
105
|
value: function getSvgFromData(src) {
|
|
115
106
|
var len = 'data:image/svg+xml;base64,';
|
|
@@ -126,7 +117,7 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
126
117
|
var inner = svg.innerHTML;
|
|
127
118
|
var svgProps = serializeAttrs(svg.attributes || []);
|
|
128
119
|
svg.remove();
|
|
129
|
-
return /*#__PURE__*/_react["default"].createElement("svg",
|
|
120
|
+
return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({
|
|
130
121
|
className: this.props.className,
|
|
131
122
|
style: this.state.color ? {
|
|
132
123
|
color: this.state.color
|
|
@@ -201,7 +192,6 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
201
192
|
return changed ? newState : null;
|
|
202
193
|
}
|
|
203
194
|
}]);
|
|
204
|
-
|
|
205
195
|
return Image;
|
|
206
196
|
}(_react["default"].Component);
|
|
207
197
|
|
package/Components/Image.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","names":["getElementFromSource","src","svgContainer","document","createElement","innerHTML","svg","firstElementChild","remove","removeChild","serializeAttrs","map","ret","prop","i","length","key","name","startsWith","replace","g","toUpperCase","value","Image","props","state","created","color","imgError","showError","getSvgFromData","len","substring","atob","inner","svgProps","attributes","className","__html","e","setTimeout","setState","IconNoIcon","imagePrefix","newState","changed","React","Component","propTypes","PropTypes","string","isRequired"],"sources":["Image.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport IconNoIcon from '../assets/no_icon.svg';\n\nfunction getElementFromSource(src) {\n const svgContainer = document.createElement('div');\n svgContainer.innerHTML = src;\n const svg = svgContainer.firstElementChild;\n if (svg.remove) {\n svg.remove();\n } else {\n svgContainer.removeChild(svg);\n }\n svgContainer.remove();\n return svg;\n}\n\nfunction serializeAttrs(map) {\n const ret = {};\n for (let prop, i = 0; i < map.length; i++) {\n const key = map[i].name;\n if (key === 'class') {\n prop = 'className';\n }\n else if (!key.startsWith('data-')) {\n prop = key.replace(/[-|:]([a-z])/g, g => g[1].toUpperCase());\n } else {\n prop = key;\n }\n\n ret[prop] = map[i].value;\n }\n return ret;\n}\n\n/**\n * @typedef {object} ImageProps\n * @property {string} [key] The key to identify this component.\n * @property {string} [color] The color.\n * @property {string} [src] The source of the image.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {string} [className] The CSS class name.\n * @property {boolean} [showError] Show image errors (or just show no image)?\n *\n * @extends {React.Component<ImageProps>}\n */\nclass Image extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n svg: !!(this.props.src && this.props.src.startsWith('data:')),\n created: true,\n color: this.props.color || '',\n src: this.props.src || '',\n imgError: false,\n showError: this.props.showError,\n };\n\n this.svg = this.state.svg ? this.getSvgFromData(this.state.src) : null;\n }\n\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n\n if (props && state && props.src !== state.src) {\n newState.src = props.src;\n newState.svg = props.src && props.src.startsWith('data:');\n newState.created = false;\n changed = true;\n }\n\n if (props && state && props.color !== state.color) {\n newState.color = props.color;\n newState.created = false;\n changed = true;\n }\n\n if (props && state && props.showError !== state.showError) {\n newState.showError = props.showError;\n changed = true;\n }\n\n return changed ? newState : null;\n }\n\n getSvgFromData(src) {\n const len = 'data:image/svg+xml;base64,';\n if (!src.startsWith(len)) {\n return null;\n }\n src = src.substring(len.length);\n try {\n src = atob(src);\n const svg = getElementFromSource(src);\n const inner = svg.innerHTML;\n const svgProps = serializeAttrs(svg.attributes || []);\n\n svg.remove();\n\n return <svg\n className={this.props.className}\n style={this.state.color ? {color: this.state.color} : {}}\n {...svgProps}\n dangerouslySetInnerHTML={{ __html: inner }}\n />;\n } catch (e) {\n\n }\n return null;\n }\n\n render() {\n if (this.state.svg) {\n if (!this.state.created) {\n setTimeout(() => {\n this.svg = this.getSvgFromData(this.state.src);\n this.setState({created: true});\n }, 50);\n }\n\n return this.svg;\n } else if (this.state.src) {\n return <img\n className={this.props.className}\n src={this.state.imgError ? IconNoIcon : (this.props.imagePrefix || '') + this.state.src || IconNoIcon}\n alt=\"\"\n onError={() => this.props.showError ? this.setState({imgError: true}) : this.setState({src: ''})}\n />;\n } else {\n return null;\n }\n }\n}\n\nImage.propTypes = {\n color: PropTypes.string,\n src: PropTypes.string.isRequired,\n className: PropTypes.string,\n imagePrefix: PropTypes.string,\n};\n\nexport default Image;"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Image.js","names":["getElementFromSource","src","svgContainer","document","createElement","innerHTML","svg","firstElementChild","remove","removeChild","serializeAttrs","map","ret","prop","i","length","key","name","startsWith","replace","g","toUpperCase","value","Image","props","state","created","color","imgError","showError","getSvgFromData","len","substring","atob","inner","svgProps","attributes","className","__html","e","setTimeout","setState","IconNoIcon","imagePrefix","newState","changed","React","Component","propTypes","PropTypes","string","isRequired"],"sources":["Image.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport IconNoIcon from '../assets/no_icon.svg';\n\nfunction getElementFromSource(src) {\n const svgContainer = document.createElement('div');\n svgContainer.innerHTML = src;\n const svg = svgContainer.firstElementChild;\n if (svg.remove) {\n svg.remove();\n } else {\n svgContainer.removeChild(svg);\n }\n svgContainer.remove();\n return svg;\n}\n\nfunction serializeAttrs(map) {\n const ret = {};\n for (let prop, i = 0; i < map.length; i++) {\n const key = map[i].name;\n if (key === 'class') {\n prop = 'className';\n }\n else if (!key.startsWith('data-')) {\n prop = key.replace(/[-|:]([a-z])/g, g => g[1].toUpperCase());\n } else {\n prop = key;\n }\n\n ret[prop] = map[i].value;\n }\n return ret;\n}\n\n/**\n * @typedef {object} ImageProps\n * @property {string} [key] The key to identify this component.\n * @property {string} [color] The color.\n * @property {string} [src] The source of the image.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {string} [className] The CSS class name.\n * @property {boolean} [showError] Show image errors (or just show no image)?\n *\n * @extends {React.Component<ImageProps>}\n */\nclass Image extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n svg: !!(this.props.src && this.props.src.startsWith('data:')),\n created: true,\n color: this.props.color || '',\n src: this.props.src || '',\n imgError: false,\n showError: this.props.showError,\n };\n\n this.svg = this.state.svg ? this.getSvgFromData(this.state.src) : null;\n }\n\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n\n if (props && state && props.src !== state.src) {\n newState.src = props.src;\n newState.svg = props.src && props.src.startsWith('data:');\n newState.created = false;\n changed = true;\n }\n\n if (props && state && props.color !== state.color) {\n newState.color = props.color;\n newState.created = false;\n changed = true;\n }\n\n if (props && state && props.showError !== state.showError) {\n newState.showError = props.showError;\n changed = true;\n }\n\n return changed ? newState : null;\n }\n\n getSvgFromData(src) {\n const len = 'data:image/svg+xml;base64,';\n if (!src.startsWith(len)) {\n return null;\n }\n src = src.substring(len.length);\n try {\n src = atob(src);\n const svg = getElementFromSource(src);\n const inner = svg.innerHTML;\n const svgProps = serializeAttrs(svg.attributes || []);\n\n svg.remove();\n\n return <svg\n className={this.props.className}\n style={this.state.color ? {color: this.state.color} : {}}\n {...svgProps}\n dangerouslySetInnerHTML={{ __html: inner }}\n />;\n } catch (e) {\n\n }\n return null;\n }\n\n render() {\n if (this.state.svg) {\n if (!this.state.created) {\n setTimeout(() => {\n this.svg = this.getSvgFromData(this.state.src);\n this.setState({created: true});\n }, 50);\n }\n\n return this.svg;\n } else if (this.state.src) {\n return <img\n className={this.props.className}\n src={this.state.imgError ? IconNoIcon : (this.props.imagePrefix || '') + this.state.src || IconNoIcon}\n alt=\"\"\n onError={() => this.props.showError ? this.setState({imgError: true}) : this.setState({src: ''})}\n />;\n } else {\n return null;\n }\n }\n}\n\nImage.propTypes = {\n color: PropTypes.string,\n src: PropTypes.string.isRequired,\n className: PropTypes.string,\n imagePrefix: PropTypes.string,\n};\n\nexport default Image;"],"mappings":"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"}
|