@skyux/avatar 11.22.0 → 11.23.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.
@@ -33,7 +33,7 @@
33
33
  "fileName": "projects/avatar/src/modules/avatar/avatar.module.ts",
34
34
  "line": 24,
35
35
  "character": 13,
36
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.module.ts#L24"
36
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.module.ts#L24"
37
37
  }
38
38
  ],
39
39
  "decorators": [
@@ -63,7 +63,7 @@
63
63
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
64
64
  "line": 109,
65
65
  "character": 2,
66
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L109"
66
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L109"
67
67
  }
68
68
  ],
69
69
  "signatures": [
@@ -78,7 +78,7 @@
78
78
  "fileName": "libs/components/avatar/src/lib/modules/avatar/avatar.component.ts",
79
79
  "line": 109,
80
80
  "character": 2,
81
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L109"
81
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L109"
82
82
  }
83
83
  ],
84
84
  "parameters": [
@@ -169,7 +169,7 @@
169
169
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
170
170
  "line": 93,
171
171
  "character": 9,
172
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L93"
172
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L93"
173
173
  }
174
174
  ],
175
175
  "type": {
@@ -231,7 +231,7 @@
231
231
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
232
232
  "line": 79,
233
233
  "character": 9,
234
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L79"
234
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L79"
235
235
  }
236
236
  ],
237
237
  "type": {
@@ -301,7 +301,7 @@
301
301
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
302
302
  "line": 87,
303
303
  "character": 9,
304
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L87"
304
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L87"
305
305
  }
306
306
  ],
307
307
  "type": {
@@ -329,13 +329,13 @@
329
329
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
330
330
  "line": 36,
331
331
  "character": 13,
332
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L36"
332
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L36"
333
333
  },
334
334
  {
335
335
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
336
336
  "line": 40,
337
337
  "character": 13,
338
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L40"
338
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L40"
339
339
  }
340
340
  ],
341
341
  "getSignature": {
@@ -349,7 +349,7 @@
349
349
  "fileName": "libs/components/avatar/src/lib/modules/avatar/avatar.component.ts",
350
350
  "line": 40,
351
351
  "character": 13,
352
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L40"
352
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L40"
353
353
  }
354
354
  ],
355
355
  "type": {
@@ -395,7 +395,7 @@
395
395
  "fileName": "libs/components/avatar/src/lib/modules/avatar/avatar.component.ts",
396
396
  "line": 36,
397
397
  "character": 13,
398
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L36"
398
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L36"
399
399
  }
400
400
  ],
401
401
  "parameters": [
@@ -435,13 +435,13 @@
435
435
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
436
436
  "line": 53,
437
437
  "character": 13,
438
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L53"
438
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L53"
439
439
  },
440
440
  {
441
441
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
442
442
  "line": 57,
443
443
  "character": 13,
444
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L57"
444
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L57"
445
445
  }
446
446
  ],
447
447
  "getSignature": {
@@ -455,7 +455,7 @@
455
455
  "fileName": "libs/components/avatar/src/lib/modules/avatar/avatar.component.ts",
456
456
  "line": 57,
457
457
  "character": 13,
458
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L57"
458
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L57"
459
459
  }
460
460
  ],
461
461
  "type": {
@@ -506,7 +506,7 @@
506
506
  "fileName": "libs/components/avatar/src/lib/modules/avatar/avatar.component.ts",
507
507
  "line": 53,
508
508
  "character": 13,
509
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L53"
509
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L53"
510
510
  }
511
511
  ],
512
512
  "parameters": [
@@ -546,13 +546,13 @@
546
546
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
547
547
  "line": 66,
548
548
  "character": 13,
549
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L66"
549
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L66"
550
550
  },
551
551
  {
552
552
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
553
553
  "line": 70,
554
554
  "character": 13,
555
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L70"
555
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L70"
556
556
  }
557
557
  ],
558
558
  "getSignature": {
@@ -566,7 +566,7 @@
566
566
  "fileName": "libs/components/avatar/src/lib/modules/avatar/avatar.component.ts",
567
567
  "line": 70,
568
568
  "character": 13,
569
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L70"
569
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L70"
570
570
  }
571
571
  ],
572
572
  "type": {
@@ -611,7 +611,7 @@
611
611
  "fileName": "libs/components/avatar/src/lib/modules/avatar/avatar.component.ts",
612
612
  "line": 66,
613
613
  "character": 13,
614
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L66"
614
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L66"
615
615
  }
616
616
  ],
617
617
  "parameters": [
@@ -653,7 +653,7 @@
653
653
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
654
654
  "line": 124,
655
655
  "character": 9,
656
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L124"
656
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L124"
657
657
  }
658
658
  ],
659
659
  "signatures": [
@@ -668,7 +668,7 @@
668
668
  "fileName": "libs/components/avatar/src/lib/modules/avatar/avatar.component.ts",
669
669
  "line": 124,
670
670
  "character": 9,
671
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L124"
671
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L124"
672
672
  }
673
673
  ],
674
674
  "parameters": [
@@ -733,7 +733,7 @@
733
733
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
734
734
  "line": 27,
735
735
  "character": 13,
736
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L27"
736
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar.component.ts#L27"
737
737
  }
738
738
  ],
739
739
  "decorators": [
@@ -756,7 +756,7 @@
756
756
  "fileName": "projects/avatar/src/modules/avatar/avatar-size.ts",
757
757
  "line": 1,
758
758
  "character": 12,
759
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar-size.ts#L1"
759
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar-size.ts#L1"
760
760
  }
761
761
  ],
762
762
  "type": {
@@ -788,7 +788,7 @@
788
788
  "fileName": "projects/avatar/src/modules/avatar/avatar-src.ts",
789
789
  "line": 1,
790
790
  "character": 12,
791
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/src/lib/modules/avatar/avatar-src.ts#L1"
791
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/src/lib/modules/avatar/avatar-src.ts#L1"
792
792
  }
793
793
  ],
794
794
  "type": {
@@ -908,10 +908,10 @@
908
908
  },
909
909
  "sources": [
910
910
  {
911
- "fileName": "projects/avatar/src/testing/avatar/avatar-harness.ts",
911
+ "fileName": "projects/avatar/src/testing/modules/avatar/avatar-harness.ts",
912
912
  "line": 116,
913
913
  "character": 15,
914
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L116"
914
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L116"
915
915
  }
916
916
  ],
917
917
  "signatures": [
@@ -931,10 +931,10 @@
931
931
  },
932
932
  "sources": [
933
933
  {
934
- "fileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
934
+ "fileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
935
935
  "line": 116,
936
936
  "character": 15,
937
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L116"
937
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L116"
938
938
  }
939
939
  ],
940
940
  "type": {
@@ -966,10 +966,10 @@
966
966
  },
967
967
  "sources": [
968
968
  {
969
- "fileName": "projects/avatar/src/testing/avatar/avatar-harness.ts",
969
+ "fileName": "projects/avatar/src/testing/modules/avatar/avatar-harness.ts",
970
970
  "line": 76,
971
971
  "character": 15,
972
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L76"
972
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L76"
973
973
  }
974
974
  ],
975
975
  "signatures": [
@@ -989,10 +989,10 @@
989
989
  },
990
990
  "sources": [
991
991
  {
992
- "fileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
992
+ "fileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
993
993
  "line": 76,
994
994
  "character": 15,
995
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L76"
995
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L76"
996
996
  }
997
997
  ],
998
998
  "parameters": [
@@ -1055,10 +1055,10 @@
1055
1055
  },
1056
1056
  "sources": [
1057
1057
  {
1058
- "fileName": "projects/avatar/src/testing/avatar/avatar-harness.ts",
1058
+ "fileName": "projects/avatar/src/testing/modules/avatar/avatar-harness.ts",
1059
1059
  "line": 69,
1060
1060
  "character": 15,
1061
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L69"
1061
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L69"
1062
1062
  }
1063
1063
  ],
1064
1064
  "signatures": [
@@ -1078,10 +1078,10 @@
1078
1078
  },
1079
1079
  "sources": [
1080
1080
  {
1081
- "fileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1081
+ "fileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1082
1082
  "line": 69,
1083
1083
  "character": 15,
1084
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L69"
1084
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L69"
1085
1085
  }
1086
1086
  ],
1087
1087
  "type": {
@@ -1113,10 +1113,10 @@
1113
1113
  },
1114
1114
  "sources": [
1115
1115
  {
1116
- "fileName": "projects/avatar/src/testing/avatar/avatar-harness.ts",
1116
+ "fileName": "projects/avatar/src/testing/modules/avatar/avatar-harness.ts",
1117
1117
  "line": 43,
1118
1118
  "character": 15,
1119
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L43"
1119
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L43"
1120
1120
  }
1121
1121
  ],
1122
1122
  "signatures": [
@@ -1136,10 +1136,10 @@
1136
1136
  },
1137
1137
  "sources": [
1138
1138
  {
1139
- "fileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1139
+ "fileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1140
1140
  "line": 43,
1141
1141
  "character": 15,
1142
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L43"
1142
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L43"
1143
1143
  }
1144
1144
  ],
1145
1145
  "type": {
@@ -1171,10 +1171,10 @@
1171
1171
  },
1172
1172
  "sources": [
1173
1173
  {
1174
- "fileName": "projects/avatar/src/testing/avatar/avatar-harness.ts",
1174
+ "fileName": "projects/avatar/src/testing/modules/avatar/avatar-harness.ts",
1175
1175
  "line": 56,
1176
1176
  "character": 15,
1177
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L56"
1177
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L56"
1178
1178
  }
1179
1179
  ],
1180
1180
  "signatures": [
@@ -1194,10 +1194,10 @@
1194
1194
  },
1195
1195
  "sources": [
1196
1196
  {
1197
- "fileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1197
+ "fileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1198
1198
  "line": 56,
1199
1199
  "character": 15,
1200
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L56"
1200
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L56"
1201
1201
  }
1202
1202
  ],
1203
1203
  "type": {
@@ -1243,10 +1243,10 @@
1243
1243
  },
1244
1244
  "sources": [
1245
1245
  {
1246
- "fileName": "projects/avatar/src/testing/avatar/avatar-harness.ts",
1246
+ "fileName": "projects/avatar/src/testing/modules/avatar/avatar-harness.ts",
1247
1247
  "line": 98,
1248
1248
  "character": 15,
1249
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L98"
1249
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L98"
1250
1250
  }
1251
1251
  ],
1252
1252
  "signatures": [
@@ -1266,10 +1266,10 @@
1266
1266
  },
1267
1267
  "sources": [
1268
1268
  {
1269
- "fileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1269
+ "fileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1270
1270
  "line": 98,
1271
1271
  "character": 15,
1272
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L98"
1272
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L98"
1273
1273
  }
1274
1274
  ],
1275
1275
  "type": {
@@ -1301,10 +1301,10 @@
1301
1301
  },
1302
1302
  "sources": [
1303
1303
  {
1304
- "fileName": "projects/avatar/src/testing/avatar/avatar-harness.ts",
1304
+ "fileName": "projects/avatar/src/testing/modules/avatar/avatar-harness.ts",
1305
1305
  "line": 107,
1306
1306
  "character": 15,
1307
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L107"
1307
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L107"
1308
1308
  }
1309
1309
  ],
1310
1310
  "signatures": [
@@ -1324,10 +1324,10 @@
1324
1324
  },
1325
1325
  "sources": [
1326
1326
  {
1327
- "fileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1327
+ "fileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1328
1328
  "line": 107,
1329
1329
  "character": 15,
1330
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L107"
1330
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L107"
1331
1331
  }
1332
1332
  ],
1333
1333
  "type": {
@@ -1444,10 +1444,10 @@
1444
1444
  },
1445
1445
  "sources": [
1446
1446
  {
1447
- "fileName": "projects/avatar/src/testing/avatar/avatar-harness.ts",
1447
+ "fileName": "projects/avatar/src/testing/modules/avatar/avatar-harness.ts",
1448
1448
  "line": 34,
1449
1449
  "character": 16,
1450
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L34"
1450
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L34"
1451
1451
  }
1452
1452
  ],
1453
1453
  "signatures": [
@@ -1483,10 +1483,10 @@
1483
1483
  },
1484
1484
  "sources": [
1485
1485
  {
1486
- "fileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1486
+ "fileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1487
1487
  "line": 34,
1488
1488
  "character": 16,
1489
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L34"
1489
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L34"
1490
1490
  }
1491
1491
  ],
1492
1492
  "parameters": [
@@ -1499,7 +1499,7 @@
1499
1499
  "type": {
1500
1500
  "type": "reference",
1501
1501
  "target": {
1502
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness-filters.ts",
1502
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness-filters.ts",
1503
1503
  "qualifiedName": "SkyAvatarHarnessFilters"
1504
1504
  },
1505
1505
  "name": "SkyAvatarHarnessFilters",
@@ -1553,10 +1553,10 @@
1553
1553
  ],
1554
1554
  "sources": [
1555
1555
  {
1556
- "fileName": "projects/avatar/src/testing/avatar/avatar-harness.ts",
1556
+ "fileName": "projects/avatar/src/testing/modules/avatar/avatar-harness.ts",
1557
1557
  "line": 18,
1558
1558
  "character": 13,
1559
- "url": "https://github.com/blackbaud/skyux/blob/96254db/libs/components/avatar/testing/src/avatar/avatar-harness.ts#L18"
1559
+ "url": "https://github.com/blackbaud/skyux/blob/05a7993/libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts#L18"
1560
1560
  }
1561
1561
  ],
1562
1562
  "extendedTypes": [
@@ -1715,19 +1715,19 @@
1715
1715
  "qualifiedName": "result"
1716
1716
  },
1717
1717
  "63": {
1718
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1718
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1719
1719
  "qualifiedName": "SkyAvatarHarness"
1720
1720
  },
1721
1721
  "65": {
1722
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1722
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1723
1723
  "qualifiedName": "SkyAvatarHarness.with"
1724
1724
  },
1725
1725
  "66": {
1726
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1726
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1727
1727
  "qualifiedName": "SkyAvatarHarness.with"
1728
1728
  },
1729
1729
  "67": {
1730
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1730
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1731
1731
  "qualifiedName": "filters"
1732
1732
  },
1733
1733
  "73": {
@@ -1743,67 +1743,67 @@
1743
1743
  "qualifiedName": "locatorFactory"
1744
1744
  },
1745
1745
  "79": {
1746
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1746
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1747
1747
  "qualifiedName": "SkyAvatarHarness.getInitials"
1748
1748
  },
1749
1749
  "80": {
1750
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1750
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1751
1751
  "qualifiedName": "SkyAvatarHarness.getInitials"
1752
1752
  },
1753
1753
  "81": {
1754
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1754
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1755
1755
  "qualifiedName": "SkyAvatarHarness.getSrc"
1756
1756
  },
1757
1757
  "82": {
1758
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1758
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1759
1759
  "qualifiedName": "SkyAvatarHarness.getSrc"
1760
1760
  },
1761
1761
  "83": {
1762
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1762
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1763
1763
  "qualifiedName": "SkyAvatarHarness.getCanChange"
1764
1764
  },
1765
1765
  "84": {
1766
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1766
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1767
1767
  "qualifiedName": "SkyAvatarHarness.getCanChange"
1768
1768
  },
1769
1769
  "85": {
1770
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1770
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1771
1771
  "qualifiedName": "SkyAvatarHarness.dropAvatarFile"
1772
1772
  },
1773
1773
  "86": {
1774
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1774
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1775
1775
  "qualifiedName": "SkyAvatarHarness.dropAvatarFile"
1776
1776
  },
1777
1777
  "87": {
1778
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1778
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1779
1779
  "qualifiedName": "file"
1780
1780
  },
1781
1781
  "88": {
1782
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1782
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1783
1783
  "qualifiedName": "waitForChange"
1784
1784
  },
1785
1785
  "89": {
1786
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1786
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1787
1787
  "qualifiedName": "SkyAvatarHarness.hasFileTypeError"
1788
1788
  },
1789
1789
  "90": {
1790
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1790
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1791
1791
  "qualifiedName": "SkyAvatarHarness.hasFileTypeError"
1792
1792
  },
1793
1793
  "91": {
1794
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1794
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1795
1795
  "qualifiedName": "SkyAvatarHarness.hasMaxSizeError"
1796
1796
  },
1797
1797
  "92": {
1798
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1798
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1799
1799
  "qualifiedName": "SkyAvatarHarness.hasMaxSizeError"
1800
1800
  },
1801
1801
  "93": {
1802
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1802
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1803
1803
  "qualifiedName": "SkyAvatarHarness.closeError"
1804
1804
  },
1805
1805
  "94": {
1806
- "sourceFileName": "libs/components/avatar/testing/src/avatar/avatar-harness.ts",
1806
+ "sourceFileName": "libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts",
1807
1807
  "qualifiedName": "SkyAvatarHarness.closeError"
1808
1808
  },
1809
1809
  "104": {
@@ -1850,22 +1850,22 @@
1850
1850
  "@angular/forms": "18.2.8",
1851
1851
  "@angular/platform-browser": "18.2.8",
1852
1852
  "@angular/router": "18.2.8",
1853
- "@blackbaud/skyux-design-tokens": "0.0.41",
1853
+ "@blackbaud/skyux-design-tokens": "0.0.42",
1854
1854
  "@schematics/angular": "18.2.8",
1855
- "@skyux-sdk/testing": "11.22.0",
1856
- "@skyux/assets": "11.22.0",
1857
- "@skyux/avatar": "11.22.0",
1858
- "@skyux/core": "11.22.0",
1859
- "@skyux/errors": "11.22.0",
1860
- "@skyux/forms": "11.22.0",
1861
- "@skyux/help-inline": "11.22.0",
1862
- "@skyux/i18n": "11.22.0",
1863
- "@skyux/icon": "11.22.0",
1855
+ "@skyux-sdk/testing": "11.23.0",
1856
+ "@skyux/assets": "11.23.0",
1857
+ "@skyux/avatar": "11.23.0",
1858
+ "@skyux/core": "11.23.0",
1859
+ "@skyux/errors": "11.23.0",
1860
+ "@skyux/forms": "11.23.0",
1861
+ "@skyux/help-inline": "11.23.0",
1862
+ "@skyux/i18n": "11.23.0",
1863
+ "@skyux/icon": "11.23.0",
1864
1864
  "@skyux/icons": "7.8.0",
1865
- "@skyux/indicators": "11.22.0",
1866
- "@skyux/modals": "11.22.0",
1867
- "@skyux/popovers": "11.22.0",
1868
- "@skyux/theme": "11.22.0",
1865
+ "@skyux/indicators": "11.23.0",
1866
+ "@skyux/modals": "11.23.0",
1867
+ "@skyux/popovers": "11.23.0",
1868
+ "@skyux/theme": "11.23.0",
1869
1869
  "@types/node": "20.14.12",
1870
1870
  "axe-core": "4.10.0",
1871
1871
  "cross-spawn": "7.0.3",
@@ -0,0 +1,34 @@
1
+ import { By } from '@angular/platform-browser';
2
+ import { SkyAppTestUtility } from '@skyux-sdk/testing';
3
+ /**
4
+ * Allows interaction with a SKY UX avatar component.
5
+ * @deprecated Use `SkyAvatarHarness` instead.
6
+ * @internal
7
+ */
8
+ export class SkyAvatarFixture {
9
+ /**
10
+ * The initials displayed when no image URL is specified.
11
+ */
12
+ get initials() {
13
+ const initialsEl = this.#debugEl.query(By.css('.sky-avatar-initials'));
14
+ if (SkyAppTestUtility.isVisible(initialsEl)) {
15
+ return SkyAppTestUtility.getText(initialsEl.query(By.css('.sky-avatar-initials-inner')));
16
+ }
17
+ return undefined;
18
+ }
19
+ /**
20
+ * The avatar's current image URL.
21
+ */
22
+ get imageUrl() {
23
+ const imageEl = this.#debugEl.query(By.css('.sky-avatar-image'));
24
+ if (SkyAppTestUtility.isVisible(imageEl)) {
25
+ return SkyAppTestUtility.getBackgroundImageUrl(imageEl);
26
+ }
27
+ return undefined;
28
+ }
29
+ #debugEl;
30
+ constructor(fixture, skyTestId) {
31
+ this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-avatar');
32
+ }
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWZpeHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXZhdGFyL3Rlc3Rpbmcvc3JjL2xlZ2FjeS9hdmF0YXItZml4dHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7UUFFdkUsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FDOUIsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FDdkQsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFFakUsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUSxDQUFlO0lBRXZCLFlBQVksT0FBOEIsRUFBRSxTQUFpQjtRQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUN2RCxPQUFPLEVBQ1AsU0FBUyxFQUNULFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVidWdFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRGaXh0dXJlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IEJ5IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTa3lBcHBUZXN0VXRpbGl0eSB9IGZyb20gJ0Bza3l1eC1zZGsvdGVzdGluZyc7XG5cbi8qKlxuICogQWxsb3dzIGludGVyYWN0aW9uIHdpdGggYSBTS1kgVVggYXZhdGFyIGNvbXBvbmVudC5cbiAqIEBkZXByZWNhdGVkIFVzZSBgU2t5QXZhdGFySGFybmVzc2AgaW5zdGVhZC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2t5QXZhdGFyRml4dHVyZSB7XG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbHMgZGlzcGxheWVkIHdoZW4gbm8gaW1hZ2UgVVJMIGlzIHNwZWNpZmllZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5pdGlhbHMoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpbml0aWFsc0VsID0gdGhpcy4jZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktYXZhdGFyLWluaXRpYWxzJykpO1xuXG4gICAgaWYgKFNreUFwcFRlc3RVdGlsaXR5LmlzVmlzaWJsZShpbml0aWFsc0VsKSkge1xuICAgICAgcmV0dXJuIFNreUFwcFRlc3RVdGlsaXR5LmdldFRleHQoXG4gICAgICAgIGluaXRpYWxzRWwucXVlcnkoQnkuY3NzKCcuc2t5LWF2YXRhci1pbml0aWFscy1pbm5lcicpKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYXZhdGFyJ3MgY3VycmVudCBpbWFnZSBVUkwuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGltYWdlVXJsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaW1hZ2VFbCA9IHRoaXMuI2RlYnVnRWwucXVlcnkoQnkuY3NzKCcuc2t5LWF2YXRhci1pbWFnZScpKTtcblxuICAgIGlmIChTa3lBcHBUZXN0VXRpbGl0eS5pc1Zpc2libGUoaW1hZ2VFbCkpIHtcbiAgICAgIHJldHVybiBTa3lBcHBUZXN0VXRpbGl0eS5nZXRCYWNrZ3JvdW5kSW1hZ2VVcmwoaW1hZ2VFbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gICNkZWJ1Z0VsOiBEZWJ1Z0VsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxhbnk+LCBza3lUZXN0SWQ6IHN0cmluZykge1xuICAgIHRoaXMuI2RlYnVnRWwgPSBTa3lBcHBUZXN0VXRpbGl0eS5nZXREZWJ1Z0VsZW1lbnRCeVRlc3RJZChcbiAgICAgIGZpeHR1cmUsXG4gICAgICBza3lUZXN0SWQsXG4gICAgICAnc2t5LWF2YXRhcicsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWhhcm5lc3MtZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvdGVzdGluZy9zcmMvbW9kdWxlcy9hdmF0YXIvYXZhdGFyLWhhcm5lc3MtZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5SGFybmVzc0ZpbHRlcnMgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcblxuLyoqXG4gKiBBIHNldCBvZiBjcml0ZXJpYSB0aGF0IGNhbiBiZSB1c2VkIHRvIGZpbHRlciBhIGxpc3Qgb2YgU2t5QXZhdGFySGFybmVzcyBpbnN0YW5jZXMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGVcbmV4cG9ydCBpbnRlcmZhY2UgU2t5QXZhdGFySGFybmVzc0ZpbHRlcnMgZXh0ZW5kcyBTa3lIYXJuZXNzRmlsdGVycyB7fVxuIl19
@@ -0,0 +1,118 @@
1
+ import { SkyComponentHarness, SkyHarnessUtility } from '@skyux/core/testing';
2
+ import { SkyErrorModalHarness } from '@skyux/errors/testing';
3
+ import { SkyFileDropHarness } from '@skyux/forms/testing';
4
+ const WAIT_INTERVAL = 10;
5
+ const WAIT_TIMEOUT = 3000;
6
+ async function isHidden(el) {
7
+ return (await el.getCssValue('display')) === 'none';
8
+ }
9
+ /**
10
+ * Harness for interacting with an avatar component in tests.
11
+ */
12
+ export class SkyAvatarHarness extends SkyComponentHarness {
13
+ /**
14
+ * @internal
15
+ */
16
+ static { this.hostSelector = 'sky-avatar'; }
17
+ #documentRootLocator = this.documentRootLocatorFactory();
18
+ #getFileDrop = this.locatorForOptional(SkyFileDropHarness);
19
+ #errorModal = this.#documentRootLocator.locatorForOptional(SkyErrorModalHarness);
20
+ /**
21
+ * Gets a `HarnessPredicate` that can be used to search for a
22
+ * `SkyAvatarHarness` that meets certain criteria.
23
+ */
24
+ static with(filters) {
25
+ return SkyAvatarHarness.getDataSkyIdPredicate(filters);
26
+ }
27
+ /**
28
+ * Gets the initials displayed when no image URL is specified.
29
+ */
30
+ async getInitials() {
31
+ const initialsEl = await this.locatorFor('.sky-avatar-initials')();
32
+ if (await isHidden(initialsEl)) {
33
+ return undefined;
34
+ }
35
+ return await initialsEl.text();
36
+ }
37
+ /**
38
+ * Gets the avatar's current image URL or Blob.
39
+ */
40
+ async getSrc() {
41
+ const url = await this.#getImageUrl();
42
+ if (url?.startsWith('blob:')) {
43
+ return await (await fetch(url)).blob();
44
+ }
45
+ return url;
46
+ }
47
+ /**
48
+ * Gets whether users can change the image.
49
+ */
50
+ async getCanChange() {
51
+ return !!(await this.#getFileDrop());
52
+ }
53
+ /**
54
+ * Simulates the user selecting or dropping an image onto the component.
55
+ */
56
+ async dropAvatarFile(file, waitForChange) {
57
+ const fileDrop = await this.#getFileDrop();
58
+ if (!fileDrop) {
59
+ throw new Error('A new avatar cannot be selected because the canChange input is not set to true.');
60
+ }
61
+ if (waitForChange) {
62
+ await this.#dropAndWait(fileDrop, file);
63
+ }
64
+ else {
65
+ await fileDrop.dropFile(file);
66
+ }
67
+ }
68
+ /**
69
+ * Gets whether an error indicating an invalid file type is displayed.
70
+ */
71
+ async hasFileTypeError() {
72
+ const errorModal = await this.#errorModal();
73
+ return !!(await errorModal?.getTitle())?.includes('File is not an image.');
74
+ }
75
+ /**
76
+ * Gets whether an error indicating an invalid file size is displayed.
77
+ */
78
+ async hasMaxSizeError() {
79
+ const errorModal = await this.#errorModal();
80
+ return !!(await errorModal?.getTitle())?.includes('File is too large.');
81
+ }
82
+ /**
83
+ * Closes the currently displayed error.
84
+ */
85
+ async closeError() {
86
+ const errorModal = await this.#errorModal();
87
+ if (!errorModal) {
88
+ throw new Error('No error is currently displayed.');
89
+ }
90
+ await errorModal.clickCloseButton();
91
+ }
92
+ async #getImageUrl() {
93
+ const imageEl = await this.locatorFor('.sky-avatar-image')();
94
+ if (await isHidden(imageEl)) {
95
+ return undefined;
96
+ }
97
+ return await SkyHarnessUtility.getBackgroundImageUrl(imageEl);
98
+ }
99
+ async #dropAndWait(fileDrop, file) {
100
+ const currentUrl = await this.#getImageUrl();
101
+ await fileDrop.dropFile(file);
102
+ return await new Promise((resolve, reject) => {
103
+ const checkForFileChange = async (attempts) => {
104
+ if ((await this.#getImageUrl()) !== currentUrl) {
105
+ resolve();
106
+ }
107
+ else if (attempts * WAIT_INTERVAL < WAIT_TIMEOUT) {
108
+ setTimeout(() => void checkForFileChange(attempts + 1), WAIT_INTERVAL);
109
+ }
110
+ else {
111
+ reject(new Error('The avatar src did not change within the expected time span'));
112
+ }
113
+ };
114
+ void checkForFileChange(0);
115
+ });
116
+ }
117
+ }
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXZhdGFyL3Rlc3Rpbmcvc3JjL21vZHVsZXMvYXZhdGFyL2F2YXRhci1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSTFELE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUN6QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUM7QUFFMUIsS0FBSyxVQUFVLFFBQVEsQ0FBQyxFQUFlO0lBQ3JDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUM7QUFDdEQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFpQixTQUFRLG1CQUFtQjtJQUN2RDs7T0FFRzthQUNXLGlCQUFZLEdBQUcsWUFBWSxDQUFDO0lBRTFDLG9CQUFvQixHQUFHLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBRXpELFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzRCxXQUFXLEdBQ1QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFckU7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FBZ0M7UUFFaEMsT0FBTyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsV0FBVztRQUN0QixN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QyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUIsT0FBTyxNQUFNLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ2pELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxFQUFFLFFBQWdCLEVBQWlCLEVBQUU7Z0JBQ25FLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUMvQyxPQUFPLEVBQUUsQ0FBQztnQkFDWixDQUFDO3FCQUFNLElBQUksUUFBUSxHQUFHLGFBQWEsR0FBRyxZQUFZLEVBQUUsQ0FBQztvQkFDbkQsVUFBVSxDQUNSLEdBQUcsRUFBRSxDQUFDLEtBQUssa0JBQWtCLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUMzQyxhQUFhLENBQ2QsQ0FBQztnQkFDSixDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxDQUNKLElBQUksS0FBSyxDQUNQLDZEQUE2RCxDQUM5RCxDQUNGLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUMsQ0FBQztZQUVGLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSwgVGVzdEVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzLCBTa3lIYXJuZXNzVXRpbGl0eSB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5RXJyb3JNb2RhbEhhcm5lc3MgfSBmcm9tICdAc2t5dXgvZXJyb3JzL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5RmlsZURyb3BIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2Zvcm1zL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lBdmF0YXJIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vYXZhdGFyLWhhcm5lc3MtZmlsdGVycyc7XG5cbmNvbnN0IFdBSVRfSU5URVJWQUwgPSAxMDtcbmNvbnN0IFdBSVRfVElNRU9VVCA9IDMwMDA7XG5cbmFzeW5jIGZ1bmN0aW9uIGlzSGlkZGVuKGVsOiBUZXN0RWxlbWVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICByZXR1cm4gKGF3YWl0IGVsLmdldENzc1ZhbHVlKCdkaXNwbGF5JykpID09PSAnbm9uZSc7XG59XG5cbi8qKlxuICogSGFybmVzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhbiBhdmF0YXIgY29tcG9uZW50IGluIHRlc3RzLlxuICovXG5leHBvcnQgY2xhc3MgU2t5QXZhdGFySGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktYXZhdGFyJztcblxuICAjZG9jdW1lbnRSb290TG9jYXRvciA9IHRoaXMuZG9jdW1lbnRSb290TG9jYXRvckZhY3RvcnkoKTtcblxuICAjZ2V0RmlsZURyb3AgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChTa3lGaWxlRHJvcEhhcm5lc3MpO1xuICAjZXJyb3JNb2RhbCA9XG4gICAgdGhpcy4jZG9jdW1lbnRSb290TG9jYXRvci5sb2NhdG9yRm9yT3B0aW9uYWwoU2t5RXJyb3JNb2RhbEhhcm5lc3MpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lBdmF0YXJIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5QXZhdGFySGFybmVzc0ZpbHRlcnMsXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5QXZhdGFySGFybmVzcz4ge1xuICAgIHJldHVybiBTa3lBdmF0YXJIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpbml0aWFscyBkaXNwbGF5ZWQgd2hlbiBubyBpbWFnZSBVUkwgaXMgc3BlY2lmaWVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEluaXRpYWxzKCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgaW5pdGlhbHNFbCA9IGF3YWl0IHRoaXMubG9jYXRvckZvcignLnNreS1hdmF0YXItaW5pdGlhbHMnKSgpO1xuXG4gICAgaWYgKGF3YWl0IGlzSGlkZGVuKGluaXRpYWxzRWwpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCBpbml0aWFsc0VsLnRleHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhdmF0YXIncyBjdXJyZW50IGltYWdlIFVSTCBvciBCbG9iLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNyYygpOiBQcm9taXNlPHN0cmluZyB8IEJsb2IgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLiNnZXRJbWFnZVVybCgpO1xuXG4gICAgaWYgKHVybD8uc3RhcnRzV2l0aCgnYmxvYjonKSkge1xuICAgICAgcmV0dXJuIGF3YWl0IChhd2FpdCBmZXRjaCh1cmwpKS5ibG9iKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgdXNlcnMgY2FuIGNoYW5nZSB0aGUgaW1hZ2UuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0Q2FuQ2hhbmdlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAhIShhd2FpdCB0aGlzLiNnZXRGaWxlRHJvcCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaW11bGF0ZXMgdGhlIHVzZXIgc2VsZWN0aW5nIG9yIGRyb3BwaW5nIGFuIGltYWdlIG9udG8gdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBkcm9wQXZhdGFyRmlsZShcbiAgICBmaWxlOiBGaWxlLFxuICAgIHdhaXRGb3JDaGFuZ2U/OiBib29sZWFuLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmaWxlRHJvcCA9IGF3YWl0IHRoaXMuI2dldEZpbGVEcm9wKCk7XG5cbiAgICBpZiAoIWZpbGVEcm9wKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBIG5ldyBhdmF0YXIgY2Fubm90IGJlIHNlbGVjdGVkIGJlY2F1c2UgdGhlIGNhbkNoYW5nZSBpbnB1dCBpcyBub3Qgc2V0IHRvIHRydWUuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHdhaXRGb3JDaGFuZ2UpIHtcbiAgICAgIGF3YWl0IHRoaXMuI2Ryb3BBbmRXYWl0KGZpbGVEcm9wLCBmaWxlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgZmlsZURyb3AuZHJvcEZpbGUoZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgd2hldGhlciBhbiBlcnJvciBpbmRpY2F0aW5nIGFuIGludmFsaWQgZmlsZSB0eXBlIGlzIGRpc3BsYXllZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNGaWxlVHlwZUVycm9yKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGVycm9yTW9kYWwgPSBhd2FpdCB0aGlzLiNlcnJvck1vZGFsKCk7XG5cbiAgICByZXR1cm4gISEoYXdhaXQgZXJyb3JNb2RhbD8uZ2V0VGl0bGUoKSk/LmluY2x1ZGVzKCdGaWxlIGlzIG5vdCBhbiBpbWFnZS4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgYW4gZXJyb3IgaW5kaWNhdGluZyBhbiBpbnZhbGlkIGZpbGUgc2l6ZSBpcyBkaXNwbGF5ZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzTWF4U2l6ZUVycm9yKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGVycm9yTW9kYWwgPSBhd2FpdCB0aGlzLiNlcnJvck1vZGFsKCk7XG5cbiAgICByZXR1cm4gISEoYXdhaXQgZXJyb3JNb2RhbD8uZ2V0VGl0bGUoKSk/LmluY2x1ZGVzKCdGaWxlIGlzIHRvbyBsYXJnZS4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGN1cnJlbnRseSBkaXNwbGF5ZWQgZXJyb3IuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xvc2VFcnJvcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBlcnJvck1vZGFsID0gYXdhaXQgdGhpcy4jZXJyb3JNb2RhbCgpO1xuXG4gICAgaWYgKCFlcnJvck1vZGFsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGVycm9yIGlzIGN1cnJlbnRseSBkaXNwbGF5ZWQuJyk7XG4gICAgfVxuXG4gICAgYXdhaXQgZXJyb3JNb2RhbC5jbGlja0Nsb3NlQnV0dG9uKCk7XG4gIH1cblxuICBhc3luYyAjZ2V0SW1hZ2VVcmwoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBpbWFnZUVsID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWF2YXRhci1pbWFnZScpKCk7XG5cbiAgICBpZiAoYXdhaXQgaXNIaWRkZW4oaW1hZ2VFbCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IFNreUhhcm5lc3NVdGlsaXR5LmdldEJhY2tncm91bmRJbWFnZVVybChpbWFnZUVsKTtcbiAgfVxuXG4gIGFzeW5jICNkcm9wQW5kV2FpdChmaWxlRHJvcDogU2t5RmlsZURyb3BIYXJuZXNzLCBmaWxlOiBGaWxlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IHRoaXMuI2dldEltYWdlVXJsKCk7XG5cbiAgICBhd2FpdCBmaWxlRHJvcC5kcm9wRmlsZShmaWxlKTtcblxuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBjaGVja0ZvckZpbGVDaGFuZ2UgPSBhc3luYyAoYXR0ZW1wdHM6IG51bWJlcik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBpZiAoKGF3YWl0IHRoaXMuI2dldEltYWdlVXJsKCkpICE9PSBjdXJyZW50VXJsKSB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0dGVtcHRzICogV0FJVF9JTlRFUlZBTCA8IFdBSVRfVElNRU9VVCkge1xuICAgICAgICAgIHNldFRpbWVvdXQoXG4gICAgICAgICAgICAoKSA9PiB2b2lkIGNoZWNrRm9yRmlsZUNoYW5nZShhdHRlbXB0cyArIDEpLFxuICAgICAgICAgICAgV0FJVF9JTlRFUlZBTCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgJ1RoZSBhdmF0YXIgc3JjIGRpZCBub3QgY2hhbmdlIHdpdGhpbiB0aGUgZXhwZWN0ZWQgdGltZSBzcGFuJyxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgdm9pZCBjaGVja0ZvckZpbGVDaGFuZ2UoMCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
- export { SkyAvatarFixture } from './avatar-fixture';
2
- export { SkyAvatarHarness } from './avatar/avatar-harness';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvdGVzdGluZy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFNreUF2YXRhckZpeHR1cmUgfSBmcm9tICcuL2F2YXRhci1maXh0dXJlJztcblxuZXhwb3J0IHsgU2t5QXZhdGFySGFybmVzcyB9IGZyb20gJy4vYXZhdGFyL2F2YXRhci1oYXJuZXNzJztcbiJdfQ==
1
+ export { SkyAvatarFixture } from './legacy/avatar-fixture';
2
+ export { SkyAvatarHarness } from './modules/avatar/avatar-harness';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvdGVzdGluZy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFNreUF2YXRhckZpeHR1cmUgfSBmcm9tICcuL2xlZ2FjeS9hdmF0YXItZml4dHVyZSc7XG5cbmV4cG9ydCB7IFNreUF2YXRhckhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvYXZhdGFyL2F2YXRhci1oYXJuZXNzJztcbiJdfQ==
@@ -6,6 +6,7 @@ import { SkyFileDropHarness } from '@skyux/forms/testing';
6
6
 
7
7
  /**
8
8
  * Allows interaction with a SKY UX avatar component.
9
+ * @deprecated Use `SkyAvatarHarness` instead.
9
10
  * @internal
10
11
  */
11
12
  class SkyAvatarFixture {
@@ -66,7 +67,7 @@ class SkyAvatarHarness extends SkyComponentHarness {
66
67
  if (await isHidden(initialsEl)) {
67
68
  return undefined;
68
69
  }
69
- return initialsEl.text();
70
+ return await initialsEl.text();
70
71
  }
71
72
  /**
72
73
  * Gets the avatar's current image URL or Blob.
@@ -128,12 +129,12 @@ class SkyAvatarHarness extends SkyComponentHarness {
128
129
  if (await isHidden(imageEl)) {
129
130
  return undefined;
130
131
  }
131
- return SkyHarnessUtility.getBackgroundImageUrl(imageEl);
132
+ return await SkyHarnessUtility.getBackgroundImageUrl(imageEl);
132
133
  }
133
134
  async #dropAndWait(fileDrop, file) {
134
135
  const currentUrl = await this.#getImageUrl();
135
136
  await fileDrop.dropFile(file);
136
- return new Promise((resolve, reject) => {
137
+ return await new Promise((resolve, reject) => {
137
138
  const checkForFileChange = async (attempts) => {
138
139
  if ((await this.#getImageUrl()) !== currentUrl) {
139
140
  resolve();
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-avatar-testing.mjs","sources":["../../../../../libs/components/avatar/testing/src/avatar-fixture.ts","../../../../../libs/components/avatar/testing/src/avatar/avatar-harness.ts","../../../../../libs/components/avatar/testing/src/skyux-avatar-testing.ts"],"sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX avatar component.\n * @internal\n */\nexport class SkyAvatarFixture {\n /**\n * The initials displayed when no image URL is specified.\n */\n public get initials(): string | undefined {\n const initialsEl = this.#debugEl.query(By.css('.sky-avatar-initials'));\n\n if (SkyAppTestUtility.isVisible(initialsEl)) {\n return SkyAppTestUtility.getText(\n initialsEl.query(By.css('.sky-avatar-initials-inner')),\n );\n }\n\n return undefined;\n }\n\n /**\n * The avatar's current image URL.\n */\n public get imageUrl(): string | undefined {\n const imageEl = this.#debugEl.query(By.css('.sky-avatar-image'));\n\n if (SkyAppTestUtility.isVisible(imageEl)) {\n return SkyAppTestUtility.getBackgroundImageUrl(imageEl);\n }\n\n return undefined;\n }\n\n #debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-avatar',\n );\n }\n}\n","import { HarnessPredicate, TestElement } from '@angular/cdk/testing';\nimport { SkyComponentHarness, SkyHarnessUtility } from '@skyux/core/testing';\nimport { SkyErrorModalHarness } from '@skyux/errors/testing';\nimport { SkyFileDropHarness } from '@skyux/forms/testing';\n\nimport { SkyAvatarHarnessFilters } from './avatar-harness-filters';\n\nconst WAIT_INTERVAL = 10;\nconst WAIT_TIMEOUT = 3000;\n\nasync function isHidden(el: TestElement): Promise<boolean> {\n return (await el.getCssValue('display')) === 'none';\n}\n\n/**\n * Harness for interacting with an avatar component in tests.\n */\nexport class SkyAvatarHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-avatar';\n\n #documentRootLocator = this.documentRootLocatorFactory();\n\n #getFileDrop = this.locatorForOptional(SkyFileDropHarness);\n #errorModal =\n this.#documentRootLocator.locatorForOptional(SkyErrorModalHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyAvatarHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyAvatarHarnessFilters,\n ): HarnessPredicate<SkyAvatarHarness> {\n return SkyAvatarHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the initials displayed when no image URL is specified.\n */\n public async getInitials(): Promise<string | undefined> {\n const initialsEl = await this.locatorFor('.sky-avatar-initials')();\n\n if (await isHidden(initialsEl)) {\n return undefined;\n }\n\n return initialsEl.text();\n }\n\n /**\n * Gets the avatar's current image URL or Blob.\n */\n public async getSrc(): Promise<string | Blob | undefined> {\n const url = await this.#getImageUrl();\n\n if (url?.startsWith('blob:')) {\n return await (await fetch(url)).blob();\n }\n\n return url;\n }\n\n /**\n * Gets whether users can change the image.\n */\n public async getCanChange(): Promise<boolean> {\n return !!(await this.#getFileDrop());\n }\n\n /**\n * Simulates the user selecting or dropping an image onto the component.\n */\n public async dropAvatarFile(\n file: File,\n waitForChange?: boolean,\n ): Promise<void> {\n const fileDrop = await this.#getFileDrop();\n\n if (!fileDrop) {\n throw new Error(\n 'A new avatar cannot be selected because the canChange input is not set to true.',\n );\n }\n\n if (waitForChange) {\n await this.#dropAndWait(fileDrop, file);\n } else {\n await fileDrop.dropFile(file);\n }\n }\n\n /**\n * Gets whether an error indicating an invalid file type is displayed.\n */\n public async hasFileTypeError(): Promise<boolean> {\n const errorModal = await this.#errorModal();\n\n return !!(await errorModal?.getTitle())?.includes('File is not an image.');\n }\n\n /**\n * Gets whether an error indicating an invalid file size is displayed.\n */\n public async hasMaxSizeError(): Promise<boolean> {\n const errorModal = await this.#errorModal();\n\n return !!(await errorModal?.getTitle())?.includes('File is too large.');\n }\n\n /**\n * Closes the currently displayed error.\n */\n public async closeError(): Promise<void> {\n const errorModal = await this.#errorModal();\n\n if (!errorModal) {\n throw new Error('No error is currently displayed.');\n }\n\n await errorModal.clickCloseButton();\n }\n\n async #getImageUrl(): Promise<string | undefined> {\n const imageEl = await this.locatorFor('.sky-avatar-image')();\n\n if (await isHidden(imageEl)) {\n return undefined;\n }\n\n return SkyHarnessUtility.getBackgroundImageUrl(imageEl);\n }\n\n async #dropAndWait(fileDrop: SkyFileDropHarness, file: File): Promise<void> {\n const currentUrl = await this.#getImageUrl();\n\n await fileDrop.dropFile(file);\n\n return new Promise<void>((resolve, reject) => {\n const checkForFileChange = async (attempts: number): Promise<void> => {\n if ((await this.#getImageUrl()) !== currentUrl) {\n resolve();\n } else if (attempts * WAIT_INTERVAL < WAIT_TIMEOUT) {\n setTimeout(\n () => void checkForFileChange(attempts + 1),\n WAIT_INTERVAL,\n );\n } else {\n reject(\n new Error(\n 'The avatar src did not change within the expected time span',\n ),\n );\n }\n };\n\n void checkForFileChange(0);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyux-avatar-testing.mjs","sources":["../../../../../libs/components/avatar/testing/src/legacy/avatar-fixture.ts","../../../../../libs/components/avatar/testing/src/modules/avatar/avatar-harness.ts","../../../../../libs/components/avatar/testing/src/skyux-avatar-testing.ts"],"sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX avatar component.\n * @deprecated Use `SkyAvatarHarness` instead.\n * @internal\n */\nexport class SkyAvatarFixture {\n /**\n * The initials displayed when no image URL is specified.\n */\n public get initials(): string | undefined {\n const initialsEl = this.#debugEl.query(By.css('.sky-avatar-initials'));\n\n if (SkyAppTestUtility.isVisible(initialsEl)) {\n return SkyAppTestUtility.getText(\n initialsEl.query(By.css('.sky-avatar-initials-inner')),\n );\n }\n\n return undefined;\n }\n\n /**\n * The avatar's current image URL.\n */\n public get imageUrl(): string | undefined {\n const imageEl = this.#debugEl.query(By.css('.sky-avatar-image'));\n\n if (SkyAppTestUtility.isVisible(imageEl)) {\n return SkyAppTestUtility.getBackgroundImageUrl(imageEl);\n }\n\n return undefined;\n }\n\n #debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-avatar',\n );\n }\n}\n","import { HarnessPredicate, TestElement } from '@angular/cdk/testing';\nimport { SkyComponentHarness, SkyHarnessUtility } from '@skyux/core/testing';\nimport { SkyErrorModalHarness } from '@skyux/errors/testing';\nimport { SkyFileDropHarness } from '@skyux/forms/testing';\n\nimport { SkyAvatarHarnessFilters } from './avatar-harness-filters';\n\nconst WAIT_INTERVAL = 10;\nconst WAIT_TIMEOUT = 3000;\n\nasync function isHidden(el: TestElement): Promise<boolean> {\n return (await el.getCssValue('display')) === 'none';\n}\n\n/**\n * Harness for interacting with an avatar component in tests.\n */\nexport class SkyAvatarHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-avatar';\n\n #documentRootLocator = this.documentRootLocatorFactory();\n\n #getFileDrop = this.locatorForOptional(SkyFileDropHarness);\n #errorModal =\n this.#documentRootLocator.locatorForOptional(SkyErrorModalHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyAvatarHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyAvatarHarnessFilters,\n ): HarnessPredicate<SkyAvatarHarness> {\n return SkyAvatarHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the initials displayed when no image URL is specified.\n */\n public async getInitials(): Promise<string | undefined> {\n const initialsEl = await this.locatorFor('.sky-avatar-initials')();\n\n if (await isHidden(initialsEl)) {\n return undefined;\n }\n\n return await initialsEl.text();\n }\n\n /**\n * Gets the avatar's current image URL or Blob.\n */\n public async getSrc(): Promise<string | Blob | undefined> {\n const url = await this.#getImageUrl();\n\n if (url?.startsWith('blob:')) {\n return await (await fetch(url)).blob();\n }\n\n return url;\n }\n\n /**\n * Gets whether users can change the image.\n */\n public async getCanChange(): Promise<boolean> {\n return !!(await this.#getFileDrop());\n }\n\n /**\n * Simulates the user selecting or dropping an image onto the component.\n */\n public async dropAvatarFile(\n file: File,\n waitForChange?: boolean,\n ): Promise<void> {\n const fileDrop = await this.#getFileDrop();\n\n if (!fileDrop) {\n throw new Error(\n 'A new avatar cannot be selected because the canChange input is not set to true.',\n );\n }\n\n if (waitForChange) {\n await this.#dropAndWait(fileDrop, file);\n } else {\n await fileDrop.dropFile(file);\n }\n }\n\n /**\n * Gets whether an error indicating an invalid file type is displayed.\n */\n public async hasFileTypeError(): Promise<boolean> {\n const errorModal = await this.#errorModal();\n\n return !!(await errorModal?.getTitle())?.includes('File is not an image.');\n }\n\n /**\n * Gets whether an error indicating an invalid file size is displayed.\n */\n public async hasMaxSizeError(): Promise<boolean> {\n const errorModal = await this.#errorModal();\n\n return !!(await errorModal?.getTitle())?.includes('File is too large.');\n }\n\n /**\n * Closes the currently displayed error.\n */\n public async closeError(): Promise<void> {\n const errorModal = await this.#errorModal();\n\n if (!errorModal) {\n throw new Error('No error is currently displayed.');\n }\n\n await errorModal.clickCloseButton();\n }\n\n async #getImageUrl(): Promise<string | undefined> {\n const imageEl = await this.locatorFor('.sky-avatar-image')();\n\n if (await isHidden(imageEl)) {\n return undefined;\n }\n\n return await SkyHarnessUtility.getBackgroundImageUrl(imageEl);\n }\n\n async #dropAndWait(fileDrop: SkyFileDropHarness, file: File): Promise<void> {\n const currentUrl = await this.#getImageUrl();\n\n await fileDrop.dropFile(file);\n\n return await new Promise<void>((resolve, reject) => {\n const checkForFileChange = async (attempts: number): Promise<void> => {\n if ((await this.#getImageUrl()) !== currentUrl) {\n resolve();\n } else if (attempts * WAIT_INTERVAL < WAIT_TIMEOUT) {\n setTimeout(\n () => void checkForFileChange(attempts + 1),\n WAIT_INTERVAL,\n );\n } else {\n reject(\n new Error(\n 'The avatar src did not change within the expected time span',\n ),\n );\n }\n };\n\n void checkForFileChange(0);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/avatar",
3
- "version": "11.22.0",
3
+ "version": "11.23.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -40,12 +40,12 @@
40
40
  "@angular/common": "^18.2.8",
41
41
  "@angular/core": "^18.2.8",
42
42
  "@angular/platform-browser": "^18.2.8",
43
- "@skyux-sdk/testing": "11.22.0",
44
- "@skyux/core": "11.22.0",
45
- "@skyux/errors": "11.22.0",
46
- "@skyux/forms": "11.22.0",
47
- "@skyux/i18n": "11.22.0",
48
- "@skyux/theme": "11.22.0"
43
+ "@skyux-sdk/testing": "11.23.0",
44
+ "@skyux/core": "11.23.0",
45
+ "@skyux/errors": "11.23.0",
46
+ "@skyux/forms": "11.23.0",
47
+ "@skyux/i18n": "11.23.0",
48
+ "@skyux/theme": "11.23.0"
49
49
  },
50
50
  "dependencies": {
51
51
  "tslib": "^2.6.3"
@@ -1,6 +1,7 @@
1
1
  import { ComponentFixture } from '@angular/core/testing';
2
2
  /**
3
3
  * Allows interaction with a SKY UX avatar component.
4
+ * @deprecated Use `SkyAvatarHarness` instead.
4
5
  * @internal
5
6
  */
6
7
  export declare class SkyAvatarFixture {
@@ -1,2 +1,2 @@
1
- export { SkyAvatarFixture } from './avatar-fixture';
2
- export { SkyAvatarHarness } from './avatar/avatar-harness';
1
+ export { SkyAvatarFixture } from './legacy/avatar-fixture';
2
+ export { SkyAvatarHarness } from './modules/avatar/avatar-harness';
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWhhcm5lc3MtZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvdGVzdGluZy9zcmMvYXZhdGFyL2F2YXRhci1oYXJuZXNzLWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbi8qKlxuICogQSBzZXQgb2YgY3JpdGVyaWEgdGhhdCBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgYSBsaXN0IG9mIFNreUF2YXRhckhhcm5lc3MgaW5zdGFuY2VzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZSwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlXG5leHBvcnQgaW50ZXJmYWNlIFNreUF2YXRhckhhcm5lc3NGaWx0ZXJzIGV4dGVuZHMgU2t5SGFybmVzc0ZpbHRlcnMge31cbiJdfQ==
@@ -1,118 +0,0 @@
1
- import { SkyComponentHarness, SkyHarnessUtility } from '@skyux/core/testing';
2
- import { SkyErrorModalHarness } from '@skyux/errors/testing';
3
- import { SkyFileDropHarness } from '@skyux/forms/testing';
4
- const WAIT_INTERVAL = 10;
5
- const WAIT_TIMEOUT = 3000;
6
- async function isHidden(el) {
7
- return (await el.getCssValue('display')) === 'none';
8
- }
9
- /**
10
- * Harness for interacting with an avatar component in tests.
11
- */
12
- export class SkyAvatarHarness extends SkyComponentHarness {
13
- /**
14
- * @internal
15
- */
16
- static { this.hostSelector = 'sky-avatar'; }
17
- #documentRootLocator = this.documentRootLocatorFactory();
18
- #getFileDrop = this.locatorForOptional(SkyFileDropHarness);
19
- #errorModal = this.#documentRootLocator.locatorForOptional(SkyErrorModalHarness);
20
- /**
21
- * Gets a `HarnessPredicate` that can be used to search for a
22
- * `SkyAvatarHarness` that meets certain criteria.
23
- */
24
- static with(filters) {
25
- return SkyAvatarHarness.getDataSkyIdPredicate(filters);
26
- }
27
- /**
28
- * Gets the initials displayed when no image URL is specified.
29
- */
30
- async getInitials() {
31
- const initialsEl = await this.locatorFor('.sky-avatar-initials')();
32
- if (await isHidden(initialsEl)) {
33
- return undefined;
34
- }
35
- return initialsEl.text();
36
- }
37
- /**
38
- * Gets the avatar's current image URL or Blob.
39
- */
40
- async getSrc() {
41
- const url = await this.#getImageUrl();
42
- if (url?.startsWith('blob:')) {
43
- return await (await fetch(url)).blob();
44
- }
45
- return url;
46
- }
47
- /**
48
- * Gets whether users can change the image.
49
- */
50
- async getCanChange() {
51
- return !!(await this.#getFileDrop());
52
- }
53
- /**
54
- * Simulates the user selecting or dropping an image onto the component.
55
- */
56
- async dropAvatarFile(file, waitForChange) {
57
- const fileDrop = await this.#getFileDrop();
58
- if (!fileDrop) {
59
- throw new Error('A new avatar cannot be selected because the canChange input is not set to true.');
60
- }
61
- if (waitForChange) {
62
- await this.#dropAndWait(fileDrop, file);
63
- }
64
- else {
65
- await fileDrop.dropFile(file);
66
- }
67
- }
68
- /**
69
- * Gets whether an error indicating an invalid file type is displayed.
70
- */
71
- async hasFileTypeError() {
72
- const errorModal = await this.#errorModal();
73
- return !!(await errorModal?.getTitle())?.includes('File is not an image.');
74
- }
75
- /**
76
- * Gets whether an error indicating an invalid file size is displayed.
77
- */
78
- async hasMaxSizeError() {
79
- const errorModal = await this.#errorModal();
80
- return !!(await errorModal?.getTitle())?.includes('File is too large.');
81
- }
82
- /**
83
- * Closes the currently displayed error.
84
- */
85
- async closeError() {
86
- const errorModal = await this.#errorModal();
87
- if (!errorModal) {
88
- throw new Error('No error is currently displayed.');
89
- }
90
- await errorModal.clickCloseButton();
91
- }
92
- async #getImageUrl() {
93
- const imageEl = await this.locatorFor('.sky-avatar-image')();
94
- if (await isHidden(imageEl)) {
95
- return undefined;
96
- }
97
- return SkyHarnessUtility.getBackgroundImageUrl(imageEl);
98
- }
99
- async #dropAndWait(fileDrop, file) {
100
- const currentUrl = await this.#getImageUrl();
101
- await fileDrop.dropFile(file);
102
- return new Promise((resolve, reject) => {
103
- const checkForFileChange = async (attempts) => {
104
- if ((await this.#getImageUrl()) !== currentUrl) {
105
- resolve();
106
- }
107
- else if (attempts * WAIT_INTERVAL < WAIT_TIMEOUT) {
108
- setTimeout(() => void checkForFileChange(attempts + 1), WAIT_INTERVAL);
109
- }
110
- else {
111
- reject(new Error('The avatar src did not change within the expected time span'));
112
- }
113
- };
114
- void checkForFileChange(0);
115
- });
116
- }
117
- }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXZhdGFyL3Rlc3Rpbmcvc3JjL2F2YXRhci9hdmF0YXItaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUkxRCxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFDekIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDO0FBRTFCLEtBQUssVUFBVSxRQUFRLENBQUMsRUFBZTtJQUNyQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDO0FBQ3RELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxtQkFBbUI7SUFDdkQ7O09BRUc7YUFDVyxpQkFBWSxHQUFHLFlBQVksQ0FBQztJQUUxQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUV6RCxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0QsV0FBVyxHQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRXJFOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQWdDO1FBRWhDLE9BQU8sZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxVQUFVLEdB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LENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUIsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUMzQyxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFBRSxRQUFnQixFQUFpQixFQUFFO2dCQUNuRSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDL0MsT0FBTyxFQUFFLENBQUM7Z0JBQ1osQ0FBQztxQkFBTSxJQUFJLFFBQVEsR0FBRyxhQUFhLEdBQUcsWUFBWSxFQUFFLENBQUM7b0JBQ25ELFVBQVUsQ0FDUixHQUFHLEVBQUUsQ0FBQyxLQUFLLGtCQUFrQixDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFDM0MsYUFBYSxDQUNkLENBQUM7Z0JBQ0osQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sQ0FDSixJQUFJLEtBQUssQ0FDUCw2REFBNkQsQ0FDOUQsQ0FDRixDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDLENBQUM7WUFFRixLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUsIFRlc3RFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5Q29tcG9uZW50SGFybmVzcywgU2t5SGFybmVzc1V0aWxpdHkgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IFNreUVycm9yTW9kYWxIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2Vycm9ycy90ZXN0aW5nJztcbmltcG9ydCB7IFNreUZpbGVEcm9wSGFybmVzcyB9IGZyb20gJ0Bza3l1eC9mb3Jtcy90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5QXZhdGFySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL2F2YXRhci1oYXJuZXNzLWZpbHRlcnMnO1xuXG5jb25zdCBXQUlUX0lOVEVSVkFMID0gMTA7XG5jb25zdCBXQUlUX1RJTUVPVVQgPSAzMDAwO1xuXG5hc3luYyBmdW5jdGlvbiBpc0hpZGRlbihlbDogVGVzdEVsZW1lbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIChhd2FpdCBlbC5nZXRDc3NWYWx1ZSgnZGlzcGxheScpKSA9PT0gJ25vbmUnO1xufVxuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYW4gYXZhdGFyIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreUF2YXRhckhhcm5lc3MgZXh0ZW5kcyBTa3lDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnc2t5LWF2YXRhcic7XG5cbiAgI2RvY3VtZW50Um9vdExvY2F0b3IgPSB0aGlzLmRvY3VtZW50Um9vdExvY2F0b3JGYWN0b3J5KCk7XG5cbiAgI2dldEZpbGVEcm9wID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoU2t5RmlsZURyb3BIYXJuZXNzKTtcbiAgI2Vycm9yTW9kYWwgPVxuICAgIHRoaXMuI2RvY3VtZW50Um9vdExvY2F0b3IubG9jYXRvckZvck9wdGlvbmFsKFNreUVycm9yTW9kYWxIYXJuZXNzKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5QXZhdGFySGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreUF2YXRhckhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreUF2YXRhckhhcm5lc3M+IHtcbiAgICByZXR1cm4gU2t5QXZhdGFySGFybmVzcy5nZXREYXRhU2t5SWRQcmVkaWNhdGUoZmlsdGVycyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaW5pdGlhbHMgZGlzcGxheWVkIHdoZW4gbm8gaW1hZ2UgVVJMIGlzIHNwZWNpZmllZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRJbml0aWFscygpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGluaXRpYWxzRWwgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3IoJy5za3ktYXZhdGFyLWluaXRpYWxzJykoKTtcblxuICAgIGlmIChhd2FpdCBpc0hpZGRlbihpbml0aWFsc0VsKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5pdGlhbHNFbC50ZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYXZhdGFyJ3MgY3VycmVudCBpbWFnZSBVUkwgb3IgQmxvYi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTcmMoKTogUHJvbWlzZTxzdHJpbmcgfCBCbG9iIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgdXJsID0gYXdhaXQgdGhpcy4jZ2V0SW1hZ2VVcmwoKTtcblxuICAgIGlmICh1cmw/LnN0YXJ0c1dpdGgoJ2Jsb2I6JykpIHtcbiAgICAgIHJldHVybiBhd2FpdCAoYXdhaXQgZmV0Y2godXJsKSkuYmxvYigpO1xuICAgIH1cblxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB3aGV0aGVyIHVzZXJzIGNhbiBjaGFuZ2UgdGhlIGltYWdlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldENhbkNoYW5nZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gISEoYXdhaXQgdGhpcy4jZ2V0RmlsZURyb3AoKSk7XG4gIH1cblxuICAvKipcbiAgICogU2ltdWxhdGVzIHRoZSB1c2VyIHNlbGVjdGluZyBvciBkcm9wcGluZyBhbiBpbWFnZSBvbnRvIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZHJvcEF2YXRhckZpbGUoXG4gICAgZmlsZTogRmlsZSxcbiAgICB3YWl0Rm9yQ2hhbmdlPzogYm9vbGVhbixcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZURyb3AgPSBhd2FpdCB0aGlzLiNnZXRGaWxlRHJvcCgpO1xuXG4gICAgaWYgKCFmaWxlRHJvcCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQSBuZXcgYXZhdGFyIGNhbm5vdCBiZSBzZWxlY3RlZCBiZWNhdXNlIHRoZSBjYW5DaGFuZ2UgaW5wdXQgaXMgbm90IHNldCB0byB0cnVlLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh3YWl0Rm9yQ2hhbmdlKSB7XG4gICAgICBhd2FpdCB0aGlzLiNkcm9wQW5kV2FpdChmaWxlRHJvcCwgZmlsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGZpbGVEcm9wLmRyb3BGaWxlKGZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgYW4gZXJyb3IgaW5kaWNhdGluZyBhbiBpbnZhbGlkIGZpbGUgdHlwZSBpcyBkaXNwbGF5ZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzRmlsZVR5cGVFcnJvcigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBlcnJvck1vZGFsID0gYXdhaXQgdGhpcy4jZXJyb3JNb2RhbCgpO1xuXG4gICAgcmV0dXJuICEhKGF3YWl0IGVycm9yTW9kYWw/LmdldFRpdGxlKCkpPy5pbmNsdWRlcygnRmlsZSBpcyBub3QgYW4gaW1hZ2UuJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB3aGV0aGVyIGFuIGVycm9yIGluZGljYXRpbmcgYW4gaW52YWxpZCBmaWxlIHNpemUgaXMgZGlzcGxheWVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc01heFNpemVFcnJvcigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBlcnJvck1vZGFsID0gYXdhaXQgdGhpcy4jZXJyb3JNb2RhbCgpO1xuXG4gICAgcmV0dXJuICEhKGF3YWl0IGVycm9yTW9kYWw/LmdldFRpdGxlKCkpPy5pbmNsdWRlcygnRmlsZSBpcyB0b28gbGFyZ2UuJyk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIGVycm9yLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsb3NlRXJyb3IoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZXJyb3JNb2RhbCA9IGF3YWl0IHRoaXMuI2Vycm9yTW9kYWwoKTtcblxuICAgIGlmICghZXJyb3JNb2RhbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBlcnJvciBpcyBjdXJyZW50bHkgZGlzcGxheWVkLicpO1xuICAgIH1cblxuICAgIGF3YWl0IGVycm9yTW9kYWwuY2xpY2tDbG9zZUJ1dHRvbigpO1xuICB9XG5cbiAgYXN5bmMgI2dldEltYWdlVXJsKCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgaW1hZ2VFbCA9IGF3YWl0IHRoaXMubG9jYXRvckZvcignLnNreS1hdmF0YXItaW1hZ2UnKSgpO1xuXG4gICAgaWYgKGF3YWl0IGlzSGlkZGVuKGltYWdlRWwpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiBTa3lIYXJuZXNzVXRpbGl0eS5nZXRCYWNrZ3JvdW5kSW1hZ2VVcmwoaW1hZ2VFbCk7XG4gIH1cblxuICBhc3luYyAjZHJvcEFuZFdhaXQoZmlsZURyb3A6IFNreUZpbGVEcm9wSGFybmVzcywgZmlsZTogRmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSBhd2FpdCB0aGlzLiNnZXRJbWFnZVVybCgpO1xuXG4gICAgYXdhaXQgZmlsZURyb3AuZHJvcEZpbGUoZmlsZSk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgY2hlY2tGb3JGaWxlQ2hhbmdlID0gYXN5bmMgKGF0dGVtcHRzOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgaWYgKChhd2FpdCB0aGlzLiNnZXRJbWFnZVVybCgpKSAhPT0gY3VycmVudFVybCkge1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhdHRlbXB0cyAqIFdBSVRfSU5URVJWQUwgPCBXQUlUX1RJTUVPVVQpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAgICAgKCkgPT4gdm9pZCBjaGVja0ZvckZpbGVDaGFuZ2UoYXR0ZW1wdHMgKyAxKSxcbiAgICAgICAgICAgIFdBSVRfSU5URVJWQUwsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICdUaGUgYXZhdGFyIHNyYyBkaWQgbm90IGNoYW5nZSB3aXRoaW4gdGhlIGV4cGVjdGVkIHRpbWUgc3BhbicsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHZvaWQgY2hlY2tGb3JGaWxlQ2hhbmdlKDApO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,33 +0,0 @@
1
- import { By } from '@angular/platform-browser';
2
- import { SkyAppTestUtility } from '@skyux-sdk/testing';
3
- /**
4
- * Allows interaction with a SKY UX avatar component.
5
- * @internal
6
- */
7
- export class SkyAvatarFixture {
8
- /**
9
- * The initials displayed when no image URL is specified.
10
- */
11
- get initials() {
12
- const initialsEl = this.#debugEl.query(By.css('.sky-avatar-initials'));
13
- if (SkyAppTestUtility.isVisible(initialsEl)) {
14
- return SkyAppTestUtility.getText(initialsEl.query(By.css('.sky-avatar-initials-inner')));
15
- }
16
- return undefined;
17
- }
18
- /**
19
- * The avatar's current image URL.
20
- */
21
- get imageUrl() {
22
- const imageEl = this.#debugEl.query(By.css('.sky-avatar-image'));
23
- if (SkyAppTestUtility.isVisible(imageEl)) {
24
- return SkyAppTestUtility.getBackgroundImageUrl(imageEl);
25
- }
26
- return undefined;
27
- }
28
- #debugEl;
29
- constructor(fixture, skyTestId) {
30
- this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-avatar');
31
- }
32
- }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWZpeHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXZhdGFyL3Rlc3Rpbmcvc3JjL2F2YXRhci1maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1FBRXZFLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQzlCLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQ3ZELENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBRWpFLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVEsQ0FBZTtJQUV2QixZQUFZLE9BQThCLEVBQUUsU0FBaUI7UUFDM0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FDdkQsT0FBTyxFQUNQLFNBQVMsRUFDVCxZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlYnVnRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU2t5QXBwVGVzdFV0aWxpdHkgfSBmcm9tICdAc2t5dXgtc2RrL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEFsbG93cyBpbnRlcmFjdGlvbiB3aXRoIGEgU0tZIFVYIGF2YXRhciBjb21wb25lbnQuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreUF2YXRhckZpeHR1cmUge1xuICAvKipcbiAgICogVGhlIGluaXRpYWxzIGRpc3BsYXllZCB3aGVuIG5vIGltYWdlIFVSTCBpcyBzcGVjaWZpZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGluaXRpYWxzKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaW5pdGlhbHNFbCA9IHRoaXMuI2RlYnVnRWwucXVlcnkoQnkuY3NzKCcuc2t5LWF2YXRhci1pbml0aWFscycpKTtcblxuICAgIGlmIChTa3lBcHBUZXN0VXRpbGl0eS5pc1Zpc2libGUoaW5pdGlhbHNFbCkpIHtcbiAgICAgIHJldHVybiBTa3lBcHBUZXN0VXRpbGl0eS5nZXRUZXh0KFxuICAgICAgICBpbml0aWFsc0VsLnF1ZXJ5KEJ5LmNzcygnLnNreS1hdmF0YXItaW5pdGlhbHMtaW5uZXInKSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGF2YXRhcidzIGN1cnJlbnQgaW1hZ2UgVVJMLlxuICAgKi9cbiAgcHVibGljIGdldCBpbWFnZVVybCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGltYWdlRWwgPSB0aGlzLiNkZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnLnNreS1hdmF0YXItaW1hZ2UnKSk7XG5cbiAgICBpZiAoU2t5QXBwVGVzdFV0aWxpdHkuaXNWaXNpYmxlKGltYWdlRWwpKSB7XG4gICAgICByZXR1cm4gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0QmFja2dyb3VuZEltYWdlVXJsKGltYWdlRWwpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAjZGVidWdFbDogRGVidWdFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8YW55Piwgc2t5VGVzdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNkZWJ1Z0VsID0gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0RGVidWdFbGVtZW50QnlUZXN0SWQoXG4gICAgICBmaXh0dXJlLFxuICAgICAgc2t5VGVzdElkLFxuICAgICAgJ3NreS1hdmF0YXInLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==