ngx-avatar
Version:
A universal avatar component for Angular applications that fetches / generates avatar based on the information you have about the user.
34 lines • 4.37 kB
JavaScript
import { Injectable, Inject, Optional } from '@angular/core';
import { AVATAR_CONFIG } from './avatar-config.token';
export class AvatarConfigService {
constructor(userConfig) {
this.userConfig = userConfig;
}
getAvatarSources(defaultSources) {
if (this.userConfig &&
this.userConfig.sourcePriorityOrder &&
this.userConfig.sourcePriorityOrder.length) {
const uniqueSources = [...new Set(this.userConfig.sourcePriorityOrder)];
const validSources = uniqueSources.filter(source => defaultSources.includes(source));
return [
...validSources,
...defaultSources.filter(source => !validSources.includes(source))
];
}
return defaultSources;
}
getAvatarColors(defaultColors) {
return ((this.userConfig &&
this.userConfig.colors &&
this.userConfig.colors.length &&
this.userConfig.colors) ||
defaultColors);
}
}
AvatarConfigService.decorators = [
{ type: Injectable }
];
AvatarConfigService.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [AVATAR_CONFIG,] }] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF2YXRhci9zcmMvbGliL2F2YXRhci1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXRELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFHUyxVQUF3QjtRQUF4QixlQUFVLEdBQVYsVUFBVSxDQUFjO0lBQzlCLENBQUM7SUFFRyxnQkFBZ0IsQ0FBQyxjQUE4QjtRQUNwRCxJQUNFLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUI7WUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQzFDO1lBQ0EsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDakQsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FDaEMsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsR0FBRyxZQUFZO2dCQUNmLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNuRSxDQUFDO1NBQ0g7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRU0sZUFBZSxDQUFDLGFBQXVCO1FBQzVDLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDekIsYUFBYSxDQUNkLENBQUM7SUFDSixDQUFDOzs7WUFsQ0YsVUFBVTs7OzRDQUdOLFFBQVEsWUFDUixNQUFNLFNBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXZhdGFyU291cmNlIH0gZnJvbSAnLi9zb3VyY2VzL2F2YXRhci1zb3VyY2UuZW51bSc7XG5pbXBvcnQgeyBBVkFUQVJfQ09ORklHIH0gZnJvbSAnLi9hdmF0YXItY29uZmlnLnRva2VuJztcbmltcG9ydCB7IEF2YXRhckNvbmZpZyB9IGZyb20gJy4vYXZhdGFyLWNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdmF0YXJDb25maWdTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEFWQVRBUl9DT05GSUcpXG4gICAgcHVibGljIHVzZXJDb25maWc6IEF2YXRhckNvbmZpZ1xuICApIHt9XG5cbiAgcHVibGljIGdldEF2YXRhclNvdXJjZXMoZGVmYXVsdFNvdXJjZXM6IEF2YXRhclNvdXJjZVtdKTogQXZhdGFyU291cmNlW10ge1xuICAgIGlmIChcbiAgICAgIHRoaXMudXNlckNvbmZpZyAmJlxuICAgICAgdGhpcy51c2VyQ29uZmlnLnNvdXJjZVByaW9yaXR5T3JkZXIgJiZcbiAgICAgIHRoaXMudXNlckNvbmZpZy5zb3VyY2VQcmlvcml0eU9yZGVyLmxlbmd0aFxuICAgICkge1xuICAgICAgY29uc3QgdW5pcXVlU291cmNlcyA9IFsuLi5uZXcgU2V0KHRoaXMudXNlckNvbmZpZy5zb3VyY2VQcmlvcml0eU9yZGVyKV07XG4gICAgICBjb25zdCB2YWxpZFNvdXJjZXMgPSB1bmlxdWVTb3VyY2VzLmZpbHRlcihzb3VyY2UgPT5cbiAgICAgICAgZGVmYXVsdFNvdXJjZXMuaW5jbHVkZXMoc291cmNlKVxuICAgICAgKTtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLnZhbGlkU291cmNlcyxcbiAgICAgICAgLi4uZGVmYXVsdFNvdXJjZXMuZmlsdGVyKHNvdXJjZSA9PiAhdmFsaWRTb3VyY2VzLmluY2x1ZGVzKHNvdXJjZSkpXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gZGVmYXVsdFNvdXJjZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXZhdGFyQ29sb3JzKGRlZmF1bHRDb2xvcnM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy51c2VyQ29uZmlnICYmXG4gICAgICAgIHRoaXMudXNlckNvbmZpZy5jb2xvcnMgJiZcbiAgICAgICAgdGhpcy51c2VyQ29uZmlnLmNvbG9ycy5sZW5ndGggJiZcbiAgICAgICAgdGhpcy51c2VyQ29uZmlnLmNvbG9ycykgfHxcbiAgICAgIGRlZmF1bHRDb2xvcnNcbiAgICApO1xuICB9XG59XG4iXX0=