{"version":3,"file":"ng-zorro-antd-avatar.mjs","sources":["../../components/avatar/avatar.component.ts","../../components/avatar/avatar-group.component.ts","../../components/avatar/avatar.module.ts","../../components/avatar/public-api.ts","../../components/avatar/ng-zorro-antd-avatar.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Platform } from '@angular/cdk/platform';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\n\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport {\n  NgClassInterface,\n  NgStyleInterface,\n  NumberInput,\n  NzShapeSCType,\n  NzSizeLDSType\n} from 'ng-zorro-antd/core/types';\nimport { InputNumber } from 'ng-zorro-antd/core/util';\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'avatar';\n\n@Component({\n  selector: 'nz-avatar',\n  exportAs: 'nzAvatar',\n  template: `\n    <i nz-icon *ngIf=\"nzIcon && hasIcon\" [nzType]=\"nzIcon\"></i>\n    <img *ngIf=\"nzSrc && hasSrc\" [src]=\"nzSrc\" [attr.srcset]=\"nzSrcSet\" [attr.alt]=\"nzAlt\" (error)=\"imgError($event)\" />\n    <span class=\"ant-avatar-string\" #textEl [ngStyle]=\"textStyles\" *ngIf=\"nzText && hasText\">{{ nzText }}</span>\n  `,\n  host: {\n    class: 'ant-avatar',\n    '[class.ant-avatar-lg]': `nzSize === 'large'`,\n    '[class.ant-avatar-sm]': `nzSize === 'small'`,\n    '[class.ant-avatar-square]': `nzShape === 'square'`,\n    '[class.ant-avatar-circle]': `nzShape === 'circle'`,\n    '[class.ant-avatar-icon]': `nzIcon`,\n    '[class.ant-avatar-image]': `hasSrc `,\n    '[style.width]': 'customSize',\n    '[style.height]': 'customSize',\n    '[style.line-height]': 'customSize',\n    // nzSize type is number when customSize is true\n    '[style.font-size.px]': '(hasIcon && customSize) ? $any(nzSize) / 2 : null'\n  },\n  preserveWhitespaces: false,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None\n})\nexport class NzAvatarComponent implements OnChanges {\n  static ngAcceptInputType_nzGap: NumberInput;\n\n  readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n  @Input() @WithConfig() nzShape: NzShapeSCType = 'circle';\n  @Input() @WithConfig() nzSize: NzSizeLDSType | number = 'default';\n  @Input() @WithConfig() @InputNumber() nzGap = 4;\n  @Input() nzText?: string;\n  @Input() nzSrc?: string;\n  @Input() nzSrcSet?: string;\n  @Input() nzAlt?: string;\n  @Input() nzIcon?: string;\n  @Output() readonly nzError = new EventEmitter<Event>();\n\n  hasText: boolean = false;\n  hasSrc: boolean = true;\n  hasIcon: boolean = false;\n  textStyles: NgStyleInterface = {};\n  classMap: NgClassInterface = {};\n  customSize: string | null = null;\n\n  @ViewChild('textEl', { static: false }) textEl?: ElementRef;\n\n  private el: HTMLElement = this.elementRef.nativeElement;\n\n  constructor(\n    public nzConfigService: NzConfigService,\n    private elementRef: ElementRef,\n    private cdr: ChangeDetectorRef,\n    private platform: Platform\n  ) {}\n\n  imgError($event: Event): void {\n    this.nzError.emit($event);\n    if (!$event.defaultPrevented) {\n      this.hasSrc = false;\n      this.hasIcon = false;\n      this.hasText = false;\n      if (this.nzIcon) {\n        this.hasIcon = true;\n      } else if (this.nzText) {\n        this.hasText = true;\n      }\n      this.cdr.detectChanges();\n      this.setSizeStyle();\n      this.notifyCalc();\n    }\n  }\n\n  ngOnChanges(): void {\n    this.hasText = !this.nzSrc && !!this.nzText;\n    this.hasIcon = !this.nzSrc && !!this.nzIcon;\n    this.hasSrc = !!this.nzSrc;\n\n    this.setSizeStyle();\n    this.notifyCalc();\n  }\n\n  private calcStringSize(): void {\n    if (!this.hasText) {\n      return;\n    }\n\n    const childrenWidth = this.textEl!.nativeElement.offsetWidth;\n    const avatarWidth = this.el.getBoundingClientRect().width;\n    const offset = this.nzGap * 2 < avatarWidth ? this.nzGap * 2 : 8;\n    const scale = avatarWidth - offset < childrenWidth ? (avatarWidth - offset) / childrenWidth : 1;\n\n    this.textStyles = {\n      transform: `scale(${scale}) translateX(-50%)`\n    };\n    if (this.customSize) {\n      Object.assign(this.textStyles, {\n        lineHeight: this.customSize\n      });\n    }\n    this.cdr.detectChanges();\n  }\n\n  private notifyCalc(): void {\n    // If use ngAfterViewChecked, always demands more computations, so......\n    if (this.platform.isBrowser) {\n      setTimeout(() => {\n        this.calcStringSize();\n      });\n    }\n  }\n\n  private setSizeStyle(): void {\n    if (typeof this.nzSize === 'number') {\n      this.customSize = `${this.nzSize}px`;\n    } else {\n      this.customSize = null;\n    }\n    this.cdr.markForCheck();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n  selector: 'nz-avatar-group',\n  exportAs: 'nzAvatarGroup',\n  template: ` <ng-content></ng-content> `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: 'ant-avatar-group'\n  }\n})\nexport class NzAvatarGroupComponent {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzAvatarGroupComponent } from './avatar-group.component';\nimport { NzAvatarComponent } from './avatar.component';\n\n@NgModule({\n  declarations: [NzAvatarComponent, NzAvatarGroupComponent],\n  exports: [NzAvatarComponent, NzAvatarGroupComponent],\n  imports: [BidiModule, CommonModule, NzIconModule, PlatformModule]\n})\nexport class NzAvatarModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './avatar.component';\nexport * from './avatar-group.component';\nexport * from './avatar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}