{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/core/app-state/reducers/index.ts","./src/app/core/core.module.ts","./src/app/core/services/auth/auth-config.module.ts","./src/app/core/services/auth/services/auth.service.ts","./src/app/core/services/auth/state/authentication.actions.ts","./src/app/core/services/auth/state/authentication.effects.ts","./src/app/core/services/auth/state/authentication.reducer.ts","./src/app/core/services/auth/state/authentication.selectors.ts","./src/app/core/services/configuration/app.config.ts","./src/app/core/services/configuration/configuration.service.ts","./src/app/core/services/error-handler/error-handler.service.ts","./src/app/core/services/interceptors/auth.interceptor.ts","./src/app/core/services/interceptors/http-error.interceptor.ts","./src/app/features/admin/option-management/components/add-edit-base-option/add-edit-base-option.component.ts","./src/app/features/admin/option-management/components/add-edit-base-option/add-edit-base-option.component.html","./src/app/features/admin/option-management/components/add-edit-findings-category/add-edit-findings-category.component.ts","./src/app/features/admin/option-management/components/add-edit-findings-category/add-edit-findings-category.component.html","./src/app/features/admin/option-management/components/add-edit-findings/add-edit-findings.component.ts","./src/app/features/admin/option-management/components/add-edit-findings/add-edit-findings.component.html","./src/app/features/admin/option-management/components/findings-category/findings-category.component.ts","./src/app/features/admin/option-management/components/findings-category/findings-category.component.html","./src/app/features/admin/option-management/components/findings/findings.component.ts","./src/app/features/admin/option-management/components/findings/findings.component.html","./src/app/features/admin/option-management/components/option-management.component.ts","./src/app/features/admin/option-management/components/option-management.component.html","./src/app/features/admin/option-management/models/option-type.enum.ts","./src/app/features/admin/option-management/pipes/option-type.pipe.ts","./src/app/features/admin/option-management/services/option-type.service.ts","./src/app/features/admin/option-management/store/option-store.module.ts","./src/app/features/admin/option-management/store/option.actions.ts","./src/app/features/admin/option-management/store/option.effects.ts","./src/app/features/admin/option-management/store/option.reducers.ts","./src/app/features/admin/option-management/store/option.selectors.ts","./src/app/features/admin/user-management/components/user-add/user-add.component.ts","./src/app/features/admin/user-management/components/user-add/user-add.component.html","./src/app/features/admin/user-management/components/user-edit/user-edit.component.ts","./src/app/features/admin/user-management/components/user-edit/user-edit.component.html","./src/app/features/admin/user-management/components/user-management.component.ts","./src/app/features/admin/user-management/components/user-management.component.html","./src/app/features/admin/user-management/services/user-store.service.ts","./src/app/features/admin/user-management/services/user.service.ts","./src/app/features/admin/user-management/store/user-store.module.ts","./src/app/features/admin/user-management/store/user.actions.ts","./src/app/features/admin/user-management/store/user.effects.ts","./src/app/features/admin/user-management/store/user.reducers.ts","./src/app/features/admin/user-management/store/user.selectors.ts","./src/app/features/home/home.component.ts","./src/app/features/home/home.component.html","./src/app/features/protocols/protocol-add/protocol-add.component.ts","./src/app/features/protocols/protocol-add/protocol-add.component.html","./src/app/features/protocols/protocol-edit/protocol-edit.component.ts","./src/app/features/protocols/protocol-edit/protocol-edit.component.html","./src/app/features/protocols/protocol-history/protocol-history-modal/protocol-history-modal.component.ts","./src/app/features/protocols/protocol-history/protocol-history-modal/protocol-history-modal.component.html","./src/app/features/protocols/protocol-history/protocol-history.component.ts","./src/app/features/protocols/protocol-history/protocol-history.component.html","./src/app/features/protocols/protocols-list/protocols-list.component.ts","./src/app/features/protocols/protocols-list/protocols-list.component.html","./src/app/features/protocols/services/protocol.service.ts","./src/app/features/protocols/store/protocol-store.module.ts","./src/app/features/protocols/store/protocol.actions.ts","./src/app/features/protocols/store/protocol.effects.ts","./src/app/features/protocols/store/protocol.reducers.ts","./src/app/features/protocols/store/protocol.selectors.ts","./src/app/features/reports/report/statusreport/statusreport.component.ts","./src/app/features/reports/report/statusreport/statusreport.component.html","./src/app/features/reports/service/report.service.ts","./src/app/features/reports/status-report.dataSource.ts","./src/app/shared/components/auto-login/auto-login.component.ts","./src/app/shared/components/card-header/card-header.component.ts","./src/app/shared/components/card-header/card-header.component.html","./src/app/shared/components/confirmation-dialog/confirmation-dialog.component.ts","./src/app/shared/components/confirmation-dialog/confirmation-dialog.component.html","./src/app/shared/components/footer/footer.component.ts","./src/app/shared/components/footer/footer.component.html","./src/app/shared/components/header/header.component.ts","./src/app/shared/components/header/header.component.html","./src/app/shared/components/rich-text-editor/rich-text-editor.component.ts","./src/app/shared/components/scroll-to-top/scroll-to-top.component.ts","./src/app/shared/components/scroll-to-top/scroll-to-top.component.html","./src/app/shared/components/unauthorized/unauthorized.component.ts","./src/app/shared/components/unauthorized/unauthorized.component.html","./src/app/shared/material/material.modules.ts","./src/app/shared/models/search.model.ts","./src/app/shared/services/animations/animations.service.ts","./src/app/shared/services/animations/route.animations.ts","./src/app/shared/services/animations/scroll-fab.animation.ts","./src/app/shared/services/api/api.service.ts","./src/app/shared/services/ngx-notify/ngx-notify.service.ts","./src/app/shared/services/window.token.ts","./src/app/shared/shared.module.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\r\nimport { OptionManagementComponent } from '@features/admin/option-management/components/option-management.component';\r\nimport { UserManagementComponent } from '@features/admin/user-management/components/user-management.component';\r\nimport { ProtocolModel } from '@features/protocols/models/protocol.model';\r\nimport { ProtocolAddComponent } from '@features/protocols/protocol-add/protocol-add.component';\r\nimport { ProtocolEditComponent } from '@features/protocols/protocol-edit/protocol-edit.component';\r\nimport { ProtocolsListComponent } from '@features/protocols/protocols-list/protocols-list.component';\r\nimport { StatusReportComponent } from '@features/reports/report/statusreport/statusreport.component';\r\nimport { AutoLoginComponent } from '@shared/components/auto-login/auto-login.component';\r\n\r\nimport { UnauthorizedComponent } from './shared/components/unauthorized/unauthorized.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'home', component: ProtocolsListComponent },\r\n { path: 'reports', component: ProtocolsListComponent },\r\n { path: 'report', component: StatusReportComponent },\r\n { path: 'admin/users', component: UserManagementComponent },\r\n { path: 'admin/options', component: OptionManagementComponent },\r\n { path: 'protocol/add', component: ProtocolAddComponent },\r\n { path: 'protocol/:id', component: ProtocolEditComponent, data: { protocol: { } as ProtocolModel } },\r\n { path: 'autologin', component: AutoLoginComponent },\r\n { path: 'unauthorized', component: UnauthorizedComponent },\r\n { path: '**', component: ProtocolsListComponent }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, {\r\n scrollPositionRestoration: 'enabled',\r\n preloadingStrategy: PreloadAllModules\r\n })],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n})\r\nexport class AppComponent {}\r\n","\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { CoreModule } from '@core/core.module';\r\nimport {AddEditFindingsCategoryComponent} from '@features/admin/option-management/components/add-edit-findings-category/add-edit-findings-category.component';\r\nimport { OptionStoreModule } from '@features/admin/option-management/store/option-store.module';\r\nimport { UserManagementComponent } from '@features/admin/user-management/components/user-management.component';\r\nimport { UserStoreModule } from '@features/admin/user-management/store/user-store.module';\r\nimport { HomeComponent } from '@features/home/home.component';\r\nimport { OptionTypePipe } from '@features/admin/option-management/pipes/option-type.pipe';\r\nimport { ProtocolStoreModule } from '@features/protocols/store/protocol-store.module';\r\nimport { FormlyModule } from '@ngx-formly/core';\r\nimport { FormlyMaterialModule } from '@ngx-formly/material';\r\nimport { FormlyMatDatepickerModule } from '@ngx-formly/material/datepicker';\r\nimport { RichTextEditorComponent } from '@shared/components/rich-text-editor/rich-text-editor.component';\r\nimport { SharedModule } from '@shared/shared.module';\r\nimport { QuillModule } from 'ngx-quill';\r\nimport { AppComponent } from 'src/app/app.component';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport {AddEditBaseOptionComponent} from './features/admin/option-management/components/add-edit-base-option/add-edit-base-option.component';\r\nimport {AddEditFindingsComponent} from './features/admin/option-management/components/add-edit-findings/add-edit-findings.component';\r\nimport {FindingsCategoryComponent} from './features/admin/option-management/components/findings-category/findings-category.component';\r\nimport { FindingsComponent } from './features/admin/option-management/components/findings/findings.component';\r\nimport { OptionManagementComponent } from './features/admin/option-management/components/option-management.component';\r\nimport { UserAddComponent } from './features/admin/user-management/components/user-add/user-add.component';\r\nimport { UserEditComponent } from './features/admin/user-management/components/user-edit/user-edit.component';\r\nimport { ProtocolAddComponent } from './features/protocols/protocol-add/protocol-add.component';\r\nimport { ProtocolEditComponent } from './features/protocols/protocol-edit/protocol-edit.component';\r\nimport { ProtocolHistoryModalComponent} from './features/protocols/protocol-history/protocol-history-modal/protocol-history-modal.component';\r\nimport { ProtocolHistoryComponent } from './features/protocols/protocol-history/protocol-history.component';\r\nimport { ProtocolsListComponent } from './features/protocols/protocols-list/protocols-list.component';\r\nimport { StatusReportComponent } from '@features/reports/report/statusreport/statusreport.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HomeComponent,\r\n ProtocolsListComponent,\r\n UserManagementComponent,\r\n UserEditComponent,\r\n UserAddComponent,\r\n OptionManagementComponent,\r\n AddEditBaseOptionComponent,\r\n ProtocolAddComponent,\r\n ProtocolEditComponent,\r\n RichTextEditorComponent,\r\n AddEditFindingsComponent,\r\n AddEditFindingsCategoryComponent,\r\n FindingsComponent,\r\n FindingsCategoryComponent,\r\n ProtocolHistoryComponent,\r\n ProtocolHistoryModalComponent,\r\n OptionTypePipe,\r\n StatusReportComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AppRoutingModule,\r\n SharedModule,\r\n CoreModule,\r\n UserStoreModule,\r\n OptionStoreModule,\r\n ProtocolStoreModule,\r\n FormlyModule.forRoot({\r\n extras: { lazyRender: true },\r\n types: [{\r\n name: 'rich-text',\r\n component: RichTextEditorComponent\r\n }]\r\n }), \r\n FormlyMaterialModule,\r\n QuillModule.forRoot(),\r\n FormlyMaterialModule,\r\n MatNativeDateModule,\r\n FormlyMatDatepickerModule\r\n ],\r\n providers: [OptionTypePipe],\r\n bootstrap: [AppComponent],\r\n exports: [],\r\n})\r\nexport class AppModule { }\r\n","import { ActionReducerMap, MetaReducer } from '@ngrx/store';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\r\nexport interface AppState {}\r\n\r\nexport const reducers: ActionReducerMap = {};\r\n\r\nexport const metaReducers: MetaReducer[] = !environment.production ? [] : [];\r\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\r\nimport { environment } from 'src/environments/environment';\r\nimport { metaReducers, reducers } from './app-state/reducers';\r\nimport { AuthConfigModule } from './services/auth/auth-config.module';\r\nimport { AuthInterceptor } from './services/interceptors/auth.interceptor';\r\nimport { HttpErrorInterceptor } from './services/interceptors/http-error.interceptor';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n AuthConfigModule,\r\n EffectsModule.forRoot([]),\r\n StoreModule.forRoot(reducers, { metaReducers }),\r\n !environment.production ? StoreDevtoolsModule.instrument() : [],\r\n ],\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpErrorInterceptor,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class CoreModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { AuthModule, StsConfigLoader, StsConfigStaticLoader } from 'angular-auth-oidc-client';\r\nimport { ConfigurationService } from '../configuration/configuration.service';\r\nimport { AuthenticationEffects } from './state/authentication.effects';\r\nimport * as fromAuthentication from './state/authentication.reducer';\r\n\r\nconst authFactory = (configService: ConfigurationService) => {\r\n const config = configService.getConfig();\r\n return new StsConfigStaticLoader(config);\r\n};\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n AuthModule.forRoot({\r\n loader: {\r\n provide: StsConfigLoader,\r\n useFactory: authFactory,\r\n deps: [ConfigurationService],\r\n },\r\n }),\r\n StoreModule.forFeature(fromAuthentication.AUTHENTICATION_FEATURE_KEY, fromAuthentication.reducer),\r\n EffectsModule.forFeature([AuthenticationEffects]),\r\n ],\r\n exports: [AuthModule],\r\n})\r\nexport class AuthConfigModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AppState } from '@core/app-state/reducers';\r\nimport { Store } from '@ngrx/store';\r\nimport { NgxNotifyService } from '@shared/services/ngx-notify/ngx-notify.service';\r\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\r\nimport { combineLatest } from 'rxjs';\r\nimport { map, take } from 'rxjs/operators';\r\n\r\nimport { IdentityUser } from '../models/application-user.model';\r\nimport { logout } from '../state/authentication.actions';\r\nimport * as AuthActions from '../state/authentication.actions';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n private email!: string;\r\n private currentUserId!: string;\r\n private userClaims!: IdentityUser;\r\n\r\n constructor(\r\n private oidcService: OidcSecurityService,\r\n private store: Store,\r\n private router: Router,\r\n private notify: NgxNotifyService) {\r\n this.initAuthConfig();\r\n }\r\n\r\n login(): void {\r\n this.oidcService.authorize();\r\n }\r\n\r\n logout(): void {\r\n this.store.dispatch(logout());\r\n this.oidcService.logoffAndRevokeTokens().subscribe();\r\n }\r\n\r\n getBearerToken(): string {\r\n // console.log(`Bearer ${this.oidcService.getToken()}`);\r\n return `Bearer ${this.oidcService.getAccessToken()}`;\r\n }\r\n\r\n getToken(): string {\r\n // console.log(`Bearer ${this.oidcService.getToken()}`);\r\n return `${this.oidcService.getAccessToken()}`;\r\n }\r\n\r\n getUserEmail(): string {\r\n return this.email;\r\n }\r\n\r\n getCurrentUserId(): number {\r\n return +this.currentUserId;\r\n }\r\n\r\n getUserClaims() : IdentityUser {\r\n return this.userClaims;\r\n }\r\n\r\n private initAuthConfig(): void {\r\n const auth$ = combineLatest([this.oidcService.checkAuth(), this.oidcService.userData$, this.oidcService.isAuthenticated$]);\r\n\r\n auth$\r\n .pipe(\r\n take(1),\r\n map((results) => {\r\n const auth: boolean = results[0]?.isAuthenticated;\r\n const data: IdentityUser = results[1]?.userData;\r\n const isAuthenticated: boolean = results[2]?.isAuthenticated;\r\n this.userClaims = data;\r\n this.email = data?.email;\r\n this.currentUserId = data?.sub;\r\n\r\n if (!auth && !isAuthenticated && data == null) {\r\n if ('/autologin' !== window.location.pathname) {\r\n this.write('redirect', window.location.pathname);\r\n this.router.navigate(['/autologin']);\r\n }\r\n } else if (auth && isAuthenticated && data != null) {\r\n const loginAction = AuthActions.login({\r\n userData: data,\r\n isWarden: data?.role_warden != null,\r\n isAdmin: data?.role_admin != null || data?.role_warden != null,\r\n accessToken: this.oidcService.getAccessToken(),\r\n });\r\n\r\n this.store.dispatch(loginAction);\r\n // this.navigateToStoredEndpoint();\r\n } else {\r\n // Something really bad has happened\r\n // Login process completely failed!\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n this.oidcService.checkAuthIncludingServer();\r\n this.notify.error('Unauthorized');\r\n }\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private navigateToStoredEndpoint(): void {\r\n const path = this.read('redirect');\r\n\r\n if (this.router.url === path) {\r\n return;\r\n }\r\n\r\n if (path.toString().includes('/unauthorized')) {\r\n this.router.navigate(['/']);\r\n } else {\r\n this.router.navigate([path]);\r\n }\r\n }\r\n\r\n private read(key: string): any {\r\n const data = localStorage.getItem(key);\r\n if (data) {\r\n return JSON.parse(data);\r\n }\r\n return;\r\n }\r\n\r\n private write(key: string, value: any): void {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n}\r\n","import { createAction, props } from '@ngrx/store';\r\nimport { AuthState } from './authentication.reducer';\r\n\r\nexport const login = createAction('[LOGIN_ACTION] User Login', props());\r\nexport const logout = createAction('[LOGOUT_ACTION] User Logout');\r\n","import { Injectable } from '@angular/core';\r\nimport { createEffect, Actions, ofType } from '@ngrx/effects';\r\nimport { login, logout } from './authentication.actions';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class AuthenticationEffects {\r\n login$ = createEffect(\r\n () =>\r\n this.action$.pipe(\r\n ofType(login),\r\n tap((action) => localStorage.setItem('userData', JSON.stringify(action.userData)))\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n logout$ = createEffect(\r\n () =>\r\n this.action$.pipe(\r\n ofType(logout),\r\n tap(() => localStorage.removeItem('userData'))\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n constructor(private action$: Actions) {}\r\n}\r\n","import { Action, createReducer, on } from '@ngrx/store';\r\nimport { ApplicationUser, IdentityUser } from '../models/application-user.model';\r\nimport { login, logout } from './authentication.actions';\r\n\r\nexport const AUTHENTICATION_FEATURE_KEY = 'authentication';\r\n\r\nexport interface AuthState {\r\n userData: IdentityUser;\r\n accessToken: string;\r\n isWarden: boolean;\r\n isAdmin: boolean;\r\n}\r\n\r\nexport const initialAuthState: AuthState = {\r\n userData: {} as IdentityUser,\r\n accessToken: '',\r\n isWarden: false,\r\n isAdmin: false,\r\n};\r\n\r\nexport const authReducer = createReducer(\r\n initialAuthState,\r\n\r\n on(login, (state, action) => ({\r\n userData: action.userData,\r\n accessToken: action.accessToken,\r\n isWarden: action.isWarden,\r\n isAdmin: action.isAdmin,\r\n })),\r\n\r\n on(logout, () => initialAuthState)\r\n);\r\n\r\nexport const reducer = (state: AuthState | undefined, action: Action): AuthState => authReducer(state, action);\r\n","import { createSelector, createFeatureSelector } from '@ngrx/store';\r\nimport { AuthState } from './authentication.reducer';\r\n\r\nexport const authSelector = {\r\n selectAuthState: createFeatureSelector('authentication'),\r\n isAuthenticated: createSelector(createFeatureSelector('authentication'), (auth) => !!auth?.accessToken || false),\r\n userData: createSelector(createFeatureSelector('authentication'), (auth) => auth?.userData || null),\r\n accessToken: createSelector(createFeatureSelector('authentication'), (auth) => auth?.accessToken || null),\r\n isWarden: createSelector(createFeatureSelector('authentication'), (auth) => !!auth?.isWarden || false),\r\n isAdmin: createSelector(createFeatureSelector('authentication'), (auth) => !!auth?.isAdmin || false)\r\n};\r\n","import { LogLevel } from 'angular-auth-oidc-client';\r\n\r\nconst clientId = 'irb';\r\nconst scope = 'openid profile offline_access';\r\n\r\nexport const applicationConfig = {\r\n defaults: {\r\n title: 'IRB',\r\n shortTitle: 'IRB',\r\n clientId,\r\n },\r\n production: {\r\n debug: LogLevel.None,\r\n clientId,\r\n identityUrl: 'https://irb.unthsc.edu',\r\n clientUrl: 'https://irb.unthsc.edu',\r\n scope,\r\n apiUri: 'https://irb.unthsc.edu/api',\r\n azureStorage: '',\r\n },\r\n uat: {\r\n debug: LogLevel.Error,\r\n clientId,\r\n identityUrl: 'https://unthsc-irb-uat.azurewebsites.net',\r\n clientUrl: 'https://unthsc-irb-uat.azurewebsites.net',\r\n scope,\r\n apiUri: 'https://unthsc-irb-uat.azurewebsites.net/api',\r\n azureStorage: '',\r\n },\r\n qa: {\r\n debug: LogLevel.Error,\r\n clientId,\r\n identityUrl: 'https://unthsc-irb-qa.azurewebsites.net',\r\n clientUrl: 'https://unthsc-irb-qa.azurewebsites.net',\r\n scope,\r\n apiUri: 'https://unthsc-irb-qa.azurewebsites.net/api',\r\n azureStorage: '',\r\n },\r\n staging: {\r\n debug: LogLevel.Error,\r\n clientId,\r\n identityUrl: 'https://unthsc-irb-staging.azurewebsites.net',\r\n clientUrl: 'https://unthsc-irb-staging.azurewebsites.net',\r\n scope,\r\n apiUri: 'https://unthsc-irb-staging.azurewebsites.net/api',\r\n azureStorage: '',\r\n },\r\n development: {\r\n debug: LogLevel.Error,\r\n clientId,\r\n identityUrl: 'https://localhost/irb',\r\n clientUrl: 'https://localhost:4200',\r\n scope,\r\n apiUri: 'https://localhost/irb/api',\r\n azureStorage: 'https://hsccdn.blob.core.windows.net/afms-dev',\r\n },\r\n local: {\r\n debug: LogLevel.Error,\r\n clientId,\r\n identityUrl: 'https://localhost/irb',\r\n clientUrl: 'https://localhost:4200',\r\n scope,\r\n apiUri: 'https://localhost/irb/api',\r\n azureStorage: '',\r\n },\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { ClientConfig } from './models/config.model';\r\nimport { ClientDefaults } from './models/client-defaults.model';\r\nimport { applicationConfig } from './app.config';\r\nimport { OpenIdConfiguration } from 'angular-auth-oidc-client';\r\n\r\ndeclare const window: Window;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ConfigurationService {\r\n systemConfiguration = {} as ClientConfig;\r\n defaults = {} as ClientDefaults;\r\n\r\n constructor() {\r\n this.loadConfigurations();\r\n }\r\n\r\n getConfig(): OpenIdConfiguration {\r\n var config = {\r\n authority: this.systemConfiguration.identityUrl,\r\n authWellknownEndpointUrl: `${this.systemConfiguration.identityUrl}/.well-known/openid-configuration`,\r\n redirectUrl: this.systemConfiguration.clientUrl,\r\n clientId: this.systemConfiguration.clientId,\r\n scope: this.systemConfiguration.scope,\r\n responseType: 'code',\r\n silentRenew: true,\r\n silentRenewUrl: `${this.systemConfiguration.clientUrl}/silent-renew.html`,\r\n postLogoutRedirectUri: `${this.systemConfiguration.clientUrl}`,\r\n renewTimeBeforeTokenExpiresInSeconds: 10,\r\n useRefreshToken: true,\r\n ignoreNonceAfterRefresh: true,\r\n maxIdTokenIatOffsetAllowedInSeconds:600,\r\n logLevel: this.systemConfiguration.debug\r\n };\r\n return config;\r\n }\r\n\r\n loadConfigurations(): ClientConfig {\r\n let currentConfig: ClientConfig;\r\n switch (window.location.hostname) {\r\n case this.getHostName(applicationConfig.production.clientUrl):\r\n currentConfig = applicationConfig.production;\r\n break;\r\n case this.getHostName(applicationConfig.uat.clientUrl):\r\n currentConfig = applicationConfig.uat;\r\n break;\r\n case this.getHostName(applicationConfig.qa.clientUrl):\r\n currentConfig = applicationConfig.qa;\r\n break;\r\n case this.getHostName(applicationConfig.development.clientUrl):\r\n currentConfig = applicationConfig.development;\r\n break;\r\n case this.getHostName(applicationConfig.staging.clientUrl):\r\n currentConfig = applicationConfig.staging;\r\n break;\r\n default:\r\n currentConfig = applicationConfig.local;\r\n }\r\n this.systemConfiguration = currentConfig;\r\n this.defaults = applicationConfig.defaults;\r\n return currentConfig;\r\n }\r\n\r\n private getHostName(url: string): string {\r\n return url.replace('https://', '').replace('/', '');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ErrorResultModel } from '@shared/models/error-result.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ErrorHandlerService {\r\n constructor() { }\r\n\r\n handleError(error: any): string {\r\n if (error.status === 401) {\r\n return 'Unauthorized';\r\n }\r\n\r\n if (error.status === 500) {\r\n return 'An error was detected. Please refresh your browser and try again.';\r\n }\r\n\r\n if (error.error?.errors != null) {\r\n return 'Please check your submission and try again';\r\n }\r\n\r\n const resultModel = { ...error.error } as ErrorResultModel;\r\n return resultModel.extendedMessage;\r\n }\r\n}\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n constructor(private oidcSecurityService: OidcSecurityService) {}\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n let requestToForward = req;\r\n\r\n if (this.oidcSecurityService !== undefined) {\r\n const token = this.oidcSecurityService.getAccessToken();\r\n if (token !== '') {\r\n const tokenValue = 'Bearer ' + token;\r\n requestToForward = req.clone({\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n setHeaders: { Authorization: tokenValue },\r\n });\r\n }\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.debug('OidcSecurityService undefined: NO auth header!');\r\n }\r\n\r\n return next.handle(requestToForward);\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\n\r\n// TODO:\r\n// Extend this to notify user of useful error messages\r\n\r\n@Injectable()\r\nexport class HttpErrorInterceptor implements HttpInterceptor {\r\n constructor(private router: Router) {}\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(req).pipe(\r\n tap((event: HttpEvent) => {\r\n if (event instanceof HttpResponse) {\r\n const responseStatusCode: number = event.status;\r\n this.statusCodeHandler(responseStatusCode);\r\n }\r\n }),\r\n catchError(\r\n (error: Error | HttpErrorResponse): Observable => {\r\n if (error instanceof HttpErrorResponse) {\r\n const errorStatusCode: number = error.status;\r\n this.statusCodeHandler(errorStatusCode);\r\n }\r\n return throwError(error);\r\n }\r\n )\r\n );\r\n }\r\n\r\n private statusCodeHandler(code: number): void {\r\n switch (code) {\r\n case 401:\r\n this.router.navigate(['/autologin']);\r\n break;\r\n }\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormlyFieldConfig } from '@ngx-formly/core';\r\n\r\nimport { OptionModel } from '../../models/option.model';\r\nimport { OptionTypeService } from '../../services/option-type.service';\r\n\r\n@Component({\r\n selector: 'app-add-edit-base-option',\r\n templateUrl: './add-edit-base-option.component.html',\r\n styleUrls: ['./add-edit-base-option.component.scss']\r\n})\r\nexport class AddEditBaseOptionComponent implements OnInit {\r\n form = new FormGroup({});\r\n fields: FormlyFieldConfig[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: OptionModel,\r\n private dialogRef: MatDialogRef,\r\n private service: OptionTypeService) { }\r\n\r\n ngOnInit(): void {\r\n this.fields = this.service.buildOptionForm(this.data.optionType, this.data);\r\n }\r\n\r\n save(): void {\r\n this.dialogRef.close(this.data);\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n}\r\n","\r\n\r\n \r\n \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { CategoryModel } from '../../models/category.model';\r\nimport { OptionTypeService } from '../../services/option-type.service';\r\n\r\n@Component({\r\n selector: 'app-add-edit-findings-category',\r\n templateUrl: './add-edit-findings-category.component.html',\r\n styleUrls: ['./add-edit-findings-category.component.scss']\r\n})\r\nexport class AddEditFindingsCategoryComponent implements OnInit {\r\n form = new FormGroup({});\r\n fields: FormlyFieldConfig[] = [];\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: CategoryModel,\r\n private dialogRef: MatDialogRef,\r\n private service: OptionTypeService) { }\r\n\r\n ngOnInit(): void {\r\n this.fields = this.service.buildCategoryForm({ ...this.data });\r\n }\r\n\r\n save(): void {\r\n this.dialogRef.close(this.data);\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n}\r\n","\r\n\r\n \r\n \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { FormlyFieldConfig } from '@ngx-formly/core';\r\n\r\nimport { SubCategoryModel } from '../../models/sub-category.model';\r\nimport { OptionTypeService } from '../../services/option-type.service';\r\n\r\n@Component({\r\n selector: 'app-add-edit-findings',\r\n templateUrl: './add-edit-findings.component.html',\r\n styleUrls: ['./add-edit-findings.component.scss']\r\n})\r\nexport class AddEditFindingsComponent implements OnInit {\r\n form = new FormGroup({});\r\n fields: FormlyFieldConfig[] = [];\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: SubCategoryModel,\r\n private dialogRef: MatDialogRef,\r\n private service: OptionTypeService) { }\r\n\r\n ngOnInit(): void {\r\n this.fields = this.service.buildSubCategoryForm({ ...this.data });\r\n }\r\n\r\n save(): void {\r\n this.dialogRef.close(this.data);\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n}\r\n","\r\n\r\n \r\n \r\n\r\n","import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, Sort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { ROUTE_ANIMATIONS_ELEMENTS } from '@shared/services/animations/route.animations';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { CategoryModel } from '../../models/category.model';\r\nimport { OptionModel } from '../../models/option.model';\r\nimport { optionsCreateCategory, optionsUpdateCategory } from '../../store/option.actions';\r\nimport { OptionState } from '../../store/option.reducers';\r\nimport { optionSelector } from '../../store/option.selectors';\r\nimport { AddEditFindingsCategoryComponent } from '../add-edit-findings-category/add-edit-findings-category.component';\r\n\r\n@Component({\r\n selector: 'app-findings-category',\r\n templateUrl: './findings-category.component.html',\r\n styleUrls: ['./findings-category.component.scss']\r\n})\r\nexport class FindingsCategoryComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n @ViewChild(MatSort) sort!: MatSort;\r\n routeAnimationsElements = ROUTE_ANIMATIONS_ELEMENTS;\r\n data$!: Observable;\r\n dataSource = new MatTableDataSource();\r\n subs$: Subscription[] = [];\r\n headElements = ['name', 'isActive', 'actions'];\r\n searchKey!: string;\r\n constructor(private dialog: MatDialog, private store: Store) { }\r\n\r\n ngOnInit(): void {\r\n // Bug fix for capitalization in sorting\r\n this.dataSource.sortingDataAccessor = (data, sortHeaderId) => data[sortHeaderId].toLocaleLowerCase();\r\n this.data$ = this.store.pipe(select(optionSelector.allOptions)).pipe(tap(options => {\r\n this.dataSource.data = options.categories;\r\n // eslint-disable-next-line arrow-body-style\r\n this.dataSource.filterPredicate = (data, filter) => {\r\n // eslint-disable-next-line arrow-body-style\r\n return this.headElements.some(ele => {\r\n return ele !== 'actions' && ele !== 'isActive' && data[ele].toLowerCase().indexOf(filter) !== -1;\r\n });\r\n };\r\n }\r\n ));\r\n }\r\n\r\n openModal(option: CategoryModel): void {\r\n const dialogRef = this.dialog.open(AddEditFindingsCategoryComponent, {\r\n width: '500px',\r\n data: { ...option }\r\n });\r\n\r\n // New category\r\n if (option?.id == null) {\r\n this.subs$.push(\r\n dialogRef.afterClosed().subscribe((model: CategoryModel) => {\r\n if (model != null) {\r\n this.store.dispatch(optionsCreateCategory({ data: { option: { ...model } } }));\r\n }\r\n })\r\n );\r\n }\r\n\r\n // Update category\r\n if (option.id > 0) {\r\n this.subs$.push(\r\n dialogRef.afterClosed().subscribe((model: CategoryModel) => {\r\n if (model != null) {\r\n this.store.dispatch(optionsUpdateCategory({ data: { option: { ...model } } }));\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n onSearchClear() {\r\n this.searchKey = '';\r\n this.applyFilter();\r\n }\r\n\r\n applyFilter() {\r\n if (this.searchKey != null) {\r\n this.dataSource.filter = this.searchKey.trim().toLowerCase();\r\n }\r\n }\r\n\r\n sortData(sort: Sort): void {\r\n this.sort.direction = sort.direction;\r\n this.sort.active = sort.active;\r\n this.data$ = this.store.pipe(select(optionSelector.allOptions)).pipe(tap(options => this.dataSource.data = options.categories));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs$.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Title\r\n {{ element.name }}\r\n Status\r\n {{ element.isActive ? 'Active' : 'Inactive' }}\r\n Actions\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n","import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, Sort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { ROUTE_ANIMATIONS_ELEMENTS } from '@shared/services/animations/route.animations';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { SubCategoryModel } from '../../models/sub-category.model';\r\nimport { optionsCreateSpecialFinding, optionsUpdateSpecialFinding } from '../../store/option.actions';\r\nimport { OptionState } from '../../store/option.reducers';\r\nimport { AddEditFindingsComponent } from '../add-edit-findings/add-edit-findings.component';\r\nimport { optionSelector } from './../../store/option.selectors';\r\n\r\n@Component({\r\n selector: 'app-findings',\r\n templateUrl: './findings.component.html',\r\n styleUrls: ['./findings.component.scss']\r\n})\r\nexport class FindingsComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n @ViewChild(MatSort) sort!: MatSort;\r\n routeAnimationsElements = ROUTE_ANIMATIONS_ELEMENTS;\r\n data$!: Observable;\r\n dataSource = new MatTableDataSource();\r\n subs$: Subscription[] = [];\r\n headElements = ['name', 'category', 'isActive', 'actions'];\r\n searchKey!: string;\r\n\r\n constructor(private dialog: MatDialog, private store: Store) { }\r\n\r\n ngOnInit(): void {\r\n // Bug fix for capitalization in sorting\r\n this.dataSource.sortingDataAccessor = (data, sortHeaderId) => data[sortHeaderId].toLocaleLowerCase();\r\n this.data$ = this.store.pipe(select(optionSelector.allOptions)).pipe(tap(options => {\r\n this.dataSource.data = options.specialFindings;\r\n // eslint-disable-next-line arrow-body-style\r\n this.dataSource.filterPredicate = (data, filter) => {\r\n // eslint-disable-next-line arrow-body-style\r\n return this.headElements.some(ele => {\r\n return ele !== 'actions' && ele !== 'isActive' && ele !== 'category' && data[ele].toLowerCase().indexOf(filter) !== -1;\r\n });\r\n };\r\n }));\r\n }\r\n\r\n openModal(option: SubCategoryModel): void {\r\n const dialogRef = this.dialog.open(AddEditFindingsComponent, {\r\n width: '500px',\r\n data: { ...option }\r\n });\r\n\r\n // New Special Finding\r\n if (option?.id == null) {\r\n this.subs$.push(\r\n dialogRef.afterClosed().subscribe((model: SubCategoryModel) => {\r\n if (model != null) {\r\n this.store.dispatch(optionsCreateSpecialFinding({ data: { option: { ...model } } }));\r\n }\r\n })\r\n );\r\n }\r\n\r\n // Update Special Finding\r\n if (option.id > 0) {\r\n this.subs$.push(\r\n dialogRef.afterClosed().subscribe((model: SubCategoryModel) => {\r\n if (model != null) {\r\n this.store.dispatch(optionsUpdateSpecialFinding({ data: { option: { ...model } } }));\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n onSearchClear() {\r\n this.searchKey = '';\r\n this.applyFilter();\r\n }\r\n\r\n applyFilter() {\r\n if (this.searchKey != null) {\r\n this.dataSource.filter = this.searchKey.trim().toLowerCase();\r\n }\r\n }\r\n\r\n\r\n sortData(sort: Sort): void {\r\n this.sort.direction = sort.direction;\r\n this.sort.active = sort.active;\r\n this.data$ = this.store.pipe(select(optionSelector.allOptions)).pipe(tap(options => this.dataSource.data = options.specialFindings));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs$.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Title\r\n {{ element.name }}\r\n Category\r\n {{ element.category }}\r\n Status\r\n {{ element.isActive ? 'Active' : 'Inactive' }}\r\n Actions\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n","/* eslint-disable arrow-body-style */\r\nimport { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\r\nimport { MatSort, Sort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { ROUTE_ANIMATIONS_ELEMENTS } from '@shared/services/animations/route.animations';\r\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { CategoryModel } from '../models/category.model';\r\nimport { OptionType } from '../models/option-type.enum';\r\nimport { OptionModel } from '../models/option.model';\r\nimport { SubCategoryModel } from '../models/sub-category.model';\r\nimport { optionsCreate, optionsUpdate } from '../store/option.actions';\r\nimport { OptionState } from '../store/option.reducers';\r\nimport { optionSelector } from '../store/option.selectors';\r\nimport { AddEditBaseOptionComponent } from './add-edit-base-option/add-edit-base-option.component';\r\n\r\n@Component({\r\n selector: 'app-option-management',\r\n templateUrl: './option-management.component.html',\r\n styleUrls: ['./option-management.component.scss']\r\n})\r\nexport class OptionManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n @ViewChild(MatSort) sort!: MatSort;\r\n routeAnimationsElements = ROUTE_ANIMATIONS_ELEMENTS;\r\n optionTypeArray: string[] = Object.values(OptionType).sort();\r\n data$!: Observable;\r\n headElements = ['name', 'isActive', 'actions'];\r\n specialFindingElements = ['name', 'category', 'isActive', 'actions'];\r\n selected$ = new BehaviorSubject(0);\r\n dataSource = new MatTableDataSource();\r\n subs$: Subscription[] = [];\r\n resultsLength = 0;\r\n searchKey!: string;\r\n constructor(private store: Store, private dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n\r\n // Bug fix for capitalization in sorting\r\n this.dataSource.sortingDataAccessor = (data, sortHeaderId) => data[sortHeaderId].toLocaleLowerCase();\r\n this.loadData(0);\r\n }\r\n\r\n loadData(tab: number): void {\r\n this.selected$.next(tab);\r\n\r\n // Skipping this if event is on Special Findings Tab\r\n if (tab <= 9) {\r\n const type = this.optionTypeArray[tab] as OptionType;\r\n this.data$ = this.store.pipe(select(optionSelector.optionsByType(type))).pipe(tap(options => {\r\n this.dataSource.data = options;\r\n this.dataSource.filterPredicate = (data, filter) => {\r\n return this.headElements.some(ele => {\r\n return ele !== 'actions' && ele !== 'isActive' && data[ele].toLowerCase().indexOf(filter) !== -1;\r\n });\r\n };\r\n this.resultsLength = options.length;\r\n }));\r\n }\r\n }\r\n\r\n onSearchClear() {\r\n this.searchKey = '';\r\n this.applyFilter();\r\n }\r\n\r\n applyFilter() {\r\n if (this.searchKey != null) {\r\n this.dataSource.filter = this.searchKey.trim().toLowerCase();\r\n }\r\n }\r\n\r\n openCreateModal(type: string): void {\r\n const dialogRef = this.dialog.open(AddEditBaseOptionComponent, {\r\n width: '500px',\r\n data: { id: 0, optionType: type }\r\n });\r\n\r\n this.subs$.push(\r\n dialogRef.afterClosed().subscribe((model: OptionModel) => {\r\n if (model != null) {\r\n this.store.dispatch(optionsCreate({ data: { option: { ...model } } }));\r\n }\r\n })\r\n );\r\n }\r\n\r\n openEditModal(option: OptionModel): void {\r\n const dialogRef = this.dialog.open(AddEditBaseOptionComponent, {\r\n width: '500px',\r\n data: { ...option }\r\n });\r\n\r\n this.subs$.push(\r\n dialogRef.afterClosed().subscribe((model: OptionModel) => {\r\n if (model != null) {\r\n this.store.dispatch(optionsUpdate({ data: { option: { ...model } } }));\r\n }\r\n })\r\n );\r\n }\r\n\r\n tabChange(event: number): void {\r\n this.paginator.pageIndex = 0;\r\n this.loadData(event);\r\n }\r\n\r\n sortData(sort: Sort): void {\r\n this.sort.direction = sort.direction;\r\n this.sort.active = sort.active;\r\n this.loadData(this.selected$.value);\r\n }\r\n\r\n pageData(page: PageEvent): void {\r\n this.paginator.pageIndex = page.pageIndex;\r\n this.paginator.pageSize = page.pageSize;\r\n this.loadData(this.selected$.value);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs$.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Title\r\n {{ element.name }}\r\n Status\r\n {{ element.isActive ? 'Active' : 'Inactive' }}\r\n Actions\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","// eslint-disable-next-line no-shadow\r\nexport enum OptionType {\r\n school = 'School',\r\n department = 'Department',\r\n institution = 'Institution',\r\n typeOfResearch = 'TypeOfResearch',\r\n sponsorType = 'SponsorType',\r\n typeOfReview = 'TypeOfReview',\r\n status = 'Status',\r\n reviewCycle = 'ReviewCycle',\r\n nTRIRBCoordinator = 'NTRIRBCoordinator',\r\n investigator = 'Investigator'\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'optionType' })\r\nexport class OptionTypePipe implements PipeTransform {\r\n transform(type: string): string {\r\n let responseType = type;\r\n switch (type) {\r\n case 'TypeOfResearch':\r\n responseType = 'Type of Research';\r\n break;\r\n case 'SponsorType':\r\n responseType = 'Sponsor Type';\r\n break;\r\n case 'ReviewCycle':\r\n responseType = 'Review Cycle';\r\n break;\r\n case 'TypeOfReview':\r\n responseType = 'Type of Review';\r\n break;\r\n case 'NTRIRBCoordinator':\r\n responseType = 'NTRIRB Coordinator';\r\n break;\r\n }\r\n\r\n return responseType;\r\n }\r\n}\r\n","import { OptionTypePipe } from '@features/admin/option-management/pipes/option-type.pipe';\r\nimport { Injectable } from '@angular/core';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CategoryModel } from '../models/category.model';\r\n\r\nimport { OptionType } from '../models/option-type.enum';\r\nimport { OptionModel } from '../models/option.model';\r\nimport { SubCategoryModel } from '../models/sub-category.model';\r\nimport { OptionState } from '../store/option.reducers';\r\nimport { optionSelector } from '../store/option.selectors';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class OptionTypeService {\r\n model = {} as OptionModel | SubCategoryModel | CategoryModel;\r\n\r\n constructor(private store: Store, private optionType: OptionTypePipe) {\r\n // Loads options into store\r\n this.initOptionState();\r\n }\r\n\r\n buildOptionForm(type: OptionType, model: OptionModel): FormlyFieldConfig[] {\r\n this.model = model;\r\n\r\n return [\r\n {\r\n // eslint-disable-next-line max-len\r\n template: `
${model.name != null ? 'Edit' : 'New'} ${this.optionType.transform(type)} Option
`\r\n },\r\n {\r\n template: `

The title set below will appear in the dropdown menu.

`\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-sm-12',\r\n type: 'checkbox',\r\n key: 'isActive',\r\n defaultValue: this.model.isActive ?? true,\r\n templateOptions: {\r\n label: 'Active'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-sm-12',\r\n type: 'input',\r\n key: 'name',\r\n defaultValue: this.model.name,\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Title',\r\n required: true,\r\n maxLength: 600\r\n }\r\n }\r\n ]\r\n }\r\n ];\r\n }\r\n\r\n buildSubCategoryForm(model: SubCategoryModel): FormlyFieldConfig[] {\r\n this.model = model;\r\n\r\n return [\r\n {\r\n template: `
${model.name != null ? 'Edit' : 'New'} Special Finding
`\r\n },\r\n {\r\n template: `

Setting Status to active or inactive will change of this sub-category as well as its parent category status.

`\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-sm-12',\r\n type: 'checkbox',\r\n key: 'isActive',\r\n defaultValue: this.model.isActive ?? true,\r\n templateOptions: {\r\n label: 'Active'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-sm-12',\r\n type: 'select',\r\n key: 'categoryId',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Special Findings Category',\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n options: this.store.pipe(select(optionSelector.categories)),\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-sm-12',\r\n type: 'input',\r\n key: 'name',\r\n defaultValue: this.model.name,\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Title',\r\n required: true,\r\n maxLength: 500\r\n }\r\n }\r\n ]\r\n }\r\n ];\r\n }\r\n\r\n buildCategoryForm(model: CategoryModel): FormlyFieldConfig[] {\r\n this.model = model;\r\n\r\n return [\r\n {\r\n template: `
${model.name != null ? 'Edit' : 'New'} Special Finding Category
`\r\n },\r\n {\r\n template: `

Setting Status to active or inactive will change of this category as well as any children sub-categories status

`\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-sm-12',\r\n type: 'checkbox',\r\n key: 'isActive',\r\n defaultValue: this.model.isActive ?? true,\r\n templateOptions: {\r\n label: 'Active'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-sm-12',\r\n type: 'input',\r\n key: 'name',\r\n defaultValue: this.model.name,\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Title',\r\n required: true,\r\n maxLength: 250\r\n }\r\n }\r\n ]\r\n }\r\n ];\r\n }\r\n\r\n private initOptionState(): Observable {\r\n return this.store.pipe(select(optionSelector.allOptions));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { OptionEffects } from './option.effects';\r\nimport { optionReducer, OPTION_FEATURE_KEY } from './option.reducers';\r\n\r\n@NgModule({\r\n imports: [\r\n StoreModule.forFeature(OPTION_FEATURE_KEY, optionReducer),\r\n EffectsModule.forFeature([OptionEffects])\r\n ]\r\n})\r\n\r\nexport class OptionStoreModule { }\r\n","import { createAction, props } from '@ngrx/store';\r\n\r\nimport { CategoryModel } from '../models/category.model';\r\nimport { OptionModel } from '../models/option.model';\r\nimport { SubCategoryModel } from '../models/sub-category.model';\r\nimport { OptionState } from './option.reducers';\r\n\r\nexport const optionsLoad = createAction('[OPTIONS_ACTION] Get Options');\r\nexport const optionsLoaded = createAction('[OPTIONS_ACTION] Options Loaded', props());\r\nexport const optionsCreate = createAction('[OPTIONS_ACTION] Create Option', props<{ data: { option: OptionModel } }>());\r\nexport const optionsUpdate = createAction('[OPTIONS_ACTION] Update Option', props<{ data: { option: OptionModel } }>());\r\n\r\nexport const optionsCreateCategory =\r\n createAction('[OPTIONS_ACTION] Create Category Option', props<{ data: { option: CategoryModel } }>());\r\nexport const optionsUpdateCategory =\r\n createAction('[OPTIONS_ACTION] Update Category Option', props<{ data: { option: CategoryModel } }>());\r\n\r\nexport const optionsCreateSpecialFinding =\r\n createAction('[OPTIONS_ACTION] Create Special Finding Option', props<{ data: { option: SubCategoryModel } }>());\r\nexport const optionsUpdateSpecialFinding =\r\n createAction('[OPTIONS_ACTION] Update Special Finding Option', props<{ data: { option: SubCategoryModel } }>());\r\n","import { Injectable } from '@angular/core';\r\nimport { ErrorHandlerService } from '@core/services/error-handler/error-handler.service';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { ApiService } from '@shared/services/api/api.service';\r\nimport { NgxNotifyService } from '@shared/services/ngx-notify/ngx-notify.service';\r\nimport { combineLatest, EMPTY } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\n\r\nimport { CategoryModel } from '../models/category.model';\r\nimport { OptionModel } from '../models/option.model';\r\nimport { SubCategoryModel } from '../models/sub-category.model';\r\nimport * as optionActions from './option.actions';\r\n\r\n@Injectable()\r\nexport class OptionEffects {\r\n optionsLoad$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(optionActions.optionsLoad),\r\n switchMap(() =>\r\n combineLatest([this.getOptions, this.getCategories]).pipe(\r\n map(([opts, cats]) => {\r\n const sub = [] as SubCategoryModel[];\r\n cats.forEach(x => x.subCategories.forEach(y => {\r\n y.category = x.name;\r\n sub.push(y);\r\n }));\r\n sub.sort((a, b) => a.name.localeCompare(b.name));\r\n return optionActions.optionsLoaded({ specialFindings: sub, categories: cats, options: opts });\r\n }),\r\n catchError(() => EMPTY)\r\n )\r\n )\r\n )\r\n );\r\n\r\n optionsCreate$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(optionActions.optionsCreate),\r\n switchMap((action) =>\r\n this.apiService.create(this.optionEndpoint, action.data.option).pipe(\r\n map(() => {\r\n this.notify.success('Option added');\r\n return optionActions.optionsLoad();\r\n }),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n )\r\n )\r\n )\r\n );\r\n\r\n optionsUpdate$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(optionActions.optionsUpdate),\r\n switchMap((action) =>\r\n this.apiService.update(this.optionEndpoint, action.data.option).pipe(\r\n map(() => {\r\n this.notify.success('Option updated');\r\n return optionActions.optionsLoad();\r\n }),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n )\r\n )\r\n )\r\n );\r\n\r\n optionsCreateCategory$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(optionActions.optionsCreateCategory),\r\n switchMap((action) =>\r\n this.apiService.create(this.categoriesEndpoint, action.data.option).pipe(\r\n map(() => {\r\n this.notify.success('Category added');\r\n return optionActions.optionsLoad();\r\n }),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n )\r\n )\r\n )\r\n );\r\n\r\n optionsUpdateCategory$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(optionActions.optionsUpdateCategory),\r\n switchMap((action) =>\r\n this.apiService.update(this.categoriesEndpoint, action.data.option).pipe(\r\n map(() => {\r\n this.notify.success('Category updated');\r\n return optionActions.optionsLoad();\r\n }),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n )\r\n )\r\n )\r\n );\r\n\r\n optionsCreateSpecialFinding$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(optionActions.optionsCreateSpecialFinding),\r\n switchMap((action) =>\r\n this.apiService.create(this.specialFindingsEndpoint, action.data.option).pipe(\r\n map(() => {\r\n this.notify.success('Special finding added');\r\n return optionActions.optionsLoad();\r\n }),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n )\r\n )\r\n )\r\n );\r\n\r\n optionsUpdateSpecialFinding$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(optionActions.optionsUpdateSpecialFinding),\r\n switchMap((action) =>\r\n this.apiService.update(this.specialFindingsEndpoint, action.data.option).pipe(\r\n map(() => {\r\n this.notify.success('Special finding updated');\r\n return optionActions.optionsLoad();\r\n }),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n )\r\n )\r\n )\r\n );\r\n\r\n\r\n private optionEndpoint = 'option';\r\n private specialFindingsEndpoint = 'subcategory';\r\n private categoriesEndpoint = 'category';\r\n private getOptions = this.apiService.get(`${this.optionEndpoint}/getalloptions?onlyActiveOptions=false`);\r\n private getCategories = this.apiService.get('category');\r\n\r\n constructor(\r\n private actions$: Actions,\r\n private notify: NgxNotifyService,\r\n private apiService: ApiService,\r\n private errorHandler: ErrorHandlerService) { }\r\n}\r\n","import { Action, createReducer, on } from '@ngrx/store';\r\nimport { CategoryModel } from '../models/category.model';\r\nimport { OptionModel } from '../models/option.model';\r\nimport { SubCategoryModel } from '../models/sub-category.model';\r\nimport { optionsLoaded } from './option.actions';\r\n\r\nexport const OPTION_FEATURE_KEY = 'options';\r\n\r\nexport interface OptionState {\r\n [key: string]: any;\r\n options: OptionModel[];\r\n specialFindings: SubCategoryModel[];\r\n categories: CategoryModel[];\r\n}\r\n\r\nexport const initialOptionState: OptionState = {\r\n options: [],\r\n specialFindings: [],\r\n categories: []\r\n};\r\n\r\nexport const optionReducer = createReducer(\r\n initialOptionState,\r\n\r\n on(optionsLoaded, (state, { options, specialFindings, categories }) => ({ ...state, options, specialFindings, categories }))\r\n);\r\n\r\nexport const reducer = (state: OptionState, action: Action) => optionReducer(state, action);\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { OptionType } from '../models/option-type.enum';\r\nimport { OptionState } from './option.reducers';\r\n\r\nexport const optionSelector = {\r\n /**\r\n * Returns all options in the store\r\n *\r\n * @return OptionState | [].\r\n *\r\n */\r\n allOptions: createSelector(createFeatureSelector('options'), (state: OptionState) => state),\r\n\r\n /**\r\n * Returns all active options in the store\r\n *\r\n * @return OptionState | [].\r\n *\r\n */\r\n activeOptions: createSelector(createFeatureSelector('options'),\r\n (state: OptionState) => Object.keys(state).filter(x => state[x].isActive)\r\n ),\r\n\r\n /**\r\n * Returns option by id from store if found\r\n *\r\n *\r\n * @param number id of option.\r\n *\r\n * @return OptionModel | undefined.\r\n *\r\n */\r\n selectOptionById: (id: number) => createSelector(\r\n createFeatureSelector('options'),\r\n (state: OptionState) => state.options.find(option => option.id === id)\r\n ),\r\n\r\n /**\r\n * Returns all options by type\r\n *\r\n *\r\n * @param OptionType enum of OptionModel type.\r\n * @param Active boolean.\r\n *\r\n * @return OptionModel[] | undefined.\r\n *\r\n */\r\n optionsByType: (type: OptionType, active = true) => createSelector(\r\n createFeatureSelector('options'),\r\n (state: OptionState) => state.options.filter(option => option.optionType === type)\r\n ),\r\n\r\n /**\r\n * Returns active options by type\r\n *\r\n *\r\n * @param OptionType enum of OptionModel type.\r\n * @param Active boolean.\r\n *\r\n * @return OptionModel[] | undefined.\r\n *\r\n */\r\n activeOptionsByType: (type: OptionType, active = true) => createSelector(createFeatureSelector('options'),\r\n (state: OptionState) => state.options.filter(option => option.optionType === type && option.isActive === active)\r\n ),\r\n\r\n /**\r\n * Returns Special Findings\r\n *\r\n * @return SubCategoryModel[] | undefined.\r\n *\r\n */\r\n specialFindings: createSelector(createFeatureSelector('options'),\r\n (state: OptionState) => state.specialFindings\r\n ),\r\n\r\n /**\r\n * Returns Categories\r\n *\r\n * @return Category[] | undefined.\r\n *\r\n */\r\n categories: createSelector(createFeatureSelector('options'),\r\n (state: OptionState) => state.categories\r\n ),\r\n\r\n /**\r\n * Returns Special Finding by id from store if found\r\n *\r\n *\r\n * @param number id of option.\r\n *\r\n * @return SubCategoryModel | undefined.\r\n *\r\n */\r\n specialFindingsById: (id: number) => createSelector(createFeatureSelector('options'),\r\n (state: OptionState) => state.specialFindings.filter(x => x.id === id)\r\n ),\r\n\r\n /**\r\n * Returns Category by id from store if found\r\n *\r\n *\r\n * @param number id of option.\r\n *\r\n * @return CategoryModel | undefined.\r\n *\r\n */\r\n categoriesById: (id: number) => createSelector(\r\n createFeatureSelector('options'),\r\n (state: OptionState) => state.categories.filter(x => x.id === id)\r\n )\r\n};\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { NgxNotifyService } from '@shared/services/ngx-notify/ngx-notify.service';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { switchMap, tap } from 'rxjs/operators';\r\n\r\nimport { LdapUser } from '../../models/ldap-user.model';\r\nimport { User } from '../../models/user.model';\r\nimport { UserStoreService } from '../../services/user-store.service';\r\nimport { UserState } from '../../store/user.reducers';\r\nimport { userSelector } from '../../store/user.selectors';\r\n\r\n@Component({\r\n selector: 'app-user-add',\r\n templateUrl: './user-add.component.html',\r\n styleUrls: ['./user-add.component.scss']\r\n})\r\nexport class UserAddComponent implements OnInit, OnDestroy {\r\n @ViewChild('typehead', { read: MatAutocompleteTrigger }) autoTrigger!: MatAutocompleteTrigger;\r\n data$!: Observable;\r\n userSearch: FormControl = new FormControl('', Validators.required);\r\n userRole: FormControl = new FormControl('', Validators.required);\r\n searchResults: LdapUser[] = [];\r\n subs$: Subscription[] = [];\r\n\r\n constructor(\r\n private store: Store,\r\n private userService: UserStoreService,\r\n private dialogRef: MatDialogRef,\r\n private notify: NgxNotifyService) { }\r\n\r\n ngOnInit(): void {\r\n this.data$ = this.store.pipe(select(userSelector.allUsers));\r\n this.watchUserSearch();\r\n }\r\n\r\n addUserRole(): void {\r\n this.subs$.push(\r\n this.store.select(userSelector.userByUserId(this.userSearch.value)).subscribe(result => {\r\n if (result) {\r\n this.notify.warn('This user already exists in the system. Please select another user.');\r\n } else {\r\n this.userService.addUserRole(this.userSearch.value, this.userRole.value);\r\n this.dialogRef.close();\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs$.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n private watchUserSearch(): void {\r\n this.subs$.push(\r\n this.userSearch.valueChanges.pipe(\r\n switchMap(value => {\r\n if (value.length > 0) {\r\n return this.userService.userSearch(value).pipe(tap(results => this.searchResults = results));\r\n }\r\n\r\n this.searchResults = [];\r\n return [];\r\n }\r\n\r\n )\r\n ).subscribe()\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n Add User\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Add User\r\n \r\n \r\n \r\n {{ option.samAccountName }} - {{ option.firstName }} {{ option.lastName }}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Add Role\r\n \r\n \r\n Admin\r\n Reader\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { User } from '../../models/user.model';\r\nimport { UserStoreService } from '../../services/user-store.service';\r\n\r\n@Component({\r\n selector: 'app-user-edit',\r\n templateUrl: './user-edit.component.html',\r\n styleUrls: ['./user-edit.component.scss']\r\n})\r\nexport class UserEditComponent implements OnInit {\r\n userRole: FormControl = new FormControl('', Validators.required);\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: User,\r\n private userService: UserStoreService,\r\n private dialogRef: MatDialogRef) { }\r\n\r\n ngOnInit(): void {\r\n this.userRole.setValue(this.data.isAdmin ? 'Admin' : 'Reader');\r\n }\r\n\r\n editUserRole(): void {\r\n const euid = this.data.userData.userName;\r\n const currentRole = this.data.isAdmin ? 'Admin' : 'Reader';\r\n\r\n if (this.userRole.value !== currentRole) {\r\n this.userService.removeUserRole(euid, currentRole);\r\n setTimeout(() => this.userService.addUserRole(euid, this.userRole.value), 500);\r\n }\r\n\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n Edit User\r\n
\r\n\r\n
\r\n \r\n
\r\n {{ data.userData.firstName }} {{ data.userData.lastName }}\r\n
\r\n\r\n
\r\n \r\n Add Role\r\n \r\n \r\n Admin\r\n Reader\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
","import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { ConfirmationDialogComponent } from '@shared/components/confirmation-dialog/confirmation-dialog.component';\r\nimport { ConfirmDialogData } from '@shared/models/confirm-dialog-data';\r\nimport { ROUTE_ANIMATIONS_ELEMENTS } from '@shared/services/animations/route.animations';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { User } from '../models/user.model';\r\nimport { UserStoreService } from '../services/user-store.service';\r\nimport { usersLoad } from '../store/user.actions';\r\nimport { UserState } from '../store/user.reducers';\r\nimport { userSelector } from '../store/user.selectors';\r\nimport { UserAddComponent } from './user-add/user-add.component';\r\nimport { UserEditComponent } from './user-edit/user-edit.component';\r\n\r\n@Component({\r\n selector: 'app-user-management',\r\n templateUrl: './user-management.component.html',\r\n styleUrls: ['./user-management.component.scss'],\r\n})\r\nexport class UserManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n @ViewChild(MatSort) sort!: MatSort;\r\n routeAnimationsElements = ROUTE_ANIMATIONS_ELEMENTS;\r\n data$!: Observable;\r\n headElements = ['firstName', 'lastName', 'roles', 'actions'];\r\n isMobile = false;\r\n sub$: Subscription = new Subscription();\r\n dataSource = new MatTableDataSource();\r\n\r\n constructor(\r\n private store: Store,\r\n private dialog: MatDialog,\r\n private userService: UserStoreService) {}\r\n\r\n ngOnInit(): void {\r\n this.store.dispatch(usersLoad());\r\n this.data$ = this.store.pipe(select(userSelector.allUsers)).pipe(tap(users => this.dataSource.data = users));\r\n this.dataSource.sortingDataAccessor = (data, sortHeaderId) => data[sortHeaderId].toLocaleLowerCase();\r\n }\r\n\r\n add(): void {\r\n this.dialog.open(UserAddComponent);\r\n }\r\n\r\n edit(data: User): void {\r\n this.dialog.open(UserEditComponent, { data });\r\n }\r\n\r\n remove(user: User): void {\r\n const fullName = `${user.userData.firstName} ${user.userData.lastName}`;\r\n\r\n const data: ConfirmDialogData = {\r\n title: 'Remove User',\r\n description: `Are you sure you would like to remove ${fullName} from the IRB system?`\r\n };\r\n this.sub$ = this.dialog.open(ConfirmationDialogComponent, { data }).afterClosed()\r\n .subscribe(res => {\r\n if (res) {\r\n const role = user.isAdmin ? 'Admin' : 'Reader';\r\n this.userService.removeUserRole(user.userData.userName, role);\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub$.unsubscribe();\r\n }\r\n}\r\n","\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n First Name \r\n \r\n First Name:\r\n {{ element.userData.firstName }}\r\n \r\n \r\n\r\n \r\n Last Name \r\n \r\n Last Name:\r\n {{ element.userData.lastName }}\r\n \r\n \r\n\r\n \r\n Role \r\n \r\n Role:\r\n {{ !element.isWarden ? element.claims[0].value : \"Developer\" }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Actions:\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { ClaimsModel } from '@core/services/auth/models/claims.model';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { LdapUser } from '../models/ldap-user.model';\r\nimport { usersAddRole, usersRemoveRole } from '../store/user.actions';\r\nimport { UserState } from '../store/user.reducers';\r\nimport { UserService } from './user.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserStoreService {\r\n\r\n constructor(private store: Store, private userService: UserService) { }\r\n\r\n addUserRole(userName: string, role: 'Admin' | 'Reader'): void {\r\n const userClaim: ClaimsModel = { type: `role_${role.toLowerCase()}`, value: role };\r\n const payload = { data: { user: userName, claim: userClaim } };\r\n return this.store.dispatch(usersAddRole(payload));\r\n }\r\n\r\n removeUserRole(userName: string, role: 'Admin' | 'Reader'): void {\r\n const userClaim: ClaimsModel = { type: `role_${role.toLowerCase()}`, value: role };\r\n const payload = { data: { user: userName, claim: userClaim } };\r\n return this.store.dispatch(usersRemoveRole(payload));\r\n }\r\n\r\n userSearch(search: string): Observable {\r\n return this.userService.inputSearch(search);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApplicationUser } from '@core/services/auth/models/application-user.model';\r\nimport { ClaimsModel } from '@core/services/auth/models/claims.model';\r\nimport { ApiService } from '@shared/services/api/api.service';\r\nimport { Observable } from 'rxjs';\r\nimport { LdapUser } from '../models/ldap-user.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UserService {\r\n private endpoint = 'user';\r\n\r\n constructor(private apiService: ApiService) {}\r\n\r\n getAllUsers(): Observable {\r\n return this.apiService.get(`${this.endpoint}/getuserswithroles`);\r\n }\r\n\r\n addUserRole(euid: string, claim: ClaimsModel): Observable {\r\n return this.apiService.create(`${this.endpoint}/${euid}/addclaim`, claim);\r\n }\r\n\r\n deleteUserRole(euid: string, claim: ClaimsModel): Observable {\r\n return this.apiService.create(`${this.endpoint}/${euid}/removeclaim`, claim);\r\n }\r\n\r\n inputSearch(input: string): Observable {\r\n return this.apiService.get(`${this.endpoint}/TokenInputSearch/${input}`);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { UserEffects } from './user.effects';\r\nimport { userReducer, USER_FEATURE_KEY } from './user.reducers';\r\n\r\n@NgModule({\r\n imports: [\r\n StoreModule.forFeature(USER_FEATURE_KEY, userReducer),\r\n EffectsModule.forFeature([UserEffects])\r\n ]\r\n})\r\n\r\nexport class UserStoreModule { }\r\n","import { ClaimsModel } from '@core/services/auth/models/claims.model';\r\nimport { createAction, props } from '@ngrx/store';\r\nimport { UserState } from './user.reducers';\r\n\r\nexport const usersLoad = createAction('[USERS_ACTION] Get Users');\r\nexport const usersLoaded = createAction('[USERS_ACTION] Users Loaded', props());\r\nexport const usersAddRole = createAction('[USERS_ACTION] Users Add Role', props<{ data: { user: string; claim: ClaimsModel } }>());\r\nexport const usersRemoveRole = createAction('[USERS_ACTION] Users Remove Role', props<{ data: { user: string; claim: ClaimsModel } }>());\r\n","import { Injectable } from '@angular/core';\r\nimport { ApplicationUser } from '@core/services/auth/models/application-user.model';\r\nimport { ErrorHandlerService } from '@core/services/error-handler/error-handler.service';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { NgxNotifyService } from '@shared/services/ngx-notify/ngx-notify.service';\r\nimport { EMPTY } from 'rxjs';\r\nimport { catchError, map, mergeMap, switchMap } from 'rxjs/operators';\r\n\r\nimport { User } from '../models/user.model';\r\nimport { UserService } from '../services/user.service';\r\nimport * as userActions from './user.actions';\r\n\r\n@Injectable()\r\nexport class UserEffects {\r\n\r\n usersLoad$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(userActions.usersLoad),\r\n mergeMap(() =>\r\n this.userService.getAllUsers().pipe(\r\n map((applicationUsers: ApplicationUser[]) => userActions.usersLoaded({ users: this.populateUsers(applicationUsers) })),\r\n catchError(() => EMPTY)\r\n )\r\n )\r\n )\r\n );\r\n\r\n usersAddRole$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(userActions.usersAddRole),\r\n switchMap((action) =>\r\n this.userService.addUserRole(action.data.user, action.data.claim).pipe(\r\n map(() => {\r\n this.notify.success('User role added');\r\n return userActions.usersLoad();\r\n }),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n )\r\n )\r\n )\r\n );\r\n usersRemoveRole$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(userActions.usersRemoveRole),\r\n switchMap((action) =>\r\n this.userService.deleteUserRole(action.data.user, action.data.claim).pipe(\r\n map(() => {\r\n this.notify.success('User role removed');\r\n return userActions.usersLoad();\r\n }),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n )\r\n )\r\n )\r\n );\r\n\r\n constructor(\r\n private userService: UserService,\r\n private actions$: Actions,\r\n private notify: NgxNotifyService,\r\n private errorHandler: ErrorHandlerService\r\n ) { }\r\n\r\n private isAdmin = (user: ApplicationUser): boolean =>\r\n user?.claims?.length ? user.claims.filter(x => x.type.includes('_admin')).length > 0 : false;\r\n\r\n private isWarden = (user: ApplicationUser): boolean =>\r\n user?.claims?.length ? user.claims.filter(x => x.type.includes('_warden')).length > 0 : false;\r\n\r\n private populateUsers(users: ApplicationUser[]): User[] {\r\n return users.map(user => ({\r\n userData: user,\r\n isWarden: this.isWarden(user),\r\n isAdmin: this.isAdmin(user),\r\n claims: user.claims ?? []\r\n }));\r\n }\r\n}\r\n","import { usersLoaded } from './user.actions';\r\nimport { Action, createReducer, on } from '@ngrx/store';\r\nimport { User } from '../models/user.model';\r\n\r\nexport const USER_FEATURE_KEY = 'users';\r\n\r\nexport interface UserState {\r\n users: User[];\r\n}\r\n\r\nexport const initialUserState: UserState = {\r\n users: []\r\n};\r\n\r\nexport const userReducer = createReducer(\r\n initialUserState,\r\n\r\n on(usersLoaded, (state, { users }) => ({ ...state, users }))\r\n);\r\n\r\nexport const reducer = (state: UserState, action: Action) => userReducer(state, action);\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { User } from '../models/user.model';\r\nimport { UserState } from './user.reducers';\r\n\r\nexport const userSelector = {\r\n /**\r\n * Returns all users in the store\r\n *\r\n * @return UserState | [].\r\n *\r\n */\r\n allUsers: createSelector(createFeatureSelector('users'), (state: UserState) => state.users),\r\n\r\n /**\r\n * Returns user from store if found\r\n *\r\n *\r\n * @param string EUID of user.\r\n *\r\n * @return User | undefined.\r\n *\r\n */\r\n userByUserId: (euid: string) =>\r\n createSelector(createFeatureSelector('users'), (state: UserState) => state.users.find((user: User) =>\r\n user.userData.userName === euid))\r\n};\r\n","import { Component, OnDestroy } from '@angular/core';\r\nimport { AppState } from '@core/app-state/reducers';\r\nimport { authSelector } from '@core/services/auth/state/authentication.selectors';\r\nimport { optionsLoad } from '@features/admin/option-management/store/option.actions';\r\nimport { Store } from '@ngrx/store';\r\nimport { AnimationsService } from '@shared/services/animations/animations.service';\r\nimport { routeAnimations } from '@shared/services/animations/route.animations';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss'],\r\n animations: [routeAnimations],\r\n})\r\nexport class HomeComponent implements OnDestroy {\r\n private subs$: Subscription[] = [];\r\n\r\n constructor(private animationService: AnimationsService, private store: Store) {\r\n // Loading Initial Application State\r\n // Items here are likely required system wide\r\n this.animationService.updateRouteAnimationType(true, true);\r\n\r\n this.subs$.push(\r\n this.store.select(authSelector.accessToken).subscribe(data => {\r\n if (data != null || data !== '' && data) {\r\n this.store.dispatch(optionsLoad());\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs$.forEach(sub => sub.unsubscribe());\r\n }\r\n}\r\n","
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { ROUTE_ANIMATIONS_ELEMENTS } from '@shared/services/animations/route.animations';\r\nimport { ProtocolModel } from '../models/protocol.model';\r\nimport { ProtocolService } from '../services/protocol.service';\r\nimport { protocolCreate } from '../store/protocol.actions';\r\nimport { ProtocolState } from '../store/protocol.reducers';\r\n\r\n@Component({\r\n selector: 'app-protocol-add',\r\n templateUrl: './protocol-add.component.html',\r\n styleUrls: ['./protocol-add.component.scss']\r\n})\r\nexport class ProtocolAddComponent implements OnInit {\r\n routeAnimationsElements = ROUTE_ANIMATIONS_ELEMENTS;\r\n form = new FormGroup({});\r\n fields: FormlyFieldConfig[] = [];\r\n model = { } as ProtocolModel;\r\n\r\n constructor(private service: ProtocolService, private store: Store, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.fields = this.service.buildForm(this.model, true);\r\n }\r\n\r\n save(): void {\r\n this.form.markAsPristine();\r\n this.store.dispatch(protocolCreate({ data: { protocol: { ...this.model } } }));\r\n }\r\n\r\n cancel(): void {\r\n this.router.navigate(['protocol']);\r\n }\r\n\r\n}\r\n","\r\n Add Protocol\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { authSelector } from '@core/services/auth/state/authentication.selectors';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { ROUTE_ANIMATIONS_ELEMENTS } from '@shared/services/animations/route.animations';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\nimport { ProtocolModel } from '../models/protocol.model';\r\nimport { ProtocolService } from '../services/protocol.service';\r\nimport { protocolById, protocolUpdate } from '../store/protocol.actions';\r\nimport { ProtocolState } from '../store/protocol.reducers';\r\nimport { protocolSelector } from './../store/protocol.selectors';\r\n\r\n@Component({\r\n selector: 'app-protocol-edit',\r\n templateUrl: './protocol-edit.component.html',\r\n styleUrls: ['./protocol-edit.component.scss']\r\n})\r\nexport class ProtocolEditComponent implements OnInit {\r\n routeAnimationsElements = ROUTE_ANIMATIONS_ELEMENTS;\r\n data$!: Observable;\r\n form = new FormGroup({});\r\n fields: FormlyFieldConfig[] = [];\r\n model = {} as ProtocolModel;\r\n isAdmin$ = this.store.pipe(select(authSelector.isAdmin));\r\n\r\n constructor(\r\n private store: Store,\r\n private route: ActivatedRoute,\r\n private service: ProtocolService,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.data$ = this.getSelectedProtocol();\r\n }\r\n\r\n save(): void {\r\n this.store.dispatch(protocolUpdate({ data: { protocol: { ...this.model } }}));\r\n }\r\n\r\n cancel(): void {\r\n window.history.back();\r\n }\r\n\r\n private getSelectedProtocol(): Observable {\r\n // If there is a selected protocol in the store we will take it\r\n // If not we will take the param id from URL and call the backend\r\n const params$ = this.route.params;\r\n const selected$ = this.store.pipe(select(protocolSelector.protocolSelected))\r\n .pipe(tap(protocol => {\r\n if (protocol?.id != null) {\r\n this.fields = this.service.buildForm(protocol, false);\r\n this.model = { ...protocol };\r\n this.form.markAllAsTouched();\r\n }\r\n }));\r\n\r\n return combineLatest([selected$, params$]).pipe(map(([selected, params]) => {\r\n if (selected?.id == null || selected?.id !== Number(params.id)) {\r\n this.store.dispatch(protocolById({ id: Number(params.id) }));\r\n }\r\n return selected;\r\n }));\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n

The selected protocol could not be found

\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ProtocolModel } from '@features/protocols/models/protocol.model';\r\nimport { ProtocolService } from '@features/protocols/services/protocol.service';\r\nimport { FormlyFieldConfig } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'app-protocol-history-modal',\r\n templateUrl: './protocol-history-modal.component.html',\r\n styleUrls: ['./protocol-history-modal.component.scss']\r\n})\r\nexport class ProtocolHistoryModalComponent implements OnInit {\r\n form = new FormGroup({});\r\n fields: FormlyFieldConfig[] = [];\r\n model = {} as ProtocolModel;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: ProtocolModel, private service: ProtocolService) { }\r\n\r\n ngOnInit(): void {\r\n this.fields = this.service.buildForm(this.data, true);\r\n this.model = { ...this.data };\r\n }\r\n\r\n}\r\n","\r\n \r\n\r\n\r\n \r\n","import { ProtocolHistoryModalComponent } from './protocol-history-modal/protocol-history-modal.component';\r\nimport { Component, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { ProtocolModel } from '../models/protocol.model';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-protocol-history',\r\n templateUrl: './protocol-history.component.html',\r\n styleUrls: ['./protocol-history.component.scss']\r\n})\r\nexport class ProtocolHistoryComponent {\r\n @Input() history$!: Observable;\r\n displayedColumns: string[] = ['investigator', 'created', 'createdBy', 'actions'];\r\n\r\n constructor(public dialog: MatDialog) { }\r\n\r\n view(model: ProtocolModel): void {\r\n this.dialog.open(ProtocolHistoryModalComponent, { data: model });\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Investigator {{ element?.investigator?.name }} Date {{ element?.created | date:'shortDate' }} CreatedBy {{ element?.createdBy || '' }}
","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { Router } from '@angular/router';\r\nimport { authSelector } from '@core/services/auth/state/authentication.selectors';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { SearchFilter, SearchModel } from '@shared/models/search.model';\r\nimport { ROUTE_ANIMATIONS_ELEMENTS } from '@shared/services/animations/route.animations';\r\nimport { BehaviorSubject, Observable, of, Subscription } from 'rxjs';\r\nimport { map, startWith, switchMap } from 'rxjs/operators';\r\n\r\nimport { ProtocolModel } from '../models/protocol.model';\r\nimport { protocolSelector } from '../store/protocol.selectors';\r\nimport { AppState } from './../../../core/app-state/reducers';\r\nimport { protocolById, protocolSearch } from './../store/protocol.actions';\r\nimport { OptionModel } from '@features/admin/option-management/models/option.model';\r\nimport { optionSelector } from '@features/admin/option-management/store/option.selectors';\r\nimport { OptionType } from '@features/admin/option-management/models/option-type.enum';\r\nimport { ProtocolService } from '../services/protocol.service';\r\n\r\n@Component({\r\n selector: 'app-protocols-list',\r\n templateUrl: './protocols-list.component.html',\r\n styleUrls: ['./protocols-list.component.scss'],\r\n})\r\nexport class ProtocolsListComponent implements OnInit, OnDestroy {\r\n @ViewChild(MatPaginator, { static: true }) paginator!: MatPaginator;\r\n @ViewChild(MatSort) sort!: MatSort;\r\n routeAnimationsElements = ROUTE_ANIMATIONS_ELEMENTS;\r\n headElements = ['irbNumber', 'investigator', 'studyTitle', 'status', 'approvalThrough', 'actions'];\r\n resultsLength = 0;\r\n pageSize = 10;\r\n pageSizeOptions: number[] = [10, 50, 100];\r\n\r\n data$!: Observable;\r\n loadingProtocols$ = new BehaviorSubject(false);\r\n loading$ = this.loadingProtocols$.asObservable();\r\n subs$: Subscription[] = [];\r\n isAdmin$ = this.store.pipe(select(authSelector.isAdmin));\r\n\r\n //filter = '';\r\n status!: OptionModel[];\r\n filteredStatus$!: Observable;\r\n investigators!: OptionModel[];\r\n filteredInvestigators$!: Observable;\r\n typeOfReview!: OptionModel[];\r\n filteredTypeOfReview$!: Observable;\r\n ntrIrbCoordinators!: OptionModel[];\r\n filteredNtrIrbCoordinators$!: Observable;\r\n\r\n constructor(\r\n private store: Store,\r\n public protocolService: ProtocolService,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.setFormOptions();\r\n this.data$ = this.store.pipe(select(authSelector.accessToken)).pipe(switchMap(token => {\r\n if (token != null && token !== '') {\r\n this.insert(this.protocolService.protocolFilterForm.value);\r\n const filters = new SearchModel();\r\n filters.order = this.sort?.direction || 'desc';\r\n filters.sort = this.sort?.active || 'irbNumber';\r\n filters.pageSize = this.protocolService?.pageSize;\r\n filters.pageIndex = this.protocolService?.pageIndex;\r\n filters.filter = { ...this.protocolService.searchFilterModel } as SearchFilter; \r\n return this.getProtocols(filters);\r\n }\r\n return of([]);\r\n }));\r\n }\r\n\r\n onSubmit(): void {\r\n this.insert(this.protocolService.protocolFilterForm.value);\r\n this.protocolService.pageIndex = 0\r\n this.loadData();\r\n }\r\n\r\n loadData(){\r\n const filters = new SearchModel();\r\n filters.order = this.sort?.direction || 'desc';\r\n filters.sort = this.sort?.active || 'irbNumber'; \r\n filters.pageSize = this.protocolService?.pageSize\r\n filters.pageIndex = this.protocolService?.pageIndex; \r\n filters.filter = { ...this.protocolService.searchFilterModel } as SearchFilter;\r\n return this.getProtocols(filters);\r\n }\r\n\r\n view(protocolId: number): void {\r\n this.store.dispatch(protocolById({ id: protocolId }));\r\n this.router.navigate(['/protocol', protocolId]);\r\n }\r\n\r\n sortData(): void {\r\n this.protocolService.pageIndex = this.paginator.pageIndex = 0;//reset index to 0 \r\n this.loadData();\r\n }\r\n\r\n onPageChange(event: any) {\r\n this.protocolService.pageSize = event.pageSize;\r\n this.protocolService.pageIndex = event.pageIndex;\r\n this.pageSize = event.pageSize; // Update the central pageSize\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs$.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n private getProtocols(filters: SearchModel): Observable {\r\n this.loadingProtocols$.next(true);\r\n this.store.dispatch(protocolSearch({ options: filters }));\r\n return this.store.pipe(select(protocolSelector.allProtocols)).pipe(map(x => {\r\n this.resultsLength = x?.count;\r\n this.loadingProtocols$.next(false);\r\n return x?.protocols;\r\n }));\r\n }\r\n\r\n\r\n resetFilter(): void {\r\n this.protocolService.protocolFilterForm.reset();\r\n this.insert(this.protocolService.protocolFilterForm.value);\r\n this.paginator.pageIndex = 0; // If the user applies filter, reset back to the first page.\r\n this.sortData();\r\n\r\n }\r\n\r\n private insert(data: any): void {\r\n if (data != null) {\r\n if (data.studyTitle != null) {\r\n this.protocolService.searchFilterModel.studyTitle = data.studyTitle;\r\n }\r\n else {\r\n this.protocolService.searchFilterModel.studyTitle = '';\r\n }\r\n if (data.ntrIrbCoordinatorId != null && data.ntrIrbCoordinatorId !== undefined && data.ntrIrbCoordinatorId !== 0 && data.ntrIrbCoordinatorId !== '') {\r\n this.protocolService.searchFilterModel.ntrIrbCoordinatorId = data.ntrIrbCoordinatorId.id;\r\n }\r\n else {\r\n this.protocolService.searchFilterModel.ntrIrbCoordinatorId = undefined;\r\n }\r\n\r\n if (data.investigatorId != null && data.investigatorId !== undefined && data.investigatorId !== 0 && data.investigatorId !== '') {\r\n this.protocolService.searchFilterModel.investigatorId = data.investigatorId.id;\r\n }\r\n else {\r\n this.protocolService.searchFilterModel.investigatorId = undefined;\r\n }\r\n\r\n\r\n if (data.statusId != null && data.statusId !== undefined && data.statusId !== 0 && data.statusId !== '') {\r\n\r\n this.protocolService.searchFilterModel.statusId = data.statusId.id;\r\n }\r\n else {\r\n this.protocolService.searchFilterModel.statusId = undefined;\r\n }\r\n\r\n if (data.approvalThrough != null) {\r\n this.protocolService.searchFilterModel.approvalThrough = data.approvalThrough.toLocaleString();\r\n }\r\n else {\r\n this.protocolService.searchFilterModel.approvalThrough = '';\r\n }\r\n\r\n if (data.irbNumber != null) {\r\n this.protocolService.searchFilterModel.irbNumber = data.irbNumber;\r\n }\r\n else {\r\n this.protocolService.searchFilterModel.irbNumber = '';\r\n }\r\n if (data.irbNetNumber != null) {\r\n this.protocolService.searchFilterModel.irbNetNumber = data.irbNetNumber;\r\n }\r\n else {\r\n this.protocolService.searchFilterModel.irbNetNumber = '';\r\n }\r\n if (data.sendNextReview != null) {\r\n this.protocolService.searchFilterModel.sendNextReview = data.sendNextReview.toLocaleString();\r\n }\r\n else {\r\n this.protocolService.searchFilterModel.sendNextReview = '';\r\n }\r\n }\r\n }\r\n\r\n private setFormOptions(): void {\r\n this.subs$.push(this.store.pipe(select(optionSelector.optionsByType(OptionType.investigator))).subscribe((investigators: OptionModel[]) => {\r\n this.investigators = investigators;\r\n this.filteredInvestigators$ = this.protocolService.protocolFilterForm.controls.investigatorId?.valueChanges.pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value?.name),\r\n map(name => name ? this._filter(name, this.investigators) : this.investigators.slice()));\r\n }));\r\n\r\n this.subs$.push(this.store.pipe(select(optionSelector.optionsByType(OptionType.nTRIRBCoordinator))).subscribe((options: OptionModel[]) => {\r\n this.ntrIrbCoordinators = options;\r\n this.filteredNtrIrbCoordinators$ = this.protocolService.protocolFilterForm.controls.ntrIrbCoordinatorId?.valueChanges.pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value?.name),\r\n map(name => name ? this._filter(name, this.ntrIrbCoordinators) : this.ntrIrbCoordinators.slice()));\r\n }));\r\n\r\n\r\n this.subs$.push(this.store.pipe(select(optionSelector.optionsByType(OptionType.status))).subscribe((options: OptionModel[]) => {\r\n this.status = options;\r\n this.filteredStatus$ = this.protocolService.protocolFilterForm.controls.statusId?.valueChanges.pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value?.name),\r\n map(name => name ? this._filter(name, this.status) : this.status.slice()));\r\n }));\r\n }\r\n private _filter(name: string, optionList: OptionModel[]): any {\r\n const filterValue = name.trim().toLowerCase();\r\n return optionList.filter(option => option.name.trim().toLowerCase().includes(filterValue));\r\n }\r\n\r\n displayFn(option: OptionModel): string {\r\n return option && option.name ? option.name : '';\r\n }\r\n\r\n onDateChange(dateString: any, formControl: string) {\r\n if (dateString != null) {\r\n this.protocolService.protocolFilterForm.controls[formControl].setValue(new Date(dateString.target.value.substring(0, 2) + \"/\" + dateString.target.value.substring(2, 4) + \"/\" +\r\n dateString.target.value.substring(4, dateString.length)));\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Search by IRB Number\r\n \r\n \r\n
\r\n
\r\n \r\n Search by IRBNet Number\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Search by Study Title\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Search by Investigator\r\n \r\n \r\n \r\n {{investigator.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Search by NTRIBCoordinator\r\n \r\n \r\n \r\n {{ntrIrbCoordinator.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Search by Status\r\n \r\n \r\n \r\n {{status.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Approval Through Date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Send Next Review\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n IRB Number \r\n \r\n {{ element?.irbNumber }}\r\n \r\n \r\n\r\n \r\n Investigator \r\n \r\n {{ element?.investigator?.name || '' }}\r\n \r\n \r\n\r\n \r\n Study Title \r\n \r\n {{ element?.studyTitle || '' }}\r\n \r\n \r\n\r\n \r\n Status \r\n \r\n {{ element?.status?.name || '' }}\r\n \r\n \r\n\r\n \r\n Approval Through \r\n \r\n {{ (element?.approvalThrough | date) || '' }}\r\n \r\n \r\n\r\n \r\n Actions\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { AppState } from '@core/app-state/reducers';\r\nimport { OptionType } from '@features/admin/option-management/models/option-type.enum';\r\nimport { OptionModel } from '@features/admin/option-management/models/option.model';\r\nimport { optionSelector } from '@features/admin/option-management/store/option.selectors';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { ProtocolModel } from '../models/protocol.model';\r\nimport { SearchFilter } from '@shared/models/search.model';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ProtocolService {\r\n model = {} as ProtocolModel;\r\n searchFilterModel: SearchFilter = {};\r\n protocolFilterForm: FormGroup = this.fb.group({\r\n investigatorId: [0],\r\n statusId: [0],\r\n irbNumber: [null],\r\n irbNetNumber: [null],\r\n approvalThrough: [null],\r\n sendNextReview: [null],\r\n typeOfReviewId: [0],\r\n ntrIrbCoordinatorId: [0],\r\n studyTitle: ['']\r\n });\r\n\r\n pageIndex = 0;\r\n pageSize = 10\r\n \r\n\r\n constructor(private store: Store, private fb: FormBuilder,) { \r\n\r\n }\r\n\r\n buildForm(model: ProtocolModel, isNew: boolean): FormlyFieldConfig[] {\r\n this.model = model;\r\n return [\r\n {\r\n template: '
Protocol Details
'\r\n },\r\n this.includeOldIrb(),\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-sm-12',\r\n type: 'input',\r\n key: 'studyTitle',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Study Title',\r\n required: true\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-md-3 col-sm-12',\r\n type: 'input',\r\n key: 'irbNetNumber',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'IRBNet Number',\r\n maxLength: 250\r\n }\r\n },\r\n {\r\n className: 'col-md-3 col-sm-12',\r\n type: 'select',\r\n key: 'statusId',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Status',\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n options: this.store.pipe(select(optionSelector.optionsByType(OptionType.status)))\r\n .pipe(map(options => this.appendSelectedOptionIfDisabled(model.statusId ?? 0, options))),\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n template: '
Ownership
'\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-md-3 col-sm-12',\r\n type: 'select',\r\n key: 'investigatorId',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Investigator',\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n options: this.store.pipe(select(optionSelector.optionsByType(OptionType.investigator)))\r\n .pipe(map(options => this.appendSelectedOptionIfDisabled(model.investigatorId ?? 0, options))),\r\n }\r\n },\r\n {\r\n className: 'col-md-6 col-sm-12',\r\n type: 'input',\r\n key: 'coInvestigator',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Co-Investigator',\r\n maxLength: 250\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-md-3 col-sm-12',\r\n type: 'select',\r\n key: 'ntrIrbCoordinatorId',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'NTRIRB Coordinator',\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n options: this.store.pipe(select(optionSelector.optionsByType(OptionType.nTRIRBCoordinator)))\r\n .pipe(map(options => this.appendSelectedOptionIfDisabled(model.ntrIrbCoordinatorId ?? 0, options))),\r\n }\r\n },\r\n {\r\n className: 'col-md-4 col-sm-12',\r\n type: 'input',\r\n key: 'crCoordinator',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'CR Coordinator',\r\n maxLength: 250\r\n }\r\n },\r\n {\r\n className: 'col-md-3 col-sm-12',\r\n type: 'select',\r\n key: 'typeOfResearchId',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Type of Research',\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n options: this.store.pipe(select(optionSelector.optionsByType(OptionType.typeOfResearch)))\r\n .pipe(map(options => this.appendSelectedOptionIfDisabled(model.typeOfResearchId ?? 0, options))),\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-md-4 col-sm-12',\r\n type: 'select',\r\n key: 'departmentId',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Department',\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n options: this.store.pipe(select(optionSelector.optionsByType(OptionType.department)))\r\n .pipe(map(options => this.appendSelectedOptionIfDisabled(model.departmentId ?? 0, options))),\r\n }\r\n },\r\n {\r\n className: 'col-md-3 col-sm-12',\r\n type: 'select',\r\n key: 'schoolId',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'School',\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n options: this.store.pipe(select(optionSelector.optionsByType(OptionType.school)))\r\n .pipe(map(options => this.appendSelectedOptionIfDisabled(model.schoolId ?? 0, options))),\r\n }\r\n },\r\n {\r\n className: 'col-md-3 col-sm-12',\r\n type: 'select',\r\n key: 'institutionId',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Institution',\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n options: this.store.pipe(select(optionSelector.optionsByType(OptionType.institution)))\r\n .pipe(map(options => this.appendSelectedOptionIfDisabled(model.institutionId ?? 0, options))),\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n template: '
Sponsorship
'\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-md-3 col-sm-12',\r\n type: 'select',\r\n key: 'sponsorTypeId',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Sponsor Type',\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n options: this.store.pipe(select(optionSelector.optionsByType(OptionType.sponsorType)))\r\n .pipe(map(options => this.appendSelectedOptionIfDisabled(model.sponsorTypeId ?? 0, options))),\r\n }\r\n },\r\n {\r\n className: 'col-md-3 col-sm-12',\r\n type: 'input',\r\n key: 'sponsor',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Sponsor',\r\n maxLength: 250\r\n }\r\n },\r\n {\r\n className: 'col-md-4 col-sm-12',\r\n type: 'input',\r\n key: 'sponsorProtocol',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Sponsor Protocol',\r\n maxLength: 250\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n template: '
Review
'\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-md-3 col-sm-12',\r\n type: 'select',\r\n key: 'typeOfReviewId',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Type of Review',\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n options: this.store.pipe(select(optionSelector.optionsByType(OptionType.typeOfReview)))\r\n .pipe(map(options => this.appendSelectedOptionIfDisabled(model.typeOfReviewId ?? 0, options))),\r\n }\r\n },\r\n {\r\n className: 'col-md-3 col-sm-12',\r\n type: 'select',\r\n key: 'reviewCycleId',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Review Cycle',\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n options: this.store.pipe(select(optionSelector.optionsByType(OptionType.reviewCycle)))\r\n .pipe(map(options => this.appendSelectedOptionIfDisabled(model.reviewCycleId ?? 0, options))),\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n template: '
Special Findings
'\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-sm-12',\r\n type: 'select',\r\n key: 'specialFindingCategories',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Special Findings Category',\r\n multiple: true,\r\n valueProp: 'id',\r\n labelProp: 'name',\r\n groupProp: 'category',\r\n options: this.store.select(optionSelector.specialFindings).pipe(map(options => {\r\n let activeOptions = options.filter(option => option.isActive);\r\n const inactiveOptions = options.filter(option =>\r\n model.specialFindingCategories?.includes(option.id) && !option.isActive);\r\n\r\n if (inactiveOptions.length > 0) {\r\n activeOptions = [...activeOptions, ...inactiveOptions];\r\n }\r\n activeOptions.sort((a, b) => a.name.localeCompare(b.name));\r\n return activeOptions;\r\n }))\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-md-12',\r\n type: 'rich-text',\r\n key: 'specialFindings',\r\n templateOptions: {\r\n appearance: 'fill',\r\n placeholder: 'Special Findings Notes'\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n template: '
Milestones
'\r\n },\r\n {\r\n template: '
All dates must occur after the initial submission date.
'\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-md-3',\r\n type: 'datepicker',\r\n key: 'submissionDate',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Submission Date'\r\n }\r\n },\r\n {\r\n className: 'col-md-3',\r\n type: 'datepicker',\r\n key: 'initialReview',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Initial Review Date'\r\n },\r\n expressionProperties: { 'templateOptions.datepickerOptions.min': 'model.submissionDate', }\r\n },\r\n {\r\n className: 'col-md-3',\r\n type: 'datepicker',\r\n key: 'mostRecentReview',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Most Recent Review Date'\r\n },\r\n expressionProperties: { 'templateOptions.datepickerOptions.min': 'model.submissionDate', }\r\n },\r\n {\r\n className: 'col-md-3',\r\n type: 'datepicker',\r\n key: 'initialApprovalDate',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Initial Approval Date'\r\n },\r\n expressionProperties: { 'templateOptions.datepickerOptions.min': 'model.submissionDate', }\r\n },\r\n ]\r\n },\r\n {\r\n fieldGroupClassName: 'row',\r\n fieldGroup: [\r\n {\r\n className: 'col-md-3',\r\n type: 'datepicker',\r\n key: 'approvalThrough',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Approval Through Date'\r\n },\r\n expressionProperties: { 'templateOptions.datepickerOptions.min': 'model.submissionDate', }\r\n },\r\n {\r\n className: 'col-md-3',\r\n type: 'datepicker',\r\n key: 'sendNextReview',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Send Next Review Date'\r\n },\r\n expressionProperties: { 'templateOptions.datepickerOptions.min': 'model.submissionDate', }\r\n },\r\n {\r\n className: 'col-md-3',\r\n type: 'datepicker',\r\n key: 'continuingReviewDate',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Continuing Review Date'\r\n },\r\n expressionProperties: { 'templateOptions.datepickerOptions.min': 'model.submissionDate', }\r\n },\r\n {\r\n className: 'col-md-3',\r\n type: 'datepicker',\r\n key: 'completeDate',\r\n templateOptions: {\r\n appearance: 'fill',\r\n label: 'Complete Date'\r\n },\r\n expressionProperties: { 'templateOptions.datepickerOptions.min': 'model.submissionDate', }\r\n },\r\n ]\r\n },\r\n ];\r\n }\r\n\r\n private appendSelectedOptionIfDisabled(id: number, options: OptionModel[]): OptionModel[] {\r\n const selectedOption = options.find(x => x.id === id);\r\n const activeOptions = options.filter(x => x.isActive === true);\r\n if (selectedOption != null && !selectedOption?.isActive) {\r\n activeOptions.push(selectedOption);\r\n }\r\n activeOptions.sort((a, b) => a.name.localeCompare(b.name));\r\n return activeOptions;\r\n }\r\n\r\n private includeOldIrb(): FormlyFieldConfig {\r\n if (this.model.previousIrbNumber != null) {\r\n return {\r\n template: `\r\n
\r\n Previous IRB Number: ${this.model.previousIrbNumber}\r\n
`\r\n };\r\n }\r\n\r\n return {};\r\n }\r\n\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { ProtocolEffects } from './protocol.effects';\r\nimport { PROTOCOL_FEATURE_KEY, protocolReducer } from './protocol.reducers';\r\n\r\n@NgModule({\r\n imports: [\r\n StoreModule.forFeature(PROTOCOL_FEATURE_KEY, protocolReducer),\r\n EffectsModule.forFeature([ProtocolEffects])\r\n ]\r\n})\r\n\r\nexport class ProtocolStoreModule {}\r\n","import { createAction, props } from '@ngrx/store';\r\nimport { SearchModel } from '@shared/models/search.model';\r\nimport { ProtocolModel } from '../models/protocol.model';\r\nimport { ProtocolState } from './protocol.reducers';\r\n\r\nexport const protocolSearch = createAction('[PROTOCOL_ACTION] Search Protocols', props<{ options: SearchModel }>());\r\nexport const protocolSearchLoaded = createAction('[PROTOCOL_ACTION] Search Protocols Loaded', props());\r\nexport const protocolById = createAction('[PROTOCOL_ACTION] Protocol By Id', props<{ id: number }>());\r\nexport const protocolByIdLoaded = createAction('[PROTOCOL_ACTION] Protocol By Id Loaded', props<{ data: { protocol: ProtocolModel }}>());\r\nexport const protocolCreate = createAction('[PROTOCOL_ACTION] Create Protocol', props<{ data: { protocol: ProtocolModel }}>());\r\nexport const protocolCreateLoaded = createAction('[PROTOCOL_ACTION] Create Protocol Loaded', props<{ data: { protocol: ProtocolModel }}>());\r\nexport const protocolUpdate = createAction('[PROTOCOL_ACTION] Update Protocol', props<{ data: { protocol: ProtocolModel }}>());\r\nexport const protocolUpdateLoaded = createAction('[PROTOCOL_ACTION] Update Protocol Loaded', props<{ data: { protocol: ProtocolModel }}>());\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ErrorHandlerService } from '@core/services/error-handler/error-handler.service';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { ApiService } from '@shared/services/api/api.service';\r\nimport { NgxNotifyService } from '@shared/services/ngx-notify/ngx-notify.service';\r\nimport { EMPTY } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\n\r\nimport { ProtocolListModel } from '../models/protocol-list.model';\r\nimport { ProtocolModel } from '../models/protocol.model';\r\nimport * as protocolActions from './protocol.actions';\r\n\r\n@Injectable()\r\nexport class ProtocolEffects {\r\n\r\n protocolSearch$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(protocolActions.protocolSearch),\r\n switchMap((actions) =>\r\n this.apiService.search(this.endpoint, actions.options).pipe(\r\n map(res =>\r\n protocolActions.protocolSearchLoaded({\r\n protocols: res.protocols,\r\n selectedProtocol: {} as ProtocolModel,\r\n count: res.count\r\n }),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n )\r\n ),\r\n )\r\n )\r\n );\r\n\r\n protocolById$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(protocolActions.protocolById),\r\n switchMap((actions) =>\r\n this.apiService.getById(this.endpoint, actions.id).pipe(\r\n map(res => protocolActions.protocolByIdLoaded({ data: { protocol: res } })),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n ),\r\n )\r\n ),\r\n );\r\n\r\n protocolCreate$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(protocolActions.protocolCreate),\r\n switchMap((actions) =>\r\n this.apiService.create(this.endpoint, actions.data.protocol).pipe(\r\n map(res => {\r\n this.notify.success(`Created ${res.studyTitle}`);\r\n this.router.navigate(['/protocol', res.id]);\r\n return protocolActions.protocolCreateLoaded({ data: { protocol: res } });\r\n }),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n ),\r\n )\r\n ),\r\n );\r\n\r\n protocolUpdate$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(protocolActions.protocolUpdate),\r\n switchMap((actions) =>\r\n this.apiService.update(this.endpoint, actions.data.protocol).pipe(\r\n map(res => {\r\n this.notify.success(`Updated ${res.studyTitle}`);\r\n return protocolActions.protocolUpdateLoaded({ data: { protocol: res } });\r\n }),\r\n catchError((err) => {\r\n this.notify.error(this.errorHandler.handleError(err));\r\n return EMPTY;\r\n })\r\n ),\r\n )\r\n ),\r\n );\r\n\r\n private endpoint = 'protocol';\r\n\r\n constructor(\r\n private actions$: Actions,\r\n private notify: NgxNotifyService,\r\n private apiService: ApiService,\r\n private errorHandler: ErrorHandlerService,\r\n private router: Router) { }\r\n}\r\n","import { Action, createReducer, on } from '@ngrx/store';\r\nimport { ProtocolModel } from '../models/protocol.model';\r\nimport * as protocolActions from './protocol.actions';\r\n\r\nexport const PROTOCOL_FEATURE_KEY = 'protocols';\r\n\r\nexport interface ProtocolState {\r\n protocols: ProtocolModel[];\r\n selectedProtocol: ProtocolModel;\r\n count: number;\r\n}\r\n\r\nexport const initialProtocolState: ProtocolState = {\r\n protocols: [],\r\n selectedProtocol: { } as ProtocolModel,\r\n count: 0\r\n};\r\n\r\nexport const protocolReducer = createReducer(\r\n initialProtocolState,\r\n on(protocolActions.protocolSearchLoaded, (state, { protocols, count }) => ({ ...state, protocols, count })),\r\n on(protocolActions.protocolByIdLoaded, (state, action) => ({ ...state, selectedProtocol: action.data.protocol })),\r\n on(protocolActions.protocolCreateLoaded, (state, action) => ({ ...state, selectedProtocol: action.data.protocol })),\r\n on(protocolActions.protocolUpdateLoaded, (state, action) => ({ ...state, selectedProtocol: action.data.protocol }))\r\n);\r\n\r\nexport const reducer = (state: ProtocolState, action: Action) => protocolReducer(state, action);\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { ProtocolState } from './protocol.reducers';\r\n\r\nexport const protocolSelector = {\r\n /**\r\n * Returns all protocols in the store\r\n *\r\n * @return ProtocolState | [].\r\n *\r\n */\r\n allProtocols: createSelector(createFeatureSelector('protocols'),\r\n (state: ProtocolState) => state\r\n ),\r\n\r\n /**\r\n * Returns protocol by id from store if found\r\n *\r\n *\r\n * @param number id of option.\r\n *\r\n * @return ProtocolModel | undefined.\r\n *\r\n */\r\n protocolById: (id: number) => createSelector(createFeatureSelector('protocols'),\r\n (state: ProtocolState) => state.protocols.find(protocol => protocol.id === id)\r\n ),\r\n\r\n /**\r\n * Returns selected protocol in the store\r\n *\r\n * @return ProtocolModel | undefined.\r\n *\r\n */\r\n protocolSelected: createSelector(createFeatureSelector('protocols'),\r\n (state: ProtocolState) => state.selectedProtocol\r\n )\r\n};\r\n","/* eslint-disable no-underscore-dangle */\r\n/* eslint-disable max-len */\r\nimport { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { Router } from '@angular/router';\r\nimport { AppState } from '@core/app-state/reducers';\r\nimport { OptionType } from '@features/admin/option-management/models/option-type.enum';\r\nimport { OptionModel } from '@features/admin/option-management/models/option.model';\r\nimport { optionSelector } from '@features/admin/option-management/store/option.selectors';\r\nimport { ProtocolModel } from '@features/protocols/models/protocol.model';\r\nimport { protocolById } from '@features/protocols/store/protocol.actions';\r\nimport { ReportService } from '@features/reports/service/report.service';\r\nimport { StatusReportDataSource } from '@features/reports/status-report.dataSource';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { ApiService } from '@shared/services/api/api.service';\r\nimport { NgxNotifyService } from '@shared/services/ngx-notify/ngx-notify.service';\r\nimport { merge, Observable, Subscription } from 'rxjs';\r\nimport { map, startWith, tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-statusreport',\r\n templateUrl: './statusreport.component.html',\r\n styleUrls: ['./statusreport.component.scss']\r\n})\r\nexport class StatusReportComponent implements OnInit, OnDestroy {\r\n @ViewChild(MatPaginator, { static: true }) paginator!: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort!: MatSort;\r\n schools!: OptionModel[];\r\n filteredSchools$!: Observable;\r\n institutions!: OptionModel[];\r\n filteredInstitutions$!: Observable;\r\n departments!: OptionModel[];\r\n filteredDepartments$!: Observable;\r\n status!: OptionModel[];\r\n filteredStatus$!: Observable;\r\n investigators!: OptionModel[];\r\n filteredInvestigators$!: Observable;\r\n typeOfReview!: OptionModel[];\r\n filteredTypeOfReview$!: Observable;\r\n ntrIrbCoordinators!: OptionModel[];\r\n filteredNtrIrbCoordinators$!: Observable;\r\n typeOfResearch!: OptionModel[];\r\n filteredTypeOfResearch$!: Observable;\r\n\r\n dateMultiSelect: any[] = [{ value: 'approvalThrough', label: 'Approval Through Date' }, { value: 'completeDate', label: 'Complete Date' },\r\n { value: 'continuingReviewDate', label: 'Continuing Review Date' }, { value: 'initialApprovalDate', label: 'Initial Approval Date' },\r\n { value: 'initialReview', label: 'Initial Review Date' }, { value: 'mostRecentReview', label: 'Most Recent Review Date' },\r\n { value: 'sendNextReviewDate', label: 'Send Next Review Date' }, { value: 'submissionDate', label: 'Submission Date' }];\r\n\r\n downloadingFullReport = false;\r\n downloadingStatusReport = false;\r\n dataSource!: StatusReportDataSource;\r\n displayedColumns = ['irbNumber', 'institutionId', 'schoolId', 'departmentId', 'investigatorId', 'ntrIrbCoordinatorId', 'statusId', 'typeOfReviewId', 'approvalThrough', 'sendNextReviewDate'];\r\n subs$: Subscription[] = [];\r\n constructor(private store: Store,\r\n private fb: FormBuilder,\r\n public api: ApiService,\r\n public reportService: ReportService,\r\n private router: Router,\r\n private notify: NgxNotifyService) { }\r\n\r\n ngOnInit(): void {\r\n this.setFormOptions();\r\n this.dataSource = new StatusReportDataSource(this.api);\r\n this.loadPage();\r\n \r\n }\r\n\r\n displayFn(option: OptionModel): string {\r\n return option && option.name ? option.name : '';\r\n }\r\n\r\n checkValue(event: any) {\r\n if (event?.value !== null) {\r\n this.reportService.form.controls.dates.enable();\r\n } else {\r\n this.reportService.form.controls.dates.disable();\r\n }\r\n }\r\n\r\n resetFilter(): void {\r\n this.reportService.form.reset();\r\n this.reportService.pageIndex = this.paginator.pageIndex = 0;//reset index to 0 \r\n this.reportService.form.controls.dates.disable();\r\n this.setFormOptions();\r\n this.insert(this.reportService.form.value);\r\n }\r\n\r\n loadPage(): void {\r\n // tslint:disable-next-line: max-line-length\r\n this.paginator.pageIndex = this.reportService.pageIndex;\r\n this.paginator.pageSize = this.reportService.pageSize;\r\n this.dataSource.loadData(this.reportService.filter, this.sort.active, this.sort.direction, this.paginator.pageIndex, this.paginator.pageSize);\r\n }\r\n\r\n sortData(): void {\r\n this.reportService.pageIndex = this.paginator.pageIndex = 0;//reset index to 0 \r\n this.loadPage();\r\n }\r\n\r\n onSubmit(): void {\r\n this.insert(this.reportService.form.value);\r\n }\r\n\r\n downloadExcel(fullReport: boolean) {\r\n if (fullReport === true) {\r\n this.downloadingFullReport = true;\r\n this.reportService.filter = this.reportService.filter + `&forStatusReport=false&fullReport=true`;\r\n } else {\r\n this.downloadingStatusReport = true;\r\n this.reportService.filter = this.reportService.filter + `&forStatusReport=true&fullReport=false`;\r\n }\r\n this.subs$.push(\r\n this.api.downloadExcelFile('report?' + this.reportService.filter).subscribe(blob => {\r\n if (blob != null) {\r\n const a = document.createElement('a');\r\n const objectUrl = URL.createObjectURL(blob);\r\n a.href = objectUrl;\r\n if (fullReport) {\r\n a.download = 'FullReport';\r\n } else {\r\n a.download = 'StatusReport';\r\n }\r\n a.click();\r\n URL.revokeObjectURL(objectUrl);\r\n this.downloadingFullReport = false;\r\n this.downloadingStatusReport = false;\r\n // resetting filter back to false so that other filters still work properly\r\n this.reportService.filter = this.reportService.filter.replace('&forStatusReport=false&fullReport=true', '');\r\n this.reportService.filter = this.reportService.filter.replace('&forStatusReport=true&fullReport=false', '');\r\n }\r\n },\r\n (error: any) => {\r\n this.downloadingFullReport = false;\r\n this.downloadingStatusReport = false;\r\n this.reportService.filter = this.reportService.filter.replace('&forStatusReport=false&fullReport=true', '');\r\n this.reportService.filter = this.reportService.filter.replace('&forStatusReport=true&fullReport=false', '');\r\n })\r\n );\r\n }\r\n\r\n view(protocolId: number): void {\r\n this.store.dispatch(protocolById({ id: protocolId }));\r\n this.router.navigate(['/protocol', protocolId]);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs$.map(x => x != null ? x.unsubscribe() : null);\r\n }\r\n\r\n private setFormOptions(): void {\r\n this.subs$.push(this.store.pipe(select(optionSelector.optionsByType(OptionType.institution))).subscribe((options: OptionModel[]) => {\r\n this.institutions = options;\r\n this.filteredInstitutions$ = this.reportService.form.controls.institutionId.valueChanges.pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value?.name),\r\n map(name => name ? this._filter(name, this.institutions) : this.institutions.slice()));\r\n }));\r\n\r\n this.subs$.push(this.store.pipe(select(optionSelector.optionsByType(OptionType.department))).subscribe((options: OptionModel[]) => {\r\n this.departments = options;\r\n this.filteredDepartments$ = this.reportService.form.controls.departmentId.valueChanges.pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value?.name),\r\n map(name => name ? this._filter(name, this.departments) : this.departments.slice()));\r\n }));\r\n\r\n this.subs$.push(this.store.pipe(select(optionSelector.optionsByType(OptionType.investigator))).subscribe((investigators: OptionModel[]) => {\r\n this.investigators = investigators;\r\n this.filteredInvestigators$ = this.reportService.form.controls.investigatorId.valueChanges.pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value?.name),\r\n map(name => name ? this._filter(name, this.investigators) : this.investigators.slice()));\r\n }));\r\n\r\n this.subs$.push(this.store.pipe(select(optionSelector.optionsByType(OptionType.nTRIRBCoordinator))).subscribe((options: OptionModel[]) => {\r\n this.ntrIrbCoordinators = options;\r\n this.filteredNtrIrbCoordinators$ = this.reportService.form.controls.ntrIrbCoordinatorId.valueChanges.pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value?.name),\r\n map(name => name ? this._filter(name, this.ntrIrbCoordinators) : this.ntrIrbCoordinators.slice()));\r\n }));\r\n\r\n this.subs$.push(this.store.pipe(select(optionSelector.optionsByType(OptionType.school))).subscribe((options: OptionModel[]) => {\r\n this.schools = options;\r\n this.filteredSchools$ = this.reportService.form.controls.schoolId.valueChanges.pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value?.name),\r\n map(name => name ? this._filter(name, this.schools) : this.schools.slice()));\r\n }));\r\n this.subs$.push(this.store.pipe(select(optionSelector.optionsByType(OptionType.status))).subscribe((options: OptionModel[]) => {\r\n this.status = options;\r\n this.filteredStatus$ = this.reportService.form.controls.statusId.valueChanges.pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value?.name),\r\n map(name => name ? this._filter(name, this.status) : this.status.slice()));\r\n }));\r\n this.subs$.push(this.store.pipe(select(optionSelector.optionsByType(OptionType.typeOfReview))).subscribe((options: OptionModel[]) => {\r\n this.typeOfReview = options;\r\n this.filteredTypeOfReview$ = this.reportService.form.controls.typeOfReviewId.valueChanges.pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value?.name),\r\n map(name => name ? this._filter(name, this.typeOfReview) : this.typeOfReview.slice()));\r\n }));\r\n this.subs$.push(this.store.pipe(select(optionSelector.optionsByType(OptionType.typeOfResearch))).subscribe((options: OptionModel[]) => {\r\n this.typeOfResearch = options;\r\n this.filteredTypeOfResearch$ = this.reportService.form.controls.typeOfResearchId.valueChanges.pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value?.name),\r\n map(name => name ? this._filter(name, this.typeOfResearch) : this.typeOfResearch.slice()));\r\n }));\r\n }\r\n private _filter(name: string, optionList: OptionModel[]): any {\r\n const filterValue = name.trim().toLowerCase();\r\n return optionList.filter(option => option.name.trim().toLowerCase().includes(filterValue));\r\n }\r\n\r\n private insert(data: any): void {\r\n if (data != null) {\r\n this.reportService.filter = '';\r\n if (data.schoolId != null && data.schoolId !== undefined && data.schoolId !== 0 && data.schoolId !== '') {\r\n if (isNaN(parseInt(data.schoolId.id))) {\r\n this.notify.error(`School has invalid value: ${data.schoolId}`);\r\n } else {\r\n this.reportService.filter = this.reportService.filter + `schoolId=${data.schoolId.id}&`;\r\n }\r\n }\r\n if (data.institutionId != null && data.institutionId !== undefined && data.institutionId !== 0 && data.institutionId !== '') {\r\n if (isNaN(parseInt(data.institutionId.id))) {\r\n this.notify.error(`Institution has invalid value: ${data.institutionId}`);\r\n } else {\r\n this.reportService.filter = this.reportService.filter + `institutionId=${data.institutionId.id}&`;\r\n }\r\n }\r\n if (data.departmentId != null && data.departmentId !== undefined && data.departmentId !== 0 && data.departmentId !== '') {\r\n if (isNaN(parseInt(data.departmentId.id))) {\r\n this.notify.error(`Department has invalid value: ${data.departmentId}`);\r\n } else {\r\n this.reportService.filter = this.reportService.filter + `departmentId=${data.departmentId.id}&`;\r\n }\r\n }\r\n if (data.investigatorId != null && data.investigatorId !== undefined && data.investigatorId !== 0 && data.investigatorId !== '') {\r\n if (isNaN(parseInt(data.investigatorId.id))) {\r\n this.notify.error(`Investigator has invalid value: ${data.investigatorId}`);\r\n } else {\r\n this.reportService.filter = this.reportService.filter + `investigatorId=${data.investigatorId.id}&`;\r\n }\r\n }\r\n if (data.statusId != null && data.statusId !== undefined && data.statusId !== 0 && data.statusId !== '') {\r\n if (isNaN(parseInt(data.statusId.id))) {\r\n this.notify.error(`Status has invalid value: ${data.statusId}`);\r\n } else {\r\n this.reportService.filter = this.reportService.filter + `statusId=${data.statusId.id}&`;\r\n }\r\n }\r\n if (data.typeOfReviewId != null && data.typeOfReviewId !== undefined && data.typeOfReviewId !== 0 && data.typeOfReviewId !== '') {\r\n if (isNaN(parseInt(data.typeOfReviewId.id))) {\r\n this.notify.error(`Type Of Review has invalid value: ${data.typeOfReviewId}`);\r\n } else {\r\n this.reportService.filter = this.reportService.filter + `typeOfReviewId=${data.typeOfReviewId.id}&`;\r\n }\r\n }\r\n if (data.irbNumber != null) {\r\n this.reportService.filter = this.reportService.filter + `irbNumber=${data.irbNumber}&`;\r\n }\r\n if (data.startDate != null) {\r\n this.reportService.filter = this.reportService.filter + `startDate=${data.startDate.toLocaleString()}&`;\r\n }\r\n if (data.endDate != null) {\r\n this.reportService.filter = this.reportService.filter + `endDate=${data.endDate.toLocaleString()}&`;\r\n }\r\n if (data.ntrIrbCoordinatorId != null && data.ntrIrbCoordinatorId !== undefined && data.ntrIrbCoordinatorId !== 0 && data.ntrIrbCoordinatorId !== '') {\r\n if (isNaN(parseInt(data.ntrIrbCoordinatorId.id))) {\r\n this.notify.error(`NTRIRB Coordinator has invalid value: ${data.ntrIrbCoordinatorId}`);\r\n } else {\r\n this.reportService.filter = this.reportService.filter + `ntrIrbCoordinatorId=${data.ntrIrbCoordinatorId.id}&`;\r\n }\r\n }\r\n if (data.irbNetNumber != null) {\r\n this.reportService.filter = this.reportService.filter + `irbNetNumber=${data.irbNetNumber}&`;\r\n }\r\n if (data.keyword != null) {\r\n this.reportService.filter = this.reportService.filter + `keyword=${data.keyword}&`;\r\n }\r\n if (data != null && data.dates != null) {\r\n\r\n if (data.dates.length > 0) {\r\n for (const dateVal of data.dates) {\r\n this.reportService.filter = this.reportService.filter + `${dateVal}=true&`;\r\n }\r\n }\r\n }\r\n if (data.typeOfResearchId != null && data.typeOfResearchId !== undefined && data.typeOfResearchId !== 0 && data.typeOfResearchId !== '') {\r\n if (isNaN(parseInt(data.typeOfResearchId.id))) {\r\n this.notify.error(`Type Of Research has invalid value: ${data.typeOfResearchId}`);\r\n } else {\r\n this.reportService.filter = this.reportService.filter + `typeOfResearchId=${data.typeOfResearchId.id}&`;\r\n }\r\n }\r\n }\r\n this.reportService.pageIndex = 0; // If the user applies filter, reset back to the first page.\r\n this.reportService.pageIndex = this.paginator.pageIndex;\r\n this.reportService.pageSize = this.paginator.pageSize; \r\n this.loadPage();\r\n }\r\n\r\n onPageChange(event: any) {\r\n this.reportService.pageSize = event.pageSize;\r\n this.reportService.pageIndex = event.pageIndex;\r\n this.loadPage();\r\n }\r\n}\r\n","\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Search by IRB Number\r\n \r\n \r\n
\r\n
\r\n \r\n Search by IRBNet Number\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Search by Investigator\r\n \r\n \r\n \r\n {{investigator.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Search by NTRIBCoordinator\r\n \r\n \r\n \r\n {{ntrIrbCoordinator.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Search by Institution\r\n \r\n \r\n \r\n {{institution.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Search by School\r\n \r\n \r\n \r\n {{school.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Search by Department\r\n \r\n \r\n \r\n {{option.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Search by Status\r\n \r\n \r\n \r\n {{status.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Search by Type Of Review\r\n \r\n \r\n \r\n {{typeOfReview.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Choose Date Range\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Choose a date range before making selection\r\n \r\n {{dateOption.label}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Search by Study Title or Special Finding Category\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Search by Type Of Research\r\n \r\n \r\n \r\n {{option.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IRB Number \r\n \r\n {{ element.boardReferenceNumber }}\r\n \r\n Institution {{ element.institution }} School {{ element.school }} Department {{ element.department }} Investigator {{ element.investigator }} NTRIRB Coordinator {{ element.ntrIrbCoordinator }} Status {{ element.status }} Type of Review {{ element.typeOfReview }} Approval Through {{ element.approvalThrough | date}} Send Next Review {{ element.sendNextReviewDate | date }}
\r\n
\r\n No data found\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ReportService {\r\n pageSize = 10;\r\n pageIndex = 0;\r\n filter = '';\r\n form :FormGroup = this.fb.group({\r\n investigatorId: [0],\r\n institutionId: [0],\r\n schoolId: [0],\r\n departmentId: [0],\r\n statusId: [0],\r\n irbNumber: [null],\r\n startDate: [null],\r\n endDate: [null],\r\n typeOfReviewId: [0],\r\n ntrIrbCoordinatorId: [0],\r\n irbNetNumber: [null],\r\n dates: [{ value: null, disabled: true }],\r\n keyword: [null],\r\n typeOfResearchId: [0]\r\n });\r\n\r\n constructor(private fb: FormBuilder,) { \r\n\r\n }\r\n\r\n}\r\n","import { CollectionViewer } from \"@angular/cdk/collections\";\r\nimport { DataSource } from \"@angular/cdk/table\";\r\nimport { SearchModel } from \"@shared/models/search.model\";\r\nimport { ApiService } from \"@shared/services/api/api.service\";\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, finalize } from \"rxjs/operators\";\r\nimport { StatusReportListModel } from \"./models/status-report-list-model\";\r\n\r\nexport class StatusReportDataSource implements DataSource {\r\n private reportSubjects = new BehaviorSubject([]);\r\n private loadingSubject = new BehaviorSubject(false);\r\n public totalCount = new BehaviorSubject(0);\r\n public output = new BehaviorSubject([]);\r\n public loading$ = this.loadingSubject.asObservable();\r\n constructor(private apiService: ApiService) {\r\n\r\n }\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n return this.reportSubjects.asObservable();\r\n }\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.reportSubjects.complete();\r\n this.loadingSubject.complete();\r\n }\r\n\r\n loadData(filterQuery = '', sortColumn = '', sortDirection = '', pageIndex = 0, pageSize = 10) {\r\n const options = new SearchModel();\r\n options.filter.search = filterQuery;\r\n options.order = sortDirection == 'asc'? 'asc': 'desc';\r\n options.pageIndex = pageIndex;\r\n options.pageSize = pageSize;\r\n options.sort = sortColumn; \r\n this.loadingSubject.next(true);\r\n this.apiService.searchReport('report', options.filter.search, options.sort, options.order, options.pageIndex, options.pageSize).pipe(\r\n catchError(() => of([])), \r\n finalize(() => this.loadingSubject.next(false))\r\n ).subscribe((x: any) => {\r\n this.reportSubjects.next(x!.statusReports);\r\n this.totalCount.next(x!.totalCount);\r\n this.output.next(x!.output);\r\n\r\n });\r\n \r\n }\r\n\r\n\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\r\n\r\n@Component({\r\n selector: 'app-auto-login',\r\n template: `
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
`,\r\n styles: [\r\n `\r\n .lds-spinner {\r\n color: official;\r\n display: inline-block;\r\n position: absolute;\r\n left: 50%;\r\n width: 80px;\r\n height: 80px;\r\n }\r\n .lds-spinner div {\r\n transform-origin: 40px 40px;\r\n animation: lds-spinner 1.2s linear infinite;\r\n }\r\n .lds-spinner div:after {\r\n content: ' ';\r\n display: block;\r\n position: absolute;\r\n top: 3px;\r\n left: 37px;\r\n width: 6px;\r\n height: 18px;\r\n border-radius: 20%;\r\n background: #fff;\r\n }\r\n .lds-spinner div:nth-child(1) {\r\n transform: rotate(0deg);\r\n animation-delay: -1.1s;\r\n }\r\n .lds-spinner div:nth-child(2) {\r\n transform: rotate(30deg);\r\n animation-delay: -1s;\r\n }\r\n .lds-spinner div:nth-child(3) {\r\n transform: rotate(60deg);\r\n animation-delay: -0.9s;\r\n }\r\n .lds-spinner div:nth-child(4) {\r\n transform: rotate(90deg);\r\n animation-delay: -0.8s;\r\n }\r\n .lds-spinner div:nth-child(5) {\r\n transform: rotate(120deg);\r\n animation-delay: -0.7s;\r\n }\r\n .lds-spinner div:nth-child(6) {\r\n transform: rotate(150deg);\r\n animation-delay: -0.6s;\r\n }\r\n .lds-spinner div:nth-child(7) {\r\n transform: rotate(180deg);\r\n animation-delay: -0.5s;\r\n }\r\n .lds-spinner div:nth-child(8) {\r\n transform: rotate(210deg);\r\n animation-delay: -0.4s;\r\n }\r\n .lds-spinner div:nth-child(9) {\r\n transform: rotate(240deg);\r\n animation-delay: -0.3s;\r\n }\r\n .lds-spinner div:nth-child(10) {\r\n transform: rotate(270deg);\r\n animation-delay: -0.2s;\r\n }\r\n .lds-spinner div:nth-child(11) {\r\n transform: rotate(300deg);\r\n animation-delay: -0.1s;\r\n }\r\n .lds-spinner div:nth-child(12) {\r\n transform: rotate(330deg);\r\n animation-delay: 0s;\r\n }\r\n @keyframes lds-spinner {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0;\r\n }\r\n }\r\n `,\r\n ],\r\n})\r\nexport class AutoLoginComponent implements OnInit {\r\n constructor(private oidcSecurityService: OidcSecurityService) {}\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n this.oidcSecurityService.authorize();\r\n }, 500);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-card-header',\r\n templateUrl: './card-header.component.html',\r\n styleUrls: ['./card-header.component.scss']\r\n})\r\nexport class CardHeaderComponent implements OnInit {\r\n @Input() title: string | undefined;\r\n @Input() subtitle: string | undefined;\r\n @Input() showHelp = false;\r\n @Input() helpText: string | undefined;\r\n @Input() showLogo = true;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \"icon\"/{{ title ? title : '' }}\r\n \r\n
\r\n\r\n
{{ subtitle }}
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ConfirmDialogData } from '@shared/models/confirm-dialog-data';\r\n\r\n@Component({\r\n selector: 'app-confirmation-dialog',\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrls: ['./confirmation-dialog.component.css']\r\n})\r\nexport class ConfirmationDialogComponent implements OnInit {\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: ConfirmDialogData) {\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n confirm(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n}\r\n\r\n","

{{ data.title }}

\r\n\r\n\r\n {{ data.description }}\r\n\r\n\r\n \r\n \r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss'],\r\n})\r\nexport class FooterComponent {\r\n today: number = Date.now();\r\n}\r\n","\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AppState } from '@core/app-state/reducers';\r\nimport { IdentityUser } from '@core/services/auth/models/application-user.model';\r\nimport { AuthService } from '@core/services/auth/services/auth.service';\r\nimport { authSelector } from '@core/services/auth/state/authentication.selectors';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, combineLatest } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n data$: Observable<{ user: IdentityUser; isAdmin: boolean; isWarden: boolean }>;\r\n\r\n navigation = [\r\n { link: 'home', label: 'Protocols' },\r\n // { link: 'statusReport', label: 'Reports' },\r\n ];\r\n\r\n constructor(private store: Store, private authService: AuthService) {\r\n this.data$ = new Observable();\r\n }\r\n\r\n ngOnInit(): void {\r\n const userData$ = this.store.select(authSelector.userData);\r\n const isAdmin$ = this.store.select(authSelector.isAdmin);\r\n const isWarden$ = this.store.select(authSelector.isWarden);\r\n\r\n this.data$ = combineLatest([userData$, isAdmin$, isWarden$]).pipe(\r\n map(([userData, admin, warden]) => ({ user: userData, isAdmin: admin, isWarden: warden })));\r\n\r\n // DEBUG\r\n // this.data$ = userData$.pipe(map(x => ({ user: x, isAdmin: false, isWarden: false })));\r\n }\r\n\r\n login(): void {\r\n this.authService.login();\r\n }\r\n\r\n logout(): void {\r\n this.authService.logout();\r\n }\r\n\r\n copyToClipboard(): void {\r\n const token = this.authService.getBearerToken();\r\n document.addEventListener('copy', (e: ClipboardEvent) => {\r\n e.clipboardData?.setData('text/plain', token);\r\n e.preventDefault();\r\n document.removeEventListener('copy', (ev: ClipboardEvent) => {\r\n ev.preventDefault();\r\n });\r\n });\r\n document.execCommand('copy');\r\n }\r\n}\r\n","\r\n \r\n
\r\n \"logo\" IRB\r\n
\r\n \r\n \r\n Protocols\r\n Reports\r\n Users\r\n Options\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\n\r\n@Component({\r\n selector: 'app-rich-text-editor',\r\n template: `\r\n \r\n \r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class RichTextEditorComponent extends FieldType {}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { AfterViewInit, Component, Inject, OnDestroy } from '@angular/core';\r\nimport { scrollFabAnimation } from '@shared/services/animations/scroll-fab.animation';\r\nimport { WINDOW } from '@shared/services/window.token';\r\nimport { PageScrollInstance, PageScrollService } from 'ngx-page-scroll-core';\r\nimport { BehaviorSubject, fromEvent } from 'rxjs';\r\nimport { distinctUntilChanged, map, share, tap, throttleTime } from 'rxjs/operators';\r\n\r\nenum ShowStatus {\r\n show = 'show',\r\n hide = 'hide',\r\n}\r\n\r\n@Component({\r\n selector: 'app-scroll-to-top',\r\n templateUrl: './scroll-to-top.component.html',\r\n styleUrls: ['./scroll-to-top.component.scss'],\r\n animations: [scrollFabAnimation],\r\n})\r\nexport class ScrollToTopComponent implements AfterViewInit, OnDestroy {\r\n private stateSubject = new BehaviorSubject(ShowStatus.hide);\r\n state$ = this.stateSubject.asObservable();\r\n\r\n pageScrollInstance: PageScrollInstance;\r\n\r\n constructor(\r\n @Inject(WINDOW) private window: Window,\r\n private pageScrollService: PageScrollService,\r\n @Inject(DOCUMENT) private document: any\r\n ) {\r\n this.pageScrollInstance = {} as PageScrollInstance;\r\n }\r\n\r\n scrollToTop(): void {\r\n this.pageScrollService.start(this.pageScrollInstance);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.pageScrollInstance = this.pageScrollService.create({\r\n document: this.document,\r\n scrollTarget: '#top',\r\n });\r\n\r\n const scroll$ = fromEvent(this.window, 'scroll').pipe(\r\n throttleTime(10),\r\n map(() => this.window.pageYOffset),\r\n map((y) => {\r\n if (y > 100) {\r\n return ShowStatus.show;\r\n } else {\r\n return ShowStatus.hide;\r\n }\r\n }),\r\n distinctUntilChanged(),\r\n share(),\r\n tap((state) => this.stateSubject.next(state))\r\n );\r\n scroll$.subscribe();\r\n }\r\n\r\n ngOnDestroy(): void {}\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ROUTE_ANIMATIONS_ELEMENTS } from '@shared/services/animations/route.animations';\r\n\r\n@Component({\r\n selector: 'app-unauthorized',\r\n templateUrl: './unauthorized.component.html',\r\n styleUrls: ['./unauthorized.component.scss']\r\n})\r\nexport class UnauthorizedComponent {\r\n routeAnimationsElements = ROUTE_ANIMATIONS_ELEMENTS;\r\n constructor() { }\r\n}\r\n","\r\n \r\n
\r\n
\r\n

System Error

\r\n

There was an error logging you into the system or you do not have permission to view the page.

\r\n
\r\n
\r\n
\r\n
","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const MaterialModules = [\r\n CdkTableModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n OverlayModule,\r\n ScrollingModule,\r\n FlexLayoutModule,\r\n MatNativeDateModule,\r\n MatChipsModule,\r\n MatSnackBarModule,\r\n MatSlideToggleModule\r\n];\r\n","import { SortDirection } from '@angular/material/sort';\r\n\r\nexport interface SearchFilter {\r\n [key: string]: string | number | Date | undefined;\r\n studyTitle?: string;\r\n ntrIrbCoordinatorId?: number;\r\n investigatorId?: number;\r\n statusId?: number;\r\n approvalThrough?:string | Date | undefined;\r\n irbNumber?:string | number;\r\n irbNetNumber?:string | number;\r\n sendNextReview?:string | Date | undefined;\r\n}\r\n\r\nexport class SearchModel {\r\n filter: SearchFilter;\r\n sort: string;\r\n order: 'asc' | 'desc' | SortDirection;\r\n pageIndex: number;\r\n pageSize: number;\r\n\r\n constructor(filter?: SearchFilter, sort?: string, order?: 'asc' | 'desc', pageIndex?: number, pageSize?: number, active?: boolean) {\r\n this.filter = filter == null ? {} as SearchFilter : filter;\r\n this.sort = sort == null ? 'irbnumber' : sort;\r\n this.order = order == null ? 'desc' : order;\r\n this.pageIndex = pageIndex == null ? 0 : pageIndex;\r\n this.pageSize = pageSize == null ? 10 : pageSize;\r\n }\r\n\r\n queryParams = (options: this): string => `${this.buildFilters(options.filter)}&sort=${options.sort}` +\r\n `&order=${options.order}&pageIndex=${options.pageIndex + 1}&pageSize=${options.pageSize}`;\r\n\r\n private buildFilters(filters: SearchFilter): string {\r\n if (Object.keys(filters).length === 0) {\r\n return 'studyTitle=';\r\n }\r\n return Object.keys(filters).map(key => `&${key}=${filters[key]}`).join(',').replace(/,/g, '');//Replacing all commas\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnimationsService {\r\n constructor() {\r\n AnimationsService.routeAnimationType = 'NONE';\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n private static routeAnimationType: RouteAnimationType = 'NONE';\r\n\r\n static isRouteAnimationsType(type: RouteAnimationType): boolean {\r\n return AnimationsService.routeAnimationType === type;\r\n }\r\n\r\n updateRouteAnimationType(\r\n pageAnimations: boolean,\r\n elementsAnimations: boolean\r\n ): void {\r\n AnimationsService.routeAnimationType =\r\n pageAnimations && elementsAnimations\r\n ? 'ALL'\r\n : pageAnimations\r\n ? 'PAGE'\r\n : elementsAnimations\r\n ? 'ELEMENTS'\r\n : 'NONE';\r\n }\r\n}\r\n\r\nexport type RouteAnimationType = 'ALL' | 'PAGE' | 'ELEMENTS' | 'NONE';\r\n","/* eslint-disable prefer-arrow/prefer-arrow-functions */\r\nimport {\r\n animate,\r\n query,\r\n style,\r\n transition,\r\n trigger,\r\n stagger,\r\n sequence,\r\n AnimationMetadata\r\n} from '@angular/animations';\r\nimport { AnimationsService } from './animations.service';\r\n\r\nexport const ROUTE_ANIMATIONS_ELEMENTS = 'route-animations-elements';\r\n\r\nconst STEPS_ALL: AnimationMetadata | AnimationMetadata[] = [\r\n query(':enter > *', style({ opacity: 0, position: 'fixed' }), {\r\n optional: true\r\n }),\r\n query(':enter .' + ROUTE_ANIMATIONS_ELEMENTS, style({ opacity: 0 }), {\r\n optional: true\r\n }),\r\n sequence([\r\n query(\r\n ':leave > *',\r\n [\r\n style({ transform: 'translateY(0%)', opacity: 1 }),\r\n animate(\r\n '0.2s ease-in-out',\r\n style({ transform: 'translateY(-3%)', opacity: 0 })\r\n ),\r\n style({ position: 'fixed' })\r\n ],\r\n { optional: true }\r\n ),\r\n query(\r\n ':enter > *',\r\n [\r\n style({\r\n transform: 'translateY(-3%)',\r\n opacity: 0,\r\n position: 'static'\r\n }),\r\n animate(\r\n '0.5s ease-in-out',\r\n style({ transform: 'translateY(0%)', opacity: 1 })\r\n )\r\n ],\r\n { optional: true }\r\n )\r\n ]),\r\n query(\r\n ':enter .' + ROUTE_ANIMATIONS_ELEMENTS,\r\n stagger(75, [\r\n style({ transform: 'translateY(10%)', opacity: 0 }),\r\n animate(\r\n '0.5s ease-in-out',\r\n style({ transform: 'translateY(0%)', opacity: 1 })\r\n )\r\n ]),\r\n { optional: true }\r\n )\r\n];\r\nconst STEPS_NONE: AnimationMetadata | AnimationMetadata[] = [];\r\nconst STEPS_PAGE = [STEPS_ALL[0], STEPS_ALL[2]];\r\nconst STEPS_ELEMENTS = [STEPS_ALL[1], STEPS_ALL[3]];\r\n\r\nexport const routeAnimations = trigger('routeAnimations', [\r\n transition(isRouteAnimationsAll, STEPS_ALL),\r\n transition(isRouteAnimationsNone, STEPS_NONE),\r\n transition(isRouteAnimationsPage, STEPS_PAGE),\r\n transition(isRouteAnimationsElements, STEPS_ELEMENTS)\r\n]);\r\n\r\nexport function isRouteAnimationsAll(): boolean {\r\n return AnimationsService.isRouteAnimationsType('ALL');\r\n}\r\n\r\nexport function isRouteAnimationsNone(): boolean {\r\n return AnimationsService.isRouteAnimationsType('NONE');\r\n}\r\n\r\nexport function isRouteAnimationsPage(): boolean {\r\n return AnimationsService.isRouteAnimationsType('PAGE');\r\n}\r\n\r\nexport function isRouteAnimationsElements(): boolean {\r\n return AnimationsService.isRouteAnimationsType('ELEMENTS');\r\n}\r\n","import { trigger, animate, transition, style, state } from '@angular/animations';\r\n\r\nexport const scrollFabAnimation = trigger('scrollAnimation', [\r\n state('show', style({ opacity: 1, transform: 'scale(1)' })),\r\n state('hide', style({ opacity: 0, transform: 'scale(0)' })),\r\n transition('show => hide', animate('500ms ease-out')),\r\n transition('hide => show', animate('500ms ease-in')),\r\n]);\r\n","import { Injectable } from '@angular/core';\r\nimport { ConfigurationService } from '@core/services/configuration/configuration.service';\r\nimport { ErrorResultModel } from '@shared/models/error-result.model';\r\nimport { SearchModel } from '@shared/models/search.model';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { NgxNotifyService } from '../ngx-notify/ngx-notify.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiService {\r\n apiUrl: string;\r\n constructor(private http: HttpClient, private configService: ConfigurationService, private notify: NgxNotifyService, private router: Router, private fb: FormBuilder) {\r\n this.apiUrl = this.configService.systemConfiguration.apiUri;\r\n }\r\n\r\n get(endpoint: string): Observable {\r\n return this.http.get(`${this.apiUrl}/${endpoint}`).pipe(catchError((error) => this.handleError(error)));\r\n }\r\n\r\n getAllById(endpoint: string, id: string | number): Observable {\r\n return this.http.get(`${this.apiUrl}/${endpoint}/${id}`).pipe(catchError((error) => this.handleError(error)));\r\n }\r\n\r\n search(endpoint: string, options: SearchModel): Observable {\r\n const requestUrl = `${this.apiUrl}/${endpoint}?${options.queryParams(options)}`;\r\n return this.http.get(requestUrl).pipe(catchError((error) => this.handleError(error)));\r\n }\r\n\r\n searchReport(endpoint: string,filter: string, sort: string, order: string = 'asc',pageIndex: number,pageSize: number): Observable {\r\n const requestUrl = `${this.apiUrl}/${endpoint}?${filter}&sort=${sort}&order=${order}&pageIndex=${pageIndex + 1}&pageSize=${pageSize}`;\r\n return this.http.get(requestUrl).pipe(catchError(error => this.handleError(error)));\r\n }\r\n\r\n create(endpoint: string, model: T): Observable {\r\n return this.http.post(`${this.apiUrl}/${endpoint}`, model).pipe(catchError((error) => this.handleError(error)));\r\n }\r\n\r\n getById(endpoint: string, id: string | number, options = {}): Observable {\r\n return this.http.get(`${this.apiUrl}/${endpoint}/${id}`, options).pipe(catchError((error) => this.handleError(error)));\r\n }\r\n\r\n update(endpoint: string, model: T): Observable {\r\n return this.http.put(`${this.apiUrl}/${endpoint}`, model).pipe(catchError((error) => this.handleError(error)));\r\n }\r\n\r\n delete(endpoint: string, id: number): Observable {\r\n return this.http.delete(`${this.apiUrl}/${endpoint}/${id}`).pipe(catchError((error) => this.handleError(error)));\r\n }\r\n\r\n downloadExcelFile(endpoint: string): Observable {\r\n return this.http.get(`${this.apiUrl}/${endpoint}`, { responseType: 'blob' })\r\n .pipe(catchError(error => this.handleError(error)));\r\n }\r\n\r\n\r\n private handleError(error: any): Observable {\r\n if (error.status === 401) {\r\n this.router.navigate(['/autologin']);\r\n return throwError(error);\r\n }\r\n\r\n if (error.status === 500) {\r\n this.notify.error('An error was detected. Please refresh your browser and try again.');\r\n return throwError(error);\r\n }\r\n\r\n if (error.error?.errors != null) {\r\n this.notify.error('Please check your submission and try again.');\r\n return throwError(error);\r\n }\r\n\r\n const resultModel = { ...error.error } as ErrorResultModel;\r\n this.notify.error(resultModel.extendedMessage);\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NgxNotifyService {\r\n private duration = 5000;\r\n\r\n constructor(private readonly snackBar: MatSnackBar, private readonly zone: NgZone) {}\r\n\r\n default(message: string): void {\r\n this.show(message, {\r\n duration: this.duration,\r\n panelClass: ['default-notification-overlay', 'transparent'],\r\n horizontalPosition: 'end',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n\r\n info(message: string): void {\r\n this.show(message, {\r\n duration: this.duration,\r\n panelClass: ['info-notification-overlay', 'transparent'],\r\n horizontalPosition: 'end',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n\r\n success(message: string): void {\r\n this.show(message, {\r\n duration: this.duration,\r\n panelClass: ['success-notification-overlay', 'transparent'],\r\n horizontalPosition: 'end',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n\r\n warn(message: string): void {\r\n this.show(message, {\r\n duration: this.duration,\r\n panelClass: ['warning-notification-overlay', 'transparent'],\r\n horizontalPosition: 'end',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n\r\n error(message: string): void {\r\n this.show(message, {\r\n duration: this.duration,\r\n panelClass: ['error-notification-overlay', 'transparent'],\r\n horizontalPosition: 'end',\r\n verticalPosition: 'top',\r\n });\r\n }\r\n\r\n private show(message: string, configuration: MatSnackBarConfig): void {\r\n this.zone.run(() => this.snackBar.open(message, '', configuration));\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const WINDOW = new InjectionToken('WindowToken');\r\n\r\nexport function _window(): Window {\r\n return window;\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { _window, WINDOW } from '@shared/services/window.token';\r\nimport { NgxPageScrollCoreModule } from 'ngx-page-scroll-core';\r\n\r\nimport { CardHeaderComponent } from './components/card-header/card-header.component';\r\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { ScrollToTopComponent } from './components/scroll-to-top/scroll-to-top.component';\r\nimport { UnauthorizedComponent } from './components/unauthorized/unauthorized.component';\r\nimport { MaterialModules } from './material/material.modules';\r\n\r\n@NgModule({\r\n declarations: [\r\n ScrollToTopComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n CardHeaderComponent,\r\n ConfirmationDialogComponent,\r\n UnauthorizedComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n MaterialModules,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxPageScrollCoreModule\r\n ],\r\n exports: [\r\n MaterialModules,\r\n ScrollToTopComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n CardHeaderComponent,\r\n ConfirmationDialogComponent\r\n ],\r\n providers: [{ provide: WINDOW, useFactory: _window }],\r\n})\r\nexport class SharedModule {}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch((err) => console.error(err));\r\n"],"names":[],"sourceRoot":"webpack:///"}