@grexx/grexxlinter 0.2.545 → 0.2.549

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/cli.js CHANGED
@@ -15055,7 +15055,7 @@ function isLintableYaml(text) {
15055
15055
  // src/cli.ts
15056
15056
  var PARALLEL_THRESHOLD = 200;
15057
15057
  var MAX_WORKERS = 8;
15058
- var VERSION = true ? "0.2.545" : "0.0.0-dev";
15058
+ var VERSION = true ? "0.2.549" : "0.0.0-dev";
15059
15059
  function isNewer(latest, current) {
15060
15060
  const a = latest.split(".").map(Number);
15061
15061
  const b = current.split(".").map(Number);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grexx/grexxlinter",
3
- "version": "0.2.545",
3
+ "version": "0.2.549",
4
4
  "description": "Lint Grexx Studio casetype YAML against the studio JSON Schemas.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -24,6 +24,20 @@
24
24
  }
25
25
  ]
26
26
  },
27
+ "allowOnFinishedCase": {
28
+ "baseline": "MAY",
29
+ "clearWhen": [
30
+ {
31
+ "op": "cmp",
32
+ "field": "processBlockType",
33
+ "fieldName": "Process block type",
34
+ "operator": "!=",
35
+ "value": "reopen-case",
36
+ "valueIsField": false,
37
+ "isEmpty": false
38
+ }
39
+ ]
40
+ },
27
41
  "allowSubmitAndReopen": {
28
42
  "baseline": "MUST_NOT",
29
43
  "enabledWhen": [
@@ -105,6 +119,26 @@
105
119
  "valueIsField": false,
106
120
  "isEmpty": false
107
121
  }
122
+ ],
123
+ "clearWhen": [
124
+ {
125
+ "op": "cmp",
126
+ "field": "type",
127
+ "fieldName": "Type",
128
+ "operator": "==",
129
+ "value": "event",
130
+ "valueIsField": false,
131
+ "isEmpty": false
132
+ },
133
+ {
134
+ "op": "cmp",
135
+ "field": "type",
136
+ "fieldName": "Type",
137
+ "operator": "!=",
138
+ "value": "form",
139
+ "valueIsField": false,
140
+ "isEmpty": false
141
+ }
108
142
  ]
109
143
  },
110
144
  "autoMapToLocal": {
@@ -128,6 +162,26 @@
128
162
  "valueIsField": false,
129
163
  "isEmpty": false
130
164
  }
165
+ ],
166
+ "clearWhen": [
167
+ {
168
+ "op": "cmp",
169
+ "field": "type",
170
+ "fieldName": "Type",
171
+ "operator": "==",
172
+ "value": "event",
173
+ "valueIsField": false,
174
+ "isEmpty": false
175
+ },
176
+ {
177
+ "op": "cmp",
178
+ "field": "type",
179
+ "fieldName": "Type",
180
+ "operator": "!=",
181
+ "value": "form",
182
+ "valueIsField": false,
183
+ "isEmpty": false
184
+ }
131
185
  ]
132
186
  },
133
187
  "captchaTheme": {
@@ -916,6 +970,17 @@
916
970
  ]
917
971
  },
918
972
  "type": {
919
- "baseline": "MUST"
973
+ "baseline": "MUST",
974
+ "readOnlyWhen": [
975
+ {
976
+ "op": "cmp",
977
+ "field": "type",
978
+ "fieldName": "Type",
979
+ "operator": "==",
980
+ "value": "multitask",
981
+ "valueIsField": false,
982
+ "isEmpty": false
983
+ }
984
+ ]
920
985
  }
921
986
  }
@@ -658,6 +658,102 @@
658
658
  }
659
659
  ]
660
660
  }
661
+ ],
662
+ "readOnlyWhen": [
663
+ {
664
+ "op": "and",
665
+ "items": [
666
+ {
667
+ "op": "cmp",
668
+ "field": null,
669
+ "fieldName": "«[Platform attribute ]»",
670
+ "operator": "!==",
671
+ "value": "",
672
+ "valueIsField": false,
673
+ "isEmpty": true
674
+ },
675
+ {
676
+ "op": "cmp",
677
+ "field": null,
678
+ "fieldName": "«template»",
679
+ "operator": "==",
680
+ "value": "case",
681
+ "valueIsField": false,
682
+ "isEmpty": false
683
+ }
684
+ ]
685
+ },
686
+ {
687
+ "op": "and",
688
+ "items": [
689
+ {
690
+ "op": "cmp",
691
+ "field": null,
692
+ "fieldName": "«[Platform attribute]»",
693
+ "operator": "!==",
694
+ "value": "",
695
+ "valueIsField": false,
696
+ "isEmpty": true
697
+ },
698
+ {
699
+ "op": "cmp",
700
+ "field": null,
701
+ "fieldName": "«template»",
702
+ "operator": "==",
703
+ "value": "«case»",
704
+ "valueIsField": false,
705
+ "isEmpty": false
706
+ }
707
+ ]
708
+ }
709
+ ],
710
+ "editableWhen": [
711
+ {
712
+ "op": "and",
713
+ "items": [
714
+ {
715
+ "op": "cmp",
716
+ "field": null,
717
+ "fieldName": "«[Platform attribute ]»",
718
+ "operator": "===",
719
+ "value": "",
720
+ "valueIsField": false,
721
+ "isEmpty": true
722
+ },
723
+ {
724
+ "op": "cmp",
725
+ "field": null,
726
+ "fieldName": "«template»",
727
+ "operator": "==",
728
+ "value": "case",
729
+ "valueIsField": false,
730
+ "isEmpty": false
731
+ }
732
+ ]
733
+ },
734
+ {
735
+ "op": "and",
736
+ "items": [
737
+ {
738
+ "op": "cmp",
739
+ "field": null,
740
+ "fieldName": "«[Platform attribute]»",
741
+ "operator": "===",
742
+ "value": "",
743
+ "valueIsField": false,
744
+ "isEmpty": true
745
+ },
746
+ {
747
+ "op": "cmp",
748
+ "field": null,
749
+ "fieldName": "«template»",
750
+ "operator": "==",
751
+ "value": "«case»",
752
+ "valueIsField": false,
753
+ "isEmpty": false
754
+ }
755
+ ]
756
+ }
661
757
  ]
662
758
  },
663
759
  "type": {
@@ -683,6 +779,17 @@
683
779
  "valueIsField": false,
684
780
  "isEmpty": true
685
781
  }
782
+ ],
783
+ "readOnlyWhen": [
784
+ {
785
+ "op": "cmp",
786
+ "field": null,
787
+ "fieldName": "Only type case",
788
+ "operator": "==",
789
+ "value": "true",
790
+ "valueIsField": false,
791
+ "isEmpty": false
792
+ }
686
793
  ]
687
794
  },
688
795
  "uniqueColumn": {
@@ -1,4 +1,153 @@
1
1
  {
2
+ "dataRetentionCleanupFinishedCasedata": {
3
+ "baseline": "MAY",
4
+ "readOnlyWhen": [
5
+ {
6
+ "op": "or",
7
+ "items": [
8
+ {
9
+ "op": "cmp",
10
+ "field": "dataRetentionCleanupOpenCasedata",
11
+ "fieldName": "Cleanup casedata of open cases (warning, are you sure??)",
12
+ "operator": "==",
13
+ "value": "true",
14
+ "valueIsField": false,
15
+ "isEmpty": false
16
+ },
17
+ {
18
+ "op": "cmp",
19
+ "field": "dataRetentionCleanupFinishedCases",
20
+ "fieldName": "Cleanup closed cases including underlying tasks and data",
21
+ "operator": "==",
22
+ "value": "true",
23
+ "valueIsField": false,
24
+ "isEmpty": false
25
+ },
26
+ {
27
+ "op": "cmp",
28
+ "field": "dataRetentionNeverStoreData",
29
+ "fieldName": "Only use cache, never store to database",
30
+ "operator": "==",
31
+ "value": "true",
32
+ "valueIsField": false,
33
+ "isEmpty": false
34
+ }
35
+ ]
36
+ }
37
+ ],
38
+ "editableWhen": [
39
+ {
40
+ "op": "and",
41
+ "items": [
42
+ {
43
+ "op": "cmp",
44
+ "field": "dataRetentionCleanupOpenCasedata",
45
+ "fieldName": "Cleanup casedata of open cases (warning, are you sure??)",
46
+ "operator": "!=",
47
+ "value": "true",
48
+ "valueIsField": false,
49
+ "isEmpty": false
50
+ },
51
+ {
52
+ "op": "cmp",
53
+ "field": "dataRetentionCleanupFinishedCases",
54
+ "fieldName": "Cleanup closed cases including underlying tasks and data",
55
+ "operator": "!=",
56
+ "value": "true",
57
+ "valueIsField": false,
58
+ "isEmpty": false
59
+ },
60
+ {
61
+ "op": "cmp",
62
+ "field": "dataRetentionNeverStoreData",
63
+ "fieldName": "Only use cache, never store to database",
64
+ "operator": "!=",
65
+ "value": "true",
66
+ "valueIsField": false,
67
+ "isEmpty": false
68
+ }
69
+ ]
70
+ }
71
+ ]
72
+ },
73
+ "dataRetentionCleanupOpenCasedata": {
74
+ "baseline": "MAY",
75
+ "readOnlyWhen": [
76
+ {
77
+ "op": "cmp",
78
+ "field": "dataRetentionNeverStoreData",
79
+ "fieldName": "Only use cache, never store to database",
80
+ "operator": "==",
81
+ "value": "true",
82
+ "valueIsField": false,
83
+ "isEmpty": false
84
+ }
85
+ ],
86
+ "editableWhen": [
87
+ {
88
+ "op": "cmp",
89
+ "field": "dataRetentionNeverStoreData",
90
+ "fieldName": "Only use cache, never store to database",
91
+ "operator": "!=",
92
+ "value": "true",
93
+ "valueIsField": false,
94
+ "isEmpty": false
95
+ }
96
+ ]
97
+ },
98
+ "dataRetentionCleanupDeletedCasedata": {
99
+ "baseline": "MAY",
100
+ "readOnlyWhen": [
101
+ {
102
+ "op": "or",
103
+ "items": [
104
+ {
105
+ "op": "cmp",
106
+ "field": "dataRetentionCleanupOpenCasedata",
107
+ "fieldName": "Cleanup casedata of open cases (warning, are you sure??)",
108
+ "operator": "==",
109
+ "value": "true",
110
+ "valueIsField": false,
111
+ "isEmpty": false
112
+ },
113
+ {
114
+ "op": "cmp",
115
+ "field": "dataRetentionNeverStoreData",
116
+ "fieldName": "Only use cache, never store to database",
117
+ "operator": "==",
118
+ "value": "true",
119
+ "valueIsField": false,
120
+ "isEmpty": false
121
+ }
122
+ ]
123
+ }
124
+ ],
125
+ "editableWhen": [
126
+ {
127
+ "op": "and",
128
+ "items": [
129
+ {
130
+ "op": "cmp",
131
+ "field": "dataRetentionCleanupOpenCasedata",
132
+ "fieldName": "Cleanup casedata of open cases (warning, are you sure??)",
133
+ "operator": "!=",
134
+ "value": "true",
135
+ "valueIsField": false,
136
+ "isEmpty": false
137
+ },
138
+ {
139
+ "op": "cmp",
140
+ "field": "dataRetentionNeverStoreData",
141
+ "fieldName": "Only use cache, never store to database",
142
+ "operator": "!=",
143
+ "value": "true",
144
+ "valueIsField": false,
145
+ "isEmpty": false
146
+ }
147
+ ]
148
+ }
149
+ ]
150
+ },
2
151
  "dataset": {
3
152
  "baseline": "MAY",
4
153
  "requiredWhen": [
@@ -63,6 +63,20 @@
63
63
  }
64
64
  ]
65
65
  },
66
+ "headers": {
67
+ "baseline": "MAY",
68
+ "clearWhen": [
69
+ {
70
+ "op": "cmp",
71
+ "field": "type",
72
+ "fieldName": "Type",
73
+ "operator": "!=",
74
+ "value": "externalURL",
75
+ "valueIsField": false,
76
+ "isEmpty": false
77
+ }
78
+ ]
79
+ },
66
80
  "params": {
67
81
  "baseline": "MUST_NOT",
68
82
  "requiredWhen": [
@@ -86,6 +100,17 @@
86
100
  "valueIsField": false,
87
101
  "isEmpty": false
88
102
  }
103
+ ],
104
+ "clearWhen": [
105
+ {
106
+ "op": "cmp",
107
+ "field": "type",
108
+ "fieldName": "Type",
109
+ "operator": "!=",
110
+ "value": "externalURL",
111
+ "valueIsField": false,
112
+ "isEmpty": false
113
+ }
89
114
  ]
90
115
  },
91
116
  "externalURL": {
@@ -120,6 +145,31 @@
120
145
  "valueIsField": false,
121
146
  "isEmpty": false
122
147
  }
148
+ ],
149
+ "clearWhen": [
150
+ {
151
+ "op": "cmp",
152
+ "field": "type",
153
+ "fieldName": "Type",
154
+ "operator": "!=",
155
+ "value": "externalURL",
156
+ "valueIsField": false,
157
+ "isEmpty": false
158
+ }
159
+ ]
160
+ },
161
+ "method": {
162
+ "baseline": "MAY",
163
+ "clearWhen": [
164
+ {
165
+ "op": "cmp",
166
+ "field": "type",
167
+ "fieldName": "Type",
168
+ "operator": "!=",
169
+ "value": "externalURL",
170
+ "valueIsField": false,
171
+ "isEmpty": false
172
+ }
123
173
  ]
124
174
  },
125
175
  "includeFinished": {
@@ -39,6 +39,17 @@
39
39
  "valueIsField": false,
40
40
  "isEmpty": false
41
41
  }
42
+ ],
43
+ "readOnlyWhen": [
44
+ {
45
+ "op": "cmp",
46
+ "field": "type",
47
+ "fieldName": "Type",
48
+ "operator": "==",
49
+ "value": "action.switchpicklist",
50
+ "valueIsField": false,
51
+ "isEmpty": false
52
+ }
42
53
  ]
43
54
  },
44
55
  "formfield": {
@@ -383,6 +383,31 @@
383
383
  "valueIsField": false,
384
384
  "isEmpty": false
385
385
  }
386
+ ],
387
+ "readOnlyWhen": [
388
+ {
389
+ "op": "and",
390
+ "items": [
391
+ {
392
+ "op": "cmp",
393
+ "field": "multivalueType",
394
+ "fieldName": "Multivalue type",
395
+ "operator": "!==",
396
+ "value": "",
397
+ "valueIsField": false,
398
+ "isEmpty": true
399
+ },
400
+ {
401
+ "op": "cmp",
402
+ "field": "multivalue",
403
+ "fieldName": "Typed - Multivalue",
404
+ "operator": "==",
405
+ "value": "true",
406
+ "valueIsField": false,
407
+ "isEmpty": false
408
+ }
409
+ ]
410
+ }
386
411
  ]
387
412
  },
388
413
  "addActivityBase": {
@@ -1,4 +1,43 @@
1
1
  {
2
+ "always": {
3
+ "baseline": "MAY",
4
+ "readOnlyWhen": [
5
+ {
6
+ "op": "cmp",
7
+ "field": null,
8
+ "fieldName": "SYSTEM - Started from Casetype",
9
+ "operator": "==",
10
+ "value": "true",
11
+ "valueIsField": false,
12
+ "isEmpty": false
13
+ }
14
+ ],
15
+ "editableWhen": [
16
+ {
17
+ "op": "cmp",
18
+ "field": null,
19
+ "fieldName": "SYSTEM - Started from Casetype",
20
+ "operator": "!=",
21
+ "value": "true",
22
+ "valueIsField": false,
23
+ "isEmpty": false
24
+ }
25
+ ],
26
+ "clearWhen": [
27
+ {
28
+ "op": "not",
29
+ "item": {
30
+ "op": "cmp",
31
+ "field": "type",
32
+ "fieldName": "Type metadata",
33
+ "operator": "like",
34
+ "value": "icon",
35
+ "valueIsField": false,
36
+ "isEmpty": false
37
+ }
38
+ }
39
+ ]
40
+ },
2
41
  "name": {
3
42
  "baseline": "MUST"
4
43
  },
@@ -290,5 +290,309 @@
290
290
  "isEmpty": false
291
291
  }
292
292
  ]
293
+ },
294
+ "toTriggerType": {
295
+ "baseline": "MAY",
296
+ "readOnlyWhen": [
297
+ {
298
+ "op": "and",
299
+ "items": [
300
+ {
301
+ "op": "or",
302
+ "items": [
303
+ {
304
+ "op": "and",
305
+ "items": [
306
+ {
307
+ "op": "cmp",
308
+ "field": "toTriggerType",
309
+ "fieldName": "To type",
310
+ "operator": "!=",
311
+ "value": "attributeValue",
312
+ "valueIsField": false,
313
+ "isEmpty": false
314
+ },
315
+ {
316
+ "op": "cmp",
317
+ "field": "toTriggerType",
318
+ "fieldName": "To type",
319
+ "operator": "!=",
320
+ "value": "casesInDataset",
321
+ "valueIsField": false,
322
+ "isEmpty": false
323
+ },
324
+ {
325
+ "op": "cmp",
326
+ "field": "toTriggerType",
327
+ "fieldName": "To type",
328
+ "operator": "!=",
329
+ "value": "page",
330
+ "valueIsField": false,
331
+ "isEmpty": false
332
+ },
333
+ {
334
+ "op": "cmp",
335
+ "field": "toTriggerType",
336
+ "fieldName": "To type",
337
+ "operator": "!=",
338
+ "value": "parent",
339
+ "valueIsField": false,
340
+ "isEmpty": false
341
+ }
342
+ ]
343
+ },
344
+ {
345
+ "op": "and",
346
+ "items": [
347
+ {
348
+ "op": "cmp",
349
+ "field": "type",
350
+ "fieldName": "Type",
351
+ "operator": "!=",
352
+ "value": "cancel",
353
+ "valueIsField": false,
354
+ "isEmpty": false
355
+ },
356
+ {
357
+ "op": "cmp",
358
+ "field": "type",
359
+ "fieldName": "Type",
360
+ "operator": "!=",
361
+ "value": "disable",
362
+ "valueIsField": false,
363
+ "isEmpty": false
364
+ },
365
+ {
366
+ "op": "cmp",
367
+ "field": "type",
368
+ "fieldName": "Type",
369
+ "operator": "!=",
370
+ "value": "enable",
371
+ "valueIsField": false,
372
+ "isEmpty": false
373
+ },
374
+ {
375
+ "op": "cmp",
376
+ "field": "type",
377
+ "fieldName": "Type",
378
+ "operator": "!=",
379
+ "value": "finish",
380
+ "valueIsField": false,
381
+ "isEmpty": false
382
+ },
383
+ {
384
+ "op": "cmp",
385
+ "field": "type",
386
+ "fieldName": "Type",
387
+ "operator": "!=",
388
+ "value": "submit",
389
+ "valueIsField": false,
390
+ "isEmpty": false
391
+ }
392
+ ]
393
+ }
394
+ ]
395
+ },
396
+ {
397
+ "op": "or",
398
+ "items": [
399
+ {
400
+ "op": "cmp",
401
+ "field": "type",
402
+ "fieldName": "Type",
403
+ "operator": "==",
404
+ "value": "cancel",
405
+ "valueIsField": false,
406
+ "isEmpty": false
407
+ },
408
+ {
409
+ "op": "cmp",
410
+ "field": "type",
411
+ "fieldName": "Type",
412
+ "operator": "==",
413
+ "value": "disable",
414
+ "valueIsField": false,
415
+ "isEmpty": false
416
+ },
417
+ {
418
+ "op": "cmp",
419
+ "field": "type",
420
+ "fieldName": "Type",
421
+ "operator": "==",
422
+ "value": "enable",
423
+ "valueIsField": false,
424
+ "isEmpty": false
425
+ },
426
+ {
427
+ "op": "cmp",
428
+ "field": "type",
429
+ "fieldName": "Type",
430
+ "operator": "==",
431
+ "value": "finish",
432
+ "valueIsField": false,
433
+ "isEmpty": false
434
+ },
435
+ {
436
+ "op": "cmp",
437
+ "field": "type",
438
+ "fieldName": "Type",
439
+ "operator": "==",
440
+ "value": "submit",
441
+ "valueIsField": false,
442
+ "isEmpty": false
443
+ }
444
+ ]
445
+ }
446
+ ]
447
+ }
448
+ ],
449
+ "editableWhen": [
450
+ {
451
+ "op": "and",
452
+ "items": [
453
+ {
454
+ "op": "or",
455
+ "items": [
456
+ {
457
+ "op": "and",
458
+ "items": [
459
+ {
460
+ "op": "cmp",
461
+ "field": "toTriggerType",
462
+ "fieldName": "To type",
463
+ "operator": "!=",
464
+ "value": "attributeValue",
465
+ "valueIsField": false,
466
+ "isEmpty": false
467
+ },
468
+ {
469
+ "op": "cmp",
470
+ "field": "toTriggerType",
471
+ "fieldName": "To type",
472
+ "operator": "!=",
473
+ "value": "casesInDataset",
474
+ "valueIsField": false,
475
+ "isEmpty": false
476
+ },
477
+ {
478
+ "op": "cmp",
479
+ "field": "toTriggerType",
480
+ "fieldName": "To type",
481
+ "operator": "!=",
482
+ "value": "page",
483
+ "valueIsField": false,
484
+ "isEmpty": false
485
+ },
486
+ {
487
+ "op": "cmp",
488
+ "field": "toTriggerType",
489
+ "fieldName": "To type",
490
+ "operator": "!=",
491
+ "value": "parent",
492
+ "valueIsField": false,
493
+ "isEmpty": false
494
+ }
495
+ ]
496
+ },
497
+ {
498
+ "op": "and",
499
+ "items": [
500
+ {
501
+ "op": "cmp",
502
+ "field": "type",
503
+ "fieldName": "Type",
504
+ "operator": "!=",
505
+ "value": "cancel",
506
+ "valueIsField": false,
507
+ "isEmpty": false
508
+ },
509
+ {
510
+ "op": "cmp",
511
+ "field": "type",
512
+ "fieldName": "Type",
513
+ "operator": "!=",
514
+ "value": "disable",
515
+ "valueIsField": false,
516
+ "isEmpty": false
517
+ },
518
+ {
519
+ "op": "cmp",
520
+ "field": "type",
521
+ "fieldName": "Type",
522
+ "operator": "!=",
523
+ "value": "enable",
524
+ "valueIsField": false,
525
+ "isEmpty": false
526
+ },
527
+ {
528
+ "op": "cmp",
529
+ "field": "type",
530
+ "fieldName": "Type",
531
+ "operator": "!=",
532
+ "value": "finish",
533
+ "valueIsField": false,
534
+ "isEmpty": false
535
+ },
536
+ {
537
+ "op": "cmp",
538
+ "field": "type",
539
+ "fieldName": "Type",
540
+ "operator": "!=",
541
+ "value": "submit",
542
+ "valueIsField": false,
543
+ "isEmpty": false
544
+ }
545
+ ]
546
+ }
547
+ ]
548
+ },
549
+ {
550
+ "op": "cmp",
551
+ "field": "type",
552
+ "fieldName": "Type",
553
+ "operator": "!=",
554
+ "value": "cancel",
555
+ "valueIsField": false,
556
+ "isEmpty": false
557
+ },
558
+ {
559
+ "op": "cmp",
560
+ "field": "type",
561
+ "fieldName": "Type",
562
+ "operator": "!=",
563
+ "value": "disable",
564
+ "valueIsField": false,
565
+ "isEmpty": false
566
+ },
567
+ {
568
+ "op": "cmp",
569
+ "field": "type",
570
+ "fieldName": "Type",
571
+ "operator": "!=",
572
+ "value": "enable",
573
+ "valueIsField": false,
574
+ "isEmpty": false
575
+ },
576
+ {
577
+ "op": "cmp",
578
+ "field": "type",
579
+ "fieldName": "Type",
580
+ "operator": "!=",
581
+ "value": "finish",
582
+ "valueIsField": false,
583
+ "isEmpty": false
584
+ },
585
+ {
586
+ "op": "cmp",
587
+ "field": "type",
588
+ "fieldName": "Type",
589
+ "operator": "!=",
590
+ "value": "submit",
591
+ "valueIsField": false,
592
+ "isEmpty": false
593
+ }
594
+ ]
595
+ }
596
+ ]
293
597
  }
294
598
  }
@@ -1208,6 +1208,31 @@
1208
1208
  }
1209
1209
  ]
1210
1210
  }
1211
+ ],
1212
+ "readOnlyWhen": [
1213
+ {
1214
+ "op": "and",
1215
+ "items": [
1216
+ {
1217
+ "op": "cmp",
1218
+ "field": "subWidgetParentWidget",
1219
+ "fieldName": "Parent widget (for sub-widgets)",
1220
+ "operator": "!==",
1221
+ "value": "",
1222
+ "valueIsField": false,
1223
+ "isEmpty": true
1224
+ },
1225
+ {
1226
+ "op": "cmp",
1227
+ "field": "widgetType",
1228
+ "fieldName": "Type",
1229
+ "operator": "!=",
1230
+ "value": "",
1231
+ "valueIsField": false,
1232
+ "isEmpty": true
1233
+ }
1234
+ ]
1235
+ }
1211
1236
  ]
1212
1237
  }
1213
1238
  }