diff --git a/projects/common/package-lock.json b/projects/common/package-lock.json
index a7a9932..6b37593 100644
--- a/projects/common/package-lock.json
+++ b/projects/common/package-lock.json
@@ -1,5 +1,27 @@
{
"name": "@farmmaps/common",
"version": "0.0.1",
- "lockfileVersion": 1
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "is-retina": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-retina/-/is-retina-1.0.3.tgz",
+ "integrity": "sha1-10AbKGvqKuN/Ykd1iN5QTQuGR+M="
+ },
+ "ngx-avatar": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/ngx-avatar/-/ngx-avatar-4.0.0.tgz",
+ "integrity": "sha512-Uk40UXl26RvDy1ori9NDsGFB+f84AaxMnsIwZA6JPJK0pLcbo3F4vZTmzLZeOusOw1Qtgk5IzF630jo06keXwQ==",
+ "requires": {
+ "is-retina": "^1.0.3",
+ "ts-md5": "^1.2.4"
+ }
+ },
+ "ts-md5": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/ts-md5/-/ts-md5-1.2.7.tgz",
+ "integrity": "sha512-emODogvKGWi1KO1l9c6YxLMBn6CEH3VrH5mVPIyOtxBG52BvV4jP3GWz6bOZCz61nLgBc3ffQYE4+EHfCD+V7w=="
+ }
+ }
}
diff --git a/projects/common/package.json b/projects/common/package.json
index 6a3b626..a0e9f57 100644
--- a/projects/common/package.json
+++ b/projects/common/package.json
@@ -17,6 +17,7 @@
"@microsoft/signalr": "^3.1.3",
"ngx-uploadx": "^3.3.4",
"angular-oauth2-oidc": "^10.0.3",
- "moment": "^2.27.0"
+ "moment": "^2.27.0",
+ "ngx-avatar": "^4.0.0"
}
}
diff --git a/projects/common/src/fm/common.module.ts b/projects/common/src/fm/common.module.ts
index ba7a2bb..23baa24 100644
--- a/projects/common/src/fm/common.module.ts
+++ b/projects/common/src/fm/common.module.ts
@@ -60,6 +60,8 @@ import { AppMenuComponent } from './components/app-menu/app-menu.component';
import { NotificationMenuComponent} from './components/notification-menu/notification-menu.component';
import { HelpMenuComponent} from './components/help-menu/help-menu.component';
import { BackButtonComponent } from './components/back-button/back-button.component';
+import { AvatarComponent } from './components/avatar/avatar.component';
+import { AvatarModule } from 'ngx-avatar';
export {
SafePipe,
@@ -102,7 +104,8 @@ export {
IDataLayer,
IColor,
IGradientstop,
- BackButtonComponent
+ BackButtonComponent,
+ AvatarComponent
};
@NgModule({
@@ -115,7 +118,8 @@ export {
OAuthModule.forRoot(),
NgbModule,
FormsModule,
- UploadxModule
+ UploadxModule,
+ AvatarModule
],
declarations: [
AppComponent,
@@ -138,7 +142,8 @@ export {
NotificationMenuComponent,
HelpMenuComponent,
BackButtonComponent,
- ThumbnailComponent
+ ThumbnailComponent,
+ AvatarComponent
],
exports: [
NgbModule,
@@ -162,7 +167,8 @@ export {
GradientComponent,
GradientSelectComponent,
BackButtonComponent,
- ThumbnailComponent
+ ThumbnailComponent,
+ AvatarComponent
]
})
export class AppCommonModule {
diff --git a/projects/common/src/fm/components/avatar/avatar.component.css b/projects/common/src/fm/components/avatar/avatar.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/projects/common/src/fm/components/avatar/avatar.component.html b/projects/common/src/fm/components/avatar/avatar.component.html
new file mode 100644
index 0000000..89b465e
--- /dev/null
+++ b/projects/common/src/fm/components/avatar/avatar.component.html
@@ -0,0 +1 @@
+
diff --git a/projects/common/src/fm/components/avatar/avatar.component.spec.ts b/projects/common/src/fm/components/avatar/avatar.component.spec.ts
new file mode 100644
index 0000000..7c3ee67
--- /dev/null
+++ b/projects/common/src/fm/components/avatar/avatar.component.spec.ts
@@ -0,0 +1,25 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { AvatarComponent } from './avatar.component';
+
+describe('AvatarComponent', () => {
+ let component: AvatarComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [ AvatarComponent ]
+ })
+ .compileComponents();
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(AvatarComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/projects/common/src/fm/components/avatar/avatar.component.ts b/projects/common/src/fm/components/avatar/avatar.component.ts
new file mode 100644
index 0000000..ab343e2
--- /dev/null
+++ b/projects/common/src/fm/components/avatar/avatar.component.ts
@@ -0,0 +1,34 @@
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { IUser } from '../../models/user';
+
+@Component({
+ selector: 'fm-avatar',
+ templateUrl: './avatar.component.html',
+ styleUrls: ['./avatar.component.css']
+})
+export class AvatarComponent implements OnInit {
+
+ @Input() user: IUser;
+ @Input() bgColor: string;
+ @Input() fgColor: string;
+ @Input() size: number;
+ @Input() round: boolean;
+
+ @Output() click = new EventEmitter();
+
+ constructor() { }
+
+ ngOnInit(): void {
+ }
+
+ getName():string {
+ if (!this.user) return null;
+ if (this.user.firstName && this.user.lastName)
+ return this.user.firstName + ' ' + this.user.lastName;
+ return this.user.name;
+ }
+
+ onClick() {
+ this.click.emit();
+ }
+}