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