@iobroker/adapter-react-v5 7.1.0 → 7.1.1
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/TabContainer.js +1 -1
- package/README.md +522 -493
- package/package.json +4 -4
- package/src/Components/TabContainer.tsx +3 -3
- package/tasks.js +1 -1
package/README.md
CHANGED
|
@@ -13,46 +13,41 @@ If you want to create the configuration page with ReactJS:
|
|
|
13
13
|
- Change `name` from `src` to `ADAPTERNAME-admin` (Of course replace `ADAPTERNAME` with yours)
|
|
14
14
|
- Add to devDependencies:
|
|
15
15
|
```
|
|
16
|
-
"@iobroker/adapter-react-v5": "^7.1.
|
|
16
|
+
"@iobroker/adapter-react-v5": "^7.1.1",
|
|
17
17
|
```
|
|
18
18
|
Versions can be higher.
|
|
19
19
|
So your `src/package.json` should look like:
|
|
20
20
|
|
|
21
21
|
```json
|
|
22
22
|
{
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
">0.2%",
|
|
52
|
-
"not dead",
|
|
53
|
-
"not ie <= 11",
|
|
54
|
-
"not op_mini all"
|
|
55
|
-
]
|
|
23
|
+
"name": "ADAPTERNAME-admin",
|
|
24
|
+
"version": "0.1.0",
|
|
25
|
+
"private": true,
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@iobroker/adapter-react-v5": "^7.1.1",
|
|
28
|
+
"@iobroker/build-tools": "^1.0.0",
|
|
29
|
+
"@iobroker/eslint-config": "^0.1.2",
|
|
30
|
+
"@mui/material": "^6.0.2",
|
|
31
|
+
"@mui/icons-material": "^6.0.2",
|
|
32
|
+
"@sentry/browser": "^8.28.0",
|
|
33
|
+
"babel-eslint": "^10.1.0",
|
|
34
|
+
"eslint": "^9.10.0",
|
|
35
|
+
"react": "^18.3.1",
|
|
36
|
+
"react-dom": "^18.3.1",
|
|
37
|
+
"react-scripts": "^5.0.1",
|
|
38
|
+
"react-icons": "^5.3.0"
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"start": "react-scripts start",
|
|
42
|
+
"build": "react-scripts build",
|
|
43
|
+
"test": "react-scripts test",
|
|
44
|
+
"eject": "react-scripts eject"
|
|
45
|
+
},
|
|
46
|
+
"eslintConfig": {
|
|
47
|
+
"extends": "react-app"
|
|
48
|
+
},
|
|
49
|
+
"homepage": ".",
|
|
50
|
+
"browserslist": [">0.2%", "not dead", "not ie <= 11", "not op_mini all"]
|
|
56
51
|
}
|
|
57
52
|
```
|
|
58
53
|
|
|
@@ -70,6 +65,7 @@ If you want to create the configuration page with ReactJS:
|
|
|
70
65
|
"build": "node tasks"
|
|
71
66
|
}
|
|
72
67
|
```
|
|
68
|
+
|
|
73
69
|
7. Start your dummy application `npm run start` for developing or build with `npm run build` and
|
|
74
70
|
copy files in `build` directory to `www` or to `admin`. In the admin you must rename `index.html` to `index_m.html`.
|
|
75
71
|
8. You can do that with `npm` tasks: `npm run build`
|
|
@@ -80,7 +76,10 @@ If you want to create the configuration page with ReactJS:
|
|
|
80
76
|
After
|
|
81
77
|
|
|
82
78
|
```html
|
|
83
|
-
<link
|
|
79
|
+
<link
|
|
80
|
+
rel="manifest"
|
|
81
|
+
href="%PUBLIC_URL%/manifest.json"
|
|
82
|
+
/>
|
|
84
83
|
```
|
|
85
84
|
|
|
86
85
|
insert
|
|
@@ -97,8 +96,18 @@ insert
|
|
|
97
96
|
const [name, val] = item.split('=');
|
|
98
97
|
query[decodeURIComponent(name)] = val !== undefined ? decodeURIComponent(val) : true;
|
|
99
98
|
});
|
|
100
|
-
script.onload = function () {
|
|
101
|
-
|
|
99
|
+
script.onload = function () {
|
|
100
|
+
typeof window.socketLoadedHandler === 'function' && window.socketLoadedHandler();
|
|
101
|
+
};
|
|
102
|
+
script.src =
|
|
103
|
+
window.location.port === '3000'
|
|
104
|
+
? window.location.protocol +
|
|
105
|
+
'//' +
|
|
106
|
+
(query.host || window.location.hostname) +
|
|
107
|
+
':' +
|
|
108
|
+
(query.port || 8081) +
|
|
109
|
+
'/lib/js/socket.io.js'
|
|
110
|
+
: '%PUBLIC_URL%/../../lib/js/socket.io.js';
|
|
102
111
|
|
|
103
112
|
document.head.appendChild(script);
|
|
104
113
|
</script>
|
|
@@ -109,23 +118,23 @@ insert
|
|
|
109
118
|
```jsx
|
|
110
119
|
class App extends GenericApp {
|
|
111
120
|
constructor(props) {
|
|
112
|
-
const extendedProps = {...props};
|
|
121
|
+
const extendedProps = { ...props };
|
|
113
122
|
extendedProps.encryptedFields = ['pass']; // this parameter will be encrypted and decrypted automatically
|
|
114
123
|
extendedProps.translations = {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
en: require('./i18n/en'),
|
|
125
|
+
de: require('./i18n/de'),
|
|
126
|
+
ru: require('./i18n/ru'),
|
|
127
|
+
pt: require('./i18n/pt'),
|
|
128
|
+
nl: require('./i18n/nl'),
|
|
129
|
+
fr: require('./i18n/fr'),
|
|
130
|
+
it: require('./i18n/it'),
|
|
131
|
+
es: require('./i18n/es'),
|
|
132
|
+
pl: require('./i18n/pl'),
|
|
133
|
+
uk: require('./i18n/uk'),
|
|
125
134
|
'zh-cn': require('./i18n/zh-cn'),
|
|
126
135
|
};
|
|
127
136
|
// get actual admin port
|
|
128
|
-
extendedProps.socket = {port: parseInt(window.location.port, 10)};
|
|
137
|
+
extendedProps.socket = { port: parseInt(window.location.port, 10) };
|
|
129
138
|
|
|
130
139
|
// Only if close, save buttons are not required at the bottom (e.g. if admin tab)
|
|
131
140
|
// extendedProps.bottomButtons = false;
|
|
@@ -159,7 +168,7 @@ console.log(`iobroker.scenes@${version}`);
|
|
|
159
168
|
|
|
160
169
|
const container = document.getElementById('root');
|
|
161
170
|
const root = createRoot(container);
|
|
162
|
-
root.render(<App/>);
|
|
171
|
+
root.render(<App />);
|
|
163
172
|
|
|
164
173
|
// If you want your app to work offline and load faster, you can change
|
|
165
174
|
// unregister() to register() below. Note this comes with some pitfalls.
|
|
@@ -233,24 +242,28 @@ class ExportImportDialog extends React.Component {
|
|
|
233
242
|
if (!this.state.confirmDialog) {
|
|
234
243
|
return null;
|
|
235
244
|
}
|
|
236
|
-
return
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
245
|
+
return (
|
|
246
|
+
<ConfirmDialog
|
|
247
|
+
title={I18n.t('Scene will be overwritten.')}
|
|
248
|
+
text={I18n.t('All data will be lost. Confirm?')}
|
|
249
|
+
ok={I18n.t('Yes')}
|
|
250
|
+
cancel={I18n.t('Cancel')}
|
|
251
|
+
suppressQuestionMinutes={5}
|
|
252
|
+
dialogName="myConfirmDialogThatCouldBeSuppressed"
|
|
253
|
+
suppressText={I18n.t('Suppress question for next %s minutes', 5)}
|
|
254
|
+
onClose={isYes => {
|
|
255
|
+
this.setState({ confirmDialog: false });
|
|
256
|
+
}}
|
|
257
|
+
/>
|
|
258
|
+
);
|
|
248
259
|
}
|
|
249
260
|
render() {
|
|
250
|
-
return
|
|
251
|
-
<
|
|
252
|
-
|
|
253
|
-
|
|
261
|
+
return (
|
|
262
|
+
<div>
|
|
263
|
+
<Button onClick={() => this.setState({ confirmDialog: true })}>Click</Button>
|
|
264
|
+
{this.renderConfirmDialog()}
|
|
265
|
+
</div>
|
|
266
|
+
);
|
|
254
267
|
}
|
|
255
268
|
}
|
|
256
269
|
|
|
@@ -286,34 +299,36 @@ renderMessage() {
|
|
|
286
299
|
import { SelectID as DialogSelectID } from '@iobroker/adapter-react-v5';
|
|
287
300
|
|
|
288
301
|
class MyComponent extends Component {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
302
|
+
constructor(props) {
|
|
303
|
+
super(props);
|
|
304
|
+
this.state = {
|
|
305
|
+
showSelectId: false,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
295
308
|
|
|
296
|
-
|
|
309
|
+
renderSelectIdDialog() {
|
|
297
310
|
if (this.state.showSelectId) {
|
|
298
|
-
return
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
+
return (
|
|
312
|
+
<DialogSelectID
|
|
313
|
+
key="tableSelect"
|
|
314
|
+
imagePrefix="../.."
|
|
315
|
+
dialogName={this.props.adapterName}
|
|
316
|
+
themeType={this.props.themeType}
|
|
317
|
+
socket={this.props.socket}
|
|
318
|
+
statesOnly={true}
|
|
319
|
+
selected={this.state.selectIdValue}
|
|
320
|
+
onClose={() => this.setState({ showSelectId: false })}
|
|
321
|
+
onOk={(selected, name) => {
|
|
322
|
+
this.setState({ showSelectId: false, selectIdValue: selected });
|
|
323
|
+
}}
|
|
324
|
+
/>
|
|
325
|
+
);
|
|
311
326
|
} else {
|
|
312
327
|
return null;
|
|
313
328
|
}
|
|
314
329
|
}
|
|
315
330
|
render() {
|
|
316
|
-
|
|
331
|
+
return renderSelectIdDialog();
|
|
317
332
|
}
|
|
318
333
|
}
|
|
319
334
|
```
|
|
@@ -326,18 +341,20 @@ Include `"react-text-mask": "^5.4.3",` in package.json.
|
|
|
326
341
|
|
|
327
342
|
```jsx
|
|
328
343
|
function renderCron() {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
344
|
+
if (!showCron) {
|
|
345
|
+
return null;
|
|
346
|
+
} else {
|
|
347
|
+
return (
|
|
348
|
+
<DialogCron
|
|
349
|
+
key="dialogCron1"
|
|
350
|
+
cron={this.state.cronValue || '* * * * *'}
|
|
351
|
+
onClose={() => this.setState({ showCron: false })}
|
|
352
|
+
onOk={cronValue => {
|
|
353
|
+
this.setState({ cronValue });
|
|
354
|
+
}}
|
|
355
|
+
/>
|
|
356
|
+
);
|
|
357
|
+
}
|
|
341
358
|
}
|
|
342
359
|
```
|
|
343
360
|
|
|
@@ -417,37 +434,36 @@ It is better to use `Dialog/SelectID`, but if you want:
|
|
|
417
434
|
|
|
418
435
|
```jsx
|
|
419
436
|
<ObjectBrowser
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
}}
|
|
437
|
+
foldersFirst={this.props.foldersFirst}
|
|
438
|
+
imagePrefix={this.props.imagePrefix || this.props.prefix} // prefix is for back compatibility
|
|
439
|
+
defaultFilters={this.filters}
|
|
440
|
+
dialogName={this.dialogName}
|
|
441
|
+
showExpertButton={this.props.showExpertButton !== undefined ? this.props.showExpertButton : true}
|
|
442
|
+
style={{ width: '100%', height: '100%' }}
|
|
443
|
+
columns={this.props.columns || ['name', 'type', 'role', 'room', 'func', 'val']}
|
|
444
|
+
types={this.props.types || ['state']}
|
|
445
|
+
t={I18n.t}
|
|
446
|
+
lang={this.props.lang || I18n.getLanguage()}
|
|
447
|
+
socket={this.props.socket}
|
|
448
|
+
selected={this.state.selected}
|
|
449
|
+
multiSelect={this.props.multiSelect}
|
|
450
|
+
notEditable={this.props.notEditable === undefined ? true : this.props.notEditable}
|
|
451
|
+
name={this.state.name}
|
|
452
|
+
theme={this.props.theme}
|
|
453
|
+
themeName={this.props.themeName}
|
|
454
|
+
themeType={this.props.themeType}
|
|
455
|
+
customFilter={this.props.customFilter}
|
|
456
|
+
onFilterChanged={filterConfig => {
|
|
457
|
+
this.filters = filterConfig;
|
|
458
|
+
window.localStorage.setItem(this.dialogName, JSON.stringify(filterConfig));
|
|
459
|
+
}}
|
|
460
|
+
onSelect={(selected, name, isDouble) => {
|
|
461
|
+
if (JSON.stringify(selected) !== JSON.stringify(this.state.selected)) {
|
|
462
|
+
this.setState({ selected, name }, () => isDouble && this.handleOk());
|
|
463
|
+
} else if (isDouble) {
|
|
464
|
+
this.handleOk();
|
|
465
|
+
}
|
|
466
|
+
}}
|
|
451
467
|
/>
|
|
452
468
|
```
|
|
453
469
|
|
|
@@ -465,113 +481,120 @@ const styles = {
|
|
|
465
481
|
},
|
|
466
482
|
};
|
|
467
483
|
class MyComponent extends Component {
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
//
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
484
|
+
constructor(props) {
|
|
485
|
+
super(props);
|
|
486
|
+
|
|
487
|
+
this.state = {
|
|
488
|
+
data: [
|
|
489
|
+
{
|
|
490
|
+
id: 'UniqueID1', // required
|
|
491
|
+
fieldIdInData: 'Name1',
|
|
492
|
+
myType: 'number',
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
id: 'UniqueID2', // required
|
|
496
|
+
fieldIdInData: 'Name12',
|
|
497
|
+
myType: 'string',
|
|
498
|
+
},
|
|
499
|
+
],
|
|
500
|
+
};
|
|
501
|
+
|
|
502
|
+
this.columns = [
|
|
503
|
+
{
|
|
504
|
+
title: 'Name of field', // required, else it will be "field"
|
|
505
|
+
field: 'fieldIdInData', // required
|
|
506
|
+
editable: false, // or true [default - true]
|
|
507
|
+
cellStyle: {
|
|
508
|
+
// CSS style - // optional
|
|
509
|
+
maxWidth: '12rem',
|
|
510
|
+
overflow: 'hidden',
|
|
511
|
+
wordBreak: 'break-word',
|
|
512
|
+
},
|
|
513
|
+
lookup: {
|
|
514
|
+
// optional => edit will be automatically "SELECT"
|
|
515
|
+
value1: 'text1',
|
|
516
|
+
value2: 'text2',
|
|
517
|
+
},
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
title: 'Type', // required, else it will be "field"
|
|
521
|
+
field: 'myType', // required
|
|
522
|
+
editable: true, // or true [default - true]
|
|
523
|
+
lookup: {
|
|
524
|
+
// optional => edit will be automatically "SELECT"
|
|
525
|
+
number: 'Number',
|
|
526
|
+
string: 'String',
|
|
527
|
+
boolean: 'Boolean',
|
|
528
|
+
},
|
|
529
|
+
type: 'number/string/color/oid/icon/boolean', // oid=ObjectID,icon=base64-icon
|
|
530
|
+
editComponent: props => (
|
|
531
|
+
<div>
|
|
532
|
+
Prefix{ <br />
|
|
533
|
+
<textarea
|
|
534
|
+
rows={4}
|
|
535
|
+
style={{ width: '100%', resize: 'vertical' }}
|
|
536
|
+
value={props.value}
|
|
537
|
+
onChange={e => props.onChange(e.target.value)}
|
|
538
|
+
/>
|
|
539
|
+
Suffix
|
|
540
|
+
</div>
|
|
541
|
+
),
|
|
542
|
+
},
|
|
543
|
+
];
|
|
544
|
+
}
|
|
545
|
+
// renderTable
|
|
546
|
+
render() {
|
|
547
|
+
return (
|
|
548
|
+
<div className={this.props.classes.tableDiv}>
|
|
549
|
+
<TreeTable
|
|
550
|
+
columns={this.columns}
|
|
551
|
+
data={this.state.data}
|
|
552
|
+
onUpdate={(newData, oldData) => {
|
|
553
|
+
const data = JSON.parse(JSON.stringify(this.state.data));
|
|
554
|
+
|
|
555
|
+
// Added new line
|
|
556
|
+
if (newData === true) {
|
|
557
|
+
// find unique ID
|
|
558
|
+
let i = 1;
|
|
559
|
+
let id = 'line_' + i;
|
|
560
|
+
|
|
561
|
+
// eslint-disable-next-line
|
|
562
|
+
while (this.state.data.find(item => item.id === id)) {
|
|
563
|
+
i++;
|
|
564
|
+
id = 'line_' + i;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
data.push({
|
|
568
|
+
id,
|
|
569
|
+
name: I18n.t('New resource') + '_' + i,
|
|
570
|
+
color: '',
|
|
571
|
+
icon: '',
|
|
572
|
+
unit: '',
|
|
573
|
+
price: 0,
|
|
574
|
+
});
|
|
575
|
+
} else {
|
|
576
|
+
// existing line was modifed
|
|
577
|
+
const pos = this.state.data.indexOf(oldData);
|
|
578
|
+
if (pos !== -1) {
|
|
579
|
+
Object.keys(newData).forEach(attr => (data[pos][attr] = newData[attr]));
|
|
580
|
+
}
|
|
543
581
|
}
|
|
544
582
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
icon: '',
|
|
550
|
-
unit: '',
|
|
551
|
-
price: 0,
|
|
552
|
-
});
|
|
553
|
-
} else {
|
|
554
|
-
// existing line was modifed
|
|
583
|
+
this.setState({ data });
|
|
584
|
+
}}
|
|
585
|
+
onDelete={oldData => {
|
|
586
|
+
console.log('Delete: ' + JSON.stringify(oldData));
|
|
555
587
|
const pos = this.state.data.indexOf(oldData);
|
|
556
588
|
if (pos !== -1) {
|
|
557
|
-
|
|
589
|
+
const data = JSON.parse(JSON.stringify(this.state.data));
|
|
590
|
+
data.splice(pos, 1);
|
|
591
|
+
this.setState({ data });
|
|
558
592
|
}
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
console.log('Delete: ' + JSON.stringify(oldData));
|
|
565
|
-
const pos = this.state.data.indexOf(oldData);
|
|
566
|
-
if (pos !== -1) {
|
|
567
|
-
const data = JSON.parse(JSON.stringify(this.state.data));
|
|
568
|
-
data.splice(pos, 1);
|
|
569
|
-
this.setState({data});
|
|
570
|
-
}
|
|
571
|
-
}}
|
|
572
|
-
/>
|
|
573
|
-
</div>;
|
|
574
|
-
}
|
|
593
|
+
}}
|
|
594
|
+
/>
|
|
595
|
+
</div>
|
|
596
|
+
);
|
|
597
|
+
}
|
|
575
598
|
}
|
|
576
599
|
```
|
|
577
600
|
|
|
@@ -586,68 +609,68 @@ import { Component } from 'react';
|
|
|
586
609
|
import { Snackbar } from '@mui/material';
|
|
587
610
|
|
|
588
611
|
class MyComponent extends Component {
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
612
|
+
constructor(props) {
|
|
613
|
+
super(props);
|
|
614
|
+
this.state = {
|
|
615
|
+
// ....
|
|
616
|
+
toast: '',
|
|
617
|
+
};
|
|
618
|
+
}
|
|
596
619
|
|
|
597
|
-
// ...
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
620
|
+
// ...
|
|
621
|
+
renderToast() {
|
|
622
|
+
if (!this.state.toast) {
|
|
623
|
+
return null;
|
|
624
|
+
}
|
|
625
|
+
return (
|
|
626
|
+
<Snackbar
|
|
627
|
+
anchorOrigin={{
|
|
628
|
+
vertical: 'bottom',
|
|
629
|
+
horizontal: 'left',
|
|
630
|
+
}}
|
|
631
|
+
open={true}
|
|
632
|
+
autoHideDuration={6000}
|
|
633
|
+
onClose={() => this.setState({ toast: '' })}
|
|
634
|
+
ContentProps={{ 'aria-describedby': 'message-id' }}
|
|
635
|
+
message={<span id="message-id">{this.state.toast}</span>}
|
|
636
|
+
action={[
|
|
637
|
+
<IconButton
|
|
638
|
+
key="close"
|
|
639
|
+
aria-label="Close"
|
|
640
|
+
color="inherit"
|
|
641
|
+
className={this.props.classes.close}
|
|
642
|
+
onClick={() => this.setState({ toast: '' })}
|
|
643
|
+
>
|
|
644
|
+
<IconClose />
|
|
645
|
+
</IconButton>,
|
|
646
|
+
]}
|
|
647
|
+
/>
|
|
648
|
+
);
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
render() {
|
|
652
|
+
return <div>{this.renderToast()}</div>;
|
|
601
653
|
}
|
|
602
|
-
return <Snackbar
|
|
603
|
-
anchorOrigin={{
|
|
604
|
-
vertical: 'bottom',
|
|
605
|
-
horizontal: 'left',
|
|
606
|
-
}}
|
|
607
|
-
open={true}
|
|
608
|
-
autoHideDuration={6000}
|
|
609
|
-
onClose={() => this.setState({toast: ''})}
|
|
610
|
-
ContentProps={{'aria-describedby': 'message-id'}}
|
|
611
|
-
message={<span id="message-id">{this.state.toast}</span>}
|
|
612
|
-
action={[
|
|
613
|
-
<IconButton
|
|
614
|
-
key="close"
|
|
615
|
-
aria-label="Close"
|
|
616
|
-
color="inherit"
|
|
617
|
-
className={this.props.classes.close}
|
|
618
|
-
onClick={() => this.setState({toast: ''})}
|
|
619
|
-
>
|
|
620
|
-
<IconClose/>
|
|
621
|
-
</IconButton>,
|
|
622
|
-
]}
|
|
623
|
-
/>;
|
|
624
|
-
}
|
|
625
|
-
|
|
626
|
-
render() {
|
|
627
|
-
return <div>
|
|
628
|
-
{this.renderToast()}
|
|
629
|
-
</div>;
|
|
630
|
-
}
|
|
631
654
|
}
|
|
632
655
|
```
|
|
633
656
|
|
|
634
657
|
## List of adapters that use adapter-react
|
|
635
658
|
|
|
636
|
-
-
|
|
637
|
-
-
|
|
638
|
-
-
|
|
639
|
-
-
|
|
640
|
-
-
|
|
641
|
-
-
|
|
642
|
-
-
|
|
643
|
-
-
|
|
644
|
-
-
|
|
645
|
-
-
|
|
646
|
-
-
|
|
647
|
-
-
|
|
648
|
-
-
|
|
649
|
-
-
|
|
650
|
-
-
|
|
659
|
+
- Admin
|
|
660
|
+
- Backitup
|
|
661
|
+
- iot
|
|
662
|
+
- echarts
|
|
663
|
+
- text2command
|
|
664
|
+
- scenes
|
|
665
|
+
- javascript
|
|
666
|
+
- devices
|
|
667
|
+
- eventlist
|
|
668
|
+
- cameras
|
|
669
|
+
- web
|
|
670
|
+
- vis-2
|
|
671
|
+
- vis-2-widgets-xxx
|
|
672
|
+
- fullcalendar
|
|
673
|
+
- openweathermap
|
|
651
674
|
|
|
652
675
|
## Usability
|
|
653
676
|
|
|
@@ -663,716 +686,722 @@ The icons may not be reused in other projects without the proper flaticon licens
|
|
|
663
686
|
## Migration instructions
|
|
664
687
|
|
|
665
688
|
You can find the migration instructions:
|
|
666
|
-
|
|
667
|
-
-
|
|
668
|
-
-
|
|
669
|
-
|
|
689
|
+
|
|
690
|
+
- [from adapter-react-v5@6.x to adapter-react-v5@7.x](MIGRATION_6_7.md)
|
|
691
|
+
- [from adapter-react-v5@5.x to adapter-react-v5@6.x](MIGRATION_5_6.md)
|
|
692
|
+
- [from adapter-react to adapter-react-v5@5.x](MIGRATION_4_5.md)
|
|
693
|
+
|
|
670
694
|
<!--
|
|
671
695
|
Placeholder for the next version (at the beginning of the line):
|
|
672
696
|
### **WORK IN PROGRESS**
|
|
673
697
|
-->
|
|
674
698
|
|
|
675
699
|
## Changelog
|
|
700
|
+
### 7.1.1 (2024-09-13)
|
|
701
|
+
|
|
702
|
+
- (bluefox) Corrected TabContainer
|
|
703
|
+
|
|
676
704
|
### 7.1.0 (2024-09-12)
|
|
677
705
|
|
|
678
|
-
-
|
|
679
|
-
-
|
|
706
|
+
- (bluefox) Optimized the icon picker
|
|
707
|
+
- (bluefox) Used common eslint-config
|
|
680
708
|
|
|
681
709
|
### 7.0.2 (2024-09-10)
|
|
682
|
-
|
|
683
|
-
|
|
710
|
+
|
|
711
|
+
- (bluefox) Showed the context menu under cursor position in the object browser
|
|
712
|
+
- (bluefox) Added links to aliases in the object browser
|
|
684
713
|
|
|
685
714
|
### 7.0.1 (2024-08-29)
|
|
686
715
|
|
|
687
|
-
-
|
|
688
|
-
-
|
|
716
|
+
- (bluefox) Updated the object browser
|
|
717
|
+
- (bluefox) Used MUI Library 6.0
|
|
689
718
|
|
|
690
719
|
### 6.1.10 (2024-08-30)
|
|
691
720
|
|
|
692
|
-
-
|
|
721
|
+
- (bluefox) Updated the object browser
|
|
693
722
|
|
|
694
723
|
### 6.1.9 (2024-08-14)
|
|
695
724
|
|
|
696
|
-
-
|
|
725
|
+
- (bluefox) Updated JSON schema
|
|
697
726
|
|
|
698
727
|
### 6.1.8 (2024-08-03)
|
|
699
728
|
|
|
700
|
-
-
|
|
729
|
+
- (bluefox) Added translations
|
|
701
730
|
|
|
702
731
|
### 6.1.6 (2024-07-23)
|
|
703
732
|
|
|
704
|
-
-
|
|
733
|
+
- (bluefox) Optimize package
|
|
705
734
|
|
|
706
735
|
### 6.1.5 (2024-07-20)
|
|
707
736
|
|
|
708
|
-
-
|
|
737
|
+
- (bluefox) Added sources to package
|
|
709
738
|
|
|
710
739
|
### 6.1.3 (2024-07-20)
|
|
711
740
|
|
|
712
|
-
-
|
|
741
|
+
- (bluefox) Better typing of legacy connection
|
|
713
742
|
|
|
714
743
|
### 6.1.1 (2024-07-16)
|
|
715
744
|
|
|
716
|
-
-
|
|
745
|
+
- (bluefox) Added translations
|
|
717
746
|
|
|
718
747
|
### 6.1.0 (2024-07-15)
|
|
719
748
|
|
|
720
|
-
-
|
|
749
|
+
- (bluefox) Replace by CRON to text the package to `cronstrue`
|
|
721
750
|
|
|
722
751
|
### 6.0.19 (2024-07-14)
|
|
723
752
|
|
|
724
|
-
-
|
|
753
|
+
- (bluefox) added some packages for federation
|
|
725
754
|
|
|
726
755
|
### 6.0.17 (2024-07-14)
|
|
727
756
|
|
|
728
|
-
-
|
|
729
|
-
-
|
|
757
|
+
- (bluefox) Allowed playing mp3 files in the file browser
|
|
758
|
+
- (bluefox) Corrected jump by object selection
|
|
730
759
|
|
|
731
760
|
### 6.0.14 (2024-07-07)
|
|
732
761
|
|
|
733
|
-
-
|
|
762
|
+
- (bluefox) Corrected theme type selection
|
|
734
763
|
|
|
735
764
|
### 6.0.13 (2024-06-30)
|
|
736
765
|
|
|
737
|
-
-
|
|
766
|
+
- (bluefox) Corrected color picker
|
|
738
767
|
|
|
739
768
|
### 6.0.12 (2024-06-29)
|
|
740
769
|
|
|
741
|
-
-
|
|
770
|
+
- (bluefox) Added support for the overrides in the theme
|
|
742
771
|
|
|
743
772
|
### 6.0.10 (2024-06-27)
|
|
744
773
|
|
|
745
|
-
-
|
|
746
|
-
-
|
|
774
|
+
- (bluefox) Added translation
|
|
775
|
+
- (bluefox) Mobile object browser improved
|
|
747
776
|
|
|
748
777
|
### 6.0.9 (2024-06-26)
|
|
749
778
|
|
|
750
|
-
-
|
|
779
|
+
- (bluefox) Corrected Icons
|
|
751
780
|
|
|
752
781
|
### 6.0.8 (2024-06-26)
|
|
753
782
|
|
|
754
|
-
-
|
|
755
|
-
-
|
|
783
|
+
- (bluefox) Corrected types of the select ID dialog
|
|
784
|
+
- (bluefox) Made the tooltips neutral to the pointer events
|
|
756
785
|
|
|
757
786
|
### 6.0.6 (2024-06-24)
|
|
758
787
|
|
|
759
|
-
-
|
|
760
|
-
-
|
|
788
|
+
- (bluefox) Synchronised with admin
|
|
789
|
+
- (bluefox) Added translations for time scheduler
|
|
761
790
|
|
|
762
791
|
### 6.0.4 (2024-06-21)
|
|
763
792
|
|
|
764
|
-
-
|
|
765
|
-
-
|
|
793
|
+
- (bluefox) Removed the usage of `withStyles` in favor of `sx` and `style` properties (see [Migration from v5 to v6](#migration-from-v5-to-v6)
|
|
794
|
+
- (bluefox) (BREAKING) Higher version of `@mui/material` (5.15.20) is used
|
|
766
795
|
|
|
767
796
|
### 5.0.8 (2024-06-15)
|
|
768
797
|
|
|
769
|
-
-
|
|
798
|
+
- (bluefox) Added `modulefederation.admin.config.js` for module federation
|
|
770
799
|
|
|
771
800
|
### 5.0.5 (2024-06-10)
|
|
772
801
|
|
|
773
|
-
-
|
|
802
|
+
- (bluefox) Sources were synchronized with admin
|
|
774
803
|
|
|
775
804
|
### 5.0.4 (2024-06-07)
|
|
776
805
|
|
|
777
|
-
-
|
|
806
|
+
- (bluefox) Added better typing
|
|
778
807
|
|
|
779
808
|
### 5.0.2 (2024-05-30)
|
|
780
809
|
|
|
781
|
-
-
|
|
782
|
-
-
|
|
810
|
+
- (bluefox) Added better typing
|
|
811
|
+
- (bluefox) Json-Config is now a separate package and must be installed additionally
|
|
783
812
|
|
|
784
813
|
### 5.0.0 (2024-05-29)
|
|
785
814
|
|
|
786
|
-
-
|
|
787
|
-
-
|
|
788
|
-
-
|
|
815
|
+
- (bluefox) Types are now exported
|
|
816
|
+
- (bluefox) Translator renamed to Translate
|
|
817
|
+
- (bluefox) Breaking: Theme renamed to IobTheme because of the naming conflict
|
|
789
818
|
|
|
790
819
|
### 4.13.24 (2024-05-25)
|
|
791
820
|
|
|
792
|
-
-
|
|
821
|
+
- (bluefox) Updated packages
|
|
793
822
|
|
|
794
823
|
- ### 4.13.22 (2024-05-23)
|
|
795
|
-
-
|
|
824
|
+
- (bluefox) Updated packages
|
|
796
825
|
|
|
797
826
|
### 4.13.20 (2024-05-22)
|
|
798
827
|
|
|
799
|
-
-
|
|
800
|
-
-
|
|
801
|
-
-
|
|
828
|
+
- (bluefox) Better types added
|
|
829
|
+
- (bluefox) updated theme definitions
|
|
830
|
+
- (bluefox) corrected dates in cron dialog
|
|
802
831
|
|
|
803
832
|
### 4.13.14 (2024-05-19)
|
|
804
833
|
|
|
805
|
-
-
|
|
834
|
+
- (bluefox) Updated packages
|
|
806
835
|
|
|
807
836
|
### 4.13.13 (2024-05-09)
|
|
808
837
|
|
|
809
|
-
-
|
|
838
|
+
- (bluefox) Updated ioBroker types
|
|
810
839
|
|
|
811
840
|
### 4.13.12 (2024-05-06)
|
|
812
841
|
|
|
813
|
-
-
|
|
842
|
+
- (bluefox) All files are migrated to Typescript
|
|
814
843
|
|
|
815
844
|
### 4.13.11 (2024-04-23)
|
|
816
845
|
|
|
817
|
-
-
|
|
846
|
+
- (bluefox) Corrected the size of icons
|
|
818
847
|
|
|
819
848
|
### 4.13.10 (2024-04-22)
|
|
820
849
|
|
|
821
|
-
-
|
|
850
|
+
- (bluefox) Migrated all icons to Typescript
|
|
822
851
|
|
|
823
852
|
### 4.13.9 (2024-04-20)
|
|
824
853
|
|
|
825
|
-
-
|
|
854
|
+
- (bluefox) Updated socket-client package
|
|
826
855
|
|
|
827
856
|
### 4.13.8 (2024-04-19)
|
|
828
857
|
|
|
829
|
-
-
|
|
858
|
+
- (bluefox) Corrected CRON selector
|
|
830
859
|
|
|
831
860
|
### 4.13.7 (2024-04-19)
|
|
832
861
|
|
|
833
|
-
-
|
|
862
|
+
- (bluefox) Migrated ColorPicker to typescript
|
|
834
863
|
|
|
835
864
|
### 4.13.6 (2024-04-11)
|
|
836
865
|
|
|
837
|
-
-
|
|
838
|
-
-
|
|
866
|
+
- (bluefox) Migrated TreeTable to typescript
|
|
867
|
+
- (bluefox) corrected the object subscription
|
|
839
868
|
|
|
840
869
|
### 4.13.5 (2024-04-02)
|
|
841
870
|
|
|
842
|
-
-
|
|
843
|
-
-
|
|
871
|
+
- (bluefox) used new connection classes
|
|
872
|
+
- (bluefox) Improved the `SelectID` dialog
|
|
844
873
|
|
|
845
874
|
### 4.13.3 (2024-04-01)
|
|
846
875
|
|
|
847
|
-
-
|
|
876
|
+
- (bluefox) used new connection classes
|
|
848
877
|
|
|
849
878
|
### 4.12.3 (2024-03-30)
|
|
850
879
|
|
|
851
|
-
-
|
|
880
|
+
- (bluefox) Migrated legacy connection to typescript
|
|
852
881
|
|
|
853
882
|
### 4.12.2 (2024-03-25)
|
|
854
883
|
|
|
855
|
-
-
|
|
884
|
+
- (bluefox) Added support for remote cloud
|
|
856
885
|
|
|
857
886
|
### 4.11.6 (2024-03-19)
|
|
858
887
|
|
|
859
|
-
-
|
|
888
|
+
- (bluefox) Corrected rendering of LoaderMV
|
|
860
889
|
|
|
861
890
|
### 4.11.4 (2024-03-18)
|
|
862
891
|
|
|
863
|
-
-
|
|
892
|
+
- (bluefox) Corrected types of IconPicker
|
|
864
893
|
|
|
865
894
|
### 4.11.3 (2024-03-17)
|
|
866
895
|
|
|
867
|
-
-
|
|
896
|
+
- (bluefox) Made filters for the file selector dialog optional
|
|
868
897
|
|
|
869
898
|
### 4.11.2 (2024-03-16)
|
|
870
899
|
|
|
871
|
-
-
|
|
900
|
+
- (bluefox) Migrated GenericApp to typescript
|
|
872
901
|
|
|
873
902
|
### 4.10.4 (2024-03-16)
|
|
874
903
|
|
|
875
|
-
-
|
|
904
|
+
- (bluefox) Migrated some components to typescript
|
|
876
905
|
|
|
877
906
|
### 4.10.1 (2024-03-11)
|
|
878
907
|
|
|
879
|
-
-
|
|
908
|
+
- (bluefox) Migrated some components to typescript
|
|
880
909
|
|
|
881
910
|
### 4.9.11 (2024-03-08)
|
|
882
911
|
|
|
883
|
-
-
|
|
912
|
+
- (foxriver76) type GenericApp socket correctly
|
|
884
913
|
|
|
885
914
|
### 4.9.10 (2024-02-21)
|
|
886
915
|
|
|
887
|
-
-
|
|
888
|
-
-
|
|
916
|
+
- (bluefox) translations
|
|
917
|
+
- (bluefox) updated JSON config
|
|
889
918
|
|
|
890
919
|
### 4.9.9 (2024-02-16)
|
|
891
920
|
|
|
892
|
-
-
|
|
921
|
+
- (foxriver76) also check plugin state of instance to see if Sentry is explicitly disabled
|
|
893
922
|
|
|
894
923
|
### 4.9.8 (2024-02-13)
|
|
895
924
|
|
|
896
|
-
-
|
|
925
|
+
- (bluefox) allowed hiding wizard in cron dialog
|
|
897
926
|
|
|
898
927
|
### 4.9.7 (2024-02-03)
|
|
899
928
|
|
|
900
|
-
-
|
|
929
|
+
- (foxriver76) allow passing down the instance number do avoid determining from url
|
|
901
930
|
|
|
902
931
|
### 4.9.5 (2024-01-01)
|
|
903
932
|
|
|
904
|
-
-
|
|
933
|
+
- (foxriver76) make `copyToClipboard` event parameter optional
|
|
905
934
|
|
|
906
935
|
### 4.9.4 (2024-01-01)
|
|
907
936
|
|
|
908
|
-
-
|
|
937
|
+
- (foxriver76) try to fix `SelectID` scrolling
|
|
909
938
|
|
|
910
939
|
### 4.9.2 (2023-12-30)
|
|
911
940
|
|
|
912
|
-
-
|
|
941
|
+
- (foxriver76) bump version of `@iobroker/json-config`
|
|
913
942
|
|
|
914
943
|
### 4.9.1 (2023-12-22)
|
|
915
944
|
|
|
916
|
-
-
|
|
945
|
+
- (foxriver76) `@iobroker/json-config` moved to real dependencies
|
|
917
946
|
|
|
918
947
|
### 4.9.0 (2023-12-22)
|
|
919
948
|
|
|
920
|
-
-
|
|
921
|
-
-
|
|
949
|
+
- (foxriver76) migrate to `@iobroker/json-config` module to have a single point of truth
|
|
950
|
+
- (bluefox) Allowed using of `filterFunc` as string
|
|
922
951
|
|
|
923
952
|
### 4.8.1 (2023-12-14)
|
|
924
953
|
|
|
925
|
-
-
|
|
954
|
+
- (bluefox) Added Device manager to JSON Config
|
|
926
955
|
|
|
927
956
|
### 4.7.15 (2023-12-12)
|
|
928
957
|
|
|
929
|
-
-
|
|
958
|
+
- (bluefox) Corrected parsing of a text
|
|
930
959
|
|
|
931
960
|
### 4.7.13 (2023-12-10)
|
|
932
961
|
|
|
933
|
-
-
|
|
962
|
+
- (bluefox) Added possibility to define the root style and embedded property
|
|
934
963
|
|
|
935
964
|
### 4.7.11 (2023-12-06)
|
|
936
965
|
|
|
937
|
-
-
|
|
966
|
+
- (bluefox) Extended color picker with "noInputField" option
|
|
938
967
|
|
|
939
968
|
### 4.7.9 (2023-12-04)
|
|
940
969
|
|
|
941
|
-
-
|
|
970
|
+
- (bluefox) Corrected the icon picker
|
|
942
971
|
|
|
943
972
|
### 4.7.8 (2023-12-04)
|
|
944
973
|
|
|
945
|
-
-
|
|
974
|
+
- (foxriver76) port to `@iobroker/types`
|
|
946
975
|
|
|
947
976
|
### 4.7.6 (2023-11-29)
|
|
948
977
|
|
|
949
|
-
-
|
|
978
|
+
- (bluefox) Added translations
|
|
950
979
|
|
|
951
980
|
### 4.7.5 (2023-11-28)
|
|
952
981
|
|
|
953
|
-
-
|
|
982
|
+
- (bluefox) Corrected subscribe on objects in the legacy connection
|
|
954
983
|
|
|
955
984
|
### 4.7.4 (2023-11-23)
|
|
956
985
|
|
|
957
|
-
-
|
|
958
|
-
-
|
|
986
|
+
- (bluefox) Updated packages
|
|
987
|
+
- (bluefox) Made getStates method in legacy connection compatible with new one
|
|
959
988
|
|
|
960
989
|
### 4.7.3 (2023-11-08)
|
|
961
990
|
|
|
962
|
-
-
|
|
991
|
+
- (bluefox) Updated packages
|
|
963
992
|
|
|
964
993
|
### 4.7.2 (2023-11-03)
|
|
965
994
|
|
|
966
|
-
-
|
|
967
|
-
-
|
|
995
|
+
- (foxriver76) fixed problem with color picker, where editing TextField was buggy
|
|
996
|
+
- (foxriver76) fixed light mode color of a path in FileBrowser
|
|
968
997
|
|
|
969
998
|
### 4.7.0 (2023-10-31)
|
|
970
999
|
|
|
971
|
-
-
|
|
972
|
-
-
|
|
1000
|
+
- (bluefox) Synced with admin
|
|
1001
|
+
- (bluefox) Added GIF to image files
|
|
973
1002
|
|
|
974
1003
|
### 4.6.7 (2023-10-19)
|
|
975
1004
|
|
|
976
|
-
-
|
|
1005
|
+
- (bluefox) Added return value for `subscribeOnInstance` for Connection class
|
|
977
1006
|
|
|
978
1007
|
### 4.6.6 (2023-10-13)
|
|
979
1008
|
|
|
980
|
-
-
|
|
1009
|
+
- (bluefox) Fixed the legacy connection
|
|
981
1010
|
|
|
982
1011
|
### 4.6.5 (2023-10-12)
|
|
983
1012
|
|
|
984
|
-
-
|
|
1013
|
+
- (foxriver76) fixed object browser with date
|
|
985
1014
|
|
|
986
1015
|
### 4.6.4 (2023-10-11)
|
|
987
1016
|
|
|
988
|
-
-
|
|
1017
|
+
- (bluefox) Updated the packages
|
|
989
1018
|
|
|
990
1019
|
### 4.6.3 (2023-10-09)
|
|
991
1020
|
|
|
992
|
-
-
|
|
993
|
-
-
|
|
1021
|
+
- (bluefox) Just updated the packages
|
|
1022
|
+
- (bluefox) Synced with admin
|
|
994
1023
|
|
|
995
1024
|
### 4.6.2 (2023-09-29)
|
|
996
1025
|
|
|
997
|
-
-
|
|
1026
|
+
- (bluefox) Experimental feature added: update states on re-subscribe
|
|
998
1027
|
|
|
999
1028
|
### 4.5.5 (2023-09-27)
|
|
1000
1029
|
|
|
1001
|
-
-
|
|
1030
|
+
- (bluefox) Added export for IconNoIcon
|
|
1002
1031
|
|
|
1003
1032
|
### 4.5.4 (2023-09-17)
|
|
1004
1033
|
|
|
1005
|
-
-
|
|
1034
|
+
- (bluefox) Added the restricting to folder property for select file dialog
|
|
1006
1035
|
|
|
1007
1036
|
### 4.5.3 (2023-08-20)
|
|
1008
1037
|
|
|
1009
|
-
-
|
|
1038
|
+
- (foxriver76) fixed css classes of TableResize, see https://github.com/ioBroker/ioBroker.admin/issues/1860
|
|
1010
1039
|
|
|
1011
1040
|
### 4.5.2 (2023-08-20)
|
|
1012
1041
|
|
|
1013
|
-
-
|
|
1042
|
+
- (foxriver76) added missing export of TableResize
|
|
1014
1043
|
|
|
1015
1044
|
### 4.5.1 (2023-08-19)
|
|
1016
1045
|
|
|
1017
|
-
-
|
|
1046
|
+
- (foxriver76) fix dialog TextInput
|
|
1018
1047
|
|
|
1019
1048
|
### 4.5.0 (2023-08-18)
|
|
1020
1049
|
|
|
1021
|
-
-
|
|
1050
|
+
- (bluefox) Synchronize components with admin
|
|
1022
1051
|
|
|
1023
1052
|
### 4.4.8 (2023-08-17)
|
|
1024
1053
|
|
|
1025
|
-
-
|
|
1054
|
+
- (bluefox) Added translations
|
|
1026
1055
|
|
|
1027
1056
|
### 4.4.7 (2023-08-10)
|
|
1028
1057
|
|
|
1029
|
-
-
|
|
1030
|
-
-
|
|
1058
|
+
- (bluefox) Added `subscribeStateAsync` method to wait for answer
|
|
1059
|
+
- (bluefox) Added support for arrays for un/subscriptions
|
|
1031
1060
|
|
|
1032
1061
|
### 4.4.5 (2023-08-01)
|
|
1033
1062
|
|
|
1034
|
-
-
|
|
1063
|
+
- (bluefox) Updated packages
|
|
1035
1064
|
|
|
1036
1065
|
### 4.3.3 (2023-07-28)
|
|
1037
1066
|
|
|
1038
|
-
-
|
|
1067
|
+
- (bluefox) Added translations
|
|
1039
1068
|
|
|
1040
1069
|
### 4.3.0 (2023-07-19)
|
|
1041
1070
|
|
|
1042
|
-
-
|
|
1043
|
-
-
|
|
1044
|
-
-
|
|
1045
|
-
-
|
|
1071
|
+
- (bluefox) Updated packages
|
|
1072
|
+
- (bluefox) Added translations
|
|
1073
|
+
- (bluefox) Synced object browser
|
|
1074
|
+
- (bluefox) formatting
|
|
1046
1075
|
|
|
1047
1076
|
### 4.2.1 (2023-07-17)
|
|
1048
1077
|
|
|
1049
|
-
-
|
|
1050
|
-
-
|
|
1078
|
+
- (bluefox) Updated packages
|
|
1079
|
+
- (bluefox) Added translations
|
|
1051
1080
|
|
|
1052
1081
|
### 4.2.0 (2023-07-07)
|
|
1053
1082
|
|
|
1054
|
-
-
|
|
1055
|
-
-
|
|
1083
|
+
- (bluefox) Updated packages
|
|
1084
|
+
- (bluefox) Added new method `getObjectsById` to the socket communication
|
|
1056
1085
|
|
|
1057
1086
|
### 4.1.2 (2023-06-20)
|
|
1058
1087
|
|
|
1059
|
-
-
|
|
1088
|
+
- (bluefox) Allowed setting theme name directly by theme toggle
|
|
1060
1089
|
|
|
1061
1090
|
### 4.1.0 (2023-05-10)
|
|
1062
1091
|
|
|
1063
|
-
-
|
|
1092
|
+
- (bluefox) `craco-module-federation.js` was added. For node 16
|
|
1064
1093
|
|
|
1065
1094
|
### 4.0.27 (2023-05-09)
|
|
1066
1095
|
|
|
1067
|
-
-
|
|
1096
|
+
- (bluefox) Allowed showing only specific root in SelectIDDialog
|
|
1068
1097
|
|
|
1069
1098
|
### 4.0.26 (2023-05-08)
|
|
1070
1099
|
|
|
1071
|
-
-
|
|
1100
|
+
- (bluefox) Added IDs to the buttons in the dialog for GUI tests
|
|
1072
1101
|
|
|
1073
1102
|
### 4.0.25 (2023-04-23)
|
|
1074
1103
|
|
|
1075
|
-
-
|
|
1104
|
+
- (bluefox) Extended `TextWithIcon` with defined color and icon
|
|
1076
1105
|
|
|
1077
1106
|
### 4.0.24 (2023-04-03)
|
|
1078
1107
|
|
|
1079
|
-
-
|
|
1108
|
+
- (bluefox) Updated the file selector in tile mode
|
|
1080
1109
|
|
|
1081
1110
|
### 4.0.23 (2023-03-27)
|
|
1082
1111
|
|
|
1083
|
-
-
|
|
1112
|
+
- (bluefox) Added translations
|
|
1084
1113
|
|
|
1085
1114
|
### 4.0.22 (2023-03-22)
|
|
1086
1115
|
|
|
1087
|
-
-
|
|
1116
|
+
- (bluefox) Re-Activate legacy connection
|
|
1088
1117
|
|
|
1089
1118
|
### 4.0.21 (2023-03-22)
|
|
1090
1119
|
|
|
1091
|
-
-
|
|
1120
|
+
- (bluefox) Added translations
|
|
1092
1121
|
|
|
1093
1122
|
### 4.0.20 (2023-03-21)
|
|
1094
1123
|
|
|
1095
|
-
-
|
|
1124
|
+
- (bluefox) Color picker was improved
|
|
1096
1125
|
|
|
1097
1126
|
### 4.0.19 (2023-03-20)
|
|
1098
1127
|
|
|
1099
|
-
-
|
|
1100
|
-
-
|
|
1128
|
+
- (bluefox) Packages were updated
|
|
1129
|
+
- (bluefox) Added new translations
|
|
1101
1130
|
|
|
1102
1131
|
### 4.0.18 (2023-03-16)
|
|
1103
1132
|
|
|
1104
|
-
-
|
|
1133
|
+
- (bluefox) Packages were updated
|
|
1105
1134
|
|
|
1106
1135
|
### 4.0.17 (2023-03-15)
|
|
1107
1136
|
|
|
1108
|
-
-
|
|
1109
|
-
-
|
|
1137
|
+
- (bluefox) Added translations
|
|
1138
|
+
- (bluefox) Added port controller to JSON config
|
|
1110
1139
|
|
|
1111
1140
|
### 4.0.15 (2023-03-12)
|
|
1112
1141
|
|
|
1113
|
-
-
|
|
1142
|
+
- (bluefox) Updated the object browser and file browser
|
|
1114
1143
|
|
|
1115
1144
|
### 4.0.14 (2023-03-03)
|
|
1116
1145
|
|
|
1117
|
-
-
|
|
1146
|
+
- (bluefox) added handler of alert messages
|
|
1118
1147
|
|
|
1119
1148
|
### 4.0.13 (2023-02-15)
|
|
1120
1149
|
|
|
1121
|
-
-
|
|
1150
|
+
- (bluefox) Corrected the theme button
|
|
1122
1151
|
|
|
1123
1152
|
### 4.0.12 (2023-02-15)
|
|
1124
1153
|
|
|
1125
|
-
-
|
|
1154
|
+
- (bluefox) made the fix for `echarts`
|
|
1126
1155
|
|
|
1127
1156
|
### 4.0.11 (2023-02-14)
|
|
1128
1157
|
|
|
1129
|
-
-
|
|
1130
|
-
-
|
|
1158
|
+
- (bluefox) Updated packages
|
|
1159
|
+
- (bluefox) The `chartReady` event was omitted
|
|
1131
1160
|
|
|
1132
1161
|
### 4.0.10 (2023-02-10)
|
|
1133
1162
|
|
|
1134
|
-
-
|
|
1135
|
-
-
|
|
1163
|
+
- (bluefox) Updated packages
|
|
1164
|
+
- (bluefox) made the fix for `material`
|
|
1136
1165
|
|
|
1137
1166
|
### 4.0.9 (2023-02-02)
|
|
1138
1167
|
|
|
1139
|
-
-
|
|
1168
|
+
- (bluefox) Updated packages
|
|
1140
1169
|
|
|
1141
1170
|
### 4.0.8 (2022-12-19)
|
|
1142
1171
|
|
|
1143
|
-
-
|
|
1172
|
+
- (bluefox) Extended socket with `log` command
|
|
1144
1173
|
|
|
1145
1174
|
### 4.0.6 (2022-12-19)
|
|
1146
1175
|
|
|
1147
|
-
-
|
|
1176
|
+
- (bluefox) Corrected URL for the connection
|
|
1148
1177
|
|
|
1149
1178
|
### 4.0.5 (2022-12-14)
|
|
1150
1179
|
|
|
1151
|
-
-
|
|
1180
|
+
- (bluefox) Added support of custom palette for color picker
|
|
1152
1181
|
|
|
1153
1182
|
### 4.0.2 (2022-12-01)
|
|
1154
1183
|
|
|
1155
|
-
-
|
|
1184
|
+
- (bluefox) use `@iobroker/socket-client` instead of `Connection.tsx`
|
|
1156
1185
|
|
|
1157
1186
|
### 3.5.3 (2022-11-30)
|
|
1158
1187
|
|
|
1159
|
-
-
|
|
1188
|
+
- (bluefox) Improved `renderTextWithA` function to support `<b>` and `<i>` tags
|
|
1160
1189
|
|
|
1161
1190
|
### 3.5.2 (2022-11-30)
|
|
1162
1191
|
|
|
1163
|
-
-
|
|
1192
|
+
- (bluefox) updated json config component
|
|
1164
1193
|
|
|
1165
1194
|
### 3.4.1 (2022-11-29)
|
|
1166
1195
|
|
|
1167
|
-
-
|
|
1196
|
+
- (bluefox) Added button text for message dialog
|
|
1168
1197
|
|
|
1169
1198
|
### 3.4.0 (2022-11-29)
|
|
1170
1199
|
|
|
1171
|
-
-
|
|
1200
|
+
- (bluefox) Added file selector
|
|
1172
1201
|
|
|
1173
1202
|
### 3.3.0 (2022-11-26)
|
|
1174
1203
|
|
|
1175
|
-
-
|
|
1204
|
+
- (bluefox) Added subscribe on files
|
|
1176
1205
|
|
|
1177
1206
|
### 3.2.7 (2022-11-13)
|
|
1178
1207
|
|
|
1179
|
-
-
|
|
1208
|
+
- (bluefox) Added `fullWidth` property to `Dialog`
|
|
1180
1209
|
|
|
1181
1210
|
### 3.2.6 (2022-11-08)
|
|
1182
1211
|
|
|
1183
|
-
-
|
|
1212
|
+
- (xXBJXx) Improved TreeTable component
|
|
1184
1213
|
|
|
1185
1214
|
### 3.2.5 (2022-11-08)
|
|
1186
1215
|
|
|
1187
|
-
-
|
|
1216
|
+
- (bluefox) Added the role filter for the object browser
|
|
1188
1217
|
|
|
1189
1218
|
### 3.2.4 (2022-11-03)
|
|
1190
1219
|
|
|
1191
|
-
-
|
|
1220
|
+
- (bluefox) Added support for alfa channel for `invertColor`
|
|
1192
1221
|
|
|
1193
1222
|
### 3.2.3 (2022-10-26)
|
|
1194
1223
|
|
|
1195
|
-
-
|
|
1224
|
+
- (bluefox) Corrected expert mode for object browser
|
|
1196
1225
|
|
|
1197
1226
|
### 3.2.2 (2022-10-25)
|
|
1198
1227
|
|
|
1199
|
-
-
|
|
1228
|
+
- (bluefox) Added support for prefixes for translations
|
|
1200
1229
|
|
|
1201
1230
|
### 3.2.1 (2022-10-24)
|
|
1202
1231
|
|
|
1203
|
-
-
|
|
1232
|
+
- (bluefox) Corrected color inversion
|
|
1204
1233
|
|
|
1205
1234
|
### 3.2.0 (2022-10-19)
|
|
1206
1235
|
|
|
1207
|
-
-
|
|
1236
|
+
- (bluefox) Added ukrainian translation
|
|
1208
1237
|
|
|
1209
1238
|
### 3.1.35 (2022-10-17)
|
|
1210
1239
|
|
|
1211
|
-
-
|
|
1240
|
+
- (bluefox) small changes for material
|
|
1212
1241
|
|
|
1213
1242
|
### 3.1.34 (2022-08-24)
|
|
1214
1243
|
|
|
1215
|
-
-
|
|
1244
|
+
- (bluefox) Implemented fallback to english by translations
|
|
1216
1245
|
|
|
1217
1246
|
### 3.1.33 (2022-08-24)
|
|
1218
1247
|
|
|
1219
|
-
-
|
|
1248
|
+
- (bluefox) Added support for onchange flag
|
|
1220
1249
|
|
|
1221
1250
|
### 3.1.30 (2022-08-23)
|
|
1222
1251
|
|
|
1223
|
-
-
|
|
1224
|
-
-
|
|
1252
|
+
- (bluefox) Added method `getCompactSystemRepositories`
|
|
1253
|
+
- (bluefox) corrected error in `ObjectBrowser`
|
|
1225
1254
|
|
|
1226
1255
|
### 3.1.27 (2022-08-01)
|
|
1227
1256
|
|
|
1228
|
-
-
|
|
1257
|
+
- (bluefox) Disable file editing in FileViewer
|
|
1229
1258
|
|
|
1230
1259
|
### 3.1.26 (2022-08-01)
|
|
1231
1260
|
|
|
1232
|
-
-
|
|
1233
|
-
-
|
|
1261
|
+
- (bluefox) Added translations
|
|
1262
|
+
- (bluefox) JSON schema was extended with missing definitions
|
|
1234
1263
|
|
|
1235
1264
|
### 3.1.24 (2022-07-28)
|
|
1236
1265
|
|
|
1237
|
-
-
|
|
1266
|
+
- (bluefox) Updated file browser and object browser
|
|
1238
1267
|
|
|
1239
1268
|
### 3.1.23 (2022-07-25)
|
|
1240
1269
|
|
|
1241
|
-
-
|
|
1270
|
+
- (bluefox) Extend custom filter for object selector
|
|
1242
1271
|
|
|
1243
1272
|
### 3.1.22 (2022-07-22)
|
|
1244
1273
|
|
|
1245
|
-
-
|
|
1274
|
+
- (bluefox) Added i18n tools for development
|
|
1246
1275
|
|
|
1247
1276
|
### 3.1.20 (2022-07-14)
|
|
1248
1277
|
|
|
1249
|
-
-
|
|
1278
|
+
- (bluefox) Allowed to show select dialog with the expert mode enabled
|
|
1250
1279
|
|
|
1251
1280
|
### 3.1.19 (2022-07-08)
|
|
1252
1281
|
|
|
1253
|
-
-
|
|
1282
|
+
- (bluefox) Allowed extending translations for all languages together
|
|
1254
1283
|
|
|
1255
1284
|
### 3.1.18 (2022-07-06)
|
|
1256
1285
|
|
|
1257
|
-
-
|
|
1286
|
+
- (bluefox) Added translation
|
|
1258
1287
|
|
|
1259
1288
|
### 3.1.17 (2022-07-05)
|
|
1260
1289
|
|
|
1261
|
-
-
|
|
1290
|
+
- (bluefox) Deactivate JSON editor for JSONConfig because of space
|
|
1262
1291
|
|
|
1263
1292
|
### 3.1.16 (2022-06-27)
|
|
1264
1293
|
|
|
1265
|
-
-
|
|
1294
|
+
- (bluefox) Update object browser
|
|
1266
1295
|
|
|
1267
1296
|
### 3.1.15 (2022-06-27)
|
|
1268
1297
|
|
|
1269
|
-
-
|
|
1298
|
+
- (bluefox) Allowed using of spaces in name
|
|
1270
1299
|
|
|
1271
1300
|
### 3.1.14 (2022-06-23)
|
|
1272
1301
|
|
|
1273
|
-
-
|
|
1302
|
+
- (bluefox) Added translations
|
|
1274
1303
|
|
|
1275
1304
|
### 3.1.11 (2022-06-22)
|
|
1276
1305
|
|
|
1277
|
-
-
|
|
1306
|
+
- (bluefox) Added preparations for iobroker cloud
|
|
1278
1307
|
|
|
1279
1308
|
### 3.1.10 (2022-06-22)
|
|
1280
1309
|
|
|
1281
|
-
-
|
|
1310
|
+
- (bluefox) Added translations
|
|
1282
1311
|
|
|
1283
1312
|
### 3.1.9 (2022-06-20)
|
|
1284
1313
|
|
|
1285
|
-
-
|
|
1314
|
+
- (bluefox) Allowed working behind reverse proxy
|
|
1286
1315
|
|
|
1287
1316
|
### 3.1.7 (2022-06-19)
|
|
1288
1317
|
|
|
1289
|
-
-
|
|
1318
|
+
- (bluefox) Added file select dialog
|
|
1290
1319
|
|
|
1291
1320
|
### 3.1.3 (2022-06-13)
|
|
1292
1321
|
|
|
1293
|
-
-
|
|
1322
|
+
- (bluefox) Added table with resized headers
|
|
1294
1323
|
|
|
1295
1324
|
### 3.1.2 (2022-06-09)
|
|
1296
1325
|
|
|
1297
|
-
-
|
|
1326
|
+
- (bluefox) Added new document icon (read only)
|
|
1298
1327
|
|
|
1299
1328
|
### 3.1.1 (2022-06-09)
|
|
1300
1329
|
|
|
1301
|
-
-
|
|
1330
|
+
- (bluefox) Allowed working behind reverse proxy
|
|
1302
1331
|
|
|
1303
1332
|
### 3.1.0 (2022-06-07)
|
|
1304
1333
|
|
|
1305
|
-
-
|
|
1334
|
+
- (bluefox) Some german texts were corrected
|
|
1306
1335
|
|
|
1307
1336
|
### 3.0.17 (2022-06-03)
|
|
1308
1337
|
|
|
1309
|
-
-
|
|
1338
|
+
- (bluefox) Allowed calling getAdapterInstances not for admin too
|
|
1310
1339
|
|
|
1311
1340
|
### 3.0.15 (2022-06-01)
|
|
1312
1341
|
|
|
1313
|
-
-
|
|
1342
|
+
- (bluefox) Updated JsonConfigComponent: password, table
|
|
1314
1343
|
|
|
1315
1344
|
### 3.0.14 (2022-05-25)
|
|
1316
1345
|
|
|
1317
|
-
-
|
|
1346
|
+
- (bluefox) Added ConfigGeneric to import
|
|
1318
1347
|
|
|
1319
1348
|
### 3.0.7 (2022-05-25)
|
|
1320
1349
|
|
|
1321
|
-
-
|
|
1350
|
+
- (bluefox) Made the module definitions
|
|
1322
1351
|
|
|
1323
1352
|
### 3.0.6 (2022-05-25)
|
|
1324
1353
|
|
|
1325
|
-
-
|
|
1354
|
+
- (bluefox) Added JsonConfigComponent
|
|
1326
1355
|
|
|
1327
1356
|
### 2.1.11 (2022-05-24)
|
|
1328
1357
|
|
|
1329
|
-
-
|
|
1358
|
+
- (bluefox) Update file browser. It supports now the file changed events.
|
|
1330
1359
|
|
|
1331
1360
|
### 2.1.10 (2022-05-24)
|
|
1332
1361
|
|
|
1333
|
-
-
|
|
1362
|
+
- (bluefox) Corrected object browser
|
|
1334
1363
|
|
|
1335
1364
|
### 2.1.9 (2022-05-16)
|
|
1336
1365
|
|
|
1337
|
-
-
|
|
1366
|
+
- (bluefox) Corrected expert mode in object browser
|
|
1338
1367
|
|
|
1339
1368
|
### 2.1.7 (2022-05-09)
|
|
1340
1369
|
|
|
1341
|
-
-
|
|
1342
|
-
-
|
|
1370
|
+
- (bluefox) Changes were synchronized with adapter-react-v5
|
|
1371
|
+
- (bluefox) Added `I18n.disableWarning` method
|
|
1343
1372
|
|
|
1344
1373
|
### 2.1.6 (2022-03-28)
|
|
1345
1374
|
|
|
1346
|
-
-
|
|
1347
|
-
-
|
|
1375
|
+
- (bluefox) Added `log` method to connection
|
|
1376
|
+
- (bluefox) Corrected translations
|
|
1348
1377
|
|
|
1349
1378
|
### 2.1.1 (2022-03-27)
|
|
1350
1379
|
|
|
1351
|
-
-
|
|
1380
|
+
- (bluefox) Corrected error in TreeTable
|
|
1352
1381
|
|
|
1353
1382
|
### 2.1.0 (2022-03-26)
|
|
1354
1383
|
|
|
1355
|
-
-
|
|
1384
|
+
- (bluefox) BREAKING_CHANGE: Corrected error with readFile(base64=false)
|
|
1356
1385
|
|
|
1357
1386
|
### 2.0.0 (2022-03-26)
|
|
1358
1387
|
|
|
1359
|
-
-
|
|
1388
|
+
- (bluefox) Initial version
|
|
1360
1389
|
|
|
1361
1390
|
### 0.1.0 (2022-03-23)
|
|
1362
1391
|
|
|
1363
|
-
-
|
|
1392
|
+
- (bluefox) Fixed theme errors
|
|
1364
1393
|
|
|
1365
1394
|
### 0.0.4 (2022-03-22)
|
|
1366
1395
|
|
|
1367
|
-
-
|
|
1396
|
+
- (bluefox) Fixed eslint warnings
|
|
1368
1397
|
|
|
1369
1398
|
### 0.0.3 (2022-03-19)
|
|
1370
1399
|
|
|
1371
|
-
-
|
|
1400
|
+
- (bluefox) beta version
|
|
1372
1401
|
|
|
1373
1402
|
### 0.0.2 (2022-02-24)
|
|
1374
1403
|
|
|
1375
|
-
-
|
|
1404
|
+
- (bluefox) try to publish a first version
|
|
1376
1405
|
|
|
1377
1406
|
### 0.0.1 (2022-02-24)
|
|
1378
1407
|
|