@skyux/avatar 7.0.0-alpha.0 → 7.0.0-beta.1

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.
@@ -13,7 +13,7 @@
13
13
  "originalName": "",
14
14
  "children": [
15
15
  {
16
- "id": 45,
16
+ "id": 52,
17
17
  "name": "SkyAvatarModule",
18
18
  "kind": 128,
19
19
  "kindString": "Class",
@@ -38,7 +38,7 @@
38
38
  "title": "Constructors",
39
39
  "kind": 512,
40
40
  "children": [
41
- 46
41
+ 53
42
42
  ]
43
43
  }
44
44
  ],
@@ -80,7 +80,7 @@
80
80
  "sources": [
81
81
  {
82
82
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
83
- "line": 94,
83
+ "line": 108,
84
84
  "character": 2
85
85
  }
86
86
  ],
@@ -135,7 +135,7 @@
135
135
  ]
136
136
  },
137
137
  {
138
- "id": 23,
138
+ "id": 26,
139
139
  "name": "avatarChanged",
140
140
  "kind": 1024,
141
141
  "kindString": "Property",
@@ -160,7 +160,7 @@
160
160
  "sources": [
161
161
  {
162
162
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
163
- "line": 86,
163
+ "line": 94,
164
164
  "character": 9
165
165
  }
166
166
  ],
@@ -204,7 +204,7 @@
204
204
  "sources": [
205
205
  {
206
206
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
207
- "line": 72,
207
+ "line": 74,
208
208
  "character": 9
209
209
  }
210
210
  ],
@@ -212,50 +212,7 @@
212
212
  "type": "intrinsic",
213
213
  "name": "number"
214
214
  },
215
- "defaultValue": "500000"
216
- },
217
- {
218
- "id": 22,
219
- "name": "size",
220
- "kind": 1024,
221
- "kindString": "Property",
222
- "flags": {
223
- "isPublic": true
224
- },
225
- "comment": {
226
- "shortText": "Specifies the size of the avatar.\nAcceptable values are: `\"small\"`, `\"medium\"`, and `\"large\"`.",
227
- "tags": [
228
- {
229
- "tag": "default",
230
- "text": "\"large\"\n"
231
- }
232
- ]
233
- },
234
- "decorators": [
235
- {
236
- "name": "Input",
237
- "type": {
238
- "type": "reference",
239
- "qualifiedName": "InputDecorator",
240
- "package": "@angular/core",
241
- "name": "Input"
242
- },
243
- "arguments": {}
244
- }
245
- ],
246
- "sources": [
247
- {
248
- "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
249
- "line": 80,
250
- "character": 9
251
- }
252
- ],
253
- "type": {
254
- "type": "reference",
255
- "id": 43,
256
- "name": "SkyAvatarSize"
257
- },
258
- "defaultValue": "'large'"
215
+ "defaultValue": "MAX_FILE_SIZE_DEFAULT"
259
216
  },
260
217
  {
261
218
  "id": 9,
@@ -280,7 +237,7 @@
280
237
  "sources": [
281
238
  {
282
239
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
283
- "line": 30,
240
+ "line": 32,
284
241
  "character": 13
285
242
  }
286
243
  ],
@@ -365,7 +322,7 @@
365
322
  "sources": [
366
323
  {
367
324
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
368
- "line": 47,
325
+ "line": 49,
369
326
  "character": 13
370
327
  }
371
328
  ],
@@ -415,6 +372,93 @@
415
372
  }
416
373
  ]
417
374
  },
375
+ {
376
+ "id": 22,
377
+ "name": "size",
378
+ "kind": 262144,
379
+ "kindString": "Accessor",
380
+ "flags": {
381
+ "isPublic": true
382
+ },
383
+ "decorators": [
384
+ {
385
+ "name": "Input",
386
+ "type": {
387
+ "type": "reference",
388
+ "qualifiedName": "InputDecorator",
389
+ "package": "@angular/core",
390
+ "name": "Input"
391
+ },
392
+ "arguments": {}
393
+ }
394
+ ],
395
+ "sources": [
396
+ {
397
+ "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
398
+ "line": 82,
399
+ "character": 13
400
+ }
401
+ ],
402
+ "getSignature": [
403
+ {
404
+ "id": 23,
405
+ "name": "size",
406
+ "kind": 524288,
407
+ "kindString": "Get signature",
408
+ "flags": {},
409
+ "comment": {
410
+ "shortText": "Specifies the size of the avatar.\nAcceptable values are: `\"small\"`, `\"medium\"`, and `\"large\"`.",
411
+ "tags": [
412
+ {
413
+ "tag": "default",
414
+ "text": "\"large\"\n"
415
+ }
416
+ ]
417
+ },
418
+ "type": {
419
+ "type": "reference",
420
+ "id": 50,
421
+ "name": "SkyAvatarSize"
422
+ }
423
+ }
424
+ ],
425
+ "setSignature": [
426
+ {
427
+ "id": 24,
428
+ "name": "size",
429
+ "kind": 1048576,
430
+ "kindString": "Set signature",
431
+ "flags": {},
432
+ "comment": {
433
+ "shortText": "Specifies the size of the avatar.\nAcceptable values are: `\"small\"`, `\"medium\"`, and `\"large\"`.",
434
+ "tags": [
435
+ {
436
+ "tag": "default",
437
+ "text": "\"large\"\n"
438
+ }
439
+ ]
440
+ },
441
+ "parameters": [
442
+ {
443
+ "id": 25,
444
+ "name": "value",
445
+ "kind": 32768,
446
+ "kindString": "Parameter",
447
+ "flags": {},
448
+ "type": {
449
+ "type": "reference",
450
+ "id": 50,
451
+ "name": "SkyAvatarSize"
452
+ }
453
+ }
454
+ ],
455
+ "type": {
456
+ "type": "intrinsic",
457
+ "name": "void"
458
+ }
459
+ }
460
+ ]
461
+ },
418
462
  {
419
463
  "id": 17,
420
464
  "name": "src",
@@ -438,7 +482,7 @@
438
482
  "sources": [
439
483
  {
440
484
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
441
- "line": 60,
485
+ "line": 62,
442
486
  "character": 13
443
487
  }
444
488
  ],
@@ -454,7 +498,7 @@
454
498
  },
455
499
  "type": {
456
500
  "type": "reference",
457
- "id": 44,
501
+ "id": 51,
458
502
  "name": "SkyAvatarSrc"
459
503
  }
460
504
  }
@@ -478,7 +522,7 @@
478
522
  "flags": {},
479
523
  "type": {
480
524
  "type": "reference",
481
- "id": 44,
525
+ "id": 51,
482
526
  "name": "SkyAvatarSrc"
483
527
  }
484
528
  }
@@ -491,7 +535,7 @@
491
535
  ]
492
536
  },
493
537
  {
494
- "id": 27,
538
+ "id": 34,
495
539
  "name": "photoDrop",
496
540
  "kind": 2048,
497
541
  "kindString": "Method",
@@ -501,20 +545,20 @@
501
545
  "sources": [
502
546
  {
503
547
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
504
- "line": 100,
548
+ "line": 118,
505
549
  "character": 9
506
550
  }
507
551
  ],
508
552
  "signatures": [
509
553
  {
510
- "id": 28,
554
+ "id": 35,
511
555
  "name": "photoDrop",
512
556
  "kind": 4096,
513
557
  "kindString": "Call signature",
514
558
  "flags": {},
515
559
  "parameters": [
516
560
  {
517
- "id": 29,
561
+ "id": 36,
518
562
  "name": "result",
519
563
  "kind": 32768,
520
564
  "kindString": "Parameter",
@@ -545,9 +589,8 @@
545
589
  "title": "Properties",
546
590
  "kind": 1024,
547
591
  "children": [
548
- 23,
549
- 21,
550
- 22
592
+ 26,
593
+ 21
551
594
  ]
552
595
  },
553
596
  {
@@ -556,6 +599,7 @@
556
599
  "children": [
557
600
  9,
558
601
  13,
602
+ 22,
559
603
  17
560
604
  ]
561
605
  },
@@ -563,20 +607,20 @@
563
607
  "title": "Methods",
564
608
  "kind": 2048,
565
609
  "children": [
566
- 27
610
+ 34
567
611
  ]
568
612
  }
569
613
  ],
570
614
  "sources": [
571
615
  {
572
616
  "fileName": "projects/avatar/src/modules/avatar/avatar.component.ts",
573
- "line": 21,
617
+ "line": 23,
574
618
  "character": 13
575
619
  }
576
620
  ]
577
621
  },
578
622
  {
579
- "id": 43,
623
+ "id": 50,
580
624
  "name": "SkyAvatarSize",
581
625
  "kind": 4194304,
582
626
  "kindString": "Type alias",
@@ -607,7 +651,7 @@
607
651
  }
608
652
  },
609
653
  {
610
- "id": 44,
654
+ "id": 51,
611
655
  "name": "SkyAvatarSrc",
612
656
  "kind": 4194304,
613
657
  "kindString": "Type alias",
@@ -1,51 +1,51 @@
1
+ var _SkyAvatarAdapterService_instances, _SkyAvatarAdapterService_blobUrl, _SkyAvatarAdapterService_createBlobUrl, _SkyAvatarAdapterService_revokeBlobUrl;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { Injectable } from '@angular/core';
2
4
  import * as i0 from "@angular/core";
3
5
  /**
4
6
  * @internal
5
7
  */
6
8
  export class SkyAvatarAdapterService {
9
+ constructor() {
10
+ _SkyAvatarAdapterService_instances.add(this);
11
+ _SkyAvatarAdapterService_blobUrl.set(this, void 0);
12
+ }
7
13
  updateImage(elementRef, src) {
8
- this.revokeBlobUrl();
14
+ __classPrivateFieldGet(this, _SkyAvatarAdapterService_instances, "m", _SkyAvatarAdapterService_revokeBlobUrl).call(this);
9
15
  const el = elementRef.nativeElement;
10
16
  /*istanbul ignore else */
11
17
  if (el) {
12
18
  const imageEl = el.querySelector('.sky-avatar-image');
13
19
  /*istanbul ignore else */
14
20
  if (imageEl) {
15
- let url;
16
- if (src) {
17
- if (src instanceof File || src instanceof Blob) {
18
- url = this.createBlobUrl(src);
19
- }
20
- else {
21
- url = src;
22
- }
21
+ let url = src;
22
+ if (src instanceof File || src instanceof Blob) {
23
+ url = __classPrivateFieldGet(this, _SkyAvatarAdapterService_instances, "m", _SkyAvatarAdapterService_createBlobUrl).call(this, src);
23
24
  }
24
25
  // Notice the quotes inside the `url` function. This ensures proper url escaping.
25
- imageEl.style.backgroundImage = url ? 'url("' + url + '")' : '';
26
+ imageEl.style.backgroundImage = 'url("' + url + '")';
26
27
  }
27
28
  }
28
29
  }
29
30
  destroy() {
30
- this.revokeBlobUrl();
31
- }
32
- createBlobUrl(src) {
33
- const url = URL.createObjectURL(src);
34
- // Keep the last blob URL around so we can revoke it later.
35
- // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL
36
- this.blobUrl = url;
37
- return url;
38
- }
39
- revokeBlobUrl() {
40
- if (this.blobUrl) {
41
- URL.revokeObjectURL(this.blobUrl);
42
- this.blobUrl = undefined;
43
- }
31
+ __classPrivateFieldGet(this, _SkyAvatarAdapterService_instances, "m", _SkyAvatarAdapterService_revokeBlobUrl).call(this);
44
32
  }
45
33
  }
34
+ _SkyAvatarAdapterService_blobUrl = new WeakMap(), _SkyAvatarAdapterService_instances = new WeakSet(), _SkyAvatarAdapterService_createBlobUrl = function _SkyAvatarAdapterService_createBlobUrl(src) {
35
+ const url = URL.createObjectURL(src);
36
+ // Keep the last blob URL around so we can revoke it later.
37
+ // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL
38
+ __classPrivateFieldSet(this, _SkyAvatarAdapterService_blobUrl, url, "f");
39
+ return url;
40
+ }, _SkyAvatarAdapterService_revokeBlobUrl = function _SkyAvatarAdapterService_revokeBlobUrl() {
41
+ if (__classPrivateFieldGet(this, _SkyAvatarAdapterService_blobUrl, "f")) {
42
+ URL.revokeObjectURL(__classPrivateFieldGet(this, _SkyAvatarAdapterService_blobUrl, "f"));
43
+ __classPrivateFieldSet(this, _SkyAvatarAdapterService_blobUrl, undefined, "f");
44
+ }
45
+ };
46
46
  SkyAvatarAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyAvatarAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
47
47
  SkyAvatarAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyAvatarAdapterService });
48
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyAvatarAdapterService, decorators: [{
49
49
  type: Injectable
50
50
  }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXItYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSXZEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQUczQixXQUFXLENBQUMsVUFBc0IsRUFBRSxHQUFpQjtRQUMxRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUVwQyx5QkFBeUI7UUFDekIsSUFBSSxFQUFFLEVBQUU7WUFDTixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFFdEQseUJBQXlCO1lBQ3pCLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksR0FBVyxDQUFDO2dCQUVoQixJQUFJLEdBQUcsRUFBRTtvQkFDUCxJQUFJLEdBQUcsWUFBWSxJQUFJLElBQUksR0FBRyxZQUFZLElBQUksRUFBRTt3QkFDOUMsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQy9CO3lCQUFNO3dCQUNMLEdBQUcsR0FBRyxHQUFHLENBQUM7cUJBQ1g7aUJBQ0Y7Z0JBRUQsaUZBQWlGO2dCQUNqRixPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDakU7U0FDRjtJQUNILENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxhQUFhLENBQUMsR0FBZ0I7UUFDcEMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVyQywyREFBMkQ7UUFDM0QsdUVBQXVFO1FBQ3ZFLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ25CLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7b0hBaERVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUF2YXRhclNyYyB9IGZyb20gJy4vYXZhdGFyLXNyYyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lBdmF0YXJBZGFwdGVyU2VydmljZSB7XG4gIHByaXZhdGUgYmxvYlVybDogc3RyaW5nO1xuXG4gIHB1YmxpYyB1cGRhdGVJbWFnZShlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBzcmM6IFNreUF2YXRhclNyYykge1xuICAgIHRoaXMucmV2b2tlQmxvYlVybCgpO1xuXG4gICAgY29uc3QgZWwgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGVsKSB7XG4gICAgICBjb25zdCBpbWFnZUVsID0gZWwucXVlcnlTZWxlY3RvcignLnNreS1hdmF0YXItaW1hZ2UnKTtcblxuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGltYWdlRWwpIHtcbiAgICAgICAgbGV0IHVybDogc3RyaW5nO1xuXG4gICAgICAgIGlmIChzcmMpIHtcbiAgICAgICAgICBpZiAoc3JjIGluc3RhbmNlb2YgRmlsZSB8fCBzcmMgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICAgICAgICB1cmwgPSB0aGlzLmNyZWF0ZUJsb2JVcmwoc3JjKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXJsID0gc3JjO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vdGljZSB0aGUgcXVvdGVzIGluc2lkZSB0aGUgYHVybGAgZnVuY3Rpb24uIFRoaXMgZW5zdXJlcyBwcm9wZXIgdXJsIGVzY2FwaW5nLlxuICAgICAgICBpbWFnZUVsLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IHVybCA/ICd1cmwoXCInICsgdXJsICsgJ1wiKScgOiAnJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLnJldm9rZUJsb2JVcmwoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQmxvYlVybChzcmM6IEJsb2IgfCBGaWxlKSB7XG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzcmMpO1xuXG4gICAgLy8gS2VlcCB0aGUgbGFzdCBibG9iIFVSTCBhcm91bmQgc28gd2UgY2FuIHJldm9rZSBpdCBsYXRlci5cbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVVJML3Jldm9rZU9iamVjdFVSTFxuICAgIHRoaXMuYmxvYlVybCA9IHVybDtcbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgcHJpdmF0ZSByZXZva2VCbG9iVXJsKCkge1xuICAgIGlmICh0aGlzLmJsb2JVcmwpIHtcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5ibG9iVXJsKTtcbiAgICAgIHRoaXMuYmxvYlVybCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXItYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJdkQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBRHBDOztRQUVFLG1EQUE2QjtLQTRDOUI7SUExQ1EsV0FBVyxDQUFDLFVBQXNCLEVBQUUsR0FBaUI7UUFDMUQsdUJBQUEsSUFBSSxrRkFBZSxNQUFuQixJQUFJLENBQWlCLENBQUM7UUFFdEIsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUVwQyx5QkFBeUI7UUFDekIsSUFBSSxFQUFFLEVBQUU7WUFDTixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFFdEQseUJBQXlCO1lBQ3pCLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQztnQkFFZCxJQUFJLEdBQUcsWUFBWSxJQUFJLElBQUksR0FBRyxZQUFZLElBQUksRUFBRTtvQkFDOUMsR0FBRyxHQUFHLHVCQUFBLElBQUksa0ZBQWUsTUFBbkIsSUFBSSxFQUFnQixHQUFHLENBQUMsQ0FBQztpQkFDaEM7Z0JBRUQsaUZBQWlGO2dCQUNqRixPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxPQUFPLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQzthQUN0RDtTQUNGO0lBQ0gsQ0FBQztJQUVNLE9BQU87UUFDWix1QkFBQSxJQUFJLGtGQUFlLE1BQW5CLElBQUksQ0FBaUIsQ0FBQztJQUN4QixDQUFDOzsrTEFFYyxHQUFnQjtJQUM3QixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXJDLDJEQUEyRDtJQUMzRCx1RUFBdUU7SUFDdkUsdUJBQUEsSUFBSSxvQ0FBWSxHQUFHLE1BQUEsQ0FBQztJQUNwQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7SUFHQyxJQUFJLHVCQUFBLElBQUksd0NBQVMsRUFBRTtRQUNqQixHQUFHLENBQUMsZUFBZSxDQUFDLHVCQUFBLElBQUksd0NBQVMsQ0FBQyxDQUFDO1FBQ25DLHVCQUFBLElBQUksb0NBQVksU0FBUyxNQUFBLENBQUM7S0FDM0I7QUFDSCxDQUFDO29IQTVDVSx1QkFBdUI7d0hBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lBdmF0YXJTcmMgfSBmcm9tICcuL2F2YXRhci1zcmMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5QXZhdGFyQWRhcHRlclNlcnZpY2Uge1xuICAjYmxvYlVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB1cGRhdGVJbWFnZShlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBzcmM6IFNreUF2YXRhclNyYykge1xuICAgIHRoaXMuI3Jldm9rZUJsb2JVcmwoKTtcblxuICAgIGNvbnN0IGVsID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChlbCkge1xuICAgICAgY29uc3QgaW1hZ2VFbCA9IGVsLnF1ZXJ5U2VsZWN0b3IoJy5za3ktYXZhdGFyLWltYWdlJyk7XG5cbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChpbWFnZUVsKSB7XG4gICAgICAgIGxldCB1cmwgPSBzcmM7XG5cbiAgICAgICAgaWYgKHNyYyBpbnN0YW5jZW9mIEZpbGUgfHwgc3JjIGluc3RhbmNlb2YgQmxvYikge1xuICAgICAgICAgIHVybCA9IHRoaXMuI2NyZWF0ZUJsb2JVcmwoc3JjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vdGljZSB0aGUgcXVvdGVzIGluc2lkZSB0aGUgYHVybGAgZnVuY3Rpb24uIFRoaXMgZW5zdXJlcyBwcm9wZXIgdXJsIGVzY2FwaW5nLlxuICAgICAgICBpbWFnZUVsLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICd1cmwoXCInICsgdXJsICsgJ1wiKSc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy4jcmV2b2tlQmxvYlVybCgpO1xuICB9XG5cbiAgI2NyZWF0ZUJsb2JVcmwoc3JjOiBCbG9iIHwgRmlsZSkge1xuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoc3JjKTtcblxuICAgIC8vIEtlZXAgdGhlIGxhc3QgYmxvYiBVUkwgYXJvdW5kIHNvIHdlIGNhbiByZXZva2UgaXQgbGF0ZXIuXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1VSTC9yZXZva2VPYmplY3RVUkxcbiAgICB0aGlzLiNibG9iVXJsID0gdXJsO1xuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICAjcmV2b2tlQmxvYlVybCgpIHtcbiAgICBpZiAodGhpcy4jYmxvYlVybCkge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLiNibG9iVXJsKTtcbiAgICAgIHRoaXMuI2Jsb2JVcmwgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,3 +1,5 @@
1
+ var _SkyAvatarComponent_instances, _SkyAvatarComponent__canChange, _SkyAvatarComponent__name, _SkyAvatarComponent__size, _SkyAvatarComponent__src, _SkyAvatarComponent_errorService, _SkyAvatarComponent_fileSizePipe, _SkyAvatarComponent_resourcesService, _SkyAvatarComponent_handleError, _SkyAvatarComponent_maxFileSizeText, _SkyAvatarComponent_openErrorModal, _SkyAvatarComponent_getString;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
2
4
  import { SkyErrorModalService } from '@skyux/errors';
3
5
  import { SkyFileSizePipe } from '@skyux/forms';
@@ -8,25 +10,28 @@ import * as i2 from "@skyux/forms";
8
10
  import * as i3 from "@skyux/i18n";
9
11
  import * as i4 from "@angular/common";
10
12
  import * as i5 from "./avatar.inner.component";
13
+ const MAX_FILE_SIZE_DEFAULT = 500000;
11
14
  export class SkyAvatarComponent {
12
15
  constructor(errorService, fileSizePipe, resourcesService) {
13
- this.errorService = errorService;
14
- this.fileSizePipe = fileSizePipe;
15
- this.resourcesService = resourcesService;
16
+ _SkyAvatarComponent_instances.add(this);
16
17
  /**
17
18
  * Specifies the maximum file size for the image in bytes.
18
19
  */
19
- this.maxFileSize = 500000;
20
- /**
21
- * Specifies the size of the avatar.
22
- * Acceptable values are: `"small"`, `"medium"`, and `"large"`.
23
- * @default "large"
24
- */
25
- this.size = 'large';
20
+ this.maxFileSize = MAX_FILE_SIZE_DEFAULT;
26
21
  /**
27
22
  * Emits a `SkyFileItem` object when the image is updated.
28
23
  */
29
24
  this.avatarChanged = new EventEmitter();
25
+ _SkyAvatarComponent__canChange.set(this, false);
26
+ _SkyAvatarComponent__name.set(this, void 0);
27
+ _SkyAvatarComponent__size.set(this, 'large');
28
+ _SkyAvatarComponent__src.set(this, void 0);
29
+ _SkyAvatarComponent_errorService.set(this, void 0);
30
+ _SkyAvatarComponent_fileSizePipe.set(this, void 0);
31
+ _SkyAvatarComponent_resourcesService.set(this, void 0);
32
+ __classPrivateFieldSet(this, _SkyAvatarComponent_errorService, errorService, "f");
33
+ __classPrivateFieldSet(this, _SkyAvatarComponent_fileSizePipe, fileSizePipe, "f");
34
+ __classPrivateFieldSet(this, _SkyAvatarComponent_resourcesService, resourcesService, "f");
30
35
  }
31
36
  /**
32
37
  * Indicates whether users can change the image. To select a different image,
@@ -36,10 +41,10 @@ export class SkyAvatarComponent {
36
41
  * @default false
37
42
  */
38
43
  set canChange(value) {
39
- this._canChange = value;
44
+ __classPrivateFieldSet(this, _SkyAvatarComponent__canChange, !!value, "f");
40
45
  }
41
46
  get canChange() {
42
- return this._canChange;
47
+ return __classPrivateFieldGet(this, _SkyAvatarComponent__canChange, "f");
43
48
  }
44
49
  /**
45
50
  * Specifies the name of the record that the avatar represents.
@@ -50,20 +55,31 @@ export class SkyAvatarComponent {
50
55
  * not required, but the component requires either the `name` or `src` property.
51
56
  */
52
57
  set name(value) {
53
- this._name = value;
58
+ __classPrivateFieldSet(this, _SkyAvatarComponent__name, value, "f");
54
59
  }
55
60
  get name() {
56
- return this._name;
61
+ return __classPrivateFieldGet(this, _SkyAvatarComponent__name, "f");
57
62
  }
58
63
  /**
59
64
  * Specifies an image to display to identify a record. This property is
60
65
  * not required, but the component requires either the `name` or `src` property.
61
66
  */
62
67
  set src(value) {
63
- this._src = value;
68
+ __classPrivateFieldSet(this, _SkyAvatarComponent__src, value, "f");
64
69
  }
65
70
  get src() {
66
- return this._src;
71
+ return __classPrivateFieldGet(this, _SkyAvatarComponent__src, "f");
72
+ }
73
+ /**
74
+ * Specifies the size of the avatar.
75
+ * Acceptable values are: `"small"`, `"medium"`, and `"large"`.
76
+ * @default "large"
77
+ */
78
+ set size(value) {
79
+ __classPrivateFieldSet(this, _SkyAvatarComponent__size, value ?? 'large', "f");
80
+ }
81
+ get size() {
82
+ return __classPrivateFieldGet(this, _SkyAvatarComponent__size, "f");
67
83
  }
68
84
  photoDrop(result) {
69
85
  /* sanity check */
@@ -72,38 +88,35 @@ export class SkyAvatarComponent {
72
88
  this.avatarChanged.emit(result.files[0]);
73
89
  }
74
90
  else if (result.rejectedFiles && result.rejectedFiles.length > 0) {
75
- this.handleError(result.rejectedFiles);
91
+ __classPrivateFieldGet(this, _SkyAvatarComponent_instances, "m", _SkyAvatarComponent_handleError).call(this, result.rejectedFiles);
76
92
  }
77
93
  }
78
- handleError(rejectedFiles) {
79
- const rejectedFile = rejectedFiles[0];
80
- if (rejectedFile.errorType === 'maxFileSize') {
81
- const title = this.getString('skyux_avatar_error_too_large_title');
82
- const description = this.getString('skyux_avatar_error_too_large_description', this.maxFileSizeText());
83
- this.openErrorModal(title, description);
84
- }
85
- else if (rejectedFile.errorType === 'fileType') {
86
- const title = this.getString('skyux_avatar_error_not_image_title');
87
- const description = this.getString('skyux_avatar_error_not_image_description');
88
- this.openErrorModal(title, description);
89
- }
90
- }
91
- maxFileSizeText() {
92
- return this.fileSizePipe.transform(this.maxFileSize);
93
- }
94
- openErrorModal(title, description) {
95
- const config = {
96
- errorTitle: title,
97
- errorDescription: description,
98
- errorCloseText: this.getString('skyux_avatar_errormodal_ok'),
99
- };
100
- this.errorService.open(config);
94
+ }
95
+ _SkyAvatarComponent__canChange = new WeakMap(), _SkyAvatarComponent__name = new WeakMap(), _SkyAvatarComponent__size = new WeakMap(), _SkyAvatarComponent__src = new WeakMap(), _SkyAvatarComponent_errorService = new WeakMap(), _SkyAvatarComponent_fileSizePipe = new WeakMap(), _SkyAvatarComponent_resourcesService = new WeakMap(), _SkyAvatarComponent_instances = new WeakSet(), _SkyAvatarComponent_handleError = function _SkyAvatarComponent_handleError(rejectedFiles) {
96
+ const rejectedFile = rejectedFiles[0];
97
+ if (rejectedFile.errorType === 'maxFileSize') {
98
+ const title = __classPrivateFieldGet(this, _SkyAvatarComponent_instances, "m", _SkyAvatarComponent_getString).call(this, 'skyux_avatar_error_too_large_title');
99
+ const description = __classPrivateFieldGet(this, _SkyAvatarComponent_instances, "m", _SkyAvatarComponent_getString).call(this, 'skyux_avatar_error_too_large_description', __classPrivateFieldGet(this, _SkyAvatarComponent_instances, "m", _SkyAvatarComponent_maxFileSizeText).call(this));
100
+ __classPrivateFieldGet(this, _SkyAvatarComponent_instances, "m", _SkyAvatarComponent_openErrorModal).call(this, title, description);
101
101
  }
102
- getString(key, ...args) {
103
- // TODO: Need to implement the async `getString` method in a breaking change.
104
- return this.resourcesService.getStringForLocale({ locale: 'en-US' }, key, ...args);
102
+ else if (rejectedFile.errorType === 'fileType') {
103
+ const title = __classPrivateFieldGet(this, _SkyAvatarComponent_instances, "m", _SkyAvatarComponent_getString).call(this, 'skyux_avatar_error_not_image_title');
104
+ const description = __classPrivateFieldGet(this, _SkyAvatarComponent_instances, "m", _SkyAvatarComponent_getString).call(this, 'skyux_avatar_error_not_image_description');
105
+ __classPrivateFieldGet(this, _SkyAvatarComponent_instances, "m", _SkyAvatarComponent_openErrorModal).call(this, title, description);
105
106
  }
106
- }
107
+ }, _SkyAvatarComponent_maxFileSizeText = function _SkyAvatarComponent_maxFileSizeText() {
108
+ return __classPrivateFieldGet(this, _SkyAvatarComponent_fileSizePipe, "f").transform(this.maxFileSize);
109
+ }, _SkyAvatarComponent_openErrorModal = function _SkyAvatarComponent_openErrorModal(title, description) {
110
+ const config = {
111
+ errorTitle: title,
112
+ errorDescription: description,
113
+ errorCloseText: __classPrivateFieldGet(this, _SkyAvatarComponent_instances, "m", _SkyAvatarComponent_getString).call(this, 'skyux_avatar_errormodal_ok'),
114
+ };
115
+ __classPrivateFieldGet(this, _SkyAvatarComponent_errorService, "f").open(config);
116
+ }, _SkyAvatarComponent_getString = function _SkyAvatarComponent_getString(key, ...args) {
117
+ // TODO: Need to implement the async `getString` method in a breaking change.
118
+ return __classPrivateFieldGet(this, _SkyAvatarComponent_resourcesService, "f").getStringForLocale({ locale: 'en-US' }, key, ...args);
119
+ };
107
120
  SkyAvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyAvatarComponent, deps: [{ token: i1.SkyErrorModalService }, { token: i2.SkyFileSizePipe }, { token: i3.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Component });
108
121
  SkyAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyAvatarComponent, selector: "sky-avatar", inputs: { canChange: "canChange", name: "name", src: "src", maxFileSize: "maxFileSize", size: "size" }, outputs: { avatarChanged: "avatarChanged" }, ngImport: i0, template: "<div class=\"sky-avatar\">\n <div *ngIf=\"canChange\">\n <div class=\"sky-avatar-file-drop\">\n <sky-file-drop\n [acceptedTypes]=\"'image/*'\"\n [fileUploadAriaLabel]=\"\n src\n ? ('skyux_avatar_upload_change_aria_label' | skyLibResources: name)\n : ('skyux_avatar_upload_new_aria_label' | skyLibResources: name)\n \"\n [multiple]=\"false\"\n [maxFileSize]=\"maxFileSize\"\n [multiple]=\"false\"\n (filesChanged)=\"photoDrop($event)\"\n >\n <ng-container *ngTemplateOutlet=\"innerTemplate\"></ng-container>\n </sky-file-drop>\n </div>\n </div>\n <div *ngIf=\"!canChange\">\n <ng-container *ngTemplateOutlet=\"innerTemplate\"></ng-container>\n </div>\n</div>\n\n<ng-template #innerTemplate>\n <sky-avatar-inner [name]=\"name\" [size]=\"size\" [src]=\"src\"></sky-avatar-inner>\n</ng-template>\n", styles: [".sky-avatar .sky-file-drop-col{flex-basis:initial}.sky-theme-modern .sky-file-drop:focus{outline:none}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.λ8, selector: "sky-file-drop", inputs: ["fileUploadAriaLabel", "linkUploadAriaLabel", "minFileSize", "maxFileSize", "multiple", "validateFn", "acceptedTypes", "noClick", "allowLinks"], outputs: ["filesChanged", "linkInputBlur", "linkChanged"] }, { kind: "component", type: i5.SkyAvatarInnerComponent, selector: "sky-avatar-inner", inputs: ["src", "name", "size"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], encapsulation: i0.ViewEncapsulation.None });
109
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyAvatarComponent, decorators: [{
@@ -122,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
122
135
  }], avatarChanged: [{
123
136
  type: Output
124
137
  }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F2YXRhci9zcmMvbGliL21vZHVsZXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW9CLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBa0MsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7OztBQVdyRCxNQUFNLE9BQU8sa0JBQWtCO0lBeUU3QixZQUNVLFlBQWtDLEVBQ2xDLFlBQTZCLEVBQzdCLGdCQUF3QztRQUZ4QyxpQkFBWSxHQUFaLFlBQVksQ0FBc0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBd0I7UUE3QmxEOztXQUVHO1FBRUksZ0JBQVcsR0FBRyxNQUFNLENBQUM7UUFFNUI7Ozs7V0FJRztRQUVJLFNBQUksR0FBa0IsT0FBTyxDQUFDO1FBRXJDOztXQUVHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO0lBWXBELENBQUM7SUE1RUo7Ozs7OztPQU1HO0lBQ0gsSUFDVyxTQUFTLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9B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QURkLEtBQUs7Z0JBY0ssR0FBRztzQkFEYixLQUFLO2dCQWFDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBU0MsSUFBSTtzQkFEVixLQUFLO2dCQU9DLGFBQWE7c0JBRG5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXJyb3JNb2RhbENvbmZpZywgU2t5RXJyb3JNb2RhbFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvZXJyb3JzJztcbmltcG9ydCB7IFNreUZpbGVEcm9wQ2hhbmdlLCBTa3lGaWxlSXRlbSwgU2t5RmlsZVNpemVQaXBlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IFNreUF2YXRhclNpemUgfSBmcm9tICcuL2F2YXRhci1zaXplJztcbmltcG9ydCB7IFNreUF2YXRhclNyYyB9IGZyb20gJy4vYXZhdGFyLXNyYyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hdmF0YXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreUF2YXRhckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB1c2VycyBjYW4gY2hhbmdlIHRoZSBpbWFnZS4gVG8gc2VsZWN0IGEgZGlmZmVyZW50IGltYWdlLFxuICAgKiB1c2VycyBjbGljayB0aGUgaW1hZ2Ugb3IgZHJhZyBhbm90aGVyIGltYWdlIG9uIHRvcCBvZiBpdCxcbiAgICogbXVjaCBsaWtlIHRoZSBgc2t5LWZpbGUtZHJvcGAgY29tcG9uZW50IGluIHRoZVxuICAgKiBbZmlsZSBhdHRhY2htZW50IG1vZHVsZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2ZpbGUtYXR0YWNobWVudHMvZmlsZS1hdHRhY2htZW50KS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2FuQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2FuQ2hhbmdlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNhbkNoYW5nZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2FuQ2hhbmdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgcmVjb3JkIHRoYXQgdGhlIGF2YXRhciByZXByZXNlbnRzLlxuICAgKiBJZiB0aGUgYHNyY2AgcHJvcGVydHkgZG9lcyBub3Qgc3BlY2lmeSBhbiBpbWFnZSwgdGhlIGNvbXBvbmVudCBkaXNwbGF5c1xuICAgKiBpbml0aWFscyBmcm9tIHRoZSBmaXJzdCBhbmQgbGFzdCB3b3JkcyBpbiB0aGUgbmFtZS4gVG8gZW5zdXJlXG4gICAqIHRoYXQgdGhlIGNvbXBvbmVudCBleHRyYWN0cyB0aGUgY29ycmVjdCBpbml0aWFscywgc3BlY2lmeSBhIG5hbWUgd2l0aCBubyBwcmVmaXhcbiAgICogb3Igc3VmZml4LCBvciBqdXN0IHNwZWNpZnkgaW5pdGlhbHMgd2l0aCBhIHNwYWNlIGJldHdlZW4gdGhlbS4gVGhpcyBwcm9wZXJ0eSBpc1xuICAgKiBub3QgcmVxdWlyZWQsIGJ1dCB0aGUgY29tcG9uZW50IHJlcXVpcmVzIGVpdGhlciB0aGUgYG5hbWVgIG9yIGBzcmNgIHByb3BlcnR5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9uYW1lID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYW4gaW1hZ2UgdG8gZGlzcGxheSB0byBpZGVudGlmeSBhIHJlY29yZC4gVGhpcyBwcm9wZXJ0eSBpc1xuICAgKiBub3QgcmVxdWlyZWQsIGJ1dCB0aGUgY29tcG9uZW50IHJlcXVpcmVzIGVpdGhlciB0aGUgYG5hbWVgIG9yIGBzcmNgIHByb3BlcnR5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzcmModmFsdWU6IFNreUF2YXRhclNyYykge1xuICAgIHRoaXMuX3NyYyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBzcmMoKTogU2t5QXZhdGFyU3JjIHtcbiAgICByZXR1cm4gdGhpcy5fc3JjO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBmaWxlIHNpemUgZm9yIHRoZSBpbWFnZSBpbiBieXRlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhGaWxlU2l6ZSA9IDUwMDAwMDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBzaXplIG9mIHRoZSBhdmF0YXIuXG4gICAqIEFjY2VwdGFibGUgdmFsdWVzIGFyZTogYFwic21hbGxcImAsIGBcIm1lZGl1bVwiYCwgYW5kIGBcImxhcmdlXCJgLlxuICAgKiBAZGVmYXVsdCBcImxhcmdlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaXplOiBTa3lBdmF0YXJTaXplID0gJ2xhcmdlJztcblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5RmlsZUl0ZW1gIG9iamVjdCB3aGVuIHRoZSBpbWFnZSBpcyB1cGRhdGVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBhdmF0YXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lGaWxlSXRlbT4oKTtcblxuICBwcml2YXRlIF9jYW5DaGFuZ2U6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgX3NyYzogU2t5QXZhdGFyU3JjO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXJyb3JTZXJ2aWNlOiBTa3lFcnJvck1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGZpbGVTaXplUGlwZTogU2t5RmlsZVNpemVQaXBlLFxuICAgIHByaXZhdGUgcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIHBob3RvRHJvcChyZXN1bHQ6IFNreUZpbGVEcm9wQ2hhbmdlKTogdm9pZCB7XG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAocmVzdWx0LmZpbGVzICYmIHJlc3VsdC5maWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmF2YXRhckNoYW5nZWQuZW1pdChyZXN1bHQuZmlsZXNbMF0pO1xuICAgIH0gZWxzZSBpZiAocmVzdWx0LnJlamVjdGVkRmlsZXMgJiYgcmVzdWx0LnJlamVjdGVkRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5oYW5kbGVFcnJvcihyZXN1bHQucmVqZWN0ZWRGaWxlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihyZWplY3RlZEZpbGVzOiBBcnJheTxTa3lGaWxlSXRlbT4pOiB2b2lkIHtcbiAgICBjb25zdCByZWplY3RlZEZpbGUgPSByZWplY3RlZEZpbGVzWzBdO1xuXG4gICAgaWYgKHJlamVjdGVkRmlsZS5lcnJvclR5cGUgPT09ICdtYXhGaWxlU2l6ZScpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5nZXRTdHJpbmcoJ3NreXV4X2F2YXRhcl9lcnJvcl90b29fbGFyZ2VfdGl0bGUnKTtcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5nZXRTdHJpbmcoXG4gICAgICAgICdza3l1eF9hdmF0YXJfZXJyb3JfdG9vX2xhcmdlX2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgdGhpcy5tYXhGaWxlU2l6ZVRleHQoKVxuICAgICAgKTtcblxuICAgICAgdGhpcy5vcGVuRXJyb3JNb2RhbCh0aXRsZSwgZGVzY3JpcHRpb24pO1xuICAgIH0gZWxzZSBpZiAocmVqZWN0ZWRGaWxlLmVycm9yVHlwZSA9PT0gJ2ZpbGVUeXBlJykge1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLmdldFN0cmluZygnc2t5dXhfYXZhdGFyX2Vycm9yX25vdF9pbWFnZV90aXRsZScpO1xuICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSB0aGlzLmdldFN0cmluZyhcbiAgICAgICAgJ3NreXV4X2F2YXRhcl9lcnJvcl9ub3RfaW1hZ2VfZGVzY3JpcHRpb24nXG4gICAgICApO1xuXG4gICAgICB0aGlzLm9wZW5FcnJvck1vZGFsKHRpdGxlLCBkZXNjcmlwdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtYXhGaWxlU2l6ZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWxlU2l6ZVBpcGUudHJhbnNmb3JtKHRoaXMubWF4RmlsZVNpemUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRXJyb3JNb2RhbCh0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnOiBFcnJvck1vZGFsQ29uZmlnID0ge1xuICAgICAgZXJyb3JUaXRsZTogdGl0bGUsXG4gICAgICBlcnJvckRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbixcbiAgICAgIGVycm9yQ2xvc2VUZXh0OiB0aGlzLmdldFN0cmluZygnc2t5dXhfYXZhdGFyX2Vycm9ybW9kYWxfb2snKSxcbiAgICB9O1xuXG4gICAgdGhpcy5lcnJvclNlcnZpY2Uub3Blbihjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdHJpbmcoa2V5OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBOZWVkIHRvIGltcGxlbWVudCB0aGUgYXN5bmMgYGdldFN0cmluZ2AgbWV0aG9kIGluIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAgIHJldHVybiB0aGlzLnJlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nRm9yTG9jYWxlKFxuICAgICAgeyBsb2NhbGU6ICdlbi1VUycgfSxcbiAgICAgIGtleSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LWF2YXRhclwiPlxuICA8ZGl2ICpuZ0lmPVwiY2FuQ2hhbmdlXCI+XG4gICAgPGRpdiBjbGFzcz1cInNreS1hdmF0YXItZmlsZS1kcm9wXCI+XG4gICAgICA8c2t5LWZpbGUtZHJvcFxuICAgICAgICBbYWNjZXB0ZWRUeXBlc109XCInaW1hZ2UvKidcIlxuICAgICAgICBbZmlsZVVwbG9hZEFyaWFMYWJlbF09XCJcbiAgICAgICAgICBzcmNcbiAgICAgICAgICAgID8gKCdza3l1eF9hdmF0YXJfdXBsb2FkX2NoYW5nZV9hcmlhX2xhYmVsJyB8IHNreUxpYlJlc291cmNlczogbmFtZSlcbiAgICAgICAgICAgIDogKCdza3l1eF9hdmF0YXJfdXBsb2FkX25ld19hcmlhX2xhYmVsJyB8IHNreUxpYlJlc291cmNlczogbmFtZSlcbiAgICAgICAgXCJcbiAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCJcbiAgICAgICAgW21heEZpbGVTaXplXT1cIm1heEZpbGVTaXplXCJcbiAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCJcbiAgICAgICAgKGZpbGVzQ2hhbmdlZCk9XCJwaG90b0Ryb3AoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3NreS1maWxlLWRyb3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWNhbkNoYW5nZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaW5uZXJUZW1wbGF0ZT5cbiAgPHNreS1hdmF0YXItaW5uZXIgW25hbWVdPVwibmFtZVwiIFtzaXplXT1cInNpemVcIiBbc3JjXT1cInNyY1wiPjwvc2t5LWF2YXRhci1pbm5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F2YXRhci9zcmMvbGliL21vZHVsZXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBb0Isb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFrQyxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7O0FBS3JELE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDO0FBUXJDLE1BQU0sT0FBTyxrQkFBa0I7SUFxRjdCLFlBQ0UsWUFBa0MsRUFDbEMsWUFBNkIsRUFDN0IsZ0JBQXdDOztRQXpDMUM7O1dBRUc7UUFFSSxnQkFBVyxHQUF1QixxQkFBcUIsQ0FBQztRQWdCL0Q7O1dBRUc7UUFFSSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFFdkQseUNBQWMsS0FBSyxFQUFDO1FBRXBCLDRDQUEyQjtRQUUzQixvQ0FBd0IsT0FBTyxFQUFDO1FBRWhDLDJDQUFnQztRQUVoQyxtREFBb0M7UUFDcEMsbURBQStCO1FBQy9CLHVEQUEwQztRQU94Qyx1QkFBQSxJQUFJLG9DQUFpQixZQUFZLE1BQUEsQ0FBQztRQUNsQyx1QkFBQSxJQUFJLG9DQUFpQixZQUFZLE1BQUEsQ0FBQztRQUNsQyx1QkFBQSxJQUFJLHdDQUFx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LG9FQUFXLE1BQWYsSUFBSSxFQUFZLDRCQUE0QixDQUFDO0tBQzlELENBQUM7SUFFRix1QkFBQSxJQUFJLHdDQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDLENBQUMseUVBRVUsR0FBVyxFQUFFLEdBQUcsSUFBVztJQUNwQyw2RUFBNkU7SUFDN0UsT0FBTyx1QkFBQSxJQUFJLDRDQUFrQixDQUFDLGtCQUFrQixDQUM5QyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFDbkIsR0FBRyxFQUNILEdBQUcsSUFBSSxDQUNSLENBQUM7QUFDSixDQUFDOytHQW5KVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1TUN0Qi9CLCs0QkEyQkE7MkZETGEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSTs4S0FXMUIsU0FBUztzQkFEbkIsS0FBSztnQkFrQkssSUFBSTtzQkFEZCxLQUFLO2dCQWNLLEdBQUc7c0JBRGIsS0FBSztnQkFhQyxXQUFXO3NCQURqQixLQUFLO2dCQVNLLElBQUk7c0JBRGQsS0FBSztnQkFhQyxhQUFhO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVycm9yTW9kYWxDb25maWcsIFNreUVycm9yTW9kYWxTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2Vycm9ycyc7XG5pbXBvcnQgeyBTa3lGaWxlRHJvcENoYW5nZSwgU2t5RmlsZUl0ZW0sIFNreUZpbGVTaXplUGlwZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBTa3lBdmF0YXJTaXplIH0gZnJvbSAnLi9hdmF0YXItc2l6ZSc7XG5pbXBvcnQgeyBTa3lBdmF0YXJTcmMgfSBmcm9tICcuL2F2YXRhci1zcmMnO1xuXG5jb25zdCBNQVhfRklMRV9TSVpFX0RFRkFVTFQgPSA1MDAwMDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hdmF0YXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreUF2YXRhckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB1c2VycyBjYW4gY2hhbmdlIHRoZSBpbWFnZS4gVG8gc2VsZWN0IGEgZGlmZmVyZW50IGltYWdlLFxuICAgKiB1c2VycyBjbGljayB0aGUgaW1hZ2Ugb3IgZHJhZyBhbm90aGVyIGltYWdlIG9uIHRvcCBvZiBpdCxcbiAgICogbXVjaCBsaWtlIHRoZSBgc2t5LWZpbGUtZHJvcGAgY29tcG9uZW50IGluIHRoZVxuICAgKiBbZmlsZSBhdHRhY2htZW50IG1vZHVsZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2ZpbGUtYXR0YWNobWVudHMvZmlsZS1hdHRhY2htZW50KS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2FuQ2hhbmdlKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2NhbkNoYW5nZSA9ICEhdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNhbkNoYW5nZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2NhbkNoYW5nZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIHJlY29yZCB0aGF0IHRoZSBhdmF0YXIgcmVwcmVzZW50cy5cbiAgICogSWYgdGhlIGBzcmNgIHByb3BlcnR5IGRvZXMgbm90IHNwZWNpZnkgYW4gaW1hZ2UsIHRoZSBjb21wb25lbnQgZGlzcGxheXNcbiAgICogaW5pdGlhbHMgZnJvbSB0aGUgZmlyc3QgYW5kIGxhc3Qgd29yZHMgaW4gdGhlIG5hbWUuIFRvIGVuc3VyZVxuICAgKiB0aGF0IHRoZSBjb21wb25lbnQgZXh0cmFjdHMgdGhlIGNvcnJlY3QgaW5pdGlhbHMsIHNwZWNpZnkgYSBuYW1lIHdpdGggbm8gcHJlZml4XG4gICAqIG9yIHN1ZmZpeCwgb3IganVzdCBzcGVjaWZ5IGluaXRpYWxzIHdpdGggYSBzcGFjZSBiZXR3ZWVuIHRoZW0uIFRoaXMgcHJvcGVydHkgaXNcbiAgICogbm90IHJlcXVpcmVkLCBidXQgdGhlIGNvbXBvbmVudCByZXF1aXJlcyBlaXRoZXIgdGhlIGBuYW1lYCBvciBgc3JjYCBwcm9wZXJ0eS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX25hbWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYW4gaW1hZ2UgdG8gZGlzcGxheSB0byBpZGVudGlmeSBhIHJlY29yZC4gVGhpcyBwcm9wZXJ0eSBpc1xuICAgKiBub3QgcmVxdWlyZWQsIGJ1dCB0aGUgY29tcG9uZW50IHJlcXVpcmVzIGVpdGhlciB0aGUgYG5hbWVgIG9yIGBzcmNgIHByb3BlcnR5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzcmModmFsdWU6IFNreUF2YXRhclNyYyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19zcmMgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3JjKCk6IFNreUF2YXRhclNyYyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19zcmM7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIGZpbGUgc2l6ZSBmb3IgdGhlIGltYWdlIGluIGJ5dGVzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1heEZpbGVTaXplOiBudW1iZXIgfCB1bmRlZmluZWQgPSBNQVhfRklMRV9TSVpFX0RFRkFVTFQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgc2l6ZSBvZiB0aGUgYXZhdGFyLlxuICAgKiBBY2NlcHRhYmxlIHZhbHVlcyBhcmU6IGBcInNtYWxsXCJgLCBgXCJtZWRpdW1cImAsIGFuZCBgXCJsYXJnZVwiYC5cbiAgICogQGRlZmF1bHQgXCJsYXJnZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNpemUodmFsdWU6IFNreUF2YXRhclNpemUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc2l6ZSA9IHZhbHVlID8/ICdsYXJnZSc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNpemUoKTogU2t5QXZhdGFyU2l6ZSB7XG4gICAgcmV0dXJuIHRoaXMuI19zaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIGEgYFNreUZpbGVJdGVtYCBvYmplY3Qgd2hlbiB0aGUgaW1hZ2UgaXMgdXBkYXRlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYXZhdGFyQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5RmlsZUl0ZW0+KCk7XG5cbiAgI19jYW5DaGFuZ2UgPSBmYWxzZTtcblxuICAjX25hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjX3NpemU6IFNreUF2YXRhclNpemUgPSAnbGFyZ2UnO1xuXG4gICNfc3JjOiBTa3lBdmF0YXJTcmMgfCB1bmRlZmluZWQ7XG5cbiAgI2Vycm9yU2VydmljZTogU2t5RXJyb3JNb2RhbFNlcnZpY2U7XG4gICNmaWxlU2l6ZVBpcGU6IFNreUZpbGVTaXplUGlwZTtcbiAgI3Jlc291cmNlc1NlcnZpY2U6IFNreUxpYlJlc291cmNlc1NlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZXJyb3JTZXJ2aWNlOiBTa3lFcnJvck1vZGFsU2VydmljZSxcbiAgICBmaWxlU2l6ZVBpcGU6IFNreUZpbGVTaXplUGlwZSxcbiAgICByZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2Vycm9yU2VydmljZSA9IGVycm9yU2VydmljZTtcbiAgICB0aGlzLiNmaWxlU2l6ZVBpcGUgPSBmaWxlU2l6ZVBpcGU7XG4gICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZSA9IHJlc291cmNlc1NlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgcGhvdG9Ecm9wKHJlc3VsdDogU2t5RmlsZURyb3BDaGFuZ2UpOiB2b2lkIHtcbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChyZXN1bHQuZmlsZXMgJiYgcmVzdWx0LmZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuYXZhdGFyQ2hhbmdlZC5lbWl0KHJlc3VsdC5maWxlc1swXSk7XG4gICAgfSBlbHNlIGlmIChyZXN1bHQucmVqZWN0ZWRGaWxlcyAmJiByZXN1bHQucmVqZWN0ZWRGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLiNoYW5kbGVFcnJvcihyZXN1bHQucmVqZWN0ZWRGaWxlcyk7XG4gICAgfVxuICB9XG5cbiAgI2hhbmRsZUVycm9yKHJlamVjdGVkRmlsZXM6IEFycmF5PFNreUZpbGVJdGVtPik6IHZvaWQge1xuICAgIGNvbnN0IHJlamVjdGVkRmlsZSA9IHJlamVjdGVkRmlsZXNbMF07XG5cbiAgICBpZiAocmVqZWN0ZWRGaWxlLmVycm9yVHlwZSA9PT0gJ21heEZpbGVTaXplJykge1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLiNnZXRTdHJpbmcoJ3NreXV4X2F2YXRhcl9lcnJvcl90b29fbGFyZ2VfdGl0bGUnKTtcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy4jZ2V0U3RyaW5nKFxuICAgICAgICAnc2t5dXhfYXZhdGFyX2Vycm9yX3Rvb19sYXJnZV9kZXNjcmlwdGlvbicsXG4gICAgICAgIHRoaXMuI21heEZpbGVTaXplVGV4dCgpXG4gICAgICApO1xuXG4gICAgICB0aGlzLiNvcGVuRXJyb3JNb2RhbCh0aXRsZSwgZGVzY3JpcHRpb24pO1xuICAgIH0gZWxzZSBpZiAocmVqZWN0ZWRGaWxlLmVycm9yVHlwZSA9PT0gJ2ZpbGVUeXBlJykge1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLiNnZXRTdHJpbmcoJ3NreXV4X2F2YXRhcl9lcnJvcl9ub3RfaW1hZ2VfdGl0bGUnKTtcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy4jZ2V0U3RyaW5nKFxuICAgICAgICAnc2t5dXhfYXZhdGFyX2Vycm9yX25vdF9pbWFnZV9kZXNjcmlwdGlvbidcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuI29wZW5FcnJvck1vZGFsKHRpdGxlLCBkZXNjcmlwdGlvbik7XG4gICAgfVxuICB9XG5cbiAgI21heEZpbGVTaXplVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNmaWxlU2l6ZVBpcGUudHJhbnNmb3JtKHRoaXMubWF4RmlsZVNpemUpO1xuICB9XG5cbiAgI29wZW5FcnJvck1vZGFsKHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjb25maWc6IEVycm9yTW9kYWxDb25maWcgPSB7XG4gICAgICBlcnJvclRpdGxlOiB0aXRsZSxcbiAgICAgIGVycm9yRGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxuICAgICAgZXJyb3JDbG9zZVRleHQ6IHRoaXMuI2dldFN0cmluZygnc2t5dXhfYXZhdGFyX2Vycm9ybW9kYWxfb2snKSxcbiAgICB9O1xuXG4gICAgdGhpcy4jZXJyb3JTZXJ2aWNlLm9wZW4oY29uZmlnKTtcbiAgfVxuXG4gICNnZXRTdHJpbmcoa2V5OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBOZWVkIHRvIGltcGxlbWVudCB0aGUgYXN5bmMgYGdldFN0cmluZ2AgbWV0aG9kIGluIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAgIHJldHVybiB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlLmdldFN0cmluZ0ZvckxvY2FsZShcbiAgICAgIHsgbG9jYWxlOiAnZW4tVVMnIH0sXG4gICAgICBrZXksXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNreS1hdmF0YXJcIj5cbiAgPGRpdiAqbmdJZj1cImNhbkNoYW5nZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktYXZhdGFyLWZpbGUtZHJvcFwiPlxuICAgICAgPHNreS1maWxlLWRyb3BcbiAgICAgICAgW2FjY2VwdGVkVHlwZXNdPVwiJ2ltYWdlLyonXCJcbiAgICAgICAgW2ZpbGVVcGxvYWRBcmlhTGFiZWxdPVwiXG4gICAgICAgICAgc3JjXG4gICAgICAgICAgICA/ICgnc2t5dXhfYXZhdGFyX3VwbG9hZF9jaGFuZ2VfYXJpYV9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXM6IG5hbWUpXG4gICAgICAgICAgICA6ICgnc2t5dXhfYXZhdGFyX3VwbG9hZF9uZXdfYXJpYV9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXM6IG5hbWUpXG4gICAgICAgIFwiXG4gICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgIFttYXhGaWxlU2l6ZV09XCJtYXhGaWxlU2l6ZVwiXG4gICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgIChmaWxlc0NoYW5nZWQpPVwicGhvdG9Ecm9wKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9za3ktZmlsZS1kcm9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFjYW5DaGFuZ2VcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2lubmVyVGVtcGxhdGU+XG4gIDxza3ktYXZhdGFyLWlubmVyIFtuYW1lXT1cIm5hbWVcIiBbc2l6ZV09XCJzaXplXCIgW3NyY109XCJzcmNcIj48L3NreS1hdmF0YXItaW5uZXI+XG48L25nLXRlbXBsYXRlPlxuIl19