@skyux/avatar 5.0.0 → 5.0.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.
@@ -54,9 +54,9 @@ class SkyAvatarAdapterService {
54
54
  }
55
55
  }
56
56
  }
57
- SkyAvatarAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
58
- SkyAvatarAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarAdapterService });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarAdapterService, decorators: [{
57
+ SkyAvatarAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
58
+ SkyAvatarAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarAdapterService });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarAdapterService, decorators: [{
60
60
  type: Injectable
61
61
  }] });
62
62
 
@@ -119,16 +119,16 @@ class SkyAvatarInnerComponent {
119
119
  }
120
120
  }
121
121
  }
122
- SkyAvatarInnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarInnerComponent, deps: [{ token: i0.ElementRef }, { token: SkyAvatarAdapterService }], target: i0.ɵɵFactoryTarget.Component });
123
- SkyAvatarInnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.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 || 'large')\"\n>\n <div\n class=\"sky-avatar-image\"\n [hidden]=\"!src\"\n ></div>\n <div *ngIf=\"src\"\n class=\"sky-screen-reader-only\"\n >\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 *ngIf=\"size === 'small'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-body-sm': 'modern'\n }\"\n >{{ initials }}</div>\n <div *ngIf=\"size === 'medium'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern'\n }\"\n >{{ initials }}</div>\n <div *ngIf=\"size !== 'small' && size !== 'medium'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-display-2': 'modern'\n }\"\n >{{ initials }}</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;-moz-user-select:none;-ms-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"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }], pipes: { "skyLibResources": i3$1.SkyLibResourcesPipe }, encapsulation: i0.ViewEncapsulation.None });
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarInnerComponent, decorators: [{
122
+ SkyAvatarInnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarInnerComponent, deps: [{ token: i0.ElementRef }, { token: SkyAvatarAdapterService }], target: i0.ɵɵFactoryTarget.Component });
123
+ SkyAvatarInnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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 || 'large')\"\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 !== 'small' && size !== 'medium'\"\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"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }], pipes: { "skyLibResources": i3$1.SkyLibResourcesPipe }, encapsulation: i0.ViewEncapsulation.None });
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarInnerComponent, decorators: [{
125
125
  type: Component,
126
126
  args: [{
127
127
  selector: 'sky-avatar-inner',
128
128
  templateUrl: './avatar.inner.component.html',
129
129
  styleUrls: ['./avatar.inner.component.scss'],
130
130
  providers: [SkyAvatarAdapterService],
131
- encapsulation: ViewEncapsulation.None
131
+ encapsulation: ViewEncapsulation.None,
132
132
  }]
133
133
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SkyAvatarAdapterService }]; }, propDecorators: { src: [{
134
134
  type: Input
@@ -226,7 +226,7 @@ class SkyAvatarComponent {
226
226
  const config = {
227
227
  errorTitle: title,
228
228
  errorDescription: description,
229
- errorCloseText: this.getString('skyux_avatar_errormodal_ok')
229
+ errorCloseText: this.getString('skyux_avatar_errormodal_ok'),
230
230
  };
231
231
  this.errorService.open(config);
232
232
  }
@@ -235,15 +235,15 @@ class SkyAvatarComponent {
235
235
  return this.resourcesService.getStringForLocale({ locale: 'en-US' }, key, ...args);
236
236
  }
237
237
  }
238
- SkyAvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarComponent, deps: [{ token: i1.SkyErrorModalService }, { token: i2$1.SkyFileSizePipe }, { token: i3$1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Component });
239
- SkyAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: SkyAvatarComponent, selector: "sky-avatar", inputs: { canChange: "canChange", name: "name", src: "src", maxFileSize: "maxFileSize", size: "size" }, outputs: { avatarChanged: "avatarChanged" }, ngImport: i0, template: "<div\n class=\"sky-avatar\"\n>\n <div *ngIf=\"canChange\">\n <div\n class=\"sky-avatar-file-drop\"\n >\n <sky-file-drop\n [acceptedTypes]=\"'image/*'\"\n [fileUploadAriaLabel]=\"src ? ('skyux_avatar_upload_change_aria_label' | skyLibResources:name) : ('skyux_avatar_upload_new_aria_label' | skyLibResources:name)\"\n [multiple]=\"false\"\n [maxFileSize]=\"maxFileSize\"\n [multiple]=\"false\"\n (filesChanged)=\"photoDrop($event)\"\n >\n <ng-container\n *ngTemplateOutlet=\"innerTemplate\"\n ></ng-container>\n </sky-file-drop>\n </div>\n </div>\n <div *ngIf=\"!canChange\">\n <ng-container\n *ngTemplateOutlet=\"innerTemplate\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template #innerTemplate>\n <sky-avatar-inner\n [name]=\"name\"\n [size]=\"size\"\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"], components: [{ type: i2$1.λ8, selector: "sky-file-drop", inputs: ["fileUploadAriaLabel", "linkUploadAriaLabel", "minFileSize", "maxFileSize", "multiple", "validateFn", "acceptedTypes", "noClick", "allowLinks"], outputs: ["filesChanged", "linkInputBlur", "linkChanged"] }, { type: SkyAvatarInnerComponent, selector: "sky-avatar-inner", inputs: ["src", "name", "size"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyLibResources": i3$1.SkyLibResourcesPipe }, encapsulation: i0.ViewEncapsulation.None });
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarComponent, decorators: [{
238
+ SkyAvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarComponent, deps: [{ token: i1.SkyErrorModalService }, { token: i2$1.SkyFileSizePipe }, { token: i3$1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Component });
239
+ SkyAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", 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"], components: [{ type: i2$1.λ8, selector: "sky-file-drop", inputs: ["fileUploadAriaLabel", "linkUploadAriaLabel", "minFileSize", "maxFileSize", "multiple", "validateFn", "acceptedTypes", "noClick", "allowLinks"], outputs: ["filesChanged", "linkInputBlur", "linkChanged"] }, { type: SkyAvatarInnerComponent, selector: "sky-avatar-inner", inputs: ["src", "name", "size"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "skyLibResources": i3$1.SkyLibResourcesPipe }, encapsulation: i0.ViewEncapsulation.None });
240
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarComponent, decorators: [{
241
241
  type: Component,
242
242
  args: [{
243
243
  selector: 'sky-avatar',
244
244
  templateUrl: './avatar.component.html',
245
245
  styleUrls: ['./avatar.component.scss'],
246
- encapsulation: ViewEncapsulation.None
246
+ encapsulation: ViewEncapsulation.None,
247
247
  }]
248
248
  }], ctorParameters: function () { return [{ type: i1.SkyErrorModalService }, { type: i2$1.SkyFileSizePipe }, { type: i3$1.SkyLibResourcesService }]; }, propDecorators: { canChange: [{
249
249
  type: Input
@@ -266,7 +266,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
266
266
  * To update this file, simply rerun the command.
267
267
  */
268
268
  const RESOURCES = {
269
- 'EN-US': { "skyux_avatar_error_not_image_description": { "message": "Please choose a file that is a valid image." }, "skyux_avatar_error_not_image_title": { "message": "File is not an image." }, "skyux_avatar_error_too_large_description": { "message": "Please choose an image that is less than {0}." }, "skyux_avatar_error_too_large_title": { "message": "File is too large." }, "skyux_avatar_errormodal_ok": { "message": "OK" }, "skyux_avatar_inner_description": { "message": "Profile picture of {0}" }, "skyux_avatar_upload_change_aria_label": { "message": "Change profile photo of {0}. Drag a file here or click to browse." }, "skyux_avatar_upload_new_aria_label": { "message": "Add profile photo of {0}. Drag a file here or click to browse." } },
269
+ 'EN-US': {
270
+ skyux_avatar_error_not_image_description: {
271
+ message: 'Please choose a file that is a valid image.',
272
+ },
273
+ skyux_avatar_error_not_image_title: { message: 'File is not an image.' },
274
+ skyux_avatar_error_too_large_description: {
275
+ message: 'Please choose an image that is less than {0}.',
276
+ },
277
+ skyux_avatar_error_too_large_title: { message: 'File is too large.' },
278
+ skyux_avatar_errormodal_ok: { message: 'OK' },
279
+ skyux_avatar_inner_description: { message: 'Profile picture of {0}' },
280
+ skyux_avatar_upload_change_aria_label: {
281
+ message: 'Change profile photo of {0}. Drag a file here or click to browse.',
282
+ },
283
+ skyux_avatar_upload_new_aria_label: {
284
+ message: 'Add profile photo of {0}. Drag a file here or click to browse.',
285
+ },
286
+ },
270
287
  };
271
288
  class SkyAvatarResourcesProvider {
272
289
  getString(localeInfo, name) {
@@ -278,66 +295,60 @@ class SkyAvatarResourcesProvider {
278
295
  */
279
296
  class SkyAvatarResourcesModule {
280
297
  }
281
- SkyAvatarResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
282
- SkyAvatarResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarResourcesModule, exports: [SkyI18nModule] });
283
- SkyAvatarResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarResourcesModule, providers: [{
298
+ SkyAvatarResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
299
+ SkyAvatarResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarResourcesModule, exports: [SkyI18nModule] });
300
+ SkyAvatarResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarResourcesModule, providers: [
301
+ {
284
302
  provide: SKY_LIB_RESOURCES_PROVIDERS,
285
303
  useClass: SkyAvatarResourcesProvider,
286
- multi: true
287
- }], imports: [SkyI18nModule] });
288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarResourcesModule, decorators: [{
304
+ multi: true,
305
+ },
306
+ ], imports: [SkyI18nModule] });
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarResourcesModule, decorators: [{
289
308
  type: NgModule,
290
309
  args: [{
291
310
  exports: [SkyI18nModule],
292
- providers: [{
311
+ providers: [
312
+ {
293
313
  provide: SKY_LIB_RESOURCES_PROVIDERS,
294
314
  useClass: SkyAvatarResourcesProvider,
295
- multi: true
296
- }]
315
+ multi: true,
316
+ },
317
+ ],
297
318
  }]
298
319
  }] });
299
320
 
300
321
  class SkyAvatarModule {
301
322
  }
302
- SkyAvatarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
303
- SkyAvatarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarModule, declarations: [SkyAvatarInnerComponent,
304
- SkyAvatarComponent], imports: [CommonModule,
323
+ SkyAvatarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
324
+ SkyAvatarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarModule, declarations: [SkyAvatarInnerComponent, SkyAvatarComponent], imports: [CommonModule,
305
325
  SkyAvatarResourcesModule,
306
326
  SkyErrorModule,
307
327
  SkyFileAttachmentsModule,
308
328
  SkyI18nModule,
309
329
  SkyThemeModule], exports: [SkyAvatarComponent] });
310
- SkyAvatarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarModule, providers: [
311
- SkyFileSizePipe
312
- ], imports: [[
330
+ SkyAvatarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarModule, providers: [SkyFileSizePipe], imports: [[
313
331
  CommonModule,
314
332
  SkyAvatarResourcesModule,
315
333
  SkyErrorModule,
316
334
  SkyFileAttachmentsModule,
317
335
  SkyI18nModule,
318
- SkyThemeModule
336
+ SkyThemeModule,
319
337
  ]] });
320
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SkyAvatarModule, decorators: [{
338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyAvatarModule, decorators: [{
321
339
  type: NgModule,
322
340
  args: [{
323
- declarations: [
324
- SkyAvatarInnerComponent,
325
- SkyAvatarComponent
326
- ],
341
+ declarations: [SkyAvatarInnerComponent, SkyAvatarComponent],
327
342
  imports: [
328
343
  CommonModule,
329
344
  SkyAvatarResourcesModule,
330
345
  SkyErrorModule,
331
346
  SkyFileAttachmentsModule,
332
347
  SkyI18nModule,
333
- SkyThemeModule
334
- ],
335
- providers: [
336
- SkyFileSizePipe
348
+ SkyThemeModule,
337
349
  ],
338
- exports: [
339
- SkyAvatarComponent
340
- ]
350
+ providers: [SkyFileSizePipe],
351
+ exports: [SkyAvatarComponent],
341
352
  }]
342
353
  }] });
343
354
 
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-avatar.js","sources":["../../../projects/avatar/src/modules/avatar/avatar-adapter.service.ts","../../../projects/avatar/src/modules/avatar/avatar.inner.component.ts","../../../projects/avatar/src/modules/avatar/avatar.inner.component.html","../../../projects/avatar/src/modules/avatar/avatar.component.ts","../../../projects/avatar/src/modules/avatar/avatar.component.html","../../../projects/avatar/src/modules/shared/sky-avatar-resources.module.ts","../../../projects/avatar/src/modules/avatar/avatar.module.ts","../../../projects/avatar/src/skyux-avatar.ts"],"sourcesContent":["import { ElementRef, Injectable } from '@angular/core';\n\nimport { SkyAvatarSrc } from './avatar-src';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyAvatarAdapterService {\n private blobUrl: string;\n\n public updateImage(elementRef: ElementRef, src: SkyAvatarSrc) {\n this.revokeBlobUrl();\n\n let el = elementRef.nativeElement;\n\n /*istanbul ignore else */\n if (el) {\n let imageEl = el.querySelector('.sky-avatar-image');\n\n /*istanbul ignore else */\n if (imageEl) {\n let url: string;\n\n if (src) {\n if (src instanceof File || src instanceof Blob) {\n url = this.createBlobUrl(src);\n } else {\n url = src;\n }\n }\n\n // Notice the quotes inside the `url` function. This ensures proper url escaping.\n imageEl.style.backgroundImage = url ? 'url(\"' + url + '\")' : '';\n }\n }\n }\n\n public destroy() {\n this.revokeBlobUrl();\n }\n\n private createBlobUrl(src: Blob | File) {\n let url = URL.createObjectURL(src);\n\n // Keep the last blob URL around so we can revoke it later.\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n this.blobUrl = url;\n return url;\n }\n\n private revokeBlobUrl() {\n if (this.blobUrl) {\n URL.revokeObjectURL(this.blobUrl);\n this.blobUrl = undefined;\n }\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {\n SkyAvatarAdapterService\n} from './avatar-adapter.service';\n\nimport {\n SkyAvatarSize\n} from './avatar-size';\n\nimport {\n SkyAvatarSrc\n} from './avatar-src';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-avatar-inner',\n templateUrl: './avatar.inner.component.html',\n styleUrls: ['./avatar.inner.component.scss'],\n providers: [SkyAvatarAdapterService],\n encapsulation: ViewEncapsulation.None\n})\nexport class SkyAvatarInnerComponent implements AfterViewInit, OnDestroy {\n public get src(): SkyAvatarSrc {\n return this._src;\n }\n\n @Input()\n public set src(value: SkyAvatarSrc) {\n this._src = value;\n this.updateImage();\n }\n\n public get name(): string {\n return this._name;\n }\n\n @Input()\n public set name(value: string) {\n this._name = value;\n }\n\n @Input()\n public size: SkyAvatarSize;\n\n private viewInitialized: boolean;\n\n private _src: SkyAvatarSrc;\n\n private _name: string;\n\n constructor(\n private elementRef: ElementRef,\n private adapter: SkyAvatarAdapterService\n ) { }\n\n public get initials(): string {\n let initials: string;\n\n if (this.name) {\n let nameSplit = this.name.split(' ');\n initials = getInitial(nameSplit[0]);\n\n if (nameSplit.length > 1) {\n initials += getInitial(nameSplit[nameSplit.length - 1]);\n }\n }\n\n return initials;\n }\n\n public get colorIndex(): number {\n let name = this.name;\n let colorIndex: number;\n\n if (name) {\n // Generate a unique-ish color based on the record name. This is deterministic\n // so that a given name will always generate the same color.\n let seed = name.charCodeAt(0) + name.charCodeAt(name.length - 1) + name.length;\n colorIndex = Math.abs(seed % 6);\n } else {\n colorIndex = 0;\n }\n\n return colorIndex;\n }\n\n public ngAfterViewInit() {\n this.viewInitialized = true;\n this.updateImage();\n }\n\n public ngOnDestroy() {\n this.adapter.destroy();\n }\n\n private updateImage() {\n if (this.viewInitialized) {\n this.adapter.updateImage(this.elementRef, this.src);\n }\n }\n}\n\nfunction getInitial(name: string): string {\n return name.charAt(0).toUpperCase();\n}\n","<div\n class=\"sky-elevation-1 sky-avatar-wrapper\"\n [ngClass]=\"'sky-avatar-wrapper-size-' + (size || 'large')\"\n>\n <div\n class=\"sky-avatar-image\"\n [hidden]=\"!src\"\n ></div>\n <div *ngIf=\"src\"\n class=\"sky-screen-reader-only\"\n >\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 *ngIf=\"size === 'small'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-body-sm': 'modern'\n }\"\n >{{ initials }}</div>\n <div *ngIf=\"size === 'medium'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern'\n }\"\n >{{ initials }}</div>\n <div *ngIf=\"size !== 'small' && size !== 'medium'\"\n class=\"sky-avatar-initials-inner\"\n [skyThemeClass]=\"{\n 'sky-font-display-2': 'modern'\n }\"\n >{{ initials }}</div>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {\n ErrorModalConfig,\n SkyErrorModalService\n} from '@skyux/errors';\n\nimport {\n SkyFileDropChange,\n SkyFileItem,\n SkyFileSizePipe\n} from '@skyux/forms';\n\nimport {\n SkyLibResourcesService\n} from '@skyux/i18n';\n\nimport {\n SkyAvatarSize\n} from './avatar-size';\n\nimport {\n SkyAvatarSrc\n} from './avatar-src';\n\n@Component({\n selector: 'sky-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SkyAvatarComponent {\n\n /**\n * Indicates whether users can change the image. To select a different image,\n * users click the image or drag another image on top of it,\n * much like the `sky-file-drop` component in the\n * [file attachment module](https://developer.blackbaud.com/skyux/components/file-attachments/file-attachment).\n * @default false\n */\n @Input()\n public set canChange(value: boolean) {\n this._canChange = value;\n }\n\n public get canChange(): boolean {\n return this._canChange;\n }\n\n /**\n * Specifies the name of the record that the avatar represents.\n * If the `src` property does not specify an image, the component displays\n * initials from the first and last words in the name. To ensure\n * that the component extracts the correct initials, specify a name with no prefix\n * or suffix, or just specify initials with a space between them. This property is\n * not required, but the component requires either the `name` or `src` property.\n */\n @Input()\n public set name(value: string) {\n this._name = value;\n }\n\n public get name(): string {\n return this._name;\n }\n\n /**\n * Specifies an image to display to identify a record. This property is\n * not required, but the component requires either the `name` or `src` property.\n */\n @Input()\n public set src(value: SkyAvatarSrc) {\n this._src = value;\n }\n\n public get src(): SkyAvatarSrc {\n return this._src;\n }\n\n /**\n * Specifies the maximum file size for the image in bytes.\n */\n @Input()\n public maxFileSize = 500000;\n\n /**\n * Specifies the size of the avatar.\n */\n @Input()\n public size: SkyAvatarSize = 'large';\n\n /**\n * Emits a `SkyFileItem` object when the image is updated.\n */\n @Output()\n public avatarChanged = new EventEmitter<SkyFileItem>();\n\n private _canChange: boolean;\n\n private _name: string;\n\n private _src: SkyAvatarSrc;\n\n constructor(\n private errorService: SkyErrorModalService,\n private fileSizePipe: SkyFileSizePipe,\n private resourcesService: SkyLibResourcesService\n ) { }\n\n public photoDrop(result: SkyFileDropChange): void {\n /* sanity check */\n /* istanbul ignore else */\n if (result.files && result.files.length > 0) {\n this.avatarChanged.emit(result.files[0]);\n } else if (result.rejectedFiles && result.rejectedFiles.length > 0) {\n this.handleError(result.rejectedFiles);\n }\n }\n\n private handleError(rejectedFiles: Array<SkyFileItem>): void {\n const rejectedFile = rejectedFiles[0];\n\n if (rejectedFile.errorType === 'maxFileSize') {\n const title = this.getString('skyux_avatar_error_too_large_title');\n const description = this.getString(\n 'skyux_avatar_error_too_large_description',\n this.maxFileSizeText()\n );\n\n this.openErrorModal(title, description);\n\n } else if (rejectedFile.errorType === 'fileType') {\n const title = this.getString('skyux_avatar_error_not_image_title');\n const description = this.getString('skyux_avatar_error_not_image_description');\n\n this.openErrorModal(title, description);\n }\n }\n\n private maxFileSizeText(): string {\n return this.fileSizePipe.transform(this.maxFileSize);\n }\n\n private openErrorModal(title: string, description: string): void {\n const config: ErrorModalConfig = {\n errorTitle: title,\n errorDescription: description,\n errorCloseText: this.getString('skyux_avatar_errormodal_ok')\n };\n\n this.errorService.open(config);\n }\n\n private getString(key: string, ...args: any[]): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.resourcesService.getStringForLocale(\n { locale: 'en-US' },\n key,\n ...args\n );\n }\n}\n","<div\n class=\"sky-avatar\"\n>\n <div *ngIf=\"canChange\">\n <div\n class=\"sky-avatar-file-drop\"\n >\n <sky-file-drop\n [acceptedTypes]=\"'image/*'\"\n [fileUploadAriaLabel]=\"src ? ('skyux_avatar_upload_change_aria_label' | skyLibResources:name) : ('skyux_avatar_upload_new_aria_label' | skyLibResources:name)\"\n [multiple]=\"false\"\n [maxFileSize]=\"maxFileSize\"\n [multiple]=\"false\"\n (filesChanged)=\"photoDrop($event)\"\n >\n <ng-container\n *ngTemplateOutlet=\"innerTemplate\"\n ></ng-container>\n </sky-file-drop>\n </div>\n </div>\n <div *ngIf=\"!canChange\">\n <ng-container\n *ngTemplateOutlet=\"innerTemplate\"\n ></ng-container>\n </div>\n</div>\n\n<ng-template #innerTemplate>\n <sky-avatar-inner\n [name]=\"name\"\n [size]=\"size\"\n [src]=\"src\"\n ></sky-avatar-inner>\n</ng-template>\n","/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-avatar' schematic.\n * To update this file, simply rerun the command.\n */\n\nimport { NgModule } from '@angular/core';\nimport {\n getLibStringForLocale,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SKY_LIB_RESOURCES_PROVIDERS\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\"skyux_avatar_error_not_image_description\":{\"message\":\"Please choose a file that is a valid image.\"},\"skyux_avatar_error_not_image_title\":{\"message\":\"File is not an image.\"},\"skyux_avatar_error_too_large_description\":{\"message\":\"Please choose an image that is less than {0}.\"},\"skyux_avatar_error_too_large_title\":{\"message\":\"File is too large.\"},\"skyux_avatar_errormodal_ok\":{\"message\":\"OK\"},\"skyux_avatar_inner_description\":{\"message\":\"Profile picture of {0}\"},\"skyux_avatar_upload_change_aria_label\":{\"message\":\"Change profile photo of {0}. Drag a file here or click to browse.\"},\"skyux_avatar_upload_new_aria_label\":{\"message\":\"Add profile photo of {0}. Drag a file here or click to browse.\"}},\n};\n\nexport class SkyAvatarResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [{\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyAvatarResourcesProvider,\n multi: true\n }]\n})\nexport class SkyAvatarResourcesModule { }\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n CommonModule\n} from '@angular/common';\n\nimport {\n SkyErrorModule\n} from '@skyux/errors';\n\nimport {\n SkyFileAttachmentsModule,\n SkyFileSizePipe\n} from '@skyux/forms';\n\nimport {\n SkyI18nModule\n} from '@skyux/i18n';\n\nimport {\n SkyThemeModule\n} from '@skyux/theme';\n\nimport {\n SkyAvatarComponent\n} from './avatar.component';\n\nimport {\n SkyAvatarInnerComponent\n} from './avatar.inner.component';\nimport { SkyAvatarResourcesModule } from '../shared/sky-avatar-resources.module';\n\n@NgModule({\n declarations: [\n SkyAvatarInnerComponent,\n SkyAvatarComponent\n ],\n imports: [\n CommonModule,\n SkyAvatarResourcesModule,\n SkyErrorModule,\n SkyFileAttachmentsModule,\n SkyI18nModule,\n SkyThemeModule\n ],\n providers: [\n SkyFileSizePipe\n ],\n exports: [\n SkyAvatarComponent\n ]\n})\nexport class SkyAvatarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyux-avatar.js","sources":["../../../projects/avatar/src/modules/avatar/avatar-adapter.service.ts","../../../projects/avatar/src/modules/avatar/avatar.inner.component.ts","../../../projects/avatar/src/modules/avatar/avatar.inner.component.html","../../../projects/avatar/src/modules/avatar/avatar.component.ts","../../../projects/avatar/src/modules/avatar/avatar.component.html","../../../projects/avatar/src/modules/shared/sky-avatar-resources.module.ts","../../../projects/avatar/src/modules/avatar/avatar.module.ts","../../../projects/avatar/src/skyux-avatar.ts"],"sourcesContent":["import { ElementRef, Injectable } from '@angular/core';\n\nimport { SkyAvatarSrc } from './avatar-src';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyAvatarAdapterService {\n private blobUrl: string;\n\n public updateImage(elementRef: ElementRef, src: SkyAvatarSrc) {\n this.revokeBlobUrl();\n\n let el = elementRef.nativeElement;\n\n /*istanbul ignore else */\n if (el) {\n let imageEl = el.querySelector('.sky-avatar-image');\n\n /*istanbul ignore else */\n if (imageEl) {\n let url: string;\n\n if (src) {\n if (src instanceof File || src instanceof Blob) {\n url = this.createBlobUrl(src);\n } else {\n url = src;\n }\n }\n\n // Notice the quotes inside the `url` function. This ensures proper url escaping.\n imageEl.style.backgroundImage = url ? 'url(\"' + url + '\")' : '';\n }\n }\n }\n\n public destroy() {\n this.revokeBlobUrl();\n }\n\n private createBlobUrl(src: Blob | File) {\n let url = URL.createObjectURL(src);\n\n // Keep the last blob URL around so we can revoke it later.\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n this.blobUrl = url;\n return url;\n }\n\n private revokeBlobUrl() {\n if (this.blobUrl) {\n URL.revokeObjectURL(this.blobUrl);\n this.blobUrl = undefined;\n }\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SkyAvatarAdapterService } from './avatar-adapter.service';\n\nimport { SkyAvatarSize } from './avatar-size';\n\nimport { SkyAvatarSrc } from './avatar-src';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-avatar-inner',\n templateUrl: './avatar.inner.component.html',\n styleUrls: ['./avatar.inner.component.scss'],\n providers: [SkyAvatarAdapterService],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyAvatarInnerComponent implements AfterViewInit, OnDestroy {\n public get src(): SkyAvatarSrc {\n return this._src;\n }\n\n @Input()\n public set src(value: SkyAvatarSrc) {\n this._src = value;\n this.updateImage();\n }\n\n public get name(): string {\n return this._name;\n }\n\n @Input()\n public set name(value: string) {\n this._name = value;\n }\n\n @Input()\n public size: SkyAvatarSize;\n\n private viewInitialized: boolean;\n\n private _src: SkyAvatarSrc;\n\n private _name: string;\n\n constructor(\n private elementRef: ElementRef,\n private adapter: SkyAvatarAdapterService\n ) {}\n\n public get initials(): string {\n let initials: string;\n\n if (this.name) {\n let nameSplit = this.name.split(' ');\n initials = getInitial(nameSplit[0]);\n\n if (nameSplit.length > 1) {\n initials += getInitial(nameSplit[nameSplit.length - 1]);\n }\n }\n\n return initials;\n }\n\n public get colorIndex(): number {\n let name = this.name;\n let colorIndex: number;\n\n if (name) {\n // Generate a unique-ish color based on the record name. This is deterministic\n // so that a given name will always generate the same color.\n let seed =\n name.charCodeAt(0) + name.charCodeAt(name.length - 1) + name.length;\n colorIndex = Math.abs(seed % 6);\n } else {\n colorIndex = 0;\n }\n\n return colorIndex;\n }\n\n public ngAfterViewInit() {\n this.viewInitialized = true;\n this.updateImage();\n }\n\n public ngOnDestroy() {\n this.adapter.destroy();\n }\n\n private updateImage() {\n if (this.viewInitialized) {\n this.adapter.updateImage(this.elementRef, this.src);\n }\n }\n}\n\nfunction getInitial(name: string): string {\n return name.charAt(0).toUpperCase();\n}\n","<div\n class=\"sky-elevation-1 sky-avatar-wrapper\"\n [ngClass]=\"'sky-avatar-wrapper-size-' + (size || 'large')\"\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 !== 'small' && size !== 'medium'\"\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","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ErrorModalConfig, SkyErrorModalService } from '@skyux/errors';\n\nimport { SkyFileDropChange, SkyFileItem, SkyFileSizePipe } from '@skyux/forms';\n\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { SkyAvatarSize } from './avatar-size';\n\nimport { SkyAvatarSrc } from './avatar-src';\n\n@Component({\n selector: 'sky-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyAvatarComponent {\n /**\n * Indicates whether users can change the image. To select a different image,\n * users click the image or drag another image on top of it,\n * much like the `sky-file-drop` component in the\n * [file attachment module](https://developer.blackbaud.com/skyux/components/file-attachments/file-attachment).\n * @default false\n */\n @Input()\n public set canChange(value: boolean) {\n this._canChange = value;\n }\n\n public get canChange(): boolean {\n return this._canChange;\n }\n\n /**\n * Specifies the name of the record that the avatar represents.\n * If the `src` property does not specify an image, the component displays\n * initials from the first and last words in the name. To ensure\n * that the component extracts the correct initials, specify a name with no prefix\n * or suffix, or just specify initials with a space between them. This property is\n * not required, but the component requires either the `name` or `src` property.\n */\n @Input()\n public set name(value: string) {\n this._name = value;\n }\n\n public get name(): string {\n return this._name;\n }\n\n /**\n * Specifies an image to display to identify a record. This property is\n * not required, but the component requires either the `name` or `src` property.\n */\n @Input()\n public set src(value: SkyAvatarSrc) {\n this._src = value;\n }\n\n public get src(): SkyAvatarSrc {\n return this._src;\n }\n\n /**\n * Specifies the maximum file size for the image in bytes.\n */\n @Input()\n public maxFileSize = 500000;\n\n /**\n * Specifies the size of the avatar.\n */\n @Input()\n public size: SkyAvatarSize = 'large';\n\n /**\n * Emits a `SkyFileItem` object when the image is updated.\n */\n @Output()\n public avatarChanged = new EventEmitter<SkyFileItem>();\n\n private _canChange: boolean;\n\n private _name: string;\n\n private _src: SkyAvatarSrc;\n\n constructor(\n private errorService: SkyErrorModalService,\n private fileSizePipe: SkyFileSizePipe,\n private resourcesService: SkyLibResourcesService\n ) {}\n\n public photoDrop(result: SkyFileDropChange): void {\n /* sanity check */\n /* istanbul ignore else */\n if (result.files && result.files.length > 0) {\n this.avatarChanged.emit(result.files[0]);\n } else if (result.rejectedFiles && result.rejectedFiles.length > 0) {\n this.handleError(result.rejectedFiles);\n }\n }\n\n private handleError(rejectedFiles: Array<SkyFileItem>): void {\n const rejectedFile = rejectedFiles[0];\n\n if (rejectedFile.errorType === 'maxFileSize') {\n const title = this.getString('skyux_avatar_error_too_large_title');\n const description = this.getString(\n 'skyux_avatar_error_too_large_description',\n this.maxFileSizeText()\n );\n\n this.openErrorModal(title, description);\n } else if (rejectedFile.errorType === 'fileType') {\n const title = this.getString('skyux_avatar_error_not_image_title');\n const description = this.getString(\n 'skyux_avatar_error_not_image_description'\n );\n\n this.openErrorModal(title, description);\n }\n }\n\n private maxFileSizeText(): string {\n return this.fileSizePipe.transform(this.maxFileSize);\n }\n\n private openErrorModal(title: string, description: string): void {\n const config: ErrorModalConfig = {\n errorTitle: title,\n errorDescription: description,\n errorCloseText: this.getString('skyux_avatar_errormodal_ok'),\n };\n\n this.errorService.open(config);\n }\n\n private getString(key: string, ...args: any[]): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.resourcesService.getStringForLocale(\n { locale: 'en-US' },\n key,\n ...args\n );\n }\n}\n","<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","/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-avatar' schematic.\n * To update this file, simply rerun the command.\n */\n\nimport { NgModule } from '@angular/core';\nimport {\n getLibStringForLocale,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SKY_LIB_RESOURCES_PROVIDERS,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_avatar_error_not_image_description: {\n message: 'Please choose a file that is a valid image.',\n },\n skyux_avatar_error_not_image_title: { message: 'File is not an image.' },\n skyux_avatar_error_too_large_description: {\n message: 'Please choose an image that is less than {0}.',\n },\n skyux_avatar_error_too_large_title: { message: 'File is too large.' },\n skyux_avatar_errormodal_ok: { message: 'OK' },\n skyux_avatar_inner_description: { message: 'Profile picture of {0}' },\n skyux_avatar_upload_change_aria_label: {\n message:\n 'Change profile photo of {0}. Drag a file here or click to browse.',\n },\n skyux_avatar_upload_new_aria_label: {\n message: 'Add profile photo of {0}. Drag a file here or click to browse.',\n },\n },\n};\n\nexport class SkyAvatarResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyAvatarResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyAvatarResourcesModule {}\n","import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\nimport { SkyErrorModule } from '@skyux/errors';\n\nimport { SkyFileAttachmentsModule, SkyFileSizePipe } from '@skyux/forms';\n\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyAvatarComponent } from './avatar.component';\n\nimport { SkyAvatarInnerComponent } from './avatar.inner.component';\nimport { SkyAvatarResourcesModule } from '../shared/sky-avatar-resources.module';\n\n@NgModule({\n declarations: [SkyAvatarInnerComponent, SkyAvatarComponent],\n imports: [\n CommonModule,\n SkyAvatarResourcesModule,\n SkyErrorModule,\n SkyFileAttachmentsModule,\n SkyI18nModule,\n SkyThemeModule,\n ],\n providers: [SkyFileSizePipe],\n exports: [SkyAvatarComponent],\n})\nexport class SkyAvatarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@skyux/avatar",
3
- "version": "5.0.0",
3
+ "version": "5.0.1",
4
4
  "peerDependencies": {
5
- "@angular/common": "^12.2.7",
6
- "@angular/core": "^12.2.7",
7
- "@angular/router": "^12.2.7",
8
- "@skyux/core": "^5.0.0",
9
- "@skyux/i18n": "^5.0.0",
5
+ "@angular/common": "^12.2.13",
6
+ "@angular/core": "^12.2.13",
7
+ "@angular/router": "^12.2.13",
8
+ "@skyux/core": "^5.1.1",
9
+ "@skyux/i18n": "^5.0.1",
10
10
  "@skyux/errors": "^5.0.0",
11
- "@skyux/forms": "^5.0.0-beta.5"
11
+ "@skyux/forms": "^5.0.1"
12
12
  },
13
13
  "dependencies": {
14
14
  "tslib": "^2.3.1"