@skyux/pages 8.3.1 → 8.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/documentation.json +1389 -434
  2. package/esm2020/index.mjs +5 -1
  3. package/esm2020/lib/modules/page/page-content.component.mjs +15 -0
  4. package/esm2020/lib/modules/page/page-theme-adapter.service.mjs +43 -0
  5. package/esm2020/lib/modules/page/page.component.mjs +76 -0
  6. package/esm2020/lib/modules/page/page.module.mjs +20 -0
  7. package/esm2020/lib/modules/page/types/page-layout-type.mjs +2 -0
  8. package/esm2020/lib/modules/page-header/page-header.component.mjs +6 -4
  9. package/esm2020/testing/page/page-harness-filters.mjs +2 -0
  10. package/esm2020/testing/page/page-harness.mjs +44 -0
  11. package/esm2020/testing/page-header/page-header-harness-filters.mjs +2 -0
  12. package/esm2020/testing/page-header/page-header-harness.mjs +43 -0
  13. package/esm2020/testing/public-api.mjs +3 -0
  14. package/esm2020/testing/skyux-pages-testing.mjs +5 -0
  15. package/fesm2015/skyux-pages-testing.mjs +100 -0
  16. package/fesm2015/skyux-pages-testing.mjs.map +1 -0
  17. package/fesm2015/skyux-pages.mjs +146 -6
  18. package/fesm2015/skyux-pages.mjs.map +1 -1
  19. package/fesm2020/skyux-pages-testing.mjs +92 -0
  20. package/fesm2020/skyux-pages-testing.mjs.map +1 -0
  21. package/fesm2020/skyux-pages.mjs +144 -6
  22. package/fesm2020/skyux-pages.mjs.map +1 -1
  23. package/index.d.ts +4 -0
  24. package/lib/modules/page/page-content.component.d.ts +9 -0
  25. package/lib/modules/page/page-theme-adapter.service.d.ts +17 -0
  26. package/lib/modules/page/page.component.d.ts +22 -0
  27. package/lib/modules/page/page.module.d.ts +10 -0
  28. package/lib/modules/page/types/page-layout-type.d.ts +1 -0
  29. package/lib/modules/page-header/page-header.component.d.ts +9 -0
  30. package/package.json +17 -8
  31. package/testing/index.d.ts +5 -0
  32. package/testing/page/page-harness-filters.d.ts +6 -0
  33. package/testing/page/page-harness.d.ts +29 -0
  34. package/testing/page-header/page-header-harness-filters.d.ts +6 -0
  35. package/testing/page-header/page-header-harness.d.ts +26 -0
  36. package/testing/public-api.d.ts +2 -0
@@ -2,31 +2,36 @@
2
2
  "anchorIds": {
3
3
  "SkyActionHubModule": "class-skyactionhubmodule",
4
4
  "SkyPageHeaderModule": "class-skypageheadermodule",
5
+ "SkyPageModule": "class-skypagemodule",
5
6
  "SkyActionHubComponent": "class-skyactionhubcomponent",
6
7
  "SkyActionHubButtonsComponent": "class-skyactionhubbuttonscomponent",
7
8
  "SkyActionHubContentComponent": "class-skyactionhubcontentcomponent",
8
9
  "SkyPageHeaderComponent": "class-skypageheadercomponent",
9
10
  "SkyModalLinkListComponent": "class-skymodallinklistcomponent",
11
+ "SkyPageComponent": "class-skypagecomponent",
12
+ "SkyPageContentComponent": "class-skypagecontentcomponent",
10
13
  "SkyActionHubNeedsAttention": "interface-skyactionhubneedsattention",
11
14
  "SkyPageLink": "interface-skypagelink",
12
15
  "SkyPageModalLink": "interface-skypagemodallink",
13
16
  "SkyRecentLink": "interface-skyrecentlink",
14
17
  "SkyActionHubNeedsAttentionClickHandler": "type-alias-skyactionhubneedsattentionclickhandler",
15
18
  "SkyActionHubNeedsAttentionClickHandlerArgs": "type-alias-skyactionhubneedsattentionclickhandlerargs",
19
+ "SkyPageLayoutType": "type-alias-skypagelayouttype",
16
20
  "SkyPageLinksInput": "type-alias-skypagelinksinput",
17
21
  "SkyPageModalLinksInput": "type-alias-skypagemodallinksinput",
18
- "SkyRecentLinksInput": "type-alias-skyrecentlinksinput"
22
+ "SkyRecentLinksInput": "type-alias-skyrecentlinksinput",
23
+ "SkyPageHarness": "class-skypageharness",
24
+ "SkyPageHarnessFilters": "interface-skypageharnessfilters"
19
25
  },
20
26
  "typedoc": {
21
27
  "id": 0,
22
28
  "name": "@skyux/pages",
23
29
  "kind": 1,
24
- "kindString": "Project",
25
30
  "flags": {},
26
31
  "originalName": "",
27
32
  "children": [
28
33
  {
29
- "id": 41,
34
+ "id": 64,
30
35
  "name": "SkyActionHubModule",
31
36
  "kind": 128,
32
37
  "kindString": "Class",
@@ -51,7 +56,7 @@
51
56
  "title": "Constructors",
52
57
  "kind": 512,
53
58
  "children": [
54
- 42
59
+ 65
55
60
  ]
56
61
  }
57
62
  ],
@@ -64,7 +69,7 @@
64
69
  ]
65
70
  },
66
71
  {
67
- "id": 97,
72
+ "id": 124,
68
73
  "name": "SkyPageHeaderModule",
69
74
  "kind": 128,
70
75
  "kindString": "Class",
@@ -89,7 +94,7 @@
89
94
  "title": "Constructors",
90
95
  "kind": 512,
91
96
  "children": [
92
- 98
97
+ 125
93
98
  ]
94
99
  }
95
100
  ],
@@ -102,7 +107,45 @@
102
107
  ]
103
108
  },
104
109
  {
105
- "id": 1,
110
+ "id": 120,
111
+ "name": "SkyPageModule",
112
+ "kind": 128,
113
+ "kindString": "Class",
114
+ "flags": {},
115
+ "decorators": [
116
+ {
117
+ "name": "NgModule",
118
+ "type": {
119
+ "type": "reference",
120
+ "qualifiedName": "NgModuleDecorator",
121
+ "package": "@angular/core",
122
+ "name": "NgModule"
123
+ },
124
+ "arguments": {
125
+ "obj": "{\n declarations: [SkyPageComponent, SkyPageContentComponent],\n imports: [CommonModule],\n exports: [SkyPageComponent, SkyPageHeaderModule, SkyPageContentComponent],\n}"
126
+ }
127
+ }
128
+ ],
129
+ "children": [],
130
+ "groups": [
131
+ {
132
+ "title": "Constructors",
133
+ "kind": 512,
134
+ "children": [
135
+ 121
136
+ ]
137
+ }
138
+ ],
139
+ "sources": [
140
+ {
141
+ "fileName": "projects/pages/src/modules/page/page.module.ts",
142
+ "line": 14,
143
+ "character": 13
144
+ }
145
+ ]
146
+ },
147
+ {
148
+ "id": 3,
106
149
  "name": "SkyActionHubComponent",
107
150
  "kind": 128,
108
151
  "kindString": "Class",
@@ -126,7 +169,7 @@
126
169
  ],
127
170
  "children": [
128
171
  {
129
- "id": 13,
172
+ "id": 15,
130
173
  "name": "needsAttentionArray",
131
174
  "kind": 1024,
132
175
  "kindString": "Property",
@@ -144,14 +187,14 @@
144
187
  "type": "array",
145
188
  "elementType": {
146
189
  "type": "reference",
147
- "id": 44,
190
+ "id": 67,
148
191
  "name": "SkyActionHubNeedsAttention"
149
192
  }
150
193
  },
151
194
  "defaultValue": "[]"
152
195
  },
153
196
  {
154
- "id": 8,
197
+ "id": 10,
155
198
  "name": "parentLink",
156
199
  "kind": 1024,
157
200
  "kindString": "Property",
@@ -182,12 +225,12 @@
182
225
  ],
183
226
  "type": {
184
227
  "type": "reference",
185
- "id": 62,
228
+ "id": 85,
186
229
  "name": "SkyPageLink"
187
230
  }
188
231
  },
189
232
  {
190
- "id": 9,
233
+ "id": 11,
191
234
  "name": "recentLinks",
192
235
  "kind": 1024,
193
236
  "kindString": "Property",
@@ -218,13 +261,13 @@
218
261
  ],
219
262
  "type": {
220
263
  "type": "reference",
221
- "id": 96,
264
+ "id": 119,
222
265
  "name": "SkyRecentLinksInput"
223
266
  },
224
267
  "defaultValue": "[]"
225
268
  },
226
269
  {
227
- "id": 10,
270
+ "id": 12,
228
271
  "name": "relatedLinks",
229
272
  "kind": 1024,
230
273
  "kindString": "Property",
@@ -255,13 +298,13 @@
255
298
  ],
256
299
  "type": {
257
300
  "type": "reference",
258
- "id": 71,
301
+ "id": 94,
259
302
  "name": "SkyPageLinksInput"
260
303
  },
261
304
  "defaultValue": "[]"
262
305
  },
263
306
  {
264
- "id": 11,
307
+ "id": 13,
265
308
  "name": "settingsLinks",
266
309
  "kind": 1024,
267
310
  "kindString": "Property",
@@ -292,13 +335,13 @@
292
335
  ],
293
336
  "type": {
294
337
  "type": "reference",
295
- "id": 85,
338
+ "id": 108,
296
339
  "name": "SkyPageModalLinksInput"
297
340
  },
298
341
  "defaultValue": "[]"
299
342
  },
300
343
  {
301
- "id": 12,
344
+ "id": 14,
302
345
  "name": "title",
303
346
  "kind": 1024,
304
347
  "kindString": "Property",
@@ -340,7 +383,7 @@
340
383
  "defaultValue": "''"
341
384
  },
342
385
  {
343
- "id": 4,
386
+ "id": 6,
344
387
  "name": "needsAttention",
345
388
  "kind": 262144,
346
389
  "kindString": "Accessor",
@@ -368,7 +411,7 @@
368
411
  ],
369
412
  "getSignature": [
370
413
  {
371
- "id": 5,
414
+ "id": 7,
372
415
  "name": "needsAttention",
373
416
  "kind": 524288,
374
417
  "kindString": "Get signature",
@@ -384,7 +427,7 @@
384
427
  ],
385
428
  "setSignature": [
386
429
  {
387
- "id": 6,
430
+ "id": 8,
388
431
  "name": "needsAttention",
389
432
  "kind": 1048576,
390
433
  "kindString": "Set signature",
@@ -394,7 +437,7 @@
394
437
  },
395
438
  "parameters": [
396
439
  {
397
- "id": 7,
440
+ "id": 9,
398
441
  "name": "value",
399
442
  "kind": 32768,
400
443
  "kindString": "Parameter",
@@ -418,26 +461,26 @@
418
461
  "title": "Constructors",
419
462
  "kind": 512,
420
463
  "children": [
421
- 2
464
+ 4
422
465
  ]
423
466
  },
424
467
  {
425
468
  "title": "Properties",
426
469
  "kind": 1024,
427
470
  "children": [
428
- 13,
429
- 8,
430
- 9,
471
+ 15,
431
472
  10,
432
473
  11,
433
- 12
474
+ 12,
475
+ 13,
476
+ 14
434
477
  ]
435
478
  },
436
479
  {
437
480
  "title": "Accessors",
438
481
  "kind": 262144,
439
482
  "children": [
440
- 4
483
+ 6
441
484
  ]
442
485
  }
443
486
  ],
@@ -450,7 +493,7 @@
450
493
  ]
451
494
  },
452
495
  {
453
- "id": 15,
496
+ "id": 17,
454
497
  "name": "SkyActionHubButtonsComponent",
455
498
  "kind": 128,
456
499
  "kindString": "Class",
@@ -479,7 +522,7 @@
479
522
  "title": "Constructors",
480
523
  "kind": 512,
481
524
  "children": [
482
- 16
525
+ 18
483
526
  ]
484
527
  }
485
528
  ],
@@ -492,7 +535,7 @@
492
535
  ]
493
536
  },
494
537
  {
495
- "id": 18,
538
+ "id": 20,
496
539
  "name": "SkyActionHubContentComponent",
497
540
  "kind": 128,
498
541
  "kindString": "Class",
@@ -520,7 +563,7 @@
520
563
  "title": "Constructors",
521
564
  "kind": 512,
522
565
  "children": [
523
- 19
566
+ 21
524
567
  ]
525
568
  }
526
569
  ],
@@ -533,11 +576,14 @@
533
576
  ]
534
577
  },
535
578
  {
536
- "id": 21,
579
+ "id": 23,
537
580
  "name": "SkyPageHeaderComponent",
538
581
  "kind": 128,
539
582
  "kindString": "Class",
540
583
  "flags": {},
584
+ "comment": {
585
+ "shortText": "Displays a page heading. Applies the correct layout spacing if used within a SkyPage."
586
+ },
541
587
  "decorators": [
542
588
  {
543
589
  "name": "Component",
@@ -554,13 +600,16 @@
554
600
  ],
555
601
  "children": [
556
602
  {
557
- "id": 25,
603
+ "id": 27,
558
604
  "name": "pageTitle",
559
605
  "kind": 1024,
560
606
  "kindString": "Property",
561
607
  "flags": {
562
608
  "isPublic": true
563
609
  },
610
+ "comment": {
611
+ "shortText": "The title of the current page."
612
+ },
564
613
  "decorators": [
565
614
  {
566
615
  "name": "Input",
@@ -576,7 +625,7 @@
576
625
  "sources": [
577
626
  {
578
627
  "fileName": "projects/pages/src/modules/page-header/page-header.component.ts",
579
- "line": 17,
628
+ "line": 26,
580
629
  "character": 9
581
630
  }
582
631
  ],
@@ -586,7 +635,7 @@
586
635
  }
587
636
  },
588
637
  {
589
- "id": 24,
638
+ "id": 26,
590
639
  "name": "parentLink",
591
640
  "kind": 1024,
592
641
  "kindString": "Property",
@@ -594,6 +643,9 @@
594
643
  "isPublic": true,
595
644
  "isOptional": true
596
645
  },
646
+ "comment": {
647
+ "shortText": "A link to the parent page of the current page."
648
+ },
597
649
  "decorators": [
598
650
  {
599
651
  "name": "Input",
@@ -609,13 +661,13 @@
609
661
  "sources": [
610
662
  {
611
663
  "fileName": "projects/pages/src/modules/page-header/page-header.component.ts",
612
- "line": 14,
664
+ "line": 20,
613
665
  "character": 9
614
666
  }
615
667
  ],
616
668
  "type": {
617
669
  "type": "reference",
618
- "id": 62,
670
+ "id": 85,
619
671
  "name": "SkyPageLink"
620
672
  }
621
673
  }
@@ -625,28 +677,28 @@
625
677
  "title": "Constructors",
626
678
  "kind": 512,
627
679
  "children": [
628
- 22
680
+ 24
629
681
  ]
630
682
  },
631
683
  {
632
684
  "title": "Properties",
633
685
  "kind": 1024,
634
686
  "children": [
635
- 25,
636
- 24
687
+ 27,
688
+ 26
637
689
  ]
638
690
  }
639
691
  ],
640
692
  "sources": [
641
693
  {
642
694
  "fileName": "projects/pages/src/modules/page-header/page-header.component.ts",
643
- "line": 12,
695
+ "line": 15,
644
696
  "character": 13
645
697
  }
646
698
  ]
647
699
  },
648
700
  {
649
- "id": 26,
701
+ "id": 28,
650
702
  "name": "SkyModalLinkListComponent",
651
703
  "kind": 128,
652
704
  "kindString": "Class",
@@ -667,7 +719,7 @@
667
719
  ],
668
720
  "children": [
669
721
  {
670
- "id": 27,
722
+ "id": 29,
671
723
  "name": "constructor",
672
724
  "kind": 512,
673
725
  "kindString": "Constructor",
@@ -681,14 +733,14 @@
681
733
  ],
682
734
  "signatures": [
683
735
  {
684
- "id": 28,
736
+ "id": 30,
685
737
  "name": "SkyModalLinkListComponent",
686
738
  "kind": 16384,
687
739
  "kindString": "Constructor signature",
688
740
  "flags": {},
689
741
  "parameters": [
690
742
  {
691
- "id": 29,
743
+ "id": 31,
692
744
  "name": "modalService",
693
745
  "kind": 32768,
694
746
  "kindString": "Parameter",
@@ -701,14 +753,14 @@
701
753
  ],
702
754
  "type": {
703
755
  "type": "reference",
704
- "id": 26,
756
+ "id": 28,
705
757
  "name": "SkyModalLinkListComponent"
706
758
  }
707
759
  }
708
760
  ]
709
761
  },
710
762
  {
711
- "id": 35,
763
+ "id": 37,
712
764
  "name": "linksArray",
713
765
  "kind": 1024,
714
766
  "kindString": "Property",
@@ -726,14 +778,14 @@
726
778
  "type": "array",
727
779
  "elementType": {
728
780
  "type": "reference",
729
- "id": 72,
781
+ "id": 95,
730
782
  "name": "SkyPageModalLink"
731
783
  }
732
784
  },
733
785
  "defaultValue": "[]"
734
786
  },
735
787
  {
736
- "id": 34,
788
+ "id": 36,
737
789
  "name": "title",
738
790
  "kind": 1024,
739
791
  "kindString": "Property",
@@ -765,7 +817,7 @@
765
817
  }
766
818
  },
767
819
  {
768
- "id": 30,
820
+ "id": 32,
769
821
  "name": "links",
770
822
  "kind": 262144,
771
823
  "kindString": "Accessor",
@@ -793,35 +845,35 @@
793
845
  ],
794
846
  "getSignature": [
795
847
  {
796
- "id": 31,
848
+ "id": 33,
797
849
  "name": "links",
798
850
  "kind": 524288,
799
851
  "kindString": "Get signature",
800
852
  "flags": {},
801
853
  "type": {
802
854
  "type": "reference",
803
- "id": 85,
855
+ "id": 108,
804
856
  "name": "SkyPageModalLinksInput"
805
857
  }
806
858
  }
807
859
  ],
808
860
  "setSignature": [
809
861
  {
810
- "id": 32,
862
+ "id": 34,
811
863
  "name": "links",
812
864
  "kind": 1048576,
813
865
  "kindString": "Set signature",
814
866
  "flags": {},
815
867
  "parameters": [
816
868
  {
817
- "id": 33,
869
+ "id": 35,
818
870
  "name": "value",
819
871
  "kind": 32768,
820
872
  "kindString": "Parameter",
821
873
  "flags": {},
822
874
  "type": {
823
875
  "type": "reference",
824
- "id": 85,
876
+ "id": 108,
825
877
  "name": "SkyPageModalLinksInput"
826
878
  }
827
879
  }
@@ -834,7 +886,7 @@
834
886
  ]
835
887
  },
836
888
  {
837
- "id": 38,
889
+ "id": 40,
838
890
  "name": "openModal",
839
891
  "kind": 2048,
840
892
  "kindString": "Method",
@@ -850,21 +902,21 @@
850
902
  ],
851
903
  "signatures": [
852
904
  {
853
- "id": 39,
905
+ "id": 41,
854
906
  "name": "openModal",
855
907
  "kind": 4096,
856
908
  "kindString": "Call signature",
857
909
  "flags": {},
858
910
  "parameters": [
859
911
  {
860
- "id": 40,
912
+ "id": 42,
861
913
  "name": "link",
862
914
  "kind": 32768,
863
915
  "kindString": "Parameter",
864
916
  "flags": {},
865
917
  "type": {
866
918
  "type": "reference",
867
- "id": 72,
919
+ "id": 95,
868
920
  "name": "SkyPageModalLink"
869
921
  }
870
922
  }
@@ -882,29 +934,29 @@
882
934
  "title": "Constructors",
883
935
  "kind": 512,
884
936
  "children": [
885
- 27
937
+ 29
886
938
  ]
887
939
  },
888
940
  {
889
941
  "title": "Properties",
890
942
  "kind": 1024,
891
943
  "children": [
892
- 35,
893
- 34
944
+ 37,
945
+ 36
894
946
  ]
895
947
  },
896
948
  {
897
949
  "title": "Accessors",
898
950
  "kind": 262144,
899
951
  "children": [
900
- 30
952
+ 32
901
953
  ]
902
954
  },
903
955
  {
904
956
  "title": "Methods",
905
957
  "kind": 2048,
906
958
  "children": [
907
- 38
959
+ 40
908
960
  ]
909
961
  }
910
962
  ],
@@ -917,314 +969,389 @@
917
969
  ]
918
970
  },
919
971
  {
920
- "id": 44,
921
- "name": "SkyActionHubNeedsAttention",
922
- "kind": 256,
923
- "kindString": "Interface",
972
+ "id": 43,
973
+ "name": "SkyPageComponent",
974
+ "kind": 128,
975
+ "kindString": "Class",
924
976
  "flags": {},
925
977
  "comment": {
926
- "shortText": "Specifies action items that require attention and directs users to pages\nwhere they can resolve them."
978
+ "shortText": "Displays a page using the specified layout."
927
979
  },
928
- "children": [
980
+ "decorators": [
929
981
  {
930
- "id": 54,
931
- "name": "click",
932
- "kind": 1024,
933
- "kindString": "Property",
934
- "flags": {
935
- "isOptional": true
936
- },
937
- "comment": {
938
- "shortText": "The click handler for the action item."
939
- },
940
- "sources": [
941
- {
942
- "fileName": "projects/pages/src/modules/action-hub/types/action-hub-needs-attention.ts",
943
- "line": 33,
944
- "character": 2
945
- }
946
- ],
982
+ "name": "Component",
947
983
  "type": {
948
984
  "type": "reference",
949
- "id": 55,
950
- "name": "SkyActionHubNeedsAttentionClickHandler"
985
+ "qualifiedName": "ComponentDecorator",
986
+ "package": "@angular/core",
987
+ "name": "Component"
988
+ },
989
+ "arguments": {
990
+ "obj": "{\n selector: 'sky-page',\n template: `<ng-content />`,\n providers: [SkyPageThemeAdapterService, SkyLayoutHostService],\n}"
951
991
  }
952
- },
992
+ }
993
+ ],
994
+ "children": [
953
995
  {
954
- "id": 46,
955
- "name": "message",
996
+ "id": 49,
997
+ "name": "cssClass",
956
998
  "kind": 1024,
957
999
  "kindString": "Property",
958
1000
  "flags": {
959
- "isOptional": true
1001
+ "isPublic": true
960
1002
  },
961
- "comment": {
962
- "shortText": "Text to display after the title.",
963
- "tags": [
964
- {
965
- "tag": "deprecated",
966
- "text": "Use `title` instead.\n"
1003
+ "decorators": [
1004
+ {
1005
+ "name": "HostBinding",
1006
+ "type": {
1007
+ "type": "reference",
1008
+ "qualifiedName": "HostBindingDecorator",
1009
+ "package": "@angular/core",
1010
+ "name": "HostBinding"
1011
+ },
1012
+ "arguments": {
1013
+ "hostPropertyName": "'class'"
967
1014
  }
968
- ]
969
- },
1015
+ }
1016
+ ],
970
1017
  "sources": [
971
1018
  {
972
- "fileName": "projects/pages/src/modules/action-hub/types/action-hub-needs-attention.ts",
973
- "line": 18,
974
- "character": 2
1019
+ "fileName": "projects/pages/src/modules/page/page.component.ts",
1020
+ "line": 46,
1021
+ "character": 9
975
1022
  }
976
1023
  ],
977
1024
  "type": {
978
1025
  "type": "intrinsic",
979
1026
  "name": "string"
980
- }
1027
+ },
1028
+ "defaultValue": "LAYOUT_CLASS_DEFAULT"
981
1029
  },
982
1030
  {
983
- "id": 47,
984
- "name": "permalink",
985
- "kind": 1024,
986
- "kindString": "Property",
1031
+ "id": 46,
1032
+ "name": "layout",
1033
+ "kind": 262144,
1034
+ "kindString": "Accessor",
987
1035
  "flags": {
988
- "isOptional": true
989
- },
990
- "comment": {
991
- "shortText": "The link to resolve the action item."
1036
+ "isPublic": true
992
1037
  },
1038
+ "decorators": [
1039
+ {
1040
+ "name": "Input",
1041
+ "type": {
1042
+ "type": "reference",
1043
+ "qualifiedName": "InputDecorator",
1044
+ "package": "@angular/core",
1045
+ "name": "Input"
1046
+ },
1047
+ "arguments": {}
1048
+ }
1049
+ ],
993
1050
  "sources": [
994
1051
  {
995
- "fileName": "projects/pages/src/modules/action-hub/types/action-hub-needs-attention.ts",
996
- "line": 22,
997
- "character": 2
1052
+ "fileName": "projects/pages/src/modules/page/page.component.ts",
1053
+ "line": 40,
1054
+ "character": 13
998
1055
  }
999
1056
  ],
1000
- "type": {
1001
- "type": "reflection",
1002
- "declaration": {
1003
- "id": 48,
1004
- "name": "__type",
1005
- "kind": 65536,
1006
- "kindString": "Type literal",
1057
+ "setSignature": [
1058
+ {
1059
+ "id": 47,
1060
+ "name": "layout",
1061
+ "kind": 1048576,
1062
+ "kindString": "Set signature",
1007
1063
  "flags": {},
1008
- "children": [
1009
- {
1010
- "id": 49,
1011
- "name": "route",
1012
- "kind": 1024,
1013
- "kindString": "Property",
1014
- "flags": {
1015
- "isOptional": true
1016
- },
1017
- "sources": [
1018
- {
1019
- "fileName": "lib/modules/action-hub/types/action-hub-needs-attention.ts",
1020
- "line": 23,
1021
- "character": 4
1022
- }
1023
- ],
1024
- "type": {
1025
- "type": "reflection",
1026
- "declaration": {
1027
- "id": 50,
1028
- "name": "__type",
1029
- "kind": 65536,
1030
- "kindString": "Type literal",
1031
- "flags": {},
1032
- "children": [
1033
- {
1034
- "id": 51,
1035
- "name": "commands",
1036
- "kind": 1024,
1037
- "kindString": "Property",
1038
- "flags": {},
1039
- "sources": [
1040
- {
1041
- "fileName": "lib/modules/action-hub/types/action-hub-needs-attention.ts",
1042
- "line": 25,
1043
- "character": 6
1044
- }
1045
- ],
1046
- "type": {
1047
- "type": "array",
1048
- "elementType": {
1049
- "type": "intrinsic",
1050
- "name": "any"
1051
- }
1052
- }
1053
- },
1054
- {
1055
- "id": 52,
1056
- "name": "extras",
1057
- "kind": 1024,
1058
- "kindString": "Property",
1059
- "flags": {
1060
- "isOptional": true
1061
- },
1062
- "sources": [
1063
- {
1064
- "fileName": "lib/modules/action-hub/types/action-hub-needs-attention.ts",
1065
- "line": 26,
1066
- "character": 6
1067
- }
1068
- ],
1069
- "type": {
1070
- "type": "reference",
1071
- "qualifiedName": "NavigationExtras",
1072
- "package": "@angular/router",
1073
- "name": "NavigationExtras"
1074
- }
1075
- }
1076
- ],
1077
- "groups": [
1078
- {
1079
- "title": "Properties",
1080
- "kind": 1024,
1081
- "children": [
1082
- 51,
1083
- 52
1084
- ]
1085
- }
1086
- ]
1087
- }
1064
+ "comment": {
1065
+ "shortText": "The page layout that corresponds with the top-level component type\nused on the page. For laying out custom content, use `auto` to allow\nthe page contents to expand beyond the bottom of the browser window\nor `fit` to constrain the page contents to the available viewport.",
1066
+ "tags": [
1067
+ {
1068
+ "tag": "default",
1069
+ "text": "\"auto\"\n"
1088
1070
  }
1089
- },
1071
+ ]
1072
+ },
1073
+ "parameters": [
1090
1074
  {
1091
- "id": 53,
1092
- "name": "url",
1093
- "kind": 1024,
1094
- "kindString": "Property",
1095
- "flags": {
1096
- "isOptional": true
1097
- },
1098
- "sources": [
1099
- {
1100
- "fileName": "lib/modules/action-hub/types/action-hub-needs-attention.ts",
1101
- "line": 28,
1102
- "character": 4
1103
- }
1104
- ],
1075
+ "id": 48,
1076
+ "name": "value",
1077
+ "kind": 32768,
1078
+ "kindString": "Parameter",
1079
+ "flags": {},
1105
1080
  "type": {
1106
- "type": "intrinsic",
1107
- "name": "string"
1081
+ "type": "reference",
1082
+ "id": 123,
1083
+ "name": "SkyPageLayoutType"
1108
1084
  }
1109
1085
  }
1110
1086
  ],
1111
- "groups": [
1112
- {
1113
- "title": "Properties",
1114
- "kind": 1024,
1115
- "children": [
1116
- 49,
1117
- 53
1118
- ]
1119
- }
1120
- ]
1087
+ "type": {
1088
+ "type": "intrinsic",
1089
+ "name": "void"
1090
+ }
1091
+ }
1092
+ ]
1093
+ },
1094
+ {
1095
+ "id": 57,
1096
+ "name": "ngOnDestroy",
1097
+ "kind": 2048,
1098
+ "kindString": "Method",
1099
+ "flags": {
1100
+ "isPublic": true
1101
+ },
1102
+ "sources": [
1103
+ {
1104
+ "fileName": "projects/pages/src/modules/page/page.component.ts",
1105
+ "line": 67,
1106
+ "character": 9
1107
+ }
1108
+ ],
1109
+ "signatures": [
1110
+ {
1111
+ "id": 58,
1112
+ "name": "ngOnDestroy",
1113
+ "kind": 4096,
1114
+ "kindString": "Call signature",
1115
+ "flags": {},
1116
+ "type": {
1117
+ "type": "intrinsic",
1118
+ "name": "void"
1119
+ },
1120
+ "implementationOf": {
1121
+ "type": "reference",
1122
+ "name": "OnDestroy.ngOnDestroy"
1123
+ }
1121
1124
  }
1125
+ ],
1126
+ "implementationOf": {
1127
+ "type": "reference",
1128
+ "name": "OnDestroy.ngOnDestroy"
1122
1129
  }
1123
1130
  },
1124
1131
  {
1125
- "id": 45,
1126
- "name": "title",
1127
- "kind": 1024,
1128
- "kindString": "Property",
1129
- "flags": {},
1130
- "comment": {
1131
- "shortText": "The title of the action item."
1132
+ "id": 55,
1133
+ "name": "ngOnInit",
1134
+ "kind": 2048,
1135
+ "kindString": "Method",
1136
+ "flags": {
1137
+ "isPublic": true
1132
1138
  },
1133
1139
  "sources": [
1134
1140
  {
1135
- "fileName": "projects/pages/src/modules/action-hub/types/action-hub-needs-attention.ts",
1136
- "line": 13,
1137
- "character": 2
1141
+ "fileName": "projects/pages/src/modules/page/page.component.ts",
1142
+ "line": 56,
1143
+ "character": 9
1138
1144
  }
1139
1145
  ],
1140
- "type": {
1141
- "type": "intrinsic",
1142
- "name": "string"
1146
+ "signatures": [
1147
+ {
1148
+ "id": 56,
1149
+ "name": "ngOnInit",
1150
+ "kind": 4096,
1151
+ "kindString": "Call signature",
1152
+ "flags": {},
1153
+ "type": {
1154
+ "type": "intrinsic",
1155
+ "name": "void"
1156
+ },
1157
+ "implementationOf": {
1158
+ "type": "reference",
1159
+ "name": "OnInit.ngOnInit"
1160
+ }
1161
+ }
1162
+ ],
1163
+ "implementationOf": {
1164
+ "type": "reference",
1165
+ "name": "OnInit.ngOnInit"
1143
1166
  }
1144
1167
  }
1145
1168
  ],
1146
1169
  "groups": [
1170
+ {
1171
+ "title": "Constructors",
1172
+ "kind": 512,
1173
+ "children": [
1174
+ 44
1175
+ ]
1176
+ },
1147
1177
  {
1148
1178
  "title": "Properties",
1149
1179
  "kind": 1024,
1150
1180
  "children": [
1151
- 54,
1152
- 46,
1153
- 47,
1154
- 45
1181
+ 49
1182
+ ]
1183
+ },
1184
+ {
1185
+ "title": "Accessors",
1186
+ "kind": 262144,
1187
+ "children": [
1188
+ 46
1189
+ ]
1190
+ },
1191
+ {
1192
+ "title": "Methods",
1193
+ "kind": 2048,
1194
+ "children": [
1195
+ 57,
1196
+ 55
1155
1197
  ]
1156
1198
  }
1157
1199
  ],
1158
1200
  "sources": [
1159
1201
  {
1160
- "fileName": "projects/pages/src/modules/action-hub/types/action-hub-needs-attention.ts",
1161
- "line": 9,
1162
- "character": 17
1202
+ "fileName": "projects/pages/src/modules/page/page.component.ts",
1203
+ "line": 31,
1204
+ "character": 13
1205
+ }
1206
+ ],
1207
+ "implementedTypes": [
1208
+ {
1209
+ "type": "reference",
1210
+ "qualifiedName": "OnInit",
1211
+ "package": "@angular/core",
1212
+ "name": "OnInit"
1213
+ },
1214
+ {
1215
+ "type": "reference",
1216
+ "qualifiedName": "OnDestroy",
1217
+ "package": "@angular/core",
1218
+ "name": "OnDestroy"
1163
1219
  }
1164
1220
  ]
1165
1221
  },
1166
1222
  {
1167
- "id": 62,
1168
- "name": "SkyPageLink",
1223
+ "id": 61,
1224
+ "name": "SkyPageContentComponent",
1225
+ "kind": 128,
1226
+ "kindString": "Class",
1227
+ "flags": {},
1228
+ "comment": {
1229
+ "shortText": "Displays page contents using spacing that corresponds to the parent\npage's layout."
1230
+ },
1231
+ "decorators": [
1232
+ {
1233
+ "name": "Component",
1234
+ "type": {
1235
+ "type": "reference",
1236
+ "qualifiedName": "ComponentDecorator",
1237
+ "package": "@angular/core",
1238
+ "name": "Component"
1239
+ },
1240
+ "arguments": {
1241
+ "obj": "{\n selector: 'sky-page-content',\n template: `<ng-content />`,\n styleUrls: ['./page-content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n}"
1242
+ }
1243
+ }
1244
+ ],
1245
+ "children": [],
1246
+ "groups": [
1247
+ {
1248
+ "title": "Constructors",
1249
+ "kind": 512,
1250
+ "children": [
1251
+ 62
1252
+ ]
1253
+ }
1254
+ ],
1255
+ "sources": [
1256
+ {
1257
+ "fileName": "projects/pages/src/modules/page/page-content.component.ts",
1258
+ "line": 13,
1259
+ "character": 13
1260
+ }
1261
+ ]
1262
+ },
1263
+ {
1264
+ "id": 67,
1265
+ "name": "SkyActionHubNeedsAttention",
1169
1266
  "kind": 256,
1170
1267
  "kindString": "Interface",
1171
1268
  "flags": {},
1172
1269
  "comment": {
1173
- "shortText": "Displays links to related information or recently accessed items."
1270
+ "shortText": "Specifies action items that require attention and directs users to pages\nwhere they can resolve them."
1174
1271
  },
1175
1272
  "children": [
1176
1273
  {
1177
- "id": 70,
1178
- "name": "label",
1274
+ "id": 77,
1275
+ "name": "click",
1179
1276
  "kind": 1024,
1180
1277
  "kindString": "Property",
1181
- "flags": {},
1278
+ "flags": {
1279
+ "isOptional": true
1280
+ },
1182
1281
  "comment": {
1183
- "shortText": "The link text."
1282
+ "shortText": "The click handler for the action item."
1184
1283
  },
1185
1284
  "sources": [
1186
1285
  {
1187
- "fileName": "projects/pages/src/modules/action-hub/types/page-link-interface.ts",
1188
- "line": 8,
1286
+ "fileName": "projects/pages/src/modules/action-hub/types/action-hub-needs-attention.ts",
1287
+ "line": 33,
1288
+ "character": 2
1289
+ }
1290
+ ],
1291
+ "type": {
1292
+ "type": "reference",
1293
+ "id": 78,
1294
+ "name": "SkyActionHubNeedsAttentionClickHandler"
1295
+ }
1296
+ },
1297
+ {
1298
+ "id": 69,
1299
+ "name": "message",
1300
+ "kind": 1024,
1301
+ "kindString": "Property",
1302
+ "flags": {
1303
+ "isOptional": true
1304
+ },
1305
+ "comment": {
1306
+ "shortText": "Text to display after the title.",
1307
+ "tags": [
1308
+ {
1309
+ "tag": "deprecated",
1310
+ "text": "Use `title` instead.\n"
1311
+ }
1312
+ ]
1313
+ },
1314
+ "sources": [
1315
+ {
1316
+ "fileName": "projects/pages/src/modules/action-hub/types/action-hub-needs-attention.ts",
1317
+ "line": 18,
1189
1318
  "character": 2
1190
1319
  }
1191
1320
  ],
1192
1321
  "type": {
1193
1322
  "type": "intrinsic",
1194
1323
  "name": "string"
1195
- },
1196
- "inheritedFrom": {
1197
- "type": "reference",
1198
- "name": "SkyPageLinkInterface.label"
1199
1324
  }
1200
1325
  },
1201
1326
  {
1202
- "id": 63,
1327
+ "id": 70,
1203
1328
  "name": "permalink",
1204
1329
  "kind": 1024,
1205
1330
  "kindString": "Property",
1206
- "flags": {},
1331
+ "flags": {
1332
+ "isOptional": true
1333
+ },
1207
1334
  "comment": {
1208
- "shortText": "The link destination."
1335
+ "shortText": "The link to resolve the action item."
1209
1336
  },
1210
1337
  "sources": [
1211
1338
  {
1212
- "fileName": "projects/pages/src/modules/action-hub/types/page-link.ts",
1213
- "line": 12,
1339
+ "fileName": "projects/pages/src/modules/action-hub/types/action-hub-needs-attention.ts",
1340
+ "line": 22,
1214
1341
  "character": 2
1215
1342
  }
1216
1343
  ],
1217
1344
  "type": {
1218
1345
  "type": "reflection",
1219
1346
  "declaration": {
1220
- "id": 64,
1347
+ "id": 71,
1221
1348
  "name": "__type",
1222
1349
  "kind": 65536,
1223
1350
  "kindString": "Type literal",
1224
1351
  "flags": {},
1225
1352
  "children": [
1226
1353
  {
1227
- "id": 65,
1354
+ "id": 72,
1228
1355
  "name": "route",
1229
1356
  "kind": 1024,
1230
1357
  "kindString": "Property",
@@ -1233,30 +1360,30 @@
1233
1360
  },
1234
1361
  "sources": [
1235
1362
  {
1236
- "fileName": "lib/modules/action-hub/types/page-link.ts",
1237
- "line": 13,
1363
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/action-hub-needs-attention.ts",
1364
+ "line": 23,
1238
1365
  "character": 4
1239
1366
  }
1240
1367
  ],
1241
1368
  "type": {
1242
1369
  "type": "reflection",
1243
1370
  "declaration": {
1244
- "id": 66,
1371
+ "id": 73,
1245
1372
  "name": "__type",
1246
1373
  "kind": 65536,
1247
1374
  "kindString": "Type literal",
1248
1375
  "flags": {},
1249
1376
  "children": [
1250
1377
  {
1251
- "id": 67,
1378
+ "id": 74,
1252
1379
  "name": "commands",
1253
1380
  "kind": 1024,
1254
1381
  "kindString": "Property",
1255
1382
  "flags": {},
1256
1383
  "sources": [
1257
1384
  {
1258
- "fileName": "lib/modules/action-hub/types/page-link.ts",
1259
- "line": 14,
1385
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/action-hub-needs-attention.ts",
1386
+ "line": 25,
1260
1387
  "character": 6
1261
1388
  }
1262
1389
  ],
@@ -1269,7 +1396,7 @@
1269
1396
  }
1270
1397
  },
1271
1398
  {
1272
- "id": 68,
1399
+ "id": 75,
1273
1400
  "name": "extras",
1274
1401
  "kind": 1024,
1275
1402
  "kindString": "Property",
@@ -1278,8 +1405,8 @@
1278
1405
  },
1279
1406
  "sources": [
1280
1407
  {
1281
- "fileName": "lib/modules/action-hub/types/page-link.ts",
1282
- "line": 15,
1408
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/action-hub-needs-attention.ts",
1409
+ "line": 26,
1283
1410
  "character": 6
1284
1411
  }
1285
1412
  ],
@@ -1296,8 +1423,8 @@
1296
1423
  "title": "Properties",
1297
1424
  "kind": 1024,
1298
1425
  "children": [
1299
- 67,
1300
- 68
1426
+ 74,
1427
+ 75
1301
1428
  ]
1302
1429
  }
1303
1430
  ]
@@ -1305,7 +1432,7 @@
1305
1432
  }
1306
1433
  },
1307
1434
  {
1308
- "id": 69,
1435
+ "id": 76,
1309
1436
  "name": "url",
1310
1437
  "kind": 1024,
1311
1438
  "kindString": "Property",
@@ -1314,8 +1441,8 @@
1314
1441
  },
1315
1442
  "sources": [
1316
1443
  {
1317
- "fileName": "lib/modules/action-hub/types/page-link.ts",
1318
- "line": 17,
1444
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/action-hub-needs-attention.ts",
1445
+ "line": 28,
1319
1446
  "character": 4
1320
1447
  }
1321
1448
  ],
@@ -1330,13 +1457,34 @@
1330
1457
  "title": "Properties",
1331
1458
  "kind": 1024,
1332
1459
  "children": [
1333
- 65,
1334
- 69
1460
+ 72,
1461
+ 76
1335
1462
  ]
1336
1463
  }
1337
1464
  ]
1338
1465
  }
1339
1466
  }
1467
+ },
1468
+ {
1469
+ "id": 68,
1470
+ "name": "title",
1471
+ "kind": 1024,
1472
+ "kindString": "Property",
1473
+ "flags": {},
1474
+ "comment": {
1475
+ "shortText": "The title of the action item."
1476
+ },
1477
+ "sources": [
1478
+ {
1479
+ "fileName": "projects/pages/src/modules/action-hub/types/action-hub-needs-attention.ts",
1480
+ "line": 13,
1481
+ "character": 2
1482
+ }
1483
+ ],
1484
+ "type": {
1485
+ "type": "intrinsic",
1486
+ "name": "string"
1487
+ }
1340
1488
  }
1341
1489
  ],
1342
1490
  "groups": [
@@ -1344,35 +1492,24 @@
1344
1492
  "title": "Properties",
1345
1493
  "kind": 1024,
1346
1494
  "children": [
1495
+ 77,
1496
+ 69,
1347
1497
  70,
1348
- 63
1498
+ 68
1349
1499
  ]
1350
1500
  }
1351
1501
  ],
1352
1502
  "sources": [
1353
1503
  {
1354
- "fileName": "projects/pages/src/modules/action-hub/types/page-link.ts",
1355
- "line": 8,
1504
+ "fileName": "projects/pages/src/modules/action-hub/types/action-hub-needs-attention.ts",
1505
+ "line": 9,
1356
1506
  "character": 17
1357
1507
  }
1358
- ],
1359
- "extendedTypes": [
1360
- {
1361
- "type": "reference",
1362
- "name": "SkyPageLinkInterface"
1363
- }
1364
- ],
1365
- "extendedBy": [
1366
- {
1367
- "type": "reference",
1368
- "id": 86,
1369
- "name": "SkyRecentLink"
1370
- }
1371
1508
  ]
1372
1509
  },
1373
1510
  {
1374
- "id": 72,
1375
- "name": "SkyPageModalLink",
1511
+ "id": 85,
1512
+ "name": "SkyPageLink",
1376
1513
  "kind": 256,
1377
1514
  "kindString": "Interface",
1378
1515
  "flags": {},
@@ -1381,7 +1518,7 @@
1381
1518
  },
1382
1519
  "children": [
1383
1520
  {
1384
- "id": 84,
1521
+ "id": 93,
1385
1522
  "name": "label",
1386
1523
  "kind": 1024,
1387
1524
  "kindString": "Property",
@@ -1406,41 +1543,248 @@
1406
1543
  }
1407
1544
  },
1408
1545
  {
1409
- "id": 80,
1410
- "name": "modal",
1546
+ "id": 86,
1547
+ "name": "permalink",
1411
1548
  "kind": 1024,
1412
1549
  "kindString": "Property",
1413
- "flags": {
1414
- "isOptional": true
1415
- },
1550
+ "flags": {},
1416
1551
  "comment": {
1417
- "shortText": "The modal parameters."
1552
+ "shortText": "The link destination."
1418
1553
  },
1419
1554
  "sources": [
1420
1555
  {
1421
- "fileName": "projects/pages/src/modules/action-hub/types/page-modal-link.ts",
1422
- "line": 23,
1556
+ "fileName": "projects/pages/src/modules/action-hub/types/page-link.ts",
1557
+ "line": 12,
1423
1558
  "character": 2
1424
1559
  }
1425
1560
  ],
1426
1561
  "type": {
1427
1562
  "type": "reflection",
1428
1563
  "declaration": {
1429
- "id": 81,
1564
+ "id": 87,
1430
1565
  "name": "__type",
1431
1566
  "kind": 65536,
1432
1567
  "kindString": "Type literal",
1433
1568
  "flags": {},
1434
1569
  "children": [
1435
1570
  {
1436
- "id": 82,
1437
- "name": "component",
1571
+ "id": 88,
1572
+ "name": "route",
1438
1573
  "kind": 1024,
1439
1574
  "kindString": "Property",
1440
- "flags": {},
1575
+ "flags": {
1576
+ "isOptional": true
1577
+ },
1578
+ "sources": [
1579
+ {
1580
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-link.ts",
1581
+ "line": 13,
1582
+ "character": 4
1583
+ }
1584
+ ],
1585
+ "type": {
1586
+ "type": "reflection",
1587
+ "declaration": {
1588
+ "id": 89,
1589
+ "name": "__type",
1590
+ "kind": 65536,
1591
+ "kindString": "Type literal",
1592
+ "flags": {},
1593
+ "children": [
1594
+ {
1595
+ "id": 90,
1596
+ "name": "commands",
1597
+ "kind": 1024,
1598
+ "kindString": "Property",
1599
+ "flags": {},
1600
+ "sources": [
1601
+ {
1602
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-link.ts",
1603
+ "line": 14,
1604
+ "character": 6
1605
+ }
1606
+ ],
1607
+ "type": {
1608
+ "type": "array",
1609
+ "elementType": {
1610
+ "type": "intrinsic",
1611
+ "name": "any"
1612
+ }
1613
+ }
1614
+ },
1615
+ {
1616
+ "id": 91,
1617
+ "name": "extras",
1618
+ "kind": 1024,
1619
+ "kindString": "Property",
1620
+ "flags": {
1621
+ "isOptional": true
1622
+ },
1623
+ "sources": [
1624
+ {
1625
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-link.ts",
1626
+ "line": 15,
1627
+ "character": 6
1628
+ }
1629
+ ],
1630
+ "type": {
1631
+ "type": "reference",
1632
+ "qualifiedName": "NavigationExtras",
1633
+ "package": "@angular/router",
1634
+ "name": "NavigationExtras"
1635
+ }
1636
+ }
1637
+ ],
1638
+ "groups": [
1639
+ {
1640
+ "title": "Properties",
1641
+ "kind": 1024,
1642
+ "children": [
1643
+ 90,
1644
+ 91
1645
+ ]
1646
+ }
1647
+ ]
1648
+ }
1649
+ }
1650
+ },
1651
+ {
1652
+ "id": 92,
1653
+ "name": "url",
1654
+ "kind": 1024,
1655
+ "kindString": "Property",
1656
+ "flags": {
1657
+ "isOptional": true
1658
+ },
1659
+ "sources": [
1660
+ {
1661
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-link.ts",
1662
+ "line": 17,
1663
+ "character": 4
1664
+ }
1665
+ ],
1666
+ "type": {
1667
+ "type": "intrinsic",
1668
+ "name": "string"
1669
+ }
1670
+ }
1671
+ ],
1672
+ "groups": [
1673
+ {
1674
+ "title": "Properties",
1675
+ "kind": 1024,
1676
+ "children": [
1677
+ 88,
1678
+ 92
1679
+ ]
1680
+ }
1681
+ ]
1682
+ }
1683
+ }
1684
+ }
1685
+ ],
1686
+ "groups": [
1687
+ {
1688
+ "title": "Properties",
1689
+ "kind": 1024,
1690
+ "children": [
1691
+ 93,
1692
+ 86
1693
+ ]
1694
+ }
1695
+ ],
1696
+ "sources": [
1697
+ {
1698
+ "fileName": "projects/pages/src/modules/action-hub/types/page-link.ts",
1699
+ "line": 8,
1700
+ "character": 17
1701
+ }
1702
+ ],
1703
+ "extendedTypes": [
1704
+ {
1705
+ "type": "reference",
1706
+ "name": "SkyPageLinkInterface"
1707
+ }
1708
+ ],
1709
+ "extendedBy": [
1710
+ {
1711
+ "type": "reference",
1712
+ "id": 109,
1713
+ "name": "SkyRecentLink"
1714
+ }
1715
+ ]
1716
+ },
1717
+ {
1718
+ "id": 95,
1719
+ "name": "SkyPageModalLink",
1720
+ "kind": 256,
1721
+ "kindString": "Interface",
1722
+ "flags": {},
1723
+ "comment": {
1724
+ "shortText": "Displays links to related information or recently accessed items."
1725
+ },
1726
+ "children": [
1727
+ {
1728
+ "id": 107,
1729
+ "name": "label",
1730
+ "kind": 1024,
1731
+ "kindString": "Property",
1732
+ "flags": {},
1733
+ "comment": {
1734
+ "shortText": "The link text."
1735
+ },
1736
+ "sources": [
1737
+ {
1738
+ "fileName": "projects/pages/src/modules/action-hub/types/page-link-interface.ts",
1739
+ "line": 8,
1740
+ "character": 2
1741
+ }
1742
+ ],
1743
+ "type": {
1744
+ "type": "intrinsic",
1745
+ "name": "string"
1746
+ },
1747
+ "inheritedFrom": {
1748
+ "type": "reference",
1749
+ "name": "SkyPageLinkInterface.label"
1750
+ }
1751
+ },
1752
+ {
1753
+ "id": 103,
1754
+ "name": "modal",
1755
+ "kind": 1024,
1756
+ "kindString": "Property",
1757
+ "flags": {
1758
+ "isOptional": true
1759
+ },
1760
+ "comment": {
1761
+ "shortText": "The modal parameters."
1762
+ },
1763
+ "sources": [
1764
+ {
1765
+ "fileName": "projects/pages/src/modules/action-hub/types/page-modal-link.ts",
1766
+ "line": 23,
1767
+ "character": 2
1768
+ }
1769
+ ],
1770
+ "type": {
1771
+ "type": "reflection",
1772
+ "declaration": {
1773
+ "id": 104,
1774
+ "name": "__type",
1775
+ "kind": 65536,
1776
+ "kindString": "Type literal",
1777
+ "flags": {},
1778
+ "children": [
1779
+ {
1780
+ "id": 105,
1781
+ "name": "component",
1782
+ "kind": 1024,
1783
+ "kindString": "Property",
1784
+ "flags": {},
1441
1785
  "sources": [
1442
1786
  {
1443
- "fileName": "lib/modules/action-hub/types/page-modal-link.ts",
1787
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-modal-link.ts",
1444
1788
  "line": 24,
1445
1789
  "character": 4
1446
1790
  }
@@ -1451,7 +1795,7 @@
1451
1795
  }
1452
1796
  },
1453
1797
  {
1454
- "id": 83,
1798
+ "id": 106,
1455
1799
  "name": "config",
1456
1800
  "kind": 1024,
1457
1801
  "kindString": "Property",
@@ -1460,7 +1804,7 @@
1460
1804
  },
1461
1805
  "sources": [
1462
1806
  {
1463
- "fileName": "lib/modules/action-hub/types/page-modal-link.ts",
1807
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-modal-link.ts",
1464
1808
  "line": 25,
1465
1809
  "character": 4
1466
1810
  }
@@ -1476,8 +1820,8 @@
1476
1820
  "title": "Properties",
1477
1821
  "kind": 1024,
1478
1822
  "children": [
1479
- 82,
1480
- 83
1823
+ 105,
1824
+ 106
1481
1825
  ]
1482
1826
  }
1483
1827
  ]
@@ -1485,7 +1829,7 @@
1485
1829
  }
1486
1830
  },
1487
1831
  {
1488
- "id": 73,
1832
+ "id": 96,
1489
1833
  "name": "permalink",
1490
1834
  "kind": 1024,
1491
1835
  "kindString": "Property",
@@ -1505,14 +1849,14 @@
1505
1849
  "type": {
1506
1850
  "type": "reflection",
1507
1851
  "declaration": {
1508
- "id": 74,
1852
+ "id": 97,
1509
1853
  "name": "__type",
1510
1854
  "kind": 65536,
1511
1855
  "kindString": "Type literal",
1512
1856
  "flags": {},
1513
1857
  "children": [
1514
1858
  {
1515
- "id": 75,
1859
+ "id": 98,
1516
1860
  "name": "route",
1517
1861
  "kind": 1024,
1518
1862
  "kindString": "Property",
@@ -1521,7 +1865,7 @@
1521
1865
  },
1522
1866
  "sources": [
1523
1867
  {
1524
- "fileName": "lib/modules/action-hub/types/page-modal-link.ts",
1868
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-modal-link.ts",
1525
1869
  "line": 14,
1526
1870
  "character": 4
1527
1871
  }
@@ -1529,21 +1873,21 @@
1529
1873
  "type": {
1530
1874
  "type": "reflection",
1531
1875
  "declaration": {
1532
- "id": 76,
1876
+ "id": 99,
1533
1877
  "name": "__type",
1534
1878
  "kind": 65536,
1535
1879
  "kindString": "Type literal",
1536
1880
  "flags": {},
1537
1881
  "children": [
1538
1882
  {
1539
- "id": 77,
1883
+ "id": 100,
1540
1884
  "name": "commands",
1541
1885
  "kind": 1024,
1542
1886
  "kindString": "Property",
1543
1887
  "flags": {},
1544
1888
  "sources": [
1545
1889
  {
1546
- "fileName": "lib/modules/action-hub/types/page-modal-link.ts",
1890
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-modal-link.ts",
1547
1891
  "line": 15,
1548
1892
  "character": 6
1549
1893
  }
@@ -1557,7 +1901,7 @@
1557
1901
  }
1558
1902
  },
1559
1903
  {
1560
- "id": 78,
1904
+ "id": 101,
1561
1905
  "name": "extras",
1562
1906
  "kind": 1024,
1563
1907
  "kindString": "Property",
@@ -1566,7 +1910,7 @@
1566
1910
  },
1567
1911
  "sources": [
1568
1912
  {
1569
- "fileName": "lib/modules/action-hub/types/page-modal-link.ts",
1913
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-modal-link.ts",
1570
1914
  "line": 16,
1571
1915
  "character": 6
1572
1916
  }
@@ -1584,8 +1928,8 @@
1584
1928
  "title": "Properties",
1585
1929
  "kind": 1024,
1586
1930
  "children": [
1587
- 77,
1588
- 78
1931
+ 100,
1932
+ 101
1589
1933
  ]
1590
1934
  }
1591
1935
  ]
@@ -1593,7 +1937,7 @@
1593
1937
  }
1594
1938
  },
1595
1939
  {
1596
- "id": 79,
1940
+ "id": 102,
1597
1941
  "name": "url",
1598
1942
  "kind": 1024,
1599
1943
  "kindString": "Property",
@@ -1602,7 +1946,7 @@
1602
1946
  },
1603
1947
  "sources": [
1604
1948
  {
1605
- "fileName": "lib/modules/action-hub/types/page-modal-link.ts",
1949
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-modal-link.ts",
1606
1950
  "line": 18,
1607
1951
  "character": 4
1608
1952
  }
@@ -1618,8 +1962,8 @@
1618
1962
  "title": "Properties",
1619
1963
  "kind": 1024,
1620
1964
  "children": [
1621
- 75,
1622
- 79
1965
+ 98,
1966
+ 102
1623
1967
  ]
1624
1968
  }
1625
1969
  ]
@@ -1632,9 +1976,9 @@
1632
1976
  "title": "Properties",
1633
1977
  "kind": 1024,
1634
1978
  "children": [
1635
- 84,
1636
- 80,
1637
- 73
1979
+ 107,
1980
+ 103,
1981
+ 96
1638
1982
  ]
1639
1983
  }
1640
1984
  ],
@@ -1653,7 +1997,7 @@
1653
1997
  ]
1654
1998
  },
1655
1999
  {
1656
- "id": 86,
2000
+ "id": 109,
1657
2001
  "name": "SkyRecentLink",
1658
2002
  "kind": 256,
1659
2003
  "kindString": "Interface",
@@ -1669,7 +2013,7 @@
1669
2013
  },
1670
2014
  "children": [
1671
2015
  {
1672
- "id": 95,
2016
+ "id": 118,
1673
2017
  "name": "label",
1674
2018
  "kind": 1024,
1675
2019
  "kindString": "Property",
@@ -1690,12 +2034,12 @@
1690
2034
  },
1691
2035
  "inheritedFrom": {
1692
2036
  "type": "reference",
1693
- "id": 70,
2037
+ "id": 93,
1694
2038
  "name": "SkyPageLink.label"
1695
2039
  }
1696
2040
  },
1697
2041
  {
1698
- "id": 87,
2042
+ "id": 110,
1699
2043
  "name": "lastAccessed",
1700
2044
  "kind": 1024,
1701
2045
  "kindString": "Property",
@@ -1724,7 +2068,7 @@
1724
2068
  }
1725
2069
  },
1726
2070
  {
1727
- "id": 88,
2071
+ "id": 111,
1728
2072
  "name": "permalink",
1729
2073
  "kind": 1024,
1730
2074
  "kindString": "Property",
@@ -1742,14 +2086,14 @@
1742
2086
  "type": {
1743
2087
  "type": "reflection",
1744
2088
  "declaration": {
1745
- "id": 89,
2089
+ "id": 112,
1746
2090
  "name": "__type",
1747
2091
  "kind": 65536,
1748
2092
  "kindString": "Type literal",
1749
2093
  "flags": {},
1750
2094
  "children": [
1751
2095
  {
1752
- "id": 90,
2096
+ "id": 113,
1753
2097
  "name": "route",
1754
2098
  "kind": 1024,
1755
2099
  "kindString": "Property",
@@ -1758,7 +2102,7 @@
1758
2102
  },
1759
2103
  "sources": [
1760
2104
  {
1761
- "fileName": "lib/modules/action-hub/types/page-link.ts",
2105
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-link.ts",
1762
2106
  "line": 13,
1763
2107
  "character": 4
1764
2108
  }
@@ -1766,21 +2110,21 @@
1766
2110
  "type": {
1767
2111
  "type": "reflection",
1768
2112
  "declaration": {
1769
- "id": 91,
2113
+ "id": 114,
1770
2114
  "name": "__type",
1771
2115
  "kind": 65536,
1772
2116
  "kindString": "Type literal",
1773
2117
  "flags": {},
1774
2118
  "children": [
1775
2119
  {
1776
- "id": 92,
2120
+ "id": 115,
1777
2121
  "name": "commands",
1778
2122
  "kind": 1024,
1779
2123
  "kindString": "Property",
1780
2124
  "flags": {},
1781
2125
  "sources": [
1782
2126
  {
1783
- "fileName": "lib/modules/action-hub/types/page-link.ts",
2127
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-link.ts",
1784
2128
  "line": 14,
1785
2129
  "character": 6
1786
2130
  }
@@ -1794,7 +2138,7 @@
1794
2138
  }
1795
2139
  },
1796
2140
  {
1797
- "id": 93,
2141
+ "id": 116,
1798
2142
  "name": "extras",
1799
2143
  "kind": 1024,
1800
2144
  "kindString": "Property",
@@ -1803,7 +2147,7 @@
1803
2147
  },
1804
2148
  "sources": [
1805
2149
  {
1806
- "fileName": "lib/modules/action-hub/types/page-link.ts",
2150
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-link.ts",
1807
2151
  "line": 15,
1808
2152
  "character": 6
1809
2153
  }
@@ -1821,8 +2165,8 @@
1821
2165
  "title": "Properties",
1822
2166
  "kind": 1024,
1823
2167
  "children": [
1824
- 92,
1825
- 93
2168
+ 115,
2169
+ 116
1826
2170
  ]
1827
2171
  }
1828
2172
  ]
@@ -1830,7 +2174,7 @@
1830
2174
  }
1831
2175
  },
1832
2176
  {
1833
- "id": 94,
2177
+ "id": 117,
1834
2178
  "name": "url",
1835
2179
  "kind": 1024,
1836
2180
  "kindString": "Property",
@@ -1839,7 +2183,7 @@
1839
2183
  },
1840
2184
  "sources": [
1841
2185
  {
1842
- "fileName": "lib/modules/action-hub/types/page-link.ts",
2186
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/page-link.ts",
1843
2187
  "line": 17,
1844
2188
  "character": 4
1845
2189
  }
@@ -1855,8 +2199,8 @@
1855
2199
  "title": "Properties",
1856
2200
  "kind": 1024,
1857
2201
  "children": [
1858
- 90,
1859
- 94
2202
+ 113,
2203
+ 117
1860
2204
  ]
1861
2205
  }
1862
2206
  ]
@@ -1864,7 +2208,7 @@
1864
2208
  },
1865
2209
  "inheritedFrom": {
1866
2210
  "type": "reference",
1867
- "id": 63,
2211
+ "id": 86,
1868
2212
  "name": "SkyPageLink.permalink"
1869
2213
  }
1870
2214
  }
@@ -1874,9 +2218,9 @@
1874
2218
  "title": "Properties",
1875
2219
  "kind": 1024,
1876
2220
  "children": [
1877
- 95,
1878
- 87,
1879
- 88
2221
+ 118,
2222
+ 110,
2223
+ 111
1880
2224
  ]
1881
2225
  }
1882
2226
  ],
@@ -1890,13 +2234,13 @@
1890
2234
  "extendedTypes": [
1891
2235
  {
1892
2236
  "type": "reference",
1893
- "id": 62,
2237
+ "id": 85,
1894
2238
  "name": "SkyPageLink"
1895
2239
  }
1896
2240
  ]
1897
2241
  },
1898
2242
  {
1899
- "id": 55,
2243
+ "id": 78,
1900
2244
  "name": "SkyActionHubNeedsAttentionClickHandler",
1901
2245
  "kind": 4194304,
1902
2246
  "kindString": "Type alias",
@@ -1911,35 +2255,35 @@
1911
2255
  "type": {
1912
2256
  "type": "reflection",
1913
2257
  "declaration": {
1914
- "id": 56,
2258
+ "id": 79,
1915
2259
  "name": "__type",
1916
2260
  "kind": 65536,
1917
2261
  "kindString": "Type literal",
1918
2262
  "flags": {},
1919
2263
  "sources": [
1920
2264
  {
1921
- "fileName": "lib/modules/action-hub/types/action-hub-needs-attention-click-handler.ts",
2265
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/action-hub-needs-attention-click-handler.ts",
1922
2266
  "line": 1,
1923
2267
  "character": 53
1924
2268
  }
1925
2269
  ],
1926
2270
  "signatures": [
1927
2271
  {
1928
- "id": 57,
2272
+ "id": 80,
1929
2273
  "name": "__type",
1930
2274
  "kind": 4096,
1931
2275
  "kindString": "Call signature",
1932
2276
  "flags": {},
1933
2277
  "parameters": [
1934
2278
  {
1935
- "id": 58,
2279
+ "id": 81,
1936
2280
  "name": "_",
1937
2281
  "kind": 32768,
1938
2282
  "kindString": "Parameter",
1939
2283
  "flags": {},
1940
2284
  "type": {
1941
2285
  "type": "reference",
1942
- "id": 59,
2286
+ "id": 82,
1943
2287
  "name": "SkyActionHubNeedsAttentionClickHandlerArgs"
1944
2288
  }
1945
2289
  }
@@ -1954,7 +2298,7 @@
1954
2298
  }
1955
2299
  },
1956
2300
  {
1957
- "id": 59,
2301
+ "id": 82,
1958
2302
  "name": "SkyActionHubNeedsAttentionClickHandlerArgs",
1959
2303
  "kind": 4194304,
1960
2304
  "kindString": "Type alias",
@@ -1969,21 +2313,21 @@
1969
2313
  "type": {
1970
2314
  "type": "reflection",
1971
2315
  "declaration": {
1972
- "id": 60,
2316
+ "id": 83,
1973
2317
  "name": "__type",
1974
2318
  "kind": 65536,
1975
2319
  "kindString": "Type literal",
1976
2320
  "flags": {},
1977
2321
  "children": [
1978
2322
  {
1979
- "id": 61,
2323
+ "id": 84,
1980
2324
  "name": "item",
1981
2325
  "kind": 1024,
1982
2326
  "kindString": "Property",
1983
2327
  "flags": {},
1984
2328
  "sources": [
1985
2329
  {
1986
- "fileName": "lib/modules/action-hub/types/action-hub-needs-attention-click-handler.ts",
2330
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/action-hub-needs-attention-click-handler.ts",
1987
2331
  "line": 6,
1988
2332
  "character": 2
1989
2333
  }
@@ -1999,13 +2343,13 @@
1999
2343
  "title": "Properties",
2000
2344
  "kind": 1024,
2001
2345
  "children": [
2002
- 61
2346
+ 84
2003
2347
  ]
2004
2348
  }
2005
2349
  ],
2006
2350
  "sources": [
2007
2351
  {
2008
- "fileName": "lib/modules/action-hub/types/action-hub-needs-attention-click-handler.ts",
2352
+ "fileName": "libs/components/pages/src/lib/modules/action-hub/types/action-hub-needs-attention-click-handler.ts",
2009
2353
  "line": 5,
2010
2354
  "character": 57
2011
2355
  }
@@ -2014,7 +2358,46 @@
2014
2358
  }
2015
2359
  },
2016
2360
  {
2017
- "id": 71,
2361
+ "id": 123,
2362
+ "name": "SkyPageLayoutType",
2363
+ "kind": 4194304,
2364
+ "kindString": "Type alias",
2365
+ "flags": {},
2366
+ "sources": [
2367
+ {
2368
+ "fileName": "projects/pages/src/modules/page/types/page-layout-type.ts",
2369
+ "line": 1,
2370
+ "character": 12
2371
+ }
2372
+ ],
2373
+ "type": {
2374
+ "type": "union",
2375
+ "types": [
2376
+ {
2377
+ "type": "literal",
2378
+ "value": "none"
2379
+ },
2380
+ {
2381
+ "type": "literal",
2382
+ "value": "fit"
2383
+ },
2384
+ {
2385
+ "type": "literal",
2386
+ "value": "blocks"
2387
+ },
2388
+ {
2389
+ "type": "literal",
2390
+ "value": "list"
2391
+ },
2392
+ {
2393
+ "type": "literal",
2394
+ "value": "tabs"
2395
+ }
2396
+ ]
2397
+ }
2398
+ },
2399
+ {
2400
+ "id": 94,
2018
2401
  "name": "SkyPageLinksInput",
2019
2402
  "kind": 4194304,
2020
2403
  "kindString": "Type alias",
@@ -2033,7 +2416,7 @@
2033
2416
  "type": "array",
2034
2417
  "elementType": {
2035
2418
  "type": "reference",
2036
- "id": 62,
2419
+ "id": 85,
2037
2420
  "name": "SkyPageLink"
2038
2421
  }
2039
2422
  },
@@ -2049,7 +2432,7 @@
2049
2432
  }
2050
2433
  },
2051
2434
  {
2052
- "id": 85,
2435
+ "id": 108,
2053
2436
  "name": "SkyPageModalLinksInput",
2054
2437
  "kind": 4194304,
2055
2438
  "kindString": "Type alias",
@@ -2068,7 +2451,7 @@
2068
2451
  "type": "array",
2069
2452
  "elementType": {
2070
2453
  "type": "reference",
2071
- "id": 72,
2454
+ "id": 95,
2072
2455
  "name": "SkyPageModalLink"
2073
2456
  }
2074
2457
  },
@@ -2084,7 +2467,7 @@
2084
2467
  }
2085
2468
  },
2086
2469
  {
2087
- "id": 96,
2470
+ "id": 119,
2088
2471
  "name": "SkyRecentLinksInput",
2089
2472
  "kind": 4194304,
2090
2473
  "kindString": "Type alias",
@@ -2106,7 +2489,7 @@
2106
2489
  "type": "array",
2107
2490
  "elementType": {
2108
2491
  "type": "reference",
2109
- "id": 86,
2492
+ "id": 109,
2110
2493
  "name": "SkyRecentLink"
2111
2494
  }
2112
2495
  },
@@ -2124,60 +2507,402 @@
2124
2507
  }
2125
2508
  ]
2126
2509
  }
2127
- }
2128
- ],
2129
- "groups": [
2130
- {
2131
- "title": "Classes",
2132
- "kind": 128,
2133
- "children": [
2134
- 41,
2135
- 97,
2136
- 1,
2137
- 15,
2138
- 18,
2139
- 21,
2140
- 26
2141
- ]
2142
- },
2143
- {
2144
- "title": "Interfaces",
2145
- "kind": 256,
2146
- "children": [
2147
- 44,
2148
- 62,
2149
- 72,
2150
- 86
2151
- ]
2152
2510
  },
2153
2511
  {
2154
- "title": "Type aliases",
2155
- "kind": 4194304,
2512
+ "id": 127,
2513
+ "name": "SkyPageHarness",
2514
+ "kind": 128,
2515
+ "kindString": "Class",
2516
+ "flags": {},
2517
+ "comment": {
2518
+ "shortText": "Harness for interacting with a page component in tests."
2519
+ },
2156
2520
  "children": [
2157
- 55,
2158
- 59,
2159
- 71,
2160
- 85,
2161
- 96
2162
- ]
2163
- }
2164
- ],
2165
- "sources": [
2166
- {
2167
- "fileName": "index.ts",
2168
- "line": 1,
2169
- "character": 0
2170
- }
2171
- ]
2172
- },
2173
- "codeExamples": [
2174
- {
2175
- "fileName": "action-hub-demo.component.html",
2176
- "filePath": "/projects/pages/documentation/code-examples/action-hub/action-hub-demo.component.html",
2177
- "rawContents": "<sky-action-hub\n [needsAttention]=\"needsAttention\"\n [recentLinks]=\"recentLinks\"\n [relatedLinks]=\"relatedLinks\"\n [settingsLinks]=\"settingsLinks\"\n [title]=\"title\"\n>\n <sky-action-hub-buttons>\n <a\n *ngFor=\"let button of buttons\"\n class=\"sky-btn sky-btn-default sky-margin-inline-sm\"\n [href]=\"button.permalink.url\"\n >\n {{ button.label }}\n </a>\n </sky-action-hub-buttons>\n\n <sky-action-hub-content>\n <h2 class=\"sky-font-heading-2\">Additional content</h2>\n <p>More content can go here as needed for the functional area.</p>\n </sky-action-hub-content>\n</sky-action-hub>\n"
2178
- },
2179
- {
2180
- "fileName": "action-hub-demo.component.ts",
2521
+ {
2522
+ "id": 140,
2523
+ "name": "getLayout",
2524
+ "kind": 2048,
2525
+ "kindString": "Method",
2526
+ "flags": {
2527
+ "isPublic": true
2528
+ },
2529
+ "sources": [
2530
+ {
2531
+ "fileName": "projects/pages/src/testing/page/page-harness.ts",
2532
+ "line": 35,
2533
+ "character": 15
2534
+ }
2535
+ ],
2536
+ "signatures": [
2537
+ {
2538
+ "id": 141,
2539
+ "name": "getLayout",
2540
+ "kind": 4096,
2541
+ "kindString": "Call signature",
2542
+ "flags": {},
2543
+ "comment": {
2544
+ "shortText": "Gets the current layout."
2545
+ },
2546
+ "type": {
2547
+ "type": "reference",
2548
+ "typeArguments": [
2549
+ {
2550
+ "type": "reference",
2551
+ "id": 123,
2552
+ "name": "SkyPageLayoutType"
2553
+ }
2554
+ ],
2555
+ "qualifiedName": "Promise",
2556
+ "package": "typescript",
2557
+ "name": "Promise"
2558
+ }
2559
+ }
2560
+ ]
2561
+ },
2562
+ {
2563
+ "id": 142,
2564
+ "name": "getPageHeader",
2565
+ "kind": 2048,
2566
+ "kindString": "Method",
2567
+ "flags": {
2568
+ "isPublic": true
2569
+ },
2570
+ "sources": [
2571
+ {
2572
+ "fileName": "projects/pages/src/testing/page/page-harness.ts",
2573
+ "line": 51,
2574
+ "character": 15
2575
+ }
2576
+ ],
2577
+ "signatures": [
2578
+ {
2579
+ "id": 143,
2580
+ "name": "getPageHeader",
2581
+ "kind": 4096,
2582
+ "kindString": "Call signature",
2583
+ "flags": {},
2584
+ "comment": {
2585
+ "shortText": "Gets the first page header that matches the given filters."
2586
+ },
2587
+ "parameters": [
2588
+ {
2589
+ "id": 144,
2590
+ "name": "filters",
2591
+ "kind": 32768,
2592
+ "kindString": "Parameter",
2593
+ "flags": {
2594
+ "isOptional": true
2595
+ },
2596
+ "comment": {
2597
+ "shortText": "filters for which page header to return\n"
2598
+ },
2599
+ "type": {
2600
+ "type": "reference",
2601
+ "name": "SkyPageHeaderHarnessFilters"
2602
+ }
2603
+ }
2604
+ ],
2605
+ "type": {
2606
+ "type": "reference",
2607
+ "typeArguments": [
2608
+ {
2609
+ "type": "reference",
2610
+ "name": "SkyPageHeaderHarness"
2611
+ }
2612
+ ],
2613
+ "qualifiedName": "Promise",
2614
+ "package": "typescript",
2615
+ "name": "Promise"
2616
+ }
2617
+ }
2618
+ ]
2619
+ },
2620
+ {
2621
+ "id": 148,
2622
+ "name": "host",
2623
+ "kind": 2048,
2624
+ "kindString": "Method",
2625
+ "flags": {},
2626
+ "sources": [
2627
+ {
2628
+ "fileName": "node_modules/@angular/cdk/testing/index.d.ts",
2629
+ "line": 40,
2630
+ "character": 4
2631
+ }
2632
+ ],
2633
+ "signatures": [
2634
+ {
2635
+ "id": 149,
2636
+ "name": "host",
2637
+ "kind": 4096,
2638
+ "kindString": "Call signature",
2639
+ "flags": {},
2640
+ "comment": {
2641
+ "shortText": "Gets a `Promise` for the `TestElement` representing the host element of the component."
2642
+ },
2643
+ "type": {
2644
+ "type": "reference",
2645
+ "typeArguments": [
2646
+ {
2647
+ "type": "reference",
2648
+ "qualifiedName": "TestElement",
2649
+ "package": "@angular/cdk",
2650
+ "name": "TestElement"
2651
+ }
2652
+ ],
2653
+ "qualifiedName": "Promise",
2654
+ "package": "typescript",
2655
+ "name": "Promise"
2656
+ },
2657
+ "inheritedFrom": {
2658
+ "type": "reference",
2659
+ "name": "SkyComponentHarness.host"
2660
+ }
2661
+ }
2662
+ ],
2663
+ "inheritedFrom": {
2664
+ "type": "reference",
2665
+ "name": "SkyComponentHarness.host"
2666
+ }
2667
+ },
2668
+ {
2669
+ "id": 129,
2670
+ "name": "with",
2671
+ "kind": 2048,
2672
+ "kindString": "Method",
2673
+ "flags": {
2674
+ "isPublic": true,
2675
+ "isStatic": true
2676
+ },
2677
+ "sources": [
2678
+ {
2679
+ "fileName": "projects/pages/src/testing/page/page-harness.ts",
2680
+ "line": 26,
2681
+ "character": 16
2682
+ }
2683
+ ],
2684
+ "signatures": [
2685
+ {
2686
+ "id": 130,
2687
+ "name": "with",
2688
+ "kind": 4096,
2689
+ "kindString": "Call signature",
2690
+ "flags": {},
2691
+ "comment": {
2692
+ "shortText": "Gets a `HarnessPredicate` that can be used to search for a\n`SkyPageHarness` that meets certain criteria."
2693
+ },
2694
+ "parameters": [
2695
+ {
2696
+ "id": 131,
2697
+ "name": "filters",
2698
+ "kind": 32768,
2699
+ "kindString": "Parameter",
2700
+ "flags": {},
2701
+ "type": {
2702
+ "type": "reference",
2703
+ "id": 168,
2704
+ "name": "SkyPageHarnessFilters"
2705
+ }
2706
+ }
2707
+ ],
2708
+ "type": {
2709
+ "type": "reference",
2710
+ "typeArguments": [
2711
+ {
2712
+ "type": "reference",
2713
+ "id": 127,
2714
+ "name": "SkyPageHarness"
2715
+ }
2716
+ ],
2717
+ "qualifiedName": "HarnessPredicate",
2718
+ "package": "@angular/cdk",
2719
+ "name": "HarnessPredicate"
2720
+ }
2721
+ }
2722
+ ]
2723
+ }
2724
+ ],
2725
+ "groups": [
2726
+ {
2727
+ "title": "Constructors",
2728
+ "kind": 512,
2729
+ "children": [
2730
+ 137
2731
+ ]
2732
+ },
2733
+ {
2734
+ "title": "Methods",
2735
+ "kind": 2048,
2736
+ "children": [
2737
+ 140,
2738
+ 142,
2739
+ 148,
2740
+ 129
2741
+ ]
2742
+ }
2743
+ ],
2744
+ "sources": [
2745
+ {
2746
+ "fileName": "projects/pages/src/testing/page/page-harness.ts",
2747
+ "line": 16,
2748
+ "character": 13
2749
+ }
2750
+ ],
2751
+ "extendedTypes": [
2752
+ {
2753
+ "type": "reference",
2754
+ "name": "SkyComponentHarness"
2755
+ }
2756
+ ]
2757
+ },
2758
+ {
2759
+ "id": 168,
2760
+ "name": "SkyPageHarnessFilters",
2761
+ "kind": 256,
2762
+ "kindString": "Interface",
2763
+ "flags": {},
2764
+ "comment": {
2765
+ "shortText": "A set of criteria that can be used to filter a list of SkyPageHarness instances."
2766
+ },
2767
+ "children": [
2768
+ {
2769
+ "id": 171,
2770
+ "name": "ancestor",
2771
+ "kind": 1024,
2772
+ "kindString": "Property",
2773
+ "flags": {
2774
+ "isOptional": true
2775
+ },
2776
+ "comment": {
2777
+ "shortText": "Only find instances that are nested under an element with the given selector."
2778
+ },
2779
+ "sources": [
2780
+ {
2781
+ "fileName": "node_modules/@angular/cdk/testing/index.d.ts",
2782
+ "line": 28,
2783
+ "character": 4
2784
+ }
2785
+ ],
2786
+ "type": {
2787
+ "type": "intrinsic",
2788
+ "name": "string"
2789
+ },
2790
+ "inheritedFrom": {
2791
+ "type": "reference",
2792
+ "name": "SkyHarnessFilters.ancestor"
2793
+ }
2794
+ },
2795
+ {
2796
+ "id": 169,
2797
+ "name": "dataSkyId",
2798
+ "kind": 1024,
2799
+ "kindString": "Property",
2800
+ "flags": {
2801
+ "isOptional": true
2802
+ },
2803
+ "comment": {
2804
+ "shortText": "Only find instances whose `data-sky-id` attribute matches the given value."
2805
+ },
2806
+ "sources": [
2807
+ {
2808
+ "fileName": "libs/components/core/testing/src/shared/harness-filters.ts",
2809
+ "line": 11,
2810
+ "character": 2
2811
+ }
2812
+ ],
2813
+ "type": {
2814
+ "type": "union",
2815
+ "types": [
2816
+ {
2817
+ "type": "intrinsic",
2818
+ "name": "string"
2819
+ },
2820
+ {
2821
+ "type": "reference",
2822
+ "qualifiedName": "RegExp",
2823
+ "package": "typescript",
2824
+ "name": "RegExp"
2825
+ }
2826
+ ]
2827
+ },
2828
+ "inheritedFrom": {
2829
+ "type": "reference",
2830
+ "name": "SkyHarnessFilters.dataSkyId"
2831
+ }
2832
+ },
2833
+ {
2834
+ "id": 170,
2835
+ "name": "selector",
2836
+ "kind": 1024,
2837
+ "kindString": "Property",
2838
+ "flags": {
2839
+ "isOptional": true
2840
+ },
2841
+ "comment": {
2842
+ "shortText": "Only find instances whose host element matches the given selector."
2843
+ },
2844
+ "sources": [
2845
+ {
2846
+ "fileName": "node_modules/@angular/cdk/testing/index.d.ts",
2847
+ "line": 26,
2848
+ "character": 4
2849
+ }
2850
+ ],
2851
+ "type": {
2852
+ "type": "intrinsic",
2853
+ "name": "string"
2854
+ },
2855
+ "inheritedFrom": {
2856
+ "type": "reference",
2857
+ "name": "SkyHarnessFilters.selector"
2858
+ }
2859
+ }
2860
+ ],
2861
+ "groups": [
2862
+ {
2863
+ "title": "Properties",
2864
+ "kind": 1024,
2865
+ "children": [
2866
+ 171,
2867
+ 169,
2868
+ 170
2869
+ ]
2870
+ }
2871
+ ],
2872
+ "sources": [
2873
+ {
2874
+ "fileName": "projects/pages/src/testing/page/page-harness-filters.ts",
2875
+ "line": 7,
2876
+ "character": 17
2877
+ }
2878
+ ],
2879
+ "extendedTypes": [
2880
+ {
2881
+ "type": "reference",
2882
+ "name": "SkyHarnessFilters"
2883
+ }
2884
+ ]
2885
+ }
2886
+ ],
2887
+ "groups": [
2888
+ {
2889
+ "title": "Modules",
2890
+ "kind": 2,
2891
+ "children": [
2892
+ 1,
2893
+ 2
2894
+ ]
2895
+ }
2896
+ ]
2897
+ },
2898
+ "codeExamples": [
2899
+ {
2900
+ "fileName": "action-hub-demo.component.html",
2901
+ "filePath": "/projects/pages/documentation/code-examples/action-hub/action-hub-demo.component.html",
2902
+ "rawContents": "<sky-action-hub\n [needsAttention]=\"needsAttention\"\n [recentLinks]=\"recentLinks\"\n [relatedLinks]=\"relatedLinks\"\n [settingsLinks]=\"settingsLinks\"\n [title]=\"title\"\n>\n <sky-action-hub-buttons>\n <a\n *ngFor=\"let button of buttons\"\n class=\"sky-btn sky-btn-default sky-margin-inline-sm\"\n [href]=\"button.permalink.url\"\n >\n {{ button.label }}\n </a>\n </sky-action-hub-buttons>\n\n <sky-action-hub-content>\n <h2 class=\"sky-font-heading-2\">Additional content</h2>\n <p>More content can go here as needed for the functional area.</p>\n </sky-action-hub-content>\n</sky-action-hub>\n"
2903
+ },
2904
+ {
2905
+ "fileName": "action-hub-demo.component.ts",
2181
2906
  "filePath": "/projects/pages/documentation/code-examples/action-hub/action-hub-demo.component.ts",
2182
2907
  "rawContents": "import { Component } from '@angular/core';\nimport { SkyPageModalLinksInput } from '@skyux/pages';\n\nimport { SettingsModalComponent } from './settings-modal.component';\n\nconst pastHours = Array.from(Array(5).keys()).map((i) => {\n const date = new Date();\n date.setHours(date.getHours() - (i + 1));\n return date;\n});\n\n@Component({\n selector: 'app-action-hub-visual',\n templateUrl: './action-hub-demo.component.html',\n})\nexport class ActionHubDemoComponent {\n public buttons = [\n {\n label: 'Action 1',\n permalink: {\n url: '#',\n },\n },\n {\n label: 'Action 2',\n permalink: {\n url: '#',\n },\n },\n {\n label: 'Action 3',\n permalink: {\n url: '#',\n },\n },\n ];\n\n public needsAttention = [\n {\n title: '9',\n message: 'updates from portal',\n permalink: {\n url: '#',\n },\n },\n {\n title: '8',\n message: 'new messages from online donation',\n permalink: {\n url: '#',\n },\n },\n {\n title: '7',\n message: 'possible duplicates from constituent lists',\n permalink: {\n url: '#',\n },\n },\n {\n title: '6',\n message: 'updates from portal',\n permalink: {\n url: '#',\n },\n },\n {\n title: '5',\n message: 'new messages from online donation',\n permalink: {\n url: '#',\n },\n },\n {\n title: '4',\n message: 'possible duplicates from constituent lists',\n permalink: {\n url: '#',\n },\n },\n {\n title: '3',\n message: 'update from portal',\n permalink: {\n url: '#',\n },\n },\n {\n title: '2',\n message: 'new messages from online donation',\n permalink: {\n url: '#',\n },\n },\n {\n title: '1',\n message: 'possible duplicate from constituent lists',\n permalink: {\n url: '#',\n },\n },\n ];\n\n public recentLinks = [\n {\n label: 'Recent 1',\n permalink: {\n url: '#',\n },\n lastAccessed: pastHours[0],\n },\n {\n label: 'Recent 2',\n permalink: {\n url: '#',\n },\n lastAccessed: pastHours[1],\n },\n {\n label: 'Recent 3',\n permalink: {\n url: '#',\n },\n lastAccessed: pastHours[2],\n },\n {\n label: 'Recent 4',\n permalink: {\n url: '#',\n },\n lastAccessed: pastHours[3],\n },\n {\n label: 'Recent 5',\n permalink: {\n url: '#',\n },\n lastAccessed: pastHours[4],\n },\n ];\n\n public relatedLinks = [\n {\n label: 'Link 1',\n permalink: {\n url: '#',\n },\n },\n {\n label: 'Link 2',\n permalink: {\n url: '#',\n },\n },\n {\n label: 'Link 3',\n permalink: {\n url: '#',\n },\n },\n ];\n\n public settingsLinks: SkyPageModalLinksInput = [\n {\n label: 'Number',\n modal: {\n component: SettingsModalComponent,\n config: {\n size: 'large',\n providers: [\n {\n provide: 'modalTitle',\n useValue: 'Number',\n },\n ],\n },\n },\n },\n {\n label: 'Color',\n modal: {\n component: SettingsModalComponent,\n config: {\n size: 'large',\n providers: [\n {\n provide: 'modalTitle',\n useValue: 'Color',\n },\n ],\n },\n },\n },\n ];\n\n public title = 'Page title';\n}\n"
2183
2908
  },
@@ -2195,6 +2920,236 @@
2195
2920
  "fileName": "settings-modal.component.ts",
2196
2921
  "filePath": "/projects/pages/documentation/code-examples/action-hub/settings-modal.component.ts",
2197
2922
  "rawContents": "import { Component, Inject } from '@angular/core';\nimport {\n AbstractControl,\n UntypedFormBuilder,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { SkyModalInstance } from '@skyux/modals';\n\n@Component({\n selector: 'app-settings-modal',\n templateUrl: './settings-modal.component.html',\n})\nexport class SettingsModalComponent {\n public form: UntypedFormGroup;\n public fields: string[] = [];\n\n constructor(\n fb: UntypedFormBuilder,\n public modal: SkyModalInstance,\n @Inject('modalTitle') public title: string\n ) {\n const controls: Record<string, AbstractControl> = {};\n for (let i = 1; i <= 5; i++) {\n const field = `${this.title} ${i}`;\n this.fields.push(field);\n controls[field] = fb.control('');\n }\n this.form = fb.group(controls);\n this.modal.closed.subscribe((args) => {\n if (args.reason === 'save') {\n console.log(this.form.value);\n }\n });\n }\n}\n"
2923
+ },
2924
+ {
2925
+ "fileName": "dashboards-grid-context-menu.component.html",
2926
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-list-layout-demo/dashboards-grid-context-menu.component.html",
2927
+ "rawContents": "<sky-dropdown\n buttonType=\"context-menu\"\n [label]=\"'context menu for ' + dashboardName\"\n>\n <sky-dropdown-menu>\n <sky-dropdown-item>\n <button type=\"button\" [attr.aria-label]=\"'Edit ' + dashboardName\">\n Edit\n </button>\n </sky-dropdown-item>\n <sky-dropdown-item>\n <button type=\"button\" [attr.aria-label]=\"'Copy ' + dashboardName\">\n Copy\n </button>\n </sky-dropdown-item>\n <sky-dropdown-item>\n <button type=\"button\" [attr.aria-label]=\"'Delete ' + dashboardName\">\n Delete\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n</sky-dropdown>\n"
2928
+ },
2929
+ {
2930
+ "fileName": "dashboards-grid-context-menu.component.ts",
2931
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-list-layout-demo/dashboards-grid-context-menu.component.ts",
2932
+ "rawContents": "import { Component } from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-dashboards-grid-context-menu',\n templateUrl: './dashboards-grid-context-menu.component.html',\n})\nexport class DashboardGridContextMenuComponent\n implements ICellRendererAngularComp\n{\n public dashboardName = '';\n\n public agInit(params: ICellRendererParams): void {\n this.dashboardName = params.data && params.data.dashboard;\n }\n\n public refresh(): boolean {\n return false;\n }\n}\n"
2933
+ },
2934
+ {
2935
+ "fileName": "list-page-content.component.html",
2936
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-list-layout-demo/list-page-content.component.html",
2937
+ "rawContents": "<sky-data-manager>\n <sky-data-manager-toolbar>\n <sky-data-manager-toolbar-primary-item>\n <button class=\"sky-btn sky-btn-default\" aria-label=\"New dashboard\">\n <sky-icon iconType=\"skyux\" icon=\"add\"></sky-icon>\n New\n </button>\n </sky-data-manager-toolbar-primary-item>\n </sky-data-manager-toolbar>\n <div class=\"sky-margin-stacked-sm\">\n <sky-key-info layout=\"horizontal\" class=\"sky-padding-horizontal-sm\">\n <sky-key-info-value class=\"sky-font-display-4\">\n {{ items.length }}\n </sky-key-info-value>\n <sky-key-info-label> Dashboards </sky-key-info-label>\n </sky-key-info>\n </div>\n <sky-data-view skyAgGridDataManagerAdapter viewId=\"gridView\">\n <sky-ag-grid-wrapper>\n <ag-grid-angular [gridOptions]=\"gridOptions\" [rowData]=\"items\">\n </ag-grid-angular>\n </sky-ag-grid-wrapper>\n </sky-data-view>\n</sky-data-manager>\n"
2938
+ },
2939
+ {
2940
+ "fileName": "list-page-content.component.ts",
2941
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-list-layout-demo/list-page-content.component.ts",
2942
+ "rawContents": "import { Component, OnInit, inject } from '@angular/core';\nimport { SkyAgGridService } from '@skyux/ag-grid';\nimport {\n SkyDataManagerService,\n SkyDataManagerState,\n SkyDataViewConfig,\n} from '@skyux/data-manager';\n\nimport { ColDef, GridOptions, ICellRendererParams } from 'ag-grid-community';\n\nimport { DashboardGridContextMenuComponent } from './dashboards-grid-context-menu.component';\n\n@Component({\n selector: 'app-list-page-content',\n templateUrl: './list-page-content.component.html',\n providers: [SkyDataManagerService],\n})\nexport class ListPageContentComponent implements OnInit {\n public items = [\n {\n dashboard: 'Cash Flow Tracker',\n name: 'Kanesha Hutto',\n lastUpdated: '06/21/2023',\n },\n {\n dashboard: 'Accounts Receivable Dashboard',\n name: 'Kristeen Lunsford',\n lastUpdated: '06/30/2023',\n },\n {\n dashboard: 'Accounts Payable Dashboard',\n name: 'Darcel Lenz',\n lastUpdated: '04/20/2023',\n },\n {\n dashboard: 'Budget vs. Actual',\n name: 'Barbara Durr',\n lastUpdated: '12/04/2023',\n },\n {\n dashboard: 'Balance Sheet - New',\n name: 'Ilene Woo',\n lastUpdated: '12/20/2023',\n },\n {\n dashboard: 'Debt Management',\n name: 'Tonja Sanderson',\n lastUpdated: '09/10/2023',\n },\n ];\n public gridOptions: GridOptions;\n\n #dataManagerService = inject(SkyDataManagerService);\n #agGridSvc = inject(SkyAgGridService);\n\n #columnDefs: ColDef[] = [\n {\n colId: 'contextMenu',\n headerName: '',\n sortable: false,\n cellRenderer: DashboardGridContextMenuComponent,\n maxWidth: 55,\n },\n {\n colId: 'dashboard',\n field: 'dashboard',\n headerName: 'Name',\n width: 150,\n cellRenderer: (params: ICellRendererParams): string => {\n return `<a href=\"/\">${params.value}</a>`;\n },\n },\n {\n colId: 'name',\n field: 'name',\n headerName: 'Created By',\n },\n {\n colId: 'lastUpdated',\n field: 'lastUpdated',\n headerName: 'Last Updated',\n },\n ];\n\n #viewConfig: SkyDataViewConfig = {\n id: 'gridView',\n name: 'Grid View',\n searchEnabled: true,\n };\n\n constructor() {\n this.gridOptions = this.#agGridSvc.getGridOptions({\n gridOptions: {\n columnDefs: this.#columnDefs,\n onGridReady: (args) => {\n args.api.sizeColumnsToFit();\n },\n },\n });\n }\n\n public ngOnInit(): void {\n this.#dataManagerService.initDataManager({\n activeViewId: 'gridView',\n dataManagerConfig: {},\n defaultDataState: new SkyDataManagerState({\n views: [\n {\n viewId: 'gridView',\n displayedColumnIds: [\n 'contextMenu',\n 'dashboard',\n 'name',\n 'lastUpdated',\n ],\n },\n ],\n }),\n });\n\n this.#dataManagerService.initDataView(this.#viewConfig);\n }\n}\n"
2943
+ },
2944
+ {
2945
+ "fileName": "list-page-list-layout-demo.component.html",
2946
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-list-layout-demo/list-page-list-layout-demo.component.html",
2947
+ "rawContents": "<sky-page layout=\"list\">\n <sky-page-header pageTitle=\"Dashboards\" />\n <sky-page-content>\n <app-list-page-content></app-list-page-content>\n </sky-page-content>\n</sky-page>\n"
2948
+ },
2949
+ {
2950
+ "fileName": "list-page-list-layout-demo.component.spec.ts",
2951
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-list-layout-demo/list-page-list-layout-demo.component.spec.ts",
2952
+ "rawContents": "import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';\nimport { ComponentFixture, TestBed } from '@angular/core/testing';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPageHarness } from '@skyux/pages/testing';\n\nimport { ListPageListLayoutDemoComponent } from './list-page-list-layout-demo.component';\nimport { ListPageListLayoutDemoModule } from './list-page-list-layout-demo.module';\n\nfdescribe('List page list layout demo', async () => {\n async function setupTest(): Promise<{\n pageHarness: SkyPageHarness;\n fixture: ComponentFixture<ListPageListLayoutDemoComponent>;\n }> {\n const fixture = TestBed.createComponent(ListPageListLayoutDemoComponent);\n\n const loader = TestbedHarnessEnvironment.documentRootLoader(fixture);\n const pageHarness = await loader.getHarness(SkyPageHarness);\n\n return { pageHarness, fixture };\n }\n\n beforeEach(() => {\n TestBed.configureTestingModule({\n imports: [ListPageListLayoutDemoModule, NoopAnimationsModule],\n });\n });\n\n it('should have a list layout', async () => {\n const { pageHarness } = await setupTest();\n\n await expectAsync(pageHarness.getLayout()).toBeResolvedTo('list');\n });\n\n it('should have the correct page header text', async () => {\n const { pageHarness } = await setupTest();\n\n const pageHeaderHarness = await pageHarness.getPageHeader();\n\n await expectAsync(pageHeaderHarness.getPageTitle()).toBeResolvedTo(\n 'Dashboards'\n );\n });\n});\n"
2953
+ },
2954
+ {
2955
+ "fileName": "list-page-list-layout-demo.component.ts",
2956
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-list-layout-demo/list-page-list-layout-demo.component.ts",
2957
+ "rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-list-page-list-layout-demo',\n templateUrl: './list-page-list-layout-demo.component.html',\n})\nexport class ListPageListLayoutDemoComponent {}\n"
2958
+ },
2959
+ {
2960
+ "fileName": "list-page-list-layout-demo.module.ts",
2961
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-list-layout-demo/list-page-list-layout-demo.module.ts",
2962
+ "rawContents": "import { NgModule } from '@angular/core';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyIconModule, SkyKeyInfoModule } from '@skyux/indicators';\nimport { SkyPageModule } from '@skyux/pages';\nimport { SkyDropdownModule } from '@skyux/popovers';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { DashboardGridContextMenuComponent } from './dashboards-grid-context-menu.component';\nimport { ListPageContentComponent } from './list-page-content.component';\nimport { ListPageListLayoutDemoComponent } from './list-page-list-layout-demo.component';\n\n@NgModule({\n declarations: [\n ListPageListLayoutDemoComponent,\n DashboardGridContextMenuComponent,\n ListPageContentComponent,\n ],\n exports: [ListPageListLayoutDemoComponent],\n imports: [\n SkyPageModule,\n SkyDropdownModule,\n SkyAgGridModule,\n SkyDataManagerModule,\n SkyIconModule,\n AgGridModule,\n SkyKeyInfoModule,\n ],\n})\nexport class ListPageListLayoutDemoModule {}\n"
2963
+ },
2964
+ {
2965
+ "fileName": "contact-context-menu.component.html",
2966
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-tabs-layout-demo/contact-context-menu.component.html",
2967
+ "rawContents": "<sky-dropdown\n buttonType=\"context-menu\"\n [label]=\"'context menu for ' + contactName\"\n>\n <sky-dropdown-menu>\n <sky-dropdown-item>\n <button type=\"button\" [attr.aria-label]=\"'Edit ' + contactName\">\n Edit\n </button>\n </sky-dropdown-item>\n <sky-dropdown-item>\n <button type=\"button\" [attr.aria-label]=\"'Delete ' + contactName\">\n Delete\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n</sky-dropdown>\n"
2968
+ },
2969
+ {
2970
+ "fileName": "contact-context-menu.component.ts",
2971
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-tabs-layout-demo/contact-context-menu.component.ts",
2972
+ "rawContents": "import { Component } from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-contacts-grid-context-menu',\n templateUrl: './contact-context-menu.component.html',\n})\nexport class ContactContextMenuComponent implements ICellRendererAngularComp {\n public contactName = '';\n\n public agInit(params: ICellRendererParams): void {\n this.contactName = params.data && params.data.name;\n }\n\n public refresh(): boolean {\n return false;\n }\n}\n"
2973
+ },
2974
+ {
2975
+ "fileName": "list-page-contacts-grid.component.html",
2976
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-tabs-layout-demo/list-page-contacts-grid.component.html",
2977
+ "rawContents": "<sky-data-manager>\n <sky-data-manager-toolbar class=\"sky-margin-stacked-sm\">\n <sky-data-manager-toolbar-primary-item>\n <button class=\"sky-btn sky-btn-default\" aria-label=\"New contact\">\n <sky-icon iconType=\"skyux\" icon=\"add\"></sky-icon>\n New\n </button>\n </sky-data-manager-toolbar-primary-item>\n </sky-data-manager-toolbar>\n <div class=\"sky-margin-stacked-sm\">\n <sky-key-info layout=\"horizontal\" class=\"sky-padding-horizontal-sm\">\n <sky-key-info-value class=\"sky-font-display-4\">\n {{ contacts.length }}\n </sky-key-info-value>\n <sky-key-info-label> Contacts </sky-key-info-label>\n </sky-key-info>\n </div>\n <sky-data-view skyAgGridDataManagerAdapter viewId=\"gridView\">\n <sky-ag-grid-wrapper>\n <ag-grid-angular [gridOptions]=\"gridOptions\" [rowData]=\"contacts\">\n </ag-grid-angular>\n </sky-ag-grid-wrapper>\n </sky-data-view>\n</sky-data-manager>\n"
2978
+ },
2979
+ {
2980
+ "fileName": "list-page-contacts-grid.component.ts",
2981
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-tabs-layout-demo/list-page-contacts-grid.component.ts",
2982
+ "rawContents": "import { Component, Input, OnInit, inject } from '@angular/core';\nimport { SkyAgGridService } from '@skyux/ag-grid';\nimport {\n SkyDataManagerService,\n SkyDataManagerState,\n SkyDataViewConfig,\n} from '@skyux/data-manager';\n\nimport { ColDef, GridOptions, ICellRendererParams } from 'ag-grid-community';\n\nimport { ContactContextMenuComponent } from './contact-context-menu.component';\n\ntype Contact = {\n name: string;\n organization: string;\n emailAddress: string;\n};\n\n@Component({\n selector: 'app-list-page-contacts-grid',\n templateUrl: './list-page-contacts-grid.component.html',\n providers: [SkyDataManagerService],\n})\nexport class ListPageContactsGridComponent implements OnInit {\n @Input()\n public contacts: Contact[] = [];\n\n public gridOptions: GridOptions;\n\n #dataManagerService = inject(SkyDataManagerService);\n #agGridSvc = inject(SkyAgGridService);\n\n #columnDefs: ColDef[] = [\n {\n colId: 'contextMenu',\n headerName: '',\n sortable: false,\n cellRenderer: ContactContextMenuComponent,\n maxWidth: 55,\n },\n {\n colId: 'name',\n field: 'name',\n headerName: 'Name',\n width: 150,\n cellRenderer: (params: ICellRendererParams): string => {\n return `<a href=\"/\">${params.value}</a>`;\n },\n },\n {\n colId: 'organization',\n field: 'organization',\n headerName: 'Organization',\n },\n {\n colId: 'emailAddress',\n field: 'emailAddress',\n headerName: 'Email Address',\n },\n ];\n\n #viewConfig: SkyDataViewConfig = {\n id: 'gridView',\n name: 'Grid View',\n searchEnabled: true,\n columnPickerEnabled: true,\n columnOptions: [\n { id: 'contextMenu', label: 'Context menu', alwaysDisplayed: true },\n { id: 'name', label: 'Name' },\n { id: 'organization', label: 'Organization' },\n { id: 'emailAddress', label: 'Email Address' },\n ],\n };\n\n constructor() {\n this.gridOptions = this.#agGridSvc.getGridOptions({\n gridOptions: {\n columnDefs: this.#columnDefs,\n onGridReady: (args) => {\n args.api.sizeColumnsToFit();\n },\n },\n });\n }\n\n public ngOnInit(): void {\n this.#dataManagerService.initDataManager({\n activeViewId: 'gridView',\n dataManagerConfig: {},\n defaultDataState: new SkyDataManagerState({\n views: [\n {\n viewId: 'gridView',\n displayedColumnIds: [\n 'contextMenu',\n 'name',\n 'organization',\n 'emailAddress',\n ],\n },\n ],\n }),\n });\n\n this.#dataManagerService.initDataView(this.#viewConfig);\n }\n}\n"
2983
+ },
2984
+ {
2985
+ "fileName": "list-page-content.component.html",
2986
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-tabs-layout-demo/list-page-content.component.html",
2987
+ "rawContents": "<sky-tabset [(active)]=\"activeTabIndex\">\n <sky-tab tabHeading=\"My contacts\" layout=\"list\">\n <app-list-page-contacts-grid\n *ngIf=\"activeTabIndex === 0\"\n [contacts]=\"myContacts\"\n ></app-list-page-contacts-grid>\n </sky-tab>\n <sky-tab tabHeading=\"All contacts\" layout=\"list\">\n <app-list-page-contacts-grid\n *ngIf=\"activeTabIndex === 1\"\n [contacts]=\"allContacts\"\n ></app-list-page-contacts-grid>\n </sky-tab>\n</sky-tabset>\n"
2988
+ },
2989
+ {
2990
+ "fileName": "list-page-content.component.ts",
2991
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-tabs-layout-demo/list-page-content.component.ts",
2992
+ "rawContents": "import { Component } from '@angular/core';\nimport { SkyTabIndex } from '@skyux/tabs';\n\n@Component({\n selector: 'app-list-page-content',\n templateUrl: './list-page-content.component.html',\n})\nexport class ListPageContentComponent {\n public activeTabIndex: SkyTabIndex = 0;\n\n public myContacts = [\n {\n name: 'Wonda Lumpkin',\n organization: 'Riverfront College of the Arts',\n emailAddress: 'wlumpkin@yahoo.com',\n },\n {\n name: 'Eliza Vanhorn',\n organization: 'Summit School of the Arts',\n emailAddress: 'evanhorn@outlook.com',\n },\n {\n name: 'Ed Sipes',\n organization: 'Reflections Middle School',\n emailAddress: 'esipes@yahoo.com',\n },\n {\n name: 'Elwood Farris',\n organization: 'Sandy Lagoon College',\n emailAddress: 'elfarris@gmail.com',\n },\n {\n name: 'Cristen Sizemore',\n organization: 'Grafton Vision Health',\n emailAddress: 'cristen.sizemore@aol.com',\n },\n {\n name: 'Latrice Ashmore',\n organization: 'Food Bank of Rapid City',\n emailAddress: 'lashmore@gmail.com',\n },\n ];\n\n public allContacts = [\n ...this.myContacts,\n {\n name: 'Kanesha Hutto',\n organization: 'Los Angeles College of the Arts',\n emailAddress: 'khutto@yahoo.com',\n },\n {\n name: 'Kristeen Lunsford',\n organization: 'Food Bank of Los Angeles',\n emailAddress: 'kristeen.lunsford@yahoo.com',\n },\n {\n name: 'Barbara Durr',\n organization: 'Riverfront Middle School',\n emailAddress: 'bdurr@gmail.com',\n },\n {\n name: 'Ilene Woo',\n organization: 'Rapid City High School',\n emailAddress: 'ilene.woo@aol.com',\n },\n {\n name: 'Darcel Lenz',\n organization: 'Riverfront College of the Arts',\n emailAddress: 'dlenz@yahoo.com',\n },\n ];\n}\n"
2993
+ },
2994
+ {
2995
+ "fileName": "list-page-tabs-layout-demo.component.html",
2996
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-tabs-layout-demo/list-page-tabs-layout-demo.component.html",
2997
+ "rawContents": "<sky-page layout=\"tabs\">\n <sky-page-header pageTitle=\"Contacts\" />\n <sky-page-content>\n <app-list-page-content></app-list-page-content>\n </sky-page-content>\n</sky-page>\n"
2998
+ },
2999
+ {
3000
+ "fileName": "list-page-tabs-layout-demo.component.spec.ts",
3001
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-tabs-layout-demo/list-page-tabs-layout-demo.component.spec.ts",
3002
+ "rawContents": "import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';\nimport { ComponentFixture, TestBed } from '@angular/core/testing';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterTestingModule } from '@angular/router/testing';\nimport { SkyPageHarness } from '@skyux/pages/testing';\n\nimport { ListPageTabsLayoutDemoComponent } from './list-page-tabs-layout-demo.component';\nimport { ListPageTabsLayoutDemoModule } from './list-page-tabs-layout-demo.module';\n\nfdescribe('List page tabs layout demo', async () => {\n async function setupTest(): Promise<{\n pageHarness: SkyPageHarness;\n fixture: ComponentFixture<ListPageTabsLayoutDemoComponent>;\n }> {\n const fixture = TestBed.createComponent(ListPageTabsLayoutDemoComponent);\n\n const loader = TestbedHarnessEnvironment.documentRootLoader(fixture);\n const pageHarness = await loader.getHarness(SkyPageHarness);\n\n return { pageHarness, fixture };\n }\n\n beforeEach(() => {\n TestBed.configureTestingModule({\n imports: [\n ListPageTabsLayoutDemoModule,\n NoopAnimationsModule,\n RouterTestingModule,\n ],\n });\n });\n\n it('should have a tabs layout', async () => {\n const { pageHarness } = await setupTest();\n\n await expectAsync(pageHarness.getLayout()).toBeResolvedTo('tabs');\n });\n\n it('should have the correct page header text', async () => {\n const { pageHarness } = await setupTest();\n\n const pageHeaderHarness = await pageHarness.getPageHeader();\n\n await expectAsync(pageHeaderHarness.getPageTitle()).toBeResolvedTo(\n 'Contacts'\n );\n });\n});\n"
3003
+ },
3004
+ {
3005
+ "fileName": "list-page-tabs-layout-demo.component.ts",
3006
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-tabs-layout-demo/list-page-tabs-layout-demo.component.ts",
3007
+ "rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-list-page-tabs-layout-demo',\n templateUrl: './list-page-tabs-layout-demo.component.html',\n})\nexport class ListPageTabsLayoutDemoComponent {}\n"
3008
+ },
3009
+ {
3010
+ "fileName": "list-page-tabs-layout-demo.module.ts",
3011
+ "filePath": "/projects/pages/documentation/code-examples/page/list-page-tabs-layout-demo/list-page-tabs-layout-demo.module.ts",
3012
+ "rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyIconModule, SkyKeyInfoModule } from '@skyux/indicators';\nimport { SkyPageModule } from '@skyux/pages';\nimport { SkyDropdownModule } from '@skyux/popovers';\nimport { SkyTabsModule } from '@skyux/tabs';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { ContactContextMenuComponent } from './contact-context-menu.component';\nimport { ListPageContactsGridComponent } from './list-page-contacts-grid.component';\nimport { ListPageContentComponent } from './list-page-content.component';\nimport { ListPageTabsLayoutDemoComponent } from './list-page-tabs-layout-demo.component';\n\n@NgModule({\n declarations: [\n ContactContextMenuComponent,\n ListPageTabsLayoutDemoComponent,\n ListPageContentComponent,\n ListPageContactsGridComponent,\n ],\n exports: [ListPageTabsLayoutDemoComponent],\n imports: [\n CommonModule,\n SkyPageModule,\n SkyTabsModule,\n SkyDataManagerModule,\n SkyAgGridModule,\n AgGridModule,\n SkyKeyInfoModule,\n SkyDropdownModule,\n SkyIconModule,\n ],\n})\nexport class ListPageTabsLayoutDemoModule {}\n"
3013
+ },
3014
+ {
3015
+ "fileName": "record-page-blocks-layout-demo.component.html",
3016
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-blocks-layout-demo/record-page-blocks-layout-demo.component.html",
3017
+ "rawContents": "<sky-page layout=\"blocks\">\n <sky-page-header\n pageTitle=\"$500 pledge\"\n [parentLink]=\"{\n label: 'Pledges',\n permalink: {\n route: {\n commands: ['/']\n }\n }\n }\"\n />\n <sky-page-content>\n <app-record-page-content></app-record-page-content>\n </sky-page-content>\n</sky-page>\n"
3018
+ },
3019
+ {
3020
+ "fileName": "record-page-blocks-layout-demo.component.spec.ts",
3021
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-blocks-layout-demo/record-page-blocks-layout-demo.component.spec.ts",
3022
+ "rawContents": "import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';\nimport { ComponentFixture, TestBed } from '@angular/core/testing';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterTestingModule } from '@angular/router/testing';\nimport { SkyPageHarness } from '@skyux/pages/testing';\n\nimport { RecordPageBlocksLayoutDemoComponent } from './record-page-blocks-layout-demo.component';\nimport { RecordPageBlocksLayoutDemoModule } from './record-page-blocks-layout-demo.module';\n\nfdescribe('Record page blocks layout demo', async () => {\n async function setupTest(): Promise<{\n pageHarness: SkyPageHarness;\n fixture: ComponentFixture<RecordPageBlocksLayoutDemoComponent>;\n }> {\n const fixture = TestBed.createComponent(\n RecordPageBlocksLayoutDemoComponent\n );\n\n const loader = TestbedHarnessEnvironment.documentRootLoader(fixture);\n const pageHarness = await loader.getHarness(SkyPageHarness);\n\n return { pageHarness, fixture };\n }\n\n beforeEach(() => {\n TestBed.configureTestingModule({\n imports: [\n NoopAnimationsModule,\n RecordPageBlocksLayoutDemoModule,\n RouterTestingModule,\n ],\n });\n });\n\n it('should have a blocks layout', async () => {\n const { pageHarness, fixture } = await setupTest();\n\n fixture.detectChanges();\n\n await expectAsync(pageHarness.getLayout()).toBeResolvedTo('blocks');\n });\n\n it('should have the correct page header text', async () => {\n const { pageHarness } = await setupTest();\n\n const pageHeaderHarness = await pageHarness.getPageHeader();\n\n await expectAsync(pageHeaderHarness.getPageTitle()).toBeResolvedTo(\n '$500 pledge'\n );\n\n await expectAsync(pageHeaderHarness.getParentLinkText()).toBeResolvedTo(\n 'Pledges'\n );\n });\n});\n"
3023
+ },
3024
+ {
3025
+ "fileName": "record-page-blocks-layout-demo.component.ts",
3026
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-blocks-layout-demo/record-page-blocks-layout-demo.component.ts",
3027
+ "rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-record-page-block-layout-demo',\n templateUrl: './record-page-blocks-layout-demo.component.html',\n})\nexport class RecordPageBlocksLayoutDemoComponent {}\n"
3028
+ },
3029
+ {
3030
+ "fileName": "record-page-blocks-layout-demo.module.ts",
3031
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-blocks-layout-demo/record-page-blocks-layout-demo.module.ts",
3032
+ "rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyIconModule, SkyKeyInfoModule } from '@skyux/indicators';\nimport {\n SkyBoxModule,\n SkyDescriptionListModule,\n SkyFluidGridModule,\n} from '@skyux/layout';\nimport { SkyRepeaterModule } from '@skyux/lists';\nimport { SkyPageModule } from '@skyux/pages';\n\nimport { RecordPageBlocksLayoutDemoComponent } from './record-page-blocks-layout-demo.component';\nimport { RecordPageContentComponent } from './record-page-content.component';\n\n@NgModule({\n declarations: [\n RecordPageBlocksLayoutDemoComponent,\n RecordPageContentComponent,\n ],\n exports: [RecordPageBlocksLayoutDemoComponent],\n imports: [\n CommonModule,\n SkyBoxModule,\n SkyDescriptionListModule,\n SkyFluidGridModule,\n SkyIconModule,\n SkyKeyInfoModule,\n SkyPageModule,\n SkyRepeaterModule,\n ],\n})\nexport class RecordPageBlocksLayoutDemoModule {}\n"
3033
+ },
3034
+ {
3035
+ "fileName": "record-page-content.component.html",
3036
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-blocks-layout-demo/record-page-content.component.html",
3037
+ "rawContents": "<sky-fluid-grid gutterSize=\"medium\" [disableMargin]=\"true\">\n <sky-row>\n <sky-column [screenMedium]=\"4\" [screenSmall]=\"12\">\n <sky-box class=\"sky-margin-stacked-xl\">\n <sky-box-header>\n <h2 class=\"sky-font-heading-2\">Details</h2>\n </sky-box-header>\n <sky-box-controls>\n <button\n class=\"sky-btn sky-btn-icon-borderless\"\n aria-label=\"Edit button for details\"\n >\n <sky-icon icon=\"edit\" iconType=\"skyux\"></sky-icon>\n </button>\n </sky-box-controls>\n <sky-box-content>\n <sky-description-list mode=\"vertical\">\n <sky-description-list-content\n *ngFor=\"let recordDetail of recordDetails\"\n >\n <sky-description-list-term>\n {{ recordDetail.detail }}\n </sky-description-list-term>\n <sky-description-list-description>\n {{ recordDetail.info }}\n </sky-description-list-description>\n </sky-description-list-content>\n </sky-description-list>\n </sky-box-content>\n </sky-box>\n </sky-column>\n <sky-column [screenMedium]=\"4\" [screenSmall]=\"12\">\n <sky-box class=\"sky-margin-stacked-xl\">\n <sky-box-header>\n <h2 class=\"sky-font-heading-2\">Payments</h2>\n </sky-box-header>\n <sky-box-content>\n <div class=\"box-2-content\">\n <div class=\"box-2-actuals\">\n <h3 class=\"sky-font-heading-4\">Actuals</h3>\n <sky-key-info\n [ngClass]=\"{\n 'sky-margin-stacked-lg': i < actualPayments.length - 1\n }\"\n *ngFor=\"let actual of actualPayments; let i = index\"\n >\n <sky-key-info-value class=\"sky-font-display-3\">\n {{ actual.value }}\n </sky-key-info-value>\n <sky-key-info-label>{{ actual.category }}</sky-key-info-label>\n </sky-key-info>\n </div>\n <div class=\"box-2-projected\">\n <h3 class=\"sky-font-heading-4\">Projected</h3>\n <sky-key-info\n [ngClass]=\"{\n 'sky-margin-stacked-lg': i < projectedPayments.length - 1\n }\"\n *ngFor=\"let projected of projectedPayments; let i = index\"\n >\n <sky-key-info-value class=\"sky-font-display-3\">\n {{ projected.value }}\n </sky-key-info-value>\n <sky-key-info-label>\n {{ projected.category }}\n </sky-key-info-label>\n </sky-key-info>\n </div>\n </div>\n </sky-box-content>\n </sky-box>\n </sky-column>\n <sky-column [screenMedium]=\"4\" [screenSmall]=\"12\">\n <sky-box>\n <sky-box-header>\n <h2 class=\"sky-font-heading-2\">Recent activity</h2>\n </sky-box-header>\n <sky-box-content>\n <sky-repeater>\n <sky-repeater-item *ngFor=\"let activity of recentActivity\">\n <sky-repeater-item-content>\n <div class=\"sky-margin-stacked-xs\">\n {{ activity.activity }}\n </div>\n <div class=\"sky-font-deemphasized\">{{ activity.date }}</div>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n </sky-box-content>\n </sky-box>\n </sky-column>\n </sky-row>\n</sky-fluid-grid>\n"
3038
+ },
3039
+ {
3040
+ "fileName": "record-page-content.component.scss",
3041
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-blocks-layout-demo/record-page-content.component.scss",
3042
+ "rawContents": ".box-2-content {\n display: flex;\n\n div {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n }\n\n .box-2-actuals {\n margin-right: 60px;\n }\n}\n"
3043
+ },
3044
+ {
3045
+ "fileName": "record-page-content.component.ts",
3046
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-blocks-layout-demo/record-page-content.component.ts",
3047
+ "rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-record-page-content',\n templateUrl: './record-page-content.component.html',\n styleUrls: ['./record-page-content.component.scss'],\n})\nexport class RecordPageContentComponent {\n public recordDetails = [\n {\n detail: 'Designation',\n info: 'General operating',\n },\n {\n detail: 'Source',\n info: 'Online donation form',\n },\n {\n detail: 'Status',\n info: 'Active',\n },\n {\n detail: 'Due date',\n info: '12/12/2023',\n },\n {\n detail: 'Create date',\n info: '01/05/2023',\n },\n {\n detail: 'Frequency',\n info: 'Quarterly',\n },\n ];\n\n public actualPayments = [\n {\n category: 'Amount',\n value: '$845.00',\n },\n {\n category: 'Assigned',\n value: '$800.00',\n },\n {\n category: 'Applied',\n value: '$800.00',\n },\n {\n category: 'Payments',\n value: 25,\n },\n ];\n\n public projectedPayments = [\n {\n category: 'Amount',\n value: '$0',\n },\n {\n category: 'Line items',\n value: 0,\n },\n ];\n\n public recentActivity = [\n {\n activity: '$250.00 payment processed successfully.',\n date: '07/01/2023 12:02 am',\n },\n {\n activity: '$150.00 payment processed successfully.',\n date: '06/15/2023 12:02 am',\n },\n {\n activity: '$250.00 payment processed successfully.',\n date: '04/01/2023 12:02 am',\n },\n ];\n}\n"
3048
+ },
3049
+ {
3050
+ "fileName": "attachments-grid-context-menu.component.html",
3051
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/attachments-grid-context-menu.component.html",
3052
+ "rawContents": "<sky-dropdown\n buttonType=\"context-menu\"\n [label]=\"'context menu for ' + attachmentName\"\n>\n <sky-dropdown-menu>\n <sky-dropdown-item>\n <button type=\"button\" [attr.aria-label]=\"'Edit ' + attachmentName\">\n Edit\n </button>\n </sky-dropdown-item>\n <sky-dropdown-item>\n <button type=\"button\" [attr.aria-label]=\"'Delete ' + attachmentName\">\n Delete\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n</sky-dropdown>\n"
3053
+ },
3054
+ {
3055
+ "fileName": "attachments-grid-context-menu.component.ts",
3056
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/attachments-grid-context-menu.component.ts",
3057
+ "rawContents": "import { Component } from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-attachments-grid-context-menu',\n templateUrl: './attachments-grid-context-menu.component.html',\n})\nexport class AttachmentsGridContextMenuComponent\n implements ICellRendererAngularComp\n{\n public attachmentName = '';\n\n public agInit(params: ICellRendererParams): void {\n this.attachmentName = params.data && params.data.name;\n }\n\n public refresh(): boolean {\n return false;\n }\n}\n"
3058
+ },
3059
+ {
3060
+ "fileName": "record-page-attachments-tab.component.html",
3061
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-attachments-tab.component.html",
3062
+ "rawContents": "<sky-data-manager>\n <sky-data-manager-toolbar>\n <sky-data-manager-toolbar-primary-item>\n <button class=\"sky-btn sky-btn-default\" aria-label=\"New attachment\">\n <sky-icon iconType=\"skyux\" icon=\"add\"></sky-icon>\n New\n </button>\n </sky-data-manager-toolbar-primary-item>\n </sky-data-manager-toolbar>\n <div class=\"sky-margin-stacked-sm\">\n <sky-key-info layout=\"horizontal\" class=\"sky-padding-horizontal-sm\">\n <sky-key-info-value class=\"sky-font-display-4\">\n {{ items.length }}\n </sky-key-info-value>\n <sky-key-info-label> Attachments </sky-key-info-label>\n </sky-key-info>\n </div>\n <sky-data-view skyAgGridDataManagerAdapter viewId=\"gridView\">\n <sky-ag-grid-wrapper>\n <ag-grid-angular [gridOptions]=\"gridOptions\" [rowData]=\"items\">\n </ag-grid-angular>\n </sky-ag-grid-wrapper>\n </sky-data-view>\n</sky-data-manager>\n"
3063
+ },
3064
+ {
3065
+ "fileName": "record-page-attachments-tab.component.ts",
3066
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-attachments-tab.component.ts",
3067
+ "rawContents": "import { Component, OnInit, inject } from '@angular/core';\nimport { SkyAgGridService } from '@skyux/ag-grid';\nimport {\n SkyDataManagerService,\n SkyDataManagerState,\n SkyDataViewConfig,\n} from '@skyux/data-manager';\n\nimport { ColDef, GridOptions, ICellRendererParams } from 'ag-grid-community';\n\nimport { AttachmentsGridContextMenuComponent } from './attachments-grid-context-menu.component';\n\n@Component({\n selector: 'app-record-page-attachments-tab',\n templateUrl: './record-page-attachments-tab.component.html',\n providers: [SkyDataManagerService],\n})\nexport class RecordPageAttachmentsTabComponent implements OnInit {\n public items = [\n {\n name: 'Agreement.pdf',\n description: 'Cardholder agreement',\n size: '10 KB',\n dateAdded: '01/28/2023',\n },\n {\n name: 'Appendix.pdf',\n description: 'Updated terms 2023',\n size: '25 KB',\n dateAdded: '05/05/2023',\n },\n ];\n public gridOptions: GridOptions;\n\n #dataManagerService = inject(SkyDataManagerService);\n #agGridSvc = inject(SkyAgGridService);\n\n #columnDefs: ColDef[] = [\n {\n colId: 'contextMenu',\n headerName: '',\n sortable: false,\n cellRenderer: AttachmentsGridContextMenuComponent,\n maxWidth: 55,\n },\n {\n colId: 'name',\n field: 'name',\n headerName: 'Name',\n width: 150,\n cellRenderer: (params: ICellRendererParams): string => {\n return `<a href=\"/\">${params.value}</a>`;\n },\n },\n {\n colId: 'description',\n field: 'description',\n headerName: 'Description',\n },\n {\n colId: 'size',\n field: 'size',\n headerName: 'Size',\n },\n {\n colId: 'dateAdded',\n field: 'dateAdded',\n headerName: 'Date Added',\n },\n ];\n\n #viewConfig: SkyDataViewConfig = {\n id: 'gridView',\n name: 'Grid View',\n searchEnabled: true,\n };\n\n constructor() {\n this.gridOptions = this.#agGridSvc.getGridOptions({\n gridOptions: {\n columnDefs: this.#columnDefs,\n onGridReady: (args) => {\n args.api.sizeColumnsToFit();\n },\n },\n });\n }\n\n public ngOnInit(): void {\n this.#dataManagerService.initDataManager({\n activeViewId: 'gridView',\n dataManagerConfig: {},\n defaultDataState: new SkyDataManagerState({\n views: [\n {\n viewId: 'gridView',\n displayedColumnIds: [\n 'contextMenu',\n 'name',\n 'description',\n 'size',\n 'dateAdded',\n ],\n },\n ],\n }),\n });\n\n this.#dataManagerService.initDataView(this.#viewConfig);\n }\n}\n"
3068
+ },
3069
+ {
3070
+ "fileName": "record-page-content.component.html",
3071
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-content.component.html",
3072
+ "rawContents": "<sky-tabset [(active)]=\"activeTabIndex\">\n <sky-tab tabHeading=\"Overview\" layout=\"blocks\">\n <app-record-page-overview-tab></app-record-page-overview-tab>\n </sky-tab>\n <sky-tab tabHeading=\"Notes\" layout=\"list\">\n <app-record-page-notes-tab></app-record-page-notes-tab>\n </sky-tab>\n <sky-tab tabHeading=\"Attachments\" layout=\"list\">\n <app-record-page-attachments-tab\n *ngIf=\"activeTabIndex === 2\"\n ></app-record-page-attachments-tab>\n </sky-tab>\n</sky-tabset>\n"
3073
+ },
3074
+ {
3075
+ "fileName": "record-page-content.component.ts",
3076
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-content.component.ts",
3077
+ "rawContents": "import { Component } from '@angular/core';\nimport { SkyTabIndex } from '@skyux/tabs';\n\n@Component({\n selector: 'app-record-page-content',\n templateUrl: './record-page-content.component.html',\n})\nexport class RecordPageContentComponent {\n public activeTabIndex: SkyTabIndex = 0;\n}\n"
3078
+ },
3079
+ {
3080
+ "fileName": "record-page-notes-tab.component.html",
3081
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-notes-tab.component.html",
3082
+ "rawContents": "<sky-toolbar>\n <sky-toolbar-item>\n <button class=\"sky-btn sky-btn-default\" type=\"button\" aria-label=\"New note\">\n <sky-icon iconType=\"skyux\" icon=\"add\"></sky-icon>\n New\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <sky-sort [showButtonText]=\"true\">\n <sky-sort-item>\n <span aria-label=\"Sort notes by date created (newest first)\">\n Date created (newest first)\n </span>\n </sky-sort-item>\n <sky-sort-item>\n <span aria-label=\"Sort notes by date created (oldest first)\">\n Date created (oldest first)\n </span>\n </sky-sort-item>\n </sky-sort>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n aria-label=\"Export notes\"\n >\n <sky-icon iconType=\"skyux\" icon=\"xls-file\"></sky-icon>\n Export\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <sky-search placeholderText=\"Find in notes\"> </sky-search>\n </sky-toolbar-item>\n</sky-toolbar>\n<sky-key-info layout=\"horizontal\">\n <sky-key-info-value class=\"sky-font-display-4\">\n {{ notes.length }}\n </sky-key-info-value>\n <sky-key-info-label> Notes </sky-key-info-label>\n</sky-key-info>\n<sky-repeater>\n <sky-repeater-item *ngFor=\"let note of notes\">\n <sky-repeater-item-context-menu>\n <sky-dropdown\n buttonType=\"context-menu\"\n [label]=\"\n 'Context menu for note ' + note.noteNumber + ' from ' + note.date\n \"\n >\n <sky-dropdown-menu>\n <sky-dropdown-item>\n <button\n type=\"button\"\n [attr.aria-label]=\"\n 'Edit note ' + note.noteNumber + ' from ' + note.date\n \"\n >\n Edit\n </button>\n </sky-dropdown-item>\n <sky-dropdown-item>\n <button\n type=\"button\"\n [attr.aria-label]=\"\n 'Delete note ' + note.noteNumber + ' from ' + note.date\n \"\n >\n Delete\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n </sky-dropdown>\n </sky-repeater-item-context-menu>\n <sky-repeater-item-content>\n <div class=\"sky-margin-stacked-xs\">\n {{ note.content }}\n </div>\n <div class=\"sky-font-deemphasized\">{{ note.date }}</div>\n </sky-repeater-item-content>\n </sky-repeater-item>\n</sky-repeater>\n"
3083
+ },
3084
+ {
3085
+ "fileName": "record-page-notes-tab.component.ts",
3086
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-notes-tab.component.ts",
3087
+ "rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-record-page-notes-tab',\n templateUrl: './record-page-notes-tab.component.html',\n})\nexport class RecordPageNotesTabComponent {\n public notes = [\n {\n noteNumber: 1,\n content: 'Attended our gala last year and had a great time.',\n date: '11/17/2024',\n },\n {\n noteNumber: 2,\n content:\n 'Is a business owner and has a lot of connections in the community.',\n date: '10/11/2024',\n },\n ];\n}\n"
3088
+ },
3089
+ {
3090
+ "fileName": "record-page-overview-tab.component.html",
3091
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-overview-tab.component.html",
3092
+ "rawContents": "<sky-fluid-grid gutterSize=\"medium\" [disableMargin]=\"true\">\n <sky-row>\n <sky-column [screenSmall]=\"4\" [screenXSmall]=\"12\">\n <sky-box class=\"sky-margin-stacked-xl\">\n <sky-box-header>\n <h2 class=\"sky-font-heading-2\">Details</h2>\n </sky-box-header>\n <sky-box-controls>\n <button\n class=\"sky-btn sky-btn-icon-borderless\"\n aria-label=\"Edit button for details\"\n >\n <sky-icon icon=\"edit\" iconType=\"skyux\"></sky-icon>\n </button>\n </sky-box-controls>\n <sky-box-content>\n <sky-description-list mode=\"vertical\">\n <sky-description-list-content\n *ngFor=\"let recordDetail of recordDetails\"\n >\n <sky-description-list-term>\n {{ recordDetail.detail }}\n </sky-description-list-term>\n <sky-description-list-description>\n {{ recordDetail.info }}\n </sky-description-list-description>\n </sky-description-list-content>\n </sky-description-list>\n </sky-box-content>\n </sky-box>\n </sky-column>\n <sky-column [screenSmall]=\"4\" [screenXSmall]=\"12\">\n <sky-box class=\"sky-margin-stacked-xl\">\n <sky-box-header>\n <h2 class=\"sky-font-heading-2\">Payments</h2>\n </sky-box-header>\n <sky-box-content>\n <div class=\"box-2-content\">\n <div class=\"box-2-actuals\">\n <h3 class=\"sky-font-heading-4\">Actuals</h3>\n <sky-key-info\n [ngClass]=\"{\n 'sky-margin-stacked-lg': i < actualPayments.length - 1\n }\"\n *ngFor=\"let actual of actualPayments; let i = index\"\n >\n <sky-key-info-value class=\"sky-font-display-3\">\n {{ actual.value }}\n </sky-key-info-value>\n <sky-key-info-label>{{ actual.category }}</sky-key-info-label>\n </sky-key-info>\n </div>\n <div class=\"box-2-projected\">\n <h3 class=\"sky-font-heading-4\">Projected</h3>\n <sky-key-info\n [ngClass]=\"{\n 'sky-margin-stacked-lg': i < projectedPayments.length - 1\n }\"\n *ngFor=\"let projected of projectedPayments; let i = index\"\n >\n <sky-key-info-value class=\"sky-font-display-3\">\n {{ projected.value }}\n </sky-key-info-value>\n <sky-key-info-label>\n {{ projected.category }}\n </sky-key-info-label>\n </sky-key-info>\n </div>\n </div>\n </sky-box-content>\n </sky-box>\n </sky-column>\n <sky-column [screenSmall]=\"4\" [screenXSmall]=\"12\">\n <sky-box>\n <sky-box-header>\n <h2 class=\"sky-font-heading-2\">Recent activity</h2>\n </sky-box-header>\n <sky-box-content>\n <sky-repeater>\n <sky-repeater-item *ngFor=\"let activity of recentActivity\">\n <sky-repeater-item-content>\n <div class=\"sky-margin-stacked-xs\">\n {{ activity.activity }}\n </div>\n <div class=\"sky-font-deemphasized\">{{ activity.date }}</div>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n </sky-box-content>\n </sky-box>\n </sky-column>\n </sky-row>\n</sky-fluid-grid>\n"
3093
+ },
3094
+ {
3095
+ "fileName": "record-page-overview-tab.component.scss",
3096
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-overview-tab.component.scss",
3097
+ "rawContents": ".box-2-content {\n display: flex;\n\n div {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n }\n\n .box-2-actuals {\n margin-right: 60px;\n }\n}\n"
3098
+ },
3099
+ {
3100
+ "fileName": "record-page-overview-tab.component.ts",
3101
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-overview-tab.component.ts",
3102
+ "rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-record-page-overview-tab',\n templateUrl: './record-page-overview-tab.component.html',\n styleUrls: ['./record-page-overview-tab.component.scss'],\n})\nexport class RecordPageOverviewTabComponent {\n public recordDetails = [\n {\n detail: 'Designation',\n info: 'General operating',\n },\n {\n detail: 'Source',\n info: 'Online donation form',\n },\n {\n detail: 'Status',\n info: 'Active',\n },\n {\n detail: 'Due date',\n info: '12/12/2023',\n },\n {\n detail: 'Create date',\n info: '01/05/2023',\n },\n {\n detail: 'Frequency',\n info: 'Quarterly',\n },\n ];\n\n public actualPayments = [\n {\n category: 'Amount',\n value: '$845.00',\n },\n {\n category: 'Assigned',\n value: '$800.00',\n },\n {\n category: 'Applied',\n value: '$800.00',\n },\n {\n category: 'Payments',\n value: 25,\n },\n ];\n\n public projectedPayments = [\n {\n category: 'Amount',\n value: '$0',\n },\n {\n category: 'Line items',\n value: 0,\n },\n ];\n\n public recentActivity = [\n {\n activity: '$250.00 payment processed successfully.',\n date: '07/01/2023 12:02 am',\n },\n {\n activity: '$150.00 payment processed successfully.',\n date: '06/15/2023 12:02 am',\n },\n {\n activity: '$250.00 payment processed successfully.',\n date: '04/01/2023 12:02 am',\n },\n ];\n}\n"
3103
+ },
3104
+ {
3105
+ "fileName": "record-page-tabs-layout-demo.component.html",
3106
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-tabs-layout-demo.component.html",
3107
+ "rawContents": "<sky-page layout=\"tabs\">\n <sky-page-header\n pageTitle=\"Charlene Conners\"\n [parentLink]=\"{\n label: 'Contacts',\n permalink: {\n route: {\n commands: ['/']\n }\n }\n }\"\n />\n <sky-page-content>\n <app-record-page-content></app-record-page-content>\n </sky-page-content>\n</sky-page>\n"
3108
+ },
3109
+ {
3110
+ "fileName": "record-page-tabs-layout-demo.component.spec.ts",
3111
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-tabs-layout-demo.component.spec.ts",
3112
+ "rawContents": "import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';\nimport { ComponentFixture, TestBed } from '@angular/core/testing';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterTestingModule } from '@angular/router/testing';\nimport { SkyPageHarness } from '@skyux/pages/testing';\n\nimport { RecordPageTabsLayoutDemoComponent } from './record-page-tabs-layout-demo.component';\nimport { RecordPageTabsLayoutDemoModule } from './record-page-tabs-layout-demo.module';\n\nfdescribe('Record page tabs layout demo', async () => {\n async function setupTest(): Promise<{\n pageHarness: SkyPageHarness;\n fixture: ComponentFixture<RecordPageTabsLayoutDemoComponent>;\n }> {\n const fixture = TestBed.createComponent(RecordPageTabsLayoutDemoComponent);\n\n const loader = TestbedHarnessEnvironment.documentRootLoader(fixture);\n const pageHarness = await loader.getHarness(SkyPageHarness);\n\n return { pageHarness, fixture };\n }\n\n beforeEach(() => {\n TestBed.configureTestingModule({\n imports: [\n NoopAnimationsModule,\n RecordPageTabsLayoutDemoModule,\n RouterTestingModule,\n ],\n });\n });\n\n it('should have a tabs layout', async () => {\n const { pageHarness, fixture } = await setupTest();\n\n fixture.detectChanges();\n\n await expectAsync(pageHarness.getLayout()).toBeResolvedTo('tabs');\n });\n\n it('should have the correct page header text', async () => {\n const { pageHarness } = await setupTest();\n\n const pageHeaderHarness = await pageHarness.getPageHeader();\n\n await expectAsync(pageHeaderHarness.getPageTitle()).toBeResolvedTo(\n 'Charlene Conners'\n );\n\n await expectAsync(pageHeaderHarness.getParentLinkText()).toBeResolvedTo(\n 'Contacts'\n );\n });\n});\n"
3113
+ },
3114
+ {
3115
+ "fileName": "record-page-tabs-layout-demo.component.ts",
3116
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-tabs-layout-demo.component.ts",
3117
+ "rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-record-page-tabs-layout-demo',\n templateUrl: './record-page-tabs-layout-demo.component.html',\n})\nexport class RecordPageTabsLayoutDemoComponent {}\n"
3118
+ },
3119
+ {
3120
+ "fileName": "record-page-tabs-layout-demo.module.ts",
3121
+ "filePath": "/projects/pages/documentation/code-examples/page/record-page-tabs-layout-demo/record-page-tabs-layout-demo.module.ts",
3122
+ "rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyIconModule, SkyKeyInfoModule } from '@skyux/indicators';\nimport {\n SkyBoxModule,\n SkyDescriptionListModule,\n SkyFluidGridModule,\n SkyToolbarModule,\n} from '@skyux/layout';\nimport { SkyRepeaterModule, SkySortModule } from '@skyux/lists';\nimport { SkySearchModule } from '@skyux/lookup';\nimport { SkyPageModule } from '@skyux/pages';\nimport { SkyDropdownModule } from '@skyux/popovers';\nimport { SkyTabsModule } from '@skyux/tabs';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { AttachmentsGridContextMenuComponent } from './attachments-grid-context-menu.component';\nimport { RecordPageAttachmentsTabComponent } from './record-page-attachments-tab.component';\nimport { RecordPageContentComponent } from './record-page-content.component';\nimport { RecordPageNotesTabComponent } from './record-page-notes-tab.component';\nimport { RecordPageOverviewTabComponent } from './record-page-overview-tab.component';\nimport { RecordPageTabsLayoutDemoComponent } from './record-page-tabs-layout-demo.component';\n\n@NgModule({\n declarations: [\n AttachmentsGridContextMenuComponent,\n RecordPageAttachmentsTabComponent,\n RecordPageContentComponent,\n RecordPageNotesTabComponent,\n RecordPageOverviewTabComponent,\n RecordPageTabsLayoutDemoComponent,\n ],\n exports: [RecordPageTabsLayoutDemoComponent],\n imports: [\n AgGridModule,\n CommonModule,\n SkyAgGridModule,\n SkyBoxModule,\n SkyDataManagerModule,\n SkyDescriptionListModule,\n SkyDropdownModule,\n SkyFluidGridModule,\n SkyIconModule,\n SkyKeyInfoModule,\n SkyPageModule,\n SkyRepeaterModule,\n SkySearchModule,\n SkySortModule,\n SkyTabsModule,\n SkyToolbarModule,\n ],\n})\nexport class RecordPageTabsLayoutDemoModule {}\n"
3123
+ },
3124
+ {
3125
+ "fileName": "split-view-page-content.component.html",
3126
+ "filePath": "/projects/pages/documentation/code-examples/page/split-view-page-fit-layout-demo/split-view-page-content.component.html",
3127
+ "rawContents": "<sky-split-view dock=\"fill\" [messageStream]=\"splitViewStream\">\n <sky-split-view-drawer [ariaLabel]=\"'Transaction list'\" [width]=\"listWidth\">\n <sky-repeater [activeIndex]=\"activeIndex\">\n <sky-repeater-item\n *ngFor=\"let item of items; let i = index\"\n (click)=\"onItemClick(i)\"\n (keyup.enter)=\"onItemClick(i)\"\n >\n <sky-repeater-item-content>\n {{ item.amount }} <br />\n {{ item.date }} <br />\n {{ item.vendor }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n </sky-split-view-drawer>\n\n <sky-split-view-workspace ariaLabel=\"Transaction form\">\n <sky-split-view-workspace-content class=\"sky-padding-even-large\">\n <form [formGroup]=\"splitViewDemoForm\" (ngSubmit)=\"onApprove()\">\n <sky-description-list class=\"sky-margin-stacked-xl\">\n <sky-description-list-content>\n <sky-description-list-term>\n Receipt amount\n </sky-description-list-term>\n <sky-description-list-description>\n {{ activeRecord.amount }}\n </sky-description-list-description>\n </sky-description-list-content>\n <sky-description-list-content>\n <sky-description-list-term> Date </sky-description-list-term>\n <sky-description-list-description>\n {{ activeRecord.date }}\n </sky-description-list-description>\n </sky-description-list-content>\n <sky-description-list-content>\n <sky-description-list-term> Vendor </sky-description-list-term>\n <sky-description-list-description>\n {{ activeRecord.vendor }}\n </sky-description-list-description>\n </sky-description-list-content>\n <sky-description-list-content>\n <sky-description-list-term>\n Receipt image\n </sky-description-list-term>\n <sky-description-list-description>\n {{ activeRecord.receiptImage }}\n </sky-description-list-description>\n </sky-description-list-content>\n </sky-description-list>\n <div class=\"sky-form-group\">\n <sky-input-box>\n <label class=\"sky-control-label\" [for]=\"amountInput.id\">\n Approved amount\n </label>\n <input\n class=\"sky-form-control\"\n formControlName=\"approvedAmount\"\n name=\"approvedAmount\"\n type=\"text\"\n skyId\n #amountInput\n />\n </sky-input-box>\n </div>\n\n <div class=\"sky-form-group\">\n <sky-input-box>\n <label class=\"sky-control-label\" [for]=\"commentsInput.id\">\n Comments\n </label>\n <textarea\n class=\"sky-form-control\"\n formControlName=\"comments\"\n name=\"comments\"\n skyId\n #commentsInput\n ></textarea>\n </sky-input-box>\n </div>\n </form>\n </sky-split-view-workspace-content>\n <sky-split-view-workspace-footer>\n <sky-summary-action-bar id=\"summary-action-bar\">\n <sky-summary-action-bar-actions>\n <sky-summary-action-bar-primary-action (actionClick)=\"onApprove()\">\n Approve expense\n </sky-summary-action-bar-primary-action>\n <sky-summary-action-bar-secondary-actions>\n <sky-summary-action-bar-secondary-action (actionClick)=\"onDeny()\">\n Deny expense\n </sky-summary-action-bar-secondary-action>\n </sky-summary-action-bar-secondary-actions>\n </sky-summary-action-bar-actions>\n </sky-summary-action-bar>\n </sky-split-view-workspace-footer>\n </sky-split-view-workspace>\n</sky-split-view>\n"
3128
+ },
3129
+ {
3130
+ "fileName": "split-view-page-content.component.ts",
3131
+ "filePath": "/projects/pages/documentation/code-examples/page/split-view-page-fit-layout-demo/split-view-page-content.component.ts",
3132
+ "rawContents": "import { Component, inject } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { SkyConfirmService, SkyConfirmType } from '@skyux/modals';\nimport {\n SkySplitViewMessage,\n SkySplitViewMessageType,\n} from '@skyux/split-view';\n\nimport { Subject } from 'rxjs';\n\ninterface WorkspaceItem {\n id: number;\n amount: number;\n date: string;\n vendor: string;\n receiptImage: string;\n approvedAmount: number;\n comments: string;\n}\n\n@Component({\n selector: 'app-split-view-page-content',\n templateUrl: './split-view-page-content.component.html',\n})\nexport class SplitViewPageContentComponent {\n protected set activeIndex(value: number) {\n this.#_activeIndex = value;\n this.activeRecord = this.items[this.#_activeIndex];\n this.#loadFormGroup(this.activeRecord);\n }\n\n protected get activeIndex(): number {\n return this.#_activeIndex;\n }\n\n protected items: WorkspaceItem[] = [\n {\n id: 1,\n amount: 73.19,\n date: '5/13/2020',\n vendor: 'amazon.com',\n receiptImage: 'amzn-office-supply-order-5-13-19.png',\n approvedAmount: 73.19,\n comments: '',\n },\n {\n id: 2,\n amount: 214.12,\n date: '5/14/2020',\n vendor: 'Office Max',\n receiptImage: 'office-max-order.png',\n approvedAmount: 214.12,\n comments: '',\n },\n {\n id: 3,\n amount: 29.99,\n date: '5/14/2020',\n vendor: 'amazon.com',\n receiptImage: 'amzn-office-supply-order-5-14-19.png',\n approvedAmount: 29.99,\n comments: '',\n },\n {\n id: 4,\n amount: 1500,\n date: '5/15/2020',\n vendor: 'Fresh Catering, LLC',\n receiptImage: 'fresh-catering-llc-order.png',\n approvedAmount: 1500,\n comments: '',\n },\n {\n id: 5,\n amount: 456.24,\n date: '5/16/2020',\n vendor: 'Wish',\n receiptImage: 'wish-delivery-order.png',\n approvedAmount: 456.24,\n comments: '',\n },\n {\n id: 6,\n amount: 62.37,\n date: '5/16/2020',\n vendor: 'Staples',\n receiptImage: 'staples-paper-bulk-order.png',\n approvedAmount: 62.37,\n comments: '',\n },\n {\n id: 7,\n amount: 51.84,\n date: '5/17/2020',\n vendor: 'amazon.com',\n receiptImage: 'amzn-office-supply-order-5-17-19.png',\n approvedAmount: 51.84,\n comments: '',\n },\n {\n id: 8,\n amount: 92.55,\n date: '5/18/2020',\n vendor: 'Home Depot',\n receiptImage: 'home-depot-order.png',\n approvedAmount: 0.0,\n comments: '',\n },\n {\n id: 9,\n amount: 38.29,\n date: '5/18/2020',\n vendor: 'Papa Johns',\n receiptImage: 'papa-johns-order.png',\n approvedAmount: 38.29,\n comments: '',\n },\n ];\n\n protected activeRecord = this.items[0];\n protected listWidth: number | undefined;\n protected splitViewStream = new Subject<SkySplitViewMessage>();\n\n protected splitViewDemoForm = inject(FormBuilder).group({\n approvedAmount: [this.activeRecord.approvedAmount],\n comments: [this.activeRecord.comments],\n });\n\n #_activeIndex = 0;\n\n #confirmSvc = inject(SkyConfirmService);\n\n protected onItemClick(index: number): void {\n // Prevent workspace from loading new data if the current workspace form is dirty.\n if (this.splitViewDemoForm.dirty && index !== this.activeIndex) {\n this.#openConfirmModal(index);\n } else {\n this.#loadWorkspace(index);\n }\n }\n\n protected onApprove(): void {\n console.log('Approved clicked!');\n this.#saveForm();\n }\n\n protected onDeny(): void {\n console.log('Denied clicked!');\n }\n\n #loadFormGroup(record: WorkspaceItem): void {\n this.splitViewDemoForm.setValue({\n approvedAmount: record.approvedAmount,\n comments: record.comments,\n });\n }\n\n #loadWorkspace(index: number): void {\n this.activeIndex = index;\n this.#setFocusInWorkspace();\n }\n\n #openConfirmModal(index: number): void {\n this.#confirmSvc\n .open({\n message:\n 'You have unsaved work. Would you like to save it before you change records?',\n type: SkyConfirmType.Custom,\n buttons: [\n {\n action: 'yes',\n text: 'Yes',\n styleType: 'primary',\n },\n {\n action: 'discard',\n text: 'Discard changes',\n styleType: 'link',\n },\n ],\n })\n .closed.subscribe((closeArgs) => {\n if (closeArgs.action === 'yes') {\n this.#saveForm();\n }\n\n this.#loadWorkspace(index);\n });\n }\n\n #saveForm(): void {\n this.activeRecord = Object.assign(\n this.activeRecord,\n this.splitViewDemoForm.value\n );\n\n this.splitViewDemoForm.markAsPristine();\n }\n\n #setFocusInWorkspace(): void {\n this.splitViewStream.next({\n type: SkySplitViewMessageType.FocusWorkspace,\n });\n }\n}\n"
3133
+ },
3134
+ {
3135
+ "fileName": "split-view-page-fit-layout-demo.component.html",
3136
+ "filePath": "/projects/pages/documentation/code-examples/page/split-view-page-fit-layout-demo/split-view-page-fit-layout-demo.component.html",
3137
+ "rawContents": "<sky-page layout=\"fit\">\n <sky-page-header\n pageTitle=\"Expenses to approve\"\n [parentLink]=\"{\n label: 'Expenses',\n permalink: {\n route: {\n commands: ['/']\n }\n }\n }\"\n />\n <sky-page-content>\n <app-split-view-page-content></app-split-view-page-content>\n </sky-page-content>\n</sky-page>\n"
3138
+ },
3139
+ {
3140
+ "fileName": "split-view-page-fit-layout-demo.component.spec.ts",
3141
+ "filePath": "/projects/pages/documentation/code-examples/page/split-view-page-fit-layout-demo/split-view-page-fit-layout-demo.component.spec.ts",
3142
+ "rawContents": "import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';\nimport { ComponentFixture, TestBed } from '@angular/core/testing';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterTestingModule } from '@angular/router/testing';\nimport { SkyPageHarness } from '@skyux/pages/testing';\n\nimport { SplitViewPageFitLayoutDemoComponent } from './split-view-page-fit-layout-demo.component';\nimport { SplitViewPageFitLayoutDemoModule } from './split-view-page-fit-layout-demo.module';\n\nfdescribe('Split view page fit layout demo', async () => {\n async function setupTest(): Promise<{\n pageHarness: SkyPageHarness;\n fixture: ComponentFixture<SplitViewPageFitLayoutDemoComponent>;\n }> {\n const fixture = TestBed.createComponent(\n SplitViewPageFitLayoutDemoComponent\n );\n\n const loader = TestbedHarnessEnvironment.documentRootLoader(fixture);\n const pageHarness = await loader.getHarness(SkyPageHarness);\n\n return { pageHarness, fixture };\n }\n\n beforeEach(() => {\n TestBed.configureTestingModule({\n imports: [\n NoopAnimationsModule,\n RouterTestingModule,\n SplitViewPageFitLayoutDemoModule,\n ],\n });\n });\n\n it('should have a fit layout', async () => {\n const { pageHarness, fixture } = await setupTest();\n\n fixture.detectChanges();\n\n await expectAsync(pageHarness.getLayout()).toBeResolvedTo('fit');\n });\n});\n"
3143
+ },
3144
+ {
3145
+ "fileName": "split-view-page-fit-layout-demo.component.ts",
3146
+ "filePath": "/projects/pages/documentation/code-examples/page/split-view-page-fit-layout-demo/split-view-page-fit-layout-demo.component.ts",
3147
+ "rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-split-view-page-fit-layout-demo',\n templateUrl: './split-view-page-fit-layout-demo.component.html',\n})\nexport class SplitViewPageFitLayoutDemoComponent {}\n"
3148
+ },
3149
+ {
3150
+ "fileName": "split-view-page-fit-layout-demo.module.ts",
3151
+ "filePath": "/projects/pages/documentation/code-examples/page/split-view-page-fit-layout-demo/split-view-page-fit-layout-demo.module.ts",
3152
+ "rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SkySummaryActionBarModule } from '@skyux/action-bars';\nimport { SkyInputBoxModule } from '@skyux/forms';\nimport { SkyDescriptionListModule } from '@skyux/layout';\nimport { SkyRepeaterModule } from '@skyux/lists';\nimport { SkyPageModule } from '@skyux/pages';\nimport { SkySplitViewModule } from '@skyux/split-view';\n\nimport { SplitViewPageContentComponent } from './split-view-page-content.component';\nimport { SplitViewPageFitLayoutDemoComponent } from './split-view-page-fit-layout-demo.component';\n\n@NgModule({\n declarations: [\n SplitViewPageFitLayoutDemoComponent,\n SplitViewPageContentComponent,\n ],\n exports: [SplitViewPageFitLayoutDemoComponent],\n imports: [\n SkyPageModule,\n CommonModule,\n ReactiveFormsModule,\n SkyDescriptionListModule,\n SkyInputBoxModule,\n SkyRepeaterModule,\n SkySplitViewModule,\n SkySummaryActionBarModule,\n ],\n})\nexport class SplitViewPageFitLayoutDemoModule {}\n"
2198
3153
  }
2199
3154
  ]
2200
3155
  }