@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,18 +1,38 @@
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"] = exports.EXTENSIONS = void 0;
9
11
 
10
- var _react = _interopRequireDefault(require("react"));
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
21
 
12
- var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles"));
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _react = _interopRequireWildcard(require("react"));
27
+
28
+ var _styles = require("@mui/styles");
29
+
30
+ var _withWidth = _interopRequireDefault(require("./withWidth"));
13
31
 
14
32
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
33
 
34
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
35
+
16
36
  var _Button = _interopRequireDefault(require("@mui/material/Button"));
17
37
 
18
38
  var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
@@ -23,7 +43,7 @@ var _DialogContent = _interopRequireDefault(require("@mui/material/DialogContent
23
43
 
24
44
  var _DialogTitle = _interopRequireDefault(require("@mui/material/DialogTitle"));
25
45
 
26
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
46
+ var _material = require("@mui/material");
27
47
 
28
48
  var _no_icon = _interopRequireDefault(require("../assets/no_icon.svg"));
29
49
 
@@ -31,49 +51,27 @@ var _Utils = _interopRequireDefault(require("./Utils"));
31
51
 
32
52
  var _fa = require("react-icons/fa");
33
53
 
34
- var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
35
-
36
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
37
-
38
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
54
+ var _Brightness = _interopRequireDefault(require("@mui/icons-material/Brightness6"));
39
55
 
40
- 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); } }
41
-
42
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
43
-
44
- 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); }
56
+ var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
45
57
 
46
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
58
+ var _Save = _interopRequireDefault(require("@mui/icons-material/Save"));
47
59
 
48
- 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); }; }
60
+ 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); }
49
61
 
50
- 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); }
62
+ 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; }
51
63
 
52
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
64
+ 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); }; }
53
65
 
54
66
  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; } }
55
67
 
56
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
57
-
58
- 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); }
59
-
60
- // FIXME checkout https://mui.com/components/use-media-query/#migrating-from-withwidth
61
- var withWidth = function withWidth() {
62
- return function (WrappedComponent) {
63
- return function (props) {
64
- return /*#__PURE__*/_react["default"].createElement(WrappedComponent, _extends({}, props, {
65
- width: "xs"
66
- }));
67
- };
68
- };
69
- };
70
-
71
68
  var styles = function styles(theme) {
72
69
  return {
73
70
  dialog: {
74
- height: '100%',
75
- maxHeight: '100%',
76
- maxWidth: '100%'
71
+ height: '100%'
72
+ },
73
+ paper: {
74
+ height: 'calc(100% - 64px)'
77
75
  },
78
76
  content: {
79
77
  textAlign: 'center'
@@ -86,15 +84,32 @@ var styles = function styles(theme) {
86
84
  width: 'auto',
87
85
  height: 'calc(100% - 5px)',
88
86
  objectFit: 'contain'
87
+ },
88
+ dialogTitle: {
89
+ justifyContent: 'space-between',
90
+ display: 'flex'
89
91
  }
90
92
  };
91
93
  };
92
94
 
93
95
  var EXTENSIONS = {
94
- images: ['png', 'jpg', 'svg', 'jpeg', 'jpg'],
95
- code: ['js', 'json'],
96
+ images: ['png', 'jpg', 'svg', 'jpeg', 'bmp'],
97
+ code: ['js', 'json', 'md'],
96
98
  txt: ['log', 'txt', 'html', 'css', 'xml']
97
99
  };
100
+ exports.EXTENSIONS = EXTENSIONS;
101
+
102
+ function bufferToBase64(buffer) {
103
+ var binary = '';
104
+ var bytes = new Uint8Array(buffer);
105
+ var len = bytes.byteLength;
106
+
107
+ for (var i = 0; i < len && i < 50; i++) {
108
+ binary += String.fromCharCode(bytes[i]);
109
+ }
110
+
111
+ return window.btoa(binary);
112
+ }
98
113
  /**
99
114
  * @typedef {object} FileViewerProps
100
115
  * @property {string} [key] The key to identify this component.
@@ -107,10 +122,9 @@ var EXTENSIONS = {
107
122
  * @extends {React.Component<FileViewerProps>}
108
123
  */
109
124
 
110
- exports.EXTENSIONS = EXTENSIONS;
111
125
 
112
- var FileViewer = /*#__PURE__*/function (_React$Component) {
113
- _inherits(FileViewer, _React$Component);
126
+ var FileViewer = /*#__PURE__*/function (_Component) {
127
+ (0, _inherits2["default"])(FileViewer, _Component);
114
128
 
115
129
  var _super = _createSuper(FileViewer);
116
130
 
@@ -120,66 +134,169 @@ var FileViewer = /*#__PURE__*/function (_React$Component) {
120
134
  function FileViewer(props) {
121
135
  var _this;
122
136
 
123
- _classCallCheck(this, FileViewer);
124
-
137
+ (0, _classCallCheck2["default"])(this, FileViewer);
125
138
  _this = _super.call(this, props);
126
- _this.ext = _Utils["default"].getFileExtension(_this.props.href);
139
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onFileChanged", function (id, fileName, size) {
140
+ if (!_this.state.changed) {
141
+ _this.timeout && clearTimeout(_this.timeout);
142
+ _this.timeout = setTimeout(function () {
143
+ _this.timeout = null;
144
+
145
+ if (size === null) {
146
+ window.alert('Show file was deleted!');
147
+ } else if (_this.state.text !== null || _this.state.code !== null) {
148
+ _this.readFile();
149
+ } else {
150
+ _this.setState({
151
+ forceUpdate: Date.now()
152
+ });
153
+ }
154
+ }, 300);
155
+ }
156
+ });
157
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "writeFile64", function () {
158
+ var parts = _this.props.href.split('/');
159
+
160
+ var data = _this.state.editingValue;
161
+ parts.splice(0, 2);
162
+ var adapter = parts[0];
163
+ var name = parts.splice(1).join('/');
164
+
165
+ _this.props.socket.writeFile64(adapter, name, Buffer.from(data).toString('base64')).then(function (_) {
166
+ return _this.props.onClose();
167
+ })["catch"](function (e) {
168
+ return window.alert('Cannot write file: ' + e);
169
+ });
170
+ });
171
+
172
+ var ext = _Utils["default"].getFileExtension(_this.props.href);
173
+
127
174
  _this.state = {
128
175
  text: null,
129
176
  code: null,
130
- copyPossible: EXTENSIONS.code.includes(_this.ext) || EXTENSIONS.txt.includes(_this.ext)
177
+ ext: ext,
178
+ editing: !!_this.props.formatEditFile || false,
179
+ editingValue: null,
180
+ copyPossible: EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext),
181
+ forceUpdate: Date.now(),
182
+ changed: false
131
183
  };
184
+ return _this;
185
+ }
132
186
 
133
- if (_this.state.copyPossible) {
134
- fetch(_this.props.href).then(function (response) {
135
- return response.text();
136
- }).then(function (data) {
137
- if (EXTENSIONS.txt.includes(_this.ext)) {
138
- _this.setState({
139
- text: data
140
- });
141
- } else if (EXTENSIONS.code.includes(_this.ext)) {
142
- _this.setState({
143
- code: data
144
- });
145
- }
146
- });
187
+ (0, _createClass2["default"])(FileViewer, [{
188
+ key: "readFile",
189
+ value: function readFile() {
190
+ var _this2 = this;
191
+
192
+ if (this.props.href) {
193
+ var parts = this.props.href.split('/');
194
+ parts.splice(0, 2);
195
+ var adapter = parts[0];
196
+ var name = parts.splice(1).join('/');
197
+ this.props.socket.readFile(adapter, name).then(function (data) {
198
+ if (data.file !== undefined) {
199
+ data = data.file;
200
+ }
201
+
202
+ var newState = {
203
+ copyPossible: _this2.state.copyPossible
204
+ }; // try to detect valid extension
205
+
206
+ if (data.type === 'Buffer') {
207
+ var ext = AdminUtils.detectMimeType(bufferToBase64(data.data));
208
+
209
+ if (ext) {
210
+ newState.ext = ext;
211
+ newState.copyPossible = EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext);
212
+ }
213
+ }
214
+
215
+ if (newState.copyPossible) {
216
+ if (EXTENSIONS.txt.includes(_this2.state.ext)) {
217
+ newState.text = data;
218
+ newState.editingValue = data;
219
+ } else if (EXTENSIONS.code.includes(_this2.state.ext)) {
220
+ newState.code = data;
221
+ newState.editingValue = data;
222
+ }
223
+ }
224
+
225
+ _this2.setState(newState);
226
+ })["catch"](function (e) {
227
+ return window.alert('Cannot read file: ' + e);
228
+ });
229
+ }
230
+ }
231
+ }, {
232
+ key: "componentDidMount",
233
+ value: function componentDidMount() {
234
+ this.readFile();
235
+ var parts = this.props.href.split('/');
236
+ parts.splice(0, 2);
237
+ var adapter = parts[0];
238
+ var name = parts.splice(1).join('/');
239
+ this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);
240
+ }
241
+ }, {
242
+ key: "componentWillUnmount",
243
+ value: function componentWillUnmount() {
244
+ this.timeout && clearTimeout(this.timeout);
245
+ var parts = this.props.href.split('/');
246
+ parts.splice(0, 2);
247
+ var adapter = parts[0];
248
+ var name = parts.splice(1).join('/');
249
+ this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);
147
250
  }
251
+ }, {
252
+ key: "getEditFile",
253
+ value: function getEditFile(ext) {
254
+ switch (ext) {
255
+ case 'json':
256
+ return 'json';
148
257
 
149
- return _this;
150
- }
258
+ case 'js':
259
+ return 'javascript';
260
+
261
+ case 'html':
262
+ return 'html';
263
+
264
+ case 'txt':
265
+ return 'html';
151
266
 
152
- _createClass(FileViewer, [{
267
+ default:
268
+ return 'json';
269
+ }
270
+ }
271
+ }, {
153
272
  key: "getContent",
154
273
  value: function getContent() {
155
- if (EXTENSIONS.images.includes(this.ext)) {
274
+ var _this3 = this;
275
+
276
+ if (EXTENSIONS.images.includes(this.state.ext)) {
156
277
  return /*#__PURE__*/_react["default"].createElement("img", {
157
278
  onError: function onError(e) {
158
279
  e.target.onerror = null;
159
280
  e.target.src = _no_icon["default"];
160
281
  },
161
- className: this.props.classes.img,
162
- src: this.props.href,
282
+ className: _Utils["default"].clsx(this.props.classes.img, this.props.getClassBackgroundImage()),
283
+ src: this.props.href + '?ts=' + this.state.forceUpdate,
163
284
  alt: this.props.href
164
285
  });
165
- } else if (this.state.code !== null) {
166
- return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
167
- variant: "standard",
168
- className: this.props.classes.textarea,
169
- multiline: true,
170
- value: this.state.code,
171
- InputProps: {
172
- readOnly: true
173
- }
174
- });
175
- } else if (this.state.text !== null) {
286
+ } else if (this.state.code !== null || this.state.text !== null || this.state.editing) {
176
287
  return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
177
288
  variant: "standard",
178
289
  className: this.props.classes.textarea,
179
- value: this.state.code,
180
290
  multiline: true,
291
+ value: this.state.editingValue || this.state.code || this.state.text,
292
+ onChange: function onChange(newValue) {
293
+ return _this3.setState({
294
+ editingValue: newValue,
295
+ changed: true
296
+ });
297
+ },
181
298
  InputProps: {
182
- readOnly: true
299
+ readOnly: !this.state.editing
183
300
  }
184
301
  });
185
302
  }
@@ -187,50 +304,67 @@ var FileViewer = /*#__PURE__*/function (_React$Component) {
187
304
  }, {
188
305
  key: "render",
189
306
  value: function render() {
190
- var _this2 = this;
307
+ var _this4 = this;
191
308
 
192
309
  return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
193
- className: this.props.classes.dialog,
310
+ classes: {
311
+ scrollPaper: this.props.classes.dialog,
312
+ paper: this.props.classes.paper
313
+ },
314
+ scroll: "paper",
194
315
  open: !!this.props.href,
195
316
  onClose: function onClose() {
196
- return _this2.props.onClose();
317
+ return _this4.props.onClose();
197
318
  },
198
319
  fullWidth: true,
199
- fullScreen: this.props.fullScreen !== undefined ? this.props.fullScreen : true,
320
+ maxWidth: "xl",
200
321
  "aria-labelledby": "form-dialog-title"
322
+ }, /*#__PURE__*/_react["default"].createElement("div", {
323
+ className: this.props.classes.dialogTitle
201
324
  }, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
202
325
  id: "form-dialog-title"
203
- }, this.props.t('ra_View: %s', this.props.href)), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
326
+ }, this.props.t(this.state.editing ? 'Edit' : 'View') + ': ' + this.props.href), EXTENSIONS.images.includes(this.state.ext) && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
327
+ size: "large",
328
+ color: 'inherit',
329
+ onClick: this.props.setStateBackgroundImage
330
+ }, /*#__PURE__*/_react["default"].createElement(_Brightness["default"], null)))), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
204
331
  className: this.props.classes.content
205
332
  }, this.getContent()), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, this.state.copyPossible ? /*#__PURE__*/_react["default"].createElement(_Button["default"], {
206
333
  color: "grey",
207
334
  onClick: function onClick(e) {
208
- return _Utils["default"].copyToClipboard(_this2.state.text || _this2.state.code, e);
209
- }
210
- }, /*#__PURE__*/_react["default"].createElement(_fa.FaCopy, null), this.props.t('ra_Copy content')) : null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
335
+ return _Utils["default"].copyToClipboard(_this4.state.text || _this4.state.code, e);
336
+ },
337
+ startIcon: /*#__PURE__*/_react["default"].createElement(_fa.FaCopy, null)
338
+ }, this.props.t('Copy content')) : null, this.state.editing ? /*#__PURE__*/_react["default"].createElement(_Button["default"], {
339
+ color: "grey",
340
+ disabled: this.state.editingValue === this.state.code || this.state.editingValue === this.state.text,
341
+ variant: "contained",
342
+ onClick: this.writeFile64,
343
+ startIcon: /*#__PURE__*/_react["default"].createElement(_Save["default"], null)
344
+ }, this.props.t('Save')) : null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
345
+ variant: "contained",
211
346
  onClick: function onClick() {
212
- return _this2.props.onClose();
347
+ return _this4.props.onClose();
213
348
  },
214
- color: "primary"
215
- }, /*#__PURE__*/_react["default"].createElement(_Close["default"], null), this.props.t('ra_Close'))));
349
+ color: "primary",
350
+ startIcon: /*#__PURE__*/_react["default"].createElement(_Close["default"], null)
351
+ }, this.props.t('Close'))));
216
352
  }
217
- }], [{
218
- key: "getDerivedStateFromProps",
219
- value: function getDerivedStateFromProps() {}
220
353
  }]);
221
-
222
354
  return FileViewer;
223
- }(_react["default"].Component);
355
+ }(_react.Component);
224
356
 
225
357
  FileViewer.propTypes = {
226
358
  t: _propTypes["default"].func,
359
+ lang: _propTypes["default"].string,
360
+ expertMode: _propTypes["default"].bool,
227
361
  onClose: _propTypes["default"].func,
228
362
  href: _propTypes["default"].string.isRequired,
229
- fullScreen: _propTypes["default"].bool
363
+ supportSubscribes: _propTypes["default"].bool
230
364
  };
231
365
  /** @type {typeof FileViewer} */
232
366
 
233
- var _export = withWidth()((0, _withStyles["default"])(styles)(FileViewer));
367
+ var _export = (0, _withWidth["default"])()((0, _styles.withStyles)(styles)(FileViewer));
234
368
 
235
369
  var _default = _export;
236
370
  exports["default"] = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"FileViewer.js","names":["withWidth","WrappedComponent","props","styles","theme","dialog","height","maxHeight","maxWidth","content","textAlign","textarea","width","img","objectFit","EXTENSIONS","images","code","txt","FileViewer","ext","Utils","getFileExtension","href","state","text","copyPossible","includes","fetch","then","response","data","setState","e","target","onerror","src","NoImage","classes","readOnly","onClose","fullScreen","undefined","t","getContent","copyToClipboard","React","Component","propTypes","PropTypes","func","string","isRequired","bool","_export"],"sources":["FileViewer.js"],"sourcesContent":["import React from 'react';\nimport withStyles from '@mui/styles/withStyles';\nimport PropTypes from 'prop-types';\n\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport TextField from '@mui/material/TextField';\n\nimport NoImage from '../assets/no_icon.svg';\nimport Utils from './Utils';\n\n// Icons\nimport {FaCopy as CopyIcon} from 'react-icons/fa';\nimport CloseIcon from '@mui/icons-material/Close';\n\n// FIXME checkout https://mui.com/components/use-media-query/#migrating-from-withwidth\nconst withWidth = () => WrappedComponent => props => <WrappedComponent {...props} width=\"xs\" />;\n\nconst styles = theme => ({\n dialog: {\n height: '100%',\n maxHeight: '100%',\n maxWidth: '100%',\n },\n content: {\n textAlign: 'center',\n },\n textarea: {\n width: '100%',\n height: '100%',\n },\n img: {\n width: 'auto',\n height: 'calc(100% - 5px)',\n objectFit: 'contain',\n }\n});\n\nexport const EXTENSIONS = {\n images: ['png', 'jpg', 'svg', 'jpeg', 'jpg'],\n code: ['js', 'json'],\n txt: ['log', 'txt', 'html', 'css', 'xml'],\n};\n\n/**\n * @typedef {object} FileViewerProps\n * @property {string} [key] The key to identify this component.\n * @property {import('../types').Translator} t Translation function\n * @property {ioBroker.Languages} [lang] The selected language.\n * @property {boolean} [expertMode] Is expert mode enabled? (default: false)\n * @property {() => void} onClose Callback when the viewer is closed.\n * @property {string} href The URL to the file to be displayed.\n *\n * @extends {React.Component<FileViewerProps>}\n */\nclass FileViewer extends React.Component {\n /**\n * @param {Readonly<FileViewerProps>} props\n */\n constructor(props) {\n super(props);\n\n this.ext = Utils.getFileExtension(this.props.href);\n\n this.state = {\n text: null,\n code: null,\n copyPossible: EXTENSIONS.code.includes(this.ext) || EXTENSIONS.txt.includes(this.ext),\n };\n\n if (this.state.copyPossible) {\n fetch(this.props.href)\n .then(response => response.text())\n .then(data => {\n if (EXTENSIONS.txt.includes(this.ext)) {\n this.setState({ text: data });\n } else if (EXTENSIONS.code.includes(this.ext)) {\n this.setState({ code: data });\n }\n });\n }\n }\n\n static getDerivedStateFromProps() {\n\n }\n\n getContent() {\n if (EXTENSIONS.images.includes(this.ext)) {\n return <img\n onError={ e => {\n e.target.onerror = null;\n e.target.src = NoImage;\n }}\n className={ this.props.classes.img }\n src={ this.props.href }\n alt={ this.props.href }\n />;\n } else if (this.state.code !== null) {\n return <TextField\n variant=\"standard\"\n className={ this.props.classes.textarea }\n multiline\n value={ this.state.code }\n InputProps={{\n readOnly: true,\n }}\n />;\n } else if (this.state.text !== null) {\n return <TextField\n variant=\"standard\"\n className={ this.props.classes.textarea }\n value={ this.state.code }\n multiline\n InputProps={{\n readOnly: true,\n }}\n />;\n }\n }\n\n render() {\n return <Dialog\n className={ this.props.classes.dialog }\n open={ !!this.props.href }\n onClose={ () => this.props.onClose() }\n fullWidth\n fullScreen={this.props.fullScreen !== undefined ? this.props.fullScreen : true}\n aria-labelledby=\"form-dialog-title\"\n >\n <DialogTitle id=\"form-dialog-title\">{ this.props.t('ra_View: %s', this.props.href) }</DialogTitle>\n <DialogContent className={ this.props.classes.content }>\n { this.getContent() }\n </DialogContent>\n <DialogActions>\n { this.state.copyPossible ? <Button color=\"grey\" onClick={e => Utils.copyToClipboard(this.state.text || this.state.code, e) } >\n <CopyIcon />\n { this.props.t('ra_Copy content') }\n </Button> : null }\n\n <Button onClick={() => this.props.onClose()} color=\"primary\">\n <CloseIcon />\n { this.props.t('ra_Close') }\n </Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nFileViewer.propTypes = {\n t: PropTypes.func,\n\n onClose: PropTypes.func,\n href: PropTypes.string.isRequired,\n fullScreen: PropTypes.bool,\n};\n\n/** @type {typeof FileViewer} */\nconst _export = withWidth()(withStyles(styles)(FileViewer));\nexport default _export;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FileViewer.js","names":["styles","theme","dialog","height","paper","content","textAlign","textarea","width","img","objectFit","dialogTitle","justifyContent","display","EXTENSIONS","images","code","txt","bufferToBase64","buffer","binary","bytes","Uint8Array","len","byteLength","i","String","fromCharCode","window","btoa","FileViewer","props","id","fileName","size","state","changed","timeout","clearTimeout","setTimeout","alert","text","readFile","setState","forceUpdate","Date","now","parts","href","split","data","editingValue","splice","adapter","name","join","socket","writeFile64","Buffer","from","toString","then","_","onClose","e","ext","Utils","getFileExtension","editing","formatEditFile","copyPossible","includes","file","undefined","newState","type","AdminUtils","detectMimeType","supportSubscribes","subscribeFiles","onFileChanged","target","onerror","src","NoImage","clsx","classes","getClassBackgroundImage","newValue","readOnly","scrollPaper","t","setStateBackgroundImage","getContent","copyToClipboard","Component","propTypes","PropTypes","func","lang","string","expertMode","bool","isRequired","_export","withWidth","withStyles"],"sources":["FileViewer.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport withWidth from './withWidth';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@mui/material/TextField';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { IconButton } from '@mui/material';\n\nimport NoImage from '../assets/no_icon.svg';\nimport Utils from './Utils';\n\n// Icons\nimport { FaCopy as CopyIcon } from 'react-icons/fa';\nimport Brightness5Icon from '@mui/icons-material/Brightness6';\nimport CloseIcon from '@mui/icons-material/Close';\nimport SaveIcon from '@mui/icons-material/Save';\n\nconst styles = theme => ({\n dialog: {\n height: '100%',\n },\n paper: {\n height: 'calc(100% - 64px)',\n },\n content: {\n textAlign: 'center',\n },\n textarea: {\n width: '100%',\n height: '100%',\n },\n img: {\n width: 'auto',\n height: 'calc(100% - 5px)',\n objectFit: 'contain',\n },\n dialogTitle: {\n justifyContent: 'space-between',\n display: 'flex'\n }\n});\n\nexport const EXTENSIONS = {\n images: ['png', 'jpg', 'svg', 'jpeg', 'bmp'],\n code: ['js', 'json', 'md'],\n txt: ['log', 'txt', 'html', 'css', 'xml'],\n};\n\nfunction bufferToBase64(buffer) {\n let binary = '';\n let bytes = new Uint8Array(buffer);\n let len = bytes.byteLength;\n for (let i = 0; i < len && i < 50; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\n/**\n * @typedef {object} FileViewerProps\n * @property {string} [key] The key to identify this component.\n * @property {import('../types').Translator} t Translation function\n * @property {ioBroker.Languages} [lang] The selected language.\n * @property {boolean} [expertMode] Is expert mode enabled? (default: false)\n * @property {() => void} onClose Callback when the viewer is closed.\n * @property {string} href The URL to the file to be displayed.\n *\n * @extends {React.Component<FileViewerProps>}\n */\nclass FileViewer extends Component {\n /**\n * @param {Readonly<FileViewerProps>} props\n */\n constructor(props) {\n super(props);\n const ext = Utils.getFileExtension(this.props.href);\n\n this.state = {\n text: null,\n code: null,\n ext,\n editing: !!this.props.formatEditFile || false,\n editingValue: null,\n copyPossible: EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext),\n forceUpdate: Date.now(),\n changed: false,\n };\n }\n\n readFile() {\n if (this.props.href) {\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.socket.readFile(adapter, name)\n .then(data => {\n if (data.file !== undefined) {\n data = data.file;\n }\n\n const newState = {copyPossible: this.state.copyPossible};\n // try to detect valid extension\n if (data.type === 'Buffer') {\n const ext = AdminUtils.detectMimeType(bufferToBase64(data.data));\n if (ext) {\n newState.ext = ext;\n newState.copyPossible = EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext);\n }\n }\n\n if (newState.copyPossible) {\n if (EXTENSIONS.txt.includes(this.state.ext)) {\n newState.text = data;\n newState.editingValue = data;\n } else if (EXTENSIONS.code.includes(this.state.ext)) {\n newState.code = data;\n newState.editingValue = data;\n }\n }\n\n this.setState(newState);\n })\n .catch(e => window.alert('Cannot read file: ' + e));\n }\n }\n\n componentDidMount() {\n this.readFile();\n\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n componentWillUnmount() {\n this.timeout && clearTimeout(this.timeout);\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n onFileChanged = (id, fileName, size) => {\n if (!this.state.changed) {\n this.timeout && clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.timeout = null;\n if (size === null) {\n window.alert('Show file was deleted!');\n } else if (this.state.text !== null || this.state.code !== null) {\n this.readFile();\n } else {\n this.setState({ forceUpdate: Date.now() });\n }\n }, 300);\n }\n };\n\n writeFile64 = () => {\n const parts = this.props.href.split('/');\n const data = this.state.editingValue;\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.socket.writeFile64(adapter, name, Buffer.from(data).toString('base64'))\n .then(_ => this.props.onClose())\n .catch(e => window.alert('Cannot write file: ' + e));\n }\n\n getEditFile(ext) {\n switch (ext) {\n case 'json':\n return 'json';\n case 'js':\n return 'javascript';\n case 'html':\n return 'html';\n case 'txt':\n return 'html';\n default:\n return 'json';\n }\n }\n\n getContent() {\n if (EXTENSIONS.images.includes(this.state.ext)) {\n return <img\n onError={e => {\n e.target.onerror = null;\n e.target.src = NoImage;\n }}\n className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())}\n src={this.props.href + '?ts=' + this.state.forceUpdate}\n alt={this.props.href}\n />;\n } else if (this.state.code !== null || this.state.text !== null || this.state.editing) {\n return <TextField\n variant=\"standard\"\n className={ this.props.classes.textarea }\n multiline\n value={ this.state.editingValue || this.state.code || this.state.text }\n onChange={newValue => this.setState({ editingValue: newValue, changed: true })}\n InputProps={{ readOnly: !this.state.editing,}}\n />;\n }\n }\n\n render() {\n return <Dialog\n classes={{ scrollPaper: this.props.classes.dialog, paper: this.props.classes.paper }}\n scroll=\"paper\"\n open={!!this.props.href}\n onClose={() => this.props.onClose()}\n fullWidth={true}\n maxWidth=\"xl\"\n aria-labelledby=\"form-dialog-title\"\n >\n <div className={this.props.classes.dialogTitle}>\n <DialogTitle id=\"form-dialog-title\">{this.props.t(this.state.editing ? 'Edit' : 'View') + ': ' + this.props.href}</DialogTitle>\n {EXTENSIONS.images.includes(this.state.ext) && <div>\n <IconButton size=\"large\"\n color={'inherit'}\n onClick={this.props.setStateBackgroundImage}\n >\n <Brightness5Icon />\n </IconButton>\n </div>\n }\n </div>\n <DialogContent className={this.props.classes.content}>\n {this.getContent()}\n </DialogContent>\n <DialogActions>\n {this.state.copyPossible ?\n <Button\n color=\"grey\"\n onClick={e => Utils.copyToClipboard(this.state.text || this.state.code, e)}\n startIcon={<CopyIcon />}\n >\n {this.props.t('Copy content')}\n </Button> : null}\n {this.state.editing ?\n <Button\n color=\"grey\"\n disabled={this.state.editingValue === this.state.code || this.state.editingValue === this.state.text}\n variant=\"contained\"\n onClick={this.writeFile64}\n startIcon={<SaveIcon />}\n >\n {this.props.t('Save')}\n </Button> : null}\n <Button\n variant=\"contained\"\n onClick={() => this.props.onClose()}\n color=\"primary\"\n startIcon={<CloseIcon />}\n >\n {this.props.t('Close')}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nFileViewer.propTypes = {\n t: PropTypes.func,\n lang: PropTypes.string,\n expertMode: PropTypes.bool,\n onClose: PropTypes.func,\n href: PropTypes.string.isRequired,\n supportSubscribes: PropTypes.bool,\n};\n\n/** @type {typeof FileViewer} */\nconst _export = withWidth()(withStyles(styles)(FileViewer));\nexport default _export;\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
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
@@ -9,6 +9,16 @@ exports["default"] = void 0;
9
9
  exports.getSelectIdIcon = getSelectIdIcon;
10
10
  exports.getSystemIcon = getSystemIcon;
11
11
 
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
12
22
  var _react = _interopRequireDefault(require("react"));
13
23
 
14
24
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -35,28 +45,10 @@ var _IconAlias = _interopRequireDefault(require("../icons/IconAlias"));
35
45
 
36
46
  var _Utils = _interopRequireDefault(require("./Utils"));
37
47
 
38
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
39
-
40
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
41
-
42
- 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); } }
43
-
44
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
45
-
46
- 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); }
47
-
48
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
49
-
50
- 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); }; }
51
-
52
- 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); }
53
-
54
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
48
+ 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); }; }
55
49
 
56
50
  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; } }
57
51
 
58
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
59
-
60
52
  function getSystemIcon(obj) {
61
53
  var icon;
62
54
  var id = obj === null || obj === void 0 ? void 0 : obj._id;
@@ -162,17 +154,16 @@ function getSelectIdIcon(obj, imagePrefix) {
162
154
  }
163
155
 
164
156
  var Icon = /*#__PURE__*/function (_React$Component) {
165
- _inherits(Icon, _React$Component);
157
+ (0, _inherits2["default"])(Icon, _React$Component);
166
158
 
167
159
  var _super = _createSuper(Icon);
168
160
 
169
161
  function Icon() {
170
- _classCallCheck(this, Icon);
171
-
162
+ (0, _classCallCheck2["default"])(this, Icon);
172
163
  return _super.apply(this, arguments);
173
164
  }
174
165
 
175
- _createClass(Icon, [{
166
+ (0, _createClass2["default"])(Icon, [{
176
167
  key: "render",
177
168
  value: function render() {
178
169
  if (this.props.src) {
@@ -216,7 +207,6 @@ var Icon = /*#__PURE__*/function (_React$Component) {
216
207
  }
217
208
  }
218
209
  }]);
219
-
220
210
  return Icon;
221
211
  }(_react["default"].Component);
222
212