ngx-avatar-2
Version:
A universal avatar component for Angular applications that fetches / generates avatar based on the information you have about the user.
44 lines • 4.45 kB
JavaScript
import { AvatarSource } from './avatar-source.enum';
/**
* Initials source implementation.
* return the initials of the given value
*/
export class Initials {
sourceId;
sourceType = AvatarSource.INITIALS;
constructor(sourceId) {
this.sourceId = sourceId;
}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXZhdGFyLTIvc3JjL2xpYi9zb3VyY2VzL2luaXRpYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQUdBO0lBRlYsVUFBVSxHQUFpQixZQUFZLENBQUMsUUFBUSxDQUFDO0lBRTFELFlBQW1CLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7SUFBRyxDQUFDO0lBRWhDLFNBQVMsQ0FBQyxJQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUM1QyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNsQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3hEO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGlCQUFpQixDQUFDLFFBQWtCO1FBQzFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ2pDLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxPQUFPLFFBQVE7YUFDWixNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7YUFDaEQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3hDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvdXJjZSB9IGZyb20gJy4vc291cmNlJztcbmltcG9ydCB7IEF2YXRhclNvdXJjZSB9IGZyb20gJy4vYXZhdGFyLXNvdXJjZS5lbnVtJztcblxuLyoqXG4gKiBJbml0aWFscyBzb3VyY2UgaW1wbGVtZW50YXRpb24uXG4gKiByZXR1cm4gdGhlIGluaXRpYWxzIG9mIHRoZSBnaXZlbiB2YWx1ZVxuICovXG5leHBvcnQgY2xhc3MgSW5pdGlhbHMgaW1wbGVtZW50cyBTb3VyY2Uge1xuICByZWFkb25seSBzb3VyY2VUeXBlOiBBdmF0YXJTb3VyY2UgPSBBdmF0YXJTb3VyY2UuSU5JVElBTFM7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNvdXJjZUlkOiBzdHJpbmcpIHt9XG5cbiAgcHVibGljIGdldEF2YXRhcihzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEluaXRpYWxzKHRoaXMuc291cmNlSWQsIHNpemUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGluaXRpYWwgbGV0dGVycyBvZiBhIG5hbWUgaW4gYSBzdHJpbmcuXG4gICAqL1xuICBwcml2YXRlIGdldEluaXRpYWxzKG5hbWU6IHN0cmluZywgc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBuYW1lID0gbmFtZS50cmltKCk7XG5cbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBpbml0aWFscyA9IG5hbWUuc3BsaXQoJyAnKTtcblxuICAgIGlmIChzaXplICYmIHNpemUgPCBpbml0aWFscy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdEluaXRpYWxzKGluaXRpYWxzLnNsaWNlKDAsIHNpemUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY29uc3RydWN0SW5pdGlhbHMoaW5pdGlhbHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyBhIHBlcnNvbidzIG5hbWUgc3RyaW5nIHRvIGdldCB0aGUgaW5pdGlhbHMgb2YgZWFjaCB3b3JkIGluIHVwcGVyY2FzZS5cbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0SW5pdGlhbHMoZWxlbWVudHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICBpZiAoIWVsZW1lbnRzIHx8ICFlbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudHNcbiAgICAgIC5maWx0ZXIoZWxlbWVudCA9PiBlbGVtZW50ICYmIGVsZW1lbnQubGVuZ3RoID4gMClcbiAgICAgIC5tYXAoZWxlbWVudCA9PiBlbGVtZW50WzBdLnRvVXBwZXJDYXNlKCkpXG4gICAgICAuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==