@iobroker/adapter-react-v5 5.0.8 → 6.0.0

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 (53) hide show
  1. package/Components/404.d.ts +2 -5
  2. package/Components/404.js +10 -10
  3. package/Components/ColorPicker.d.ts +41 -4
  4. package/Components/ColorPicker.js +35 -32
  5. package/Components/ComplexCron.d.ts +35 -4
  6. package/Components/ComplexCron.js +14 -15
  7. package/Components/CustomModal.d.ts +2 -3
  8. package/Components/CustomModal.js +15 -16
  9. package/Components/FileBrowser.d.ts +116 -4
  10. package/Components/FileBrowser.js +160 -164
  11. package/Components/FileViewer.js +10 -8
  12. package/Components/Icon.d.ts +1 -0
  13. package/Components/Icon.js +11 -4
  14. package/Components/IconPicker.d.ts +5 -1
  15. package/Components/IconPicker.js +47 -49
  16. package/Components/ObjectBrowser.d.ts +12 -15
  17. package/Components/ObjectBrowser.js +362 -326
  18. package/Components/SaveCloseButtons.d.ts +6 -3
  19. package/Components/SaveCloseButtons.js +4 -5
  20. package/Components/Schedule.d.ts +60 -3
  21. package/Components/Schedule.js +112 -117
  22. package/Components/SelectWithIcon.d.ts +17 -4
  23. package/Components/SelectWithIcon.js +11 -7
  24. package/Components/SimpleCron/index.d.ts +19 -3
  25. package/Components/SimpleCron/index.js +8 -9
  26. package/Components/TabContainer.d.ts +3 -4
  27. package/Components/TabContainer.js +3 -7
  28. package/Components/TabContent.d.ts +2 -3
  29. package/Components/TabContent.js +2 -4
  30. package/Components/TableResize.d.ts +26 -3
  31. package/Components/TableResize.js +1 -39
  32. package/Components/TextWithIcon.d.ts +4 -4
  33. package/Components/TextWithIcon.js +6 -7
  34. package/Components/TreeTable.d.ts +40 -5
  35. package/Components/TreeTable.js +39 -37
  36. package/Components/UploadImage.d.ts +13 -4
  37. package/Components/UploadImage.js +11 -13
  38. package/Components/Utils.d.ts +2 -1
  39. package/Components/Utils.js +31 -0
  40. package/Dialogs/ComplexCron.d.ts +11 -3
  41. package/Dialogs/ComplexCron.js +2 -3
  42. package/Dialogs/Confirm.d.ts +20 -7
  43. package/Dialogs/Confirm.js +4 -15
  44. package/Dialogs/Cron.d.ts +12 -3
  45. package/Dialogs/Cron.js +3 -11
  46. package/Dialogs/SelectFile.d.ts +12 -3
  47. package/Dialogs/SelectFile.js +8 -9
  48. package/Dialogs/SelectID.d.ts +1 -1
  49. package/Dialogs/SelectID.js +1 -1
  50. package/Dialogs/SimpleCron.d.ts +10 -3
  51. package/Dialogs/SimpleCron.js +2 -10
  52. package/README.md +73 -0
  53. package/package.json +6 -7
@@ -40,7 +40,6 @@ exports.ObjectBrowserClass = exports.ITEM_IMAGES = exports.getSelectIdIconFromOb
40
40
  *
41
41
  * */
42
42
  const react_1 = __importStar(require("react"));
43
- const styles_1 = require("@mui/styles");
44
43
  const react_inlinesvg_1 = __importDefault(require("react-inlinesvg"));
45
44
  const material_1 = require("@mui/material");
46
45
  // Icons
@@ -79,7 +78,7 @@ const COLOR_NAME_CONNECTED_DARK = '#57ff45';
79
78
  const COLOR_NAME_CONNECTED_LIGHT = '#098c04';
80
79
  const COLOR_NAME_DISCONNECTED_DARK = '#f3ad11';
81
80
  const COLOR_NAME_DISCONNECTED_LIGHT = '#6c5008';
82
- const styles = (theme) => ({
81
+ const styles = {
83
82
  toolbar: {
84
83
  minHeight: 38, // Theme.toolbar.height,
85
84
  // boxShadow: '0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)'
@@ -89,14 +88,14 @@ const styles = (theme) => ({
89
88
  marginLeft: 4,
90
89
  },
91
90
  switchColumnAuto: {
92
- marginLeft: theme.spacing(2),
91
+ marginLeft: 16,
93
92
  },
94
93
  dialogColumns: {
95
94
  transition: 'opacity 1s',
96
95
  },
97
96
  dialogColumnsLabel: {
98
97
  fontSize: 12,
99
- paddingTop: theme.spacing(1),
98
+ paddingTop: 8,
100
99
  },
101
100
  columnCustom: {
102
101
  width: '100%',
@@ -147,11 +146,8 @@ const styles = (theme) => ({
147
146
  transparent_100: {
148
147
  opacity: 1,
149
148
  },
150
- columnsDialogInputWidth: {
151
- width: 80,
152
- },
153
149
  headerRow: {
154
- paddingLeft: theme.spacing(1),
150
+ paddingLeft: 8,
155
151
  height: 38,
156
152
  whiteSpace: 'nowrap',
157
153
  userSelect: 'none',
@@ -170,14 +166,14 @@ const styles = (theme) => ({
170
166
  opacity: 0.7,
171
167
  },
172
168
  tableDiv: {
173
- paddingTop: 0, // theme.spacing(1),
169
+ paddingTop: 0,
174
170
  paddingLeft: 0,
175
- width: `calc(100% - ${theme.spacing(1)})`,
171
+ width: 'calc(100% - 8px)',
176
172
  height: 'calc(100% - 38px)',
177
173
  overflow: 'auto',
178
174
  },
179
- tableRow: {
180
- paddingLeft: theme.spacing(1),
175
+ tableRow: (theme) => ({
176
+ pl: 1,
181
177
  height: ROW_HEIGHT,
182
178
  lineHeight: `${ROW_HEIGHT}px`,
183
179
  verticalAlign: 'top',
@@ -189,13 +185,13 @@ const styles = (theme) => ({
189
185
  },
190
186
  whiteSpace: 'nowrap',
191
187
  flexWrap: 'nowrap',
192
- },
193
- tableRowLines: {
188
+ }),
189
+ tableRowLines: (theme) => ({
194
190
  borderBottom: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,
195
191
  '& > div': {
196
192
  borderRight: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,
197
193
  },
198
- },
194
+ }),
199
195
  tableRowNoDragging: {
200
196
  cursor: 'pointer',
201
197
  },
@@ -225,7 +221,7 @@ const styles = (theme) => ({
225
221
  display: 'block',
226
222
  width: ROW_HEIGHT - 4,
227
223
  height: ROW_HEIGHT - 4,
228
- marginTop: 2,
224
+ mt: '2px',
229
225
  float: 'right',
230
226
  },
231
227
  '&:hover .iconOwn': {
@@ -242,18 +238,19 @@ const styles = (theme) => ({
242
238
  // display: 'inline-block',
243
239
  // verticalAlign: 'top',
244
240
  },
245
- cellIdIconFolder: {
246
- marginRight: theme.spacing(1),
241
+ // this style is used for simple div. Do not migrate it to "secondary.main"
242
+ cellIdIconFolder: (theme) => ({
243
+ marginRight: 8,
247
244
  width: ROW_HEIGHT - 4,
248
245
  height: ROW_HEIGHT - 4,
249
246
  cursor: 'pointer',
250
247
  color: theme.palette.secondary.main || '#fbff7d',
251
248
  verticalAlign: 'top',
252
- },
249
+ }),
253
250
  cellIdIconDocument: {
254
251
  verticalAlign: 'middle',
255
252
  marginLeft: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,
256
- marginRight: theme.spacing(1),
253
+ marginRight: 8,
257
254
  width: SMALL_BUTTON_SIZE,
258
255
  height: SMALL_BUTTON_SIZE,
259
256
  },
@@ -275,9 +272,6 @@ const styles = (theme) => ({
275
272
  height: SMALL_BUTTON_SIZE,
276
273
  top: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,
277
274
  opacity: 0.8,
278
- '&:hover': {
279
- opacity: 1,
280
- },
281
275
  position: 'absolute',
282
276
  right: 3,
283
277
  },
@@ -297,7 +291,7 @@ const styles = (theme) => ({
297
291
  display: 'inline-block',
298
292
  verticalAlign: 'top',
299
293
  fontSize: 14,
300
- marginLeft: 5,
294
+ ml: '5px',
301
295
  overflow: 'hidden',
302
296
  textOverflow: 'ellipsis',
303
297
  position: 'relative',
@@ -317,14 +311,14 @@ const styles = (theme) => ({
317
311
  opacity: 0.5,
318
312
  fontStyle: 'italic',
319
313
  },
320
- cellIdAlias: {
314
+ cellIdAlias: (theme) => ({
321
315
  fontStyle: 'italic',
322
316
  fontSize: 12,
323
317
  opacity: 0.7,
324
318
  '&:hover': {
325
319
  color: theme.palette.mode === 'dark' ? '#009900' : '#007700',
326
320
  },
327
- },
321
+ }),
328
322
  cellIdAliasReadWriteDiv: {
329
323
  height: 24,
330
324
  marginTop: -5,
@@ -440,23 +434,9 @@ const styles = (theme) => ({
440
434
  pointerEvents: 'none',
441
435
  },
442
436
  cellValueTextUnit: {
443
- marginLeft: theme.spacing(0.5),
437
+ marginLeft: 4,
444
438
  opacity: 0.8,
445
439
  },
446
- newValue: {
447
- animation: '$newValueAnimation 2s ease-in-out',
448
- },
449
- '@keyframes newValueAnimation': {
450
- '0%': {
451
- color: '#00f900',
452
- },
453
- '80%': {
454
- color: '#008000',
455
- },
456
- '100%': {
457
- color: theme.palette.mode === 'dark' ? '#fff' : '#000',
458
- },
459
- },
460
440
  cellValueTextState: {
461
441
  opacity: 0.7,
462
442
  },
@@ -497,15 +477,14 @@ const styles = (theme) => ({
497
477
  paddingTop: 0,
498
478
  marginTop: -2,
499
479
  },
500
- cellButtonsButtonWithCustoms: {
480
+ cellButtonsButtonWithCustoms: (theme) => ({
501
481
  color: theme.palette.mode === 'dark' ? theme.palette.primary.main : theme.palette.secondary.main,
502
- },
482
+ }),
503
483
  cellButtonsButtonWithoutCustoms: {
504
484
  opacity: 0.2,
505
485
  },
506
- cellButtonsValueButton: {
486
+ cellButtonsValueButton: (theme) => ({
507
487
  position: 'absolute',
508
- display: 'inline-block',
509
488
  top: SMALL_BUTTON_SIZE / 2 - 2,
510
489
  opacity: 0.7,
511
490
  width: SMALL_BUTTON_SIZE - 2,
@@ -514,13 +493,13 @@ const styles = (theme) => ({
514
493
  '&:hover': {
515
494
  opacity: 1,
516
495
  },
517
- },
496
+ }),
518
497
  cellButtonsValueButtonCopy: {
519
- right: theme.spacing(1),
498
+ right: 8,
520
499
  cursor: 'pointer',
521
500
  },
522
501
  cellButtonsValueButtonEdit: {
523
- right: SMALL_BUTTON_SIZE / 2 + parseInt(theme.spacing(2), 10),
502
+ right: (SMALL_BUTTON_SIZE / 2) + 16,
524
503
  },
525
504
  filteredOut: {
526
505
  opacity: 0.5,
@@ -529,8 +508,8 @@ const styles = (theme) => ({
529
508
  opacity: 0.3,
530
509
  },
531
510
  filterInput: {
532
- marginTop: 0,
533
- marginBottom: 0,
511
+ mt: 0,
512
+ mb: 0,
534
513
  },
535
514
  selectIcon: {
536
515
  width: 24,
@@ -540,10 +519,10 @@ const styles = (theme) => ({
540
519
  selectNone: {
541
520
  opacity: 0.5,
542
521
  },
543
- itemSelected: {
522
+ itemSelected: (theme) => ({
544
523
  background: `${theme.palette.primary.main} !important`,
545
524
  color: `${Utils_1.default.invertColor(theme.palette.primary.main, true)} !important`,
546
- },
525
+ }),
547
526
  header: {
548
527
  width: '100%',
549
528
  },
@@ -559,7 +538,7 @@ const styles = (theme) => ({
559
538
  headerCellInput: {
560
539
  width: 'calc(100% - 5px)',
561
540
  height: ROW_HEIGHT,
562
- paddingTop: 0,
541
+ pt: 0,
563
542
  '& .itemIcon': {
564
543
  verticalAlign: 'middle',
565
544
  width: ICON_SIZE,
@@ -571,7 +550,7 @@ const styles = (theme) => ({
571
550
  '& .itemIcon': {
572
551
  width: ICON_SIZE,
573
552
  height: ICON_SIZE,
574
- marginRight: 5,
553
+ mr: '5px',
575
554
  display: 'inline-block',
576
555
  },
577
556
  },
@@ -583,7 +562,7 @@ const styles = (theme) => ({
583
562
  flexGrow: 1,
584
563
  },
585
564
  enumIconDiv: {
586
- marginRight: theme.spacing(1),
565
+ marginRight: 8,
587
566
  width: 32,
588
567
  height: 32,
589
568
  borderRadius: 8,
@@ -633,18 +612,13 @@ const styles = (theme) => ({
633
612
  display: 'flex',
634
613
  flexDirection: 'column',
635
614
  },
636
- '@media screen and (max-width: 465px)': {
637
- columnsDialogInputWidth: {
638
- width: 50,
639
- },
640
- fontSizeTitle: {
615
+ fontSizeTitle: {
616
+ '@media screen and (max-width: 465px)': {
641
617
  '& *': {
642
618
  fontSize: 12,
643
619
  },
644
620
  },
645
621
  },
646
- '@media screen and (max-width: 700px)': {},
647
- '@media screen and (max-width: 430px)': {},
648
622
  draggable: {
649
623
  cursor: 'copy',
650
624
  },
@@ -655,33 +629,33 @@ const styles = (theme) => ({
655
629
  position: 'absolute',
656
630
  top: 0,
657
631
  right: 0,
658
- borderRadius: 20,
659
- backgroundColor: theme.palette.background.default,
632
+ borderRadius: 5,
633
+ backgroundColor: 'background.default',
660
634
  },
661
- iconDeviceConnected: {
635
+ iconDeviceConnected: (theme) => ({
662
636
  color: theme.palette.mode === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT,
663
637
  opacity: 0.8,
664
638
  position: 'absolute',
665
639
  top: 4,
666
640
  right: 32,
667
641
  width: 20,
668
- },
669
- iconDeviceDisconnected: {
642
+ }),
643
+ iconDeviceDisconnected: (theme) => ({
670
644
  color: theme.palette.mode === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT,
671
645
  opacity: 0.8,
672
646
  position: 'absolute',
673
647
  top: 4,
674
648
  right: 32,
675
649
  width: 20,
676
- },
677
- iconDeviceError: {
650
+ }),
651
+ iconDeviceError: (theme) => ({
678
652
  color: theme.palette.mode === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT,
679
653
  opacity: 0.8,
680
654
  position: 'absolute',
681
655
  top: 4,
682
656
  right: 50,
683
657
  width: 20,
684
- },
658
+ }),
685
659
  resizeHandle: {
686
660
  display: 'block',
687
661
  position: 'absolute',
@@ -703,51 +677,79 @@ const styles = (theme) => ({
703
677
  borderRightStyle: 'solid',
704
678
  },
705
679
  },
706
- invertedBackground: {
680
+ invertedBackground: (theme) => ({
707
681
  backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',
708
682
  padding: '0 3px',
709
683
  borderRadius: '2px 0 0 2px',
710
- },
711
- invertedBackgroundFlex: {
684
+ }),
685
+ invertedBackgroundFlex: (theme) => ({
712
686
  backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',
713
687
  borderRadius: '0 2px 2px 0',
714
- },
715
- contextMenuEdit: {
688
+ }),
689
+ contextMenuEdit: (theme) => ({
716
690
  color: theme.palette.mode === 'dark' ? '#ffee48' : '#cbb801',
717
- },
718
- contextMenuEditValue: {
691
+ }),
692
+ contextMenuEditValue: (theme) => ({
719
693
  color: theme.palette.mode === 'dark' ? '#5dff45' : '#1cd301',
720
- },
721
- contextMenuView: {
694
+ }),
695
+ contextMenuView: (theme) => ({
722
696
  color: theme.palette.mode === 'dark' ? '#FFF' : '#000',
723
- },
724
- contextMenuCustom: {
697
+ }),
698
+ contextMenuCustom: (theme) => ({
725
699
  color: theme.palette.mode === 'dark' ? '#42eaff' : '#01bbc2',
726
- },
727
- contextMenuACL: {
700
+ }),
701
+ contextMenuACL: (theme) => ({
728
702
  color: theme.palette.mode === 'dark' ? '#e079ff' : '#500070',
729
- },
730
- contextMenuRoom: {
703
+ }),
704
+ contextMenuRoom: (theme) => ({
731
705
  color: theme.palette.mode === 'dark' ? '#ff9a33' : '#642a00',
732
- },
733
- contextMenuRole: {
706
+ }),
707
+ contextMenuRole: (theme) => ({
734
708
  color: theme.palette.mode === 'dark' ? '#ffdb43' : '#562d00',
735
- },
736
- contextMenuAlias: {
737
- color: theme.palette.mode === 'dark' ? '#5cabfb' : '#011ed0',
738
- },
739
- contextMenuDelete: {
709
+ }),
710
+ contextMenuDelete: (theme) => ({
740
711
  color: theme.palette.mode === 'dark' ? '#ff4f4f' : '#cf0000',
741
- },
712
+ }),
742
713
  contextMenuKeys: {
743
- marginLeft: theme.spacing(1),
714
+ marginLeft: 8,
744
715
  opacity: 0.7,
745
716
  fontSize: 'smaller',
746
717
  },
747
718
  contextMenuWithSubMenu: {
748
719
  display: 'flex',
749
720
  },
750
- });
721
+ };
722
+ function getStyle(theme, ...args) {
723
+ const result = {};
724
+ for (let a = 0; a < args.length; a++) {
725
+ if (typeof args[a] === 'function') {
726
+ Object.assign(result, args[a](theme));
727
+ }
728
+ else if (args[a] && typeof args[a] === 'object') {
729
+ Object.keys(args[a]).forEach((attr) => {
730
+ if (typeof args[a][attr] === 'function') {
731
+ result[attr] = args[a][attr](theme);
732
+ }
733
+ else if (typeof args[a][attr] === 'object') {
734
+ const obj = args[a][attr];
735
+ result[attr] = {};
736
+ Object.keys(obj).forEach((attr1) => {
737
+ if (typeof obj[attr1] === 'function') {
738
+ result[attr][attr1] = obj(theme);
739
+ }
740
+ else if (obj[attr1] || obj[attr1] === 0) {
741
+ result[attr][attr1] = obj[attr1];
742
+ }
743
+ });
744
+ }
745
+ else if (args[a][attr] || args[a][attr] === 0) {
746
+ result[attr] = args[a][attr];
747
+ }
748
+ });
749
+ }
750
+ }
751
+ return result;
752
+ }
751
753
  /**
752
754
  * Function that walks through all keys of an object or array and applies a function to each key.
753
755
  */
@@ -1188,12 +1190,12 @@ function getObjectTooltip(data, lang) {
1188
1190
  }
1189
1191
  return null;
1190
1192
  }
1191
- function getIdFieldTooltip(data, classes, lang) {
1193
+ function getIdFieldTooltip(data, lang) {
1192
1194
  const tooltip = getObjectTooltip(data, lang);
1193
1195
  if (tooltip === null || tooltip === void 0 ? void 0 : tooltip.startsWith('http')) {
1194
- return react_1.default.createElement("a", { className: Utils_1.default.clsx(classes.cellIdTooltipLink), href: tooltip, target: "_blank", rel: "noreferrer" }, tooltip);
1196
+ return react_1.default.createElement(material_1.Box, { component: "a", sx: styles.cellIdTooltipLink, href: tooltip, target: "_blank", rel: "noreferrer" }, tooltip);
1195
1197
  }
1196
- return react_1.default.createElement("span", { className: Utils_1.default.clsx(classes.cellIdTooltip) }, tooltip || data.id || '');
1198
+ return react_1.default.createElement("span", { style: styles.cellIdTooltip }, tooltip || data.id || '');
1197
1199
  }
1198
1200
  function buildTree(objects, options) {
1199
1201
  var _b, _c, _d, _e, _f;
@@ -1684,14 +1686,6 @@ exports.ITEM_IMAGES = {
1684
1686
  script: react_1.default.createElement(icons_material_1.Code, { className: "itemIcon" }),
1685
1687
  folder: react_1.default.createElement(IconClosed_1.default, { className: "itemIcon itemIconFolder" }),
1686
1688
  };
1687
- const StyledBadge = (0, styles_1.withStyles)(theme => ({
1688
- badge: {
1689
- right: 3,
1690
- top: 3,
1691
- border: `2px solid ${theme.palette.background.paper}`,
1692
- padding: '0 4px',
1693
- },
1694
- }))(material_1.Badge);
1695
1689
  const SCREEN_WIDTHS = {
1696
1690
  // extra-small: 0px
1697
1691
  xs: { idWidth: '100%', fields: [], widths: {} },
@@ -1797,6 +1791,7 @@ class ObjectBrowserClass extends react_1.Component {
1797
1791
  this.objectsUpdateTimer = null;
1798
1792
  this.filterTimer = null;
1799
1793
  this.adapterColumns = [];
1794
+ this.styleTheme = '';
1800
1795
  this.edit = {
1801
1796
  id: '',
1802
1797
  val: '',
@@ -1821,6 +1816,7 @@ class ObjectBrowserClass extends react_1.Component {
1821
1816
  this.changedIds = null;
1822
1817
  this.contextMenu = null;
1823
1818
  this.recordStates = [];
1819
+ this.styles = {};
1824
1820
  this.customColumnDialog = null;
1825
1821
  /**
1826
1822
  * Context menu handler.
@@ -2081,9 +2077,9 @@ class ObjectBrowserClass extends react_1.Component {
2081
2077
  arrayTooltipText.push(react_1.default.createElement("span", { key: value + i },
2082
2078
  this.texts[`acl${el.group}_${el.title}_${value}`],
2083
2079
  ",",
2084
- react_1.default.createElement("span", { className: value === 'object'
2085
- ? this.props.classes.rightsObject
2086
- : this.props.classes.rightsState }, el.value)));
2080
+ react_1.default.createElement("span", { style: value === 'object'
2081
+ ? styles.rightsObject
2082
+ : styles.rightsState }, el.value)));
2087
2083
  }
2088
2084
  });
2089
2085
  };
@@ -2093,7 +2089,7 @@ class ObjectBrowserClass extends react_1.Component {
2093
2089
  if (acl.state) {
2094
2090
  funcRenderStateObject('state');
2095
2091
  }
2096
- return arrayTooltipText.length ? react_1.default.createElement("span", { className: this.props.classes.tooltipAccessControl }, arrayTooltipText.map(el => el)) : null;
2092
+ return arrayTooltipText.length ? react_1.default.createElement("span", { style: styles.tooltipAccessControl }, arrayTooltipText.map(el => el)) : null;
2097
2093
  };
2098
2094
  this.resizerMouseMove = (e) => {
2099
2095
  if (this.resizerActiveDiv) {
@@ -2154,10 +2150,10 @@ class ObjectBrowserClass extends react_1.Component {
2154
2150
  if (e.target.dataset.left === 'true') {
2155
2151
  this.resizeLeft = true;
2156
2152
  this.resizerNextDiv = this.resizerActiveDiv.previousElementSibling;
2157
- let handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);
2153
+ let handle = this.resizerNextDiv.querySelector('.iob-ob-resize-handler');
2158
2154
  while (this.resizerNextDiv && !handle && i < 10) {
2159
2155
  this.resizerNextDiv = this.resizerNextDiv.previousElementSibling;
2160
- handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);
2156
+ handle = this.resizerNextDiv.querySelector('.iob-ob-resize-handler');
2161
2157
  i++;
2162
2158
  }
2163
2159
  if ((handle === null || handle === void 0 ? void 0 : handle.dataset.left) !== 'true') {
@@ -2167,7 +2163,7 @@ class ObjectBrowserClass extends react_1.Component {
2167
2163
  else {
2168
2164
  this.resizeLeft = false;
2169
2165
  this.resizerNextDiv = this.resizerActiveDiv.nextElementSibling;
2170
- /* while (this.resizerNextDiv && !this.resizerNextDiv.querySelector('.' + this.props.classes.resizeHandle) && i < 10) {
2166
+ /* while (this.resizerNextDiv && !this.resizerNextDiv.querySelector('.iob-ob-resize-handler') && i < 10) {
2171
2167
  this.resizerNextDiv = this.resizerNextDiv.nextElementSibling;
2172
2168
  i++;
2173
2169
  } */
@@ -2796,20 +2792,20 @@ class ObjectBrowserClass extends react_1.Component {
2796
2792
  if (!this.state.columnsSelectorShow) {
2797
2793
  return null;
2798
2794
  }
2799
- return react_1.default.createElement(material_1.Dialog, { onClose: () => this.setState({ columnsSelectorShow: false }), open: !0, classes: {
2800
- root: Utils_1.default.clsx(this.props.classes.dialogColumns, this.props.classes[`transparent_${this.state.columnsDialogTransparent}`]),
2795
+ return react_1.default.createElement(material_1.Dialog, { onClose: () => this.setState({ columnsSelectorShow: false }), open: !0, sx: {
2796
+ '& .MuiPaper-root': getStyle(this.props.theme, styles.dialogColumns, styles[`transparent_${this.state.columnsDialogTransparent}`]),
2801
2797
  } },
2802
- react_1.default.createElement(material_1.DialogTitle, { className: this.props.classes.fontSizeTitle }, this.props.t('ra_Configure')),
2803
- react_1.default.createElement(material_1.DialogContent, { className: this.props.classes.fontSizeTitle },
2804
- react_1.default.createElement(material_1.FormControlLabel, { className: this.props.classes.switchColumnAuto, control: react_1.default.createElement(material_1.Switch, { checked: this.state.foldersFirst, onChange: () => {
2798
+ react_1.default.createElement(material_1.DialogTitle, { sx: styles.fontSizeTitle }, this.props.t('ra_Configure')),
2799
+ react_1.default.createElement(material_1.DialogContent, { sx: styles.fontSizeTitle },
2800
+ react_1.default.createElement(material_1.FormControlLabel, { style: styles.switchColumnAuto, control: react_1.default.createElement(material_1.Switch, { checked: this.state.foldersFirst, onChange: () => {
2805
2801
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.foldersFirst`, this.state.foldersFirst ? 'false' : 'true');
2806
2802
  this.setState({ foldersFirst: !this.state.foldersFirst });
2807
2803
  } }), label: this.props.t('ra_Folders always first') }),
2808
- react_1.default.createElement(material_1.FormControlLabel, { className: this.props.classes.switchColumnAuto, control: react_1.default.createElement(material_1.Switch, { checked: this.state.linesEnabled, onChange: () => {
2804
+ react_1.default.createElement(material_1.FormControlLabel, { style: styles.switchColumnAuto, control: react_1.default.createElement(material_1.Switch, { checked: this.state.linesEnabled, onChange: () => {
2809
2805
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.lines`, this.state.linesEnabled ? 'false' : 'true');
2810
2806
  this.setState({ linesEnabled: !this.state.linesEnabled });
2811
2807
  } }), label: this.props.t('ra_Show lines between rows') }),
2812
- react_1.default.createElement(material_1.FormControlLabel, { className: this.props.classes.switchColumnAuto, control: react_1.default.createElement(material_1.Switch, { checked: this.state.columnsAuto, onChange: () => {
2808
+ react_1.default.createElement(material_1.FormControlLabel, { style: styles.switchColumnAuto, control: react_1.default.createElement(material_1.Switch, { checked: this.state.columnsAuto, onChange: () => {
2813
2809
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.columnsAuto`, this.state.columnsAuto ? 'false' : 'true');
2814
2810
  if (!this.state.columnsAuto) {
2815
2811
  this.calculateColumnsVisibility(true);
@@ -2924,7 +2920,7 @@ class ObjectBrowserClass extends react_1.Component {
2924
2920
  item.objTypes = [item.objTypes];
2925
2921
  }
2926
2922
  else if (!item.objTypes) {
2927
- item.objTypes = null;
2923
+ item.objTypes = undefined;
2928
2924
  }
2929
2925
  if (!item.name && item.path) {
2930
2926
  return {
@@ -3105,7 +3101,7 @@ class ObjectBrowserClass extends react_1.Component {
3105
3101
  }
3106
3102
  getFilterInput(filterName) {
3107
3103
  var _b, _c, _d;
3108
- return react_1.default.createElement(material_1.FormControl, { className: Utils_1.default.clsx(this.props.classes.headerCellInput, this.props.classes.filterInput), key: `${filterName}_${this.state.filterKey}`,
3104
+ return react_1.default.createElement(material_1.FormControl, { sx: this.styles.filterInput, key: `${filterName}_${this.state.filterKey}`,
3109
3105
  // style={{ marginTop: 0, marginBottom: 0 }}
3110
3106
  margin: "dense" },
3111
3107
  react_1.default.createElement(material_1.Input, { ref: this.filterRefs[filterName], classes: { underline: 'no-underline' }, id: filterName, placeholder: this.texts[`filter_${filterName}`], defaultValue: this.state.filter[filterName] || '', onChange: () => {
@@ -3127,12 +3123,12 @@ class ObjectBrowserClass extends react_1.Component {
3127
3123
  var _b, _c, _d;
3128
3124
  const hasIcons = !!(values === null || values === void 0 ? void 0 : values.find(item => item.icon));
3129
3125
  return react_1.default.createElement("div", { style: { position: 'relative' } },
3130
- react_1.default.createElement(material_1.Select, { variant: "standard", key: `${name}_${this.state.filterKey}`, ref: this.filterRefs[name], className: `${this.props.classes.headerCellInput} no-underline`, onChange: () => {
3126
+ react_1.default.createElement(material_1.Select, { variant: "standard", key: `${name}_${this.state.filterKey}`, ref: this.filterRefs[name], sx: styles.headerCellInput, className: "no-underline", onChange: () => {
3131
3127
  this.filterTimer && clearTimeout(this.filterTimer);
3132
3128
  this.filterTimer = setTimeout(() => this.onFilter(), 400);
3133
3129
  }, defaultValue: this.state.filter[name] || '', inputProps: { name, id: name }, displayEmpty: true },
3134
3130
  react_1.default.createElement(material_1.MenuItem, { key: "empty", value: "" },
3135
- react_1.default.createElement("span", { className: this.props.classes.selectNone }, this.texts[`filter_${name}`])), values === null || values === void 0 ? void 0 :
3131
+ react_1.default.createElement("span", { style: styles.selectNone }, this.texts[`filter_${name}`])), values === null || values === void 0 ? void 0 :
3136
3132
  values.map(item => {
3137
3133
  let id;
3138
3134
  let _name;
@@ -3146,11 +3142,11 @@ class ObjectBrowserClass extends react_1.Component {
3146
3142
  id = item;
3147
3143
  _name = item;
3148
3144
  }
3149
- return react_1.default.createElement(material_1.MenuItem, { className: this.props.classes.headerCellSelectItem, key: id, value: id },
3145
+ return react_1.default.createElement(material_1.MenuItem, { sx: styles.headerCellSelectItem, key: id, value: id },
3150
3146
  icon || (hasIcons ? react_1.default.createElement("div", { className: "itemIcon" }) : null),
3151
3147
  _name);
3152
3148
  })),
3153
- ((_d = (_c = (_b = this.filterRefs[name]) === null || _b === void 0 ? void 0 : _b.current) === null || _c === void 0 ? void 0 : _c.childNodes[1]) === null || _d === void 0 ? void 0 : _d.value) ? react_1.default.createElement("div", { className: Utils_1.default.clsx(this.props.classes.selectClearButton) },
3149
+ ((_d = (_c = (_b = this.filterRefs[name]) === null || _b === void 0 ? void 0 : _b.current) === null || _c === void 0 ? void 0 : _c.childNodes[1]) === null || _d === void 0 ? void 0 : _d.value) ? react_1.default.createElement(material_1.Box, { component: "div", sx: styles.selectClearButton },
3154
3150
  react_1.default.createElement(material_1.IconButton, { size: "small", onClick: () => {
3155
3151
  var _b;
3156
3152
  const newFilter = Object.assign({}, this.state.filter);
@@ -3170,7 +3166,7 @@ class ObjectBrowserClass extends react_1.Component {
3170
3166
  return ({
3171
3167
  name: getName((_c = (_b = this.objects[id]) === null || _b === void 0 ? void 0 : _b.common) === null || _c === void 0 ? void 0 : _c.name, this.props.lang) || id.split('.').pop(),
3172
3168
  value: id,
3173
- icon: react_1.default.createElement(Icon_1.default, { src: ((_e = (_d = this.objects[id]) === null || _d === void 0 ? void 0 : _d.common) === null || _e === void 0 ? void 0 : _e.icon) || '', className: this.props.classes.selectIcon }),
3169
+ icon: react_1.default.createElement(Icon_1.default, { src: ((_e = (_d = this.objects[id]) === null || _d === void 0 ? void 0 : _d.common) === null || _e === void 0 ? void 0 : _e.icon) || '', style: styles.selectIcon }),
3174
3170
  });
3175
3171
  });
3176
3172
  return this.getFilterSelect('room', rooms);
@@ -3181,7 +3177,7 @@ class ObjectBrowserClass extends react_1.Component {
3181
3177
  return ({
3182
3178
  name: getName((_c = (_b = this.objects[id]) === null || _b === void 0 ? void 0 : _b.common) === null || _c === void 0 ? void 0 : _c.name, this.props.lang) || id.split('.').pop(),
3183
3179
  value: id,
3184
- icon: react_1.default.createElement(Icon_1.default, { src: ((_e = (_d = this.objects[id]) === null || _d === void 0 ? void 0 : _d.common) === null || _e === void 0 ? void 0 : _e.icon) || '', className: this.props.classes.selectIcon }),
3180
+ icon: react_1.default.createElement(Icon_1.default, { src: ((_e = (_d = this.objects[id]) === null || _d === void 0 ? void 0 : _d.common) === null || _e === void 0 ? void 0 : _e.icon) || '', style: styles.selectIcon }),
3185
3181
  });
3186
3182
  });
3187
3183
  return this.getFilterSelect('func', func);
@@ -3199,7 +3195,7 @@ class ObjectBrowserClass extends react_1.Component {
3199
3195
  const customs = this.info.customs.map(id => ({
3200
3196
  name: id === '_' ? this.texts.filterCustomsWithout : id,
3201
3197
  value: id,
3202
- icon: id === '_' ? null : react_1.default.createElement(Icon_1.default, { src: getSelectIdIconFromObjects(this.objects, id, this.imagePrefix) || '', className: this.props.classes.selectIcon }),
3198
+ icon: id === '_' ? null : react_1.default.createElement(Icon_1.default, { src: getSelectIdIconFromObjects(this.objects, id, this.imagePrefix) || '', style: styles.selectIcon }),
3203
3199
  }));
3204
3200
  return this.getFilterSelect('custom', customs);
3205
3201
  }
@@ -3539,40 +3535,54 @@ class ObjectBrowserClass extends react_1.Component {
3539
3535
  width: '100%',
3540
3536
  alignItems: 'center',
3541
3537
  } },
3542
- react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Refresh tree'), classes: { popper: this.props.classes.tooltip } },
3538
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Refresh tree'), componentsProps: { popper: { sx: styles.tooltip } } },
3543
3539
  react_1.default.createElement("div", null,
3544
3540
  react_1.default.createElement(material_1.IconButton, { onClick: () => this.refreshComponent(), disabled: this.state.updating, size: "large" },
3545
3541
  react_1.default.createElement(icons_material_1.Refresh, null)))),
3546
- this.props.showExpertButton && !this.props.expertMode && (react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_expertMode'), classes: { popper: this.props.classes.tooltip } },
3542
+ this.props.showExpertButton && !this.props.expertMode && (react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_expertMode'), componentsProps: { popper: { sx: styles.tooltip } } },
3547
3543
  react_1.default.createElement(material_1.IconButton, { key: "expertMode", color: this.state.filter.expertMode ? 'secondary' : 'default', onClick: () => this.onFilter('expertMode', !this.state.filter.expertMode), size: "large" },
3548
3544
  react_1.default.createElement(IconExpert_1.default, null)))),
3549
- !this.props.disableColumnSelector && (react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Configure'), classes: { popper: this.props.classes.tooltip } },
3545
+ !this.props.disableColumnSelector && (react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Configure'), componentsProps: { popper: { sx: styles.tooltip } } },
3550
3546
  react_1.default.createElement(material_1.IconButton, { key: "columnSelector", color: this.state.columnsAuto ? 'primary' : 'default', onClick: () => this.setState({ columnsSelectorShow: true }), size: "large" },
3551
3547
  react_1.default.createElement(icons_material_1.ViewColumn, null)))),
3552
- this.state.expandAllVisible && (react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Expand all nodes'), classes: { popper: this.props.classes.tooltip } },
3548
+ this.state.expandAllVisible && (react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Expand all nodes'), componentsProps: { popper: { sx: styles.tooltip } } },
3553
3549
  react_1.default.createElement(material_1.IconButton, { key: "expandAll", onClick: () => this.onExpandAll(), size: "large" },
3554
3550
  react_1.default.createElement(IconOpen_1.default, null)))),
3555
- react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Collapse all nodes'), classes: { popper: this.props.classes.tooltip } },
3551
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Collapse all nodes'), componentsProps: { popper: { sx: styles.tooltip } } },
3556
3552
  react_1.default.createElement(material_1.IconButton, { key: "collapseAll", onClick: () => this.onCollapseAll(), size: "large" },
3557
3553
  react_1.default.createElement(IconClosed_1.default, null))),
3558
- react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Expand one step node'), classes: { popper: this.props.classes.tooltip } },
3554
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Expand one step node'), componentsProps: { popper: { sx: styles.tooltip } } },
3559
3555
  react_1.default.createElement(material_1.IconButton, { key: "expandVisible", color: "primary", onClick: () => this.onExpandVisible(), size: "large" },
3560
- react_1.default.createElement(StyledBadge, { badgeContent: this.state.depth, color: "secondary" },
3556
+ react_1.default.createElement(material_1.Badge, { badgeContent: this.state.depth, color: "secondary", sx: (theme) => ({
3557
+ badge: {
3558
+ right: 3,
3559
+ top: 3,
3560
+ border: `2px solid ${theme.palette.background.paper}`,
3561
+ padding: '0 4px',
3562
+ },
3563
+ }) },
3561
3564
  react_1.default.createElement(IconOpen_1.default, null)))),
3562
- react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Collapse one step node'), classes: { popper: this.props.classes.tooltip } },
3565
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Collapse one step node'), componentsProps: { popper: { sx: styles.tooltip } } },
3563
3566
  react_1.default.createElement(material_1.IconButton, { key: "collapseVisible", color: "primary", onClick: () => this.onCollapseVisible(), size: "large" },
3564
- react_1.default.createElement(StyledBadge, { badgeContent: this.state.depth, color: "secondary" },
3567
+ react_1.default.createElement(material_1.Badge, { sx: (theme) => ({
3568
+ badge: {
3569
+ right: 3,
3570
+ top: 3,
3571
+ border: `2px solid ${theme.palette.background.paper}`,
3572
+ padding: '0 4px',
3573
+ },
3574
+ }), badgeContent: this.state.depth, color: "secondary" },
3565
3575
  react_1.default.createElement(IconClosed_1.default, null)))),
3566
- this.props.objectStatesView && (react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Toggle the states view'), classes: { popper: this.props.classes.tooltip } },
3576
+ this.props.objectStatesView && (react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Toggle the states view'), componentsProps: { popper: { sx: styles.tooltip } } },
3567
3577
  react_1.default.createElement(material_1.IconButton, { onClick: () => this.onStatesViewVisible(), size: "large" },
3568
3578
  react_1.default.createElement(icons_material_1.LooksOne, { color: this.state.statesView ? 'primary' : 'inherit' })))),
3569
- react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Show/Hide object descriptions'), classes: { popper: this.props.classes.tooltip } },
3579
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Show/Hide object descriptions'), componentsProps: { popper: { sx: styles.tooltip } } },
3570
3580
  react_1.default.createElement(material_1.IconButton, { onClick: () => {
3571
3581
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.desc`, this.state.showDescription ? 'false' : 'true');
3572
3582
  this.setState({ showDescription: !this.state.showDescription });
3573
3583
  }, size: "large" },
3574
3584
  react_1.default.createElement(icons_material_1.TextFields, { color: this.state.showDescription ? 'primary' : 'inherit' }))),
3575
- this.props.objectAddBoolean ? react_1.default.createElement(material_1.Tooltip, { title: this.toolTipObjectCreating(), classes: { popper: this.props.classes.tooltip } },
3585
+ this.props.objectAddBoolean ? react_1.default.createElement(material_1.Tooltip, { title: this.toolTipObjectCreating(), componentsProps: { popper: { sx: styles.tooltip } } },
3576
3586
  react_1.default.createElement("div", null,
3577
3587
  react_1.default.createElement(material_1.IconButton, { disabled: !allowObjectCreation, onClick: () => this.setState({
3578
3588
  modalNewObj: {
@@ -3580,7 +3590,7 @@ class ObjectBrowserClass extends react_1.Component {
3580
3590
  },
3581
3591
  }), size: "large" },
3582
3592
  react_1.default.createElement(icons_material_1.Add, null)))) : null,
3583
- this.props.objectImportExport && react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Add objects tree from JSON file'), classes: { popper: this.props.classes.tooltip } },
3593
+ this.props.objectImportExport && react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Add objects tree from JSON file'), componentsProps: { popper: { sx: styles.tooltip } } },
3584
3594
  react_1.default.createElement(material_1.IconButton, { onClick: () => {
3585
3595
  const input = document.createElement('input');
3586
3596
  input.setAttribute('type', 'file');
@@ -3592,11 +3602,11 @@ class ObjectBrowserClass extends react_1.Component {
3592
3602
  react_1.default.createElement(icons_material_1.Publish, null))),
3593
3603
  this.props.objectImportExport &&
3594
3604
  (!!this.state.selected.length || this.state.selectedNonObject) &&
3595
- react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Save objects tree as JSON file'), classes: { popper: this.props.classes.tooltip } },
3605
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Save objects tree as JSON file'), componentsProps: { popper: { sx: styles.tooltip } } },
3596
3606
  react_1.default.createElement(material_1.IconButton, { onClick: () => this.setState({ showExportDialog: this._getSelectedIdsForExport().length }), size: "large" },
3597
3607
  react_1.default.createElement(icons_material_1.Publish, { style: { transform: 'rotate(180deg)' } })))),
3598
3608
  !!this.props.objectBrowserEditObject && (react_1.default.createElement("div", { style: { display: 'flex', whiteSpace: 'nowrap' } }, `${this.props.t('ra_Objects')}: ${Object.keys(this.info.objects).length}, ${this.props.t('ra_States')}: ${Object.keys(this.info.objects).filter(el => this.info.objects[el].type === 'state').length}`)),
3599
- this.props.objectEditBoolean && react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Edit custom config'), classes: { popper: this.props.classes.tooltip } },
3609
+ this.props.objectEditBoolean && react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Edit custom config'), componentsProps: { popper: { sx: styles.tooltip } } },
3600
3610
  react_1.default.createElement(material_1.IconButton, { onClick: () => {
3601
3611
  var _b;
3602
3612
  // get all visible states
@@ -3639,12 +3649,12 @@ class ObjectBrowserClass extends react_1.Component {
3639
3649
  this.setState({ toast: this.props.t('ra_Copied') });
3640
3650
  }
3641
3651
  }
3642
- renderColumnButtons(id, item, classes) {
3652
+ renderColumnButtons(id, item) {
3643
3653
  var _b, _c, _d;
3644
3654
  if (!item.data.obj) {
3645
- return this.props.onObjectDelete || this.props.objectEditOfAccessControl ? react_1.default.createElement("div", { className: classes.buttonDiv },
3646
- this.state.filter.expertMode && this.props.objectEditOfAccessControl ? react_1.default.createElement(material_1.IconButton, { className: Utils_1.default.clsx(classes.cellButtonsButton, classes.cellButtonsEmptyButton, classes.cellButtonMinWidth), onClick: () => this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data }), size: "large" }, "---") : null,
3647
- this.props.onObjectDelete && item.children && item.children.length ? react_1.default.createElement(material_1.IconButton, { className: Utils_1.default.clsx(classes.cellButtonsButton, classes.cellButtonsButtonAlone), size: "small", "aria-label": "delete", title: this.texts.deleteObject, onClick: () => {
3655
+ return this.props.onObjectDelete || this.props.objectEditOfAccessControl ? react_1.default.createElement("div", { style: styles.buttonDiv },
3656
+ this.state.filter.expertMode && this.props.objectEditOfAccessControl ? react_1.default.createElement(material_1.IconButton, { sx: Object.assign(Object.assign(Object.assign({}, styles.cellButtonsButton), styles.cellButtonsEmptyButton), styles.cellButtonMinWidth), onClick: () => this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data }), size: "large" }, "---") : null,
3657
+ this.props.onObjectDelete && item.children && item.children.length ? react_1.default.createElement(material_1.IconButton, { style: Object.assign(Object.assign({}, styles.cellButtonsButton), styles.cellButtonsButtonAlone), size: "small", "aria-label": "delete", title: this.texts.deleteObject, onClick: () => {
3648
3658
  var _b;
3649
3659
  // calculate the number of children
3650
3660
  const keys = Object.keys(this.objects);
@@ -3661,7 +3671,7 @@ class ObjectBrowserClass extends react_1.Component {
3661
3671
  }
3662
3672
  this.props.onObjectDelete && this.props.onObjectDelete(id, !!((_b = item.children) === null || _b === void 0 ? void 0 : _b.length), false, count + 1);
3663
3673
  } },
3664
- react_1.default.createElement(icons_material_1.Delete, { className: classes.cellButtonsButtonIcon })) : null) : null;
3674
+ react_1.default.createElement(icons_material_1.Delete, { style: styles.cellButtonsButtonIcon })) : null) : null;
3665
3675
  }
3666
3676
  item.data.aclTooltip = item.data.aclTooltip || this.renderTooltipAccessControl(item.data.obj.acl);
3667
3677
  const acl = item.data.obj.acl
@@ -3675,19 +3685,19 @@ class ObjectBrowserClass extends react_1.Component {
3675
3685
  : this.systemConfig.common.defaultNewAcl.object);
3676
3686
  const showEdit = this.state.filter.expertMode || _a.isNonExpertId(item.data.id);
3677
3687
  return [
3678
- this.state.filter.expertMode && this.props.objectEditOfAccessControl ? react_1.default.createElement(material_1.Tooltip, { key: "acl", title: item.data.aclTooltip, classes: { popper: this.props.classes.tooltip } },
3679
- react_1.default.createElement(material_1.IconButton, { className: classes.cellButtonMinWidth, onClick: () => this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data }), size: "large" },
3680
- react_1.default.createElement("div", { className: classes.aclText }, Number.isNaN(Number(acl))
3688
+ this.state.filter.expertMode && this.props.objectEditOfAccessControl ? react_1.default.createElement(material_1.Tooltip, { key: "acl", title: item.data.aclTooltip, componentsProps: { popper: { sx: styles.tooltip } } },
3689
+ react_1.default.createElement(material_1.IconButton, { style: styles.cellButtonMinWidth, onClick: () => this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data }), size: "large" },
3690
+ react_1.default.createElement("div", { style: styles.aclText }, Number.isNaN(Number(acl))
3681
3691
  ? Number(aclSystemConfig).toString(16)
3682
3692
  : Number(acl).toString(16)))) :
3683
- react_1.default.createElement("div", { key: "aclEmpty", className: classes.cellButtonMinWidth }),
3684
- showEdit ? react_1.default.createElement(material_1.IconButton, { key: "edit", className: classes.cellButtonsButton, size: "small", "aria-label": "edit", title: this.texts.editObject, onClick: () => {
3693
+ react_1.default.createElement("div", { key: "aclEmpty", style: styles.cellButtonMinWidth }),
3694
+ showEdit ? react_1.default.createElement(material_1.IconButton, { key: "edit", style: styles.cellButtonsButton, size: "small", "aria-label": "edit", title: this.texts.editObject, onClick: () => {
3685
3695
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);
3686
3696
  this.setState({ editObjectDialog: id, editObjectAlias: false });
3687
3697
  } },
3688
- react_1.default.createElement(icons_material_1.Edit, { className: classes.cellButtonsButtonIcon })) :
3689
- react_1.default.createElement("div", { key: "editDisabled", className: classes.cellButtonsButton }),
3690
- this.props.onObjectDelete && (((_b = item.children) === null || _b === void 0 ? void 0 : _b.length) || !((_c = item.data.obj.common) === null || _c === void 0 ? void 0 : _c.dontDelete)) ? react_1.default.createElement(material_1.IconButton, { key: "delete", className: classes.cellButtonsButton, size: "small", "aria-label": "delete", onClick: () => {
3698
+ react_1.default.createElement(icons_material_1.Edit, { style: styles.cellButtonsButtonIcon })) :
3699
+ react_1.default.createElement("div", { key: "editDisabled", style: styles.cellButtonsButton }),
3700
+ this.props.onObjectDelete && (((_b = item.children) === null || _b === void 0 ? void 0 : _b.length) || !((_c = item.data.obj.common) === null || _c === void 0 ? void 0 : _c.dontDelete)) ? react_1.default.createElement(material_1.IconButton, { key: "delete", style: styles.cellButtonsButton, size: "small", "aria-label": "delete", onClick: () => {
3691
3701
  var _b, _c, _d;
3692
3702
  const keys = Object.keys(this.objects);
3693
3703
  keys.sort();
@@ -3703,21 +3713,21 @@ class ObjectBrowserClass extends react_1.Component {
3703
3713
  }
3704
3714
  this.props.onObjectDelete && this.props.onObjectDelete(id, !!((_b = item.children) === null || _b === void 0 ? void 0 : _b.length), !((_d = (_c = item.data.obj) === null || _c === void 0 ? void 0 : _c.common) === null || _d === void 0 ? void 0 : _d.dontDelete), count);
3705
3715
  }, title: this.texts.deleteObject },
3706
- react_1.default.createElement(icons_material_1.Delete, { className: classes.cellButtonsButtonIcon })) : null,
3716
+ react_1.default.createElement(icons_material_1.Delete, { style: styles.cellButtonsButtonIcon })) : null,
3707
3717
  this.props.objectCustomDialog &&
3708
3718
  this.info.hasSomeCustoms &&
3709
3719
  item.data.obj.type === 'state' &&
3710
3720
  // @ts-expect-error deprecated from js-controller 6
3711
- ((_d = item.data.obj.common) === null || _d === void 0 ? void 0 : _d.type) !== 'file' ? react_1.default.createElement(material_1.IconButton, { className: Utils_1.default.clsx(classes.cellButtonsButton, item.data.hasCustoms
3712
- ? classes.cellButtonsButtonWithCustoms
3713
- : classes.cellButtonsButtonWithoutCustoms), key: "custom", size: "small", "aria-label": "config", title: this.texts.customConfig, onClick: () => {
3721
+ ((_d = item.data.obj.common) === null || _d === void 0 ? void 0 : _d.type) !== 'file' ? react_1.default.createElement(material_1.IconButton, { xs: Object.assign(Object.assign({}, styles.cellButtonsButton), (item.data.hasCustoms
3722
+ ? this.styles.cellButtonsButtonWithCustoms
3723
+ : styles.cellButtonsButtonWithoutCustoms)), key: "custom", size: "small", "aria-label": "config", title: this.texts.customConfig, onClick: () => {
3714
3724
  var _b;
3715
3725
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);
3716
3726
  this.pauseSubscribe(true);
3717
3727
  (_b = this.props.router) === null || _b === void 0 ? void 0 : _b.doNavigate(null, 'customs', id);
3718
3728
  this.setState({ customDialog: [id], customDialogAll: false });
3719
3729
  } },
3720
- react_1.default.createElement(icons_material_1.Settings, { className: classes.cellButtonsButtonIcon })) : null,
3730
+ react_1.default.createElement(icons_material_1.Settings, { style: styles.cellButtonsButtonIcon })) : null,
3721
3731
  ];
3722
3732
  }
3723
3733
  readHistory(id) {
@@ -3776,7 +3786,7 @@ class ObjectBrowserClass extends react_1.Component {
3776
3786
  var _b, _c;
3777
3787
  const obj = this.objects[id];
3778
3788
  const state = this.states[id];
3779
- const classes = this.props.classes;
3789
+ const classes = styles;
3780
3790
  const { valFull, fileViewer } = formatValue({
3781
3791
  state,
3782
3792
  obj: obj,
@@ -3786,25 +3796,25 @@ class ObjectBrowserClass extends react_1.Component {
3786
3796
  full: true,
3787
3797
  });
3788
3798
  const valFullRx = [];
3789
- valFull.forEach(_item => {
3799
+ valFull === null || valFull === void 0 ? void 0 : valFull.forEach(_item => {
3790
3800
  if (_item.t === this.texts.quality && state.q) {
3791
- valFullRx.push(react_1.default.createElement("div", { className: classes.cellValueTooltipBoth, key: _item.t },
3801
+ valFullRx.push(react_1.default.createElement("div", { style: classes.cellValueTooltipBoth, key: _item.t },
3792
3802
  _item.t,
3793
3803
  ":\u00A0",
3794
3804
  _item.v));
3795
- // <div className={classes.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,
3805
+ // <div style={styles.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,
3796
3806
  !_item.nbr && valFullRx.push(react_1.default.createElement("br", { key: `${_item.t}_br` }));
3797
3807
  }
3798
3808
  else {
3799
- valFullRx.push(react_1.default.createElement("div", { className: classes.cellValueTooltipTitle, key: _item.t },
3809
+ valFullRx.push(react_1.default.createElement("div", { style: classes.cellValueTooltipTitle, key: _item.t },
3800
3810
  _item.t,
3801
3811
  ":\u00A0"));
3802
- valFullRx.push(react_1.default.createElement("div", { className: classes.cellValueTooltipValue, key: `${_item.t}_v` }, _item.v));
3812
+ valFullRx.push(react_1.default.createElement("div", { style: classes.cellValueTooltipValue, key: `${_item.t}_v` }, _item.v));
3803
3813
  !_item.nbr && valFullRx.push(react_1.default.createElement("br", { key: `${_item.t}_br` }));
3804
3814
  }
3805
3815
  });
3806
3816
  if (fileViewer === 'image') {
3807
- valFullRx.push(react_1.default.createElement("img", { className: classes.cellValueTooltipImage, src: state.val, alt: id }));
3817
+ valFullRx.push(react_1.default.createElement("img", { style: classes.cellValueTooltipImage, src: state.val, alt: id }));
3808
3818
  }
3809
3819
  else if (this.defaultHistory &&
3810
3820
  ((_c = (_b = this.objects[id]) === null || _b === void 0 ? void 0 : _b.common) === null || _c === void 0 ? void 0 : _c.custom) &&
@@ -3813,14 +3823,14 @@ class ObjectBrowserClass extends react_1.Component {
3813
3823
  }
3814
3824
  this.setState({ tooltipInfo: { el: valFullRx, id } }, () => cb && cb());
3815
3825
  }
3816
- renderColumnValue(id, item, classes) {
3826
+ renderColumnValue(id, item) {
3817
3827
  var _b, _c;
3818
3828
  const obj = item.data.obj;
3819
3829
  if (!obj || !this.states) {
3820
3830
  return null;
3821
3831
  }
3822
3832
  if (((_b = obj.common) === null || _b === void 0 ? void 0 : _b.type) === 'file') {
3823
- return react_1.default.createElement("div", { className: Utils_1.default.clsx(classes.cellValueText, classes.cellValueFile) }, "[file]");
3833
+ return react_1.default.createElement(material_1.Box, { component: "div", sx: Object.assign(Object.assign({}, styles.cellValueText), styles.cellValueFile) }, "[file]");
3824
3834
  }
3825
3835
  if (!this.states[id]) {
3826
3836
  if (obj.type === 'state') {
@@ -3845,26 +3855,26 @@ class ObjectBrowserClass extends react_1.Component {
3845
3855
  const valTextRx = [];
3846
3856
  item.data.state = { valTextRx };
3847
3857
  const copyText = valText.v || '';
3848
- valTextRx.push(react_1.default.createElement("span", { className: classes.newValue, key: `${valText.v.toString()}valText` }, valText.v.toString()));
3849
- valText.u && valTextRx.push(react_1.default.createElement("span", { className: Utils_1.default.clsx(classes.cellValueTextUnit, classes.newValue), key: `${valText.v.toString()}unit` }, valText.u));
3850
- valText.s !== undefined && valTextRx.push(react_1.default.createElement("span", { className: Utils_1.default.clsx(classes.cellValueTextState, classes.newValue), key: `${valText.v.toString()}states` },
3858
+ valTextRx.push(react_1.default.createElement("span", { className: `newValueBrowser-${this.props.themeType || 'light'}`, key: `${valText.v.toString()}valText` }, valText.v.toString()));
3859
+ valText.u && valTextRx.push(react_1.default.createElement("span", { className: `newValueBrowser-${this.props.themeType || 'light'}`, style: styles.cellValueTextUnit, key: `${valText.v.toString()}unit` }, valText.u));
3860
+ valText.s !== undefined && valTextRx.push(react_1.default.createElement("span", { style: styles.cellValueTextState, className: `newValueBrowser-${this.props.themeType || 'light'}`, key: `${valText.v.toString()}states` },
3851
3861
  "(",
3852
3862
  valText.s,
3853
3863
  ")"));
3854
- valTextRx.push(react_1.default.createElement(IconCopy_1.default, { className: Utils_1.default.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonCopy), onClick: e => this.onCopy(e, copyText), key: "cc" }));
3855
- // <IconEdit className={ Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonEdit) } key="ce" />
3864
+ valTextRx.push(react_1.default.createElement(IconCopy_1.default, { className: "copyButton", style: this.styles.iconCopy, onClick: e => this.onCopy(e, copyText), key: "cc" }));
3865
+ // <IconEdit className="copyButton" style={{{ ...styles.cellButtonsValueButton, styles.cellButtonsValueButtonEdit)} key="ce" />
3856
3866
  info = item.data.state;
3857
3867
  }
3858
3868
  info.style = getValueStyle({ state, isExpertMode: this.state.filter.expertMode, isButton: item.data.button });
3859
3869
  let val = info.valTextRx;
3860
3870
  if (!this.state.filter.expertMode && item.data.button) {
3861
- val = [react_1.default.createElement(icons_material_1.RoomService, { className: this.props.classes.cellValueButton })];
3871
+ val = [react_1.default.createElement(icons_material_1.RoomService, { style: styles.cellValueButton })];
3862
3872
  }
3863
- return react_1.default.createElement(material_1.Tooltip, { key: "value", title: ((_c = this.state.tooltipInfo) === null || _c === void 0 ? void 0 : _c.el) || 'Calculating...', classes: {
3864
- tooltip: this.props.classes.cellValueTooltip,
3865
- popper: this.props.classes.cellValueTooltipBox,
3873
+ return react_1.default.createElement(material_1.Tooltip, { key: "value", title: ((_c = this.state.tooltipInfo) === null || _c === void 0 ? void 0 : _c.el) || 'Calculating...', componentsProps: {
3874
+ popper: { sx: styles.cellValueTooltipBox },
3875
+ tooltip: { sx: styles.cellValueTooltip },
3866
3876
  }, onOpen: () => this.getTooltipInfo(id, () => this.readHistory(id)), onClose: () => { var _b; return ((_b = this.state.tooltipInfo) === null || _b === void 0 ? void 0 : _b.id) === id && this.setState({ tooltipInfo: null }); } },
3867
- react_1.default.createElement("div", { style: info.style, className: classes.cellValueText }, val));
3877
+ react_1.default.createElement(material_1.Box, { component: "div", style: info.style, sx: styles.cellValueText }, val));
3868
3878
  }
3869
3879
  _syncEnum(id, enumIds, newArray, cb) {
3870
3880
  var _b, _c, _d;
@@ -3934,17 +3944,17 @@ class ObjectBrowserClass extends react_1.Component {
3934
3944
  .sort((a, b) => (a.name > b.name ? 1 : -1));
3935
3945
  enums.forEach(_item => {
3936
3946
  if (_item.icon && typeof _item.icon === 'string') {
3937
- _item.icon = (react_1.default.createElement("div", { className: this.props.classes.enumIconDiv },
3938
- react_1.default.createElement("img", { src: _item.icon, className: this.props.classes.enumIcon, alt: _item.name })));
3947
+ _item.icon = react_1.default.createElement(material_1.Box, { style: styles.enumIconDiv },
3948
+ react_1.default.createElement("img", { src: _item.icon, style: styles.enumIcon, alt: _item.name }));
3939
3949
  }
3940
3950
  });
3941
3951
  // const hasIcons = !!enums.find(item => item.icon);
3942
- return react_1.default.createElement(material_1.Dialog, { className: this.props.classes.enumDialog, onClose: () => this.setState({ enumDialog: null }), "aria-labelledby": "enum-dialog-title", open: !0 },
3952
+ return react_1.default.createElement(material_1.Dialog, { sx: { '& .MuiPaper-root': styles.enumDialog }, onClose: () => this.setState({ enumDialog: null }), "aria-labelledby": "enum-dialog-title", open: !0 },
3943
3953
  react_1.default.createElement(material_1.DialogTitle, { id: "enum-dialog-title" },
3944
3954
  type === 'func' ? this.props.t('ra_Define functions') : this.props.t('ra_Define rooms'),
3945
- react_1.default.createElement(material_1.Fab, { className: this.props.classes.enumButton, color: "primary", disabled: enumsOriginal === JSON.stringify(itemEnums), size: "small", onClick: () => this.syncEnum(item.data.id, type, itemEnums).then(() => this.setState({ enumDialog: null, enumDialogEnums: null })) },
3955
+ react_1.default.createElement(material_1.Fab, { sx: styles.enumButton, color: "primary", disabled: enumsOriginal === JSON.stringify(itemEnums), size: "small", onClick: () => this.syncEnum(item.data.id, type, itemEnums).then(() => this.setState({ enumDialog: null, enumDialogEnums: null })) },
3946
3956
  react_1.default.createElement(icons_material_1.Check, null))),
3947
- react_1.default.createElement(material_1.List, { classes: { root: this.props.classes.enumList } }, enums.map(_item => {
3957
+ react_1.default.createElement(material_1.List, { sx: { '&.MuiList-root': styles.enumList } }, enums.map(_item => {
3948
3958
  let id;
3949
3959
  let name;
3950
3960
  let icon;
@@ -3958,7 +3968,7 @@ class ObjectBrowserClass extends react_1.Component {
3958
3968
  name = _item;
3959
3969
  }
3960
3970
  const labelId = `checkbox-list-label-${id}`;
3961
- return react_1.default.createElement(material_1.ListItem, { className: this.props.classes.headerCellSelectItem, key: id, onClick: () => {
3971
+ return react_1.default.createElement(material_1.ListItem, { sx: styles.headerCellSelectItem, key: id, onClick: () => {
3962
3972
  const pos = itemEnums.indexOf(id);
3963
3973
  const enumDialogEnums = JSON.parse(JSON.stringify(this.state.enumDialogEnums));
3964
3974
  if (pos === -1) {
@@ -3970,7 +3980,7 @@ class ObjectBrowserClass extends react_1.Component {
3970
3980
  }
3971
3981
  this.setState({ enumDialogEnums });
3972
3982
  } },
3973
- react_1.default.createElement(material_1.ListItemIcon, { classes: { root: this.props.classes.enumCheckbox } },
3983
+ react_1.default.createElement(material_1.ListItemIcon, { sx: { '&.MuiListItemIcon-root': styles.enumCheckbox } },
3974
3984
  react_1.default.createElement(material_1.Checkbox, { edge: "start", checked: itemEnums.includes(id), tabIndex: -1, disableRipple: true, inputProps: { 'aria-labelledby': labelId } })),
3975
3985
  react_1.default.createElement(material_1.ListItemText, { id: labelId }, name),
3976
3986
  icon ? react_1.default.createElement(material_1.ListItemSecondaryAction, null, icon) : null);
@@ -3982,11 +3992,7 @@ class ObjectBrowserClass extends react_1.Component {
3982
3992
  }
3983
3993
  if (this.state.roleDialog && this.props.objectBrowserEditRole) {
3984
3994
  const ObjectBrowserEditRole = this.props.objectBrowserEditRole;
3985
- return react_1.default.createElement(ObjectBrowserEditRole
3986
- // dummy, just to make compiler happy
3987
- , {
3988
- // dummy, just to make compiler happy
3989
- classes: {}, key: "objectBrowserEditRole", id: this.state.roleDialog, socket: this.props.socket, t: this.props.t, roles: this.info.roles, onClose: (obj) => {
3995
+ return react_1.default.createElement(ObjectBrowserEditRole, { key: "objectBrowserEditRole", id: this.state.roleDialog, socket: this.props.socket, t: this.props.t, roles: this.info.roles, onClose: (obj) => {
3990
3996
  if (obj) {
3991
3997
  this.info.objects[this.state.roleDialog] = obj;
3992
3998
  }
@@ -4167,19 +4173,19 @@ class ObjectBrowserClass extends react_1.Component {
4167
4173
  const text = _a.getCustomValue(obj, it);
4168
4174
  if (text !== null && text !== undefined) {
4169
4175
  if (it.edit && !this.props.notEditable && (!it.objTypes || it.objTypes.includes(obj.type))) {
4170
- return react_1.default.createElement("div", { className: Utils_1.default.clsx(this.props.classes.columnCustom, this.props.classes.columnCustomEditable, this.props.classes[`columnCustom_${it.align}`]), onClick: () => this.setState({
4176
+ return react_1.default.createElement(material_1.Box, { component: "div", style: Object.assign(Object.assign(Object.assign({}, styles.columnCustom), styles.columnCustomEditable), styles[`columnCustom_${it.align}`]), onClick: () => this.setState({
4171
4177
  columnsEditCustomDialog: { item, it, obj },
4172
4178
  customColumnDialogValueChanged: false,
4173
4179
  }) }, text);
4174
4180
  }
4175
- return react_1.default.createElement("div", { className: Utils_1.default.clsx(this.props.classes.columnCustom, this.props.classes[`columnCustom_${it.align}`]) }, text);
4181
+ return react_1.default.createElement(material_1.Box, { component: "div", style: Object.assign(Object.assign({}, styles.columnCustom), styles[`columnCustom_${it.align}`]) }, text);
4176
4182
  }
4177
4183
  return null;
4178
4184
  }
4179
4185
  /**
4180
4186
  * Renders a leaf.
4181
4187
  */
4182
- renderLeaf(item, isExpanded, classes, counter) {
4188
+ renderLeaf(item, isExpanded, counter) {
4183
4189
  var _b, _c, _d, _e, _f, _g, _h, _j, _k;
4184
4190
  const id = item.data.id;
4185
4191
  counter.count++;
@@ -4193,22 +4199,24 @@ class ObjectBrowserClass extends react_1.Component {
4193
4199
  itemType === 'device' ||
4194
4200
  itemType === 'channel' ||
4195
4201
  itemType === 'meta') {
4196
- iconFolder = isExpanded ? (react_1.default.createElement(IconOpen_1.default, { className: classes.cellIdIconFolder, onClick: () => this.toggleExpanded(id) })) : (react_1.default.createElement(IconClosed_1.default, { className: classes.cellIdIconFolder, onClick: () => this.toggleExpanded(id) }));
4202
+ iconFolder = isExpanded ?
4203
+ react_1.default.createElement(IconOpen_1.default, { style: this.styles.cellIdIconFolder, onClick: () => this.toggleExpanded(id) }) :
4204
+ react_1.default.createElement(IconClosed_1.default, { style: this.styles.cellIdIconFolder, onClick: () => this.toggleExpanded(id) });
4197
4205
  }
4198
4206
  else if (obj && obj.common && obj.common.write === false && obj.type === 'state') {
4199
- iconFolder = react_1.default.createElement(IconDocumentReadOnly_1.default, { className: classes.cellIdIconDocument });
4207
+ iconFolder = react_1.default.createElement(IconDocumentReadOnly_1.default, { style: this.styles.cellIdIconDocument });
4200
4208
  }
4201
4209
  else {
4202
- iconFolder = react_1.default.createElement(IconDocument_1.default, { className: classes.cellIdIconDocument });
4210
+ iconFolder = react_1.default.createElement(IconDocument_1.default, { style: this.styles.cellIdIconDocument });
4203
4211
  }
4204
4212
  let iconItem = null;
4205
4213
  if (item.data.icon) {
4206
4214
  if (typeof item.data.icon === 'string') {
4207
4215
  if (item.data.icon.length < 3) {
4208
- iconItem = react_1.default.createElement("span", { className: Utils_1.default.clsx(classes.cellIdIconOwn, 'iconOwn') }, item.data.icon); // utf-8 char
4216
+ iconItem = react_1.default.createElement("span", { className: "iconOwn", style: styles.cellIdIconOwn }, item.data.icon); // utf-8 char
4209
4217
  }
4210
4218
  else {
4211
- iconItem = react_1.default.createElement(Icon_1.default, { className: Utils_1.default.clsx(classes.cellIdIconOwn, 'iconOwn'), src: item.data.icon, alt: "" });
4219
+ iconItem = react_1.default.createElement(Icon_1.default, { style: styles.cellIdIconOwn, className: "iconOwn", src: item.data.icon, alt: "" });
4212
4220
  }
4213
4221
  }
4214
4222
  else {
@@ -4231,7 +4239,7 @@ class ObjectBrowserClass extends react_1.Component {
4231
4239
  const checkbox = this.props.multiSelect &&
4232
4240
  this.objects[id] &&
4233
4241
  (!this.props.types || this.props.types.includes(this.objects[id].type)) ?
4234
- react_1.default.createElement(material_1.Checkbox, { className: classes.checkBox, checked: this.state.selected.includes(id) }) : null;
4242
+ react_1.default.createElement(material_1.Checkbox, { style: styles.checkBox, checked: this.state.selected.includes(id) }) : null;
4235
4243
  let valueEditable = !this.props.notEditable &&
4236
4244
  itemType === 'state' &&
4237
4245
  (this.state.filter.expertMode || (common === null || common === void 0 ? void 0 : common.write) !== false);
@@ -4268,30 +4276,30 @@ class ObjectBrowserClass extends react_1.Component {
4268
4276
  }
4269
4277
  const readWriteAlias = typeof ((_c = common === null || common === void 0 ? void 0 : common.alias) === null || _c === void 0 ? void 0 : _c.id) === 'object';
4270
4278
  const alias = id.startsWith('alias.') && ((_d = common === null || common === void 0 ? void 0 : common.alias) === null || _d === void 0 ? void 0 : _d.id) ? (readWriteAlias ?
4271
- react_1.default.createElement("div", { className: classes.cellIdAliasReadWriteDiv },
4272
- common.alias.id.read ? react_1.default.createElement("div", { onClick: e => {
4279
+ react_1.default.createElement("div", { style: styles.cellIdAliasReadWriteDiv },
4280
+ common.alias.id.read ? react_1.default.createElement(material_1.Box, { component: "div", onClick: e => {
4273
4281
  e.stopPropagation();
4274
4282
  e.preventDefault();
4275
4283
  this.onSelect(common.alias.id.read);
4276
4284
  setTimeout(() => this.expandAllSelected(() => this.scrollToItem(common.alias.id.read)), 100);
4277
- }, className: Utils_1.default.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite) },
4285
+ }, sx: this.styles.aliasReadWrite },
4278
4286
  "\u2190",
4279
4287
  common.alias.id.read) : null,
4280
- common.alias.id.write ? react_1.default.createElement("div", { onClick: e => {
4288
+ common.alias.id.write ? react_1.default.createElement(material_1.Box, { component: "div", onClick: e => {
4281
4289
  e.stopPropagation();
4282
4290
  e.preventDefault();
4283
4291
  this.onSelect(common.alias.id.write);
4284
4292
  setTimeout(() => this.expandAllSelected(() => this.scrollToItem(common.alias.id.write)), 100);
4285
- }, className: Utils_1.default.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite) },
4293
+ }, sx: this.styles.aliasReadWrite },
4286
4294
  "\u2192",
4287
4295
  common.alias.id.write) : null)
4288
4296
  :
4289
- react_1.default.createElement("div", { onClick: e => {
4297
+ react_1.default.createElement(material_1.Box, { component: "div", onClick: e => {
4290
4298
  e.stopPropagation();
4291
4299
  e.preventDefault();
4292
4300
  this.onSelect(common.alias.id);
4293
4301
  setTimeout(() => this.expandAllSelected(() => this.scrollToItem(common.alias.id)), 100);
4294
- }, className: Utils_1.default.clsx(classes.cellIdAlias, classes.cellIdAliasAlone) },
4302
+ }, sx: this.styles.aliasAlone },
4295
4303
  "\u2192",
4296
4304
  common.alias.id)) : null;
4297
4305
  let checkColor = common === null || common === void 0 ? void 0 : common.color;
@@ -4356,7 +4364,7 @@ class ObjectBrowserClass extends react_1.Component {
4356
4364
  colorSet = true;
4357
4365
  icons.push(react_1.default.createElement(icons_material_1.Error, { key: "error",
4358
4366
  // title={this.texts.deviceError}
4359
- className: this.props.classes.iconDeviceError }));
4367
+ style: this.styles.iconDeviceError }));
4360
4368
  }
4361
4369
  if (ids.onlineId && this.states[ids.onlineId]) {
4362
4370
  if (!colorSet) {
@@ -4365,7 +4373,7 @@ class ObjectBrowserClass extends react_1.Component {
4365
4373
  this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;
4366
4374
  icons.push(react_1.default.createElement(icons_material_1.Wifi, { key: "conn",
4367
4375
  // title={this.texts.deviceError}
4368
- className: this.props.classes.iconDeviceConnected }));
4376
+ style: this.styles.iconDeviceConnected }));
4369
4377
  }
4370
4378
  else {
4371
4379
  checkColor =
@@ -4374,18 +4382,18 @@ class ObjectBrowserClass extends react_1.Component {
4374
4382
  : COLOR_NAME_DISCONNECTED_LIGHT;
4375
4383
  icons.push(react_1.default.createElement(icons_material_1.WifiOff, { key: "disc",
4376
4384
  // title={this.texts.deviceError}
4377
- className: this.props.classes.iconDeviceDisconnected }));
4385
+ style: this.styles.iconDeviceDisconnected }));
4378
4386
  }
4379
4387
  }
4380
4388
  else if (this.states[ids.onlineId].val) {
4381
4389
  icons.push(react_1.default.createElement(icons_material_1.Wifi, { key: "conn",
4382
4390
  // title={this.texts.deviceError}
4383
- className: this.props.classes.iconDeviceConnected }));
4391
+ style: this.styles.iconDeviceConnected }));
4384
4392
  }
4385
4393
  else {
4386
4394
  icons.push(react_1.default.createElement(icons_material_1.WifiOff, { key: "disc",
4387
4395
  // title={this.texts.deviceError}
4388
- className: this.props.classes.iconDeviceDisconnected }));
4396
+ style: this.styles.iconDeviceDisconnected }));
4389
4397
  }
4390
4398
  }
4391
4399
  else if (ids.offlineId && this.states[ids.offlineId]) {
@@ -4397,25 +4405,25 @@ class ObjectBrowserClass extends react_1.Component {
4397
4405
  : COLOR_NAME_DISCONNECTED_LIGHT;
4398
4406
  icons.push(react_1.default.createElement(icons_material_1.WifiOff, { key: "disc",
4399
4407
  // title={this.texts.deviceError}
4400
- className: this.props.classes.iconDeviceDisconnected }));
4408
+ style: this.styles.iconDeviceDisconnected }));
4401
4409
  }
4402
4410
  else {
4403
4411
  checkColor =
4404
4412
  this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;
4405
4413
  icons.push(react_1.default.createElement(icons_material_1.Wifi, { key: "conn",
4406
4414
  // title={this.texts.deviceError}
4407
- className: this.props.classes.iconDeviceConnected }));
4415
+ style: this.styles.iconDeviceConnected }));
4408
4416
  }
4409
4417
  }
4410
4418
  else if (this.states[ids.offlineId].val) {
4411
4419
  icons.push(react_1.default.createElement(icons_material_1.WifiOff, { key: "disc",
4412
4420
  // title={this.texts.deviceError}
4413
- className: this.props.classes.iconDeviceDisconnected }));
4421
+ style: this.styles.iconDeviceDisconnected }));
4414
4422
  }
4415
4423
  else {
4416
4424
  icons.push(react_1.default.createElement(icons_material_1.Wifi, { key: "conn",
4417
4425
  // title={this.texts.deviceError}
4418
- className: this.props.classes.iconDeviceConnected }));
4426
+ style: this.styles.iconDeviceConnected }));
4419
4427
  }
4420
4428
  }
4421
4429
  }
@@ -4426,16 +4434,16 @@ class ObjectBrowserClass extends react_1.Component {
4426
4434
  const oTooltip = getObjectTooltip(item.data, this.props.lang);
4427
4435
  if (oTooltip) {
4428
4436
  name = [
4429
- react_1.default.createElement("div", { key: "name", className: classes.cellNameDivDiv }, name),
4430
- react_1.default.createElement("div", { key: "desc", className: classes.cellDescription }, oTooltip),
4437
+ react_1.default.createElement("div", { key: "name", style: styles.cellNameDivDiv }, name),
4438
+ react_1.default.createElement("div", { key: "desc", style: styles.cellDescription }, oTooltip),
4431
4439
  ];
4432
4440
  useDesc = !!oTooltip;
4433
4441
  }
4434
4442
  }
4435
- return react_1.default.createElement(material_1.Grid, { container: true, direction: "row", wrap: "nowrap", className: Utils_1.default.clsx(classes.tableRow, this.state.linesEnabled && classes.tableRowLines, !this.props.dragEnabled && classes.tableRowNoDragging, alias && classes.tableRowAlias, readWriteAlias && classes.tableRowAliasReadWrite, !item.data.visible && classes.filteredOut, item.data.hasVisibleParent &&
4443
+ return react_1.default.createElement(material_1.Grid, { container: true, direction: "row", wrap: "nowrap", sx: getStyle(this.props.theme, styles.tableRow, this.state.linesEnabled && styles.tableRowLines, !this.props.dragEnabled && styles.tableRowNoDragging, alias && styles.tableRowAlias, readWriteAlias && styles.tableRowAliasReadWrite, !item.data.visible && styles.filteredOut, item.data.hasVisibleParent &&
4436
4444
  !item.data.visible &&
4437
4445
  !item.data.hasVisibleChildren &&
4438
- classes.filteredParentOut, this.state.selected.includes(id) && classes.itemSelected, this.state.selectedNonObject === id && classes.itemSelected), key: id, id: id, onMouseDown: e => {
4446
+ styles.filteredParentOut, this.state.selected.includes(id) && styles.itemSelected, this.state.selectedNonObject === id && styles.itemSelected), key: id, id: id, onMouseDown: e => {
4439
4447
  this.onSelect(id);
4440
4448
  let isRightMB;
4441
4449
  if ('which' in e) {
@@ -4463,40 +4471,34 @@ class ObjectBrowserClass extends react_1.Component {
4463
4471
  this.toggleExpanded(id);
4464
4472
  }
4465
4473
  } },
4466
- react_1.default.createElement(material_1.Grid, { container: true, wrap: "nowrap", direction: "row", className: classes.cellId, style: { width: this.columnsVisibility.id, paddingLeft } },
4474
+ react_1.default.createElement(material_1.Grid, { container: true, wrap: "nowrap", direction: "row", sx: styles.cellId, style: { width: this.columnsVisibility.id, paddingLeft } },
4467
4475
  react_1.default.createElement(material_1.Grid, { item: true, container: true, alignItems: "center" },
4468
4476
  checkbox,
4469
4477
  iconFolder),
4470
- react_1.default.createElement(material_1.Grid, { item: true, style: { color: checkColor, fontWeight: bold ? 'bold' : undefined }, className: Utils_1.default.clsx(classes.cellIdSpan, invertBackground && classes.invertedBackground) },
4471
- react_1.default.createElement(material_1.Tooltip, { title: getIdFieldTooltip(item.data, this.props.classes, this.props.lang), classes: { popper: this.props.classes.tooltip } },
4478
+ react_1.default.createElement(material_1.Grid, { item: true, style: Object.assign(Object.assign(Object.assign({}, styles.cellIdSpan), (invertBackground ? this.styles.invertedBackground : undefined)), { color: checkColor, fontWeight: bold ? 'bold' : undefined }) },
4479
+ react_1.default.createElement(material_1.Tooltip, { title: getIdFieldTooltip(item.data, this.props.lang), componentsProps: { popper: { sx: styles.tooltip } } },
4472
4480
  react_1.default.createElement("div", null, item.data.name)),
4473
4481
  alias,
4474
4482
  icons),
4475
- react_1.default.createElement("div", { className: Utils_1.default.clsx(classes.grow, invertBackground && classes.invertedBackgroundFlex) }),
4483
+ react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.grow), (invertBackground ? this.styles.invertedBackgroundFlex : {})) }),
4476
4484
  react_1.default.createElement(material_1.Grid, { item: true, container: true, alignItems: "center" }, iconItem),
4477
4485
  react_1.default.createElement("div", null,
4478
- react_1.default.createElement(IconCopy_1.default, { className: Utils_1.default.clsx(classes.cellCopyButton, 'copyButton'), onClick: e => this.onCopy(e, id) }))),
4479
- this.columnsVisibility.name ? react_1.default.createElement("div", { className: Utils_1.default.clsx(classes.cellName, useDesc && classes.cellNameWithDesc), style: { width: this.columnsVisibility.name } },
4486
+ react_1.default.createElement(IconCopy_1.default, { className: "copyButton", style: styles.cellCopyButton, onClick: e => this.onCopy(e, id) }))),
4487
+ this.columnsVisibility.name ? react_1.default.createElement(material_1.Box, { component: "div", sx: Object.assign(Object.assign(Object.assign({}, styles.cellName), (useDesc ? styles.cellNameWithDesc : undefined)), { width: this.columnsVisibility.name }) },
4480
4488
  name,
4481
- ((_g = item.data) === null || _g === void 0 ? void 0 : _g.title) ? react_1.default.createElement("div", { style: { color: checkColor } },
4482
- react_1.default.createElement(IconCopy_1.default, { className: Utils_1.default.clsx(classes.cellCopyButton, 'copyButton'), onClick: e => { var _b; return this.onCopy(e, (_b = item.data) === null || _b === void 0 ? void 0 : _b.title); } })) : null) : null,
4489
+ ((_g = item.data) === null || _g === void 0 ? void 0 : _g.title) ? react_1.default.createElement(material_1.Box, { style: { color: checkColor } },
4490
+ react_1.default.createElement(IconCopy_1.default, { className: "copyButton", style: styles.cellCopyButton, onClick: e => { var _b; return this.onCopy(e, (_b = item.data) === null || _b === void 0 ? void 0 : _b.title); } })) : null) : null,
4483
4491
  !this.state.statesView ? react_1.default.createElement(react_1.default.Fragment, null,
4484
- this.columnsVisibility.type ? react_1.default.createElement("div", { className: classes.cellType, style: { width: this.columnsVisibility.type } },
4492
+ this.columnsVisibility.type ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.cellType), { width: this.columnsVisibility.type }) },
4485
4493
  typeImg,
4486
4494
  "\u00A0",
4487
4495
  obj && obj.type) : null,
4488
- this.columnsVisibility.role ? react_1.default.createElement("div", { className: classes.cellRole, style: {
4489
- width: this.columnsVisibility.role,
4490
- cursor: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole
4496
+ this.columnsVisibility.role ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.cellRole), { width: this.columnsVisibility.role, cursor: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole
4491
4497
  ? 'text'
4492
- : 'default',
4493
- }, onClick: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole
4498
+ : 'default' }), onClick: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole
4494
4499
  ? () => this.setState({ roleDialog: item.data.id })
4495
4500
  : undefined }, common === null || common === void 0 ? void 0 : common.role) : null,
4496
- this.columnsVisibility.room ? react_1.default.createElement("div", { className: `${classes.cellRoom} ${item.data.per ? classes.cellEnumParent : ''}`, style: {
4497
- width: this.columnsVisibility.room,
4498
- cursor: enumEditable ? 'text' : 'default',
4499
- }, onClick: enumEditable ? () => {
4501
+ this.columnsVisibility.room ? react_1.default.createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.cellRoom), (item.data.per ? styles.cellEnumParent : {})), { width: this.columnsVisibility.room, cursor: enumEditable ? 'text' : 'default' }), onClick: enumEditable ? () => {
4500
4502
  const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'roomEnums');
4501
4503
  this.setState({
4502
4504
  enumDialogEnums: enums,
@@ -4507,10 +4509,7 @@ class ObjectBrowserClass extends react_1.Component {
4507
4509
  },
4508
4510
  });
4509
4511
  } : undefined }, item.data.rooms) : null,
4510
- this.columnsVisibility.func ? react_1.default.createElement("div", { className: `${classes.cellFunc} ${item.data.pef ? classes.cellEnumParent : ''}`, style: {
4511
- width: this.columnsVisibility.func,
4512
- cursor: enumEditable ? 'text' : 'default',
4513
- }, onClick: enumEditable ? () => {
4512
+ this.columnsVisibility.func ? react_1.default.createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.cellFunc), (item.data.pef ? styles.cellEnumParent : {})), { width: this.columnsVisibility.func, cursor: enumEditable ? 'text' : 'default' }), onClick: enumEditable ? () => {
4514
4513
  const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'funcEnums');
4515
4514
  this.setState({
4516
4515
  enumDialogEnums: enums,
@@ -4521,19 +4520,16 @@ class ObjectBrowserClass extends react_1.Component {
4521
4520
  },
4522
4521
  });
4523
4522
  } : undefined }, item.data.funcs) : null) : react_1.default.createElement(react_1.default.Fragment, null,
4524
- this.columnsVisibility.changedFrom ? react_1.default.createElement("div", { className: classes.cellRole, style: { width: this.columnsVisibility.changedFrom }, title: newValueTitle.join('\n') }, checkVisibleObjectType && ((_h = this.states[id]) === null || _h === void 0 ? void 0 : _h.from) ? newValue : null) : null,
4525
- this.columnsVisibility.qualityCode ? react_1.default.createElement("div", { className: classes.cellRole, style: { width: this.columnsVisibility.qualityCode }, title: q || '' }, q) : null,
4526
- this.columnsVisibility.timestamp ? react_1.default.createElement("div", { className: classes.cellRole, style: { width: this.columnsVisibility.timestamp } }, checkVisibleObjectType && ((_j = this.states[id]) === null || _j === void 0 ? void 0 : _j.ts)
4523
+ this.columnsVisibility.changedFrom ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.cellRole), { width: this.columnsVisibility.changedFrom }), title: newValueTitle.join('\n') }, checkVisibleObjectType && ((_h = this.states[id]) === null || _h === void 0 ? void 0 : _h.from) ? newValue : null) : null,
4524
+ this.columnsVisibility.qualityCode ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.cellRole), { width: this.columnsVisibility.qualityCode }), title: q || '' }, q) : null,
4525
+ this.columnsVisibility.timestamp ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.cellRole), { width: this.columnsVisibility.timestamp }) }, checkVisibleObjectType && ((_j = this.states[id]) === null || _j === void 0 ? void 0 : _j.ts)
4527
4526
  ? Utils_1.default.formatDate(new Date(this.states[id].ts), this.props.dateFormat || this.systemConfig.common.dateFormat)
4528
4527
  : null) : null,
4529
- this.columnsVisibility.lastChange ? react_1.default.createElement("div", { className: classes.cellRole, style: { width: this.columnsVisibility.lastChange } }, checkVisibleObjectType && ((_k = this.states[id]) === null || _k === void 0 ? void 0 : _k.lc)
4528
+ this.columnsVisibility.lastChange ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.cellRole), { width: this.columnsVisibility.lastChange }) }, checkVisibleObjectType && ((_k = this.states[id]) === null || _k === void 0 ? void 0 : _k.lc)
4530
4529
  ? Utils_1.default.formatDate(new Date(this.states[id].lc), this.props.dateFormat || this.systemConfig.common.dateFormat)
4531
4530
  : null) : null),
4532
- this.adapterColumns.map(it => react_1.default.createElement("div", { className: classes.cellAdapter, style: { width: this.columnsVisibility[it.id] }, key: it.id, title: `${it.adapter} => ${it.pathText}` }, obj ? this.renderCustomValue(obj, it, item) : null)),
4533
- this.columnsVisibility.val ? react_1.default.createElement("div", { className: classes.cellValue, style: {
4534
- width: this.columnsVisibility.val,
4535
- cursor: valueEditable ? ((common === null || common === void 0 ? void 0 : common.type) === 'file' ? 'zoom-in' : (item.data.button ? 'grab' : 'text')) : 'default',
4536
- }, onClick: valueEditable ? () => {
4531
+ this.adapterColumns.map(it => react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.cellAdapter), { width: this.columnsVisibility[it.id] }), key: it.id, title: `${it.adapter} => ${it.pathText}` }, obj ? this.renderCustomValue(obj, it, item) : null)),
4532
+ this.columnsVisibility.val ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.cellValue), { width: this.columnsVisibility.val, cursor: valueEditable ? ((common === null || common === void 0 ? void 0 : common.type) === 'file' ? 'zoom-in' : (item.data.button ? 'grab' : 'text')) : 'default' }), onClick: valueEditable ? () => {
4537
4533
  if (!obj || !this.states) {
4538
4534
  // return;
4539
4535
  }
@@ -4556,24 +4552,24 @@ class ObjectBrowserClass extends react_1.Component {
4556
4552
  };
4557
4553
  this.setState({ updateOpened: true });
4558
4554
  }
4559
- } : undefined }, this.renderColumnValue(id, item, classes)) : null,
4560
- this.columnsVisibility.buttons ? react_1.default.createElement("div", { className: classes.cellButtons, style: { width: this.columnsVisibility.buttons } }, this.renderColumnButtons(id, item, classes)) : null);
4555
+ } : undefined }, this.renderColumnValue(id, item)) : null,
4556
+ this.columnsVisibility.buttons ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.cellButtons), { width: this.columnsVisibility.buttons }) }, this.renderColumnButtons(id, item)) : null);
4561
4557
  }
4562
4558
  /**
4563
4559
  * Renders an item.
4564
4560
  */
4565
- renderItem(root, isExpanded, classes, counter) {
4561
+ renderItem(root, isExpanded, counter) {
4566
4562
  const items = [];
4567
4563
  counter = counter || { count: 0 };
4568
- let leaf = this.renderLeaf(root, isExpanded, classes, counter);
4564
+ let leaf = this.renderLeaf(root, isExpanded, counter);
4569
4565
  const DragWrapper = this.props.DragWrapper;
4570
4566
  if (this.props.dragEnabled && DragWrapper) {
4571
4567
  if (root.data.sumVisibility) {
4572
- leaf = react_1.default.createElement(DragWrapper, { key: root.data.id, item: root, className: classes.draggable }, leaf);
4568
+ leaf = react_1.default.createElement(DragWrapper, { key: root.data.id, item: root, style: styles.draggable }, leaf);
4573
4569
  }
4574
4570
  else {
4575
4571
  // change cursor
4576
- leaf = react_1.default.createElement("div", { key: root.data.id, className: classes.nonDraggable }, leaf);
4572
+ leaf = react_1.default.createElement("div", { key: root.data.id, style: styles.nonDraggable }, leaf);
4577
4573
  }
4578
4574
  }
4579
4575
  root.data.id && leaf && items.push(leaf);
@@ -4584,7 +4580,7 @@ class ObjectBrowserClass extends react_1.Component {
4584
4580
  // do not render too many items in column editor mode
4585
4581
  if (!this.state.columnsSelectorShow || counter.count < 15) {
4586
4582
  if (item.data.sumVisibility) {
4587
- return this.renderItem(item, undefined, classes, counter);
4583
+ return this.renderItem(item, undefined, counter);
4588
4584
  }
4589
4585
  }
4590
4586
  return null;
@@ -4597,7 +4593,7 @@ class ObjectBrowserClass extends react_1.Component {
4597
4593
  // do not render too many items in column editor mode
4598
4594
  if (!this.state.columnsSelectorShow || counter.count < 15) {
4599
4595
  if (item.data.sumVisibility) {
4600
- return this.renderItem(item, undefined, classes, counter);
4596
+ return this.renderItem(item, undefined, counter);
4601
4597
  }
4602
4598
  }
4603
4599
  }
@@ -4609,7 +4605,7 @@ class ObjectBrowserClass extends react_1.Component {
4609
4605
  // do not render too many items in column editor mode
4610
4606
  if (!this.state.columnsSelectorShow || counter.count < 15) {
4611
4607
  if (item.data.sumVisibility) {
4612
- return this.renderItem(item, undefined, classes, counter);
4608
+ return this.renderItem(item, undefined, counter);
4613
4609
  }
4614
4610
  }
4615
4611
  }
@@ -4839,54 +4835,53 @@ class ObjectBrowserClass extends react_1.Component {
4839
4835
  * Render the right handle for resizing
4840
4836
  */
4841
4837
  renderHandleRight() {
4842
- return react_1.default.createElement("div", { className: `${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleRight}`, onMouseDown: this.resizerMouseDown, onDoubleClick: this.resizerReset, title: this.props.t('ra_Double click to reset table layout') });
4838
+ return react_1.default.createElement(material_1.Box, { component: "div", className: "iob-ob-resize-handler", sx: Object.assign(Object.assign({}, styles.resizeHandle), styles.resizeHandleRight), onMouseDown: this.resizerMouseDown, onDoubleClick: this.resizerReset, title: this.props.t('ra_Double click to reset table layout') });
4843
4839
  }
4844
4840
  renderHeader() {
4845
- const classes = this.props.classes;
4846
4841
  let filterClearInValue = null;
4847
4842
  if (!this.columnsVisibility.buttons && !this.isFilterEmpty()) {
4848
- filterClearInValue = react_1.default.createElement(material_1.IconButton, { onClick: () => this.clearFilter(), className: classes.buttonClearFilter, title: this.props.t('ra_Clear filter'), size: "large" },
4843
+ filterClearInValue = react_1.default.createElement(material_1.IconButton, { onClick: () => this.clearFilter(), style: styles.buttonClearFilter, title: this.props.t('ra_Clear filter'), size: "large" },
4849
4844
  react_1.default.createElement(IconClearFilter_1.default, null),
4850
- react_1.default.createElement(icons_material_1.Close, { className: classes.buttonClearFilterIcon }));
4845
+ react_1.default.createElement(icons_material_1.Close, { style: styles.buttonClearFilterIcon }));
4851
4846
  }
4852
- return react_1.default.createElement("div", { className: classes.headerRow },
4853
- react_1.default.createElement("div", { className: classes.headerCell, style: { width: this.columnsVisibility.id, position: 'relative' }, "data-min": 240, "data-name": "id" },
4847
+ return react_1.default.createElement("div", { style: styles.headerRow },
4848
+ react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.headerCell), { width: this.columnsVisibility.id, position: 'relative' }), "data-min": 240, "data-name": "id" },
4854
4849
  this.getFilterInput('id'),
4855
4850
  this.renderHandleRight()),
4856
- this.columnsVisibility.name ? react_1.default.createElement("div", { className: classes.headerCell, style: { width: this.columnsVisibility.nameHeader, position: 'relative' }, "data-min": 100, "data-name": "nameHeader" },
4851
+ this.columnsVisibility.name ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.headerCell), { width: this.columnsVisibility.nameHeader, position: 'relative' }), "data-min": 100, "data-name": "nameHeader" },
4857
4852
  this.getFilterInput('name'),
4858
4853
  this.renderHandleRight()) : null,
4859
4854
  !this.state.statesView && react_1.default.createElement(react_1.default.Fragment, null,
4860
- this.columnsVisibility.type ? react_1.default.createElement("div", { className: classes.headerCell, style: { width: this.columnsVisibility.type, position: 'relative' }, "data-min": 100, "data-name": "type" },
4855
+ this.columnsVisibility.type ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.headerCell), { width: this.columnsVisibility.type, position: 'relative' }), "data-min": 100, "data-name": "type" },
4861
4856
  this.getFilterSelectType(),
4862
4857
  this.renderHandleRight()) : null,
4863
- this.columnsVisibility.role ? react_1.default.createElement("div", { className: classes.headerCell, style: { width: this.columnsVisibility.role, position: 'relative' }, "data-min": 100, "data-name": "role" },
4858
+ this.columnsVisibility.role ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.headerCell), { width: this.columnsVisibility.role, position: 'relative' }), "data-min": 100, "data-name": "role" },
4864
4859
  this.getFilterSelectRole(),
4865
4860
  this.renderHandleRight()) : null,
4866
- this.columnsVisibility.room ? react_1.default.createElement("div", { className: classes.headerCell, style: { width: this.columnsVisibility.room, position: 'relative' }, "data-min": 100, "data-name": "room" },
4861
+ this.columnsVisibility.room ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.headerCell), { width: this.columnsVisibility.room, position: 'relative' }), "data-min": 100, "data-name": "room" },
4867
4862
  this.getFilterSelectRoom(),
4868
4863
  this.renderHandleRight()) : null,
4869
- this.columnsVisibility.func ? react_1.default.createElement("div", { className: classes.headerCell, style: { width: this.columnsVisibility.func, position: 'relative' }, "data-min": 100, "data-name": "func" },
4864
+ this.columnsVisibility.func ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.headerCell), { width: this.columnsVisibility.func, position: 'relative' }), "data-min": 100, "data-name": "func" },
4870
4865
  this.getFilterSelectFunction(),
4871
4866
  this.renderHandleRight()) : null),
4872
4867
  this.state.statesView && react_1.default.createElement(react_1.default.Fragment, null,
4873
- react_1.default.createElement("div", { className: Utils_1.default.clsx(classes.headerCell, classes.headerCellValue), style: { width: this.columnsVisibility.changedFrom, position: 'relative' }, "data-min": 100, "data-name": "changedFrom" },
4868
+ react_1.default.createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.headerCell), styles.headerCellValue), { width: this.columnsVisibility.changedFrom, position: 'relative' }), "data-min": 100, "data-name": "changedFrom" },
4874
4869
  this.props.t('ra_Changed from'),
4875
4870
  this.renderHandleRight()),
4876
- react_1.default.createElement("div", { className: Utils_1.default.clsx(classes.headerCell, classes.headerCellValue), style: { width: this.columnsVisibility.qualityCode, position: 'relative' }, "data-min": 100, "data-name": "qualityCode" },
4871
+ react_1.default.createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.headerCell), styles.headerCellValue), { width: this.columnsVisibility.qualityCode, position: 'relative' }), "data-min": 100, "data-name": "qualityCode" },
4877
4872
  this.props.t('ra_Quality code'),
4878
4873
  this.renderHandleRight()),
4879
- react_1.default.createElement("div", { className: Utils_1.default.clsx(classes.headerCell, classes.headerCellValue), style: { width: this.columnsVisibility.timestamp, position: 'relative' }, "data-min": 100, "data-name": "timestamp" },
4874
+ react_1.default.createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.headerCell), styles.headerCellValue), { width: this.columnsVisibility.timestamp, position: 'relative' }), "data-min": 100, "data-name": "timestamp" },
4880
4875
  this.props.t('ra_Timestamp'),
4881
4876
  this.renderHandleRight()),
4882
- react_1.default.createElement("div", { className: Utils_1.default.clsx(classes.headerCell, classes.headerCellValue), style: { width: this.columnsVisibility.lastChange, position: 'relative' }, "data-min": 100, "data-name": "lastChange" },
4877
+ react_1.default.createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.headerCell), styles.headerCellValue), { width: this.columnsVisibility.lastChange, position: 'relative' }), "data-min": 100, "data-name": "lastChange" },
4883
4878
  this.props.t('ra_Last change'),
4884
4879
  this.renderHandleRight())),
4885
- this.adapterColumns.map(item => react_1.default.createElement("div", { className: Utils_1.default.clsx(classes.headerCell, classes.headerCellValue), style: { width: this.columnsVisibility[item.id] }, title: item.adapter, key: item.id, "data-min": 100, "data-name": item.id }, item.name)),
4886
- this.columnsVisibility.val ? react_1.default.createElement("div", { className: Utils_1.default.clsx(classes.headerCell, classes.headerCellValue), style: { width: this.columnsVisibility.val, position: 'relative' }, "data-min": 120, "data-name": "val" },
4880
+ this.adapterColumns.map(item => react_1.default.createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.headerCell), styles.headerCellValue), { width: this.columnsVisibility[item.id] }), title: item.adapter, key: item.id, "data-min": 100, "data-name": item.id }, item.name)),
4881
+ this.columnsVisibility.val ? react_1.default.createElement("div", { style: Object.assign(Object.assign(Object.assign({}, styles.headerCell), styles.headerCellValue), { width: this.columnsVisibility.val, position: 'relative' }), "data-min": 120, "data-name": "val" },
4887
4882
  this.props.t('ra_Value'),
4888
4883
  filterClearInValue) : null,
4889
- this.columnsVisibility.buttons ? react_1.default.createElement("div", { className: classes.headerCell, title: this.texts.filter_custom, style: { width: this.columnsVisibility.buttons } },
4884
+ this.columnsVisibility.buttons ? react_1.default.createElement("div", { title: this.texts.filter_custom, style: Object.assign(Object.assign({}, styles.headerCell), { width: this.columnsVisibility.buttons }) },
4890
4885
  ' ',
4891
4886
  this.getFilterSelectCustoms()) : null);
4892
4887
  }
@@ -4933,9 +4928,7 @@ class ObjectBrowserClass extends react_1.Component {
4933
4928
  this.forceUpdate();
4934
4929
  }
4935
4930
  (_b = this.props.router) === null || _b === void 0 ? void 0 : _b.doNavigate('tab-objects');
4936
- }, systemConfig: this.systemConfig,
4937
- // dummy, just to make compiler happy
4938
- classes: {} });
4931
+ }, systemConfig: this.systemConfig });
4939
4932
  }
4940
4933
  return null;
4941
4934
  }
@@ -4954,11 +4947,7 @@ class ObjectBrowserClass extends react_1.Component {
4954
4947
  return null;
4955
4948
  }
4956
4949
  const ObjectBrowserEditObject = this.props.objectBrowserEditObject;
4957
- return react_1.default.createElement(ObjectBrowserEditObject
4958
- // dummy, just to make compiler happy
4959
- , {
4960
- // dummy, just to make compiler happy
4961
- classes: {}, key: this.state.editObjectDialog, obj: this.objects[this.state.editObjectDialog], roleArray: this.info.roles, objects: this.objects, dateFormat: this.props.dateFormat || this.systemConfig.common.dateFormat, isFloatComma: this.props.isFloatComma === undefined ? this.systemConfig.common.isFloatComma : this.props.isFloatComma, themeType: this.props.themeType, socket: this.props.socket, dialogName: this.props.dialogName, aliasTab: this.state.editObjectAlias, t: this.props.t, expertMode: !!this.state.filter.expertMode, onNewObject: (obj) => this.props.socket
4950
+ return react_1.default.createElement(ObjectBrowserEditObject, { key: this.state.editObjectDialog, obj: this.objects[this.state.editObjectDialog], roleArray: this.info.roles, objects: this.objects, dateFormat: this.props.dateFormat || this.systemConfig.common.dateFormat, isFloatComma: this.props.isFloatComma === undefined ? this.systemConfig.common.isFloatComma : this.props.isFloatComma, themeType: this.props.themeType, socket: this.props.socket, dialogName: this.props.dialogName, aliasTab: this.state.editObjectAlias, t: this.props.t, expertMode: !!this.state.filter.expertMode, onNewObject: (obj) => this.props.socket
4962
4951
  .setObject(obj._id, obj)
4963
4952
  .then(() => this.setState({ editObjectDialog: obj._id, editObjectAlias: false }, () => this.onSelect(obj._id)))
4964
4953
  .catch(e => this.showError(`Cannot write object: ${e}`)), onClose: (obj) => {
@@ -5070,7 +5059,7 @@ class ObjectBrowserClass extends react_1.Component {
5070
5059
  visibility: !!(this.props.objectBrowserEditObject &&
5071
5060
  obj &&
5072
5061
  (this.state.filter.expertMode || _a.isNonExpertId(id))),
5073
- icon: react_1.default.createElement(icons_material_1.Edit, { fontSize: "small", className: this.props.classes.contextMenuEdit }),
5062
+ icon: react_1.default.createElement(icons_material_1.Edit, { fontSize: "small", style: this.styles.contextMenuEdit }),
5074
5063
  label: this.texts.editObject,
5075
5064
  onClick: () => this.setState({ editObjectDialog: item.data.id, showContextMenu: null, editObjectAlias: false }),
5076
5065
  },
@@ -5083,7 +5072,7 @@ class ObjectBrowserClass extends react_1.Component {
5083
5072
  // @ts-expect-error deprecated from js-controller 6
5084
5073
  ((_b = obj.common) === null || _b === void 0 ? void 0 : _b.type) !== 'file' &&
5085
5074
  (this.state.filter.expertMode || obj.common.write !== false)),
5086
- icon: react_1.default.createElement(icons_material_1.FormatItalic, { fontSize: "small", className: this.props.classes.contextMenuEditValue }),
5075
+ icon: react_1.default.createElement(icons_material_1.FormatItalic, { fontSize: "small", style: this.styles.contextMenuEditValue }),
5087
5076
  label: this.props.t('ra_Edit value'),
5088
5077
  onClick: () => {
5089
5078
  this.edit = {
@@ -5099,8 +5088,7 @@ class ObjectBrowserClass extends react_1.Component {
5099
5088
  visibility: !!this.props.objectBrowserViewFile && (obj === null || obj === void 0 ? void 0 : obj.type) === 'state' &&
5100
5089
  // @ts-expect-error deprecated from js-controller 6
5101
5090
  ((_c = obj.common) === null || _c === void 0 ? void 0 : _c.type) === 'file',
5102
- icon: react_1.default.createElement(icons_material_1.FindInPage, { fontSize: "small", className: this.props.classes.contextMenuView }),
5103
- className: '',
5091
+ icon: react_1.default.createElement(icons_material_1.FindInPage, { fontSize: "small", style: this.styles.contextMenuView }),
5104
5092
  label: this.props.t('ra_View file'),
5105
5093
  onClick: () => this.setState({ viewFileDialog: (obj === null || obj === void 0 ? void 0 : obj._id) || '', showContextMenu: null }),
5106
5094
  },
@@ -5112,10 +5100,10 @@ class ObjectBrowserClass extends react_1.Component {
5112
5100
  obj.type === 'state' &&
5113
5101
  // @ts-expect-error deprecated from js-controller 6
5114
5102
  ((_d = obj.common) === null || _d === void 0 ? void 0 : _d.type) !== 'file'),
5115
- icon: react_1.default.createElement(icons_material_1.Settings, { fontSize: "small", className: item.data.hasCustoms
5116
- ? this.props.classes.cellButtonsButtonWithCustoms
5117
- : this.props.classes.cellButtonsButtonWithoutCustoms }),
5118
- className: this.props.classes.contextMenuCustom,
5103
+ icon: react_1.default.createElement(icons_material_1.Settings, { fontSize: "small", style: item.data.hasCustoms
5104
+ ? this.styles.cellButtonsButtonWithCustoms
5105
+ : styles.cellButtonsButtonWithoutCustoms }),
5106
+ style: this.styles.contextMenuCustom,
5119
5107
  label: this.texts.customConfig,
5120
5108
  onClick: () => {
5121
5109
  var _b;
@@ -5129,8 +5117,8 @@ class ObjectBrowserClass extends react_1.Component {
5129
5117
  visibility: !!showACL,
5130
5118
  icon: showACL,
5131
5119
  iconStyle: { fontSize: 'smaller' },
5132
- listItemIconClass: this.props.classes.contextMenuACL,
5133
- className: this.props.classes.contextMenuACL,
5120
+ listItemIconStyle: this.styles.contextMenuACL,
5121
+ style: this.styles.contextMenuACL,
5134
5122
  label: this.props.t('ra_Edit ACL'),
5135
5123
  onClick: () => this.setState({
5136
5124
  showContextMenu: null,
@@ -5141,16 +5129,14 @@ class ObjectBrowserClass extends react_1.Component {
5141
5129
  ROLE: {
5142
5130
  key: '4',
5143
5131
  visibility: !!(this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole),
5144
- icon: react_1.default.createElement(icons_material_1.BorderColor, { fontSize: "small", className: this.props.classes.contextMenuRole }),
5145
- className: '',
5132
+ icon: react_1.default.createElement(icons_material_1.BorderColor, { fontSize: "small", style: this.styles.contextMenuRole }),
5146
5133
  label: this.props.t('ra_Edit role'),
5147
5134
  onClick: () => this.setState({ roleDialog: item.data.id, showContextMenu: null }),
5148
5135
  },
5149
5136
  FUNCTION: {
5150
5137
  key: '5',
5151
5138
  visibility: !!enumEditable,
5152
- icon: react_1.default.createElement(icons_material_1.BedroomParent, { fontSize: "small", className: this.props.classes.contextMenuRole }),
5153
- className: '',
5139
+ icon: react_1.default.createElement(icons_material_1.BedroomParent, { fontSize: "small", style: this.styles.contextMenuRole }),
5154
5140
  label: this.props.t('ra_Edit function'),
5155
5141
  onClick: () => {
5156
5142
  const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'funcEnums');
@@ -5168,8 +5154,7 @@ class ObjectBrowserClass extends react_1.Component {
5168
5154
  ROOM: {
5169
5155
  key: '6',
5170
5156
  visibility: !!enumEditable,
5171
- icon: react_1.default.createElement(icons_material_1.Construction, { fontSize: "small", className: this.props.classes.contextMenuRoom }),
5172
- className: '',
5157
+ icon: react_1.default.createElement(icons_material_1.Construction, { fontSize: "small", style: this.styles.contextMenuRoom }),
5173
5158
  label: this.props.t('ra_Edit room'),
5174
5159
  onClick: () => {
5175
5160
  const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'roomEnums');
@@ -5193,10 +5178,9 @@ class ObjectBrowserClass extends react_1.Component {
5193
5178
  (obj === null || obj === void 0 ? void 0 : obj.type) === 'state' &&
5194
5179
  // @ts-expect-error deprecated from js-controller 6
5195
5180
  ((_e = obj.common) === null || _e === void 0 ? void 0 : _e.type) !== 'file'),
5196
- icon: react_1.default.createElement(icons_material_1.Link, { className: ((_f = obj === null || obj === void 0 ? void 0 : obj.common) === null || _f === void 0 ? void 0 : _f.alias)
5197
- ? this.props.classes.cellButtonsButtonWithCustoms
5198
- : this.props.classes.cellButtonsButtonWithoutCustoms }),
5199
- className: '',
5181
+ icon: react_1.default.createElement(icons_material_1.Link, { style: ((_f = obj === null || obj === void 0 ? void 0 : obj.common) === null || _f === void 0 ? void 0 : _f.alias)
5182
+ ? this.styles.cellButtonsButtonWithCustoms
5183
+ : styles.cellButtonsButtonWithoutCustoms }),
5200
5184
  label: this.props.t('ra_Edit alias'),
5201
5185
  onClick: () => {
5202
5186
  var _b;
@@ -5212,8 +5196,8 @@ class ObjectBrowserClass extends react_1.Component {
5212
5196
  key: '+',
5213
5197
  visibility: (item.data.id.startsWith('0_userdata.0') || item.data.id.startsWith('javascript.')) &&
5214
5198
  (createStateVisible || createChannelVisible || createDeviceVisible || createFolderVisible),
5215
- icon: react_1.default.createElement(icons_material_1.Add, { fontSize: "small", className: this.props.classes.cellButtonsButtonWithCustoms }),
5216
- className: this.props.classes.contextMenuWithSubMenu,
5199
+ icon: react_1.default.createElement(icons_material_1.Add, { fontSize: "small", style: this.styles.cellButtonsButtonWithCustoms }),
5200
+ style: styles.contextMenuWithSubMenu,
5217
5201
  label: this.texts.create,
5218
5202
  subMenu: [
5219
5203
  {
@@ -5263,8 +5247,8 @@ class ObjectBrowserClass extends react_1.Component {
5263
5247
  DELETE: {
5264
5248
  key: 'Delete',
5265
5249
  visibility: !!(this.props.onObjectDelete && (((_g = item.children) === null || _g === void 0 ? void 0 : _g.length) || (obj && !((_h = obj.common) === null || _h === void 0 ? void 0 : _h.dontDelete)))),
5266
- icon: react_1.default.createElement(icons_material_1.Delete, { fontSize: "small", className: this.props.classes.contextMenuDelete }),
5267
- className: this.props.classes.contextMenuDelete,
5250
+ icon: react_1.default.createElement(icons_material_1.Delete, { fontSize: "small", style: this.styles.contextMenuDelete }),
5251
+ style: this.styles.contextMenuDelete,
5268
5252
  label: this.texts.deleteObject,
5269
5253
  onClick: () => this.setState({ showContextMenu: null }, () => this.showDeleteDialog({
5270
5254
  id,
@@ -5283,8 +5267,8 @@ class ObjectBrowserClass extends react_1.Component {
5283
5267
  subItem: key,
5284
5268
  subAnchor: e.target,
5285
5269
  },
5286
- }), className: ITEMS[key].className },
5287
- react_1.default.createElement(material_1.ListItemIcon, { style: ITEMS[key].iconStyle, className: ITEMS[key].listItemIconClass }, ITEMS[key].icon),
5270
+ }), style: ITEMS[key].style },
5271
+ react_1.default.createElement(material_1.ListItemIcon, { style: Object.assign(Object.assign({}, ITEMS[key].iconStyle), ITEMS[key].listItemIconStyle) }, ITEMS[key].icon),
5288
5272
  react_1.default.createElement(material_1.ListItemText, null,
5289
5273
  ITEMS[key].label,
5290
5274
  "..."),
@@ -5294,16 +5278,16 @@ class ObjectBrowserClass extends react_1.Component {
5294
5278
  items.push(react_1.default.createElement(material_1.Menu, { key: "subContextMenu", open: !0, anchorEl: this.state.showContextMenu.subAnchor, onClose: () => {
5295
5279
  this.state.showContextMenu && this.setState({ showContextMenu: { item: this.state.showContextMenu.item } });
5296
5280
  this.contextMenu = null;
5297
- } }, (_c = ITEMS[key].subMenu) === null || _c === void 0 ? void 0 : _c.map(subItem => (subItem.visibility ? react_1.default.createElement(material_1.MenuItem, { key: subItem.label, onClick: subItem.onClick, className: subItem.className },
5298
- react_1.default.createElement(material_1.ListItemIcon, { style: subItem.iconStyle, className: subItem.listItemIconClass }, subItem.icon),
5281
+ } }, (_c = ITEMS[key].subMenu) === null || _c === void 0 ? void 0 : _c.map(subItem => (subItem.visibility ? react_1.default.createElement(material_1.MenuItem, { key: subItem.label, onClick: subItem.onClick, style: subItem.style },
5282
+ react_1.default.createElement(material_1.ListItemIcon, { style: Object.assign(Object.assign({}, subItem.iconStyle), (subItem.listItemIconStyle || undefined)) }, subItem.icon),
5299
5283
  react_1.default.createElement(material_1.ListItemText, null, subItem.label)) : null))));
5300
5284
  }
5301
5285
  }
5302
5286
  else {
5303
- items.push(react_1.default.createElement(material_1.MenuItem, { key: key, onClick: ITEMS[key].onClick, className: ITEMS[key].className },
5304
- react_1.default.createElement(material_1.ListItemIcon, { style: ITEMS[key].iconStyle, className: ITEMS[key].listItemIconClass }, ITEMS[key].icon),
5287
+ items.push(react_1.default.createElement(material_1.MenuItem, { key: key, onClick: ITEMS[key].onClick, sx: ITEMS[key].style },
5288
+ react_1.default.createElement(material_1.ListItemIcon, { style: Object.assign(Object.assign({}, ITEMS[key].iconStyle), ITEMS[key].listItemIconStyle) }, ITEMS[key].icon),
5305
5289
  react_1.default.createElement(material_1.ListItemText, null, ITEMS[key].label),
5306
- ITEMS[key].key ? react_1.default.createElement("div", { className: this.props.classes.contextMenuKeys }, `Alt+${ITEMS[key].key === 'Delete' ? this.props.t('ra_Del') : ITEMS[key].key}`) : null));
5290
+ ITEMS[key].key ? react_1.default.createElement("div", { style: styles.contextMenuKeys }, `Alt+${ITEMS[key].key === 'Delete' ? this.props.t('ra_Del') : ITEMS[key].key}`) : null));
5307
5291
  }
5308
5292
  }
5309
5293
  });
@@ -5347,9 +5331,7 @@ class ObjectBrowserClass extends react_1.Component {
5347
5331
  return react_1.default.createElement(ObjectBrowserValue, { t: this.props.t, lang: this.props.lang, type: type, role: role || '', states: Utils_1.default.getStates(this.objects[this.edit.id]), themeType: this.props.themeType, expertMode: !!this.state.filter.expertMode, value: this.edit.val, socket: this.props.socket, object: this.objects[this.edit.id], defaultHistory: this.defaultHistory, dateFormat: this.props.dateFormat || this.systemConfig.common.dateFormat, isFloatComma: this.props.isFloatComma === undefined ? this.systemConfig.common.isFloatComma : this.props.isFloatComma, onClose: (res) => {
5348
5332
  this.setState({ updateOpened: false });
5349
5333
  res && this.onUpdate(res);
5350
- },
5351
- // dummy, just to make compiler happy
5352
- classes: {} });
5334
+ } });
5353
5335
  }
5354
5336
  /**
5355
5337
  * The rendering method of this component.
@@ -5357,6 +5339,31 @@ class ObjectBrowserClass extends react_1.Component {
5357
5339
  render() {
5358
5340
  this.recordStates = [];
5359
5341
  this.unsubscribeTimer && clearTimeout(this.unsubscribeTimer);
5342
+ if (this.styleTheme !== this.props.themeType) {
5343
+ this.styles = {
5344
+ cellIdIconFolder: getStyle(this.props.theme, styles.cellIdIconFolder),
5345
+ cellIdIconDocument: getStyle(this.props.theme, styles.cellIdIconDocument),
5346
+ iconDeviceError: getStyle(this.props.theme, styles.iconDeviceError),
5347
+ iconDeviceConnected: getStyle(this.props.theme, styles.iconDeviceConnected),
5348
+ iconDeviceDisconnected: getStyle(this.props.theme, styles.iconDeviceDisconnected),
5349
+ cellButtonsButtonWithCustoms: getStyle(this.props.theme, styles.cellButtonsButtonWithCustoms),
5350
+ invertedBackground: getStyle(this.props.theme, styles.invertedBackground),
5351
+ invertedBackgroundFlex: getStyle(this.props.theme, styles.invertedBackgroundFlex),
5352
+ contextMenuEdit: getStyle(this.props.theme, styles.contextMenuEdit),
5353
+ contextMenuEditValue: getStyle(this.props.theme, styles.contextMenuEditValue),
5354
+ contextMenuView: getStyle(this.props.theme, styles.contextMenuView),
5355
+ contextMenuCustom: getStyle(this.props.theme, styles.contextMenuCustom),
5356
+ contextMenuACL: getStyle(this.props.theme, styles.contextMenuACL),
5357
+ contextMenuRoom: getStyle(this.props.theme, styles.contextMenuRoom),
5358
+ contextMenuRole: getStyle(this.props.theme, styles.contextMenuRole),
5359
+ contextMenuDelete: getStyle(this.props.theme, styles.contextMenuDelete),
5360
+ filterInput: getStyle(this.props.theme, styles.headerCellInput, styles.filterInput),
5361
+ iconCopy: getStyle(this.props.theme, styles.cellButtonsValueButton, styles.cellButtonsValueButtonCopy),
5362
+ aliasReadWrite: getStyle(styles.cellIdAlias, styles.cellIdAliasReadWrite),
5363
+ aliasAlone: getStyle(styles.cellIdAlias, styles.cellIdAliasAlone),
5364
+ };
5365
+ this.styleTheme = this.props.themeType;
5366
+ }
5360
5367
  // apply filter if changed
5361
5368
  const jsonFilter = JSON.stringify(this.state.filter);
5362
5369
  if (this.lastAppliedFilter !== jsonFilter && this.objects && this.root) {
@@ -5377,13 +5384,42 @@ class ObjectBrowserClass extends react_1.Component {
5377
5384
  if (!this.state.loaded) {
5378
5385
  return react_1.default.createElement(material_1.CircularProgress, { key: `${this.props.dialogName}_c` });
5379
5386
  }
5380
- const classes = this.props.classes;
5381
- const items = this.root ? this.renderItem(this.root, undefined, classes) : null;
5387
+ const items = this.root ? this.renderItem(this.root, undefined) : null;
5382
5388
  return react_1.default.createElement(TabContainer_1.default, { key: this.props.dialogName },
5389
+ react_1.default.createElement("style", null, `
5390
+ @keyframes newValueAnimation-light {
5391
+ 0% {
5392
+ color: #00f900;
5393
+ }
5394
+ 80% {
5395
+ color: #008000;
5396
+ }
5397
+ 100% {
5398
+ color: #000;
5399
+ }
5400
+ }
5401
+ @keyframes newValueAnimation-dark {
5402
+ 0% {
5403
+ color: #00f900;
5404
+ }
5405
+ 80% {
5406
+ color: #008000;
5407
+ }
5408
+ 100% {
5409
+ color: #fff;
5410
+ }
5411
+ }
5412
+ .newValueBrowser-dark {
5413
+ animation: newValueAnimation-dark 2s ease-in-out;
5414
+ }
5415
+ .newValueBrowser-light {
5416
+ animation: newValueAnimation-light 2s ease-in-out;
5417
+ }
5418
+ `),
5383
5419
  react_1.default.createElement(TabHeader_1.default, null, this.getToolbar()),
5384
5420
  react_1.default.createElement(TabContent_1.default, null,
5385
5421
  this.renderHeader(),
5386
- react_1.default.createElement("div", { className: this.props.classes.tableDiv, ref: this.tableRef, onKeyDown: event => this.navigateKeyPress(event) }, items)),
5422
+ react_1.default.createElement("div", { style: styles.tableDiv, ref: this.tableRef, onKeyDown: event => this.navigateKeyPress(event) }, items)),
5387
5423
  this.renderContextMenu(),
5388
5424
  this.renderToast(),
5389
5425
  this.renderColumnsEditCustomDialog(),
@@ -5407,4 +5443,4 @@ exports.ObjectBrowserClass = ObjectBrowserClass;
5407
5443
  _a = ObjectBrowserClass;
5408
5444
  /** Namespaces which are allowed to be edited by non-expert users */
5409
5445
  _ObjectBrowserClass_NON_EXPERT_NAMESPACES = { value: ['0_userdata.0.', 'alias.0.'] };
5410
- exports.default = (0, withWidth_1.default)()((0, styles_1.withStyles)(styles)(ObjectBrowserClass));
5446
+ exports.default = (0, withWidth_1.default)()(ObjectBrowserClass);