@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.
Files changed (112) hide show
  1. package/Components/404.js +17 -25
  2. package/Components/404.js.map +1 -1
  3. package/Components/ColorPicker.js +25 -35
  4. package/Components/ColorPicker.js.map +1 -1
  5. package/Components/ComplexCron.js +29 -37
  6. package/Components/ComplexCron.js.map +1 -1
  7. package/Components/FileBrowser.js +281 -276
  8. package/Components/FileBrowser.js.map +1 -1
  9. package/Components/FileViewer.js +230 -96
  10. package/Components/FileViewer.js.map +1 -1
  11. package/Components/Icon.js +15 -25
  12. package/Components/Icon.js.map +1 -1
  13. package/Components/IconPicker.js +6 -6
  14. package/Components/IconPicker.js.map +1 -1
  15. package/Components/IconSelector.js +25 -31
  16. package/Components/IconSelector.js.map +1 -1
  17. package/Components/Image.js +15 -25
  18. package/Components/Image.js.map +1 -1
  19. package/Components/Loader.js +14 -24
  20. package/Components/Loader.js.map +1 -1
  21. package/Components/Loaders/PT.js +13 -23
  22. package/Components/Loaders/PT.js.map +1 -1
  23. package/Components/Loaders/Vendor.js +14 -24
  24. package/Components/Loaders/Vendor.js.map +1 -1
  25. package/Components/Logo.js +15 -25
  26. package/Components/Logo.js.map +1 -1
  27. package/Components/MDUtils.js +14 -11
  28. package/Components/MDUtils.js.map +1 -1
  29. package/Components/ObjectBrowser.js +127 -210
  30. package/Components/ObjectBrowser.js.map +1 -1
  31. package/Components/Router.js +13 -21
  32. package/Components/Router.js.map +1 -1
  33. package/Components/SaveCloseButtons.js +15 -25
  34. package/Components/SaveCloseButtons.js.map +1 -1
  35. package/Components/Schedule.js +23 -37
  36. package/Components/Schedule.js.map +1 -1
  37. package/Components/SelectWithIcon.js +17 -25
  38. package/Components/SelectWithIcon.js.map +1 -1
  39. package/Components/SimpleCron/cronText.js +2 -2
  40. package/Components/SimpleCron/cronText.js.map +1 -1
  41. package/Components/SimpleCron/index.js +24 -34
  42. package/Components/SimpleCron/index.js.map +1 -1
  43. package/Components/TabContainer.js +18 -28
  44. package/Components/TabContainer.js.map +1 -1
  45. package/Components/TabContent.js +17 -27
  46. package/Components/TabContent.js.map +1 -1
  47. package/Components/TabHeader.js +13 -23
  48. package/Components/TabHeader.js.map +1 -1
  49. package/Components/TextWithIcon.js +5 -5
  50. package/Components/TextWithIcon.js.map +1 -1
  51. package/Components/ToggleThemeMenu.js +2 -2
  52. package/Components/ToggleThemeMenu.js.map +1 -1
  53. package/Components/TreeTable.js +21 -42
  54. package/Components/TreeTable.js.map +1 -1
  55. package/Components/Utils.js +56 -42
  56. package/Components/Utils.js.map +1 -1
  57. package/Components/withWidth.js +42 -0
  58. package/Components/withWidth.js.map +1 -0
  59. package/Connection.js +15 -22
  60. package/Connection.js.map +1 -1
  61. package/Dialogs/ComplexCron.js +15 -25
  62. package/Dialogs/ComplexCron.js.map +1 -1
  63. package/Dialogs/Confirm.js +15 -25
  64. package/Dialogs/Confirm.js.map +1 -1
  65. package/Dialogs/Cron.js +19 -27
  66. package/Dialogs/Cron.js.map +1 -1
  67. package/Dialogs/Error.js +15 -25
  68. package/Dialogs/Error.js.map +1 -1
  69. package/Dialogs/Message.js +15 -25
  70. package/Dialogs/Message.js.map +1 -1
  71. package/Dialogs/SelectID.js +19 -27
  72. package/Dialogs/SelectID.js.map +1 -1
  73. package/Dialogs/SimpleCron.js +15 -25
  74. package/Dialogs/SimpleCron.js.map +1 -1
  75. package/Dialogs/TextInput.js +18 -28
  76. package/Dialogs/TextInput.js.map +1 -1
  77. package/GenericApp.js +37 -49
  78. package/GenericApp.js.map +1 -1
  79. package/README.md +12 -1
  80. package/Theme.js +2 -2
  81. package/Theme.js.map +1 -1
  82. package/i18n.js +10 -14
  83. package/i18n.js.map +1 -1
  84. package/icons/IconAdapter.js +2 -2
  85. package/icons/IconAdapter.js.map +1 -1
  86. package/icons/IconAlias.js +2 -2
  87. package/icons/IconAlias.js.map +1 -1
  88. package/icons/IconChannel.js +2 -2
  89. package/icons/IconChannel.js.map +1 -1
  90. package/icons/IconClearFilter.js +2 -2
  91. package/icons/IconClearFilter.js.map +1 -1
  92. package/icons/IconClosed.js +2 -2
  93. package/icons/IconClosed.js.map +1 -1
  94. package/icons/IconCopy.js +2 -2
  95. package/icons/IconCopy.js.map +1 -1
  96. package/icons/IconDevice.js +2 -2
  97. package/icons/IconDevice.js.map +1 -1
  98. package/icons/IconDocument.js +2 -2
  99. package/icons/IconDocument.js.map +1 -1
  100. package/icons/IconExpert.js +2 -2
  101. package/icons/IconExpert.js.map +1 -1
  102. package/icons/IconFx.js +2 -2
  103. package/icons/IconFx.js.map +1 -1
  104. package/icons/IconInstance.js +2 -2
  105. package/icons/IconInstance.js.map +1 -1
  106. package/icons/IconLogout.js +2 -2
  107. package/icons/IconLogout.js.map +1 -1
  108. package/icons/IconOpen.js +2 -2
  109. package/icons/IconOpen.js.map +1 -1
  110. package/icons/IconState.js +6 -6
  111. package/icons/IconState.js.map +1 -1
  112. package/package.json +10 -10
@@ -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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"}
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
2
 
3
- 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); }
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", _extends({}, getRootProps(), {
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":"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"}
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 || _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; }
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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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
- _inherits(IconSelector, _Component);
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
- _classCallCheck(this, IconSelector);
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
- _createClass(IconSelector, [{
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 && _typeof(item.name) === 'object') {
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 && _typeof(item.name) === 'object') {
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 (_typeof(item) === 'object') {
179
+ if ((0, _typeof2["default"])(item) === 'object') {
185
180
  href = item.icon || item.src || item.href;
186
- names[i] = _typeof(item.name) === 'object' ? item.name[_this2.props.lang] || item.name.en || item._id : item.name;
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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"}
@@ -1,42 +1,34 @@
1
1
  "use strict";
2
2
 
3
- 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); }
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 _react = _interopRequireDefault(require("react"));
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
- 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); }
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
13
 
20
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
15
 
22
- 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); } }
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
17
 
24
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
19
 
26
- 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); }
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
21
 
28
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
22
+ var _react = _interopRequireDefault(require("react"));
29
23
 
30
- 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); }; }
24
+ var _propTypes = _interopRequireDefault(require("prop-types"));
31
25
 
32
- 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); }
26
+ var _no_icon = _interopRequireDefault(require("../assets/no_icon.svg"));
33
27
 
34
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
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
- _inherits(Image, _React$Component);
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
- _classCallCheck(this, Image);
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
- _createClass(Image, [{
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", _extends({
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
 
@@ -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":"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"}
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":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;AAEA,SAASA,oBAAT,CAA8BC,GAA9B,EAAmC;EAC/B,IAAMC,YAAY,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAArB;EACAF,YAAY,CAACG,SAAb,GAAyBJ,GAAzB;EACA,IAAMK,GAAG,GAAGJ,YAAY,CAACK,iBAAzB;;EACA,IAAID,GAAG,CAACE,MAAR,EAAgB;IACZF,GAAG,CAACE,MAAJ;EACH,CAFD,MAEO;IACHN,YAAY,CAACO,WAAb,CAAyBH,GAAzB;EACH;;EACDJ,YAAY,CAACM,MAAb;EACA,OAAOF,GAAP;AACH;;AAED,SAASI,cAAT,CAAwBC,GAAxB,EAA6B;EACzB,IAAMC,GAAG,GAAG,EAAZ;;EACA,KAAK,IAAIC,IAAJ,EAAUC,CAAC,GAAG,CAAnB,EAAsBA,CAAC,GAAGH,GAAG,CAACI,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;IACvC,IAAME,GAAG,GAAGL,GAAG,CAACG,CAAD,CAAH,CAAOG,IAAnB;;IACA,IAAID,GAAG,KAAK,OAAZ,EAAqB;MACjBH,IAAI,GAAG,WAAP;IACH,CAFD,MAGK,IAAI,CAACG,GAAG,CAACE,UAAJ,CAAe,OAAf,CAAL,EAA8B;MAC/BL,IAAI,GAAGG,GAAG,CAACG,OAAJ,CAAY,eAAZ,EAA6B,UAAAC,CAAC;QAAA,OAAIA,CAAC,CAAC,CAAD,CAAD,CAAKC,WAAL,EAAJ;MAAA,CAA9B,CAAP;IACH,CAFI,MAEE;MACHR,IAAI,GAAGG,GAAP;IACH;;IAEDJ,GAAG,CAACC,IAAD,CAAH,GAAYF,GAAG,CAACG,CAAD,CAAH,CAAOQ,KAAnB;EACH;;EACD,OAAOV,GAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMW,K;;;;;EACF,eAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACf,0BAAMA,KAAN;IACA,MAAKC,KAAL,GAAa;MACTnB,GAAG,EAAE,CAAC,EAAE,MAAKkB,KAAL,CAAWvB,GAAX,IAAkB,MAAKuB,KAAL,CAAWvB,GAAX,CAAeiB,UAAf,CAA0B,OAA1B,CAApB,CADG;MAETQ,OAAO,EAAE,IAFA;MAGTC,KAAK,EAAE,MAAKH,KAAL,CAAWG,KAAX,IAAoB,EAHlB;MAIT1B,GAAG,EAAE,MAAKuB,KAAL,CAAWvB,GAAX,IAAkB,EAJd;MAKT2B,QAAQ,EAAE,KALD;MAMTC,SAAS,EAAE,MAAKL,KAAL,CAAWK;IANb,CAAb;IASA,MAAKvB,GAAL,GAAW,MAAKmB,KAAL,CAAWnB,GAAX,GAAiB,MAAKwB,cAAL,CAAoB,MAAKL,KAAL,CAAWxB,GAA/B,CAAjB,GAAuD,IAAlE;IAXe;EAYlB;;;;WA2BD,wBAAeA,GAAf,EAAoB;MAChB,IAAM8B,GAAG,GAAG,4BAAZ;;MACA,IAAI,CAAC9B,GAAG,CAACiB,UAAJ,CAAea,GAAf,CAAL,EAA0B;QACtB,OAAO,IAAP;MACH;;MACD9B,GAAG,GAAGA,GAAG,CAAC+B,SAAJ,CAAcD,GAAG,CAAChB,MAAlB,CAAN;;MACA,IAAI;QACAd,GAAG,GAAGgC,IAAI,CAAChC,GAAD,CAAV;QACA,IAAMK,GAAG,GAAGN,oBAAoB,CAACC,GAAD,CAAhC;QACA,IAAMiC,KAAK,GAAG5B,GAAG,CAACD,SAAlB;QACA,IAAM8B,QAAQ,GAAGzB,cAAc,CAACJ,GAAG,CAAC8B,UAAJ,IAAkB,EAAnB,CAA/B;QAEA9B,GAAG,CAACE,MAAJ;QAEA,oBAAO;UACH,SAAS,EAAE,KAAKgB,KAAL,CAAWa,SADnB;UAEH,KAAK,EAAE,KAAKZ,KAAL,CAAWE,KAAX,GAAmB;YAACA,KAAK,EAAE,KAAKF,KAAL,CAAWE;UAAnB,CAAnB,GAA+C;QAFnD,GAGCQ,QAHD;UAIH,uBAAuB,EAAE;YAAEG,MAAM,EAAEJ;UAAV;QAJtB,GAAP;MAMH,CAdD,CAcE,OAAOK,CAAP,EAAU,CAEX;;MACD,OAAO,IAAP;IACH;;;WAED,kBAAS;MAAA;;MACL,IAAI,KAAKd,KAAL,CAAWnB,GAAf,EAAoB;QAChB,IAAI,CAAC,KAAKmB,KAAL,CAAWC,OAAhB,EAAyB;UACrBc,UAAU,CAAC,YAAM;YACb,MAAI,CAAClC,GAAL,GAAW,MAAI,CAACwB,cAAL,CAAoB,MAAI,CAACL,KAAL,CAAWxB,GAA/B,CAAX;;YACA,MAAI,CAACwC,QAAL,CAAc;cAACf,OAAO,EAAE;YAAV,CAAd;UACH,CAHS,EAGP,EAHO,CAAV;QAIH;;QAED,OAAO,KAAKpB,GAAZ;MACH,CATD,MASO,IAAI,KAAKmB,KAAL,CAAWxB,GAAf,EAAoB;QACvB,oBAAO;UACH,SAAS,EAAE,KAAKuB,KAAL,CAAWa,SADnB;UAEH,GAAG,EAAE,KAAKZ,KAAL,CAAWG,QAAX,GAAsBc,mBAAtB,GAAmC,CAAC,KAAKlB,KAAL,CAAWmB,WAAX,IAA0B,EAA3B,IAAiC,KAAKlB,KAAL,CAAWxB,GAA5C,IAAmDyC,mBAFxF;UAGH,GAAG,EAAC,EAHD;UAIH,OAAO,EAAE;YAAA,OAAM,MAAI,CAAClB,KAAL,CAAWK,SAAX,GAAuB,MAAI,CAACY,QAAL,CAAc;cAACb,QAAQ,EAAE;YAAX,CAAd,CAAvB,GAAyD,MAAI,CAACa,QAAL,CAAc;cAACxC,GAAG,EAAE;YAAN,CAAd,CAA/D;UAAA;QAJN,EAAP;MAMH,CAPM,MAOA;QACH,OAAO,IAAP;MACH;IACJ;;;WAvED,kCAAgCuB,KAAhC,EAAuCC,KAAvC,EAA8C;MAC1C,IAAMmB,QAAQ,GAAG,EAAjB;MACA,IAAIC,OAAO,GAAG,KAAd;;MAEA,IAAIrB,KAAK,IAAIC,KAAT,IAAkBD,KAAK,CAACvB,GAAN,KAAcwB,KAAK,CAACxB,GAA1C,EAA+C;QAC3C2C,QAAQ,CAAC3C,GAAT,GAAeuB,KAAK,CAACvB,GAArB;QACA2C,QAAQ,CAACtC,GAAT,GAAekB,KAAK,CAACvB,GAAN,IAAauB,KAAK,CAACvB,GAAN,CAAUiB,UAAV,CAAqB,OAArB,CAA5B;QACA0B,QAAQ,CAAClB,OAAT,GAAmB,KAAnB;QACAmB,OAAO,GAAG,IAAV;MACH;;MAED,IAAIrB,KAAK,IAAIC,KAAT,IAAkBD,KAAK,CAACG,KAAN,KAAgBF,KAAK,CAACE,KAA5C,EAAmD;QAC/CiB,QAAQ,CAACjB,KAAT,GAAiBH,KAAK,CAACG,KAAvB;QACAiB,QAAQ,CAAClB,OAAT,GAAmB,KAAnB;QACAmB,OAAO,GAAG,IAAV;MACH;;MAED,IAAIrB,KAAK,IAAIC,KAAT,IAAkBD,KAAK,CAACK,SAAN,KAAoBJ,KAAK,CAACI,SAAhD,EAA2D;QACvDe,QAAQ,CAACf,SAAT,GAAqBL,KAAK,CAACK,SAA3B;QACAgB,OAAO,GAAG,IAAV;MACH;;MAED,OAAOA,OAAO,GAAGD,QAAH,GAAc,IAA5B;IACH;;;EAtCeE,iBAAA,CAAMC,S;;AAyF1BxB,KAAK,CAACyB,SAAN,GAAkB;EACdrB,KAAK,EAAEsB,qBAAA,CAAUC,MADH;EAEdjD,GAAG,EAAEgD,qBAAA,CAAUC,MAAV,CAAiBC,UAFR;EAGdd,SAAS,EAAEY,qBAAA,CAAUC,MAHP;EAIdP,WAAW,EAAEM,qBAAA,CAAUC;AAJT,CAAlB;eAOe3B,K"}