ichec-angular-core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ichec-angular-core.mjs","sources":["../../../projects/ichec-angular-core/src/lib/services/rest.service.ts","../../../projects/ichec-angular-core/src/lib/services/user.service.ts","../../../projects/ichec-angular-core/src/lib/services/group.service.ts","../../../projects/ichec-angular-core/src/lib/models/core.ts","../../../projects/ichec-angular-core/src/lib/services/organization.service.ts","../../../projects/ichec-angular-core/src/lib/services/left-nav.service.ts","../../../projects/ichec-angular-core/src/lib/views/top-bar/top-bar.component.ts","../../../projects/ichec-angular-core/src/lib/views/top-bar/top-bar.component.html","../../../projects/ichec-angular-core/src/lib/views/left-nav/left-nav.component.ts","../../../projects/ichec-angular-core/src/lib/views/left-nav/left-nav.component.html","../../../projects/ichec-angular-core/src/lib/views/landing/landing.component.ts","../../../projects/ichec-angular-core/src/lib/views/landing/landing.component.html","../../../projects/ichec-angular-core/src/lib/views/base/detail-view/detail-view.component.ts","../../../projects/ichec-angular-core/src/lib/views/base/detail-view/detail-view.component.html","../../../projects/ichec-angular-core/src/lib/views/base/edit-view/edit-view.component.ts","../../../projects/ichec-angular-core/src/lib/views/base/edit-view/edit-view.component.html","../../../projects/ichec-angular-core/src/lib/views/base/list-view/list-view.component.ts","../../../projects/ichec-angular-core/src/lib/views/base/list-view/list-view.component.html","../../../projects/ichec-angular-core/src/lib/views/api/user/detail/user-detail.component.ts","../../../projects/ichec-angular-core/src/lib/views/api/user/detail/user-detail.component.html","../../../projects/ichec-angular-core/src/lib/views/api/user/edit/user-edit.component.ts","../../../projects/ichec-angular-core/src/lib/views/api/user/edit/user-edit.component.html","../../../projects/ichec-angular-core/src/lib/views/api/user/list/user.component.ts","../../../projects/ichec-angular-core/src/lib/views/api/user/list/user.component.html","../../../projects/ichec-angular-core/src/lib/views/api/group/detail/group-detail.component.ts","../../../projects/ichec-angular-core/src/lib/views/api/group/detail/group-detail.component.html","../../../projects/ichec-angular-core/src/lib/views/api/group/list/group.component.ts","../../../projects/ichec-angular-core/src/lib/views/api/group/list/group.component.html","../../../projects/ichec-angular-core/src/lib/views/api/organization/list/organization.component.ts","../../../projects/ichec-angular-core/src/lib/views/api/organization/list/organization.component.html","../../../projects/ichec-angular-core/src/lib/views/api/organization/detail/organization-detail.component.ts","../../../projects/ichec-angular-core/src/lib/views/api/organization/detail/organization-detail.component.html","../../../projects/ichec-angular-core/src/public-api.ts","../../../projects/ichec-angular-core/src/ichec-angular-core.ts"],"sourcesContent":["import { Observable, catchError, map, mergeMap, throwError } from 'rxjs';\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\n\nimport { Identifiable, IPortalMember } from '../models/core';\n\nexport enum ErrorCode {\n UnknownError = 1\n}\n\nexport class ApiError {\n code: ErrorCode = 1;\n text: string = \"\";\n}\n\nexport class RestService<T extends Identifiable> {\n\n constructor(private _url: string,\n protected _endpoint_url: string,\n protected _http: HttpClient) {}\n\n deleteItem(id: number): Observable<void> {\n return this._http.delete(this.getBaseUrl() + id + \"/\",\n { headers: this.getHeaders() }).pipe(\n map(_response => {return void(0);}),\n catchError(this.handleError));\n }\n\n getForUser(user:IPortalMember): Observable<T[]>{\n return this.get(\"?user=\" + user.id);\n }\n\n get(query: string = \"\"): Observable<T[]> {\n return this._http.get<T[]>(this.getBaseUrl() + query,\n { headers: this.getHeaders() }).pipe(\n catchError(this.handleError));\n }\n\n getItem(id: number): Observable<T> {\n return this._http.get<T>(this.getBaseUrl() + id,\n { headers: this.getHeaders() }).pipe(\n catchError(this.handleError));\n }\n\n getUrl(url: string): Observable<T> {\n return this._http.get<T>(url,\n { headers: this.getHeaders() }).pipe(\n catchError(this.handleError)); \n }\n\n putItem(item: T, content_type: string= \"application/json\"): Observable<T> {\n return this._http.put<T>(this.getBaseUrl() + item.id + \"/\",\n item,\n { headers: this.getHeaders(content_type) }).pipe(\n catchError(this.handleError));\n }\n\n patchItemMedia(id: number, form: FormData): Observable<T>\n {\n const token = \"Token \" + localStorage.getItem(\"api_token\");\n const headers = new HttpHeaders({\n 'Authorization': token,\n 'Accept': 'application/json'\n });\n return this._http.patch(this.getMediaUrl() + id + \"/\",\n form,\n { headers: headers }).pipe(\n mergeMap(_ => this.getItem(id)), \n catchError(this.handleError)); \n }\n\n patchItem(item: T, include_keys: string[], exclude_keys: string[]) : Observable<T> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function replacer(key: string, value: any)\n {\n if (exclude_keys.includes(key))\n {\n return undefined;\n }\n else\n {\n return value;\n }\n }\n return this._http.patch(this.getBaseUrl() + item.id + \"/\",\n JSON.stringify(item, replacer),\n { headers: this.getHeaders() }).pipe(\n map(response => response as T),\n catchError(this.handleError));\n }\n\n postItem(item: T): Observable<T> {\n return this._http.post<T>(this.getBaseUrl(),\n item,\n { headers: this.getHeaders() }).pipe(\n catchError(this.handleError));\n }\n\n private getHeaders(content_type: string = \"application/json\"): HttpHeaders {\n const token = \"Token \" + localStorage.getItem(\"api_token\");\n return new HttpHeaders({\n 'Authorization': token,\n 'Content-Type': content_type,\n 'Accept': 'application/json'\n });\n }\n\n private getBaseUrl(): string {\n return this._endpoint_url + \"/api/\" + this._url + \"/\";\n }\n\n private getMediaUrl(): string{\n return this._endpoint_url + \"/api/\" + this._url.slice(0, -1) + \"_media/\";\n }\n\n handleError(error: HttpErrorResponse) {\n if (error.status === 0) {\n // A client-side or network error occurred. Handle it accordingly.\n console.error('Client side or network error:', error.error);\n } else {\n console.error(\n `Backend returned code ${error.status}, body was: `, error.error);\n }\n // Return an observable with a user-facing error message.\n return throwError(() => error);\n }\n}\n","import { Observable, BehaviorSubject, tap, map, mergeAll, catchError } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\n\nimport { RestService } from './rest.service';\nimport { IPortalMember } from '../models/core';\n\ninterface TokenResponse {\n user_id: string;\n token: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class UserService extends RestService<IPortalMember> {\n\n /** Service to handle IPortalMember via REST and also handle logins.\n */ \n\n loggedInUser: BehaviorSubject<IPortalMember | null> = new BehaviorSubject<IPortalMember | null>(null);\n\n constructor(_http: HttpClient,\n @Inject(String) _endpoint_url: string) {\n super('members', _endpoint_url, _http);\n }\n\n login(username: string, password: string): Observable<void> {\n\n console.log(\"Attempting login\");\n const body = new URLSearchParams();\n body.set('username', username);\n body.set('password', password);\n const headers = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\n const api_auth_endpoint = this._endpoint_url + \"/api-token-auth/\"\n\n return this._http.post<TokenResponse>(api_auth_endpoint,\n body.toString(),\n { headers: headers }).pipe(\n map(token => this.onLoginToken(token)),\n mergeAll(),\n catchError(this.handleError));\n }\n\n logout() {\n if (this.loggedInUser === null) {\n return;\n }\n console.log(\"Logging out\")\n localStorage.removeItem(\"api_token\");\n this.loggedInUser.next(null);\n }\n\n private onLoginToken(token_response: TokenResponse): Observable<void> {\n console.log(\"Got login token - fetching corresponding user.\");\n localStorage.setItem(\"api_token\", token_response.token);\n return this.getItem(Number(token_response.user_id)).pipe(\n tap(user => this.onLoggedIn(user)),\n map(_response => {return void(0);}),\n catchError(this.handleError));\n }\n\n private onLoggedIn(user: IPortalMember) {\n console.log(\"Log in succesful for user: \" + user.username);\n this.loggedInUser.next(user);\n }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { RestService } from './rest.service';\nimport { UserService } from './user.service';\nimport { IGroup, IPortalMember } from '../models/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupService extends RestService<IGroup> {\n\n userItems: BehaviorSubject<IGroup[]> = new BehaviorSubject<IGroup[]>([]);\n \n constructor(private userService: UserService,\n http: HttpClient,\n @Inject(String) endpoint_url: string) {\n super(\"groups\", endpoint_url, http)\n\n this.userService.loggedInUser.subscribe(user => this.refreshUserItems(user));\n }\n\n private refreshUserItems(user: IPortalMember | null)\n {\n if (user)\n {\n this.getForUser(user).subscribe(items => this.userItems.next(items)); \n }\n else\n {\n this.userItems.next([]);\n }\n }\n}\n","export interface Identifiable{\n id: number;\n url: string;\n}\n\nexport interface IPortalMember extends Identifiable {\n username: string;\n email: string;\n first_name: string;\n last_name: string;\n phone: string;\n organization: string;\n}\n\nexport class PortalMember implements IPortalMember {\n id = 0;\n url = \"\";\n username = \"\";\n email = \"\";\n first_name = \"\";\n last_name = \"\";\n phone = \"\";\n organization = \"\";\n}\n\nexport interface IGroup extends Identifiable {\n name: string;\n}\n\n\nexport class Group implements IGroup {\n name = \"\";\n url = \"\";\n id = 0;\n}\n\nexport interface IOrganization extends Identifiable {\n name: string;\n acronym: string;\n description: string;\n address: string;\n website: string;\n country: string;\n members: string[];\n}\n\nexport class Organization implements IOrganization {\n id = 0;\n url = \"\";\n name = \"\";\n acronym = \"\";\n description = \"\";\n address = \"\";\n website = \"\";\n country = \"\";\n members: string[] = [];\n}\n\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { RestService } from './rest.service'\nimport { IOrganization } from '../models/core'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrganizationService extends RestService<IOrganization> {\n\n constructor(http: HttpClient,\n @Inject(String) endpoint_url: string) {\n super(\"organizations\", endpoint_url, http)\n\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { UserService } from './user.service'\nimport { GroupService } from './group.service'\nimport { IGroup} from '../models/core';\n\n\nexport interface NavOption\n{\n name: string;\n route: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class LeftNavService {\n\n groups: IGroup[] = [];\n options: NavOption[] = [];\n \n constructor(private userService: UserService,\n private groupService: GroupService) {\n this.groupService.userItems.subscribe(groups => this.onGroupsUpdated(groups));\n }\n\n onGroupsUpdated(groups: IGroup[]){\n this.groups = groups;\n this.updateOptions();\n }\n\n isConsortiumAdmin(): boolean {\n return this.groups.some(g => g.name == \"ConsortiumAdmins\");\n }\n\n updateOptions() {\n if (this.isConsortiumAdmin())\n {\n this.options = [\n { name: \"Home\", route: \"home\" },\n { name: \"Facilities\", route: \"facilities\" },\n { name: \"Access Calls\", route: \"access_calls\" },\n { name: \"Users\", route: \"users\" },\n ]\n }\n else\n {\n this.options = [];\n }\n }\n\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatMenuModule} from '@angular/material/menu';\n\nimport { UserService } from '../../services/user.service';\nimport { LeftNavService } from '../../services/left-nav.service';\nimport { IPortalMember } from '../../models/core';\n\n@Component({\n selector: 'app-top-bar',\n imports: [NgIf, RouterModule, MatToolbarModule, MatIconModule, MatButtonModule, MatMenuModule],\n templateUrl: './top-bar.component.html',\n styleUrl: './top-bar.component.css'\n})\nexport class TopBarComponent implements OnInit {\n user?:IPortalMember | null = null;\n @Input() title:string = \"\";\n\n constructor(private userService: UserService,\n private leftNavService: LeftNavService) {}\n\n ngOnInit(): void {\n this.userService.loggedInUser.subscribe(user => {\n this.user = user;\n });\n }\n\n onLogout()\n {\n this.userService.logout();\n }\n}\n","\n <mat-toolbar *ngIf=\"user\" style=\"height:60px\">\n <a mat-icon-button class=\"example-icon\" [routerLink]=\"['home']\">\n <mat-icon>home</mat-icon>\n </a>\n <span>{{title}}</span>\n <span class=\"topbar-spacer\"></span>\n <span>{{user.username}}</span>\n <button mat-icon-button class=\"example-icon\" aria-label=\"User profile\" [matMenuTriggerFor]=\"profile_menu\">\n <mat-icon>person</mat-icon>\n </button>\n <mat-menu #profile_menu=\"matMenu\">\n <button mat-menu-item (click)=\"onLogout()\"> Log Out</button>\n </mat-menu>\n </mat-toolbar>\n","import { Component } from '@angular/core';\n\nimport { RouterOutlet, RouterModule } from '@angular/router';\n\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {MatListModule} from '@angular/material/list';\n\nimport { LeftNavService } from '../../services/left-nav.service';\n\n@Component({\n selector: 'app-left-nav',\n imports: [MatSidenavModule, MatListModule, RouterOutlet, RouterModule,],\n templateUrl: './left-nav.component.html',\n styleUrl: './left-nav.component.css'\n})\nexport class LeftNavComponent {\n\n constructor(private leftNavService : LeftNavService)\n {\n }\n\n getOptions()\n {\n return this.leftNavService.options;\n }\n\n}\n","<mat-sidenav-container class=\"leftnav-container\">\n <mat-sidenav\n mode=\"side\"\n opened\n style=\"padding: 5px; width: 160px\">\n <mat-nav-list>\n @for (option of getOptions(); track option) {\n <a mat-list-item [routerLink]=\"option.route\" [routerLinkActive]=\"['is-active']\">{{ option.name }}</a>\n }\n </mat-nav-list>\n </mat-sidenav>\n <mat-sidenav-content style=\"display:flex; flex-grow: 1; height:90vh\"> \n <router-outlet/>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import { Component, OnInit } from '@angular/core';\nimport { NgIf } from '@angular/common';\n\nimport { FormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatCardModule } from '@angular/material/card';\n\n//import { environment } from '../../../environments/environment';\nimport { UserService } from '../../services/user.service';\nimport { LoginUser } from './login-user';\n\n@Component({\n selector: 'app-landing',\n imports: [FormsModule, MatCardModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule, NgIf],\n templateUrl: './landing.component.html',\n styleUrl: './landing.component.css'\n})\n\nexport class LandingComponent implements OnInit {\n\n loginUser: LoginUser = {\n //password: environment.default_password,\n //name: environment.default_username\n password: \"marinerg99\",\n name: \"regular_user\"\n };\n\n loginError: string = \"\";\n\n constructor(private userService: UserService, private router: Router) {}\n\n ngOnInit(): void {\n\n // This is a development version hack to 'autologin' to make it\n // easier to play around. The name will be empty at init time\n // for the production version.\n if (this.loginUser.name)\n {\n this.login();\n }\n }\n\n login() {\n this.loginError = \"\";\n return this.userService.login(this.loginUser.name, this.loginUser.password).subscribe({\n next: () => this.onLoggedIn(),\n error: (error) => this.onLoginError(error)\n });\n }\n\n onLoginError(error: HttpErrorResponse) {\n console.log(\"Got login error\");\n console.log(error);\n this.loginError = \"There was an error logging in\";\n }\n\n onLoggedIn() {\n this.router.navigateByUrl(\"/home\");\n }\n\n}\n","\n <p>Welcome to the Marinerg test facility access portal</p>\n \n <mat-card style=\"text-align:center;\">\n <form class=\"base-form\" #loginForm=\"ngForm\" (ngSubmit)=\"login()\">\n <mat-card-content>\n <mat-form-field class=\"form-field\">\n <input matInput\n placeholder=\"Username\"\n type=\"text\"\n [(ngModel)]=\"loginUser.name\"\n name=\"username\"\n required>\n </mat-form-field>\n <mat-form-field class=\"form-field\">\n <input matInput\n placeholder=\"Password\"\n type=\"password\"\n [(ngModel)]=\"loginUser.password\"\n name=\"password\"\n required>\n </mat-form-field>\n </mat-card-content>\n <div *ngIf=\"loginError\" class=\"error\">\n <mat-icon>error</mat-icon><p>{{loginError}}</p>\n </div>\n <button mat-flat-button\n type=\"submit\"\n [disabled]=\"!loginForm.form.valid\">Log In</button>\n </form>\n </mat-card>\n\n\n \n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router'\nimport { Location } from '@angular/common';\n\nimport { Identifiable, IPortalMember } from '../../../models/core';\nimport { RestService } from '../../../services/rest.service';\nimport { UserService } from '../../../services/user.service';\n\n@Component({\n selector: 'app-detail-view',\n imports: [],\n templateUrl: './detail-view.component.html',\n styleUrl: './detail-view.component.css'\n})\n\nexport abstract class DetailViewComponent<T extends Identifiable> implements OnInit {\n\n item?: T;\n\n constructor(\n protected _route: ActivatedRoute,\n private _location: Location,\n protected _userService: UserService,\n protected _restService: RestService<T>) {}\n\n ngOnInit(): void {\n this.getItem();\n }\n\n onItemAvailable() {\n this._userService.loggedInUser.subscribe(user => { if (user) { this.onItemAndUserAvailable(user); } });\n }\n\n onItemAndUserAvailable(_: IPortalMember) {\n }\n\n goBack(): void {\n this._location.back();\n }\n\n private getItem(): void {\n const id = Number(this._route.snapshot.paramMap.get('id'));\n this._restService.getItem(id)\n .subscribe(item => {\n this.item = item;\n this.onItemAvailable();\n });\n }\n\n update() {\n if (!this.item) {\n return;\n }\n\n this._restService.putItem(this.item).subscribe(\n item => this.item = item);\n }\n}\n","","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router'\nimport { Location } from '@angular/common';\n\nimport { Identifiable, IPortalMember } from '../../../models/core';\nimport { RestService } from '../../../services/rest.service';\nimport { UserService } from '../../../services/user.service';\n\n@Component({\n selector: 'app-edit-view',\n imports: [],\n templateUrl: './edit-view.component.html',\n styleUrl: './edit-view.component.css'\n})\n\nexport abstract class EditViewComponent<T extends Identifiable> implements OnInit {\n\n item?: T;\n createMode: boolean = false;\n\n constructor(\n protected _route: ActivatedRoute,\n private _location: Location,\n protected _userService: UserService,\n protected _restService: RestService<T>) {}\n\n ngOnInit(): void {\n this.getItem();\n }\n\n onItemAvailable() {\n this._userService.loggedInUser.subscribe(user => { if (user) { this.onItemAndUserAvailable(user); } });\n }\n\n onItemAndUserAvailable(_: IPortalMember) {\n }\n\n goBack(): void {\n this._location.back();\n }\n\n save() {\n if (this.createMode) {\n this.createItem();\n }\n else {\n this.updateItem();\n }\n }\n\n protected updateItem()\n {\n if (!this.item) {\n return;\n }\n this._restService.putItem(this.item).subscribe(\n item => this.onItemUpdated(item)\n );\n }\n\n protected createItem()\n {\n if (!this.item) {\n return;\n }\n this._restService.postItem(this.item).subscribe(\n item => this.onItemUpdated(item)); \n }\n\n cancel() {\n this.goBack();\n }\n\n protected abstract getTemplateItem(): T\n\n private isCreateRoute(): boolean\n {\n const urls = this._route.snapshot.url;\n if (urls.length >= 2)\n {\n if (urls[1].path == \"create\")\n {\n return true;\n }\n }\n return false;\n }\n\n private getItem(): void {\n \n if (this.isCreateRoute()) {\n this.item = this.getTemplateItem();\n this.createMode = true;\n this.onItemAvailable();\n }\n else {\n const id_str = this._route.snapshot.paramMap.get('id');\n this._restService.getItem(Number(id_str))\n .subscribe(item => {\n this.item = item;\n this.onItemAvailable()\n });\n }\n }\n\n protected onItemUpdated(item: T) {\n this.item = item;\n this.goBack();\n }\n}\n","","import { Component, OnInit} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\n\nimport { MatTableModule } from '@angular/material/table';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { Identifiable, IPortalMember } from '../../../models/core';\nimport { UserService } from '../../../services/user.service';\nimport { RestService } from '../../../services/rest.service';\n\n@Component({\n selector: 'app-table-view',\n imports: [MatTableModule,\n MatButtonModule,\n MatIconModule,\n RouterModule],\n styleUrl: './list-view.component.css',\n templateUrl: './list-view.component.html'\n})\n\nexport class ListViewComponent<T extends Identifiable> implements OnInit{\n\n user?: IPortalMember;\n items: T[] = [];\n displayedColumns: string[] = [];\n\n constructor(\n private _route: ActivatedRoute,\n private _location: Location,\n private _userService: UserService,\n protected _restService: RestService<T>,\n ) {}\n\n ngOnInit(): void {\n this.getItems();\n }\n \n getItems(): void {\n\n if (this.isSelfList())\n {\n this._userService.loggedInUser.subscribe(\n user => {\n if(user){this.onUserChange(user)}})\n }\n else\n {\n this._restService.get().subscribe(items => this.items = items);\n }\n }\n\n private onUserChange(user: IPortalMember)\n {\n this.user = user;\n this._restService.getForUser(this.user).subscribe(items => this.items = items);\n }\n\n protected isSelfList()\n {\n const url_segments = this._route.snapshot.url;\n if (url_segments.length == 2)\n {\n if (url_segments[1].path == \"self\")\n {\n return true;\n }\n }\n return false;\n }\n\n goBack(): void {\n this._location.back();\n }\n}\n\n","<div class=\"container\">\n <div>\n <table mat-table [dataSource]=\"items\" class=\"mat-elevation-z8\">\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef>Name</th>\n <td mat-cell *matCellDef=\"let element\"> {{element.name}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"website\">\n <th mat-header-cell *matHeaderCellDef> Website </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.website}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_partner\">\n <th mat-header-cell *matHeaderCellDef> Is Partner </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.is_partner}} </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [routerLink]=\"row.id\"\n [routerLinkActive]=\"['is-active']\"\n ></tr>\n\n </table>\n </div>\n <div class=\"button_container\">\n <a mat-fab class=\"btn-block\" [routerLink]=\"['create']\">\n <mat-icon>add</mat-icon></a>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { ActivatedRoute, RouterModule } from '@angular/router'\nimport { Location } from '@angular/common';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DetailViewComponent } from '../../../base/detail-view/detail-view.component';\n\nimport { IPortalMember } from '../../../../models/core';\n\nimport { UserService } from '../../../../services/user.service';\n\n@Component({\n selector: 'app-user-detail',\n imports: [NgIf,\n RouterModule,\n MatButtonModule,\n MatIconModule],\n templateUrl: './user-detail.component.html',\n styleUrl: './user-detail.component.css'\n})\nexport class UserDetailComponent extends DetailViewComponent<IPortalMember> {\n\n \n constructor(\n _route: ActivatedRoute,\n _location: Location,\n _restService: UserService) {\n super(_route, _location, _restService, _restService);\n }\n\n}\n","<div>\n <a mat-icon-button class=\"btn-block\" (click)=\"goBack()\">\n <mat-icon>arrow_back</mat-icon>\n </a>\n</div>\n \n<div class=\"container\">\n <div *ngIf=\"item\" class=\"item_view\">\n <div>\n <h3 class=\"item_heading\">{{item.username}} </h3>\n <a mat-mini-fab\n class=\"btn-block\"\n [routerLink]=\"['/users/edit/', item.id]\">\n <mat-icon>edit</mat-icon>\n </a>\n </div>\n \n <div class=\"item_field\">\n <span><b>Email: </b></span>\n {{item.email}}\n </div>\n \n <div class=\"item_field\">\n <span><b>First Name: </b></span>\n {{item.first_name}}\n </div>\n \n <div class=\"item_field\">\n <span><b>Last Name: </b></span>\n {{item.last_name}}\n </div>\n \n </div> \n</div>\n","import { Component } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ActivatedRoute, RouterModule } from '@angular/router'\nimport { Location } from '@angular/common';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatCardModule } from '@angular/material/card';\n\nimport { EditViewComponent } from '../../../base/edit-view/edit-view.component';\nimport { PortalMember, IPortalMember } from '../../../../models/core';\nimport { UserService } from '../../../../services/user.service';\n\n\n@Component({\n selector: 'app-user-edit',\n imports: [NgIf,\n FormsModule,\n RouterModule,\n MatButtonModule,\n MatCardModule,\n MatInputModule,\n MatFormFieldModule,\n MatIconModule,\n ],\n templateUrl: './user-edit.component.html',\n styleUrl: './user-edit.component.css'\n})\nexport class UserEditComponent extends EditViewComponent<IPortalMember> {\n\n \n constructor(\n _route: ActivatedRoute,\n _location: Location,\n _restService: UserService) {\n super(_route, _location, _restService, _restService);\n }\n\n protected override getTemplateItem(): IPortalMember\n {\n return new PortalMember();\n }\n\n\n \n}\n","<div class=\"container\">\n <div>\n <a mat-icon-button class=\"btn-block\"\n (click)=\"goBack()\"><mat-icon>arrow_back</mat-icon></a>\n </div>\n \n <div *ngIf=\"item\" class=\"item_view\">\n <form class=\"example-form\">\n <mat-form-field class=\"form_field\">\n <input matInput\n placeholder=\"Username\"\n type=\"text\"\n [(ngModel)]=\"item.username\"\n name=\"username\">\n </mat-form-field>\n \n <mat-form-field class=\"form_field\">\n <input matInput\n placeholder=\"Email\"\n type=\"text\"\n [(ngModel)]=\"item.email\"\n name=\"email\">\n </mat-form-field>\n\n <mat-form-field class=\"form_field\">\n <input matInput\n placeholder=\"First Name\"\n type=\"text\"\n [(ngModel)]=\"item.first_name\"\n name=\"first_name\">\n </mat-form-field>\n \n <mat-form-field class=\"form_field\">\n <input matInput\n placeholder=\"Last Name\"\n type=\"text\"\n [(ngModel)]=\"item.last_name\"\n name=\"last_name\">\n </mat-form-field>\n \n </form>\n \n <div style=\"margin:10px; padding:10px;display: flex; flex-direction: row\">\n <button mat-fab class=\"btn-block\" (click)=\"save()\" style=\"padding:10px\"><mat-icon>save</mat-icon></button>\n <button mat-fab class=\"btn-block\" (click)=\"cancel()\" style=\"padding:10px\"><mat-icon>cancel</mat-icon></button>\n </div>\n </div>\n \n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\n\nimport { MatListModule } from '@angular/material/list';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ListViewComponent } from '../../../base/list-view/list-view.component';\n\nimport { UserService } from '../../../../services/user.service';\nimport { IPortalMember } from '../../../../models/core';\n\n\n@Component({\n selector: 'app-user',\n imports: [MatListModule, MatCardModule,\n MatButtonModule,\n MatIconModule,\n RouterModule],\n templateUrl: './user.component.html',\n styleUrl: './user.component.css'\n})\n\nexport class UserComponent extends ListViewComponent<IPortalMember> implements OnInit{\n \n constructor(_route: ActivatedRoute,\n _location: Location,\n _userService: UserService,\n _restService: UserService) {\n super(_route, _location, _userService, _restService)\n }\n}\n","<div class=\"container\">\n <mat-nav-list>\n @for (item of items; track item){\n <mat-card mat-list-item class=\"item-card\" [routerLink]=\"['/users/detail/', item.id]\" [routerLinkActive]=\"['is-active']\">\n <mat-card-header>\n <mat-card-title-group style=\"padding:5px\">\n <mat-card-title>{{item.first_name}} {{item.last_name}}</mat-card-title>\n <mat-card-subtitle>{{item.username}}</mat-card-subtitle>\n \n </mat-card-title-group>\n </mat-card-header>\n <mat-card-content>\n <p>Email: {{item.email}} </p>\n </mat-card-content>\n </mat-card>\n }\n </mat-nav-list>\n\n</div>\n","import { Component } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ActivatedRoute, RouterModule } from '@angular/router'\nimport { Location } from '@angular/common';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatCardModule } from '@angular/material/card';\n\nimport { DetailViewComponent } from '../../../base/detail-view/detail-view.component';\nimport { IGroup } from '../../../../models/core'\nimport { GroupService } from '../../../../services/group.service';\nimport { UserService } from '../../../../services/user.service';\n\n@Component({\n selector: 'app-group-detail',\n imports: [NgIf,\n FormsModule,\n RouterModule,\n MatButtonModule,\n MatCardModule,\n MatInputModule,\n MatFormFieldModule,\n MatIconModule],\n templateUrl: './group-detail.component.html',\n styleUrl: './group-detail.component.css'\n})\nexport class GroupDetailComponent extends DetailViewComponent<IGroup> {\n\n constructor(\n _route: ActivatedRoute,\n _location: Location,\n _userService: UserService,\n _restService: GroupService) {\n super(_route, _location, _userService, _restService);\n }\n\n}\n","<div class=\"container\">\n <div>\n <a mat-icon-button class=\"btn-block\"\n (click)=\"goBack()\"><mat-icon>arrow_back</mat-icon></a>\n </div>\n \n <div *ngIf=\"item\" class=\"item_view\">\n <div>\n <h1 class=\"mat-display-1\" style=\"display:inline\"> {{item.name}} </h1>\n <a mat-mini-fab class=\"btn-block\" [routerLink]=\"['/groups/edit/', item.id]\">\n <mat-icon>edit</mat-icon>\n </a> \n </div>\n <div class=\"form_field\">{{item.name}}</div>\n </div>\n \n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\n\nimport { MatTableModule } from '@angular/material/table';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ListViewComponent } from '../../../base/list-view/list-view.component'\n\nimport { UserService } from '../../../../services/user.service'; \nimport { GroupService } from '../../../../services/group.service';\nimport { IGroup } from '../../../../models/core';\n\n@Component({\n selector: 'app-group',\n imports: [\n MatTableModule,\n MatButtonModule,\n MatIconModule,\n RouterModule],\n templateUrl: './group.component.html',\n styleUrl: './group.component.css'\n})\n\nexport class GroupComponent extends ListViewComponent<IGroup> implements OnInit{\n \n override displayedColumns: string[] = ['name']\n\n constructor(_route: ActivatedRoute,\n _location: Location,\n _userService: UserService,\n _restService: GroupService) {\n super(_route, _location, _userService, _restService)\n }\n}\n","<div class=\"container\">\n <div>\n <table mat-table [dataSource]=\"items\" class=\"mat-elevation-z8\">\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef>Name</th>\n <td mat-cell *matCellDef=\"let element\"> {{element.name}} </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [routerLink]=\"row.id\"\n [routerLinkActive]=\"['is-active']\"\n ></tr>\n\n </table>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\n\nimport { MatTableModule } from '@angular/material/table';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ListViewComponent } from '../../../base/list-view/list-view.component'\n\nimport { UserService } from '../../../../services/user.service';\nimport { OrganizationService } from '../../../../services/organization.service';\nimport { Organization } from '../../../../models/core';\n\n@Component({\n selector: 'app-organization',\n imports: [\n MatTableModule,\n MatButtonModule,\n MatIconModule,\n RouterModule],\n styleUrl: './organization.component.css',\n templateUrl: './organization.component.html'\n})\n\nexport class OrganizationComponent extends ListViewComponent<Organization>{\n \n override displayedColumns: string[] = ['name', 'website', 'is_partner']\n\n constructor(_route: ActivatedRoute,\n _location: Location,\n _userService: UserService,\n _restService: OrganizationService) {\n super(_route, _location, _userService, _restService)\n }\n}\n","<div class=\"container\">\n <div>\n <table mat-table [dataSource]=\"items\" class=\"mat-elevation-z8\">\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef>Name</th>\n <td mat-cell *matCellDef=\"let element\"> {{element.name}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"website\">\n <th mat-header-cell *matHeaderCellDef> Website </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.website}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_partner\">\n <th mat-header-cell *matHeaderCellDef> Is Partner </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.is_partner}} </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"\n [routerLink]=\"row.id\"\n [routerLinkActive]=\"['is-active']\"\n ></tr>\n\n </table>\n </div>\n <div class=\"button_container\">\n <a mat-fab class=\"btn-block\" [routerLink]=\"['create']\">\n <mat-icon>add</mat-icon></a>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ActivatedRoute, RouterModule } from '@angular/router'\nimport { Location } from '@angular/common';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatCardModule } from '@angular/material/card';\n\nimport { DetailViewComponent } from '../../../base/detail-view/detail-view.component';\nimport { IOrganization } from '../../../../models/core'\nimport { OrganizationService } from '../../../../services/organization.service';\nimport { UserService } from '../../../../services/user.service';\n\n@Component({\n selector: 'app-organization-detail',\n imports: [NgIf,\n FormsModule,\n RouterModule,\n MatButtonModule,\n MatCardModule,\n MatInputModule,\n MatFormFieldModule,\n MatIconModule],\n templateUrl: './organization-detail.component.html',\n styleUrl: './organization-detail.component.css'\n})\nexport class OrganizationDetailComponent extends DetailViewComponent<IOrganization> {\n\n constructor(\n _route: ActivatedRoute,\n _location: Location,\n _userService: UserService,\n _restService: OrganizationService) {\n super(_route, _location, _userService, _restService);\n }\n}\n","<div class=\"container\">\n <div>\n <a mat-icon-button class=\"btn-block\"\n (click)=\"goBack()\"><mat-icon>arrow_back</mat-icon></a>\n </div>\n \n <div *ngIf=\"item\" class=\"item_view\">\n <div>\n <h3 class=\"mat-display-1\" style=\"display:inline\"> {{item.name}} </h3> \n <a mat-mini-fab class=\"btn-block\" [routerLink]=\"['/organizations/edit/', item.id]\">\n <mat-icon>edit</mat-icon>\n </a>\n </div>\n <div class=\"form_field\">{{item.description}}</div>\n <div class=\"form_field\"><h3>Address</h3>{{item.address}}</div>\n <div class=\"form_field\"><h3>Website</h3>{{item.website}}</div>\n </div>\n \n</div>\n","/*\n * Public API Surface of ichec-angular-core\n */\n\nimport { Provider } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { GroupService } from './lib/services/group.service';\nimport { UserService } from './lib/services/user.service';\n\nexport * from './lib/models/core';\nexport * from './lib/models/left-nav-options';\n\nexport * from './lib/services/rest.service';\nexport * from './lib/services/user.service';\nexport * from './lib/services/group.service';\nexport * from './lib/services/organization.service';\nexport * from './lib/services/left-nav.service';\n\nexport * from './lib/views/top-bar/top-bar.component';\nexport * from './lib/views/left-nav/left-nav.component';\nexport * from './lib/views/landing/landing.component';\nexport * from './lib/views/base/detail-view/detail-view.component';\nexport * from './lib/views/base/edit-view/edit-view.component';\nexport * from './lib/views/base/list-view/list-view.component';\n\nexport * from './lib/views/api/user/detail/user-detail.component';\nexport * from './lib/views/api/user/edit/user-edit.component';\nexport * from './lib/views/api/user/list/user.component';\nexport * from './lib/views/api/group/detail/group-detail.component';\nexport * from './lib/views/api/group/list/group.component';\nexport * from './lib/views/api/organization/list/organization.component';\nexport * from './lib/views/api/organization/detail/organization-detail.component';\n\n\nexport function provideUserService(endpoint_url: string): Provider {\n return {\n provide: UserService,\n useFactory: (http: HttpClient) => new UserService(http, endpoint_url),\n deps: [HttpClient]\n };\n}\n\nexport function provideGroupService(endpoint_url: string): Provider {\n return {\n provide: GroupService,\n useFactory: (user: UserService, http: HttpClient) => new GroupService(user, http, endpoint_url),\n deps: [UserService, HttpClient]\n }\n\n};\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UserService","i2.GroupService","i2.LeftNavService","i3","i1.LeftNavService","i4","i2","i5","i7","i1","i3.UserService","i4.RestService","i6","i8","i4.GroupService","i4.OrganizationService"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="ichec-angular-core" />
5
+ export * from './public-api';
@@ -0,0 +1,50 @@
1
+ export interface Identifiable {
2
+ id: number;
3
+ url: string;
4
+ }
5
+ export interface IPortalMember extends Identifiable {
6
+ username: string;
7
+ email: string;
8
+ first_name: string;
9
+ last_name: string;
10
+ phone: string;
11
+ organization: string;
12
+ }
13
+ export declare class PortalMember implements IPortalMember {
14
+ id: number;
15
+ url: string;
16
+ username: string;
17
+ email: string;
18
+ first_name: string;
19
+ last_name: string;
20
+ phone: string;
21
+ organization: string;
22
+ }
23
+ export interface IGroup extends Identifiable {
24
+ name: string;
25
+ }
26
+ export declare class Group implements IGroup {
27
+ name: string;
28
+ url: string;
29
+ id: number;
30
+ }
31
+ export interface IOrganization extends Identifiable {
32
+ name: string;
33
+ acronym: string;
34
+ description: string;
35
+ address: string;
36
+ website: string;
37
+ country: string;
38
+ members: string[];
39
+ }
40
+ export declare class Organization implements IOrganization {
41
+ id: number;
42
+ url: string;
43
+ name: string;
44
+ acronym: string;
45
+ description: string;
46
+ address: string;
47
+ website: string;
48
+ country: string;
49
+ members: string[];
50
+ }
@@ -0,0 +1,8 @@
1
+ export interface LeftNavOption {
2
+ name: string;
3
+ route: string;
4
+ }
5
+ export interface LeftNavCategory {
6
+ name: string;
7
+ options: LeftNavOption[];
8
+ }
@@ -0,0 +1,14 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { RestService } from './rest.service';
4
+ import { UserService } from './user.service';
5
+ import { IGroup } from '../models/core';
6
+ import * as i0 from "@angular/core";
7
+ export declare class GroupService extends RestService<IGroup> {
8
+ private userService;
9
+ userItems: BehaviorSubject<IGroup[]>;
10
+ constructor(userService: UserService, http: HttpClient, endpoint_url: string);
11
+ private refreshUserItems;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<GroupService, never>;
13
+ static ɵprov: i0.ɵɵInjectableDeclaration<GroupService>;
14
+ }
@@ -0,0 +1,20 @@
1
+ import { UserService } from './user.service';
2
+ import { GroupService } from './group.service';
3
+ import { IGroup } from '../models/core';
4
+ import * as i0 from "@angular/core";
5
+ export interface NavOption {
6
+ name: string;
7
+ route: string;
8
+ }
9
+ export declare class LeftNavService {
10
+ private userService;
11
+ private groupService;
12
+ groups: IGroup[];
13
+ options: NavOption[];
14
+ constructor(userService: UserService, groupService: GroupService);
15
+ onGroupsUpdated(groups: IGroup[]): void;
16
+ isConsortiumAdmin(): boolean;
17
+ updateOptions(): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<LeftNavService, never>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<LeftNavService>;
20
+ }
@@ -0,0 +1,9 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { RestService } from './rest.service';
3
+ import { IOrganization } from '../models/core';
4
+ import * as i0 from "@angular/core";
5
+ export declare class OrganizationService extends RestService<IOrganization> {
6
+ constructor(http: HttpClient, endpoint_url: string);
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrganizationService, never>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<OrganizationService>;
9
+ }
@@ -0,0 +1,29 @@
1
+ import { Observable } from 'rxjs';
2
+ import { HttpClient, HttpErrorResponse } from '@angular/common/http';
3
+ import { Identifiable, IPortalMember } from '../models/core';
4
+ export declare enum ErrorCode {
5
+ UnknownError = 1
6
+ }
7
+ export declare class ApiError {
8
+ code: ErrorCode;
9
+ text: string;
10
+ }
11
+ export declare class RestService<T extends Identifiable> {
12
+ private _url;
13
+ protected _endpoint_url: string;
14
+ protected _http: HttpClient;
15
+ constructor(_url: string, _endpoint_url: string, _http: HttpClient);
16
+ deleteItem(id: number): Observable<void>;
17
+ getForUser(user: IPortalMember): Observable<T[]>;
18
+ get(query?: string): Observable<T[]>;
19
+ getItem(id: number): Observable<T>;
20
+ getUrl(url: string): Observable<T>;
21
+ putItem(item: T, content_type?: string): Observable<T>;
22
+ patchItemMedia(id: number, form: FormData): Observable<T>;
23
+ patchItem(item: T, include_keys: string[], exclude_keys: string[]): Observable<T>;
24
+ postItem(item: T): Observable<T>;
25
+ private getHeaders;
26
+ private getBaseUrl;
27
+ private getMediaUrl;
28
+ handleError(error: HttpErrorResponse): Observable<never>;
29
+ }
@@ -0,0 +1,17 @@
1
+ import { Observable, BehaviorSubject } from 'rxjs';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { RestService } from './rest.service';
4
+ import { IPortalMember } from '../models/core';
5
+ import * as i0 from "@angular/core";
6
+ export declare class UserService extends RestService<IPortalMember> {
7
+ /** Service to handle IPortalMember via REST and also handle logins.
8
+ */
9
+ loggedInUser: BehaviorSubject<IPortalMember | null>;
10
+ constructor(_http: HttpClient, _endpoint_url: string);
11
+ login(username: string, password: string): Observable<void>;
12
+ logout(): void;
13
+ private onLoginToken;
14
+ private onLoggedIn;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserService, never>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<UserService>;
17
+ }
@@ -0,0 +1,12 @@
1
+ import { ActivatedRoute } from '@angular/router';
2
+ import { Location } from '@angular/common';
3
+ import { DetailViewComponent } from '../../../base/detail-view/detail-view.component';
4
+ import { IGroup } from '../../../../models/core';
5
+ import { GroupService } from '../../../../services/group.service';
6
+ import { UserService } from '../../../../services/user.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare class GroupDetailComponent extends DetailViewComponent<IGroup> {
9
+ constructor(_route: ActivatedRoute, _location: Location, _userService: UserService, _restService: GroupService);
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<GroupDetailComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<GroupDetailComponent, "app-group-detail", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,14 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Location } from '@angular/common';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { ListViewComponent } from '../../../base/list-view/list-view.component';
5
+ import { UserService } from '../../../../services/user.service';
6
+ import { GroupService } from '../../../../services/group.service';
7
+ import { IGroup } from '../../../../models/core';
8
+ import * as i0 from "@angular/core";
9
+ export declare class GroupComponent extends ListViewComponent<IGroup> implements OnInit {
10
+ displayedColumns: string[];
11
+ constructor(_route: ActivatedRoute, _location: Location, _userService: UserService, _restService: GroupService);
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<GroupComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<GroupComponent, "app-group", never, {}, {}, never, never, true, never>;
14
+ }
@@ -0,0 +1,12 @@
1
+ import { ActivatedRoute } from '@angular/router';
2
+ import { Location } from '@angular/common';
3
+ import { DetailViewComponent } from '../../../base/detail-view/detail-view.component';
4
+ import { IOrganization } from '../../../../models/core';
5
+ import { OrganizationService } from '../../../../services/organization.service';
6
+ import { UserService } from '../../../../services/user.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare class OrganizationDetailComponent extends DetailViewComponent<IOrganization> {
9
+ constructor(_route: ActivatedRoute, _location: Location, _userService: UserService, _restService: OrganizationService);
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrganizationDetailComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrganizationDetailComponent, "app-organization-detail", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,13 @@
1
+ import { Location } from '@angular/common';
2
+ import { ActivatedRoute } from '@angular/router';
3
+ import { ListViewComponent } from '../../../base/list-view/list-view.component';
4
+ import { UserService } from '../../../../services/user.service';
5
+ import { OrganizationService } from '../../../../services/organization.service';
6
+ import { Organization } from '../../../../models/core';
7
+ import * as i0 from "@angular/core";
8
+ export declare class OrganizationComponent extends ListViewComponent<Organization> {
9
+ displayedColumns: string[];
10
+ constructor(_route: ActivatedRoute, _location: Location, _userService: UserService, _restService: OrganizationService);
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrganizationComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrganizationComponent, "app-organization", never, {}, {}, never, never, true, never>;
13
+ }
@@ -0,0 +1,11 @@
1
+ import { ActivatedRoute } from '@angular/router';
2
+ import { Location } from '@angular/common';
3
+ import { DetailViewComponent } from '../../../base/detail-view/detail-view.component';
4
+ import { IPortalMember } from '../../../../models/core';
5
+ import { UserService } from '../../../../services/user.service';
6
+ import * as i0 from "@angular/core";
7
+ export declare class UserDetailComponent extends DetailViewComponent<IPortalMember> {
8
+ constructor(_route: ActivatedRoute, _location: Location, _restService: UserService);
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserDetailComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserDetailComponent, "app-user-detail", never, {}, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,12 @@
1
+ import { ActivatedRoute } from '@angular/router';
2
+ import { Location } from '@angular/common';
3
+ import { EditViewComponent } from '../../../base/edit-view/edit-view.component';
4
+ import { IPortalMember } from '../../../../models/core';
5
+ import { UserService } from '../../../../services/user.service';
6
+ import * as i0 from "@angular/core";
7
+ export declare class UserEditComponent extends EditViewComponent<IPortalMember> {
8
+ constructor(_route: ActivatedRoute, _location: Location, _restService: UserService);
9
+ protected getTemplateItem(): IPortalMember;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserEditComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserEditComponent, "app-user-edit", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,12 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Location } from '@angular/common';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { ListViewComponent } from '../../../base/list-view/list-view.component';
5
+ import { UserService } from '../../../../services/user.service';
6
+ import { IPortalMember } from '../../../../models/core';
7
+ import * as i0 from "@angular/core";
8
+ export declare class UserComponent extends ListViewComponent<IPortalMember> implements OnInit {
9
+ constructor(_route: ActivatedRoute, _location: Location, _userService: UserService, _restService: UserService);
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserComponent, "app-user", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,23 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { ActivatedRoute } from '@angular/router';
3
+ import { Location } from '@angular/common';
4
+ import { Identifiable, IPortalMember } from '../../../models/core';
5
+ import { RestService } from '../../../services/rest.service';
6
+ import { UserService } from '../../../services/user.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare abstract class DetailViewComponent<T extends Identifiable> implements OnInit {
9
+ protected _route: ActivatedRoute;
10
+ private _location;
11
+ protected _userService: UserService;
12
+ protected _restService: RestService<T>;
13
+ item?: T;
14
+ constructor(_route: ActivatedRoute, _location: Location, _userService: UserService, _restService: RestService<T>);
15
+ ngOnInit(): void;
16
+ onItemAvailable(): void;
17
+ onItemAndUserAvailable(_: IPortalMember): void;
18
+ goBack(): void;
19
+ private getItem;
20
+ update(): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<DetailViewComponent<any>, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<DetailViewComponent<any>, "app-detail-view", never, {}, {}, never, never, true, never>;
23
+ }
@@ -0,0 +1,30 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { ActivatedRoute } from '@angular/router';
3
+ import { Location } from '@angular/common';
4
+ import { Identifiable, IPortalMember } from '../../../models/core';
5
+ import { RestService } from '../../../services/rest.service';
6
+ import { UserService } from '../../../services/user.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare abstract class EditViewComponent<T extends Identifiable> implements OnInit {
9
+ protected _route: ActivatedRoute;
10
+ private _location;
11
+ protected _userService: UserService;
12
+ protected _restService: RestService<T>;
13
+ item?: T;
14
+ createMode: boolean;
15
+ constructor(_route: ActivatedRoute, _location: Location, _userService: UserService, _restService: RestService<T>);
16
+ ngOnInit(): void;
17
+ onItemAvailable(): void;
18
+ onItemAndUserAvailable(_: IPortalMember): void;
19
+ goBack(): void;
20
+ save(): void;
21
+ protected updateItem(): void;
22
+ protected createItem(): void;
23
+ cancel(): void;
24
+ protected abstract getTemplateItem(): T;
25
+ private isCreateRoute;
26
+ private getItem;
27
+ protected onItemUpdated(item: T): void;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<EditViewComponent<any>, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<EditViewComponent<any>, "app-edit-view", never, {}, {}, never, never, true, never>;
30
+ }
@@ -0,0 +1,24 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Location } from '@angular/common';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { Identifiable, IPortalMember } from '../../../models/core';
5
+ import { UserService } from '../../../services/user.service';
6
+ import { RestService } from '../../../services/rest.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare class ListViewComponent<T extends Identifiable> implements OnInit {
9
+ private _route;
10
+ private _location;
11
+ private _userService;
12
+ protected _restService: RestService<T>;
13
+ user?: IPortalMember;
14
+ items: T[];
15
+ displayedColumns: string[];
16
+ constructor(_route: ActivatedRoute, _location: Location, _userService: UserService, _restService: RestService<T>);
17
+ ngOnInit(): void;
18
+ getItems(): void;
19
+ private onUserChange;
20
+ protected isSelfList(): boolean;
21
+ goBack(): void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<ListViewComponent<any>, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListViewComponent<any>, "app-table-view", never, {}, {}, never, never, true, never>;
24
+ }
@@ -0,0 +1,19 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { HttpErrorResponse } from '@angular/common/http';
4
+ import { UserService } from '../../services/user.service';
5
+ import { LoginUser } from './login-user';
6
+ import * as i0 from "@angular/core";
7
+ export declare class LandingComponent implements OnInit {
8
+ private userService;
9
+ private router;
10
+ loginUser: LoginUser;
11
+ loginError: string;
12
+ constructor(userService: UserService, router: Router);
13
+ ngOnInit(): void;
14
+ login(): import("rxjs").Subscription;
15
+ onLoginError(error: HttpErrorResponse): void;
16
+ onLoggedIn(): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<LandingComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<LandingComponent, "app-landing", never, {}, {}, never, never, true, never>;
19
+ }
@@ -0,0 +1,4 @@
1
+ export interface LoginUser {
2
+ password: string;
3
+ name: string;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { LeftNavService } from '../../services/left-nav.service';
2
+ import * as i0 from "@angular/core";
3
+ export declare class LeftNavComponent {
4
+ private leftNavService;
5
+ constructor(leftNavService: LeftNavService);
6
+ getOptions(): import("ichec-angular-core").NavOption[];
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<LeftNavComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<LeftNavComponent, "app-left-nav", never, {}, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,16 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { UserService } from '../../services/user.service';
3
+ import { LeftNavService } from '../../services/left-nav.service';
4
+ import { IPortalMember } from '../../models/core';
5
+ import * as i0 from "@angular/core";
6
+ export declare class TopBarComponent implements OnInit {
7
+ private userService;
8
+ private leftNavService;
9
+ user?: IPortalMember | null;
10
+ title: string;
11
+ constructor(userService: UserService, leftNavService: LeftNavService);
12
+ ngOnInit(): void;
13
+ onLogout(): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<TopBarComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<TopBarComponent, "app-top-bar", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, never, true, never>;
16
+ }