UNPKG

ngx-letters-avatar

Version:

Angular package that generates avatar with the initial letters of the provided name

100 lines 13.1 kB
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==