UNPKG

ngx-avatars

Version:

A universal avatar component for Angular applications that fetches / generates avatar based on the information you have about the user.

43 lines 4.62 kB
import { AvatarSource } from './avatar-source.enum'; /** * Initials source implementation. * return the initials of the given value */ export class Initials { constructor(sourceId) { this.sourceId = sourceId; this.sourceType = AvatarSource.INITIALS; } getAvatar(size) { return this.getInitials(this.sourceId, size); } /** * Returns the initial letters of a name in a string. */ getInitials(name, size) { name = name.trim(); if (!name) { return ''; } const initials = name.split(' '); if (size && size < initials.length) { return this.constructInitials(initials.slice(0, size)); } else { return this.constructInitials(initials); } } /** * Iterates a person's name string to get the initials of each word in uppercase. */ constructInitials(elements) { if (!elements || !elements.length) { return ''; } return elements .filter(element => element && element.length > 0) .map(element => element[0].toUpperCase()) .join(''); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXZhdGFycy9zcmMvbGliL3NvdXJjZXMvaW5pdGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXBEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxRQUFRO0lBR25CLFlBQW1CLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFGMUIsZUFBVSxHQUFpQixZQUFZLENBQUMsUUFBUSxDQUFDO0lBRXBCLENBQUM7SUFFaEMsU0FBUyxDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVyxDQUFDLElBQVksRUFBRSxJQUFZO1FBQzVDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssaUJBQWlCLENBQUMsUUFBa0I7UUFDMUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLFFBQVE7YUFDWixNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7YUFDaEQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3hDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvdXJjZSB9IGZyb20gJy4vc291cmNlJztcclxuaW1wb3J0IHsgQXZhdGFyU291cmNlIH0gZnJvbSAnLi9hdmF0YXItc291cmNlLmVudW0nO1xyXG5cclxuLyoqXHJcbiAqIEluaXRpYWxzIHNvdXJjZSBpbXBsZW1lbnRhdGlvbi5cclxuICogcmV0dXJuIHRoZSBpbml0aWFscyBvZiB0aGUgZ2l2ZW4gdmFsdWVcclxuICovXHJcbmV4cG9ydCBjbGFzcyBJbml0aWFscyBpbXBsZW1lbnRzIFNvdXJjZSB7XHJcbiAgcmVhZG9ubHkgc291cmNlVHlwZTogQXZhdGFyU291cmNlID0gQXZhdGFyU291cmNlLklOSVRJQUxTO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc291cmNlSWQ6IHN0cmluZykge31cclxuXHJcbiAgcHVibGljIGdldEF2YXRhcihzaXplOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SW5pdGlhbHModGhpcy5zb3VyY2VJZCwgc2l6ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBpbml0aWFsIGxldHRlcnMgb2YgYSBuYW1lIGluIGEgc3RyaW5nLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0SW5pdGlhbHMobmFtZTogc3RyaW5nLCBzaXplOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbmFtZSA9IG5hbWUudHJpbSgpO1xyXG5cclxuICAgIGlmICghbmFtZSkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW5pdGlhbHMgPSBuYW1lLnNwbGl0KCcgJyk7XHJcblxyXG4gICAgaWYgKHNpemUgJiYgc2l6ZSA8IGluaXRpYWxzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RJbml0aWFscyhpbml0aWFscy5zbGljZSgwLCBzaXplKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RJbml0aWFscyhpbml0aWFscyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJdGVyYXRlcyBhIHBlcnNvbidzIG5hbWUgc3RyaW5nIHRvIGdldCB0aGUgaW5pdGlhbHMgb2YgZWFjaCB3b3JkIGluIHVwcGVyY2FzZS5cclxuICAgKi9cclxuICBwcml2YXRlIGNvbnN0cnVjdEluaXRpYWxzKGVsZW1lbnRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWVsZW1lbnRzIHx8ICFlbGVtZW50cy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlbGVtZW50c1xyXG4gICAgICAuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudCAmJiBlbGVtZW50Lmxlbmd0aCA+IDApXHJcbiAgICAgIC5tYXAoZWxlbWVudCA9PiBlbGVtZW50WzBdLnRvVXBwZXJDYXNlKCkpXHJcbiAgICAgIC5qb2luKCcnKTtcclxuICB9XHJcbn1cclxuIl19