@skyux/avatar 8.6.0 → 9.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/esm2022/lib/modules/avatar/avatar-adapter.service.mjs +47 -0
  2. package/esm2022/lib/modules/avatar/avatar.component.mjs +129 -0
  3. package/esm2022/lib/modules/avatar/avatar.inner.component.mjs +89 -0
  4. package/{esm2020 → esm2022}/lib/modules/avatar/avatar.module.mjs +15 -15
  5. package/esm2022/lib/modules/shared/sky-avatar-resources.module.mjs +62 -0
  6. package/esm2022/testing/avatar-fixture.mjs +33 -0
  7. package/{fesm2015 → fesm2022}/skyux-avatar-testing.mjs +4 -7
  8. package/{fesm2015 → fesm2022}/skyux-avatar-testing.mjs.map +1 -1
  9. package/fesm2022/skyux-avatar.mjs +359 -0
  10. package/{fesm2020 → fesm2022}/skyux-avatar.mjs.map +1 -1
  11. package/lib/modules/avatar/avatar.component.d.ts +1 -1
  12. package/lib/modules/avatar/avatar.inner.component.d.ts +1 -1
  13. package/package.json +17 -25
  14. package/esm2020/lib/modules/avatar/avatar-adapter.service.mjs +0 -51
  15. package/esm2020/lib/modules/avatar/avatar.component.mjs +0 -127
  16. package/esm2020/lib/modules/avatar/avatar.inner.component.mjs +0 -91
  17. package/esm2020/lib/modules/shared/sky-avatar-resources.module.mjs +0 -62
  18. package/esm2020/testing/avatar-fixture.mjs +0 -36
  19. package/fesm2015/skyux-avatar.mjs +0 -362
  20. package/fesm2015/skyux-avatar.mjs.map +0 -1
  21. package/fesm2020/skyux-avatar-testing.mjs +0 -43
  22. package/fesm2020/skyux-avatar-testing.mjs.map +0 -1
  23. package/fesm2020/skyux-avatar.mjs +0 -361
  24. /package/{esm2020 → esm2022}/index.mjs +0 -0
  25. /package/{esm2020 → esm2022}/lib/modules/avatar/avatar-size.mjs +0 -0
  26. /package/{esm2020 → esm2022}/lib/modules/avatar/avatar-src.mjs +0 -0
  27. /package/{esm2020 → esm2022}/skyux-avatar.mjs +0 -0
  28. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  29. /package/{esm2020 → esm2022}/testing/skyux-avatar-testing.mjs +0 -0
@@ -0,0 +1,47 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @internal
5
+ */
6
+ export class SkyAvatarAdapterService {
7
+ #blobUrl;
8
+ updateImage(elementRef, src) {
9
+ this.#revokeBlobUrl();
10
+ const el = elementRef.nativeElement;
11
+ /*istanbul ignore else */
12
+ if (el) {
13
+ const imageEl = el.querySelector('.sky-avatar-image');
14
+ /*istanbul ignore else */
15
+ if (imageEl) {
16
+ let url = src;
17
+ if (src instanceof File || src instanceof Blob) {
18
+ url = this.#createBlobUrl(src);
19
+ }
20
+ // Notice the quotes inside the `url` function. This ensures proper url escaping.
21
+ imageEl.style.backgroundImage = 'url("' + url + '")';
22
+ }
23
+ }
24
+ }
25
+ destroy() {
26
+ this.#revokeBlobUrl();
27
+ }
28
+ #createBlobUrl(src) {
29
+ const url = URL.createObjectURL(src);
30
+ // Keep the last blob URL around so we can revoke it later.
31
+ // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL
32
+ this.#blobUrl = url;
33
+ return url;
34
+ }
35
+ #revokeBlobUrl() {
36
+ if (this.#blobUrl) {
37
+ URL.revokeObjectURL(this.#blobUrl);
38
+ this.#blobUrl = undefined;
39
+ }
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
42
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarAdapterService }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarAdapterService, decorators: [{
45
+ type: Injectable
46
+ }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXItYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSXZEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxRQUFRLENBQXFCO0lBRXRCLFdBQVcsQ0FBQyxVQUFzQixFQUFFLEdBQWlCO1FBQzFELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRXBDLHlCQUF5QjtRQUN6QixJQUFJLEVBQUUsRUFBRTtZQUNOLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUV0RCx5QkFBeUI7WUFDekIsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDO2dCQUVkLElBQUksR0FBRyxZQUFZLElBQUksSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFO29CQUM5QyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDaEM7Z0JBRUQsaUZBQWlGO2dCQUNqRixPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxPQUFPLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQzthQUN0RDtTQUNGO0lBQ0gsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFnQjtRQUM3QixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXJDLDJEQUEyRDtRQUMzRCx1RUFBdUU7UUFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztTQUMzQjtJQUNILENBQUM7OEdBNUNVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lBdmF0YXJTcmMgfSBmcm9tICcuL2F2YXRhci1zcmMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5QXZhdGFyQWRhcHRlclNlcnZpY2Uge1xuICAjYmxvYlVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB1cGRhdGVJbWFnZShlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBzcmM6IFNreUF2YXRhclNyYykge1xuICAgIHRoaXMuI3Jldm9rZUJsb2JVcmwoKTtcblxuICAgIGNvbnN0IGVsID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChlbCkge1xuICAgICAgY29uc3QgaW1hZ2VFbCA9IGVsLnF1ZXJ5U2VsZWN0b3IoJy5za3ktYXZhdGFyLWltYWdlJyk7XG5cbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChpbWFnZUVsKSB7XG4gICAgICAgIGxldCB1cmwgPSBzcmM7XG5cbiAgICAgICAgaWYgKHNyYyBpbnN0YW5jZW9mIEZpbGUgfHwgc3JjIGluc3RhbmNlb2YgQmxvYikge1xuICAgICAgICAgIHVybCA9IHRoaXMuI2NyZWF0ZUJsb2JVcmwoc3JjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vdGljZSB0aGUgcXVvdGVzIGluc2lkZSB0aGUgYHVybGAgZnVuY3Rpb24uIFRoaXMgZW5zdXJlcyBwcm9wZXIgdXJsIGVzY2FwaW5nLlxuICAgICAgICBpbWFnZUVsLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICd1cmwoXCInICsgdXJsICsgJ1wiKSc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy4jcmV2b2tlQmxvYlVybCgpO1xuICB9XG5cbiAgI2NyZWF0ZUJsb2JVcmwoc3JjOiBCbG9iIHwgRmlsZSkge1xuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoc3JjKTtcblxuICAgIC8vIEtlZXAgdGhlIGxhc3QgYmxvYiBVUkwgYXJvdW5kIHNvIHdlIGNhbiByZXZva2UgaXQgbGF0ZXIuXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1VSTC9yZXZva2VPYmplY3RVUkxcbiAgICB0aGlzLiNibG9iVXJsID0gdXJsO1xuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICAjcmV2b2tlQmxvYlVybCgpIHtcbiAgICBpZiAodGhpcy4jYmxvYlVybCkge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLiNibG9iVXJsKTtcbiAgICAgIHRoaXMuI2Jsb2JVcmwgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,129 @@
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation, inject, } from '@angular/core';
2
+ import { SkyDefaultInputProvider } from '@skyux/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@skyux/errors";
5
+ import * as i2 from "@skyux/forms";
6
+ import * as i3 from "@skyux/i18n";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "./avatar.inner.component";
9
+ const MAX_FILE_SIZE_DEFAULT = 500000;
10
+ export class SkyAvatarComponent {
11
+ /**
12
+ * Whether users can change the image. To select a different image,
13
+ * users click the image or drag another image on top of it,
14
+ * much like the `sky-file-drop` component in the
15
+ * [file attachment module](https://developer.blackbaud.com/skyux/components/file-attachments/file-attachment).
16
+ * @default false
17
+ */
18
+ set canChange(value) {
19
+ this.#_canChange = !!value;
20
+ }
21
+ get canChange() {
22
+ return this.#_canChange;
23
+ }
24
+ /**
25
+ * The name of the record that the avatar represents.
26
+ * If the `src` property does not specify an image, the component displays
27
+ * initials from the first and last words in the name. To ensure
28
+ * that the component extracts the correct initials, specify a name with no prefix
29
+ * or suffix, or just specify initials with a space between them. This property is
30
+ * not required, but the component requires either the `name` or `src` property.
31
+ */
32
+ set name(value) {
33
+ this.#_name = value;
34
+ }
35
+ get name() {
36
+ return this.#_name;
37
+ }
38
+ /**
39
+ * The image to identify a record. This property is
40
+ * not required, but the component requires either the `name` or `src` property.
41
+ */
42
+ set src(value) {
43
+ this.#_src = value;
44
+ }
45
+ get src() {
46
+ return this.#_src;
47
+ }
48
+ #_canChange;
49
+ #_name;
50
+ #_src;
51
+ #errorService;
52
+ #fileSizePipe;
53
+ #resourcesService;
54
+ #defaultInputProvider;
55
+ constructor(errorService, fileSizePipe, resourcesService) {
56
+ /**
57
+ * The maximum file size for the image in bytes.
58
+ * @default 500000 bytes
59
+ */
60
+ this.maxFileSize = MAX_FILE_SIZE_DEFAULT;
61
+ /**
62
+ * Emits a `SkyFileItem` object when the image is updated.
63
+ */
64
+ this.avatarChanged = new EventEmitter();
65
+ this.#_canChange = false;
66
+ this.#defaultInputProvider = inject(SkyDefaultInputProvider, { optional: true });
67
+ this.#errorService = errorService;
68
+ this.#fileSizePipe = fileSizePipe;
69
+ this.#resourcesService = resourcesService;
70
+ this.sizeDefault = this.#defaultInputProvider?.getValue('avatar', 'size');
71
+ }
72
+ photoDrop(result) {
73
+ /* sanity check */
74
+ /* istanbul ignore else */
75
+ if (result.files && result.files.length > 0) {
76
+ this.avatarChanged.emit(result.files[0]);
77
+ }
78
+ else if (result.rejectedFiles && result.rejectedFiles.length > 0) {
79
+ this.#handleError(result.rejectedFiles);
80
+ }
81
+ }
82
+ #handleError(rejectedFiles) {
83
+ const rejectedFile = rejectedFiles[0];
84
+ if (rejectedFile.errorType === 'maxFileSize') {
85
+ const title = this.#getString('skyux_avatar_error_too_large_title');
86
+ const description = this.#getString('skyux_avatar_error_too_large_description', this.#maxFileSizeText());
87
+ this.#openErrorModal(title, description);
88
+ }
89
+ else if (rejectedFile.errorType === 'fileType') {
90
+ const title = this.#getString('skyux_avatar_error_not_image_title');
91
+ const description = this.#getString('skyux_avatar_error_not_image_description');
92
+ this.#openErrorModal(title, description);
93
+ }
94
+ }
95
+ #maxFileSizeText() {
96
+ return this.#fileSizePipe.transform(this.maxFileSize);
97
+ }
98
+ #openErrorModal(title, description) {
99
+ const config = {
100
+ errorTitle: title,
101
+ errorDescription: description,
102
+ errorCloseText: this.#getString('skyux_avatar_errormodal_ok'),
103
+ };
104
+ this.#errorService.open(config);
105
+ }
106
+ #getString(key, ...args) {
107
+ // TODO: Need to implement the async `getString` method in a breaking change.
108
+ return this.#resourcesService.getStringForLocale({ locale: 'en-US' }, key, ...args);
109
+ }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarComponent, deps: [{ token: i1.SkyErrorModalService }, { token: i2.SkyFileSizePipe }, { token: i3.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Component }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", 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\n [name]=\"name\"\n [size]=\"size ?? (sizeDefault | async) ?? 'large'\"\n [src]=\"src\"\n ></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: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], encapsulation: i0.ViewEncapsulation.None }); }
112
+ }
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarComponent, decorators: [{
114
+ type: Component,
115
+ args: [{ selector: 'sky-avatar', encapsulation: ViewEncapsulation.None, 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\n [name]=\"name\"\n [size]=\"size ?? (sizeDefault | async) ?? 'large'\"\n [src]=\"src\"\n ></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"] }]
116
+ }], ctorParameters: function () { return [{ type: i1.SkyErrorModalService }, { type: i2.SkyFileSizePipe }, { type: i3.SkyLibResourcesService }]; }, propDecorators: { canChange: [{
117
+ type: Input
118
+ }], name: [{
119
+ type: Input
120
+ }], src: [{
121
+ type: Input
122
+ }], maxFileSize: [{
123
+ type: Input
124
+ }], size: [{
125
+ type: Input
126
+ }], avatarChanged: [{
127
+ type: Output
128
+ }] } });
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F2YXRhci9zcmMvbGliL21vZHVsZXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7O0FBVXRELE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDO0FBUXJDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7Ozs7OztPQU1HO0lBQ0gsSUFDVyxTQUFTLENBQUMsS0FBMEI7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFDVyxJQUFJLENBQUMsS0FBeUI7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDVyxHQUFHLENBQUMsS0FBK0I7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsR0FBRztRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBeUJELFdBQVcsQ0FBUztJQUVwQixNQUFNLENBQXFCO0lBRTNCLEtBQUssQ0FBMkI7SUFFaEMsYUFBYSxDQUF1QjtJQUNwQyxhQUFhLENBQWtCO0lBQy9CLGlCQUFpQixDQUF5QjtJQUUxQyxxQkFBcUIsQ0FBdUQ7SUFFNUUsWUFDRSxZQUFrQyxFQUNsQyxZQUE2QixFQUM3QixnQkFBd0M7UUF0QzFDOzs7V0FHRztRQUVJLGdCQUFXLEdBQXVCLHFCQUFxQixDQUFDO1FBVS9EOztXQUVHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBSXZELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBVXBCLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBTzFFLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUUxQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxRQUFRLENBQ3JELFFBQVEsRUFDUixNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBeUI7UUFDeEMsa0JBQWtCO1FBQ2xCLDBCQUEwQjtRQUMxQixJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQzthQUFNLElBQUksTUFBTSxDQUFDLGFBQWEsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLGFBQWlDO1FBQzVDLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0QyxJQUFJLFlBQVksQ0FBQyxTQUFTLEtBQUssYUFBYSxFQUFFO1lBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsb0NBQW9DLENBQUMsQ0FBQztZQUNwRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUNqQywwQ0FBMEMsRUFDMUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQ3hCLENBQUM7WUFFRixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztTQUMxQzthQUFNLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUU7WUFDaEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQ2pDLDBDQUEwQyxDQUMzQyxDQUFDO1lBRUYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhLEVBQUUsV0FBbUI7UUFDaEQsTUFBTSxNQUFNLEdBQXFCO1lBQy9CLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLGdCQUFnQixFQUFFLFdBQVc7WUFDN0IsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUM7U0FDOUQsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBVztRQUNwQyw2RUFBNkU7UUFDN0UsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQzlDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUNuQixHQUFHLEVBQ0gsR0FBRyxJQUFJLENBQ1IsQ0FBQztJQUNKLENBQUM7OEdBckpVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHVNQzFCL0IsdzhCQStCQTs7MkZETGEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSTs4S0FXMUIsU0FBUztzQkFEbkIsS0FBSztnQkFrQkssSUFBSTtzQkFEZCxLQUFLO2dCQWNLLEdBQUc7c0JBRGIsS0FBSztnQkFjQyxXQUFXO3NCQURqQixLQUFLO2dCQVNDLElBQUk7c0JBRFYsS0FBSztnQkFPQyxhQUFhO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5RGVmYXVsdElucHV0UHJvdmlkZXIgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBFcnJvck1vZGFsQ29uZmlnLCBTa3lFcnJvck1vZGFsU2VydmljZSB9IGZyb20gJ0Bza3l1eC9lcnJvcnMnO1xuaW1wb3J0IHsgU2t5RmlsZURyb3BDaGFuZ2UsIFNreUZpbGVJdGVtLCBTa3lGaWxlU2l6ZVBpcGUgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lBdmF0YXJTaXplIH0gZnJvbSAnLi9hdmF0YXItc2l6ZSc7XG5pbXBvcnQgeyBTa3lBdmF0YXJTcmMgfSBmcm9tICcuL2F2YXRhci1zcmMnO1xuXG5jb25zdCBNQVhfRklMRV9TSVpFX0RFRkFVTFQgPSA1MDAwMDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hdmF0YXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreUF2YXRhckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHVzZXJzIGNhbiBjaGFuZ2UgdGhlIGltYWdlLiBUbyBzZWxlY3QgYSBkaWZmZXJlbnQgaW1hZ2UsXG4gICAqIHVzZXJzIGNsaWNrIHRoZSBpbWFnZSBvciBkcmFnIGFub3RoZXIgaW1hZ2Ugb24gdG9wIG9mIGl0LFxuICAgKiBtdWNoIGxpa2UgdGhlIGBza3ktZmlsZS1kcm9wYCBjb21wb25lbnQgaW4gdGhlXG4gICAqIFtmaWxlIGF0dGFjaG1lbnQgbW9kdWxlXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvZmlsZS1hdHRhY2htZW50cy9maWxlLWF0dGFjaG1lbnQpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjYW5DaGFuZ2UodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfY2FuQ2hhbmdlID0gISF2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FuQ2hhbmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfY2FuQ2hhbmdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZWNvcmQgdGhhdCB0aGUgYXZhdGFyIHJlcHJlc2VudHMuXG4gICAqIElmIHRoZSBgc3JjYCBwcm9wZXJ0eSBkb2VzIG5vdCBzcGVjaWZ5IGFuIGltYWdlLCB0aGUgY29tcG9uZW50IGRpc3BsYXlzXG4gICAqIGluaXRpYWxzIGZyb20gdGhlIGZpcnN0IGFuZCBsYXN0IHdvcmRzIGluIHRoZSBuYW1lLiBUbyBlbnN1cmVcbiAgICogdGhhdCB0aGUgY29tcG9uZW50IGV4dHJhY3RzIHRoZSBjb3JyZWN0IGluaXRpYWxzLCBzcGVjaWZ5IGEgbmFtZSB3aXRoIG5vIHByZWZpeFxuICAgKiBvciBzdWZmaXgsIG9yIGp1c3Qgc3BlY2lmeSBpbml0aWFscyB3aXRoIGEgc3BhY2UgYmV0d2VlbiB0aGVtLiBUaGlzIHByb3BlcnR5IGlzXG4gICAqIG5vdCByZXF1aXJlZCwgYnV0IHRoZSBjb21wb25lbnQgcmVxdWlyZXMgZWl0aGVyIHRoZSBgbmFtZWAgb3IgYHNyY2AgcHJvcGVydHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG5hbWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19uYW1lID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX25hbWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGltYWdlIHRvIGlkZW50aWZ5IGEgcmVjb3JkLiBUaGlzIHByb3BlcnR5IGlzXG4gICAqIG5vdCByZXF1aXJlZCwgYnV0IHRoZSBjb21wb25lbnQgcmVxdWlyZXMgZWl0aGVyIHRoZSBgbmFtZWAgb3IgYHNyY2AgcHJvcGVydHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNyYyh2YWx1ZTogU2t5QXZhdGFyU3JjIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3NyYyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBzcmMoKTogU2t5QXZhdGFyU3JjIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3NyYztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBmaWxlIHNpemUgZm9yIHRoZSBpbWFnZSBpbiBieXRlcy5cbiAgICogQGRlZmF1bHQgNTAwMDAwIGJ5dGVzXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4RmlsZVNpemU6IG51bWJlciB8IHVuZGVmaW5lZCA9IE1BWF9GSUxFX1NJWkVfREVGQVVMVDtcblxuICAvKipcbiAgICogVGhlIHNpemUgb2YgdGhlIGF2YXRhci5cbiAgICogQWNjZXB0YWJsZSB2YWx1ZXMgYXJlOiBgXCJzbWFsbFwiYCwgYFwibWVkaXVtXCJgLCBhbmQgYFwibGFyZ2VcImAuXG4gICAqIEBkZWZhdWx0IFwibGFyZ2VcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNpemU6IFNreUF2YXRhclNpemUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGEgYFNreUZpbGVJdGVtYCBvYmplY3Qgd2hlbiB0aGUgaW1hZ2UgaXMgdXBkYXRlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYXZhdGFyQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5RmlsZUl0ZW0+KCk7XG5cbiAgcHJvdGVjdGVkIHNpemVEZWZhdWx0OiBPYnNlcnZhYmxlPFNreUF2YXRhclNpemU+IHwgdW5kZWZpbmVkO1xuXG4gICNfY2FuQ2hhbmdlID0gZmFsc2U7XG5cbiAgI19uYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI19zcmM6IFNreUF2YXRhclNyYyB8IHVuZGVmaW5lZDtcblxuICAjZXJyb3JTZXJ2aWNlOiBTa3lFcnJvck1vZGFsU2VydmljZTtcbiAgI2ZpbGVTaXplUGlwZTogU2t5RmlsZVNpemVQaXBlO1xuICAjcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZTtcblxuICAjZGVmYXVsdElucHV0UHJvdmlkZXIgPSBpbmplY3QoU2t5RGVmYXVsdElucHV0UHJvdmlkZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZXJyb3JTZXJ2aWNlOiBTa3lFcnJvck1vZGFsU2VydmljZSxcbiAgICBmaWxlU2l6ZVBpcGU6IFNreUZpbGVTaXplUGlwZSxcbiAgICByZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2Vycm9yU2VydmljZSA9IGVycm9yU2VydmljZTtcbiAgICB0aGlzLiNmaWxlU2l6ZVBpcGUgPSBmaWxlU2l6ZVBpcGU7XG4gICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZSA9IHJlc291cmNlc1NlcnZpY2U7XG5cbiAgICB0aGlzLnNpemVEZWZhdWx0ID0gdGhpcy4jZGVmYXVsdElucHV0UHJvdmlkZXI/LmdldFZhbHVlPFNreUF2YXRhclNpemU+KFxuICAgICAgJ2F2YXRhcicsXG4gICAgICAnc2l6ZSdcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHBob3RvRHJvcChyZXN1bHQ6IFNreUZpbGVEcm9wQ2hhbmdlKTogdm9pZCB7XG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAocmVzdWx0LmZpbGVzICYmIHJlc3VsdC5maWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmF2YXRhckNoYW5nZWQuZW1pdChyZXN1bHQuZmlsZXNbMF0pO1xuICAgIH0gZWxzZSBpZiAocmVzdWx0LnJlamVjdGVkRmlsZXMgJiYgcmVzdWx0LnJlamVjdGVkRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy4jaGFuZGxlRXJyb3IocmVzdWx0LnJlamVjdGVkRmlsZXMpO1xuICAgIH1cbiAgfVxuXG4gICNoYW5kbGVFcnJvcihyZWplY3RlZEZpbGVzOiBBcnJheTxTa3lGaWxlSXRlbT4pOiB2b2lkIHtcbiAgICBjb25zdCByZWplY3RlZEZpbGUgPSByZWplY3RlZEZpbGVzWzBdO1xuXG4gICAgaWYgKHJlamVjdGVkRmlsZS5lcnJvclR5cGUgPT09ICdtYXhGaWxlU2l6ZScpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy4jZ2V0U3RyaW5nKCdza3l1eF9hdmF0YXJfZXJyb3JfdG9vX2xhcmdlX3RpdGxlJyk7XG4gICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuI2dldFN0cmluZyhcbiAgICAgICAgJ3NreXV4X2F2YXRhcl9lcnJvcl90b29fbGFyZ2VfZGVzY3JpcHRpb24nLFxuICAgICAgICB0aGlzLiNtYXhGaWxlU2l6ZVRleHQoKVxuICAgICAgKTtcblxuICAgICAgdGhpcy4jb3BlbkVycm9yTW9kYWwodGl0bGUsIGRlc2NyaXB0aW9uKTtcbiAgICB9IGVsc2UgaWYgKHJlamVjdGVkRmlsZS5lcnJvclR5cGUgPT09ICdmaWxlVHlwZScpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy4jZ2V0U3RyaW5nKCdza3l1eF9hdmF0YXJfZXJyb3Jfbm90X2ltYWdlX3RpdGxlJyk7XG4gICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuI2dldFN0cmluZyhcbiAgICAgICAgJ3NreXV4X2F2YXRhcl9lcnJvcl9ub3RfaW1hZ2VfZGVzY3JpcHRpb24nXG4gICAgICApO1xuXG4gICAgICB0aGlzLiNvcGVuRXJyb3JNb2RhbCh0aXRsZSwgZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gICNtYXhGaWxlU2l6ZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jZmlsZVNpemVQaXBlLnRyYW5zZm9ybSh0aGlzLm1heEZpbGVTaXplKTtcbiAgfVxuXG4gICNvcGVuRXJyb3JNb2RhbCh0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnOiBFcnJvck1vZGFsQ29uZmlnID0ge1xuICAgICAgZXJyb3JUaXRsZTogdGl0bGUsXG4gICAgICBlcnJvckRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbixcbiAgICAgIGVycm9yQ2xvc2VUZXh0OiB0aGlzLiNnZXRTdHJpbmcoJ3NreXV4X2F2YXRhcl9lcnJvcm1vZGFsX29rJyksXG4gICAgfTtcblxuICAgIHRoaXMuI2Vycm9yU2VydmljZS5vcGVuKGNvbmZpZyk7XG4gIH1cblxuICAjZ2V0U3RyaW5nKGtleTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IHN0cmluZyB7XG4gICAgLy8gVE9ETzogTmVlZCB0byBpbXBsZW1lbnQgdGhlIGFzeW5jIGBnZXRTdHJpbmdgIG1ldGhvZCBpbiBhIGJyZWFraW5nIGNoYW5nZS5cbiAgICByZXR1cm4gdGhpcy4jcmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmdGb3JMb2NhbGUoXG4gICAgICB7IGxvY2FsZTogJ2VuLVVTJyB9LFxuICAgICAga2V5LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktYXZhdGFyXCI+XG4gIDxkaXYgKm5nSWY9XCJjYW5DaGFuZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LWF2YXRhci1maWxlLWRyb3BcIj5cbiAgICAgIDxza3ktZmlsZS1kcm9wXG4gICAgICAgIFthY2NlcHRlZFR5cGVzXT1cIidpbWFnZS8qJ1wiXG4gICAgICAgIFtmaWxlVXBsb2FkQXJpYUxhYmVsXT1cIlxuICAgICAgICAgIHNyY1xuICAgICAgICAgICAgPyAoJ3NreXV4X2F2YXRhcl91cGxvYWRfY2hhbmdlX2FyaWFfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzIDogbmFtZSlcbiAgICAgICAgICAgIDogKCdza3l1eF9hdmF0YXJfdXBsb2FkX25ld19hcmlhX2xhYmVsJyB8IHNreUxpYlJlc291cmNlcyA6IG5hbWUpXG4gICAgICAgIFwiXG4gICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgIFttYXhGaWxlU2l6ZV09XCJtYXhGaWxlU2l6ZVwiXG4gICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgIChmaWxlc0NoYW5nZWQpPVwicGhvdG9Ecm9wKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9za3ktZmlsZS1kcm9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFjYW5DaGFuZ2VcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2lubmVyVGVtcGxhdGU+XG4gIDxza3ktYXZhdGFyLWlubmVyXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW3NpemVdPVwic2l6ZSA/PyAoc2l6ZURlZmF1bHQgfCBhc3luYykgPz8gJ2xhcmdlJ1wiXG4gICAgW3NyY109XCJzcmNcIlxuICA+PC9za3ktYXZhdGFyLWlubmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,89 @@
1
+ import { Component, Input, ViewEncapsulation, } from '@angular/core';
2
+ import { SkyAvatarAdapterService } from './avatar-adapter.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./avatar-adapter.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@skyux/theme";
7
+ import * as i4 from "@skyux/i18n";
8
+ /**
9
+ * @internal
10
+ */
11
+ export class SkyAvatarInnerComponent {
12
+ get src() {
13
+ return this.#_src;
14
+ }
15
+ set src(value) {
16
+ this.#_src = value;
17
+ this.#updateImage();
18
+ }
19
+ get name() {
20
+ return this.#_name;
21
+ }
22
+ set name(value) {
23
+ this.#_name = value;
24
+ }
25
+ #viewInitialized;
26
+ #_src;
27
+ #_name;
28
+ #elementRef;
29
+ #adapter;
30
+ constructor(elementRef, adapter) {
31
+ this.size = 'large';
32
+ this.#viewInitialized = false;
33
+ this.#elementRef = elementRef;
34
+ this.#adapter = adapter;
35
+ }
36
+ get initials() {
37
+ let initials;
38
+ if (this.name) {
39
+ const nameSplit = this.name.split(' ');
40
+ initials = getInitial(nameSplit[0]);
41
+ if (nameSplit.length > 1) {
42
+ initials += getInitial(nameSplit[nameSplit.length - 1]);
43
+ }
44
+ }
45
+ return initials;
46
+ }
47
+ get colorIndex() {
48
+ const name = this.name;
49
+ let colorIndex;
50
+ if (name) {
51
+ // Generate a unique-ish color based on the record name. This is deterministic
52
+ // so that a given name will always generate the same color.
53
+ const seed = name.charCodeAt(0) + name.charCodeAt(name.length - 1) + name.length;
54
+ colorIndex = Math.abs(seed % 6);
55
+ }
56
+ else {
57
+ colorIndex = 0;
58
+ }
59
+ return colorIndex;
60
+ }
61
+ ngAfterViewInit() {
62
+ this.#viewInitialized = true;
63
+ this.#updateImage();
64
+ }
65
+ ngOnDestroy() {
66
+ this.#adapter.destroy();
67
+ }
68
+ #updateImage() {
69
+ if (this.#viewInitialized && this.src) {
70
+ this.#adapter.updateImage(this.#elementRef, this.src);
71
+ }
72
+ }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarInnerComponent, deps: [{ token: i0.ElementRef }, { token: i1.SkyAvatarAdapterService }], target: i0.ɵɵFactoryTarget.Component }); }
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyAvatarInnerComponent, selector: "sky-avatar-inner", inputs: { src: "src", name: "name", size: "size" }, providers: [SkyAvatarAdapterService], ngImport: i0, template: "<div\n class=\"sky-elevation-1 sky-avatar-wrapper\"\n [ngClass]=\"'sky-avatar-wrapper-size-' + size\"\n>\n <div class=\"sky-avatar-image\" [hidden]=\"!src\"></div>\n <div *ngIf=\"src\" class=\"sky-screen-reader-only\">\n {{ 'skyux_avatar_inner_description' | skyLibResources : name }}\n </div>\n <div\n class=\"sky-avatar-initials\"\n [hidden]=\"src || !name\"\n [ngClass]=\"'sky-palette-multi-' + (colorIndex + 1)\"\n >\n <div\n *ngIf=\"size === 'small'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-body-sm': 'modern'\n }\"\n >\n {{ initials }}\n </div>\n <div\n *ngIf=\"size === 'medium'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern'\n }\"\n >\n {{ initials }}\n </div>\n <div\n *ngIf=\"size === 'large'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-display-2': 'modern'\n }\"\n >\n {{ initials }}\n </div>\n </div>\n</div>\n", styles: [".sky-avatar-wrapper{height:104px;width:104px;border:solid 2px transparent;border-radius:50%;overflow:hidden;position:relative;top:-2px;left:-2px}.sky-avatar-image,.sky-avatar-initials{height:100px;width:100px;background-position:50%;background-size:cover;display:flex;align-items:center;justify-content:center}.sky-avatar-initials{font-size:50px}.sky-avatar-initials-inner{color:#fff;cursor:default;-webkit-user-select:none;user-select:none}.sky-avatar-wrapper-size-medium{height:69px;width:69px}.sky-avatar-wrapper-size-medium .sky-avatar-image,.sky-avatar-wrapper-size-medium .sky-avatar-initials{height:65px;width:65px}.sky-avatar-wrapper-size-medium .sky-avatar-initials{font-size:32.5px}.sky-avatar-wrapper-size-small{height:36px;width:36px}.sky-avatar-wrapper-size-small .sky-avatar-image,.sky-avatar-wrapper-size-small .sky-avatar-initials{height:32px;width:32px}.sky-avatar-wrapper-size-small .sky-avatar-initials{font-size:16px}.sky-file-drop .sky-avatar-wrapper{cursor:pointer}.sky-file-drop-accept .sky-avatar-wrapper{border-color:#72bf44;border-style:dashed}.sky-file-drop-reject .sky-avatar-wrapper{border-color:#ef4044;border-style:dashed}.sky-theme-modern .sky-avatar-wrapper{height:100px;width:100px;background-color:#fff;border-width:0;padding:5px;top:0;left:0}.sky-theme-modern .sky-avatar-image,.sky-theme-modern .sky-avatar-initials{border-radius:50%;height:90px;width:90px}.sky-theme-modern .sky-avatar-initials-inner{color:#212327}.sky-theme-modern .sky-file-drop-accept .sky-avatar-wrapper,.sky-theme-modern .sky-file-drop-reject .sky-avatar-wrapper{border-width:2px;padding:3px}.sky-theme-modern .sky-file-drop-accept .sky-avatar-wrapper-size-medium,.sky-theme-modern .sky-file-drop-reject .sky-avatar-wrapper-size-medium{padding:1px}.sky-theme-modern .sky-file-drop-accept .sky-avatar-wrapper-size-small,.sky-theme-modern .sky-file-drop-reject .sky-avatar-wrapper-size-small{padding:0}.sky-theme-modern .sky-avatar-wrapper-size-medium{padding:3px;height:65px;width:65px}.sky-theme-modern .sky-avatar-wrapper-size-medium .sky-avatar-image,.sky-theme-modern .sky-avatar-wrapper-size-medium .sky-avatar-initials{height:59px;width:59px}.sky-theme-modern .sky-avatar-wrapper-size-small{padding:2px;height:32px;width:32px}.sky-theme-modern .sky-avatar-wrapper-size-small .sky-avatar-image,.sky-theme-modern .sky-avatar-wrapper-size-small .sky-avatar-initials{height:28px;width:28px}.sky-theme-modern sky-file-drop:hover .sky-avatar-wrapper{border:solid 1px #1870B8;padding:4px}.sky-theme-modern sky-file-drop:hover .sky-avatar-wrapper.sky-avatar-wrapper-size-medium{padding:2px}.sky-theme-modern sky-file-drop:hover .sky-avatar-wrapper.sky-avatar-wrapper-size-small{padding:1px}.sky-theme-modern sky-file-drop:active .sky-avatar-wrapper,.sky-theme-modern sky-file-drop:focus-within .sky-avatar-wrapper{border:solid 2px #1870B8;padding:3px}.sky-theme-modern sky-file-drop:active .sky-avatar-wrapper.sky-avatar-wrapper-size-medium,.sky-theme-modern sky-file-drop:focus-within .sky-avatar-wrapper.sky-avatar-wrapper-size-medium{padding:1px}.sky-theme-modern sky-file-drop:active .sky-avatar-wrapper.sky-avatar-wrapper-size-small,.sky-theme-modern sky-file-drop:focus-within .sky-avatar-wrapper.sky-avatar-wrapper-size-small{padding:0}.sky-theme-modern sky-file-drop:focus-within:not(:active) .sky-avatar-wrapper{box-shadow:0 1px 8px #0000004d}.sky-theme-modern.sky-theme-mode-dark .sky-avatar-wrapper{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-avatar-initials-inner{color:#212327}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }], encapsulation: i0.ViewEncapsulation.None }); }
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarInnerComponent, decorators: [{
77
+ type: Component,
78
+ args: [{ selector: 'sky-avatar-inner', providers: [SkyAvatarAdapterService], encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-elevation-1 sky-avatar-wrapper\"\n [ngClass]=\"'sky-avatar-wrapper-size-' + size\"\n>\n <div class=\"sky-avatar-image\" [hidden]=\"!src\"></div>\n <div *ngIf=\"src\" class=\"sky-screen-reader-only\">\n {{ 'skyux_avatar_inner_description' | skyLibResources : name }}\n </div>\n <div\n class=\"sky-avatar-initials\"\n [hidden]=\"src || !name\"\n [ngClass]=\"'sky-palette-multi-' + (colorIndex + 1)\"\n >\n <div\n *ngIf=\"size === 'small'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-body-sm': 'modern'\n }\"\n >\n {{ initials }}\n </div>\n <div\n *ngIf=\"size === 'medium'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern'\n }\"\n >\n {{ initials }}\n </div>\n <div\n *ngIf=\"size === 'large'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-display-2': 'modern'\n }\"\n >\n {{ initials }}\n </div>\n </div>\n</div>\n", styles: [".sky-avatar-wrapper{height:104px;width:104px;border:solid 2px transparent;border-radius:50%;overflow:hidden;position:relative;top:-2px;left:-2px}.sky-avatar-image,.sky-avatar-initials{height:100px;width:100px;background-position:50%;background-size:cover;display:flex;align-items:center;justify-content:center}.sky-avatar-initials{font-size:50px}.sky-avatar-initials-inner{color:#fff;cursor:default;-webkit-user-select:none;user-select:none}.sky-avatar-wrapper-size-medium{height:69px;width:69px}.sky-avatar-wrapper-size-medium .sky-avatar-image,.sky-avatar-wrapper-size-medium .sky-avatar-initials{height:65px;width:65px}.sky-avatar-wrapper-size-medium .sky-avatar-initials{font-size:32.5px}.sky-avatar-wrapper-size-small{height:36px;width:36px}.sky-avatar-wrapper-size-small .sky-avatar-image,.sky-avatar-wrapper-size-small .sky-avatar-initials{height:32px;width:32px}.sky-avatar-wrapper-size-small .sky-avatar-initials{font-size:16px}.sky-file-drop .sky-avatar-wrapper{cursor:pointer}.sky-file-drop-accept .sky-avatar-wrapper{border-color:#72bf44;border-style:dashed}.sky-file-drop-reject .sky-avatar-wrapper{border-color:#ef4044;border-style:dashed}.sky-theme-modern .sky-avatar-wrapper{height:100px;width:100px;background-color:#fff;border-width:0;padding:5px;top:0;left:0}.sky-theme-modern .sky-avatar-image,.sky-theme-modern .sky-avatar-initials{border-radius:50%;height:90px;width:90px}.sky-theme-modern .sky-avatar-initials-inner{color:#212327}.sky-theme-modern .sky-file-drop-accept .sky-avatar-wrapper,.sky-theme-modern .sky-file-drop-reject .sky-avatar-wrapper{border-width:2px;padding:3px}.sky-theme-modern .sky-file-drop-accept .sky-avatar-wrapper-size-medium,.sky-theme-modern .sky-file-drop-reject .sky-avatar-wrapper-size-medium{padding:1px}.sky-theme-modern .sky-file-drop-accept .sky-avatar-wrapper-size-small,.sky-theme-modern .sky-file-drop-reject .sky-avatar-wrapper-size-small{padding:0}.sky-theme-modern .sky-avatar-wrapper-size-medium{padding:3px;height:65px;width:65px}.sky-theme-modern .sky-avatar-wrapper-size-medium .sky-avatar-image,.sky-theme-modern .sky-avatar-wrapper-size-medium .sky-avatar-initials{height:59px;width:59px}.sky-theme-modern .sky-avatar-wrapper-size-small{padding:2px;height:32px;width:32px}.sky-theme-modern .sky-avatar-wrapper-size-small .sky-avatar-image,.sky-theme-modern .sky-avatar-wrapper-size-small .sky-avatar-initials{height:28px;width:28px}.sky-theme-modern sky-file-drop:hover .sky-avatar-wrapper{border:solid 1px #1870B8;padding:4px}.sky-theme-modern sky-file-drop:hover .sky-avatar-wrapper.sky-avatar-wrapper-size-medium{padding:2px}.sky-theme-modern sky-file-drop:hover .sky-avatar-wrapper.sky-avatar-wrapper-size-small{padding:1px}.sky-theme-modern sky-file-drop:active .sky-avatar-wrapper,.sky-theme-modern sky-file-drop:focus-within .sky-avatar-wrapper{border:solid 2px #1870B8;padding:3px}.sky-theme-modern sky-file-drop:active .sky-avatar-wrapper.sky-avatar-wrapper-size-medium,.sky-theme-modern sky-file-drop:focus-within .sky-avatar-wrapper.sky-avatar-wrapper-size-medium{padding:1px}.sky-theme-modern sky-file-drop:active .sky-avatar-wrapper.sky-avatar-wrapper-size-small,.sky-theme-modern sky-file-drop:focus-within .sky-avatar-wrapper.sky-avatar-wrapper-size-small{padding:0}.sky-theme-modern sky-file-drop:focus-within:not(:active) .sky-avatar-wrapper{box-shadow:0 1px 8px #0000004d}.sky-theme-modern.sky-theme-mode-dark .sky-avatar-wrapper{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-avatar-initials-inner{color:#212327}\n"] }]
79
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyAvatarAdapterService }]; }, propDecorators: { src: [{
80
+ type: Input
81
+ }], name: [{
82
+ type: Input
83
+ }], size: [{
84
+ type: Input
85
+ }] } });
86
+ function getInitial(name) {
87
+ return name.charAt(0).toUpperCase();
88
+ }
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmlubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXIuaW5uZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F2YXRhci9zcmMvbGliL21vZHVsZXMvYXZhdGFyL2F2YXRhci5pbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssRUFFTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQUluRTs7R0FFRztBQVFILE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUNXLEdBQUcsQ0FBQyxLQUErQjtRQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFDVyxJQUFJLENBQUMsS0FBeUI7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUtELGdCQUFnQixDQUFTO0lBRXpCLEtBQUssQ0FBMkI7SUFFaEMsTUFBTSxDQUFxQjtJQUUzQixXQUFXLENBQWE7SUFDeEIsUUFBUSxDQUEwQjtJQUVsQyxZQUFZLFVBQXNCLEVBQUUsT0FBZ0M7UUFYN0QsU0FBSSxHQUE4QixPQUFPLENBQUM7UUFFakQscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBVXZCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsSUFBSSxRQUE0QixDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLFFBQVEsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDeEIsUUFBUSxJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3pEO1NBQ0Y7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxVQUFrQixDQUFDO1FBRXZCLElBQUksSUFBSSxFQUFFO1lBQ1IsK0VBQStFO1lBQy9FLDREQUE0RDtZQUM1RCxNQUFNLElBQUksR0FDUixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3RFLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsVUFBVSxHQUFHLENBQUMsQ0FBQztTQUNoQjtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQzs4R0FsRlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsK0ZBSHZCLENBQUMsdUJBQXVCLENBQUMsMEJDcEJ0QyxzakNBMENBOzsyRkRuQmEsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLGtCQUFrQixhQUdqQixDQUFDLHVCQUF1QixDQUFDLGlCQUNyQixpQkFBaUIsQ0FBQyxJQUFJO3VJQVExQixHQUFHO3NCQURiLEtBQUs7Z0JBV0ssSUFBSTtzQkFEZCxLQUFLO2dCQU1DLElBQUk7c0JBRFYsS0FBSzs7QUFpRVIsU0FBUyxVQUFVLENBQUMsSUFBWTtJQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lBdmF0YXJBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vYXZhdGFyLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lBdmF0YXJTaXplIH0gZnJvbSAnLi9hdmF0YXItc2l6ZSc7XG5pbXBvcnQgeyBTa3lBdmF0YXJTcmMgfSBmcm9tICcuL2F2YXRhci1zcmMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYXZhdGFyLWlubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci5pbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F2YXRhci5pbm5lci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTa3lBdmF0YXJBZGFwdGVyU2VydmljZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreUF2YXRhcklubmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGdldCBzcmMoKTogU2t5QXZhdGFyU3JjIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3NyYztcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc3JjKHZhbHVlOiBTa3lBdmF0YXJTcmMgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc3JjID0gdmFsdWU7XG4gICAgdGhpcy4jdXBkYXRlSW1hZ2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfbmFtZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX25hbWUgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaXplOiBTa3lBdmF0YXJTaXplIHwgdW5kZWZpbmVkID0gJ2xhcmdlJztcblxuICAjdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgI19zcmM6IFNreUF2YXRhclNyYyB8IHVuZGVmaW5lZDtcblxuICAjX25hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgI2FkYXB0ZXI6IFNreUF2YXRhckFkYXB0ZXJTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIGFkYXB0ZXI6IFNreUF2YXRhckFkYXB0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy4jZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgdGhpcy4jYWRhcHRlciA9IGFkYXB0ZXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluaXRpYWxzKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGluaXRpYWxzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAodGhpcy5uYW1lKSB7XG4gICAgICBjb25zdCBuYW1lU3BsaXQgPSB0aGlzLm5hbWUuc3BsaXQoJyAnKTtcbiAgICAgIGluaXRpYWxzID0gZ2V0SW5pdGlhbChuYW1lU3BsaXRbMF0pO1xuXG4gICAgICBpZiAobmFtZVNwbGl0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgaW5pdGlhbHMgKz0gZ2V0SW5pdGlhbChuYW1lU3BsaXRbbmFtZVNwbGl0Lmxlbmd0aCAtIDFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaW5pdGlhbHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbG9ySW5kZXgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lO1xuICAgIGxldCBjb2xvckluZGV4OiBudW1iZXI7XG5cbiAgICBpZiAobmFtZSkge1xuICAgICAgLy8gR2VuZXJhdGUgYSB1bmlxdWUtaXNoIGNvbG9yIGJhc2VkIG9uIHRoZSByZWNvcmQgbmFtZS4gIFRoaXMgaXMgZGV0ZXJtaW5pc3RpY1xuICAgICAgLy8gc28gdGhhdCBhIGdpdmVuIG5hbWUgd2lsbCBhbHdheXMgZ2VuZXJhdGUgdGhlIHNhbWUgY29sb3IuXG4gICAgICBjb25zdCBzZWVkID1cbiAgICAgICAgbmFtZS5jaGFyQ29kZUF0KDApICsgbmFtZS5jaGFyQ29kZUF0KG5hbWUubGVuZ3RoIC0gMSkgKyBuYW1lLmxlbmd0aDtcbiAgICAgIGNvbG9ySW5kZXggPSBNYXRoLmFicyhzZWVkICUgNik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbG9ySW5kZXggPSAwO1xuICAgIH1cblxuICAgIHJldHVybiBjb2xvckluZGV4O1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuI3VwZGF0ZUltYWdlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jYWRhcHRlci5kZXN0cm95KCk7XG4gIH1cblxuICAjdXBkYXRlSW1hZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3ZpZXdJbml0aWFsaXplZCAmJiB0aGlzLnNyYykge1xuICAgICAgdGhpcy4jYWRhcHRlci51cGRhdGVJbWFnZSh0aGlzLiNlbGVtZW50UmVmLCB0aGlzLnNyYyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEluaXRpYWwobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LWVsZXZhdGlvbi0xIHNreS1hdmF0YXItd3JhcHBlclwiXG4gIFtuZ0NsYXNzXT1cIidza3ktYXZhdGFyLXdyYXBwZXItc2l6ZS0nICsgc2l6ZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJza3ktYXZhdGFyLWltYWdlXCIgW2hpZGRlbl09XCIhc3JjXCI+PC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzcmNcIiBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICB7eyAnc2t5dXhfYXZhdGFyX2lubmVyX2Rlc2NyaXB0aW9uJyB8IHNreUxpYlJlc291cmNlcyA6IG5hbWUgfX1cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1hdmF0YXItaW5pdGlhbHNcIlxuICAgIFtoaWRkZW5dPVwic3JjIHx8ICFuYW1lXCJcbiAgICBbbmdDbGFzc109XCInc2t5LXBhbGV0dGUtbXVsdGktJyArIChjb2xvckluZGV4ICsgMSlcIlxuICA+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzaXplID09PSAnc21hbGwnXCJcbiAgICAgIGNsYXNzPVwic2t5LWF2YXRhci1pbml0aWFscy1pbm5lclwiXG4gICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICdza3ktZm9udC1ib2R5LXNtJzogJ21vZGVybidcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIHt7IGluaXRpYWxzIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzaXplID09PSAnbWVkaXVtJ1wiXG4gICAgICBjbGFzcz1cInNreS1hdmF0YXItaW5pdGlhbHMtaW5uZXJcIlxuICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LWZvbnQtZGlzcGxheS0zJzogJ21vZGVybidcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIHt7IGluaXRpYWxzIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzaXplID09PSAnbGFyZ2UnXCJcbiAgICAgIGNsYXNzPVwic2t5LWF2YXRhci1pbml0aWFscy1pbm5lclwiXG4gICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICdza3ktZm9udC1kaXNwbGF5LTInOiAnbW9kZXJuJ1xuICAgICAgfVwiXG4gICAgPlxuICAgICAge3sgaW5pdGlhbHMgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -9,21 +9,21 @@ import { SkyAvatarComponent } from './avatar.component';
9
9
  import { SkyAvatarInnerComponent } from './avatar.inner.component';
10
10
  import * as i0 from "@angular/core";
11
11
  export class SkyAvatarModule {
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarModule, declarations: [SkyAvatarInnerComponent, SkyAvatarComponent], imports: [CommonModule,
14
+ SkyAvatarResourcesModule,
15
+ SkyErrorModule,
16
+ SkyFileAttachmentsModule,
17
+ SkyI18nModule,
18
+ SkyThemeModule], exports: [SkyAvatarComponent] }); }
19
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarModule, providers: [SkyFileSizePipe], imports: [CommonModule,
20
+ SkyAvatarResourcesModule,
21
+ SkyErrorModule,
22
+ SkyFileAttachmentsModule,
23
+ SkyI18nModule,
24
+ SkyThemeModule] }); }
12
25
  }
13
- SkyAvatarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- SkyAvatarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyAvatarModule, declarations: [SkyAvatarInnerComponent, SkyAvatarComponent], imports: [CommonModule,
15
- SkyAvatarResourcesModule,
16
- SkyErrorModule,
17
- SkyFileAttachmentsModule,
18
- SkyI18nModule,
19
- SkyThemeModule], exports: [SkyAvatarComponent] });
20
- SkyAvatarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAvatarModule, providers: [SkyFileSizePipe], imports: [CommonModule,
21
- SkyAvatarResourcesModule,
22
- SkyErrorModule,
23
- SkyFileAttachmentsModule,
24
- SkyI18nModule,
25
- SkyThemeModule] });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAvatarModule, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarModule, decorators: [{
27
27
  type: NgModule,
28
28
  args: [{
29
29
  declarations: [SkyAvatarInnerComponent, SkyAvatarComponent],
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
39
39
  exports: [SkyAvatarComponent],
40
40
  }]
41
41
  }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBZW5FLE1BQU0sT0FBTyxlQUFlOzs0R0FBZixlQUFlOzZHQUFmLGVBQWUsaUJBWlgsdUJBQXVCLEVBQUUsa0JBQWtCLGFBRXhELFlBQVk7UUFDWix3QkFBd0I7UUFDeEIsY0FBYztRQUNkLHdCQUF3QjtRQUN4QixhQUFhO1FBQ2IsY0FBYyxhQUdOLGtCQUFrQjs2R0FFakIsZUFBZSxhQUhmLENBQUMsZUFBZSxDQUFDLFlBUDFCLFlBQVk7UUFDWix3QkFBd0I7UUFDeEIsY0FBYztRQUNkLHdCQUF3QjtRQUN4QixhQUFhO1FBQ2IsY0FBYzsyRkFLTCxlQUFlO2tCQWIzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHVCQUF1QixFQUFFLGtCQUFrQixDQUFDO29CQUMzRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLGNBQWM7d0JBQ2Qsd0JBQXdCO3dCQUN4QixhQUFhO3dCQUNiLGNBQWM7cUJBQ2Y7b0JBQ0QsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUVycm9yTW9kdWxlIH0gZnJvbSAnQHNreXV4L2Vycm9ycyc7XG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudHNNb2R1bGUsIFNreUZpbGVTaXplUGlwZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lBdmF0YXJSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWF2YXRhci1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5QXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUF2YXRhcklubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9hdmF0YXIuaW5uZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5QXZhdGFySW5uZXJDb21wb25lbnQsIFNreUF2YXRhckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5QXZhdGFyUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreUVycm9yTW9kdWxlLFxuICAgIFNreUZpbGVBdHRhY2htZW50c01vZHVsZSxcbiAgICBTa3lJMThuTW9kdWxlLFxuICAgIFNreVRoZW1lTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtTa3lGaWxlU2l6ZVBpcGVdLFxuICBleHBvcnRzOiBbU2t5QXZhdGFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QXZhdGFyTW9kdWxlIHt9XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hdmF0YXIvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9hdmF0YXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBZW5FLE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSxpQkFaWCx1QkFBdUIsRUFBRSxrQkFBa0IsYUFFeEQsWUFBWTtZQUNaLHdCQUF3QjtZQUN4QixjQUFjO1lBQ2Qsd0JBQXdCO1lBQ3hCLGFBQWE7WUFDYixjQUFjLGFBR04sa0JBQWtCOytHQUVqQixlQUFlLGFBSGYsQ0FBQyxlQUFlLENBQUMsWUFQMUIsWUFBWTtZQUNaLHdCQUF3QjtZQUN4QixjQUFjO1lBQ2Qsd0JBQXdCO1lBQ3hCLGFBQWE7WUFDYixjQUFjOzsyRkFLTCxlQUFlO2tCQWIzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHVCQUF1QixFQUFFLGtCQUFrQixDQUFDO29CQUMzRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLGNBQWM7d0JBQ2Qsd0JBQXdCO3dCQUN4QixhQUFhO3dCQUNiLGNBQWM7cUJBQ2Y7b0JBQ0QsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUVycm9yTW9kdWxlIH0gZnJvbSAnQHNreXV4L2Vycm9ycyc7XG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudHNNb2R1bGUsIFNreUZpbGVTaXplUGlwZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lBdmF0YXJSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWF2YXRhci1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5QXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUF2YXRhcklubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9hdmF0YXIuaW5uZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5QXZhdGFySW5uZXJDb21wb25lbnQsIFNreUF2YXRhckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5QXZhdGFyUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreUVycm9yTW9kdWxlLFxuICAgIFNreUZpbGVBdHRhY2htZW50c01vZHVsZSxcbiAgICBTa3lJMThuTW9kdWxlLFxuICAgIFNreVRoZW1lTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtTa3lGaWxlU2l6ZVBpcGVdLFxuICBleHBvcnRzOiBbU2t5QXZhdGFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QXZhdGFyTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,62 @@
1
+ /**
2
+ * NOTICE: DO NOT MODIFY THIS FILE!
3
+ * The contents of this file were automatically generated by
4
+ * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-avatar' schematic.
5
+ * To update this file, simply rerun the command.
6
+ */
7
+ import { NgModule } from '@angular/core';
8
+ import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
9
+ import * as i0 from "@angular/core";
10
+ const RESOURCES = {
11
+ 'EN-US': {
12
+ skyux_avatar_error_not_image_description: {
13
+ message: 'Please choose a file that is a valid image.',
14
+ },
15
+ skyux_avatar_error_not_image_title: { message: 'File is not an image.' },
16
+ skyux_avatar_error_too_large_description: {
17
+ message: 'Please choose an image that is less than {0}.',
18
+ },
19
+ skyux_avatar_error_too_large_title: { message: 'File is too large.' },
20
+ skyux_avatar_errormodal_ok: { message: 'OK' },
21
+ skyux_avatar_inner_description: { message: 'Profile picture of {0}' },
22
+ skyux_avatar_upload_change_aria_label: {
23
+ message: 'Change profile photo of {0}. Drag a file here or click to browse.',
24
+ },
25
+ skyux_avatar_upload_new_aria_label: {
26
+ message: 'Add profile photo of {0}. Drag a file here or click to browse.',
27
+ },
28
+ },
29
+ };
30
+ export class SkyAvatarResourcesProvider {
31
+ getString(localeInfo, name) {
32
+ return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
33
+ }
34
+ }
35
+ /**
36
+ * Import into any component library module that needs to use resource strings.
37
+ */
38
+ export class SkyAvatarResourcesModule {
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
40
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarResourcesModule, exports: [SkyI18nModule] }); }
41
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarResourcesModule, providers: [
42
+ {
43
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
44
+ useClass: SkyAvatarResourcesProvider,
45
+ multi: true,
46
+ },
47
+ ], imports: [SkyI18nModule] }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAvatarResourcesModule, decorators: [{
50
+ type: NgModule,
51
+ args: [{
52
+ exports: [SkyI18nModule],
53
+ providers: [
54
+ {
55
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
56
+ useClass: SkyAvatarResourcesProvider,
57
+ multi: true,
58
+ },
59
+ ],
60
+ }]
61
+ }] });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWF2YXRhci1yZXNvdXJjZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F2YXRhci9zcmMvbGliL21vZHVsZXMvc2hhcmVkL3NreS1hdmF0YXItcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1Asd0NBQXdDLEVBQUU7WUFDeEMsT0FBTyxFQUFFLDZDQUE2QztTQUN2RDtRQUNELGtDQUFrQyxFQUFFLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFO1FBQ3hFLHdDQUF3QyxFQUFFO1lBQ3hDLE9BQU8sRUFBRSwrQ0FBK0M7U0FDekQ7UUFDRCxrQ0FBa0MsRUFBRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRTtRQUNyRSwwQkFBMEIsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7UUFDN0MsOEJBQThCLEVBQUUsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7UUFDckUscUNBQXFDLEVBQUU7WUFDckMsT0FBTyxFQUNMLG1FQUFtRTtTQUN0RTtRQUNELGtDQUFrQyxFQUFFO1lBQ2xDLE9BQU8sRUFBRSxnRUFBZ0U7U0FDMUU7S0FDRjtDQUNGLENBQUM7QUFFRixNQUFNLE9BQU8sMEJBQTBCO0lBQzlCLFNBQVMsQ0FDZCxVQUE0QixFQUM1QixJQUFZO1FBRVosT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQVdILE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjsrR0FBeEIsd0JBQXdCLFlBVHpCLGFBQWE7K0dBU1osd0JBQXdCLGFBUnhCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLFlBUFMsYUFBYTs7MkZBU1osd0JBQXdCO2tCQVZwQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFFBQVEsRUFBRSwwQkFBMEI7NEJBQ3BDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktYXZhdGFyJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gIFNreUFwcExvY2FsZUluZm8sXG4gIFNreUkxOG5Nb2R1bGUsXG4gIFNreUxpYlJlc291cmNlcyxcbiAgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIsXG4gIGdldExpYlN0cmluZ0ZvckxvY2FsZSxcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5jb25zdCBSRVNPVVJDRVM6IHsgW2xvY2FsZTogc3RyaW5nXTogU2t5TGliUmVzb3VyY2VzIH0gPSB7XG4gICdFTi1VUyc6IHtcbiAgICBza3l1eF9hdmF0YXJfZXJyb3Jfbm90X2ltYWdlX2Rlc2NyaXB0aW9uOiB7XG4gICAgICBtZXNzYWdlOiAnUGxlYXNlIGNob29zZSBhIGZpbGUgdGhhdCBpcyBhIHZhbGlkIGltYWdlLicsXG4gICAgfSxcbiAgICBza3l1eF9hdmF0YXJfZXJyb3Jfbm90X2ltYWdlX3RpdGxlOiB7IG1lc3NhZ2U6ICdGaWxlIGlzIG5vdCBhbiBpbWFnZS4nIH0sXG4gICAgc2t5dXhfYXZhdGFyX2Vycm9yX3Rvb19sYXJnZV9kZXNjcmlwdGlvbjoge1xuICAgICAgbWVzc2FnZTogJ1BsZWFzZSBjaG9vc2UgYW4gaW1hZ2UgdGhhdCBpcyBsZXNzIHRoYW4gezB9LicsXG4gICAgfSxcbiAgICBza3l1eF9hdmF0YXJfZXJyb3JfdG9vX2xhcmdlX3RpdGxlOiB7IG1lc3NhZ2U6ICdGaWxlIGlzIHRvbyBsYXJnZS4nIH0sXG4gICAgc2t5dXhfYXZhdGFyX2Vycm9ybW9kYWxfb2s6IHsgbWVzc2FnZTogJ09LJyB9LFxuICAgIHNreXV4X2F2YXRhcl9pbm5lcl9kZXNjcmlwdGlvbjogeyBtZXNzYWdlOiAnUHJvZmlsZSBwaWN0dXJlIG9mIHswfScgfSxcbiAgICBza3l1eF9hdmF0YXJfdXBsb2FkX2NoYW5nZV9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOlxuICAgICAgICAnQ2hhbmdlIHByb2ZpbGUgcGhvdG8gb2YgezB9LiBEcmFnIGEgZmlsZSBoZXJlIG9yIGNsaWNrIHRvIGJyb3dzZS4nLFxuICAgIH0sXG4gICAgc2t5dXhfYXZhdGFyX3VwbG9hZF9uZXdfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0FkZCBwcm9maWxlIHBob3RvIG9mIHswfS4gRHJhZyBhIGZpbGUgaGVyZSBvciBjbGljayB0byBicm93c2UuJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNsYXNzIFNreUF2YXRhclJlc291cmNlc1Byb3ZpZGVyIGltcGxlbWVudHMgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIge1xuICBwdWJsaWMgZ2V0U3RyaW5nKFxuICAgIGxvY2FsZUluZm86IFNreUFwcExvY2FsZUluZm8sXG4gICAgbmFtZTogc3RyaW5nXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGdldExpYlN0cmluZ0ZvckxvY2FsZShSRVNPVVJDRVMsIGxvY2FsZUluZm8ubG9jYWxlLCBuYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcG9ydCBpbnRvIGFueSBjb21wb25lbnQgbGlicmFyeSBtb2R1bGUgdGhhdCBuZWVkcyB0byB1c2UgcmVzb3VyY2Ugc3RyaW5ncy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1NreUkxOG5Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gICAgICB1c2VDbGFzczogU2t5QXZhdGFyUmVzb3VyY2VzUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBdmF0YXJSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,33 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWZpeHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXZhdGFyL3Rlc3Rpbmcvc3JjL2F2YXRhci1maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1FBRXZFLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzNDLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUM5QixVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUN2RCxDQUFDO1NBQ0g7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFFakUsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN6RDtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRLENBQWU7SUFFdkIsWUFBWSxPQUE4QixFQUFFLFNBQWlCO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsdUJBQXVCLENBQ3ZELE9BQU8sRUFDUCxTQUFTLEVBQ1QsWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWJ1Z0VsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudEZpeHR1cmUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgQnkgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFNreUFwcFRlc3RVdGlsaXR5IH0gZnJvbSAnQHNreXV4LXNkay90ZXN0aW5nJztcblxuLyoqXG4gKiBBbGxvd3MgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBhdmF0YXIgY29tcG9uZW50LlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lBdmF0YXJGaXh0dXJlIHtcbiAgLyoqXG4gICAqIFRoZSBpbml0aWFscyBkaXNwbGF5ZWQgd2hlbiBubyBpbWFnZSBVUkwgaXMgc3BlY2lmaWVkLlxuICAgKi9cbiAgcHVibGljIGdldCBpbml0aWFscygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGluaXRpYWxzRWwgPSB0aGlzLiNkZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnLnNreS1hdmF0YXItaW5pdGlhbHMnKSk7XG5cbiAgICBpZiAoU2t5QXBwVGVzdFV0aWxpdHkuaXNWaXNpYmxlKGluaXRpYWxzRWwpKSB7XG4gICAgICByZXR1cm4gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0VGV4dChcbiAgICAgICAgaW5pdGlhbHNFbC5xdWVyeShCeS5jc3MoJy5za3ktYXZhdGFyLWluaXRpYWxzLWlubmVyJykpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGF2YXRhcidzIGN1cnJlbnQgaW1hZ2UgVVJMLlxuICAgKi9cbiAgcHVibGljIGdldCBpbWFnZVVybCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGltYWdlRWwgPSB0aGlzLiNkZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnLnNreS1hdmF0YXItaW1hZ2UnKSk7XG5cbiAgICBpZiAoU2t5QXBwVGVzdFV0aWxpdHkuaXNWaXNpYmxlKGltYWdlRWwpKSB7XG4gICAgICByZXR1cm4gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0QmFja2dyb3VuZEltYWdlVXJsKGltYWdlRWwpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAjZGVidWdFbDogRGVidWdFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8YW55Piwgc2t5VGVzdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNkZWJ1Z0VsID0gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0RGVidWdFbGVtZW50QnlUZXN0SWQoXG4gICAgICBmaXh0dXJlLFxuICAgICAgc2t5VGVzdElkLFxuICAgICAgJ3NreS1hdmF0YXInXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,8 +1,6 @@
1
- import { __classPrivateFieldGet, __classPrivateFieldSet } from 'tslib';
2
1
  import { By } from '@angular/platform-browser';
3
2
  import { SkyAppTestUtility } from '@skyux-sdk/testing';
4
3
 
5
- var _SkyAvatarFixture_debugEl;
6
4
  /**
7
5
  * Allows interaction with a SKY UX avatar component.
8
6
  * @internal
@@ -12,7 +10,7 @@ class SkyAvatarFixture {
12
10
  * The initials displayed when no image URL is specified.
13
11
  */
14
12
  get initials() {
15
- const initialsEl = __classPrivateFieldGet(this, _SkyAvatarFixture_debugEl, "f").query(By.css('.sky-avatar-initials'));
13
+ const initialsEl = this.#debugEl.query(By.css('.sky-avatar-initials'));
16
14
  if (SkyAppTestUtility.isVisible(initialsEl)) {
17
15
  return SkyAppTestUtility.getText(initialsEl.query(By.css('.sky-avatar-initials-inner')));
18
16
  }
@@ -22,18 +20,17 @@ class SkyAvatarFixture {
22
20
  * The avatar's current image URL.
23
21
  */
24
22
  get imageUrl() {
25
- const imageEl = __classPrivateFieldGet(this, _SkyAvatarFixture_debugEl, "f").query(By.css('.sky-avatar-image'));
23
+ const imageEl = this.#debugEl.query(By.css('.sky-avatar-image'));
26
24
  if (SkyAppTestUtility.isVisible(imageEl)) {
27
25
  return SkyAppTestUtility.getBackgroundImageUrl(imageEl);
28
26
  }
29
27
  return undefined;
30
28
  }
29
+ #debugEl;
31
30
  constructor(fixture, skyTestId) {
32
- _SkyAvatarFixture_debugEl.set(this, void 0);
33
- __classPrivateFieldSet(this, _SkyAvatarFixture_debugEl, SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-avatar'), "f");
31
+ this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-avatar');
34
32
  }
35
33
  }
36
- _SkyAvatarFixture_debugEl = new WeakMap();
37
34
 
38
35
  /**
39
36
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-avatar-testing.mjs","sources":["../../../../../libs/components/avatar/testing/src/avatar-fixture.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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAKA;;;AAGG;MACU,gBAAgB,CAAA;AAC3B;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;QACjB,MAAM,UAAU,GAAG,sBAAA,CAAA,IAAI,iCAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAEvE,QAAA,IAAI,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;AAC3C,YAAA,OAAO,iBAAiB,CAAC,OAAO,CAC9B,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CACvD,CAAC;AACH,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;AAED;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;QACjB,MAAM,OAAO,GAAG,sBAAA,CAAA,IAAI,iCAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAEjE,QAAA,IAAI,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;AACxC,YAAA,OAAO,iBAAiB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACzD,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;IAID,WAAY,CAAA,OAA8B,EAAE,SAAiB,EAAA;QAF7D,yBAAuB,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGrB,QAAA,sBAAA,CAAA,IAAI,EAAA,yBAAA,EAAY,iBAAiB,CAAC,uBAAuB,CACvD,OAAO,EACP,SAAS,EACT,YAAY,CACb,MAAA,CAAC;KACH;AACF,CAAA;;;AC/CD;;AAEG;;;;"}
1
+ {"version":3,"file":"skyux-avatar-testing.mjs","sources":["../../../../../libs/components/avatar/testing/src/avatar-fixture.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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAKA;;;AAGG;MACU,gBAAgB,CAAA;AAC3B;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAEvE,QAAA,IAAI,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;AAC3C,YAAA,OAAO,iBAAiB,CAAC,OAAO,CAC9B,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CACvD,CAAC;AACH,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;AAED;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAEjE,QAAA,IAAI,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;AACxC,YAAA,OAAO,iBAAiB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACzD,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,QAAQ,CAAe;IAEvB,WAAY,CAAA,OAA8B,EAAE,SAAiB,EAAA;AAC3D,QAAA,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,uBAAuB,CACvD,OAAO,EACP,SAAS,EACT,YAAY,CACb,CAAC;KACH;AACF;;AC/CD;;AAEG;;;;"}