{"version":3,"file":"main.js","mappings":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./apps/wlms-web/$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./apps/wlms-web/src/app/app.component.ts","./apps/wlms-web/src/app/app.component.html","./apps/wlms-web/src/app/app.module.ts","./apps/wlms-web/src/app/app.routes.ts","./apps/wlms-web/src/environments/environment.ts","./apps/wlms-web/src/main.ts","./libs/core/src/index.ts","./libs/core/src/lib/core.module.ts","./libs/data-access/src/index.ts","./libs/data-access/src/lib/+state/auth.actions.ts","./libs/data-access/src/lib/+state/auth.effects.ts","./libs/data-access/src/lib/+state/auth.facade.ts","./libs/data-access/src/lib/+state/auth.reducer.ts","./libs/data-access/src/lib/+state/auth.selectors.ts","./libs/data-access/src/lib/data-access.module.ts","./libs/data-access/src/lib/guards/auth.guard.ts","./libs/data-access/src/lib/guards/deactivate.guard.ts","./libs/data-access/src/lib/services/auth-helper.service.ts","./libs/data-access/src/lib/services/auth.service.ts","./libs/features/export-history/src/index.ts","./libs/features/export-history/src/lib/config/table-structure-csv-generator-result.ts","./libs/features/export-history/src/lib/csv-generator-modal/csv-generator-modal/csv-generator-modal.component.ts","./libs/features/export-history/src/lib/csv-generator-modal/csv-generator-modal/csv-generator-modal.component.html","./libs/features/export-history/src/lib/csv-generator-result-modal/csv-generator-result-modal/csv-generator-result-modal.component.ts","./libs/features/export-history/src/lib/csv-generator-result-modal/csv-generator-result-modal/csv-generator-result-modal.component.html","./libs/features/export-history/src/lib/export-history.component.ts","./libs/features/export-history/src/lib/export-history.component.html","./libs/features/export-history/src/lib/export-history.module.ts","./libs/features/export-history/src/lib/services/export-history.service.ts","./libs/features/loan-details-panel/src/index.ts","./libs/features/loan-details-panel/src/lib/loan-details-panel.module.ts","./libs/features/loan-details-panel/src/lib/loan-details/loan-details.component.ts","./libs/features/loan-details-panel/src/lib/loan-details/loan-details.component.html","./libs/features/loan-details-panel/src/lib/summary/summary.component.ts","./libs/features/loan-details-panel/src/lib/summary/summary.component.html","./libs/features/loans/src/index.ts","./libs/features/loans/src/lib/config/table-structure-AdvanceDate-Update.ts","./libs/features/loans/src/lib/config/table-structure-export-result.ts","./libs/features/loans/src/lib/config/table-structure-loanassign-result.ts","./libs/features/loans/src/lib/config/table-structure-pushback-result.ts","./libs/features/loans/src/lib/config/table-structure-reviewloan-result.ts","./libs/features/loans/src/lib/loan-assignment.module.ts","./libs/features/loans/src/lib/loan-assignment/assign-export-modal/assign-export-modal.component.ts","./libs/features/loans/src/lib/loan-assignment/assign-export-modal/assign-export-modal.component.html","./libs/features/loans/src/lib/loan-assignment/assign-result-modal/assign-result-modal.component.ts","./libs/features/loans/src/lib/loan-assignment/assign-result-modal/assign-result-modal.component.html","./libs/features/loans/src/lib/loan-assignment/export-result-modal/export-result-modal.component.ts","./libs/features/loans/src/lib/loan-assignment/export-result-modal/export-result-modal.component.html","./libs/features/loans/src/lib/loan-assignment/loan-assignment.component.ts","./libs/features/loans/src/lib/loan-assignment/loan-assignment.component.html","./libs/features/loans/src/lib/loan-assignment/loanlookup-exception/loanlookup-exception.component.ts","./libs/features/loans/src/lib/loan-assignment/loanlookup-exception/loanlookup-exception.component.html","./libs/features/loans/src/lib/loan-assignment/pushfunding-result-modal/pushfunding-result-modal.component.ts","./libs/features/loans/src/lib/loan-assignment/pushfunding-result-modal/pushfunding-result-modal.component.html","./libs/features/loans/src/lib/loan-assignment/reviewloan-result-modal/reviewloan-result-modal.component.ts","./libs/features/loans/src/lib/loan-assignment/reviewloan-result-modal/reviewloan-result-modal.component.html","./libs/features/loans/src/lib/loan-assignment/update-advance-date-modal/update-advance-date-modal.component.ts","./libs/features/loans/src/lib/loan-assignment/update-advance-date-modal/update-advance-date-modal.component.html","./libs/features/loans/src/lib/services/loan-assignment.service.ts","./libs/features/login/src/index.ts","./libs/features/login/src/lib/exit-page/exit-page.component.ts","./libs/features/login/src/lib/exit-page/exit-page.component.html","./libs/features/login/src/lib/login.module.ts","./libs/features/login/src/lib/login/login.component.ts","./libs/features/login/src/lib/login/login.component.html","./libs/features/login/src/lib/services/login.service.ts","./libs/features/page-layout/src/index.ts","./libs/features/page-layout/src/lib/page-layout.module.ts","./libs/features/page-layout/src/lib/sliding-menu/sliding-menu.component.ts","./libs/features/page-layout/src/lib/sliding-menu/sliding-menu.component.html","./libs/features/warehouse-lines/src/index.ts","./libs/features/warehouse-lines/src/lib/config/table-structure-contracts.ts","./libs/features/warehouse-lines/src/lib/config/table-structure-dailycaps-availability.ts","./libs/features/warehouse-lines/src/lib/config/table-structure-time-availability.ts","./libs/features/warehouse-lines/src/lib/config/table-structure-tranche.ts","./libs/features/warehouse-lines/src/lib/config/table-structure-warehouselines.ts","./libs/features/warehouse-lines/src/lib/config/table-structure-wet-overrides.ts","./libs/features/warehouse-lines/src/lib/models/whl-capacity.model.ts","./libs/features/warehouse-lines/src/lib/services/whl.service.ts","./libs/features/warehouse-lines/src/lib/warehouse-lines.module.ts","./libs/features/warehouse-lines/src/lib/whl-details/tranche/copy-tranche/copy-tranche.component.ts","./libs/features/warehouse-lines/src/lib/whl-details/tranche/copy-tranche/copy-tranche.component.html","./libs/features/warehouse-lines/src/lib/whl-details/tranche/manage-tranche/manage-tranche.component.ts","./libs/features/warehouse-lines/src/lib/whl-details/tranche/manage-tranche/manage-tranche.component.html","./libs/features/warehouse-lines/src/lib/whl-details/tranche/tranche.component.ts","./libs/features/warehouse-lines/src/lib/whl-details/tranche/tranche.component.html","./libs/features/warehouse-lines/src/lib/whl-details/whl-details.component.ts","./libs/features/warehouse-lines/src/lib/whl-details/whl-details.component.html","./libs/features/warehouse-lines/src/lib/whl-details/whl-details.model.ts","./libs/features/warehouse-lines/src/lib/whl-summary/daily-caps/daily-caps.component.ts","./libs/features/warehouse-lines/src/lib/whl-summary/daily-caps/daily-caps.component.html","./libs/features/warehouse-lines/src/lib/whl-summary/daily-caps/edit-daily-cap/edit-daily-cap.component.ts","./libs/features/warehouse-lines/src/lib/whl-summary/daily-caps/edit-daily-cap/edit-daily-cap.component.html","./libs/features/warehouse-lines/src/lib/whl-summary/manage-time-slot/manage-time-slot.component.ts","./libs/features/warehouse-lines/src/lib/whl-summary/manage-time-slot/manage-time-slot.component.html","./libs/features/warehouse-lines/src/lib/whl-summary/warehouselines/copy-whl-contract/copy-whl-contract.component.ts","./libs/features/warehouse-lines/src/lib/whl-summary/warehouselines/copy-whl-contract/copy-whl-contract.component.html","./libs/features/warehouse-lines/src/lib/whl-summary/warehouselines/manage-warehouseline/manage-warehouseline.component.ts","./libs/features/warehouse-lines/src/lib/whl-summary/warehouselines/manage-warehouseline/manage-warehouseline.component.html","./libs/features/warehouse-lines/src/lib/whl-summary/warehouselines/warehouselines.component.ts","./libs/features/warehouse-lines/src/lib/whl-summary/warehouselines/warehouselines.component.html","./libs/features/warehouse-lines/src/lib/whl-summary/wet-overrides/edit-wet-overrides/edit-wet-overrides.component.ts","./libs/features/warehouse-lines/src/lib/whl-summary/wet-overrides/edit-wet-overrides/edit-wet-overrides.component.html","./libs/features/warehouse-lines/src/lib/whl-summary/wet-overrides/wet-overrides.component.ts","./libs/features/warehouse-lines/src/lib/whl-summary/wet-overrides/wet-overrides.component.html","./libs/features/warehouse-lines/src/lib/whl-summary/whl-summary.component.ts","./libs/features/warehouse-lines/src/lib/whl-summary/whl-summary.component.html","./libs/material/src/index.ts","./libs/material/src/lib/material.module.ts","./libs/ui-kit/src/index.ts","./libs/ui-kit/src/lib/alert-modal/alert-modal-component.ts","./libs/ui-kit/src/lib/grid/custom/action-column-renderer/action-column-renderer.component.ts","./libs/ui-kit/src/lib/grid/custom/action-column-renderer/action-column-renderer.component.html","./libs/ui-kit/src/lib/grid/custom/cell-editors/date-editor.component.ts","./libs/ui-kit/src/lib/grid/custom/cell-editors/numeric-editor.component.ts","./libs/ui-kit/src/lib/grid/custom/cell-editors/toggle-editor.component.ts","./libs/ui-kit/src/lib/grid/custom/framework-renderers/framework-renderers.component.ts","./libs/ui-kit/src/lib/grid/custom/overlay/overlay.component.ts","./libs/ui-kit/src/lib/grid/custom/overlay/overlay.component.html","./libs/ui-kit/src/lib/grid/grid.component.ts","./libs/ui-kit/src/lib/grid/grid.component.html","./libs/ui-kit/src/lib/loan-info-tile/loan-info-tile.component.ts","./libs/ui-kit/src/lib/loan-info-tile/loan-info-tile.component.html","./libs/ui-kit/src/lib/modal-wrapper/modal-wrapper.component.ts","./libs/ui-kit/src/lib/modal-wrapper/modal-wrapper.component.html","./libs/ui-kit/src/lib/reset-preference/reset-preference.component.ts","./libs/ui-kit/src/lib/reset-preference/reset-preference.component.html","./libs/ui-kit/src/lib/save-preference/save-preference.component.ts","./libs/ui-kit/src/lib/save-preference/save-preference.component.html","./libs/ui-kit/src/lib/services/ui-helper.service.ts","./libs/ui-kit/src/lib/tab-set/tab-set.component.ts","./libs/ui-kit/src/lib/tab-set/tab-set.component.html","./libs/ui-kit/src/lib/ui-kit.module.ts","./libs/ui-kit/src/lib/warehouseline-dropdown/warehouseline-dropdown.component.ts","./libs/ui-kit/src/lib/warehouseline-dropdown/warehouseline-dropdown.component.html","./libs/utils/src/index.ts","./libs/utils/src/lib/common/app-common-utils.ts","./libs/utils/src/lib/config/config.loader.ts","./libs/utils/src/lib/config/config.service.ts","./libs/utils/src/lib/constants/data-constants.ts","./libs/utils/src/lib/constants/table-structure-export-history.ts","./libs/utils/src/lib/constants/table-structure-loan-assignment.ts","./libs/utils/src/lib/directives/if-privilege.directive.ts","./libs/utils/src/lib/directives/progress.directive.ts","./libs/utils/src/lib/effects-utils/utils.ts","./libs/utils/src/lib/gridutils/grid-utils.ts","./libs/utils/src/lib/interceptors/http.interceptor.ts","./libs/utils/src/lib/models/modal.ts","./libs/utils/src/lib/pipes/custom-currency.pipe.ts","./libs/utils/src/lib/pipes/email.pipe.ts","./libs/utils/src/lib/pipes/empty.pipe.ts","./libs/utils/src/lib/pipes/enum-mapper.pipe.ts","./libs/utils/src/lib/pipes/phone.pipe.ts","./libs/utils/src/lib/services/browser-storage.service.ts","./libs/utils/src/lib/services/shared.service.ts","./libs/utils/src/lib/utils.module.ts","/app/node_modules/moment/locale|sync|/^\\.\\/.*$/"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 80902;\nmodule.exports = webpackEmptyAsyncContext;","import { Component } from '@angular/core';\nimport { BrowserStorageService, StorageKey } from '@wlms-web/utils'\n\n@Component({\n selector: 'wlms-web-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent {\n title = 'wlms-web';\n isLoggedIn = false;\n\n\n constructor(private browserStorageService: BrowserStorageService) {\n // const loginDetails = this.browserStorageService.getLocalStorageValue(\n // StorageKey.LOGININFO\n // );\n // this.isLoggedIn = loginDetails?loginDetails.IsSuccess:false;\n }\n}\n","\n","import { NgModule, APP_INITIALIZER, NgZone } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { AgGridModule } from 'ag-grid-angular';\nimport { AppComponent } from './app.component';\nimport { CoreModule } from '@wlms-web/core';\nimport { APP_ROUTES } from './app.routes';\nimport { RouterModule } from '@angular/router';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AppConfigLoader, ConfigService } from '@wlms-web/utils';\nimport { DatePipe, CurrencyPipe } from '@angular/common';\nimport { AuthGuard, DeactivateGuard } from '@wlms-web/data-access';\nimport { FormsModule } from '@angular/forms';\nimport { TimepickerModule } from 'ngx-bootstrap/timepicker';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { ScullyLibModule } from '@scullyio/ng-lib';\n\n\n@NgModule({\n declarations: [AppComponent],\n imports: [\n BrowserModule,\n HttpClientModule,\n TimepickerModule.forRoot(),\n ModalModule.forRoot(),\n RouterModule.forRoot(APP_ROUTES),\n CoreModule,\n FormsModule,\n AgGridModule.withComponents([]),\n BrowserAnimationsModule,\n FormsModule,\n MatProgressSpinnerModule,\n ScullyLibModule\n ],\n providers: [\n ConfigService,\n DatePipe,\n AuthGuard,\n DeactivateGuard,\n CurrencyPipe,\n {\n provide: APP_INITIALIZER,\n useFactory: AppConfigLoader,\n deps: [ConfigService],\n multi: true\n }\n ],\n bootstrap: [AppComponent], \n})\nexport class AppModule {\n constructor(private ngZone: NgZone) {\n (window as any).ngZone = this.ngZone;\n }\n}\n","import { Routes } from '@angular/router';\nimport { LoanAssignmentComponent } from '@wlms-web/features/loans';\nimport { LoginComponent, ExitPageComponent } from '@wlms-web/features/login';\nimport { WarehouselinedetailsComponent, WarehouselineDetailGridviewComponent } from '@wlms-web/features/warehouse-lines';\nimport { AuthGuard, DeactivateGuard } from '@wlms-web/data-access';\nimport { ScreenActionPrivileges } from '@wlms-web/utils';\nimport { ExportHistoryComponent } from '@wlms-web/features/export-history';\n\nexport const APP_ROUTES: Routes = [\n // Routes without master-page or that do not need to be authenticated need to go first\n {\n path: '',\n component: LoginComponent,\n canDeactivate: [DeactivateGuard]\n },\n {\n path: 'exitPage/:type',\n component: ExitPageComponent,\n },\n {\n path: 'loan-assignment',\n component: LoanAssignmentComponent,\n canActivate: [AuthGuard],\n data: { privilegeKey: ScreenActionPrivileges.LoanAssignment }\n },\n {\n path: 'warehouselines',\n component: WarehouselineDetailGridviewComponent,\n canActivate: [AuthGuard],\n data: { privilegeKey: ScreenActionPrivileges.Warehouseline }\n },\n {\n path: 'warehouseline-details',\n component: WarehouselinedetailsComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'export-history',\n component: ExportHistoryComponent,\n canActivate: [AuthGuard],\n data: { privilegeKey: ScreenActionPrivileges.ExportHistory }\n },\n];\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n configFile: 'assets/config/config.json',\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nimport { LicenseManager } from 'ag-grid-enterprise';\nLicenseManager.setLicenseKey(\n 'CompanyName=loanDepot,LicensedGroup=melloFrontEnd,LicenseType=MultipleApplications,LicensedConcurrentDeveloperCount=10,LicensedProductionInstancesCount=0,AssetReference=AG-009183,ExpiryDate=30_July_2021_[v2]_MTYyNzU5OTYwMDAwMA==eafe05600514fbd2d852fa0b7ba82b29'\n);\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n","export * from './lib/core.module';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FeaturesPageLayoutModule } from '@wlms-web/features/page-layout';\nimport { UtilsModule } from '@wlms-web/utils';\nimport { DataAccessModule } from '@wlms-web/data-access';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { HttpInterceptorService } from 'libs/utils/src/lib/interceptors/http.interceptor';\n\n\n@NgModule({\n imports: [CommonModule,\n UtilsModule,\n DataAccessModule,\n FeaturesPageLayoutModule],\n exports: [FeaturesPageLayoutModule],\n providers: [{\n provide: HTTP_INTERCEPTORS,\n useClass: HttpInterceptorService,\n multi: true\n }]\n})\nexport class CoreModule { }\n\n","export * from './lib/data-access.module';\nexport { AuthGuard } from './lib/guards/auth.guard';\nexport { DeactivateGuard } from './lib/guards/deactivate.guard';\nexport { AuthHelperService } from './lib/services/auth-helper.service';\nexport { AuthService } from './lib/services/auth.service';\nexport * from './lib/+state/auth.actions';\nexport * from './lib/+state/auth.reducer';\nexport * from './lib/+state/auth.selectors';\nexport * from './lib/+state/auth.facade';\n","import { Action } from '@ngrx/store';\n// import {\n// AuthorizationRequest,\n// UserDetail,\n// } from '@melloops-dashboard/domain-models';\n\nexport enum AuthActionTypes {\n VerifyToken = '[AUTH] Verify Token',\n VerifyTokenSuccess = '[AUTH] Verify Token Success',\n VerifyTokenFailure = '[AUTH] Verify Token Failure',\n ReloadAuthState = '[AUTH] Reload Auth State',\n ResetError = '[AUTH] Reset Error',\n}\n\nexport class VerifyToken implements Action {\n readonly type = AuthActionTypes.VerifyToken;\n constructor(public payload: { request: any }) {}\n}\n\nexport class VerifyTokenSuccess implements Action {\n readonly type = AuthActionTypes.VerifyTokenSuccess;\n constructor(public payload: { result: any }) {}\n}\n\nexport class VerifyTokenFailure implements Action {\n readonly type = AuthActionTypes.VerifyTokenFailure;\n constructor(public payload: { error: any }) {}\n}\n\nexport class ReloadAuthState implements Action {\n readonly type = AuthActionTypes.ReloadAuthState;\n constructor(public payload: { authState: any }) {}\n}\nexport class ResetError implements Action {\n readonly type = AuthActionTypes.ResetError;\n}\n\nexport type AuthActions =\n | VerifyToken\n | VerifyTokenSuccess\n | VerifyTokenFailure\n | ResetError\n | ReloadAuthState;\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, map, mergeMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport {\n VerifyToken,\n VerifyTokenSuccess,\n VerifyTokenFailure,\n AuthActionTypes,\n AuthActions,\n} from './auth.actions';\nimport { AuthService } from '../services/auth.service';\nimport { mapUserDetails } from '@wlms-web/utils';\n\n@Injectable()\nexport class AuthEffects {\n @Effect()\n loadAuths$ = this.actions$.pipe(\n ofType(AuthActionTypes.VerifyToken),\n map((action: VerifyToken) => action.payload),\n mergeMap(({ request }) => this.authService.verifyToken(request)),\n map(\n (result: any) =>\n new VerifyTokenSuccess({ result: mapUserDetails(result.details) })\n ),\n catchError((error) => of(new VerifyTokenFailure({ error })))\n );\n\n constructor(\n private actions$: Actions,\n private authService: AuthService\n ) {}\n}\n","import { Injectable } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport * as fromAuth from './auth.reducer';\nimport * as AuthSelectors from './auth.selectors';\nimport { VerifyToken, ResetError, ReloadAuthState } from './auth.actions';\n// import {\n// AuthorizationRequest,\n// UserDetail,\n// } from '@melloops-dashboard/domain-models';\n\n@Injectable()\nexport class AuthFacade {\n loading$ = this.store.pipe(select(AuthSelectors.getAuthLoading));\n loaded$ = this.store.pipe(select(AuthSelectors.getAuthLoaded));\n allAuth$ = this.store.pipe(select(AuthSelectors.getAllAuth));\n error$ = this.store.pipe(select(AuthSelectors.getError));\n isValidUser$ = this.store.pipe(select(AuthSelectors.IsValidUser));\n\n constructor(private store: Store) {}\n\n verifyToken(request: any) {\n this.store.dispatch(new VerifyToken({ request }));\n }\n\n reloadAuthState(authState: any) {\n this.store.dispatch(new ReloadAuthState({ authState }));\n }\n\n resetError() {\n this.store.dispatch(new ResetError());\n }\n}\n","import { AuthActions, AuthActionTypes } from './auth.actions';\n\nexport const authFeatureKey = 'auth';\n\nexport interface AuthFullState {\n readonly [authFeatureKey]: AuthState;\n}\n\nexport interface AuthState {\n authResponse: any;\n loading: boolean;\n loaded: boolean;\n error: {};\n}\n\nexport const initialState: AuthState = {\n authResponse: {},\n loading: false,\n loaded: true,\n error: {},\n};\n\nexport function reducer(state = initialState, action: AuthActions): AuthState {\n switch (action.type) {\n case AuthActionTypes.VerifyToken:\n return state;\n case AuthActionTypes.VerifyTokenSuccess:\n const userDetail = action.payload.result;\n if (userDetail && userDetail.IsValid) {\n return {\n ...state,\n authResponse: userDetail,\n loaded: true,\n loading: false,\n };\n }\n return state;\n case AuthActionTypes.VerifyTokenFailure:\n if (action.payload) {\n return { ...state, error: action.payload };\n } else {\n return state;\n }\n case AuthActionTypes.ReloadAuthState:\n const authState = action.payload.authState;\n if (authState && authState.IsValid) {\n return {\n ...state,\n authResponse: authState,\n loaded: true,\n loading: false,\n };\n }\n return state;\n default:\n return state;\n }\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromAuth from './auth.reducer';\n\nexport const getAuthState = createFeatureSelector<\n fromAuth.AuthFullState,\n fromAuth.AuthState\n>(fromAuth.authFeatureKey);\n\nexport const getAuthLoading = createSelector(\n getAuthState,\n (state: fromAuth.AuthState) => state.loading\n);\n\nexport const getAuthLoaded = createSelector(\n getAuthState,\n (state: fromAuth.AuthState) => state.loaded\n);\n\nexport const getAuthError = createSelector(\n getAuthState,\n (state: fromAuth.AuthState) => state.error\n);\n\nexport const getAllAuth = createSelector(\n getAuthState,\n (state: fromAuth.AuthState) => state.authResponse\n);\n\nexport const getError = createSelector(\n getAuthState,\n (state: fromAuth.AuthState) => state.error\n);\n\nexport const IsValidUser = createSelector(\n getAuthState,\n (state: fromAuth.AuthState) => state.authResponse.IsValid\n);\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthHelperService } from './services/auth-helper.service';\nimport { AuthService } from './services/auth.service';\n\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule, EffectsFeatureModule } from '@ngrx/effects';\nimport * as fromAuth from './+state/auth.reducer';\nimport { AuthEffects } from './+state/auth.effects';\nimport { AuthFacade } from './+state/auth.facade';\nimport { EffectsBootstrapProvider } from '@wlms-web/utils'\n\n@NgModule({\n imports: [CommonModule,\n StoreModule.forRoot({}),\n EffectsModule.forRoot(),\n StoreModule.forFeature(fromAuth.authFeatureKey, fromAuth.reducer),\n EffectsModule.forFeature([]),\n EffectsFeatureModule\n ],\n providers: [AuthHelperService,\n AuthService,\n EffectsBootstrapProvider.provide([AuthEffects]),\n AuthFacade\n ]\n})\nexport class DataAccessModule { }\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n CanActivate,\n CanActivateChild,\n Router,\n UrlTree,\n} from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { AuthHelperService } from '../services/auth-helper.service';\nimport { AuthService } from '../services/auth.service';\nimport { AuthFacade } from '../+state/auth.facade';\nimport { SharedService, } from '@wlms-web/utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate, CanActivateChild {\n verifiedUser$: Subscription;\n userDetails: any;\n timerSubscription: Subscription;\n constructor(\n public router: Router,\n public authHelperService: AuthHelperService,\n public authService: AuthService,\n private authFacade: AuthFacade,\n private sharedService: SharedService,\n private route: ActivatedRoute\n ) { }\n canActivate(route): UrlTree | boolean {\n const authUser = this.authHelperService.getAuthUserDetails();\n const remainingTime = this.authHelperService.tokenExpiresIn();\n const privilegekey = route.data['privilegeKey'] ;\n const isPrivilegedUser = privilegekey ? this.sharedService.isAuthUser(privilegekey) : true;\n if (authUser && remainingTime > 0 ) {\n if(isPrivilegedUser){\n this.authHelperService.verifyRefreshToken(authUser, remainingTime);\n this.reloadAuthState();\n return true;\n }else{\n const type = 'UnAuthorized';\n this.router.navigate(['/exitPage', type]);\n }\n } else {\n this.authHelperService.clearOutSession();\n return this.router.parseUrl('/');\n }\n }\n\n canActivateChild(route: ActivatedRouteSnapshot) {\n return this.canActivate(route);\n }\n\n reloadAuthState() {\n const authUser = this.authHelperService.getAuthUserDetails();\n this.authFacade.reloadAuthState(authUser);\n }\n}\n","import { CanDeactivate } from '@angular/router';\nimport { LoginComponent } from '@wlms-web/features/login';\n\nexport class DeactivateGuard implements CanDeactivate {\n canDeactivateFlag: boolean;\n\n canDeactivate(component: LoginComponent): boolean {\n this.canDeactivateFlag = component.canDeactivateLogin();\n return this.canDeactivateFlag;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BrowserStorageService, StorageKey} from '@wlms-web/utils';\nimport * as moment from 'moment';\nimport { AuthService } from './auth.service';\nimport { timer, Subscription } from 'rxjs';\n\n@Injectable()\nexport class AuthHelperService {\n\n\n refreshTokenTimer: Subscription;\n tokenOffsetTimeLimit = 180000;\n tokenOffsetTime = 120000;\n constructor(\n private browserStorageService: BrowserStorageService,\n public authService: AuthService\n ) { }\n\n getAuthUserDetails() {\n const loggedUser = this.getAuthUser();\n if (loggedUser && loggedUser.IsValid) {\n return loggedUser;\n }\n return null;\n }\n\n clearOutSession() {\n this.browserStorageService.clearLocalStorage();\n }\n\n tokenExpiresIn() {\n const loggedUser = this.getAuthUser();\n let difference = 0;\n if (loggedUser && loggedUser.IsValid) {\n const tokenExpiry = moment(loggedUser.TokenExpiry);\n if (tokenExpiry) {\n difference = tokenExpiry.diff(moment());\n }\n }\n return difference;\n }\n\n updateTokenDetails(token: string, expiryTime: string) {\n const authUser = this.getAuthUser();\n if (authUser && authUser.IsValid) {\n authUser.AuthToken = token;\n authUser.TokenExpiry = expiryTime;\n this.setAuthUser(authUser);\n }\n }\n\n verifyRefreshToken(authUser: any, remainingTime: number) {\n if (remainingTime > this.tokenOffsetTimeLimit) {\n this.setTimer(remainingTime);\n } else {\n this.refreshToken(authUser);\n }\n }\n\n setTimer(expiryIn: number) {\n const timerValue = this.calculateTokenExpiresIn(expiryIn);\n const refreshToken = timer(timerValue);\n this.refreshTokenTimer = refreshToken.subscribe(() => {\n const authUser = this.getAuthUserDetails();\n this.refreshToken(authUser);\n });\n }\n\n stopTimer() {\n if (this.refreshTokenTimer) {\n this.refreshTokenTimer.unsubscribe();\n }\n }\n\n refreshToken(authUser: any) {\n const token = authUser ? authUser.AuthToken : null;\n const result = this.authService.refreshToken(token);\n result.subscribe((response: any) => {\n const newToken = response.details;\n this.updateTokenDetails(newToken.Token, newToken.Expires);\n const expiryIn = this.tokenExpiresIn();\n this.setTimer(expiryIn);\n });\n }\n\n azureLoggedInUserTokenExpiry() {\n const loggedInUser = this.browserStorageService.getLocalStorageValue(StorageKey.AZURELOGGEDINUSER);\n let difference = 0;\n if (loggedInUser && loggedInUser.IsValid) {\n const tokenExpiry = moment(loggedInUser.TokenExpiry);\n if (tokenExpiry) {\n difference = tokenExpiry.diff(moment());\n }\n }\n return difference;\n }\n\n private getAuthUser() {\n return this.browserStorageService.getLocalStorageValue(StorageKey.AZURELOGGEDINUSER);\n }\n\n private setAuthUser(authUser: any) {\n return this.browserStorageService.setLocalStorageValue(StorageKey.AZURELOGGEDINUSER, authUser);\n }\n\n private calculateTokenExpiresIn(expiryIn: number) {\n let expiresIn = 0;\n if (expiryIn > this.tokenOffsetTimeLimit) {\n expiresIn = expiryIn - this.tokenOffsetTime;\n }\n return expiresIn;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { BaseApiService } from '@ldsm/utils';\nimport { ConfigService } from '@wlms-web/utils';\n\n@Injectable()\nexport class AuthService extends BaseApiService {\n constructor(protected app: ConfigService, protected http: HttpClient) {\n super(\n http,\n app.getAppConfiguration().apiBaseUrl,\n app.getAppConfiguration().apiNamespace,\n 'Login/'\n );\n }\n\n verifyToken(authrequest: any) {\n return this.post('validate', authrequest);\n }\n\n refreshToken(token: string) {\n const refreshToken = { token: token };\n return this.put('refreshtoken', refreshToken);\n }\n}\n","export * from './lib/export-history.module';\nexport { ExportHistoryComponent } from './lib/export-history.component';\n","export const ExportResult = [\n {\n \"field\": \"LoanNumber\",\n \"headerName\": \"Loan Number\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"Status\",\n \"headerName\": \"Status\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"Message\",\n \"headerName\": \"Message\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 400,\n wrapText: true,\n autoHeight: true,\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n\n }\n]\n\nexport const ExportFilePathResult = [\n {\n \"field\": \"WarehouseLine\",\n \"headerName\": \"Warehouse Line\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 200,\n },\n {\n \"field\": \"Path\",\n \"headerName\": \"Path\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 500,\n },\n]\n","import { CdkTextareaAutosize } from '@angular/cdk/text-field';\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { SharedService } from '@wlms-web/utils';\nimport { ExportRequestAction } from 'libs/utils/src/lib/constants/data-constants';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { ExportHistoryService } from '../../services/export-history.service';\n\n@Component({\n selector: 'csv-generator-modal',\n templateUrl: './csv-generator-modal.component.html',\n styleUrls: ['./csv-generator-modal.component.scss']\n})\nexport class CsvGeneratorModalComponent implements OnInit {\n public reExportForm: FormGroup;\n allWarehouseLineData = [];\n warehouseLineId: number;\n showspinner = false;\n selectedWarhouseLineData = [];\n hasCustodianFile = false;\n exportRequestAction: ExportRequestAction;\n @Input() data: any;\n @ViewChild('autosize') autosize: CdkTextareaAutosize;\n subscription$: any;\n\n constructor(private exportHistoryService: ExportHistoryService, private modalService: BsModalService,\n private sharedService: SharedService) { }\n ngOnInit(): void {\n let pattern = /^(?:[a-zA-Z0-9]+(?:,[a-zA-Z0-9]+)*)?$/;\n this.reExportForm = new FormGroup({\n loanNumber: new FormControl('', [Validators.required, Validators.pattern(pattern)]),\n warehouseLineId: new FormControl('', [Validators.required]),\n skipValidation: new FormControl(),\n includeCustodianFile: new FormControl(),\n // skipEmpowerUpdates: new FormControl()\n });\n this.getWarehouseline();\n this.sharedService.modalSubmitValid = false;\n }\n getWarehouseline() {\n this.subscription$ = this.exportHistoryService.getWarehouseline().subscribe(response => {\n this.allWarehouseLineData = [...response['details']];\n this.allWarehouseLineData.sort(function (a, b) {\n var whlone = a.WarehouseLineName.toUpperCase();\n var whltwo = b.WarehouseLineName.toUpperCase();\n return (whlone < whltwo) ? -1 : (whlone > whltwo) ? 1 : 0;\n });\n });\n }\n enableExport(reExportFormValue) {\n if (reExportFormValue.warehouseLineId != '') {\n this.selectedWarhouseLineData = this.allWarehouseLineData.\n filter(w => w.WarehouseLineId == reExportFormValue.warehouseLineId);\n this.hasCustodianFile = this.selectedWarhouseLineData[0].HasCustodianFile\n if (!this.hasCustodianFile) {\n this.reExportForm.controls.includeCustodianFile.setValue(false);\n }\n if (reExportFormValue.loanNumber != '') {\n this.sharedService.modalSubmitValid = true;\n this.data.loanNumber = reExportFormValue.loanNumber;\n this.data.warehouseLineId = reExportFormValue.warehouseLineId;\n this.data.warhouseLineName = this.selectedWarhouseLineData[0].WarehouseLineName;\n this.data.skipValidation = !reExportFormValue.skipValidation;\n this.data.excludeCustodianFile = !reExportFormValue.includeCustodianFile;\n this.data.skipEmpowerUpdates = true;// !reExportFormValue.skipEmpowerUpdates\n this.data.exportRequestAction = ExportRequestAction.CsvGenerator;\n }\n else {\n this.sharedService.modalSubmitValid = false;\n }\n }\n else {\n this.sharedService.modalSubmitValid = false;\n }\n }\n}\n","
\n
\n
\n
\n \n Warehouse Line\n \n \n {{ warehouseLine?.WarehouseLineName }}\n \n \n You must select a warehouse line\n \n
\n
\n
\n \n
\n
\n \n
\n\n
\n \n \n Loan Number\n Invalid input\n Add loan numbers separated by comma\n \n\n\n
\n\n\n \n
\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { ExportFilePathResult, ExportResult } from '../../config/table-structure-csv-generator-result';\n@Component({\n selector: 'csv-generator-result-modal',\n templateUrl: './csv-generator-result-modal.component.html',\n styleUrls: ['./csv-generator-result-modal.component.scss']\n})\nexport class CsvGeneratorResultModalComponent implements OnInit {\n @Input() data: any;\n columnDefs = [...ExportResult];\n columnDefsFilePath = [...ExportFilePathResult];\n rowData = [];\n rowDataFilePath = []\n constructor() { }\n ngOnInit(): void {\n this.getExportStatus();\n }\n getExportStatus() {\n let response = this.data.data.map(x => x.Response)[0];\n response.forEach((element, index) => {\n if (element.Status) {\n response[index].Status = \"Success\";\n }\n else {\n response[index].Status = \"Failed\";\n }\n });\n\n this.rowData = response.sort(function (a, b) {\n return (a.Status.toUpperCase() < b.Status.toUpperCase()) ? -1 : (a.Status.toUpperCase() > b.Status.toUpperCase()) ? 1 : 0;\n });\n\n this.rowDataFilePath = this.data.data.map(obj =>\n ({\n WarehouseLine: this.data.WarehouseLine,\n Path: obj.Path,\n AdditionalPath: obj.AdditionalPath ?? \"\"\n }));\n }\n}\n","
\n
\n
\n

Funding File:

\n

{{ rowDataFilePath[0]?.Path }}

\n
\n
0 && rowDataFilePath[0]?.AdditionalPath!=''\">\n

Additional File:

\n

{{ rowDataFilePath[0]?.AdditionalPath }}

\n
\n
1\">\n

Custodian File:

\n

{{ rowDataFilePath[1]?.Path }}

\n
\n
\n\n
\n

Loan Satus

\n
\n\n
\n \n \n
\n
","import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AlertModalComponent } from '@wlms-web/ui-kit';\nimport { BrowserStorageService, ExportHistory, NoRowsOverlayFlags, ScreenActionPrivileges, SharedService, SnackbarConfig, StorageKey } from '@wlms-web/utils';\nimport { ResetPreferenceComponent } from 'libs/ui-kit/src/lib/reset-preference/reset-preference.component';\nimport { UiHelperService } from 'libs/ui-kit/src/lib/services/ui-helper.service';\nimport { ExportRequestAction, GridMaster } from 'libs/utils/src/lib/constants/data-constants';\nimport * as _ from 'lodash';\nimport { Subscription } from 'rxjs/internal/Subscription';\nimport { CsvGeneratorModalComponent } from './csv-generator-modal/csv-generator-modal/csv-generator-modal.component';\nimport { CsvGeneratorResultModalComponent } from './csv-generator-result-modal/csv-generator-result-modal/csv-generator-result-modal.component';\nimport { ExportHistoryService } from './services/export-history.service';\n\n@Component({\n selector: 'wlms-web-export-history',\n templateUrl: './export-history.component.html',\n styleUrls: ['./export-history.component.scss']\n})\nexport class ExportHistoryComponent implements OnInit, AfterViewInit {\n\n paginationPageSize = 50;\n showspinner = false;\n rowData = [];\n columnDefs = [...ExportHistory];\n allData = [];\n subscription$: Subscription;\n selectedLoan: any;\n selectedTab = 0;\n blankTemplate: any = '';\n selectedLoans: any = [];\n userDetails: any;\n isRefresh: boolean = false;\n selectedIndices = [];\n @ViewChild('exporthistoryGrid') exporthistoryGrid: any;\n disablePreference = true;\n preferance: any[] = [];\n columnMaster = [];\n selectedTabPreference: any[] = [];\n disableResetPreference = false;\n screenActionPrivileges = ScreenActionPrivileges;\n suppressActionPrivilege = false;\n suppressRightClickPrivilege = false;\n noRowsOverlayFlags: any = { ...NoRowsOverlayFlags };\n filterPreferance: any[] = [];\n filterModel: any;\n isGridReloaded = false;\n warehouseLineName: string;\n constructor(private exportHistoryService: ExportHistoryService,\n private sharedService: SharedService,\n private cdRef: ChangeDetectorRef,\n private uiHelperService: UiHelperService,\n private browserStorageService: BrowserStorageService,\n public router: Router) {\n this.suppressRightClickPrivilege = !this.sharedService.isAuthUser(this.screenActionPrivileges.ExportHistoryRightMouseClick);\n this.suppressActionPrivilege = !this.sharedService.isAuthUser(this.screenActionPrivileges.ExportHistoryGridAction);\n }\n\n\n ngOnInit(): void {\n this.isRefresh = false;\n this.sharedService.modalSubmitValid = true;\n this.userDetails = this.browserStorageService.getLocalStorageValue(StorageKey.AZURELOGGEDINUSER);\n\n this.getColumnMaster(); \n this.disableResetPreference = false;\n this.getExportHistory();\n\n this.getUserPreference();\n }\n\n\n rowSelectionEvent(event) {\n this.selectedLoans = event;\n }\n\n onfilterChanged(event) {\n if (!this.isGridReloaded) {\n this.filterModel = event;\n this.filterPreferance = [];\n let getFilterPreference = this.browserStorageService.getLocalStorageValue(StorageKey.FILTERMODEL);\n this.filterPreferance = getFilterPreference ? getFilterPreference : [];\n const idx = this.filterPreferance.findIndex((x: any) => x.tabId == this.selectedTab);\n if (idx >= 0) {\n this.filterPreferance[idx] = { ...this.filterPreferance[idx], filterData: this.filterModel }\n }\n else {\n this.filterPreferance.push({\n tabId: this.selectedTab,\n filterData: this.filterModel\n });\n }\n this.browserStorageService.setLocalStorageValue(StorageKey.FILTERMODEL, this.filterPreferance);\n }\n }\n onIsRowSelectable(rowNode) {\n return rowNode.data ? !rowNode.data.IsLoanExported : false;\n }\n noOverlay(event) {\n this.exporthistoryGrid.grid.gridOptions.noRowsOverlayComponentParams = {\n noRowsMessageFunc: function () {\n return {\n blankTemplateFlag: 'isLoanAssignments',\n };\n }\n };\n }\n\n getExportHistory() {\n this.subscription$ = this.exportHistoryService.getExportHistory().subscribe(response => {\n if (response) {\n this.rowData = response['details'];\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.cdRef.detectChanges();\n }\n showGenerateDataTapeModal() {\n const data = {\n isEdit: false,\n loanNumber: '',\n warehouseLineId: '',\n warehouseLineName: '',\n skipValidation: false,\n skipEmpowerUpdates: false,\n excludeCustodianFile: false,\n exportRequestAction: ExportRequestAction\n };\n const title = 'Generate DataTape';\n\n this.uiHelperService.askConfirmation(CsvGeneratorModalComponent, 'modal-lg', title, data, 'Cancel', 'Generate', (result: any) => {\n this.showspinner = true;\n\n let loannumbers = data.loanNumber.split(\",\").filter(e => e != \"\");\n let request = {\n LoanNumbers: loannumbers,\n WarehouseLineId: data.warehouseLineId,\n WarhouseLineName: data.warehouseLineName,\n SkipValidation: data.skipValidation,\n SkipEmpowerUpdates: data.skipEmpowerUpdates,\n ExcludeCustodianFile: data.excludeCustodianFile,\n ExportRequestAction: data.exportRequestAction\n }\n this.warehouseLineName = data.warehouseLineName;\n this.exportHistoryService.assignAndExportLoan(request).subscribe(response => {\n let result = response['details'];\n if (result && result.LoanCsvData) {\n setTimeout(() => {\n const data = {\n \"data\": result.LoanCsvData,\n \"WarehouseLine\": this.warehouseLineName\n };\n this.uiHelperService.askConfirmation(CsvGeneratorResultModalComponent, 'modal-lg', `Export Status - ${this.warehouseLineName}`,\n data, '', 'Ok', () => {\n });\n this.showspinner = false;\n }, 50);\n }\n else {\n this.uiHelperService.showSnackBar('Failed to Generate DataTape', SnackbarConfig.error);\n this.showspinner = false;\n }\n });\n });\n }\n\n showUserPreferenceModal() {\n this.sharedService.modalSubmitValid = true;\n const title = ' Save User Preferences';\n const data = {\n data: 'You are about to save User Preference.'\n };\n this.uiHelperService.askConfirmation(AlertModalComponent, 'modal-md', title, data, 'Cancel', 'Save Preference', () => {\n \n this.saveUserPreferences();\n \n });\n }\n\n saveUserPreferences() {\n this.reorderColumnMaster();\n this.collectUserPreferences();\n this.selectedTabPreference = [];\n this.selectedTabPreference.push({\"tabid\": GridMaster.ExportHistory});\n\n const request = {\n Tab: this.selectedTabPreference,\n Column: this.preferance\n };\n \n this.exportHistoryService.saveUserPreferences(request).subscribe((response: any) => {\n if (response) {\n this.sharedService.userPreferenceChanged = false;\n this.uiHelperService.showSnackBar('User preferences saved successfully', SnackbarConfig.success);\n this.getUserPreference(); \n this.disableResetPreference = true;\n \n }\n }, (error) => {\n this.uiHelperService.showSnackBar('Failed to save user preference', SnackbarConfig.error);\n });\n }\n\n getColumnMaster() {\n this.exportHistoryService.getColumnMaster(GridMaster.ExportHistory).subscribe((response: any) => {\n if (response) {\n this.columnMaster = response.details;\n this.reorderColumnMaster();\n }\n });\n }\n\n reorderColumnMaster() {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n const masterIndex = _.findIndex(this.columnMaster, (master: any) => {\n return master.ColumnName == col.field;\n });\n if (masterIndex != -1) {\n this.columnDefs[index]['ColumnMasterId'] = this.columnMaster[masterIndex].ColumnMasterId;\n }\n });\n }\n\n collectUserPreferences() {\n this.preferance = [];\n const columnState = this.exporthistoryGrid.getColumnState();\n _.forEach(columnState, (state: any, index: number) => {\n let columnMasterId = null;\n const columnIndex = _.findIndex(this.columnDefs, (col) => {\n return col.field == state.colId;\n });\n if (columnIndex != -1) {\n const col = { ...this.columnDefs[columnIndex] };\n columnMasterId = col['ColumnMasterId'];\n if (columnMasterId > 0) {\n this.preferance.push({\n ColumnMasterId: columnMasterId,\n ColumnOrder: index,\n SortOrder: state.sort,\n GroupOrder: state.rowGroupIndex != null ? state.rowGroupIndex + 1 : state.rowGroupIndex,\n IsVisible: state.hide ? 0 : 1\n });\n }\n }\n });\n }\n\n getUserPreference() {\n if (this.sharedService.isAuthUser(this.screenActionPrivileges.GetExportHistorySavePreference)) {\n this.exportHistoryService.getUserPreferences().subscribe(response => {\n this.persistFilterData();\n if (response) {\n this.preferance = response.details;\n this.disableResetPreference = this.preferance.map((pref) => pref.TabId).includes(GridMaster.ExportHistory);\n this.setPreference()\n \n }\n });\n }\n }\n\n setPreference() {\n this.reorderColumnMaster();\n const tabPreference = _.filter(this.preferance, (pref: any) => {\n return pref.TabId == GridMaster.ExportHistory;\n });\n if (tabPreference && tabPreference.length > 0) {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n const prefColumn = _.filter(tabPreference, (pref: any) => {\n return pref.ColumnMasterId == col.ColumnMasterId;\n });\n const column = { ...this.columnDefs[index] };\n this.columnDefs[index] = this.updateColumnProps(prefColumn, column);\n });\n const sortedCols = _.sortBy(this.columnDefs, (col: any) => {\n return col['ColumnOrder'];\n });\n this.columnDefs = [...sortedCols];\n } else {\n this.columnDefs = [...ExportHistory];\n }\n }\n\n updateColumnProps(prefColumn, column) {\n if (prefColumn && prefColumn.length > 0) {\n column['sort'] = prefColumn[0].SortOrder;\n column['ColumnOrder'] = prefColumn[0].ColumnOrder;\n column['hide'] = prefColumn[0].IsVisible == 1 ? false : true;\n if (prefColumn[0].GroupOrder > 0) {\n column['rowGroup'] = true;\n column['rowGroupIndex'] = prefColumn[0].GroupOrder - 1;\n } else {\n column['rowGroup'] = false;\n }\n }\n return column;\n }\n\n persistFilterData() {\n this.filterPreferance = [];\n this.filterModel = [];\n this.filterPreferance = this.browserStorageService.getLocalStorageValue(StorageKey.FILTERMODEL);\n const currentFilterData = this.filterPreferance ? this.filterPreferance.filter(x => x.tabId === GridMaster.ExportHistory)[0] : null;\n if (currentFilterData) {\n this.filterModel = currentFilterData.filterData;\n this.exporthistoryGrid.setFilterModel(this.filterModel);\n }\n else {\n this.exporthistoryGrid.setFilterModel(null);\n }\n }\n\n isUserPreferenceChanged() {\n return this.exporthistoryGrid && this.exporthistoryGrid.isUserPreferenceChanged();\n }\n\n\n showResetUserPreferenceModal() {\n \n const title = \" Reset Columns to the default/userPreference View\";\n\n const data = {\n \"message\": \"You are about to reset Export History Columns to the default/userPreference View.\",\n enablePreference: this.disableResetPreference,\n action : this.disableResetPreference ? 1: 0,\n };\n this.uiHelperService.askConfirmation(ResetPreferenceComponent, 'modal-lg', title, data, 'Cancel', 'Reset Preference', (data: any) => {\n this.resetUserPreference(data.data.action);\n });\n \n }\n\n resetUserPreference(action) {\n this.sharedService.userPreferenceChanged = false;\n if(action ==0)\n {\n const request = {\n TabId: GridMaster.ExportHistory,\n \n };\n \n this.exportHistoryService.ResetUserPreference(request).subscribe((response: any) => {\n let responseDetails = response.details;\n if (responseDetails.Response == \"Success\") {\n \n this.disableResetPreference = false;\n \n this.uiHelperService.showSnackBar('Grid has been reset to default view successfully', SnackbarConfig.success);\n this.getUserPreference();\n }\n }, (error) => {\n this.uiHelperService.showSnackBar('Failed to reset user preference', SnackbarConfig.error);\n });\n }\n else{\n \n this.getUserPreference();\n\n this.uiHelperService.showSnackBar('Grid has been reset to saved user preference view successfully', SnackbarConfig.success);\n }\n \n }\n\n}\n\n","\n\n
\n\n
\n
\n
\n

Export History

\n
\n
\n
\n\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n\n
\n
\n\n \n \n \n\n
\n
\n
\n\n\n
\n
\n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ExportHistoryComponent } from './export-history.component';\nimport { UiKitModule } from '@wlms-web/ui-kit';\nimport { HttpClientModule } from '@angular/common/http';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { UtilsModule } from '@wlms-web/utils';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { FeaturesPageLayoutModule } from '@wlms-web/features/page-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MaterialModule } from '@wlms-web/material';\nimport { CsvGeneratorModalComponent } from './csv-generator-modal/csv-generator-modal/csv-generator-modal.component';\nimport { CsvGeneratorResultModalComponent } from './csv-generator-result-modal/csv-generator-result-modal/csv-generator-result-modal.component';@NgModule({\n imports: [CommonModule,\n HttpClientModule,\n BsDropdownModule.forRoot(),\n UtilsModule,\n UiKitModule,\n FeaturesPageLayoutModule,\n ModalModule.forRoot(),\n MaterialModule, FormsModule, ReactiveFormsModule],\n declarations: [ExportHistoryComponent, CsvGeneratorModalComponent, CsvGeneratorResultModalComponent],\n exports: [ExportHistoryComponent],\n entryComponents: []\n})\n\nexport class ExportHistoryModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseApiService } from '@ldsm/utils';\nimport { ConfigService, ApiConfig } from '@wlms-web/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExportHistoryService extends BaseApiService {\n\n constructor(protected app: ConfigService, protected http: HttpClient) {\n super(\n http,\n app.getAppConfiguration().apiBaseUrl,\n app.getAppConfiguration().apiNamespace,\n ''\n );\n }\n\n getExportHistory() {\n return this.get('ExportHistory/GetAllExportLoanForGrid', ApiConfig.DISABLELOANCACHE);\n }\n getWarehouseline() {\n return this.get('WarehouseLine/GetWarehouseLineDetailsForLoanQueue', ApiConfig.DISABLEGETTIMECACHE);\n }\n assignAndExportLoan(request) {\n return this.post('Export/Empower/AssignandExport', request);\n }\n\n saveUserPreferences(request) {\n return this.post('user/SaveUserPreference', request);\n }\n\n getUserPreferences() {\n return this.get('user/GetPreference/', ApiConfig.DISABLELOANCACHE);\n }\n\n getColumnMaster(id) {\n return this.get('user/GetUserPrefernceColumnMaster/' + id);\n }\n\n ResetUserPreference(request) {\n return this.post('user/ResetUserPreference', request);\n }\n}\n","export * from './lib/loan-details-panel.module';\nexport { ViewLoanPanelComponent } from './lib/summary/summary.component';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LoanDetailsComponent } from './loan-details/loan-details.component';\nimport { ViewLoanPanelComponent } from './summary/summary.component';\nimport { UiKitModule } from '@wlms-web/ui-kit';\nimport { UtilsModule } from '@wlms-web/utils';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { DatePipe } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule,\n UtilsModule,\n BsDropdownModule.forRoot(),\n UiKitModule],\n declarations: [LoanDetailsComponent, ViewLoanPanelComponent],\n exports: [ViewLoanPanelComponent],\n providers:[DatePipe]\n})\nexport class FeaturesLoanDetailsPanelModule { }\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n} from '@angular/core';\nimport { DatePipe, CurrencyPipe } from '@angular/common';\nimport { isEmpty } from 'lodash';\nimport { EmptyPipe, CustomCurrencyPipe, Loandetails, LoanDetailCategories, SharedService } from '@wlms-web/utils';\n\n@Component({\n selector: 'wlms-loan-details',\n templateUrl: './loan-details.component.html',\n styleUrls: ['./loan-details.component.scss']\n})\nexport class LoanDetailsComponent implements OnChanges {\n\n loanDetailsData: any;\n icon: any;\n selectedAction: any;\n @Input() selectedLoan: any;\n loanDetails = Loandetails;\n loanDetailCategories = LoanDetailCategories;\n containerClass = 'body';\n subscription$: any;\n @Output() optionSelected: EventEmitter = new EventEmitter();\n\n constructor(public datePipe: DatePipe, public currencyPipe: CurrencyPipe,\n private sharedService: SharedService) {\n this.subscription$ = this.sharedService.datasourceUpdated.subscribe((response: any) => {\n this.updateDataSet();\n });\n }\n\n ngOnChanges(): void {\n this.updateDataSet();\n }\n\n updateDataSet(): void {\n this.loanDetailsData = { ...this.selectedLoan };\n this.loanDetails.forEach((element: any, index: any) => {\n this.loanDetails[index] = { ...element, detailValue: this.loanDetailsData[element.field] }\n !this.selectedLoan ? '' : this.dataFormatter(index, this.loanDetails[index], this.loanDetailsData[element.field]);\n })\n }\n\n dataFormatter(index, data, value) {\n if (this.loanDetails[index].detailValueFormatters) {\n this.loanDetails[index].detailValueFormatters.forEach((element: any) => {\n switch (element) {\n case 'y/n':\n this.loanDetails[index] = { ...data, detailValue: value == 'Y' ? 'Yes' : 'No' }\n break;\n case 't/f':\n this.loanDetails[index] = { ...data, detailValue: value == 'Y' ? 'True' : 'False' }\n break;\n case 'dateTime':\n this.loanDetails[index] = { ...data, detailValue: this.datePipe.transform(value, 'MM/dd/YYYY hh:mm:ss a') }\n break;\n case 'date':\n this.loanDetails[index] = { ...data, detailValue: this.datePipe.transform(value, 'MM/dd/YYYY') }\n break;\n case 'currency':\n this.loanDetails[index] = { ...data, detailValue: this.currencyPipe.transform(value, 'USD') }\n break;\n }\n });\n }\n }\n\n onWarehouselineSelected(event: any) {\n this.optionSelected.emit({ ...event, loanDetails: [this.loanDetailsData].map((loan: any) => loan.LoanNumber) });\n }\n}\n","
\n
\n

Details

\n
\n
\n \n

{{ category.name }}

\n
\n
\n \n \n

\n {{ loan?.detailValue | empty: '-' }}\n

\n
\n
\n
\n
\n \n\n","import { Component, OnInit, OnChanges, Input, OnDestroy, EventEmitter, Output } from '@angular/core';\nimport { ChangeDetectorRef } from '@angular/core';\n\nimport { SharedService, LoanDetailsPanelTabs } from '@wlms-web/utils';\n\n@Component({\n selector: 'wlms-view-loan-panel',\n templateUrl: './summary.component.html',\n styleUrls: ['./summary.component.scss']\n})\nexport class ViewLoanPanelComponent implements OnInit, OnChanges, OnDestroy {\n slidePanelOpen: boolean;\n selectedTab = 0;\n loadLoanData: boolean;\n @Input() openPanel: boolean;\n @Input() selectedLoan: string;\n @Input() selectedPanelTab: number;\n tabList = [...LoanDetailsPanelTabs];\n @Output() optionSelected: EventEmitter = new EventEmitter();\n\n constructor(\n private cdRef: ChangeDetectorRef,\n public sharedService: SharedService\n ) { }\n\n ngOnChanges() {\n if (this.openPanel && !this.slidePanelOpen) {\n this.selectedTab = this.selectedPanelTab;\n this.loadLoanData = true;\n }\n }\n\n ngOnInit() {\n this.sharedService.slidePanelOpen.subscribe((response: any) => {\n if (response) {\n this.slidePanelOpen = true;\n this.loanDataLoaded();\n }\n });\n this.sharedService.tabChange.subscribe((response: any) => {\n if (!response.isLabelDisplayed) {\n this.selectedTab = response.index;\n }\n });\n }\n\n onSelectedIndexChange(event: any) {\n this.selectedPanelTab = event;\n this.selectedTab = event;\n }\n\n onClose() {\n this.slidePanelOpen = false;\n this.loadLoanData = false;\n }\n\n loanDataLoaded() {\n if (this.openPanel && !this.slidePanelOpen) {\n this.slidePanelOpen = true;\n this.cdRef.detectChanges();\n }\n }\n\n ngOnDestroy() {\n this.slidePanelOpen = false;\n }\n\n onWarehouselineSelected(event: any) {\n this.optionSelected.emit(event);\n }\n\n}\n","\n
\n
\n
\n \n
\n\n
\n \n \n \n
\n
\n
\n","export * from './lib/loan-assignment.module';\nexport { LoanAssignmentComponent } from './lib/loan-assignment/loan-assignment.component';\n","export const UpdateAdvanceDate = [\n {\n \"field\": \"LoanNumber\",\n \"headerName\": \"Loan Number\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 400,\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"AdvanceDate\",\n \"headerName\": \"Advance Date\",\n \"width\": 400, \n cellRenderer: 'formatDateRenderer',\n detailValueFormatters: ['date'],\n detailCategory: 3,\n \"filter\": \"agDateColumnFilter\",\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n]\n\n\n\n","export const ExportResult = [\n {\n \"field\": \"loanNumber\",\n \"headerName\": \"Loan Number\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"status\",\n \"headerName\": \"Status\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"statusMessage\",\n \"headerName\": \"Message\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 400,\n wrapText: true,\n autoHeight: true,\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n\n }\n]\n\nexport const ExportFilePathResult = [\n {\n \"field\": \"WarehouseLine\",\n \"headerName\": \"Warehouse Line\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 200,\n },\n {\n \"field\": \"Path\",\n \"headerName\": \"Path\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 500,\n },\n]\nexport const AdvanceDateUpdateResult = [\n {\n \"field\": \"LoanNumber\",\n \"headerName\": \"Loan Number\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"\",\n \"headerName\": \"Status\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 500,\n },\n]\n","export const LoanResult = [\n {\n \"field\": \"loanNumber\",\n \"headerName\": \"Loan Number\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n \n },\n {\n \"field\": \"status\",\n \"headerName\": \"Status\",\n \"filter\": \"agSetColumnFilter\",\n \"width\": 150,\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"statusMessage\",\n \"headerName\": \"Response\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 400,\n wrapText: true,\n autoHeight: true,\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n }\n]","export const PushBackResult = [\n {\n \"field\": \"LoanNumber\",\n \"headerName\": \"Loan Number\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n //suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n \n },\n {\n \"field\": \"Status\",\n \"headerName\": \"Status\",\n \"filter\": \"agSetColumnFilter\",\n \"width\": 150,\n // suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n }\n]","export const ReviewResult = [\n {\n \"field\": \"LoanNumber\",\n \"headerName\": \"Loan Number\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n //suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n \n },\n {\n \"field\": \"IsReviewed\",\n \"headerName\": \"Status\",\n \"filter\": \"agSetColumnFilter\",\n \"width\": 150,\n // suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n }\n]","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LoanAssignmentComponent } from './loan-assignment/loan-assignment.component';\nimport { UiKitModule } from '@wlms-web/ui-kit';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FeaturesLoanDetailsPanelModule } from '@wlms-web/features/loan-details-panel';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { UtilsModule } from '@wlms-web/utils';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { AssignExportModalComponent } from './loan-assignment/assign-export-modal/assign-export-modal.component';\nimport { FeaturesPageLayoutModule } from '@wlms-web/features/page-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MaterialModule } from '@wlms-web/material';\nimport { LoanlookupExceptionComponent } from './loan-assignment/loanlookup-exception/loanlookup-exception.component';\nimport { ExportResultModalComponent } from './loan-assignment/export-result-modal/export-result-modal.component';\nimport { AssignResultModalComponent } from './loan-assignment/assign-result-modal/assign-result-modal.component';\nimport { ReviewloanResultModalComponent } from './loan-assignment/reviewloan-result-modal/reviewloan-result-modal.component';\nimport { PushfundingResultModalComponent } from './loan-assignment/pushfunding-result-modal/pushfunding-result-modal.component';\nimport { UpdateAdvanceDateModalComponent } from './loan-assignment/update-advance-date-modal/update-advance-date-modal.component';\n@NgModule({\n imports: [CommonModule,\n HttpClientModule,\n FeaturesLoanDetailsPanelModule,\n BsDropdownModule.forRoot(),\n UtilsModule,\n UiKitModule,\n FeaturesPageLayoutModule,\n ModalModule.forRoot(),\n MaterialModule, FormsModule, ReactiveFormsModule],\n declarations: [LoanAssignmentComponent, AssignExportModalComponent,LoanlookupExceptionComponent, ExportResultModalComponent, AssignResultModalComponent, ReviewloanResultModalComponent, PushfundingResultModalComponent, UpdateAdvanceDateModalComponent],\n exports: [LoanAssignmentComponent, AssignExportModalComponent,LoanlookupExceptionComponent,ExportResultModalComponent,ReviewloanResultModalComponent,PushfundingResultModalComponent],\n entryComponents: []\n})\nexport class LoanassignmentModule { }\n","import { Component, OnInit, Input } from '@angular/core';\n@Component({\n selector: 'wlms-assign-export-modal',\n templateUrl: './assign-export-modal.component.html',\n styleUrls: ['./assign-export-modal.component.scss']\n})\nexport class AssignExportModalComponent implements OnInit {\n @Input() data: any;\n constructor() {\n }\n ngOnInit() { \n } \n}","\n
\n \n
\n

\n Loans are funding past cutoff time for the Warehouse Line \n {{data.federalCutoff}} PST. \n Select EXPORT to fund today or select CANCEL to quit without funding.\n

\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n {{data.percentage}}% Left\n
\n
\n
\n
\n
\n
\n
\n
\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { LoanResult } from '../../config/table-structure-loanassign-result';\n\n@Component({\n selector: 'wlms-assign-result-modal',\n templateUrl: './assign-result-modal.component.html',\n styleUrls: ['./assign-result-modal.component.scss']\n})\nexport class AssignResultModalComponent implements OnInit {\n\n @Input() data: any;\n columnDefs = [...LoanResult];\n rowData = [];\n paginationPageSize = 10;\n \n \n constructor() { }\n\n ngOnInit(): void {\n this.getAssignStatus(); \n }\n\n getAssignStatus() {\n let res = this.data.responseDetails;\n res.forEach((element, index) => {\n if (element.status) {\n res[index].status = \"Success\";\n }\n else {\n res[index].status = \"Failed\";\n }\n });\n\n this.rowData = res;\n\n \n }\n}\n","
\n
\n

\n
\n \n
\n \n \n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ExportFilePathResult, ExportResult } from '../../config/table-structure-export-result';\n\n@Component({\n selector: 'wlms-export-result-modal',\n templateUrl: './export-result-modal.component.html',\n styleUrls: ['./export-result-modal.component.scss']\n})\nexport class ExportResultModalComponent implements OnInit {\n @Input() data: any;\n columnDefs = [...ExportResult];\n columnDefsFilePath = [...ExportFilePathResult];\n rowData = [];\n rowDataFilePath = []\n constructor() { }\n ngOnInit(): void {\n this.getExportStatus();\n }\n getExportStatus() {\n let response = this.data.data.map(x => x.response)[0];\n response.forEach((element, index) => {\n if (element.status) {\n response[index].status = \"Success\";\n }\n else {\n response[index].status = \"Failed\";\n }\n });\n\n this.rowData = response.sort(function (a, b) {\n return (a.status.toUpperCase() < b.status.toUpperCase()) ? -1 : (a.status.toUpperCase() > b.status.toUpperCase()) ? 1 : 0;\n });\n\n this.rowDataFilePath = this.data.data.map(obj =>\n ({\n WarehouseLine: this.data.WarehouseLine,\n Path: obj.path,\n AdditionalPath: obj.additionalPath ?? \"\"\n }));\n }\n}\n","
\n
\n
\n

Funding File:

\n

{{ rowDataFilePath[0]?.Path }}

\n
\n
0 && rowDataFilePath[0]?.AdditionalPath!=''\">\n

Additional File:

\n

{{ rowDataFilePath[0]?.AdditionalPath }}

\n
\n
1\">\n

Custodian File:

\n

{{ rowDataFilePath[1]?.Path }}

\n
\n
\n\n
\n

Loan Satus

\n
\n\n
\n \n \n
\n
","import { Component, OnInit, AfterViewInit, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { interval, Subscription } from 'rxjs';\nimport { LoanAssignmentService } from '../services/loan-assignment.service';\nimport {\n SharedService,\n Loandetails, NoRowsOverlayFlags, SnackbarConfig,\n Modal, LoanDetailTileList, LoanAssignmentActions,\n BrowserStorageService, GridMaster,\n StorageKey, ColourCodes, ScreenActionPrivileges, ExportWarehouseName, LOSList\n} from '@wlms-web/utils';\nimport { AssignExportModalComponent } from '../loan-assignment/assign-export-modal/assign-export-modal.component'\nimport { AlertModalComponent, UiHelperService } from '@wlms-web/ui-kit';\nimport * as _ from 'lodash';\nimport { TabConstantValue, LoanUpdateStatus, ExportRequestAction } from 'libs/utils/src/lib/constants/data-constants';\nimport { TimeCalculation } from 'libs/utils/src/lib/common/app-common-utils';\nimport { ExportResultModalComponent } from './export-result-modal/export-result-modal.component';\nimport * as moment from 'moment';\nimport { LoanlookupExceptionComponent } from './loanlookup-exception/loanlookup-exception.component';\nimport { Router } from '@angular/router';\nimport { AssignResultModalComponent } from '../loan-assignment/assign-result-modal/assign-result-modal.component';\nimport { ReviewloanResultModalComponent } from './reviewloan-result-modal/reviewloan-result-modal.component';\nimport { PushfundingResultModalComponent } from './pushfunding-result-modal/pushfunding-result-modal.component';\nimport { ResetPreferenceComponent } from 'libs/ui-kit/src/lib/reset-preference/reset-preference.component';\nimport { SavePreferenceComponent } from 'libs/ui-kit/src/lib/save-preference/save-preference.component';\nimport { indexOf } from 'lodash';\nimport { UpdateAdvanceDateModalComponent } from './update-advance-date-modal/update-advance-date-modal.component';\nimport { AuthHelperService } from '@wlms-web/data-access';\nimport { WarehouseLine } from './models/WarehouseLine';\n\n@Component({\n selector: 'wlms-loan-assignment',\n templateUrl: './loan-assignment.component.html',\n styleUrls: ['./loan-assignment.component.scss']\n})\nexport class LoanAssignmentComponent implements OnInit, AfterViewInit {\n paginationPageSize = 50;\n showspinner = false;\n rowData = [];\n columnDefs = [...Loandetails];\n allData = [];\n originalData = [];\n allWarehouseLineData: WarehouseLine[] = [];\n tabList: any = [{ name: \"All\" }];\n cloneTabList: any = [];\n subscription$: Subscription;\n openPanel = false;\n selectedLoan: any;\n selectedTab = 0;\n aggregates: any;\n warehouses = [];\n blankTemplate: any = '';\n selectedLoans: any = [];\n selectedTabPreference: any = [];\n userDetails: any;\n loansReviewed: any;\n checktimeZero = false;\n minutesToDday;\n hoursToDday;\n daysToDday;\n TabConstantAll = TabConstantValue.ALL;\n TabConstantUnassigned = TabConstantValue.UNASSIGNED;\n isUserPreferenceChanged = false;\n tileList = [...LoanDetailTileList];\n loanAssignmentActions = [...LoanAssignmentActions];\n totalWireAmount: any;\n remaining: any;\n isRefresh: boolean = false;\n selectedIndices = [];\n failureMoveLoans: any = [];\n hasFailureLoans = false;\n failureMoveLoansIdx: any = [];\n @ViewChild('loanAssignmentGrid') loanAssignmentGrid: any;\n disablePreference = true;\n preferance: any[] = [];\n columnMaster = [];\n fundingCutoff: any;\n timeDifference: any;\n currentdate: any;\n timerSubscription: any;\n disableResetPreference = false;\n disableReProcessUpdates = false;\n screenActionPrivileges = ScreenActionPrivileges;\n suppressActionPrivilege = false;\n suppressRightClickPrivilege = false;\n noRowsOverlayFlags: any = { ...NoRowsOverlayFlags }.ISLOANASSIGNMENTS;\n filterPreferance: any[] = [];\n filterModel: any;\n WarehouseLines: any[] = [];\n isGridReloaded = false;\n loanstoExport: any;\n showpoup: number = 0;\n ferderaltime: string;\n previousselection: [];\n losList = [...LOSList];\n losSelected: any;\n warehouselineTabIndex: number = 0;\n testMode = false;\n constructor(private loanAssignmentService: LoanAssignmentService,\n private sharedService: SharedService,\n private cdRef: ChangeDetectorRef,\n private uiHelperService: UiHelperService,\n private browserStorageService: BrowserStorageService,\n private authHelperService: AuthHelperService,\n public router: Router) {\n this.suppressRightClickPrivilege = !this.sharedService.isAuthUser(this.screenActionPrivileges.LoanAssignmentRightMouseClick);\n this.suppressActionPrivilege = !this.sharedService.isAuthUser(this.screenActionPrivileges.LoanGridAction);\n this.losSelected = this.losList[0];\n }\n\n rowSelectionEvent(event) {\n this.selectedLoans = event;\n if (event.length > 0) {\n this.previousselection = event;\n }\n }\n\n onfilterChanged(event) {\n if (!this.isGridReloaded) {\n this.filterModel = event;\n this.filterPreferance = [];\n let getFilterPreference = this.browserStorageService.getLocalStorageValue(StorageKey.FILTERMODEL);\n this.filterPreferance = getFilterPreference ? getFilterPreference : [];\n const idx = this.filterPreferance.findIndex((x: any) => x.tabId == this.selectedTab);\n if (idx >= 0) {\n this.filterPreferance[idx] = { ...this.filterPreferance[idx], filterData: this.filterModel }\n }\n else {\n this.filterPreferance.push({\n tabId: this.selectedTab,\n filterData: this.filterModel\n });\n }\n this.browserStorageService.setLocalStorageValue(StorageKey.FILTERMODEL, this.filterPreferance);\n }\n }\n\n openAssignExportModal() {\n if (this.selectedLoans && this.selectedLoans.length > 0) {\n const name = this.tabList[this.selectedTab].name;\n let selected = this.getDataToAssign(false);\n const checkWarehouse = selected.find(x => x.warehouseLineId != this.tabList[this.selectedTab].warehouseLineId);\n if (checkWarehouse) {\n this.uiHelperService.showSnackBar('Warning: Export has been disabled. Please ensure loans selected are all for (' + name + ').', SnackbarConfig.warning);\n }\n else {\n this.showAssignExportModal();\n }\n\n }\n else {\n this.uiHelperService.showSnackBar('Please select loan(s) to assign', SnackbarConfig.error);\n }\n }\n\n openReviewModal() {\n if (this.selectedLoans && this.selectedLoans.length > 0) {\n this.showReviewModal();\n }\n else {\n this.uiHelperService.showSnackBar('Please select loan(s) to mark as reviewed', SnackbarConfig.error);\n }\n }\n\n reviewLoans() {\n let request = {\n loanList: this.getDataToReview(true),\n userName: this.authHelperService.getAuthUserDetails()[\"UserName\"]\n }\n this.showspinner = true;\n this.loanAssignmentService.markReviewLoan(request).subscribe(\n (response: any) => {\n this.selectedLoans = [];\n if (response?.details?.length > 0) {\n if (response.details.every(l => l.status === true)) {\n let reviewResponse = response[\"details\"].map(obj => ({ LoanNumber: obj.loanNumber, IsReviewed: true }));\n this.processReviewLoanResponse(reviewResponse);\n reviewResponse = reviewResponse.sort(function (a, b) {\n return a.LoanNumber < b.LoanNumber ? -1 : 1;\n });\n const reviewList = {\n responseDetails: reviewResponse\n };\n setTimeout(() => {\n this.uiHelperService.askConfirmation(ReviewloanResultModalComponent, 'modal-lg', `Mark review Status`,\n reviewList, '', 'Ok', () => {\n this.uiHelperService.showSnackBar('Loan(s) marked as reviewed successfully', SnackbarConfig.success);\n });\n this.showspinner = false;\n }, 50)\n }\n else {\n this.showspinner = false;\n let message = response.details.find(l => l.statusMessage)?.statusMessage ?? 'Fail to mark loan as reviewed';\n this.uiHelperService.showSnackBar(message, SnackbarConfig.error);\n }\n }\n },\n (error) => {\n this.showspinner = false;\n if (error?.error?.outcomes?.failedValidation) {\n this.uiHelperService.showSnackBar(error?.error?.outcomes?.messages, SnackbarConfig.error);\n } else {\n let message = error?.error?.outcomes?.ErrorDescription ?? error?.message;\n this.uiHelperService.showSnackBar(message, SnackbarConfig.error);\n }\n }\n );\n }\n\n showReviewModal() {\n const title = this.tabList[this.selectedTab].name + \": Review Loans\";\n const data = {\n \"data\": \"You are about to mark \" + this.selectedLoans.length + \" loan(s) as reviewed.\"\n };\n this.uiHelperService.askConfirmation(AlertModalComponent, 'modal-lg', title, data, 'Cancel', 'Review', () => {\n this.reviewLoans();\n });\n }\n\n processReviewLoanResponse(reviewResponse) {\n this.isGridReloaded = true;\n reviewResponse.forEach((response: any) => {\n const index = this.allData.findIndex((x: any) => x.loanNumber == response.LoanNumber);\n if (index != -1) {\n this.allData[index].treasuryFunding.isReviewed = true;\n }\n });\n this.addColorColumn();\n this.rowData = this.getCurrentTabData(this.selectedTab);\n this.persistFilterData();\n this.loansReviewed = this.rowData.filter(a => a.treasuryFunding.isReviewed).length;\n }\n\n showAssignExportModal() {\n\n const warehouses: WarehouseLine = this.allWarehouseLineData.find(x => x.warehouseLineId == this.tabList[this.selectedTab].warehouseLineId);\n if (warehouses && warehouses.fundingCutoff && warehouses.federalCutoff) {\n const formattedFundingCutoff = new Date(this.currentdate.toLocaleDateString(\"en-us\") + \" \" + warehouses.fundingCutoff).getTime();\n const formattedFederalCutoff = new Date(this.currentdate.toLocaleDateString(\"en-us\") + \" \" + warehouses.federalCutoff).getTime();\n const formattedCurrentdate = this.currentdate.getTime();\n this.ferderaltime = moment(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(),\n parseInt(warehouses.federalCutoff.split(':')[0]),\n parseInt(warehouses.federalCutoff.split(':')[1]))).format('hh:mm A');\n\n if (formattedCurrentdate > formattedFundingCutoff && formattedCurrentdate <= formattedFederalCutoff) {\n this.showpoup = 1;\n\n }\n else {\n this.showpoup = 0;\n }\n }\n const title = warehouses.warehouseLineName + \": Exporting\";\n const data = {\n \"warehousename\": warehouses.warehouseLineName,\n \"totalLoans\": this.selectedLoans.length,\n \"wireAmountTotal\": this.calculateWireAmountTotal(),\n \"remaining\": this.calculateRemaining(),\n \"percentage\": this.calculateRemaningPercentage(),\n \"cutoffMessage\": this.showpoup,\n \"federalCutoff\": this.ferderaltime\n };\n this.uiHelperService.askConfirmation(AssignExportModalComponent, 'modal-lg', title, data, 'Cancel', 'Export', () => {\n this.exportAssignedLoans();\n });\n }\n\n calculateWireAmountTotal() {\n this.totalWireAmount = this.selectedLoans.map(a => a.wireAmount ? a.wireAmount : 0).reduce((a, b) => { return a + b; }, 0);\n return this.totalWireAmount;\n }\n\n calculateRemaining() {\n this.remaining = (this.tabList[this.selectedTab].aggregates.availableCapacity - this.totalWireAmount);\n return this.remaining;\n }\n\n calculateRemaningPercentage() {\n return (this.remaining / this.tabList[this.selectedTab].aggregates.availableCapacity) * 100;\n }\n\n getDataToAssign(isclear: any) {\n let selected = this.selectedLoans.map((l) => {\n return {\n loanNumber: l.loanNumber\n , warehouseLineId: l.treasuryFunding.warehouseLine\n , loanOriginationSystemName: l.treasuryFunding.loanOriginationSystem\n }\n });\n\n if (isclear) {\n this.selectedLoans = [];\n this.selectedIndices = [];\n }\n return selected;\n }\n\n getDataToReview(isclear: any) {\n let selected = this.selectedLoans.map((l) => {\n return {\n loanNumber: l.loanNumber\n , isReviewed: true\n , loanOriginationSystemName: l.treasuryFunding.loanOriginationSystem\n }\n });\n\n if (isclear) {\n this.selectedLoans = [];\n this.selectedIndices = [];\n }\n return selected;\n }\n\n getDataToUpdate(isclear: any) {\n let selected = this.selectedLoans.map((l, index) => {\n\n return {\n LoanNumber: l.LoanNumber\n , AdvanceDate: moment(l.AdvanceDate).startOf('day').utc(true).toISOString()\n }\n });\n if (isclear) {\n this.selectedLoans = [];\n this.selectedIndices = [];\n }\n\n return selected;\n }\n\n apiAssigntoWarehouselines() {\n let assignLoanRequestData = {\n loanAssignments: this.getDataToAssign(true),\n userName: this.authHelperService.getAuthUserDetails()[\"UserName\"]\n }\n this.showspinner = true;\n this.loanAssignmentService.assignLoan(assignLoanRequestData).subscribe((response: any) => {\n let result = [...response['details']];\n if (result) {\n\n result = result.sort(function (a, b) {\n return a.Status - b.Status;\n });\n const assignList = {\n responseDetails: result\n };\n setTimeout(() => {\n this.uiHelperService.askConfirmation(AssignResultModalComponent, 'modal-lg', `Loan Assign Status`,\n assignList, '', 'Ok', () => {\n });\n this.showspinner = false;\n this.getLoans(() => {\n this.onLoanDataRetrived();\n });\n }, 50)\n }\n else {\n this.showspinner = false;\n this.uiHelperService.showSnackBar('Failed to Assign Loans', SnackbarConfig.error);\n }\n },\n (error) => {\n this.showspinner = false;\n if (error?.error?.outcomes?.failedValidation) {\n this.uiHelperService.showSnackBar(error?.error?.outcomes?.messages, SnackbarConfig.error);\n\n } else {\n this.uiHelperService.showSnackBar(error?.error?.outcomes?.ErrorDescription, SnackbarConfig.error);\n }\n });\n\n }\n\n exportAssignedLoans() {\n let loans = this.getDataToAssign(true);\n this.showspinner = true;\n let warehouse = this.allWarehouseLineData.find(x => x.warehouseLineId == this.tabList[this.selectedTab].warehouseLineId);\n let request = {\n loanBatches: [{\n los: this.losSelected.name,\n loanNumbers: loans.map(loan => { return loan.loanNumber }),\n }],\n warehouseShortCode: warehouse.shortCode,\n userName: this.authHelperService.getAuthUserDetails()[\"UserName\"]\n }\n this.loanAssignmentService.assignAndExportLoan(request).subscribe(response => {\n this.loanstoExport = [];\n let result = response['details'];\n if (result && result.exportResult) {\n this.isRefresh = true;\n const data = {\n \"data\": result.exportResult,\n \"WarehouseLine\": ExportWarehouseName[this.tabList[this.selectedTab].code]\n };\n setTimeout(() => {\n this.uiHelperService.askConfirmation(ExportResultModalComponent, 'modal-lg', `Export Status - ${this.tabList[this.selectedTab].name}`,\n data, '', 'Ok', () => {\n });\n this.showspinner = false;\n this.getLoans(() => {\n this.onLoanDataRetrived();\n });\n\n }, 50);\n }\n else {\n this.showspinner = false;\n this.uiHelperService.showSnackBar('Failed to Export Loans', SnackbarConfig.error);\n this.loanstoExport = [];\n }\n });\n }\n\n ngOnInit(): void {\n this.isRefresh = false;\n this.sharedService.modalSubmitValid = true;\n this.sharedService.userPreferenceChanged = false;\n this.userDetails = this.browserStorageService.getLocalStorageValue(StorageKey.AZURELOGGEDINUSER);\n this.getColumnMaster();\n this.subscription$ = this.sharedService.tabChange.subscribe((response: any) => {\n this.onTabChange(response)\n this.setPreference();\n });\n this.subscription$ = this.sharedService.slidePanelOpen.subscribe((response: any) => {\n if (response) {\n this.openPanel = true;\n this.selectedLoan = { ...response };\n }\n });\n\n this.setActions();\n this.getUserPreference();\n this.getWarehouseline();\n this.calculateCutoffTiming();\n }\n\n ngAfterViewInit(): void {\n this.cdRef.detectChanges();\n }\n\n onTabChange(response) {\n this.changeTabData(response);\n this.disableResetPreference = this.preferance.map((pref) => pref.TabId).includes(this.selectedTab);\n if (this.disableResetPreference) {\n this.columnDefs = [...Loandetails];\n }\n this.persistFilterData();\n }\n\n persistFilterData() {\n this.filterPreferance = [];\n this.filterModel = [];\n this.filterPreferance = this.browserStorageService.getLocalStorageValue(StorageKey.FILTERMODEL);\n let currentFilterData = this.filterPreferance ? this.filterPreferance.filter(x => x.tabId === this.selectedTab)[0] : null;\n if (currentFilterData) {\n this.filterModel = currentFilterData.filterData;\n this.loanAssignmentGrid.setFilterModel(this.filterModel);\n }\n else {\n this.loanAssignmentGrid.setFilterModel(null);\n }\n }\n\n changeTabData(response) {\n this.sharedService.userPreferenceChanged = false;\n this.isRefresh = false;\n if (this.previousselection?.length > 0) {\n this.previousselection.forEach((response: any) => {\n const index = this.allData.findIndex((x: any) => x.loanNumber == response.loanNumber);\n const previousdata = this.originalData.find((x: any) => x.loanNumber == response.loanNumber);\n if (index != -1) {\n this.allData[index].treasuryFunding.warehouseLine = previousdata.treasuryFunding.warehouseLine;\n }\n });\n }\n this.previousselection = [];\n this.selectedLoans = [];\n this.selectedIndices = [];\n this.failureMoveLoansIdx = [];\n if (response.isLabelDisplayed) {\n this.selectedTab = response.index;\n this.onGridDataSourceUpdated();\n }\n this.loanAssignmentGrid.userPreferenceChanged = false;\n }\n\n onGridDataSourceUpdated() {\n this.rowData = this.getCurrentTabData(this.selectedTab);\n this.loansReviewed = this.rowData.filter(a => a.treasuryFunding.isReviewed).length;\n this.calculateCutoffTiming();\n this.setActions();\n this.setTile();\n }\n\n setActions() {\n let actions = [];\n this.loanAssignmentActions = [...LoanAssignmentActions];\n this.loanAssignmentActions.forEach((item, index) => {\n if (!item.excludeInTabs.includes(this.tabList[this.selectedTab].name) && this.sharedService.isAuthUser(item.privilegeKey)) {\n actions.push(item);\n }\n });\n this.loanAssignmentActions = [...actions];\n }\n\n setTile() {\n if (this.tabList[this.selectedTab].aggregates) {\n this.tileList.forEach((tile: any, index: any) => {\n switch (tile.label.toLocaleUpperCase()) {\n case 'Line Limit'.toLocaleUpperCase():\n this.tileList[index] = { ...tile, icon: this.tabList[this.selectedTab].icon ? this.tabList[this.selectedTab].icon : null, value: this.tabList[this.selectedTab].aggregates.availableCapacity };\n break;\n case 'Outstanding'.toLocaleUpperCase():\n this.tileList[index] = { ...this.tileList[index], value: this.tabList[this.selectedTab].aggregates.allocated };\n break;\n case 'Available'.toLocaleUpperCase():\n this.tileList[index] = { ...this.tileList[index], value: this.tabList[this.selectedTab].aggregates.remaining, remainingPercentage: this.tabList[this.selectedTab].aggregates.remainingPercentage };\n break;\n case 'Wire Amount Total'.toLocaleUpperCase():\n this.tileList[index] = { ...this.tileList[index], value: this.tabList[this.selectedTab].aggregates.wireAmount };\n break;\n }\n });\n this.tabList[this.selectedTab].viewCount = this.rowData.length;\n }\n }\n\n isTileExcluded(tile) {\n const tileIndex = tile.excludeInTabs.findIndex((element: any) => {\n return element.toUpperCase() === this.tabList[this.selectedTab].name.toUpperCase();\n });\n if (tileIndex != -1) {\n return true\n }\n return false;\n }\n\n setWarehouseLines() {\n this.WarehouseLines = this.allWarehouseLineData;\n this.WarehouseLines = this.WarehouseLines.map(obj => ({\n warehouseLineId: obj.warehouseLineId,\n name: obj.warehouseLineName,\n icon: obj.icon,\n code: obj.shortCode\n }));\n this.sharedService.warehouseLines = [...this.WarehouseLines, { name: 'Unassigned', icon: 'icons_slash.svg', code: null }];\n this.tabList = [{ name: \"All\" }, ...this.WarehouseLines, { name: 'Unassigned', icon: 'icons_slash.svg', code: null}];\n this.warehouselineTabIndex = 0;\n this.selectedTab = 0;\n const basePath = '../assets/images/';\n this.tabList.forEach((element, index) => {\n if (element.icon) {\n this.tabList[index] = { ...element, icon: basePath + element.icon };\n }\n });\n this.warehouses = [...this.tabList];\n this.warehouses.pop();\n this.warehouses.shift();\n this.getLoans(() => {\n this.onLoanDataRetrived();\n });\n }\n\n\n rereshLoans() {\n this.sharedService.modalSubmitValid = true;\n if (this.selectedLoans && this.selectedLoans.length > 0) {\n const title = this.tabList[this.selectedTab].name + \": Refresh Loans(s) Confirmation\";\n const data = {\n \"data\": \"Loan(s) are currently selected. Please press Cancel if you would like to complete the action on the selected loans. Please press Refresh if you would like to continue.\"\n };\n this.uiHelperService.askConfirmation(AlertModalComponent, 'modal-lg', title, data, 'Cancel', 'Refresh', () => {\n this.refresh()\n });\n }\n else {\n this.refresh();\n }\n }\n\n refresh() {\n this.isRefresh = true;\n const currentFilter = this.loanAssignmentGrid.getGridApi().getFilterModel();\n this.rowData = [];\n this.loanAssignmentGrid.showloadingOverLay();\n this.getLoans(() => {\n this.loanAssignmentGrid.setFilterModel(currentFilter);\n this.uiHelperService.showSnackBar('Loan(s) Refreshed', SnackbarConfig.success);\n })\n }\n\n getLoans(callback) {\n this.isGridReloaded = true;\n this.rowData = [];\n this.sharedService.loadGrid.next({ isLoad: true });\n this.selectedLoans = [];\n this.subscription$ = this.loanAssignmentService.getLoans(this.losSelected.name, this.testMode).subscribe(response => {\n this.allData = [...response['details']]; //.map(obj => ({ ...obj, Variance: parseFloat(obj.Variance.replace('%', '')) }));\n this.originalData = JSON.parse(JSON.stringify(this.allData));\n this.addColorColumn();\n this.rowData = this.getCurrentTabData(this.selectedTab);\n this.getAggregates();\n callback();\n this.sharedService.loadGrid.next({ isLoad: false });\n this.setPreference();\n this.persistFilterData();\n this.isGridReloaded = false;\n this.sharedService.loanData = this.allData;\n this.disableReProcessUpdates = !this.allData.some(loandata => loandata.treasuryFunding.isEligibleForReProcess);\n this.allData.forEach((x: any, index: any) => {\n x.LoanExported = (x.treasuryFunding.isFunded) ? 'YES' : 'NO';\n })\n });\n }\n\n addColorColumn() {\n this.allData.forEach((x: any, index: any) => {\n const colorSet = [];\n x.treasuryFunding.isReviewed ? colorSet.push('Reviewed') : '';\n x.Exception && x.Exception.toUpperCase() == 'YES' ? colorSet.push('Exception') : '';\n x.manualWireInstructions && x.manualWireInstructions.toUpperCase() == 'YES' ? colorSet.push('Manual Wire Instruction') : '';\n (x.wireAmount > (x.loanAmount + x.loanAmount * 0.1) || x.wireAmount < (x.loanAmount - x.loanAmount * 0.1)) ? colorSet.push('Variance') : '';\n x.doesFurtherCreditExist ? colorSet.push('Further Credit Instruction') : '';\n colorSet.length == 0 ? colorSet.push('Not Marked') : '';\n this.allData[index] = {\n ...x,\n color: colorSet\n };\n })\n }\n\n onLoanDataRetrived() {\n this.setPreference();\n this.loansReviewed = this.rowData.filter(a => a.treasuryFunding.isReviewed).length;\n this.tabList[this.selectedTab].viewCount = this.rowData.length;\n }\n\n\n getWarehouseline() {\n this.subscription$ = this.loanAssignmentService.getWarehouseline(this.losSelected.name).subscribe(response => {\n this.allWarehouseLineData = [...response.details];\n this.setWarehouseLines();\n });\n }\n\n calculateCutoffTiming() {\n const title = this.tabList[this.selectedTab].name\n if (title.toUpperCase() != this.TabConstantAll.toUpperCase() && title.toUpperCase() != this.TabConstantUnassigned.toUpperCase()) {\n const warehouses: any = this.allWarehouseLineData.find(x => x.warehouseLineId == this.tabList[this.selectedTab].warehouseLineId);\n if (warehouses && warehouses.FundingCutoff) {\n this.fundingCutoff = warehouses.FundingCutoff;\n this.subscription$ = this.loanAssignmentService.getPstCurrentDate().subscribe(response => {\n this.currentdate = new Date(response.details);\n if (this.timerSubscription) {\n this.timerSubscription.unsubscribe();\n }\n\n this.timerSubscription = interval(1000).subscribe(x => {\n const formattedFundingCutoff = new Date(this.currentdate.toLocaleDateString(\"en-us\") + \" \" + this.fundingCutoff);\n this.timeDifference = formattedFundingCutoff.getTime() - this.currentdate.getTime();\n const calculatedValue = TimeCalculation.allocateTimeUnits(this.timeDifference);\n if (calculatedValue) {\n this.hoursToDday = calculatedValue.hoursToDday;\n this.minutesToDday = calculatedValue.minutesToDday;\n this.checktimeZero = calculatedValue.checktimeZero;\n this.daysToDday = calculatedValue.daysToDday;\n }\n this.currentdate.setSeconds(this.currentdate.getSeconds() + 1);\n });\n });\n }\n }\n }\n\n getAggregates() {\n this.subscription$ = this.loanAssignmentService.getAggregates().subscribe(response => {\n if (response) {\n this.updateTabList(response['aggregates']);\n this.setTile();\n }\n });\n }\n\n updateTabList(aggregates: any) {\n const allTab = this.tabList.findIndex((ag: any) => {\n return ag.name == 'All';\n });\n if (allTab != -1) {\n this.updateAllTab(aggregates, allTab);\n }\n this.tabList.forEach((tab: any, index: any) => {\n const aggregate = aggregates.filter((ag: any) => {\n return tab.name == ag.name;\n });\n if (this.tabList[index].name != 'All') {\n this.updateWarehouseLineTabs(aggregate, index);\n }\n });\n }\n\n updateWarehouseLineTabs(aggregate, index) {\n this.tabList[index] = {\n ...this.tabList[index],\n aggregates: {\n availableCapacity: aggregate[0]?.availableCapacity,\n allocated: aggregate[0]?.allocated,\n remaining: aggregate[0]?.remaining,\n wireAmount: aggregate[0]?.wireAmount,\n remainingPercentage: aggregate[0]?.availableCapacity > 0 ? Math.ceil((aggregate[0]?.remaining / aggregate[0]?.availableCapacity) * 100) : 0\n },\n viewCount: this.getCurrentTabData(index).length\n };\n }\n\n updateAllTab(aggregates, allTab) {\n this.tabList[allTab] = {\n ...this.tabList[allTab],\n aggregates: {\n availableCapacity: aggregates.map(a => a.availableCapacity).reduce((a, b) => { return a + b; }),\n allocated: aggregates.map(a => a.allocated).reduce((a, b) => { return a + b; }),\n wireAmount: aggregates.map(a => a.wireAmount).reduce((a, b) => { return a + b; }),\n remaining: aggregates.map(a => a.remaining).reduce((a, b) => { return a + b; })\n }\n };\n this.tabList[allTab] = {\n ...this.tabList[allTab],\n aggregates: { ...this.tabList[allTab].aggregates, remainingPercentage: Math.floor((this.tabList[allTab].aggregates.remaining / this.tabList[allTab].aggregates.availableCapacity) * 100) },\n viewCount: this.getCurrentTabData(allTab).length\n };\n this.tabList[allTab] = { ...this.tabList[allTab], viewCount: this.getCurrentTabData(allTab).length };\n }\n\n getCurrentTabData(tabIndex: any) {\n let currentTabData: any = [];\n if (tabIndex == 0) {\n currentTabData = [...this.allData];\n } else if (!this.tabList[tabIndex].warehouseLineId) {\n currentTabData = this.allData.filter((element: any) => {\n return ((element.treasuryFunding.warehouseLine == null || element.treasuryFunding.warehouseLine == '0'));\n\n });\n } else {\n currentTabData = this.allData.filter((element: any) => {\n return element.treasuryFunding.warehouseLine\n ? element.treasuryFunding.warehouseLine == this.tabList[tabIndex].warehouseLineId\n : this.tabList[tabIndex].warehouseLineId == null;\n });\n }\n return currentTabData;\n }\n\n onOptionSelected(event) {\n this.sharedService.modalSubmitValid = true;\n if (this.selectedLoans && this.selectedLoans.length <= 0) {\n this.uiHelperService.showSnackBar('No loan number(s) have been selected', SnackbarConfig.error);\n }\n else {\n switch (event.internalName) {\n case 'AssignAndExport': this.openAssignExportModal();\n break;\n case 'PushBackFundingQueue': this.openPushBackToFundingModal();\n break;\n case 'MarkReviewed': this.openReviewModal();\n break;\n case 'Assign': this.confirmReassignment();\n break;\n case 'UpdateAdvanceDate': this.openAdvanceDateModal();\n break;\n }\n }\n }\n\n openPushBackToFundingModal() {\n if (this.selectedLoans && this.selectedLoans.length > 0) {\n this.showPushBackToFundingModal();\n }\n else {\n this.uiHelperService.showSnackBar('Please select loan(s) to mark as Push Back To Funding Queue', SnackbarConfig.error);\n }\n }\n showPushBackToFundingModal() {\n const title = this.tabList[this.selectedTab].name + \": Push Back To Funding Queue\";\n const data = {\n \"data\": \"You are about to mark \" + this.selectedLoans.length + \" loan(s) as Push Back To Funding Queue.\"\n };\n this.uiHelperService.askConfirmation(AlertModalComponent, 'modal-lg', title, data, 'Cancel', 'Push To Funding', () => {\n this.pushBackToFundingQueue();\n });\n }\n\n pushBackToFundingQueue() {\n this.showspinner = true;\n const loans = this.selectedLoans.map(loan => { return loan.LoanNumber });\n this.loanAssignmentService.pushBackToFundingQueue(loans, this.losSelected.name).subscribe(response => {\n if (response) {\n this.selectedLoans = [];\n this.selectedIndices = [];\n this.failureMoveLoans = [];\n this.failureMoveLoansIdx = [];\n let responseDetails = response.details;\n const failureCount = responseDetails.filter(x => x.Status == \"Failure\").length;\n const successCount = responseDetails.filter(x => x.Status == \"Success\").length;\n let failureLoans = responseDetails.filter(x => x.Status == \"Failure\");\n this.failureMoveLoans = failureLoans.map(loan => { return loan.LoanNumber });\n if (parseInt(failureCount) > 0 && parseInt(successCount) == 0) {\n this.hasFailureLoans = true;\n\n }\n if (parseInt(failureCount) > 0 && parseInt(successCount) > 0) {\n this.hasFailureLoans = true;\n }\n responseDetails = responseDetails.sort(function (a, b) {\n return (a.Status.toUpperCase() < b.Status.toUpperCase()) ? -1 : (a.Status.toUpperCase() > b.Status.toUpperCase()) ? 1 : 0;\n });\n const assignList = {\n responseDetails: responseDetails\n };\n setTimeout(() => {\n this.uiHelperService.askConfirmation(PushfundingResultModalComponent, 'modal-lg', `Push Back To Funding Status`,\n assignList, '', 'Ok', () => {\n });\n this.showspinner = false;\n this.getLoans(() => {\n this.loansReviewed = this.rowData.filter(a => a.treasuryFunding.isReviewed).length;\n this.pushBackToFundingFailureMove();\n this.tabList[this.selectedTab].viewCount = this.rowData.length;\n });\n\n }, 50)\n }\n else {\n this.showspinner = false;\n this.uiHelperService.showSnackBar('Fail to push back to funding ', SnackbarConfig.success);\n }\n });\n }\n\n pushBackToFundingFailureMove() {\n if (this.hasFailureLoans) {\n this.failureMoveLoans.forEach((item) => {\n const index = this.rowData.findIndex((x: any) => x.LoanNumber == item);\n this.failureMoveLoansIdx.push(index)\n });\n }\n }\n onWarehouselineChanged(event) {\n this.selectedIndices = [];\n const columnState = this.loanAssignmentGrid.getColumnState();\n let groupIndex = _.findIndex(columnState, (state: any) => state.rowGroup);\n const loanExist = this.selectedLoans.map((loan) => loan.loanNumber).includes(event.loanDetails[0].loanNumber);\n const selectedNodes = this.loanAssignmentGrid.gridApi.getSelectedNodes();\n this.reCheckSelectedRows(selectedNodes, loanExist, event);\n if (!loanExist) {\n this.newLoanSelection(event, groupIndex);\n }\n this.persistFilterData();\n this.columnDefs = this.loanAssignmentGrid.getGridColumnDefs();\n }\n\n reCheckSelectedRows(selectedNodes, loanExist, event) {\n _.forEach(selectedNodes, (node) => {\n this.selectedIndices.push(node.id);\n if (loanExist) {\n node.data.treasuryFunding.warehouseLine = event.warehouseLineId;\n }\n });\n }\n\n newLoanSelection(event, groupIndex) {\n if (groupIndex != -1) {\n const rowNodes = this.loanAssignmentGrid.gridApi.rowModel.rowsToDisplay;\n rowNodes.forEach(node => {\n this.setSelectedIndices(node, event);\n });\n } else {\n this.loanAssignmentGrid.gridApi.forEachNode(node => {\n this.setSelectedIndices(node, event);\n });\n }\n }\n\n setSelectedIndices(node, event) {\n if (node.data && event.loanDetails[0].loanNumber == node.data.loanNumber) {\n node.data.treasuryFunding.warehouseLine = event.warehouseLineId;\n this.selectedIndices.push(node.id);\n }\n }\n\n confirmReassignment() {\n this.isRefresh = false;\n const title = 'Confirm Warehouseline Reassignment'\n const data = {\n data: 'You are about to reassign the warehouse line for ' + this.selectedLoans.length + ' loan(s).'\n };\n this.uiHelperService.askConfirmation(AlertModalComponent, 'modal-lg', title, data, 'Cancel', 'Assign', () => {\n this.apiAssigntoWarehouselines();\n });\n }\n\n collectUserPreferences() {\n this.preferance = [];\n const columnState = this.loanAssignmentGrid.getColumnState();\n _.forEach(columnState, (state: any, index: Number) => {\n let columnMasterId = null;\n const columnIndex = _.findIndex(this.columnDefs, (col) => {\n return col.field == state.colId;\n });\n if (columnIndex != -1) {\n const col = { ...this.columnDefs[columnIndex] };\n columnMasterId = col['ColumnMasterId'];\n if (columnMasterId > 0) {\n this.preferance.push({\n ColumnMasterId: columnMasterId,\n ColumnOrder: index,\n SortOrder: state.sort,\n GroupOrder: state.rowGroupIndex != null ? state.rowGroupIndex + 1 : state.rowGroupIndex,\n IsVisible: state.hide ? 0 : 1\n });\n }\n }\n });\n }\n\n setPreference() {\n this.reorderColumnMaster();\n const tabPreference = _.filter(this.preferance, (pref: any) => {\n return pref.TabId == this.selectedTab;\n });\n if (tabPreference && tabPreference.length > 0) {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n const prefColumn = _.filter(tabPreference, (pref: any) => {\n return pref.ColumnMasterId == col.ColumnMasterId;\n });\n let column = { ...this.columnDefs[index] };\n this.columnDefs[index] = this.updateColumnProps(prefColumn, column);\n });\n const sortedCols = _.sortBy(this.columnDefs, (col: any) => {\n return col['ColumnOrder'];\n });\n this.columnDefs = [...sortedCols];\n } else {\n this.columnDefs = [...Loandetails];\n }\n }\n\n updateColumnProps(prefColumn, column) {\n if (prefColumn && prefColumn.length > 0) {\n column['sort'] = prefColumn[0].SortOrder;\n column['ColumnOrder'] = prefColumn[0].ColumnOrder;\n column['hide'] = prefColumn[0].IsVisible == 1 ? false : true;\n if (prefColumn[0].GroupOrder > 0) {\n column['rowGroup'] = true;\n column['rowGroupIndex'] = prefColumn[0].GroupOrder - 1;\n } else {\n column['rowGroup'] = false;\n }\n }\n return column;\n }\n\n getColumnMaster() {\n this.loanAssignmentService.getColumnMaster(GridMaster.LoanAssignment).subscribe((response: any) => {\n if (response) {\n this.columnMaster = response.details;\n this.reorderColumnMaster();\n }\n });\n }\n\n reorderColumnMaster() {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n let masterIndex = _.findIndex(this.columnMaster, (master: any) => {\n return master.ColumnName == col.field;\n });\n if (masterIndex != -1) {\n this.columnDefs[index]['ColumnMasterId'] = this.columnMaster[masterIndex].ColumnMasterId;\n }\n });\n }\n\n showUserPreferenceModal() {\n this.sharedService.modalSubmitValid = true;\n const title = this.tabList[this.selectedTab].name + \": Save User Preferences\";\n const data = {\n \"message\": \"You are about to save \" + this.tabList[this.selectedTab].name + \" tab User Preference.\",\n action: 0,\n };\n this.uiHelperService.askConfirmation(SavePreferenceComponent, 'modal-lg', title, data, 'Cancel', 'Save Preference', (data: any) => {\n this.saveUserPreferences(data.data.action);\n });\n }\n\n\n saveUserPreferences(action) {\n if (!this.isUserPreferenceChanged) {\n this.reorderColumnMaster();\n this.collectUserPreferences();\n }\n this.selectedTabPreference = [];\n\n if (action == 0) {\n this.selectedTabPreference.push({ \"tabid\": this.selectedTab });\n }\n else {\n this.tabList.forEach((x, index) => this.selectedTabPreference.push({ \"tabid\": index }));\n\n }\n\n const request = {\n Tab: this.selectedTabPreference,\n Column: this.preferance\n };\n this.loanAssignmentService.saveUserPreferences(request).subscribe((response: any) => {\n if (response) {\n this.loanAssignmentGrid.userPreferenceChanged = false;\n this.sharedService.userPreferenceChanged = false;\n this.uiHelperService.showSnackBar('User preferences saved successfully', SnackbarConfig.success);\n this.getUserPreference(() => this.setPreference);\n this.disableResetPreference = true;\n }\n }, (error) => {\n this.uiHelperService.showSnackBar('Failed to save user preference', SnackbarConfig.error);\n });\n }\n\n getUserPreference(callback?) {\n if (this.sharedService.isAuthUser(this.screenActionPrivileges.GetLoanSavePreference)) {\n this.loanAssignmentService.getUserPreferences().subscribe(response => {\n this.persistFilterData();\n if (response) {\n this.preferance = response.details;\n this.disableResetPreference = this.preferance.map((pref) => pref.TabId).includes(this.selectedTab);\n callback ? callback() : '';\n }\n });\n }\n }\n\n showResetUserPreferenceModal() {\n this.sharedService.modalSubmitValid = true;\n const title = this.tabList[this.selectedTab].name + \": Reset Columns to the default view\";\n\n const data = {\n \"message\": \"You are about to reset \" + this.tabList[this.selectedTab].name + \" Columns to the default/userPreference View.\",\n enablePreference: this.disableResetPreference,\n action: this.disableResetPreference ? 1 : 0,\n };\n this.uiHelperService.askConfirmation(ResetPreferenceComponent, 'modal-lg', title, data, 'Cancel', 'Reset Preference', (data: any) => {\n this.resetUserPreference(data.data.action);\n });\n\n }\n\n resetUserPreference(action) {\n\n if (action == 0) {\n const request = {\n TabId: this.selectedTab\n };\n const currentFilter = this.loanAssignmentGrid.getGridApi().getFilterModel();\n this.loanAssignmentService.ResetUserPreference(request).subscribe((response: any) => {\n let responseDetails = response.details;\n if (responseDetails.Response == \"Success\") {\n this.disableResetPreference = false;\n this.sharedService.userPreferenceChanged = false;\n this.uiHelperService.showSnackBar('Grid has been reset to default view successfully', SnackbarConfig.success);\n this.getUserPreference(() => {\n this.getLoans(() => {\n this.loanAssignmentGrid.setRowData(this.rowData);\n this.columnDefs = [...Loandetails];\n this.loanAssignmentGrid.setFilterModel(currentFilter);\n })\n });\n }\n }, (error) => {\n this.uiHelperService.showSnackBar('Failed to reset user preference', SnackbarConfig.error);\n });\n }\n else {\n const currentFilter = this.loanAssignmentGrid.getGridApi().getFilterModel();\n this.getUserPreference(() => {\n this.getLoans(() => {\n this.loanAssignmentGrid.setRowData(this.rowData);\n this.columnDefs = [...Loandetails];\n this.loanAssignmentGrid.setFilterModel(currentFilter);\n })\n });\n\n this.uiHelperService.showSnackBar('Grid has been reset to saved user preference view successfully', SnackbarConfig.success);\n }\n\n }\n\n noOverlay(event) {\n this.loanAssignmentGrid.grid.gridOptions.noRowsOverlayComponentParams = {\n noRowsMessageFunc: function () {\n return {\n blankTemplateFlag: 'isLoanAssignments',\n };\n }\n };\n }\n\n loanLookUp() {\n const data = {\n isEdit: false,\n loanNumber: '',\n losSelected: this.losSelected,\n testMode: this.testMode,\n addException: false\n //indexList: this.indexList\n };\n const title = 'Loan LookUp & Add Exception';\n this.uiHelperService.askConfirmation(LoanlookupExceptionComponent, 'modal-lg', title, data, 'Cancel', 'Add Exception', (data: any) => {\n this.updateLoanException(data.data);\n });\n }\n\n updateLoanException(data) {\n var request = {\n loanNumber: data.loanNumber,\n loanOriginationSystem: data.losSelected.name,\n enable: data.addException \n }\n\n this.loanAssignmentService.updateLoanException(request).subscribe(response => {\n let responseDetails = response.details;\n if (responseDetails?.status) {\n this.isRefresh = true;\n this.uiHelperService.showSnackBar('Loan exception has been updated successfully.', SnackbarConfig.success);\n\n this.getLoans(() => {\n this.onLoanDataRetrived();\n });\n }\n else {\n\n this.uiHelperService.showSnackBar(`This loan does meet the criteria for an Exception: ${responseDetails.statusMessage}`, SnackbarConfig.error);\n }\n });\n }\n\n showReprocessLoanUpdatesModal() {\n const title = \"Reprocess Pending Loan Updates\";\n const data = {\n \"data\": \"Are you sure to reprocess all pending loans for updates?\"\n };\n this.sharedService.modalSubmitValid = true;\n this.uiHelperService.askConfirmation(AlertModalComponent, 'modal-lg', title, data, 'Cancel', 'Submit', () => {\n this.reprocessLoanUpdates();\n });\n }\n\n reprocessLoanUpdates() {\n this.showspinner = true;\n let request = {\n loanOriginationSystem: this.losSelected.name,\n userName: this.authHelperService.getAuthUserDetails()[\"UserName\"]\n };\n this.loanAssignmentService.reprocessLoanUpdates(request).subscribe((response: any) => {\n if (response) {\n this.showspinner = false;\n this.uiHelperService.showSnackBar('Loan updates has been sucessfully pushed to the queue for reprocessing.', SnackbarConfig.success);\n }\n }, (error) => {\n this.showspinner = false;\n this.uiHelperService.showSnackBar('Failed to reprocess loan updates', SnackbarConfig.error);\n });\n }\n onIsRowSelectable(rowNode) {\n return rowNode.data ? !(rowNode.data.treasuryFunding.isFunded && rowNode.data.treasuryFunding.loanFundingUpdateStatus != LoanUpdateStatus.Success) : false;\n }\n\n onGetRowClass(params) {\n if (params.data) {\n if (params.data.treasuryFunding.isEligibleForReProcess) {\n return 'app-exported-reprocess-loans';\n }\n else if (params.data.treasuryFunding.loanFundingUpdateStatus == LoanUpdateStatus.InProgressWithTreasuryTool) {\n return 'app-treasury-loan-updates';\n }\n else if (params.data.treasuryFunding.loanFundingUpdateStatus == LoanUpdateStatus.InProgress) {\n return 'app-exported-loans';\n }\n }\n };\n openAdvanceDateModal() {\n if (this.selectedLoans && this.selectedLoans.length > 0) {\n let selected = this.getDataToUpdate(false);\n this.uiHelperService.askConfirmation(UpdateAdvanceDateModalComponent, 'modal-lg', `Update Advance Date`, selected, 'Cancel', 'Update', () => {\n this.apiAdvanceDate();\n });\n }\n else {\n this.uiHelperService.showSnackBar('Please select loan(s) to update advance date', SnackbarConfig.error);\n }\n }\n\n apiAdvanceDate() {\n let selected = this.getDataToUpdate(true)\n this.showspinner = true;\n this.loanAssignmentService.updateAdvanceDate(selected, this.losSelected.name).subscribe((response: any) => {\n let result = [...response['details']];\n if (result) {\n\n result = result.sort(function (a, b) {\n return a.Status - b.Status;\n });\n const assignList = {\n responseDetails: result\n };\n setTimeout(() => {\n this.uiHelperService.askConfirmation(AssignResultModalComponent, 'modal-lg', `Update Advance Date Status`,\n assignList, '', 'Ok', () => {\n });\n this.showspinner = false;\n this.getLoans(() => {\n this.onLoanDataRetrived();\n });\n }, 50)\n }\n else {\n this.showspinner = false;\n this.uiHelperService.showSnackBar('Failed to Assign Loans', SnackbarConfig.error);\n }\n },\n (error) => {\n this.showspinner = false;\n if (error?.error?.outcomes?.failedValidation) {\n this.uiHelperService.showSnackBar(error?.error?.outcomes?.messages, SnackbarConfig.error);\n\n } else {\n this.uiHelperService.showSnackBar(error?.error?.outcomes?.ErrorDescription, SnackbarConfig.error);\n }\n });\n\n }\n\n onCellEditStopped(event) {\n\n let statusCheck = true;\n const loanExist = this.selectedLoans.map((loan) => loan.LoanNumber).includes(event.data.LoanNumber);\n if (event && event.column && event.column.colId && event.column.colId == 'AdvanceDate') {\n\n if (moment(event.data.AdvanceDate).startOf('day').utc(true).toISOString() < moment(new Date()).startOf('day').utc(true).toISOString()) {\n this.uiHelperService.showSnackBar(\"AdvanceDate should to greater than and equal to current date\", SnackbarConfig.error);\n statusCheck = false;\n event.data[event.colDef.field] = moment(event.oldValue).startOf('day').utc(true).toISOString();\n if (loanExist) {\n\n this.selectedIndices.splice(Number(event.node.id), 1)\n }\n }\n }\n\n if (!loanExist && statusCheck) {\n this.selectedIndices.push(event.node.id);\n }\n\n this.loanAssignmentGrid.setSelected();\n this.loanAssignmentGrid.redrawRows();\n }\n\n onTestLoanChanged(event) {\n this.testMode = event.target.checked;\n this.getLoans(() => {\n this.onLoanDataRetrived();\n });\n\n //this.getWarehouseline();\n //this.calculateCutoffTiming(); \n }\n\n onLosSelected(event) {\n this.sharedService.modalSubmitValid = true;\n if (this.selectedLoans && this.selectedLoans.length > 0) {\n const title = \"Change LOS Confirmation\";\n const data = {\n \"data\": \"Loan(s) are currently selected. Please press Cancel if you would like to complete the action on the selected loans. Please press Change LOS if you would like to continue.\"\n };\n this.uiHelperService.askConfirmation(AlertModalComponent, 'modal-lg', title, data, 'Cancel', 'Change LOS', () => {\n this.losSelected = event;\n this.getWarehouseline();\n this.calculateCutoffTiming();\n });\n }\n else {\n this.losSelected = event;\n this.getWarehouseline();\n this.calculateCutoffTiming();\n }\n }\n\n ngOnDestroy() {\n this.subscription$.unsubscribe();\n }\n}\n","\n\n
\n \n
\n
\n
\n \n

\n HELLO,{{\n userDetails?.UserProfile?.DisplayName\n }}\n

\n
\n
\n
\n\n \n
\n
\n \n
\n\n \n \n
\n \n
\n \n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n\n
\n
\n
\n \n
\n \n
\n \n \n
\n \n
\n {{ this.loansReviewed }} Reviewed\n |\n Cutoff: {{ hoursToDday }}hr {{ minutesToDday }}min\n
\n
\n
\n\n \n
\n\n \n \n \n \n \n \n
\n\n \n \n \n \n
\n
\n
\n\n\n\n\n\n
\n
\n \n
\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ValidationConfig, SnackbarConfig, SharedService } from '@wlms-web/utils';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { LoanAssignmentService } from '../../services/loan-assignment.service';\nimport { UiHelperService } from '@wlms-web/ui-kit';\nimport { Router } from '@angular/router';\nimport { LOSList } from '@wlms-web/utils';\n\n@Component({\n selector: 'wlms-loanlookup-exception',\n templateUrl: './loanlookup-exception.component.html',\n styleUrls: ['./loanlookup-exception.component.scss']\n})\nexport class LoanlookupExceptionComponent implements OnInit {\n\n public addExceptionForm: FormGroup;\n loanNumber: string ='';\n fieldLength: string;\n validationPattern : string;\n errorMessage: string;\n searchResults: any;\n addExceptionFormValue: any;\n showErrorMessage = false;\n losList = [...LOSList];\n losSelected: any;\n @Input() data: any;\n\n \n constructor(private modalService: BsModalService,\n private addExceptionService: LoanAssignmentService,\n private sharedService: SharedService,\n private uiHelperService: UiHelperService,\n public router: Router)\n {\n this.losSelected = this.losList[0];\n }\n\n ngOnInit(): void {\n this.fieldLength = ValidationConfig.LoanNumberFieldLength;\n this.validationPattern = ValidationConfig.AllowOnlyNumeric;\n this.addExceptionForm = new FormGroup({\n loanNumber: new FormControl()\n }); \n this.sharedService.modalSubmitValid =false;\n this.losSelected = this.data.losSelected;\n }\n\n onLosSelected(event) {\n this.losSelected = event;\n this.searchResults = '';\n this.errorMessage = '';\n this.showErrorMessage = false;\n }\n\n loanlookUp(addExceptionFormValue) {\n if (addExceptionFormValue.loanNumber)\n {\n\n if (this.addExceptionForm.valid)\n {\n this.loanNumber = addExceptionFormValue.loanNumber;\n this.executegetSearchResults(this.loanNumber);\n }\n else\n {\n this.showErrorMessage = true;\n }\n }\n else\n {\n this.showErrorMessage = true;\n }\n }\n\n executegetSearchResults(searchFormValue) {\n this.sharedService.modalSubmitValid =false;\n this.data.loanNumber = searchFormValue;\n this.data.losSelected = this.losSelected;\n this.addExceptionService.searchLoan(searchFormValue, this.losSelected.name, this.data.testMode).subscribe(\n (response: any) => {\n if (response?.details?.response.length > 0)\n {\n this.searchResults = response?.details?.response.join('
').replace(/\\n/g, '
');\n let loandata = this.sharedService.loanData;\n let hasLoan = loandata.find(x=>x.loanNumber ==this.loanNumber);\n\n if (!hasLoan) {\n this.updateExceptionProperties(response?.details?.addException, response?.details?.deleteException);\n }\n else {\n this.updateExceptionProperties(false, response?.details?.deleteException);\n this.searchResults += '
The loan number is already displayed in the Grid.';\n }\n }\n else\n {\n this.errorMessage = 'No response details from searching ' + searchFormValue;\n }\n },\n (error) => {\n if (error?.error?.outcomes?.messages.length > 0)\n {\n this.errorMessage = error?.error?.outcomes?.messages;\n }\n else\n {\n this.errorMessage = error?.message;\n }\n }\n );\n }\n\n clearMessage(addExceptionFormValue) {\n this.updateExceptionProperties(false, false);\n if (!addExceptionFormValue.searchText) {\n this.searchResults = '';\n this.errorMessage = '';\n this.showErrorMessage = false;\n }\n else {\n this.searchResults = '';\n }\n }\n\n closeModal() {\n this.modalService.hide();\n }\n\n updateExceptionProperties(isAddException, isDeleteException) {\n this.data.addException = isAddException;\n if (isAddException) {\n this.uiHelperService.updateSuccessButtonText('Add Exception');\n this.sharedService.modalSubmitValid = true;\n }\n else if (isDeleteException) {\n this.uiHelperService.updateSuccessButtonText('Delete Exception')\n this.sharedService.modalSubmitValid = true;\n }\n else {\n this.sharedService.modalSubmitValid = false;\n this.uiHelperService.updateSuccessButtonText('Add Exception');\n }\n }\n}\n","
\n \n
\n \n \n
\n \n \n Loan Number\n \n
\n
\n \n \n \n
\n
\n\n
\n Enter the Valid Loan Number \n
\n
\n
\n
\n
\n
\n {{ errorMessage }}\n
\n
\n
\n
\n \n \n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { PushBackResult } from '../../config/table-structure-pushback-result';\n\n\n@Component({\n selector: 'wlms-pushfunding-result-modal',\n templateUrl: './pushfunding-result-modal.component.html',\n styleUrls: ['./pushfunding-result-modal.component.scss']\n})\nexport class PushfundingResultModalComponent implements OnInit {\n\n @Input() data: any;\n columnDefs = [...PushBackResult];\n rowData = [];\n paginationPageSize = 10;\n constructor() { }\n\n ngOnInit(): void {\n let res = this.data.responseDetails;\n this.rowData = res;\n }\n\n}\n","
\n
\n

\n
\n \n
\n \n \n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ReviewResult } from '../../config/table-structure-reviewloan-result';\n\n@Component({\n selector: 'wlms-reviewloan-result-modal',\n templateUrl: './reviewloan-result-modal.component.html',\n styleUrls: ['./reviewloan-result-modal.component.scss']\n})\nexport class ReviewloanResultModalComponent implements OnInit {\n\n @Input() data: any;\n columnDefs = [...ReviewResult];\n rowData = [];\n paginationPageSize = 10;\n \n constructor() { }\n\n ngOnInit(): void {\n this.getreviewStatus(); \n }\n\n getreviewStatus() {\n let res = this.data.responseDetails;\n res.forEach((element, index) => {\n if (element.IsReviewed) {\n res[index].IsReviewed = \"Success\";\n \n }\n else {\n res[index].IsReviewed = \"Failed\";\n }\n });\n\n this.rowData = res;\n\n \n }\n}\n","
\n
\n

\n
\n \n
\n \n \n
\n
\n","import { Component, OnInit,Input } from '@angular/core';\nimport { UpdateAdvanceDate } from '../../config/table-structure-AdvanceDate-Update';\n\n@Component({\n selector: 'wlms-update-advance-date-modal',\n templateUrl: './update-advance-date-modal.component.html',\n styleUrls: ['./update-advance-date-modal.component.scss']\n})\nexport class UpdateAdvanceDateModalComponent implements OnInit {\n @Input() data: any;\n columnDefs = [...UpdateAdvanceDate];\n rowData = [];\n paginationPageSize = 10;\n constructor() { }\n \n ngOnInit(): void {\n this.rowData = this.data;\n }\n\n}\n","\n \n
\n \n \n
\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ConfigService, ApiConfig } from '@wlms-web/utils';\nimport { BaseApiService } from '@ldsm/utils';\nimport { ApiResponse } from '../loan-assignment/models/ApiResponse';\nimport { WarehouseLine } from '../loan-assignment/models/WarehouseLine';\n@Injectable({\n providedIn: 'root'\n})\nexport class LoanAssignmentService extends BaseApiService {\n\n constructor(protected app: ConfigService, protected http: HttpClient) {\n super(\n http,\n app.getAppConfiguration().apiBaseUrl,\n app.getAppConfiguration().apiNamespace,\n ''\n );\n }\n\n getLoans(los, testMode) {\n return this.get('@fundingService/LoansReadyForFunding?LoanOriginationSystems=' + los + \"&TestMode=\" + testMode, ApiConfig.DISABLELOANCACHE);\n }\n \n assignLoan(request) {\n return this.put('@fundingService/LoanWarehouseAssignment', request);\n }\n\n pushBackToFundingQueue(loans: any, los) {\n return this.post('Loan/' + los + '/PushBackToFundingQueue', loans);\n }\n\n markReviewLoan(request: any) {\n return this.put('@fundingService/LoanReviewed', request);\n }\n \n updateLoanException(request: any) {\n return this.put('@fundingService/LoanException', request);\n }\n \n searchLoan(loanNumber: string, los, testMode) {\n // return this.get('Loan/' + los + '/SearchLoan/' + loanNumber, ApiConfig.DISABLESEARCHLOANCACHE); \n return this.get('@fundingService/LoanLookup?LoanOriginationSystem=' + los + '&LoanNumber=' + loanNumber + '&TestMode=' + testMode, ApiConfig.DISABLESEARCHLOANCACHE);\n }\n \n updateAdvanceDate(request, los) {\n return this.post('Loan/' + los + '/UpdateAdvanceDate', request);\n }\n\n getWarehouseline(los) {\n return this.get>('@warehouselineServiceUrl/WarehouseLineDetailForPipeline?LoanOriginationSystems=' + los, ApiConfig.DISABLEGETTIMECACHE);\n }\n\n getPstCurrentDate() {\n return this.get('AppCommon/CurrentPstDateTime', ApiConfig.DISABLEGETTIMECACHE);\n }\n\n getAggregates() {\n return this.get('StaticFiles/Json/getAggregates.json');\n }\n\n assignAndExportLoan(request) {\n //return this.post('Export/' + los +'/AssignandExport', request);\n return this.post('@fundingService/ExportLoansForFunding', request);\n }\n \n reprocessLoanUpdates(request) {\n // return this.post('Export/' + los +'/ReprocessLoanUpdates/');\n return this.put('@fundingService/ReprocessFailedLoans', request);\n }\n\n saveUserPreferences(request){\n return this.post('user/SaveUserPreference', request);\n }\n\n getUserPreferences(){\n return this.get('user/GetPreference/', ApiConfig.DISABLELOANCACHE);\n }\n\n getColumnMaster(id){\n return this.get('user/GetUserPrefernceColumnMaster/'+id);\n }\n\n ResetUserPreference(request){\n return this.post('user/ResetUserPreference', request);\n }\n}\n","export * from './lib/login.module';\nexport { LoginComponent } from './lib/login/login.component';\nexport { ExitPageComponent } from './lib/exit-page/exit-page.component'\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AuthHelperService } from '@wlms-web/data-access';\n\n@Component({\n selector: 'wlms-exit-page',\n templateUrl: './exit-page.component.html',\n styleUrls: ['./exit-page.component.scss']\n})\nexport class ExitPageComponent implements OnInit {\n\n exceptionType: string;\n showAccessDenied: boolean;\n ServershowAccessDenied: boolean;\n constructor(\n public route: ActivatedRoute,\n public router: Router,\n public authHelperService: AuthHelperService\n ) {}\n ngOnInit(): void {\n this.authHelperService.stopTimer();\n this.route.params.subscribe((params) => {\n this.exceptionType = params['type'];\n });\n }\n\n relogin() {\n this.router.navigate(['/']);\n }\n}\n","
\n
\n
\n
\n
\n

Oops!

\n
\n You are not authorized to view this page!\n
\n
\n Sorry, an error has occured, Requested page not found!\n
\n
\n
\n \n \n Back To Home\n Try Login Again\n \n \n
\n
\n
\n\n
\n \"no\n
\n
\n
\n
\n
","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LoginComponent } from './login/login.component';\nimport { ExitPageComponent } from './exit-page/exit-page.component';\nimport { MaterialModule } from '@wlms-web/material'\n\n@NgModule({\n imports: [CommonModule,\n MaterialModule],\n declarations: [LoginComponent, ExitPageComponent],\n})\nexport class FeaturesLoginModule { }\n","import { Component, OnInit, HostListener } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LoginService } from '../services/login.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { isEmpty } from 'lodash';\nimport { BrowserStorageService, StorageKey, SharedService, ScreenActionPrivileges } from '@wlms-web/utils';\nimport { AuthHelperService, AuthFacade } from '@wlms-web/data-access';\n\n@Component({\n selector: 'wlms-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit {\n\n userDetails: any;\n error$: any;\n verifiedUser$: Subscription;\n isAuthenticated: boolean;\n\n constructor(\n private loginService: LoginService,\n private sharedService: SharedService,\n public route: ActivatedRoute,\n public router: Router,\n private authFacade: AuthFacade,\n private browserStorageService: BrowserStorageService,\n private authHelperService: AuthHelperService\n ) { }\n\n @HostListener('window:beforeunload', ['$event']) unloadHandler(event: Event) {\n event.returnValue = false;\n }\n\n canDeactivateLogin() {\n this.verifiedUser$.unsubscribe();\n this.error$.unsubscribe();\n this.authFacade.resetError();\n return true;\n }\n\n //Step 1 : Get Login details for microsoft login\n //Step 2 : After getting the login url, it will be redirected to microsoft login page\n //Step 3 : After successful login , microsoft will redirect to this application with fragment.\n //Step 4 : On receiving the fragment , the token within the fragment will be validated from API\n //Step 5 : On successful validation , it will be redirected to dashboard\n\n ngOnInit(): void {\n this.isAuthenticated = false;\n /** To deal with the call back of the custom direcct method */\n this.route.fragment.subscribe((fragment) => {\n if (fragment && fragment !== '') {\n this.isAuthenticated = true;\n const authRequest = this.getVerifyRequestObject(fragment);\n\n this.authFacade.verifyToken(authRequest);\n }\n });\n\n this.error$ = this.authFacade.error$.subscribe((value: any) => {\n if (!isEmpty(value)) {\n if (value.error.status === 403) {\n this.authHelperService.clearOutSession();\n this.router.navigate(['/']);\n } if (value.error.status === 401) {\n this.authHelperService.clearOutSession();\n const type = 'UnAuthorized';\n this.router.navigate(['/exitPage', type]);\n } else {\n const type = 'Exception';\n this.router.navigate(['/exitPage', type]);\n }\n }\n });\n\n // Below we are subscribing to allAuth$ Observable,which is actually accessed through authFacade.\n // When we get the fragment on successful microsoft login,\n // we parse it to a specific JSON Structure(getVerifyRequestObject(fragment: string): AuthorizationRequest),\n // which is then validated from API and it returns token and token expiry,\n // which is used for further communication (Bearer Token) with the API.\n // The response from validateAPI,which comprises of token and token expiry is stored in localStorage(StorageKey.AZURELOGGEDINUSER)\n // and this storage key value is used for the refresh token functionality.\n\n this.verifiedUser$ = this.authFacade.allAuth$.subscribe((value) => {\n if (value.IsValid && this.isAuthenticated) {\n this.saveToLocalStorage(value);\n this.goToHomePage();\n }\n });\n\n if (!this.isAuthenticated) {\n const authUser = this.authHelperService.getAuthUserDetails();\n if (authUser) {\n const expiryIn = this.authHelperService.tokenExpiresIn();\n if (expiryIn > 0) {\n this.goToHomePage();\n } else {\n this.authHelperService.clearOutSession();\n this.getLogin();\n }\n } else {\n this.getLogin();\n }\n }\n }\n\n goToHomePage() {\n if (this.sharedService.isAuthUser(ScreenActionPrivileges.LoanAssignment)) {\n this.router.navigate(['/loan-assignment']);\n } else if (this.sharedService.isAuthUser(ScreenActionPrivileges.Warehouseline)) {\n this.router.navigate(['/warehouselines']);\n }\n }\n\n getVerifyRequestObject(fragment: string) {\n let verifyRequest: any;\n this.userDetails = Object.assign(\n this.browserStorageService.getLocalStorageValue(StorageKey.LOGININFO)\n );\n const fragmentArray = fragment.split('&');\n fragmentArray.forEach((fragmentObj) => {\n if (fragmentObj && fragmentObj !== '') {\n const fragmentKey = fragmentObj.split('=');\n if (\n fragmentKey &&\n fragmentKey.length > 1 &&\n fragmentKey[0] === 'id_token'\n ) {\n const token = fragmentKey[1].split('.');\n let parseToken;\n if (token && token.length > 1) {\n parseToken = JSON.parse(atob(token[1]));\n }\n const payload = {\n idToken: {\n rawIdToken: fragmentKey[1],\n },\n account: {\n accountIdentifier: parseToken['oid'],\n userName: parseToken['preferred_username'],\n },\n };\n this.userDetails.ObjectId = payload.account.accountIdentifier;\n this.userDetails.EmailAddress = payload.account.userName;\n const requestData: any = {\n Token: payload.idToken.rawIdToken,\n UserLoginDetail: this.userDetails,\n NonValidatingRequestParameters: [],\n };\n verifyRequest = requestData;\n }\n }\n });\n return verifyRequest;\n }\n\n getLogin(): void {\n this.loginService.getLogin().subscribe(\n (responseObject: any) => {\n const response = responseObject.details;\n this.userDetails = {\n ClientApplication: response.ClientApplication,\n ObjectId: response.UserObjectId,\n EmailAddress: response.EmailAddress,\n RequestParameters: response.RequestParameters,\n Url: response.Url,\n ErrorMessage: response.ErrorMessage,\n IsSuccess: response.IsSuccess\n };\n this.browserStorageService.setLocalStorageValue(\n StorageKey.LOGININFO,\n this.userDetails\n );\n if (responseObject.details.Url) {\n window.location.href =\n responseObject.details.Url +\n '&redirect_uri=' +\n encodeURIComponent(window.location.origin);\n }\n },\n (error) => {\n if (error.status === 403) {\n this.authHelperService.clearOutSession();\n this.router.navigate(['/']);\n } else {\n const type = 'Exception';\n this.router.navigate(['/exitPage', type]);\n }\n }\n );\n }\n\n saveToLocalStorage(value: any) {\n this.browserStorageService.setLocalStorageValue(StorageKey.AZURELOGGEDINUSER, value);\n }\n}\n","
\n \n
\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ConfigService } from '@wlms-web/utils';\nimport { BaseApiService } from '@ldsm/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoginService extends BaseApiService {\n\n constructor(protected app: ConfigService, protected http: HttpClient) {\n super(\n http,\n app.getAppConfiguration().apiBaseUrl,\n app.getAppConfiguration().apiNamespace,\n ''\n );\n }\n\n getLogin() {\n return this.get('Login/logininfo');\n }\n\n getUserProfile() {\n return this.get('UserProfile');\n }\n}\n","export * from './lib/page-layout.module';\nexport { SlidingMenuComponent } from './lib/sliding-menu/sliding-menu.component';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SlidingMenuComponent } from './sliding-menu/sliding-menu.component';\nimport { AgGridModule } from 'ag-grid-angular';\nimport {UiKitModule} from '@wlms-web/ui-kit';\nimport {MaterialModule} from '@wlms-web/material'\n\n@NgModule({\n imports: [CommonModule,\n AgGridModule,\n UiKitModule,\n MaterialModule],\n declarations: [SlidingMenuComponent],\n exports: [SlidingMenuComponent]\n})\nexport class FeaturesPageLayoutModule { }\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { BrowserStorageService, StorageKey, ConfigKey, ConfigService, SharedService, ScreenActionPrivileges } from '@wlms-web/utils'\nimport { UiHelperService } from '@wlms-web/ui-kit';\n@Component({\n selector: 'wlms-web-sliding-menu',\n templateUrl: './sliding-menu.component.html',\n styleUrls: ['./sliding-menu.component.scss'],\n})\nexport class SlidingMenuComponent implements OnInit {\n searchPanel = false;\n @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\n loginDetails: any;\n userDetails: any;\n isAuthorised = false;\n screenActionPrivileges = ScreenActionPrivileges;\n\n constructor(private router: Router,\n private browserStorageService: BrowserStorageService,\n private sharedService: SharedService,\n private appConfigService: ConfigService,\n private uiHelperService: UiHelperService) { }\n\n ngOnInit(): void {\n this.loginDetails = this.browserStorageService.getLocalStorageValue(StorageKey.LOGININFO);\n this.userDetails = this.browserStorageService.getLocalStorageValue(StorageKey.AZURELOGGEDINUSER);\n }\n\n isAuthUser(param) {\n return this.sharedService.isAuthUser(param);\n }\n\n loadPage(page) {\n switch (page) {\n case 'warehouseLineList':\n this.router.navigateByUrl('/warehouselines');\n break;\n case 'loanAssignment':\n this.router.navigateByUrl('/loan-assignment');\n break;\n case 'exporthistory':\n this.router.navigateByUrl('/export-history');\n break;\n \n \n }\n }\n\n signOut() {\n const tenantId = this.loginDetails?.RequestParameters?.tenantId;\n this.browserStorageService.clearLocalStorage();\n let logOutUrl = this.appConfigService.getAppConfiguration().logOutUrl;\n if (tenantId) {\n logOutUrl = logOutUrl.replace(ConfigKey.LOGOUTTENANTIDKEY, tenantId);\n logOutUrl = logOutUrl.replace(\n ConfigKey.LOGOUTREDIRECTURIKEY,\n window.location.origin\n );\n window.location.href = logOutUrl;\n } else {\n this.router.navigate(['/']);\n }\n this.browserStorageService.clearSessionStorage();\n }\n\n \n\n \n}\n","
\n
\n
\n
\n \n
\n \n \n \n \n
\n \n \n \n
\n\n \n \n \n \n
\n \n \n\n
\n
\n \n {{ userDetails?.UserProfile?.DisplayName }}\n\n \n
\n
\n
\n
\n \n\n\n\n","export * from './lib/warehouse-lines.module';\nexport { WarehouselinedetailsComponent } from './lib/whl-details/whl-details.component';\nexport { WarehouselineDetailGridviewComponent } from './lib/whl-summary/whl-summary.component'\n","import { ConditionalEditor, CurrencyFormatter, PercentageFormatter } from '@wlms-web/utils';\nexport const ContractDetails = [\n {\n field: 'startDate',\n headerName: 'Start Date',\n cellRenderer: 'formatDateRenderer',\n suppressClickEdit: true,\n width: 120,\n cellEditor: 'dateEditorComponent',\n editable: true,\n suppressKeyboardEvent: (params) => {\n return params.event.which == 13;\n },\n },\n {\n field: 'endDate',\n headerName: 'End Date',\n cellRenderer: 'formatDateRenderer',\n suppressClickEdit: true,\n width: 120,\n cellEditor: 'dateEditorComponent',\n editable: true,\n suppressKeyboardEvent: (params) => {\n return params.event.which == 13;\n },\n },\n {\n field: 'lineLimitAmount',\n headerName: 'Line Limit Amount',\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n suppressClickEdit: true,\n width: 150,\n cellStyle: { 'text-align': 'right' },\n editable: true,\n cellEditor: 'numericEditor',\n suppressKeyboardEvent: (params) => {\n return params.event.which == 13;\n },\n },\n {\n field: 'committedTotal',\n headerName: 'Committed Amount',\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n suppressClickEdit: true,\n width: 150,\n cellStyle: { 'text-align': 'right' },\n editable: ConditionalEditor.setConditionalEditor,\n cellEditor: 'numericEditor',\n suppressKeyboardEvent: (params) => {\n return params.event.which == 13;\n },\n },\n {\n field: 'IndexName',\n headerName: 'Index Name',\n width: 150,\n suppressClickEdit: true,\n editable: ConditionalEditor.setConditionalEditor,\n cellEditor: 'agSelectCellEditor',\n cellEditorParams: {\n values: [],\n },\n suppressKeyboardEvent: (params) => {\n return params.event.which == 13;\n },\n },\n {\n field: 'warehouseLineIndexId',\n headerName: '',\n width: 130,\n hide: true,\n suppressFiltersToolPanel: true,\n suppressColumnsToolPanel: true\n },\n {\n field: 'floorRate',\n headerName: 'Floor Rate',\n width: 130,\n suppressClickEdit: true,\n editable: ConditionalEditor.setConditionalEditor,\n valueFormatter: PercentageFormatter.setPercentageFormat,\n cellEditor: 'numericEditor',\n suppressKeyboardEvent: (params) => {\n return params.event.which == 13;\n },\n },\n {\n field: 'penaltyRate',\n headerName: 'Penalty Rate',\n width: 130,\n suppressClickEdit: true,\n editable: ConditionalEditor.setConditionalEditor,\n valueFormatter: PercentageFormatter.setPercentageFormat,\n cellEditor: 'numericEditor',\n suppressKeyboardEvent: (params) => {\n return params.event.which == 13;\n },\n },\n {\n field: 'wetLimitAmount',\n headerName: 'Wet Limit Amt',\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n suppressClickEdit: true,\n width: 150,\n cellStyle: { 'text-align': 'right' },\n editable: ConditionalEditor.setConditionalEditor,\n cellEditor: 'numericEditor',\n suppressKeyboardEvent: (params) => {\n return params.event.which == 13;\n },\n },\n {\n field: 'action',\n headerName: '',\n width: 115,\n active: true,\n pinned: 'right',\n sortable: false,\n resizable: false,\n lockPinned: true,\n showRowGroup: true,\n suppressMenu: true,\n suppressMovable: true,\n suppressSorting: true,\n suppressColumnsToolPanel: true,\n suppressRowClickSelection: true,\n cellRenderer: 'actionColumnRendererComponent',\n }\n];\n","import { CurrencyFormatter, ConditionalEditor } from '@wlms-web/utils';\n\nexport const WarehouseLinesDailyCapdetails = [\n {\n \"field\": \"WarehouseLineName\",\n \"headerName\": \"Warehouse Line\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n },\n {\n \"field\": \"StartDate\",\n \"headerName\": \"Start Date\",\n \"cellRenderer\": \"formatDateRenderer\",\n \"filter\": \"agDateColumnFilter\",\n \"width\": 150,\n },\n {\n \"field\": \"WarehouseLineDailyCapId\",\n \"filter\": \"agDateColumnFilter\",\n hide: true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"ExpiryDate\",\n \"headerName\": \"End Date\",\n \"cellRenderer\": \"formatDateRenderer\",\n \"filter\": \"agDateColumnFilter\",\n \"width\": 150,\n },\n\n {\n \"field\": \"AvailableAmount\",\n \"headerName\": \"Available Amount\",\n \"width\": 200,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"AvailableAmountCap\",\n \"headerName\": \"Available Amount Cap\",\n \"width\": 200,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"LineLimitAmountCap\",\n \"headerName\": \"Line Limit Cap\",\n \"width\": 200,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"Comments\",\n \"headerName\": \"Comments\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 350,\n tooltipField: 'Comments'\n },\n {\n \"field\": \"action\",\n \"headerName\": \"\",\n \"width\": 90,\n \"active\": true,\n \"cellRenderer\": \"actionColumnRendererComponent\",\n \"resizable\": false,\n \"pinned\": \"right\",\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressRowClickSelection\": true,\n \"lockPinned\": true,\n showRowGroup: true,\n \"suppressColumnsToolPanel\": true,\n \"sortable\": false,\n \"suppressMenu\": true\n }\n]\n","export const TimeAvailability = [\n {\n 'headerName': '',\n \"field\": \"rowCheck\",\n \"checkboxSelection\": true,\n \"headerCheckboxSelection\": true,\n \"headerCheckboxSelectionFilteredOnly\" : true,\n \"active\": true,\n \"width\": 40,\n cellStyle: { left: '0px' },\n \"pinned\": \"left\",\n suppressSizeToFit:true,\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"WarehouseLineName\",\n \"headerName\": \"Warehouse Line\",\n \"filter\": \"agTextColumnFilter\",\n },\n {\n \"field\": \"\",\n \"headerName\": \"\",\n colId: 'timeSlots',\n \"filter\": \"agNumberColumnFilter\",\n editable: false,\n cellEditor: 'numericEditor',\n hide:true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n]\n","import { CurrencyFormatter, PercentageFormatter } from '@wlms-web/utils';\n\nexport const TrancheDetail = [\n {\n \"field\": \"Name\",\n \"headerName\": \"Tranches\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n },\n {\n \"field\": \"Limit\",\n \"headerName\": \"Sub-limit Amount\",\n width: 150,\n filter: 'agNumberColumnFilter',\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"DriverPercentage\",\n \"headerName\": \"Limit Percentage\",\n \"width\": 143,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: PercentageFormatter.setPercentageFormat,\n },\n {\n \"field\": \"PricingRate\",\n \"headerName\": \"Pricing Rate\",\n \"width\": 110,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: PercentageFormatter.setPercentageFormat,\n },\n {\n \"field\": \"AdvanceRate\",\n \"headerName\": \"Advance Rate\",\n \"width\": 120,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: PercentageFormatter.setPercentageFormat,\n },\n {\n \"field\": \"IsAvailableForFunding\",\n \"headerName\": \"Table Funding\",\n \"width\": 125,\n valueFormatter: (params) => {\n if (params.value)\n return 'Y';\n else\n return 'N';\n }\n },\n {\n \"field\": \"StartingOutstandingAmount\",\n \"headerName\": \"Start Out Amt (WET + DRY)\",\n \"width\": 210,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"WetStartingOutstandingAmount\",\n \"headerName\": \"Start Out Amt (WET)\",\n \"width\": 180,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"AmendedStartingOutstandingAmount\",\n \"headerName\": \"Amended Start Out Amt (WET + DRY)\",\n \"width\": 260,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"AmendedWetStartingOutstandingAmount\",\n \"headerName\": \"Amended Start Out Amt (WET)\",\n \"width\": 250,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"AvailableAmount\",\n \"headerName\": \"Available Amt (WET)\",\n \"width\": 180,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"Comments\",\n \"headerName\": \"Comments\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 300,\n tooltipField: 'Comments'\n },\n {\n \"field\": \"action\",\n \"headerName\": \"\",\n \"width\": 120,\n \"active\": true,\n \"cellRenderer\": \"actionColumnRendererComponent\",\n \"resizable\": false,\n \"pinned\": \"right\",\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressRowClickSelection\": true,\n \"lockPinned\": true,\n showRowGroup: true,\n \"suppressColumnsToolPanel\": true,\n \"sortable\": false,\n \"suppressMenu\": true\n }\n]\n","import { CurrencyFormatter, PercentageFormatter } from '@wlms-web/utils';\n\nexport const WarehouseLinesdetails = [\n {\n \"field\": \"WarehouseLineName\",\n \"headerName\": \"Warehouse Line\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n },\n {\n \"field\": \"ContractExpiryDate\",\n \"headerName\": \"Line Limit Exp. Date\",\n \"cellRenderer\": \"formatDateRenderer\",\n \"filter\": \"agDateColumnFilter\",\n \"width\": 200,\n },\n {\n \"field\": \"LineLimitAmount\",\n \"headerName\": \"Line Limit Amt\",\n \"width\": 180,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' }\n },\n {\n \"field\": \"CommittedAmount\",\n \"headerName\": \"Committed Amt\",\n \"width\": 180,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"UncommittedAmount\",\n \"headerName\": \"Uncommitted Amt\",\n \"width\": 200,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' }\n },\n {\n \"field\": \"StartingOutStandingAmount\",\n \"headerName\": \"Starting Outstanding Amt\",\n \"width\": 180,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' }\n },\n {\n \"field\": \"AmendendStartingOutStandingAmount\",\n \"headerName\": 'Amended Starting Outstanding Amt',\n \"width\": 180,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' }\n },\n {\n \"field\": \"OutStandingAmount\",\n \"headerName\": \"Outstanding Amt\",\n \"width\": 180,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' }\n },\n {\n \"field\": \"AvailableAmount\",\n \"headerName\": \"Available Amt\",\n \"width\": 180,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' }\n },\n {\n \"field\": \"AmendedLineLimitAmount\",\n \"headerName\": \"Amended Line Limit Amt\",\n \"width\": 220,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' }\n },\n {\n \"field\": \"ContractAmendmentExpiryDate\",\n \"headerName\": \"Amended Line Amt Exp. Date\",\n \"cellRenderer\": \"formatDateRenderer\",\n \"filter\": \"agDateColumnFilter\",\n \"width\": 220,\n },\n {\n \"field\": \"IndexName\",\n \"headerName\": \"Index Name\",\n \"filter\": \"agNumberColumnFilter\",\n \"width\": 150,\n },\n {\n \"field\": \"FloorRate\",\n \"headerName\": \"Floor Rate\",\n valueFormatter: PercentageFormatter.setPercentageFormat,\n \"filter\": \"agNumberColumnFilter\",\n \"width\": 150,\n },\n {\n \"field\": \"TableFunding\",\n \"headerName\": \"Table Funding\",\n \"filter\": \"agSetColumnFilter\",\n \"width\": 180,\n valueFormatter: (params: any) => { return params.value ? 'Y' : 'N' },\n },\n {\n \"field\": \"PenaltyRate\",\n \"headerName\": \"Penalty Rate\",\n valueFormatter: PercentageFormatter.setPercentageFormat,\n \"filter\": \"agNumberColumnFilter\",\n \"width\": 150,\n },\n {\n \"field\": \"WetLimitAmount\",\n \"headerName\": \"Wet Limit Amt\",\n \"width\": 220,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' }\n },\n\n {\n \"field\": \"Comments\",\n \"headerName\": \"Comments\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 300,\n tooltipField: 'Comments'\n },\n {\n \"field\": \"action\",\n \"headerName\": \"\",\n \"width\": 100,\n \"active\": true,\n \"cellRenderer\": \"actionColumnRendererComponent\",\n \"resizable\": false,\n \"pinned\": \"right\",\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressRowClickSelection\": true,\n \"lockPinned\": true,\n showRowGroup: true,\n \"suppressColumnsToolPanel\": true,\n \"sortable\": false,\n \"suppressMenu\": true\n }\n]\n","import { CurrencyFormatter, ConditionalEditor, PercentageFormatter } from '@wlms-web/utils';\n\nexport const WarehouseLineswetOverridesdetails = [\n {\n \"field\": \"WarehouseLineWetOverridesId\",\n \"filter\": \"agNumberColumnFilter\",\n hide: true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"WarehouseLineName\",\n \"headerName\": \"Warehouse Line\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n }, \n {\n \"field\": \"LineLimit\",\n \"headerName\": \"Line Limit\",\n \"width\": 200,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"OverrideTypeFirst\", \n \"filter\": \"agNumberColumnFilter\",\n hide: true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"OverRideTypeNameFirst\",\n \"headerName\": \"Override Method (First 5 BD)\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 200,\n },\n {\n \"field\": \"OverrideValueFirst\",\n \"filter\": \"agNumberColumnFilter\",\n hide: true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true \n },\n {\n \"field\": \"OverridePercentageFirst\",\n \"headerName\": \"Override % (First 5 BD)\",\n \"width\": 200,\n \"filter\": \"agNumberColumnFilter\", \n valueFormatter: PercentageFormatter.setPercentageFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"OverrideAmountFirst\",\n \"headerName\": \"Override $ (First 5 BD)\",\n \"width\": 200,\n \"filter\": \"agNumberColumnFilter\", \n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"OverrideTypeMid\",\n \"filter\": \"agNumberColumnFilter\",\n hide: true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n },\n {\n \"field\": \"OverRideTypeNameMid\",\n \"headerName\": \"Override Method (Mid Month +/- 5 BD)\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n },\n {\n \"field\": \"OverrideValueMid\",\n \"filter\": \"agNumberColumnFilter\",\n hide: true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true \n },\n {\n \"field\": \"OverridePercentageMid\",\n \"headerName\": \"Override % (Mid Month +/- 5 BD)\",\n \"width\": 200,\n \"filter\": \"agNumberColumnFilter\", \n valueFormatter: PercentageFormatter.setPercentageFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"OverrideAmountMid\",\n \"headerName\": \"Override $ (Mid Month +/- 5 BD)\",\n \"width\": 200,\n \"filter\": \"agNumberColumnFilter\", \n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n }, \n {\n \"field\": \"OverrideTypeLast\",\n \"filter\": \"agNumberColumnFilter\",\n hide: true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true\n }, \n {\n \"field\": \"OverRideTypeNameLast\",\n \"headerName\": \"Override Method (Last 5 BD)\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 150,\n },\n {\n \"field\": \"OverrideValueLast\",\n \"filter\": \"agNumberColumnFilter\",\n hide: true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true \n }, \n {\n \"field\": \"OverridePercentageLast\",\n \"headerName\": \"Override % (Last 5 BD)\",\n \"width\": 200,\n \"filter\": \"agNumberColumnFilter\", \n valueFormatter: PercentageFormatter.setPercentageFormat,\n cellStyle: { 'text-align': 'right' },\n },\n {\n \"field\": \"OverrideAmountLast\",\n \"headerName\": \"Override $ (Last 5 BD)\",\n \"width\": 200,\n \"filter\": \"agNumberColumnFilter\", \n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n cellStyle: { 'text-align': 'right' },\n }, \n {\n \"field\": \"Comments\",\n \"headerName\": \"Comments\",\n \"filter\": \"agTextColumnFilter\",\n \"width\": 350,\n tooltipField: 'Comments'\n },\n {\n \"field\": \"action\",\n \"headerName\": \"\",\n \"width\": 90,\n \"active\": true,\n \"cellRenderer\": \"actionColumnRendererComponent\",\n \"resizable\": false,\n \"pinned\": \"right\",\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressRowClickSelection\": true,\n \"lockPinned\": true,\n showRowGroup: true,\n \"suppressColumnsToolPanel\": true,\n \"sortable\": false,\n \"suppressMenu\": true\n }\n]\n","export class WarehouseLineCapacity {\n availablecapacity: number;\n allocated: number;\n remaining: number;\n percentage:number;\n wetbalancetotal: number;\n advancetotal: number;\n drysweepstotal: number;\n fundedadvancetotal: number;\n}","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ConfigService, ApiConfig } from '@wlms-web/utils';\nimport { BaseApiService } from '@ldsm/utils';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WarehouseLinesService extends BaseApiService {\n\n constructor(protected app: ConfigService, protected http: HttpClient) {\n super(\n http,\n app.getAppConfiguration().apiBaseUrl,\n app.getAppConfiguration().apiNamespace,\n ''\n );\n }\n\n GetWarehouseLineDetailsForLoanQueue() {\n return this.get('WarehouseLine/GetWarehouseLineDetailsForLoanQueue', ApiConfig.DISABLEGETTIMECACHE);\n }\n\n getWarehouseLines() {\n return this.get('WarehouseLine/GetWarehouseLineDetailsForGrid', ApiConfig.DISABLESEARCHLOANCACHE);\n }\n\n getIndex() {\n return this.get('WarehouseLine/GetWarehouseLineIndexes', ApiConfig.DISABLESEARCHLOANCACHE);\n }\n\n getTimeAvailability() {\n return this.get('WarehouseLineTimeAvailability/GetAllWarehouseLineTimeAvailability', ApiConfig.DISABLESEARCHLOANCACHE);\n }\n\n getDailyCapAvailability() {\n return this.get('WarehouseLineDailyCaps/GetAllWarehouseLineDailyCaps', ApiConfig.DISABLESEARCHLOANCACHE);\n }\n\n SaveEditDailyCapAvailability(data) {\n return this.put('WarehouseLineDailyCaps/UpdateWarehouseLineDailyCap', data);\n }\n\n getWarehouseLineDetailsByWarehouseName(title: string) {\n return this.get('StaticFiles/Json/warehouselineData.json');\n }\n\n getWarehouseLinesCapacityDetails() {\n return this.get('StaticFiles/Json/WarehouselineCapacityDetails.json');\n }\n\n editWarehouseLine(data) {\n return this.put('WarehouseLine/UpdateWarehouseLineDetails', data);\n }\n\n editTimeAvailablity(data) {\n return this.put('WarehouseLineTimeAvailability/UpsertWarehouseLineTimeAvailability', data);\n }\n\n getWarehouselineById(id) {\n return this.get('WarehouseLine/GetWarehouseLineDetailsForEdit?warehouselineId=' + id, ApiConfig.DISABLESEARCHLOANCACHE);\n }\n\n addOrEditWarehouselineById(data) {\n return this.put('WarehouseLine/UpsertWarehouseLineDetails', data);\n }\n\n getTranches(id) {\n return this.get('WarehouseLineTranche/GetWarehouseLineTranchesByContract?warehouselineContractId=' + id,\n ApiConfig.DISABLESEARCHLOANCACHE);\n }\n\n getContractsPerWarehouse(id) {\n return this.get('WarehouseLine/GetWarehouseLineContracts?warehouselineId=' + id, ApiConfig.DISABLESEARCHLOANCACHE);\n }\n\n saveTranche(data) {\n return this.put('WarehouseLineTranche/UpsertWarehouseLineTranche', data);\n }\n\n getAllWetOverrideDetails() {\n return this.get('WarehouseLineWetOverrides/GetWarehouseLineWetOverrideList', ApiConfig.DISABLESEARCHLOANCACHE);\n }\n UpdateWhWetOverride(data) {\n return this.put('WarehouseLineWetOverrides/UpdateWarehouseLineWetOverrideList', data);\n }\n\n copyContract(data) {\n return this.post('WarehouseLine/CopyContract', data);\n }\n\n saveUserPreferences(request) {\n return this.post('user/SaveUserPreference', request);\n }\n\n getUserPreferences() {\n return this.get('user/GetPreference/', ApiConfig.DISABLELOANCACHE);\n }\n\n getColumnMaster(id) {\n return this.get('user/GetUserPrefernceColumnMaster/' + id);\n }\n\n ResetUserPreference(request) {\n return this.post('user/ResetUserPreference', request);\n }\n\n copyTanche(data) {\n return this.put('WarehouseLineTranche/CopyTranche', data);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CarouselModule } from 'ngx-bootstrap/carousel';\nimport { WarehouselinedetailsComponent } from './whl-details/whl-details.component';\nimport { UiKitModule } from '@wlms-web/ui-kit';\nimport { UtilsModule } from '@wlms-web/utils';\nimport { MaterialModule } from '@wlms-web/material';\nimport { WarehouselineDetailGridviewComponent } from './whl-summary/whl-summary.component';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { FeaturesPageLayoutModule } from '@wlms-web/features/page-layout';\nimport { TimepickerModule } from 'ngx-bootstrap/timepicker';\nimport { FormsModule } from '@angular/forms';\nimport { ManageTimeSlotComponent } from './whl-summary/manage-time-slot/manage-time-slot.component';\nimport { WarehouselinesComponent } from './whl-summary/warehouselines/warehouselines.component';\nimport { ManageWarehouselineComponent } from './whl-summary/warehouselines/manage-warehouseline/manage-warehouseline.component';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { DailyCapsComponent } from './whl-summary/daily-caps/daily-caps.component';\nimport { EditDailyCapComponent } from './whl-summary/daily-caps/edit-daily-cap/edit-daily-cap.component';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { TrancheComponent } from './whl-details/tranche/tranche.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { ManageTrancheComponent } from './whl-details/tranche/manage-tranche/manage-tranche.component';\nimport { WetOverridesComponent } from './whl-summary/wet-overrides/wet-overrides.component';\nimport { EditWetOverridesComponent } from './whl-summary/wet-overrides/edit-wet-overrides/edit-wet-overrides.component';\nimport { CopyWhlContractComponent } from './whl-summary/warehouselines/copy-whl-contract/copy-whl-contract.component';\nimport { CopyTrancheComponent } from './whl-details/tranche/copy-tranche/copy-tranche.component';\n\n@NgModule({\n imports: [CommonModule,\n BrowserAnimationsModule,\n BsDropdownModule.forRoot(),\n CarouselModule.forRoot(),\n FormsModule,\n UiKitModule,\n UtilsModule,\n ModalModule.forRoot(),\n FeaturesPageLayoutModule,\n TimepickerModule.forRoot(),\n BsDatepickerModule.forRoot(),\n MaterialModule,\n PopoverModule],\n declarations: [\n WarehouselinedetailsComponent,\n WarehouselineDetailGridviewComponent,\n ManageTimeSlotComponent,\n WarehouselinesComponent,\n ManageWarehouselineComponent,\n DailyCapsComponent,\n EditDailyCapComponent,\n TrancheComponent,\n ManageTrancheComponent,\n WetOverridesComponent,\n EditWetOverridesComponent,\n CopyWhlContractComponent,\n CopyTrancheComponent\n ],\n exports: [\n WarehouselinedetailsComponent,\n WarehouselineDetailGridviewComponent\n ],\n})\nexport class WarehouseLinesModule { }\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UiHelperService } from '@wlms-web/ui-kit';\nimport { SharedService } from '@wlms-web/utils';\nimport { WarehouseLinesService } from '../../../services/whl.service';\nimport * as moment from 'moment';\n@Component({\n selector: 'wlms-copy-tranche',\n templateUrl: './copy-tranche.component.html',\n styleUrls: ['./copy-tranche.component.scss']\n})\nexport class CopyTrancheComponent implements OnInit {\n @Input() data;\n currentActiveContract: any;\n currentActiveTranche: any;\n contracts = [];\n tranches = [];\n constructor(private warehouseLinesService: WarehouseLinesService,\n public sharedService: SharedService,\n private uiHelperService: UiHelperService) { }\n\n ngOnInit(): void {\n this.sharedService.modalSubmitValid = false;\n this.contracts = this.data.contracts;\n this.data.modalData.contractId = this.data.activeContract.WarehouseLineContractDetailId;\n this.currentActiveContract = this.data.activeContract;\n this.data.currentAvtiveContractId = this.data.activeContract.WarehouseLineContractDetailId;\n this.getTranches(this.currentActiveContract.WarehouseLineContractDetailId);\n this.data.modalData.newTranche = '';\n }\n\n contractChanged(contract) {\n this.currentActiveContract = { ...contract };\n this.getTranches(contract.WarehouseLineContractDetailId);\n this.data.modalData.contractId = contract.WarehouseLineContractDetailId;\n }\n\n trancheChanged(tranche) {\n this.data.modalData.tranchId = tranche.WarehouseLineTrancheId;\n }\n\n getTranches(contractId) {\n this.warehouseLinesService.getTranches(contractId).subscribe(response => {\n if (response) {\n this.tranches = [{ WarehouseLineTrancheId: 0, Name: 'None' }].\n concat(response['details'].map(({ WarehouseLineTrancheId, Name }) => ({ WarehouseLineTrancheId, Name })));\n this.data.modalData.tranchId = this.data.ParentTrancheId;\n }\n })\n }\n\n tranchNameChanged(e) {\n if (e && e.trim() != '')\n this.sharedService.modalSubmitValid = true;\n else\n this.sharedService.modalSubmitValid = false;\n }\n\n}\n","
\n
\n
\n \n
\n \n Contracts\n \n \n {{ contract?.name }}\n \n \n \n
\n
\n
\n
\n\n
\n
\n
\n \n
\n \n Parent Tranche\n \n \n {{ tranche?.Name }}\n \n \n \n
\n
\n
\n\n
\n
\n
\n
\n \n \n
\n
\n\n
","import { Component, OnInit, Input } from '@angular/core';\nimport { DriveFrom, SnackbarConfig, SharedService } from '@wlms-web/utils';\nimport { UiHelperService } from '@wlms-web/ui-kit';\n\n@Component({\n selector: 'wlms-manage-tranche',\n templateUrl: './manage-tranche.component.html',\n styleUrls: ['./manage-tranche.component.scss']\n})\nexport class ManageTrancheComponent implements OnInit {\n\n driveFrom = [{ id: 0, name: 'None' }].concat([...Object.keys(DriveFrom).filter(value => isNaN(Number(value)) === false).\n map(key => { return { name: DriveFrom[key], id: parseInt(key) }; })]);\n driveFromConfig = DriveFrom;\n @Input() data: any;\n subLimitAmount: any;\n\n constructor(private uiHelperService: UiHelperService,\n private sharedService: SharedService) { }\n\n ngOnInit(): void {\n this.subLimitAmount = this.data.modalData.Limit;\n this.sharedService.modalSubmitValid = !this.isModalValid();\n }\n\n validate(ctrl) {\n if (ctrl == 'PricingMargin') {\n this.data.modalData.PricingMargin > 100 ?\n this.uiHelperService.showSnackBar('Pricing Margin should not be above 100%.', SnackbarConfig.error) :\n this.data.modalData.PricingRate = (Math.max(this.data.modalData.IndexRate ? this.data.modalData.IndexRate : 0,\n this.data.modalData.FloorRate ? this.data.modalData.FloorRate : 0) +\n (this.data.modalData.PricingMargin ? this.data.modalData.PricingMargin : 0)).toFixed(2);\n } else if (ctrl == 'AdvanceRate' && this.data.modalData.AdvanceRate > 100) {\n this.uiHelperService.showSnackBar('Advance Rate should not be above 100%.', SnackbarConfig.error);\n } else if (ctrl == 'DriverValue' && this.data.modalData.DriveFrom == DriveFrom.Limit && this.data.modalData.DriverValue > 100) {\n this.uiHelperService.showSnackBar('Sublimit Driver % should not be above 100%.', SnackbarConfig.error);\n } else if (ctrl == 'DriverValue' && this.data.modalData.DriveFrom == DriveFrom.Amount && this.data.modalData.DriverValue < 0) {\n this.uiHelperService.showSnackBar('Sublimit Driver Amount should not be below 0.', SnackbarConfig.error);\n } else if (ctrl == 'DriveFrom') {\n this.data.modalData.DriverValue = 0;\n this.resetSublimtValue();\n } else if (ctrl == 'Name' && this.data.modalData.Name == '') {\n this.uiHelperService.showSnackBar('Tranche Name is mandatory.', SnackbarConfig.error);\n } else if (ctrl == 'AmendedWetStartingOutstandingAmount') {\n this.setAmendments(ctrl);\n } else if (ctrl == 'AmendedStartOutAmt') {\n this.setAmendments(ctrl);\n } else if (ctrl == 'DriverValue') {\n this.resetSublimtValue();\n }\n\n this.sharedService.modalSubmitValid = !this.isModalValid();\n }\n\n setAmendments(ctrl) {\n if (ctrl == 'AmendedWetStartingOutstandingAmount') {\n this.data.modalData.AmendedStartOutAmt = this.data.modalData.AmendedStartOutAmt ? this.data.modalData.AmendedStartOutAmt :\n this.data.modalData.StartingOutStandingAmount;\n if (this.data.modalData.AmendedWetStartingOutstandingAmount < 0) {\n this.uiHelperService.showSnackBar('Wet Amended Starting Outstanding Amount should not be below 0.', SnackbarConfig.error);\n } else if (this.data.modalData.AmendedWetStartingOutstandingAmount > this.data.modalData.AmendedStartOutAmt) {\n this.uiHelperService.\n showSnackBar('Wet Amended Starting Outstanding Amount should be lesser than Amended Starting Outstanding Amount.',\n SnackbarConfig.error);\n }\n } else if (ctrl == 'AmendedStartOutAmt') {\n if (this.data.modalData.AmendedStartOutAmt < 0) {\n this.uiHelperService.showSnackBar('Amended Starting Outstanding Amount should not be below 0.', SnackbarConfig.error);\n } else if (this.data.modalData.AmendedWetStartingOutstandingAmount > this.data.modalData.AmendedStartOutAmt) {\n this.uiHelperService.\n showSnackBar('Wet Amended Starting Outstanding Amount should be lesser than Amended Starting Outstanding Amount.',\n SnackbarConfig.error);\n }\n }\n }\n\n isModalValid() {\n return (this.data.modalData.PricingMargin > 100 || this.data.modalData.AdvanceRate > 100 || this.data.modalData.Name == '' ||\n (this.data.modalData.DriveFrom == DriveFrom.Limit && this.data.modalData.DriverValue > 100) ||\n (this.data.modalData.DriveFrom == DriveFrom.Amount && this.data.modalData.DriverValue < 0) ||\n this.data.modalData.AmendedWetStartingOutstandingAmount < 0 || this.data.modalData.AmendedStartOutAmt < 0 ||\n this.data.modalData.AmendedWetStartingOutstandingAmount > this.data.modalData.AmendedStartOutAmt);\n }\n\n resetSublimtValue() {\n this.data.modalData.DriveFrom == DriveFrom.Amount ?\n this.subLimitAmount = this.data.modalData.DriverValue :\n this.data.modalData.DriveFrom == DriveFrom.Limit ?\n this.subLimitAmount = this.data.modalData.LineLimitAmount ?\n ((this.data.modalData.DriverValue / 100) * this.data.modalData.LineLimitAmount).toFixed(2) : 0 :\n this.subLimitAmount = 0;\n }\n\n}\n\n","
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n ${{\n data.modalData.LineLimitAmount\n }}\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n Tranche\n \n \n
\n\n
\n \n Parent Tranche\n \n \n {{ type.Name }}\n \n \n \n
\n
\n \n Account Number\n \n \n
\n
\n\n
\n
\n \n Drive From\n \n \n {{ type.name }}\n \n \n \n
\n
\n \n Sublimit Driver %\n \n Sublimit Driver $\n Sublimit Driver\n \n \n \n
\n\n
\n
\n ${{\n subLimitAmount\n }}\n
\n \n
\n
\n\n
\n
\n \n Pricing Margin\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n Advance Rate\n \n \n
\n\n
\n \n Wet Amended Start Out Amt\n \n \n
\n
\n \n Amended Start Out Amt\n \n \n
\n
\n\n
\n
\n \n Comments\n \n \n
\n\n
\n
\n \n
\n
\n
\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { WarehouseLinesService } from './../../services/whl.service';\nimport { TrancheDetail } from './../../config/table-structure-tranche';\nimport {\n SharedService, NoRowsOverlayFlags, DriveFrom, SnackbarConfig, ScreenActionPrivileges,\n GridMaster, BrowserStorageService, StorageKey\n} from '@wlms-web/utils';\nimport * as moment from 'moment';\nimport { UiHelperService, AlertModalComponent } from '@wlms-web/ui-kit';\nimport { ManageTrancheComponent } from './manage-tranche/manage-tranche.component';\nimport { CopyTrancheComponent } from './copy-tranche/copy-tranche.component';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'wlms-tranche',\n templateUrl: './tranche.component.html',\n styleUrls: ['./tranche.component.scss']\n})\nexport class TrancheComponent implements OnInit {\n\n rowData = [];\n columnDefs = [...TrancheDetail];\n noRowsOverlayFlags = { ...NoRowsOverlayFlags }.TRANCHES;\n paginationPageSize = 50;\n @Input() suppressActionPrivilege = false;\n @Input() suppressRightClickPrivilege = false;\n @Input() warehouse: any;\n contracts = [];\n groupDefaultExpanded = -1;\n currentActiveContract: any;\n @ViewChild('tracheGrid') tracheGrid: any;\n screenActionPrivileges = ScreenActionPrivileges;\n autoGroupColumnDef = {\n headerName: '',\n cellRenderer: 'agGroupCellRenderer',\n suppressMovable: true,\n suppressColumnsToolPanel: true,\n suppressMenu: true,\n width: 135,\n active: true,\n sortable: false,\n cellRendererParams: {\n suppressCount: true,\n innerRenderer: 'iconFormatRendererComponent',\n }\n };\n\n preferance: any[] = [];\n filterPreferance: any[] = [];\n filterModel: any;\n disableResetPreference = false;\n columnMaster = [];\n getDataPath = (data) => data.TranchHierarchy;\n selectedTabPreference: any[] = [];\n\n constructor(private warehouseLinesService: WarehouseLinesService,\n private uiHelperService: UiHelperService,\n public browserStorageService: BrowserStorageService,\n public sharedService: SharedService) { }\n\n ngOnInit(): void {\n this.getColumnMaster();\n this.getContracts();\n this.getUserPreference();\n }\n\n // Get contracts\n getContracts() {\n this.warehouseLinesService.getContractsPerWarehouse(this.warehouse.WarehouseLineId).subscribe(response => {\n if (response) {\n this.contracts = response['details'];\n this.setActiveContract();\n }\n });\n }\n\n onGridReady() {\n this.tracheGrid.setRowData(this.rowData);\n this.sharedService.loadGrid.next({ isLoad: false });\n }\n\n setActiveContract() {\n this.contracts.forEach((x, index) => {\n this.contracts[index] = {\n ...x, name: x.WarehouseLineName + ' ' + moment(new Date(x.StartDate)).format('MM/DD/YYYY') + ' - ' +\n moment(new Date(x.ExpiryDate)).format('MM/DD/YYYY')\n }\n });\n const index = this.contracts.findIndex(x => {\n if (moment(new Date()).isSame(x.StartDate, 'day') ||\n moment(new Date()).isSame(x.ExpiryDate, 'day') ||\n moment(new Date()).startOf('day').isBetween(x.StartDate, x.ExpiryDate, undefined, '[]')) {\n return x;\n }\n });\n if (index != -1) {\n this.currentActiveContract = { ...this.contracts[index] };\n this.getTranches(this.currentActiveContract.WarehouseLineContractDetailId);\n } else {\n this.currentActiveContract = null;\n this.rowData = [];\n }\n }\n\n // Api to get tranche details\n getTranches(contractId) {\n this.rowData = [];\n this.sharedService.loadGrid.next({ isLoad: true });\n this.warehouseLinesService.getTranches(contractId).subscribe(response => {\n if (response) {\n this.rowData = response['details'];\n this.modifyRowData();\n this.sharedService.loadGrid.next({ isLoad: false });\n }\n })\n }\n\n // Modify row data\n modifyRowData() {\n this.rowData.forEach((x, index) => {\n this.rowData[index] = {\n ...x,\n TranchHierarchy: x.TranchePath.split('/').filter(y => y),\n WetStartingOutstandingAmount: x.WetStartingOutstandingAmount ? x.WetStartingOutstandingAmount : 0,\n AmendedWetStartingOutstandingAmount: x.AmendedWetStartingOutstandingAmount ? x.AmendedWetStartingOutstandingAmount : 0,\n StartingOutstandingAmount: parseFloat(x.WetStartingOutstandingAmount ? x.WetStartingOutstandingAmount : 0) +\n parseFloat(x.DryStartingOutstandingAmount ? x.DryStartingOutstandingAmount : 0),\n AmendedStartingOutstandingAmount: x.AmendedWetStartingOutstandingAmount > 0 ?\n (parseFloat(x.AmendedDryStartingOutstandingAmount ? x.AmendedDryStartingOutstandingAmount :\n x.DryStartingOutstandingAmount ? x.DryStartingOutstandingAmount : 0) +\n parseFloat(x.AmendedWetStartingOutstandingAmount)) : 0,\n DriverAmount: x.DriveFrom == DriveFrom.Amount ? x.DriverValue : 0,\n DriverPercentage: x.DriveFrom == DriveFrom.Limit ? x.DriverValue : 0\n };\n });\n }\n\n // On contract changed\n contractChanged(contract) {\n this.currentActiveContract = { ...contract };\n this.getTranches(contract.WarehouseLineContractDetailId);\n }\n\n noOverlay(event) {\n this.tracheGrid.grid.gridOptions.noRowsOverlayComponentParams = {\n noRowsMessageFunc: () => {\n return {\n blankTemplateFlag: 'tranches',\n };\n }\n };\n }\n\n openEditTranche(event) {\n this.setParentListForEdit(event)\n const data = {\n isEdit: true,\n modalData: {\n ...event.data,\n tranches: [{ WarehouseLineTrancheId: 0, Name: 'None' }].\n concat(this.setParentListForEdit(event).\n map(({ WarehouseLineTrancheId, Name }) => ({ WarehouseLineTrancheId, Name })).\n filter(x => x.WarehouseLineTrancheId != event.data.WarehouseLineTrancheId)),\n WarehouseLineName: this.warehouse.WarehouseLineName,\n LineLimitAmount: this.warehouse.LineLimitAmount,\n Contract: moment(new Date(this.currentActiveContract.StartDate)).format('MM/DD/YYYY') + ' - ' +\n moment(new Date(this.currentActiveContract.ExpiryDate)).format('MM/DD/YYYY'),\n WarehouselineContractId: this.currentActiveContract.WarehouseLineContractDetailId,\n ParentTrancheId: event.data.TranchHierarchy.length <= 1 ? 0 : this.getParentTrache(event),\n FloorRate: this.warehouse.FloorRate,\n StartingOutStandingAmount: event.data.WetStartingOutstandingAmount + event.data.WetStartingOutstandingAmount,\n AmendedStartOutAmt: (event.data.AmendedWetStartingOutstandingAmount > 0 || event.data.AmendedDryStartingOutstandingAmount > 0) ?\n parseFloat(event.data.AmendedWetStartingOutstandingAmount) + parseFloat(event.data.AmendedDryStartingOutstandingAmount) :\n null,\n DriveFrom: event.data.DriveFrom ? event.data.DriveFrom : 0,\n DriverValue: event.data.DriverValue ? event.data.DriverValue : 0,\n PricingMargin: event.data.PricingMargin ? event.data.PricingMargin : 0,\n AdvanceRate: event.data.AdvanceRate ? event.data.AdvanceRate : 0,\n PricingRate: ((Math.max(event.data.IndexRate ? event.data.IndexRate : this.warehouse.IndexRate ? this.warehouse.IndexRate : 0,\n this.warehouse.FloorRate) + (event.data.PricingMargin ? event.data.PricingMargin : 0))).toFixed(2)\n },\n };\n const title = 'Edit Tranche';\n this.uiHelperService.askConfirmation(ManageTrancheComponent, 'modal-lg', title, data, 'Cancel', 'Update',\n (data: any) => {\n this.saveTranche(this.setTranchData(data.data), 'edit');\n });\n }\n\n setParentListForEdit(event) {\n return this.rowData.\n filter((x) =>\n x.TranchHierarchy.length - 1 <= event.data.TranchHierarchy.length - 1 ||\n (x.TranchHierarchy.length - 1 > event.data.TranchHierarchy.length - 1 &&\n x.TranchHierarchy[event.data.TranchHierarchy.length - 1] != event.data.TranchHierarchy[event.data.TranchHierarchy.length - 1]))\n }\n\n openAddTranche(event) {\n const data = {\n isEdit: false,\n modalData: this.setModalDataForAdd(event),\n };\n const title = 'Add Tranche';\n this.uiHelperService.askConfirmation(ManageTrancheComponent, 'modal-lg', title, data, 'Cancel', 'Save',\n (data: any) => {\n this.saveTranche(this.setTranchData(data.data), 'add');\n });\n }\n\n addParentTranche() {\n const data = {\n isEdit: false,\n modalData: this.setModalDataForAdd(),\n };\n const title = 'Add Tranche';\n this.uiHelperService.askConfirmation(ManageTrancheComponent, 'modal-lg', title, data, 'Cancel', 'Save',\n (data: any) => {\n this.saveTranche(this.setTranchData(data.data), 'add');\n });\n }\n\n setModalDataForAdd(event?) {\n return {\n WarehouseLineTrancheId: 0,\n Name: '',\n ParentTrancheId: event ? event.data.WarehouseLineTrancheId : 0,\n WarehouselineContractId: this.currentActiveContract.WarehouseLineContractDetailId,\n DriveFrom: 0,\n DriverValue: 0,\n PricingMargin: 0,\n AdvanceRate: 0,\n AmendedWetStartingOutstandingAmount: 0,\n AccountNumber: '',\n Comments: '',\n IsDeleted: false,\n tranches: [{ WarehouseLineTrancheId: 0, Name: 'None' }].\n concat(this.rowData.map(({ WarehouseLineTrancheId, Name }) => ({ WarehouseLineTrancheId, Name }))),\n WarehouseLineName: this.warehouse.WarehouseLineName,\n LineLimitAmount: this.warehouse.LineLimitAmount,\n Contract: moment(new Date(this.currentActiveContract.StartDate)).format('MM/DD/YYYY') + ' - ' +\n moment(new Date(this.currentActiveContract.ExpiryDate)).format('MM/DD/YYYY'),\n FloorRate: this.warehouse.FloorRate,\n AmendedStartOutAmt: null,\n IndexRate: event ? event.data.IndexRate : this.warehouse.IndexRate ? this.warehouse.IndexRate : 0,\n PricingRate: Math.max(event ? event.data.IndexRate : this.warehouse.IndexRate ? this.warehouse.IndexRate : 0,\n this.warehouse.FloorRate) + 0,\n Limit: 0,\n StartingOutStandingAmount: this.warehouse.StartingOutStandingAmount\n }\n }\n\n setTranchData(data) {\n return {\n WarehouseLineTrancheId: data.modalData.WarehouseLineTrancheId,\n Name: data.modalData.Name,\n ParentTrancheId: data.modalData.ParentTrancheId,\n WarehouselineContractId: data.modalData.WarehouselineContractId,\n DriveFrom: data.modalData.DriveFrom ? data.modalData.DriveFrom : 0,\n DriverValue: data.modalData.DriverValue ? data.modalData.DriverValue : 0,\n PricingMargin: data.modalData.PricingMargin ? data.modalData.PricingMargin : 0,\n AdvanceRate: data.modalData.AdvanceRate ? data.modalData.AdvanceRate : 0,\n AmendedWetStartingOutstandingAmount: data.modalData.AmendedWetStartingOutstandingAmount ?\n data.modalData.AmendedWetStartingOutstandingAmount : 0,\n AmendedDryStartingOutstandingAmount: data.modalData.AmendedWetStartingOutstandingAmount ? data.modalData.AmendedStartOutAmt -\n data.modalData.AmendedWetStartingOutstandingAmount : 0,\n AmendedStartingOutstandingAmount: data.modalData.AmendedStartOutAmt > 0 ?\n data.modalData.AmendedStartOutAmt : data.modalData.AmendedStartingOutstandingAmount,\n IsAvailableForFunding: data.modalData.IsAvailableForFunding,\n Comments: data.modalData.Comments ? data.modalData.Comments : '',\n IsDeleted: false,\n }\n }\n\n getParentTrache(event) {\n return this.rowData.filter(x => x.TranchHierarchy.length == event.data.TranchHierarchy.length - 1\n && x.TranchHierarchy[x.TranchHierarchy.length - 1] == event.data.TranchHierarchy[x.TranchHierarchy.length - 1] &&\n event.data.TranchHierarchy.filter((element, index) => index < event.data.TranchHierarchy.length - 1).\n every((e) => new Set(x.TranchHierarchy).has(e))).map(y => y.WarehouseLineTrancheId)[0];\n }\n\n saveTranche(data, type) {\n this.warehouseLinesService.saveTranche(data).subscribe(response => {\n if (response && response['details'] && response['details'].Status == 1) {\n type == 'delete' ?\n this.uiHelperService.showSnackBar('Tranche deleted successfully', SnackbarConfig.success) :\n this.uiHelperService.showSnackBar('Tranche saved successfully', SnackbarConfig.success);\n this.getTranches(this.currentActiveContract.WarehouseLineContractDetailId);\n } else if (response && response['details'] && response['details'].Status == 3 && type == 'delete') {\n this.uiHelperService.showSnackBar(`Cannot delete tranche as it or any of it's children has loans assigned under them.`,\n SnackbarConfig.error);\n }\n })\n }\n\n deleteTranche(event) {\n const data = {\n IsDeleted: true,\n WarehouselineContractId: this.currentActiveContract.WarehouseLineContractDetailId,\n ParentTrancheId: event.data.TranchHierarchy.length > 1 ? this.getParentTrache(event) : 0,\n WarehouseLineTrancheId: event.data.WarehouseLineTrancheId,\n Name: event.data.Name,\n DriveFrom: event.data.DriveFrom ? event.data.DriveFrom : 0,\n DriverValue: event.data.DriverValue ? event.data.DriverValue : 0,\n PricingMargin: event.data.PricingMargin ? event.data.PricingMargin : 0,\n AdvanceRate: event.data.AdvanceRate ? event.data.AdvanceRate : 0,\n AccountNumber: event.data.AccountNumber,\n AmendedStartingOutstandingAmount: event.data.AmendedStartOutAmt > 0 ?\n event.data.AmendedStartOutAmt : event.data.AmendedStartingOutstandingAmount,\n IsAvailableForFunding: event.data.IsAvailableForFunding,\n Comments: event.data.Comments ? event.data.Comments : '',\n AmendedWetStartingOutstandingAmount: event.data.AmendedWetStartingOutstandingAmount ?\n event.data.AmendedWetStartingOutstandingAmount : 0,\n AmendedDryStartingOutstandingAmount: event.data.AmendedWetStartingOutstandingAmount ?\n event.data.AmendedStartOutAmt - event.data.AmendedWetStartingOutstandingAmount : 0,\n }\n this.saveTranche(data, 'delete');\n }\n\n openWlCopyTranche(event) {\n const activeContracts = this.contracts.filter(x => moment(moment(new Date()).startOf('day'))\n .diff(moment(x.ExpiryDate).startOf('day')) <= 0)\n .slice()\n .sort((a, b) => {\n a.ExpiryDate = new Date(a.ExpiryDate)\n b.ExpiryDate = new Date(b.ExpiryDate)\n return a.ExpiryDate - b.ExpiryDate\n });\n const data = {\n isEdit: false,\n modalData: event,\n ParentTrancheId: event.data.TranchHierarchy.length > 1 ?\n this.getParentTrache(event) : 0,\n contracts: activeContracts,\n activeContract: activeContracts[0]\n };\n const title = 'Add Tranche';\n if (activeContracts.length > 0) {\n this.uiHelperService.askConfirmation(CopyTrancheComponent, 'modal-md', title, data, 'Cancel', 'Save',\n (data: any) => {\n let tranche = {\n \"Name\": data.data.modalData.newTranche,\n \"SourceTrancheId\": data.data.modalData.data.WarehouseLineTrancheId,\n \"ParentTrancheId\": data.data.modalData.tranchId ? data.data.modalData.tranchId : 0,\n \"TargetWarehouselineContractId\": data.data.modalData.contractId\n }\n this.currentActiveContract.WarehouseLineContractDetailId = data.data.currentAvtiveContractId;\n this.copyTranche(tranche);\n });\n } else {\n this.uiHelperService.showSnackBar('There are contracts under which the tranche can be copied into.', SnackbarConfig.error);\n }\n }\n\n copyTranche(data) {\n this.warehouseLinesService.copyTanche(data).subscribe(response => {\n if (response && response['details'] && response['details'].Status == 1) {\n this.getTranches(this.currentActiveContract.WarehouseLineContractDetailId);\n this.uiHelperService.showSnackBar('Copied Tranche Successfully', SnackbarConfig.success);\n } else if (response && response['details'] && response['details'].Status == 2) {\n this.uiHelperService.showSnackBar(`Failed to save as the the same tanche exists.`, SnackbarConfig.error);\n }\n })\n\n }\n\n showUserPreferenceModal() {\n const title = ' Save User Preferences';\n const data = {\n data: 'You are about to save User Preference.'\n };\n this.uiHelperService.askConfirmation(AlertModalComponent, 'modal-md', title, data, 'Cancel', 'Save Preference', () => {\n this.saveUserPreferences();\n });\n }\n\n saveUserPreferences() {\n this.reorderColumnMaster();\n this.collectUserPreferences();\n this.selectedTabPreference = [];\n this.selectedTabPreference.push({\"tabid\":GridMaster.Tranche});\n\n const request = {\n Tab: this.selectedTabPreference,\n Column: this.preferance\n };\n this.warehouseLinesService.saveUserPreferences(request).subscribe((response: any) => {\n if (response) {\n this.sharedService.userPreferenceChanged = false;\n this.uiHelperService.showSnackBar('User preferences saved successfully', SnackbarConfig.success);\n this.getUserPreference();\n this.disableResetPreference = true;\n }\n }, (error) => {\n this.uiHelperService.showSnackBar('Failed to save user preference', SnackbarConfig.error);\n });\n }\n\n getColumnMaster() {\n this.warehouseLinesService.getColumnMaster(GridMaster.Tranche).subscribe((response: any) => {\n if (response) {\n this.columnMaster = response.details;\n this.reorderColumnMaster();\n }\n });\n }\n\n reorderColumnMaster() {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n const masterIndex = _.findIndex(this.columnMaster, (master: any) => {\n return master.ColumnName == col.field;\n });\n if (masterIndex != -1) {\n this.columnDefs[index]['ColumnMasterId'] = this.columnMaster[masterIndex].ColumnMasterId;\n }\n });\n }\n\n collectUserPreferences() {\n this.preferance = [];\n const columnState = this.tracheGrid.getColumnState();\n _.forEach(columnState, (state: any, index: number) => {\n let columnMasterId = null;\n const columnIndex = _.findIndex(this.columnDefs, (col) => {\n return col.field == state.colId;\n });\n if (columnIndex != -1) {\n const col = { ...this.columnDefs[columnIndex] };\n columnMasterId = col['ColumnMasterId'];\n if (columnMasterId > 0) {\n this.preferance.push({\n ColumnMasterId: columnMasterId,\n ColumnOrder: index,\n SortOrder: state.sort,\n GroupOrder: state.rowGroupIndex != null ? state.rowGroupIndex + 1 : state.rowGroupIndex,\n IsVisible: state.hide ? 0 : 1\n });\n }\n }\n });\n }\n\n getUserPreference() {\n if (this.sharedService.isAuthUser(this.screenActionPrivileges.GetTrancheTabSavePreference)) {\n this.warehouseLinesService.getUserPreferences().subscribe(response => {\n this.persistFilterData();\n if (response) {\n this.preferance = response.details;\n this.disableResetPreference = this.preferance.map((pref) => pref.TabId).includes(GridMaster.Tranche);\n this.setPreference()\n }\n });\n }\n }\n\n setPreference() {\n this.reorderColumnMaster();\n const tabPreference = _.filter(this.preferance, (pref: any) => {\n return pref.TabId == GridMaster.Tranche;\n });\n if (tabPreference && tabPreference.length > 0) {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n const prefColumn = _.filter(tabPreference, (pref: any) => {\n return pref.ColumnMasterId == col.ColumnMasterId;\n });\n const column = { ...this.columnDefs[index] };\n this.columnDefs[index] = this.updateColumnProps(prefColumn, column);\n });\n const sortedCols = _.sortBy(this.columnDefs, (col: any) => {\n return col['ColumnOrder'];\n });\n this.columnDefs = [...sortedCols];\n } else {\n this.columnDefs = [...TrancheDetail];\n }\n }\n\n updateColumnProps(prefColumn, column) {\n if (prefColumn && prefColumn.length > 0) {\n column['sort'] = prefColumn[0].SortOrder;\n column['ColumnOrder'] = prefColumn[0].ColumnOrder;\n column['hide'] = prefColumn[0].IsVisible == 1 ? false : true;\n if (prefColumn[0].GroupOrder > 0) {\n column['rowGroup'] = true;\n column['rowGroupIndex'] = prefColumn[0].GroupOrder - 1;\n } else {\n column['rowGroup'] = false;\n }\n }\n return column;\n }\n\n persistFilterData() {\n this.filterPreferance = [];\n this.filterModel = [];\n this.filterPreferance = this.browserStorageService.getLocalStorageValue(StorageKey.FILTERMODEL);\n const currentFilterData = this.filterPreferance ? this.filterPreferance.filter(x => x.tabId === GridMaster.Tranche)[0] : null;\n if (currentFilterData) {\n this.filterModel = currentFilterData.filterData;\n this.tracheGrid.setFilterModel(this.filterModel);\n }\n else {\n this.tracheGrid.setFilterModel(null);\n }\n }\n\n isUserPreferenceChanged() {\n return this.tracheGrid && this.tracheGrid.isUserPreferenceChanged();\n }\n\n}\n","
\n

Contracts:

\n
\n \n \n \n \n \n {{ contract?.name }}\n \n \n
\n
\n\n \n \n \n \n \n\n\n
\n \n \n\n \n \n \n \n \n \n \n \n
\n\n","import { Component, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { WarehouseLinesService } from '../services/whl.service'\nimport { SharedService, WarehouseLineDetails, NoRowsOverlayFlags, ScreenActionPrivileges } from '@wlms-web/utils';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { WarehouseLineDetail } from '../whl-details/whl-details.model';\n\n@Component({\n selector: 'wlms-whl-details',\n templateUrl: './whl-details.component.html',\n styleUrls: ['./whl-details.component.scss']\n})\nexport class WarehouselinedetailsComponent implements OnInit {\n\n warehouse: any;\n allData = [];\n tabList: any = [];\n subscription$: Subscription;\n selectedTab = 0;\n warehouselinesrc: string;\n warehouseLineDetail: WarehouseLineDetail;\n warehouselinename: any;\n rowData = [];\n columnDefs = [];\n groupDefaultExpanded: Number;\n autoGroupColumnDef: any;\n getDataPath: any;\n currentTabIndex = 0;\n noRowsOverlayFlags = { ...NoRowsOverlayFlags };\n screenActionPrivileges = ScreenActionPrivileges;\n suppressActionPrivilege = false;\n suppressRightClickPrivilege = false;\n\n constructor(\n private warehouselinesservice: WarehouseLinesService,\n private sharedService: SharedService,\n private acitivateRouter: ActivatedRoute,\n private router: Router) {\n this.warehouseLineDetail = new WarehouseLineDetail();\n }\n\n ngOnInit(): void {\n this.warehouse = JSON.parse(localStorage.getItem('currentWarehouse'));\n this.warehouselinename = this.warehouse.WarehouseLineName;\n this.getWarehouselineDetailsData();\n const warehouseline = [...this.sharedService.warehouseLines].filter(x => x.code != null);\n const basePath = '/assets/images/'\n const element = warehouseline.filter(x => x.name.toUpperCase() == this.warehouselinename.toUpperCase());\n if (element.length > 0) {\n this.warehouselinesrc = basePath + element[0].icon;\n }\n this.setTabLevelPrivileges()\n this.subscription$ = this.sharedService.tabChange.subscribe((response: any) => {\n this.selectedTab = response.index;\n });\n }\n\n // Set privileges\n setTabLevelPrivileges() {\n this.tabList = [...WarehouseLineDetails].filter((x: any) => this.sharedService.isAuthUser(x.privilegeKey));\n this.suppressRightClickPrivilege = !this.sharedService.isAuthUser(this.tabList[this.selectedTab].suppressRightClickPrivilege);\n this.suppressActionPrivilege = !this.sharedService.isAuthUser(this.tabList[this.selectedTab].suppressActionPrivilege);\n }\n\n getWarehouselineDetailsData() {\n return this.warehouselinesservice.getWarehouseLineDetailsByWarehouseName(this.warehouselinename)\n .subscribe(response => {\n this.warehouseLineDetail = response['details'];\n })\n }\n\n getCurrentTabData(tabIndex) {\n let currentTabData: any = [];\n if (tabIndex == 0) {\n currentTabData = this.allData;\n } else {\n currentTabData = this.allData.filter((element: any) => {\n if (element.WarehouseLineDetails)\n return element.WarehouseLineDetails.toUpperCase() == this.tabList[tabIndex].name.toUpperCase();\n });\n }\n return currentTabData;\n }\n\n goback() {\n this.router.navigateByUrl('/warehouselines');\n }\n\n ngOnDestroy() {\n this.subscription$ ? this.subscription$.unsubscribe() : '';\n }\n}\n","\n
\n
\n
\n
\n \n

\n Back\n

\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n {{ warehouseLineDetail.percentage }}% Left\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n Warehouse Line Code\n
\n
\n \n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n \n \n
\n\n
\n {{ warehouseLineDetail.account }} - Work under progress\n
\n
\n {{ warehouseLineDetail.limits }} - Work under progress\n
\n
\n {{ warehouseLineDetail.investors }} - Work under progress\n
\n
\n {{ warehouseLineDetail.products }} - Work under progress\n
\n
\n {{ warehouseLineDetail.eligibility }} - Work under progress\n
\n
\n {{ warehouseLineDetail.sweeps }} - Work under progress\n
\n
\n
\n
\n \n\n","export class WarehouseLineDetail {\n availablecapacity: string;\n allocated: string;\n remaining: string;\n percentage: string;\n wetbalance: string;\n totaladvance: string;\n drysweeps: string;\n fundedadvance: string;\n loans: string;\n loanamount: string;\n contactperson: string;\n phone: string;\n email: string;\n summary: SummaryInfo;\n tranche: TrancheDetail;\n account: string;\n limits: string;\n investors: string;\n products: string;\n eligibility: string;\n sweeps: string;\n}\n\nexport class SummaryInfo {\n committedamount: string;\n\tuncommittedamount: string;\n\ttotallineamount: string;\n\tcontractmonth: string;\n\trenewal: string;\n\tblugeexpiry: string;\n\tcustodiantype: string;\n\tcustodian: string;\n\tfundingcutoff: string;\n\tldescrowapproved: string;\n}\n\nexport class TrancheDetail {\n tranche: any;\n limit: string;\n limitpercentage: string;\n rate: string;\n advancerate: string;\n}","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport {\n SharedService, NoRowsOverlayFlags, ScreenActionPrivileges, SnackbarConfig, CapType,\n GridMaster, StorageKey, BrowserStorageService\n} from '@wlms-web/utils';\nimport { EditDailyCapComponent } from './edit-daily-cap/edit-daily-cap.component';\nimport { WarehouseLinesService } from '../../services/whl.service';\nimport { UiHelperService } from '@wlms-web/ui-kit';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport * as _ from 'lodash';\nimport { Router } from '@angular/router';\nimport { WarehouseLinesDailyCapdetails } from '../../config/table-structure-dailycaps-availability';\nimport * as moment from 'moment';\nimport { ResetPreferenceComponent } from 'libs/ui-kit/src/lib/reset-preference/reset-preference.component';\n\n@Component({\n selector: 'wlms-daily-caps',\n templateUrl: './daily-caps.component.html',\n styleUrls: ['./daily-caps.component.scss']\n})\nexport class DailyCapsComponent implements OnInit {\n\n rowData = [];\n columnDefs = [...WarehouseLinesDailyCapdetails];\n paginationPageSize = 50;\n screenActionPrivileges = ScreenActionPrivileges;\n @Input() suppressActionPrivilege = false;\n @Input() suppressRightClickPrivilege = false;\n noRowsOverlayFlags = { ...NoRowsOverlayFlags };\n @ViewChild('dailyCapsGrid') dailyCapsGrid: any;\n @Output() warehouseReloaded: EventEmitter = new EventEmitter();\n\n preferance: any[] = [];\n filterPreferance: any[] = [];\n filterModel: any;\n \n columnMaster = [];\n selectedTabPreference: any[] = [];\n\n constructor(private warehouselinesservice: WarehouseLinesService,\n public sharedService: SharedService,\n public modalService: BsModalService,\n private browserStorageService: BrowserStorageService,\n private router: Router,\n private uiHelperService: UiHelperService) { }\n\n ngOnInit(): void {\n this.sharedService.disableRestButton = false;\n this.getColumnMaster();\n this.getWarehouselineDailyCapData();\n this.getUserPreference();\n }\n\n getWarehouselineDailyCapData() {\n this.rowData = [];\n this.sharedService.loadGrid.next({ isLoad: true });\n return this.warehouselinesservice.getDailyCapAvailability()\n .subscribe(response => {\n this.rowData = [...response['details']];\n this.rowData.forEach(x => {\n if (x.CapType == (CapType[CapType.findIndex(y => y.name == 'Available Amount')].id)) {\n x.AvailableAmountCap = x.Value;\n x.LineLimitAmountCap = '';\n } else {\n x.LineLimitAmountCap = x.Value;\n x.AvailableAmountCap = '';\n }\n })\n this.sharedService.loadGrid.next({ isLoad: false });\n });\n }\n\n openEditDailyCaps(event) {\n const data = {\n isEdit: true,\n dailyCapData: { ...event.data }\n };\n const title = 'Edit Daily Caps';\n this.uiHelperService.askConfirmation(EditDailyCapComponent, 'modal-lg', title, data, 'Cancel', 'Update',\n (data: any) => {\n this.saveWarehouse(data);\n });\n }\n\n saveWarehouse(data) {\n const dailyCap = {\n ...data.data.dailyCapData,\n StartDate: moment(data.data.dailyCapData.StartDate).startOf('day').utc(true).toISOString(),\n ExpiryDate: moment(data.data.dailyCapData.ExpiryDate).startOf('day').utc(true).toISOString()\n }\n this.warehouselinesservice.SaveEditDailyCapAvailability(dailyCap).subscribe(response => {\n if (response && response['details'] && response['details'].Status == 1) {\n this.getWarehouselineDailyCapData();\n this.uiHelperService.showSnackBar('Edited daily caps Successfully', SnackbarConfig.success);\n }\n })\n }\n\n noOverlay(event) {\n this.dailyCapsGrid.grid.gridOptions.noRowsOverlayComponentParams = {\n noRowsMessageFunc: function () {\n return {\n blankTemplateFlag: 'warehouses',\n };\n }\n };\n }\n\n saveUserPreferences() {\n this.reorderColumnMaster();\n this.collectUserPreferences();\n this.selectedTabPreference = [];\n this.selectedTabPreference.push({\"tabid\": GridMaster.DailyCaps});\n const request = {\n Tab: this.selectedTabPreference,\n Column: this.preferance\n }; \n this.warehouselinesservice.saveUserPreferences(request).subscribe((response: any) => {\n if (response) {\n this.sharedService.userPreferenceChanged = false;\n this.uiHelperService.showSnackBar('User preferences saved successfully', SnackbarConfig.success);\n this.getUserPreference();\n this.sharedService.disableRestButton = true;\n }\n }, (error) => {\n this.uiHelperService.showSnackBar('Failed to save user preference', SnackbarConfig.error);\n });\n }\n\n getColumnMaster() {\n this.warehouselinesservice.getColumnMaster(GridMaster.DailyCaps).subscribe((response: any) => {\n if (response) {\n this.columnMaster = response.details;\n this.reorderColumnMaster();\n }\n });\n }\n\n reorderColumnMaster() {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n const masterIndex = _.findIndex(this.columnMaster, (master: any) => {\n return master.ColumnName == col.field;\n });\n if (masterIndex != -1) {\n this.columnDefs[index]['ColumnMasterId'] = this.columnMaster[masterIndex].ColumnMasterId;\n }\n });\n }\n\n collectUserPreferences() {\n this.preferance = [];\n const columnState = this.dailyCapsGrid.getColumnState();\n _.forEach(columnState, (state: any, index: number) => {\n let columnMasterId = null;\n const columnIndex = _.findIndex(this.columnDefs, (col) => {\n return col.field == state.colId;\n });\n if (columnIndex != -1) {\n const col = { ...this.columnDefs[columnIndex] };\n columnMasterId = col['ColumnMasterId'];\n if (columnMasterId > 0) {\n this.preferance.push({\n ColumnMasterId: columnMasterId,\n ColumnOrder: index,\n SortOrder: state.sort,\n GroupOrder: state.rowGroupIndex != null ? state.rowGroupIndex + 1 : state.rowGroupIndex,\n IsVisible: state.hide ? 0 : 1\n });\n }\n }\n });\n }\n\n getUserPreference() {\n if (this.sharedService.isAuthUser(this.screenActionPrivileges.GetDailyCapsTabSavePreference)) {\n this.warehouselinesservice.getUserPreferences().subscribe(response => {\n this.persistFilterData();\n if (response) {\n this.preferance = response.details;\n this.sharedService.disableRestButton = this.preferance.map((pref) => pref.TabId).includes(GridMaster.DailyCaps);\n this.setPreference()\n }\n });\n }\n }\n\n setPreference() {\n this.reorderColumnMaster();\n const tabPreference = _.filter(this.preferance, (pref: any) => {\n return pref.TabId == GridMaster.DailyCaps;\n });\n if (tabPreference && tabPreference.length > 0) {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n const prefColumn = _.filter(tabPreference, (pref: any) => {\n return pref.ColumnMasterId == col.ColumnMasterId;\n });\n const column = { ...this.columnDefs[index] };\n this.columnDefs[index] = this.updateColumnProps(prefColumn, column);\n });\n const sortedCols = _.sortBy(this.columnDefs, (col: any) => {\n return col['ColumnOrder'];\n });\n this.columnDefs = [...sortedCols];\n } else {\n this.columnDefs = [...WarehouseLinesDailyCapdetails];\n }\n }\n\n updateColumnProps(prefColumn, column) {\n if (prefColumn && prefColumn.length > 0) {\n column['sort'] = prefColumn[0].SortOrder;\n column['ColumnOrder'] = prefColumn[0].ColumnOrder;\n column['hide'] = prefColumn[0].IsVisible == 1 ? false : true;\n if (prefColumn[0].GroupOrder > 0) {\n column['rowGroup'] = true;\n column['rowGroupIndex'] = prefColumn[0].GroupOrder - 1;\n } else {\n column['rowGroup'] = false;\n }\n }\n return column;\n }\n\n persistFilterData() {\n this.filterPreferance = [];\n this.filterModel = [];\n this.filterPreferance = this.browserStorageService.getLocalStorageValue(StorageKey.FILTERMODEL);\n const currentFilterData = this.filterPreferance ? this.filterPreferance.filter(x => x.tabId === GridMaster.DailyCaps)[0] : null;\n if (currentFilterData) {\n this.filterModel = currentFilterData.filterData;\n this.dailyCapsGrid.setFilterModel(this.filterModel);\n }\n else {\n this.dailyCapsGrid.setFilterModel(null);\n }\n }\n\n isUserPreferenceChanged() {\n return this.dailyCapsGrid && this.dailyCapsGrid.isUserPreferenceChanged();\n }\n\n showResetUserPreferenceModal() {\n \n const title = \" Reset Columns to the default/userPreference View\";\n\n const data = {\n \"message\": \"You are about to reset Daily Caps Columns to the default/userPreference View.\",\n enablePreference: this.sharedService.disableRestButton ,\n action : this.sharedService.disableRestButton ? 1: 0,\n };\n this.uiHelperService.askConfirmation(ResetPreferenceComponent, 'modal-lg', title, data, 'Cancel', 'Reset Preference', (data: any) => {\n this.resetUserPreference(data.data.action);\n });\n \n }\n \n resetUserPreference(action) {\n if(action ==0)\n {\n const request = {\n TabId: GridMaster.DailyCaps,\n \n };\n \n this.warehouselinesservice.ResetUserPreference(request).subscribe((response: any) => {\n let responseDetails = response.details;\n if (responseDetails.Response == \"Success\") {\n this.sharedService.disableRestButton = false;\n this.uiHelperService.showSnackBar('Grid has been reset to default view successfully', SnackbarConfig.success);\n this.getUserPreference();\n }\n }, (error) => {\n this.uiHelperService.showSnackBar('Failed to reset user preference', SnackbarConfig.error);\n });\n }\n else{\n \n this.getUserPreference();\n\n this.uiHelperService.showSnackBar('Grid has been reset to saved user preference view successfully', SnackbarConfig.success);\n }\n \n }\n}\n","\n\n\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport { CapType, SharedService, SnackbarConfig } from '@wlms-web/utils';\nimport * as moment from 'moment';\nimport { UiHelperService } from '@wlms-web/ui-kit';\n\n@Component({\n selector: 'wlms-edit-daily-cap',\n templateUrl: './edit-daily-cap.component.html',\n styleUrls: ['./edit-daily-cap.component.scss']\n})\nexport class EditDailyCapComponent implements AfterViewInit {\n\n @Input() data;\n masterData: any;\n capType = [...CapType];\n minDate = new Date();\n startDate = new Date();\n endDate = new Date();\n bsConfig = { containerClass: 'theme-dark-blue', showClearButton: true, clearPosition: 'right' };\n\n constructor(private sharedService: SharedService,\n private uiHelperService: UiHelperService) { }\n\n ngAfterViewInit(): void {\n if (this.data && this.data.dailyCapData && this.data.dailyCapData.StartDate == null) {\n this.startDate = new Date();\n } else {\n this.startDate = new Date(this.data.dailyCapData.StartDate);\n }\n if (this.data && this.data.dailyCapData && this.data.dailyCapData.ExpiryDate == null) {\n this.endDate = new Date();\n } else {\n this.endDate = new Date(this.data.dailyCapData.ExpiryDate);\n }\n if (this.data && this.data.dailyCapData && this.data.dailyCapData.CapType <= 0) {\n this.data.dailyCapData.CapType = CapType[0].id;\n }\n if (this.data && this.data.dailyCapData && (!this.data.dailyCapData.Value || this.data.dailyCapData.Value <= 0)) {\n this.sharedService.modalSubmitValid = false;\n } else {\n this.sharedService.modalSubmitValid = true;\n }\n }\n\n\n dateChange(ctrl, event) {\n event == null ? '' : event\n if (event && event.getDay() == 6 || event.getDay() == 0) {\n this.uiHelperService.showSnackBar('Selected day should not be a Saturday or Sunday.', SnackbarConfig.error);\n this.sharedService.modalSubmitValid = false;\n } else if (ctrl == 'start' && event && moment(event).startOf('day').isAfter(moment(this.data.dailyCapData.ExpiryDate).startOf('day'))) {\n this.uiHelperService.showSnackBar('Start date should be lesser than end date.', SnackbarConfig.error);\n this.sharedService.modalSubmitValid = false;\n } else if (ctrl != 'start' && event && moment(event).startOf('day').isBefore(moment(this.data.dailyCapData.StartDate).startOf('day'))) {\n this.uiHelperService.showSnackBar('Start date should be lesser than end date.', SnackbarConfig.error);\n this.sharedService.modalSubmitValid = false;\n } else {\n this.sharedService.modalSubmitValid = true;\n }\n if (ctrl == 'start') {\n this.data.dailyCapData.StartDate = moment(event == null ? new Date() : event).startOf('day');\n } else {\n this.data.dailyCapData.ExpiryDate = moment(event == null ? this.data.dailyCapData.StartDate : event).startOf('day');\n }\n if (new Date(this.data.dailyCapData.StartDate).getDay() == 0 || new Date(this.data.dailyCapData.StartDate).getDay() == 6 ||\n new Date(this.data.dailyCapData.ExpiryDate).getDay() == 0 || new Date(this.data.dailyCapData.ExpiryDate).getDay() == 6) {\n this.sharedService.modalSubmitValid = false;\n }\n this.startDate = new Date(this.data.dailyCapData.StartDate);\n this.endDate = new Date(this.data.dailyCapData.ExpiryDate);\n }\n\n amountChanged(event) {\n if (event > 0) {\n this.sharedService.modalSubmitValid = true;\n } else {\n this.sharedService.modalSubmitValid = false;\n }\n }\n\n amountValueChanged(event) {\n if (event && event.target.value <= 0) {\n this.uiHelperService.showSnackBar('Amount should be greater than 0.', SnackbarConfig.error);\n this.sharedService.modalSubmitValid = false;\n }\n }\n}\n","
\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n Cap Type\n \n \n {{ type.name }}\n \n \n \n
\n\n
\n \n Amount\n \n \n
\n\n
\n \n Comments\n \n \n
\n
\n
\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { SharedService, TimeLimits, ColourCodes, TimeFormattor, SnackbarConfig } from '@wlms-web/utils';\nimport { UiHelperService } from '@wlms-web/ui-kit';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'wlms-manage-time-slot',\n templateUrl: './manage-time-slot.component.html',\n styleUrls: ['./manage-time-slot.component.scss']\n})\nexport class ManageTimeSlotComponent implements OnInit {\n @Input() data: any;\n @ViewChild('timeSlotGrid') timeSlotGrid: any;\n editType = '';\n sideBar = '';\n startTime: Date;\n endTime: Date;\n minStartTime: Date = new Date();\n maxStartTime: Date = new Date();\n minEndTime: Date = new Date();\n maxEndTime: Date = new Date();\n showTimeEditorPanel = false;\n applyDisabled = false;\n paginationPageSize = 5;\n \n dummyId: any = parseInt(TimeLimits.dummyId);\n columnDefs = [\n {\n field: 'startTime',\n headerName: 'Start Time',\n minWidth: 250,\n valueFormatter: TimeFormattor.setDateFormattor\n },\n {\n field: 'endTime',\n headerName: 'End Time',\n minWidth: 250,\n valueFormatter: TimeFormattor.setDateFormattor\n },\n {\n field: 'action',\n headerName: '',\n minWidth: 169,\n active: true,\n pinned: 'right',\n sortable: false,\n resizable: false,\n lockPinned: true,\n showRowGroup: true,\n suppressMenu: true,\n suppressMovable: true,\n suppressSorting: true,\n suppressColumnsToolPanel: true,\n suppressRowClickSelection: true,\n cellRenderer: 'actionColumnRendererComponent',\n }\n ]\n rowData = [];\n\n constructor(private sharedService: SharedService,\n private uiHelperService: UiHelperService) {\n this.configiureDefaults();\n }\n\n ngOnInit(): void {\n this.rowData = [...this.data];\n if (this.rowData.length == 1) {\n this.rowData[0].isAdd = true;\n }\n }\n\n showTimeEditor() {\n this.showTimeEditorPanel = true;\n }\n\n configiureDefaults() {\n this.startTime = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(),\n parseInt(this.sharedService.dayStart.split(':')[0]),\n parseInt(this.sharedService.dayStart.split(':')[1]));\n this.endTime = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(),\n parseInt(this.sharedService.dayEnd.split(':')[0]),\n parseInt(this.sharedService.dayEnd.split(':')[1]));\n this.setTimeBoundary();\n }\n\n setTimeBoundary() {\n const defaultEndTime = this.configureTime(parseInt(this.sharedService.dayEnd.split(':')[0]), parseInt(this.sharedService.dayEnd.split(':')[1]));\n const defaultStartTime = this.configureTime(parseInt(this.sharedService.dayStart.split(':')[0]),\n parseInt(this.sharedService.dayStart.split(':')[1]) - 1);\n this.minStartTime = defaultStartTime;\n this.minEndTime = this.configureTime(moment(this.startTime).add(parseInt(TimeLimits.timeGap) - 1, 'm').toDate().getHours(),\n moment(this.startTime).add(parseInt(TimeLimits.timeGap) - 1, 'm').toDate().getMinutes());\n this.maxStartTime = defaultEndTime;\n this.maxEndTime = defaultEndTime;\n }\n\n configureTime(hours, mins) {\n const time = new Date();\n time.setHours(hours);\n time.setMinutes(mins);\n time.setSeconds(0);\n return time;\n }\n\n validateTime() {\n if (this.startTime == null || this.endTime == null) {\n this.uiHelperService.showSnackBar(`Please enter valid time.`, SnackbarConfig.error);\n return false\n } else if (moment(this.startTime).isBefore(moment(this.minStartTime)) ||\n moment(this.endTime).isBefore(moment(this.minEndTime)) ||\n moment(this.startTime).isAfter(moment(this.maxStartTime)) ||\n moment(this.endTime).isAfter(moment(this.maxEndTime))) {\n let endate = moment(new Date(new Date().getFullYear(), \n new Date().getMonth(), new Date().getDate(),\n parseInt(this.sharedService.dayEnd.split(':')[0]),\n parseInt(this.sharedService.dayEnd.split(':')[1]))).format(\"hh:mm:ss\");\n\n this.uiHelperService.showSnackBar(\n `The time should be between ${this.sharedService.dayStart} AM and ${endate} PM\n and start time should be ${TimeLimits.timeGap} mins before end time.`,\n SnackbarConfig.error);\n return false\n }\n return true\n }\n\n saveTime() {\n if (this.validateTime()) {\n let timeData = [...this.rowData];\n const removeData = [];\n timeData = this.checkOverlaps(timeData, removeData)\n timeData.push({\n timeId: this.dummyId,\n startTime: this.startTime,\n endTime: this.endTime,\n isAdd: false\n });\n this.dummyId--\n timeData = timeData.filter((x: any) => !removeData.map((y) => y.timeId).includes(x.timeId)).sort((a, b) => a.startTime - b.startTime);\n this.checkValidSlots(timeData);\n }\n }\n\n checkValidSlots(timeData) {\n const index = timeData.findIndex((x: any) => {\n return Math.ceil(moment.duration(moment(x.endTime.setSeconds(0)).\n diff(x.startTime.setSeconds(0))).asMinutes()) < parseInt(TimeLimits.timeGap)\n });\n if (index != -1) {\n this.dummyId++;\n this.uiHelperService.showSnackBar(`Time slots should have a minimum duration of ${TimeLimits.timeGap} minutes.`,\n SnackbarConfig.error);\n } else {\n this.rowData = [...timeData];\n this.rowData.forEach((x: any, index) => {\n x = {\n ...x,\n startTime: x.startTime.getHours() + ':' +\n (x.startTime.getMinutes() < 10 ? '0' : '') + x.startTime.getMinutes(),\n endTime: x.endTime.getHours() + ':' +\n (x.endTime.getMinutes() < 10 ? '0' : '') + x.endTime.getMinutes()\n }\n this.rowData[index] = { ...x };\n });\n if (this.rowData.length == 1) {\n this.rowData[0].isAdd = true;\n }\n this.timeSlotGrid.setRowData(this.rowData);\n this.timeSlotGrid.redrawRows();\n this.sharedService.modalDataLoaded.next(this.rowData);\n }\n }\n\n checkOverlaps(timeData, removeData) {\n const newEntry = [];\n timeData.forEach((x: any, index: any) => {\n x = {\n ...x, startTime: new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(),\n this.rowData[index].startTime.split(':')[0],\n this.rowData[index].startTime.split(':')[1]),\n endTime: new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(),\n this.rowData[index].endTime.split(':')[0],\n this.rowData[index].endTime.split(':')[1])\n };\n if (moment(x.startTime).isBetween(this.startTime, this.endTime, undefined, '[]') &&\n moment(x.endTime).isBetween(this.startTime, this.endTime, undefined, '[]')) {\n removeData.push(x);\n } else if (moment(x.startTime).isBetween(this.startTime, this.endTime, undefined, '[]')) {\n x = {\n ...x, startTime: this.endTime, isAdd: false\n }\n } else if (moment(x.endTime).isBetween(this.startTime, this.endTime, undefined, '[]')) {\n x = {\n ...x, endTime: this.startTime, isAdd: false\n }\n } else if (moment(this.startTime).isBetween(x.startTime, x.endTime, undefined, '[]') &&\n moment(this.endTime).isBetween(x.startTime, x.endTime, undefined, '[]')) {\n x = {\n ...x, endTime: this.startTime, isAdd: false\n }\n newEntry.push({\n timeId: this.dummyId,\n startTime: this.endTime,\n endTime: new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(),\n index == timeData.length - 1 ? parseInt(this.sharedService.dayEnd.split(':')[0]) : this.rowData[index + 1].startTime.split(':')[0],\n index == timeData.length - 1 ? parseInt(this.sharedService.dayEnd.split(':')[1]) : this.rowData[index + 1].startTime.split(':')[1]),\n isAdd: false\n });\n this.dummyId--;\n }\n timeData[index] = { ...x };\n });\n timeData = timeData.concat(newEntry);\n return timeData;\n }\n\n deleteTime(event) {\n this.reArrangeSlotsAfterDelete(event);\n this.rowData = this.rowData.filter((x: any) => x.timeId != event.data.timeId);\n if (this.rowData.length == 1) {\n this.rowData[0].isAdd = true;\n }\n this.timeSlotGrid.setRowData(this.rowData);\n this.sharedService.modalDataLoaded.next(this.rowData);\n }\n\n reArrangeSlotsAfterDelete(event) {\n this.rowData.forEach((x: any, index) => {\n if (x.timeId == event.data.timeId) {\n if (index == 0) {\n if (index === this.rowData.length - 1) {\n this.rowData[1] = {\n ...this.rowData[1], endTime: this.sharedService.dayEnd, startTime: this.sharedService.dayStart, timeId: this.dummyId, isAdd: true\n };\n this.dummyId--;\n } else {\n this.rowData[1] = { ...this.rowData[1], startTime: this.sharedService.dayStart, isAdd: false };\n }\n } else if (index === this.rowData.length - 1) {\n this.rowData[index - 1] = { ...this.rowData[index - 1], endTime: this.sharedService.dayEnd, isAdd: false };\n } else {\n this.rowData[index - 1] = { ...this.rowData[index - 1], endTime: x.endTime, isAdd: false };\n }\n }\n });\n }\n\n cancelTimePanel() {\n this.showTimeEditorPanel = false;\n }\n}\n","
\n
\n \n
\n
\n
\n \n \n
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UiHelperService } from '@wlms-web/ui-kit';\nimport { SharedService, SnackbarConfig } from '@wlms-web/utils';\nimport * as moment from 'moment';\nimport { WarehouseLinesService } from '../../../services/whl.service';\n@Component({\n selector: 'wlms-copy-whl-contract',\n templateUrl: './copy-whl-contract.component.html',\n styleUrls: ['./copy-whl-contract.component.scss']\n})\nexport class CopyWhlContractComponent implements OnInit {\n @Input() data;\n currentActiveContract: any;\n contracts = [];\n minDate = new Date();\n startDate = new Date();\n endDate = new Date();\n bsConfig = { containerClass: 'theme-dark-blue', showClearButton: true, clearPosition: 'right' };\n constructor(private warehouseLinesService: WarehouseLinesService,\n public sharedService: SharedService,\n private uiHelperService: UiHelperService) { }\n\n ngOnInit(): void {\n this.getContracts();\n }\n\n // Get contracts\n getContracts() {\n this.warehouseLinesService.getContractsPerWarehouse(this.data.modalData.WarehouseLineId).subscribe(response => {\n if (response) {\n this.contracts = response['details'];\n this.setActiveContract();\n }\n });\n }\n\n setActiveContract() {\n this.contracts.forEach((x, index) => {\n this.contracts[index] = {\n ...x, name: x.WarehouseLineName + ' ' + moment(new Date(x.StartDate)).format('MM/DD/YYYY') + ' - ' +\n moment(new Date(x.ExpiryDate)).format('MM/DD/YYYY')\n }\n });\n const index = this.contracts.findIndex(x => {\n if (moment(new Date()).isSame(x.StartDate, 'day') ||\n moment(new Date()).isSame(x.ExpiryDate, 'day') ||\n moment(new Date()).startOf('day').isBetween(x.StartDate, x.ExpiryDate, undefined, '[]')) {\n return x;\n }\n });\n if (index != -1) {\n this.currentActiveContract = { ...this.contracts[index] };\n this.data.modalData.contractId = this.currentActiveContract.WarehouseLineContractDetailId;\n this.setStarDateandEndDate(this.currentActiveContract.ExpiryDate);\n } else {\n this.currentActiveContract = null;\n }\n }\n\n setStarDateandEndDate(date) {\n this.data.modalData.StartDate = moment(moment(date).add(1, 'd')).toDate();\n this.data.modalData.ExpiryDate = moment(moment(date).add(1, 'y')).toDate();\n }\n // On contract changed\n contractChanged(contract) {\n this.currentActiveContract = { ...contract };\n this.data.modalData.contractId = this.currentActiveContract.WarehouseLineContractDetailId;\n this.setStarDateandEndDate(this.currentActiveContract.ExpiryDate);\n }\n\n dateChange(ctrl, event) {\n event == null ? '' : event;\n if (event == null)\n this.sharedService.modalSubmitValid = false;\n else {\n this.sharedService.modalSubmitValid = true;\n if (ctrl == 'start' && event && moment(event).startOf('day').isAfter(moment(this.data.modalData.ExpiryDate).startOf('day'))) {\n this.uiHelperService.showSnackBar('Start date should be lesser than end date.', SnackbarConfig.error);\n this.sharedService.modalSubmitValid = false;\n return;\n } \n else if (ctrl != 'start' && event && moment(event).startOf('day').isBefore(moment(this.data.modalData.StartDate).startOf('day'))) {\n this.uiHelperService.showSnackBar('Start date should be lesser than end date.', SnackbarConfig.error);\n this.sharedService.modalSubmitValid = false;\n return;\n } \n else {\n this.sharedService.modalSubmitValid = true;\n }\n }\n }\n}\n","\n\n
\n
\n
\n
\n \n
\n \n Contracts\n \n \n {{ contract?.name }}\n \n \n \n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
","import { Component, EventEmitter, Input, ViewChild, OnDestroy, AfterViewInit } from '@angular/core';\nimport { UiHelperService } from '@wlms-web/ui-kit';\nimport { SnackbarConfig } from '@wlms-web/utils';\nimport { SharedService, DateFormattor, NoRowsOverlayFlags } from '@wlms-web/utils';\nimport { WarehouseLinesService } from '../../../services/whl.service';\nimport { ContractDetails } from './../../../config/table-structure-contracts';\nimport * as moment from 'moment';\nimport { interval, Subscription } from 'rxjs';\nimport { EventService } from 'ag-grid-community';\n\n@Component({\n selector: 'wlms-manage-warehouseline',\n templateUrl: './manage-warehouseline.component.html',\n styleUrls: ['./manage-warehouseline.component.scss']\n})\nexport class ManageWarehouselineComponent implements OnDestroy, AfterViewInit {\n subscription$: Subscription;\n federalCutOff = new Date();\n @Input() data: any;\n @ViewChild('treeGrid') warehouseGrid: any\n detailCellRendererParams: any;\n editType = 'fullRow';\n isAdd = false;\n dummyId = -1;\n noRowsOverlayFlags = { ...NoRowsOverlayFlags };\n rowData = [];\n initialData = [];\n deletedRecords = [];\n suppressRightClickPrivilege: any = false;\n autoGroupColumnDef: any = {\n headerName: '',\n cellRenderer: 'agGroupCellRenderer',\n suppressMovable: true,\n suppressColumnsToolPanel: true,\n suppressMenu: true,\n width: 110,\n active: true,\n sortable: false,\n resizable: false,\n cellRendererParams: {\n suppressCount: true,\n innerRenderer: 'iconFormatRendererComponent',\n }\n };\n warehouseData: any = {};\n columnDefs: any = [...ContractDetails];\n selectedValue: any;\n isDummyRow = false;\n currentActiveRow: any;\n showGrid = false;\n cellEditAbolished = false;\n getDataPath: any;\n treeData = true;\n\n constructor(private sharedService: SharedService,\n private uiHelperService: UiHelperService,\n private warehouseLinesService: WarehouseLinesService\n ) {\n this.subscription$ = this.sharedService.modalClosed.subscribe(response => {\n this.cellEditAbolished = true;\n });\n this.subscription$ = this.sharedService.modalSaved.subscribe(response => {\n if (this.warehouseGrid) {\n this.warehouseGrid.stopEdit();\n }\n this.cellEditAbolished = true;\n this.treeData = false;\n this.getDataPath = false;\n });\n if (!this.cellEditAbolished) {\n this.getDataPath = (data: any) => {\n if (data.hierarchy) {\n return data.hierarchy;\n } else return null;\n };\n }\n }\n\n ngAfterViewInit() {\n this.sharedService.modalSubmitValid = false;\n if (this.data.isEdit) {\n this.showGrid = true;\n this.getWarehouselineData();\n }\n this.updateIndexList();\n }\n\n onGridReady() {\n if (!this.data.isEdit) {\n this.warehouseGrid.setColumnDefs(this.columnDefs);\n this.sharedService.loadGrid.next({ isLoad: false });\n this.warehouseGrid.setRowData([]);\n this.warehouseGrid.suppressEditOnCellClick(true);\n }\n if (this.isAdd) {\n this.warehouseGrid.setRowData(this.rowData);\n this.warehouseGrid.gotoLastPage();\n const rowNodes = this.warehouseGrid.gridApi.rowModel.rowsToDisplay;\n const index = rowNodes.findIndex((x) => x.data.warehouseLineContractDetailId == this.dummyId);\n this.startEditing(rowNodes[index], rowNodes[index].rowIndex);\n this.dummyId--;\n }\n }\n\n getWarehouselineData() {\n this.rowData = [];\n this.sharedService.loadGrid.next({ isLoad: true });\n this.subscription$ = this.warehouseLinesService.getWarehouselineById(this.data.modalData.WarehouseLineId).subscribe(response => {\n if (response) {\n this.warehouseGrid.suppressEditOnCellClick(true);\n this.warehouseData = response['details'];\n this.pushMasterData();\n this.pushChildData();\n this.warehouseGrid.setRowData(this.rowData);\n this.federalCutOff = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(),\n parseInt(this.warehouseData.FederalCutoff.split(':')[0]),\n parseInt(this.warehouseData.FederalCutoff.split(':')[1]));\n }\n this.initialData = [...this.rowData];\n this.sharedService.loadGrid.next({ isLoad: false });\n if (this.rowData.length <= 0) {\n this.showGrid = false;\n }\n });\n }\n\n pushMasterData() {\n this.warehouseData.WarehouseLineContractDetails.forEach((x: any) => {\n const indexes = this.data.indexList.filter(y => y.WarehouseLineIndexId == x.WarehouseLineIndexId)\n const index = indexes.map(y => y.IndexName);\n const row = {\n startDate: x.StartDate,\n endDate: x.ExpiryDate,\n lineLimitAmount: x.LineLimitAmount,\n warehouseLineId: x.WarehouseLineId,\n warehouseLineIndexId: x.WarehouseLineIndexId,\n IndexName: index && index.length > 0 ? index[0] : '',\n warehouseLineContractDetailId: x.WarehouseLineContractDetailId,\n committedTotal: x.CommittedAmount,\n floorRate: x.FloorRate,\n penaltyRate: x.PenaltyRate,\n wetLimitAmount: x.WetLimitAmount,\n isDeleted: x.IsDeleted,\n hierarchy: [x.WarehouseLineContractDetailId],\n isLoansAssigned: x.IsLoansAssigned\n }\n this.rowData.push(row);\n });\n }\n\n pushChildData() {\n this.warehouseData.WarehouseLineContractAmendments.forEach((x: any) => {\n const row = {\n startDate: x.StartDate,\n endDate: x.ExpiryDate,\n lineLimitAmount: x.LineLimitAmount,\n warehouseLineId: '',\n warehouseLineIndexId: '',\n warehouseLineContractAmendmentId: x.WarehouseLineContractAmendmentId,\n warehouseLineContractDetailId: x.WarehouseLineContractDetailId,\n committedTotal: '',\n floorRate: '',\n penaltyRate: '',\n wetLimitAmount: '',\n isDeleted: x.IsDeleted,\n hierarchy: [x.WarehouseLineContractDetailId, x.WarehouseLineContractAmendmentId],\n isLoansAssigned: x.IsLoansAssigned\n }\n this.rowData.push(row);\n });\n }\n\n edit(e) {\n this.isDummyRow = false;\n this.setDateBoundary();\n this.startEditing(e, e.node.rowIndex);\n \n }\n\n startEditing(e, index) {\n this.cellEditAbolished = false;\n this.currentActiveRow = e.rowIndex;\n const x = e;\n this.warehouseGrid.gridApi.forEachNode(node => {\n node.data = { ...node.data, isEditEnabled: false }\n });\n e.data = { ...x.data, isEditEnabled: true }\n e.node ? e.node.data = { ...e.node.data, isEditEnabled: true } : '';\n this.warehouseGrid.refreshActionColumn(e);\n this.warehouseGrid.startEditing(e, index);\n }\n\n onRowEditStopped(params) {\n if (!this.cellEditAbolished) {\n if (this.validateCells(params)) {\n this.modelUpdated();\n this.resetEdit(params);\n } else {\n this.startEditing(params, params.node.rowIndex);\n // this.uiHelperService.showSnackBar('Line limit amount should be greater than zero', SnackbarConfig.error);\n }\n }\n this.isAdd = false;\n }\n\n resetEdit(params) {\n const x = params;\n params.data = { ...x.data, isEditEnabled: false }\n params.node ? params.node.data = { ...params.node.data, isEditEnabled: false } : '';\n this.warehouseGrid.refreshActionColumn(params);\n this.isAdd = false\n }\n\n saveContract(params) {\n params.data = { ...params.data, isEditEnabled: false }\n params.node ? params.node.data = { ...params.node.data, isEditEnabled: false } : '';\n this.warehouseGrid.stopEdit();\n }\n\n undo(params) {\n this.cellEditAbolished = true;\n if (this.isDummyRow) {\n const index = this.rowData.findIndex(x => (x.warehouseLineContractDetailId == this.dummyId + 1 ||\n x.warehouseLineContractAmendmentId == this.dummyId + 1));\n this.rowData.splice(index, 1);\n this.dummyId++;\n } else {\n const rowDataIndex = this.rowData.findIndex(x => (params.data.hierarchy.length == 1 &&\n x.warehouseLineContractDetailId == params.data.warehouseLineContractDetailId) ||\n (params.data.hierarchy.length == 2 &&\n x.warehouseLineContractAmendmentId == params.data.warehouseLineContractAmendmentId));\n const initialDataIndex = this.initialData.findIndex(x => (params.data.hierarchy.length == 1 &&\n x.warehouseLineContractDetailId == params.data.warehouseLineContractDetailId) ||\n (params.data.hierarchy.length == 2 &&\n x.warehouseLineContractAmendmentId == params.data.warehouseLineContractAmendmentId));\n if (initialDataIndex != -1) {\n this.rowData[rowDataIndex] = { ...this.initialData[initialDataIndex] };\n } else {\n this.rowData.splice(rowDataIndex, 1);\n }\n }\n this.isAdd = false;\n params.data = { ...params.data, isEditEnabled: false }\n params.node ? params.node.data = { ...params.node.data, isEditEnabled: false } : '';\n this.warehouseGrid.stopEdit();\n this.warehouseGrid.setRowData(this.rowData);\n if (this.rowData.length <= 0) {\n this.showGrid = false;\n }\n }\n\n updateIndexList() {\n const index = this.columnDefs.findIndex(x => x.field == 'IndexName');\n if (index != -1) {\n this.columnDefs[index] = { ...this.columnDefs[index], cellEditorParams: { values: this.data.indexList.map(y => y.IndexName) } }\n }\n }\n\n onCellEditStopped(event) {\n if (!this.cellEditAbolished) {\n let index;\n if (this.isDummyRow) {\n index = this.rowData.findIndex(x =>\n (x.warehouseLineContractDetailId == this.dummyId + 1 && x.hierarchy.length == 1 && event.data.hierarchy.length == 1) ||\n (x.warehouseLineContractAmendmentId == this.dummyId + 1 && x.hierarchy.length == 2 && event.data.hierarchy.length == 2));\n } else {\n index = this.rowData.findIndex(x =>\n (x.warehouseLineContractDetailId == event.data.warehouseLineContractDetailId &&\n x.hierarchy.length == 1 && event.data.hierarchy.length == 1) ||\n (x.warehouseLineContractAmendmentId == event.data.warehouseLineContractAmendmentId &&\n x.hierarchy.length == 2 && event.data.hierarchy.length == 2));\n }\n if (index != -1) {\n this.rowData[index] = event.data;\n }\n this.warehouseGrid.redrawRows();\n }\n }\n\n validateCells(event) {\n let isValid = true;\n const index = this.data.indexList.findIndex(x => x.IndexName == event.data.IndexName);\n if (index != -1) {\n event.data.warehouseLineIndexId = this.data.indexList[index].WarehouseLineIndexId;\n }\n if (moment(event.data.endDate).startOf('day').isBefore(moment(event.data.startDate).startOf('day'))) {\n this.uiHelperService.showSnackBar('Start date should be less than end date.', SnackbarConfig.error);\n isValid = false;\n }\n else if (event.data.hierarchy.length == 1) {\n isValid = this.doesAmendmentExist(event) &&\n this.doesContractsOverlap(event) &&\n this.isContractWithinNewEntry(event);\n }\n else if (event.data.hierarchy.length == 2) {\n isValid = this.endDateDatePastDate(event) &&\n this.doesAmendmentsOverlap(event) &&\n this.isAmendmentWithinNewEntry(event);\n }\n if (event && event.data && event.data.lineLimitAmount <= 0) {\n this.uiHelperService.showSnackBar('Line limit amount should be greater than zero', SnackbarConfig.error)\n isValid = false;\n }\n return isValid;\n }\n\n endDateDatePastDate(event) {\n const contracts = this.rowData.filter(x => x.warehouseLineContractDetailId == event.data.warehouseLineContractDetailId &&\n x.hierarchy.length == 1);\n if (moment(event.data.endDate).startOf('day').isAfter(moment(contracts[0].endDate).startOf('day'))) {\n this.uiHelperService.showSnackBar('Amendments should be within the contract dates.', SnackbarConfig.error);\n return false;\n } else if (moment(event.data.startDate).startOf('day').isBefore(moment(contracts[0].startDate).startOf('day'))) {\n this.uiHelperService.showSnackBar('Amendments should be within the contract dates.', SnackbarConfig.error);\n return false;\n }\n return true;\n }\n\n doesAmendmentExist(event) {\n const amendments = this.rowData.filter(x => x.warehouseLineContractDetailId == event.data.warehouseLineContractDetailId &&\n x.hierarchy.length == 2);\n const startIndex = amendments.findIndex(x => {\n if (moment(event.data.startDate).startOf('day').isBetween(x.startDate, x.endDate, undefined, '[]') ||\n moment(event.data.startDate).startOf('day').isAfter(moment(x.endDate).startOf('day'))) {\n return x;\n }\n });\n const endIndex = amendments.findIndex(x => {\n if (moment(event.data.endDate).startOf('day').isBetween(x.startDate, x.endDate, undefined, '[]') ||\n moment(event.data.endDate).startOf('day').isBefore(moment(x.endDate).startOf('day'))) {\n return x;\n }\n });\n if (startIndex != -1 || endIndex != -1) {\n this.uiHelperService.showSnackBar('There are amendments before or after the selected duration.', SnackbarConfig.error);\n return false;\n }\n return true;\n }\n\n doesContractsOverlap(event) {\n const amendments = this.rowData.filter(x => x.warehouseLineContractDetailId != event.data.warehouseLineContractDetailId &&\n x.hierarchy.length == 1);\n const startIndex = amendments.findIndex(x => {\n if (moment(event.data.startDate).isSame(x.startDate, 'day') ||\n moment(event.data.startDate).startOf('day').isBetween(x.startDate, x.endDate, undefined, '[]')) {\n return x;\n }\n });\n const endIndex = amendments.findIndex(x => {\n if (moment(event.data.endDate).isSame(x.endDate, 'day') ||\n moment(event.data.endDate).startOf('day').isBetween(x.startDate, x.endDate, undefined, '[]')) {\n return x;\n }\n });\n if (startIndex != -1 || endIndex != -1) {\n this.uiHelperService.showSnackBar('A contract already exist for this duration.', SnackbarConfig.error);\n return false;\n }\n return true;\n }\n\n doesAmendmentsOverlap(event) {\n const amendments = this.rowData.filter(x => x.warehouseLineContractDetailId == event.data.warehouseLineContractDetailId &&\n x.hierarchy.length == 2 && x.warehouseLineContractAmendmentId != event.data.warehouseLineContractAmendmentId);\n const startIndex = amendments.findIndex(x => {\n if (moment(event.data.startDate).isSame(x.startDate, 'day') ||\n moment(event.data.startDate).startOf('day').isBetween(x.startDate, x.endDate, undefined, '[]')) {\n return x;\n }\n });\n const endIndex = amendments.findIndex(x => {\n if (moment(event.data.endDate).isSame(x.endDate, 'day') ||\n moment(event.data.endDate).startOf('day').isBetween(x.startDate, x.endDate, undefined, '[]')) {\n return x;\n }\n });\n if (startIndex != -1 || endIndex != -1) {\n this.uiHelperService.showSnackBar('An amendment already exist for this duration.', SnackbarConfig.error);\n return false;\n }\n return true;\n }\n\n isAmendmentWithinNewEntry(event) {\n const amendments = this.rowData.filter(x => x.warehouseLineContractDetailId == event.data.warehouseLineContractDetailId &&\n x.hierarchy.length == 2 && x.warehouseLineContractAmendmentId != event.data.warehouseLineContractAmendmentId);\n const startIndex = amendments.findIndex(x => {\n if (moment(event.data.startDate).isSame(x.startDate, 'day') ||\n moment(x.startDate).isBetween(moment(event.data.startDate).startOf('day'),\n moment(event.data.endDate).startOf('day'), undefined, '[]')) {\n return x;\n }\n });\n const endIndex = amendments.findIndex(x => {\n if (moment(event.data.endDate).isSame(x.endDate, 'day') ||\n moment(x.endDate).isBetween(moment(event.data.startDate).startOf('day'),\n moment(event.data.endDate).startOf('day'), undefined, '[]')) {\n return x;\n }\n });\n if (startIndex != -1 || endIndex != -1) {\n this.uiHelperService.showSnackBar('An amendment already exist for this duration.', SnackbarConfig.error);\n return false;\n }\n return true;\n }\n\n isContractWithinNewEntry(event) {\n const contracts = this.rowData.filter(x => x.warehouseLineContractDetailId != event.data.warehouseLineContractDetailId &&\n x.hierarchy.length == 1);\n const startIndex = contracts.findIndex(x => {\n if (moment(event.data.startDate).isSame(x.startDate, 'day') ||\n moment(x.startDate).isBetween(moment(event.data.startDate).startOf('day'),\n moment(event.data.endDate).startOf('day'), undefined, '[]')) {\n return x;\n }\n });\n const endIndex = contracts.findIndex(x => {\n if (moment(event.data.endDate).isSame(x.endDate, 'day') ||\n moment(x.endDate).isBetween(moment(event.data.startDate).startOf('day'),\n moment(event.data.endDate).startOf('day'), undefined, '[]')) {\n return x;\n }\n });\n if (startIndex != -1 || endIndex != -1) {\n this.uiHelperService.showSnackBar('A contract already exist for this duration.', SnackbarConfig.error);\n return false;\n }\n return true;\n }\n\n addContract() {\n this.setDateBoundary();\n this.isAdd = true;\n this.isDummyRow = true;\n const row = {\n startDate: new Date(),\n endDate: new Date().setFullYear(new Date().getFullYear() + 1),\n lineLimitAmount: 0,\n warehouseLineId: this.warehouseData.WarehouseLineId,\n warehouseLineIndexId: 0,\n warehouseLineContractDetailId: this.dummyId,\n committedTotal: 0,\n floorRate: 0,\n penaltyRate: 0,\n wetLimitAmount: 0,\n isDeleted: 0,\n hierarchy: [this.dummyId]\n }\n this.rowData.push(row);\n if (this.showGrid) {\n this.warehouseGrid.setRowData(this.rowData);\n this.warehouseGrid.gotoLastPage();\n const rowNodes = this.warehouseGrid.gridApi.rowModel.rowsToDisplay;\n const index = rowNodes.findIndex((x) => x.data.warehouseLineContractDetailId == this.dummyId);\n this.startEditing(rowNodes[index], rowNodes[index].rowIndex);\n this.dummyId--;\n }\n this.showGrid = true;\n }\n\n addAmendment(e) {\n this.isDummyRow = true;\n this.setDateBoundary();\n const contractIndex = this.rowData.findIndex(x => x.warehouseLineContractDetailId == e.data.warehouseLineContractDetailId\n && x.hierarchy.length == 1)\n const startDate = moment(this.rowData[contractIndex].startDate).isBefore(new Date()) ?\n new Date() : new Date(this.rowData[contractIndex].startDate)\n const row = {\n startDate: startDate,\n endDate: new Date(this.rowData[contractIndex].endDate),\n lineLimitAmount: 0,\n warehouseLineId: this.warehouseData.WarehouseLineId,\n warehouseLineIndexId: '',\n warehouseLineContractAmendmentId: this.dummyId,\n warehouseLineContractDetailId: e.data.warehouseLineContractDetailId,\n committedTotal: '',\n floorRate: '',\n penaltyRate: '',\n wetLimitAmount: '',\n isDeleted: 0,\n hierarchy: [e.data.warehouseLineContractDetailId, this.dummyId]\n }\n this.rowData.push(row);\n this.warehouseGrid.setRowData(this.rowData);\n this.enableChildEdit();\n }\n\n enableChildEdit() {\n this.warehouseGrid.gridApi.forEachNode(node => {\n node.allLeafChildren.forEach(child => {\n if (child.data.warehouseLineContractAmendmentId == this.dummyId) {\n node.setExpanded(true);\n }\n })\n });\n setTimeout(() => {\n this.warehouseGrid.gridApi.forEachLeafNode(x => {\n if (x.data.warehouseLineContractAmendmentId == this.dummyId) {\n this.startEditing(x, x.rowIndex);\n }\n })\n this.dummyId--;\n }, 100)\n }\n\n delete(event) {\n this.cellEditAbolished = true;\n this.isAdd = false;\n if ((event.data.hierarchy.length == 1 && event.data.warehouseLineContractDetailId <= 0)) {\n const index = this.rowData.findIndex(x => x.warehouseLineContractDetailId == event.data.warehouseLineContractDetailId);\n if (index != -1) {\n this.rowData.splice(index, 1);\n }\n } else if ((event.data.hierarchy.length == 2 && event.data.warehouseLineContractAmendmentId <= 0)) {\n const index = this.rowData.findIndex(x => x.warehouseLineContractAmendmentId == event.data.warehouseLineContractAmendmentId);\n if (index != -1) {\n this.rowData.splice(index, 1);\n }\n }\n const deletedRecords = this.rowData.filter(x => event.data.warehouseLineContractAmendmentId ?\n x.warehouseLineContractAmendmentId == event.data.warehouseLineContractAmendmentId :\n x.warehouseLineContractDetailId == event.data.warehouseLineContractDetailId\n\n );\n if (deletedRecords.length > 0) {\n this.deletedRecords = this.deletedRecords.concat(deletedRecords);\n this.rowData = this.rowData.filter(item1 => event.data.warehouseLineContractAmendmentId ?\n !deletedRecords.some(item2 => (item2.warehouseLineContractAmendmentId == item1.warehouseLineContractAmendmentId)) :\n !deletedRecords.some(item2 => (item2.warehouseLineContractDetailId == item1.warehouseLineContractDetailId))\n )\n }\n this.warehouseGrid.setRowData(this.rowData);\n this.modelUpdated();\n if (this.rowData.length <= 0) {\n this.showGrid = false;\n }\n }\n\n getMasterData() {\n const rows = [];\n this.rowData.forEach(x => {\n if (x.hierarchy.length == 1) {\n rows.push(this.setContractValues(x, 0));\n }\n });\n this.deletedRecords.forEach(x => {\n if (x.hierarchy.length == 1) {\n rows.push(this.setContractValues(x, 1));\n }\n });\n return rows;\n }\n\n setContractValues(x, isDeleted) {\n return {\n StartDate: moment(x.startDate).utc(true).toISOString(),\n ExpiryDate: moment(x.endDate).utc(true).toISOString(),\n LineLimitAmount: x.lineLimitAmount,\n WarehouseLineId: x.warehouseLineId,\n WarehouseLineIndexId: x.warehouseLineIndexId,\n WarehouseLineContractDetailId: x.warehouseLineContractDetailId >= 0 ? x.warehouseLineContractDetailId : 0,\n CommittedAmount: x.committedTotal,\n FloorRate: x.floorRate,\n PenaltyRate: x.penaltyRate,\n WetLimitAmount: x.wetLimitAmount,\n IsDeleted: isDeleted\n }\n }\n\n getChildData() {\n const rows = [];\n this.rowData.forEach(x => {\n if (x.hierarchy.length == 2) {\n rows.push(this.setAmendmentValues(x, 0));\n }\n });\n this.deletedRecords.forEach(x => {\n if (x.hierarchy.length == 2) {\n rows.push(this.setAmendmentValues(x, 1));\n }\n });\n return rows;\n }\n\n setAmendmentValues(x, isDeleted) {\n return {\n StartDate: moment(x.startDate).utc(true).toISOString(),\n ExpiryDate: moment(x.endDate).utc(true).toISOString(),\n LineLimitAmount: x.lineLimitAmount,\n WarehouseLineContractAmendmentId: x.warehouseLineContractAmendmentId >= 0 ? x.warehouseLineContractAmendmentId : 0,\n WarehouseLineContractDetailId: x.warehouseLineContractDetailId >= 0 ? x.warehouseLineContractDetailId : 0,\n IsDeleted: isDeleted,\n };\n }\n\n federalCutoffChange(value?)\n {\n if(value)\n {\n let old = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(),\n parseInt(this.warehouseData?.FederalCutoff?.split(':')[0]),\n parseInt(this.warehouseData?.FederalCutoff?.split(':')[1]));\n if(value.getTime() != old.getTime())\n {\n this.modelUpdated();\n }\n \n }\n else{\n this.sharedService.modalSubmitValid = false;\n }\n }\n\n modelUpdated(value?) {\n this.sharedService.modalSubmitValid = true;\n if (!this.warehouseData.WarehouseLineName || (this.warehouseData.WarehouseLineName && !this.warehouseData.WarehouseLineName.trim())) {\n this.sharedService.modalSubmitValid = false;\n }\n if (this.warehouseData.WarehouseLineId) {\n if (!this.warehouseData.ShortCode && !this.warehouseData.VendorId) {\n this.warehouseData.TableFunding = false;\n }\n\n }\n\n value ? this.warehouseData.TableFunding = value.target.checked : '';\n\n this.data.modalData = {\n ...this.warehouseData,\n WarehouseLineName: this.warehouseData.WarehouseLineName ? this.warehouseData.WarehouseLineName.trim() : '',\n FederalCutoff: new Date(this.federalCutOff).getHours() + ':' + new Date(this.federalCutOff).getMinutes(),\n TableFunding: value ? value.target.checked : this.warehouseData.TableFunding,\n WarehouseLineContractDetails: this.getMasterData(),\n WarehouseLineContractAmendments: this.getChildData(),\n\n }\n }\n\n setDateBoundary() {\n this.uiHelperService.dateBoundary = {\n minDate: '',\n maxDate: ''\n }\n }\n\n ngOnDestroy() {\n this.subscription$.unsubscribe();\n }\n}\n","
\n
\n
\n \n Name\n \n \n
\n\n
\n \n \n \n
\n\n
\n
\n \n
\n
\n\n
\n \n Comments\n \n \n
\n
\n
\n\n
\n

Contracts

\n \n
\n \n
\n
\n\n\n
\n
\n \n \n
\n
\n

No Contracts Found!

\n
\n
\n
\n
\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport {\n SharedService, NoRowsOverlayFlags, ScreenActionPrivileges, SnackbarConfig, WarehouseLineTabs, GridMaster,\n StorageKey, BrowserStorageService\n} from '@wlms-web/utils';\nimport { WarehouseLinesdetails } from '../../config/table-structure-warehouselines';\nimport { WarehouseLinesService } from '../../services/whl.service';\nimport { UiHelperService } from '@wlms-web/ui-kit';\nimport { ManageWarehouselineComponent } from './manage-warehouseline/manage-warehouseline.component';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\nimport * as _ from 'lodash';\nimport { Router } from '@angular/router';\nimport { CopyWhlContractComponent } from './copy-whl-contract/copy-whl-contract.component';\nimport { ResetPreferenceComponent } from 'libs/ui-kit/src/lib/reset-preference/reset-preference.component';\n\n@Component({\n selector: 'wlms-warehouselines',\n templateUrl: './warehouselines.component.html',\n styleUrls: ['./warehouselines.component.scss']\n})\nexport class WarehouselinesComponent implements OnInit {\n rowData = [];\n columnDefs = [...WarehouseLinesdetails];\n paginationPageSize = 50;\n screenActionPrivileges = ScreenActionPrivileges;\n @Input() suppressActionPrivilege = false;\n @Input() suppressRightClickPrivilege = false;\n noRowsOverlayFlags = { ...NoRowsOverlayFlags };\n @ViewChild('warehouseGrid') warehouseGrid: any;\n @ViewChild('xlModal') xlModal: any;\n indexList = [];\n modalRef?: BsModalRef;\n fundingCutOff = new Date();\n @Output() warehouseReloaded: EventEmitter = new EventEmitter();\n\n preferance: any[] = [];\n filterPreferance: any[] = [];\n filterModel: any;\n \n \n columnMaster = [];\n selectedTabPreference: any[] = [];\n\n constructor(private warehouselinesservice: WarehouseLinesService,\n public sharedService: SharedService,\n public modalService: BsModalService,\n private browserStorageService: BrowserStorageService,\n private router: Router,\n private uiHelperService: UiHelperService) { }\n\n ngOnInit(): void {\n \n this.getColumnMaster();\n this.getWarehouselineData();\n if (this.sharedService.isAuthUser(this.screenActionPrivileges.EditWarehouseline)) {\n this.getIndex();\n }\n this.sharedService.disableRestButton = false;\n this.getUserPreference();\n }\n\n openWarehouseDetail(event) {\n if (event) {\n localStorage.setItem('currentWarehouse', JSON.stringify(event));\n this.router.navigate(['/warehouseline-details']);\n }\n }\n\n getWarehouselineData() {\n this.rowData = [];\n this.sharedService.loadGrid.next({ isLoad: true });\n return this.warehouselinesservice.getWarehouseLines()\n .subscribe(response => {\n this.rowData = [...response['details']];\n this.sharedService.loadGrid.next({ isLoad: false });\n if (this.rowData.length > 0) {\n this.warehouseReloaded.next(this.rowData);\n }\n });\n }\n\n openEditWarehouseLine(event?) {\n const data = {\n isEdit: true,\n modalData: event.data,\n indexList: this.indexList\n };\n const title = 'Edit Warehouseline';\n this.uiHelperService.askConfirmation(ManageWarehouselineComponent, 'modal-xl', title, data, 'Cancel', 'Update',\n (data: any) => {\n this.saveWarehouse(data);\n });\n }\n\n openAddWarehouseLine() {\n const data = {\n isEdit: false,\n modalData: {},\n indexList: this.indexList\n };\n const title = 'Add Warehouseline';\n this.uiHelperService.askConfirmation(ManageWarehouselineComponent, 'modal-xl', title, data, 'Cancel', 'Save',\n (data: any) => {\n this.saveWarehouse(data);\n });\n }\n\n openWlCopyContact(e?) {\n this.sharedService.modalSubmitValid = true;\n const data = {\n isEdit: false,\n modalData: e.data,\n indexList: this.indexList\n };\n const title = 'Add Contract';\n this.uiHelperService.askConfirmation(CopyWhlContractComponent, 'modal-md', title, data, 'Cancel', 'Save',\n (data: any) => {\n const request = {\n \"WarehouseLineContractDetailId\": data.data.modalData.contractId,\n \"WarehouseLineId\": data.data.modalData.WarehouseLineId,\n \"StartDate\": data.data.modalData.StartDate,\n \"ExpiryDate\": data.data.modalData.ExpiryDate\n }\n this.saveContract(request);\n });\n }\n\n saveContract(data) {\n this.warehouselinesservice.copyContract(data).subscribe(response => {\n if (response && response['details'] && response['details'].Status == 1) {\n this.getWarehouselineData();\n this.uiHelperService.showSnackBar('Copied Contracts Successfully', SnackbarConfig.success);\n } else if (response && response['details'] && response['details'].Status == 2) {\n this.uiHelperService.showSnackBar(`Failed to save as the the same contract exists.`, SnackbarConfig.error);\n }\n })\n }\n\n saveWarehouse(data) {\n this.warehouselinesservice.addOrEditWarehouselineById(data.data.modalData).subscribe(response => {\n if (response && response['details'] && response['details'].Status == 1) {\n this.getWarehouseline();\n this.getWarehouselineData();\n this.uiHelperService.showSnackBar('Changes Saved Successfully.', SnackbarConfig.success);\n } else if (response && response['details'] && response['details'].Status == 2) {\n this.uiHelperService.showSnackBar(`Failed to save as the name of the warehouseline is duplicate.`, SnackbarConfig.error);\n }\n })\n }\n\n getWarehouseline() {\n this.warehouselinesservice.GetWarehouseLineDetailsForLoanQueue().subscribe(response => {\n this.sharedService.warehouseLines = [...[...response['details']].map(obj => ({\n warehouseLineId: obj.WarehouseLineId,\n name: obj.WarehouseLineName,\n icon: obj.Icon,\n code: obj.ShortCode,\n vendorId: obj.VendorId\n })),\n { name: 'Unassigned', icon: 'icons_slash.svg', code: null, vendorId: 0 }];\n });\n }\n\n getIndex() {\n this.warehouselinesservice.getIndex().subscribe((response) => {\n if (response) {\n this.indexList = response['details'];\n }\n })\n }\n\n noOverlay(event) {\n this.warehouseGrid.grid.gridOptions.noRowsOverlayComponentParams = {\n noRowsMessageFunc: function () {\n return {\n blankTemplateFlag: 'warehouses',\n };\n }\n };\n }\n\n saveUserPreferences() {\n this.reorderColumnMaster();\n this.collectUserPreferences();\n this.selectedTabPreference = [];\n this.selectedTabPreference.push({\"tabid\": GridMaster.Warehouseline});\n\n const request = {\n Tab: this.selectedTabPreference,\n Column: this.preferance\n };\n \n this.warehouselinesservice.saveUserPreferences(request).subscribe((response: any) => {\n if (response) {\n this.sharedService.userPreferenceChanged = false;\n this.uiHelperService.showSnackBar('User preferences saved successfully', SnackbarConfig.success);\n this.getUserPreference(); \n this.sharedService.disableRestButton = true;\n }\n }, (error) => {\n this.uiHelperService.showSnackBar('Failed to save user preference', SnackbarConfig.error);\n });\n }\n\n getColumnMaster() {\n this.warehouselinesservice.getColumnMaster(GridMaster.Warehouseline).subscribe((response: any) => {\n if (response) {\n this.columnMaster = response.details;\n this.reorderColumnMaster();\n }\n });\n }\n\n reorderColumnMaster() {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n const masterIndex = _.findIndex(this.columnMaster, (master: any) => {\n return master.ColumnName == col.field;\n });\n if (masterIndex != -1) {\n this.columnDefs[index]['ColumnMasterId'] = this.columnMaster[masterIndex].ColumnMasterId;\n }\n });\n }\n\n collectUserPreferences() {\n this.preferance = [];\n const columnState = this.warehouseGrid.getColumnState();\n _.forEach(columnState, (state: any, index: number) => {\n let columnMasterId = null;\n const columnIndex = _.findIndex(this.columnDefs, (col) => {\n return col.field == state.colId;\n });\n if (columnIndex != -1) {\n const col = { ...this.columnDefs[columnIndex] };\n columnMasterId = col['ColumnMasterId'];\n if (columnMasterId > 0) {\n this.preferance.push({\n ColumnMasterId: columnMasterId,\n ColumnOrder: index,\n SortOrder: state.sort,\n GroupOrder: state.rowGroupIndex != null ? state.rowGroupIndex + 1 : state.rowGroupIndex,\n IsVisible: state.hide ? 0 : 1\n });\n }\n }\n });\n }\n\n getUserPreference() {\n if (this.sharedService.isAuthUser(this.screenActionPrivileges.GetWarehouseLineSavePreference)) {\n this.warehouselinesservice.getUserPreferences().subscribe(response => {\n this.persistFilterData();\n if (response) {\n this.preferance = response.details;\n this.sharedService.disableRestButton = this.preferance.map((pref) => pref.TabId).includes(GridMaster.Warehouseline);\n this.setPreference()\n \n }\n });\n }\n }\n\n setPreference() {\n this.reorderColumnMaster();\n const tabPreference = _.filter(this.preferance, (pref: any) => {\n return pref.TabId == GridMaster.Warehouseline;\n });\n if (tabPreference && tabPreference.length > 0) {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n const prefColumn = _.filter(tabPreference, (pref: any) => {\n return pref.ColumnMasterId == col.ColumnMasterId;\n });\n const column = { ...this.columnDefs[index] };\n this.columnDefs[index] = this.updateColumnProps(prefColumn, column);\n });\n const sortedCols = _.sortBy(this.columnDefs, (col: any) => {\n return col['ColumnOrder'];\n });\n this.columnDefs = [...sortedCols];\n } else {\n this.columnDefs = [...WarehouseLinesdetails];\n }\n }\n\n updateColumnProps(prefColumn, column) {\n if (prefColumn && prefColumn.length > 0) {\n column['sort'] = prefColumn[0].SortOrder;\n column['ColumnOrder'] = prefColumn[0].ColumnOrder;\n column['hide'] = prefColumn[0].IsVisible == 1 ? false : true;\n if (prefColumn[0].GroupOrder > 0) {\n column['rowGroup'] = true;\n column['rowGroupIndex'] = prefColumn[0].GroupOrder - 1;\n } else {\n column['rowGroup'] = false;\n }\n }\n return column;\n }\n\n persistFilterData() {\n this.filterPreferance = [];\n this.filterModel = [];\n this.filterPreferance = this.browserStorageService.getLocalStorageValue(StorageKey.FILTERMODEL);\n const currentFilterData = this.filterPreferance ? this.filterPreferance.filter(x => x.tabId === GridMaster.Warehouseline)[0] : null;\n if (currentFilterData) {\n this.filterModel = currentFilterData.filterData;\n this.warehouseGrid.setFilterModel(this.filterModel);\n }\n else {\n this.warehouseGrid.setFilterModel(null);\n }\n }\n\n isUserPreferenceChanged() {\n return this.warehouseGrid && this.warehouseGrid.isUserPreferenceChanged();\n }\n\n showResetUserPreferenceModal() {\n \n const title = \" Reset Columns to the default/userPreference View\";\n\n const data = {\n \"message\": \"You are about to reset WarehouseLine Columns to the default/userPreference View.\",\n enablePreference: this.sharedService.disableRestButton,\n action : this.sharedService.disableRestButton ? 1: 0,\n };\n this.uiHelperService.askConfirmation(ResetPreferenceComponent, 'modal-lg', title, data, 'Cancel', 'Reset Preference', (data: any) => {\n this.resetUserPreference(data.data.action);\n });\n \n }\n \n resetUserPreference(action) {\n \n if(action ==0)\n {\n const request = {\n TabId: GridMaster.Warehouseline,\n \n };\n \n this.warehouselinesservice.ResetUserPreference(request).subscribe((response: any) => {\n let responseDetails = response.details;\n if (responseDetails.Response == \"Success\") {\n \n this.sharedService.disableRestButton = false;\n this.uiHelperService.showSnackBar('Grid has been reset to default view successfully', SnackbarConfig.success);\n this.getUserPreference();\n }\n }, (error) => {\n this.uiHelperService.showSnackBar('Failed to reset user preference', SnackbarConfig.error);\n });\n }\n else{\n \n this.getUserPreference();\n\n this.uiHelperService.showSnackBar('Grid has been reset to saved user preference view successfully', SnackbarConfig.success);\n }\n \n }\n\n}\n","\n\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport { OverrideType, SharedService, SnackbarConfig } from '@wlms-web/utils';\nimport * as moment from 'moment';\nimport { UiHelperService } from '@wlms-web/ui-kit';\n\n\n@Component({\n selector: 'wlms-edit-wet-overrides',\n templateUrl: './edit-wet-overrides.component.html',\n styleUrls: ['./edit-wet-overrides.component.scss']\n})\nexport class EditWetOverridesComponent implements OnInit {\n @Input() data;\n OverrideType = [...OverrideType];\n showValueTypeFirst = false;\n amountType: any = '';\n constructor(private sharedService: SharedService,\n private uiHelperService: UiHelperService) { }\n\n ngOnInit(): void {\n if(this.data.wetOverridesData.WarehouseLineWetOverridesId && this.data.wetOverridesData.WarehouseLineWetOverridesId > 0){\n this.sharedService.modalSubmitValid = true;\n }\n else{\n this.sharedService.modalSubmitValid = false;\n } \n }\n\n amountChanged(event) {\n if(this.data.wetOverridesData && this.data.wetOverridesData.OverrideValueFirst >0\n && this.data.wetOverridesData.OverrideValueMid >0\n && this.data.wetOverridesData.OverrideValueLast >0){\n this.sharedService.modalSubmitValid = true;\n }\n else {\n this.sharedService.modalSubmitValid = false;\n }\n }\n\n amountValueChanged(event) {\n if (event && event.target.value <= 0) {\n this.uiHelperService.showSnackBar('Amount should be greater than 0.', SnackbarConfig.error);\n this.sharedService.modalSubmitValid = false;\n }\n }\n\n}\n","
\n
\n
\n
\n
\n
\n \n
\n
\n ${{\n data.wetOverridesData.LineLimit\n }}\n
\n
\n
\n\n
\n
\n
\n \n Override Type (First 5 BD)\n \n \n {{ type.name }}\n \n \n \n
\n
\n\n
\n \n Select Override Type (First 5 BD)\n Override % (First 5 BD)\n Override $ (First 5 BD)\n \n \n
\n\n
\n
\n \n Override Method (Mid Month +/- 5 BD)\n \n \n {{ type.name }}\n \n \n \n
\n
\n\n
\n \n Select Override Type (Mid Month +/- 5 BD)\n Override % (Mid Month +/- 5 BD)\n \n Override $ (Mid Month +/- 5 BD)\n \n \n \n
\n\n
\n
\n \n Override Method (Last 5 BD)\n \n \n {{ type.name }}\n \n \n \n
\n
\n\n
\n \n Select Override Type (Last 5 BD)\n Override % (Last 5 BD)\n Override $ (Last 5 BD)\n \n \n
\n\n
\n \n Comments\n \n \n
\n
\n
","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { WarehouseLineswetOverridesdetails } from '../../config/table-structure-wet-overrides';\nimport {\n SharedService, NoRowsOverlayFlags, ScreenActionPrivileges, SnackbarConfig, OverrideType, GridMaster,\n StorageKey, BrowserStorageService\n} from '@wlms-web/utils';\nimport { WarehouseLinesService } from '../../services/whl.service';\nimport { UiHelperService } from '@wlms-web/ui-kit';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { Router } from '@angular/router';\nimport { EditWetOverridesComponent } from './edit-wet-overrides/edit-wet-overrides.component';\nimport * as _ from 'lodash';\nimport { ResetPreferenceComponent } from 'libs/ui-kit/src/lib/reset-preference/reset-preference.component';\n\n@Component({\n selector: 'wlms-wet-overrides',\n templateUrl: './wet-overrides.component.html',\n styleUrls: ['./wet-overrides.component.scss']\n})\nexport class WetOverridesComponent implements OnInit {\n rowData = [];\n response = [];\n columnDefs = [...WarehouseLineswetOverridesdetails];\n paginationPageSize = 50;\n screenActionPrivileges = ScreenActionPrivileges;\n @Input() suppressActionPrivilege = false;\n @Input() suppressRightClickPrivilege = false;\n noRowsOverlayFlags = { ...NoRowsOverlayFlags };\n @ViewChild('wetOverridesGrid') wetOverridesGrid: any;\n @Output() warehouseReloaded: EventEmitter = new EventEmitter();\n overrideType = [...OverrideType];\n\n preferance: any[] = [];\n filterPreferance: any[] = [];\n filterModel: any;\n \n columnMaster = [];\n selectedTabPreference: any[] = [];\n\n constructor(private warehouselinesservice: WarehouseLinesService,\n public sharedService: SharedService,\n public modalService: BsModalService,\n private browserStorageService: BrowserStorageService,\n private router: Router,\n private uiHelperService: UiHelperService) { }\n\n ngOnInit(): void {\n this.sharedService.disableRestButton = false;\n this.getColumnMaster();\n this.getAllWetOverrideDetails();\n this.getUserPreference();\n }\n\n getAllWetOverrideDetails() {\n this.rowData = [];\n this.sharedService.loadGrid.next({ isLoad: true });\n return this.warehouselinesservice.getAllWetOverrideDetails()\n .subscribe(response => {\n this.response = [...response['details']];\n this.response.forEach(x => {\n if (x.OverrideTypeFirst == 1) {\n x.OverRideTypeNameFirst = this.overrideType.filter(o => o.id == x.OverrideTypeFirst)[0].name;\n x.OverridePercentageFirst = x.OverrideValueFirst;\n x.OverrideAmountFirst = (x.LineLimit * x.OverrideValueFirst) / 100;\n }\n else if (x.OverrideTypeFirst == 2) {\n x.OverRideTypeNameFirst = this.overrideType.filter(o => o.id == x.OverrideTypeFirst)[0].name;\n x.OverrideAmountFirst = x.OverrideValueFirst;\n }\n if (x.OverrideTypeMid == 1) {\n x.OverRideTypeNameMid = this.overrideType.filter(o => o.id == x.OverrideTypeMid)[0].name;\n x.OverridePercentageMid = x.OverrideValueMid;\n x.OverrideAmountMid = (x.LineLimit * x.OverrideValueMid) / 100;\n }\n else if (x.OverrideTypeMid == 2) {\n x.OverRideTypeNameMid = this.overrideType.filter(o => o.id == x.OverrideTypeMid)[0].name;\n x.OverrideAmountMid = x.OverrideValueMid;\n }\n if (x.OverrideTypeLast == 1) {\n x.OverRideTypeNameLast = this.overrideType.filter(o => o.id == x.OverrideTypeLast)[0].name;\n x.OverridePercentageLast = x.OverrideValueLast;\n x.OverrideAmountLast = (x.LineLimit * x.OverrideValueLast) / 100;\n }\n else if (x.OverrideTypeLast == 2) {\n x.OverRideTypeNameLast = this.overrideType.filter(o => o.id == x.OverrideTypeLast)[0].name;\n x.OverrideAmountLast = x.OverrideValueLast;\n }\n })\n this.rowData = [...this.response];\n this.sharedService.loadGrid.next({ isLoad: false });\n });\n }\n\n openEditWetOverrides(event) {\n const data = {\n isEdit: true,\n wetOverridesData: { ...event.data }\n };\n const title = 'Edit Wet Overrides';\n this.uiHelperService.askConfirmation(EditWetOverridesComponent, 'modal-lg', title, data, 'Cancel', 'Update',\n (data: any) => {\n this.updateWetOverrides(data);\n });\n }\n\n updateWetOverrides(data) {\n this.warehouselinesservice.UpdateWhWetOverride(data.data.wetOverridesData).subscribe(response => {\n if (response && response['details'] && response['details'].Status == 1) {\n this.getAllWetOverrideDetails();\n this.uiHelperService.showSnackBar('Updated Wet Overrides Successfully', SnackbarConfig.success);\n }\n })\n }\n\n saveUserPreferences() {\n this.reorderColumnMaster();\n this.collectUserPreferences();\n this.selectedTabPreference = [];\n this.selectedTabPreference.push({\"tabid\": GridMaster.WetOverride});\n const request = {\n Tab: this.selectedTabPreference,\n Column: this.preferance\n };\n \n this.warehouselinesservice.saveUserPreferences(request).subscribe((response: any) => {\n if (response) {\n this.sharedService.userPreferenceChanged = false;\n this.uiHelperService.showSnackBar('User preferences saved successfully', SnackbarConfig.success);\n this.getUserPreference();\n this.sharedService.disableRestButton = true;\n }\n }, (error) => {\n this.uiHelperService.showSnackBar('Failed to save user preference', SnackbarConfig.error);\n });\n }\n\n getColumnMaster() {\n this.warehouselinesservice.getColumnMaster(GridMaster.WetOverride).subscribe((response: any) => {\n if (response) {\n this.columnMaster = response.details;\n this.reorderColumnMaster();\n }\n });\n }\n\n reorderColumnMaster() {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n const masterIndex = _.findIndex(this.columnMaster, (master: any) => {\n return master.ColumnName == col.field;\n });\n if (masterIndex != -1) {\n this.columnDefs[index]['ColumnMasterId'] = this.columnMaster[masterIndex].ColumnMasterId;\n }\n });\n }\n\n collectUserPreferences() {\n this.preferance = [];\n const columnState = this.wetOverridesGrid.getColumnState();\n _.forEach(columnState, (state: any, index: number) => {\n let columnMasterId = null;\n const columnIndex = _.findIndex(this.columnDefs, (col) => {\n return col.field == state.colId;\n });\n if (columnIndex != -1) {\n const col = { ...this.columnDefs[columnIndex] };\n columnMasterId = col['ColumnMasterId'];\n if (columnMasterId > 0) {\n this.preferance.push({\n ColumnMasterId: columnMasterId,\n ColumnOrder: index,\n SortOrder: state.sort,\n GroupOrder: state.rowGroupIndex != null ? state.rowGroupIndex + 1 : state.rowGroupIndex,\n IsVisible: state.hide ? 0 : 1\n });\n }\n }\n });\n }\n\n getUserPreference() {\n if (this.sharedService.isAuthUser(this.screenActionPrivileges.GetWetOverRidesTabSavePreference)) {\n this.warehouselinesservice.getUserPreferences().subscribe(response => {\n this.persistFilterData();\n if (response) {\n this.preferance = response.details;\n this.sharedService.disableRestButton = this.preferance.map((pref) => pref.TabId).includes(GridMaster.WetOverride);\n this.setPreference()\n }\n });\n }\n }\n\n setPreference() {\n this.reorderColumnMaster();\n const tabPreference = _.filter(this.preferance, (pref: any) => {\n return pref.TabId == GridMaster.WetOverride;\n });\n if (tabPreference && tabPreference.length > 0) {\n _.forEach(this.columnDefs, (col: any, index: number) => {\n const prefColumn = _.filter(tabPreference, (pref: any) => {\n return pref.ColumnMasterId == col.ColumnMasterId;\n });\n const column = { ...this.columnDefs[index] };\n this.columnDefs[index] = this.updateColumnProps(prefColumn, column);\n });\n const sortedCols = _.sortBy(this.columnDefs, (col: any) => {\n return col['ColumnOrder'];\n });\n this.columnDefs = [...sortedCols];\n } else {\n this.columnDefs = [...WarehouseLineswetOverridesdetails];\n }\n }\n\n updateColumnProps(prefColumn, column) {\n if (prefColumn && prefColumn.length > 0) {\n column['sort'] = prefColumn[0].SortOrder;\n column['ColumnOrder'] = prefColumn[0].ColumnOrder;\n column['hide'] = prefColumn[0].IsVisible == 1 ? false : true;\n if (prefColumn[0].GroupOrder > 0) {\n column['rowGroup'] = true;\n column['rowGroupIndex'] = prefColumn[0].GroupOrder - 1;\n } else {\n column['rowGroup'] = false;\n }\n }\n return column;\n }\n\n persistFilterData() {\n this.filterPreferance = [];\n this.filterModel = [];\n this.filterPreferance = this.browserStorageService.getLocalStorageValue(StorageKey.FILTERMODEL);\n const currentFilterData = this.filterPreferance ? this.filterPreferance.filter(x => x.tabId === GridMaster.WetOverride)[0] : null;\n if (currentFilterData) {\n this.filterModel = currentFilterData.filterData;\n this.wetOverridesGrid.setFilterModel(this.filterModel);\n }\n else {\n this.wetOverridesGrid.setFilterModel(null);\n }\n }\n\n isUserPreferenceChanged() {\n return this.wetOverridesGrid && this.wetOverridesGrid.isUserPreferenceChanged();\n }\n showResetUserPreferenceModal() {\n \n const title = \" Reset Columns to the default/userPreference View\";\n\n const data = {\n \"message\": \"You are about to reset WetOverRides Columns to the default/userPreference View.\",\n enablePreference: this.sharedService.disableRestButton ,\n action : this.sharedService.disableRestButton ? 1: 0,\n };\n this.uiHelperService.askConfirmation(ResetPreferenceComponent, 'modal-lg', title, data, 'Cancel', 'Reset Preference', (data: any) => {\n this.resetUserPreference(data.data.action);\n });\n \n }\n \n resetUserPreference(action) {\n \n if(action ==0)\n {\n const request = {\n TabId: GridMaster.WetOverride,\n \n };\n \n this.warehouselinesservice.ResetUserPreference(request).subscribe((response: any) => {\n let responseDetails = response.details;\n if (responseDetails.Response == \"Success\") {\n this.sharedService.disableRestButton = false;\n this.uiHelperService.showSnackBar('Grid has been reset to default view successfully', SnackbarConfig.success);\n this.getUserPreference();\n }\n }, (error) => {\n this.uiHelperService.showSnackBar('Failed to reset user preference', SnackbarConfig.error);\n });\n }\n else{\n \n this.getUserPreference();\n\n this.uiHelperService.showSnackBar('Grid has been reset to saved user preference view successfully', SnackbarConfig.success);\n }\n \n }\n}\n","\n\n","import { Component, OnInit, ViewChild, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { WarehouseLinesService } from '../services/whl.service';\nimport { TimeAvailability } from '../config/table-structure-time-availability';\nimport {\n SharedService, NoRowsOverlayFlags, ScreenActionPrivileges, SnackbarConfig, WarehouseLineTabs,\n BrowserStorageService\n} from '@wlms-web/utils';\nimport { WarehouseLineCapacity } from '../models/whl-capacity.model';\nimport { Router } from '@angular/router';\nimport { UiHelperService, AlertModalComponent } from '@wlms-web/ui-kit';\nimport * as _ from 'lodash';\nimport { ManageTimeSlotComponent } from './manage-time-slot/manage-time-slot.component';\nimport { WarehouseLinesdetails } from '../config/table-structure-warehouselines';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'wlms-whl-summary',\n templateUrl: './whl-summary.component.html',\n styleUrls: ['./whl-summary.component.scss']\n})\n\nexport class WarehouselineDetailGridviewComponent implements OnInit, AfterViewInit {\n subscription$: Subscription;\n wlCapacityList: any;\n rowData = [];\n columnDefs = [];\n allDataException = [];\n paginationPageSize = 50;\n tabList = [];\n selectedTab = 0;\n tileList: any = [];\n screenActionPrivileges = ScreenActionPrivileges;\n suppressActionPrivilege = false;\n suppressRightClickPrivilege = false;\n noRowsOverlayFlags = { ...NoRowsOverlayFlags };\n editType = '';\n @ViewChild('mainGrid') warehouseGrid: any;\n selectedIndices: any = [];\n indexList = [];\n editedWarehouseLines = [];\n timeAvailabltyList = [];\n timeSlots = [];\n @ViewChild('warehouseTab') warehouseTab: any;\n @ViewChild('dailyCapTab') dailyCapTab: any;\n @ViewChild('wetOverrideTab') wetOverrideTab: any;\n deletedRecords = [];\n isAdd = false;\n dummyId = -1;\n warehouseLines = [];\n cutOffCheck: boolean;\n ferderaltime: string;\n selected: boolean;\n\n constructor(private warehouselinesservice: WarehouseLinesService,\n public sharedService: SharedService,\n private uiHelperService: UiHelperService,\n private cdRef: ChangeDetectorRef,\n private browserStorageService: BrowserStorageService,\n private router: Router) {\n this.wlCapacityList = new WarehouseLineCapacity();\n }\n\n ngOnInit(): void {\n this.sharedService.userPreferenceChanged = false;\n this.subscription$ = this.sharedService.tabChange.subscribe((response: any) => {\n if (response.isLabelDisplayed) {\n this.selectedIndices = [];\n this.editedWarehouseLines = [];\n this.deletedRecords = [];\n this.selectedTab = response.index;\n this.getCurrentTabData();\n this.setTabLevelPrivileges();\n this.sharedService.userPreferenceChanged = false;\n this.cdRef.detectChanges();\n }\n });\n this.getWarehouseline()\n this.tabList = [...WarehouseLineTabs].filter((x: any) => this.sharedService.isAuthUser(x.privilegeKey));\n this.setTabLevelPrivileges();\n }\n\n ngAfterViewInit() {\n this.cdRef.detectChanges();\n }\n\n getWarehouseline() {\n this.subscription$ = this.warehouselinesservice.GetWarehouseLineDetailsForLoanQueue().subscribe(response => {\n if (response) {\n this.sharedService.warehouseLines = [...[...response['details']].map(obj => ({\n warehouseLineId: obj.WarehouseLineId,\n name: obj.WarehouseLineName,\n icon: obj.Icon,\n code: obj.ShortCode,\n vendorId: obj.VendorId,\n fundingCutoff:obj.FundingCutoff,\n federalCutoff:obj.FederalCutoff\n })),\n { name: 'Unassigned', icon: 'icons_slash.svg', code: null, vendorId: 0 }];\n }\n });\n }\n\n setTabLevelPrivileges() {\n this.suppressRightClickPrivilege = !this.sharedService.isAuthUser(this.tabList[this.selectedTab].suppressRightClickPrivilege);\n this.suppressActionPrivilege = !this.sharedService.isAuthUser(this.tabList[this.selectedTab].suppressActionPrivilege);\n this.uiHelperService.numericValidatorType = this.tabList[this.selectedTab].numericValidatorType;\n }\n\n setCapacityTile(data) {\n this.tileList[0] = {\n label: 'Line Limit Amount',\n value: data.map(a => a.LineLimitAmount ? a.LineLimitAmount : 0).reduce((a, b) => { return parseFloat(a) + parseFloat(b); }),\n remainingPercentage: null\n };\n this.tileList[1] = {\n label: 'Amended Line Limit Amount',\n value: data.map(a => a.AmendedLineLimitAmount ? a.AmendedLineLimitAmount : 0).\n reduce((a, b) => { return parseFloat(a) + parseFloat(b); }),\n remainingPercentage: null\n };\n this.tileList[2] = {\n label: 'Funded Today',\n value: data.map(a => a.CommittedAmount ? a.CommittedAmount : 0).reduce((a, b) => { return parseFloat(a) + parseFloat(b); }),\n remainingPercentage: null\n };\n this.tileList[3] = {\n label: 'Uncommitted Amount',\n value: data.map(a => a.UncommittedAmount ? a.UncommittedAmount : 0).reduce((a, b) => { return parseFloat(a) + parseFloat(b); }),\n remainingPercentage: null\n };\n this.tileList[4] = {\n label: 'Outstanding Amount',\n value: data.map(a => a.OutStandingAmount ? a.OutStandingAmount : 0).\n reduce((a, b) => { return parseFloat(a) + parseFloat(b); }),\n remainingPercentage: null\n };\n this.tileList[5] = {\n label: 'Available Amount',\n value: data.map(a => a.AvailableAmount ? a.AvailableAmount : 0).reduce((a, b) => { return parseFloat(a) + parseFloat(b); }),\n remainingPercentage: null\n };\n\n }\n\n getCurrentTabData() {\n if (this.tabList[this.selectedTab].code == 'timeAvailability') {\n this.getTimeAvailability();\n }\n }\n\n getTimeAvailability() {\n this.rowData = [];\n this.sharedService.loadGrid.next({ isLoad: true });\n this.warehouselinesservice.getTimeAvailability().subscribe(response => {\n if (response) {\n this.timeAvailabltyList = [...response['details']];\n this.setEndDate(this.timeAvailabltyList);\n this.setTimeAvailabilityData();\n this.sharedService.loadGrid.next({ isLoad: false });\n }\n });\n }\n\n setEndDate(timedataresponse)\n {\n this.sharedService.dayEnd= moment.max(timedataresponse.map(x=> moment(new Date(new Date().getFullYear(), \n new Date().getMonth(), new Date().getDate(),\n parseInt(x.FederalCutoff.split(':')[0]),\n parseInt(x.FederalCutoff.split(':')[1]))))).format(\"HH:mm:ss\");\n }\n\n setTimeAvailabilityData() {\n this.columnDefs = [...TimeAvailability];\n this.timeAvailabltyList.sort((a, b) => {\n return new Date(new Date().toDateString() + ' ' + a.FromTime).getTime() -\n new Date(new Date().toDateString() + ' ' + b.FromTime).getTime()\n });\n const timeList = this.timeAvailabltyList.filter((x: any) => x.IsDeleted != 1 && x.WarehouseLineTimeAvailabilityId > 0)\n const mainCols: any = _.groupBy(timeList, 'TimePeriodType');\n this.getTimeAvailabilityColumnDefs(mainCols, true);\n this.timeAvailabltyList = this.timeAvailabltyList.filter(x => x.TimePeriodTypeInd != 0);\n const warehouseEntries = [...Object.entries(_.groupBy(timeList, 'WarehouseLineId'))];\n const newWarehouseLines = this.timeAvailabltyList.filter((x: any) => x.WarehouseLineTimeAvailabilityId <= 0)\n const rows = this.getTimeAvailabilityRows(warehouseEntries);\n const newRows = this.getTimeAvailabilityRows(Object.entries(_.groupBy(newWarehouseLines, 'WarehouseLineId')));\n this.rowData = rows.concat(newRows);\n this.warehouseGrid.setRowData(this.rowData);\n }\n\n resetTimeAvailabilityData() {\n this.columnDefs = [...TimeAvailability];\n this.timeAvailabltyList.sort((a, b) => {\n return new Date(new Date().toDateString() + ' ' + a.FromTime).getTime() -\n new Date(new Date().toDateString() + ' ' + b.FromTime).getTime()\n });\n const timeList = this.timeAvailabltyList.filter((x: any) => x.IsDeleted != 1)\n const mainCols: any = _.groupBy(timeList, 'TimePeriodType');\n this.getTimeAvailabilityColumnDefs(mainCols, false);\n const warehouseEntries = [...Object.entries(_.groupBy(timeList, 'WarehouseLineId'))];\n this.rowData = [...this.getTimeAvailabilityRows(warehouseEntries)];\n this.warehouseGrid.setRowData(this.rowData);\n }\n\n getTimeAvailabilityColumnDefs(mainCols, isNew) {\n const timeSlotGrouped = { ...mainCols, ..._.groupBy(mainCols.Custom, 'FromTime') };\n delete timeSlotGrouped['Custom'];\n isNew ? this.seedTimingsForNewWarehouses(timeSlotGrouped) : '';\n const timeSlots = _.filter(this.columnDefs, (x: any) => {\n return x.colId == 'timeSlots'\n });\n _.forEach([...Object.keys(timeSlotGrouped)], (x: any) => {\n this.columnDefs.push({\n ...timeSlots[0], field: x, headerName: this.customiseHeader(x),\n hide: false, suppressFiltersToolPanel: false, suppressColumnsToolPanel: false,\n editable: this.sharedService.isAuthUser(ScreenActionPrivileges.EditTimeAvailabilityTab)\n });\n });\n if(this.columnDefs)\n {\n this.warehouseGrid.setColumnDefs(this.columnDefs);\n }\n \n this.warehouseGrid.reSizeToFit();\n }\n\n seedTimingsForNewWarehouses(timeSlotGrouped) {\n let newEntries = [];\n let dummyId = -1;\n const newWarehouseLines = this.timeAvailabltyList.filter((x: any) => x.WarehouseLineTimeAvailabilityId == 0);\n _.forEach(newWarehouseLines, wh => {\n newEntries = [];\n _.forEach(timeSlotGrouped, x => {\n wh = {\n ...wh, AvailabilityRanking: 0,\n FromTime: x[0].FromTime,\n EndTime: x[0].EndTime,\n IsDeleted: 0,\n TimePeriodType: x[0].TimePeriodType,\n TimePeriodTypeInd: x[0].TimePeriodTypeInd,\n WarehouseLineTimeAvailabilityId: dummyId,\n IsAdded: 1\n };\n newEntries.push(wh);\n dummyId--;\n });\n this.editedWarehouseLines = this.editedWarehouseLines.concat(newEntries);\n this.timeAvailabltyList = this.timeAvailabltyList.concat(newEntries);\n });\n }\n\n // Customise column headers in time availability grid\n customiseHeader(header) {\n if (header == 'PrefundPurch') {\n return 'Prefund Purchase Loan';\n } else if (header != 'Prefund') {\n const dt = new Date(new Date().toDateString() + ' ' + header)\n return ((dt.getHours() % 12) || 12) + ':' + (dt.getMinutes() < 10 ? '0' : '') + dt.getMinutes() + ' '\n + (dt.getHours() >= 12 ? 'pm PST' : 'am PST');\n } else {\n return header;\n }\n }\n\n // Set rows for time availability grid\n getTimeAvailabilityRows(warehouseEntries) {\n const rowValues = [];\n _.forEach(warehouseEntries, (x: any) => {\n let row = {\n WarehouseLineName: x[1][0].WarehouseLineName,\n WarehouseLineCode: x[1][0].WarehouseLineCode,\n WarehouseLineId: x[1][0].WarehouseLineId,\n FederalCutoff: x[1][0].FederalCutoff,\n }\n _.forEach(x[1], (y: any) => {\n y[y.FromTime] = 0\n row = {\n ...row, [y.FromTime]: y.AvailabilityRanking, [y.TimePeriodType]: y.AvailabilityRanking\n }\n });\n rowValues.push({ ...row });\n });\n return rowValues;\n }\n\n onCellEditStarted(event) {\n this.uiHelperService.acceptableList = [];\n if (this.tabList[this.selectedTab].code == 'timeAvailability') {\n this.uiHelperService.maxValueForNumericEditor = 9;\n this.uiHelperService.acceptableList = this.rowData.map((x: any) => x[event.column.colDef.field]);\n this.uiHelperService.acceptableList.splice(this.uiHelperService.acceptableList.findIndex((x: any) => x == event.value), 1);\n } else {\n this.uiHelperService.maxValueForNumericEditor = null;\n }\n }\n\n onCellEditStopped(event) {\n const rowNodes = this.warehouseGrid.gridApi.rowModel.rowsToDisplay;\n const isDuplicate = parseInt(event.value) > 0 ? this.uiHelperService.acceptableList.includes(parseInt(event.value)) : false;\n \n if (this.tabList[this.selectedTab].code == 'timeAvailability' && event.oldValue != event.newValue) {\n \n \n if(event?.data?.FederalCutoff && event.colDef.field != 'PrefundPurch' && event.colDef.field != 'Prefund')\n {\n this.cutOffCheck = false;\n this.selected = true;\n const selectTimeSlot = new Date(new Date().toDateString() + ' ' + event.colDef.field).getTime();\n const federalCutoff = new Date(new Date().toDateString() + ' ' + event.data.FederalCutoff).getTime();\n this.ferderaltime = moment(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(),\n parseInt(event.data.FederalCutoff.split(':')[0]),\n parseInt(event.data.FederalCutoff.split(':')[1]))).format('hh:mm A');\n if(selectTimeSlot > federalCutoff && event.data[event.colDef.field] > 0)\n {\n this.cutOffCheck = true;\n }\n else{\n this.cutOffCheck = false;\n }\n }\n this.manageEditedDataForTimeAvailablity(event, isDuplicate,this.cutOffCheck);\n \n if(this.cutOffCheck)\n {\n if(event.oldValue ==0)\n { \n this.selected = false;\n } \n }\n rowNodes.forEach(node => {\n if (node.data && event.data.WarehouseLineId == node.data.WarehouseLineId && !isDuplicate && this.selected ) {\n !this.selectedIndices.includes(node.id) ? this.selectedIndices.push(node.id) : '';\n }\n });\n }\n this.warehouseGrid.setSelected();\n this.warehouseGrid.redrawRows();\n }\n\n manageEditedDataForTimeAvailablity(event, isDuplicate, cutoffcheck) {\n \n if(cutoffcheck )\n {\n event.data[event.colDef.field] = 0;\n this.uiHelperService.showSnackBar('Time availability periods must occur before the Federal Bank cutoff of '+ this.ferderaltime +' PST',\n SnackbarConfig.error);\n \n } \n else if (isDuplicate) {\n event.data[event.colDef.field] = event.oldValue;\n this.uiHelperService.showSnackBar('Reseting to previous value as the priority has already been assigned to a different warehouseline',\n SnackbarConfig.error);\n } else {\n const editedRecord = this.timeAvailabltyList.filter((x: any) => {\n if (event.colDef.field == 'PrefundPurch' || event.colDef.field == 'Prefund') {\n return x.TimePeriodType == event.colDef.field && x.WarehouseLineId == event.data.WarehouseLineId && x.IsDeleted == 0;\n } else {\n return x.FromTime == event.colDef.field && x.WarehouseLineId == event.data.WarehouseLineId &&\n x.TimePeriodType == 'Custom' && x.IsDeleted == 0;\n }\n });\n if (editedRecord.length > 0) {\n this.updateEditedRecordsToList(editedRecord, event);\n }\n }\n }\n\n updateEditedRecordsToList(editedRecord, event) {\n const index = this.editedWarehouseLines.findIndex((x: any) =>\n x.WarehouseLineTimeAvailabilityId == editedRecord[0].WarehouseLineTimeAvailabilityId &&\n x.TimePeriodTypeInd == editedRecord[0].TimePeriodTypeInd &&\n x.WarehouseLineId == editedRecord[0].WarehouseLineId);\n if (index != -1) {\n this.editedWarehouseLines[index] = {\n ...this.editedWarehouseLines[index],\n AvailabilityRanking: event.value, IsDeleted: 0\n };\n } else {\n this.editedWarehouseLines.push({ ...editedRecord[0], AvailabilityRanking: event.value })\n }\n const timeIndex = _.findIndex(this.timeAvailabltyList, (t) =>\n t.WarehouseLineTimeAvailabilityId == editedRecord[0].WarehouseLineTimeAvailabilityId &&\n t.TimePeriodTypeInd == editedRecord[0].TimePeriodTypeInd &&\n t.WarehouseLineId == editedRecord[0].WarehouseLineId);\n\n timeIndex != -1 ? this.timeAvailabltyList[timeIndex] = {\n ... this.timeAvailabltyList[timeIndex],\n AvailabilityRanking: event.value\n } : ''\n }\n\n updateWarehouses() {\n const slotsUpdated = this.timeAvailabltyList.filter((x: any) => x.IsDeleted || x.IsAdded || x.IsEdited);\n if (this.tabList[this.selectedTab].code == 'timeAvailability' &&\n ((this.selectedIndices && this.selectedIndices.length > 0) || (slotsUpdated && slotsUpdated.length > 0))) {\n this.saveTimeAvailablity(slotsUpdated);\n }\n else {\n this.uiHelperService.showSnackBar('Please edit warehouseline(s) in order to save', SnackbarConfig.error);\n }\n\n }\n\n // Prepare data for save time availablity\n prepareDataForTimeAvailabilitySave(slotsUpdated) {\n _.forEach(slotsUpdated, (s: any) => {\n const index = _.findIndex(this.editedWarehouseLines, (e: any) =>\n s.TimePeriodTypeInd == e.TimePeriodTypeInd &&\n s.WarehouseLineTimeAvailabilityId == e.WarehouseLineTimeAvailabilityId && s.WarehouseLineId == e.WarehouseLineId);\n if (index == -1) {\n this.editedWarehouseLines.push(s);\n } else if (s.IsDeleted) {\n this.editedWarehouseLines.splice(index, 1);\n this.editedWarehouseLines.push(s);\n }\n else {\n this.editedWarehouseLines[index].EndTime = s.EndTime;\n this.editedWarehouseLines[index].FromTime = s.FromTime;\n this.editedWarehouseLines[index].IsDeleted = s.IsDeleted;\n }\n });\n this.editedWarehouseLines.\n map(x => x.WarehouseLineTimeAvailabilityId < 0 ? x.WarehouseLineTimeAvailabilityId = 0 : x.WarehouseLineTimeAvailabilityId);\n this.editedWarehouseLines = this.editedWarehouseLines.filter(x => !(x.WarehouseLineTimeAvailabilityId == 0 && x.IsDeleted))\n }\n\n // Save time availability tab\n saveTimeAvailablity(slotsUpdated) {\n this.prepareDataForTimeAvailabilitySave(slotsUpdated);\n this.warehouselinesservice.editTimeAvailablity(this.editedWarehouseLines).\n subscribe(response => {\n if (response && response['details'] && response['details'].Status == 1) {\n if (slotsUpdated && slotsUpdated.length > 0) {\n this.uiHelperService.showSnackBar(`Successfully edited time availablity for ${this.selectedIndices.length}\n warehouseline(s) and updated timeslot(s).`, SnackbarConfig.success);\n } else {\n this.uiHelperService.showSnackBar(`Successfully edited time availablity for ${this.selectedIndices.length} warehouseline(s).`,\n SnackbarConfig.success);\n }\n this.selectedIndices = [];\n this.editedWarehouseLines = [];\n this.getCurrentTabData();\n }\n });\n }\n\n // Prepare input data for manage time slot pop up and call the method that opens the pop up\n manageTimeSlotModal() {\n this.warehouseGrid.stopEdit();\n this.timeSlots = [];\n const unDeletedTimes = _.filter(this.timeAvailabltyList, (x: any) => !x.IsDeleted);\n const mainCols: any = _.groupBy(unDeletedTimes, 'TimePeriodType');\n const timeSlotGrouped = _.groupBy(mainCols.Custom, 'FromTime');\n delete timeSlotGrouped['Custom'];\n _.forEach([...Object.values(timeSlotGrouped)], (e: any, i: any) => {\n this.timeSlots.push({\n timeId: i + 1,\n startTime: e[0].FromTime,\n endTime: e[0].EndTime,\n isAdd: false\n });\n });\n this.showManageTimeslotPopup();\n }\n\n // Show themanage time slot pop up\n showManageTimeslotPopup() {\n this.sharedService.modalSubmitValid = true;\n const title = 'Manage Time Slot';\n this.uiHelperService.askConfirmation(ManageTimeSlotComponent, 'modal-lg', title, this.timeSlots, 'Cancel', 'Apply', (data: any) => {\n _.forEach(data.data, (newSlots: any, newIndex: any) => {\n const index = _.findIndex(this.timeSlots, (slot: any) => {\n return slot.timeId == newSlots.timeId;\n });\n if (index != -1) {\n this.updateSlots(this.timeSlots[index], data.data[newIndex]);\n } else {\n this.addColumn(newSlots);\n }\n });\n this.removeSlots(data);\n this.timeAvailabltyList.sort((a, b) => {\n return new Date(new Date().toDateString() + ' ' + a.FromTime).getTime() -\n new Date(new Date().toDateString() + ' ' + b.FromTime).getTime()\n });\n this.resetTimeAvailabilityData();\n this.warehouseGrid.redrawRows();\n this.uiHelperService.showSnackBar('Successfully modified time slot(s)', SnackbarConfig.success);\n }, () => {\n this.resetTimeAvailabilityData();\n });\n }\n\n // Add a new column if new time slot is added\n addColumn(record) {\n const warehouseEntries = [...Object.entries(_.groupBy(this.timeAvailabltyList, 'WarehouseLineId'))];\n _.forEach(warehouseEntries, (x: any) => {\n this.timeAvailabltyList.push({\n AvailabilityRanking: 0,\n EndTime: record.endTime,\n FromTime: record.startTime,\n IsDeleted: 0,\n IsAdded: 1,\n TimePeriodType: 'Custom',\n TimePeriodTypeInd: 3,\n WarehouseLineName: x[1][0].WarehouseLineName,\n WarehouseLineCode: x[1][0].WarehouseLineCode,\n WarehouseLineId: x[1][0].WarehouseLineId,\n WarehouseLineTimeAvailabilityId: this.dummyId\n });\n });\n this.dummyId--;\n }\n\n // Remove a time slot\n removeSlots(data) {\n const removedData = [];\n _.forEach(this.timeSlots, (slot: any) => {\n if (data.data.findIndex((x: any) => x.startTime == slot.startTime && x.endTime == slot.endTime) == -1) {\n removedData.push(slot)\n }\n });\n _.forEach(removedData, (d: any) => {\n this.timeAvailabltyList.forEach((t: any, index: any) => {\n if ((t.FromTime == d.startTime &&\n t.EndTime == d.endTime && t.TimePeriodType == 'Custom')) {\n this.timeAvailabltyList[index] = { ...this.timeAvailabltyList[index], IsDeleted: 1 }\n }\n });\n this.editedWarehouseLines.forEach((t: any, index: any) => {\n if ((t.FromTime == d.startTime &&\n t.EndTime == d.endTime && t.TimePeriodType == 'Custom')) {\n this.editedWarehouseLines[index] = { ...this.editedWarehouseLines[index], IsDeleted: 1 }\n }\n });\n })\n }\n\n // Update existing slot\n updateSlots(oldSlot, newSlot) {\n _.forEach(this.timeAvailabltyList, (x: any, timeIndex: any) => {\n if (x.FromTime == oldSlot.startTime && x.EndTime == oldSlot.endTime) {\n this.timeAvailabltyList[timeIndex] = {\n ...this.timeAvailabltyList[timeIndex],\n FromTime: newSlot.startTime,\n EndTime: newSlot.endTime,\n IsEdited: 1\n };\n }\n });\n }\n\n // Open add warehouse pop up from warehouseLine component\n addWarehouse() {\n this.warehouseTab.openAddWarehouseLine();\n }\n\n // Update the list of edited rows based on row selection change\n onSelectionChanged(event) {\n event.forEach(node => {\n !this.selectedIndices.includes(node.id) ? this.selectedIndices.push(node.id) : '';\n });\n this.selectedIndices.forEach(index => {\n if (!event.map(x => x.id).includes(index)) {\n this.selectedIndices.splice(index, 1)\n }\n });\n if (this.tabList[this.selectedTab].code == 'timeAvailability') {\n this.editedWarehouseLines = this.editedWarehouseLines.filter(item1 =>\n event.some(item2 => (item2.data.WarehouseLineId == item1.WarehouseLineId))\n );\n }\n }\n\n noOverlay(event) {\n this.warehouseGrid.grid.gridOptions.noRowsOverlayComponentParams = {\n noRowsMessageFunc: function () {\n return {\n blankTemplateFlag: 'warehouses',\n };\n }\n };\n }\n\n showUserPreferenceModal() {\n this.sharedService.modalSubmitValid = true;\n const title = ' Save User Preferences';\n const data = {\n data: 'You are about to save User Preference.'\n };\n this.uiHelperService.askConfirmation(AlertModalComponent, 'modal-md', title, data, 'Cancel', 'Save Preference', () => {\n if (this.tabList[this.selectedTab].code == 'warehouses') {\n this.warehouseTab.saveUserPreferences();\n }\n else if (this.tabList[this.selectedTab].code == 'dailycapAvailability') {\n this.dailyCapTab.saveUserPreferences();\n }\n else if (this.tabList[this.selectedTab].code == 'wetOverrides') {\n this.wetOverrideTab.saveUserPreferences();\n }\n });\n }\n\n showResetUserPreferenceModal()\n {\n this.sharedService.modalSubmitValid = true;\n\n if (this.tabList[this.selectedTab].code == 'warehouses') {\n this.warehouseTab.showResetUserPreferenceModal();\n }\n else if (this.tabList[this.selectedTab].code == 'dailycapAvailability') {\n this.dailyCapTab.showResetUserPreferenceModal();\n }\n else if (this.tabList[this.selectedTab].code == 'wetOverrides') {\n this.wetOverrideTab.showResetUserPreferenceModal();\n }\n }\n\n ngOnDestroy() {\n this.subscription$.unsubscribe();\n }\n}\n","\n
\n
\n
\n
\n

Warehouse Lines

\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n
\n\n\n \n
\n \n \n \n
\n
\n\n
\n
\n
0\" >\n \n \n \n \n
\n
\n\n
\n \n\n \n\n \n \n\n \n\n \n\n \n \n \n \n \n \n \n \n
\n\n \n \n \n \n \n \n \n \n
\n
\n \n\n","export * from './lib/material.module';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {MatNativeDateModule, MatRippleModule} from '@angular/material/core';\n\nconst matModules = [\n MatMenuModule,\n MatTabsModule,\n MatFormFieldModule,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatProgressBarModule,\n MatInputModule,\n MatSnackBarModule,\n MatListModule,\n MatSelectModule,\n MatCheckboxModule,\n MatSlideToggleModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatRippleModule\n]\n\n@NgModule({\n imports: [CommonModule,\n ...matModules\n ],\n exports: [...matModules]\n})\nexport class MaterialModule { }\n","export * from './lib/ui-kit.module';\nexport { ModalWrapperComponent } from './lib/modal-wrapper/modal-wrapper.component';\nexport { WarehouselineDropdownComponent } from './lib/warehouseline-dropdown/warehouseline-dropdown.component';\nexport { AlertModalComponent } from 'libs/ui-kit/src/lib/alert-modal/alert-modal-component';\nexport { UiHelperService } from 'libs/ui-kit/src/lib/services/ui-helper.service'\nexport {NumericEditorComponent} from 'libs/ui-kit/src/lib/grid/custom/cell-editors/numeric-editor.component'\nexport {DateEditorComponent} from 'libs/ui-kit/src/lib/grid/custom/cell-editors/date-editor.component'\n","import { Component, Input } from '@angular/core';\n\n@Component({\n template: ``,\n })\n export class AlertModalComponent {\n \n constructor() { }\n @Input() data: any;\n agInit(params: any){\n \n }\n }","import { UiHelperService } from './../../../services/ui-helper.service';\nimport { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { SharedService, ScreenActionPrivileges } from '@wlms-web/utils';\n\n@Component({\n selector: 'wlms-action-column-renderer',\n templateUrl: './action-column-renderer.component.html',\n styleUrls: ['./action-column-renderer.component.scss']\n})\nexport class ActionColumnRendererComponent implements ICellRendererAngularComp {\n rowData: any;\n params: any;\n buttonGroup: any = [];\n selectedAction: any;\n disableDropdown=false;\n containerClass = '.ag-body-viewport';\n defaultWarehouseList = [];\n basePath = '/assets/images/';\n excludedList = [];\n contentVisibility = {\n infoIcon: true,\n empowerIcon: true,\n dropdown: true,\n delete: false,\n edit: false,\n add: false,\n copyContract: true,\n copyTranche: true\n }\n\n constructor(private sharedService: SharedService,\n private uiHelperService: UiHelperService) {\n this.defaultWarehouseList = [...this.sharedService.warehouseLines];\n }\n\n agInit(params): void {\n this.params = params;\n if (this.params.data && (this.params.data.treasuryFunding.eligibleWarehouseLines || this.params.data.treasuryFunding.warehouseLine)) {\n this.disableDropdown = this.params.data.IsLoanExported;\n const warehouses = this.params.data.treasuryFunding.eligibleWarehouseLines ? this.params.data.treasuryFunding.eligibleWarehouseLines.split(',') :\n this.params.data.treasuryFunding.warehouseLine ? [this.params.data.treasuryFunding.warehouseLine] : [];\n\n this.setExcludedList(warehouses);\n const includedList = this.setIncludedList(warehouses);\n if (this.excludedList.length > 0) {\n this.buttonGroup = includedList.concat(this.excludedList);\n }\n this.selectedAction = this.defaultWarehouseList.filter((warehouse: any) => {\n return warehouse.warehouseLineId && this.params.data.treasuryFunding.warehouseLine ?\n warehouse.warehouseLineId == this.params.data.treasuryFunding.warehouseLine : ''\n })[0];\n }\n else if (this.params.data && !this.params.data.treasuryFunding.eligibleWarehouseLines) {\n this.setWarehouselistForUnassigned();\n }\n this.setContentVisiblity();\n }\n\n setContentVisiblity() {\n this.contentVisibility = {\n infoIcon: this.params.data && (\n (this.params.data.WarehouseLineId && !this.params.data.hierarchy &&\n this.params.data.WarehouseLineDailyCapId == undefined && this.params.data.WarehouseLineWetOverridesId == undefined)\n || this.params.data.loanNumber),\n empowerIcon: this.params.data && this.params.data.loanNumber,\n dropdown: this.params.data && this.params.data.loanNumber,\n\n delete: this.params.data && ((this.params.data.timeId && !this.params.data.isAdd) ||\n (this.params.data.hierarchy && this.params.data.isLoansAssigned != 1) ||\n (this.sharedService.isAuthUser(ScreenActionPrivileges.EditTrancheTab) && this.params.data.WarehouseLineTrancheId)),\n edit: this.params.data &&\n ((this.params.data.WarehouseLineDailyCapId && this.sharedService.isAuthUser(ScreenActionPrivileges.EditDailyCabTab)) ||\n (this.sharedService.isAuthUser(ScreenActionPrivileges.EditWarehouseline) &&\n ((this.params.data.WarehouseLineId) ||\n (this.params.data.hierarchy || this.params.data.WarehouseLineContractAmendmentId)) ||\n (this.sharedService.isAuthUser(ScreenActionPrivileges.EditTrancheTab) && this.params.data.WarehouseLineTrancheId))),\n add: this.params.data &&\n ((this.params.data.hierarchy && this.params.data.hierarchy.length == 1) ||\n (this.sharedService.isAuthUser(ScreenActionPrivileges.EditTrancheTab) && this.params.data.WarehouseLineTrancheId)),\n copyContract: this.params.data && ((\n (this.params.data.WarehouseLineId && !this.params.data.hierarchy &&\n this.params.data.WarehouseLineDailyCapId == undefined && this.params.data.WarehouseLineWetOverridesId == undefined)\n || this.params.data.LoanNumber)\n && this.sharedService.isAuthUser(ScreenActionPrivileges.CopyContract)\n && this.params.data.ContractCount > 0),\n copyTranche: this.params.data &&\n ((this.params.data.hierarchy && this.params.data.hierarchy.length == 1) ||\n (this.sharedService.isAuthUser(ScreenActionPrivileges.EditTrancheTab) && this.params.data.WarehouseLineTrancheId))\n }\n }\n\n setWarehouselistForUnassigned() {\n this.buttonGroup = [];\n this.defaultWarehouseList.forEach((element: any, index: any) => {\n element = {\n ...element,\n icon: this.basePath + this.defaultWarehouseList[index].icon,\n inRuleExcluded: true\n }\n this.buttonGroup.push(element);\n });\n }\n\n setExcludedList(warehouses) {\n const warehouseLineList = this.params.data.treasuryFunding.warehouseLine? \n this.defaultWarehouseList.filter(x=>x.warehouseLineId != this.params.data.treasuryFunding.warehouseLine)\n : this.defaultWarehouseList;\n\n warehouseLineList.forEach((x: any) => {\n if (!warehouses.some((y: any) => x.warehouseLineId && y ? x.warehouseLineId == y : x.warehouseLineId == y)) { \n this.excludedList.push({\n ...x,\n icon: this.basePath + x.icon,\n name: x.name,\n inRuleExcluded: true\n }); \n }\n });\n }\n\n setIncludedList(warehouses) {\n const warehouseLines = [];\n // Added assigned warehouse to include list to show the white background start here //\n\n if (this.params.data.treasuryFunding.warehouseLine) {\n const index = this.defaultWarehouseList.findIndex((y: any) => {\n return y.warehouseLineId && this.params.data.treasuryFunding.warehouseLine ? y.warehouseLineId == this.params.data.treasuryFunding.warehouseLine : -1;\n });\n\n if (index != -1) {\n warehouseLines.push({\n ...this.defaultWarehouseList[index],\n icon: this.basePath + this.defaultWarehouseList[index].icon,\n name: this.defaultWarehouseList[index].name,\n inRuleExcluded: false\n });\n }\n }\n\n // Added assigned warehouse to include list to show the white background End here //\n warehouses.forEach((element: string, index: number) => {\n const warehouseIndex = this.defaultWarehouseList.findIndex((warehouse: any) => {\n return warehouse.warehouseLineId ? warehouse.warehouseLineId == element: -1;\n });\n if (warehouseIndex != -1) {\n // check if the warehouse already push the warehouse eligible list //\n if (!warehouseLines.find(x => x.code == this.defaultWarehouseList[warehouseIndex].code)) {\n warehouseLines.push({\n ...this.defaultWarehouseList[warehouseIndex],\n icon: this.basePath + this.defaultWarehouseList[warehouseIndex].icon,\n name: this.defaultWarehouseList[warehouseIndex].name,\n inRuleExcluded: false\n });\n }\n }\n });\n return warehouseLines;\n }\n\n refresh(): boolean {\n return true;\n }\n\n showInfoPanel() {\n if (this.params.data && this.params.data.loanNumber) {\n this.sharedService.slidePanelOpen.next(this.params.data);\n } else if (this.params.data && this.params.data.WarehouseLineName) {\n this.params.context ? this.params.context.thisComponent.openWarehouseDetail.emit(this.params.data) : '';\n }\n }\n\n reviewLoan() {\n this.params.context ? this.params.context.thisComponent.reviewLoan.emit(this.params) : '';\n }\n\n delete() {\n this.params.context ? this.params.context.thisComponent.delete.emit(this.params) : '';\n }\n\n edit() {\n this.params.context ? this.params.context.thisComponent.edit.emit(this.params) : '';\n }\n\n save() {\n this.params.context ? this.params.context.thisComponent.save.emit(this.params) : '';\n }\n\n add() {\n this.params.context ? this.params.context.thisComponent.add.emit(this.params) : '';\n }\n\n undo() {\n this.params.context ? this.params.context.thisComponent.undo.emit(this.params) : '';\n }\n\n copyContract() {\n this.params.context ? this.params.context.thisComponent.copyContract.emit(this.params) : '';\n }\n\n copyTranche() {\n this.params.context ? this.params.context.thisComponent.copyTranche.emit(this.params) : '';\n }\n\n onWarehouselineSelected(event) {\n if (this.params.context && this.params.data) {\n this.params.context.thisComponent.optionSelected.emit({ ...event, loanDetails: [this.params.data] });\n } else if (this.params.context && !this.params.data && this.params.node.allChildrenCount) {\n this.params.context.thisComponent.optionSelected.emit({ ...event, loanDetails: this.params.node.allLeafChildren });\n }\n }\n}\n\n\n","\n\n\n \n \n \n \n\n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n |\n \n \n \n\n","import { Component } from '@angular/core';\nimport { SnackbarConfig } from '@wlms-web/utils';\nimport { AgEditorComponent } from 'ag-grid-angular';\nimport * as moment from 'moment';\nimport { UiHelperService } from './../../../services/ui-helper.service';\n\n@Component({\n selector: 'wlms-date-editor',\n template: `\n
\n
\n \n
\n
`,\n})\nexport class DateEditorComponent implements AgEditorComponent {\n params: any;\n selectedDate: Date = new Date();\n bsConfig = { containerClass: 'theme-dark-blue', showClearButton: true, clearPosition: 'right' };\n minDate: Date;\n dateBoundary: any\n\n constructor(private uiHelperService: UiHelperService) {\n\n }\n\n agInit(params: any): void {\n this.dateBoundary = { ...this.uiHelperService.dateBoundary };\n this.params = params;\n this.minDate = new Date();\n if (params.value) {\n this.selectedDate = new Date(params.value);\n }\n }\n\n getValue(): any {\n return this.selectedDate && Date.prototype.toString.call(this.selectedDate) != 'Invalid Date' ?\n this.selectedDate :\n this.params.value ? this.params.value : '';\n }\n\n \n\n ngOnDestroy() {\n }\n}\n","import {\n Component,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { AgEditorComponent } from 'ag-grid-angular';\nimport { UiHelperService } from './../../../services/ui-helper.service';\n\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\nconst KEY_F2 = 113;\nconst KEY_ENTER = 13;\nconst KEY_TAB = 9;\n\n@Component({\n selector: 'wlms-numeric-editor',\n template: `\n
\n \n
`\n})\n\nexport class NumericEditorComponent implements AgEditorComponent {\n private params: any;\n public value: any;\n public highlightAllOnFocus: boolean = true;\n private cancelBeforeStart: boolean = false;\n\n @ViewChild('input', { read: ViewContainerRef }) public input: any;\n\n constructor(private uiHelperService: UiHelperService) { }\n\n agInit(params: any): void {\n this.params = params;\n this.setInitialState(this.params);\n\n // only start edit if key pressed is a number, not a letter\n this.cancelBeforeStart =\n params.charPress && '1234567890.'.indexOf(params.charPress) < 0;\n }\n\n setInitialState(params: any) {\n let startValue;\n let highlightAllOnFocus = true;\n\n if (params.keyPress === KEY_BACKSPACE || params.keyPress === KEY_DELETE) {\n // if backspace or delete pressed, we clear the cell\n startValue = '';\n } else if (params.charPress) {\n // if a letter was pressed, we start with the letter\n startValue = params.charPress;\n highlightAllOnFocus = false;\n } else {\n // otherwise we start with the current value\n startValue = params.value;\n if (params.keyPress === KEY_F2) {\n highlightAllOnFocus = false;\n }\n }\n\n this.value = startValue;\n this.highlightAllOnFocus = highlightAllOnFocus;\n }\n\n getValue(): any {\n return this.value ? parseFloat(this.value) : 0;\n }\n\n isCancelBeforeStart(): boolean {\n return this.cancelBeforeStart;\n }\n\n\n onKeyDown(event: any): void {\n if (this.isLeftOrRight(event) || this.deleteOrBackspace(event)) {\n event.stopPropagation();\n return;\n }\n if (\n !this.finishedEditingPressed(event) &&\n !this.isKeyPressedNumeric(event)\n ) {\n if (event.preventDefault) event.preventDefault();\n }\n if (this.uiHelperService.numericValidator(this.value ? this.value : '0', event)) {\n event.preventDefault();\n }\n }\n\n private getCharCodeFromEvent(event: any): any {\n event = event || window.event;\n return typeof event.which == 'undefined' ? event.keyCode : event.which;\n }\n\n private isCharNumeric(charStr: string): boolean {\n return !!/^[0-9]*(\\.\\d*)?$/.test(charStr);\n }\n\n private isKeyPressedNumeric(event: any): boolean {\n const charCode = this.getCharCodeFromEvent(event);\n const charStr = event.key ? event.key : String.fromCharCode(charCode);\n return this.isCharNumeric(charStr);\n }\n\n private deleteOrBackspace(event: any) {\n return (\n [KEY_DELETE, KEY_BACKSPACE].indexOf(this.getCharCodeFromEvent(event)) > -1\n );\n }\n\n private isLeftOrRight(event: any) {\n return [37, 39].indexOf(this.getCharCodeFromEvent(event)) > -1;\n }\n\n private finishedEditingPressed(event: any) {\n const charCode = this.getCharCodeFromEvent(event);\n return charCode === KEY_ENTER || charCode === KEY_TAB;\n }\n}\n","import { Component, NgZone } from '@angular/core';\nimport { AgEditorComponent } from 'ag-grid-angular';\n\n@Component({\n selector: 'wlms-toggle-editor',\n template: `\n`,\n styles: [`\n ::ng-deep.mat-slide-toggle-bar {\n background-color: #dadada !important;\n}\n::ng-deep.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\n background-color: rgba(55 226 143 / 54%) !important;\n}\n::ng-deep.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\n background-color: #53f18f;\n}\n`]\n})\n\nexport class ToggleEditorComponent implements AgEditorComponent {\n mode: boolean;\n\n agInit(params: any): void {\n this.mode = params.value;\n }\n\n getValue(): any {\n return this.mode;\n }\n}\n","import { Component } from '@angular/core';\nimport { ICellRendererParams, IHeaderParams } from 'ag-grid-community';\nimport * as moment from 'moment';\nimport { AgRendererComponent, IHeaderAngularComp, } from 'ag-grid-angular';\nimport { SharedService, ColourCodes } from '@wlms-web/utils';\n\n@Component({\n template: `{{ formatDate() }}`,\n})\nexport class CustomDateRenderer implements AgRendererComponent {\n public params: any;\n\n refresh(): boolean {\n return false;\n }\n\n agInit(params: ICellRendererParams): void {\n this.params = params;\n }\n\n public formatDate(): any {\n let momentDate = this.params.value\n ? moment(new Date(this.params.value))\n : null;\n return momentDate && momentDate.isValid()\n ? momentDate.format('MM/DD/YYYY')\n : '';\n }\n}\n\n@Component({\n template: `{{ formatDate() }}`,\n})\nexport class CustomDateTimeRenderer implements AgRendererComponent {\n public params: any;\n\n refresh(): boolean {\n return false;\n }\n\n agInit(params: ICellRendererParams): void {\n this.params = params;\n }\n\n public formatDate(): any {\n let momentDate = this.params.value\n ? moment(new Date(this.params.value))\n : null;\n return momentDate && momentDate.isValid()\n ? momentDate.format('MM/DD/YYYY hh:mm:ss a')\n : '';\n }\n}\n\n@Component({\n template: `
\n 0&¶ms?.node?.allLeafChildren?.length>1))\">\n 0&¶ms?.node?.allLeafChildren?.length<=1))\">\n
`,\n})\nexport class IconFormatRendererComponent {\n\n constructor() { }\n params: any;\n agInit(params: any) {\n this.params = params;\n }\n}\n\n@Component({\n template: `\n \n \n {{error}}\n \n \n 0\" [tooltip]=\"tipContent\" placement=\"right\" container=\"body\">\n \n \n \n\n\n `,\n styles: ['.column-span { margin-left: 10px;}']\n})\nexport class ValidationMessageComponent {\n\n constructor(private sharedService: SharedService) { }\n erroList: any = [];\n src: any;\n title: any;\n agInit(params: any) {\n this.getErrorList(params);\n }\n\n getErrorList(params) {\n this.erroList = [];\n // call validator function that return error messages\n return this.erroList;\n }\n\n}\n\n@Component({\n host: { class: 'color-tag-renderer' },\n selector: 'medal-component',\n template: `\n
\n
\n
\n `,\n})\nexport class ColorCellRenderer implements AgRendererComponent {\n colors: any;\n\n agInit(params: any): void {\n this.colors = this.getColorCode(params);\n }\n\n getColorCode(params) {\n const color = [];\n if (params.data && params.data.ManualWireInstructions && params.data.ManualWireInstructions.toUpperCase() == \"YES\") {\n color.push({colorCode:ColourCodes.ManualWireInstruction,\n name:'Manual Wire Instruction'});\n }\n if (params.data && params.data.isException) {\n color.push({colorCode:ColourCodes.Exception,\n name:'Exception'});\n }\n if (params.data && params.data.treasuryFunding.isReviewed) {\n color.push({colorCode:ColourCodes.IsReviewed,\n name:'Reviewed'});\n }\n if (params.data && params.data.DoesFurtherCreditExist) {\n color.push({colorCode:ColourCodes.DoesFurtherCreditExist,\n name:'Further Credit Instruction'});\n }\n return color.length > 0 ? color : null;\n }\n\n refresh(params: any): boolean {\n return false;\n }\n}\n\n@Component({\n template: `\n
\n \n
\n `\n})\nexport class ClearFilterHeader implements IHeaderAngularComp {\n params: any;\n\n agInit(params: IHeaderParams): void {\n this.params = params;\n }\n\n onClearFilters() {\n this.params.api.setFilterModel(null);\n }\n\n refresh(params: IHeaderParams): boolean {\n return false;\n }\n}\n","import { INoRowsOverlayAngularComp } from 'ag-grid-angular';\nimport { Component } from '@angular/core';\nimport { NoRowsOverlayFlags } from '@wlms-web/utils';\n\n@Component({\n selector: 'custom-overlay',\n templateUrl: './overlay.component.html',\n})\nexport class Overlay implements INoRowsOverlayAngularComp {\n public params: any;\n blankTemplateFlag: string;\n message: {\n isLoanAssignments: string,\n noRecords: String,\n tranches: String,\n warehouses:String\n };\n\n constructor() { }\n\n agInit(params): void {\n let flagObject: any = {};\n this.blankTemplateFlag = '';\n this.message = {\n isLoanAssignments: NoRowsOverlayFlags.ISLOANASSIGNMENTS,\n noRecords: NoRowsOverlayFlags.NORECORDS,\n tranches: NoRowsOverlayFlags.TRANCHES,\n warehouses:NoRowsOverlayFlags.WAREHOUSES\n };\n this.params = params;\n flagObject = this.params.noRowsMessageFunc();\n this.blankTemplateFlag = flagObject?.blankTemplateFlag;\n }\n\n}\n","\n \"\"\n
\n

\n Currently, there are no\n {{\n blankTemplateFlag == message.isLoanAssignments\n ? 'loans'\n : blankTemplateFlag == message.warehouses\n ? 'warehouses'\n : blankTemplateFlag == message.EXCEPTIONS\n ? 'exceptions'\n : blankTemplateFlag == message.tranches\n ? 'tranches'\n : ''\n }}\n available.\n

\n
\n\n\n\n
\n

No Records Found.

\n
\n\n","import { Component, OnInit, OnChanges, AfterViewInit, ViewChild, Input, EventEmitter, Output, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport 'ag-grid-enterprise';\nimport { AgGridAngular } from 'ag-grid-angular';\n\nimport { NumericEditorComponent } from './custom/cell-editors/numeric-editor.component';\nimport { DateEditorComponent } from './custom/cell-editors/date-editor.component';\nimport { ToggleEditorComponent } from './custom/cell-editors/toggle-editor.component';\nimport { ActionColumnRendererComponent } from './custom/action-column-renderer/action-column-renderer.component';\nimport { SharedService, LoanAssignmentLoadingTemplate } from '@wlms-web/utils';\nimport {\n CustomDateRenderer, ValidationMessageComponent, CustomDateTimeRenderer,\n ColorCellRenderer, IconFormatRendererComponent, ClearFilterHeader\n} from './custom/framework-renderers/framework-renderers.component';\nimport { Overlay } from './custom/overlay/overlay.component';\nimport * as moment from 'moment-timezone';\n\n@Component({\n selector: 'wlms-grid',\n templateUrl: './grid.component.html',\n styleUrls: ['./grid.component.scss']\n})\nexport class GridComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n\n @ViewChild('agGrid') grid: AgGridAngular;\n @ViewChild('gridHidden') gridHidden: AgGridAngular;\n @Output() rowSelectionEvent: EventEmitter = new EventEmitter();\n @Output() filterChangeEvent: EventEmitter = new EventEmitter();\n @Input() paginationPageSize: Number;\n @Input() rowData: Array;\n @Input() isRefresh: boolean;\n @Input() columnDefs: any;\n @Input() noRowsOverlayFlags: any;\n @Output() reviewLoan: EventEmitter = new EventEmitter();\n @Output() editLoan: EventEmitter = new EventEmitter();\n @Output() delete: EventEmitter = new EventEmitter();\n @Output() edit: EventEmitter = new EventEmitter();\n @Output() add: EventEmitter = new EventEmitter();\n @Output() undo: EventEmitter = new EventEmitter();\n @Output() save: EventEmitter = new EventEmitter();\n @Output() selectionChanged: EventEmitter = new EventEmitter();\n @Output() modalUpdated: EventEmitter = new EventEmitter();\n @Output() rowEditStopped: EventEmitter = new EventEmitter();\n @Output() rowEditStarted: EventEmitter = new EventEmitter();\n @Output() cellEditStopped: EventEmitter = new EventEmitter();\n @Output() cellEditStarted: EventEmitter = new EventEmitter();\n @Output() optionSelected: EventEmitter = new EventEmitter();\n @Output() gridReady: EventEmitter = new EventEmitter();\n @Output() noOverlay: EventEmitter = new EventEmitter();\n @Output() copyContract: EventEmitter = new EventEmitter();\n @Output() copyTranche: EventEmitter = new EventEmitter();\n @Output() openWarehouseDetail: EventEmitter = new EventEmitter();\n\n @Input() blankTemplate: any;\n @Input() loadingTemplate: any\n @Input() treeData: boolean = false;\n @Input() groupDefaultExpanded: Number;\n @Input() getDataPath: any = null;\n @Input() suppressActionPrivilege: any = false;\n @Input() suppressRightClickPrivilege: any = false;\n @Input() suppressFilter: any = false;\n @Input() pagination = true;\n @Input() autoGroupColumnDef: any = {\n headerName: '',\n cellRenderer: 'agGroupCellRenderer',\n suppressMovable: true,\n suppressColumnsToolPanel: true,\n suppressMenu: true\n };\n @Input() getRowStyle: any\n @Input() editType: any\n @Input() selectedIndices = [];\n @Output() gridEvent: EventEmitter = new EventEmitter();\n @Input() failureMoveLoansIdx: any = [];\n @Input() masterDetail: any = false;\n @Input() detailCellRendererParams: any;\n @Input() isRowSelectable: any = null;\n defaultColDef: any;\n sideBar: any;\n frameworkComponents: any;\n context: any;\n subscription$: Subscription;\n params: any;\n\n noRowsOverlayComponent: any;\n noRowsOverlayComponentParams: any;\n overlayLoadingTemplate: any;\n private gridApi;\n columnfilterdDefs: any = [];\n userPreferenceChanged = false;\n @Input() getRowClass = params => {\n return 'ag-row';\n };\n currentFilter: any;\n loadGrid = true;\n\n constructor(private sharedService: SharedService, private cdRef: ChangeDetectorRef) {\n this.context = {\n thisComponent: this\n }\n this.frameworkComponents = {\n actionColumnRendererComponent: ActionColumnRendererComponent,\n formatDateRenderer: CustomDateRenderer,\n formatDateTimeRenderer: CustomDateTimeRenderer,\n iconFormatRendererComponent: IconFormatRendererComponent,\n customOverlayComponent: Overlay,\n numericEditor: NumericEditorComponent,\n validationMessageComponent: ValidationMessageComponent,\n colorCellRenderer: ColorCellRenderer,\n dateEditorComponent: DateEditorComponent,\n toggleEditorComponent: ToggleEditorComponent,\n clearFilterHeader: ClearFilterHeader\n };\n this.noRowsOverlayComponent = 'customOverlayComponent';\n this.noRowsOverlayComponentParams = {\n noRowsMessageFunc: function () {\n return {\n blankTemplateFlag: '',\n };\n },\n };\n this.overlayLoadingTemplate = LoanAssignmentLoadingTemplate;\n }\n\n ngOnInit(): void {\n this.subscription$ = this.sharedService.tabChange.subscribe(() => {\n if (this.grid) {\n this.grid.api.paginationGoToPage(0);\n }\n })\n this.subscription$ = this.sharedService.gridDataloaded.subscribe((params) => {\n if (this.grid) {\n this.grid.api.setRowData(params);\n }\n });\n this.subscription$ = this.sharedService.loadGrid.subscribe((params) => {\n this.loadGrid = params.isLoad;\n });\n this.setGridDefaults();\n }\n\n ngAfterViewInit(): void {\n this.ngOnChanges();\n this.grid.gridOptions.context = {\n thisComponent: this,\n };\n }\n\n ngOnChanges() {\n if (typeof this.grid !== 'undefined') {\n this.grid.api.setSideBarVisible(!this.suppressActionPrivilege);\n if (this.isRefresh) {\n this.grid.api.setRowData(this.rowData);\n this.grid.gridOptions.api.setFilterModel(this.currentFilter);\n }\n else {\n this.getColumnDefs(this.columnDefs);\n this.grid.api.setColumnDefs(null);\n this.grid.api.setColumnDefs(this.columnfilterdDefs);\n this.grid.api.setRowData(this.rowData);\n this.grid.gridOptions.api.setFilterModel(this.currentFilter);\n }\n if (this.failureMoveLoansIdx.length > 0) {\n this.failureMoveLoansIdx.forEach((index) => {\n this.gridApi.forEachNode(node => { if (node.rowIndex === index) { node.setSelected(true); } });\n });\n this.failureMoveLoansIdx = [];\n }\n this.setSelected();\n }\n }\n\n setFilterModel(model) {\n this.currentFilter = model;\n }\n\n onGridReady(event: any) {\n this.gridApi = event.api;\n this.setLoadingTemplate();\n this.grid.gridOptions.accentedSort = true;\n this.gridReady.emit();\n this.grid.api.sizeColumnsToFit();\n }\n\n onFirstDataRendered(params) {\n this.loadGrid = false;\n }\n\n setBlankTemplate() {\n const rowCount = this.grid.api.getDisplayedRowCount();\n if (rowCount == 0) {\n const params = this.grid.gridOptions.context;\n if (typeof params !== 'undefined' && this.rowData.length <= 0) {\n const params = this.grid.gridOptions.context;\n this.noOverlay.emit();\n this.grid.api.setSideBarVisible(false);\n }\n else if (rowCount == 0 && typeof params !== 'undefined' && this.rowData.length > 0) {\n this.grid.gridOptions.noRowsOverlayComponentParams = {\n noRowsMessageFunc: function () {\n return {\n blankTemplateFlag: 'noRecords',\n };\n }\n };\n }\n this.cdRef.detectChanges();\n this.grid.api.showNoRowsOverlay();\n this.blankTemplate = '';\n } else {\n this.grid.api.setSideBarVisible(!this.suppressActionPrivilege);\n this.grid.api.hideOverlay();\n }\n }\n\n onModelUpdated(e) {\n if (this.loadGrid) {\n this.setLoadingTemplate()\n } else {\n this.setBlankTemplate();\n }\n }\n\n showloadingOverLay() {\n this.grid.gridOptions.api.showLoadingOverlay();\n }\n getGridApi() {\n return this.grid.gridOptions.api;\n }\n\n setLoadingTemplate() {\n if (this.gridApi && this.gridApi.rowModel.rowsToDisplay.length == 0) {\n this.gridApi.showLoadingOverlay();\n }\n if (this.gridApi && this.gridApi.rowModel.rowsToDisplay.length > 0) {\n this.gridApi.hideOverlay();\n }\n }\n getGridColumnDefs()\n {\n return this.grid.api.getColumnDefs()\n }\n getColumnDefs(tableColumns: any) {\n this.columnfilterdDefs = [];\n if (tableColumns && tableColumns.length > 0) {\n tableColumns.forEach((tableItem: any) => {\n let colDefs;\n if (tableItem.filter === 'agDateColumnFilter') {\n colDefs = this.setColDateFilterDefs(tableItem);\n } else {\n colDefs = { ...tableItem };\n }\n if (typeof colDefs !== 'undefined')\n this.columnfilterdDefs.push(colDefs);\n });\n }\n }\n\n setColDateFilterDefs(tableItem: any) {\n let colFilterDefs = {\n ...tableItem,\n filterParams: {\n filterOptions:\n tableItem.filterOptions === 'equalsWithNull'\n ? [\n 'equals',\n {\n displayKey: 'equalsWithNulls',\n displayName: 'Equals (with Nulls)',\n test: function (filterValue: any, cellValue: any) {\n if (cellValue == null) return true;\n const parts = cellValue.split('/');\n const cellDate = new Date(\n Number(parts[2]),\n Number(parts[1] - 1),\n Number(parts[0])\n );\n return cellDate.getTime() === filterValue.getTime();\n },\n },\n ]\n : '',\n comparator: function (filterLocalDateAtMidnight: any, cellValue: any) {\n var dateAsString = moment(cellValue).format('MM/DD/YYYY');\n if (cellValue == null) {\n return 0;\n }\n var dateParts = dateAsString.split('/');\n var year = Number(dateParts[2]);\n var month = Number(dateParts[0]) - 1;\n var day = Number(dateParts[1]);\n var cellDate = new Date(year, month, day);\n\n if (cellDate < filterLocalDateAtMidnight) {\n return -1;\n } else if (cellDate > filterLocalDateAtMidnight) {\n return 1;\n } else {\n return 0;\n }\n },\n browserDatePicker: true,\n }\n };\n return colFilterDefs;\n }\n\n onRowSelected(_event: any) {\n this.rowSelectionEvent.emit(this.grid.api.getSelectedRows());\n this.selectionChanged.emit(this.grid.api.getSelectedNodes());\n }\n\n onFilterChanged(event: any) {\n this.filterChangeEvent.emit(this.grid.api.getFilterModel());\n }\n\n resetGridHeight() {\n this.grid.api.setDomLayout(\"autoHeight\");\n this.grid.api.resetRowHeights();\n }\n\n setSelected() {\n if (this.selectedIndices.length > 0) {\n this.gridApi.forEachNode(node => {\n if (this.selectedIndices.includes(node.id)) {\n node.setSelected(true);\n }\n });\n }\n }\n\n getColumnState() {\n return this.grid.columnApi.getColumnState();\n }\n\n isUserPreferenceChanged() {\n return this.sharedService.userPreferenceChanged;\n }\n\n onSortChanged() {\n this.changeUserPreference(true);\n }\n\n onColumnRowGroupChanged() {\n this.changeUserPreference(true);\n }\n\n onColumnVisible() {\n this.changeUserPreference(true);\n }\n\n onColumnMoved() {\n this.changeUserPreference(true);\n }\n\n changeUserPreference(value) {\n this.sharedService.userPreferenceChanged = value;\n }\n\n onColumnEverythingChanged() {\n \n this.changeUserPreference(this.sharedService.userPreferenceChanged); \n \n }\n\n redrawRows() {\n this.grid.api.redrawRows();\n }\n\n onCellEditingStopped(event) {\n this.cellEditStopped.emit(event);\n this.setSelected();\n }\n\n onRowEditingStopped(params) {\n this.rowEditStopped.emit(params);\n }\n\n onRowEditingStarted(params) {\n this.rowEditStarted.emit(params);\n }\n\n refreshActionColumn(params) {\n this.grid.api.refreshCells({\n columns: [\"action\"],\n rowNodes: [params.node ? params.node : params],\n force: true\n });\n this.grid.api.redrawRows();\n }\n\n setGridDefaults() {\n this.sideBar = !this.suppressActionPrivilege && !this.suppressFilter ? {\n toolPanels: [\n 'filters',\n {\n id: 'columns',\n labelDefault: 'Columns',\n labelKey: 'columns',\n iconKey: 'columns',\n toolPanel: 'agColumnsToolPanel',\n toolPanelParams: {\n suppressSyncLayoutWithGrid: true,\n suppressColumnSelectAll: true,\n suppressValues: true,\n suppressPivots: true,\n suppressPivotMode: true,\n },\n },\n ]\n } : false;\n this.defaultColDef = {\n enableRowGroup: true,\n enablePivot: true,\n enableValue: true,\n sortable: !this.suppressActionPrivilege,\n resizable: true,\n filter: true,\n autoHeight: true,\n lockPinned: true,\n suppressMenu: this.suppressActionPrivilege,\n suppressMovable: this.suppressActionPrivilege\n };\n }\n\n setColumnDefs(colDef) {\n this.grid.api.setColumnDefs(colDef);\n }\n\n onCellEditingStarted(event) {\n this.cellEditStarted.emit(event);\n }\n\n reSizeToFit() {\n setTimeout(() => {\n if (this.columnDefs.length < 8) {\n this.grid.api.sizeColumnsToFit();\n }\n }, 500)\n }\n\n startEditing(params, rowIndex?) {\n const colkey = params.columnApi.getDisplayedCenterColumns()[0].colId;\n this.grid.api.startEditingCell({\n rowIndex: rowIndex >= 0 ? rowIndex : params.node.rowIndex,\n colKey: colkey\n });\n }\n\n startEditingCertainCells(params, cell, rowIndex?) {\n this.grid.api.startEditingCell({\n rowIndex: rowIndex >= 0 ? rowIndex : params.node.rowIndex,\n colKey: cell\n });\n }\n\n getLastDisplayedRow() {\n return this.grid.api.getDisplayedRowAtIndex(this.grid.api.getLastDisplayedRow());\n }\n\n stopEdit() {\n this.grid.api.stopEditing();\n }\n\n gotoLastPage() {\n // this.gridApi.forEachLeafNode(x=>x.)\n this.grid.api.paginationGoToLastPage();\n }\n\n startEditingRow(params) {\n this.grid.api.startEditingCell(params);\n }\n\n suppressEditOnCellClick(status) {\n this.grid.gridOptions.suppressClickEdit = status;\n }\n\n destroy() {\n this.grid.gridOptions.api.destroy();\n }\n\n setRowData(params) {\n this.grid.api.setRowData(params);\n \n }\n\n onSelectionChanged(event) {\n this.selectionChanged.emit(event);\n }\n\n getSelectedNodes() {\n return this.grid.api.getSelectedNodes();\n }\n\n ngOnDestroy() {\n this.subscription$.unsubscribe();\n }\n\n}\n","
\n \n \n \n \n
\n","import { Component, OnInit, Input } from '@angular/core';\nimport { CustomCurrencyPipe } from '@wlms-web/utils';\n\n@Component({\n selector: 'wlms-loan-info-tile',\n templateUrl: './loan-info-tile.component.html',\n styleUrls: ['./loan-info-tile.component.scss']\n})\nexport class LoanInfoTileComponent implements OnInit {\n\n @Input() tileInfo: any;\n\n constructor() { }\n\n ngOnInit(): void { }\n\n}\n","
\n
\n \n
\n
\n \n
\n {{ tileInfo?.value | customCurrency }}\n
\n
\n
\n {{tileInfo.remainingPercentage}}% Left\n
\n
\n
\n
\n
\n
\n","import { Component, ComponentFactoryResolver, ComponentRef, EventEmitter, Input, OnInit, Output, ViewChild, ViewContainerRef } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { SharedService } from '@wlms-web/utils';\n\n@Component({\n selector: 'wlms-modal-wrapper',\n templateUrl: './modal-wrapper.component.html',\n styleUrls: ['./modal-wrapper.component.scss']\n})\nexport class ModalWrapperComponent implements OnInit {\n @ViewChild('container', { read: ViewContainerRef, static: true }) container: ViewContainerRef;\n @Input() initialState: any;\n @Output() clickevent = new EventEmitter();\n @Output() closeEvent = new EventEmitter();\n data: any;\n private componentRef: ComponentRef<{}>;\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n public sharedService: SharedService,\n private modalService: BsModalService) {\n this.sharedService.modalClosed.subscribe(response => {\n this.closeEvent.emit('close');\n this.modalService.hide();\n });\n }\n ngOnInit(): void {\n this.data = this.initialState;\n this.data.buttonCancel = ((this.data.buttonCancel && this.data.buttonCancel != '') ? this.data.buttonCancel : null)\n this.data.buttonSuccess = ((this.data.buttonSuccess && this.data.buttonSuccess != '') ? this.data.buttonSuccess : null)\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n this.initialState.component\n );\n const componentRef = this.container.createComponent(componentFactory);\n componentRef.instance.data = this.initialState.data;\n this.sharedService.modalDataLoaded.subscribe((receivedEntry) => {\n this.data.data = receivedEntry;\n })\n }\n closeModal() { \n this.sharedService.modalClosed.next('closed');\n\n }\n onSuccess() { \n this.modalService.hide();\n this.sharedService.modalSaved.next();\n this.clickevent.emit({ status: 'success', data: this.data }); \n }\n}\n","
\n \n \n ×\n \n
\n
\n
\n
\n
\n
\n \n {{ data.buttonCancel }}\n \n \n {{ data.buttonSuccess }}\n \n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\n\n\n@Component({\n selector: 'wlms-reset-preference',\n templateUrl: './reset-preference.component.html',\n styleUrls: ['./reset-preference.component.scss']\n})\nexport class ResetPreferenceComponent implements OnInit {\n @Input() data: any;\n action: any;\n constructor() { }\n\n ngOnInit(): void {\n this.action = this.data.action\n }\n\n\n actionChange(e)\n { \n this.data.action = this.action; \n \n }\n\n}\n","
\n
\n
{{data.message}}
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n ","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wlms-save-preference',\n templateUrl: './save-preference.component.html',\n styleUrls: ['./save-preference.component.scss']\n})\nexport class SavePreferenceComponent implements OnInit {\n\n @Input() data: any;\n action: any;\n constructor() { }\n\n ngOnInit(): void {\n this.action = this.data.action\n }\n\n\n actionChange(e)\n { \n this.data.action = this.action; \n \n }\n\n}\n","
\n
\n
{{data.message}}
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Injectable } from '@angular/core';\nimport { ModalWrapperComponent } from './../modal-wrapper/modal-wrapper.component';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\nimport { Modal, SnackbarConfig, NumericEditorValidators } from '@wlms-web/utils';\nimport {\n MatSnackBar,\n MatSnackBarHorizontalPosition,\n MatSnackBarVerticalPosition,\n} from '@angular/material/snack-bar';\nimport * as moment from 'moment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UiHelperService {\n bsModalRef: BsModalRef;\n modal: Modal;\n maxValueForNumericEditor = null;\n numericValidatorType = null;\n acceptableList = [];\n dateBoundary: any = {\n maxDate: 0,\n minDate: new Date()\n };\n\n\n constructor(private _snackBar: MatSnackBar, private modalService: BsModalService) {\n this.modal = new Modal();\n }\n\n showSnackBar(msg, style) {\n this._snackBar.open(msg, 'Dismiss',\n {\n horizontalPosition: SnackbarConfig.horizontalPosition,\n verticalPosition: SnackbarConfig.verticalPosition,\n duration: SnackbarConfig.duration,\n panelClass: [style]\n }\n );\n }\n\n askConfirmation(component, size, title, data, btnCancel, btnOk, successCallback, errorCallback?) {\n this.modal.title = title;\n this.modal.component = component;\n this.modal.buttonCancel = btnCancel;\n this.modal.buttonSuccess = btnOk\n this.modal.data = data\n const initialState = this.modal;\n this.bsModalRef = this.modalService.show(ModalWrapperComponent,\n {\n backdrop: 'static',\n keyboard: false,\n class: size,\n initialState: { initialState }\n });\n this.bsModalRef.content.clickevent.subscribe(($e) => {\n if ($e && $e.status) {\n successCallback($e.data);\n }\n });\n this.bsModalRef.content.closeEvent.subscribe(($e) => {\n });\n }\n \n updateSuccessButtonText(successBtnText){\n this.modal.buttonSuccess = successBtnText;\n }\n\n numericValidator(value, event?) {\n if (this.numericValidatorType == NumericEditorValidators.WarehouseLineTabValidator && this.maxValueForNumericEditor) {\n return value && this.maxValueForNumericEditor < parseFloat(value + event.key);\n } else if (this.numericValidatorType == NumericEditorValidators.TimeAvailablityTabValidator && this.maxValueForNumericEditor) {\n return value && ((value + event.key).length > this.maxValueForNumericEditor || event.key == '.');\n } else {\n return false;\n }\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { SharedService } from '@wlms-web/utils';\n\n@Component({\n selector: 'wlms-tab-set',\n templateUrl: './tab-set.component.html',\n styleUrls: ['./tab-set.component.scss']\n})\nexport class TabSetComponent implements OnInit {\n\n currentTabIndex: number = 0;\n @Input() tabList: any;\n @Input() isLabelDisplayed: boolean;\n @Input() selectedIndex: number;\n\n constructor(private sharedService: SharedService) { }\n\n ngOnInit(): void {\n }\n\n onTabChange(event) {\n this.sharedService.tabChange.next({ index: event.index, isLabelDisplayed: this.isLabelDisplayed });\n }\n\n}\n","\n \n \n \n \n\n\n\n \n \n \n
\n \n
\n
\n
\n
\n
","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GridComponent } from './grid/grid.component';\nimport { AgGridModule } from 'ag-grid-angular';\nimport { TabSetComponent } from './tab-set/tab-set.component';\nimport { MaterialModule } from '@wlms-web/material';\nimport { ActionColumnRendererComponent } from './grid/custom/action-column-renderer/action-column-renderer.component';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport {\n CustomDateRenderer, CustomDateTimeRenderer, ColorCellRenderer,\n IconFormatRendererComponent, ValidationMessageComponent\n} from './grid/custom/framework-renderers/framework-renderers.component';\nimport { Overlay } from './grid/custom/overlay/overlay.component';\nimport { LoanInfoTileComponent } from './loan-info-tile/loan-info-tile.component';\nimport { UtilsModule } from '@wlms-web/utils';\nimport { ModalWrapperComponent } from './modal-wrapper/modal-wrapper.component';\nimport { WarehouselineDropdownComponent } from './warehouseline-dropdown/warehouseline-dropdown.component';\nimport { AlertModalComponent } from './alert-modal/alert-modal-component';\nimport { FormsModule } from '@angular/forms';\nimport { NumericEditorComponent } from './grid/custom/cell-editors/numeric-editor.component';\nimport { DateEditorComponent } from './grid/custom/cell-editors/date-editor.component';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { ButtonsModule } from 'ngx-bootstrap/buttons';\nimport { ToggleEditorComponent } from './grid/custom/cell-editors/toggle-editor.component';\nimport { ResetPreferenceComponent } from './reset-preference/reset-preference.component';\nimport { SavePreferenceComponent } from './save-preference/save-preference.component';\n@NgModule({\n imports: [CommonModule,\n MaterialModule,\n FormsModule,\n BsDropdownModule.forRoot(),\n TooltipModule.forRoot(),\n BsDatepickerModule.forRoot(),\n ButtonsModule.forRoot(),\n UtilsModule,\n AgGridModule.withComponents([\n ActionColumnRendererComponent,\n CustomDateRenderer,\n ValidationMessageComponent,\n CustomDateTimeRenderer,\n Overlay,\n IconFormatRendererComponent,\n AlertModalComponent,\n ColorCellRenderer\n ]),],\n declarations: [GridComponent,\n WarehouselineDropdownComponent,\n TabSetComponent,\n LoanInfoTileComponent,\n ActionColumnRendererComponent, CustomDateRenderer, CustomDateTimeRenderer,\n ValidationMessageComponent,\n ColorCellRenderer,\n Overlay,\n IconFormatRendererComponent,\n ModalWrapperComponent,\n LoanInfoTileComponent,\n AlertModalComponent,\n NumericEditorComponent,\n DateEditorComponent,\n ToggleEditorComponent,\n ResetPreferenceComponent,\n SavePreferenceComponent,\n ],\n exports: [GridComponent,\n WarehouselineDropdownComponent, TabSetComponent, ActionColumnRendererComponent, CustomDateRenderer,\n CustomDateTimeRenderer,\n LoanInfoTileComponent,\n ValidationMessageComponent,\n ColorCellRenderer,\n Overlay,\n ModalWrapperComponent,\n IconFormatRendererComponent,\n AlertModalComponent]\n})\nexport class UiKitModule { }\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'wlms-warehouseline-dropdown',\n templateUrl: './warehouseline-dropdown.component.html',\n styleUrls: ['./warehouseline-dropdown.component.scss']\n})\nexport class WarehouselineDropdownComponent implements OnInit {\n\n @Input() buttonGroup: any = [];\n @Input() disableButton: any;\n @Input() defaultButton: any = null;\n @Input() buttonLabel: any ;\n @Input() containerClass: any = 'body';\n @Input() changeButtonLabel = false;\n @Input() disableDropdown = false;\n @Output() optionSelected: EventEmitter = new EventEmitter();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n onOptionSelect(button: any) {\n this.optionSelected.emit(button);\n }\n}\n","
\n \n \n \n {{ buttonLabel }}\n \n \n \n \n \n \n \n \n \n \n \n
\n\n","export * from './lib/utils.module';\nexport {\n Icon, LoanDetailsPanelTabs, LoanDetailCategories, WarehouseLineDetails,\n NoRowsOverlayFlags, LoanAssignmentLoadingTemplate, LoanDetailTileList,\n ApiConfig, ValidationConfig, SnackbarConfig, LoanAssignmentActions, StorageKey, mapUserDetails, ConfigKey,\n ColourCodes, GridMaster, ScreenActionPrivileges, WarehouseLineTabs, NumericEditorValidators,\n ExportWarehouseName, TimeLimits, CapType, DriveFrom, OverrideType, LOSList\n} from './lib/constants/data-constants';\nexport {\n CustomSorting, CurrencyFormatter, PercentageFormatter, DateFormattor, TimeFormattor,\n ConditionalEditor\n} from './lib/gridutils/grid-utils';\nexport { Loandetails } from './lib/constants/table-structure-loan-assignment';\nexport { ExportHistory } from './lib/constants/table-structure-export-history';\nexport { ConfigService } from './lib/config/config.service';\nexport { SharedService } from './lib/services/shared.service';\nexport { BrowserStorageService } from './lib/services/browser-storage.service';\nexport { AppConfigLoader } from './lib/config/config.loader';\nexport { EmptyPipe } from './lib/pipes/empty.pipe';\nexport { CustomCurrencyPipe } from './lib/pipes/custom-currency.pipe';\nexport { EffectsBootstrapProvider } from './lib/effects-utils/utils'\nexport { Modal } from './lib/models/modal';\nexport { IfPrivilegeDirective } from './lib/directives/if-privilege.directive';\nexport { ProgressDirective } from './lib/directives/progress.directive';\nexport { PhonePipe } from './lib/pipes/phone.pipe';\nexport { EmailPipe } from './lib/pipes/email.pipe';\n","import { TimeCalculateValue } from \"../constants/data-constants\";\n\nexport class TimeCalculation {\n static allocateTimeUnits (time :any) { \n let checktimeZero = false;\n let minutesToDday = 0;\n let hoursToDday = 0;\n let daysToDday = 0;\n minutesToDday = Math.floor((time) / (TimeCalculateValue.MILLI_SECONDS_IN_A_SECOND * TimeCalculateValue.MINUTES_IN_A_HOUR) % TimeCalculateValue.SECONDS_IN_A_MINUTE);\n hoursToDday = Math.floor((time) / (TimeCalculateValue.MILLI_SECONDS_IN_A_SECOND * TimeCalculateValue.MINUTES_IN_A_HOUR * TimeCalculateValue.SECONDS_IN_A_MINUTE) % TimeCalculateValue.HOURS_IN_A_DAY);\n daysToDday = Math.floor((time) / (TimeCalculateValue.MILLI_SECONDS_IN_A_SECOND * TimeCalculateValue.MINUTES_IN_A_HOUR * TimeCalculateValue.SECONDS_IN_A_MINUTE * TimeCalculateValue.HOURS_IN_A_DAY));\n if(Math.sign(minutesToDday) == -1 && Math.sign(hoursToDday) == -1 && Math.sign(daysToDday) == -1)\n {\n checktimeZero = true\n }\n else if(Math.sign(minutesToDday) == 0 && Math.sign(hoursToDday) == 0 && Math.sign(daysToDday) == 0)\n {\n checktimeZero = true\n } \n if(checktimeZero) { \n minutesToDday = 0\n hoursToDday = 0\n daysToDday = 0\n }\n\n return { minutesToDday: minutesToDday, hoursToDday: hoursToDday, daysToDday: daysToDday, checktimeZero :checktimeZero };\n }\n \n};","import { ConfigService } from './config.service';\nimport { environment } from '../../../../../apps/wlms-web/src/environments/environment';\n\nexport function AppConfigLoader(appConfigService: ConfigService){\n return () => appConfigService.load(environment.configFile);\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService {\n\n public appConfig: any;\n constructor(private http: HttpClient) { }\n\n\n load(url: any) {\n return new Promise((resolve: any) => {\n this.http\n .get(url)\n .pipe(map((res) => res))\n .subscribe((config) => {\n this.appConfig = config;\n resolve();\n });\n });\n }\n\n getAppConfiguration(): any {\n return this.appConfig;\n }\n}\n","export enum ScreenActionPrivileges {\n // Menu items\n Search = 'Search',\n AllowTestLoanToggle = 'AllowTestLoanToggle',\n LoanAssignment = 'LoanAssignment',\n Warehouseline = 'Warehouseline',\n AddExceptions = 'Exceptions',\n // Loan assignment action dropdown\n Assign = 'Assign',\n MarkReview = 'MarkReview',\n AssignandExport = 'AssignandExport',\n PushBackToFunding = 'PushBackToFunding',\n UpdateAdvanceDate = 'UpdateAdvanceDate',\n // Loan assignment icons on the top\n Refresh = 'Refresh',\n LoanSavePreference = 'LoanSavePreference',\n ReProcessLoanUpdate ='ReProcessLoanUpdate',\n // Api Calls\n GetLoanSavePreference = 'GetLoanSavePreference',\n // Grid Actions\n LoanAssignmentRightMouseClick = 'LoanAssignmentRightMouseClick',\n LoanGridAction = 'LoanGridAction',\n WarehouselineRightMouseClick = 'WarehouselineRightMouseClick',\n WarehouselineGridAction = 'WarehouselineGridAction',\n Exceptions = 'Exceptions',\n\n EditWarehouseline = 'EditWarehouseline',\n WarehouselineSavePreference = 'WarehouselineSavePreference',\n GetWarehouseLineSavePreference = 'GetWarehouseLineSavePreference',\n EditDailyCabTab = 'EditDailyCabTab',\n EditTimeAvailabilityTab = 'EditTimeAvailabilityTab',\n EditWetOverRidesTab = 'EditWetOverRidesTab',\n GetTimeAvailabilityTabSavePreference = 'GetTimeAvailabilityTabSavePreference',\n GetWetOverRidesTabSavePreference = 'GetWetOverRidesTabSavePreference',\n TimeAvailabilityTabGridAction = 'TimeAvailabilityTabGridAction',\n TimeAvailabilityTabRightMouseClick = 'TimeAvailabilityTabRightMouseClick',\n TimeAvailabilityTabSavePreference = 'TimeAvailabilityTabSavePreference',\n TimeDailyCabTabGridAction = 'TimeDailyCabTabGridAction',\n TimeDailyCabTabRightMouseClick = 'TimeDailyCabTabRightMouseClick',\n WetOverRidesTabGridAction = 'WetOverRidesTabGridAction',\n WetOverRidesTabRightMouseClick = 'WetOverRidesTabRightMouseClick',\n WetOverRidesTabSavePreference = 'WetOverRidesTabSavePreference',\n DailyCabTab = 'DailyCabTab',\n TimeAvailabilityTab = 'TimeAvailabilityTab',\n WetOverRidesTab = 'WetOverRidesTab',\n TrancheTab = 'TrancheTab',\n EditTrancheTab = 'EditTrancheTab',\n TrancheTabRightMouseClick = 'TrancheTabRightMouseClick',\n TrancheTabGridAction = 'TrancheTabGridAction',\n CopyContract = 'CopyContract',\n CopyTranche = 'CopyTranche',\n TrancheTabSavePreference = 'TrancheTabSavePreference',\n DailyCapsTabSavePreference = 'DailyCapsTabSavePreference',\n GetDailyCapsTabSavePreference = 'GetDailyCabTabSavePreference',\n GetTrancheTabSavePreference = 'GetTrancheTabSavePreference',\n WarehouselineTile ='WarehouselineTile',\n LoanQueueTile ='LoanQueueTile',\n ExportHistory ='ExportHistory',\n ExportHistorySavePreference ='ExportHistorySavePreference',\n GetExportHistorySavePreference ='GetExportHistorySavePreference',\n ExportHistoryRightMouseClick ='ExportHistoryRightMouseClick',\n ExportHistoryGridAction ='ExportHistoryGridAction'\n}\n\nexport const Icon = {\n email: 'icon-mail',\n dob: 'icon-birthday',\n user: 'icon-user',\n call: 'icon-call',\n location: 'icon-map-pin',\n phone: 'icon-phone',\n messaging: 'icon-messaging',\n mobile: 'icon-mobile',\n singleUser: 'icon-single-user',\n certificate: 'icon-certificate',\n message: 'icon-message',\n tick: 'icon-tick_icon',\n pushRightArrow: 'icon-vectorpaint',\n pushLeftArrow: 'icon-icons-_-_-arrows-_-chevrons-left',\n thumbsUp: 'icon-icons-_-thumbs-up',\n trash: 'icon-icons-_-trash-2',\n refresh: 'icon-refreshing',\n};\n\nexport const LoanDetailsPanelTabs = [\n { id: 1, icon: 'icon-info', name: 'info' }\n]\n\nexport const LoanDetailCategories = [\n { categoryId: 1, name: 'Loan' },\n { categoryId: 2, name: 'Borrower' },\n { categoryId: 3, name: 'Key Dates' }\n]\n\nexport const WarehouseLineDetails = [\n {\n name: 'Summary',\n code: 'Summary'\n },\n {\n name: 'Tranche',\n code: 'Tranche',\n privilegeKey: ScreenActionPrivileges.TrancheTab,\n suppressRightClickPrivilege: ScreenActionPrivileges.TrancheTabRightMouseClick,\n suppressActionPrivilege: ScreenActionPrivileges.TrancheTabGridAction,\n },\n {\n name: 'Account',\n code: 'Account'\n },\n {\n name: 'Limits',\n code: 'Limits'\n },\n {\n name: 'Investors',\n code: 'Investors'\n },\n {\n name: 'Products',\n code: 'Products'\n },\n {\n name: 'Eligibility',\n code: 'Eligibility'\n },\n {\n name: 'Sweeps',\n code: 'Sweeps'\n }]\n\nexport class NoRowsOverlayFlags {\n static readonly ISLOANASSIGNMENTS = 'isLoanAssignments';\n static readonly WAREHOUSES = 'warehouses';\n static readonly EXCEPTIONS = 'exceptions';\n static readonly TRANCHES = 'tranches';\n static readonly NORECORDS = 'noRecords';\n}\n\nexport const LoanDetailTileList = [\n { label: 'Line Limit', value: 0, icon: null, remainingPercentage: null, excludeInTabs: [] },\n { label: 'Outstanding', value: 0, icon: null, remainingPercentage: null, excludeInTabs: ['Unassigned'] },\n { label: 'Available', value: 0, icon: null, remainingPercentage: null, excludeInTabs: [] },\n { label: 'Wire Amount Total', value: 0, icon: null, remainingPercentage: null, excludeInTabs: ['All'] }\n];\n\nexport const LoanAssignmentLoadingTemplate =\n 'Loading...';\n\nexport const WarehouseException = [\n { name: 'Warehouse Lines', privilegeKey: ScreenActionPrivileges.Warehouseline },\n { name: 'Exceptions', privilegeKey: ScreenActionPrivileges.Exceptions }\n];\nexport class ApiConfig {\n // When DISABLECACHE is set to true and passed as second argument in get api call\n // then the api will be not be cached and if set false it will be cached\n static readonly DISABLESEARCHLOANCACHE = true;\n static readonly DISABLELOANCACHE = true;\n static readonly DISABLEGETTIMECACHE = true;\n\n}\n\nexport class ValidationConfig {\n static readonly AlphaNumeric = '^[A-Za-z0-9]*$';\n static readonly AllowOnlyNumeric = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\n static readonly LoanNumberFieldLength = '10';\n}\n\nexport const LoanAssignmentActions = [{\n internalName: 'Assign', name: 'Assign', excludeInTabs: [],\n privilegeKey: ScreenActionPrivileges.Assign\n},\n{\n internalName: 'AssignAndExport', name: 'Export', excludeInTabs: ['Unassigned', 'All'],\n privilegeKey: ScreenActionPrivileges.AssignandExport\n},\n{ internalName: 'MarkReviewed', name: 'Mark Reviewed', excludeInTabs: [], privilegeKey: ScreenActionPrivileges.MarkReview },\n{\n internalName: 'PushBackFundingQueue', name: 'Push Back To Funding Queue', excludeInTabs: [],\n privilegeKey: ScreenActionPrivileges.PushBackToFunding\n},\n{\n internalName: 'UpdateAdvanceDate', name: 'Update Advance Date', excludeInTabs: [],\n privilegeKey: ScreenActionPrivileges.AssignandExport\n}];\n\nexport class SnackbarConfig {\n static readonly horizontalPosition = 'center';\n static readonly verticalPosition = 'top';\n static readonly duration = 10000;\n static readonly error = 'red-snackbar';\n static readonly success = 'success-snackbar';\n static readonly info = 'info-snackbar';\n static readonly warning = 'warning-snackbar';\n}\n\nexport class StorageKey {\n static readonly LOGININFO = 'wlmsLoginDetails';\n static readonly USERSELECTION = 'UserSelection';\n static readonly CONDITIONUSERSELECTION = 'conUserSelection';\n static readonly AZURELOGGEDINUSER = 'azureLoggedInUser';\n static readonly AUTHUSER = 'authuser';\n static readonly FILTERMODEL = 'filtermodel';\n}\n\nexport const mapUserDetails = function (inputObject: any): any {\n return {\n IsValid: inputObject.IsValid,\n UserGuid: inputObject.UserGuid,\n UserName: inputObject.UserName,\n ErrorMessage: inputObject.ErrorMessage,\n AuthToken: inputObject.AuthToken,\n TokenExpiry: inputObject.TokenExpiry,\n UserProfile: inputObject.UserProfile\n };\n};\n\nexport class ConfigKey {\n static readonly LOGOUTTENANTIDKEY = 'tenantId';\n static readonly LOGOUTREDIRECTURIKEY = 'redirectUri';\n}\nexport enum ColourCodes {\n ManualWireInstruction = '#FF0000',\n IsReviewed = '#1b961b',\n VarianceWithinThreshold = '#FFFF00 !important',\n Exception = '#ffdae0',\n DoesFurtherCreditExist = '#FFFF00'\n}\n\nexport enum GridMaster {\n LoanAssignment = 1,\n Warehouseline = 2,\n TimeAvailability = 3,\n DailyCaps = 4,\n WetOverride = 5,\n Tranche = 6,\n ExportHistory = 7\n}\nexport class TimeCalculateValue {\n static readonly MILLI_SECONDS_IN_A_SECOND = 1000;\n static readonly HOURS_IN_A_DAY = 24;\n static readonly MINUTES_IN_A_HOUR = 60;\n static readonly SECONDS_IN_A_MINUTE = 60;\n}\n\nexport class TabConstantValue {\n static readonly ALL = \"All\";\n static readonly UNASSIGNED = 'UNASSIGNED';\n}\n\nexport enum NumericEditorValidators {\n WarehouseLineTabValidator = 'WarehouseLineTabValidator',\n TimeAvailablityTabValidator = 'TimeAvailablityTabValidator',\n DailyCapsTabValidator = 'DailyCapsTabValidator',\n WetOverridesTabValidator = 'WetOverridesTabValidator'\n\n}\n\nexport const WarehouseLineTabs = [\n {\n name: 'Warehouse Lines', code: 'warehouses',\n privilegeKey: ScreenActionPrivileges.Warehouseline,\n suppressRightClickPrivilege: ScreenActionPrivileges.WarehouselineRightMouseClick,\n suppressActionPrivilege: ScreenActionPrivileges.WarehouselineGridAction,\n numericValidatorType: NumericEditorValidators.WarehouseLineTabValidator\n },\n {\n name: 'Time Availability', code: 'timeAvailability',\n privilegeKey: ScreenActionPrivileges.TimeAvailabilityTab,\n suppressRightClickPrivilege: ScreenActionPrivileges.TimeAvailabilityTabRightMouseClick,\n suppressActionPrivilege: ScreenActionPrivileges.TimeAvailabilityTabGridAction,\n numericValidatorType: NumericEditorValidators.TimeAvailablityTabValidator\n },\n {\n name: 'Daily Caps Availability', code: 'dailycapAvailability',\n privilegeKey: ScreenActionPrivileges.DailyCabTab,\n suppressRightClickPrivilege: ScreenActionPrivileges.TimeDailyCabTabRightMouseClick,\n suppressActionPrivilege: ScreenActionPrivileges.TimeDailyCabTabGridAction,\n numericValidatorType: NumericEditorValidators.DailyCapsTabValidator\n },\n {\n name: 'Wet Overrides', code: 'wetOverrides',\n privilegeKey: ScreenActionPrivileges.WetOverRidesTab,\n suppressRightClickPrivilege: ScreenActionPrivileges.WetOverRidesTabRightMouseClick,\n suppressActionPrivilege: ScreenActionPrivileges.WetOverRidesTabGridAction,\n numericValidatorType: NumericEditorValidators.WetOverridesTabValidator\n }\n];\n\nexport enum TimeLimits {\n dayStart = '08:15:00',\n timeGap = '15',\n dummyId = '-1'\n}\n\nexport enum ExportWarehouseName {\n BARC = 'Barclays - Warehouse',\n CS = 'Credit Suisse - Warehouse',\n\n}\n\nexport const CapType = [\n { id: 1, name: 'Available Amount' },\n { id: 2, name: 'Line limit Amount' }\n]\n\nexport enum DriveFrom {\n Limit = 1,\n Amount = 2\n}\nexport const OverrideType = [\n { id: 1, name: '% of Line Limit' },\n { id: 2, name: 'User Set Amount' }\n]\n\nexport class LoanUpdateStatus {\n static readonly NotStarted = \"NotStarted\";\n static readonly InProgress = \"InProgress\";\n static readonly Failed = \"Failed\";\n static readonly Success = \"Success\";\n static readonly InProgressWithTreasuryTool = \"InProgressWithTreasuryTool\";\n}\nexport enum ExportRequestAction{\n /// \n /// Regular loan assignment export\n /// \n Export = 1,\n /// \n /// Re-Export for batch\n /// \n ReExport = 2,\n /// \n /// CSV Generator\n /// \n CsvGenerator = 3\n}\n\nexport const LOSList = [\n { name: 'Empower'},\n { name: 'Heloc'}\n];\n","import { CurrencyFormatter,DateFormattor } from '../gridutils/grid-utils';\nexport const ExportHistory = [\n {\n 'headerName': '',\n \"field\": \"rowCheck\",\n \"checkboxSelection\": true,\n \"headerCheckboxSelection\": true,\n \"headerCheckboxSelectionFilteredOnly\" : true,\n \"active\": true,\n \"width\": 40,\n cellStyle: { left: '0px', 'z-index':'0' },\n \"pinned\": \"left\",\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true,\n },\n {\n \"field\": \"Channel\",\n \"headerName\": \"Channel\",\n \"width\": 165,\n \"filter\": \"agSetColumnFilter\",\n },\n {\n \"field\": \"LoanNumber\",\n \"headerName\": \"Loan Number\",\n \"width\": 180,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 1,\n }, \n {\n \"field\": \"LastName\",\n \"headerName\": \"Last Name\",\n \"width\": 180,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 2,\n },\n {\n \"field\": \"DisbursementDate\",\n \"headerName\": \"Disbursement Date\",\n \"cellRenderer\": \"formatDateRenderer\",\n \"width\": 180,\n detailValueFormatters: ['date'],\n detailCategory: 3,\n \"filter\": \"agDateColumnFilter\",\n comparator: DateFormattor.dateComparator\n },\n {\n \"field\": \"WireAmount\",\n \"headerName\": \"Wire Amount\",\n \"width\": 180,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n detailValueFormatters: ['currency'],\n detailCategory: 1,\n cellStyle: { 'text-align': 'right' }\n },\n {\n \"field\": \"WarehouseLine\",\n \"headerName\": \"Warehouse Line\",\n \"width\": 180,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 2,\n },\n {\n \"field\": \"BatchNumber\",\n \"headerName\": \"Batch Number\",\n \"width\": 200,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 2,\n },\n];\n","import { CustomSorting, CellClassRules, CurrencyFormatter, PercentageFormatter,DateFormattor,ConditionalEditor } from '../gridutils/grid-utils';\nexport const Loandetails = [\n {\n 'headerName': 'Color',\n field: 'color',\n cellRenderer: 'colorCellRenderer',\n width: 12,\n minWidth: 5,\n cellClass: 'color-cell',\n resizable: false,\n lockPosition: true,\n pinned: 'left', \n filter: 'agSetColumnFilter',\n \"suppressColumnsToolPanel\": true,\n },\n \n {\n 'headerName': '',\n \"field\": \"rowCheck\",\n \"checkboxSelection\": true,\n \"headerCheckboxSelection\": true,\n \"headerCheckboxSelectionFilteredOnly\" : true,\n \"active\": true,\n \"width\": 40,\n \"headerClass\": \"no-left\",\n cellStyle: { left: '0px', 'z-index':'0' },\n cellClass: params => {\n return params.data ? 'wlms-checkbox-' + params.data.loanNumber : '';\n },\n \"pinned\": \"left\",\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressFiltersToolPanel\": true,\n \"suppressColumnsToolPanel\": true,\n lockPosition: true,\n },\n {\n \"field\": \"channel\",\n \"headerName\": \"Channel\",\n \"width\": 165,\n \"filter\": \"agSetColumnFilter\",\n pinned: 'left', \n },\n {\n \"field\": \"loanNumber\",\n \"headerName\": \"Loan Number\",\n \"width\": 150,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 1,\n pinned: 'left', \n }, \n {\n \"field\": \"LoanExported\",\n \"headerName\": \"Loan DataTape Exported\",\n \"width\": 120,\n \"filter\": \"agSetColumnFilter\", \n hide:true, \n filterParams:{\n 'values': ['YES','NO']\n },\n \"suppressFiltersToolPanel\": false,\n \"suppressColumnsToolPanel\": true,\n },\n {\n \"field\": \"LoanUpdateStatus\",\n \"headerName\": \"Loan Updates Status after Export\",\n \"width\": 120,\n \"filter\": \"agSetColumnFilter\",\n hide:true, \n \"suppressFiltersToolPanel\": false,\n \"suppressColumnsToolPanel\": true,\n },\n {\n \"field\": \"lastName\",\n \"headerName\": \"Last Name\",\n \"width\": 150,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 2, \n pinned: 'left', \n },\n\n {\n \"field\": \"sentToFundingDate\",\n \"headerName\": \"Sent To Treasury\",\n \"width\": 180,\n detailValueFormatters: ['dateTime'],\n detailCategory: 3,\n \"filter\": \"agDateColumnFilter\",\n comparator: DateFormattor.dateComparator\n },\n {\n \"field\": \"loanAmount\",\n \"headerName\": \"Loan Amount\",\n \"width\": 150,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n detailValueFormatters: ['currency'],\n detailCategory: 1,\n cellStyle: { 'text-align': 'right' }\n },\n {\n \"field\": \"isENoteFlag\",\n \"headerName\": \"eNote\",\n \"width\": 100,\n \"filter\": \"agSetColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"variance\",\n \"headerName\": \"Variance\",\n \"width\": 150,\n \"filter\": \"agNumberColumnFilter\",\n comparator: CustomSorting.sortFloat,\n detailCategory: 1,\n cellStyle: CellClassRules.varianceHighlight,\n },\n {\n \"field\": \"wireAmount\",\n \"headerName\": \"Wire Amount\",\n \"width\": 150,\n \"filter\": \"agNumberColumnFilter\",\n valueFormatter: CurrencyFormatter.setCurrencyFormat,\n detailValueFormatters: ['currency'],\n detailCategory: 1,\n cellStyle: { 'text-align': 'right' }\n },\n {\n \"field\": \"Exception\",\n \"headerName\": \"Exception\",\n \"width\": 150,\n detailValueFormatters: ['y/n'],\n \"filter\": \"agSetColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"BatchNumber\",\n \"headerName\": \"Batch Number\",\n \"width\": 180,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"manualWireInstructions\",\n \"headerName\": \"Manual wire Instr\",\n \"width\": 150,\n detailValueFormatters: ['y/n'],\n \"filter\": \"agSetColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"bankABA\",\n \"headerName\": \"ABA\",\n \"width\": 150,\n detailCategory: 1,\n \"filter\": \"agTextColumnFilter\",\n },\n {\n \"field\": \"bankAccountNumber\",\n \"headerName\": \"Wire Bank Account#\",\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"scheduledDate\",\n \"headerName\": \"Advance Date\",\n \"width\": 180,\n cellEditor:'dateEditorComponent',\n cellRenderer: 'formatDateRenderer',\n detailValueFormatters: ['date'],\n detailCategory: 3,\n \"filter\": \"agDateColumnFilter\",\n editable: ConditionalEditor.setAdvanceDateEditor,\n suppressKeyboardEvent: (params) => {\n return params.event.which == 13;\n },\n comparator: DateFormattor.dateComparator\n },\n {\n \"field\": \"disbursementDate\",\n \"headerName\": \"Disbursement Date\",\n \"width\": 180,\n detailValueFormatters: ['date'],\n detailCategory: 3,\n \"filter\": \"agDateColumnFilter\",\n comparator: DateFormattor.dateComparator\n },\n {\n \"field\": \"loanPurpose\",\n \"headerName\": \"Loan Purpose\",\n \"filter\": \"agSetColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"eorDate\",\n \"headerName\": \"EOR Date\",\n \"width\": 180,\n detailValueFormatters: ['date'],\n detailCategory: 3,\n \"filter\": \"agDateColumnFilter\",\n comparator: DateFormattor.dateComparator\n },\n {\n \"field\": \"state\",\n \"headerName\": \"State\",\n \"width\": 130,\n \"filter\": \"agSetColumnFilter\",\n detailCategory: 2,\n },\n {\n \"field\": \"county\",\n \"headerName\": \"Property County\",\n \"filter\": \"agSetColumnFilter\",\n \"width\": 160,\n detailCategory: 2,\n },\n {\n \"field\": \"funderName\",\n \"headerName\": \"Funder\",\n \"width\": 150,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"loanType\",\n \"headerName\": \"Loan Type\",\n \"filter\": \"agSetColumnFilter\",\n \"width\": 150,\n detailCategory: 1,\n },\n {\n \"field\": \"investor\",\n \"headerName\": \"Investor\",\n \"width\": 150,\n \"filter\": \"agSetColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"propertyType\",\n \"headerName\": \"Property Type\",\n \"width\": 150,\n \"filter\": \"agSetColumnFilter\",\n detailCategory: 2,\n },\n {\n \"field\": \"planDescription\",\n \"headerName\": \"Program Type\",\n \"width\": 150,\n \"filter\": \"agSetColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"bankAccountName\",\n \"headerName\": \"Closing Agent\",\n \"filter\": \"agSetColumnFilter\",\n \"width\": 200,\n },\n {\n \"field\": \"documentDate\",\n \"headerName\": \"Document Date\",\n \"width\": 180,\n detailValueFormatters: ['date'],\n detailCategory: 3,\n \"filter\": \"agDateColumnFilter\",\n comparator: DateFormattor.dateComparator\n },\n {\n \"field\": \"representativeCreditScore\",\n \"headerName\": \"FICO\",\n \"filter\": \"agNumberColumnFilter\",\n \"width\": 100,\n detailCategory: 1,\n },\n {\n \"field\": \"ltvRatio\",\n \"headerName\": \"LTV\",\n \"width\": 100,\n comparator: CustomSorting.sortFloat,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"cltvRatio\",\n \"headerName\": \"CLTV\",\n \"width\": 100,\n comparator: CustomSorting.sortFloat,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"lienPosition\",\n \"headerName\": \"Lien Position\",\n \"width\": 180,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"lockDate\",\n \"headerName\": \"Lock Expiration\",\n \"width\": 180,\n detailValueFormatters: ['date'],\n detailCategory: 3,\n \"filter\": \"agDateColumnFilter\",\n comparator: DateFormattor.dateComparator\n },\n {\n \"field\": \"backDTI\",\n \"headerName\": \"Back DTI\",\n \"width\": 120,\n comparator: CustomSorting.sortFloat,\n \"filter\": \"agTextColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"fundingType\",\n \"headerName\": \"WET/DRY\",\n \"width\": 120,\n \"filter\": \"agSetColumnFilter\",\n detailCategory: 1,\n },\n {\n \"field\": \"occupancyType\",\n \"headerName\": \"Occupancy Type\",\n \"width\": 160,\n \"filter\": \"agSetColumnFilter\",\n detailCategory: 2,\n },\n {\n \"field\": \"action\",\n \"headerName\": \"\",\n \"headerComponent\": \"clearFilterHeader\",\n \"headerClass\": \"flex-row-reverse\",\n \"width\": 280,\n \"active\": true,\n \"cellRenderer\": \"actionColumnRendererComponent\",\n \"resizable\": false,\n \"pinned\": \"right\",\n \"suppressMovable\": true,\n \"suppressSorting\": true,\n \"suppressRowClickSelection\": true,\n \"lockPinned\": true,\n \"cellRendererParams\": {\n \"onClick\": \"this.onBtnClick1.bind(this)\"\n },\n cellClass: params => {\n return params.data ? 'wlms-actionsColumn-' + params.data.loanNumber : '';\n },\n showRowGroup: true,\n \"suppressColumnsToolPanel\": true,\n \"sortable\": false,\n \"suppressMenu\": true\n }\n];\n","import { SharedService } from './../services/shared.service';\nimport { Input, AfterViewInit, Directive, ViewContainerRef, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[wlmsIfPrivilege]'\n})\nexport class IfPrivilegeDirective implements AfterViewInit {\n @Input() public wlmsIfPrivilege: Array;\n\n constructor(private viewContainerRef: ViewContainerRef,\n private templateRef: TemplateRef,\n private sharedService: SharedService) {\n }\n\n ngAfterViewInit(): void {\n if (this.sharedService.isAuthUser(this.wlmsIfPrivilege[0])) {\n this.viewContainerRef.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainerRef.clear();\n }\n }\n}\n","import { Directive, ElementRef, HostListener, Input, Renderer2, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[wlmsProgress]'\n})\nexport class ProgressDirective implements AfterViewInit {\n @Input() wlmsProgress: string;\n private domElement: HTMLElement;\n constructor(private el: ElementRef, private renderer: Renderer2) {\n this.domElement = this.el.nativeElement as HTMLElement;\n }\n\n ngAfterViewInit() {\n this.setHeight(this.wlmsProgress);\n }\n private setHeight(height: string) {\n this.renderer.setStyle(this.domElement, \"height\", `${height}%`);\n var value = height ? Number(height) : 0;\n if (value >= 50) {\n this.domElement.classList.add('progress', 'progress-bar', 'progress-green');\n }\n else if (value >= 20 && value <= 50) {\n this.domElement.classList.add('progress', 'progress-bar', 'progress-yellow');\n }\n else {\n this.domElement.classList.add('progress', 'progress-bar', 'progress-red');\n }\n }\n}\n","import {APP_BOOTSTRAP_LISTENER, Type} from '@angular/core';\nimport {EffectSources} from '@ngrx/effects';\n\nexport abstract class EffectsBootstrapProvider {\n static provide (effects: Type[]) {\n return [\n effects,\n {\n provide: APP_BOOTSTRAP_LISTENER,\n multi: true,\n useFactory: (sources: EffectSources, ..._effects: Type[]) => () => _effects.forEach(effect => sources.addEffects(effect)),\n deps: [ EffectSources, ...effects ]\n }\n ];\n }\n}","import { ColourCodes } from '../constants/data-constants'\nimport { formatCurrency, getCurrencySymbol } from '@angular/common';\nimport * as moment from 'moment';\nimport { LoanUpdateStatus } from 'libs/utils/src/lib/constants/data-constants';\nexport class CustomSorting {\n static sortFloat = (valueA: any, valueB: any): any => {\n return parseFloat(valueA) - parseFloat(valueB);\n }\n}\n\nexport class CellClassRules {\n static varianceHighlight = (params: any) => {\n if (params.data && params.data.wireAmount > (params.data.loanAmount + params.data.loanAmount * 0.1) ||\n params.data && params.data.wireAmount < (params.data.loanAmount - params.data.loanAmount * 0.1)) {\n return { backgroundColor: ColourCodes.VarianceWithinThreshold };\n }\n return null;\n }\n}\n\nexport class CurrencyFormatter {\n static setCurrencyFormat = (params: any) => {\n if (params && params.value >= 0) {\n return formatCurrency(\n params.value,\n 'en-US',\n getCurrencySymbol('USD', 'wide'),\n 'USD'\n )\n }\n return null;\n }\n}\n\nexport class PercentageFormatter {\n static setPercentageFormat = (params: any) => {\n if (params && params.value) {\n return params.value + ' %';\n }\n return null;\n }\n}\n\n\nexport class TimeFormattor {\n static setDateFormattor = (params: any) => {\n if (params && params.value) {\n const dt = new Date(new Date().toDateString() + ' ' + params.value)\n return ((dt.getHours() % 12) || 12) + ':' + (dt.getMinutes() < 10 ? '0' : '') + dt.getMinutes() + ' '\n + (dt.getHours() >= 12 ? 'pm PST' : 'am PST');\n }\n return null;\n }\n}\n\nexport class DateFormattor {\n static setDateFormattor = (params: any) => {\n if (params && params.value) {\n const momentDate = params.value\n ? moment(new Date(params.value))\n : null;\n return momentDate && momentDate.isValid()\n ? momentDate.format('MM/DD/YYYY')\n : '';\n }\n return null;\n }\n static dateComparator(date1: string, date2: string): number {\n if(date1==null || date1=='')\n {\n return -1;\n }\n return new Date(date1) < new Date(date2) ? -1 : 1;\n }\n}\n\nexport class ConditionalEditor {\n static setConditionalEditor = (params: any) => {\n if (params && params.data && (params.data.hierarchy.length == 1 || params.data.WarehouseLineDailyCapId < 0)) {\n return true;\n }\n return false;\n }\n static setAdvanceDateEditor = (params: any) => {\n if (params && params.data && (params.data.treasuryFunding.loanFundingUpdateStatus==LoanUpdateStatus.NotStarted)) {\n return true;\n }\n return false;\n }\n}\n\n\n\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpRequest,\n HttpHandler,\n HttpInterceptor,\n HttpErrorResponse,\n HttpHeaders,\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { StorageKey, ConfigService, ApiConfig } from '@wlms-web/utils';\nimport { BrowserStorageService } from '../services/browser-storage.service';\n@Injectable({\n providedIn: 'root',\n})\nexport class HttpInterceptorService implements HttpInterceptor {\n isError: boolean;\n constructor(\n public router: Router,\n private browserStorageService: BrowserStorageService,\n protected app: ConfigService\n ) { }\n intercept(\n request: HttpRequest,\n next: HttpHandler\n ): Observable> {\n\n let requestUrl = request.url;\n\n if(requestUrl.indexOf('@fundingService') !== -1){\n requestUrl = requestUrl.substring(requestUrl.indexOf('@fundingService'));\n requestUrl = requestUrl.replace('@fundingService', this.app.getAppConfiguration().fundingServiceUrl);\n }\n else if(requestUrl.indexOf('@warehouselineServiceUrl') !== -1){\n requestUrl = requestUrl.substring(requestUrl.indexOf('@warehouselineServiceUrl'));\n requestUrl = requestUrl.replace('@warehouselineServiceUrl', this.app.getAppConfiguration().warehouselineServiceUrl);\n }\n\n let bearerToken = '';\n if (!request.url.includes('config.json'))\n bearerToken = this.getBearerToken();\n\n const authReq = request.clone({\n url: requestUrl,\n headers: new HttpHeaders({\n Authorization: bearerToken,\n 'Content-Type': 'application/json',\n 'x-api-version': request.headers.get('x-api-version') ? request.headers.get('x-api-version') : '1.0'\n }),\n });\n return next.handle(authReq).pipe(\n // catchError((error: HttpErrorResponse) => {\n // this.exceptionHandlerFacade.loadExceptioHandler(error);\n // return throwError(error);\n // })\n );\n }\n\n // Each and every API call after login expects a Bearer Token as part of API Authorization.\n // hence,an interceptor is used to intercept each API request and attach the loggedin user token (StorageKey.AZURELOGGEDINUSER) as valid Bearer token.\n private getBearerToken() {\n const authUser = this.browserStorageService.getLocalStorageValue(StorageKey.AZURELOGGEDINUSER);\n\n let bearerToken = '';\n if (authUser && authUser.IsValid) {\n bearerToken = `Bearer ${authUser.AuthToken}`;\n }\n\n return bearerToken;\n }\n}\n","export class Modal {\n component:{};\n title: string;\n buttonCancel:string;\n buttonSuccess:string;\n data:object;\n}\n\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatCurrency, getCurrencySymbol } from '@angular/common';\nimport { isNumber } from 'lodash';\n\n@Pipe({\n name: 'customCurrency'\n})\nexport class CustomCurrencyPipe implements PipeTransform {\n transform(\n value: any,\n currencyCode: string = 'USD',\n locale: string = 'en-US',\n digitsInfo: string = '1.2-2',\n ): any {\n return isNumber(value)\n ? formatCurrency(\n value,\n locale,\n getCurrencySymbol(currencyCode, 'wide'),\n currencyCode,\n digitsInfo\n )\n : value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'emailPipe'\n})\nexport class EmailPipe implements PipeTransform {\n\n transform(value: any, replaceValue?: any, isZeroValid: boolean = false): any {\n if (isZeroValid) return value || value === 0 ? \"-\" : replaceValue;\n else return value ? value : replaceValue;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'empty'\n})\nexport class EmptyPipe implements PipeTransform {\n\n transform(value: any, replaceValue?: any, isZeroValid: boolean = false): any {\n if (isZeroValid) return value || value === 0 ? value : replaceValue;\n else return value ? value : replaceValue;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'enum'\n})\nexport class EnumMapperPipe implements PipeTransform {\n\n transform(value: unknown, ...args: unknown[]): unknown {\n return null;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'phonePipe'\n})\nexport class PhonePipe implements PipeTransform {\n\n transform(value: any, replaceValue?: any, isZeroValid: boolean = false): any {\n if (isZeroValid) return value || value === 0 ? \"-\" : replaceValue;\n else return value ? value : replaceValue;\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrowserStorageService {\n\n constructor() {}\n\n getLocalStorageValue(property: string): any {\n const item = localStorage.getItem(property);\n return item ? JSON.parse(item) : null;\n }\n\n setLocalStorageValue(property: string, value: any) {\n localStorage.setItem(property, JSON.stringify(value));\n }\n\n removeItemFromLocalStorage(property: string) {\n localStorage.removeItem(property);\n }\n\n clearLocalStorage() {\n localStorage.clear();\n }\n getSessionStorageValue(property: string): any {\n const item = sessionStorage.getItem(property);\n return item ? JSON.parse(item) : null;\n }\n\n setSessionStorageValue(property: string, value: any) {\n sessionStorage.setItem(property, JSON.stringify(value));\n }\n\n removeSessionStorageItem(property: string) {\n sessionStorage.removeItem(property);\n }\n \n clearSessionStorage() {\n sessionStorage.clear();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { BaseApiService } from '@ldsm/utils';\nimport { ConfigService } from './../config/config.service';\nimport { HttpClient } from '@angular/common/http';\nimport { BrowserStorageService } from './browser-storage.service';\nimport { StorageKey, TimeLimits } from './../constants/data-constants';\n\n@Injectable()\nexport class SharedService extends BaseApiService {\n\n tabChange = new Subject();\n gridDataloaded = new Subject();\n slidePanelOpen = new Subject();\n datasourceUpdated = new Subject();\n loadGrid = new Subject();\n showDetailPage = new Subject();\n modalDataLoaded = new Subject();\n modalClosed = new Subject();\n modalSaved = new Subject();\n modalSubmitValid = true;\n dayStart:any = TimeLimits.dayStart;\n dayEnd : any;\n userPreferenceChanged = false;\n disableRestButton = false;\n loanData =[];\n warehouseLines = [];\n constructor(protected app: ConfigService,\n protected http: HttpClient,\n private browserStorageService: BrowserStorageService) {\n super(\n http,\n app.getAppConfiguration().apiBaseUrl,\n app.getAppConfiguration().apiNamespace,\n ''\n );\n }\n\n isAuthUser(param) {\n const userDetails = this.browserStorageService.getLocalStorageValue(StorageKey.AZURELOGGEDINUSER);\n return userDetails && userDetails.UserProfile && userDetails.UserProfile.Privileges.indexOf(param) != -1;\n }\n\n getUserProfile() {\n return this.get('UserProfile');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedService } from './services/shared.service';\nimport { EmptyPipe } from './pipes/empty.pipe';\nimport { CustomCurrencyPipe } from './pipes/custom-currency.pipe';\nimport { EnumMapperPipe } from './pipes/enum-mapper.pipe'\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { ProgressDirective } from './directives/progress.directive';\nimport { EmailPipe } from './pipes/email.pipe';\nimport { PhonePipe } from './pipes/phone.pipe';\nimport { IfPrivilegeDirective } from './directives/if-privilege.directive';\n\nconst items = [EmptyPipe,\n CustomCurrencyPipe,\n ProgressDirective,\n EmailPipe,\n IfPrivilegeDirective,\n EnumMapperPipe,\n PhonePipe]\n\n@NgModule({\n imports: [CommonModule,\n ModalModule.forRoot(),\n ],\n providers: [SharedService],\n declarations: [...items],\n exports: [...items],\n entryComponents: []\n})\nexport class UtilsModule { }\n","var map = {\n\t\"./af\": 62275,\n\t\"./af.js\": 62275,\n\t\"./ar\": 90857,\n\t\"./ar-dz\": 11218,\n\t\"./ar-dz.js\": 11218,\n\t\"./ar-kw\": 14754,\n\t\"./ar-kw.js\": 14754,\n\t\"./ar-ly\": 66680,\n\t\"./ar-ly.js\": 66680,\n\t\"./ar-ma\": 92178,\n\t\"./ar-ma.js\": 92178,\n\t\"./ar-sa\": 56522,\n\t\"./ar-sa.js\": 56522,\n\t\"./ar-tn\": 95682,\n\t\"./ar-tn.js\": 95682,\n\t\"./ar.js\": 90857,\n\t\"./az\": 70164,\n\t\"./az.js\": 70164,\n\t\"./be\": 79774,\n\t\"./be.js\": 79774,\n\t\"./bg\": 60947,\n\t\"./bg.js\": 60947,\n\t\"./bm\": 21832,\n\t\"./bm.js\": 21832,\n\t\"./bn\": 89650,\n\t\"./bn-bd\": 74477,\n\t\"./bn-bd.js\": 74477,\n\t\"./bn.js\": 89650,\n\t\"./bo\": 66005,\n\t\"./bo.js\": 66005,\n\t\"./br\": 98492,\n\t\"./br.js\": 98492,\n\t\"./bs\": 70534,\n\t\"./bs.js\": 70534,\n\t\"./ca\": 52061,\n\t\"./ca.js\": 52061,\n\t\"./cs\": 84737,\n\t\"./cs.js\": 84737,\n\t\"./cv\": 61167,\n\t\"./cv.js\": 61167,\n\t\"./cy\": 77996,\n\t\"./cy.js\": 77996,\n\t\"./da\": 9528,\n\t\"./da.js\": 9528,\n\t\"./de\": 14540,\n\t\"./de-at\": 49430,\n\t\"./de-at.js\": 49430,\n\t\"./de-ch\": 67978,\n\t\"./de-ch.js\": 67978,\n\t\"./de.js\": 14540,\n\t\"./dv\": 83426,\n\t\"./dv.js\": 83426,\n\t\"./el\": 6616,\n\t\"./el.js\": 6616,\n\t\"./en-au\": 63816,\n\t\"./en-au.js\": 63816,\n\t\"./en-ca\": 32162,\n\t\"./en-ca.js\": 32162,\n\t\"./en-gb\": 83305,\n\t\"./en-gb.js\": 83305,\n\t\"./en-ie\": 61954,\n\t\"./en-ie.js\": 61954,\n\t\"./en-il\": 43060,\n\t\"./en-il.js\": 43060,\n\t\"./en-in\": 59923,\n\t\"./en-in.js\": 59923,\n\t\"./en-nz\": 13540,\n\t\"./en-nz.js\": 13540,\n\t\"./en-sg\": 16505,\n\t\"./en-sg.js\": 16505,\n\t\"./eo\": 41907,\n\t\"./eo.js\": 41907,\n\t\"./es\": 86640,\n\t\"./es-do\": 41246,\n\t\"./es-do.js\": 41246,\n\t\"./es-mx\": 56131,\n\t\"./es-mx.js\": 56131,\n\t\"./es-us\": 36430,\n\t\"./es-us.js\": 36430,\n\t\"./es.js\": 86640,\n\t\"./et\": 62551,\n\t\"./et.js\": 62551,\n\t\"./eu\": 32711,\n\t\"./eu.js\": 32711,\n\t\"./fa\": 54572,\n\t\"./fa.js\": 54572,\n\t\"./fi\": 33390,\n\t\"./fi.js\": 33390,\n\t\"./fil\": 87860,\n\t\"./fil.js\": 87860,\n\t\"./fo\": 48216,\n\t\"./fo.js\": 48216,\n\t\"./fr\": 99291,\n\t\"./fr-ca\": 98527,\n\t\"./fr-ca.js\": 98527,\n\t\"./fr-ch\": 58407,\n\t\"./fr-ch.js\": 58407,\n\t\"./fr.js\": 99291,\n\t\"./fy\": 47054,\n\t\"./fy.js\": 47054,\n\t\"./ga\": 49540,\n\t\"./ga.js\": 49540,\n\t\"./gd\": 73917,\n\t\"./gd.js\": 73917,\n\t\"./gl\": 51486,\n\t\"./gl.js\": 51486,\n\t\"./gom-deva\": 56245,\n\t\"./gom-deva.js\": 56245,\n\t\"./gom-latn\": 48868,\n\t\"./gom-latn.js\": 48868,\n\t\"./gu\": 59652,\n\t\"./gu.js\": 59652,\n\t\"./he\": 89019,\n\t\"./he.js\": 89019,\n\t\"./hi\": 42040,\n\t\"./hi.js\": 42040,\n\t\"./hr\": 63402,\n\t\"./hr.js\": 63402,\n\t\"./hu\": 79322,\n\t\"./hu.js\": 79322,\n\t\"./hy-am\": 27609,\n\t\"./hy-am.js\": 27609,\n\t\"./id\": 57942,\n\t\"./id.js\": 57942,\n\t\"./is\": 98275,\n\t\"./is.js\": 98275,\n\t\"./it\": 73053,\n\t\"./it-ch\": 4378,\n\t\"./it-ch.js\": 4378,\n\t\"./it.js\": 73053,\n\t\"./ja\": 46176,\n\t\"./ja.js\": 46176,\n\t\"./jv\": 679,\n\t\"./jv.js\": 679,\n\t\"./ka\": 92726,\n\t\"./ka.js\": 92726,\n\t\"./kk\": 72953,\n\t\"./kk.js\": 72953,\n\t\"./km\": 86957,\n\t\"./km.js\": 86957,\n\t\"./kn\": 59181,\n\t\"./kn.js\": 59181,\n\t\"./ko\": 47148,\n\t\"./ko.js\": 47148,\n\t\"./ku\": 27752,\n\t\"./ku.js\": 27752,\n\t\"./ky\": 65675,\n\t\"./ky.js\": 65675,\n\t\"./lb\": 41263,\n\t\"./lb.js\": 41263,\n\t\"./lo\": 65746,\n\t\"./lo.js\": 65746,\n\t\"./lt\": 11143,\n\t\"./lt.js\": 11143,\n\t\"./lv\": 38753,\n\t\"./lv.js\": 38753,\n\t\"./me\": 44054,\n\t\"./me.js\": 44054,\n\t\"./mi\": 31573,\n\t\"./mi.js\": 31573,\n\t\"./mk\": 30202,\n\t\"./mk.js\": 30202,\n\t\"./ml\": 68523,\n\t\"./ml.js\": 68523,\n\t\"./mn\": 79794,\n\t\"./mn.js\": 79794,\n\t\"./mr\": 56681,\n\t\"./mr.js\": 56681,\n\t\"./ms\": 56975,\n\t\"./ms-my\": 39859,\n\t\"./ms-my.js\": 39859,\n\t\"./ms.js\": 56975,\n\t\"./mt\": 3691,\n\t\"./mt.js\": 3691,\n\t\"./my\": 5152,\n\t\"./my.js\": 5152,\n\t\"./nb\": 7607,\n\t\"./nb.js\": 7607,\n\t\"./ne\": 21526,\n\t\"./ne.js\": 21526,\n\t\"./nl\": 86368,\n\t\"./nl-be\": 40076,\n\t\"./nl-be.js\": 40076,\n\t\"./nl.js\": 86368,\n\t\"./nn\": 68420,\n\t\"./nn.js\": 68420,\n\t\"./oc-lnc\": 51906,\n\t\"./oc-lnc.js\": 51906,\n\t\"./pa-in\": 94504,\n\t\"./pa-in.js\": 94504,\n\t\"./pl\": 54721,\n\t\"./pl.js\": 54721,\n\t\"./pt\": 74645,\n\t\"./pt-br\": 54548,\n\t\"./pt-br.js\": 54548,\n\t\"./pt.js\": 74645,\n\t\"./ro\": 71977,\n\t\"./ro.js\": 71977,\n\t\"./ru\": 26042,\n\t\"./ru.js\": 26042,\n\t\"./sd\": 78849,\n\t\"./sd.js\": 78849,\n\t\"./se\": 27739,\n\t\"./se.js\": 27739,\n\t\"./si\": 50084,\n\t\"./si.js\": 50084,\n\t\"./sk\": 92449,\n\t\"./sk.js\": 92449,\n\t\"./sl\": 23086,\n\t\"./sl.js\": 23086,\n\t\"./sq\": 33139,\n\t\"./sq.js\": 33139,\n\t\"./sr\": 30607,\n\t\"./sr-cyrl\": 30063,\n\t\"./sr-cyrl.js\": 30063,\n\t\"./sr.js\": 30607,\n\t\"./ss\": 40131,\n\t\"./ss.js\": 40131,\n\t\"./sv\": 21665,\n\t\"./sv.js\": 21665,\n\t\"./sw\": 5642,\n\t\"./sw.js\": 5642,\n\t\"./ta\": 33622,\n\t\"./ta.js\": 33622,\n\t\"./te\": 74825,\n\t\"./te.js\": 74825,\n\t\"./tet\": 48336,\n\t\"./tet.js\": 48336,\n\t\"./tg\": 39238,\n\t\"./tg.js\": 39238,\n\t\"./th\": 99463,\n\t\"./th.js\": 99463,\n\t\"./tk\": 39986,\n\t\"./tk.js\": 39986,\n\t\"./tl-ph\": 29672,\n\t\"./tl-ph.js\": 29672,\n\t\"./tlh\": 40043,\n\t\"./tlh.js\": 40043,\n\t\"./tr\": 51212,\n\t\"./tr.js\": 51212,\n\t\"./tzl\": 50110,\n\t\"./tzl.js\": 50110,\n\t\"./tzm\": 80482,\n\t\"./tzm-latn\": 38309,\n\t\"./tzm-latn.js\": 38309,\n\t\"./tzm.js\": 80482,\n\t\"./ug-cn\": 42495,\n\t\"./ug-cn.js\": 42495,\n\t\"./uk\": 54157,\n\t\"./uk.js\": 54157,\n\t\"./ur\": 80984,\n\t\"./ur.js\": 80984,\n\t\"./uz\": 64141,\n\t\"./uz-latn\": 43662,\n\t\"./uz-latn.js\": 43662,\n\t\"./uz.js\": 64141,\n\t\"./vi\": 12607,\n\t\"./vi.js\": 12607,\n\t\"./x-pseudo\": 66460,\n\t\"./x-pseudo.js\": 66460,\n\t\"./yo\": 92948,\n\t\"./yo.js\": 92948,\n\t\"./zh-cn\": 62658,\n\t\"./zh-cn.js\": 62658,\n\t\"./zh-hk\": 39352,\n\t\"./zh-hk.js\": 39352,\n\t\"./zh-mo\": 38274,\n\t\"./zh-mo.js\": 38274,\n\t\"./zh-tw\": 98451,\n\t\"./zh-tw.js\": 98451\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":[],"sourceRoot":"webpack:///"}