{"version":3,"file":"ngx-gravatar.mjs","sources":["../../../projects/ngx-gravatar/src/lib/gravatar-config.token.ts","../../../projects/ngx-gravatar/src/lib/ngx-gravatar.enums.ts","../../../projects/ngx-gravatar/src/lib/ngx-gravatar.constants.ts","../../../projects/ngx-gravatar/src/lib/ngx-gravatar.service.ts","../../../projects/ngx-gravatar/src/lib/ngx-gravatar.directive.ts","../../../projects/ngx-gravatar/src/lib/gravatar.module.ts","../../../projects/ngx-gravatar/src/public-api.ts","../../../projects/ngx-gravatar/src/ngx-gravatar.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { GravatarConfig } from './gravatar-config';\n\n/**\n * Injection token for gravatar configuration\n */\nexport const GRAVATAR_CONFIG_TOKEN = new InjectionToken<GravatarConfig>(\n  'gravatarCustom.config'\n);\n","// Visit https://en.gravatar.com/site/implement/images for more information\nexport enum FALLBACK {\n  blank = 'blank',\n  identicon = 'identicon',\n  mm = 'mm', // changed to 'mp', visit Gravatar official site for more details\n  mp = 'mp',\n  monsterid = 'monsterid',\n  retro = 'retro',\n  robohash = 'robohash',\n  wavatar = 'wavatar',\n}\n\nexport enum RATING {\n  g = 'g',\n  pg = 'pg',\n  r = 'r',\n  x = 'x',\n}\n\nexport type FallbackType = keyof typeof FALLBACK;\n\nexport type RatingType = keyof typeof RATING;\n","import { GravatarConfig } from './gravatar-config';\nimport { FALLBACK, RATING } from './ngx-gravatar.enums';\n\nexport const DEFAULT_CONFIG: GravatarConfig = {\n  fallback: FALLBACK.retro,\n  size: 40,\n  cornerRadius: 0,\n  preferGravatar: false,\n  hasBorder: false,\n  borderColor: '#000000',\n  borderRadius: '50%',\n  borderStyle: 'solid',\n  borderWidth: 1,\n  round: true,\n  backgroundColor: 'transparent',\n  rating: RATING.g,\n  ratio: 2,\n};\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { Md5 } from 'ts-md5/dist/md5';\nimport { GravatarConfig } from './gravatar-config';\nimport { GRAVATAR_CONFIG_TOKEN } from './gravatar-config.token';\nimport { DEFAULT_CONFIG } from './ngx-gravatar.constants';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NgxGravatarService {\n  private defaultConfig: GravatarConfig;\n\n  constructor(\n    @Optional()\n    @Inject(GRAVATAR_CONFIG_TOKEN)\n    private gravatarConfig: GravatarConfig\n  ) {\n    this.defaultConfig = { ...DEFAULT_CONFIG };\n\n    if (this.gravatarConfig) {\n      this.defaultConfig = { ...this.defaultConfig, ...this.gravatarConfig };\n    }\n  }\n\n  /**\n   * Return defaultConfig object\n   */\n  getDefaultConfig() {\n    return this.defaultConfig;\n  }\n\n  /**\n   * Generate gravatar url\n   *\n   * @param email is a string. If email is not a string, email will be set to empty string \"\" by default\n   * @param md5Hash is a string. If value is given it will take precedence over email.\n   * @param size number\n   * @param rating string\n   * @param fallback string\n   * @return gravatar url\n   */\n  generateGravatarUrl(\n    email: string,\n    md5Hash?: string,\n    size: number = this.defaultConfig.size,\n    rating: string = this.defaultConfig.rating,\n    fallback: string = this.defaultConfig.fallback\n  ) {\n    let emailHash: string | Int32Array;\n    if (md5Hash) {\n      emailHash = md5Hash;\n    } else {\n      try {\n        email = email.trim().toLowerCase();\n      } catch (e) {\n        console.error(\n          `[ngx-gravatar] - Email (${email}) is not a string. Empty string is used as a default email.`\n        );\n        email = '';\n      }\n      emailHash = Md5.hashStr(email);\n    }\n    return `https://www.gravatar.com/avatar/${emailHash}?s=${size}&r=${rating}&d=${fallback}`;\n  }\n}\n","/* eslint-disable @angular-eslint/directive-selector */\nimport {\n  Directive,\n  ElementRef,\n  Input,\n  OnChanges,\n  OnInit,\n  Renderer2,\n} from '@angular/core';\nimport { NgxGravatarService } from './ngx-gravatar.service';\nimport { GravatarConfig } from './gravatar-config';\n\n@Directive({\n  selector: '[ngx-gravatar], [ngxGravatar]',\n})\nexport class NgxGravatarDirective implements OnChanges, OnInit {\n  @Input() src: string;\n  @Input() email: string;\n  @Input() md5Hash: string;\n  @Input() size: number;\n  @Input() fallback: string; // enum: ['blank', 'identicon', 'mm', 'monsterid', 'retro', 'robohash', 'wavatar']\n  @Input() rating: string; // enum: ['g', 'pg', 'r', 'x']\n  @Input() round: boolean;\n  @Input() cornerRadius: number;\n  @Input() borderColor: string;\n  @Input() borderWidth: number;\n  @Input() style: any = {};\n  @Input() preferGravatar: boolean;\n  @Input() backgroundColor: string;\n  @Input() ratio: number;\n\n  initialized: boolean;\n  defaultConfig: GravatarConfig;\n  requestedSize: number;\n  isGravatarUsed: boolean;\n\n  constructor(\n    private elementRef: ElementRef,\n    private renderer: Renderer2,\n    private gravatarService: NgxGravatarService\n  ) {\n    this.initialized = false;\n    this.defaultConfig = this.gravatarService.getDefaultConfig();\n    // Listen for error when fetching custom src\n    this.renderer.listen(this.elementRef.nativeElement, 'error', (event) => {\n      if (!this.isGravatarUsed) {\n        this.initializeAvatar(true); // Force using gravatar\n      }\n    });\n  }\n\n  ngOnInit() {\n    this.initializeAvatar();\n    this.initialized = true;\n    this.isGravatarUsed = false;\n  }\n\n  ngOnChanges() {\n    if (this.initialized) {\n      this.initializeAvatar();\n    }\n  }\n\n  /**\n   * Set default values for user inputs if they are not provided\n   */\n  private setDefaultValues(): void {\n    this.size = this.computeSize();\n    this.ratio =\n      this.ratio === undefined ? this.defaultConfig.ratio : this.ratio;\n    this.requestedSize = this.size * this.ratio;\n    this.round =\n      this.round === undefined ? this.defaultConfig.round : this.round;\n    this.cornerRadius =\n      this.cornerRadius === undefined\n        ? this.defaultConfig.cornerRadius\n        : this.cornerRadius;\n    this.preferGravatar =\n      this.preferGravatar === undefined\n        ? this.defaultConfig.preferGravatar\n        : this.preferGravatar;\n  }\n\n  /**\n   * Initialize avatar.\n   * Custom source has higher priority if preferGravatar is not set on.\n   * Finally, set styles for the avatar.\n   */\n  private initializeAvatar(forcedGravatar?: boolean): void {\n    this.setDefaultValues();\n    let url = '';\n    if (this.preferGravatar || forcedGravatar) {\n      url = this.gravatarService.generateGravatarUrl(\n        this.email,\n        this.md5Hash,\n        this.requestedSize,\n        this.rating,\n        this.fallback\n      );\n      this.isGravatarUsed = true;\n    } else {\n      // this.preferGravatar == false\n      if (this.src) {\n        url = this.src;\n      } else {\n        // fallback to gravatar\n        url = this.gravatarService.generateGravatarUrl(\n          this.email,\n          this.md5Hash,\n          this.requestedSize,\n          this.rating,\n          this.fallback\n        );\n        this.isGravatarUsed = true;\n      }\n    }\n    this.renderer.setProperty(this.elementRef.nativeElement, 'src', url);\n    this.setStyle(this.avatarStyle());\n  }\n\n  /**\n   * Compute the size of the avatar\n   *\n   * @return size\n   */\n  private computeSize(): number {\n    let size = this.size === undefined ? this.defaultConfig.size : this.size;\n    if (this.style && this.style.width) {\n      try {\n        const width = this.style.width.trim();\n        if (width.match(/^\\d+px$/)) {\n          // width with px unit\n          size = width.replace('px', '');\n        }\n      } catch (e) {\n        return size;\n      }\n    }\n    return size;\n  }\n\n  /**\n   * Compute style object\n   *\n   * @return style object\n   */\n  private avatarStyle() {\n    const style = {\n      width: this.size + 'px',\n      height: this.size + 'px',\n      borderRadius: this.round\n        ? this.defaultConfig.borderRadius\n        : this.cornerRadius + 'px',\n      borderStyle:\n        this.defaultConfig.hasBorder || this.borderColor || this.borderWidth\n          ? this.defaultConfig.borderStyle\n          : 'none',\n      borderColor: this.borderColor\n        ? this.borderColor\n        : this.defaultConfig.borderColor,\n      borderWidth: this.borderWidth\n        ? this.borderWidth + 'px'\n        : this.defaultConfig.borderWidth + 'px',\n      backgroundColor: this.backgroundColor\n        ? this.backgroundColor\n        : this.defaultConfig.backgroundColor,\n    };\n    return { ...style, ...this.style };\n  }\n\n  /**\n   * Set style for the avatar\n   *\n   * @param styles style object\n   */\n  private setStyle(styles: any) {\n    Object.keys(styles).forEach((key) => {\n      this.renderer.setStyle(this.elementRef.nativeElement, key, styles[key]);\n    });\n  }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { GravatarConfig } from './gravatar-config';\nimport { GRAVATAR_CONFIG_TOKEN } from './gravatar-config.token';\nimport { NgxGravatarDirective } from './ngx-gravatar.directive';\n\n@NgModule({\n  declarations: [NgxGravatarDirective],\n  exports: [NgxGravatarDirective],\n})\nexport class GravatarModule {\n  static forRoot(\n    gravatarConfig: GravatarConfig\n  ): ModuleWithProviders<GravatarModule> {\n    return {\n      ngModule: GravatarModule,\n      providers: [\n        {\n          provide: GRAVATAR_CONFIG_TOKEN,\n          useValue: gravatarConfig,\n        },\n      ],\n    };\n  }\n}\n","/*\n * Public API Surface of ngx-gravatar\n */\n\nexport { GravatarModule } from './lib/gravatar.module';\nexport { GravatarConfig } from './lib/gravatar-config';\nexport { NgxGravatarService } from './lib/ngx-gravatar.service';\nexport { NgxGravatarDirective } from './lib/ngx-gravatar.directive';\nexport { FALLBACK, RATING } from './lib/ngx-gravatar.enums';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxGravatarService"],"mappings":"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"}