@iobroker/adapter-react-v5 5.0.8 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +4 -3
  8. package/Components/CustomModal.js +13 -14
  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 +331 -326
  18. package/Components/SaveCloseButtons.d.ts +6 -3
  19. package/Components/SaveCloseButtons.js +4 -5
  20. package/Components/Schedule.d.ts +62 -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 +42 -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 +14 -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 +74 -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,48 @@ 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
+ };
751
722
  /**
752
723
  * Function that walks through all keys of an object or array and applies a function to each key.
753
724
  */
@@ -1188,12 +1159,12 @@ function getObjectTooltip(data, lang) {
1188
1159
  }
1189
1160
  return null;
1190
1161
  }
1191
- function getIdFieldTooltip(data, classes, lang) {
1162
+ function getIdFieldTooltip(data, lang) {
1192
1163
  const tooltip = getObjectTooltip(data, lang);
1193
1164
  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);
1165
+ return react_1.default.createElement(material_1.Box, { component: "a", sx: styles.cellIdTooltipLink, href: tooltip, target: "_blank", rel: "noreferrer" }, tooltip);
1195
1166
  }
1196
- return react_1.default.createElement("span", { className: Utils_1.default.clsx(classes.cellIdTooltip) }, tooltip || data.id || '');
1167
+ return react_1.default.createElement("span", { style: styles.cellIdTooltip }, tooltip || data.id || '');
1197
1168
  }
1198
1169
  function buildTree(objects, options) {
1199
1170
  var _b, _c, _d, _e, _f;
@@ -1684,14 +1655,6 @@ exports.ITEM_IMAGES = {
1684
1655
  script: react_1.default.createElement(icons_material_1.Code, { className: "itemIcon" }),
1685
1656
  folder: react_1.default.createElement(IconClosed_1.default, { className: "itemIcon itemIconFolder" }),
1686
1657
  };
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
1658
  const SCREEN_WIDTHS = {
1696
1659
  // extra-small: 0px
1697
1660
  xs: { idWidth: '100%', fields: [], widths: {} },
@@ -1797,6 +1760,7 @@ class ObjectBrowserClass extends react_1.Component {
1797
1760
  this.objectsUpdateTimer = null;
1798
1761
  this.filterTimer = null;
1799
1762
  this.adapterColumns = [];
1763
+ this.styleTheme = '';
1800
1764
  this.edit = {
1801
1765
  id: '',
1802
1766
  val: '',
@@ -1821,6 +1785,7 @@ class ObjectBrowserClass extends react_1.Component {
1821
1785
  this.changedIds = null;
1822
1786
  this.contextMenu = null;
1823
1787
  this.recordStates = [];
1788
+ this.styles = {};
1824
1789
  this.customColumnDialog = null;
1825
1790
  /**
1826
1791
  * Context menu handler.
@@ -2081,9 +2046,9 @@ class ObjectBrowserClass extends react_1.Component {
2081
2046
  arrayTooltipText.push(react_1.default.createElement("span", { key: value + i },
2082
2047
  this.texts[`acl${el.group}_${el.title}_${value}`],
2083
2048
  ",",
2084
- react_1.default.createElement("span", { className: value === 'object'
2085
- ? this.props.classes.rightsObject
2086
- : this.props.classes.rightsState }, el.value)));
2049
+ react_1.default.createElement("span", { style: value === 'object'
2050
+ ? styles.rightsObject
2051
+ : styles.rightsState }, el.value)));
2087
2052
  }
2088
2053
  });
2089
2054
  };
@@ -2093,7 +2058,7 @@ class ObjectBrowserClass extends react_1.Component {
2093
2058
  if (acl.state) {
2094
2059
  funcRenderStateObject('state');
2095
2060
  }
2096
- return arrayTooltipText.length ? react_1.default.createElement("span", { className: this.props.classes.tooltipAccessControl }, arrayTooltipText.map(el => el)) : null;
2061
+ return arrayTooltipText.length ? react_1.default.createElement("span", { style: styles.tooltipAccessControl }, arrayTooltipText.map(el => el)) : null;
2097
2062
  };
2098
2063
  this.resizerMouseMove = (e) => {
2099
2064
  if (this.resizerActiveDiv) {
@@ -2154,10 +2119,10 @@ class ObjectBrowserClass extends react_1.Component {
2154
2119
  if (e.target.dataset.left === 'true') {
2155
2120
  this.resizeLeft = true;
2156
2121
  this.resizerNextDiv = this.resizerActiveDiv.previousElementSibling;
2157
- let handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);
2122
+ let handle = this.resizerNextDiv.querySelector('.iob-ob-resize-handler');
2158
2123
  while (this.resizerNextDiv && !handle && i < 10) {
2159
2124
  this.resizerNextDiv = this.resizerNextDiv.previousElementSibling;
2160
- handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);
2125
+ handle = this.resizerNextDiv.querySelector('.iob-ob-resize-handler');
2161
2126
  i++;
2162
2127
  }
2163
2128
  if ((handle === null || handle === void 0 ? void 0 : handle.dataset.left) !== 'true') {
@@ -2167,7 +2132,7 @@ class ObjectBrowserClass extends react_1.Component {
2167
2132
  else {
2168
2133
  this.resizeLeft = false;
2169
2134
  this.resizerNextDiv = this.resizerActiveDiv.nextElementSibling;
2170
- /* while (this.resizerNextDiv && !this.resizerNextDiv.querySelector('.' + this.props.classes.resizeHandle) && i < 10) {
2135
+ /* while (this.resizerNextDiv && !this.resizerNextDiv.querySelector('.iob-ob-resize-handler') && i < 10) {
2171
2136
  this.resizerNextDiv = this.resizerNextDiv.nextElementSibling;
2172
2137
  i++;
2173
2138
  } */
@@ -2796,20 +2761,20 @@ class ObjectBrowserClass extends react_1.Component {
2796
2761
  if (!this.state.columnsSelectorShow) {
2797
2762
  return null;
2798
2763
  }
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}`]),
2764
+ return react_1.default.createElement(material_1.Dialog, { onClose: () => this.setState({ columnsSelectorShow: false }), open: !0, sx: {
2765
+ '& .MuiPaper-root': Utils_1.default.getStyle(this.props.theme, styles.dialogColumns, styles[`transparent_${this.state.columnsDialogTransparent}`]),
2801
2766
  } },
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: () => {
2767
+ react_1.default.createElement(material_1.DialogTitle, { sx: styles.fontSizeTitle }, this.props.t('ra_Configure')),
2768
+ react_1.default.createElement(material_1.DialogContent, { sx: styles.fontSizeTitle },
2769
+ react_1.default.createElement(material_1.FormControlLabel, { style: styles.switchColumnAuto, control: react_1.default.createElement(material_1.Switch, { checked: this.state.foldersFirst, onChange: () => {
2805
2770
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.foldersFirst`, this.state.foldersFirst ? 'false' : 'true');
2806
2771
  this.setState({ foldersFirst: !this.state.foldersFirst });
2807
2772
  } }), 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: () => {
2773
+ react_1.default.createElement(material_1.FormControlLabel, { style: styles.switchColumnAuto, control: react_1.default.createElement(material_1.Switch, { checked: this.state.linesEnabled, onChange: () => {
2809
2774
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.lines`, this.state.linesEnabled ? 'false' : 'true');
2810
2775
  this.setState({ linesEnabled: !this.state.linesEnabled });
2811
2776
  } }), 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: () => {
2777
+ react_1.default.createElement(material_1.FormControlLabel, { style: styles.switchColumnAuto, control: react_1.default.createElement(material_1.Switch, { checked: this.state.columnsAuto, onChange: () => {
2813
2778
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.columnsAuto`, this.state.columnsAuto ? 'false' : 'true');
2814
2779
  if (!this.state.columnsAuto) {
2815
2780
  this.calculateColumnsVisibility(true);
@@ -2924,7 +2889,7 @@ class ObjectBrowserClass extends react_1.Component {
2924
2889
  item.objTypes = [item.objTypes];
2925
2890
  }
2926
2891
  else if (!item.objTypes) {
2927
- item.objTypes = null;
2892
+ item.objTypes = undefined;
2928
2893
  }
2929
2894
  if (!item.name && item.path) {
2930
2895
  return {
@@ -3105,7 +3070,7 @@ class ObjectBrowserClass extends react_1.Component {
3105
3070
  }
3106
3071
  getFilterInput(filterName) {
3107
3072
  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}`,
3073
+ return react_1.default.createElement(material_1.FormControl, { sx: this.styles.filterInput, key: `${filterName}_${this.state.filterKey}`,
3109
3074
  // style={{ marginTop: 0, marginBottom: 0 }}
3110
3075
  margin: "dense" },
3111
3076
  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 +3092,12 @@ class ObjectBrowserClass extends react_1.Component {
3127
3092
  var _b, _c, _d;
3128
3093
  const hasIcons = !!(values === null || values === void 0 ? void 0 : values.find(item => item.icon));
3129
3094
  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: () => {
3095
+ 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
3096
  this.filterTimer && clearTimeout(this.filterTimer);
3132
3097
  this.filterTimer = setTimeout(() => this.onFilter(), 400);
3133
3098
  }, defaultValue: this.state.filter[name] || '', inputProps: { name, id: name }, displayEmpty: true },
3134
3099
  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 :
3100
+ react_1.default.createElement("span", { style: styles.selectNone }, this.texts[`filter_${name}`])), values === null || values === void 0 ? void 0 :
3136
3101
  values.map(item => {
3137
3102
  let id;
3138
3103
  let _name;
@@ -3146,11 +3111,11 @@ class ObjectBrowserClass extends react_1.Component {
3146
3111
  id = item;
3147
3112
  _name = item;
3148
3113
  }
3149
- return react_1.default.createElement(material_1.MenuItem, { className: this.props.classes.headerCellSelectItem, key: id, value: id },
3114
+ return react_1.default.createElement(material_1.MenuItem, { sx: styles.headerCellSelectItem, key: id, value: id },
3150
3115
  icon || (hasIcons ? react_1.default.createElement("div", { className: "itemIcon" }) : null),
3151
3116
  _name);
3152
3117
  })),
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) },
3118
+ ((_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
3119
  react_1.default.createElement(material_1.IconButton, { size: "small", onClick: () => {
3155
3120
  var _b;
3156
3121
  const newFilter = Object.assign({}, this.state.filter);
@@ -3170,7 +3135,7 @@ class ObjectBrowserClass extends react_1.Component {
3170
3135
  return ({
3171
3136
  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
3137
  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 }),
3138
+ 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
3139
  });
3175
3140
  });
3176
3141
  return this.getFilterSelect('room', rooms);
@@ -3181,7 +3146,7 @@ class ObjectBrowserClass extends react_1.Component {
3181
3146
  return ({
3182
3147
  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
3148
  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 }),
3149
+ 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
3150
  });
3186
3151
  });
3187
3152
  return this.getFilterSelect('func', func);
@@ -3199,7 +3164,7 @@ class ObjectBrowserClass extends react_1.Component {
3199
3164
  const customs = this.info.customs.map(id => ({
3200
3165
  name: id === '_' ? this.texts.filterCustomsWithout : id,
3201
3166
  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 }),
3167
+ icon: id === '_' ? null : react_1.default.createElement(Icon_1.default, { src: getSelectIdIconFromObjects(this.objects, id, this.imagePrefix) || '', style: styles.selectIcon }),
3203
3168
  }));
3204
3169
  return this.getFilterSelect('custom', customs);
3205
3170
  }
@@ -3539,40 +3504,54 @@ class ObjectBrowserClass extends react_1.Component {
3539
3504
  width: '100%',
3540
3505
  alignItems: 'center',
3541
3506
  } },
3542
- react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Refresh tree'), classes: { popper: this.props.classes.tooltip } },
3507
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Refresh tree'), componentsProps: { popper: { sx: styles.tooltip } } },
3543
3508
  react_1.default.createElement("div", null,
3544
3509
  react_1.default.createElement(material_1.IconButton, { onClick: () => this.refreshComponent(), disabled: this.state.updating, size: "large" },
3545
3510
  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 } },
3511
+ 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
3512
  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
3513
  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 } },
3514
+ !this.props.disableColumnSelector && (react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Configure'), componentsProps: { popper: { sx: styles.tooltip } } },
3550
3515
  react_1.default.createElement(material_1.IconButton, { key: "columnSelector", color: this.state.columnsAuto ? 'primary' : 'default', onClick: () => this.setState({ columnsSelectorShow: true }), size: "large" },
3551
3516
  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 } },
3517
+ this.state.expandAllVisible && (react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Expand all nodes'), componentsProps: { popper: { sx: styles.tooltip } } },
3553
3518
  react_1.default.createElement(material_1.IconButton, { key: "expandAll", onClick: () => this.onExpandAll(), size: "large" },
3554
3519
  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 } },
3520
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Collapse all nodes'), componentsProps: { popper: { sx: styles.tooltip } } },
3556
3521
  react_1.default.createElement(material_1.IconButton, { key: "collapseAll", onClick: () => this.onCollapseAll(), size: "large" },
3557
3522
  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 } },
3523
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Expand one step node'), componentsProps: { popper: { sx: styles.tooltip } } },
3559
3524
  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" },
3525
+ react_1.default.createElement(material_1.Badge, { badgeContent: this.state.depth, color: "secondary", sx: (theme) => ({
3526
+ badge: {
3527
+ right: 3,
3528
+ top: 3,
3529
+ border: `2px solid ${theme.palette.background.paper}`,
3530
+ padding: '0 4px',
3531
+ },
3532
+ }) },
3561
3533
  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 } },
3534
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Collapse one step node'), componentsProps: { popper: { sx: styles.tooltip } } },
3563
3535
  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" },
3536
+ react_1.default.createElement(material_1.Badge, { sx: (theme) => ({
3537
+ badge: {
3538
+ right: 3,
3539
+ top: 3,
3540
+ border: `2px solid ${theme.palette.background.paper}`,
3541
+ padding: '0 4px',
3542
+ },
3543
+ }), badgeContent: this.state.depth, color: "secondary" },
3565
3544
  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 } },
3545
+ 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
3546
  react_1.default.createElement(material_1.IconButton, { onClick: () => this.onStatesViewVisible(), size: "large" },
3568
3547
  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 } },
3548
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Show/Hide object descriptions'), componentsProps: { popper: { sx: styles.tooltip } } },
3570
3549
  react_1.default.createElement(material_1.IconButton, { onClick: () => {
3571
3550
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.desc`, this.state.showDescription ? 'false' : 'true');
3572
3551
  this.setState({ showDescription: !this.state.showDescription });
3573
3552
  }, size: "large" },
3574
3553
  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 } },
3554
+ this.props.objectAddBoolean ? react_1.default.createElement(material_1.Tooltip, { title: this.toolTipObjectCreating(), componentsProps: { popper: { sx: styles.tooltip } } },
3576
3555
  react_1.default.createElement("div", null,
3577
3556
  react_1.default.createElement(material_1.IconButton, { disabled: !allowObjectCreation, onClick: () => this.setState({
3578
3557
  modalNewObj: {
@@ -3580,7 +3559,7 @@ class ObjectBrowserClass extends react_1.Component {
3580
3559
  },
3581
3560
  }), size: "large" },
3582
3561
  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 } },
3562
+ 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
3563
  react_1.default.createElement(material_1.IconButton, { onClick: () => {
3585
3564
  const input = document.createElement('input');
3586
3565
  input.setAttribute('type', 'file');
@@ -3592,11 +3571,11 @@ class ObjectBrowserClass extends react_1.Component {
3592
3571
  react_1.default.createElement(icons_material_1.Publish, null))),
3593
3572
  this.props.objectImportExport &&
3594
3573
  (!!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 } },
3574
+ react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Save objects tree as JSON file'), componentsProps: { popper: { sx: styles.tooltip } } },
3596
3575
  react_1.default.createElement(material_1.IconButton, { onClick: () => this.setState({ showExportDialog: this._getSelectedIdsForExport().length }), size: "large" },
3597
3576
  react_1.default.createElement(icons_material_1.Publish, { style: { transform: 'rotate(180deg)' } })))),
3598
3577
  !!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 } },
3578
+ this.props.objectEditBoolean && react_1.default.createElement(material_1.Tooltip, { title: this.props.t('ra_Edit custom config'), componentsProps: { popper: { sx: styles.tooltip } } },
3600
3579
  react_1.default.createElement(material_1.IconButton, { onClick: () => {
3601
3580
  var _b;
3602
3581
  // get all visible states
@@ -3639,12 +3618,12 @@ class ObjectBrowserClass extends react_1.Component {
3639
3618
  this.setState({ toast: this.props.t('ra_Copied') });
3640
3619
  }
3641
3620
  }
3642
- renderColumnButtons(id, item, classes) {
3621
+ renderColumnButtons(id, item) {
3643
3622
  var _b, _c, _d;
3644
3623
  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: () => {
3624
+ return this.props.onObjectDelete || this.props.objectEditOfAccessControl ? react_1.default.createElement("div", { style: styles.buttonDiv },
3625
+ 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,
3626
+ 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
3627
  var _b;
3649
3628
  // calculate the number of children
3650
3629
  const keys = Object.keys(this.objects);
@@ -3661,7 +3640,7 @@ class ObjectBrowserClass extends react_1.Component {
3661
3640
  }
3662
3641
  this.props.onObjectDelete && this.props.onObjectDelete(id, !!((_b = item.children) === null || _b === void 0 ? void 0 : _b.length), false, count + 1);
3663
3642
  } },
3664
- react_1.default.createElement(icons_material_1.Delete, { className: classes.cellButtonsButtonIcon })) : null) : null;
3643
+ react_1.default.createElement(icons_material_1.Delete, { style: styles.cellButtonsButtonIcon })) : null) : null;
3665
3644
  }
3666
3645
  item.data.aclTooltip = item.data.aclTooltip || this.renderTooltipAccessControl(item.data.obj.acl);
3667
3646
  const acl = item.data.obj.acl
@@ -3675,19 +3654,19 @@ class ObjectBrowserClass extends react_1.Component {
3675
3654
  : this.systemConfig.common.defaultNewAcl.object);
3676
3655
  const showEdit = this.state.filter.expertMode || _a.isNonExpertId(item.data.id);
3677
3656
  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))
3657
+ 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 } } },
3658
+ react_1.default.createElement(material_1.IconButton, { style: styles.cellButtonMinWidth, onClick: () => this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data }), size: "large" },
3659
+ react_1.default.createElement("div", { style: styles.aclText }, Number.isNaN(Number(acl))
3681
3660
  ? Number(aclSystemConfig).toString(16)
3682
3661
  : 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: () => {
3662
+ react_1.default.createElement("div", { key: "aclEmpty", style: styles.cellButtonMinWidth }),
3663
+ showEdit ? react_1.default.createElement(material_1.IconButton, { key: "edit", style: styles.cellButtonsButton, size: "small", "aria-label": "edit", title: this.texts.editObject, onClick: () => {
3685
3664
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);
3686
3665
  this.setState({ editObjectDialog: id, editObjectAlias: false });
3687
3666
  } },
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: () => {
3667
+ react_1.default.createElement(icons_material_1.Edit, { style: styles.cellButtonsButtonIcon })) :
3668
+ react_1.default.createElement("div", { key: "editDisabled", style: styles.cellButtonsButton }),
3669
+ 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
3670
  var _b, _c, _d;
3692
3671
  const keys = Object.keys(this.objects);
3693
3672
  keys.sort();
@@ -3703,21 +3682,21 @@ class ObjectBrowserClass extends react_1.Component {
3703
3682
  }
3704
3683
  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
3684
  }, title: this.texts.deleteObject },
3706
- react_1.default.createElement(icons_material_1.Delete, { className: classes.cellButtonsButtonIcon })) : null,
3685
+ react_1.default.createElement(icons_material_1.Delete, { style: styles.cellButtonsButtonIcon })) : null,
3707
3686
  this.props.objectCustomDialog &&
3708
3687
  this.info.hasSomeCustoms &&
3709
3688
  item.data.obj.type === 'state' &&
3710
3689
  // @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: () => {
3690
+ ((_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
3691
+ ? this.styles.cellButtonsButtonWithCustoms
3692
+ : styles.cellButtonsButtonWithoutCustoms)), key: "custom", size: "small", "aria-label": "config", title: this.texts.customConfig, onClick: () => {
3714
3693
  var _b;
3715
3694
  this.localStorage.setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);
3716
3695
  this.pauseSubscribe(true);
3717
3696
  (_b = this.props.router) === null || _b === void 0 ? void 0 : _b.doNavigate(null, 'customs', id);
3718
3697
  this.setState({ customDialog: [id], customDialogAll: false });
3719
3698
  } },
3720
- react_1.default.createElement(icons_material_1.Settings, { className: classes.cellButtonsButtonIcon })) : null,
3699
+ react_1.default.createElement(icons_material_1.Settings, { style: styles.cellButtonsButtonIcon })) : null,
3721
3700
  ];
3722
3701
  }
3723
3702
  readHistory(id) {
@@ -3776,7 +3755,7 @@ class ObjectBrowserClass extends react_1.Component {
3776
3755
  var _b, _c;
3777
3756
  const obj = this.objects[id];
3778
3757
  const state = this.states[id];
3779
- const classes = this.props.classes;
3758
+ const classes = styles;
3780
3759
  const { valFull, fileViewer } = formatValue({
3781
3760
  state,
3782
3761
  obj: obj,
@@ -3786,25 +3765,25 @@ class ObjectBrowserClass extends react_1.Component {
3786
3765
  full: true,
3787
3766
  });
3788
3767
  const valFullRx = [];
3789
- valFull.forEach(_item => {
3768
+ valFull === null || valFull === void 0 ? void 0 : valFull.forEach(_item => {
3790
3769
  if (_item.t === this.texts.quality && state.q) {
3791
- valFullRx.push(react_1.default.createElement("div", { className: classes.cellValueTooltipBoth, key: _item.t },
3770
+ valFullRx.push(react_1.default.createElement("div", { style: classes.cellValueTooltipBoth, key: _item.t },
3792
3771
  _item.t,
3793
3772
  ":\u00A0",
3794
3773
  _item.v));
3795
- // <div className={classes.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,
3774
+ // <div style={styles.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,
3796
3775
  !_item.nbr && valFullRx.push(react_1.default.createElement("br", { key: `${_item.t}_br` }));
3797
3776
  }
3798
3777
  else {
3799
- valFullRx.push(react_1.default.createElement("div", { className: classes.cellValueTooltipTitle, key: _item.t },
3778
+ valFullRx.push(react_1.default.createElement("div", { style: classes.cellValueTooltipTitle, key: _item.t },
3800
3779
  _item.t,
3801
3780
  ":\u00A0"));
3802
- valFullRx.push(react_1.default.createElement("div", { className: classes.cellValueTooltipValue, key: `${_item.t}_v` }, _item.v));
3781
+ valFullRx.push(react_1.default.createElement("div", { style: classes.cellValueTooltipValue, key: `${_item.t}_v` }, _item.v));
3803
3782
  !_item.nbr && valFullRx.push(react_1.default.createElement("br", { key: `${_item.t}_br` }));
3804
3783
  }
3805
3784
  });
3806
3785
  if (fileViewer === 'image') {
3807
- valFullRx.push(react_1.default.createElement("img", { className: classes.cellValueTooltipImage, src: state.val, alt: id }));
3786
+ valFullRx.push(react_1.default.createElement("img", { style: classes.cellValueTooltipImage, src: state.val, alt: id }));
3808
3787
  }
3809
3788
  else if (this.defaultHistory &&
3810
3789
  ((_c = (_b = this.objects[id]) === null || _b === void 0 ? void 0 : _b.common) === null || _c === void 0 ? void 0 : _c.custom) &&
@@ -3813,14 +3792,14 @@ class ObjectBrowserClass extends react_1.Component {
3813
3792
  }
3814
3793
  this.setState({ tooltipInfo: { el: valFullRx, id } }, () => cb && cb());
3815
3794
  }
3816
- renderColumnValue(id, item, classes) {
3795
+ renderColumnValue(id, item) {
3817
3796
  var _b, _c;
3818
3797
  const obj = item.data.obj;
3819
3798
  if (!obj || !this.states) {
3820
3799
  return null;
3821
3800
  }
3822
3801
  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]");
3802
+ return react_1.default.createElement(material_1.Box, { component: "div", sx: Object.assign(Object.assign({}, styles.cellValueText), styles.cellValueFile) }, "[file]");
3824
3803
  }
3825
3804
  if (!this.states[id]) {
3826
3805
  if (obj.type === 'state') {
@@ -3845,26 +3824,26 @@ class ObjectBrowserClass extends react_1.Component {
3845
3824
  const valTextRx = [];
3846
3825
  item.data.state = { valTextRx };
3847
3826
  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` },
3827
+ valTextRx.push(react_1.default.createElement("span", { className: `newValueBrowser-${this.props.themeType || 'light'}`, key: `${valText.v.toString()}valText` }, valText.v.toString()));
3828
+ 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));
3829
+ 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
3830
  "(",
3852
3831
  valText.s,
3853
3832
  ")"));
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" />
3833
+ valTextRx.push(react_1.default.createElement(IconCopy_1.default, { className: "copyButton", style: this.styles.iconCopy, onClick: e => this.onCopy(e, copyText), key: "cc" }));
3834
+ // <IconEdit className="copyButton" style={{{ ...styles.cellButtonsValueButton, styles.cellButtonsValueButtonEdit)} key="ce" />
3856
3835
  info = item.data.state;
3857
3836
  }
3858
3837
  info.style = getValueStyle({ state, isExpertMode: this.state.filter.expertMode, isButton: item.data.button });
3859
3838
  let val = info.valTextRx;
3860
3839
  if (!this.state.filter.expertMode && item.data.button) {
3861
- val = [react_1.default.createElement(icons_material_1.RoomService, { className: this.props.classes.cellValueButton })];
3840
+ val = [react_1.default.createElement(icons_material_1.RoomService, { style: styles.cellValueButton })];
3862
3841
  }
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,
3842
+ 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: {
3843
+ popper: { sx: styles.cellValueTooltipBox },
3844
+ tooltip: { sx: styles.cellValueTooltip },
3866
3845
  }, 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));
3846
+ react_1.default.createElement(material_1.Box, { component: "div", style: info.style, sx: styles.cellValueText }, val));
3868
3847
  }
3869
3848
  _syncEnum(id, enumIds, newArray, cb) {
3870
3849
  var _b, _c, _d;
@@ -3934,17 +3913,17 @@ class ObjectBrowserClass extends react_1.Component {
3934
3913
  .sort((a, b) => (a.name > b.name ? 1 : -1));
3935
3914
  enums.forEach(_item => {
3936
3915
  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 })));
3916
+ _item.icon = react_1.default.createElement(material_1.Box, { style: styles.enumIconDiv },
3917
+ react_1.default.createElement("img", { src: _item.icon, style: styles.enumIcon, alt: _item.name }));
3939
3918
  }
3940
3919
  });
3941
3920
  // 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 },
3921
+ 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
3922
  react_1.default.createElement(material_1.DialogTitle, { id: "enum-dialog-title" },
3944
3923
  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 })) },
3924
+ 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
3925
  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 => {
3926
+ react_1.default.createElement(material_1.List, { sx: { '&.MuiList-root': styles.enumList } }, enums.map(_item => {
3948
3927
  let id;
3949
3928
  let name;
3950
3929
  let icon;
@@ -3958,7 +3937,7 @@ class ObjectBrowserClass extends react_1.Component {
3958
3937
  name = _item;
3959
3938
  }
3960
3939
  const labelId = `checkbox-list-label-${id}`;
3961
- return react_1.default.createElement(material_1.ListItem, { className: this.props.classes.headerCellSelectItem, key: id, onClick: () => {
3940
+ return react_1.default.createElement(material_1.ListItem, { sx: styles.headerCellSelectItem, key: id, onClick: () => {
3962
3941
  const pos = itemEnums.indexOf(id);
3963
3942
  const enumDialogEnums = JSON.parse(JSON.stringify(this.state.enumDialogEnums));
3964
3943
  if (pos === -1) {
@@ -3970,7 +3949,7 @@ class ObjectBrowserClass extends react_1.Component {
3970
3949
  }
3971
3950
  this.setState({ enumDialogEnums });
3972
3951
  } },
3973
- react_1.default.createElement(material_1.ListItemIcon, { classes: { root: this.props.classes.enumCheckbox } },
3952
+ react_1.default.createElement(material_1.ListItemIcon, { sx: { '&.MuiListItemIcon-root': styles.enumCheckbox } },
3974
3953
  react_1.default.createElement(material_1.Checkbox, { edge: "start", checked: itemEnums.includes(id), tabIndex: -1, disableRipple: true, inputProps: { 'aria-labelledby': labelId } })),
3975
3954
  react_1.default.createElement(material_1.ListItemText, { id: labelId }, name),
3976
3955
  icon ? react_1.default.createElement(material_1.ListItemSecondaryAction, null, icon) : null);
@@ -3982,11 +3961,7 @@ class ObjectBrowserClass extends react_1.Component {
3982
3961
  }
3983
3962
  if (this.state.roleDialog && this.props.objectBrowserEditRole) {
3984
3963
  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) => {
3964
+ 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
3965
  if (obj) {
3991
3966
  this.info.objects[this.state.roleDialog] = obj;
3992
3967
  }
@@ -4167,19 +4142,19 @@ class ObjectBrowserClass extends react_1.Component {
4167
4142
  const text = _a.getCustomValue(obj, it);
4168
4143
  if (text !== null && text !== undefined) {
4169
4144
  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({
4145
+ 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
4146
  columnsEditCustomDialog: { item, it, obj },
4172
4147
  customColumnDialogValueChanged: false,
4173
4148
  }) }, text);
4174
4149
  }
4175
- return react_1.default.createElement("div", { className: Utils_1.default.clsx(this.props.classes.columnCustom, this.props.classes[`columnCustom_${it.align}`]) }, text);
4150
+ return react_1.default.createElement(material_1.Box, { component: "div", style: Object.assign(Object.assign({}, styles.columnCustom), styles[`columnCustom_${it.align}`]) }, text);
4176
4151
  }
4177
4152
  return null;
4178
4153
  }
4179
4154
  /**
4180
4155
  * Renders a leaf.
4181
4156
  */
4182
- renderLeaf(item, isExpanded, classes, counter) {
4157
+ renderLeaf(item, isExpanded, counter) {
4183
4158
  var _b, _c, _d, _e, _f, _g, _h, _j, _k;
4184
4159
  const id = item.data.id;
4185
4160
  counter.count++;
@@ -4193,22 +4168,24 @@ class ObjectBrowserClass extends react_1.Component {
4193
4168
  itemType === 'device' ||
4194
4169
  itemType === 'channel' ||
4195
4170
  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) }));
4171
+ iconFolder = isExpanded ?
4172
+ react_1.default.createElement(IconOpen_1.default, { style: this.styles.cellIdIconFolder, onClick: () => this.toggleExpanded(id) }) :
4173
+ react_1.default.createElement(IconClosed_1.default, { style: this.styles.cellIdIconFolder, onClick: () => this.toggleExpanded(id) });
4197
4174
  }
4198
4175
  else if (obj && obj.common && obj.common.write === false && obj.type === 'state') {
4199
- iconFolder = react_1.default.createElement(IconDocumentReadOnly_1.default, { className: classes.cellIdIconDocument });
4176
+ iconFolder = react_1.default.createElement(IconDocumentReadOnly_1.default, { style: this.styles.cellIdIconDocument });
4200
4177
  }
4201
4178
  else {
4202
- iconFolder = react_1.default.createElement(IconDocument_1.default, { className: classes.cellIdIconDocument });
4179
+ iconFolder = react_1.default.createElement(IconDocument_1.default, { style: this.styles.cellIdIconDocument });
4203
4180
  }
4204
4181
  let iconItem = null;
4205
4182
  if (item.data.icon) {
4206
4183
  if (typeof item.data.icon === 'string') {
4207
4184
  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
4185
+ iconItem = react_1.default.createElement("span", { className: "iconOwn", style: styles.cellIdIconOwn }, item.data.icon); // utf-8 char
4209
4186
  }
4210
4187
  else {
4211
- iconItem = react_1.default.createElement(Icon_1.default, { className: Utils_1.default.clsx(classes.cellIdIconOwn, 'iconOwn'), src: item.data.icon, alt: "" });
4188
+ iconItem = react_1.default.createElement(Icon_1.default, { style: styles.cellIdIconOwn, className: "iconOwn", src: item.data.icon, alt: "" });
4212
4189
  }
4213
4190
  }
4214
4191
  else {
@@ -4231,7 +4208,7 @@ class ObjectBrowserClass extends react_1.Component {
4231
4208
  const checkbox = this.props.multiSelect &&
4232
4209
  this.objects[id] &&
4233
4210
  (!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;
4211
+ react_1.default.createElement(material_1.Checkbox, { style: styles.checkBox, checked: this.state.selected.includes(id) }) : null;
4235
4212
  let valueEditable = !this.props.notEditable &&
4236
4213
  itemType === 'state' &&
4237
4214
  (this.state.filter.expertMode || (common === null || common === void 0 ? void 0 : common.write) !== false);
@@ -4268,30 +4245,30 @@ class ObjectBrowserClass extends react_1.Component {
4268
4245
  }
4269
4246
  const readWriteAlias = typeof ((_c = common === null || common === void 0 ? void 0 : common.alias) === null || _c === void 0 ? void 0 : _c.id) === 'object';
4270
4247
  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 => {
4248
+ react_1.default.createElement("div", { style: styles.cellIdAliasReadWriteDiv },
4249
+ common.alias.id.read ? react_1.default.createElement(material_1.Box, { component: "div", onClick: e => {
4273
4250
  e.stopPropagation();
4274
4251
  e.preventDefault();
4275
4252
  this.onSelect(common.alias.id.read);
4276
4253
  setTimeout(() => this.expandAllSelected(() => this.scrollToItem(common.alias.id.read)), 100);
4277
- }, className: Utils_1.default.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite) },
4254
+ }, sx: this.styles.aliasReadWrite },
4278
4255
  "\u2190",
4279
4256
  common.alias.id.read) : null,
4280
- common.alias.id.write ? react_1.default.createElement("div", { onClick: e => {
4257
+ common.alias.id.write ? react_1.default.createElement(material_1.Box, { component: "div", onClick: e => {
4281
4258
  e.stopPropagation();
4282
4259
  e.preventDefault();
4283
4260
  this.onSelect(common.alias.id.write);
4284
4261
  setTimeout(() => this.expandAllSelected(() => this.scrollToItem(common.alias.id.write)), 100);
4285
- }, className: Utils_1.default.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite) },
4262
+ }, sx: this.styles.aliasReadWrite },
4286
4263
  "\u2192",
4287
4264
  common.alias.id.write) : null)
4288
4265
  :
4289
- react_1.default.createElement("div", { onClick: e => {
4266
+ react_1.default.createElement(material_1.Box, { component: "div", onClick: e => {
4290
4267
  e.stopPropagation();
4291
4268
  e.preventDefault();
4292
4269
  this.onSelect(common.alias.id);
4293
4270
  setTimeout(() => this.expandAllSelected(() => this.scrollToItem(common.alias.id)), 100);
4294
- }, className: Utils_1.default.clsx(classes.cellIdAlias, classes.cellIdAliasAlone) },
4271
+ }, sx: this.styles.aliasAlone },
4295
4272
  "\u2192",
4296
4273
  common.alias.id)) : null;
4297
4274
  let checkColor = common === null || common === void 0 ? void 0 : common.color;
@@ -4356,7 +4333,7 @@ class ObjectBrowserClass extends react_1.Component {
4356
4333
  colorSet = true;
4357
4334
  icons.push(react_1.default.createElement(icons_material_1.Error, { key: "error",
4358
4335
  // title={this.texts.deviceError}
4359
- className: this.props.classes.iconDeviceError }));
4336
+ style: this.styles.iconDeviceError }));
4360
4337
  }
4361
4338
  if (ids.onlineId && this.states[ids.onlineId]) {
4362
4339
  if (!colorSet) {
@@ -4365,7 +4342,7 @@ class ObjectBrowserClass extends react_1.Component {
4365
4342
  this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;
4366
4343
  icons.push(react_1.default.createElement(icons_material_1.Wifi, { key: "conn",
4367
4344
  // title={this.texts.deviceError}
4368
- className: this.props.classes.iconDeviceConnected }));
4345
+ style: this.styles.iconDeviceConnected }));
4369
4346
  }
4370
4347
  else {
4371
4348
  checkColor =
@@ -4374,18 +4351,18 @@ class ObjectBrowserClass extends react_1.Component {
4374
4351
  : COLOR_NAME_DISCONNECTED_LIGHT;
4375
4352
  icons.push(react_1.default.createElement(icons_material_1.WifiOff, { key: "disc",
4376
4353
  // title={this.texts.deviceError}
4377
- className: this.props.classes.iconDeviceDisconnected }));
4354
+ style: this.styles.iconDeviceDisconnected }));
4378
4355
  }
4379
4356
  }
4380
4357
  else if (this.states[ids.onlineId].val) {
4381
4358
  icons.push(react_1.default.createElement(icons_material_1.Wifi, { key: "conn",
4382
4359
  // title={this.texts.deviceError}
4383
- className: this.props.classes.iconDeviceConnected }));
4360
+ style: this.styles.iconDeviceConnected }));
4384
4361
  }
4385
4362
  else {
4386
4363
  icons.push(react_1.default.createElement(icons_material_1.WifiOff, { key: "disc",
4387
4364
  // title={this.texts.deviceError}
4388
- className: this.props.classes.iconDeviceDisconnected }));
4365
+ style: this.styles.iconDeviceDisconnected }));
4389
4366
  }
4390
4367
  }
4391
4368
  else if (ids.offlineId && this.states[ids.offlineId]) {
@@ -4397,25 +4374,25 @@ class ObjectBrowserClass extends react_1.Component {
4397
4374
  : COLOR_NAME_DISCONNECTED_LIGHT;
4398
4375
  icons.push(react_1.default.createElement(icons_material_1.WifiOff, { key: "disc",
4399
4376
  // title={this.texts.deviceError}
4400
- className: this.props.classes.iconDeviceDisconnected }));
4377
+ style: this.styles.iconDeviceDisconnected }));
4401
4378
  }
4402
4379
  else {
4403
4380
  checkColor =
4404
4381
  this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;
4405
4382
  icons.push(react_1.default.createElement(icons_material_1.Wifi, { key: "conn",
4406
4383
  // title={this.texts.deviceError}
4407
- className: this.props.classes.iconDeviceConnected }));
4384
+ style: this.styles.iconDeviceConnected }));
4408
4385
  }
4409
4386
  }
4410
4387
  else if (this.states[ids.offlineId].val) {
4411
4388
  icons.push(react_1.default.createElement(icons_material_1.WifiOff, { key: "disc",
4412
4389
  // title={this.texts.deviceError}
4413
- className: this.props.classes.iconDeviceDisconnected }));
4390
+ style: this.styles.iconDeviceDisconnected }));
4414
4391
  }
4415
4392
  else {
4416
4393
  icons.push(react_1.default.createElement(icons_material_1.Wifi, { key: "conn",
4417
4394
  // title={this.texts.deviceError}
4418
- className: this.props.classes.iconDeviceConnected }));
4395
+ style: this.styles.iconDeviceConnected }));
4419
4396
  }
4420
4397
  }
4421
4398
  }
@@ -4426,16 +4403,16 @@ class ObjectBrowserClass extends react_1.Component {
4426
4403
  const oTooltip = getObjectTooltip(item.data, this.props.lang);
4427
4404
  if (oTooltip) {
4428
4405
  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),
4406
+ react_1.default.createElement("div", { key: "name", style: styles.cellNameDivDiv }, name),
4407
+ react_1.default.createElement("div", { key: "desc", style: styles.cellDescription }, oTooltip),
4431
4408
  ];
4432
4409
  useDesc = !!oTooltip;
4433
4410
  }
4434
4411
  }
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 &&
4412
+ return react_1.default.createElement(material_1.Grid, { container: true, direction: "row", wrap: "nowrap", sx: Utils_1.default.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
4413
  !item.data.visible &&
4437
4414
  !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 => {
4415
+ styles.filteredParentOut, this.state.selected.includes(id) && styles.itemSelected, this.state.selectedNonObject === id && styles.itemSelected), key: id, id: id, onMouseDown: e => {
4439
4416
  this.onSelect(id);
4440
4417
  let isRightMB;
4441
4418
  if ('which' in e) {
@@ -4463,40 +4440,34 @@ class ObjectBrowserClass extends react_1.Component {
4463
4440
  this.toggleExpanded(id);
4464
4441
  }
4465
4442
  } },
4466
- react_1.default.createElement(material_1.Grid, { container: true, wrap: "nowrap", direction: "row", className: classes.cellId, style: { width: this.columnsVisibility.id, paddingLeft } },
4443
+ react_1.default.createElement(material_1.Grid, { container: true, wrap: "nowrap", direction: "row", sx: styles.cellId, style: { width: this.columnsVisibility.id, paddingLeft } },
4467
4444
  react_1.default.createElement(material_1.Grid, { item: true, container: true, alignItems: "center" },
4468
4445
  checkbox,
4469
4446
  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 } },
4447
+ 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 }) },
4448
+ react_1.default.createElement(material_1.Tooltip, { title: getIdFieldTooltip(item.data, this.props.lang), componentsProps: { popper: { sx: styles.tooltip } } },
4472
4449
  react_1.default.createElement("div", null, item.data.name)),
4473
4450
  alias,
4474
4451
  icons),
4475
- react_1.default.createElement("div", { className: Utils_1.default.clsx(classes.grow, invertBackground && classes.invertedBackgroundFlex) }),
4452
+ react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.grow), (invertBackground ? this.styles.invertedBackgroundFlex : {})) }),
4476
4453
  react_1.default.createElement(material_1.Grid, { item: true, container: true, alignItems: "center" }, iconItem),
4477
4454
  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 } },
4455
+ react_1.default.createElement(IconCopy_1.default, { className: "copyButton", style: styles.cellCopyButton, onClick: e => this.onCopy(e, id) }))),
4456
+ 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
4457
  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,
4458
+ ((_g = item.data) === null || _g === void 0 ? void 0 : _g.title) ? react_1.default.createElement(material_1.Box, { style: { color: checkColor } },
4459
+ 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
4460
  !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 } },
4461
+ this.columnsVisibility.type ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.cellType), { width: this.columnsVisibility.type }) },
4485
4462
  typeImg,
4486
4463
  "\u00A0",
4487
4464
  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
4465
+ 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
4466
  ? 'text'
4492
- : 'default',
4493
- }, onClick: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole
4467
+ : 'default' }), onClick: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole
4494
4468
  ? () => this.setState({ roleDialog: item.data.id })
4495
4469
  : 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 ? () => {
4470
+ 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
4471
  const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'roomEnums');
4501
4472
  this.setState({
4502
4473
  enumDialogEnums: enums,
@@ -4507,10 +4478,7 @@ class ObjectBrowserClass extends react_1.Component {
4507
4478
  },
4508
4479
  });
4509
4480
  } : 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 ? () => {
4481
+ 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
4482
  const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'funcEnums');
4515
4483
  this.setState({
4516
4484
  enumDialogEnums: enums,
@@ -4521,19 +4489,16 @@ class ObjectBrowserClass extends react_1.Component {
4521
4489
  },
4522
4490
  });
4523
4491
  } : 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)
4492
+ 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,
4493
+ this.columnsVisibility.qualityCode ? react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.cellRole), { width: this.columnsVisibility.qualityCode }), title: q || '' }, q) : null,
4494
+ 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
4495
  ? Utils_1.default.formatDate(new Date(this.states[id].ts), this.props.dateFormat || this.systemConfig.common.dateFormat)
4528
4496
  : 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)
4497
+ 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
4498
  ? Utils_1.default.formatDate(new Date(this.states[id].lc), this.props.dateFormat || this.systemConfig.common.dateFormat)
4531
4499
  : 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 ? () => {
4500
+ 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)),
4501
+ 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
4502
  if (!obj || !this.states) {
4538
4503
  // return;
4539
4504
  }
@@ -4556,24 +4521,24 @@ class ObjectBrowserClass extends react_1.Component {
4556
4521
  };
4557
4522
  this.setState({ updateOpened: true });
4558
4523
  }
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);
4524
+ } : undefined }, this.renderColumnValue(id, item)) : null,
4525
+ 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
4526
  }
4562
4527
  /**
4563
4528
  * Renders an item.
4564
4529
  */
4565
- renderItem(root, isExpanded, classes, counter) {
4530
+ renderItem(root, isExpanded, counter) {
4566
4531
  const items = [];
4567
4532
  counter = counter || { count: 0 };
4568
- let leaf = this.renderLeaf(root, isExpanded, classes, counter);
4533
+ let leaf = this.renderLeaf(root, isExpanded, counter);
4569
4534
  const DragWrapper = this.props.DragWrapper;
4570
4535
  if (this.props.dragEnabled && DragWrapper) {
4571
4536
  if (root.data.sumVisibility) {
4572
- leaf = react_1.default.createElement(DragWrapper, { key: root.data.id, item: root, className: classes.draggable }, leaf);
4537
+ leaf = react_1.default.createElement(DragWrapper, { key: root.data.id, item: root, style: styles.draggable }, leaf);
4573
4538
  }
4574
4539
  else {
4575
4540
  // change cursor
4576
- leaf = react_1.default.createElement("div", { key: root.data.id, className: classes.nonDraggable }, leaf);
4541
+ leaf = react_1.default.createElement("div", { key: root.data.id, style: styles.nonDraggable }, leaf);
4577
4542
  }
4578
4543
  }
4579
4544
  root.data.id && leaf && items.push(leaf);
@@ -4584,7 +4549,7 @@ class ObjectBrowserClass extends react_1.Component {
4584
4549
  // do not render too many items in column editor mode
4585
4550
  if (!this.state.columnsSelectorShow || counter.count < 15) {
4586
4551
  if (item.data.sumVisibility) {
4587
- return this.renderItem(item, undefined, classes, counter);
4552
+ return this.renderItem(item, undefined, counter);
4588
4553
  }
4589
4554
  }
4590
4555
  return null;
@@ -4597,7 +4562,7 @@ class ObjectBrowserClass extends react_1.Component {
4597
4562
  // do not render too many items in column editor mode
4598
4563
  if (!this.state.columnsSelectorShow || counter.count < 15) {
4599
4564
  if (item.data.sumVisibility) {
4600
- return this.renderItem(item, undefined, classes, counter);
4565
+ return this.renderItem(item, undefined, counter);
4601
4566
  }
4602
4567
  }
4603
4568
  }
@@ -4609,7 +4574,7 @@ class ObjectBrowserClass extends react_1.Component {
4609
4574
  // do not render too many items in column editor mode
4610
4575
  if (!this.state.columnsSelectorShow || counter.count < 15) {
4611
4576
  if (item.data.sumVisibility) {
4612
- return this.renderItem(item, undefined, classes, counter);
4577
+ return this.renderItem(item, undefined, counter);
4613
4578
  }
4614
4579
  }
4615
4580
  }
@@ -4839,54 +4804,53 @@ class ObjectBrowserClass extends react_1.Component {
4839
4804
  * Render the right handle for resizing
4840
4805
  */
4841
4806
  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') });
4807
+ 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
4808
  }
4844
4809
  renderHeader() {
4845
- const classes = this.props.classes;
4846
4810
  let filterClearInValue = null;
4847
4811
  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" },
4812
+ filterClearInValue = react_1.default.createElement(material_1.IconButton, { onClick: () => this.clearFilter(), style: styles.buttonClearFilter, title: this.props.t('ra_Clear filter'), size: "large" },
4849
4813
  react_1.default.createElement(IconClearFilter_1.default, null),
4850
- react_1.default.createElement(icons_material_1.Close, { className: classes.buttonClearFilterIcon }));
4814
+ react_1.default.createElement(icons_material_1.Close, { style: styles.buttonClearFilterIcon }));
4851
4815
  }
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" },
4816
+ return react_1.default.createElement("div", { style: styles.headerRow },
4817
+ 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
4818
  this.getFilterInput('id'),
4855
4819
  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" },
4820
+ 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
4821
  this.getFilterInput('name'),
4858
4822
  this.renderHandleRight()) : null,
4859
4823
  !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" },
4824
+ 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
4825
  this.getFilterSelectType(),
4862
4826
  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" },
4827
+ 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
4828
  this.getFilterSelectRole(),
4865
4829
  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" },
4830
+ 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
4831
  this.getFilterSelectRoom(),
4868
4832
  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" },
4833
+ 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
4834
  this.getFilterSelectFunction(),
4871
4835
  this.renderHandleRight()) : null),
4872
4836
  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" },
4837
+ 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
4838
  this.props.t('ra_Changed from'),
4875
4839
  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" },
4840
+ 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
4841
  this.props.t('ra_Quality code'),
4878
4842
  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" },
4843
+ 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
4844
  this.props.t('ra_Timestamp'),
4881
4845
  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" },
4846
+ 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
4847
  this.props.t('ra_Last change'),
4884
4848
  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" },
4849
+ 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)),
4850
+ 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
4851
  this.props.t('ra_Value'),
4888
4852
  filterClearInValue) : null,
4889
- this.columnsVisibility.buttons ? react_1.default.createElement("div", { className: classes.headerCell, title: this.texts.filter_custom, style: { width: this.columnsVisibility.buttons } },
4853
+ 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
4854
  ' ',
4891
4855
  this.getFilterSelectCustoms()) : null);
4892
4856
  }
@@ -4933,9 +4897,7 @@ class ObjectBrowserClass extends react_1.Component {
4933
4897
  this.forceUpdate();
4934
4898
  }
4935
4899
  (_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: {} });
4900
+ }, systemConfig: this.systemConfig });
4939
4901
  }
4940
4902
  return null;
4941
4903
  }
@@ -4954,11 +4916,7 @@ class ObjectBrowserClass extends react_1.Component {
4954
4916
  return null;
4955
4917
  }
4956
4918
  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
4919
+ 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
4920
  .setObject(obj._id, obj)
4963
4921
  .then(() => this.setState({ editObjectDialog: obj._id, editObjectAlias: false }, () => this.onSelect(obj._id)))
4964
4922
  .catch(e => this.showError(`Cannot write object: ${e}`)), onClose: (obj) => {
@@ -5070,7 +5028,7 @@ class ObjectBrowserClass extends react_1.Component {
5070
5028
  visibility: !!(this.props.objectBrowserEditObject &&
5071
5029
  obj &&
5072
5030
  (this.state.filter.expertMode || _a.isNonExpertId(id))),
5073
- icon: react_1.default.createElement(icons_material_1.Edit, { fontSize: "small", className: this.props.classes.contextMenuEdit }),
5031
+ icon: react_1.default.createElement(icons_material_1.Edit, { fontSize: "small", style: this.styles.contextMenuEdit }),
5074
5032
  label: this.texts.editObject,
5075
5033
  onClick: () => this.setState({ editObjectDialog: item.data.id, showContextMenu: null, editObjectAlias: false }),
5076
5034
  },
@@ -5083,7 +5041,7 @@ class ObjectBrowserClass extends react_1.Component {
5083
5041
  // @ts-expect-error deprecated from js-controller 6
5084
5042
  ((_b = obj.common) === null || _b === void 0 ? void 0 : _b.type) !== 'file' &&
5085
5043
  (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 }),
5044
+ icon: react_1.default.createElement(icons_material_1.FormatItalic, { fontSize: "small", style: this.styles.contextMenuEditValue }),
5087
5045
  label: this.props.t('ra_Edit value'),
5088
5046
  onClick: () => {
5089
5047
  this.edit = {
@@ -5099,8 +5057,7 @@ class ObjectBrowserClass extends react_1.Component {
5099
5057
  visibility: !!this.props.objectBrowserViewFile && (obj === null || obj === void 0 ? void 0 : obj.type) === 'state' &&
5100
5058
  // @ts-expect-error deprecated from js-controller 6
5101
5059
  ((_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: '',
5060
+ icon: react_1.default.createElement(icons_material_1.FindInPage, { fontSize: "small", style: this.styles.contextMenuView }),
5104
5061
  label: this.props.t('ra_View file'),
5105
5062
  onClick: () => this.setState({ viewFileDialog: (obj === null || obj === void 0 ? void 0 : obj._id) || '', showContextMenu: null }),
5106
5063
  },
@@ -5112,10 +5069,10 @@ class ObjectBrowserClass extends react_1.Component {
5112
5069
  obj.type === 'state' &&
5113
5070
  // @ts-expect-error deprecated from js-controller 6
5114
5071
  ((_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,
5072
+ icon: react_1.default.createElement(icons_material_1.Settings, { fontSize: "small", style: item.data.hasCustoms
5073
+ ? this.styles.cellButtonsButtonWithCustoms
5074
+ : styles.cellButtonsButtonWithoutCustoms }),
5075
+ style: this.styles.contextMenuCustom,
5119
5076
  label: this.texts.customConfig,
5120
5077
  onClick: () => {
5121
5078
  var _b;
@@ -5129,8 +5086,8 @@ class ObjectBrowserClass extends react_1.Component {
5129
5086
  visibility: !!showACL,
5130
5087
  icon: showACL,
5131
5088
  iconStyle: { fontSize: 'smaller' },
5132
- listItemIconClass: this.props.classes.contextMenuACL,
5133
- className: this.props.classes.contextMenuACL,
5089
+ listItemIconStyle: this.styles.contextMenuACL,
5090
+ style: this.styles.contextMenuACL,
5134
5091
  label: this.props.t('ra_Edit ACL'),
5135
5092
  onClick: () => this.setState({
5136
5093
  showContextMenu: null,
@@ -5141,16 +5098,14 @@ class ObjectBrowserClass extends react_1.Component {
5141
5098
  ROLE: {
5142
5099
  key: '4',
5143
5100
  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: '',
5101
+ icon: react_1.default.createElement(icons_material_1.BorderColor, { fontSize: "small", style: this.styles.contextMenuRole }),
5146
5102
  label: this.props.t('ra_Edit role'),
5147
5103
  onClick: () => this.setState({ roleDialog: item.data.id, showContextMenu: null }),
5148
5104
  },
5149
5105
  FUNCTION: {
5150
5106
  key: '5',
5151
5107
  visibility: !!enumEditable,
5152
- icon: react_1.default.createElement(icons_material_1.BedroomParent, { fontSize: "small", className: this.props.classes.contextMenuRole }),
5153
- className: '',
5108
+ icon: react_1.default.createElement(icons_material_1.BedroomParent, { fontSize: "small", style: this.styles.contextMenuRole }),
5154
5109
  label: this.props.t('ra_Edit function'),
5155
5110
  onClick: () => {
5156
5111
  const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'funcEnums');
@@ -5168,8 +5123,7 @@ class ObjectBrowserClass extends react_1.Component {
5168
5123
  ROOM: {
5169
5124
  key: '6',
5170
5125
  visibility: !!enumEditable,
5171
- icon: react_1.default.createElement(icons_material_1.Construction, { fontSize: "small", className: this.props.classes.contextMenuRoom }),
5172
- className: '',
5126
+ icon: react_1.default.createElement(icons_material_1.Construction, { fontSize: "small", style: this.styles.contextMenuRoom }),
5173
5127
  label: this.props.t('ra_Edit room'),
5174
5128
  onClick: () => {
5175
5129
  const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'roomEnums');
@@ -5193,10 +5147,9 @@ class ObjectBrowserClass extends react_1.Component {
5193
5147
  (obj === null || obj === void 0 ? void 0 : obj.type) === 'state' &&
5194
5148
  // @ts-expect-error deprecated from js-controller 6
5195
5149
  ((_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: '',
5150
+ 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)
5151
+ ? this.styles.cellButtonsButtonWithCustoms
5152
+ : styles.cellButtonsButtonWithoutCustoms }),
5200
5153
  label: this.props.t('ra_Edit alias'),
5201
5154
  onClick: () => {
5202
5155
  var _b;
@@ -5212,8 +5165,8 @@ class ObjectBrowserClass extends react_1.Component {
5212
5165
  key: '+',
5213
5166
  visibility: (item.data.id.startsWith('0_userdata.0') || item.data.id.startsWith('javascript.')) &&
5214
5167
  (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,
5168
+ icon: react_1.default.createElement(icons_material_1.Add, { fontSize: "small", style: this.styles.cellButtonsButtonWithCustoms }),
5169
+ style: styles.contextMenuWithSubMenu,
5217
5170
  label: this.texts.create,
5218
5171
  subMenu: [
5219
5172
  {
@@ -5263,8 +5216,8 @@ class ObjectBrowserClass extends react_1.Component {
5263
5216
  DELETE: {
5264
5217
  key: 'Delete',
5265
5218
  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,
5219
+ icon: react_1.default.createElement(icons_material_1.Delete, { fontSize: "small", style: this.styles.contextMenuDelete }),
5220
+ style: this.styles.contextMenuDelete,
5268
5221
  label: this.texts.deleteObject,
5269
5222
  onClick: () => this.setState({ showContextMenu: null }, () => this.showDeleteDialog({
5270
5223
  id,
@@ -5283,8 +5236,8 @@ class ObjectBrowserClass extends react_1.Component {
5283
5236
  subItem: key,
5284
5237
  subAnchor: e.target,
5285
5238
  },
5286
- }), className: ITEMS[key].className },
5287
- react_1.default.createElement(material_1.ListItemIcon, { style: ITEMS[key].iconStyle, className: ITEMS[key].listItemIconClass }, ITEMS[key].icon),
5239
+ }), style: ITEMS[key].style },
5240
+ react_1.default.createElement(material_1.ListItemIcon, { style: Object.assign(Object.assign({}, ITEMS[key].iconStyle), ITEMS[key].listItemIconStyle) }, ITEMS[key].icon),
5288
5241
  react_1.default.createElement(material_1.ListItemText, null,
5289
5242
  ITEMS[key].label,
5290
5243
  "..."),
@@ -5294,16 +5247,16 @@ class ObjectBrowserClass extends react_1.Component {
5294
5247
  items.push(react_1.default.createElement(material_1.Menu, { key: "subContextMenu", open: !0, anchorEl: this.state.showContextMenu.subAnchor, onClose: () => {
5295
5248
  this.state.showContextMenu && this.setState({ showContextMenu: { item: this.state.showContextMenu.item } });
5296
5249
  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),
5250
+ } }, (_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 },
5251
+ react_1.default.createElement(material_1.ListItemIcon, { style: Object.assign(Object.assign({}, subItem.iconStyle), (subItem.listItemIconStyle || undefined)) }, subItem.icon),
5299
5252
  react_1.default.createElement(material_1.ListItemText, null, subItem.label)) : null))));
5300
5253
  }
5301
5254
  }
5302
5255
  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),
5256
+ items.push(react_1.default.createElement(material_1.MenuItem, { key: key, onClick: ITEMS[key].onClick, sx: ITEMS[key].style },
5257
+ react_1.default.createElement(material_1.ListItemIcon, { style: Object.assign(Object.assign({}, ITEMS[key].iconStyle), ITEMS[key].listItemIconStyle) }, ITEMS[key].icon),
5305
5258
  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));
5259
+ 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
5260
  }
5308
5261
  }
5309
5262
  });
@@ -5347,9 +5300,7 @@ class ObjectBrowserClass extends react_1.Component {
5347
5300
  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
5301
  this.setState({ updateOpened: false });
5349
5302
  res && this.onUpdate(res);
5350
- },
5351
- // dummy, just to make compiler happy
5352
- classes: {} });
5303
+ } });
5353
5304
  }
5354
5305
  /**
5355
5306
  * The rendering method of this component.
@@ -5357,6 +5308,31 @@ class ObjectBrowserClass extends react_1.Component {
5357
5308
  render() {
5358
5309
  this.recordStates = [];
5359
5310
  this.unsubscribeTimer && clearTimeout(this.unsubscribeTimer);
5311
+ if (this.styleTheme !== this.props.themeType) {
5312
+ this.styles = {
5313
+ cellIdIconFolder: Utils_1.default.getStyle(this.props.theme, styles.cellIdIconFolder),
5314
+ cellIdIconDocument: Utils_1.default.getStyle(this.props.theme, styles.cellIdIconDocument),
5315
+ iconDeviceError: Utils_1.default.getStyle(this.props.theme, styles.iconDeviceError),
5316
+ iconDeviceConnected: Utils_1.default.getStyle(this.props.theme, styles.iconDeviceConnected),
5317
+ iconDeviceDisconnected: Utils_1.default.getStyle(this.props.theme, styles.iconDeviceDisconnected),
5318
+ cellButtonsButtonWithCustoms: Utils_1.default.getStyle(this.props.theme, styles.cellButtonsButtonWithCustoms),
5319
+ invertedBackground: Utils_1.default.getStyle(this.props.theme, styles.invertedBackground),
5320
+ invertedBackgroundFlex: Utils_1.default.getStyle(this.props.theme, styles.invertedBackgroundFlex),
5321
+ contextMenuEdit: Utils_1.default.getStyle(this.props.theme, styles.contextMenuEdit),
5322
+ contextMenuEditValue: Utils_1.default.getStyle(this.props.theme, styles.contextMenuEditValue),
5323
+ contextMenuView: Utils_1.default.getStyle(this.props.theme, styles.contextMenuView),
5324
+ contextMenuCustom: Utils_1.default.getStyle(this.props.theme, styles.contextMenuCustom),
5325
+ contextMenuACL: Utils_1.default.getStyle(this.props.theme, styles.contextMenuACL),
5326
+ contextMenuRoom: Utils_1.default.getStyle(this.props.theme, styles.contextMenuRoom),
5327
+ contextMenuRole: Utils_1.default.getStyle(this.props.theme, styles.contextMenuRole),
5328
+ contextMenuDelete: Utils_1.default.getStyle(this.props.theme, styles.contextMenuDelete),
5329
+ filterInput: Utils_1.default.getStyle(this.props.theme, styles.headerCellInput, styles.filterInput),
5330
+ iconCopy: Utils_1.default.getStyle(this.props.theme, styles.cellButtonsValueButton, styles.cellButtonsValueButtonCopy),
5331
+ aliasReadWrite: Utils_1.default.getStyle(this.props.theme, styles.cellIdAlias, styles.cellIdAliasReadWrite),
5332
+ aliasAlone: Utils_1.default.getStyle(this.props.theme, styles.cellIdAlias, styles.cellIdAliasAlone),
5333
+ };
5334
+ this.styleTheme = this.props.themeType;
5335
+ }
5360
5336
  // apply filter if changed
5361
5337
  const jsonFilter = JSON.stringify(this.state.filter);
5362
5338
  if (this.lastAppliedFilter !== jsonFilter && this.objects && this.root) {
@@ -5377,13 +5353,42 @@ class ObjectBrowserClass extends react_1.Component {
5377
5353
  if (!this.state.loaded) {
5378
5354
  return react_1.default.createElement(material_1.CircularProgress, { key: `${this.props.dialogName}_c` });
5379
5355
  }
5380
- const classes = this.props.classes;
5381
- const items = this.root ? this.renderItem(this.root, undefined, classes) : null;
5356
+ const items = this.root ? this.renderItem(this.root, undefined) : null;
5382
5357
  return react_1.default.createElement(TabContainer_1.default, { key: this.props.dialogName },
5358
+ react_1.default.createElement("style", null, `
5359
+ @keyframes newValueAnimation-light {
5360
+ 0% {
5361
+ color: #00f900;
5362
+ }
5363
+ 80% {
5364
+ color: #008000;
5365
+ }
5366
+ 100% {
5367
+ color: #000;
5368
+ }
5369
+ }
5370
+ @keyframes newValueAnimation-dark {
5371
+ 0% {
5372
+ color: #00f900;
5373
+ }
5374
+ 80% {
5375
+ color: #008000;
5376
+ }
5377
+ 100% {
5378
+ color: #fff;
5379
+ }
5380
+ }
5381
+ .newValueBrowser-dark {
5382
+ animation: newValueAnimation-dark 2s ease-in-out;
5383
+ }
5384
+ .newValueBrowser-light {
5385
+ animation: newValueAnimation-light 2s ease-in-out;
5386
+ }
5387
+ `),
5383
5388
  react_1.default.createElement(TabHeader_1.default, null, this.getToolbar()),
5384
5389
  react_1.default.createElement(TabContent_1.default, null,
5385
5390
  this.renderHeader(),
5386
- react_1.default.createElement("div", { className: this.props.classes.tableDiv, ref: this.tableRef, onKeyDown: event => this.navigateKeyPress(event) }, items)),
5391
+ react_1.default.createElement("div", { style: styles.tableDiv, ref: this.tableRef, onKeyDown: event => this.navigateKeyPress(event) }, items)),
5387
5392
  this.renderContextMenu(),
5388
5393
  this.renderToast(),
5389
5394
  this.renderColumnsEditCustomDialog(),
@@ -5407,4 +5412,4 @@ exports.ObjectBrowserClass = ObjectBrowserClass;
5407
5412
  _a = ObjectBrowserClass;
5408
5413
  /** Namespaces which are allowed to be edited by non-expert users */
5409
5414
  _ObjectBrowserClass_NON_EXPERT_NAMESPACES = { value: ['0_userdata.0.', 'alias.0.'] };
5410
- exports.default = (0, withWidth_1.default)()((0, styles_1.withStyles)(styles)(ObjectBrowserClass));
5415
+ exports.default = (0, withWidth_1.default)()(ObjectBrowserClass);