ngx-letters-avatar
Version:
Angular package that generates avatar with the initial letters of the provided name
100 lines • 13.1 kB
JavaScript
import { __decorate } from "tslib";
import { Component, Input } from '@angular/core';
let LettersAvatarComponent = class LettersAvatarComponent {
constructor() {
this.avatarName = "";
this.className = "";
this.fontFamily = "arial";
this.circular = false;
}
ngOnInit() {
if (!this.width && !this.height)
this.width = 60;
}
ngAfterViewInit() {
this.drawAvatar();
}
drawAvatar() {
let image = document.getElementById("avatar-img"), name = this.avatarName;
image.id = this.id ? this.id : this.avatarName.replace(/\s/g, "") + "Avatar";
image.setAttribute('alt', `${name} avatar`);
image.setAttribute('width', `${this.width ? this.width : this.height}px`);
image.setAttribute('height', `${this.height ? this.height : this.width}px`);
image.setAttribute('class', this.className);
if (this.circular)
image.style.borderRadius = "50%";
if (this.borderRadius)
image.style.borderRadius = `${this.borderRadius}px`;
if (this.src)
image.setAttribute('src', this.src);
else
image.setAttribute('src', this.createCanvasURI(name));
}
createCanvasURI(name = "") {
let colours = [
"#1abc9c", "#2ecc71", "#3498db", "#9b59b6", "#34495e",
"#f7ca18", "#f15a22", "#1ba39c", "#2abb9b", "#1f3a93",
"#96281b", "#e67e22", "#e74c3c", "#ecf0f1", "#95a5a6",
"#f39c12", "#d35400", "#c0392b", "#22a7f0", "#2c3e50"
], nameSplit = String(name).toUpperCase().split(' '), size = this.width, initials, charIndex, colourIndex, canvas, context, dataURI;
if (nameSplit.length < 2)
initials = nameSplit[0] ? nameSplit[0].charAt(0) : '?';
else
initials = nameSplit[0].charAt(0) + nameSplit[1].charAt(0);
if (window.devicePixelRatio)
size = size * window.devicePixelRatio;
charIndex = (initials == '?' ? 72 : initials.charCodeAt(0)) - 64;
colourIndex = charIndex % 20;
canvas = document.createElement('canvas');
canvas.width = size;
canvas.height = size;
context = canvas.getContext("2d");
context.fillStyle = colours[colourIndex - 1];
context.fillRect(0, 0, canvas.width, canvas.height);
context.font = `${Math.round(canvas.width / 2.7)}px ${this.fontFamily}`;
context.textAlign = "center";
context.fillStyle = "#FFF";
context.textBaseline = "middle";
initials = initials.split("").join(String.fromCharCode(8202));
context.fillText(initials, size / 2, size / 1.85);
dataURI = canvas.toDataURL();
canvas = null;
return dataURI;
}
};
__decorate([
Input('width')
], LettersAvatarComponent.prototype, "width", void 0);
__decorate([
Input('height')
], LettersAvatarComponent.prototype, "height", void 0);
__decorate([
Input('avatarName')
], LettersAvatarComponent.prototype, "avatarName", void 0);
__decorate([
Input('src')
], LettersAvatarComponent.prototype, "src", void 0);
__decorate([
Input('className')
], LettersAvatarComponent.prototype, "className", void 0);
__decorate([
Input('fontFamily')
], LettersAvatarComponent.prototype, "fontFamily", void 0);
__decorate([
Input('circular')
], LettersAvatarComponent.prototype, "circular", void 0);
__decorate([
Input('borderRadius')
], LettersAvatarComponent.prototype, "borderRadius", void 0);
__decorate([
Input('id')
], LettersAvatarComponent.prototype, "id", void 0);
LettersAvatarComponent = __decorate([
Component({
selector: 'ngx-letters-avatar',
template: "<img id=\"avatar-img\">",
styles: [":host{display:inline-flex}"]
})
], LettersAvatarComponent);
export { LettersAvatarComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGVycy1hdmF0YXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWxldHRlcnMtYXZhdGFyLyIsInNvdXJjZXMiOlsic3JjL2FwcC9tb2R1bGVzL2xldHRlcnMtYXZhdGFyL2xldHRlcnMtYXZhdGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBT3hFLElBQWEsc0JBQXNCLEdBQW5DLE1BQWEsc0JBQXNCO0lBV2pDO1FBUnFCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFakIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNkLGVBQVUsR0FBRyxPQUFPLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQztJQUlwQixDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUMvQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUV6QixLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDN0UsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDMUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUM1RSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUNwRCxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUM7UUFDM0UsSUFBSSxJQUFJLENBQUMsR0FBRztZQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzs7WUFDN0MsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxlQUFlLENBQUMsSUFBSSxHQUFHLEVBQUU7UUFDdkIsSUFBSSxPQUFPLEdBQUc7WUFDWixTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztZQUNyRCxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztZQUNyRCxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztZQUNyRCxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztTQUN0RCxFQUNDLFNBQVMsR0FBRyxN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QUMvQjtJQUFaLEtBQUssQ0FBQyxJQUFJLENBQUM7a0RBQVk7QUFUYixzQkFBc0I7SUFMbEMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLG9CQUFvQjtRQUM5QixtQ0FBOEM7O0tBRS9DLENBQUM7R0FDVyxzQkFBc0IsQ0EyRWxDO1NBM0VZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtbGV0dGVycy1hdmF0YXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbGV0dGVycy1hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sZXR0ZXJzLWF2YXRhci5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGV0dGVyc0F2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgnd2lkdGgnKSB3aWR0aDogbnVtYmVyO1xuICBASW5wdXQoJ2hlaWdodCcpIGhlaWdodDogbnVtYmVyO1xuICBASW5wdXQoJ2F2YXRhck5hbWUnKSBhdmF0YXJOYW1lID0gXCJcIjtcbiAgQElucHV0KCdzcmMnKSBzcmM6IHN0cmluZztcbiAgQElucHV0KCdjbGFzc05hbWUnKSBjbGFzc05hbWUgPSBcIlwiO1xuICBASW5wdXQoJ2ZvbnRGYW1pbHknKSBmb250RmFtaWx5ID0gXCJhcmlhbFwiO1xuICBASW5wdXQoJ2NpcmN1bGFyJykgY2lyY3VsYXIgPSBmYWxzZTtcbiAgQElucHV0KCdib3JkZXJSYWRpdXMnKSBib3JkZXJSYWRpdXM6IG51bWJlcjtcbiAgQElucHV0KCdpZCcpIGlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMud2lkdGggJiYgIXRoaXMuaGVpZ2h0KSB0aGlzLndpZHRoID0gNjA7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5kcmF3QXZhdGFyKCk7XG4gIH1cblxuICBkcmF3QXZhdGFyKCkge1xuICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYXZhdGFyLWltZ1wiKSxcbiAgICAgIG5hbWUgPSB0aGlzLmF2YXRhck5hbWU7XG5cbiAgICBpbWFnZS5pZCA9IHRoaXMuaWQgPyB0aGlzLmlkIDogdGhpcy5hdmF0YXJOYW1lLnJlcGxhY2UoL1xccy9nLCBcIlwiKSArIFwiQXZhdGFyXCI7XG4gICAgaW1hZ2Uuc2V0QXR0cmlidXRlKCdhbHQnLCBgJHtuYW1lfSBhdmF0YXJgKTtcbiAgICBpbWFnZS5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgYCR7dGhpcy53aWR0aCA/IHRoaXMud2lkdGggOiB0aGlzLmhlaWdodH1weGApO1xuICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgYCR7dGhpcy5oZWlnaHQgPyB0aGlzLmhlaWdodCA6IHRoaXMud2lkdGh9cHhgKTtcbiAgICBpbWFnZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgdGhpcy5jbGFzc05hbWUpO1xuICAgIGlmICh0aGlzLmNpcmN1bGFyKSBpbWFnZS5zdHlsZS5ib3JkZXJSYWRpdXMgPSBcIjUwJVwiO1xuICAgIGlmICh0aGlzLmJvcmRlclJhZGl1cykgaW1hZ2Uuc3R5bGUuYm9yZGVyUmFkaXVzID0gYCR7dGhpcy5ib3JkZXJSYWRpdXN9cHhgO1xuICAgIGlmICh0aGlzLnNyYykgaW1hZ2Uuc2V0QXR0cmlidXRlKCdzcmMnLCB0aGlzLnNyYyk7XG4gICAgZWxzZSBpbWFnZS5zZXRBdHRyaWJ1dGUoJ3NyYycsIHRoaXMuY3JlYXRlQ2FudmFzVVJJKG5hbWUpKTtcbiAgfVxuXG4gIGNyZWF0ZUNhbnZhc1VSSShuYW1lID0gXCJcIikge1xuICAgIGxldCBjb2xvdXJzID0gW1xuICAgICAgXCIjMWFiYzljXCIsIFwiIzJlY2M3MVwiLCBcIiMzNDk4ZGJcIiwgXCIjOWI1OWI2XCIsIFwiIzM0NDk1ZVwiLFxuICAgICAgXCIjZjdjYTE4XCIsIFwiI2YxNWEyMlwiLCBcIiMxYmEzOWNcIiwgXCIjMmFiYjliXCIsIFwiIzFmM2E5M1wiLFxuICAgICAgXCIjOTYyODFiXCIsIFwiI2U2N2UyMlwiLCBcIiNlNzRjM2NcIiwgXCIjZWNmMGYxXCIsIFwiIzk1YTVhNlwiLFxuICAgICAgXCIjZjM5YzEyXCIsIFwiI2QzNTQwMFwiLCBcIiNjMDM5MmJcIiwgXCIjMjJhN2YwXCIsIFwiIzJjM2U1MFwiXG4gICAgXSxcbiAgICAgIG5hbWVTcGxpdCA9IFN0cmluZyhuYW1lKS50b1VwcGVyQ2FzZSgpLnNwbGl0KCcgJyksXG4gICAgICBzaXplID0gdGhpcy53aWR0aCwgaW5pdGlhbHMsIGNoYXJJbmRleCwgY29sb3VySW5kZXgsIGNhbnZhcywgY29udGV4dCwgZGF0YVVSSTtcblxuXG4gICAgaWYgKG5hbWVTcGxpdC5sZW5ndGggPCAyKSBpbml0aWFscyA9IG5hbWVTcGxpdFswXSA/IG5hbWVTcGxpdFswXS5jaGFyQXQoMCkgOiAnPyc7XG4gICAgZWxzZSBpbml0aWFscyA9IG5hbWVTcGxpdFswXS5jaGFyQXQoMCkgKyBuYW1lU3BsaXRbMV0uY2hhckF0KDApO1xuXG4gICAgaWYgKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKSBzaXplID0gc2l6ZSAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuXG4gICAgY2hhckluZGV4ID0gKGluaXRpYWxzID09ICc/JyA/IDcyIDogaW5pdGlhbHMuY2hhckNvZGVBdCgwKSkgLSA2NDtcbiAgICBjb2xvdXJJbmRleCA9IGNoYXJJbmRleCAlIDIwO1xuICAgIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNhbnZhcy53aWR0aCA9IHNpemU7XG4gICAgY2FudmFzLmhlaWdodCA9IHNpemU7XG4gICAgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KFwiMmRcIik7XG5cbiAgICBjb250ZXh0LmZpbGxTdHlsZSA9IGNvbG91cnNbY29sb3VySW5kZXggLSAxXTtcbiAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgY29udGV4dC5mb250ID0gYCR7TWF0aC5yb3VuZChjYW52YXMud2lkdGggLyAyLjcpfXB4ICR7dGhpcy5mb250RmFtaWx5fWA7XG4gICAgY29udGV4dC50ZXh0QWxpZ24gPSBcImNlbnRlclwiO1xuICAgIGNvbnRleHQuZmlsbFN0eWxlID0gXCIjRkZGXCI7XG4gICAgY29udGV4dC50ZXh0QmFzZWxpbmUgPSBcIm1pZGRsZVwiO1xuXG4gICAgaW5pdGlhbHMgPSBpbml0aWFscy5zcGxpdChcIlwiKS5qb2luKFN0cmluZy5mcm9tQ2hhckNvZGUoODIwMikpXG4gICAgY29udGV4dC5maWxsVGV4dChpbml0aWFscywgc2l6ZSAvIDIsIHNpemUgLyAxLjg1KTtcblxuICAgIGRhdGFVUkkgPSBjYW52YXMudG9EYXRhVVJMKCk7XG4gICAgY2FudmFzID0gbnVsbDtcblxuICAgIHJldHVybiBkYXRhVVJJO1xuICB9XG5cbn1cbiJdfQ==