@pnp/spfx-controls-react 3.26.0-beta.4124906 → 3.26.0-beta.4124948
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/jest-output/JUnit.xml +103 -103
- package/lib/common/telemetry/version.js +1 -1
- package/lib/controls/LivePersona/ILivePersonaProps.d.ts +4 -0
- package/lib/controls/LivePersona/ILivePersonaProps.d.ts.map +1 -1
- package/lib/controls/LivePersona/LivePersona.d.ts.map +1 -1
- package/lib/controls/LivePersona/LivePersona.js +5 -3
- package/lib/controls/LivePersona/LivePersona.js.map +1 -1
- package/lib/controls/listItemComments/components/Comments/CommentText.d.ts.map +1 -1
- package/lib/controls/listItemComments/components/Comments/CommentText.js +5 -4
- package/lib/controls/listItemComments/components/Comments/CommentText.js.map +1 -1
- package/lib-commonjs/common/telemetry/version.js +1 -1
- package/lib-commonjs/controls/LivePersona/LivePersona.js +5 -3
- package/lib-commonjs/controls/LivePersona/LivePersona.js.map +1 -1
- package/lib-commonjs/controls/listItemComments/components/Comments/CommentText.js +5 -4
- package/lib-commonjs/controls/listItemComments/components/Comments/CommentText.js.map +1 -1
- package/package.json +1 -1
- package/release/analysis-logs/lint.sarif +109 -834
- package/release/manifests/45165954-80f9-44c1-9967-cd38ae92a33b.manifest.json +1 -1
- package/release/manifests/57ebd944-98ed-43f9-b722-e959d6dac6ad.manifest.json +1 -1
- package/release/manifests/f9c6b930-8d5d-4550-bfd9-ed5f6ca443a8.manifest.json +1 -1
|
@@ -15188,9 +15188,9 @@
|
|
|
15188
15188
|
"index": 579
|
|
15189
15189
|
},
|
|
15190
15190
|
"region": {
|
|
15191
|
-
"startLine":
|
|
15191
|
+
"startLine": 16,
|
|
15192
15192
|
"startColumn": 32,
|
|
15193
|
-
"endLine":
|
|
15193
|
+
"endLine": 16,
|
|
15194
15194
|
"endColumn": 35
|
|
15195
15195
|
}
|
|
15196
15196
|
}
|
|
@@ -15218,9 +15218,9 @@
|
|
|
15218
15218
|
"index": 581
|
|
15219
15219
|
},
|
|
15220
15220
|
"region": {
|
|
15221
|
-
"startLine":
|
|
15221
|
+
"startLine": 82,
|
|
15222
15222
|
"startColumn": 29,
|
|
15223
|
-
"endLine":
|
|
15223
|
+
"endLine": 82,
|
|
15224
15224
|
"endColumn": 32
|
|
15225
15225
|
}
|
|
15226
15226
|
}
|
|
@@ -19162,33 +19162,6 @@
|
|
|
19162
19162
|
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
19163
19163
|
"ruleIndex": 0
|
|
19164
19164
|
},
|
|
19165
|
-
{
|
|
19166
|
-
"level": "warning",
|
|
19167
|
-
"message": {
|
|
19168
|
-
"text": "Missing return type on function."
|
|
19169
|
-
},
|
|
19170
|
-
"locations": [
|
|
19171
|
-
{
|
|
19172
|
-
"physicalLocation": {
|
|
19173
|
-
"artifactLocation": {
|
|
19174
|
-
"uri": "src/extensions/ootbFields/components/Customizer/OotbFields.tsx",
|
|
19175
|
-
"index": 865
|
|
19176
|
-
},
|
|
19177
|
-
"region": {
|
|
19178
|
-
"startLine": 33,
|
|
19179
|
-
"startColumn": 3,
|
|
19180
|
-
"endLine": 33,
|
|
19181
|
-
"endColumn": 35,
|
|
19182
|
-
"snippet": {
|
|
19183
|
-
"text": "public UNSAFE_componentWillMount"
|
|
19184
|
-
}
|
|
19185
|
-
}
|
|
19186
|
-
}
|
|
19187
|
-
}
|
|
19188
|
-
],
|
|
19189
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
19190
|
-
"ruleIndex": 9
|
|
19191
|
-
},
|
|
19192
19165
|
{
|
|
19193
19166
|
"level": "warning",
|
|
19194
19167
|
"message": {
|
|
@@ -21289,60 +21262,6 @@
|
|
|
21289
21262
|
}
|
|
21290
21263
|
]
|
|
21291
21264
|
},
|
|
21292
|
-
{
|
|
21293
|
-
"level": "warning",
|
|
21294
|
-
"message": {
|
|
21295
|
-
"text": "Missing return type on function."
|
|
21296
|
-
},
|
|
21297
|
-
"locations": [
|
|
21298
|
-
{
|
|
21299
|
-
"physicalLocation": {
|
|
21300
|
-
"artifactLocation": {
|
|
21301
|
-
"uri": "src/webparts/controlsTest/components/ControlsTestEnhancedThemeProvider.tsx",
|
|
21302
|
-
"index": 906
|
|
21303
|
-
},
|
|
21304
|
-
"region": {
|
|
21305
|
-
"startLine": 22,
|
|
21306
|
-
"startColumn": 70,
|
|
21307
|
-
"endLine": 22,
|
|
21308
|
-
"endColumn": 72,
|
|
21309
|
-
"snippet": {
|
|
21310
|
-
"text": "=>"
|
|
21311
|
-
}
|
|
21312
|
-
}
|
|
21313
|
-
}
|
|
21314
|
-
}
|
|
21315
|
-
],
|
|
21316
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
21317
|
-
"ruleIndex": 9
|
|
21318
|
-
},
|
|
21319
|
-
{
|
|
21320
|
-
"level": "warning",
|
|
21321
|
-
"message": {
|
|
21322
|
-
"text": "Missing return type on function."
|
|
21323
|
-
},
|
|
21324
|
-
"locations": [
|
|
21325
|
-
{
|
|
21326
|
-
"physicalLocation": {
|
|
21327
|
-
"artifactLocation": {
|
|
21328
|
-
"uri": "src/webparts/controlsTest/components/ControlsTestEnhancedThemeProvider.tsx",
|
|
21329
|
-
"index": 906
|
|
21330
|
-
},
|
|
21331
|
-
"region": {
|
|
21332
|
-
"startLine": 91,
|
|
21333
|
-
"startColumn": 3,
|
|
21334
|
-
"endLine": 91,
|
|
21335
|
-
"endColumn": 16,
|
|
21336
|
-
"snippet": {
|
|
21337
|
-
"text": "public render"
|
|
21338
|
-
}
|
|
21339
|
-
}
|
|
21340
|
-
}
|
|
21341
|
-
}
|
|
21342
|
-
],
|
|
21343
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
21344
|
-
"ruleIndex": 9
|
|
21345
|
-
},
|
|
21346
21265
|
{
|
|
21347
21266
|
"level": "warning",
|
|
21348
21267
|
"message": {
|
|
@@ -21491,7 +21410,7 @@
|
|
|
21491
21410
|
{
|
|
21492
21411
|
"level": "warning",
|
|
21493
21412
|
"message": {
|
|
21494
|
-
"text": "
|
|
21413
|
+
"text": "Unexpected any. Specify a different type."
|
|
21495
21414
|
},
|
|
21496
21415
|
"locations": [
|
|
21497
21416
|
{
|
|
@@ -21501,25 +21420,25 @@
|
|
|
21501
21420
|
"index": 914
|
|
21502
21421
|
},
|
|
21503
21422
|
"region": {
|
|
21504
|
-
"startLine":
|
|
21505
|
-
"startColumn":
|
|
21506
|
-
"endLine":
|
|
21507
|
-
"endColumn":
|
|
21423
|
+
"startLine": 771,
|
|
21424
|
+
"startColumn": 42,
|
|
21425
|
+
"endLine": 771,
|
|
21426
|
+
"endColumn": 45,
|
|
21508
21427
|
"snippet": {
|
|
21509
|
-
"text": "
|
|
21428
|
+
"text": "any"
|
|
21510
21429
|
}
|
|
21511
21430
|
}
|
|
21512
21431
|
}
|
|
21513
21432
|
}
|
|
21514
21433
|
],
|
|
21515
|
-
"ruleId": "@typescript-eslint/explicit-
|
|
21516
|
-
"ruleIndex":
|
|
21434
|
+
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
21435
|
+
"ruleIndex": 0,
|
|
21517
21436
|
"suppressions": []
|
|
21518
21437
|
},
|
|
21519
21438
|
{
|
|
21520
21439
|
"level": "warning",
|
|
21521
21440
|
"message": {
|
|
21522
|
-
"text": "
|
|
21441
|
+
"text": "Unexpected any. Specify a different type."
|
|
21523
21442
|
},
|
|
21524
21443
|
"locations": [
|
|
21525
21444
|
{
|
|
@@ -21529,19 +21448,19 @@
|
|
|
21529
21448
|
"index": 914
|
|
21530
21449
|
},
|
|
21531
21450
|
"region": {
|
|
21532
|
-
"startLine":
|
|
21533
|
-
"startColumn":
|
|
21534
|
-
"endLine":
|
|
21535
|
-
"endColumn":
|
|
21451
|
+
"startLine": 792,
|
|
21452
|
+
"startColumn": 121,
|
|
21453
|
+
"endLine": 792,
|
|
21454
|
+
"endColumn": 124,
|
|
21536
21455
|
"snippet": {
|
|
21537
|
-
"text": "
|
|
21456
|
+
"text": "any"
|
|
21538
21457
|
}
|
|
21539
21458
|
}
|
|
21540
21459
|
}
|
|
21541
21460
|
}
|
|
21542
21461
|
],
|
|
21543
|
-
"ruleId": "@typescript-eslint/explicit-
|
|
21544
|
-
"ruleIndex":
|
|
21462
|
+
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
21463
|
+
"ruleIndex": 0,
|
|
21545
21464
|
"suppressions": []
|
|
21546
21465
|
},
|
|
21547
21466
|
{
|
|
@@ -21557,10 +21476,10 @@
|
|
|
21557
21476
|
"index": 914
|
|
21558
21477
|
},
|
|
21559
21478
|
"region": {
|
|
21560
|
-
"startLine":
|
|
21561
|
-
"startColumn":
|
|
21562
|
-
"endLine":
|
|
21563
|
-
"endColumn":
|
|
21479
|
+
"startLine": 831,
|
|
21480
|
+
"startColumn": 32,
|
|
21481
|
+
"endLine": 831,
|
|
21482
|
+
"endColumn": 35,
|
|
21564
21483
|
"snippet": {
|
|
21565
21484
|
"text": "any"
|
|
21566
21485
|
}
|
|
@@ -21585,10 +21504,10 @@
|
|
|
21585
21504
|
"index": 914
|
|
21586
21505
|
},
|
|
21587
21506
|
"region": {
|
|
21588
|
-
"startLine":
|
|
21589
|
-
"startColumn":
|
|
21590
|
-
"endLine":
|
|
21591
|
-
"endColumn":
|
|
21507
|
+
"startLine": 918,
|
|
21508
|
+
"startColumn": 43,
|
|
21509
|
+
"endLine": 918,
|
|
21510
|
+
"endColumn": 46,
|
|
21592
21511
|
"snippet": {
|
|
21593
21512
|
"text": "any"
|
|
21594
21513
|
}
|
|
@@ -21603,7 +21522,7 @@
|
|
|
21603
21522
|
{
|
|
21604
21523
|
"level": "warning",
|
|
21605
21524
|
"message": {
|
|
21606
|
-
"text": "
|
|
21525
|
+
"text": "Unexpected any. Specify a different type."
|
|
21607
21526
|
},
|
|
21608
21527
|
"locations": [
|
|
21609
21528
|
{
|
|
@@ -21613,25 +21532,25 @@
|
|
|
21613
21532
|
"index": 914
|
|
21614
21533
|
},
|
|
21615
21534
|
"region": {
|
|
21616
|
-
"startLine":
|
|
21617
|
-
"startColumn":
|
|
21618
|
-
"endLine":
|
|
21619
|
-
"endColumn":
|
|
21535
|
+
"startLine": 933,
|
|
21536
|
+
"startColumn": 44,
|
|
21537
|
+
"endLine": 933,
|
|
21538
|
+
"endColumn": 47,
|
|
21620
21539
|
"snippet": {
|
|
21621
|
-
"text": "
|
|
21540
|
+
"text": "any"
|
|
21622
21541
|
}
|
|
21623
21542
|
}
|
|
21624
21543
|
}
|
|
21625
21544
|
}
|
|
21626
21545
|
],
|
|
21627
|
-
"ruleId": "@typescript-eslint/explicit-
|
|
21628
|
-
"ruleIndex":
|
|
21546
|
+
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
21547
|
+
"ruleIndex": 0,
|
|
21629
21548
|
"suppressions": []
|
|
21630
21549
|
},
|
|
21631
21550
|
{
|
|
21632
21551
|
"level": "warning",
|
|
21633
21552
|
"message": {
|
|
21634
|
-
"text": "
|
|
21553
|
+
"text": "Unexpected any. Specify a different type."
|
|
21635
21554
|
},
|
|
21636
21555
|
"locations": [
|
|
21637
21556
|
{
|
|
@@ -21641,19 +21560,19 @@
|
|
|
21641
21560
|
"index": 914
|
|
21642
21561
|
},
|
|
21643
21562
|
"region": {
|
|
21644
|
-
"startLine":
|
|
21645
|
-
"startColumn":
|
|
21646
|
-
"endLine":
|
|
21647
|
-
"endColumn":
|
|
21563
|
+
"startLine": 1067,
|
|
21564
|
+
"startColumn": 38,
|
|
21565
|
+
"endLine": 1067,
|
|
21566
|
+
"endColumn": 41,
|
|
21648
21567
|
"snippet": {
|
|
21649
|
-
"text": "
|
|
21568
|
+
"text": "any"
|
|
21650
21569
|
}
|
|
21651
21570
|
}
|
|
21652
21571
|
}
|
|
21653
21572
|
}
|
|
21654
21573
|
],
|
|
21655
|
-
"ruleId": "@typescript-eslint/explicit-
|
|
21656
|
-
"ruleIndex":
|
|
21574
|
+
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
21575
|
+
"ruleIndex": 0,
|
|
21657
21576
|
"suppressions": []
|
|
21658
21577
|
},
|
|
21659
21578
|
{
|
|
@@ -21669,10 +21588,10 @@
|
|
|
21669
21588
|
"index": 914
|
|
21670
21589
|
},
|
|
21671
21590
|
"region": {
|
|
21672
|
-
"startLine":
|
|
21673
|
-
"startColumn":
|
|
21674
|
-
"endLine":
|
|
21675
|
-
"endColumn":
|
|
21591
|
+
"startLine": 1163,
|
|
21592
|
+
"startColumn": 24,
|
|
21593
|
+
"endLine": 1163,
|
|
21594
|
+
"endColumn": 27,
|
|
21676
21595
|
"snippet": {
|
|
21677
21596
|
"text": "any"
|
|
21678
21597
|
}
|
|
@@ -21687,7 +21606,7 @@
|
|
|
21687
21606
|
{
|
|
21688
21607
|
"level": "warning",
|
|
21689
21608
|
"message": {
|
|
21690
|
-
"text": "
|
|
21609
|
+
"text": "Unexpected any. Specify a different type."
|
|
21691
21610
|
},
|
|
21692
21611
|
"locations": [
|
|
21693
21612
|
{
|
|
@@ -21697,25 +21616,25 @@
|
|
|
21697
21616
|
"index": 914
|
|
21698
21617
|
},
|
|
21699
21618
|
"region": {
|
|
21700
|
-
"startLine":
|
|
21701
|
-
"startColumn":
|
|
21702
|
-
"endLine":
|
|
21703
|
-
"endColumn":
|
|
21619
|
+
"startLine": 1188,
|
|
21620
|
+
"startColumn": 34,
|
|
21621
|
+
"endLine": 1188,
|
|
21622
|
+
"endColumn": 37,
|
|
21704
21623
|
"snippet": {
|
|
21705
|
-
"text": "
|
|
21624
|
+
"text": "any"
|
|
21706
21625
|
}
|
|
21707
21626
|
}
|
|
21708
21627
|
}
|
|
21709
21628
|
}
|
|
21710
21629
|
],
|
|
21711
|
-
"ruleId": "@typescript-eslint/explicit-
|
|
21712
|
-
"ruleIndex":
|
|
21630
|
+
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
21631
|
+
"ruleIndex": 0,
|
|
21713
21632
|
"suppressions": []
|
|
21714
21633
|
},
|
|
21715
21634
|
{
|
|
21716
21635
|
"level": "warning",
|
|
21717
21636
|
"message": {
|
|
21718
|
-
"text": "
|
|
21637
|
+
"text": "Unexpected any. Specify a different type."
|
|
21719
21638
|
},
|
|
21720
21639
|
"locations": [
|
|
21721
21640
|
{
|
|
@@ -21725,25 +21644,25 @@
|
|
|
21725
21644
|
"index": 914
|
|
21726
21645
|
},
|
|
21727
21646
|
"region": {
|
|
21728
|
-
"startLine":
|
|
21729
|
-
"startColumn":
|
|
21730
|
-
"endLine":
|
|
21731
|
-
"endColumn":
|
|
21647
|
+
"startLine": 1713,
|
|
21648
|
+
"startColumn": 51,
|
|
21649
|
+
"endLine": 1713,
|
|
21650
|
+
"endColumn": 54,
|
|
21732
21651
|
"snippet": {
|
|
21733
|
-
"text": "
|
|
21652
|
+
"text": "any"
|
|
21734
21653
|
}
|
|
21735
21654
|
}
|
|
21736
21655
|
}
|
|
21737
21656
|
}
|
|
21738
21657
|
],
|
|
21739
|
-
"ruleId": "@typescript-eslint/explicit-
|
|
21740
|
-
"ruleIndex":
|
|
21658
|
+
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
21659
|
+
"ruleIndex": 0,
|
|
21741
21660
|
"suppressions": []
|
|
21742
21661
|
},
|
|
21743
21662
|
{
|
|
21744
21663
|
"level": "warning",
|
|
21745
21664
|
"message": {
|
|
21746
|
-
"text": "
|
|
21665
|
+
"text": "File has too many lines (3258). Maximum allowed is 2000."
|
|
21747
21666
|
},
|
|
21748
21667
|
"locations": [
|
|
21749
21668
|
{
|
|
@@ -21753,25 +21672,25 @@
|
|
|
21753
21672
|
"index": 914
|
|
21754
21673
|
},
|
|
21755
21674
|
"region": {
|
|
21756
|
-
"startLine":
|
|
21757
|
-
"startColumn":
|
|
21758
|
-
"endLine":
|
|
21759
|
-
"endColumn":
|
|
21675
|
+
"startLine": 2001,
|
|
21676
|
+
"startColumn": 1,
|
|
21677
|
+
"endLine": 3259,
|
|
21678
|
+
"endColumn": 1,
|
|
21760
21679
|
"snippet": {
|
|
21761
|
-
"text": "private _onDateTimePickerChange = "
|
|
21680
|
+
"text": " </div>\n }\n {controlVisibility.ListItemPicker &&\n <div id=\"ListItemPickerDiv\" className={styles.container}>\n <div className=\"ms-font-m\">List Item picker list data tester:\n\n <ListItemPicker listId={'b1416fca-dc77-4198-a082-62a7657dcfa9'}\n columnInternalName=\"DateAndTime\"\n keyColumnInternalName=\"Id\"\n // filter={\"Title eq 'SPFx'\"}\n orderBy={'Title desc'}\n itemLimit={5}\n context={this.props.context}\n placeholder={'Select list items'}\n onSelectedItem={this.listItemPickerDataSelected} />\n\n </div>\n </div>\n }\n {controlVisibility.ListItemComments &&\n <div id=\"ListItemCommentsDiv\" className={styles.container}>\n <div className=\"ms-font-m\">List Item Comments Tester\n <ListItemComments webUrl='https://contoso.sharepoint.com/sites/ThePerspective'\n listId='6f151a33-a7af-4fae-b8c4-f2f04cbc690f'\n itemId={\"1\"}\n serviceScope={this.props.context.serviceScope}\n numberCommentsPerPage={10}\n label=\"ListItem Comments\"\n />\n </div>\n </div>\n }\n {controlVisibility.ViewPicker &&\n <div id=\"ViewPickerDiv\" className={styles.container}>\n <div className=\"ms-font-m\">View picker tester:\n <ViewPicker context={this.props.context}\n label=\"Select view(s)\"\n listId={\"9f3908cd-1e88-4ab3-ac42-08efbbd64ec9\"}\n placeholder={'Select list view(s)'}\n orderBy={1}\n multiSelect={true}\n onSelectionChanged={this.onViewPickerChange} />\n </div>\n </div>\n }\n {controlVisibility.FieldPicker &&\n <div id=\"FieldPickerDiv\" className={styles.container}>\n <div className=\"ms-font-m\">Field picker tester:\n <FieldPicker\n context={this.props.context}\n label={'Select a field'}\n listId={this.state.selectedList}\n onSelectionChanged={(fields) => {\n console.log(fields);\n }}\n />\n </div>\n </div>\n }\n {controlVisibility.IconPicker &&\n <div id=\"IconPickerDiv\" className={styles.container}>\n <div>Icon Picker</div>\n <div>\n <IconPicker\n renderOption=\"panel\"\n onSave={(value) => { console.log(value); }}\n currentIcon={'Warning'}\n buttonLabel=\"Icon Picker\" />\n </div>\n <IconPicker buttonLabel={'Icon'}\n onChange={(iconName: string) => { console.log(iconName); }}\n onCancel={() => { console.log(\"Panel closed\"); }}\n onSave={(iconName: string) => { console.log(iconName); }} />\n </div>\n }\n {controlVisibility.ComboBoxListItemPicker &&\n <div id=\"ComboBoxListItemPickerDiv\" className={styles.container}>\n <div className=\"ms-font-m\">ComboBoxListItemPicker:\n\n <ComboBoxListItemPicker listId={this.state.comboBoxListItemPickerListId}\n columnInternalName='Title'\n keyColumnInternalName='Id'\n orderBy='Title desc'\n multiSelect={true}\n onSelectedItem={(data) => {\n console.log(`Item(s):`, data);\n }}\n defaultSelectedItems={this.state.comboBoxListItemPickerIds}\n webUrl={this.props.context.pageContext.web.absoluteUrl}\n spHttpClient={this.props.context.spHttpClient} />\n\n <PrimaryButton text=\"Change List\" onClick={() => {\n this.setState({\n comboBoxListItemPickerListId: '71210430-8436-4962-a14d-5525475abd6b'\n });\n }} />\n <PrimaryButton text=\"Change default items\" onClick={() => {\n this.setState({\n comboBoxListItemPickerIds: [{ Id: 2, Title: '222' }]\n });\n }} />\n\n </div>\n </div>\n }\n {controlVisibility.IFrameDialog &&\n <div id=\"IFrameDialogDiv\" className={styles.container}>\n <div className=\"ms-font-m\">iframe dialog tester:\n <PrimaryButton\n text=\"Open iframe Dialog\"\n onClick={() => { this.setState({ iFrameDialogOpened: true }); }} />\n <IFrameDialog\n url={iframeUrl}\n iframeOnLoad={(iframe: any) => { console.log('iframe loaded'); }}\n hidden={!this.state.iFrameDialogOpened}\n onDismiss={() => { this.setState({ iFrameDialogOpened: false }); }}\n modalProps={{\n isBlocking: true,\n styles: {\n root: {\n backgroundColor: '#00ff00'\n },\n main: {\n backgroundColor: '#ff0000'\n }\n }\n }}\n dialogContentProps={{\n type: DialogType.close,\n showCloseButton: true\n }}\n width={'570px'}\n height={'315px'} />\n </div>\n </div>\n }\n {controlVisibility.IFramePanel &&\n <div id=\"IFramePanelDiv\" className={styles.container}>\n <div className=\"ms-font-m\">iframe Panel tester:\n <PrimaryButton\n text=\"Open iframe Panel\"\n onClick={() => { this.setState({ iFramePanelOpened: true }); }} />\n <IFramePanel\n url={iframeUrl}\n type={PanelType.medium}\n // height=\"300px\"\n headerText=\"iframe panel title\"\n closeButtonAriaLabel=\"Close\"\n isOpen={this.state.iFramePanelOpened}\n onDismiss={() => { this.setState({ iFramePanelOpened: false }); }}\n iframeOnLoad={(iframe: any) => { console.log('iframe loaded'); }}\n />\n </div>\n </div>\n }\n {controlVisibility.ImagePicker &&\n <div id=\"ImagePickerDiv\" className={styles.container}>\n <ImagePicker\n context={this.props.context}\n onFileSelected={(file) => { console.log(file); this.setState({ selectedUrlImagePicker: file.fileAbsoluteUrl }); }}\n onDeleteFile={() => { console.log('file deleted'); }}\n selectedFileUrl={this.state.selectedUrlImagePicker}\n />\n </div>\n }\n {controlVisibility.FolderPicker &&\n <div id=\"FolderPickerDiv\" className={styles.container}>\n <FolderPicker context={this.props.context}\n rootFolder={{\n Name: 'Documents',\n ServerRelativeUrl: `${this.props.context.pageContext.web.serverRelativeUrl === '/' ? '' : this.props.context.pageContext.web.serverRelativeUrl}/Shared Documents`\n }}\n onSelect={this._onFolderSelect}\n label='Folder Picker'\n required={true}\n canCreateFolders={true}\n />\n </div>\n }\n <div id=\"FilterBarDiv\" className={styles.container} hidden={!controlVisibility.FilterBar}>\n <FilterBar items={this.state.filters} inlineItemCount={3} onClearFilters={this.onClearFilters} onRemoveFilter={this.onRemoveFilter} />\n <button onClick={this.addFilter}>Add new filter</button>\n </div>\n {controlVisibility.Carousel &&\n\n <div id=\"CarouselDiv\" className={styles.container}>\n <div>\n <h3>Carousel with fixed elements:</h3>\n <Carousel\n buttonsLocation={CarouselButtonsLocation.top}\n buttonsDisplay={CarouselButtonsDisplay.block}\n\n contentContainerStyles={styles.carouselContent}\n containerButtonsStyles={styles.carouselButtonsContainer}\n\n isInfinite={true}\n\n element={this.carouselElements}\n onMovePrevClicked={(index: number) => { console.log(`Prev button clicked: ${index}`); }}\n />\n </div>\n <div>\n <h3>Carousel with CarouselImage elements:</h3>\n <Carousel\n buttonsLocation={CarouselButtonsLocation.center}\n buttonsDisplay={CarouselButtonsDisplay.buttonsOnly}\n\n contentContainerStyles={styles.carouselImageContent}\n //containerButtonsStyles={styles.carouselButtonsContainer}\n\n isInfinite={true}\n indicatorShape={CarouselIndicatorShape.circle}\n indicatorsDisplay={CarouselIndicatorsDisplay.block}\n pauseOnHover={true}\n\n element={[\n {\n imageSrc: 'https://images.unsplash.com/photo-1588614959060-4d144f28b207?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=3078&q=80',\n title: 'Colosseum',\n description: 'This is Colosseum',\n url: 'https://en.wikipedia.org/wiki/Colosseum',\n showDetailsOnHover: true,\n imageFit: ImageFit.cover\n },\n {\n imageSrc: 'https://www.telegraph.co.uk/content/dam/science/2018/06/20/stonehenge-2326750_1920_trans%2B%2BZgEkZX3M936N5BQK4Va8RWtT0gK_6EfZT336f62EI5U.jpg',\n title: 'Stonehenge',\n description: 'This is Stonehendle',\n url: 'https://en.wikipedia.org/wiki/Stonehenge',\n showDetailsOnHover: true,\n imageFit: ImageFit.cover\n },\n {\n imageSrc: 'https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/All_Gizah_Pyramids.jpg/2560px-All_Gizah_Pyramids.jpg',\n title: 'Pyramids of Giza',\n description: 'This are Pyramids of Giza (Egypt)',\n url: 'https://en.wikipedia.org/wiki/Egyptian_pyramids',\n showDetailsOnHover: true,\n imageFit: ImageFit.cover\n }\n ]}\n onMoveNextClicked={(index: number) => { console.log(`Next button clicked: ${index}`); }}\n onMovePrevClicked={(index: number) => { console.log(`Prev button clicked: ${index}`); }}\n rootStyles={mergeStyles({\n backgroundColor: '#C3C3C3'\n })}\n />\n </div>\n <div>\n <h3>Carousel with triggerPageElement:</h3>\n <Carousel\n buttonsLocation={CarouselButtonsLocation.bottom}\n buttonsDisplay={CarouselButtonsDisplay.buttonsOnly}\n\n contentContainerStyles={styles.carouselContent}\n\n canMoveNext={this.state.canMoveNext}\n canMovePrev={this.state.canMovePrev}\n triggerPageEvent={this.triggerNextElement}\n element={this.state.currentCarouselElement}\n />\n </div>\n <div>\n <h3>Carousel with minimal configuration:</h3>\n <Carousel\n element={this.carouselElements}\n contentHeight={200}\n />\n </div>\n </div>\n }\n {controlVisibility.SiteBreadcrumb &&\n <div id=\"SiteBreadcrumbDiv\" className={styles.container}>\n <div className={styles.siteBreadcrumb}>\n <SiteBreadcrumb context={this.props.context} />\n </div>\n </div>\n }\n {controlVisibility.FilePicker &&\n <div id=\"FilePickerDiv\" className={styles.container}>\n <div>\n <h3>File Picker</h3>\n <TextField\n label=\"Default SiteFileTab Folder\"\n onChange={debounce((ev, newVal) => { this.setState({ filePickerDefaultFolderAbsolutePath: newVal }); }, 500)}\n styles={{ root: { marginBottom: 10 } }}\n />\n <FilePicker\n bingAPIKey=\"<BING API KEY>\"\n //webAbsoluteUrl=\"https://023xn.sharepoint.com/sites/test1\"\n //defaultFolderAbsolutePath={\"https://aterentiev.sharepoint.com/sites/SPFxinTeamsDemo/Shared%20Documents/General\"}\n //accepts={[\".gif\", \".jpg\", \".jpeg\", \".bmp\", \".dib\", \".tif\", \".tiff\", \".ico\", \".png\", \".jxr\", \".svg\"]}\n buttonLabel=\"Add File\"\n buttonIconProps={{ iconName: 'Add', styles: { root: { fontSize: 42 } } }}\n onSave={this._onFilePickerSave}\n onChange={(filePickerResult: IFilePickerResult[]) => { console.log(filePickerResult); }}\n context={this.props.context}\n hideRecentTab={false}\n includePageLibraries={true}\n checkIfFileExists={false}\n />\n {\n this.state.filePickerResult &&\n <div>\n <div>\n FileName: {this.state.filePickerResult[0].fileName}\n </div>\n <div>\n File size: {GeneralHelper.formatBytes(this.state.filePickerResult[0].fileSize, 2)}\n </div>\n </div>\n }\n </div>\n\n <div>\n <h3>File Picker with target folder browser</h3>\n <FilePicker\n bingAPIKey=\"<BING API KEY>\"\n //accepts={[\".gif\", \".jpg\", \".jpeg\", \".bmp\", \".dib\", \".tif\", \".tiff\", \".ico\", \".png\", \".jxr\", \".svg\"]}\n buttonLabel=\"Upload image\"\n buttonIcon=\"FileImage\"\n onSave={this._onFilePickerSave}\n onChange={(filePickerResult: IFilePickerResult[]) => { console.log(filePickerResult); }}\n context={this.props.context}\n hideRecentTab={false}\n renderCustomUploadTabContent={() => (\n <FolderExplorer context={this.props.context}\n rootFolder={this.rootFolder}\n defaultFolder={this.rootFolder}\n onSelect={this._onFolderSelect}\n canCreateFolders={true}\n />)}\n />\n </div>\n <p><a href=\"javascript:;\" onClick={this.deleteItem}>Deletes second item</a></p>\n </div>\n }\n {controlVisibility.Progress &&\n <div id=\"ProgressDiv\" className={styles.container}>\n <Progress title={'Progress Test'}\n showOverallProgress={true}\n showIndeterminateOverallProgress={false}\n hideNotStartedActions={false}\n actions={this.state.progressActions}\n currentActionIndex={this.state.currentProgressActionIndex}\n longRunningText={'This operation takes longer than expected'}\n longRunningTextDisplayDelay={7000}\n height={'350px'}\n inProgressIconName={'ChromeBackMirrored'} />\n <PrimaryButton text={'Start Progress'} onClick={this._startProgress} />\n </div>\n }\n {controlVisibility.ProgressStepsIndicator &&\n <div id=\"ProgressStepsIndicatorDiv\" className={styles.container}>\n <ProgressStepsIndicator steps={this.progressSteps} currentStep={0} themeVariant={this.props.themeVariant} />\n </div>\n }\n {controlVisibility.Toast &&\n <div id=\"ToastDiv\" className={styles.container}>\n <h3>Toast</h3>\n <Toast\n title=\"Decision saved\"\n body=\"This native Fluent UI toast will dismiss after five seconds.\"\n subtitle=\"Controls Test\"\n intent=\"success\"\n dismissible\n autoDismiss\n duration={5}\n durationUnit=\"seconds\"\n />\n </div>\n }\n {controlVisibility.GridLayout &&\n <div id=\"GridLayoutDiv\" className={styles.container}>\n <div className=\"ms-font-l\">Grid Layout</div>\n <GridLayout\n ariaLabel={\"List of content, use right and left arrow keys to navigate, arrow down to access details.\"}\n items={sampleGridData}\n onRenderGridItem={(item: any, finalSize: ISize, isCompact: boolean) => this._onRenderGridItem(item, finalSize, isCompact)}\n itemMinWidth={250}\n itemMaxWidth={600}\n itemPadding={60}\n //compactThreshold={220}\n //rowsPerPage={1}\n />\n </div>\n }\n {controlVisibility.HoverReactionsBar &&\n <div ref={this.divRefAddReaction} id=\"HoverReactionsBarDiv\" className={styles.container}>\n <PrimaryButton text=\"Open HoverReactionsBar\" onClick={() => { this.setState({ isOpenHoverReactionBar: true }); }} />\n <HoverReactionsBar\n isOpen={this.state.isOpenHoverReactionBar}\n onSelect={(emoji, emojiInfo) => { console.log(emoji); }}\n onDismiss={(): void => {\n this.setState({ isOpenHoverReactionBar: false });\n }}\n target={this.divRefAddReaction.current as HTMLDivElement} />\n </div>\n }\n {controlVisibility.FolderExplorer &&\n <div id=\"FolderExplorerDiv\" className={styles.container}>\n <FolderExplorer\n context={this.props.context}\n rootFolder={{\n Name: 'Documents',\n ServerRelativeUrl: `${this.props.context.pageContext.web.serverRelativeUrl === '/' ? '' : this.props.context.pageContext.web.serverRelativeUrl}/Shared Documents`\n }}\n defaultFolder={{\n Name: 'Documents',\n ServerRelativeUrl: `${this.props.context.pageContext.web.serverRelativeUrl === '/' ? '' : this.props.context.pageContext.web.serverRelativeUrl}/Shared Documents`\n }}\n onSelect={this._onFolderSelect}\n canCreateFolders={true}\n orderby='Name' //'ListItemAllFields/Created'\n orderAscending={true}\n showFiles={true}\n onFileClick={this._onFileClick}\n />\n </div>\n }\n {controlVisibility.TreeView &&\n <div id=\"TreeViewDiv\" className={styles.container}>\n <h3>Tree View</h3>\n <TreeView items={this.treeitems}\n defaultExpanded={false}\n selectionMode={TreeViewSelectionMode.Multiple}\n showCheckboxes={true}\n treeItemActionsDisplayMode={TreeItemActionsDisplayMode.ContextualMenu}\n defaultSelectedKeys={this.state.treeViewSelectedKeys}\n onExpandCollapse={this.onExpandCollapseTree}\n onSelect={this.onItemSelected}\n defaultExpandedChildren={true}\n theme={this.props.themeVariant}\n //expandToSelected={true}\n // onRenderItem={this.renderCustomTreeItem}\n />\n <PrimaryButton onClick={() => { this.setState({ treeViewSelectedKeys: [] }); }}>Clear selection</PrimaryButton>\n </div>\n }\n {controlVisibility.Pagination &&\n <div id=\"PaginationDiv\" className={styles.container}>\n <Pagination\n currentPage={3}\n onChange={(page) => (this._getPage(page))}\n totalPages={this.props.paginationTotalPages || 13}\n //limiter={3}\n // hideFirstPageJump\n //hideLastPageJump\n //limiterIcon={\"NumberedListText\"}\n />\n </div>\n }\n {controlVisibility.FieldCollectionData &&\n <div id=\"FieldCollectionDataDiv\" className={styles.container}>\n <FieldCollectionData\n key={\"FieldCollectionData\"}\n label={\"Fields Collection\"}\n itemsPerPage={3}\n manageBtnLabel={\"Manage\"}\n onChanged={(value) => { console.log(value); }}\n panelHeader={\"Manage values\"}\n enableSorting={true}\n panelProps={{ type: PanelType.custom, customWidth: \"98vw\" }}\n fields={[\n { id: \"Field1\", title: \"String field\", type: CustomCollectionFieldType.string, required: true },\n { id: \"Field2\", title: \"Number field\", type: CustomCollectionFieldType.number },\n { id: \"Field3\", title: \"URL field\", type: CustomCollectionFieldType.url },\n { id: \"Field4\", title: \"Boolean field\", type: CustomCollectionFieldType.boolean },\n {\n id: \"Field5\", title: \"People picker\", type: CustomCollectionFieldType.peoplepicker, required: true,\n minimumUsers: 2, minimumUsersMessage: \"2 Users is the minimum\", maximumUsers: 3,\n },\n {\n id: \"Field6\", title: \"Combo Single\", type: CustomCollectionFieldType.combobox, required: true,\n multiSelect: false, options: [{ key: \"choice 1\", text: \"choice 1\" }, { key: \"choice 2\", text: \"choice 2\" }, { key: \"choice 3\", text: \"choice 3\" }]\n },\n {\n id: \"Field7\", title: \"Combo Multi\", type: CustomCollectionFieldType.combobox,\n allowFreeform: true, multiSelect: true, options: [{ key: \"choice 1\", text: \"choice 1\" }, { key: \"choice 2\", text: \"choice 2\" }, { key: \"choice 3\", text: \"choice 3\" }]\n },\n { id: \"Field8\", title: \"Date field\", type: CustomCollectionFieldType.date, placeholder: \"Select a date\" }\n ]}\n value={this.getRandomCollectionFieldData()}\n\n // value = {null}\n context={this.props.context as any} //error when this is omitted and people picker is used\n usePanel={true}\n noDataMessage=\"No data is selected\" //overrides the default message\n />\n </div>\n }\n {controlVisibility.ContentTypePicker &&\n <ContentTypePicker\n context={this.props.context}\n // group=\"Content Feedback\"\n // includeHidden={false}\n // includeReadOnly={false}\n // label=\"Select your content type\"\n // multiSelect={false}\n // orderBy={ContentTypesOrderBy.Name}\n // listId=\"00000000-0000-0000-0000-000000000000\"\n // onSelectionChanged={this.onContentTypePickerChanged}\n // showBlankOption={true}\n />\n }\n {controlVisibility.Dashboard &&\n <div id=\"DashboardDiv\" className={styles.container}>\n <Dashboard\n widgets={[{\n title: \"Card 1\",\n desc: \"Last updated Monday, April 4 at 11:15 AM (PT)\",\n widgetActionGroup: calloutItemsExample,\n size: WidgetSize.Quadruple,\n body: [\n {\n id: \"t1\",\n title: \"Tab 1\",\n content: (\n <Flex\n vAlign=\"center\"\n hAlign=\"center\"\n styles={{ height: \"100%\", border: \"1px dashed rgb(179, 176, 173)\" }}\n >\n <NorthstarText size=\"large\" weight=\"semibold\">\n Content #1\n </NorthstarText>\n </Flex>\n ),\n },\n {\n id: \"t2\",\n title: \"Tab 2\",\n content: (\n <Flex\n vAlign=\"center\"\n hAlign=\"center\"\n styles={{ height: \"100%\", border: \"1px dashed rgb(179, 176, 173)\" }}\n >\n <NorthstarText size=\"large\" weight=\"semibold\">\n Content #2\n </NorthstarText>\n </Flex>\n ),\n },\n {\n id: \"t3\",\n title: \"Tab 3\",\n content: (\n <Flex\n vAlign=\"center\"\n hAlign=\"center\"\n styles={{ height: \"100%\", border: \"1px dashed rgb(179, 176, 173)\" }}\n >\n <NorthstarText size=\"large\" weight=\"semibold\">\n Content #3\n </NorthstarText>\n </Flex>\n ),\n },\n ],\n link: linkExample,\n },\n {\n title: \"Card 2\",\n size: WidgetSize.Single,\n link: customizedLinkExample,\n rowSpan: 2\n },\n {\n title: \"Card 3\",\n size: WidgetSize.Double,\n link: linkExample,\n },\n {\n title: \"Card 4\",\n size: WidgetSize.Single,\n link: customizedLinkExample,\n },\n {\n title: \"Card 5\",\n size: WidgetSize.Single,\n link: linkExample,\n },\n {\n title: \"Card 6\",\n size: WidgetSize.Single,\n link: linkExample,\n }]} />\n </div>\n }\n {controlVisibility.Toolbar &&\n <div id=\"ToolbarDiv\" className={styles.container}>\n <div>\n <h3>Uncontrolled toolbar</h3>\n <Toolbar actionGroups={{\n 'group1': {\n 'action1': {\n title: 'Edit',\n iconName: 'Edit',\n onClick: () => { console.log('Edit action click'); }\n },\n 'action2': {\n title: 'New',\n iconName: 'Add',\n onClick: () => { console.log('New action click'); }\n }\n }\n }}\n filters={toolbarFilters}\n onSelectedFiltersChange={this.onToolbarSelectedFiltersChange}\n />\n </div>\n <div>\n <h3>Controlled toolbar</h3>\n <Toolbar actionGroups={{\n 'group1': {\n 'action1': {\n title: 'Edit',\n iconName: 'Edit',\n onClick: () => { console.log('Edit action click'); }\n },\n 'action2': {\n title: 'New',\n iconName: 'Add',\n onClick: () => { console.log('New action click'); }\n }\n }\n }}\n filters={toolbarFilters}\n selectedFilterIds={this.state.selectedFilters}\n onSelectedFiltersChange={this.onToolbarSelectedFiltersChange} />\n </div>\n <div>Selected filter IDs: {this.state.selectedFilters.join(\", \")}</div>\n <PrimaryButton text='Toggle filter1' onClick={() => this.toggleToolbarFilter(\"filter1\")} />\n <PrimaryButton text='Toggle filter2' onClick={() => this.toggleToolbarFilter(\"filter2\")} />\n </div>\n }\n {controlVisibility.AnimatedDialog &&\n <div id=\"AnimatedDialogDiv\" className={styles.container}>\n <h3>Animated Dialogs</h3>\n\n {/* Multiple elements added only for demo - can be controlled with fewer elements */}\n\n <PrimaryButton text='Show animated dialog' onClick={() => { this.setState({ showAnimatedDialog: true }); }} />\n {/* Normal animated dialog */}\n <AnimatedDialog\n hidden={!this.state.showAnimatedDialog}\n onDismiss={() => { this.setState({ showAnimatedDialog: false }); }}\n dialogContentProps={animatedDialogContentProps}\n modalProps={animatedModalProps}\n >\n <DialogFooter>\n <PrimaryButton onClick={() => { this.setState({ showAnimatedDialog: false }); }} text=\"Yes\" />\n <DefaultButton onClick={() => { this.setState({ showAnimatedDialog: false }); }} text=\"No\" />\n </DialogFooter>\n </AnimatedDialog>\n <br />\n <br />\n\n <PrimaryButton text='Show animated dialog with icon' onClick={() => { this.setState({ showCustomisedAnimatedDialog: true }); }} />\n {/* Animated dialog with icon */}\n <AnimatedDialog\n hidden={!this.state.showCustomisedAnimatedDialog}\n onDismiss={() => { this.setState({ showCustomisedAnimatedDialog: false }); }}\n dialogContentProps={customizedAnimatedDialogContentProps}\n modalProps={customizedAnimatedModalProps}\n dialogAnimationInType='fadeInDown'\n dialogAnimationOutType='fadeOutDown'\n iconName='UnknownSolid'\n iconAnimationType='zoomInDown'\n showAnimatedDialogFooter={true}\n okButtonText=\"Yes\"\n cancelButtonText=\"No\"\n onOkClick={() => timeout(1500)}\n onSuccess={() => {\n this.setState({ showCustomisedAnimatedDialog: false });\n this.setState({ showSuccessDialog: true });\n }}\n onError={() => {\n this.setState({ showCustomisedAnimatedDialog: false });\n this.setState({ showErrorDialog: true });\n }}>\n <div className={styles.dialogContent}>\n <span>Do you like the animated dialog?</span>\n </div>\n </AnimatedDialog>\n\n {/* Success animated dialog */}\n <AnimatedDialog\n hidden={!this.state.showSuccessDialog}\n onDismiss={() => { this.setState({ showSuccessDialog: false }); }}\n dialogContentProps={successDialogContentProps}\n modalProps={customizedAnimatedModalProps}\n iconName='CompletedSolid'\n >\n <div className={styles.dialogContent}><span>Thank you.</span></div>\n <div className={styles.dialogFooter}>\n <PrimaryButton onClick={() => { this.setState({ showSuccessDialog: false }); }} text=\"OK\" />\n </div>\n </AnimatedDialog>\n\n {/* Error animated dialog */}\n <AnimatedDialog\n hidden={!this.state.showErrorDialog}\n onDismiss={() => { this.setState({ showErrorDialog: false }); }}\n dialogContentProps={errorDialogContentProps}\n modalProps={customizedAnimatedModalProps}\n iconName='StatusErrorFull'\n >\n <div className={styles.dialogContent}><span>Ther was an error.</span></div>\n <div className={styles.dialogFooter}>\n <PrimaryButton onClick={() => { this.setState({ showErrorDialog: false }); }} text=\"OK\" />\n </div>\n </AnimatedDialog>\n </div>\n }\n {controlVisibility.LivePersona &&\n <div id=\"LivePersonaDiv\" className={styles.container}>\n <LivePersona upn=\"meganb@contoso.onmicrosoft.com\"\n template={\n <>\n <Persona text=\"Megan Bowen\" secondaryText=\"meganb@contoso.onmicrosoft.com\" coinSize={48} />\n </>\n }\n serviceScope={this.props.context.serviceScope}\n />\n </div>\n }\n {controlVisibility.LocationPicker &&\n <div id=\"LocationPickerDiv\" className={styles.container}>\n <LocationPicker context={this.props.context} label=\"Location\" onChange={(locValue: ILocationPickerItem) => { console.log(locValue.DisplayName + \", \" + locValue.Address.Street); }} />\n </div>\n }\n {controlVisibility.ModernTaxonomyPicker &&\n <div id=\"ModernTaxonomyPickerDiv\" className={styles.container}>\n <ModernTaxonomyPicker\n allowMultipleSelections={true}\n termSetId={this.termSetId}\n panelTitle=\"Panel title\"\n label={\"Modern Taxonomy Picker\"}\n context={this.props.context}\n required={false}\n disabled={false}\n customPanelWidth={400}\n />\n </div>\n }\n {controlVisibility.MonacoEditor &&\n <div id=\"MonacoEditorDiv\" className={styles.container}>\n <MonacoEditor value={\"\"}\n showMiniMap={true}\n onValueChange={(value, validationErrors) => { console.log(value); console.log(validationErrors); }}\n language={\"javascript\"} />\n </div>\n }\n {controlVisibility.AdaptiveCardHost &&\n <div id=\"AdaptiveCardHostDiv\" className={styles.container}>\n <h3>Adaptive Card Host</h3>\n <AdaptiveCardHost\n card={{\n \"$schema\": \"http://adaptivecards.io/schemas/adaptive-card.json\",\n \"type\": \"AdaptiveCard\",\n \"version\": \"1.0\",\n \"body\": [\n {\n \"type\": \"TextBlock\",\n \"size\": \"medium\",\n \"weight\": \"bolder\",\n \"text\": \" ${ParticipantInfoForm.title}\",\n \"horizontalAlignment\": \"center\",\n \"wrap\": true,\n \"style\": \"heading\"\n },\n {\n \"type\": \"Input.Text\",\n \"label\": \"Name\",\n \"style\": \"text\",\n \"id\": \"SimpleVal\",\n \"isRequired\": true,\n \"errorMessage\": \"Name is required\"\n },\n {\n \"type\": \"Input.Text\",\n \"label\": \"Homepage\",\n \"style\": \"url\",\n \"id\": \"UrlVal\"\n },\n {\n \"type\": \"Input.Text\",\n \"label\": \"Email\",\n \"style\": \"email\",\n \"id\": \"EmailVal\"\n },\n {\n \"type\": \"Input.Text\",\n \"label\": \"Phone\",\n \"style\": \"tel\",\n \"id\": \"TelVal\"\n },\n {\n \"type\": \"Input.Text\",\n \"label\": \"Comments\",\n \"style\": \"text\",\n \"isMultiline\": true,\n \"id\": \"MultiLineVal\"\n },\n {\n \"type\": \"Input.Number\",\n \"label\": \"Quantity\",\n \"min\": -5,\n \"max\": 5,\n \"value\": 1,\n \"id\": \"NumVal\",\n \"errorMessage\": \"The quantity must be between -5 and 5\"\n },\n {\n \"type\": \"Input.Date\",\n \"label\": \"Due Date\",\n \"id\": \"DateVal\",\n \"value\": \"2017-09-20\"\n },\n {\n \"type\": \"Input.Time\",\n \"label\": \"Start time\",\n \"id\": \"TimeVal\",\n \"value\": \"16:59\"\n },\n {\n \"type\": \"TextBlock\",\n \"size\": \"medium\",\n \"weight\": \"bolder\",\n \"text\": \"${Survey.title} \",\n \"horizontalAlignment\": \"center\",\n \"wrap\": true,\n \"style\": \"heading\"\n },\n {\n \"type\": \"Input.ChoiceSet\",\n \"id\": \"CompactSelectVal\",\n \"label\": \"${Survey.questions[0].question}\",\n \"style\": \"compact\",\n \"value\": \"1\",\n \"choices\": [\n {\n \"$data\": \"${Survey.questions[0].items}\",\n \"title\": \"${choice}\",\n \"value\": \"${value}\"\n }\n ]\n },\n {\n \"type\": \"Input.ChoiceSet\",\n \"id\": \"SingleSelectVal\",\n \"label\": \"${Survey.questions[1].question}\",\n \"style\": \"expanded\",\n \"value\": \"1\",\n \"choices\": [\n {\n \"$data\": \"${Survey.questions[1].items}\",\n \"title\": \"${choice}\",\n \"value\": \"${value}\"\n }\n ]\n },\n {\n \"type\": \"Input.ChoiceSet\",\n \"id\": \"MultiSelectVal\",\n \"label\": \"${Survey.questions[2].question}\",\n \"isMultiSelect\": true,\n \"value\": \"1,3\",\n \"choices\": [\n {\n \"$data\": \"${Survey.questions[2].items}\",\n \"title\": \"${choice}\",\n \"value\": \"${value}\"\n }\n ]\n },\n {\n \"type\": \"TextBlock\",\n \"size\": \"medium\",\n \"weight\": \"bolder\",\n \"text\": \"Input.Toggle\",\n \"horizontalAlignment\": \"center\",\n \"wrap\": true,\n \"style\": \"heading\"\n },\n {\n \"type\": \"Input.Toggle\",\n \"label\": \"Please accept the terms and conditions:\",\n \"title\": \"${Survey.questions[3].question}\",\n \"valueOn\": \"true\",\n \"valueOff\": \"false\",\n \"id\": \"AcceptsTerms\",\n \"isRequired\": true,\n \"errorMessage\": \"Accepting the terms and conditions is required\"\n },\n {\n \"type\": \"Input.Toggle\",\n \"label\": \"How do you feel about red cars?\",\n \"title\": \"${Survey.questions[4].question}\",\n \"valueOn\": \"RedCars\",\n \"valueOff\": \"NotRedCars\",\n \"id\": \"ColorPreference\"\n }\n ],\n \"actions\": [\n {\n \"type\": \"Action.Submit\",\n \"title\": \"Submit\",\n \"data\": {\n \"id\": \"1234567890\"\n }\n },\n {\n \"type\": \"Action.ShowCard\",\n \"title\": \"Show Card\",\n \"card\": {\n \"type\": \"AdaptiveCard\",\n \"body\": [\n {\n \"type\": \"Input.Text\",\n \"label\": \"enter comment\",\n \"style\": \"text\",\n \"id\": \"CommentVal\"\n }\n ],\n \"actions\": [\n {\n \"type\": \"Action.Submit\",\n \"title\": \"OK\"\n }\n ]\n }\n }\n ]\n }}\n data={{\n \"$root\": {\n \"ParticipantInfoForm\": {\n \"title\": \"Input.Text elements\"\n },\n \"Survey\": {\n \"title\": \"Input ChoiceSet\",\n \"questions\": [\n {\n \"question\": \"What color do you want? (compact)\",\n \"items\": [\n {\n \"choice\": \"Red\",\n \"value\": \"1\"\n },\n {\n \"choice\": \"Green\",\n \"value\": \"2\"\n },\n {\n \"choice\": \"Blue\",\n \"value\": \"3\"\n }\n ]\n },\n {\n \"question\": \"What color do you want? (expanded)\",\n \"items\": [\n {\n \"choice\": \"Red\",\n \"value\": \"1\"\n },\n {\n \"choice\": \"Green\",\n \"value\": \"2\"\n },\n {\n \"choice\": \"Blue\",\n \"value\": \"3\"\n }\n ]\n },\n {\n \"question\": \"What color do you want? (multiselect)\",\n \"items\": [\n {\n \"choice\": \"Red\",\n \"value\": \"1\"\n },\n {\n \"choice\": \"Green\",\n \"value\": \"2\"\n },\n {\n \"choice\": \"Blue\",\n \"value\": \"3\"\n }\n ]\n },\n {\n \"question\": \"I accept the terms and conditions (True/False)\"\n },\n {\n \"question\": \"Red cars are better than other cars\"\n }\n ]\n }\n }\n }}\n theme={this.props.themeVariant}\n themeType={AdaptiveCardHostThemeType.SharePoint}\n onInvokeAction={(action) => alert(JSON.stringify(action))}\n onError={(error) => console.log(error.message)}\n onSetCustomElements={(registry: CardObjectRegistry<CardElement>) => { }}\n onSetCustomActions={(registry: CardObjectRegistry<Action>) => { }}\n onUpdateHostCapabilities={(hostCapabilities: HostCapabilities) => {\n hostCapabilities.setCustomProperty(\"CustomPropertyName\", Date.now);\n }}\n context={this.props.context}\n />\n </div>\n }\n {controlVisibility.VariantThemeProvider &&\n <div id=\"VariantThemeProviderDiv\" className={styles.container}>\n <h3>Variant Theme Provider</h3>\n <VariantThemeProvider variantType={VariantType.Strong}>\n <Stack tokens={{ childrenGap: 5, padding: 5 }}>\n <Label>This Web Part implements an example on how to use the 'Fluent UI' theme library and how to apply/generate theme variation for the Web Part itself.</Label>\n <PrimaryButton>Primary Button</PrimaryButton>\n <DefaultButton>Default Button</DefaultButton>\n <Link>Link</Link>\n </Stack>\n </VariantThemeProvider>\n </div>\n }\n {controlVisibility.EnhancedThemeProvider &&\n <div id=\"EnhancedThemeProviderDiv\" className={styles.container}>\n <h3>Enhanced Theme Provider</h3>\n <EnhancedThemeProvider applyTo=\"element\" context={this.props.context} theme={this.props.themeVariant}>\n <ControlsTestEnhancedThemeProviderFunctionComponent />\n <ControlsTestEnhancedThemeProvider />\n </EnhancedThemeProvider>\n </div>\n }\n {controlVisibility.AdaptiveCardDesignerHost &&\n <div id=\"AdaptiveCardDesignerHostDiv\" className={styles.container}>\n <h3>Adaptive Card Designer Host</h3>\n <AdaptiveCardDesignerHost\n headerText={`Adaptive Card Designer`}\n buttonText=\"Open Designer\"\n card={{ \"$schema\": \"http://adaptivecards.io/schemas/adaptive-card.json\", \"type\": \"AdaptiveCard\", \"version\": \"1.5\", \"body\": [{ \"type\": \"ColumnSet\", \"columns\": [{ \"width\": \"auto\", \"items\": [{ \"type\": \"Image\", \"size\": \"Small\", \"style\": \"Person\", \"url\": \"/_layouts/15/userphoto.aspx?size=M&username=${$root['@context']['userInfo']['email']}\" }], \"type\": \"Column\" }, { \"width\": \"stretch\", \"items\": [{ \"type\": \"TextBlock\", \"text\": \"${$root['@context']['userInfo']['displayName']}\", \"weight\": \"Bolder\" }, { \"type\": \"TextBlock\", \"spacing\": \"None\", \"text\": \"${$root['@context']['userInfo']['email']}\" }], \"type\": \"Column\" }] }] }}\n data={undefined}\n context={this.props.context}\n theme={this.props.themeVariant}\n onSave={(payload: object) => alert(JSON.stringify(payload))}\n snippets={[{\n name: \"Persona\",\n category: \"Snippets\",\n payload: {\n type: \"ColumnSet\",\n columns: [\n {\n width: \"auto\",\n items: [\n {\n type: \"Image\",\n size: \"Small\",\n style: \"Person\",\n url: \"/_layouts/15/userphoto.aspx?size=M&username=${$root['@context']['userInfo']['email']}\"\n }\n ]\n },\n {\n width: \"stretch\",\n items: [\n {\n type: \"TextBlock\",\n text: \"${$root['@context']['userInfo']['displayName']}\",\n weight: \"Bolder\"\n },\n {\n type: \"TextBlock\",\n spacing: \"None\",\n text: \"${$root['@context']['userInfo']['email']}\"\n }\n ]\n }\n ]\n }\n }]}\n />\n </div>\n }\n {controlVisibility.ShareDialog &&\n <div id=\"ShareDialogDiv\" className={styles.container}>\n <PrimaryButton text=\"Open Share dialog\" onClick={() => { this.setState({ isOpenShareDialog: true }); }} />\n <ShareDialog\n isOpen={this.state.isOpenShareDialog}\n onClose={() => this.setState({ isOpenShareDialog: false })}\n options={{\n siteUrl: this.props.context.pageContext.web.absoluteUrl,\n listId: 'b1416fca-dc77-4198-a082-62a7657dcfa9',\n itemId: 1,\n name: 'Document Name'\n }} />\n </div>\n }\n {controlVisibility.TaxonomyTree &&\n <div id=\"TaxonomyTreeDiv\" className={styles.container} hidden={!controlVisibility.TaxonomyTree}>\n <h3>Modern Taxonomy Tree</h3>\n {this.state.termStoreInfo && (\n <TaxonomyTree\n languageTag={this.state.termStoreInfo.defaultLanguageTag}\n onLoadMoreData={this.spTaxonomyService.getTerms}\n pageSize={50}\n setTerms={(value) => this.setState({ testTerms: value as any })}\n termStoreInfo={this.state.termStoreInfo}\n termSetInfo={this.state.termSetInfo}\n terms={this.state.testTerms as any[]}\n onRenderActionButton={() => <button>test button</button>}\n hideDeprecatedTerms={false}\n showIcons={true}\n />\n )}\n </div>\n }\n {controlVisibility.ListToolbar &&\n <div id=\"ListToolbarDiv\" className={styles.container}>\n <h3>ListToolbar</h3>\n <ListToolbar\n context={this.props.context}\n theme={this.props.themeVariant as any}\n items={[\n { key: 'new', label: 'New', icon: <span>+</span>, onClick: () => console.log('New clicked'), group: 'actions' },\n { key: 'edit', label: 'Edit', icon: <span>✎</span>, onClick: () => console.log('Edit clicked'), group: 'actions' },\n { key: 'delete', label: 'Delete', icon: <span>🗑</span>, onClick: () => console.log('Delete clicked'), appearance: 'subtle', group: 'danger' },\n ]}\n farItems={[\n { key: 'filter', label: 'Filter', icon: <span>🔍</span>, onClick: () => console.log('Filter clicked'), isFarItem: true },\n { key: 'settings', label: 'Settings', icon: <span>⚙</span>, onClick: () => console.log('Settings clicked'), isFarItem: true },\n ]}\n totalCount={10}\n showGroupDividers={true}\n ariaLabel=\"List Toolbar\"\n />\n </div>\n }\n {controlVisibility.TestControl &&\n <div id=\"TestControlDiv\" className={styles.container}>\n <TestControl context={this.props.context} themeVariant={this.props.themeVariant} />\n </div>\n }\n {controlVisibility.UploadFiles &&\n <div id=\"UploadFilesDiv\" className={styles.container}>\n <h3>Upload Files</h3>\n <EnhancedThemeProvider theme={this.props.themeVariant} context={this.props.context}>\n <Stack>\n <UploadFiles\n context={this.props.context}\n title=\"Upload Files\"\n onUploadFiles={(files) => {\n console.log(\"files\", files);\n }}\n themeVariant={this.props.themeVariant}\n />\n </Stack>\n </EnhancedThemeProvider>\n </div>\n }\n {controlVisibility.UserPicker &&\n <div id=\"UserPickerDiv\" className={styles.container}>\n <UserPicker\n context={this.props.context}\n secondaryTextPropertyName=\"mail\"\n theme={this.props.themeVariant}\n placeholder={\"Search User\"}\n // label={\n // <div>\n // <Person20Filled color={tokens.colorBrandForeground1} />\n // <Body1>Select User</Body1>\n // </div>\n // }\n // onSelectedUsers={onSelectedUsers}\n // onRemoveSelectedUser={onRemovedUser}\n />\n </div>\n }\n {\n controlVisibility.Calendar &&\n <div id=\"CalendarDiv\" className={styles.container}>\n <TestCalendarControl\n context={this.props.context} theme={this.props.themeVariant as any} hasTeamsContext={false} themeString={'default'} title={'Calendar'} appHostName={EAppHostName.SharePoint} />\n </div>\n\n }\n {\n controlVisibility.SPFilePicker &&\n <div id=\"SPFilePickerDiv\" className={styles.container}>\n <TestSPFilePickerControl context={this.props.context} />\n </div>\n\n }\n {controlVisibility.WorldMap &&\n <div id=\"WorldMapDiv\" className={styles.container}>\n <WorldMap description={'World Map Sample'} isDarkTheme={false} hasTeamsContext={false} title={'Microsoft Locations Worldwide'} />\n </div>\n }\n </div>\n </React.Suspense>\n );\n }\n\n private getRandomCollectionFieldData = (): Record<string, unknown>[] => {\n const result: Record<string, unknown>[] = [];\n for (let i = 1; i < 16; i++) {\n\n const sampleDate = new Date();\n sampleDate.setDate(sampleDate.getDate() + i);\n\n result.push({\n \"Field1\": `String${i}`,\n \"Field2\": i,\n \"Field3\": \"https://pnp.github.io/\",\n \"Field4\": true,\n \"Field5\": null as any,\n \"Field6\": { key: \"choice 1\", text: \"choice 1\" },\n \"Field7\": [{ key: \"choice 1\", text: \"choice 1\" }, { key: \"choice 2\", text: \"choice 2\" }],\n \"Field8\": sampleDate\n });\n }\n return result;\n }\n\n private onExpandCollapseTree(item: ITreeItem, isExpanded: boolean): void {\n console.log((isExpanded ? \"item expanded: \" : \"item collapsed: \") + item);\n }\n\n private onItemSelected(items: ITreeItem[]): void {\n console.log(\"items selected: \" + items.length);\n }\n\n private renderCustomTreeItem(item: ITreeItem): JSX.Element {\n return (\n <span>\n {\n item.iconProps &&\n <i className={\"ms-Icon ms-Icon--\" + item.iconProps.iconName} style={{ paddingRight: '4px' }} />\n }\n {item.label}\n </span>\n );\n }\n\n private _getPage(page: number): void {\n console.log('Page:', page);\n }\n\n // private _onFolderSelect = (folder: IFolder): void => {\n // console.log('selected folder', folder);\n //\n}\n"
|
|
21762
21681
|
}
|
|
21763
21682
|
}
|
|
21764
21683
|
}
|
|
21765
21684
|
}
|
|
21766
21685
|
],
|
|
21767
|
-
"ruleId": "
|
|
21768
|
-
"ruleIndex":
|
|
21686
|
+
"ruleId": "max-lines",
|
|
21687
|
+
"ruleIndex": 16,
|
|
21769
21688
|
"suppressions": []
|
|
21770
21689
|
},
|
|
21771
21690
|
{
|
|
21772
21691
|
"level": "warning",
|
|
21773
21692
|
"message": {
|
|
21774
|
-
"text": "
|
|
21693
|
+
"text": "Unexpected any. Specify a different type."
|
|
21775
21694
|
},
|
|
21776
21695
|
"locations": [
|
|
21777
21696
|
{
|
|
@@ -21781,25 +21700,25 @@
|
|
|
21781
21700
|
"index": 914
|
|
21782
21701
|
},
|
|
21783
21702
|
"region": {
|
|
21784
|
-
"startLine":
|
|
21785
|
-
"startColumn":
|
|
21786
|
-
"endLine":
|
|
21787
|
-
"endColumn":
|
|
21703
|
+
"startLine": 2114,
|
|
21704
|
+
"startColumn": 42,
|
|
21705
|
+
"endLine": 2114,
|
|
21706
|
+
"endColumn": 45,
|
|
21788
21707
|
"snippet": {
|
|
21789
|
-
"text": "
|
|
21708
|
+
"text": "any"
|
|
21790
21709
|
}
|
|
21791
21710
|
}
|
|
21792
21711
|
}
|
|
21793
21712
|
}
|
|
21794
21713
|
],
|
|
21795
|
-
"ruleId": "@typescript-eslint/explicit-
|
|
21796
|
-
"ruleIndex":
|
|
21714
|
+
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
21715
|
+
"ruleIndex": 0,
|
|
21797
21716
|
"suppressions": []
|
|
21798
21717
|
},
|
|
21799
21718
|
{
|
|
21800
21719
|
"level": "warning",
|
|
21801
21720
|
"message": {
|
|
21802
|
-
"text": "
|
|
21721
|
+
"text": "Unexpected any. Specify a different type."
|
|
21803
21722
|
},
|
|
21804
21723
|
"locations": [
|
|
21805
21724
|
{
|
|
@@ -21809,25 +21728,25 @@
|
|
|
21809
21728
|
"index": 914
|
|
21810
21729
|
},
|
|
21811
21730
|
"region": {
|
|
21812
|
-
"startLine":
|
|
21813
|
-
"startColumn":
|
|
21814
|
-
"endLine":
|
|
21815
|
-
"endColumn":
|
|
21731
|
+
"startLine": 2151,
|
|
21732
|
+
"startColumn": 42,
|
|
21733
|
+
"endLine": 2151,
|
|
21734
|
+
"endColumn": 45,
|
|
21816
21735
|
"snippet": {
|
|
21817
|
-
"text": "
|
|
21736
|
+
"text": "any"
|
|
21818
21737
|
}
|
|
21819
21738
|
}
|
|
21820
21739
|
}
|
|
21821
21740
|
}
|
|
21822
21741
|
],
|
|
21823
|
-
"ruleId": "@typescript-eslint/explicit-
|
|
21824
|
-
"ruleIndex":
|
|
21742
|
+
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
21743
|
+
"ruleIndex": 0,
|
|
21825
21744
|
"suppressions": []
|
|
21826
21745
|
},
|
|
21827
21746
|
{
|
|
21828
21747
|
"level": "warning",
|
|
21829
21748
|
"message": {
|
|
21830
|
-
"text": "
|
|
21749
|
+
"text": "Script URL is a form of eval."
|
|
21831
21750
|
},
|
|
21832
21751
|
"locations": [
|
|
21833
21752
|
{
|
|
@@ -21837,25 +21756,25 @@
|
|
|
21837
21756
|
"index": 914
|
|
21838
21757
|
},
|
|
21839
21758
|
"region": {
|
|
21840
|
-
"startLine":
|
|
21841
|
-
"startColumn":
|
|
21842
|
-
"endLine":
|
|
21843
|
-
"endColumn":
|
|
21759
|
+
"startLine": 2335,
|
|
21760
|
+
"startColumn": 26,
|
|
21761
|
+
"endLine": 2335,
|
|
21762
|
+
"endColumn": 40,
|
|
21844
21763
|
"snippet": {
|
|
21845
|
-
"text": "
|
|
21764
|
+
"text": "\"javascript:;\""
|
|
21846
21765
|
}
|
|
21847
21766
|
}
|
|
21848
21767
|
}
|
|
21849
21768
|
}
|
|
21850
21769
|
],
|
|
21851
|
-
"ruleId": "
|
|
21852
|
-
"ruleIndex":
|
|
21770
|
+
"ruleId": "no-script-url",
|
|
21771
|
+
"ruleIndex": 17,
|
|
21853
21772
|
"suppressions": []
|
|
21854
21773
|
},
|
|
21855
21774
|
{
|
|
21856
21775
|
"level": "warning",
|
|
21857
21776
|
"message": {
|
|
21858
|
-
"text": "
|
|
21777
|
+
"text": "Unexpected any. Specify a different type."
|
|
21859
21778
|
},
|
|
21860
21779
|
"locations": [
|
|
21861
21780
|
{
|
|
@@ -21865,19 +21784,19 @@
|
|
|
21865
21784
|
"index": 914
|
|
21866
21785
|
},
|
|
21867
21786
|
"region": {
|
|
21868
|
-
"startLine":
|
|
21869
|
-
"startColumn":
|
|
21870
|
-
"endLine":
|
|
21871
|
-
"endColumn":
|
|
21787
|
+
"startLine": 2379,
|
|
21788
|
+
"startColumn": 42,
|
|
21789
|
+
"endLine": 2379,
|
|
21790
|
+
"endColumn": 45,
|
|
21872
21791
|
"snippet": {
|
|
21873
|
-
"text": "
|
|
21792
|
+
"text": "any"
|
|
21874
21793
|
}
|
|
21875
21794
|
}
|
|
21876
21795
|
}
|
|
21877
21796
|
}
|
|
21878
21797
|
],
|
|
21879
|
-
"ruleId": "@typescript-eslint/explicit-
|
|
21880
|
-
"ruleIndex":
|
|
21798
|
+
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
21799
|
+
"ruleIndex": 0,
|
|
21881
21800
|
"suppressions": []
|
|
21882
21801
|
},
|
|
21883
21802
|
{
|
|
@@ -21893,10 +21812,10 @@
|
|
|
21893
21812
|
"index": 914
|
|
21894
21813
|
},
|
|
21895
21814
|
"region": {
|
|
21896
|
-
"startLine":
|
|
21897
|
-
"startColumn":
|
|
21898
|
-
"endLine":
|
|
21899
|
-
"endColumn":
|
|
21815
|
+
"startLine": 2486,
|
|
21816
|
+
"startColumn": 48,
|
|
21817
|
+
"endLine": 2486,
|
|
21818
|
+
"endColumn": 51,
|
|
21900
21819
|
"snippet": {
|
|
21901
21820
|
"text": "any"
|
|
21902
21821
|
}
|
|
@@ -21911,539 +21830,7 @@
|
|
|
21911
21830
|
{
|
|
21912
21831
|
"level": "warning",
|
|
21913
21832
|
"message": {
|
|
21914
|
-
"text": "
|
|
21915
|
-
},
|
|
21916
|
-
"locations": [
|
|
21917
|
-
{
|
|
21918
|
-
"physicalLocation": {
|
|
21919
|
-
"artifactLocation": {
|
|
21920
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
21921
|
-
"index": 914
|
|
21922
|
-
},
|
|
21923
|
-
"region": {
|
|
21924
|
-
"startLine": 933,
|
|
21925
|
-
"startColumn": 3,
|
|
21926
|
-
"endLine": 933,
|
|
21927
|
-
"endColumn": 37,
|
|
21928
|
-
"snippet": {
|
|
21929
|
-
"text": "private listItemPickerDataSelected"
|
|
21930
|
-
}
|
|
21931
|
-
}
|
|
21932
|
-
}
|
|
21933
|
-
}
|
|
21934
|
-
],
|
|
21935
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
21936
|
-
"ruleIndex": 9,
|
|
21937
|
-
"suppressions": []
|
|
21938
|
-
},
|
|
21939
|
-
{
|
|
21940
|
-
"level": "warning",
|
|
21941
|
-
"message": {
|
|
21942
|
-
"text": "Unexpected any. Specify a different type."
|
|
21943
|
-
},
|
|
21944
|
-
"locations": [
|
|
21945
|
-
{
|
|
21946
|
-
"physicalLocation": {
|
|
21947
|
-
"artifactLocation": {
|
|
21948
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
21949
|
-
"index": 914
|
|
21950
|
-
},
|
|
21951
|
-
"region": {
|
|
21952
|
-
"startLine": 933,
|
|
21953
|
-
"startColumn": 44,
|
|
21954
|
-
"endLine": 933,
|
|
21955
|
-
"endColumn": 47,
|
|
21956
|
-
"snippet": {
|
|
21957
|
-
"text": "any"
|
|
21958
|
-
}
|
|
21959
|
-
}
|
|
21960
|
-
}
|
|
21961
|
-
}
|
|
21962
|
-
],
|
|
21963
|
-
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
21964
|
-
"ruleIndex": 0,
|
|
21965
|
-
"suppressions": []
|
|
21966
|
-
},
|
|
21967
|
-
{
|
|
21968
|
-
"level": "warning",
|
|
21969
|
-
"message": {
|
|
21970
|
-
"text": "Missing return type on function."
|
|
21971
|
-
},
|
|
21972
|
-
"locations": [
|
|
21973
|
-
{
|
|
21974
|
-
"physicalLocation": {
|
|
21975
|
-
"artifactLocation": {
|
|
21976
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
21977
|
-
"index": 914
|
|
21978
|
-
},
|
|
21979
|
-
"region": {
|
|
21980
|
-
"startLine": 937,
|
|
21981
|
-
"startColumn": 3,
|
|
21982
|
-
"endLine": 937,
|
|
21983
|
-
"endColumn": 25,
|
|
21984
|
-
"snippet": {
|
|
21985
|
-
"text": "private _startProgress"
|
|
21986
|
-
}
|
|
21987
|
-
}
|
|
21988
|
-
}
|
|
21989
|
-
}
|
|
21990
|
-
],
|
|
21991
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
21992
|
-
"ruleIndex": 9,
|
|
21993
|
-
"suppressions": []
|
|
21994
|
-
},
|
|
21995
|
-
{
|
|
21996
|
-
"level": "warning",
|
|
21997
|
-
"message": {
|
|
21998
|
-
"text": "Missing return type on function."
|
|
21999
|
-
},
|
|
22000
|
-
"locations": [
|
|
22001
|
-
{
|
|
22002
|
-
"physicalLocation": {
|
|
22003
|
-
"artifactLocation": {
|
|
22004
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22005
|
-
"index": 914
|
|
22006
|
-
},
|
|
22007
|
-
"region": {
|
|
22008
|
-
"startLine": 998,
|
|
22009
|
-
"startColumn": 3,
|
|
22010
|
-
"endLine": 998,
|
|
22011
|
-
"endColumn": 37,
|
|
22012
|
-
"snippet": {
|
|
22013
|
-
"text": "private _onFilePickerSave = async "
|
|
22014
|
-
}
|
|
22015
|
-
}
|
|
22016
|
-
}
|
|
22017
|
-
}
|
|
22018
|
-
],
|
|
22019
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
22020
|
-
"ruleIndex": 9,
|
|
22021
|
-
"suppressions": []
|
|
22022
|
-
},
|
|
22023
|
-
{
|
|
22024
|
-
"level": "warning",
|
|
22025
|
-
"message": {
|
|
22026
|
-
"text": "Missing return type on function."
|
|
22027
|
-
},
|
|
22028
|
-
"locations": [
|
|
22029
|
-
{
|
|
22030
|
-
"physicalLocation": {
|
|
22031
|
-
"artifactLocation": {
|
|
22032
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22033
|
-
"index": 914
|
|
22034
|
-
},
|
|
22035
|
-
"region": {
|
|
22036
|
-
"startLine": 1011,
|
|
22037
|
-
"startColumn": 3,
|
|
22038
|
-
"endLine": 1011,
|
|
22039
|
-
"endColumn": 44,
|
|
22040
|
-
"snippet": {
|
|
22041
|
-
"text": "private onToolbarSelectedFiltersChange = "
|
|
22042
|
-
}
|
|
22043
|
-
}
|
|
22044
|
-
}
|
|
22045
|
-
}
|
|
22046
|
-
],
|
|
22047
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
22048
|
-
"ruleIndex": 9,
|
|
22049
|
-
"suppressions": []
|
|
22050
|
-
},
|
|
22051
|
-
{
|
|
22052
|
-
"level": "warning",
|
|
22053
|
-
"message": {
|
|
22054
|
-
"text": "Missing return type on function."
|
|
22055
|
-
},
|
|
22056
|
-
"locations": [
|
|
22057
|
-
{
|
|
22058
|
-
"physicalLocation": {
|
|
22059
|
-
"artifactLocation": {
|
|
22060
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22061
|
-
"index": 914
|
|
22062
|
-
},
|
|
22063
|
-
"region": {
|
|
22064
|
-
"startLine": 1017,
|
|
22065
|
-
"startColumn": 3,
|
|
22066
|
-
"endLine": 1017,
|
|
22067
|
-
"endColumn": 33,
|
|
22068
|
-
"snippet": {
|
|
22069
|
-
"text": "private toggleToolbarFilter = "
|
|
22070
|
-
}
|
|
22071
|
-
}
|
|
22072
|
-
}
|
|
22073
|
-
}
|
|
22074
|
-
],
|
|
22075
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
22076
|
-
"ruleIndex": 9,
|
|
22077
|
-
"suppressions": []
|
|
22078
|
-
},
|
|
22079
|
-
{
|
|
22080
|
-
"level": "warning",
|
|
22081
|
-
"message": {
|
|
22082
|
-
"text": "Missing return type on function."
|
|
22083
|
-
},
|
|
22084
|
-
"locations": [
|
|
22085
|
-
{
|
|
22086
|
-
"physicalLocation": {
|
|
22087
|
-
"artifactLocation": {
|
|
22088
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22089
|
-
"index": 914
|
|
22090
|
-
},
|
|
22091
|
-
"region": {
|
|
22092
|
-
"startLine": 1037,
|
|
22093
|
-
"startColumn": 3,
|
|
22094
|
-
"endLine": 1037,
|
|
22095
|
-
"endColumn": 23,
|
|
22096
|
-
"snippet": {
|
|
22097
|
-
"text": "private addFilter = "
|
|
22098
|
-
}
|
|
22099
|
-
}
|
|
22100
|
-
}
|
|
22101
|
-
}
|
|
22102
|
-
],
|
|
22103
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
22104
|
-
"ruleIndex": 9,
|
|
22105
|
-
"suppressions": []
|
|
22106
|
-
},
|
|
22107
|
-
{
|
|
22108
|
-
"level": "warning",
|
|
22109
|
-
"message": {
|
|
22110
|
-
"text": "Missing return type on function."
|
|
22111
|
-
},
|
|
22112
|
-
"locations": [
|
|
22113
|
-
{
|
|
22114
|
-
"physicalLocation": {
|
|
22115
|
-
"artifactLocation": {
|
|
22116
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22117
|
-
"index": 914
|
|
22118
|
-
},
|
|
22119
|
-
"region": {
|
|
22120
|
-
"startLine": 1045,
|
|
22121
|
-
"startColumn": 3,
|
|
22122
|
-
"endLine": 1045,
|
|
22123
|
-
"endColumn": 28,
|
|
22124
|
-
"snippet": {
|
|
22125
|
-
"text": "private onClearFilters = "
|
|
22126
|
-
}
|
|
22127
|
-
}
|
|
22128
|
-
}
|
|
22129
|
-
}
|
|
22130
|
-
],
|
|
22131
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
22132
|
-
"ruleIndex": 9,
|
|
22133
|
-
"suppressions": []
|
|
22134
|
-
},
|
|
22135
|
-
{
|
|
22136
|
-
"level": "warning",
|
|
22137
|
-
"message": {
|
|
22138
|
-
"text": "Missing return type on function."
|
|
22139
|
-
},
|
|
22140
|
-
"locations": [
|
|
22141
|
-
{
|
|
22142
|
-
"physicalLocation": {
|
|
22143
|
-
"artifactLocation": {
|
|
22144
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22145
|
-
"index": 914
|
|
22146
|
-
},
|
|
22147
|
-
"region": {
|
|
22148
|
-
"startLine": 1050,
|
|
22149
|
-
"startColumn": 3,
|
|
22150
|
-
"endLine": 1050,
|
|
22151
|
-
"endColumn": 28,
|
|
22152
|
-
"snippet": {
|
|
22153
|
-
"text": "private onRemoveFilter = "
|
|
22154
|
-
}
|
|
22155
|
-
}
|
|
22156
|
-
}
|
|
22157
|
-
}
|
|
22158
|
-
],
|
|
22159
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
22160
|
-
"ruleIndex": 9,
|
|
22161
|
-
"suppressions": []
|
|
22162
|
-
},
|
|
22163
|
-
{
|
|
22164
|
-
"level": "warning",
|
|
22165
|
-
"message": {
|
|
22166
|
-
"text": "Unexpected any. Specify a different type."
|
|
22167
|
-
},
|
|
22168
|
-
"locations": [
|
|
22169
|
-
{
|
|
22170
|
-
"physicalLocation": {
|
|
22171
|
-
"artifactLocation": {
|
|
22172
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22173
|
-
"index": 914
|
|
22174
|
-
},
|
|
22175
|
-
"region": {
|
|
22176
|
-
"startLine": 1067,
|
|
22177
|
-
"startColumn": 38,
|
|
22178
|
-
"endLine": 1067,
|
|
22179
|
-
"endColumn": 41,
|
|
22180
|
-
"snippet": {
|
|
22181
|
-
"text": "any"
|
|
22182
|
-
}
|
|
22183
|
-
}
|
|
22184
|
-
}
|
|
22185
|
-
}
|
|
22186
|
-
],
|
|
22187
|
-
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
22188
|
-
"ruleIndex": 0,
|
|
22189
|
-
"suppressions": []
|
|
22190
|
-
},
|
|
22191
|
-
{
|
|
22192
|
-
"level": "warning",
|
|
22193
|
-
"message": {
|
|
22194
|
-
"text": "Unexpected any. Specify a different type."
|
|
22195
|
-
},
|
|
22196
|
-
"locations": [
|
|
22197
|
-
{
|
|
22198
|
-
"physicalLocation": {
|
|
22199
|
-
"artifactLocation": {
|
|
22200
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22201
|
-
"index": 914
|
|
22202
|
-
},
|
|
22203
|
-
"region": {
|
|
22204
|
-
"startLine": 1163,
|
|
22205
|
-
"startColumn": 24,
|
|
22206
|
-
"endLine": 1163,
|
|
22207
|
-
"endColumn": 27,
|
|
22208
|
-
"snippet": {
|
|
22209
|
-
"text": "any"
|
|
22210
|
-
}
|
|
22211
|
-
}
|
|
22212
|
-
}
|
|
22213
|
-
}
|
|
22214
|
-
],
|
|
22215
|
-
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
22216
|
-
"ruleIndex": 0,
|
|
22217
|
-
"suppressions": []
|
|
22218
|
-
},
|
|
22219
|
-
{
|
|
22220
|
-
"level": "warning",
|
|
22221
|
-
"message": {
|
|
22222
|
-
"text": "Unexpected any. Specify a different type."
|
|
22223
|
-
},
|
|
22224
|
-
"locations": [
|
|
22225
|
-
{
|
|
22226
|
-
"physicalLocation": {
|
|
22227
|
-
"artifactLocation": {
|
|
22228
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22229
|
-
"index": 914
|
|
22230
|
-
},
|
|
22231
|
-
"region": {
|
|
22232
|
-
"startLine": 1188,
|
|
22233
|
-
"startColumn": 34,
|
|
22234
|
-
"endLine": 1188,
|
|
22235
|
-
"endColumn": 37,
|
|
22236
|
-
"snippet": {
|
|
22237
|
-
"text": "any"
|
|
22238
|
-
}
|
|
22239
|
-
}
|
|
22240
|
-
}
|
|
22241
|
-
}
|
|
22242
|
-
],
|
|
22243
|
-
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
22244
|
-
"ruleIndex": 0,
|
|
22245
|
-
"suppressions": []
|
|
22246
|
-
},
|
|
22247
|
-
{
|
|
22248
|
-
"level": "warning",
|
|
22249
|
-
"message": {
|
|
22250
|
-
"text": "Unexpected any. Specify a different type."
|
|
22251
|
-
},
|
|
22252
|
-
"locations": [
|
|
22253
|
-
{
|
|
22254
|
-
"physicalLocation": {
|
|
22255
|
-
"artifactLocation": {
|
|
22256
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22257
|
-
"index": 914
|
|
22258
|
-
},
|
|
22259
|
-
"region": {
|
|
22260
|
-
"startLine": 1713,
|
|
22261
|
-
"startColumn": 51,
|
|
22262
|
-
"endLine": 1713,
|
|
22263
|
-
"endColumn": 54,
|
|
22264
|
-
"snippet": {
|
|
22265
|
-
"text": "any"
|
|
22266
|
-
}
|
|
22267
|
-
}
|
|
22268
|
-
}
|
|
22269
|
-
}
|
|
22270
|
-
],
|
|
22271
|
-
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
22272
|
-
"ruleIndex": 0,
|
|
22273
|
-
"suppressions": []
|
|
22274
|
-
},
|
|
22275
|
-
{
|
|
22276
|
-
"level": "warning",
|
|
22277
|
-
"message": {
|
|
22278
|
-
"text": "File has too many lines (3258). Maximum allowed is 2000."
|
|
22279
|
-
},
|
|
22280
|
-
"locations": [
|
|
22281
|
-
{
|
|
22282
|
-
"physicalLocation": {
|
|
22283
|
-
"artifactLocation": {
|
|
22284
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22285
|
-
"index": 914
|
|
22286
|
-
},
|
|
22287
|
-
"region": {
|
|
22288
|
-
"startLine": 2001,
|
|
22289
|
-
"startColumn": 1,
|
|
22290
|
-
"endLine": 3259,
|
|
22291
|
-
"endColumn": 1,
|
|
22292
|
-
"snippet": {
|
|
22293
|
-
"text": " </div>\n }\n {controlVisibility.ListItemPicker &&\n <div id=\"ListItemPickerDiv\" className={styles.container}>\n <div className=\"ms-font-m\">List Item picker list data tester:\n\n <ListItemPicker listId={'b1416fca-dc77-4198-a082-62a7657dcfa9'}\n columnInternalName=\"DateAndTime\"\n keyColumnInternalName=\"Id\"\n // filter={\"Title eq 'SPFx'\"}\n orderBy={'Title desc'}\n itemLimit={5}\n context={this.props.context}\n placeholder={'Select list items'}\n onSelectedItem={this.listItemPickerDataSelected} />\n\n </div>\n </div>\n }\n {controlVisibility.ListItemComments &&\n <div id=\"ListItemCommentsDiv\" className={styles.container}>\n <div className=\"ms-font-m\">List Item Comments Tester\n <ListItemComments webUrl='https://contoso.sharepoint.com/sites/ThePerspective'\n listId='6f151a33-a7af-4fae-b8c4-f2f04cbc690f'\n itemId={\"1\"}\n serviceScope={this.props.context.serviceScope}\n numberCommentsPerPage={10}\n label=\"ListItem Comments\"\n />\n </div>\n </div>\n }\n {controlVisibility.ViewPicker &&\n <div id=\"ViewPickerDiv\" className={styles.container}>\n <div className=\"ms-font-m\">View picker tester:\n <ViewPicker context={this.props.context}\n label=\"Select view(s)\"\n listId={\"9f3908cd-1e88-4ab3-ac42-08efbbd64ec9\"}\n placeholder={'Select list view(s)'}\n orderBy={1}\n multiSelect={true}\n onSelectionChanged={this.onViewPickerChange} />\n </div>\n </div>\n }\n {controlVisibility.FieldPicker &&\n <div id=\"FieldPickerDiv\" className={styles.container}>\n <div className=\"ms-font-m\">Field picker tester:\n <FieldPicker\n context={this.props.context}\n label={'Select a field'}\n listId={this.state.selectedList}\n onSelectionChanged={(fields) => {\n console.log(fields);\n }}\n />\n </div>\n </div>\n }\n {controlVisibility.IconPicker &&\n <div id=\"IconPickerDiv\" className={styles.container}>\n <div>Icon Picker</div>\n <div>\n <IconPicker\n renderOption=\"panel\"\n onSave={(value) => { console.log(value); }}\n currentIcon={'Warning'}\n buttonLabel=\"Icon Picker\" />\n </div>\n <IconPicker buttonLabel={'Icon'}\n onChange={(iconName: string) => { console.log(iconName); }}\n onCancel={() => { console.log(\"Panel closed\"); }}\n onSave={(iconName: string) => { console.log(iconName); }} />\n </div>\n }\n {controlVisibility.ComboBoxListItemPicker &&\n <div id=\"ComboBoxListItemPickerDiv\" className={styles.container}>\n <div className=\"ms-font-m\">ComboBoxListItemPicker:\n\n <ComboBoxListItemPicker listId={this.state.comboBoxListItemPickerListId}\n columnInternalName='Title'\n keyColumnInternalName='Id'\n orderBy='Title desc'\n multiSelect={true}\n onSelectedItem={(data) => {\n console.log(`Item(s):`, data);\n }}\n defaultSelectedItems={this.state.comboBoxListItemPickerIds}\n webUrl={this.props.context.pageContext.web.absoluteUrl}\n spHttpClient={this.props.context.spHttpClient} />\n\n <PrimaryButton text=\"Change List\" onClick={() => {\n this.setState({\n comboBoxListItemPickerListId: '71210430-8436-4962-a14d-5525475abd6b'\n });\n }} />\n <PrimaryButton text=\"Change default items\" onClick={() => {\n this.setState({\n comboBoxListItemPickerIds: [{ Id: 2, Title: '222' }]\n });\n }} />\n\n </div>\n </div>\n }\n {controlVisibility.IFrameDialog &&\n <div id=\"IFrameDialogDiv\" className={styles.container}>\n <div className=\"ms-font-m\">iframe dialog tester:\n <PrimaryButton\n text=\"Open iframe Dialog\"\n onClick={() => { this.setState({ iFrameDialogOpened: true }); }} />\n <IFrameDialog\n url={iframeUrl}\n iframeOnLoad={(iframe: any) => { console.log('iframe loaded'); }}\n hidden={!this.state.iFrameDialogOpened}\n onDismiss={() => { this.setState({ iFrameDialogOpened: false }); }}\n modalProps={{\n isBlocking: true,\n styles: {\n root: {\n backgroundColor: '#00ff00'\n },\n main: {\n backgroundColor: '#ff0000'\n }\n }\n }}\n dialogContentProps={{\n type: DialogType.close,\n showCloseButton: true\n }}\n width={'570px'}\n height={'315px'} />\n </div>\n </div>\n }\n {controlVisibility.IFramePanel &&\n <div id=\"IFramePanelDiv\" className={styles.container}>\n <div className=\"ms-font-m\">iframe Panel tester:\n <PrimaryButton\n text=\"Open iframe Panel\"\n onClick={() => { this.setState({ iFramePanelOpened: true }); }} />\n <IFramePanel\n url={iframeUrl}\n type={PanelType.medium}\n // height=\"300px\"\n headerText=\"iframe panel title\"\n closeButtonAriaLabel=\"Close\"\n isOpen={this.state.iFramePanelOpened}\n onDismiss={() => { this.setState({ iFramePanelOpened: false }); }}\n iframeOnLoad={(iframe: any) => { console.log('iframe loaded'); }}\n />\n </div>\n </div>\n }\n {controlVisibility.ImagePicker &&\n <div id=\"ImagePickerDiv\" className={styles.container}>\n <ImagePicker\n context={this.props.context}\n onFileSelected={(file) => { console.log(file); this.setState({ selectedUrlImagePicker: file.fileAbsoluteUrl }); }}\n onDeleteFile={() => { console.log('file deleted'); }}\n selectedFileUrl={this.state.selectedUrlImagePicker}\n />\n </div>\n }\n {controlVisibility.FolderPicker &&\n <div id=\"FolderPickerDiv\" className={styles.container}>\n <FolderPicker context={this.props.context}\n rootFolder={{\n Name: 'Documents',\n ServerRelativeUrl: `${this.props.context.pageContext.web.serverRelativeUrl === '/' ? '' : this.props.context.pageContext.web.serverRelativeUrl}/Shared Documents`\n }}\n onSelect={this._onFolderSelect}\n label='Folder Picker'\n required={true}\n canCreateFolders={true}\n />\n </div>\n }\n <div id=\"FilterBarDiv\" className={styles.container} hidden={!controlVisibility.FilterBar}>\n <FilterBar items={this.state.filters} inlineItemCount={3} onClearFilters={this.onClearFilters} onRemoveFilter={this.onRemoveFilter} />\n <button onClick={this.addFilter}>Add new filter</button>\n </div>\n {controlVisibility.Carousel &&\n\n <div id=\"CarouselDiv\" className={styles.container}>\n <div>\n <h3>Carousel with fixed elements:</h3>\n <Carousel\n buttonsLocation={CarouselButtonsLocation.top}\n buttonsDisplay={CarouselButtonsDisplay.block}\n\n contentContainerStyles={styles.carouselContent}\n containerButtonsStyles={styles.carouselButtonsContainer}\n\n isInfinite={true}\n\n element={this.carouselElements}\n onMovePrevClicked={(index: number) => { console.log(`Prev button clicked: ${index}`); }}\n />\n </div>\n <div>\n <h3>Carousel with CarouselImage elements:</h3>\n <Carousel\n buttonsLocation={CarouselButtonsLocation.center}\n buttonsDisplay={CarouselButtonsDisplay.buttonsOnly}\n\n contentContainerStyles={styles.carouselImageContent}\n //containerButtonsStyles={styles.carouselButtonsContainer}\n\n isInfinite={true}\n indicatorShape={CarouselIndicatorShape.circle}\n indicatorsDisplay={CarouselIndicatorsDisplay.block}\n pauseOnHover={true}\n\n element={[\n {\n imageSrc: 'https://images.unsplash.com/photo-1588614959060-4d144f28b207?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=3078&q=80',\n title: 'Colosseum',\n description: 'This is Colosseum',\n url: 'https://en.wikipedia.org/wiki/Colosseum',\n showDetailsOnHover: true,\n imageFit: ImageFit.cover\n },\n {\n imageSrc: 'https://www.telegraph.co.uk/content/dam/science/2018/06/20/stonehenge-2326750_1920_trans%2B%2BZgEkZX3M936N5BQK4Va8RWtT0gK_6EfZT336f62EI5U.jpg',\n title: 'Stonehenge',\n description: 'This is Stonehendle',\n url: 'https://en.wikipedia.org/wiki/Stonehenge',\n showDetailsOnHover: true,\n imageFit: ImageFit.cover\n },\n {\n imageSrc: 'https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/All_Gizah_Pyramids.jpg/2560px-All_Gizah_Pyramids.jpg',\n title: 'Pyramids of Giza',\n description: 'This are Pyramids of Giza (Egypt)',\n url: 'https://en.wikipedia.org/wiki/Egyptian_pyramids',\n showDetailsOnHover: true,\n imageFit: ImageFit.cover\n }\n ]}\n onMoveNextClicked={(index: number) => { console.log(`Next button clicked: ${index}`); }}\n onMovePrevClicked={(index: number) => { console.log(`Prev button clicked: ${index}`); }}\n rootStyles={mergeStyles({\n backgroundColor: '#C3C3C3'\n })}\n />\n </div>\n <div>\n <h3>Carousel with triggerPageElement:</h3>\n <Carousel\n buttonsLocation={CarouselButtonsLocation.bottom}\n buttonsDisplay={CarouselButtonsDisplay.buttonsOnly}\n\n contentContainerStyles={styles.carouselContent}\n\n canMoveNext={this.state.canMoveNext}\n canMovePrev={this.state.canMovePrev}\n triggerPageEvent={this.triggerNextElement}\n element={this.state.currentCarouselElement}\n />\n </div>\n <div>\n <h3>Carousel with minimal configuration:</h3>\n <Carousel\n element={this.carouselElements}\n contentHeight={200}\n />\n </div>\n </div>\n }\n {controlVisibility.SiteBreadcrumb &&\n <div id=\"SiteBreadcrumbDiv\" className={styles.container}>\n <div className={styles.siteBreadcrumb}>\n <SiteBreadcrumb context={this.props.context} />\n </div>\n </div>\n }\n {controlVisibility.FilePicker &&\n <div id=\"FilePickerDiv\" className={styles.container}>\n <div>\n <h3>File Picker</h3>\n <TextField\n label=\"Default SiteFileTab Folder\"\n onChange={debounce((ev, newVal) => { this.setState({ filePickerDefaultFolderAbsolutePath: newVal }); }, 500)}\n styles={{ root: { marginBottom: 10 } }}\n />\n <FilePicker\n bingAPIKey=\"<BING API KEY>\"\n //webAbsoluteUrl=\"https://023xn.sharepoint.com/sites/test1\"\n //defaultFolderAbsolutePath={\"https://aterentiev.sharepoint.com/sites/SPFxinTeamsDemo/Shared%20Documents/General\"}\n //accepts={[\".gif\", \".jpg\", \".jpeg\", \".bmp\", \".dib\", \".tif\", \".tiff\", \".ico\", \".png\", \".jxr\", \".svg\"]}\n buttonLabel=\"Add File\"\n buttonIconProps={{ iconName: 'Add', styles: { root: { fontSize: 42 } } }}\n onSave={this._onFilePickerSave}\n onChange={(filePickerResult: IFilePickerResult[]) => { console.log(filePickerResult); }}\n context={this.props.context}\n hideRecentTab={false}\n includePageLibraries={true}\n checkIfFileExists={false}\n />\n {\n this.state.filePickerResult &&\n <div>\n <div>\n FileName: {this.state.filePickerResult[0].fileName}\n </div>\n <div>\n File size: {GeneralHelper.formatBytes(this.state.filePickerResult[0].fileSize, 2)}\n </div>\n </div>\n }\n </div>\n\n <div>\n <h3>File Picker with target folder browser</h3>\n <FilePicker\n bingAPIKey=\"<BING API KEY>\"\n //accepts={[\".gif\", \".jpg\", \".jpeg\", \".bmp\", \".dib\", \".tif\", \".tiff\", \".ico\", \".png\", \".jxr\", \".svg\"]}\n buttonLabel=\"Upload image\"\n buttonIcon=\"FileImage\"\n onSave={this._onFilePickerSave}\n onChange={(filePickerResult: IFilePickerResult[]) => { console.log(filePickerResult); }}\n context={this.props.context}\n hideRecentTab={false}\n renderCustomUploadTabContent={() => (\n <FolderExplorer context={this.props.context}\n rootFolder={this.rootFolder}\n defaultFolder={this.rootFolder}\n onSelect={this._onFolderSelect}\n canCreateFolders={true}\n />)}\n />\n </div>\n <p><a href=\"javascript:;\" onClick={this.deleteItem}>Deletes second item</a></p>\n </div>\n }\n {controlVisibility.Progress &&\n <div id=\"ProgressDiv\" className={styles.container}>\n <Progress title={'Progress Test'}\n showOverallProgress={true}\n showIndeterminateOverallProgress={false}\n hideNotStartedActions={false}\n actions={this.state.progressActions}\n currentActionIndex={this.state.currentProgressActionIndex}\n longRunningText={'This operation takes longer than expected'}\n longRunningTextDisplayDelay={7000}\n height={'350px'}\n inProgressIconName={'ChromeBackMirrored'} />\n <PrimaryButton text={'Start Progress'} onClick={this._startProgress} />\n </div>\n }\n {controlVisibility.ProgressStepsIndicator &&\n <div id=\"ProgressStepsIndicatorDiv\" className={styles.container}>\n <ProgressStepsIndicator steps={this.progressSteps} currentStep={0} themeVariant={this.props.themeVariant} />\n </div>\n }\n {controlVisibility.Toast &&\n <div id=\"ToastDiv\" className={styles.container}>\n <h3>Toast</h3>\n <Toast\n title=\"Decision saved\"\n body=\"This native Fluent UI toast will dismiss after five seconds.\"\n subtitle=\"Controls Test\"\n intent=\"success\"\n dismissible\n autoDismiss\n duration={5}\n durationUnit=\"seconds\"\n />\n </div>\n }\n {controlVisibility.GridLayout &&\n <div id=\"GridLayoutDiv\" className={styles.container}>\n <div className=\"ms-font-l\">Grid Layout</div>\n <GridLayout\n ariaLabel={\"List of content, use right and left arrow keys to navigate, arrow down to access details.\"}\n items={sampleGridData}\n onRenderGridItem={(item: any, finalSize: ISize, isCompact: boolean) => this._onRenderGridItem(item, finalSize, isCompact)}\n itemMinWidth={250}\n itemMaxWidth={600}\n itemPadding={60}\n //compactThreshold={220}\n //rowsPerPage={1}\n />\n </div>\n }\n {controlVisibility.HoverReactionsBar &&\n <div ref={this.divRefAddReaction} id=\"HoverReactionsBarDiv\" className={styles.container}>\n <PrimaryButton text=\"Open HoverReactionsBar\" onClick={() => { this.setState({ isOpenHoverReactionBar: true }); }} />\n <HoverReactionsBar\n isOpen={this.state.isOpenHoverReactionBar}\n onSelect={(emoji, emojiInfo) => { console.log(emoji); }}\n onDismiss={(): void => {\n this.setState({ isOpenHoverReactionBar: false });\n }}\n target={this.divRefAddReaction.current as HTMLDivElement} />\n </div>\n }\n {controlVisibility.FolderExplorer &&\n <div id=\"FolderExplorerDiv\" className={styles.container}>\n <FolderExplorer\n context={this.props.context}\n rootFolder={{\n Name: 'Documents',\n ServerRelativeUrl: `${this.props.context.pageContext.web.serverRelativeUrl === '/' ? '' : this.props.context.pageContext.web.serverRelativeUrl}/Shared Documents`\n }}\n defaultFolder={{\n Name: 'Documents',\n ServerRelativeUrl: `${this.props.context.pageContext.web.serverRelativeUrl === '/' ? '' : this.props.context.pageContext.web.serverRelativeUrl}/Shared Documents`\n }}\n onSelect={this._onFolderSelect}\n canCreateFolders={true}\n orderby='Name' //'ListItemAllFields/Created'\n orderAscending={true}\n showFiles={true}\n onFileClick={this._onFileClick}\n />\n </div>\n }\n {controlVisibility.TreeView &&\n <div id=\"TreeViewDiv\" className={styles.container}>\n <h3>Tree View</h3>\n <TreeView items={this.treeitems}\n defaultExpanded={false}\n selectionMode={TreeViewSelectionMode.Multiple}\n showCheckboxes={true}\n treeItemActionsDisplayMode={TreeItemActionsDisplayMode.ContextualMenu}\n defaultSelectedKeys={this.state.treeViewSelectedKeys}\n onExpandCollapse={this.onExpandCollapseTree}\n onSelect={this.onItemSelected}\n defaultExpandedChildren={true}\n theme={this.props.themeVariant}\n //expandToSelected={true}\n // onRenderItem={this.renderCustomTreeItem}\n />\n <PrimaryButton onClick={() => { this.setState({ treeViewSelectedKeys: [] }); }}>Clear selection</PrimaryButton>\n </div>\n }\n {controlVisibility.Pagination &&\n <div id=\"PaginationDiv\" className={styles.container}>\n <Pagination\n currentPage={3}\n onChange={(page) => (this._getPage(page))}\n totalPages={this.props.paginationTotalPages || 13}\n //limiter={3}\n // hideFirstPageJump\n //hideLastPageJump\n //limiterIcon={\"NumberedListText\"}\n />\n </div>\n }\n {controlVisibility.FieldCollectionData &&\n <div id=\"FieldCollectionDataDiv\" className={styles.container}>\n <FieldCollectionData\n key={\"FieldCollectionData\"}\n label={\"Fields Collection\"}\n itemsPerPage={3}\n manageBtnLabel={\"Manage\"}\n onChanged={(value) => { console.log(value); }}\n panelHeader={\"Manage values\"}\n enableSorting={true}\n panelProps={{ type: PanelType.custom, customWidth: \"98vw\" }}\n fields={[\n { id: \"Field1\", title: \"String field\", type: CustomCollectionFieldType.string, required: true },\n { id: \"Field2\", title: \"Number field\", type: CustomCollectionFieldType.number },\n { id: \"Field3\", title: \"URL field\", type: CustomCollectionFieldType.url },\n { id: \"Field4\", title: \"Boolean field\", type: CustomCollectionFieldType.boolean },\n {\n id: \"Field5\", title: \"People picker\", type: CustomCollectionFieldType.peoplepicker, required: true,\n minimumUsers: 2, minimumUsersMessage: \"2 Users is the minimum\", maximumUsers: 3,\n },\n {\n id: \"Field6\", title: \"Combo Single\", type: CustomCollectionFieldType.combobox, required: true,\n multiSelect: false, options: [{ key: \"choice 1\", text: \"choice 1\" }, { key: \"choice 2\", text: \"choice 2\" }, { key: \"choice 3\", text: \"choice 3\" }]\n },\n {\n id: \"Field7\", title: \"Combo Multi\", type: CustomCollectionFieldType.combobox,\n allowFreeform: true, multiSelect: true, options: [{ key: \"choice 1\", text: \"choice 1\" }, { key: \"choice 2\", text: \"choice 2\" }, { key: \"choice 3\", text: \"choice 3\" }]\n },\n { id: \"Field8\", title: \"Date field\", type: CustomCollectionFieldType.date, placeholder: \"Select a date\" }\n ]}\n value={this.getRandomCollectionFieldData()}\n\n // value = {null}\n context={this.props.context as any} //error when this is omitted and people picker is used\n usePanel={true}\n noDataMessage=\"No data is selected\" //overrides the default message\n />\n </div>\n }\n {controlVisibility.ContentTypePicker &&\n <ContentTypePicker\n context={this.props.context}\n // group=\"Content Feedback\"\n // includeHidden={false}\n // includeReadOnly={false}\n // label=\"Select your content type\"\n // multiSelect={false}\n // orderBy={ContentTypesOrderBy.Name}\n // listId=\"00000000-0000-0000-0000-000000000000\"\n // onSelectionChanged={this.onContentTypePickerChanged}\n // showBlankOption={true}\n />\n }\n {controlVisibility.Dashboard &&\n <div id=\"DashboardDiv\" className={styles.container}>\n <Dashboard\n widgets={[{\n title: \"Card 1\",\n desc: \"Last updated Monday, April 4 at 11:15 AM (PT)\",\n widgetActionGroup: calloutItemsExample,\n size: WidgetSize.Quadruple,\n body: [\n {\n id: \"t1\",\n title: \"Tab 1\",\n content: (\n <Flex\n vAlign=\"center\"\n hAlign=\"center\"\n styles={{ height: \"100%\", border: \"1px dashed rgb(179, 176, 173)\" }}\n >\n <NorthstarText size=\"large\" weight=\"semibold\">\n Content #1\n </NorthstarText>\n </Flex>\n ),\n },\n {\n id: \"t2\",\n title: \"Tab 2\",\n content: (\n <Flex\n vAlign=\"center\"\n hAlign=\"center\"\n styles={{ height: \"100%\", border: \"1px dashed rgb(179, 176, 173)\" }}\n >\n <NorthstarText size=\"large\" weight=\"semibold\">\n Content #2\n </NorthstarText>\n </Flex>\n ),\n },\n {\n id: \"t3\",\n title: \"Tab 3\",\n content: (\n <Flex\n vAlign=\"center\"\n hAlign=\"center\"\n styles={{ height: \"100%\", border: \"1px dashed rgb(179, 176, 173)\" }}\n >\n <NorthstarText size=\"large\" weight=\"semibold\">\n Content #3\n </NorthstarText>\n </Flex>\n ),\n },\n ],\n link: linkExample,\n },\n {\n title: \"Card 2\",\n size: WidgetSize.Single,\n link: customizedLinkExample,\n rowSpan: 2\n },\n {\n title: \"Card 3\",\n size: WidgetSize.Double,\n link: linkExample,\n },\n {\n title: \"Card 4\",\n size: WidgetSize.Single,\n link: customizedLinkExample,\n },\n {\n title: \"Card 5\",\n size: WidgetSize.Single,\n link: linkExample,\n },\n {\n title: \"Card 6\",\n size: WidgetSize.Single,\n link: linkExample,\n }]} />\n </div>\n }\n {controlVisibility.Toolbar &&\n <div id=\"ToolbarDiv\" className={styles.container}>\n <div>\n <h3>Uncontrolled toolbar</h3>\n <Toolbar actionGroups={{\n 'group1': {\n 'action1': {\n title: 'Edit',\n iconName: 'Edit',\n onClick: () => { console.log('Edit action click'); }\n },\n 'action2': {\n title: 'New',\n iconName: 'Add',\n onClick: () => { console.log('New action click'); }\n }\n }\n }}\n filters={toolbarFilters}\n onSelectedFiltersChange={this.onToolbarSelectedFiltersChange}\n />\n </div>\n <div>\n <h3>Controlled toolbar</h3>\n <Toolbar actionGroups={{\n 'group1': {\n 'action1': {\n title: 'Edit',\n iconName: 'Edit',\n onClick: () => { console.log('Edit action click'); }\n },\n 'action2': {\n title: 'New',\n iconName: 'Add',\n onClick: () => { console.log('New action click'); }\n }\n }\n }}\n filters={toolbarFilters}\n selectedFilterIds={this.state.selectedFilters}\n onSelectedFiltersChange={this.onToolbarSelectedFiltersChange} />\n </div>\n <div>Selected filter IDs: {this.state.selectedFilters.join(\", \")}</div>\n <PrimaryButton text='Toggle filter1' onClick={() => this.toggleToolbarFilter(\"filter1\")} />\n <PrimaryButton text='Toggle filter2' onClick={() => this.toggleToolbarFilter(\"filter2\")} />\n </div>\n }\n {controlVisibility.AnimatedDialog &&\n <div id=\"AnimatedDialogDiv\" className={styles.container}>\n <h3>Animated Dialogs</h3>\n\n {/* Multiple elements added only for demo - can be controlled with fewer elements */}\n\n <PrimaryButton text='Show animated dialog' onClick={() => { this.setState({ showAnimatedDialog: true }); }} />\n {/* Normal animated dialog */}\n <AnimatedDialog\n hidden={!this.state.showAnimatedDialog}\n onDismiss={() => { this.setState({ showAnimatedDialog: false }); }}\n dialogContentProps={animatedDialogContentProps}\n modalProps={animatedModalProps}\n >\n <DialogFooter>\n <PrimaryButton onClick={() => { this.setState({ showAnimatedDialog: false }); }} text=\"Yes\" />\n <DefaultButton onClick={() => { this.setState({ showAnimatedDialog: false }); }} text=\"No\" />\n </DialogFooter>\n </AnimatedDialog>\n <br />\n <br />\n\n <PrimaryButton text='Show animated dialog with icon' onClick={() => { this.setState({ showCustomisedAnimatedDialog: true }); }} />\n {/* Animated dialog with icon */}\n <AnimatedDialog\n hidden={!this.state.showCustomisedAnimatedDialog}\n onDismiss={() => { this.setState({ showCustomisedAnimatedDialog: false }); }}\n dialogContentProps={customizedAnimatedDialogContentProps}\n modalProps={customizedAnimatedModalProps}\n dialogAnimationInType='fadeInDown'\n dialogAnimationOutType='fadeOutDown'\n iconName='UnknownSolid'\n iconAnimationType='zoomInDown'\n showAnimatedDialogFooter={true}\n okButtonText=\"Yes\"\n cancelButtonText=\"No\"\n onOkClick={() => timeout(1500)}\n onSuccess={() => {\n this.setState({ showCustomisedAnimatedDialog: false });\n this.setState({ showSuccessDialog: true });\n }}\n onError={() => {\n this.setState({ showCustomisedAnimatedDialog: false });\n this.setState({ showErrorDialog: true });\n }}>\n <div className={styles.dialogContent}>\n <span>Do you like the animated dialog?</span>\n </div>\n </AnimatedDialog>\n\n {/* Success animated dialog */}\n <AnimatedDialog\n hidden={!this.state.showSuccessDialog}\n onDismiss={() => { this.setState({ showSuccessDialog: false }); }}\n dialogContentProps={successDialogContentProps}\n modalProps={customizedAnimatedModalProps}\n iconName='CompletedSolid'\n >\n <div className={styles.dialogContent}><span>Thank you.</span></div>\n <div className={styles.dialogFooter}>\n <PrimaryButton onClick={() => { this.setState({ showSuccessDialog: false }); }} text=\"OK\" />\n </div>\n </AnimatedDialog>\n\n {/* Error animated dialog */}\n <AnimatedDialog\n hidden={!this.state.showErrorDialog}\n onDismiss={() => { this.setState({ showErrorDialog: false }); }}\n dialogContentProps={errorDialogContentProps}\n modalProps={customizedAnimatedModalProps}\n iconName='StatusErrorFull'\n >\n <div className={styles.dialogContent}><span>Ther was an error.</span></div>\n <div className={styles.dialogFooter}>\n <PrimaryButton onClick={() => { this.setState({ showErrorDialog: false }); }} text=\"OK\" />\n </div>\n </AnimatedDialog>\n </div>\n }\n {controlVisibility.LivePersona &&\n <div id=\"LivePersonaDiv\" className={styles.container}>\n <LivePersona upn=\"meganb@contoso.onmicrosoft.com\"\n template={\n <>\n <Persona text=\"Megan Bowen\" secondaryText=\"meganb@contoso.onmicrosoft.com\" coinSize={48} />\n </>\n }\n serviceScope={this.props.context.serviceScope}\n />\n </div>\n }\n {controlVisibility.LocationPicker &&\n <div id=\"LocationPickerDiv\" className={styles.container}>\n <LocationPicker context={this.props.context} label=\"Location\" onChange={(locValue: ILocationPickerItem) => { console.log(locValue.DisplayName + \", \" + locValue.Address.Street); }} />\n </div>\n }\n {controlVisibility.ModernTaxonomyPicker &&\n <div id=\"ModernTaxonomyPickerDiv\" className={styles.container}>\n <ModernTaxonomyPicker\n allowMultipleSelections={true}\n termSetId={this.termSetId}\n panelTitle=\"Panel title\"\n label={\"Modern Taxonomy Picker\"}\n context={this.props.context}\n required={false}\n disabled={false}\n customPanelWidth={400}\n />\n </div>\n }\n {controlVisibility.MonacoEditor &&\n <div id=\"MonacoEditorDiv\" className={styles.container}>\n <MonacoEditor value={\"\"}\n showMiniMap={true}\n onValueChange={(value, validationErrors) => { console.log(value); console.log(validationErrors); }}\n language={\"javascript\"} />\n </div>\n }\n {controlVisibility.AdaptiveCardHost &&\n <div id=\"AdaptiveCardHostDiv\" className={styles.container}>\n <h3>Adaptive Card Host</h3>\n <AdaptiveCardHost\n card={{\n \"$schema\": \"http://adaptivecards.io/schemas/adaptive-card.json\",\n \"type\": \"AdaptiveCard\",\n \"version\": \"1.0\",\n \"body\": [\n {\n \"type\": \"TextBlock\",\n \"size\": \"medium\",\n \"weight\": \"bolder\",\n \"text\": \" ${ParticipantInfoForm.title}\",\n \"horizontalAlignment\": \"center\",\n \"wrap\": true,\n \"style\": \"heading\"\n },\n {\n \"type\": \"Input.Text\",\n \"label\": \"Name\",\n \"style\": \"text\",\n \"id\": \"SimpleVal\",\n \"isRequired\": true,\n \"errorMessage\": \"Name is required\"\n },\n {\n \"type\": \"Input.Text\",\n \"label\": \"Homepage\",\n \"style\": \"url\",\n \"id\": \"UrlVal\"\n },\n {\n \"type\": \"Input.Text\",\n \"label\": \"Email\",\n \"style\": \"email\",\n \"id\": \"EmailVal\"\n },\n {\n \"type\": \"Input.Text\",\n \"label\": \"Phone\",\n \"style\": \"tel\",\n \"id\": \"TelVal\"\n },\n {\n \"type\": \"Input.Text\",\n \"label\": \"Comments\",\n \"style\": \"text\",\n \"isMultiline\": true,\n \"id\": \"MultiLineVal\"\n },\n {\n \"type\": \"Input.Number\",\n \"label\": \"Quantity\",\n \"min\": -5,\n \"max\": 5,\n \"value\": 1,\n \"id\": \"NumVal\",\n \"errorMessage\": \"The quantity must be between -5 and 5\"\n },\n {\n \"type\": \"Input.Date\",\n \"label\": \"Due Date\",\n \"id\": \"DateVal\",\n \"value\": \"2017-09-20\"\n },\n {\n \"type\": \"Input.Time\",\n \"label\": \"Start time\",\n \"id\": \"TimeVal\",\n \"value\": \"16:59\"\n },\n {\n \"type\": \"TextBlock\",\n \"size\": \"medium\",\n \"weight\": \"bolder\",\n \"text\": \"${Survey.title} \",\n \"horizontalAlignment\": \"center\",\n \"wrap\": true,\n \"style\": \"heading\"\n },\n {\n \"type\": \"Input.ChoiceSet\",\n \"id\": \"CompactSelectVal\",\n \"label\": \"${Survey.questions[0].question}\",\n \"style\": \"compact\",\n \"value\": \"1\",\n \"choices\": [\n {\n \"$data\": \"${Survey.questions[0].items}\",\n \"title\": \"${choice}\",\n \"value\": \"${value}\"\n }\n ]\n },\n {\n \"type\": \"Input.ChoiceSet\",\n \"id\": \"SingleSelectVal\",\n \"label\": \"${Survey.questions[1].question}\",\n \"style\": \"expanded\",\n \"value\": \"1\",\n \"choices\": [\n {\n \"$data\": \"${Survey.questions[1].items}\",\n \"title\": \"${choice}\",\n \"value\": \"${value}\"\n }\n ]\n },\n {\n \"type\": \"Input.ChoiceSet\",\n \"id\": \"MultiSelectVal\",\n \"label\": \"${Survey.questions[2].question}\",\n \"isMultiSelect\": true,\n \"value\": \"1,3\",\n \"choices\": [\n {\n \"$data\": \"${Survey.questions[2].items}\",\n \"title\": \"${choice}\",\n \"value\": \"${value}\"\n }\n ]\n },\n {\n \"type\": \"TextBlock\",\n \"size\": \"medium\",\n \"weight\": \"bolder\",\n \"text\": \"Input.Toggle\",\n \"horizontalAlignment\": \"center\",\n \"wrap\": true,\n \"style\": \"heading\"\n },\n {\n \"type\": \"Input.Toggle\",\n \"label\": \"Please accept the terms and conditions:\",\n \"title\": \"${Survey.questions[3].question}\",\n \"valueOn\": \"true\",\n \"valueOff\": \"false\",\n \"id\": \"AcceptsTerms\",\n \"isRequired\": true,\n \"errorMessage\": \"Accepting the terms and conditions is required\"\n },\n {\n \"type\": \"Input.Toggle\",\n \"label\": \"How do you feel about red cars?\",\n \"title\": \"${Survey.questions[4].question}\",\n \"valueOn\": \"RedCars\",\n \"valueOff\": \"NotRedCars\",\n \"id\": \"ColorPreference\"\n }\n ],\n \"actions\": [\n {\n \"type\": \"Action.Submit\",\n \"title\": \"Submit\",\n \"data\": {\n \"id\": \"1234567890\"\n }\n },\n {\n \"type\": \"Action.ShowCard\",\n \"title\": \"Show Card\",\n \"card\": {\n \"type\": \"AdaptiveCard\",\n \"body\": [\n {\n \"type\": \"Input.Text\",\n \"label\": \"enter comment\",\n \"style\": \"text\",\n \"id\": \"CommentVal\"\n }\n ],\n \"actions\": [\n {\n \"type\": \"Action.Submit\",\n \"title\": \"OK\"\n }\n ]\n }\n }\n ]\n }}\n data={{\n \"$root\": {\n \"ParticipantInfoForm\": {\n \"title\": \"Input.Text elements\"\n },\n \"Survey\": {\n \"title\": \"Input ChoiceSet\",\n \"questions\": [\n {\n \"question\": \"What color do you want? (compact)\",\n \"items\": [\n {\n \"choice\": \"Red\",\n \"value\": \"1\"\n },\n {\n \"choice\": \"Green\",\n \"value\": \"2\"\n },\n {\n \"choice\": \"Blue\",\n \"value\": \"3\"\n }\n ]\n },\n {\n \"question\": \"What color do you want? (expanded)\",\n \"items\": [\n {\n \"choice\": \"Red\",\n \"value\": \"1\"\n },\n {\n \"choice\": \"Green\",\n \"value\": \"2\"\n },\n {\n \"choice\": \"Blue\",\n \"value\": \"3\"\n }\n ]\n },\n {\n \"question\": \"What color do you want? (multiselect)\",\n \"items\": [\n {\n \"choice\": \"Red\",\n \"value\": \"1\"\n },\n {\n \"choice\": \"Green\",\n \"value\": \"2\"\n },\n {\n \"choice\": \"Blue\",\n \"value\": \"3\"\n }\n ]\n },\n {\n \"question\": \"I accept the terms and conditions (True/False)\"\n },\n {\n \"question\": \"Red cars are better than other cars\"\n }\n ]\n }\n }\n }}\n theme={this.props.themeVariant}\n themeType={AdaptiveCardHostThemeType.SharePoint}\n onInvokeAction={(action) => alert(JSON.stringify(action))}\n onError={(error) => console.log(error.message)}\n onSetCustomElements={(registry: CardObjectRegistry<CardElement>) => { }}\n onSetCustomActions={(registry: CardObjectRegistry<Action>) => { }}\n onUpdateHostCapabilities={(hostCapabilities: HostCapabilities) => {\n hostCapabilities.setCustomProperty(\"CustomPropertyName\", Date.now);\n }}\n context={this.props.context}\n />\n </div>\n }\n {controlVisibility.VariantThemeProvider &&\n <div id=\"VariantThemeProviderDiv\" className={styles.container}>\n <h3>Variant Theme Provider</h3>\n <VariantThemeProvider variantType={VariantType.Strong}>\n <Stack tokens={{ childrenGap: 5, padding: 5 }}>\n <Label>This Web Part implements an example on how to use the 'Fluent UI' theme library and how to apply/generate theme variation for the Web Part itself.</Label>\n <PrimaryButton>Primary Button</PrimaryButton>\n <DefaultButton>Default Button</DefaultButton>\n <Link>Link</Link>\n </Stack>\n </VariantThemeProvider>\n </div>\n }\n {controlVisibility.EnhancedThemeProvider &&\n <div id=\"EnhancedThemeProviderDiv\" className={styles.container}>\n <h3>Enhanced Theme Provider</h3>\n <EnhancedThemeProvider applyTo=\"element\" context={this.props.context} theme={this.props.themeVariant}>\n <ControlsTestEnhancedThemeProviderFunctionComponent />\n <ControlsTestEnhancedThemeProvider />\n </EnhancedThemeProvider>\n </div>\n }\n {controlVisibility.AdaptiveCardDesignerHost &&\n <div id=\"AdaptiveCardDesignerHostDiv\" className={styles.container}>\n <h3>Adaptive Card Designer Host</h3>\n <AdaptiveCardDesignerHost\n headerText={`Adaptive Card Designer`}\n buttonText=\"Open Designer\"\n card={{ \"$schema\": \"http://adaptivecards.io/schemas/adaptive-card.json\", \"type\": \"AdaptiveCard\", \"version\": \"1.5\", \"body\": [{ \"type\": \"ColumnSet\", \"columns\": [{ \"width\": \"auto\", \"items\": [{ \"type\": \"Image\", \"size\": \"Small\", \"style\": \"Person\", \"url\": \"/_layouts/15/userphoto.aspx?size=M&username=${$root['@context']['userInfo']['email']}\" }], \"type\": \"Column\" }, { \"width\": \"stretch\", \"items\": [{ \"type\": \"TextBlock\", \"text\": \"${$root['@context']['userInfo']['displayName']}\", \"weight\": \"Bolder\" }, { \"type\": \"TextBlock\", \"spacing\": \"None\", \"text\": \"${$root['@context']['userInfo']['email']}\" }], \"type\": \"Column\" }] }] }}\n data={undefined}\n context={this.props.context}\n theme={this.props.themeVariant}\n onSave={(payload: object) => alert(JSON.stringify(payload))}\n snippets={[{\n name: \"Persona\",\n category: \"Snippets\",\n payload: {\n type: \"ColumnSet\",\n columns: [\n {\n width: \"auto\",\n items: [\n {\n type: \"Image\",\n size: \"Small\",\n style: \"Person\",\n url: \"/_layouts/15/userphoto.aspx?size=M&username=${$root['@context']['userInfo']['email']}\"\n }\n ]\n },\n {\n width: \"stretch\",\n items: [\n {\n type: \"TextBlock\",\n text: \"${$root['@context']['userInfo']['displayName']}\",\n weight: \"Bolder\"\n },\n {\n type: \"TextBlock\",\n spacing: \"None\",\n text: \"${$root['@context']['userInfo']['email']}\"\n }\n ]\n }\n ]\n }\n }]}\n />\n </div>\n }\n {controlVisibility.ShareDialog &&\n <div id=\"ShareDialogDiv\" className={styles.container}>\n <PrimaryButton text=\"Open Share dialog\" onClick={() => { this.setState({ isOpenShareDialog: true }); }} />\n <ShareDialog\n isOpen={this.state.isOpenShareDialog}\n onClose={() => this.setState({ isOpenShareDialog: false })}\n options={{\n siteUrl: this.props.context.pageContext.web.absoluteUrl,\n listId: 'b1416fca-dc77-4198-a082-62a7657dcfa9',\n itemId: 1,\n name: 'Document Name'\n }} />\n </div>\n }\n {controlVisibility.TaxonomyTree &&\n <div id=\"TaxonomyTreeDiv\" className={styles.container} hidden={!controlVisibility.TaxonomyTree}>\n <h3>Modern Taxonomy Tree</h3>\n {this.state.termStoreInfo && (\n <TaxonomyTree\n languageTag={this.state.termStoreInfo.defaultLanguageTag}\n onLoadMoreData={this.spTaxonomyService.getTerms}\n pageSize={50}\n setTerms={(value) => this.setState({ testTerms: value as any })}\n termStoreInfo={this.state.termStoreInfo}\n termSetInfo={this.state.termSetInfo}\n terms={this.state.testTerms as any[]}\n onRenderActionButton={() => <button>test button</button>}\n hideDeprecatedTerms={false}\n showIcons={true}\n />\n )}\n </div>\n }\n {controlVisibility.ListToolbar &&\n <div id=\"ListToolbarDiv\" className={styles.container}>\n <h3>ListToolbar</h3>\n <ListToolbar\n context={this.props.context}\n theme={this.props.themeVariant as any}\n items={[\n { key: 'new', label: 'New', icon: <span>+</span>, onClick: () => console.log('New clicked'), group: 'actions' },\n { key: 'edit', label: 'Edit', icon: <span>✎</span>, onClick: () => console.log('Edit clicked'), group: 'actions' },\n { key: 'delete', label: 'Delete', icon: <span>🗑</span>, onClick: () => console.log('Delete clicked'), appearance: 'subtle', group: 'danger' },\n ]}\n farItems={[\n { key: 'filter', label: 'Filter', icon: <span>🔍</span>, onClick: () => console.log('Filter clicked'), isFarItem: true },\n { key: 'settings', label: 'Settings', icon: <span>⚙</span>, onClick: () => console.log('Settings clicked'), isFarItem: true },\n ]}\n totalCount={10}\n showGroupDividers={true}\n ariaLabel=\"List Toolbar\"\n />\n </div>\n }\n {controlVisibility.TestControl &&\n <div id=\"TestControlDiv\" className={styles.container}>\n <TestControl context={this.props.context} themeVariant={this.props.themeVariant} />\n </div>\n }\n {controlVisibility.UploadFiles &&\n <div id=\"UploadFilesDiv\" className={styles.container}>\n <h3>Upload Files</h3>\n <EnhancedThemeProvider theme={this.props.themeVariant} context={this.props.context}>\n <Stack>\n <UploadFiles\n context={this.props.context}\n title=\"Upload Files\"\n onUploadFiles={(files) => {\n console.log(\"files\", files);\n }}\n themeVariant={this.props.themeVariant}\n />\n </Stack>\n </EnhancedThemeProvider>\n </div>\n }\n {controlVisibility.UserPicker &&\n <div id=\"UserPickerDiv\" className={styles.container}>\n <UserPicker\n context={this.props.context}\n secondaryTextPropertyName=\"mail\"\n theme={this.props.themeVariant}\n placeholder={\"Search User\"}\n // label={\n // <div>\n // <Person20Filled color={tokens.colorBrandForeground1} />\n // <Body1>Select User</Body1>\n // </div>\n // }\n // onSelectedUsers={onSelectedUsers}\n // onRemoveSelectedUser={onRemovedUser}\n />\n </div>\n }\n {\n controlVisibility.Calendar &&\n <div id=\"CalendarDiv\" className={styles.container}>\n <TestCalendarControl\n context={this.props.context} theme={this.props.themeVariant as any} hasTeamsContext={false} themeString={'default'} title={'Calendar'} appHostName={EAppHostName.SharePoint} />\n </div>\n\n }\n {\n controlVisibility.SPFilePicker &&\n <div id=\"SPFilePickerDiv\" className={styles.container}>\n <TestSPFilePickerControl context={this.props.context} />\n </div>\n\n }\n {controlVisibility.WorldMap &&\n <div id=\"WorldMapDiv\" className={styles.container}>\n <WorldMap description={'World Map Sample'} isDarkTheme={false} hasTeamsContext={false} title={'Microsoft Locations Worldwide'} />\n </div>\n }\n </div>\n </React.Suspense>\n );\n }\n\n private getRandomCollectionFieldData = () => {\n const result: Record<string, unknown>[] = [];\n for (let i = 1; i < 16; i++) {\n\n const sampleDate = new Date();\n sampleDate.setDate(sampleDate.getDate() + i);\n\n result.push({\n \"Field1\": `String${i}`,\n \"Field2\": i,\n \"Field3\": \"https://pnp.github.io/\",\n \"Field4\": true,\n \"Field5\": null as any,\n \"Field6\": { key: \"choice 1\", text: \"choice 1\" },\n \"Field7\": [{ key: \"choice 1\", text: \"choice 1\" }, { key: \"choice 2\", text: \"choice 2\" }],\n \"Field8\": sampleDate\n });\n }\n return result;\n }\n\n private onExpandCollapseTree(item: ITreeItem, isExpanded: boolean) {\n console.log((isExpanded ? \"item expanded: \" : \"item collapsed: \") + item);\n }\n\n private onItemSelected(items: ITreeItem[]) {\n console.log(\"items selected: \" + items.length);\n }\n\n private renderCustomTreeItem(item: ITreeItem): JSX.Element {\n return (\n <span>\n {\n item.iconProps &&\n <i className={\"ms-Icon ms-Icon--\" + item.iconProps.iconName} style={{ paddingRight: '4px' }} />\n }\n {item.label}\n </span>\n );\n }\n\n private _getPage(page: number) {\n console.log('Page:', page);\n }\n\n // private _onFolderSelect = (folder: IFolder): void => {\n // console.log('selected folder', folder);\n //\n}\n"
|
|
22294
|
-
}
|
|
22295
|
-
}
|
|
22296
|
-
}
|
|
22297
|
-
}
|
|
22298
|
-
],
|
|
22299
|
-
"ruleId": "max-lines",
|
|
22300
|
-
"ruleIndex": 16,
|
|
22301
|
-
"suppressions": []
|
|
22302
|
-
},
|
|
22303
|
-
{
|
|
22304
|
-
"level": "warning",
|
|
22305
|
-
"message": {
|
|
22306
|
-
"text": "Unexpected any. Specify a different type."
|
|
22307
|
-
},
|
|
22308
|
-
"locations": [
|
|
22309
|
-
{
|
|
22310
|
-
"physicalLocation": {
|
|
22311
|
-
"artifactLocation": {
|
|
22312
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22313
|
-
"index": 914
|
|
22314
|
-
},
|
|
22315
|
-
"region": {
|
|
22316
|
-
"startLine": 2114,
|
|
22317
|
-
"startColumn": 42,
|
|
22318
|
-
"endLine": 2114,
|
|
22319
|
-
"endColumn": 45,
|
|
22320
|
-
"snippet": {
|
|
22321
|
-
"text": "any"
|
|
22322
|
-
}
|
|
22323
|
-
}
|
|
22324
|
-
}
|
|
22325
|
-
}
|
|
22326
|
-
],
|
|
22327
|
-
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
22328
|
-
"ruleIndex": 0,
|
|
22329
|
-
"suppressions": []
|
|
22330
|
-
},
|
|
22331
|
-
{
|
|
22332
|
-
"level": "warning",
|
|
22333
|
-
"message": {
|
|
22334
|
-
"text": "Unexpected any. Specify a different type."
|
|
22335
|
-
},
|
|
22336
|
-
"locations": [
|
|
22337
|
-
{
|
|
22338
|
-
"physicalLocation": {
|
|
22339
|
-
"artifactLocation": {
|
|
22340
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22341
|
-
"index": 914
|
|
22342
|
-
},
|
|
22343
|
-
"region": {
|
|
22344
|
-
"startLine": 2151,
|
|
22345
|
-
"startColumn": 42,
|
|
22346
|
-
"endLine": 2151,
|
|
22347
|
-
"endColumn": 45,
|
|
22348
|
-
"snippet": {
|
|
22349
|
-
"text": "any"
|
|
22350
|
-
}
|
|
22351
|
-
}
|
|
22352
|
-
}
|
|
22353
|
-
}
|
|
22354
|
-
],
|
|
22355
|
-
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
22356
|
-
"ruleIndex": 0,
|
|
22357
|
-
"suppressions": []
|
|
22358
|
-
},
|
|
22359
|
-
{
|
|
22360
|
-
"level": "warning",
|
|
22361
|
-
"message": {
|
|
22362
|
-
"text": "Script URL is a form of eval."
|
|
22363
|
-
},
|
|
22364
|
-
"locations": [
|
|
22365
|
-
{
|
|
22366
|
-
"physicalLocation": {
|
|
22367
|
-
"artifactLocation": {
|
|
22368
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22369
|
-
"index": 914
|
|
22370
|
-
},
|
|
22371
|
-
"region": {
|
|
22372
|
-
"startLine": 2335,
|
|
22373
|
-
"startColumn": 26,
|
|
22374
|
-
"endLine": 2335,
|
|
22375
|
-
"endColumn": 40,
|
|
22376
|
-
"snippet": {
|
|
22377
|
-
"text": "\"javascript:;\""
|
|
22378
|
-
}
|
|
22379
|
-
}
|
|
22380
|
-
}
|
|
22381
|
-
}
|
|
22382
|
-
],
|
|
22383
|
-
"ruleId": "no-script-url",
|
|
22384
|
-
"ruleIndex": 17,
|
|
22385
|
-
"suppressions": []
|
|
22386
|
-
},
|
|
22387
|
-
{
|
|
22388
|
-
"level": "warning",
|
|
22389
|
-
"message": {
|
|
22390
|
-
"text": "Unexpected any. Specify a different type."
|
|
22391
|
-
},
|
|
22392
|
-
"locations": [
|
|
22393
|
-
{
|
|
22394
|
-
"physicalLocation": {
|
|
22395
|
-
"artifactLocation": {
|
|
22396
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22397
|
-
"index": 914
|
|
22398
|
-
},
|
|
22399
|
-
"region": {
|
|
22400
|
-
"startLine": 2379,
|
|
22401
|
-
"startColumn": 42,
|
|
22402
|
-
"endLine": 2379,
|
|
22403
|
-
"endColumn": 45,
|
|
22404
|
-
"snippet": {
|
|
22405
|
-
"text": "any"
|
|
22406
|
-
}
|
|
22407
|
-
}
|
|
22408
|
-
}
|
|
22409
|
-
}
|
|
22410
|
-
],
|
|
22411
|
-
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
22412
|
-
"ruleIndex": 0,
|
|
22413
|
-
"suppressions": []
|
|
22414
|
-
},
|
|
22415
|
-
{
|
|
22416
|
-
"level": "warning",
|
|
22417
|
-
"message": {
|
|
22418
|
-
"text": "Unexpected any. Specify a different type."
|
|
22419
|
-
},
|
|
22420
|
-
"locations": [
|
|
22421
|
-
{
|
|
22422
|
-
"physicalLocation": {
|
|
22423
|
-
"artifactLocation": {
|
|
22424
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22425
|
-
"index": 914
|
|
22426
|
-
},
|
|
22427
|
-
"region": {
|
|
22428
|
-
"startLine": 2486,
|
|
22429
|
-
"startColumn": 48,
|
|
22430
|
-
"endLine": 2486,
|
|
22431
|
-
"endColumn": 51,
|
|
22432
|
-
"snippet": {
|
|
22433
|
-
"text": "any"
|
|
22434
|
-
}
|
|
22435
|
-
}
|
|
22436
|
-
}
|
|
22437
|
-
}
|
|
22438
|
-
],
|
|
22439
|
-
"ruleId": "@typescript-eslint/no-explicit-any",
|
|
22440
|
-
"ruleIndex": 0,
|
|
22441
|
-
"suppressions": []
|
|
22442
|
-
},
|
|
22443
|
-
{
|
|
22444
|
-
"level": "warning",
|
|
22445
|
-
"message": {
|
|
22446
|
-
"text": "Unexpected any. Specify a different type."
|
|
21833
|
+
"text": "Unexpected any. Specify a different type."
|
|
22447
21834
|
},
|
|
22448
21835
|
"locations": [
|
|
22449
21836
|
{
|
|
@@ -22552,34 +21939,6 @@
|
|
|
22552
21939
|
"ruleIndex": 0,
|
|
22553
21940
|
"suppressions": []
|
|
22554
21941
|
},
|
|
22555
|
-
{
|
|
22556
|
-
"level": "warning",
|
|
22557
|
-
"message": {
|
|
22558
|
-
"text": "Missing return type on function."
|
|
22559
|
-
},
|
|
22560
|
-
"locations": [
|
|
22561
|
-
{
|
|
22562
|
-
"physicalLocation": {
|
|
22563
|
-
"artifactLocation": {
|
|
22564
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22565
|
-
"index": 914
|
|
22566
|
-
},
|
|
22567
|
-
"region": {
|
|
22568
|
-
"startLine": 3210,
|
|
22569
|
-
"startColumn": 3,
|
|
22570
|
-
"endLine": 3210,
|
|
22571
|
-
"endColumn": 42,
|
|
22572
|
-
"snippet": {
|
|
22573
|
-
"text": "private getRandomCollectionFieldData = "
|
|
22574
|
-
}
|
|
22575
|
-
}
|
|
22576
|
-
}
|
|
22577
|
-
}
|
|
22578
|
-
],
|
|
22579
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
22580
|
-
"ruleIndex": 9,
|
|
22581
|
-
"suppressions": []
|
|
22582
|
-
},
|
|
22583
21942
|
{
|
|
22584
21943
|
"level": "warning",
|
|
22585
21944
|
"message": {
|
|
@@ -22608,90 +21967,6 @@
|
|
|
22608
21967
|
"ruleIndex": 0,
|
|
22609
21968
|
"suppressions": []
|
|
22610
21969
|
},
|
|
22611
|
-
{
|
|
22612
|
-
"level": "warning",
|
|
22613
|
-
"message": {
|
|
22614
|
-
"text": "Missing return type on function."
|
|
22615
|
-
},
|
|
22616
|
-
"locations": [
|
|
22617
|
-
{
|
|
22618
|
-
"physicalLocation": {
|
|
22619
|
-
"artifactLocation": {
|
|
22620
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22621
|
-
"index": 914
|
|
22622
|
-
},
|
|
22623
|
-
"region": {
|
|
22624
|
-
"startLine": 3231,
|
|
22625
|
-
"startColumn": 3,
|
|
22626
|
-
"endLine": 3231,
|
|
22627
|
-
"endColumn": 31,
|
|
22628
|
-
"snippet": {
|
|
22629
|
-
"text": "private onExpandCollapseTree"
|
|
22630
|
-
}
|
|
22631
|
-
}
|
|
22632
|
-
}
|
|
22633
|
-
}
|
|
22634
|
-
],
|
|
22635
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
22636
|
-
"ruleIndex": 9,
|
|
22637
|
-
"suppressions": []
|
|
22638
|
-
},
|
|
22639
|
-
{
|
|
22640
|
-
"level": "warning",
|
|
22641
|
-
"message": {
|
|
22642
|
-
"text": "Missing return type on function."
|
|
22643
|
-
},
|
|
22644
|
-
"locations": [
|
|
22645
|
-
{
|
|
22646
|
-
"physicalLocation": {
|
|
22647
|
-
"artifactLocation": {
|
|
22648
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22649
|
-
"index": 914
|
|
22650
|
-
},
|
|
22651
|
-
"region": {
|
|
22652
|
-
"startLine": 3235,
|
|
22653
|
-
"startColumn": 3,
|
|
22654
|
-
"endLine": 3235,
|
|
22655
|
-
"endColumn": 25,
|
|
22656
|
-
"snippet": {
|
|
22657
|
-
"text": "private onItemSelected"
|
|
22658
|
-
}
|
|
22659
|
-
}
|
|
22660
|
-
}
|
|
22661
|
-
}
|
|
22662
|
-
],
|
|
22663
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
22664
|
-
"ruleIndex": 9,
|
|
22665
|
-
"suppressions": []
|
|
22666
|
-
},
|
|
22667
|
-
{
|
|
22668
|
-
"level": "warning",
|
|
22669
|
-
"message": {
|
|
22670
|
-
"text": "Missing return type on function."
|
|
22671
|
-
},
|
|
22672
|
-
"locations": [
|
|
22673
|
-
{
|
|
22674
|
-
"physicalLocation": {
|
|
22675
|
-
"artifactLocation": {
|
|
22676
|
-
"uri": "src/webparts/controlsTest/components/ControlsTest.tsx",
|
|
22677
|
-
"index": 914
|
|
22678
|
-
},
|
|
22679
|
-
"region": {
|
|
22680
|
-
"startLine": 3251,
|
|
22681
|
-
"startColumn": 3,
|
|
22682
|
-
"endLine": 3251,
|
|
22683
|
-
"endColumn": 19,
|
|
22684
|
-
"snippet": {
|
|
22685
|
-
"text": "private _getPage"
|
|
22686
|
-
}
|
|
22687
|
-
}
|
|
22688
|
-
}
|
|
22689
|
-
}
|
|
22690
|
-
],
|
|
22691
|
-
"ruleId": "@typescript-eslint/explicit-function-return-type",
|
|
22692
|
-
"ruleIndex": 9,
|
|
22693
|
-
"suppressions": []
|
|
22694
|
-
},
|
|
22695
21970
|
{
|
|
22696
21971
|
"level": "warning",
|
|
22697
21972
|
"message": {
|