@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.
- package/Components/404.d.ts +2 -5
- package/Components/404.js +10 -10
- package/Components/ColorPicker.d.ts +41 -4
- package/Components/ColorPicker.js +35 -32
- package/Components/ComplexCron.d.ts +35 -4
- package/Components/ComplexCron.js +14 -15
- package/Components/CustomModal.d.ts +4 -3
- package/Components/CustomModal.js +13 -14
- package/Components/FileBrowser.d.ts +116 -4
- package/Components/FileBrowser.js +160 -164
- package/Components/FileViewer.js +10 -8
- package/Components/Icon.d.ts +1 -0
- package/Components/Icon.js +11 -4
- package/Components/IconPicker.d.ts +5 -1
- package/Components/IconPicker.js +47 -49
- package/Components/ObjectBrowser.d.ts +12 -15
- package/Components/ObjectBrowser.js +331 -326
- package/Components/SaveCloseButtons.d.ts +6 -3
- package/Components/SaveCloseButtons.js +4 -5
- package/Components/Schedule.d.ts +62 -3
- package/Components/Schedule.js +112 -117
- package/Components/SelectWithIcon.d.ts +17 -4
- package/Components/SelectWithIcon.js +11 -7
- package/Components/SimpleCron/index.d.ts +19 -3
- package/Components/SimpleCron/index.js +8 -9
- package/Components/TabContainer.d.ts +3 -4
- package/Components/TabContainer.js +3 -7
- package/Components/TabContent.d.ts +2 -3
- package/Components/TabContent.js +2 -4
- package/Components/TableResize.d.ts +26 -3
- package/Components/TableResize.js +1 -39
- package/Components/TextWithIcon.d.ts +4 -4
- package/Components/TextWithIcon.js +6 -7
- package/Components/TreeTable.d.ts +42 -5
- package/Components/TreeTable.js +39 -37
- package/Components/UploadImage.d.ts +13 -4
- package/Components/UploadImage.js +11 -13
- package/Components/Utils.d.ts +2 -1
- package/Components/Utils.js +31 -0
- package/Dialogs/ComplexCron.d.ts +11 -3
- package/Dialogs/ComplexCron.js +2 -3
- package/Dialogs/Confirm.d.ts +20 -7
- package/Dialogs/Confirm.js +4 -15
- package/Dialogs/Cron.d.ts +14 -3
- package/Dialogs/Cron.js +3 -11
- package/Dialogs/SelectFile.d.ts +12 -3
- package/Dialogs/SelectFile.js +8 -9
- package/Dialogs/SelectID.d.ts +1 -1
- package/Dialogs/SelectID.js +1 -1
- package/Dialogs/SimpleCron.d.ts +10 -3
- package/Dialogs/SimpleCron.js +2 -10
- package/README.md +74 -0
- 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 =
|
|
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:
|
|
91
|
+
marginLeft: 16,
|
|
93
92
|
},
|
|
94
93
|
dialogColumns: {
|
|
95
94
|
transition: 'opacity 1s',
|
|
96
95
|
},
|
|
97
96
|
dialogColumnsLabel: {
|
|
98
97
|
fontSize: 12,
|
|
99
|
-
paddingTop:
|
|
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:
|
|
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,
|
|
169
|
+
paddingTop: 0,
|
|
174
170
|
paddingLeft: 0,
|
|
175
|
-
width:
|
|
171
|
+
width: 'calc(100% - 8px)',
|
|
176
172
|
height: 'calc(100% - 38px)',
|
|
177
173
|
overflow: 'auto',
|
|
178
174
|
},
|
|
179
|
-
tableRow: {
|
|
180
|
-
|
|
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
|
-
|
|
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
|
-
|
|
246
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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:
|
|
498
|
+
right: 8,
|
|
520
499
|
cursor: 'pointer',
|
|
521
500
|
},
|
|
522
501
|
cellButtonsValueButtonEdit: {
|
|
523
|
-
right: SMALL_BUTTON_SIZE / 2 +
|
|
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
|
-
|
|
533
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
637
|
-
|
|
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:
|
|
659
|
-
backgroundColor:
|
|
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
|
-
|
|
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:
|
|
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,
|
|
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",
|
|
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", {
|
|
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", {
|
|
2085
|
-
?
|
|
2086
|
-
:
|
|
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", {
|
|
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(
|
|
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(
|
|
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('.'
|
|
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,
|
|
2800
|
-
root: Utils_1.default.
|
|
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, {
|
|
2803
|
-
react_1.default.createElement(material_1.DialogContent, {
|
|
2804
|
-
react_1.default.createElement(material_1.FormControlLabel, {
|
|
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, {
|
|
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, {
|
|
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 =
|
|
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, {
|
|
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],
|
|
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", {
|
|
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, {
|
|
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",
|
|
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) || '',
|
|
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) || '',
|
|
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) || '',
|
|
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'),
|
|
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'),
|
|
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'),
|
|
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'),
|
|
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'),
|
|
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'),
|
|
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(
|
|
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'),
|
|
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(
|
|
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'),
|
|
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'),
|
|
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(),
|
|
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'),
|
|
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'),
|
|
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'),
|
|
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
|
|
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", {
|
|
3646
|
-
this.state.filter.expertMode && this.props.objectEditOfAccessControl ? react_1.default.createElement(material_1.IconButton, {
|
|
3647
|
-
this.props.onObjectDelete && item.children && item.children.length ? react_1.default.createElement(material_1.IconButton, {
|
|
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, {
|
|
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,
|
|
3679
|
-
react_1.default.createElement(material_1.IconButton, {
|
|
3680
|
-
react_1.default.createElement("div", {
|
|
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",
|
|
3684
|
-
showEdit ? react_1.default.createElement(material_1.IconButton, { key: "edit",
|
|
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, {
|
|
3689
|
-
react_1.default.createElement("div", { key: "editDisabled",
|
|
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",
|
|
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, {
|
|
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, {
|
|
3712
|
-
?
|
|
3713
|
-
:
|
|
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, {
|
|
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 =
|
|
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", {
|
|
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
|
|
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", {
|
|
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", {
|
|
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", {
|
|
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
|
|
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",
|
|
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:
|
|
3849
|
-
valText.u && valTextRx.push(react_1.default.createElement("span", { className:
|
|
3850
|
-
valText.s !== undefined && valTextRx.push(react_1.default.createElement("span", {
|
|
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:
|
|
3855
|
-
// <IconEdit className={
|
|
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, {
|
|
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...',
|
|
3864
|
-
|
|
3865
|
-
|
|
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",
|
|
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 =
|
|
3938
|
-
react_1.default.createElement("img", { src: _item.icon,
|
|
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, {
|
|
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, {
|
|
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, {
|
|
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, {
|
|
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, {
|
|
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",
|
|
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",
|
|
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,
|
|
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 ?
|
|
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, {
|
|
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, {
|
|
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:
|
|
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, {
|
|
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, {
|
|
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", {
|
|
4272
|
-
common.alias.id.read ? react_1.default.createElement("div",
|
|
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
|
-
},
|
|
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",
|
|
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
|
-
},
|
|
4262
|
+
}, sx: this.styles.aliasReadWrite },
|
|
4286
4263
|
"\u2192",
|
|
4287
4264
|
common.alias.id.write) : null)
|
|
4288
4265
|
:
|
|
4289
|
-
react_1.default.createElement("div",
|
|
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
|
-
},
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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",
|
|
4430
|
-
react_1.default.createElement("div", { key: "desc",
|
|
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",
|
|
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
|
-
|
|
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",
|
|
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 }
|
|
4471
|
-
react_1.default.createElement(material_1.Tooltip, { title: getIdFieldTooltip(item.data, this.props.
|
|
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", {
|
|
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:
|
|
4479
|
-
this.columnsVisibility.name ? react_1.default.createElement("div",
|
|
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(
|
|
4482
|
-
react_1.default.createElement(IconCopy_1.default, { className:
|
|
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", {
|
|
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", {
|
|
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", {
|
|
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", {
|
|
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", {
|
|
4525
|
-
this.columnsVisibility.qualityCode ? react_1.default.createElement("div", {
|
|
4526
|
-
this.columnsVisibility.timestamp ? react_1.default.createElement("div", {
|
|
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", {
|
|
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", {
|
|
4533
|
-
this.columnsVisibility.val ? react_1.default.createElement("div", {
|
|
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
|
|
4560
|
-
this.columnsVisibility.buttons ? react_1.default.createElement("div", {
|
|
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,
|
|
4530
|
+
renderItem(root, isExpanded, counter) {
|
|
4566
4531
|
const items = [];
|
|
4567
4532
|
counter = counter || { count: 0 };
|
|
4568
|
-
let leaf = this.renderLeaf(root, isExpanded,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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",
|
|
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(),
|
|
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, {
|
|
4814
|
+
react_1.default.createElement(icons_material_1.Close, { style: styles.buttonClearFilterIcon }));
|
|
4851
4815
|
}
|
|
4852
|
-
return react_1.default.createElement("div", {
|
|
4853
|
-
react_1.default.createElement("div", {
|
|
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", {
|
|
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", {
|
|
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", {
|
|
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", {
|
|
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", {
|
|
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", {
|
|
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", {
|
|
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", {
|
|
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", {
|
|
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", {
|
|
4886
|
-
this.columnsVisibility.val ? react_1.default.createElement("div", {
|
|
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", {
|
|
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",
|
|
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",
|
|
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",
|
|
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",
|
|
5116
|
-
? this.
|
|
5117
|
-
:
|
|
5118
|
-
|
|
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
|
-
|
|
5133
|
-
|
|
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",
|
|
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",
|
|
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",
|
|
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, {
|
|
5197
|
-
? this.
|
|
5198
|
-
:
|
|
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",
|
|
5216
|
-
|
|
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",
|
|
5267
|
-
|
|
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
|
-
}),
|
|
5287
|
-
react_1.default.createElement(material_1.ListItemIcon, { style: ITEMS[key].iconStyle,
|
|
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,
|
|
5298
|
-
react_1.default.createElement(material_1.ListItemIcon, { style: subItem.iconStyle,
|
|
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,
|
|
5304
|
-
react_1.default.createElement(material_1.ListItemIcon, { style: ITEMS[key].iconStyle,
|
|
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", {
|
|
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
|
|
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", {
|
|
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)()(
|
|
5415
|
+
exports.default = (0, withWidth_1.default)()(ObjectBrowserClass);
|