@iobroker/adapter-react-v5 3.1.34 → 3.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Components/404.js +0 -23
- package/Components/404.js.map +1 -1
- package/Components/ColorPicker.js +6 -37
- package/Components/ColorPicker.js.map +1 -1
- package/Components/ComplexCron.js +10 -84
- package/Components/ComplexCron.js.map +1 -1
- package/Components/CustomModal.js +29 -54
- package/Components/CustomModal.js.map +1 -1
- package/Components/FileBrowser.js +15 -265
- package/Components/FileBrowser.js.map +1 -1
- package/Components/FileViewer.js +7 -68
- package/Components/FileViewer.js.map +1 -1
- package/Components/Icon.d.ts +1 -1
- package/Components/Icon.js +2 -42
- package/Components/Icon.js.map +1 -1
- package/Components/IconPicker.js +6 -28
- package/Components/IconPicker.js.map +1 -1
- package/Components/IconSelector.js +3 -55
- package/Components/IconSelector.js.map +1 -1
- package/Components/Image.js +1 -38
- package/Components/Image.js.map +1 -1
- package/Components/JsonConfigComponent/ChipInput.js +66 -197
- package/Components/JsonConfigComponent/ChipInput.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAlive.js +0 -31
- package/Components/JsonConfigComponent/ConfigAlive.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocomplete.js +6 -39
- package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +6 -52
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCRON.js +5 -39
- package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js +4 -42
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCheckbox.js +0 -28
- package/Components/JsonConfigComponent/ConfigCheckbox.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigChip.js +4 -33
- package/Components/JsonConfigComponent/ConfigChip.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigColor.js +0 -34
- package/Components/JsonConfigComponent/ConfigColor.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCoordinates.js +0 -33
- package/Components/JsonConfigComponent/ConfigCoordinates.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCustom.js +14 -73
- package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigDatePicker.js +0 -25
- package/Components/JsonConfigComponent/ConfigDatePicker.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFile.js +0 -46
- package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFileSelector.js +7 -126
- package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFunc.js +0 -34
- package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigGeneric.js +15 -110
- package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigIP.js +2 -35
- package/Components/JsonConfigComponent/ConfigIP.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigImageUpload.js +4 -44
- package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js +1 -59
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigJsonEditor.js +7 -40
- package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigLanguage.js +2 -42
- package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigNumber.js +2 -45
- package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigObjectId.js +6 -40
- package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPanel.js +7 -91
- package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPassword.js +0 -42
- package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPattern.js +0 -25
- package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigRoom.js +0 -34
- package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelect.js +4 -34
- package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js +11 -67
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js +8 -91
- package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSetState.js +0 -55
- package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSlider.js +0 -28
- package/Components/JsonConfigComponent/ConfigSlider.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticDivider.js +0 -21
- package/Components/JsonConfigComponent/ConfigStaticDivider.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticHeader.js +0 -24
- package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticImage.js +0 -23
- package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticText.js +0 -31
- package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTable.js +13 -105
- package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTabs.js +2 -35
- package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigText.js +0 -34
- package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTextSendTo.js +0 -37
- package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTimePicker.js +0 -25
- package/Components/JsonConfigComponent/ConfigTimePicker.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTopic.js +0 -29
- package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigUser.js +2 -40
- package/Components/JsonConfigComponent/ConfigUser.js.map +1 -1
- package/Components/JsonConfigComponent/index.js +5 -81
- package/Components/JsonConfigComponent/index.js.map +1 -1
- package/Components/Loader.js +2 -20
- package/Components/Loader.js.map +1 -1
- package/Components/Loaders/PT.js +2 -20
- package/Components/Loaders/PT.js.map +1 -1
- package/Components/Loaders/Vendor.js +2 -21
- package/Components/Loaders/Vendor.js.map +1 -1
- package/Components/Logo.js +6 -39
- package/Components/Logo.js.map +1 -1
- package/Components/MDUtils.js +3 -27
- package/Components/MDUtils.js.map +1 -1
- package/Components/ObjectBrowser.d.ts +1 -1
- package/Components/ObjectBrowser.js +181 -788
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/Router.js +7 -31
- package/Components/Router.js.map +1 -1
- package/Components/SaveCloseButtons.js +2 -32
- package/Components/SaveCloseButtons.js.map +1 -1
- package/Components/Schedule.js +29 -251
- package/Components/Schedule.js.map +1 -1
- package/Components/SelectWithIcon.d.ts +1 -1
- package/Components/SelectWithIcon.js +0 -48
- package/Components/SelectWithIcon.js.map +1 -1
- package/Components/SimpleCron/cron2text.js +45 -91
- package/Components/SimpleCron/cron2text.js.map +1 -1
- package/Components/SimpleCron/cronText.js +0 -6
- package/Components/SimpleCron/cronText.js.map +1 -1
- package/Components/SimpleCron/index.js +19 -102
- package/Components/SimpleCron/index.js.map +1 -1
- package/Components/SimpleCron/jquery.cron.locale.js +44 -24
- package/Components/SimpleCron/jquery.cron.locale.js.map +1 -1
- package/Components/TabContainer.js +2 -23
- package/Components/TabContainer.js.map +1 -1
- package/Components/TabContent.js +2 -22
- package/Components/TabContent.js.map +1 -1
- package/Components/TabHeader.js +1 -17
- package/Components/TabHeader.js.map +1 -1
- package/Components/TableResize.js +6 -51
- package/Components/TableResize.js.map +1 -1
- package/Components/TextWithIcon.js +0 -20
- package/Components/TextWithIcon.js.map +1 -1
- package/Components/ToggleThemeMenu.js +5 -13
- package/Components/ToggleThemeMenu.js.map +1 -1
- package/Components/TreeTable.js +4 -121
- package/Components/TreeTable.js.map +1 -1
- package/Components/UploadImage.js +17 -60
- package/Components/UploadImage.js.map +1 -1
- package/Components/Utils.js +87 -263
- package/Components/Utils.js.map +1 -1
- package/Components/copy-to-clipboard.js +16 -38
- package/Components/copy-to-clipboard.js.map +1 -1
- package/Components/withWidth.js +2 -10
- package/Components/withWidth.js.map +1 -1
- package/Connection.d.ts +1 -0
- package/Connection.js +156 -527
- package/Connection.js.map +1 -1
- package/Dialogs/ComplexCron.js +0 -34
- package/Dialogs/ComplexCron.js.map +1 -1
- package/Dialogs/Confirm.js +1 -39
- package/Dialogs/Confirm.js.map +1 -1
- package/Dialogs/Cron.js +1 -37
- package/Dialogs/Cron.js.map +1 -1
- package/Dialogs/Error.d.ts +1 -1
- package/Dialogs/Error.js +2 -29
- package/Dialogs/Error.js.map +1 -1
- package/Dialogs/FileSelect.js +2 -36
- package/Dialogs/FileSelect.js.map +1 -1
- package/Dialogs/Message.js +2 -27
- package/Dialogs/Message.js.map +1 -1
- package/Dialogs/SelectID.d.ts +1 -1
- package/Dialogs/SelectID.js +3 -40
- package/Dialogs/SelectID.js.map +1 -1
- package/Dialogs/SimpleCron.js +1 -33
- package/Dialogs/SimpleCron.js.map +1 -1
- package/Dialogs/TextInput.js +2 -34
- package/Dialogs/TextInput.js.map +1 -1
- package/GenericApp.js +54 -150
- package/GenericApp.js.map +1 -1
- package/Prompt.js +0 -2
- package/Prompt.js.map +1 -1
- package/README.md +8 -4
- package/Theme.js +7 -22
- package/Theme.js.map +1 -1
- package/i18n.d.ts +2 -0
- package/i18n.js +9 -29
- package/i18n.js.map +1 -1
- package/icons/IconAdapter.d.ts +2 -2
- package/icons/IconAdapter.js +2 -6
- package/icons/IconAdapter.js.map +1 -1
- package/icons/IconAlias.d.ts +2 -2
- package/icons/IconAlias.js +2 -6
- package/icons/IconAlias.js.map +1 -1
- package/icons/IconChannel.d.ts +2 -2
- package/icons/IconChannel.js +2 -6
- package/icons/IconChannel.js.map +1 -1
- package/icons/IconClearFilter.d.ts +2 -2
- package/icons/IconClearFilter.js +0 -5
- package/icons/IconClearFilter.js.map +1 -1
- package/icons/IconClosed.d.ts +2 -2
- package/icons/IconClosed.js +0 -5
- package/icons/IconClosed.js.map +1 -1
- package/icons/IconCopy.d.ts +2 -2
- package/icons/IconCopy.js +0 -5
- package/icons/IconCopy.js.map +1 -1
- package/icons/IconDevice.d.ts +2 -2
- package/icons/IconDevice.js +0 -5
- package/icons/IconDevice.js.map +1 -1
- package/icons/IconDocument.d.ts +2 -2
- package/icons/IconDocument.js +0 -5
- package/icons/IconDocument.js.map +1 -1
- package/icons/IconDocumentReadOnly.d.ts +2 -2
- package/icons/IconDocumentReadOnly.js +0 -5
- package/icons/IconDocumentReadOnly.js.map +1 -1
- package/icons/IconExpert.d.ts +2 -2
- package/icons/IconExpert.js +0 -5
- package/icons/IconExpert.js.map +1 -1
- package/icons/IconFx.d.ts +2 -2
- package/icons/IconFx.js +0 -5
- package/icons/IconFx.js.map +1 -1
- package/icons/IconInstance.d.ts +2 -2
- package/icons/IconInstance.js +0 -5
- package/icons/IconInstance.js.map +1 -1
- package/icons/IconLogout.d.ts +2 -2
- package/icons/IconLogout.js +0 -5
- package/icons/IconLogout.js.map +1 -1
- package/icons/IconNoIcon.d.ts +2 -2
- package/icons/IconNoIcon.js +0 -5
- package/icons/IconNoIcon.js.map +1 -1
- package/icons/IconOpen.d.ts +2 -2
- package/icons/IconOpen.js +0 -5
- package/icons/IconOpen.js.map +1 -1
- package/icons/IconState.d.ts +2 -2
- package/icons/IconState.js +0 -6
- package/icons/IconState.js.map +1 -1
- package/package.json +15 -15
package/Components/Image.js
CHANGED
|
@@ -1,55 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
14
|
var _react = _interopRequireDefault(require("react"));
|
|
23
|
-
|
|
24
15
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
-
|
|
26
16
|
var _IconNoIcon = _interopRequireDefault(require("../icons/IconNoIcon"));
|
|
27
|
-
|
|
28
17
|
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); }; }
|
|
29
|
-
|
|
30
18
|
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; } }
|
|
31
|
-
|
|
32
19
|
function getElementFromSource(src) {
|
|
33
20
|
var svgContainer = document.createElement('div');
|
|
34
21
|
svgContainer.innerHTML = src;
|
|
35
22
|
var svg = svgContainer.firstElementChild;
|
|
36
|
-
|
|
37
23
|
if (svg.remove) {
|
|
38
24
|
svg.remove();
|
|
39
25
|
} else {
|
|
40
26
|
svgContainer.removeChild(svg);
|
|
41
27
|
}
|
|
42
|
-
|
|
43
28
|
svgContainer.remove();
|
|
44
29
|
return svg;
|
|
45
30
|
}
|
|
46
|
-
|
|
47
31
|
function serializeAttrs(map) {
|
|
48
32
|
var ret = {};
|
|
49
|
-
|
|
50
33
|
for (var prop, i = 0; i < map.length; i++) {
|
|
51
34
|
var key = map[i].name;
|
|
52
|
-
|
|
53
35
|
if (key === 'class') {
|
|
54
36
|
prop = 'className';
|
|
55
37
|
} else if (!key.startsWith('data-')) {
|
|
@@ -59,12 +41,11 @@ function serializeAttrs(map) {
|
|
|
59
41
|
} else {
|
|
60
42
|
prop = key;
|
|
61
43
|
}
|
|
62
|
-
|
|
63
44
|
ret[prop] = map[i].value;
|
|
64
45
|
}
|
|
65
|
-
|
|
66
46
|
return ret;
|
|
67
47
|
}
|
|
48
|
+
|
|
68
49
|
/**
|
|
69
50
|
* @typedef {object} ImageProps
|
|
70
51
|
* @property {string} [color] The color.
|
|
@@ -75,16 +56,11 @@ function serializeAttrs(map) {
|
|
|
75
56
|
*
|
|
76
57
|
* @extends {React.Component<ImageProps>}
|
|
77
58
|
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
59
|
var Image = /*#__PURE__*/function (_React$Component) {
|
|
81
60
|
(0, _inherits2["default"])(Image, _React$Component);
|
|
82
|
-
|
|
83
61
|
var _super = _createSuper(Image);
|
|
84
|
-
|
|
85
62
|
function Image(props) {
|
|
86
63
|
var _this;
|
|
87
|
-
|
|
88
64
|
(0, _classCallCheck2["default"])(this, Image);
|
|
89
65
|
_this = _super.call(this, props);
|
|
90
66
|
_this.state = {
|
|
@@ -98,18 +74,14 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
98
74
|
_this.svg = _this.state.svg ? _this.getSvgFromData(_this.state.src) : null;
|
|
99
75
|
return _this;
|
|
100
76
|
}
|
|
101
|
-
|
|
102
77
|
(0, _createClass2["default"])(Image, [{
|
|
103
78
|
key: "getSvgFromData",
|
|
104
79
|
value: function getSvgFromData(src) {
|
|
105
80
|
var len = 'data:image/svg+xml;base64,';
|
|
106
|
-
|
|
107
81
|
if (!src.startsWith(len)) {
|
|
108
82
|
return null;
|
|
109
83
|
}
|
|
110
|
-
|
|
111
84
|
src = src.substring(len.length);
|
|
112
|
-
|
|
113
85
|
try {
|
|
114
86
|
src = atob(src);
|
|
115
87
|
var svg = getElementFromSource(src);
|
|
@@ -127,25 +99,21 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
127
99
|
}
|
|
128
100
|
}));
|
|
129
101
|
} catch (e) {}
|
|
130
|
-
|
|
131
102
|
return null;
|
|
132
103
|
}
|
|
133
104
|
}, {
|
|
134
105
|
key: "render",
|
|
135
106
|
value: function render() {
|
|
136
107
|
var _this2 = this;
|
|
137
|
-
|
|
138
108
|
if (this.state.svg) {
|
|
139
109
|
if (!this.state.created) {
|
|
140
110
|
setTimeout(function () {
|
|
141
111
|
_this2.svg = _this2.getSvgFromData(_this2.state.src);
|
|
142
|
-
|
|
143
112
|
_this2.setState({
|
|
144
113
|
created: true
|
|
145
114
|
});
|
|
146
115
|
}, 50);
|
|
147
116
|
}
|
|
148
|
-
|
|
149
117
|
return this.svg;
|
|
150
118
|
} else if (this.state.src) {
|
|
151
119
|
if (this.state.imgError || !this.state.src) {
|
|
@@ -175,31 +143,26 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
175
143
|
value: function getDerivedStateFromProps(props, state) {
|
|
176
144
|
var newState = {};
|
|
177
145
|
var changed = false;
|
|
178
|
-
|
|
179
146
|
if (props && state && props.src !== state.src) {
|
|
180
147
|
newState.src = props.src;
|
|
181
148
|
newState.svg = props.src && props.src.startsWith('data:');
|
|
182
149
|
newState.created = false;
|
|
183
150
|
changed = true;
|
|
184
151
|
}
|
|
185
|
-
|
|
186
152
|
if (props && state && props.color !== state.color) {
|
|
187
153
|
newState.color = props.color;
|
|
188
154
|
newState.created = false;
|
|
189
155
|
changed = true;
|
|
190
156
|
}
|
|
191
|
-
|
|
192
157
|
if (props && state && props.showError !== state.showError) {
|
|
193
158
|
newState.showError = props.showError;
|
|
194
159
|
changed = true;
|
|
195
160
|
}
|
|
196
|
-
|
|
197
161
|
return changed ? newState : null;
|
|
198
162
|
}
|
|
199
163
|
}]);
|
|
200
164
|
return Image;
|
|
201
165
|
}(_react["default"].Component);
|
|
202
|
-
|
|
203
166
|
Image.propTypes = {
|
|
204
167
|
color: _propTypes["default"].string,
|
|
205
168
|
src: _propTypes["default"].string.isRequired,
|
package/Components/Image.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","names":["getElementFromSource","src","svgContainer","document","createElement","innerHTML","svg","firstElementChild","remove","removeChild","serializeAttrs","map","ret","prop","i","length","key","name","startsWith","replace","g","toUpperCase","value","Image","props","state","created","color","imgError","showError","getSvgFromData","len","substring","atob","inner","svgProps","attributes","className","__html","e","setTimeout","setState","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 '../icons/IconNoIcon';\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\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} [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 if (this.state.imgError || !this.state.src) {\n return <IconNoIcon className={this.props.className} />;\n } else {\n return <img\n className={this.props.className}\n src={(this.props.imagePrefix || '') + this.state.src}\n alt=\"\"\n onError={() => this.props.showError ? this.setState({imgError: true}) : this.setState({src: ''})}\n />;\n }\n } else {\n return null;\n }\n }\n}\n\nImage.propTypes = {\n color: PropTypes.string,\n src: PropTypes.string.isRequired,\n className: PropTypes.string,\n imagePrefix: PropTypes.string,\n};\n\nexport default Image;"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Image.js","names":["getElementFromSource","src","svgContainer","document","createElement","innerHTML","svg","firstElementChild","remove","removeChild","serializeAttrs","map","ret","prop","i","length","key","name","startsWith","replace","g","toUpperCase","value","Image","props","state","created","color","imgError","showError","getSvgFromData","len","substring","atob","inner","svgProps","attributes","className","__html","e","setTimeout","setState","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 '../icons/IconNoIcon';\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\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} [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 if (this.state.imgError || !this.state.src) {\n return <IconNoIcon className={this.props.className} />;\n } else {\n return <img\n className={this.props.className}\n src={(this.props.imagePrefix || '') + this.state.src}\n alt=\"\"\n onError={() => this.props.showError ? this.setState({imgError: true}) : this.setState({src: ''})}\n />;\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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"}
|