{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app.component.ts","./src/app/app.module.ts","./src/app/apphttp.Service.ts","./src/app/canDeactivateGuard.ts","./src/app/customReportParams/commonMethods.ts","./src/app/customReportParams/customParamItem.ts","./src/app/customReportParams/customParameter.directive.ts","./src/app/customReportParams/customParams2004ExtendedFTPReports/customParams2004ExtendedFTPReports.component.ts","./src/app/customReportParams/customParams2004ExtendedFTPReports/customParams2004ExtendedFTPReportsModel.ts","./src/app/customReportParams/customParams2006ExtendedFTPReports/customParams2006ExtendedFTPReports.component.ts","./src/app/customReportParams/customParams2006ExtendedFTPReports/customParams2006ExtendedFTPReportsModel.ts","./src/app/customReportParams/customParamsActionableDesignationByEvent/CustomParamsActionableDesignationByEventModel.ts","./src/app/customReportParams/customParamsActionableDesignationByEvent/customParamsActionableDesignationByEvent.component.ts","./src/app/customReportParams/customParamsActionableDesignationByStatus/CustomParamsActionableDesignationByStatusModel.ts","./src/app/customReportParams/customParamsActionableDesignationByStatus/customParamsActionableDesignationByStatus.component.ts","./src/app/customReportParams/customParamsActionableDesignationByZipCode/CustomParamsActionableDesignationByZipCodeModel.ts","./src/app/customReportParams/customParamsActionableDesignationByZipCode/customParamsActionableDesignationByZipCode.component.ts","./src/app/customReportParams/customParamsAlert/CustomParamsAlertModel.ts","./src/app/customReportParams/customParamsAlert/customParamsAlert.component.ts","./src/app/customReportParams/customParamsApproacher/CustomParamsApproacherModel.ts","./src/app/customReportParams/customParamsApproacher/customParamsApproacher.component.ts","./src/app/customReportParams/customParamsBillingInvoice/customParamsBillingInvoice.component.ts","./src/app/customReportParams/customParamsBillingInvoice/customParamsBillingInvoiceModel.ts","./src/app/customReportParams/customParamsDisplayTriageFSControl/CustomParamsDisplayTriageFSControlModel.ts","./src/app/customReportParams/customParamsDisplayTriageFSControl/customParamsDisplayTriageFSControl.component.ts","./src/app/customReportParams/customParamsFTPReports/customParamsFTPReports.component.ts","./src/app/customReportParams/customParamsFTPReports/customParamsFTPReportsModel.ts","./src/app/customReportParams/customParamsHoursBack/CustomParamsHoursBackModel.ts","./src/app/customReportParams/customParamsHoursBack/customParamsHoursBack.component.ts","./src/app/customReportParams/customParamsImportEventLog/CustomParamsImportEventLogModel.ts","./src/app/customReportParams/customParamsImportEventLog/customParamsImportEventLog.component.ts","./src/app/customReportParams/customParamsImportOfferActivity/CustomParamsImportOfferActivityModel.ts","./src/app/customReportParams/customParamsImportOfferActivity/customParamsImportOfferActivity.component.ts","./src/app/customReportParams/customParamsImportStattracUser/CustomParamsImportStattracUserModel.ts","./src/app/customReportParams/customParamsImportStattracUser/customParamsImportStattracUser.component.ts","./src/app/customReportParams/customParamsMessageActivity/CustomParamsMessageActivityModel.ts","./src/app/customReportParams/customParamsMessageActivity/customParamsMessageActivity.component.ts","./src/app/customReportParams/customParamsMessageEvent/CustomParamsMessageEventModel.ts","./src/app/customReportParams/customParamsMessageEvent/customParamsMessageEvent.component.ts","./src/app/customReportParams/customParamsMessageStattracUser/CustomParamsMessageStattracUserModel.ts","./src/app/customReportParams/customParamsMessageStattracUser/customParamsMessageStattracUser.component.ts","./src/app/customReportParams/customParamsOrganizationType/CustomParamsOrganizationTypeModel.ts","./src/app/customReportParams/customParamsOrganizationType/customParamsOrganizationType.component.ts","./src/app/customReportParams/customParamsPersonnelListing/CustomParamsPersonnelListingModel.ts","./src/app/customReportParams/customParamsPersonnelListing/customParamsPersonnelListing.component.ts","./src/app/customReportParams/customParamsProcessor/CustomParamsProcessorModel.ts","./src/app/customReportParams/customParamsProcessor/customParamsProcessor.component.ts","./src/app/customReportParams/customParamsReferralActivity/CustomParamsReferralActivityModel.ts","./src/app/customReportParams/customParamsReferralActivity/customParamsReferralActivity.component.ts","./src/app/customReportParams/customParamsReferralDetail/CustomParamsReferralDetailModel.ts","./src/app/customReportParams/customParamsReferralDetail/customParamsReferralDetail.component.ts","./src/app/customReportParams/customParamsReferralOutcome/CustomParamsReferralOutcomeModel.ts","./src/app/customReportParams/customParamsReferralOutcome/customParamsReferralOutcome.component.ts","./src/app/customReportParams/customParamsReferralStatTracUser/CustomParamsReferralStatTracUserModel.ts","./src/app/customReportParams/customParamsReferralStatTracUser/customParamsReferralStatTracUser.component.ts","./src/app/customReportParams/customParamsReferralType/CustomParamsReferralTypeModel.ts","./src/app/customReportParams/customParamsReferralType/customParamsReferralType.component.ts","./src/app/customReportParams/customParamsScheduleLookup/CustomParamsScheduleLookupModel.ts","./src/app/customReportParams/customParamsScheduleLookup/customParamsScheduleLookup.component.ts","./src/app/customReportParams/customParamsScreeningCriteria/CustomParamsScreeningCriteriaModel.ts","./src/app/customReportParams/customParamsScreeningCriteria/customParamsScreeningCriteria.component.ts","./src/app/customReportParams/customParamsStartEndMonthYear/CustomParamsStartEndMonthYearModel.ts","./src/app/customReportParams/customParamsStartEndMonthYear/customParamsStartEndMonthYear.component.ts","./src/app/customReportParams/customParamsTrackingNumberAndTypeControl/CustomParamsTrackingNumberAndTypeControlModel.ts","./src/app/customReportParams/customParamsTrackingNumberAndTypeControl/customParamsTrackingNumberAndTypeControl.component.ts","./src/app/customReportParams/customParamsUploadedReferralStatus/CustomParamsUploadedReferralStatusModel.ts","./src/app/customReportParams/customParamsUploadedReferralStatus/customParamsUploadedReferralStatus.component.ts","./src/app/customReportParams/customReportsParameter.component.ts","./src/app/globals.Service.ts","./src/app/help/help.component.ts","./src/app/login/login.component.ts","./src/app/logoutmodal/logoutmodal.component.ts","./src/app/nav-menu/nav-menu.component.ts","./src/app/newpassword/newpassword.component.ts","./src/app/parameter-popup/GeneralParameterModel.ts","./src/app/parameter-popup/parameter-popup.component.ts","./src/app/parameterdropdowndefault.service.ts","./src/app/reports/reports.component.ts","./src/app/reportviewer/reportviewer.component.ts","./src/app/resetpassword/resetpassword.component.ts","./src/app/scheduling/scheduling.component.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent {\r\n title = 'app';\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\nimport { BsDropdownModule, BsDropdownConfig } from 'ngx-bootstrap/dropdown';\r\nimport { BsDatepickerModule, BsDatepickerConfig } from 'ngx-bootstrap/datepicker';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SortableModule } from 'ngx-bootstrap/sortable';\r\nimport { AlertModule, AlertConfig } from 'ngx-bootstrap/alert';\r\nimport { AppComponent } from './app.component';\r\nimport { NavMenuComponent } from './nav-menu/nav-menu.component';\r\nimport { ReportsComponent } from './reports/reports.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { LogoutModalComponent } from './logoutmodal/logoutmodal.component';\r\nimport { ResetPasswordComponent } from './resetpassword/resetpassword.component';\r\nimport { NewPasswordComponent } from './newpassword/newpassword.component';\r\nimport { ReportViewerComponent } from './reportviewer/reportviewer.component';\r\nimport { SchedulingComponent } from './scheduling/scheduling.component';\r\nimport { CanDeactivateGuard } from './canDeactivateGuard';\r\nimport { NgSelectModule, NgSelectConfig } from '@ng-select/ng-select';\r\nimport { ParameterDropDownDefault } from './parameterdropdowndefault.service';\r\nimport { AppHttpService } from './apphttp.Service';\r\nimport { Globals } from './globals.Service';\r\nimport { } from './parameterdropdowndefault.service'\r\nimport { HelpComponent } from './help/help.component';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { jqxGridComponent } from 'jqwidgets-ng/jqxgrid';\r\n\r\nimport { CustomReportsParameterComponent } from './customReportParams/customReportsParameter.component';\r\nimport { CustomParamsDisplayTriageFSControlComponent } from './customReportParams/customParamsDisplayTriageFSControl/customParamsDisplayTriageFSControl.component';\r\nimport { CustomParameterDirective } from './customReportParams/customParameter.directive';\r\nimport { CustomParamsActionableDesignationByEventComponent } from './customReportParams/customParamsActionableDesignationByEvent/customParamsActionableDesignationByEvent.component';\r\nimport { CustomParamsActionableDesignationByStatusComponent } from './customReportParams/customParamsActionableDesignationByStatus/customParamsActionableDesignationByStatus.component';\r\nimport { CustomParamsActionableDesignationByZipCodeComponent } from './customReportParams/customParamsActionableDesignationByZipCode/customParamsActionableDesignationByZipCode.component';\r\nimport { CustomParamsAlertComponent } from './customReportParams/customParamsAlert/customParamsAlert.component';\r\nimport { CustomParamsImportOfferActivityComponent } from './customReportParams/customParamsImportOfferActivity/customParamsImportOfferActivity.component';\r\nimport { CustomParamsImportStattracUserComponent } from './customReportParams/customParamsImportStattracUser/customParamsImportStattracUser.component';\r\nimport { CustomParamsImportEventLogComponent } from './customReportParams/customParamsImportEventLog/customParamsImportEventLog.component';\r\nimport { CustomParamsApproacherComponent } from './customReportParams/customParamsApproacher/customParamsApproacher.component';\r\nimport { CustomParamsMessageActivityComponent } from './customReportParams/customParamsMessageActivity/customParamsMessageActivity.component';\r\nimport { CustomParamsMessageStattracUserComponent } from './customReportParams/customParamsMessageStattracUser/customParamsMessageStattracUser.component';\r\nimport { CustomParamsMessageEventComponent } from './customReportParams/customParamsMessageEvent/customParamsMessageEvent.component';\r\nimport { CustomParamsReferralTypeComponent } from './customReportParams/customParamsReferralType/customParamsReferralType.component';\r\nimport { CustomParamsTrackingNumberAndTypeControlComponent } from './customReportParams/customParamsTrackingNumberAndTypeControl/customParamsTrackingNumberAndTypeControl.component';\r\nimport { CustomParamsReferralActivityComponent } from './customReportParams/customParamsReferralActivity/customParamsReferralActivity.component';\r\nimport { CustomParamsReferralStatTracUserComponent } from './customReportParams/customParamsReferralStatTracUser/customParamsReferralStatTracUser.component';\r\nimport { CustomParamsReferralDetailComponent } from './customReportParams/customParamsReferralDetail/customParamsReferralDetail.component';\r\nimport { CustomParamsReferralOutcomeComponent } from './customReportParams/customParamsReferralOutcome/customParamsReferralOutcome.component';\r\nimport { CustomParamsScheduleLookupComponent } from './customReportParams/customParamsScheduleLookup/customParamsScheduleLookup.component';\r\nimport { CustomParamsProcessorComponent } from './customReportParams/customParamsProcessor/customParamsProcessor.component';\r\nimport { CustomParamsHoursBackComponent } from './customReportParams/customParamsHoursBack/customParamsHoursBack.component';\r\nimport { CustomParamsOrganizationTypeComponent } from './customReportParams/customParamsOrganizationType/customParamsOrganizationType.component';\r\nimport { CustomParamsStartEndMonthYearComponent } from './customReportParams/customParamsStartEndMonthYear/customParamsStartEndMonthYear.component';\r\nimport { CustomParamsFTPReportsComponent } from './customReportParams/customParamsFTPReports/customParamsFTPReports.component';\r\nimport { CustomParams2004ExtendedFTPReportsComponent } from './customReportParams/customParams2004ExtendedFTPReports/customParams2004ExtendedFTPReports.component';\r\nimport { CustomParams2006ExtendedFTPReportsComponent } from './customReportParams/customParams2006ExtendedFTPReports/customParams2006ExtendedFTPReports.component';\r\nimport { CustomParamsPersonnelListingComponent } from './customReportParams/customParamsPersonnelListing/customParamsPersonnelListing.component';\r\nimport { CustomParamsUploadedReferralStatusComponent } from './customReportParams/customParamsUploadedReferralStatus/customParamsUploadedReferralStatus.component';\r\nimport { CustomParamsScreeningCriteriaComponent } from './customReportParams/customParamsScreeningCriteria/customParamsScreeningCriteria.component';\r\nimport { CustomParamsBillingInvoiceComponent } from './customReportParams/customParamsBillingInvoice/customParamsBillingInvoice.component';\r\nimport { ParameterPopupComponent } from './parameter-popup/parameter-popup.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n NavMenuComponent,\r\n ReportsComponent,\r\n LoginComponent,\r\n LogoutModalComponent,\r\n ResetPasswordComponent,\r\n NewPasswordComponent,\r\n ReportViewerComponent,\r\n HelpComponent,\r\n SchedulingComponent,\r\n jqxGridComponent,\r\n CustomReportsParameterComponent,\r\n CustomParamsDisplayTriageFSControlComponent,\r\n CustomParameterDirective,\r\n ParameterPopupComponent,\r\n CustomParamsActionableDesignationByEventComponent,\r\n CustomParamsActionableDesignationByStatusComponent,\r\n CustomParamsActionableDesignationByZipCodeComponent,\r\n CustomParamsAlertComponent,\r\n CustomParamsImportOfferActivityComponent,\r\n CustomParamsImportStattracUserComponent,\r\n CustomParamsImportEventLogComponent,\r\n CustomParamsApproacherComponent,\r\n CustomParamsMessageActivityComponent,\r\n CustomParamsMessageStattracUserComponent,\r\n CustomParamsMessageEventComponent,\r\n CustomParamsReferralTypeComponent,\r\n CustomParamsTrackingNumberAndTypeControlComponent,\r\n CustomParamsReferralActivityComponent,\r\n CustomParamsReferralStatTracUserComponent,\r\n CustomParamsReferralDetailComponent,\r\n CustomParamsReferralOutcomeComponent,\r\n CustomParamsScheduleLookupComponent,\r\n CustomParamsProcessorComponent,\r\n CustomParamsHoursBackComponent,\r\n CustomParamsOrganizationTypeComponent,\r\n CustomParams2004ExtendedFTPReportsComponent,\r\n CustomParams2006ExtendedFTPReportsComponent,\r\n CustomParamsFTPReportsComponent,\r\n CustomParamsStartEndMonthYearComponent,\r\n CustomParamsPersonnelListingComponent,\r\n CustomParamsUploadedReferralStatusComponent,\r\n CustomParamsScreeningCriteriaComponent,\r\n CustomParamsBillingInvoiceComponent\r\n ],\r\n imports: [\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n FormsModule,\r\n NgSelectModule,\r\n NgxMaskModule.forRoot(),\r\n ModalModule.forRoot(),\r\n BsDropdownModule.forRoot(),\r\n BsDatepickerModule.forRoot(),\r\n SortableModule.forRoot(),\r\n AlertModule.forRoot(),\r\n RouterModule.forRoot([\r\n { path: '', component: LoginComponent, pathMatch: 'full' },\r\n { path: 'login', component: LoginComponent },\r\n { path: 'resetpassword', component: ResetPasswordComponent },\r\n { path: 'newpassword', component: NewPasswordComponent },\r\n { path: 'reportviewer', component: ReportViewerComponent },\r\n { path: 'reports', component: ReportsComponent },\r\n { path: 'scheduling', component: SchedulingComponent, canDeactivate: [CanDeactivateGuard] },\r\n { path: 'help', component: HelpComponent },\r\n ])\r\n ],\r\n providers: [AppHttpService, BsModalService, Globals, AlertConfig, BsDropdownConfig,\r\n BsDatepickerConfig, NgSelectConfig, ParameterDropDownDefault, CookieService, CanDeactivateGuard],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\n\r\nimport { Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { ReportModel } from './ReportModel';\r\n\r\n@Injectable()\r\nexport class AppHttpService {\r\n private headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n constructor(private http: HttpClient, private router: Router) { }\r\n\r\n get(url: string, param: string): Promise {\r\n return this.http.get(url + param)\r\n .toPromise()\r\n .then().catch(error => {\r\n this.httpStatus(error.status);\r\n if (error.url.toLowerCase().indexOf('returnurl') > 0) {\r\n this.router.navigateByUrl('/?returnurl=' + this.router.url.replace(\"/\",\"\"));\r\n }\r\n throw error;\r\n });\r\n }\r\n\r\n getRawText(reportModel: ReportModel): Promise {\r\n return this.http.post(\"report\", JSON.stringify(reportModel), { responseType: \"text\", headers: this.headers })\r\n .toPromise()\r\n .then().catch(error => {\r\n this.httpStatus(error.status);\r\n if (error.url.toLowerCase().indexOf('returnurl') > 0) {\r\n this.router.navigateByUrl('/?returnurl=' + this.router.url.replace(\"/\", \"\"));\r\n }\r\n throw error;\r\n });\r\n }\r\n\r\n\r\n getFile(reportModel: ReportModel): Observable{\r\n return this.http.post(\"report\", JSON.stringify(reportModel), { responseType: \"blob\", headers: this.headers });\r\n }\r\n\r\n post(url: string, model: any) {\r\n return this.http.post(url, JSON.stringify(model), { headers: this.headers })\r\n .toPromise()\r\n .then().catch(error => {\r\n this.httpStatus(error.status);\r\n if (error.url.toLowerCase().indexOf('returnurl') > 0) {\r\n this.router.navigateByUrl('/?returnurl=' + this.router.url.replace(\"/\", \"\"));\r\n }\r\n throw error;\r\n });\r\n }\r\n put(url: string, model: any) {\r\n return this.http.put(url, JSON.stringify(model), { headers: this.headers })\r\n .toPromise()\r\n .then().catch(error => {\r\n this.httpStatus(error.status);\r\n throw error;\r\n });\r\n }\r\n delete(url: string, id: string) {\r\n return this.http.delete(url + '/' + id)\r\n .toPromise()\r\n .then(() => null).catch(error => {\r\n this.httpStatus(error.status);\r\n throw error;\r\n });\r\n }\r\n\r\n downloadFile(url: string): any {\r\n return this.http.get(url, { responseType: 'blob' });\r\n }\r\n\r\n httpStatus(status: number) {\r\n switch (status) {\r\n case 401: // Unauthorized\r\n //this.router.navigate(['/']);\r\n break;\r\n default:\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { SchedulingComponent } from \"./scheduling/scheduling.component\";\r\nimport { CanDeactivate } from \"@angular/router\";\r\nimport { Globals } from \"./globals.Service\";\r\n\r\n@Injectable()\r\nexport class CanDeactivateGuard implements CanDeactivate {\r\n canDeactivate(component: SchedulingComponent): boolean {\r\n //seconds=undefined => auto logout timer starts with a 10 seconds delay, during that time\r\n //seconds variable is undefined\r\n if (component.dataChanged && (component.logOutModalComponent.seconds == undefined ||\r\n component.logOutModalComponent.seconds > 0)) {\r\n if (confirm(\"You have unsaved changes! If you leave, your changes will be lost.\")) {\r\n return true;\r\n } else {\r\n component.logOutModalComponent.ngOnDestroy();\r\n component.logOutModalComponent.startSeconds = Globals.AutoLogOut;\r\n component.logOutModalComponent.showModalSeconds = Globals.AutoLogOutWarning;\r\n component.logOutModalComponent.parent = \"Schedules\";\r\n component.logOutModalComponent.returnUrl = component.router.url;\r\n component.logOutModalComponent.startTimer();\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Type } from '@angular/core';\r\n\r\nexport class CommonMethods {\r\n constructor() { }\r\n\r\n addtoParameterList(model: any) {\r\n\r\n //const params: string[] = [];\r\n let params = \"\";\r\n let delim = \"\";\r\n for (const key of Object.keys(model)) {\r\n const value = model[key];\r\n\r\n if (value !== undefined && value !== null) {\r\n \r\n if (typeof value === \"object\") {\r\n params += delim + key + '=' + value.toLocaleDateString(\"en-US\") + \" \" + value.toLocaleTimeString('en-US');\r\n }\r\n else {\r\n params += delim + key + '=' + value ;\r\n }\r\n delim = \"|\";\r\n }\r\n }\r\n return params;\r\n }\r\n\r\n customPopulateFieldForCustomComponenents(model: any, hiddenControl: any) {\r\n const params = this.addtoParameterList(model);\r\n hiddenControl.setAttribute('value', params);\r\n }\r\n\r\n createStateList(model: any) {\r\n let stateString = '';\r\n let parse = '';\r\n if (model.Colorado) {\r\n stateString = 'CO';\r\n parse = ','\r\n }\r\n if (model.Hawaii) {\r\n stateString += parse + 'HI'\r\n parse = ','\r\n }\r\n if (model.Nevada) {\r\n stateString += parse + 'NV'\r\n parse = ','\r\n }\r\n if (model.Wyoming) {\r\n stateString += parse + 'WY'\r\n parse = ','\r\n }\r\n if (stateString.length > 0) {\r\n model.State = stateString;\r\n }\r\n else {\r\n model.State = null;\r\n }\r\n }\r\n}\r\n\r\n","\r\nimport { Type } from '@angular/core';\r\n\r\nexport class CustomParamItem {\r\n constructor(public component: Type) { }\r\n}\r\n","\r\nimport { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[customParameterSection]'\r\n})\r\nexport class CustomParameterDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParams2004ExtendedFTPReportsModel } from './customParams2004ExtendedFTPReportsModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { ParameterPopupComponent } from '../../parameter-popup/parameter-popup.component';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParams2004ExtendedFTPReports.component.html'\r\n})\r\nexport class CustomParams2004ExtendedFTPReportsComponent implements CustomParamComponent {\r\n constructor(private appHttpService: AppHttpService, private pc: ParameterPopupComponent) {\r\n this.model.ColumnSet = \"2004\";\r\n \r\n }\r\n\r\n\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParams2004ExtendedFTPReportsModel();\r\n referralTypeList = [];\r\n reportGroupId: number;\r\n subscription: any;\r\n\r\n ngOnInit() {\r\n this.subscription = this.pc.getreportGroupChangeEmitter().subscribe(item => this.selectedReportGroup(item));\r\n this.addtoParameterList();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n selectedReportGroup(item: number) {\r\n this.reportGroupId = item;\r\n this.getReferralType();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n getReferralType(): void {\r\n this.model.ReferralTypeID = null;\r\n this.addtoParameterList();\r\n this.referralTypeList = [];\r\n this.appHttpService.get(\"ReferralTypeDropdown\", \"?reportGroupId=\" + this.reportGroupId).then(res => {\r\n this.referralTypeList = res;\r\n });\r\n }\r\n}\r\n","export class CustomParams2004ExtendedFTPReportsModel {\r\n ReferralTypeID: number;\r\n CallID: string;\r\n ColumnSet: string;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParams2006ExtendedFTPReportsModel } from './customParams2006ExtendedFTPReportsModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { ParameterPopupComponent } from '../../parameter-popup/parameter-popup.component';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParams2006ExtendedFTPReports.component.html'\r\n})\r\nexport class CustomParams2006ExtendedFTPReportsComponent implements CustomParamComponent {\r\n constructor(private appHttpService: AppHttpService, private pc: ParameterPopupComponent) {\r\n this.model.ColumnSet = \"2006\";\r\n \r\n }\r\n\r\n\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParams2006ExtendedFTPReportsModel();\r\n referralTypeList = [];\r\n reportGroupId: number;\r\n subscription: any;\r\n\r\n ngOnInit() {\r\n this.subscription = this.pc.getreportGroupChangeEmitter().subscribe(item => this.selectedReportGroup(item));\r\n this.addtoParameterList();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n selectedReportGroup(item: number) {\r\n this.reportGroupId = item;\r\n this.getReferralType();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n getReferralType(): void {\r\n this.model.ReferralTypeID = null;\r\n this.addtoParameterList();\r\n this.referralTypeList = [];\r\n this.appHttpService.get(\"ReferralTypeDropDown\", \"?reportGroupId=\" + this.reportGroupId).then(res => {\r\n this.referralTypeList = res;\r\n });\r\n }\r\n}\r\n","export class CustomParams2006ExtendedFTPReportsModel {\r\n ReferralTypeID: number;\r\n CallID: string;\r\n ColumnSet: string;\r\n}\r\n","export class CustomParamsActionableDesignationByEventModel {\r\n State: string;\r\n MainCategoryID: number;\r\n SubCategoryID: number;\r\n SourceCode: string;\r\n ReportFormat: string;\r\n NewYes: boolean;\r\n YesToYes: boolean;\r\n NoToYes: boolean;\r\n TotalYes: boolean;\r\n YesToNo: boolean;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsActionableDesignationByEventModel } from './CustomParamsActionableDesignationByEventModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsActionableDesignationByEvent.component.html'\r\n})\r\nexport class CustomParamsActionableDesignationByEventComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsActionableDesignationByEventModel();\r\n mainCategoryList = [];\r\n subCategoryList = [];\r\n states = [];\r\n reportFormatList = [{ value: \"Standard\", label: \"Standard Format\" }, { value: \"Age\", label: \"Group By Age\" }, { value: \"Gender\", label: \"Group By Gender\" }, { value: \"AgeGender\", label: \"Group By Age and Gender\" }]\r\n\r\n constructor(private appHttpService: AppHttpService, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n //this.model.State = \"CO\";\r\n this.model.ReportFormat = \"Standard\";\r\n this.model.NewYes = true;\r\n this.model.YesToYes = true;\r\n this.model.NoToYes = true;\r\n this.model.TotalYes = true;\r\n this.model.YesToNo = true;\r\n this.setStates();\r\n this.mainCategorySelect();\r\n this.subCategorySelect();\r\n this.addtoParameterList();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n mainCategorySelect() {\r\n this.mainCategoryList = [];\r\n this.appHttpService.get(\"EventMainCategoryDropDownList\", \"?state=\" + this.model.State).then(res => {\r\n this.mainCategoryList = res;\r\n });\r\n }\r\n\r\n setStates() {\r\n this.appHttpService.get(\"RegistryOwnerStates\", \"?userOrgId=\" + Globals.userOrganizationId + '&displayAllStates=false').then(res => {\r\n this.states = res;\r\n //set to first one\r\n this.model.State = this.states[0].state;\r\n this.addtoParameterList();\r\n });\r\n }\r\n\r\n mainCategoryChanged() {\r\n this.model.SubCategoryID = null;\r\n this.subCategorySelect();\r\n this.addtoParameterList();\r\n }\r\n\r\n subCategorySelect() {\r\n this.subCategoryList = [];\r\n this.appHttpService.get(\"EventSubCategoryDropDownList\", \"?eventCategoryId=\" + this.model.MainCategoryID + \"&state=\" + this.model.State).then(res => {\r\n this.subCategoryList = res;\r\n });\r\n }\r\n\r\n stateChanged() {\r\n this.model.MainCategoryID = null;\r\n this.model.SubCategoryID = null;\r\n this.mainCategorySelect();\r\n this.subCategorySelect();\r\n this.addtoParameterList();\r\n }\r\n\r\n}\r\n","export class CustomParamsActionableDesignationByStatusModel {\r\n State: string;\r\n RegistryState: boolean;\r\n RegistryWeb: boolean;\r\n ReportFormat: string;\r\n NewYes: boolean;\r\n YesToYes: boolean;\r\n NoToYes: boolean;\r\n TotalYes: boolean;\r\n YesToNo: boolean;\r\n Colorado: boolean;\r\n Hawaii: boolean;\r\n Nevada: boolean;\r\n Wyoming: boolean;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsActionableDesignationByStatusModel } from './CustomParamsActionableDesignationByStatusModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsActionableDesignationByStatus.component.html'\r\n})\r\nexport class CustomParamsActionableDesignationByStatusComponent implements CustomParamComponent {\r\n\r\n constructor(private appHttpService: AppHttpService, public globals: Globals) {\r\n\r\n }\r\n\r\n\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsActionableDesignationByStatusModel();\r\n reportFormatList = [{ value: \"Standard\", label: \"Standard Format\" }, { value: \"Age\", label: \"Group By Age\" }, { value: \"Gender\", label: \"Group By Gender\" }, { value: \"AgeGender\", label: \"Group By Age and Gender\" }]\r\n states = [];\r\n \r\n\r\n ngOnInit() {\r\n this.model.RegistryState = true;\r\n this.model.RegistryWeb = true;\r\n this.model.NewYes = true;\r\n this.model.YesToYes = true;\r\n this.model.NoToYes = true;\r\n this.model.TotalYes = true;\r\n this.model.YesToNo = true;\r\n this.model.ReportFormat = \"Standard\";\r\n this.setStates();\r\n \r\n }\r\n\r\n setStates() {\r\n this.appHttpService.get(\"RegistryOwnerStates\", \"?userOrgId=\" + Globals.userOrganizationId + '&displayAllStates=false').then(res => {\r\n this.states = res;\r\n this.stateChange();\r\n });\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n stateChange() {\r\n for (let i = 0; i < this.states.length; i++) {\r\n switch (this.states[i].state) {\r\n case \"CO\": {\r\n this.model.Colorado = this.states[i].value;\r\n break;\r\n }\r\n case \"WY\": {\r\n this.model.Wyoming = this.states[i].value;\r\n break;\r\n }\r\n case \"NV\": {\r\n this.model.Nevada = this.states[i].value;\r\n break;\r\n }\r\n case \"HI\": {\r\n this.model.Hawaii = this.states[i].value;\r\n break;\r\n }\r\n }\r\n };\r\n this.method.createStateList(this.model);\r\n this.addtoParameterList();\r\n }\r\n\r\n}\r\n","export class CustomParamsActionableDesignationByZipCodeModel {\r\n State: string;\r\n RegistryState: boolean;\r\n RegistryWeb: boolean;\r\n ZipCodeOptions: string;\r\n NewYes: boolean;\r\n YesToYes: boolean;\r\n NoToYes: boolean;\r\n TotalYes: boolean;\r\n YesToNo: boolean;\r\n Colorado: boolean;\r\n Hawaii: boolean;\r\n Nevada: boolean;\r\n Wyoming: boolean;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsActionableDesignationByZipCodeModel } from './CustomParamsActionableDesignationByZipCodeModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsActionableDesignationByZipCode.component.html'\r\n})\r\nexport class CustomParamsActionableDesignationByZipCodeComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsActionableDesignationByZipCodeModel();\r\n states = [];\r\n\r\n constructor(private appHttpService: AppHttpService, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.model.ZipCodeOptions = \"1\";\r\n this.model.RegistryState = true;\r\n this.model.RegistryWeb = true;\r\n this.model.NewYes = true;\r\n this.model.YesToYes = true;\r\n this.model.NoToYes = true;\r\n this.model.TotalYes = true;\r\n this.setStates();\r\n document.getElementById(\"TotalYes\").setAttribute(\"disabled\", \"true\");\r\n this.model.YesToNo = true;\r\n this.setStates();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n stateChange() {\r\n for (let i = 0; i < this.states.length; i++) {\r\n switch (this.states[i].state) {\r\n case \"CO\": {\r\n this.model.Colorado = this.states[i].value;\r\n break;\r\n }\r\n case \"WY\": {\r\n this.model.Wyoming = this.states[i].value;\r\n break;\r\n }\r\n case \"NV\": {\r\n this.model.Nevada = this.states[i].value;\r\n break;\r\n }\r\n case \"HI\": {\r\n this.model.Hawaii = this.states[i].value;\r\n break;\r\n }\r\n }\r\n };\r\n this.method.createStateList(this.model);\r\n this.addtoParameterList();\r\n }\r\n\r\n setStates() {\r\n this.appHttpService.get(\"RegistryOwnerStates\", \"?userOrgId=\" + Globals.userOrganizationId + '&displayAllStates=false').then(res => {\r\n this.states = res;\r\n this.stateChange();\r\n }).then().catch(error => {\r\n console.log(error);\r\n });;\r\n }\r\n\r\n ZipCodeOptionChanged() {\r\n if (this.model.ZipCodeOptions === \"3\") {\r\n document.getElementById(\"TotalYes\").removeAttribute(\"disabled\");\r\n }\r\n else {\r\n document.getElementById(\"TotalYes\").setAttribute(\"disabled\", \"true\");\r\n }\r\n this.addtoParameterList();\r\n }\r\n}\r\n","export class CustomParamsAlertModel {\r\n AlertTypeID: number;\r\n AlertID: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsAlertModel } from './CustomParamsAlertModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { ParameterPopupComponent } from '../../parameter-popup/parameter-popup.component';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsAlert.component.html'\r\n})\r\nexport class CustomParamsAlertComponent implements CustomParamComponent {\r\n constructor(private appHttpService: AppHttpService, private pc: ParameterPopupComponent) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.pc.getsourceCodeChangeEmitter().subscribe(item => this.selectedSourceCode(item));\r\n this.getAlertGroup();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsAlertModel();\r\n alertTypeList = [{ value: 1, label: 'Referrals' }, { value: 2, label: 'Messages' }, { value: 4, label: 'Import Offers' }];;\r\n alertList = [];\r\n sourceCodeName: string;\r\n subscription: any;\r\n\r\n selectedSourceCode(item: string) {\r\n this.sourceCodeName = item;\r\n this.getAlertGroup();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n getAlertGroup(): void {\r\n let params = \"\";\r\n let start = \"?\";\r\n if (this.model.AlertTypeID !== undefined && this.model.AlertTypeID !== null) {\r\n params = start + \"alertTypeId=\" + this.model.AlertTypeID;\r\n start = \"&\";\r\n }\r\n if (this.sourceCodeName !== undefined && this.sourceCodeName !== null) {\r\n params += start + 'sourceCodeName=' + this.sourceCodeName;\r\n }\r\n this.model.AlertID = null;\r\n this.addtoParameterList();\r\n this.alertList = [];\r\n this.appHttpService.get(\"AlertGroupDropdown\", params).then(res => {\r\n this.alertList = res;\r\n });\r\n }\r\n\r\n alertTypeChanged() {\r\n this.getAlertGroup();\r\n this.addtoParameterList();\r\n }\r\n\r\n}\r\n","export class CustomParamsApproacherModel {\r\n ApproacherOrganizationId: number;\r\n ApproacherId: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsApproacherModel } from './CustomParamsApproacherModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { ParameterDropDownDefault } from '../../parameterdropdowndefault.service';\r\nimport { ParameterPopupComponent } from '../../parameter-popup/parameter-popup.component';\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsApproacher.component.html'\r\n})\r\nexport class CustomParamsApproacherComponent implements CustomParamComponent {\r\n constructor(private appHttpService: AppHttpService, private pm: ParameterDropDownDefault,private pc: ParameterPopupComponent) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.reportGroupId = this.pm.getReportGroupdID();\r\n this.approacherOrganizationList = this.pm.getOrganizationData();\r\n this.subscription = this.pc.getreportGroupChangeEmitter().subscribe(item => this.selectedReportGroup(item));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n \r\n\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsApproacherModel();\r\n approacherOrganizationList = [];\r\n approacherOrgTypeValue: string;\r\n approacherList = [];\r\n subscription: any;\r\n reportGroupId: number;\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n ApproacherOrgScrollToEnd() {\r\n this.appHttpService.get(\"ReportOrganizationDropdown\", \"?reportGroupId=\" + this.reportGroupId + \"&lastRowId=\" + this.approacherOrganizationList.length).then(res => {\r\n this.approacherOrganizationList = this.approacherOrganizationList.concat(res);\r\n });\r\n }\r\n\r\n searchApproacherOrg(event: any) {\r\n this.approacherOrgTypeValue = event.term;\r\n switch (this.approacherOrgTypeValue.length) {\r\n case 0: {\r\n this.approacherOrganizationList = [];\r\n this.approacherOrgTypeValue = '';\r\n this.getOrganizationFromDatabase(this.reportGroupId, this.approacherOrganizationList.length, this.approacherOrgTypeValue);\r\n break;\r\n }\r\n case 1:\r\n case 2: {\r\n this.approacherOrganizationList = [];\r\n this.approacherOrgTypeValue = '';\r\n break;\r\n }\r\n default: {\r\n this.approacherOrganizationList = [];\r\n this.getOrganizationFromDatabase(this.reportGroupId, 0, this.approacherOrgTypeValue);\r\n }\r\n }\r\n }\r\n\r\n selectedReportGroup(item: number) {\r\n if (this.reportGroupId !== item) {\r\n this.reportGroupId = item;\r\n this.approacherOrganizationList = [];\r\n this.approacherOrgTypeValue = '';\r\n this.model.ApproacherOrganizationId = null;\r\n this.model.ApproacherId = null;\r\n this.getOrganizationFromDatabase(this.reportGroupId, this.approacherOrganizationList.length, this.approacherOrgTypeValue);\r\n this.addtoParameterList();\r\n }\r\n }\r\n\r\n validateApproacherOrgDropdown() {\r\n if (this.approacherOrganizationList.length < 1) {\r\n if (this.reportGroupId === this.pm.getReportGroupdID()) {\r\n this.approacherOrganizationList = this.pm.getOrganizationData();\r\n }\r\n else {\r\n this.getOrganizationFromDatabase(this.reportGroupId, 0, this.approacherOrgTypeValue);\r\n }\r\n }\r\n }\r\n\r\n getApproacherPersonData(): void {\r\n this.approacherList = [];\r\n this.model.ApproacherId = null;\r\n if (this.model.ApproacherOrganizationId !== undefined && this.model.ApproacherOrganizationId !== null) {\r\n this.appHttpService.get(\"ApproacherPersonDropDown\", \"?organizationId=\" + this.model.ApproacherOrganizationId).then(res => {\r\n this.approacherList = res;\r\n });\r\n }\r\n }\r\n\r\n clearApproacherOrg() {\r\n this.approacherOrganizationList = [];\r\n this.approacherOrgTypeValue = '';\r\n this.model.ApproacherOrganizationId = null;\r\n this.model.ApproacherId = null;\r\n this.getOrganizationFromDatabase(this.reportGroupId, this.approacherOrganizationList.length, this.approacherOrgTypeValue);\r\n this.addtoParameterList();\r\n }\r\n\r\n approacherOrganizationChanged() {\r\n this.getApproacherPersonData();\r\n this.addtoParameterList();\r\n }\r\n\r\n private getOrganizationFromDatabase(reportGroupId, lastRowId, searchTerm) {\r\n this.appHttpService.get(\"ReportOrganizationDropdown\", \"?reportGroupId=\" + reportGroupId + \"&lastRowId=\" + lastRowId + \"&searchterm=\" + searchTerm).then(res => {\r\n this.approacherOrganizationList = this.approacherOrganizationList.concat(res);\r\n });\r\n }\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsBillingInvoiceModel } from './customParamsBillingInvoiceModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsBillingInvoice.component.html'\r\n})\r\nexport class CustomParamsBillingInvoiceComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsBillingInvoiceModel();\r\n invoiceDateList = [];\r\n\r\n constructor(private appHttpService: AppHttpService, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.model = new CustomParamsBillingInvoiceModel();\r\n this.model.InvoiceDate = \"\";\r\n this.invoiceDateSelect();\r\n }\r\n\r\n invoiceDateSelect() {\r\n this.appHttpService.get(\"InvoiceDateDropDownList\", \"\").then(res => {\r\n this.invoiceDateList = res;\r\n if (this.invoiceDateList.length > 0) {\r\n this.model.InvoiceDateNumber = this.invoiceDateList[0].value;\r\n }\r\n this.addtoParameterList();\r\n });\r\n }\r\n\r\n addtoParameterList() {\r\n if (this.model.InvoiceDateNumber != undefined && this.invoiceDateList.length > 0) {\r\n for (var i = 0; i < this.invoiceDateList.length; i++) {\r\n if (this.invoiceDateList[i].value == this.model.InvoiceDateNumber) {\r\n this.model.InvoiceDate = this.invoiceDateList[i].label;\r\n break;\r\n }\r\n }\r\n }\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n}\r\n","export class CustomParamsBillingInvoiceModel {\r\n InvoiceHistoryID: number;\r\n InvoiceDate: string;\r\n InvoiceDateNumber: number;\r\n}\r\n","export class CustomParamsDisplayTriageFSControlModel {\r\n DisplayTriage: boolean;\r\n DisplayFamilyServices: boolean\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsDisplayTriageFSControlModel } from './CustomParamsDisplayTriageFSControlModel';\r\nimport { CommonMethods } from \"../commonMethods\"\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsDisplayTriageFSControl.component.html'\r\n})\r\nexport class CustomParamsDisplayTriageFSControlComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n model = new CustomParamsDisplayTriageFSControlModel();\r\n methods = new CommonMethods();\r\n\r\n ngOnInit() {\r\n this.model.DisplayFamilyServices = true;\r\n this.model.DisplayTriage = true;\r\n this.addtoParameterList();\r\n }\r\n\r\n addtoParameterList() {\r\n this.methods.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsFTPReportsModel } from './customParamsFTPReportsModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { ParameterPopupComponent } from '../../parameter-popup/parameter-popup.component';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsFTPReports.component.html'\r\n})\r\nexport class CustomParamsFTPReportsComponent implements CustomParamComponent {\r\n constructor(private appHttpService: AppHttpService, private pc: ParameterPopupComponent) {\r\n \r\n \r\n }\r\n\r\n\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsFTPReportsModel();\r\n referralTypeList = [];\r\n reportGroupId: number;\r\n subscription: any;\r\n\r\n ngOnInit() {\r\n this.subscription = this.pc.getreportGroupChangeEmitter().subscribe(item => this.selectedReportGroup(item));\r\n this.model.ColumnSet = \"1\";\r\n this.addtoParameterList();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n selectedReportGroup(item: number) {\r\n this.reportGroupId = item;\r\n this.getReferralType();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n getReferralType(): void {\r\n this.model.ReferralTypeID = null;\r\n this.addtoParameterList();\r\n this.referralTypeList = [];\r\n this.appHttpService.get(\"ReferralTypeDropDown\", \"?reportGroupId=\" + this.reportGroupId).then(res => {\r\n this.referralTypeList = res;\r\n });\r\n }\r\n}\r\n","export class CustomParamsFTPReportsModel {\r\n ReferralTypeID: number;\r\n CallID: string;\r\n ColumnSet: string;\r\n}\r\n","export class CustomParamsHoursBackModel {\r\n hoursBack: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsHoursBackModel } from './CustomParamsHoursBackModel';\r\nimport { CommonMethods } from '../commonMethods';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsHoursBack.component.html'\r\n})\r\nexport class CustomParamsHoursBackComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsHoursBackModel();\r\n\r\n ngOnInit() {\r\n this.model.hoursBack = 3;\r\n this.addtoParameterList();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","export class CustomParamsImportEventLogModel {\r\n CallId: string;\r\n DisplayEventLog: boolean;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsImportEventLogModel } from './CustomParamsImportEventLogModel';\r\nimport { CommonMethods } from '../commonMethods';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsImportEventLog.component.html'\r\n})\r\nexport class CustomParamsImportEventLogComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsImportEventLogModel();\r\n\r\n ngOnInit() {\r\n this.model.DisplayEventLog = true;\r\n this.addtoParameterList();\r\n }\r\n\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","export class CustomParamsImportOfferActivityModel {\r\n CallID: string;\r\n MessageCallerOrganization: string;\r\n MessageForOrganizationID: number;\r\n MessageFor: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsImportOfferActivityModel } from './CustomParamsImportOfferActivityModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { ParameterPopupComponent } from '../../parameter-popup/parameter-popup.component';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsImportOfferActivity.component.html'\r\n})\r\nexport class CustomParamsImportOfferActivityComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsImportOfferActivityModel();\r\n messageForOrganizationList = [];\r\n messageForList = [];\r\n sourceCodeName: string;\r\n subscription: any;\r\n\r\n constructor(private appHttpService: AppHttpService, private pc: ParameterPopupComponent, public globals: Globals) {\r\n\r\n }\r\n ngOnInit() {\r\n this.subscription = this.pc.getsourceCodeChangeEmitter().subscribe(item => this.selectedSourceCode(item));\r\n this.getMessageForOrganization();\r\n this.getMessageFor();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n selectedSourceCode(item: string) {\r\n this.sourceCodeName = item;\r\n this.getMessageForOrganization();\r\n }\r\n\r\n getMessageForOrganization(): void {\r\n let params = \"?sourceCodeTypeId=2\";\r\n\r\n if (this.sourceCodeName !== undefined && this.sourceCodeName !== null) {\r\n params += \"&sourceCodeName=\" + this.sourceCodeName;\r\n }\r\n params += \"&organizationId=\" + Globals.userOrganizationId;\r\n this.model.MessageForOrganizationID = null;\r\n this.model.MessageFor = null;\r\n this.messageForOrganizationList = [];\r\n this.addtoParameterList();\r\n this.appHttpService.get(\"MessageImportOrganizationsDropDown\", params).then(res => {\r\n this.messageForOrganizationList = res;\r\n });\r\n }\r\n\r\n getMessageFor(): void {\r\n this.messageForList = [];\r\n this.model.MessageFor = null;\r\n this.addtoParameterList();\r\n let params = \"\";\r\n if (this.model.MessageForOrganizationID !== undefined && this.model.MessageForOrganizationID !== null) {\r\n params = \"?organizationId=\" + this.model.MessageForOrganizationID;\r\n }\r\n else {\r\n params = \"?organizationId=\" + Globals.userOrganizationId;\r\n }\r\n this.appHttpService.get(\"PersonListByOrganizationDropDown\", params).then(res => {\r\n this.messageForList = res;\r\n });\r\n }\r\n\r\n changeOrganization() {\r\n this.getMessageFor();\r\n this.addtoParameterList();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","export class CustomParamsImportStattracUserModel {\r\n CallId: string;\r\n User: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsImportStattracUserModel } from './CustomParamsImportStattracUserModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsImportStattracUser.component.html'\r\n})\r\nexport class CustomParamsImportStattracUserComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsImportStattracUserModel();\r\n userList = [];\r\n\r\n constructor(private appHttpService: AppHttpService, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getStatTracUsers();\r\n }\r\n\r\n getStatTracUsers(): void {\r\n const params = \"?userOrgId=\" + Globals.userOrganizationId;\r\n this.userList = [];\r\n this.addtoParameterList();\r\n this.appHttpService.get(\"StatTracUserDropDown\", params).then(res => {\r\n this.userList = res;\r\n });\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","export class CustomParamsMessageActivityModel {\r\n CallID: string;\r\n MessageCallerOrganization: string;\r\n MessageForOrganizationID: number;\r\n MessageFor: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsMessageActivityModel } from './CustomParamsMessageActivityModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { ParameterPopupComponent } from '../../parameter-popup/parameter-popup.component';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsMessageActivity.component.html'\r\n})\r\nexport class CustomParamsMessageActivityComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsMessageActivityModel();\r\n messageForOrganizationList = [];\r\n messageForList = [];\r\n sourceCodeName: string;\r\n subscription: any;\r\n\r\n constructor(private appHttpService: AppHttpService, private pc: ParameterPopupComponent, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.pc.getsourceCodeChangeEmitter().subscribe(item => this.selectedSourceCode(item));\r\n this.getMessageForOrganization();\r\n this.getMessageFor();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n selectedSourceCode(item: string) {\r\n this.sourceCodeName = item;\r\n this.getMessageForOrganization();\r\n }\r\n\r\n getMessageForOrganization(): void {\r\n let params = \"?sourceCodeTypeId=2\";\r\n \r\n if (this.sourceCodeName !== undefined && this.sourceCodeName !== null) {\r\n params += \"&sourceCodeName=\" + this.sourceCodeName;\r\n }\r\n params += \"&organizationId=\" + Globals.userOrganizationId;\r\n this.model.MessageForOrganizationID = null;\r\n this.model.MessageFor = null;\r\n this.messageForOrganizationList = [];\r\n this.addtoParameterList();\r\n this.appHttpService.get(\"MessageImportOrganizationsDropDown\", params).then(res => {\r\n this.messageForOrganizationList = res;\r\n });\r\n }\r\n\r\n getMessageFor(): void {\r\n this.messageForList = [];\r\n this.model.MessageFor = null;\r\n this.addtoParameterList();\r\n let params = \"\";\r\n if (this.model.MessageForOrganizationID !== undefined && this.model.MessageForOrganizationID !== null) {\r\n params = \"?organizationId=\" + this.model.MessageForOrganizationID;\r\n }\r\n else {\r\n params = \"?organizationId=\" + Globals.userOrganizationId;\r\n }\r\n \r\n this.appHttpService.get(\"PersonListByOrganizationDropDown\", params).then(res => {\r\n this.messageForList = res;\r\n });\r\n }\r\n\r\n changeOrganization() {\r\n this.getMessageFor();\r\n this.addtoParameterList();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","export class CustomParamsMessageEventModel {\r\n CallId: string;\r\n DisplayEventLog: boolean;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsMessageEventModel } from './CustomParamsMessageEventModel';\r\nimport { CommonMethods } from '../commonMethods';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsMessageEvent.component.html'\r\n})\r\nexport class CustomParamsMessageEventComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsMessageEventModel();\r\n\r\n ngOnInit() {\r\n this.model.DisplayEventLog = true;\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","export class CustomParamsMessageStattracUserModel {\r\n CallId: string;\r\n User: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsMessageStattracUserModel } from './CustomParamsMessageStattracUserModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsMessageStattracUser.component.html'\r\n})\r\nexport class CustomParamsMessageStattracUserComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsMessageStattracUserModel();\r\n userList = [];\r\n\r\n constructor(private appHttpService: AppHttpService, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getStatTracUsers();\r\n }\r\n\r\n getStatTracUsers(): void {\r\n const params = \"?userOrgId=\" + Globals.userOrganizationId;\r\n this.userList = [];\r\n this.addtoParameterList();\r\n this.appHttpService.get(\"StatTracUserDropDown\", params).then(res => {\r\n this.userList = res;\r\n });\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","export class CustomParamsOrganizationTypeModel {\r\n OrganizationTypeId: number\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsOrganizationTypeModel } from './CustomParamsOrganizationTypeModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsOrganizationType.component.html'\r\n})\r\nexport class CustomParamsOrganizationTypeComponent implements CustomParamComponent {\r\n constructor(private appHttpService: AppHttpService) {\r\n this.getOrganizationType();\r\n }\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsOrganizationTypeModel();\r\n organizationTypeList = [];\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n getOrganizationType(): void {\r\n\r\n this.appHttpService.get(\"OrganizationTypeDropdown\", \"\").then(res => {\r\n this.organizationTypeList = res;\r\n });\r\n }\r\n\r\n}\r\n","export class CustomParamsPersonnelListingModel {\r\n StateId: string;\r\n OrganizationTypeId: string;\r\n OrganizationID: string;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsPersonnelListingModel } from './CustomParamsPersonnelListingModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsPersonnelListing.component.html'\r\n})\r\nexport class CustomParamsPersonnelListingComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsPersonnelListingModel();\r\n stateList = [];\r\n typeList = [];\r\n orgList = [];\r\n\r\n constructor(private appHttpService: AppHttpService, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getStateList();\r\n this.getTypeList();\r\n }\r\n\r\n getStateList(): void {\r\n this.stateList = [];\r\n this.addtoParameterList();\r\n this.appHttpService.get(\"StateDropDown\", '').then(res => {\r\n this.stateList = res;\r\n });\r\n }\r\n\r\n getTypeList(): void {\r\n this.typeList = [];\r\n this.addtoParameterList();\r\n this.appHttpService.get(\"OrganizationTypeDropdown\", '').then(res => {\r\n this.typeList = res;\r\n });\r\n }\r\n\r\n getOrganizationList(): void {\r\n this.orgList = [];\r\n if ((this.model.StateId !== undefined && this.model.StateId !== null) || (this.model.OrganizationTypeId !== undefined && this.model.OrganizationTypeId !== null)){\r\n let params = \"\";\r\n if (this.model.StateId !== undefined && this.model.StateId !== null) {\r\n params = \"stateId=\" + this.model.StateId;\r\n }\r\n if (this.model.OrganizationTypeId !== undefined && this.model.OrganizationTypeId !== null) {\r\n if (params.length === 0) {\r\n params = \"organizationTypeId=\" + this.model.OrganizationTypeId;\r\n }\r\n else {\r\n params = \"&organizationTypeId=\" + this.model.OrganizationTypeId;\r\n }\r\n }\r\n this.appHttpService.get(\"OrganizationByStateAndTypeDropDown\", \"?\" + params).then(res => {\r\n this.orgList = res;\r\n });\r\n }\r\n\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n OrganizationIsValid() {\r\n if (this.model.OrganizationID === undefined || this.model.OrganizationID === null ) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n","export class CustomParamsProcessorModel {\r\n ProcessorType: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsProcessorModel } from './CustomParamsProcessorModel';\r\nimport { CommonMethods } from '../commonMethods';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsProcessor.component.html'\r\n})\r\nexport class CustomParamsProcessorComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsProcessorModel();\r\n processorList = [{ value: \"CTDN\", label: \"CTDN\" }, { value: \"Cryolife\", label: \"Cryolife\" }, { value: \"MTF\", label: \"MTF\" }, { value: \"LifeNet\", label: \"LifeNet\" }];\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","export class CustomParamsReferralActivityModel {\r\n CallID: number;\r\n PatientLastName: string;\r\n PatientFirstName: string;\r\n MedicalRecordNumber: string;\r\n ReferralType: number;\r\n GroupByReferralFacility: boolean;\r\n DisplayDisposition: boolean;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsReferralActivityModel } from './CustomParamsReferralActivityModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { ParameterPopupComponent } from '../../parameter-popup/parameter-popup.component';\r\n\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsReferralActivity.component.html'\r\n})\r\nexport class CustomParamsReferralActivityComponent implements CustomParamComponent {\r\n constructor(private appHttpService: AppHttpService, private pc: ParameterPopupComponent) {\r\n\r\n }\r\n\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsReferralActivityModel();\r\n referralTypeList = [];\r\n reportGroupId: number;\r\n subscription: any;\r\n\r\n ngOnInit() {\r\n this.subscription = this.pc.getreportGroupChangeEmitter().subscribe(item => this.selectedReportGroup(item));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n selectedReportGroup(item: number) {\r\n this.reportGroupId = item;\r\n this.getReferralType();\r\n }\r\n\r\n getReferralType(): void {\r\n this.model.ReferralType = null;\r\n this.addtoParameterList();\r\n this.referralTypeList = [];\r\n this.appHttpService.get(\"PendingReferralTypeDropDown\", \"?reportGroupId=\" + this.reportGroupId).then(res => {\r\n this.referralTypeList = res;\r\n });\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n \r\n}\r\n","export class CustomParamsReferralDetailModel {\r\n CallID: string;\r\n DisplayEventLog: boolean;\r\n DisplaySecondaryData: boolean;\r\n DisplaySecondaryDisposition: boolean;\r\n SortSecondaryData: string;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsReferralDetailModel } from './CustomParamsReferralDetailModel';\r\nimport { CommonMethods } from '../commonMethods';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsReferralDetail.component.html'\r\n})\r\nexport class CustomParamsReferralDetailComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsReferralDetailModel();\r\n secondarySortList = [{ value: 'Alphabetical', label: 'Alphabetical Order' }, { value: 'Case', label: 'Case Order' }];\r\n\r\n ngOnInit() {\r\n this.model.DisplayEventLog = true;\r\n this.addtoParameterList();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","export class CustomParamsReferralOutcomeModel {\r\n CallID: number;\r\n PatientLastName: string;\r\n PatientFirstName: string;\r\n MedicalRecordNumber: string;\r\n ReferralType: number;\r\n CauseOfDeath: number;\r\n GroupByReferralFacility: boolean;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsReferralOutcomeModel } from './CustomParamsReferralOutcomeModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { ParameterPopupComponent } from '../../parameter-popup/parameter-popup.component';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsReferralOutcome.component.html'\r\n})\r\nexport class CustomParamsReferralOutcomeComponent implements CustomParamComponent {\r\n constructor(private appHttpService: AppHttpService, private pc: ParameterPopupComponent) {\r\n this.getCauseOfDeath();\r\n }\r\n \r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsReferralOutcomeModel();\r\n referralTypeList = [];\r\n causeOfDeathList = [];\r\n reportGroupId: number;\r\n subscription: any;\r\n\r\n ngOnInit() {\r\n this.subscription = this.pc.getreportGroupChangeEmitter().subscribe(item => this.selectedReportGroup(item));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n selectedReportGroup(item: number) {\r\n this.reportGroupId = item;\r\n this.getReferralType();\r\n }\r\n\r\n getReferralType(): void {\r\n this.model.ReferralType = null;\r\n this.addtoParameterList();\r\n this.referralTypeList = [];\r\n this.appHttpService.get(\"PendingReferralTypeDropDown\", \"?reportGroupId=\" + this.reportGroupId).then(res => {\r\n this.referralTypeList = res;\r\n });\r\n }\r\n\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n getCauseOfDeath(): void {\r\n \r\n this.appHttpService.get(\"CauseOfDeathDropdown\", \"\").then(res => {\r\n this.causeOfDeathList = res;\r\n });\r\n }\r\n\r\n}\r\n","export class CustomParamsReferralStatTracUserModel {\r\n CallID: string;\r\n User: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsReferralStatTracUserModel } from './CustomParamsReferralStatTracUserModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsReferralStatTracUser.component.html'\r\n})\r\nexport class CustomParamsReferralStatTracUserComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsReferralStatTracUserModel();\r\n userList = [];\r\n\r\n constructor(private appHttpService: AppHttpService, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getStatTracUsers();\r\n }\r\n\r\n getStatTracUsers(): void {\r\n const params = \"?userOrgId=\" + Globals.userOrganizationId;\r\n this.userList = [];\r\n this.addtoParameterList();\r\n this.appHttpService.get(\"StatTracUserDropDown\", params).then(res => {\r\n this.userList = res;\r\n });\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n CallIDIsValid() {\r\n if (this.model.CallID === undefined || this.model.CallID === null || this.model.CallID === '') {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","export class CustomParamsReferralTypeModel {\r\n ReferralType: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsReferralTypeModel } from './CustomParamsReferralTypeModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { ParameterPopupComponent } from '../../parameter-popup/parameter-popup.component';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsReferralType.component.html'\r\n})\r\nexport class CustomParamsReferralTypeComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsReferralTypeModel();\r\n referralTypeList = [];\r\n reportGroupId: number;\r\n subscription: any;\r\n\r\n constructor(private appHttpService: AppHttpService, private pc: ParameterPopupComponent) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.pc.getreportGroupChangeEmitter().subscribe(item => this.selectedReportGroup(item));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n selectedReportGroup(item: number) {\r\n this.reportGroupId = item;\r\n this.getReferralType();\r\n this.model.ReferralType = 0;\r\n }\r\n\r\n getReferralType(): void {\r\n this.model.ReferralType = null;\r\n this.addtoParameterList();\r\n this.referralTypeList = [];\r\n this.appHttpService.get(\"PendingReferralTypeDropDown\", \"?reportGroupId=\" + this.reportGroupId).then(res => {\r\n this.referralTypeList = res;\r\n });\r\n }\r\n\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","export class CustomParamsScheduleLookupModel {\r\n ScheduleOrganization: number;\r\n ScheduleGroup: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsScheduleLookupModel } from './CustomParamsScheduleLookupModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsScheduleLookup.component.html'\r\n})\r\nexport class CustomParamsScheduleLookupComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsScheduleLookupModel();\r\n scheduleOrganizationList = [];\r\n scheduleGroupList = [];\r\n\r\n constructor(private appHttpService: AppHttpService, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getScheduleOrganization();\r\n this.getScheduleGroups();\r\n }\r\n\r\n getScheduleOrganization(): void {\r\n const params = \"?OrganizationId=\" + Globals.userOrganizationId;\r\n this.scheduleOrganizationList = [];\r\n this.addtoParameterList();\r\n this.appHttpService.get(\"ScheduleOrganizationsDropdown\", params).then(res => {\r\n this.scheduleOrganizationList = res;\r\n });\r\n }\r\n\r\n getScheduleGroups(): void {\r\n this.scheduleGroupList = [];\r\n this.model.ScheduleGroup = null;\r\n let org = Globals.userOrganizationId;\r\n if (this.model.ScheduleOrganization !== undefined && this.model.ScheduleOrganization !== null) {\r\n org = this.model.ScheduleOrganization;\r\n }\r\n const params = \"?OrganizationId=\" + org;\r\n \r\n this.appHttpService.get(\"ScheduleGroupsDropdown\", params).then(res => {\r\n this.scheduleGroupList = res;\r\n });\r\n }\r\n\r\n OrganizationChanged() {\r\n this.getScheduleGroups();\r\n this.addtoParameterList();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","export class CustomParamsScreeningCriteriaModel {\r\n CriteriaID: number;\r\n OrganizationID: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsScreeningCriteriaModel } from './CustomParamsScreeningCriteriaModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsScreeningCriteria.component.html'\r\n})\r\nexport class CustomParamsScreeningCriteriaComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsScreeningCriteriaModel();\r\n criteriaGroupList = [];\r\n orgList = [];\r\n\r\n constructor(private appHttpService: AppHttpService, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.getOrganizationList();\r\n this.getCriteriaGroupList();\r\n }\r\n\r\n getOrganizationList(): void {\r\n this.orgList = [];\r\n this.addtoParameterList();\r\n this.appHttpService.get(\"ScreeningCriteriaOrganizationsDropDown\", '').then(res => {\r\n this.orgList = res;\r\n });\r\n }\r\n\r\n getCriteriaGroupList(): void {\r\n this.criteriaGroupList = [];\r\n\r\n let params = \"\";\r\n if (this.model.OrganizationID !== undefined && this.model.OrganizationID !== null) {\r\n params = \"?organizationId=\" + this.model.OrganizationID;\r\n }\r\n\r\n this.appHttpService.get(\"ScreeningCriteriaGroupsDropdown\", params).then(res => {\r\n this.criteriaGroupList = res;\r\n });\r\n this.addtoParameterList();\r\n }\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n OrganizationIsValid() {\r\n if (this.model.OrganizationID === undefined || this.model.OrganizationID === null) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n","export class CustomParamsStartEndMonthYearModel {\r\n StartMonth: number;\r\n StartYear: number;\r\n EndMonth: number;\r\n EndYear: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsStartEndMonthYearModel } from './CustomParamsStartEndMonthYearModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsStartEndMonthYear.component.html'\r\n})\r\nexport class CustomParamsStartEndMonthYearComponent implements CustomParamComponent {\r\n constructor(private appHttpService: AppHttpService) {\r\n this.getYearDropDown();\r\n this.getMonthDropDown();\r\n //set default to current month and year\r\n const currentDate = new Date();\r\n this.model.EndMonth = currentDate.getMonth() + 1;\r\n this.model.StartMonth = currentDate.getMonth() +1;\r\n this.model.EndYear = currentDate.getFullYear();\r\n this.model.StartYear = currentDate.getFullYear();\r\n \r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.addtoParameterList();\r\n }\r\n\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsStartEndMonthYearModel();\r\n monthList = [];\r\n yearList = [];\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n getYearDropDown(): void {\r\n\r\n this.appHttpService.get(\"YearDropdown\", \"\").then(res => {\r\n this.yearList = res;\r\n });\r\n }\r\n\r\n getMonthDropDown(): void {\r\n\r\n this.appHttpService.get(\"MonthDropdown\", \"\").then(res => {\r\n this.monthList = res;\r\n });\r\n }\r\n\r\n}\r\n","export class CustomParamsTrackingNumberAndTypeControlModel {\r\n TrackingNum: string;\r\n TrackingTypeID: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsTrackingNumberAndTypeControlModel } from './CustomParamsTrackingNumberAndTypeControlModel';\r\nimport { CommonMethods } from '../commonMethods';\r\nimport { AppHttpService } from '../../apphttp.Service';\r\nimport { Globals } from '../../globals.Service';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsTrackingNumberAndTypeControl.component.html'\r\n})\r\nexport class CustomParamsTrackingNumberAndTypeControlComponent implements CustomParamComponent {\r\n constructor(private appHttpService: AppHttpService, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.appHttpService.get(\"usernameandorganization\", \"\").then(res => {\r\n Globals.userFullName = res[\"UserFullName\"];\r\n Globals.userOrganizationId = res[\"UserOrganizationId\"];\r\n Globals.isAuthenticated = true;\r\n Globals.webPersonId = res[\"WebPersonId\"];\r\n this.getTrackingType();\r\n }).then().catch(error => {\r\n console.log(error);\r\n });\r\n\r\n }\r\n\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsTrackingNumberAndTypeControlModel();\r\n trackingTypeList = [];\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n getTrackingType(): void {\r\n\r\n this.appHttpService.get(\"QATrackingTypeDropdown\", \"?organizationId=\" + Globals.userOrganizationId).then(res => {\r\n this.trackingTypeList = res;\r\n });\r\n }\r\n\r\n}\r\n","export class CustomParamsUploadedReferralStatusModel {\r\n LastName: string;\r\n FileName: string;\r\n StatusId: number;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomParamComponent } from '../customParam.component';\r\nimport { CustomParamsUploadedReferralStatusModel } from './CustomParamsUploadedReferralStatusModel';\r\nimport { CommonMethods } from '../commonMethods';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: './customParamsUploadedReferralStatus.component.html'\r\n})\r\nexport class CustomParamsUploadedReferralStatusComponent implements CustomParamComponent {\r\n @Input() data: any;\r\n method = new CommonMethods();\r\n model = new CustomParamsUploadedReferralStatusModel();\r\n statusList = [{ value: 0, label: 'Pending' }, { value: 1, label: 'Success' }, { value: 2, label: 'Failure' }];\r\n\r\n addtoParameterList() {\r\n this.method.customPopulateFieldForCustomComponenents(this.model, document.getElementById(\"customParameterList\"));\r\n }\r\n\r\n}\r\n","\r\nimport { Component, Input, OnInit, ViewChild, ComponentFactoryResolver } from '@angular/core';\r\nimport { CustomParamsDisplayTriageFSControlComponent } from './customParamsDisplayTriageFSControl/customParamsDisplayTriageFSControl.component';\r\nimport { CustomParamItem } from './customParamItem';\r\nimport { CustomParameterDirective } from '../customReportParams/customParameter.directive'\r\nimport { CustomParamComponent } from './customParam.component';\r\nimport { CustomParamsActionableDesignationByEventComponent } from './customParamsActionableDesignationByEvent/customParamsActionableDesignationByEvent.component';\r\nimport { CustomParamsActionableDesignationByStatusComponent } from './customParamsActionableDesignationByStatus/customParamsActionableDesignationByStatus.component';\r\nimport { CustomParamsActionableDesignationByZipCodeComponent } from './customParamsActionableDesignationByZipCode/customParamsActionableDesignationByZipCode.component';\r\nimport { CustomParamsBillingInvoiceComponent } from './customParamsBillingInvoice/customParamsBillingInvoice.component';\r\nimport { CustomParamsAlertComponent } from './customParamsAlert/customParamsAlert.component';\r\nimport { CustomParamsImportOfferActivityComponent } from './customParamsImportOfferActivity/customParamsImportOfferActivity.component';\r\nimport { CustomParamsImportStattracUserComponent } from './customParamsImportStattracUser/customParamsImportStattracUser.component';\r\nimport { CustomParamsImportEventLogComponent } from './customParamsImportEventLog/customParamsImportEventLog.component';\r\nimport { CustomParamsApproacherComponent } from './customParamsApproacher/customParamsApproacher.component';\r\nimport { CustomParamsMessageActivityComponent } from './customParamsMessageActivity/customParamsMessageActivity.component';\r\nimport { CustomParamsMessageStattracUserComponent } from './customParamsMessageStattracUser/customParamsMessageStattracUser.component';\r\nimport { CustomParamsMessageEventComponent } from './customParamsMessageEvent/customParamsMessageEvent.component';\r\nimport { CustomParamsReferralTypeComponent } from './customParamsReferralType/customParamsReferralType.component';\r\nimport { CustomParamsTrackingNumberAndTypeControlComponent } from './customParamsTrackingNumberAndTypeControl/customParamsTrackingNumberAndTypeControl.component';\r\nimport { CustomParamsReferralActivityComponent } from './customParamsReferralActivity/customParamsReferralActivity.component';\r\nimport { CustomParamsReferralStatTracUserComponent } from './customParamsReferralStatTracUser/customParamsReferralStatTracUser.component';\r\nimport { CustomParamsReferralDetailComponent } from './customParamsReferralDetail/customParamsReferralDetail.component';\r\nimport { CustomParamsReferralOutcomeComponent } from './customParamsReferralOutcome/customParamsReferralOutcome.component';\r\nimport { CustomParamsScheduleLookupComponent } from './customParamsScheduleLookup/customParamsScheduleLookup.component';\r\nimport { CustomParamsProcessorComponent } from './customParamsProcessor/customParamsProcessor.component';\r\nimport { CustomParamsHoursBackComponent } from './customParamsHoursBack/customParamsHoursBack.component';\r\nimport { CustomParamsOrganizationTypeComponent } from './customParamsOrganizationType/customParamsOrganizationType.component';\r\nimport { CustomParamsStartEndMonthYearComponent } from './customParamsStartEndMonthYear/customParamsStartEndMonthYear.component';\r\nimport { CustomParamsFTPReportsComponent } from './customParamsFTPReports/customParamsFTPReports.component';\r\nimport { CustomParams2004ExtendedFTPReportsComponent } from './customParams2004ExtendedFTPReports/customParams2004ExtendedFTPReports.component';\r\nimport { CustomParams2006ExtendedFTPReportsComponent } from './customParams2006ExtendedFTPReports/customParams2006ExtendedFTPReports.component';\r\nimport { CustomParamsPersonnelListingComponent } from './customParamsPersonnelListing/customParamsPersonnelListing.component';\r\nimport { CustomParamsUploadedReferralStatusComponent } from './customParamsUploadedReferralStatus/customParamsUploadedReferralStatus.component';\r\nimport { CustomParamsScreeningCriteriaComponent } from './customParamsScreeningCriteria/customParamsScreeningCriteria.component';\r\n\r\n\r\n@Component({\r\n selector: 'reports-customReportsParameter',\r\n template: '
'\r\n \r\n})\r\nexport class CustomReportsParameterComponent implements OnInit {\r\n @Input() customControl: string;\r\n @ViewChild(CustomParameterDirective, { static: true }) customParameter: CustomParameterDirective;\r\n\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver) { }\r\n\r\n ngOnInit() {\r\n this.loadComponent();\r\n }\r\n\r\n\r\n\r\n loadComponent() {\r\n let item: CustomParamItem;\r\n item = this.createCustomControl();\r\n if (item !== null) {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(item.component);\r\n\r\n const viewContainerRef = this.customParameter.viewContainerRef;\r\n viewContainerRef.clear();\r\n\r\n viewContainerRef.createComponent(componentFactory);\r\n }\r\n }\r\n\r\n createCustomControl(): CustomParamItem {\r\n switch (this.customControl) {\r\n case \"customParamsDisplayTriageFSControl\": {\r\n return new CustomParamItem(CustomParamsDisplayTriageFSControlComponent);\r\n }\r\n case \"customParamsActionableDesignationByEvent\": {\r\n return new CustomParamItem(CustomParamsActionableDesignationByEventComponent);\r\n }\r\n case \"customParamsActionableDesignationByStatus\": {\r\n return new CustomParamItem(CustomParamsActionableDesignationByStatusComponent);\r\n }\r\n case \"customParamsActionableDesignationByZipCode\": {\r\n return new CustomParamItem(CustomParamsActionableDesignationByZipCodeComponent);\r\n }\r\n case \"customParamsBillingInvoice\": {\r\n return new CustomParamItem(CustomParamsBillingInvoiceComponent);\r\n }\r\n case \"customParamsAlert\": {\r\n return new CustomParamItem(CustomParamsAlertComponent);\r\n }\r\n case \"customParamsImportOfferActivity\": {\r\n return new CustomParamItem(CustomParamsImportOfferActivityComponent);\r\n }\r\n case \"customParamsImportStattracUser\": {\r\n return new CustomParamItem(CustomParamsImportStattracUserComponent);\r\n }\r\n case \"customParamsImportEventLog\": {\r\n return new CustomParamItem(CustomParamsImportEventLogComponent);\r\n }\r\n case \"customParamsApproacher\": {\r\n return new CustomParamItem(CustomParamsApproacherComponent);\r\n }\r\n case \"customParamsMessageActivity\": {\r\n return new CustomParamItem(CustomParamsMessageActivityComponent);\r\n }\r\n case \"customParamsMessageStattracUser\": {\r\n return new CustomParamItem(CustomParamsMessageStattracUserComponent);\r\n }\r\n case \"customParamsMessageEvent\": {\r\n return new CustomParamItem(CustomParamsMessageEventComponent);\r\n }\r\n case \"customParamsReferralType\": {\r\n return new CustomParamItem(CustomParamsReferralTypeComponent);\r\n }\r\n case \"customParamsTrackingNumberAndTypeControl\": {\r\n return new CustomParamItem(CustomParamsTrackingNumberAndTypeControlComponent);\r\n }\r\n case \"customParamsReferralActivity\": {\r\n return new CustomParamItem(CustomParamsReferralActivityComponent);\r\n }\r\n case \"customParamsReferralStatTracUser\": {\r\n return new CustomParamItem(CustomParamsReferralStatTracUserComponent);\r\n }\r\n case \"customParamsReferralDetail\": {\r\n return new CustomParamItem(CustomParamsReferralDetailComponent);\r\n }\r\n case \"customParamsReferralOutcome\": {\r\n return new CustomParamItem(CustomParamsReferralOutcomeComponent);\r\n }\r\n case \"customParamsScheduleLookup\": {\r\n return new CustomParamItem(CustomParamsScheduleLookupComponent);\r\n }\r\n case \"customParamsProcessor\": {\r\n return new CustomParamItem(CustomParamsProcessorComponent);\r\n }\r\n case \"customParamsHoursBack\": {\r\n return new CustomParamItem(CustomParamsHoursBackComponent);\r\n }\r\n case \"customParamsOrganizationType\": {\r\n return new CustomParamItem(CustomParamsOrganizationTypeComponent);\r\n }\r\n case \"customParamsStartEndMonthYear\": {\r\n return new CustomParamItem(CustomParamsStartEndMonthYearComponent);\r\n }\r\n\r\n case \"customParamsFTPReports\": {\r\n return new CustomParamItem(CustomParamsFTPReportsComponent);\r\n }\r\n case \"customParams2006ExtendedFTPReports\": {\r\n return new CustomParamItem(CustomParams2006ExtendedFTPReportsComponent);\r\n }\r\n case \"customParams2004ExtendedFTPReports\": {\r\n return new CustomParamItem(CustomParams2004ExtendedFTPReportsComponent);\r\n }\r\n case \"customParamsPersonnelListing\": {\r\n return new CustomParamItem(CustomParamsPersonnelListingComponent);\r\n }\r\n case \"customParamsUploadedReferralStatus\": {\r\n return new CustomParamItem(CustomParamsUploadedReferralStatusComponent);\r\n }\r\n case \"customParamsScreeningCriteria\": {\r\n return new CustomParamItem(CustomParamsScreeningCriteriaComponent);\r\n }\r\n default: {\r\n return null;\r\n }\r\n }\r\n }\r\n \r\n}\r\n","import { Injectable, OnInit } from '@angular/core';\r\nimport { AppHttpService } from '../app/apphttp.Service';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n@Injectable()\r\nexport class Globals {\r\n public static isAuthenticated: boolean = false;\r\n public static userFullName: string = \"\";\r\n public static userOrganizationId: number;\r\n public static webPersonId: number;\r\n public static AutoLogOut: number;\r\n public static AutoLogOutWarning: number;\r\n public static PasswordExpirationWarning: number;\r\n public static ShowPasswordChangeNotification: boolean = false;\r\n public static timeZone: string;\r\n public static canSchedule: number;\r\n \r\n constructor(public appHttpService: AppHttpService, private router: Router ) {\r\n\r\n }\r\n\r\n checkAuth() {\r\n this.appHttpService.get(\"usernameandorganization\", \"\").then(res => {\r\n Globals.isAuthenticated = true;\r\n Globals.userFullName = res[\"UserFullName\"];\r\n Globals.userOrganizationId = res[\"UserOrganizationId\"];\r\n Globals.webPersonId = res[\"WebPersonId\"];\r\n Globals.AutoLogOut = res[\"AutoLogOut\"];\r\n Globals.AutoLogOutWarning = res[\"AutoLogOutWarning\"];\r\n Globals.PasswordExpirationWarning = res[\"PasswordExpirationWarning\"];\r\n Globals.timeZone = res[\"TimeZone\"];\r\n Globals.canSchedule = res[\"CanSchedule\"];\r\n\r\n }).then().catch(error => {\r\n console.log('Global auth error');\r\n console.log(error);\r\n Globals.isAuthenticated = false;\r\n Globals.userFullName = \"\";\r\n Globals.userOrganizationId = 0;\r\n Globals.webPersonId = 0;\r\n Globals.timeZone = \"\";\r\n this.router.navigateByUrl('/');\r\n });\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { AppHttpService } from '../apphttp.Service';\r\nimport { Globals } from '../globals.Service';\r\n\r\n@Component({\r\n selector: 'app-help',\r\n templateUrl: './help.component.html'\r\n})\r\nexport class HelpComponent {\r\n\r\n constructor(public router: Router, private appHttpService: AppHttpService,\r\n private route: ActivatedRoute, private titleService: Title, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.globals.checkAuth();\r\n this.titleService.setTitle(\"Help - Statline Access Portal\");\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router'\r\nimport { AppHttpService } from '../apphttp.Service';\r\nimport { Globals } from '../globals.Service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ParameterDropDownDefault } from '../parameterdropdowndefault.service';\r\nimport { DateArray } from 'ngx-bootstrap/chronos/types';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html'\r\n})\r\nexport class LoginComponent {\r\n public username = \"\";\r\n public password = \"\";\r\n public returnUrl = \"\";\r\n public message = \"\"\r\n public error = \"\";\r\n public oldsiteexpiration: number;\r\n public showSpinner = false;\r\n public loginCounter = 0;\r\n private sub: any;\r\n\r\n constructor(public router: Router, private appHttpService: AppHttpService,\r\n private route: ActivatedRoute, private titleService: Title, public globals: Globals, public pm: ParameterDropDownDefault) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sub = this.route\r\n .queryParams\r\n .subscribe(params => {\r\n this.returnUrl = params['returnurl'];\r\n this.message = params['message'];\r\n });\r\n this.titleService.setTitle(\"Login - Statline Access Portal\");\r\n\r\n if (this.message === \"Logging out...\") {\r\n this.logout();\r\n }\r\n this.appHttpService.get(\"oldsiteexpiration\", \"\").then(res => {\r\n let date1: Date = new Date(res.OldSiteExpiration);\r\n let date2: Date = new Date();\r\n var diff = date1.getTime() - date2.getTime();\r\n var diffDays = Math.ceil(diff / (1000 * 3600 * 24));\r\n this.oldsiteexpiration = diffDays;\r\n });\r\n }\r\n submit() {\r\n this.showSpinner = true;\r\n this.appHttpService.post(\"login\", {\r\n \"username\": this.username,\r\n \"password\": this.password\r\n }).then(res => {\r\n this.showSpinner = false;\r\n Globals.userFullName = res[\"UserFullName\"];\r\n Globals.userOrganizationId = res[\"UserOrganizationId\"];\r\n Globals.isAuthenticated = true;\r\n Globals.AutoLogOut = res[\"AutoLogOut\"];\r\n Globals.AutoLogOutWarning = res[\"AutoLogOutWarning\"];\r\n Globals.PasswordExpirationWarning = res[\"PasswordExpirationWarning\"];\r\n Globals.webPersonId = res[\"WebPersonId\"];\r\n Globals.timeZone = res[\"TimeZone\"];\r\n Globals.canSchedule = res[\"CanSchedule\"];\r\n\r\n this.returnUrl = this.route.snapshot.queryParams[\"returnUrl\"];\r\n\r\n if (this.returnUrl === undefined)\r\n this.router.navigate([\"/reports\"]);\r\n else\r\n this.router.navigate([\"/\" + this.returnUrl]);\r\n //setup defaults for dropdowns\r\n this.pm.setupReportGroupID(res[\"DefaultReportGroupId\"]);\r\n this.loginCounter = 0;\r\n }).then().catch(error => {\r\n this.showSpinner = false;\r\n if (typeof(error.error) === \"string\" && error.error.indexOf(\"newpassword\") > 0) {\r\n this.router.navigateByUrl(error.error);\r\n }\r\n if (typeof (error.error) === \"string\" && error.error.indexOf(\"Login failed\") == 0) {\r\n this.loginCounter++;\r\n if (this.loginCounter == 3) {\r\n this.loginCounter = 0;\r\n this.router.navigateByUrl('resetpassword?username=' + this.username+'&message=Looks like you have forgotten your password. You can reset it here or go back and try again.');\r\n }\r\n }\r\n if (error.error)\r\n this.error = error.error;\r\n });\r\n }\r\n logout() {\r\n this.appHttpService.post(\"logout\", \"\").then(res => {\r\n this.message = \"You have been logged out successfully.\";\r\n Globals.isAuthenticated = false;\r\n Globals.userFullName = \"\";\r\n Globals.userOrganizationId = 0;\r\n Globals.webPersonId = 0;\r\n sessionStorage.clear();\r\n });\r\n }\r\n\r\n gotoResetPassword() {\r\n this.router.navigateByUrl(\"/resetpassword?username=\" + this.username);\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, ViewChild, TemplateRef, HostListener } from '@angular/core';\r\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Globals } from '../globals.Service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Component({\r\n selector: 'app-logoutmodal',\r\n templateUrl: './logoutmodal.component.html'\r\n})\r\nexport class LogoutModalComponent implements OnDestroy, OnInit {\r\n public counter: number = 0;\r\n public parent: string;\r\n public timerValue: string;\r\n public returnUrl: string;\r\n public message = '';\r\n public seconds: number;\r\n public startSeconds: number;\r\n public showModalSeconds: number = 0;\r\n\r\n modalRef2: BsModalRef;\r\n @ViewChild('autoLogOut', { static: false }) modal2: TemplateRef;\r\n\r\n constructor(private route: ActivatedRoute, private router: Router,\r\n private modalService2: BsModalService, public globals: Globals,\r\n private cookieService: CookieService) {\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n onMouseDown(event) {\r\n this.resetTimer();\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n onKeyDown(event) {\r\n this.resetTimer();\r\n }\r\n\r\n resetTimer() {\r\n this.seconds = this.startSeconds;\r\n }\r\n\r\n ngOnDestroy() {\r\n console.log('destroy-' + this.parent);\r\n this.clearTimer();\r\n this.seconds = undefined;\r\n this.startSeconds = undefined;\r\n this.parent = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.clearTimer();\r\n }\r\n\r\n startTimer() {\r\n console.log('startTimer-' + this.parent);\r\n\r\n this.seconds = this.startSeconds;\r\n const dis = this;\r\n this.counter = window.setInterval(function () {\r\n dis.countDown();\r\n }, 1000);\r\n //console.log('start-' + this.counter);\r\n }\r\n\r\n private countDown() {\r\n if (this.seconds % 30 == 0)\r\n console.log(this.parent + '-' + this.seconds);\r\n if (this.router.url.split('?')[0] == '/')\r\n return;\r\n let min = Math.floor(this.seconds / 60);\r\n let minStr = min.toString();\r\n let remSec = this.seconds % 60;\r\n let remSecStr = remSec.toString();\r\n if (remSec < 10) {\r\n remSecStr = '0' + remSec;\r\n }\r\n if (min < 10) {\r\n minStr = '0' + min.toString();\r\n }\r\n this.timerValue = \"You will be logged out due to inactivity in \" + minStr + \":\" + remSecStr;\r\n if (this.seconds > 0) {\r\n this.seconds = this.seconds - 1;\r\n } else {\r\n this.clearTimer();\r\n let dis = this;\r\n setTimeout(function () {\r\n console.log('Navigate-' + dis.parent);\r\n dis.clearTimer();\r\n dis.modalService2.hide();\r\n dis.ngOnDestroy();\r\n dis.router.navigateByUrl('/?message=You have been auto logged out due to inactivity.');\r\n }, 1000);\r\n }\r\n if (this.seconds === this.showModalSeconds) {\r\n console.log('openModal-' + this.parent);\r\n this.openModal2(this.modal2);\r\n }\r\n }\r\n\r\n private clearTimer() {\r\n window.clearInterval(this.counter);\r\n }\r\n\r\n openModal2(template: TemplateRef) {\r\n this.modalRef2 = this.modalService2.show(template, { id: 2, class: 'modal-dialog-centered', animated: true });\r\n let dis = this;\r\n this.modalService2.onHide.subscribe((reason: string) => {\r\n if (dis.router.url.split('?')[0] != '/') {\r\n dis.seconds = dis.startSeconds;\r\n this.globals.checkAuth(); //to reset the session timeout on the server\r\n }\r\n else\r\n dis.clearTimer();\r\n });\r\n }\r\n}\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute, NavigationEnd, NavigationStart } from '@angular/router'\r\nimport { Location } from '@angular/common';\r\nimport { AppHttpService } from '../apphttp.Service';\r\nimport { Globals } from '../globals.Service';\r\nimport { ReportModel } from '../ReportModel';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { CommonMethods } from '../customReportParams/commonMethods';\r\n\r\n//https://github.com/microsoft/TypeScript/issues/45612#issuecomment-1030760011\r\ndeclare global {\r\n interface Navigator {\r\n msSaveOrOpenBlob: (blobOrBase64: Blob | string) => void\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-nav-menu',\r\n templateUrl: './nav-menu.component.html',\r\n styleUrls: ['./nav-menu.component.css']\r\n})\r\nexport class NavMenuComponent {\r\n isExpanded = false;\r\n url: string;\r\n reportName: string;\r\n reportUrl: string;\r\n reportID: number;\r\n paramsId: string;\r\n urlParams: any;\r\n customReportControlName: string;\r\n public fileInProgress1: boolean = false; //pdf\r\n public fileInProgress2: boolean = false; //word\r\n public fileInProgress3: boolean = false; //excel\r\n public fileInProgress4: boolean = false; //text\r\n private reportModel: ReportModel;\r\n commonMethods = new CommonMethods();\r\n private sub: any;\r\n\r\n constructor(public router: Router, public location: Location, public globals: Globals,\r\n public route: ActivatedRoute, private appHttpService: AppHttpService,\r\n private cookieService: CookieService) {\r\n router.events.subscribe((val) => {\r\n this.url = router.url;\r\n });\r\n\r\n }\r\n ngOnInit() {\r\n this.sub = this.route\r\n .queryParams\r\n .subscribe(params => {\r\n this.reportName = params['reportName'];\r\n this.paramsId = params['paramsId'];\r\n this.reportUrl = params['reportUrl'];\r\n this.urlParams = params;\r\n });\r\n //console.log(\"i:\"+this.location.path());\r\n const el = document.getElementById('divCopyright') as HTMLElement;\r\n let year = (new Date()).getFullYear().toString();\r\n el.innerHTML = \"©1996 - \" + year + \" Statline, A Division of MTF, All rights reserved.\";\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n staticGlobals() {\r\n return Globals;\r\n }\r\n collapse() {\r\n this.isExpanded = false;\r\n }\r\n\r\n toggle() {\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n downloadFile(type): void {\r\n this.appHttpService.get(\"getparams\", \"?paramsId=\" + this.paramsId).then(res => {\r\n if (this.urlParams[\"reportUrl\"] != undefined && this.urlParams[\"reportUrl\"] != null) {\r\n let urlStr = JSON.stringify(this.urlParams);\r\n let tempParams = JSON.parse(urlStr);\r\n delete tempParams[\"reportUrl\"];\r\n delete tempParams[\"reportName\"];\r\n delete tempParams[\"paramsId\"];\r\n const reportGroupId = res.Parameters.split('|').find(e => e.indexOf(\"ReportGroupID\") > -1);\r\n const blockEventLog = res.Parameters.split('|').find(e => e.indexOf(\"BlockEventLog\") > -1);\r\n tempParams[\"ReportGroupID\"] = reportGroupId ? reportGroupId.split('=')[1] : null;\r\n tempParams[\"BlockEventLog\"] = blockEventLog ? blockEventLog.split('=')[1] : null;\r\n let paramsStr = this.commonMethods.addtoParameterList(tempParams);\r\n this.reportModel = JSON.parse(this.createReportModelString(paramsStr));\r\n }\r\n else {\r\n this.reportModel = res;\r\n }\r\n this.reportName = this.reportModel.ReportName;\r\n this.reportModel.Format = type;\r\n if (type === \"PDF\")\r\n this.fileInProgress1 = true;\r\n if (type === \"WordOPENXML\")\r\n this.fileInProgress2 = true;\r\n if (type === \"EXCELOPENXML\")\r\n this.fileInProgress3 = true;\r\n if (type === \"TAB\")\r\n this.fileInProgress4 = true;\r\n\r\n this.appHttpService.getFile(this.reportModel)\r\n .subscribe(x => {\r\n let mime = \"application/pdf\";\r\n let extension = \".pdf\";\r\n if (type === \"EXCELOPENXML\") {\r\n mime = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n extension = \".xlsx\";\r\n }\r\n if (type === \"WordOPENXML\") {\r\n mime = \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\r\n extension = \".docx\";\r\n }\r\n if (type === \"TAB\") {\r\n mime = \"text/plain\";\r\n extension = \".txt\";\r\n }\r\n const newBlob = new Blob([x], { type: mime });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(newBlob);\r\n return;\r\n }\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n const link = document.createElement('a');\r\n link.href = data;\r\n link.download = this.reportName + extension;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n if (type === \"PDF\")\r\n this.fileInProgress1 = false;\r\n if (type === \"WordOPENXML\")\r\n this.fileInProgress2 = false;\r\n if (type === \"EXCELOPENXML\")\r\n this.fileInProgress3 = false;\r\n if (type === \"TAB\")\r\n this.fileInProgress4 = false;\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n });\r\n });\r\n }\r\n\r\n createReportModelString(params): string {\r\n return '{\"ReportName\": \"' + this.reportName + '\", \"ReportUrl\": \"' +\r\n this.reportUrl + '\", \"Format\":\"MHTML\", \"Parameters\":\"' + params + '\"}';\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router'\r\nimport { AppHttpService } from '../apphttp.Service';\r\nimport { Globals } from '../globals.Service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-newpassword',\r\n templateUrl: './newpassword.component.html'\r\n})\r\nexport class NewPasswordComponent {\r\n public title = \"Password Reset\";\r\n public username = \"\";\r\n public token = \"\";\r\n public expired = \"\";\r\n public changeRequested = \"\";\r\n public error = \"\";\r\n public requestNotValid = \"\";\r\n public message = \"\";\r\n public password = \"\";\r\n public passwordOld = \"\";\r\n public passwordConfirm = \"\";\r\n public passwordHasChanged: boolean = false;\r\n private sub: any;\r\n\r\n constructor(public router: Router, private appHttpService: AppHttpService,\r\n private route: ActivatedRoute, private titleService: Title, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sub = this.route\r\n .queryParams\r\n .subscribe(params => {\r\n this.username = params['username'];\r\n this.token = params['token'];\r\n this.expired = params['expired'] || 0;\r\n this.changeRequested = params['changeRequested'] || 0;\r\n });\r\n this.titleService.setTitle(\"Set New Password - Statline Access Portal\");\r\n\r\n if (this.expired === \"1\") {\r\n this.message =\"Your password is either expired or reset by the administrator. Please set a new password.\"\r\n }\r\n\r\n if (this.changeRequested === \"1\") {\r\n this.title = \"Change Password\";\r\n this.appHttpService.get(\"validatepasswordchangerequest\", \"\").then(res => {\r\n this.requestNotValid = \"\";\r\n }).then().catch(error => {\r\n this.requestNotValid = error.error;\r\n });\r\n }\r\n else {\r\n this.title = \"Password Reset\";\r\n this.appHttpService.get(\"validateresetrequest\", \"?username=\" + this.username + \"&token=\" + this.token).then(res => {\r\n this.requestNotValid = \"\";\r\n }).then().catch(error => {\r\n this.requestNotValid = error.error;\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n reset() {\r\n this.router.navigateByUrl(\"/resetpassword\");\r\n }\r\n\r\n gotoLogin() {\r\n this.router.navigateByUrl(\"/\");\r\n }\r\n\r\n isPasswordValid(): string {\r\n let ret = \"\";\r\n if (this.password.length < 8) {\r\n ret += \"At least 8 characters.
\"\r\n }\r\n if (this.password !== this.passwordConfirm) {\r\n ret += \"Passwords should match.
\"\r\n }\r\n let arr = [];\r\n arr = this.password.match(/\\d/);\r\n if (arr === null) {\r\n ret += \"At least 1 number.
\"\r\n }\r\n\r\n arr = this.password.match(/[a-z]/);\r\n if (arr ===null) {\r\n ret += \"At least 1 lower case character.
\"\r\n }\r\n\r\n arr = this.password.match(/[A-Z]/);\r\n if (arr === null) {\r\n ret += \"At least 1 upper case character.
\"\r\n }\r\n\r\n arr = this.password.match(/[*@!$#%&()^~{}]+/);\r\n if (arr === null) {\r\n ret += \"At least 1 special character.
\"\r\n }\r\n\r\n return ret === '' ? \"ok\" : ret;\r\n }\r\n\r\n setPassword() {\r\n if (this.changeRequested == '0')\r\n this.passwordOld = '';\r\n this.appHttpService.get(\"setpassword\", \"?username=\" + (this.username || '') +\r\n \"&password=\" + encodeURIComponent(this.password) + \"&passwordOld=\" +\r\n (this.passwordOld = '' ? '' : encodeURIComponent(this.passwordOld))).then(res => {\r\n this.passwordHasChanged = true;\r\n this.message = null;\r\n }).then().catch(error => {\r\n this.error = error.error;\r\n });\r\n }\r\n}\r\n","export class GeneralParameterModel {\r\n //These are only passed to the rdl if a value is selected on the screen\r\n ReportDateTypeId: number;\r\n StartDateTime: string;\r\n StartTime: string;\r\n EndDateTime: string;\r\n EndTime: string;\r\n DisplayMT: string;\r\n OrganizationID: number;\r\n SourceCodeName: string;\r\n CoordinatorID: number;\r\n LowerAgeLimit: number;\r\n UpperAgeLimit: number;\r\n Gender: string;\r\n SortBy1: string;\r\n HideIdentifyingInfo: boolean;\r\n //Report Group is always populated, even if not on the screen\r\n ReportGroupID: number;\r\n //parameters reports need, but isn't displayed\r\n //UserID: number; --so far, all the reports I looked at don't actually do something with this, will add in if needed\r\n UserOrgID: number;\r\n UserDisplayName: string;\r\n BlockEventLog: boolean;\r\n}\r\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { AppHttpService } from '../apphttp.Service';\r\nimport { Globals } from '../globals.Service';\r\nimport { GeneralParameterModel } from './GeneralParameterModel';\r\nimport { CommonMethods } from '../customReportParams/commonMethods';\r\nimport { ParameterDropDownDefault } from '../parameterdropdowndefault.service'\r\n\r\n@Component({\r\n selector: 'app-parameter-popup',\r\n templateUrl: './parameter-popup.component.html'\r\n\r\n})\r\nexport class ParameterPopupComponent implements OnInit {\r\n @Input() customControl: string;\r\n @Input() reportId: number;\r\n @Input() reportName: string;\r\n @Input() reportURL: string;\r\n @Output() sourceCodeChangeEvent: EventEmitter = new EventEmitter(true);\r\n @Output() reportGroupChangeEvent: EventEmitter = new EventEmitter(true);\r\n selectedReportParameterData;\r\n reportDateTypeList = [];\r\n reportGroupList = [];\r\n organizationList = [];\r\n organizationTypeValue: string = '';\r\n sourceCodeList = [];\r\n coordinatorList = [];\r\n genderList = [];\r\n sortingOptionsList = [];\r\n sourceCodeTypeId;\r\n model = new GeneralParameterModel();\r\n method = new CommonMethods();\r\n\r\n constructor(private appHttpService: AppHttpService, public globals: Globals, private pm : ParameterDropDownDefault) {\r\n this.genderList = [{ value: 'F', label: 'Female' }, { value: 'M', label: 'Male' }];\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.loadComponent();\r\n }\r\n\r\n \r\n loadComponent() {\r\n this.model.UserOrgID = Globals.userOrganizationId;\r\n this.model.UserDisplayName = Globals.userFullName;\r\n //statline users sees the time zone, everyone else, it defaults to referral facility and is hidden\r\n if (Globals.userOrganizationId.toString() === \"194\") {\r\n this.model.DisplayMT = \"true\";\r\n }\r\n else {\r\n this.model.DisplayMT = \"false\";\r\n }\r\n this.model.HideIdentifyingInfo = false;\r\n\r\n this.appHttpService.get(\"reportdefaults\", \"?reportId=\" + this.reportId + '&userOrganizationId=' + Globals.userOrganizationId + '&webPersonId=' + Globals.webPersonId).then(res => {\r\n this.model.ReportGroupID = res[0].reportGroupId;\r\n //get defaults\r\n if (this.model.ReportGroupID === this.pm.getReportGroupdID()) {\r\n this.reportGroupList = this.pm.getreportGroupData();\r\n }\r\n else {\r\n this.pm.setupReportGroupID(this.model.ReportGroupID);\r\n this.getReportGroupData();\r\n }\r\n this.model.StartDateTime = res[0].startDate;\r\n this.model.StartTime = res[0].startTime;\r\n //(document.getElementById('StartTime') as HTMLInputElement).value = res[0].startTime;\r\n this.model.EndDateTime = res[0].endDate;\r\n this.model.EndTime = res[0].endTime;\r\n //(document.getElementById('EndTime') as HTMLInputElement).value = res[0].endTime;\r\n this.model.ReportDateTypeId = res[0].reportDateTypeId;\r\n this.model.BlockEventLog = res[0].blockEventLog;\r\n \r\n this.sourceCodeTypeId = res[0].sourceCodeTypeId;\r\n if (res[0].isDateOnly) {\r\n document.getElementById('StartTime').style.display = \"none\";\r\n document.getElementById('EndTime').style.display = \"none\";\r\n }\r\n this.displayControlsOnScreen();\r\n \r\n }).then().catch(error => {\r\n console.log(error);\r\n });\r\n \r\n }\r\n\r\n displayControlsOnScreen(): void {\r\n this.appHttpService.get(\"reportParametersControl\", \"?reportID=\" + this.reportId).then(res => {\r\n this.selectedReportParameterData = res;\r\n\r\n for (let i = 0; i < this.selectedReportParameterData.length; i++) {\r\n //if timezone control and user not statline, do not show control\r\n if (this.selectedReportParameterData[i].reportControlName === \"rbtTimeZone\" && Globals.userOrganizationId.toString() !== \"194\") {\r\n continue;\r\n }\r\n const element = document.getElementById(this.selectedReportParameterData[i].reportControlName);\r\n if (element !== null) {\r\n element.style.display = \"block\";\r\n }\r\n const section = document.getElementById(this.selectedReportParameterData[i].reportParamSectionName);\r\n if (section !== null) {\r\n section.style.display = \"block\";\r\n }\r\n }\r\n\r\n if (this.model.ReportGroupID !== undefined && this.model.ReportGroupID !== null) {\r\n if (document.getElementById('ddlOrganization').style.display === \"block\") {\r\n if (this.model.ReportGroupID === this.pm.getReportGroupdID()) {\r\n this.organizationList = this.pm.getOrganizationData();\r\n //just in case something happens to the storage\r\n if (this.organizationList.length == 0) {\r\n this.getReportOrganizationData(this.model.ReportGroupID);\r\n }\r\n }\r\n else {\r\n this.getReportOrganizationData(this.model.ReportGroupID);\r\n }\r\n }\r\n if (document.getElementById('ddlOrganizationCoordinator').style.display === \"block\") {\r\n if (this.model.ReportGroupID === this.pm.getReportGroupdID()) {\r\n this.coordinatorList = this.pm.getCoordinatorData();\r\n //just in case something happens to the storage\r\n if (this.coordinatorList.length == 0) {\r\n this.getReportCoordinatorData(this.model.ReportGroupID);\r\n }\r\n } else {\r\n this.getReportCoordinatorData(this.model.ReportGroupID);\r\n }\r\n }\r\n if (document.getElementById('ddlSourceCode').style.display === \"block\") {\r\n if ((this.sourceCodeTypeId === undefined || this.sourceCodeTypeId == null) && this.model.ReportGroupID === this.pm.getReportGroupdID()) {\r\n this.sourceCodeList = this.pm.getSourceCodeData();\r\n }\r\n else {\r\n this.getReportSourceCodeData(this.model.ReportGroupID);\r\n }\r\n }\r\n\r\n }\r\n this.getSortTypeData(this.reportId);\r\n this.getDateTypeData(this.reportId);\r\n this.reportGroupChangeEvent.emit(this.model.ReportGroupID);\r\n }).then().catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n getDateTypeData(id): void {\r\n this.reportDateTypeList = [];\r\n if (document.getElementById('ddlReportDateType').style.display === \"block\") {\r\n this.appHttpService.get(\"DateTypeDropdown\", \"?reportID=\" + id).then(res => {\r\n this.reportDateTypeList = res;\r\n });\r\n }\r\n }\r\n\r\n getReportGroupData(): void{\r\n this.reportGroupList = [];\r\n\r\n this.appHttpService.get(\"ReportGroupDropdown\", \"?userOrganizationId=\" + Globals.userOrganizationId).then(res => {\r\n this.reportGroupList = res;\r\n });\r\n }\r\n\r\n getReportOrganizationData(reportGroupId): void {\r\n this.organizationList = [];\r\n this.organizationTypeValue = '';\r\n if (document.getElementById('ddlOrganization').style.display === \"block\") {\r\n this.getOrganizationFromDatabase(reportGroupId, 0, '');\r\n //this.appHttpService.get(\"ReportOrganizationDropdown\", \"?reportGroupId=\" + reportGroupId).then(res => {\r\n // this.organizationList = res;\r\n //});\r\n }\r\n }\r\n\r\n private getOrganizationFromDatabase(reportGroupId, lastRowId, searchTerm) {\r\n if (document.getElementById('ddlOrganization').style.display === \"block\") {\r\n this.appHttpService.get(\"ReportOrganizationDropdown\", \"?reportGroupId=\" + reportGroupId + \"&lastRowId=\" + lastRowId + \"&searchterm=\" + searchTerm).then(res => {\r\n this.organizationList = this.organizationList.concat(res);\r\n });\r\n }\r\n }\r\n\r\n searchOrg(event: any) {\r\n this.organizationTypeValue = event.term;\r\n switch (this.organizationTypeValue.length) {\r\n case 0: {\r\n this.organizationList = this.pm.getOrganizationData();\r\n break;\r\n }\r\n case 1:\r\n case 2: {\r\n this.organizationList = [];\r\n this.organizationTypeValue = '';\r\n break;\r\n }\r\n default: {\r\n this.organizationList = [];\r\n this.getOrganizationFromDatabase(this.model.ReportGroupID, 0, this.organizationTypeValue);\r\n }\r\n }\r\n }\r\n\r\n searchReportGroup(event: any) {\r\n switch (event.term.length) {\r\n case 0: {\r\n this.reportGroupList = this.pm.getreportGroupData();\r\n break;\r\n }\r\n case 1:\r\n case 2: {\r\n this.reportGroupList = [];\r\n break;\r\n }\r\n default: {\r\n this.reportGroupList = this.pm.getreportGroupData().filter(function (e) {\r\n return e.label.toLowerCase().startsWith(event.term.toLowerCase());\r\n });\r\n \r\n }\r\n }\r\n\r\n }\r\n\r\n reportGroupOnFocus(event: any) {\r\n this.reportGroupList = this.pm.getreportGroupData();\r\n }\r\n\r\n organizationScrollToEnd() {\r\n if (document.getElementById('ddlOrganization').style.display === \"block\") {\r\n \r\n this.getOrganizationFromDatabase(this.model.ReportGroupID, this.organizationList.length, this.organizationTypeValue);\r\n }\r\n }\r\n\r\n organizationClear() {\r\n this.organizationTypeValue = '';\r\n this.organizationList = [];\r\n this.validateOrganizationDropdown();\r\n }\r\n\r\n validateOrganizationDropdown() {\r\n if (this.organizationList.length < 1) {\r\n if (this.model.ReportGroupID === this.pm.getReportGroupdID()) {\r\n this.organizationList = this.pm.getOrganizationData();\r\n }\r\n else {\r\n this.getOrganizationFromDatabase(this.model.ReportGroupID, 0, this.organizationTypeValue);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n getReportSourceCodeData(reportGroupId): void {\r\n this.sourceCodeList = [];\r\n //TODO: sourcecode type needs to passed in by reports\r\n if (document.getElementById('ddlSourceCode').style.display === \"block\") {\r\n let params = \"\";\r\n if (this.sourceCodeTypeId !== undefined && this.sourceCodeTypeId !== null) {\r\n params = \"&sourceCodeTypeId=\" + this.sourceCodeTypeId;\r\n }\r\n this.appHttpService.get(\"ReportSourceCodeDropdown\", \"?webReportGroupId=\" + reportGroupId + params).then(res => {\r\n this.sourceCodeList = res;\r\n });\r\n }\r\n }\r\n\r\n getReportCoordinatorData(reportGroupId): void {\r\n this.coordinatorList = [];\r\n if (document.getElementById('ddlOrganizationCoordinator').style.display === \"block\") {\r\n this.appHttpService.get(\"ReportCoordinatorDropdown\", \"?userOrganizationId\" + Globals.userOrganizationId + \"&webreportGroupId=\" + reportGroupId).then(res => {\r\n this.coordinatorList = res;\r\n });\r\n }\r\n }\r\n\r\n getSortTypeData(id): void {\r\n this.sortingOptionsList = [];\r\n if (document.getElementById('SortOptions').style.display === \"block\") {\r\n this.appHttpService.get(\"ReportSortTypeDropdown\", \"?reportID=\" + id).then(res => {\r\n this.sortingOptionsList = res;\r\n });\r\n }\r\n }\r\n\r\n public reportGroupChange(value: any): void{\r\n const id = value.value;\r\n this.model.OrganizationID = null;\r\n this.model.SourceCodeName = null;\r\n this.model.CoordinatorID = null;\r\n if (id !== undefined && id !== null) {\r\n this.getReportOrganizationData(id);\r\n this.getReportCoordinatorData(id);\r\n this.getReportSourceCodeData(id);\r\n }\r\n this.reportGroupChangeEvent.emit(id);\r\n }\r\n\r\n public sourceCodeChange(value: any): void {\r\n let id = null;\r\n if (value !== undefined) {\r\n id = value.value;\r\n }\r\n this.sourceCodeChangeEvent.emit(id);\r\n }\r\n\r\n public getsourceCodeChangeEmitter() {\r\n return this.sourceCodeChangeEvent;\r\n }\r\n\r\n public getreportGroupChangeEmitter() {\r\n return this.reportGroupChangeEvent;\r\n }\r\n\r\n public endDateTimeChange(): void {\r\n const el = document.getElementById('EndDateTime') as HTMLInputElement;\r\n const time = document.getElementById('EndTime') as HTMLInputElement;\r\n if (el.value === \"\")\r\n this.model.EndDateTime = null;\r\n else {\r\n \r\n let timeString = \"00:00\";\r\n if (time.value.length > 0) {\r\n timeString = time.value;\r\n }\r\n this.model.EndDateTime = el.value + \" \" + timeString;\r\n }\r\n }\r\n\r\n public startDateTimeChange(): void {\r\n const el = document.getElementById('StartDateTime') as HTMLInputElement;\r\n const time = document.getElementById('StartTime') as HTMLInputElement;\r\n if (el.value === \"\")\r\n this.model.StartDateTime = null;\r\n else {\r\n \r\n let timeString = \"00:00\";\r\n if (time.value.length > 0) {\r\n timeString = time.value;\r\n }\r\n this.model.StartDateTime = el.value + \" \" + timeString;\r\n }\r\n }\r\n\r\n public CreateParameterList(): any {\r\n //double check dates\r\n this.endDateTimeChange();\r\n this.startDateTimeChange();\r\n let params = this.method.addtoParameterList(this.model);\r\n //find custom parameters, if exists\r\n const control = document.getElementById(\"customParameterList\");\r\n if (control !== null) {\r\n const items = control.getAttribute('value');\r\n if (items !== undefined && items !== null && items.length > 0) {\r\n params += \"|\" + items;\r\n }\r\n }\r\n return params;\r\n }\r\n\r\n startTimeKeyDown($event): void {\r\n let nums = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"Backspace\", \"ArrowRight\",\"ArrowLeft\",\"Delete\"];\r\n if (nums.find(x => x == $event.key) == undefined)\r\n return;\r\n let val = (document.getElementById('StartTime') as HTMLInputElement).value;\r\n if ($event.key == \"Backspace\" || $event.key == \"ArrowRight\" || $event.key == \"ArrowLeft\" || $event.key == \"Delete\")\r\n return;\r\n let key = $event.key;\r\n let valid = false;\r\n switch (val.length) {\r\n case 0:\r\n case 5:\r\n if (key == \"0\" || key == \"1\" || key == \"2\")\r\n valid = true;\r\n break;\r\n case 1:\r\n if (val.charAt(0) == \"2\" && (key == \"0\" || key == \"1\" || key == \"2\" || key == \"3\"))\r\n valid = true;\r\n if (val.charAt(0) == \"0\" || val.charAt(0) == \"1\")\r\n valid = true;\r\n break;\r\n case 2:\r\n case 3:\r\n if (key == \"0\" || key == \"1\" || key == \"2\" || key == \"3\" || key == \"4\" || key == \"5\")\r\n valid = true;\r\n break;\r\n default:\r\n valid = true;\r\n break;\r\n }\r\n if (!valid) {\r\n $event.preventDefault();\r\n }\r\n }\r\n\r\n endTimeKeyDown($event): void {\r\n let nums = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"Backspace\", \"ArrowRight\", \"ArrowLeft\", \"Delete\"];\r\n if (nums.find(x => x == $event.key) == undefined)\r\n return;\r\n let val = (document.getElementById('EndTime') as HTMLInputElement).value;\r\n if ($event.key == \"Backspace\" || $event.key == \"ArrowRight\" || $event.key == \"ArrowLeft\" || $event.key == \"Delete\")\r\n return;\r\n let key = $event.key;\r\n let valid = false;\r\n switch (val.length) {\r\n case 0:\r\n case 5:\r\n if (key == \"0\" || key == \"1\" || key == \"2\")\r\n valid = true;\r\n break;\r\n case 1:\r\n if (val.charAt(0) == \"2\" && (key == \"0\" || key == \"1\" || key == \"2\" || key == \"3\"))\r\n valid = true;\r\n if (val.charAt(0) == \"0\" || val.charAt(0) == \"1\")\r\n valid = true;\r\n break;\r\n case 2:\r\n case 3:\r\n if (key == \"0\" || key == \"1\" || key == \"2\" || key == \"3\" || key == \"4\" || key == \"5\")\r\n valid = true;\r\n break;\r\n default:\r\n valid = true;\r\n break;\r\n }\r\n if (!valid) {\r\n $event.preventDefault();\r\n }\r\n }\r\n}\r\n","import { Injectable, OnInit } from '@angular/core';\r\nimport { AppHttpService } from './apphttp.Service';\r\nimport { Globals } from './globals.Service';\r\nimport { Session } from 'protractor';\r\n\r\n@Injectable()\r\nexport class ParameterDropDownDefault {\r\n \r\n constructor(private appHttpService: AppHttpService, private globals: Globals) {\r\n\r\n }\r\n\r\n public setupReportGroupID(rptGroupId) {\r\n sessionStorage.setItem('reportGroupId', rptGroupId);\r\n this.setupReportGroupData();\r\n this.setupReportCoordinatorData();\r\n this.setupReportSourceCodeData();\r\n this.setupReportOrganizationData();\r\n }\r\n\r\n public getReportGroupdID() {\r\n const id: number = + sessionStorage.getItem('reportGroupId');\r\n return id;\r\n }\r\n\r\n public getreportGroupData() {\r\n return JSON.parse(sessionStorage.getItem('reportGroupDefaultList'));\r\n }\r\n\r\n public getOrganizationData() {\r\n return JSON.parse(sessionStorage.getItem('organizationDefaultList'));\r\n }\r\n\r\n public getSourceCodeData() {\r\n return JSON.parse(sessionStorage.getItem('sourceCodeDefaultList'));\r\n }\r\n\r\n public getCoordinatorData() {\r\n return JSON.parse(sessionStorage.getItem('coordinatorDefaultList'));\r\n }\r\n\r\n private setupReportGroupData() {\r\n\r\n this.appHttpService.get(\"ReportGroupDropdown\", \"?userOrganizationId=\" + Globals.userOrganizationId).then(res => {\r\n sessionStorage.setItem('reportGroupDefaultList', JSON.stringify(res));\r\n });\r\n }\r\n\r\n private setupReportOrganizationData(): void {\r\n\r\n this.appHttpService.get(\"ReportOrganizationDropdown\", \"?reportGroupId=\" + sessionStorage.getItem('reportGroupId')).then(res => {\r\n sessionStorage.setItem('organizationDefaultList', JSON.stringify(res));\r\n });\r\n }\r\n\r\n private setupReportSourceCodeData(): void {\r\n this.appHttpService.get(\"ReportSourceCodeDropdown\", \"?webReportGroupId=\" + sessionStorage.getItem('reportGroupId') ).then(res => {\r\n sessionStorage.setItem('sourceCodeDefaultList', JSON.stringify(res));\r\n });\r\n }\r\n\r\n private setupReportCoordinatorData(): void {\r\n this.appHttpService.get(\"ReportCoordinatorDropdown\", \"?userOrganizationId\" + Globals.userOrganizationId + \"&webreportGroupId=\" + sessionStorage.getItem('reportGroupId')).then(res => {\r\n sessionStorage.setItem('coordinatorDefaultList', JSON.stringify(res));\r\n });\r\n }\r\n\r\n \r\n}\r\n","import { Component, ViewChild, TemplateRef, HostListener, ElementRef} from '@angular/core';\r\nimport { Router, Event, NavigationStart } from '@angular/router';\r\nimport { AppHttpService } from '../apphttp.Service';\r\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Globals } from '../globals.Service';\r\nimport { formatDate } from '@angular/common';\r\nimport { LogoutModalComponent } from '../logoutmodal/logoutmodal.component';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { ReportModel } from '../ReportModel';\r\n\r\n@Component({\r\n selector: 'app-reports',\r\n templateUrl: './reports.component.html',\r\n})\r\nexport class ReportsComponent {\r\n public reportTypes = [];\r\n public rawReportTypes = []; //before grouped by sections\r\n modalRef: BsModalRef;\r\n selectedReportName: string;\r\n selectedReportUrl: string;\r\n selectedReportParameterData;\r\n selectedReportId: number;\r\n selectedReportFavorite: boolean;\r\n selectedCustomReportControlName: string;\r\n reportDateTypeList = [];\r\n recentReports = [];\r\n reportFavorites = [];\r\n reportButtons: any;\r\n parameterHeader: any;\r\n passwordExpirationWarning: number;\r\n passwordExpirationInterval: number = 0;\r\n passwordExpirationCounter: number = 0;\r\n showSpinner: boolean;\r\n ajaxCountInterval: number;\r\n reportListLoaded: boolean;\r\n\r\n public fileInProgress1: boolean = false; //pdf\r\n public fileInProgress2: boolean = false; //word\r\n public fileInProgress3: boolean = false; //excel\r\n public fileInProgress4: boolean = false; //text\r\n private reportModel: ReportModel;\r\n\r\n @ViewChild('parametersPopup', { static: false }) parametersPopup: TemplateRef;\r\n @ViewChild(LogoutModalComponent, { static: false }) public logOutModalComponent: LogoutModalComponent;\r\n\r\n constructor(private router: Router, private appHttpService: AppHttpService,\r\n private modalService: BsModalService, private titleService: Title,\r\n public globals: Globals, private cookieService: CookieService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.router.events.subscribe((event: Event) => {\r\n if (event instanceof NavigationStart) {\r\n if (this.logOutModalComponent.parent)\r\n this.logOutModalComponent.ngOnDestroy();\r\n }\r\n });\r\n window.addEventListener('scroll', this.checkScroll, true);\r\n this.titleService.setTitle(\"Reports - Statline Access Portal\");\r\n\r\n this.appHttpService.get(\"usernameandorganization\", \"\").then(res => {\r\n Globals.userFullName = res[\"UserFullName\"];\r\n Globals.userOrganizationId = res[\"UserOrganizationId\"];\r\n Globals.isAuthenticated = true;\r\n Globals.AutoLogOut = res[\"AutoLogOut\"];\r\n Globals.AutoLogOutWarning = res[\"AutoLogOutWarning\"];\r\n Globals.PasswordExpirationWarning = res[\"PasswordExpirationWarning\"];\r\n Globals.timeZone = res[\"TimeZone\"];\r\n Globals.canSchedule = res[\"CanSchedule\"];\r\n this.passwordExpirationWarning = Globals.PasswordExpirationWarning;\r\n if (this.passwordExpirationWarning) {\r\n Globals.ShowPasswordChangeNotification = true;\r\n let dis = this;\r\n this.passwordExpirationCounter = 9;\r\n this.passwordExpirationInterval = window.setInterval(function () {\r\n dis.passwordExpirationCounter--;\r\n }, 1000);\r\n }\r\n Globals.webPersonId = res[\"WebPersonId\"];\r\n this.appHttpService.get(\"userReports\", \"\").then(res => {\r\n const groupBy = function (xs, key) {\r\n return xs.reduce(function (rv, x) {\r\n (rv[x[key]] = rv[x[key]] || []).push(x);\r\n return rv;\r\n }, {});\r\n };\r\n this.reportTypes = groupBy(res, \"reportType\");\r\n this.rawReportTypes = res;\r\n this.getRecentReports(res);\r\n\r\n this.appHttpService.get(\"favoritereports\", \"\").then(res1 => {\r\n this.reportListLoaded = true;\r\n for (var i = 0; i < res1.length; i++) {\r\n let report = res.filter((value) => {\r\n return value.reportID == res1[i].reportID ? value : null\r\n });\r\n res1[i].reportName = report[0].reportName;\r\n res1[i].url = report[0].url;\r\n res1[i].reportType = report[0].reportType;\r\n res1[i].customReportControlName = report[0].customReportControlName;\r\n res1[i].lastModified = new Date(res1[i].lastModified.toString() + 'Z');\r\n res1[i].lastModified = formatDate(res1[i].lastModified, 'MM/dd/yyyy', 'en-US')\r\n }\r\n this.reportFavorites = res1;\r\n });\r\n }).then().catch(error => {\r\n console.log(error);\r\n });\r\n }).then().catch(error => {\r\n console.log(error);\r\n if (error.status == \"401\") {\r\n this.router.navigateByUrl(\"/?returnurl=reports\");\r\n }\r\n });\r\n }\r\n\r\n getRecentReports(res: any) {\r\n this.appHttpService.get(\"recentreports\", \"\").then(res1 => {\r\n for (var i = 0; i < res1.length; i++) {\r\n let report = res.filter((value) => {\r\n return value.reportID == res1[i].reportID ? value : null;\r\n });\r\n res1[i].reportName = report[0].reportName;\r\n res1[i].url = report[0].url;\r\n res1[i].reportType = report[0].reportType;\r\n res1[i].customReportControlName = report[0].customReportControlName;\r\n res1[i].lastModified = new Date(res1[i].lastModified.toString() + 'Z');\r\n res1[i].lastModified = formatDate(res1[i].lastModified, 'MM/dd/yyyy', 'en-US');\r\n }\r\n this.recentReports = res1;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n window.removeEventListener('scroll', this.checkScroll, true);\r\n }\r\n\r\n ngAfterViewInit() {\r\n let dis = this;\r\n setTimeout(function () {\r\n if (!Globals.isAuthenticated || !dis.router.url.includes('reports'))\r\n return;\r\n dis.logOutModalComponent.startSeconds = Globals.AutoLogOut;\r\n dis.logOutModalComponent.showModalSeconds = Globals.AutoLogOutWarning;\r\n dis.logOutModalComponent.parent = 'Reports';\r\n dis.logOutModalComponent.returnUrl = dis.router.url;\r\n dis.logOutModalComponent.startTimer();\r\n }, 10000);\r\n }\r\n\r\n staticGlobals() {\r\n return Globals;\r\n }\r\n\r\n downloadFile(type, params): void {\r\n window.clearInterval(this.ajaxCountInterval);\r\n if (this.RequiredFieldsIsEmpty()) {\r\n return;\r\n }\r\n this.reportModel = JSON.parse(this.createReportModelString(params));\r\n this.reportModel.Format = type;\r\n if (type === \"PDF\")\r\n this.fileInProgress1 = true;\r\n if (type === \"WordOPENXML\")\r\n this.fileInProgress2 = true;\r\n if (type === \"EXCELOPENXML\")\r\n this.fileInProgress3 = true;\r\n if (type === \"TAB\")\r\n this.fileInProgress4 = true;\r\n\r\n this.appHttpService.getFile(this.reportModel)\r\n .subscribe(x => {\r\n let mime = \"application/pdf\";\r\n let extension = \".pdf\";\r\n\r\n if (type === \"EXCELOPENXML\") {\r\n mime = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n extension = \".xlsx\";\r\n }\r\n if (type === \"WordOPENXML\") {\r\n mime = \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\r\n extension = \".docx\";\r\n }\r\n if (type === \"TAB\") {\r\n mime = \"text/plain\";\r\n extension = \".txt\";\r\n }\r\n const newBlob = new Blob([x], { type: mime });\r\n\r\n // IE doesn't allow using a blob object directly as link href\r\n // instead it is necessary to use msSaveOrOpenBlob\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(newBlob);\r\n return;\r\n }\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n const link = document.createElement('a');\r\n link.href = data;\r\n link.download = this.selectedReportName + extension;\r\n // this is necessary as link.click() does not work on the latest firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n if (type === \"PDF\")\r\n this.fileInProgress1 = false;\r\n if (type === \"WordOPENXML\")\r\n this.fileInProgress2 = false;\r\n if (type === \"EXCELOPENXML\")\r\n this.fileInProgress3 = false;\r\n if (type === \"TAB\")\r\n this.fileInProgress4 = false;\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n link.remove();\r\n }, 100);\r\n });\r\n }\r\n\r\n reportView(params): void {\r\n if (this.RequiredFieldsIsEmpty()) {\r\n return;\r\n }\r\n this.showSpinner = true;\r\n window.clearInterval(this.ajaxCountInterval);\r\n let newObj = this.recentReports.filter((value) => {\r\n return value.reportName == this.selectedReportName ? value : null\r\n });\r\n if (this.recentReports.length == 0 || newObj.length == 0) {\r\n this.recentReports.unshift({\r\n reportName: this.selectedReportName,\r\n url: this.selectedReportUrl,\r\n reportID: this.selectedReportId,\r\n customReportControlName: this.selectedCustomReportControlName,\r\n lastModified: formatDate(Date.now(), 'MM/dd/yyyy', 'en-US')\r\n });\r\n }\r\n if (this.recentReports.length > 10)\r\n this.recentReports.pop();\r\n\r\n this.appHttpService.get(\"updaterecentreports\", \"?reportid=\" + this.selectedReportId).then(res => {\r\n this.getRecentReports(this.rawReportTypes);\r\n });\r\n let reportModelString = this.createReportModelString(params);\r\n const paramsId = this.newGuid();\r\n const url = this.router.serializeUrl(this.router.createUrlTree(['/reportviewer'],\r\n { queryParams: { \"paramsId\": paramsId, \"reportName\": this.selectedReportName } }));\r\n //save parameters on the server side for security\r\n this.appHttpService.get(\"saveparams\", \"?paramsId=\" + paramsId + \"&reportModel=\" + reportModelString).then(res => {\r\n let a: HTMLAnchorElement = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.href = url;\r\n a.setAttribute(\"style\", \"display:none\");\r\n a.target = \"_blank\";\r\n a.click();\r\n document.body.removeChild(a);\r\n this.showSpinner = false;\r\n }).then().catch(error => {\r\n console.log(error);\r\n this.showSpinner = false;\r\n });;\r\n }\r\n\r\n createReportModelString(params): string {\r\n return '{\"ReportName\": \"' + this.selectedReportName + '\", \"ReportUrl\": \"' +\r\n this.selectedReportUrl + '\", \"Format\":\"MHTML\", \"Parameters\":' + JSON.stringify(params) + '}';\r\n }\r\n\r\n openModal(url, name, id, customControlName) {\r\n this.showSpinner = true;\r\n this.selectedReportName = name;\r\n this.selectedReportUrl = url;\r\n this.selectedReportId = id;\r\n this.selectedCustomReportControlName = customControlName;\r\n let newObj = this.reportFavorites.filter((value) => {\r\n return value.reportName == this.selectedReportName ? value : null\r\n });\r\n this.selectedReportFavorite = newObj.length != 0;\r\n\r\n this.modalRef = this.modalService.show(this.parametersPopup, { class: \"modal-lg\", animated: true });\r\n this.modalService.onHide.subscribe((reason: string) => {\r\n window.clearInterval(this.ajaxCountInterval);\r\n });\r\n this.reportButtons = document.getElementById(\"reportButtons\");\r\n this.parameterHeader = document.getElementById(\"parameterHeader\");\r\n let dis = this;\r\n this.ajaxCountInterval = window.setInterval(function () {\r\n dis.showSpinner = getAJAXRequests().length > 0;\r\n }, 1000);\r\n }\r\n\r\n RequiredFieldsIsEmpty() {\r\n let valid = false;\r\n const requiredFields = document.querySelectorAll(\"[required]\");\r\n for (let i = 0; i < requiredFields.length; i++) {\r\n const id = requiredFields[i].id;\r\n const el = document.getElementById(id) as HTMLInputElement\r\n let value = '';\r\n switch (el.localName) {\r\n case 'input': {\r\n value = el.value;\r\n break;\r\n }\r\n case 'ng-select': {\r\n value = el.innerText;\r\n break;\r\n }\r\n }\r\n if (value === undefined || value === null || value === '') {\r\n valid = true;\r\n }\r\n else {\r\n valid = false;\r\n }\r\n }\r\n return valid;\r\n }\r\n\r\n onFavoriteDrop($event) {\r\n let sortReports = \"\";\r\n for (var i = 0; i < this.reportFavorites.length; i++) {\r\n sortReports += this.reportFavorites[i].reportID + \",\";\r\n }\r\n sortReports = sortReports.slice(0, sortReports.lastIndexOf(\",\"));\r\n this.appHttpService.get(\"updatefavoritereports\", \"?reportid=0&sortReports=\" + sortReports).then(res => {\r\n\r\n });\r\n }\r\n updateFavorite() {\r\n //add favorite\r\n if (this.selectedReportFavorite) {\r\n let newObj = this.reportFavorites.filter((value) => {\r\n return value.reportName == this.selectedReportName ? value : null\r\n });\r\n if (newObj.length == 0) {\r\n this.reportFavorites.push({\r\n reportName: this.selectedReportName,\r\n url: this.selectedReportUrl,\r\n reportID: this.selectedReportId,\r\n customReportControlName: this.selectedCustomReportControlName,\r\n lastModified: formatDate(Date.now(), 'MM/dd/yyyy', 'en-US')\r\n });\r\n this.reportFavorites = this.reportFavorites.slice();\r\n }\r\n this.appHttpService.get(\"updatefavoritereports\", \"?reportid=\" + this.selectedReportId).then(res => {\r\n\r\n });\r\n }\r\n else {\r\n this.reportFavorites = this.reportFavorites.filter(obj => obj.reportID != this.selectedReportId);\r\n this.appHttpService.get(\"deletefavoritereport\", \"?reportid=\" + this.selectedReportId).then(res => {\r\n });\r\n }\r\n }\r\n\r\n onPasswordChangeNotificationClosed(alert1) {\r\n window.clearInterval(this.passwordExpirationCounter);\r\n Globals.ShowPasswordChangeNotification = false;\r\n }\r\n\r\n checkScroll() {\r\n if (this.parameterHeader) {\r\n if (this.parameterHeader.getBoundingClientRect().y <= 0) {\r\n this.reportButtons.classList.add(\"stickyReportButtons\");\r\n (document.querySelector('#reportButtons') as HTMLElement).style.width = this.parameterHeader.offsetWidth + 'px';\r\n (document.querySelector('#parameterHeader') as HTMLElement).style.marginBottom = '50px';\r\n (document.querySelector('#reportButtons') as HTMLElement).style.left = (this.parameterHeader.getBoundingClientRect().left + 15) + 'px';\r\n (document.querySelector('#reportButtons') as HTMLElement).style.backgroundColor = '#fffcf6';\r\n (document.querySelector('#secondaryReportHeader') as HTMLElement).style.display = 'block';\r\n } else {\r\n this.reportButtons.classList.remove(\"stickyReportButtons\");\r\n (document.querySelector('#parameterHeader') as HTMLElement).style.marginBottom = '0';\r\n (document.querySelector('#secondaryReportHeader') as HTMLElement).style.display = 'none';\r\n (document.querySelector('#reportButtons') as HTMLElement).style.width = 'auto';\r\n (document.querySelector('#reportButtons') as HTMLElement).style.backgroundColor = 'white';\r\n }\r\n }\r\n }\r\n\r\n newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0,\r\n v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n}\r\n\r\nvar getAJAXRequests = (function () {\r\n var oldSend = XMLHttpRequest.prototype.send,\r\n currentRequests = [];\r\n\r\n XMLHttpRequest.prototype.send = function () {\r\n currentRequests.push(this); // add this request to the stack\r\n oldSend.apply(this, arguments); // run the original function\r\n\r\n // add an event listener to remove the object from the array\r\n // when the request is complete\r\n this.addEventListener('readystatechange', function () {\r\n var idx;\r\n\r\n if (this.readyState === XMLHttpRequest.DONE) {\r\n idx = currentRequests.indexOf(this);\r\n if (idx > -1) {\r\n currentRequests.splice(idx, 1);\r\n }\r\n }\r\n }, false);\r\n };\r\n\r\n return function () {\r\n return currentRequests;\r\n }\r\n}());\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router, Event, NavigationStart } from '@angular/router';\r\nimport { AppHttpService } from '../apphttp.Service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { LogoutModalComponent } from '../logoutmodal/logoutmodal.component';\r\nimport { Globals } from '../globals.Service';\r\nimport { ReportModel } from '../ReportModel';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { CommonMethods } from '../customReportParams/commonMethods';\r\n\r\n@Component({\r\n selector: 'app-report-component',\r\n templateUrl: './reportviewer.component.html'\r\n})\r\nexport class ReportViewerComponent {\r\n public error: string = null;\r\n public reportLoaded: boolean = false;\r\n private reportModel: ReportModel;\r\n public reportName: string;\r\n public reportUrl: string;\r\n public paramsId: string;\r\n public urlParams: any;\r\n private sub: any;\r\n commonMethods = new CommonMethods();\r\n\r\n @ViewChild(LogoutModalComponent, { static: false }) public logOutModalComponent: LogoutModalComponent;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute,\r\n private appHttpService: AppHttpService, private titleService: Title,\r\n private globals: Globals, private cookieService: CookieService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.router.events.subscribe((event: Event) => {\r\n if (event instanceof NavigationStart) {\r\n if (this.logOutModalComponent.parent)\r\n this.logOutModalComponent.ngOnDestroy();\r\n }\r\n });\r\n this.sub = this.route\r\n .queryParams\r\n .subscribe(params => {\r\n this.paramsId = params['paramsId'];\r\n this.reportName = params['reportName'];\r\n this.reportUrl = params['reportUrl'];\r\n this.urlParams = params;\r\n });\r\n this.appHttpService.get(\"usernameandorganization\", \"\").then(res1 => {\r\n this.appHttpService.get(\"getparams\", \"?paramsId=\" + this.paramsId).then(res => {\r\n if (this.urlParams[\"reportUrl\"] != undefined && this.urlParams[\"reportUrl\"] != null) {\r\n let urlStr = JSON.stringify(this.urlParams);\r\n let tempParams = JSON.parse(urlStr);\r\n delete tempParams[\"reportUrl\"];\r\n delete tempParams[\"reportName\"];\r\n delete tempParams[\"paramsId\"];\r\n const reportGroupId = res.Parameters.split('|').find(e => e.indexOf(\"ReportGroupID\") > -1);\r\n const blockEventLog = res.Parameters.split('|').find(e => e.indexOf(\"BlockEventLog\") > -1);\r\n tempParams[\"ReportGroupID\"] = reportGroupId ? reportGroupId.split('=')[1] : null;\r\n tempParams[\"BlockEventLog\"] = blockEventLog ? blockEventLog.split('=')[1] : null;\r\n let paramsStr = this.commonMethods.addtoParameterList(tempParams);\r\n this.reportModel = JSON.parse(this.createReportModelString(paramsStr));\r\n }\r\n else {\r\n this.reportModel = res;\r\n }\r\n this.reportName = this.reportModel.ReportName;\r\n this.titleService.setTitle(this.reportModel.ReportName + \" - Stattrac Reporting\");\r\n Globals.userFullName = res1[\"UserFullName\"];\r\n Globals.userOrganizationId = res1[\"UserOrganizationId\"];\r\n Globals.isAuthenticated = true;\r\n Globals.AutoLogOut = res1[\"AutoLogOut\"];\r\n Globals.AutoLogOutWarning = res1[\"AutoLogOutWarning\"];\r\n Globals.PasswordExpirationWarning = res1[\"PasswordExpirationWarning\"];\r\n Globals.webPersonId = res1[\"WebPersonId\"];\r\n Globals.timeZone = res1[\"TimeZone\"];\r\n Globals.canSchedule = res1[\"CanSchedule\"];\r\n this.viewReport(this.reportModel);\r\n }).then().catch(error => {\r\n if (error.status == \"404\") { //when paramsId not found on the server side cache\r\n this.error = error.error;\r\n this.reportLoaded = true;\r\n return;\r\n }\r\n });\r\n }).then().catch(error => {\r\n console.log(error);\r\n if (error.status == \"401\") {\r\n this.router.navigateByUrl(\"/\");\r\n }\r\n if (error.error.indexOf(\"auth\") > 0) {\r\n this.router.navigateByUrl('/message=You are auto logged off due to inactivity.');\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {\r\n let dis = this;\r\n setTimeout(function () {\r\n if (!Globals.isAuthenticated || !dis.router.url.includes('reportviewer'))\r\n return;\r\n dis.logOutModalComponent.startSeconds = Globals.AutoLogOut;\r\n dis.logOutModalComponent.showModalSeconds = Globals.AutoLogOutWarning;\r\n dis.logOutModalComponent.parent = dis.reportModel.ReportName;\r\n dis.logOutModalComponent.returnUrl = dis.router.url;\r\n dis.logOutModalComponent.startTimer();\r\n }, 10000);\r\n }\r\n\r\n viewReport(reportModel: ReportModel): void {\r\n this.appHttpService.getRawText(reportModel).then(res => {\r\n const el = document.getElementById('html') as HTMLElement;\r\n const reg = /!paramsId!/gi;\r\n el.innerHTML = res.replace(reg, this.paramsId);\r\n let imgs = el.getElementsByTagName(\"img\");\r\n //make sure report has an image in it\r\n if (imgs.length > 0) {\r\n let logo = imgs[0].src;\r\n for (let i = 0; i < imgs.length; i++) {\r\n if (imgs[i].src == \"cid:\")\r\n imgs[i].style.display = \"none\";\r\n else {\r\n if (imgs[i].src.startsWith(\"cid:\") && imgs[i].src.length > 10)\r\n imgs[i].src = logo;\r\n imgs[i].style.width = \"100%\";\r\n }\r\n }\r\n }\r\n\r\n let divs = el.getElementsByTagName('div');\r\n for (var i = 0; i < divs.length; i++) {\r\n divs[i].setAttribute(\"style\", \"word-break:break-word;\");\r\n }\r\n\r\n this.error = null;\r\n this.reportLoaded = true;\r\n\r\n }).then().catch(error => {\r\n console.log(error);\r\n this.error = error.error || 'An error occured. Please try again.';\r\n this.reportLoaded = true;\r\n if (error.url.toLowerCase().indexOf('returnurl') > 0) {\r\n this.router.navigateByUrl('/?message=You have been logged out due to inactivity.');\r\n }\r\n });\r\n }\r\n\r\n createReportModelString(params): string {\r\n return '{\"ReportName\": \"' + this.reportName + '\", \"ReportUrl\": \"' +\r\n this.reportUrl + '\", \"Format\":\"MHTML\", \"Parameters\":\"' + params + '\"}';\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router'\r\nimport { AppHttpService } from '../apphttp.Service';\r\nimport { Globals } from '../globals.Service';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-resetpassword',\r\n templateUrl: './resetpassword.component.html'\r\n})\r\nexport class ResetPasswordComponent {\r\n public username = \"\";\r\n public resend: boolean = false;\r\n public showSpinner: boolean = false;\r\n private sub: any;\r\n public error = \"\";\r\n public message = \"\"\r\n\r\n constructor(public router: Router, private appHttpService: AppHttpService,\r\n private route: ActivatedRoute, private titleService: Title, public globals: Globals) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sub = this.route\r\n .queryParams\r\n .subscribe(params => {\r\n this.username = params['username'];\r\n this.message = params['message'];\r\n });\r\n this.titleService.setTitle(\"Reset Password - Statline Access Portal\");\r\n }\r\n\r\n reset() {\r\n this.showSpinner = true;\r\n this.appHttpService.get(\"resetpassword\", \"?username=\" + this.username).then(res => {\r\n this.resend = true;\r\n this.showSpinner = false; \r\n this.error = \"\";\r\n }).then().catch(error => {\r\n this.error = error.error;\r\n this.showSpinner = false;\r\n });\r\n }\r\n\r\n resendEmail() {\r\n this.resend = false;\r\n }\r\n}\r\n","import { Component, ViewChild, TemplateRef, HostListener, ElementRef } from '@angular/core';\r\nimport { Router, Event, NavigationStart } from '@angular/router';\r\nimport { AppHttpService } from '../apphttp.Service';\r\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Globals } from '../globals.Service';\r\nimport { formatDate } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LogoutModalComponent } from '../logoutmodal/logoutmodal.component';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { Observable } from 'rxjs';\r\nimport { ScheduleModel } from '../ScheduleModel';\r\n\r\n@Component({\r\n selector: 'app-scheduling',\r\n templateUrl: './scheduling.component.html',\r\n})\r\nexport class SchedulingComponent {\r\n modalRef: BsModalRef;\r\n EndDateTime: Date;\r\n EndTime: string;\r\n StartDateTime: Date;\r\n StartTime: string;\r\n dateRangeExceeded: boolean;\r\n popupDateRangeExceeded: boolean;\r\n popupRepeatDateExceeded: boolean;\r\n showSpinner: boolean;\r\n showPopupSpinner: boolean;\r\n ddlOrganizationSpinner: boolean;\r\n ddlScheduleGroupSpinner: boolean;\r\n showSpinnerForSaveAll: boolean;\r\n isEditing: boolean = false;\r\n isSplitting: boolean = false;\r\n isMultipleSelected: boolean = false;\r\n isScheduleLocked: boolean = false;\r\n deletedRowcount: number = 0;\r\n gaps: number = 0;\r\n overlaps: number = 0;\r\n shiftStatusMessage: string;\r\n invalidDateMessage: string;\r\n scheduleOrganizationList = [];\r\n scheduleGroupList = [];\r\n schedulePeopleList = [];\r\n selectedOrganization: string;\r\n scheduleOrganizationId: number;\r\n scheduleGroup: string;\r\n scheduleGroupId: number;\r\n scheduleGroupIdOld: number;\r\n schedulePopupHeader = 'New Shift';\r\n schedules: ScheduleModel[];\r\n buttonSection: any;\r\n selectedRows: string = \"\";\r\n dataChanged: boolean = false;\r\n deletedRows: string = \"\";\r\n changedRows: string = \"\";\r\n shiftName: string;\r\n scheduleItemId: number;\r\n popupStartDateTime: Date;\r\n popupStartTime: string;\r\n popupEndDateTime: Date;\r\n popupEndTime: string;\r\n //Split Shift\r\n shiftName2: string;\r\n popupStartDateTime2: Date;\r\n popupStartTime2: string;\r\n popupEndDateTime2: Date;\r\n popupEndTime2: string;\r\n PersonId12: number;\r\n PersonId22: number;\r\n PersonId32: number;\r\n PersonId42: number;\r\n PersonId52: number;\r\n\r\n repeatUntilDateTime: Date;\r\n repeatUntilTime: string;\r\n sunday: boolean = true;\r\n monday: boolean = true;\r\n tuesday: boolean = true;\r\n wednesday: boolean = true;\r\n thursday: boolean = true;\r\n friday: boolean = true;\r\n saturday: boolean = true;\r\n PersonId1: number;\r\n PersonId2: number;\r\n PersonId3: number;\r\n PersonId4: number;\r\n PersonId5: number;\r\n\r\n sortColumn: string;\r\n sortDir_Start: string;\r\n sortDir_End: string;\r\n sortDir_Shift: string;\r\n sortDir_P1: string;\r\n sortDir_P2: string;\r\n sortDir_P3: string;\r\n sortDir_P4: string;\r\n sortDir_P5: string;\r\n\r\n @ViewChild('schedulePopup', { static: false }) schedulePopup: TemplateRef;\r\n @ViewChild(LogoutModalComponent, { static: false }) public logOutModalComponent: LogoutModalComponent;\r\n\r\n constructor(public router: Router, private appHttpService: AppHttpService,\r\n private modalService: BsModalService, private titleService: Title,\r\n public globals: Globals, private cookieService: CookieService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.router.events.subscribe((event: Event) => {\r\n if (event instanceof NavigationStart) {\r\n if (this.logOutModalComponent.parent)\r\n this.logOutModalComponent.ngOnDestroy();\r\n //remove lock\r\n if (this.scheduleGroupId != undefined) {\r\n this.appHttpService.get('modifyScheduleLock', '?scheduleGroupId=' + this.scheduleGroupId + \"&locktype=1\").then(res => {\r\n });\r\n }\r\n }\r\n });\r\n this.ddlOrganizationSpinner = true;\r\n window.addEventListener('scroll', this.checkScroll.bind(this), true);\r\n let date = new Date();\r\n let y = date.getFullYear();\r\n let m = date.getMonth();\r\n let firstDay = new Date(y, m, 1);\r\n let lastDay = new Date(y, m + 1, 0);\r\n this.StartDateTime = firstDay;\r\n this.StartTime = \"00:00\";\r\n this.EndDateTime = lastDay;\r\n this.EndTime = \"23:59\";\r\n this.titleService.setTitle(\"Scheduling - Statline Access Portal\");\r\n this.schedules = [];\r\n\r\n this.appHttpService.get(\"usernameandorganization\", \"\").then(res => {\r\n Globals.userFullName = res[\"UserFullName\"];\r\n Globals.userOrganizationId = res[\"UserOrganizationId\"];\r\n Globals.isAuthenticated = true;\r\n Globals.AutoLogOut = res[\"AutoLogOut\"];\r\n Globals.AutoLogOutWarning = res[\"AutoLogOutWarning\"];\r\n Globals.PasswordExpirationWarning = res[\"PasswordExpirationWarning\"];\r\n Globals.webPersonId = res[\"WebPersonId\"];\r\n Globals.timeZone = res[\"TimeZone\"];\r\n Globals.canSchedule = res[\"CanSchedule\"];\r\n this.getScheduleOrganization();\r\n }).then().catch(error => {\r\n console.log(error);\r\n if (error.status == \"401\") {\r\n this.router.navigateByUrl(\"/?returnurl=reports\");\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n //remove lock\r\n if (this.scheduleGroupId != undefined) {\r\n this.appHttpService.get('modifyScheduleLock', '?scheduleGroupId=' + this.scheduleGroupId + \"&locktype=1\").then(res => {\r\n });\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.buttonSection = document.getElementById(\"buttonSection\");\r\n\r\n let dis = this;\r\n setTimeout(function () {\r\n if (!Globals.isAuthenticated || !dis.router.url.includes('schedul') || dis.logOutModalComponent.seconds != undefined)\r\n return;\r\n dis.logOutModalComponent.startSeconds = Globals.AutoLogOut;\r\n dis.logOutModalComponent.showModalSeconds = Globals.AutoLogOutWarning;\r\n dis.logOutModalComponent.parent = 'Schedules';\r\n dis.logOutModalComponent.returnUrl = dis.router.url;\r\n dis.logOutModalComponent.startTimer();\r\n }, 10000);\r\n }\r\n\r\n staticGlobals() {\r\n return Globals;\r\n }\r\n\r\n openModal(message) {\r\n if (this.isScheduleLocked)\r\n return;\r\n if (message) {\r\n if (message == \"Split\") {\r\n if (this.selectedRows == '' || this.isMultipleSelected || this.dataChanged)\r\n return;\r\n this.isSplitting = true;\r\n this.scheduleItemId = Number.parseInt(this.selectedRows.slice(0, -1));\r\n this.shiftName = (document.getElementById(\"lnkShiftName_\" + this.scheduleItemId) as HTMLElement).innerHTML.trim();\r\n this.shiftName2 = this.shiftName;\r\n let start = (document.getElementById(\"tdShiftStart_\" + this.scheduleItemId) as HTMLElement).innerHTML.trim().split(' ');\r\n let end = (document.getElementById(\"tdShiftEnd_\" + this.scheduleItemId) as HTMLElement).innerHTML.trim().split(' ');;\r\n this.popupStartDateTime = new Date(start[0]);\r\n this.popupStartTime = start[1];\r\n this.popupEndDateTime = undefined;\r\n this.popupEndTime = undefined;\r\n\r\n this.popupStartDateTime2 = undefined;\r\n this.popupStartTime2 = undefined;\r\n this.popupEndDateTime2 = new Date(end[0]);\r\n this.popupEndTime2 = end[1];\r\n\r\n this.PersonId1 = Number.parseInt((document.getElementById(\"p1_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId2 = Number.parseInt((document.getElementById(\"p2_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId3 = Number.parseInt((document.getElementById(\"p3_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId4 = Number.parseInt((document.getElementById(\"p4_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId5 = Number.parseInt((document.getElementById(\"p5_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n\r\n this.PersonId12 = Number.parseInt((document.getElementById(\"p1_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId22 = Number.parseInt((document.getElementById(\"p2_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId32 = Number.parseInt((document.getElementById(\"p3_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId42 = Number.parseInt((document.getElementById(\"p4_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId52 = Number.parseInt((document.getElementById(\"p5_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n\r\n this.schedulePopupHeader = \"Split Shift\";\r\n }\r\n else {\r\n this.isEditing = true;\r\n this.scheduleItemId = message;\r\n this.shiftName = (document.getElementById(\"lnkShiftName_\" + this.scheduleItemId) as HTMLElement).innerHTML.trim();\r\n let start = (document.getElementById(\"tdShiftStart_\" + this.scheduleItemId) as HTMLElement).innerHTML.trim().split(' ');\r\n this.popupStartDateTime = new Date(start[0]);\r\n this.popupStartTime = start[1];\r\n let end = (document.getElementById(\"tdShiftEnd_\" + this.scheduleItemId) as HTMLElement).innerHTML.trim().split(' ');;\r\n this.popupEndDateTime = new Date(end[0]);\r\n this.popupEndTime = end[1];\r\n this.PersonId1 = Number.parseInt((document.getElementById(\"p1_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId2 = Number.parseInt((document.getElementById(\"p2_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId3 = Number.parseInt((document.getElementById(\"p3_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId4 = Number.parseInt((document.getElementById(\"p4_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.PersonId5 = Number.parseInt((document.getElementById(\"p5_\" + this.scheduleItemId) as HTMLInputElement).value);\r\n this.schedulePopupHeader = \"Edit Shift\";\r\n }\r\n }\r\n else {\r\n this.appHttpService.get('SchedulePeople', '?organizationId=' + this.scheduleOrganizationId +\r\n '&scheduleGroupId=' + this.scheduleGroupId).then(res0 => {\r\n this.schedulePeopleList = res0;\r\n this.schedulePeopleList.unshift({ value: -1, label: \" \" });\r\n });\r\n this.isEditing = false;\r\n this.shiftName = undefined;\r\n this.popupStartDateTime = new Date();\r\n this.popupStartTime = \"00:00\";\r\n this.popupEndDateTime = new Date(Date.now() + 7 * 24 * 60 * 60 * 1000);\r\n this.popupEndTime = \"23:59\";\r\n this.PersonId1 = undefined;\r\n this.PersonId2 = undefined;\r\n this.PersonId3 = undefined;\r\n this.PersonId4 = undefined;\r\n this.PersonId5 = undefined;\r\n this.schedulePopupHeader = \"New Shift\";\r\n this.repeatUntilDateTime = undefined;\r\n this.repeatUntilTime = undefined;\r\n this.monday = true;\r\n this.tuesday = true;\r\n this.wednesday = true;\r\n this.thursday = true;\r\n this.friday = true;\r\n this.saturday = true;\r\n this.sunday = true;\r\n }\r\n this.modalRef = this.modalService.show(this.schedulePopup, { class: \"modal-lg\", animated: true });\r\n this.modalService.onHide.subscribe((reason: string) => {\r\n this.isEditing = false;\r\n this.isSplitting = false;\r\n this.shiftStatusMessage = undefined;\r\n this.invalidDateMessage = undefined;\r\n this.popupDateRangeExceeded = false;\r\n this.popupRepeatDateExceeded = false;\r\n this.repeatUntilDateTime = undefined;\r\n this.repeatUntilTime = undefined;\r\n });\r\n }\r\n\r\n getScheduleOrganization(): void {\r\n this.ddlOrganizationSpinner = true;\r\n const params = \"?OrganizationId=\" + Globals.userOrganizationId;\r\n this.scheduleOrganizationList = [];\r\n this.appHttpService.get(\"ScheduleOrganizationsDropdown\", params).then(res => {\r\n this.scheduleOrganizationList = res;\r\n let prevSelected = this.cookieService.get(\"selectedScheduleOrganization\");\r\n if (prevSelected && prevSelected != \"\") {\r\n this.scheduleOrganizationId = Number.parseInt(prevSelected);\r\n this.OrganizationChanged();\r\n }\r\n this.ddlOrganizationSpinner = false;\r\n }).then().catch(error => {\r\n this.ddlOrganizationSpinner = false;\r\n });\r\n }\r\n\r\n getScheduleGroups(): void {\r\n this.ddlScheduleGroupSpinner = true;\r\n this.scheduleGroupList = [];\r\n this.scheduleGroupId = null;\r\n let org = Globals.userOrganizationId;\r\n if (this.scheduleOrganizationId !== undefined && this.scheduleOrganizationId !== null) {\r\n org = this.scheduleOrganizationId;\r\n }\r\n const params = \"?OrganizationId=\" + org;\r\n this.appHttpService.get(\"ScheduleGroupsDropdown\", params).then(res => {\r\n this.scheduleGroupList = res;\r\n this.ddlScheduleGroupSpinner = false;\r\n }).then().catch(error => {\r\n this.ddlScheduleGroupSpinner = false;\r\n });;\r\n }\r\n\r\n OrganizationChanged() {\r\n let selected = this.scheduleOrganizationList.find(x => x.value == this.scheduleOrganizationId);\r\n if (selected) {\r\n this.selectedOrganization = selected.label;\r\n this.cookieService.set(\"selectedScheduleOrganization\", this.scheduleOrganizationId.toString(), 3650);\r\n this.getScheduleGroups();\r\n }\r\n }\r\n\r\n scheduleGroupChanged() {\r\n let selected = this.scheduleGroupList.find(x => x.value == this.scheduleGroupId);\r\n if (selected) {\r\n this.scheduleGroup = selected.label.toString().trim();\r\n if (this.scheduleGroupIdOld)\r\n this.appHttpService.get('modifyScheduleLock', '?scheduleGroupId=' + this.scheduleGroupIdOld + \"&locktype=1\").then(res => {\r\n });\r\n this.scheduleGroupIdOld = this.scheduleGroupId;\r\n }\r\n }\r\n\r\n popUpClearPeople() {\r\n this.PersonId1 = undefined;\r\n this.PersonId2 = undefined;\r\n this.PersonId3 = undefined;\r\n this.PersonId4 = undefined;\r\n this.PersonId5 = undefined;\r\n }\r\n\r\n popUpClearPeople2() {\r\n this.PersonId12 = undefined;\r\n this.PersonId22 = undefined;\r\n this.PersonId32 = undefined;\r\n this.PersonId42 = undefined;\r\n this.PersonId52 = undefined;\r\n }\r\n\r\n checkLockAndSearch() {\r\n this.showSpinner = true;\r\n this.appHttpService.get('modifyScheduleLock', '?scheduleGroupId=' + this.scheduleGroupId + \"&locktype=0\").then(res => {\r\n this.isScheduleLocked = false;\r\n this.search();\r\n }).then().catch(error => {\r\n if (error.status == \"401\") {\r\n this.isScheduleLocked = true;\r\n this.search();\r\n }\r\n else {\r\n console.log(error);\r\n this.showSpinner = false;\r\n }\r\n });\r\n }\r\n\r\n search(updateItemId?:number) {\r\n let diff = Math.abs(this.EndDateTime.getTime() - this.StartDateTime.getTime());\r\n let diffDays = Math.ceil(diff / (1000 * 3600 * 24));\r\n if (diffDays >= 365) {\r\n this.dateRangeExceeded = true;\r\n this.showSpinner = false;\r\n this.schedules = [];\r\n return;\r\n }\r\n else\r\n this.dateRangeExceeded = false;\r\n\r\n this.shiftStatusMessage = undefined;\r\n this.sortColumn = undefined;\r\n this.selectedRows = \"\";\r\n this.deletedRowcount = 0;\r\n this.changedRows = \"\";\r\n this.deletedRows = \"\";\r\n if (this.StartTime.indexOf(':') < 1)\r\n this.StartTime = this.StartTime.substring(0, 2) + ':' + this.StartTime.substring(2);\r\n if (this.EndTime.indexOf(':') < 1)\r\n this.EndTime = this.EndTime.substring(0, 2) + ':' + this.EndTime.substring(2);\r\n\r\n this.appHttpService.get('SchedulePeople', '?organizationId=' + this.scheduleOrganizationId +\r\n '&scheduleGroupId=' + this.scheduleGroupId).then(res0 => {\r\n this.schedulePeopleList = res0;\r\n this.schedulePeopleList.unshift({ value: -1, label: \" \" });\r\n let params = \"?organizationId=\" + this.scheduleOrganizationId +\r\n \"&scheduleGroupId=\" + this.scheduleGroupId +\r\n \"&startDt=\" + formatDate(formatDate(this.StartDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.StartTime, 'MM/dd/yyyy HH:mm', 'en-US') +\r\n \"&endDt=\" + formatDate(formatDate(this.EndDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.EndTime, 'MM/dd/yyyy HH:mm', 'en-US'); +\r\n this.appHttpService.get(\"Schedules\", params).then(res => {\r\n this.schedules = res;\r\n this.gaps = res.filter(function (el) { return el.shiftStatus == 2 }).length;\r\n this.overlaps = res.filter(function (el) { return el.shiftStatus == 1 }).length;\r\n let cbAll = document.getElementById(\"cb_All\") as HTMLInputElement;\r\n cbAll.checked = false;\r\n this.dataChanged = false;\r\n this.showSpinner = false;\r\n this.showSpinnerForSaveAll = false;\r\n let dis = this;\r\n setTimeout(function () {\r\n if (updateItemId)\r\n dis.rowToggleByCellClick(updateItemId);\r\n }, 200);\r\n \r\n }).then().catch(error => {\r\n console.log(error);\r\n this.showSpinner = false;\r\n });\r\n }).then().catch(error => {\r\n console.log(error);\r\n this.showSpinner = false;\r\n });\r\n }\r\n\r\n createShift() {\r\n if (this.scheduleOrganizationId == undefined || this.scheduleGroupId == undefined || this.dataChanged)\r\n return;\r\n if (this.popupStartTime.indexOf(':') < 1)\r\n this.popupStartTime = this.popupStartTime.substring(0, 2) + ':' + this.popupStartTime.substring(2);\r\n if (this.popupEndTime.indexOf(':') < 1)\r\n this.popupEndTime = this.popupEndTime.substring(0, 2) + ':' + this.popupEndTime.substring(2);\r\n\r\n let formated_popupStartDate = formatDate(formatDate(this.popupStartDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupStartTime, 'MM/dd/yyyy HH:mm', 'en-US');\r\n let formated_popupEndDate = formatDate(formatDate(this.popupEndDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupEndTime, 'MM/dd/yyyy HH:mm', 'en-US');\r\n let formated_popupStartDate_forComparison = formatDate(formatDate(this.popupStartDateTime, 'yyyy-MM-dd', 'en-US') + ' ' + this.popupStartTime, 'yyyy-MM-dd HH:mm', 'en-US');\r\n let formated_popupEndDate_forComparison = formatDate(formatDate(this.popupEndDateTime, 'yyyy-MM-dd', 'en-US') + ' ' + this.popupEndTime, 'yyyy-MM-dd HH:mm', 'en-US');\r\n\r\n if (formated_popupEndDate_forComparison <= formated_popupStartDate_forComparison) {\r\n this.invalidDateMessage = \"End date cannot be before the start date.\";\r\n this.showPopupSpinner = false;\r\n return;\r\n }\r\n else {\r\n this.invalidDateMessage = undefined;\r\n }\r\n\r\n if (this.repeatUntilDateTime) {\r\n let diff1 = Math.abs(Date.now() - this.repeatUntilDateTime.getTime());\r\n let diffDays1 = Math.ceil(diff1 / (1000 * 3600 * 24));\r\n if (diffDays1 >= 365) {\r\n this.popupRepeatDateExceeded = true;\r\n return;\r\n }\r\n else\r\n this.popupRepeatDateExceeded = false;\r\n }\r\n\r\n let repatEnd = \"\";\r\n let weekDays = \"\";\r\n if (this.repeatUntilDateTime && this.repeatUntilTime && this.repeatUntilTime != \"\") {\r\n if (this.repeatUntilTime && this.repeatUntilTime.indexOf(':') < 1)\r\n this.repeatUntilTime = this.repeatUntilTime.substring(0, 2) + ':' + this.repeatUntilTime.substring(2);\r\n repatEnd = formatDate(formatDate(this.repeatUntilDateTime, 'MM/dd/yyyy', 'en-US') + ' ' +\r\n (this.repeatUntilTime || '00:00'), 'MM/dd/yyyy HH:mm', 'en-US');\r\n weekDays += this.sunday ? \"1\" : \"0\";\r\n weekDays += this.monday ? \"1\" : \"0\";\r\n weekDays += this.tuesday ? \"1\" : \"0\";\r\n weekDays += this.wednesday ? \"1\" : \"0\";\r\n weekDays += this.thursday ? \"1\" : \"0\";\r\n weekDays += this.friday ? \"1\" : \"0\";\r\n weekDays += this.saturday ? \"1\" : \"0\";\r\n }\r\n else {\r\n weekDays = \"0000000\";\r\n }\r\n\r\n let shiftParams = \"?shiftName=\" + this.shiftName +\r\n \"&scheduleGroupId=\" + this.scheduleGroupId +\r\n \"&startDt=\" + formated_popupStartDate + \"&endDt=\" + formated_popupEndDate +\r\n \"&PersonId1=\" + (this.PersonId1 == -1 ? \"\" : this.PersonId1) + \"&PersonId2=\" + (this.PersonId2 == -1 ? \"\" : this.PersonId2) +\r\n \"&PersonId3=\" + (this.PersonId3 == -1 ? \"\" : this.PersonId3) + \"&PersonId4=\" + (this.PersonId4 == -1 ? \"\" : this.PersonId4) +\r\n \"&PersonId5=\" + (this.PersonId5 == -1 ? \"\" : this.PersonId5) +\r\n \"&repeatEnd=\" + repatEnd + \"&weekDays=\" + weekDays;\r\n\r\n if (this.shiftStatusMessage == undefined) {\r\n let params = \"?organizationId=\" + this.scheduleOrganizationId +\r\n \"&scheduleGroupId=\" + this.scheduleGroupId + \"&scheduleItemId=\" + this.scheduleItemId +\r\n \"&startDt=\" + formatDate(formatDate(this.popupStartDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupStartTime, 'MM/dd/yyyy HH:mm', 'en-US') +\r\n \"&endDt=\" + formatDate(formatDate(this.popupEndDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupEndTime, 'MM/dd/yyyy HH:mm', 'en-US');\r\n\r\n this.appHttpService.get(\"shiftstatus\", params).then(res => {\r\n this.showPopupSpinner = false;\r\n if (res == 1) {\r\n this.shiftStatusMessage = \"This shift overlaps with another shift.
\" +\r\n \"You can still save your changes by clicking the Save button.\";\r\n } else if (res == 2) {\r\n this.shiftStatusMessage = \"This shift has gaps.
\" +\r\n \"You can still save your changes by clicking the Save button.\";\r\n } else { //no collapse or gap, so just save\r\n this.showPopupSpinner = true;\r\n this.appHttpService.get(\"createschedule\", shiftParams).then(res => {\r\n this.search();\r\n this.modalRef.hide();\r\n this.showPopupSpinner = false;\r\n });\r\n }\r\n });\r\n }\r\n else { // already checked shiftstatus, now save the shift\r\n this.showPopupSpinner = true;\r\n this.appHttpService.get(\"createschedule\", shiftParams).then(res => {\r\n this.search();\r\n this.modalRef.hide();\r\n this.showPopupSpinner = false;\r\n });\r\n }\r\n }\r\n\r\n updateShift() {\r\n if (this.popupStartTime.indexOf(':') < 1)\r\n this.popupStartTime = this.popupStartTime.substring(0, 2) + ':' + this.popupStartTime.substring(2);\r\n if (this.popupEndTime.indexOf(':') < 1)\r\n this.popupEndTime = this.popupEndTime.substring(0, 2) + ':' + this.popupEndTime.substring(2);\r\n\r\n let formated_popupStartDate = formatDate(formatDate(this.popupStartDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupStartTime, 'MM/dd/yyyy HH:mm', 'en-US');\r\n let formated_popupEndDate = formatDate(formatDate(this.popupEndDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupEndTime, 'MM/dd/yyyy HH:mm', 'en-US');\r\n let formated_popupStartDate_forComparison = formatDate(formatDate(this.popupStartDateTime, 'yyyy-MM-dd', 'en-US') + ' ' + this.popupStartTime, 'yyyy-MM-dd HH:mm', 'en-US');\r\n let formated_popupEndDate_forComparison = formatDate(formatDate(this.popupEndDateTime, 'yyyy-MM-dd', 'en-US') + ' ' + this.popupEndTime, 'yyyy-MM-dd HH:mm', 'en-US');\r\n\r\n if (formated_popupEndDate_forComparison <= formated_popupStartDate_forComparison) {\r\n this.invalidDateMessage = \"End date cannot be before the start date.\";\r\n this.showPopupSpinner = false;\r\n return;\r\n }\r\n else {\r\n this.invalidDateMessage = undefined;\r\n }\r\n let shiftParams = \"?scheduleItemID=\" + this.scheduleItemId + \"&shiftName=\" + this.shiftName +\r\n \"&scheduleGroupId=\" + this.scheduleGroupId +\r\n \"&startDt=\" + formated_popupStartDate + \"&endDt=\" + formated_popupEndDate +\r\n \"&PersonId1=\" + (this.PersonId1 == -1 ? \"\" : this.PersonId1) + \"&PersonId2=\" + (this.PersonId2 == -1 ? \"\" : this.PersonId2) +\r\n \"&PersonId3=\" + (this.PersonId3 == -1 ? \"\" : this.PersonId3) + \"&PersonId4=\" + (this.PersonId4 == -1 ? \"\" : this.PersonId4) +\r\n \"&PersonId5=\" + (this.PersonId5 == -1 ? \"\" : this.PersonId5);\r\n\r\n if (this.shiftStatusMessage == undefined) {\r\n let params = \"?organizationId=\" + this.scheduleOrganizationId +\r\n \"&scheduleGroupId=\" + this.scheduleGroupId + \"&scheduleItemId=\" + this.scheduleItemId +\r\n \"&startDt=\" + formatDate(formatDate(this.popupStartDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupStartTime, 'MM/dd/yyyy HH:mm', 'en-US') +\r\n \"&endDt=\" + formatDate(formatDate(this.popupEndDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupEndTime, 'MM/dd/yyyy HH:mm', 'en-US');\r\n this.appHttpService.get(\"shiftstatus\", params).then(res => {\r\n this.showPopupSpinner = false;\r\n if (res == 1) {\r\n this.shiftStatusMessage = \"This shift overlaps with another shift.
\" +\r\n \"You can still save your changes by clicking the Save button.\";\r\n } else if (res == 2) {\r\n this.shiftStatusMessage = \"This shift has gaps.
\" +\r\n \"You can still save your changes by clicking the Save button.\";\r\n } else { //no collapse or gap, so just update\r\n this.showPopupSpinner = true;\r\n this.appHttpService.get(\"updateschedule\", shiftParams).then(res => {\r\n let tempId = this.scheduleItemId;\r\n this.doneUpdating();\r\n this.showPopupSpinner = false;\r\n this.search(tempId);\r\n });\r\n }\r\n });\r\n }\r\n else { // already checked shiftstatus, now update the shift\r\n this.showPopupSpinner = true;\r\n this.appHttpService.get(\"updateschedule\", shiftParams).then(res => {\r\n let tempId = this.scheduleItemId;\r\n this.doneUpdating();\r\n this.showPopupSpinner = false;\r\n this.search(tempId);\r\n });\r\n }\r\n }\r\n\r\n doneUpdating() {\r\n (document.getElementById(\"lnkShiftName_\" + this.scheduleItemId) as HTMLElement).innerHTML = this.shiftName;\r\n (document.getElementById(\"tdShiftStart_\" + this.scheduleItemId) as HTMLInputElement).innerHTML = formatDate(formatDate(this.popupStartDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupStartTime, 'MM/dd/yyyy HH:mm', 'en-US');\r\n (document.getElementById(\"tdShiftEnd_\" + this.scheduleItemId) as HTMLInputElement).innerHTML = formatDate(formatDate(this.popupEndDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupEndTime, 'MM/dd/yyyy HH:mm', 'en-US');\r\n (document.getElementById(\"p1_\" + this.scheduleItemId) as HTMLInputElement).value = this.PersonId1 ? this.PersonId1.toString() : undefined;\r\n (document.getElementById(\"p1_\" + this.scheduleItemId) as HTMLInputElement).style.backgroundColor = \"white\";\r\n (document.getElementById(\"p2_\" + this.scheduleItemId) as HTMLInputElement).value = this.PersonId2 ? this.PersonId2.toString() : undefined;\r\n (document.getElementById(\"p2_\" + this.scheduleItemId) as HTMLInputElement).style.backgroundColor = \"white\";\r\n (document.getElementById(\"p3_\" + this.scheduleItemId) as HTMLInputElement).value = this.PersonId3 ? this.PersonId3.toString() : undefined;\r\n (document.getElementById(\"p3_\" + this.scheduleItemId) as HTMLInputElement).style.backgroundColor = \"white\";\r\n (document.getElementById(\"p4_\" + this.scheduleItemId) as HTMLInputElement).value = this.PersonId4 ? this.PersonId4.toString() : undefined;\r\n (document.getElementById(\"p4_\" + this.scheduleItemId) as HTMLInputElement).style.backgroundColor = \"white\";\r\n (document.getElementById(\"p5_\" + this.scheduleItemId) as HTMLInputElement).value = this.PersonId5 ? this.PersonId5.toString() : undefined;\r\n (document.getElementById(\"p5_\" + this.scheduleItemId) as HTMLInputElement).style.backgroundColor = \"white\";\r\n this.scheduleItemId = undefined;\r\n this.shiftStatusMessage = undefined;\r\n this.modalRef.hide();\r\n this.isEditing = false;\r\n }\r\n\r\n createSplitShift() {\r\n if (this.popupStartTime.indexOf(':') < 1)\r\n this.popupStartTime = this.popupStartTime.substring(0, 2) + ':' + this.popupStartTime.substring(2);\r\n if (this.popupEndTime.indexOf(':') < 1)\r\n this.popupEndTime = this.popupEndTime.substring(0, 2) + ':' + this.popupEndTime.substring(2);\r\n\r\n if (this.popupStartTime2.indexOf(':') < 1)\r\n this.popupStartTime2 = this.popupStartTime2.substring(0, 2) + ':' + this.popupStartTime2.substring(2);\r\n if (this.popupEndTime2.indexOf(':') < 1)\r\n this.popupEndTime2 = this.popupEndTime2.substring(0, 2) + ':' + this.popupEndTime2.substring(2);\r\n\r\n let formated_popupStartDate = formatDate(formatDate(this.popupStartDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupStartTime, 'MM/dd/yyyy HH:mm', 'en-US');\r\n let formated_popupEndDate = formatDate(formatDate(this.popupEndDateTime, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupEndTime, 'MM/dd/yyyy HH:mm', 'en-US');\r\n let formated_popupStartDate2 = formatDate(formatDate(this.popupStartDateTime2, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupStartTime2, 'MM/dd/yyyy HH:mm', 'en-US');\r\n let formated_popupEndDate2 = formatDate(formatDate(this.popupEndDateTime2, 'MM/dd/yyyy', 'en-US') + ' ' + this.popupEndTime2, 'MM/dd/yyyy HH:mm', 'en-US')\r\n\r\n let formated_popupStartDate_forComparison = formatDate(formatDate(this.popupStartDateTime, 'yyyy-MM-dd', 'en-US') + ' ' + this.popupStartTime, 'yyyy-MM-dd HH:mm', 'en-US');\r\n let formated_popupEndDate_forComparison = formatDate(formatDate(this.popupEndDateTime, 'yyyy-MM-dd', 'en-US') + ' ' + this.popupEndTime, 'yyyy-MM-dd HH:mm', 'en-US');\r\n let formated_popupEndDate2_forComparison = formatDate(formatDate(this.popupEndDateTime2, 'yyyy-MM-dd', 'en-US') + ' ' + this.popupEndTime2, 'yyyy-MM-dd HH:mm', 'en-US')\r\n\r\n if (formated_popupEndDate_forComparison <= formated_popupStartDate_forComparison) {\r\n this.invalidDateMessage = \"Split date cannot be before the start date.\";\r\n this.showPopupSpinner = false;\r\n return;\r\n }\r\n\r\n if (formated_popupEndDate_forComparison > formated_popupEndDate2_forComparison) {\r\n this.invalidDateMessage = \"Split date cannot be later than the end date.\";\r\n this.showPopupSpinner = false;\r\n return;\r\n }\r\n let createparams = \"?shiftName=\" + this.shiftName2 + \"&scheduleGroupId=\" + this.scheduleGroupId +\r\n \"&startDt=\" + formated_popupStartDate2 + \"&endDt=\" + formated_popupEndDate2 +\r\n \"&PersonId1=\" + (this.PersonId12 == -1 ? \"\" : this.PersonId12) + \"&PersonId2=\" + (this.PersonId22 == -1 ? \"\" : this.PersonId22) +\r\n \"&PersonId3=\" + (this.PersonId32 == -1 ? \"\" : this.PersonId32) + \"&PersonId4=\" + (this.PersonId42 == -1 ? \"\" : this.PersonId42) +\r\n \"&PersonId5=\" + (this.PersonId52 == -1 ? \"\" : this.PersonId52) + \"&repeatEnd=&weekDays=0000000\";\r\n\r\n let updateParams = \"?scheduleItemID=\" + this.scheduleItemId + \"&shiftName=\" + this.shiftName +\r\n \"&scheduleGroupId=\" + this.scheduleGroupId +\r\n \"&startDt=\" + formated_popupStartDate + \"&endDt=\" + formated_popupEndDate +\r\n \"&PersonId1=\" + (this.PersonId1 == -1 ? \"\" : this.PersonId1) + \"&PersonId2=\" + (this.PersonId2 == -1 ? \"\" : this.PersonId2) +\r\n \"&PersonId3=\" + (this.PersonId3 == -1 ? \"\" : this.PersonId3) + \"&PersonId4=\" + (this.PersonId4 == -1 ? \"\" : this.PersonId4) +\r\n \"&PersonId5=\" + (this.PersonId5 == -1 ? \"\" : this.PersonId5);\r\n\r\n this.showPopupSpinner = true;\r\n this.appHttpService.get(\"createschedule\", createparams).then(res => {\r\n this.appHttpService.get(\"updateschedule\", updateParams).then(res => {\r\n this.modalRef.hide();\r\n this.search();\r\n this.showPopupSpinner = false;\r\n });\r\n });\r\n\r\n }\r\n\r\n saveChanges() {\r\n this.showSpinnerForSaveAll = true;\r\n this.dataChanged = false;\r\n //get count of updates, can't send too many at once or it doesn't always save, save in chunks\r\n let saveString = this.getItemsToSave();\r\n\r\n this.appHttpService.get(\"saveschedulechanges\", \"?updates=\" + encodeURIComponent(saveString) + \"&deletes=\" + this.deletedRows).then(res => {\r\n //check to see if there is more to save\r\n if (this.changedRows.length > 0) {\r\n this.deletedRows = \"\";\r\n this.saveChanges();\r\n }\r\n else {\r\n this.search();\r\n }\r\n }).then().catch(error => {\r\n console.log(error);\r\n this.showSpinnerForSaveAll = false;\r\n });;\r\n }\r\n\r\n getItemsToSave() {\r\n let index = -1;\r\n let saveString = '';\r\n\r\n if (this.changedRows.match(/&/g).length > 20) {\r\n const pattern = '&';\r\n let position = 20;\r\n const l = this.changedRows.length;\r\n \r\n while (position-- && index++ < l) {\r\n index = this.changedRows.indexOf(pattern, index);\r\n if (index < 0)\r\n break;\r\n }\r\n\r\n saveString = this.changedRows.substring(0, index + 1);\r\n this.changedRows = this.changedRows.substring(index + 1);\r\n }\r\n else {\r\n saveString = this.changedRows;\r\n this.changedRows = \"\";\r\n }\r\n\r\n return saveString;\r\n }\r\n\r\n popUpSave() {\r\n let diff = Math.abs(this.popupEndDateTime.getTime() - this.popupStartDateTime.getTime());\r\n let diffDays = Math.ceil(diff / (1000 * 3600 * 24));\r\n if (diffDays >= 365) {\r\n this.popupDateRangeExceeded = true;\r\n return;\r\n }\r\n else\r\n this.popupDateRangeExceeded = false;\r\n\r\n this.invalidDateMessage = undefined;\r\n this.showPopupSpinner = true;\r\n\r\n if (this.isEditing)\r\n this.updateShift();\r\n else if (this.isSplitting)\r\n this.createSplitShift();\r\n else\r\n this.createShift();\r\n }\r\n\r\n personChange(event) {\r\n this.dataChanged = true;\r\n let ddl = (document.getElementById(event.target.id) as HTMLInputElement);\r\n ddl.style.backgroundColor = '#fdf3e6';\r\n this.updateChangedRows(ddl);\r\n }\r\n\r\n private updateChangedRows(ddl: HTMLInputElement) {\r\n let id = ddl.getAttribute(\"id\");\r\n let scheduleItemId = id.substring(id.indexOf(\"_\") + 1);\r\n let person = id.substring(0, id.indexOf(\"_\"));\r\n\r\n //update data source for sorting\r\n let schedule = this.schedules.find(a => a.scheduleItemID == Number.parseInt(scheduleItemId));\r\n switch (person) {\r\n case \"p1\":\r\n schedule.person1 = this.schedulePeopleList.find(a => a.value == ddl.value).label;\r\n schedule.personId1 = Number.parseInt(ddl.value);\r\n break;\r\n case \"p2\":\r\n schedule.person2 = this.schedulePeopleList.find(a => a.value == ddl.value).label;\r\n schedule.personId2 = Number.parseInt(ddl.value);\r\n break;\r\n case \"p3\":\r\n schedule.person3 = this.schedulePeopleList.find(a => a.value == ddl.value).label;\r\n schedule.personId3 = Number.parseInt(ddl.value);\r\n break;\r\n case \"p4\":\r\n schedule.person4 = this.schedulePeopleList.find(a => a.value == ddl.value).label;\r\n schedule.personId4 = Number.parseInt(ddl.value);\r\n break;\r\n case \"p5\":\r\n schedule.person5 = this.schedulePeopleList.find(a => a.value == ddl.value).label;\r\n schedule.personId5 = Number.parseInt(ddl.value);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n let personNumber = id.substring(0, id.indexOf(\"_\"));\r\n if (this.changedRows.indexOf(scheduleItemId) < 0) {\r\n this.changedRows += scheduleItemId + \"=\" + personNumber + \":\" + ddl.value + \",&\";\r\n }\r\n else {\r\n //12345=P1:100,P2:200,&\r\n let rowStr = this.changedRows.substring(this.changedRows.indexOf(scheduleItemId), this.changedRows.indexOf(\"&\", this.changedRows.indexOf(scheduleItemId)));\r\n let newRow = \"\";\r\n if (rowStr.indexOf(personNumber) > 1) {\r\n let prevPersonId = rowStr.substring(rowStr.indexOf(personNumber + \":\") + 3, rowStr.indexOf(\",\", rowStr.indexOf(personNumber + \":\") + 1) + 1);\r\n newRow = rowStr.replace(personNumber + \":\" + prevPersonId, personNumber + \":\" + ddl.value + \",\");\r\n }\r\n else {\r\n newRow = rowStr.replace(\"=\", \"=\" + personNumber + \":\" + ddl.value + \",\");\r\n }\r\n this.changedRows = this.changedRows.replace(rowStr, newRow);\r\n }\r\n }\r\n\r\n deleteShift() {\r\n if (this.selectedRows == '' || this.isScheduleLocked)\r\n return;\r\n let deleted = this.selectedRows.slice(0, -1).split(\",\");\r\n for (let i = 0; i < deleted.length; i++) {\r\n let row = document.getElementById(\"row_\" + deleted[i]) as HTMLElement;\r\n row.remove();\r\n //Discard all changes from changed rows since the row is deleted\r\n //12345=P1:100,P2:200,&\r\n if (this.changedRows.indexOf(deleted[i] + \"=\") > -1) {\r\n let deleteFromChangedRows = this.changedRows.substring(this.changedRows.indexOf(deleted[i] + \"=\"),\r\n this.changedRows.indexOf(\"&\", this.changedRows.indexOf(deleted[i] + \"=\")) + 1);\r\n this.changedRows = this.changedRows.replace(deleteFromChangedRows, \"\");\r\n }\r\n }\r\n this.deletedRowcount += deleted.length;\r\n this.deletedRows += this.selectedRows;\r\n this.dataChanged = true;\r\n this.selectedRows = \"\";\r\n }\r\n\r\n clearPeople() {\r\n if (this.selectedRows == '' || this.isScheduleLocked)\r\n return;\r\n let selected = this.selectedRows.slice(0, -1).split(\",\");\r\n for (let i = 0; i < selected.length; i++) {\r\n let ddl = document.getElementById(\"p1_\" + selected[i]) as HTMLInputElement;\r\n if (ddl.value != \"-1\") {\r\n ddl.value = \"-1\";\r\n ddl.style.backgroundColor = '#fdf3e6';\r\n this.updateChangedRows(ddl);\r\n }\r\n ddl = document.getElementById(\"p2_\" + selected[i]) as HTMLInputElement;\r\n if (ddl.value != \"-1\") {\r\n ddl.value = \"-1\";\r\n ddl.style.backgroundColor = '#fdf3e6';\r\n this.updateChangedRows(ddl);\r\n }\r\n ddl = document.getElementById(\"p3_\" + selected[i]) as HTMLInputElement;\r\n if (ddl.value != \"-1\") {\r\n ddl.value = \"-1\";\r\n ddl.style.backgroundColor = '#fdf3e6';\r\n this.updateChangedRows(ddl);\r\n }\r\n ddl = document.getElementById(\"p4_\" + selected[i]) as HTMLInputElement;\r\n if (ddl.value != \"-1\") {\r\n ddl.value = \"-1\";\r\n ddl.style.backgroundColor = '#fdf3e6';\r\n this.updateChangedRows(ddl);\r\n }\r\n ddl = document.getElementById(\"p5_\" + selected[i]) as HTMLInputElement;\r\n if (ddl.value != \"-1\") {\r\n ddl.value = \"-1\";\r\n ddl.style.backgroundColor = '#fdf3e6';\r\n this.updateChangedRows(ddl);\r\n }\r\n }\r\n this.dataChanged = true;\r\n }\r\n\r\n rowClick(event) {\r\n if (event.target.id.indexOf(\"td_\") == 0) { //td containing the checkbox clicked, treat as checkbox clicked \r\n this.rowToggleByCellClick(event.target.id.replace(\"td_\", \"\"));\r\n return;\r\n }\r\n if (event.target.id.indexOf(\"cb_\") == 0) //ignore checkbox\r\n return;\r\n let id = event.target.parentNode.id.replace(\"row_\", \"\");\r\n if (id == \"\") //clicked on dropdown\r\n id = event.target.parentNode.parentNode.id.replace(\"row_\", \"\");\r\n let rows = document.getElementsByClassName(\"tblRow\");\r\n let cbAll = document.getElementById(\"cb_All\") as HTMLInputElement;\r\n cbAll.checked = false;\r\n for (let i = 0; i < rows.length; i++) {\r\n let rowId = rows[i].getAttribute(\"id\").replace(\"row_\", \"\");\r\n if (id == rowId) {\r\n let cbSelected = document.getElementById(\"cb_\" + rowId) as HTMLInputElement;\r\n cbSelected.checked = true;\r\n this.selectedRows = id + \",\";\r\n rows[i].classList.add(\"selectedRow\");\r\n continue;\r\n }\r\n rows[i].classList.remove(\"selectedRow\");\r\n let cb = document.getElementById(\"cb_\" + rowId) as HTMLInputElement;\r\n cb.checked = false;\r\n }\r\n this.isMultipleSelected = this.selectedRows.slice(0, -1).split(',').length > 1;\r\n }\r\n\r\n rowToggled(event) {\r\n let id = event.target.id.replace(\"cb_\", \"\");\r\n if (id == \"All\") {\r\n this.selectedRows = \"\";\r\n if (event.currentTarget.checked) {\r\n let rows = document.getElementsByClassName(\"tblRow\");\r\n for (let i = 0; i < rows.length; i++) {\r\n let rowId = rows[i].getAttribute(\"id\").replace(\"row_\", \"\");\r\n rows[i].classList.add(\"selectedRow\");\r\n let cb = document.getElementById(\"cb_\" + rowId) as HTMLInputElement;\r\n cb.checked = true;\r\n this.selectedRows += rowId + \",\";\r\n }\r\n }\r\n else {\r\n let rows = document.getElementsByClassName(\"tblRow\");\r\n for (let i = 0; i < rows.length; i++) {\r\n let rowId = rows[i].getAttribute(\"id\").replace(\"row_\", \"\");\r\n let cb = document.getElementById(\"cb_\" + rowId) as HTMLInputElement;\r\n rows[i].classList.remove(\"selectedRow\");\r\n cb.checked = false;\r\n this.selectedRows = \"\";\r\n }\r\n }\r\n }\r\n else {\r\n let cbAll = document.getElementById(\"cb_All\") as HTMLInputElement;\r\n cbAll.checked = false;\r\n let row = document.getElementById(\"row_\" + id) as HTMLElement;\r\n if (event.currentTarget.checked) {\r\n this.selectedRows += id + \",\";\r\n row.classList.add(\"selectedRow\");\r\n }\r\n else {\r\n this.selectedRows = this.selectedRows.replace(id + \",\", \"\");\r\n row.classList.remove(\"selectedRow\");\r\n }\r\n }\r\n this.isMultipleSelected = this.selectedRows.slice(0, -1).split(',').length > 1;\r\n }\r\n\r\n rowToggleByCellClick(id) {\r\n let cbAll = document.getElementById(\"cb_All\") as HTMLInputElement;\r\n let cb = document.getElementById(\"cb_\" + id) as HTMLInputElement;\r\n cbAll.checked = false;\r\n let row = document.getElementById(\"row_\" + id) as HTMLElement;\r\n if (!cb.checked) {\r\n cb.checked = true;\r\n this.selectedRows += id + \",\";\r\n row.classList.add(\"selectedRow\");\r\n }\r\n else {\r\n cb.checked = false;\r\n this.selectedRows = this.selectedRows.replace(id + \",\", \"\");\r\n row.classList.remove(\"selectedRow\");\r\n }\r\n }\r\n\r\n sort(column) {\r\n this.resetSort(column);\r\n if (column == \"shift\") {\r\n this.sortColumn = \"shift\";\r\n if (this.sortDir_Shift == undefined || this.sortDir_Shift == \"▼\") {\r\n this.schedules = this.schedules.sort(function (a, b) { return (a.scheduleItemName <= b.scheduleItemName) ? -1 : 1; });\r\n this.sortDir_Shift = \"▲\";\r\n } else {\r\n this.schedules = this.schedules.sort(function (a, b) { return (a.scheduleItemName >= b.scheduleItemName) ? -1 : 1; });\r\n this.sortDir_Shift = \"▼\";\r\n }\r\n }\r\n if (column == \"start\") {\r\n this.sortColumn = \"start\";\r\n if (this.sortDir_Start == undefined || this.sortDir_Start == \"▼\") {\r\n this.schedules = this.schedules.sort(function (a, b) { return (a.shiftStart <= b.shiftStart) ? -1 : 1; });\r\n this.sortDir_Start = \"▲\";\r\n } else {\r\n this.schedules = this.schedules.sort(function (a, b) { return (a.shiftStart >= b.shiftStart) ? -1 : 1; });\r\n this.sortDir_Start = \"▼\";\r\n }\r\n }\r\n if (column == \"end\") {\r\n this.sortColumn = \"end\";\r\n if (this.sortDir_End == undefined || this.sortDir_End == \"▼\") {\r\n this.schedules = this.schedules.sort(function (a, b) { return (a.shiftEnd <= b.shiftEnd) ? -1 : 1; });\r\n this.sortDir_End = \"▲\";\r\n } else {\r\n this.schedules = this.schedules.sort(function (a, b) { return (a.shiftEnd >= b.shiftEnd) ? -1 : 1; });\r\n this.sortDir_End = \"▼\";\r\n }\r\n }\r\n if (column == \"p1\") {\r\n this.sortColumn = \"p1\";\r\n if (this.sortDir_P1 == undefined || this.sortDir_P1 == \"▼\") {\r\n this.schedules = this.schedules.sort(function (a, b) {\r\n return ((a.person1 || \"\") <= (b.person1 || \"\")) ? -1 : 1;\r\n });\r\n this.sortDir_P1 = \"▲\";\r\n } else {\r\n this.schedules = this.schedules.sort(function (a, b) {\r\n return ((a.person1 || \"\") >= (b.person1 || \"\")) ? -1 : 1;\r\n });\r\n this.sortDir_P1 = \"▼\";\r\n }\r\n }\r\n if (column == \"p2\") {\r\n this.sortColumn = \"p2\";\r\n if (this.sortDir_P2 == undefined || this.sortDir_P2 == \"▼\") {\r\n this.schedules = this.schedules.sort(function (a, b) {\r\n return ((a.person2 || \"\") <= (b.person2 || \"\")) ? -1 : 1;\r\n });\r\n this.sortDir_P2 = \"▲\";\r\n } else {\r\n this.schedules = this.schedules.sort(function (a, b) {\r\n return ((a.person2 || \"\") >= (b.person2 || \"\")) ? -1 : 1;\r\n });\r\n this.sortDir_P2 = \"▼\";\r\n }\r\n }\r\n if (column == \"p3\") {\r\n this.sortColumn = \"p3\";\r\n if (this.sortDir_P3 == undefined || this.sortDir_P3 == \"▼\") {\r\n this.schedules = this.schedules.sort(function (a, b) {\r\n return ((a.person3 || \"\") <= (b.person3 || \"\")) ? -1 : 1;\r\n });\r\n this.sortDir_P3 = \"▲\";\r\n } else {\r\n this.schedules = this.schedules.sort(function (a, b) {\r\n return ((a.person3 || \"\") >= (b.person3 || \"\")) ? -1 : 1;\r\n });\r\n this.sortDir_P3 = \"▼\";\r\n }\r\n }\r\n if (column == \"p4\") {\r\n this.sortColumn = \"p4\";\r\n if (this.sortDir_P4 == undefined || this.sortDir_P4 == \"▼\") {\r\n this.schedules = this.schedules.sort(function (a, b) {\r\n return ((a.person4 || \"\") <= (b.person4 || \"\")) ? -1 : 1;\r\n });\r\n this.sortDir_P4 = \"▲\";\r\n } else {\r\n this.schedules = this.schedules.sort(function (a, b) {\r\n return ((a.person4 || \"\") >= (b.person4 || \"\")) ? -1 : 1;\r\n });\r\n this.sortDir_P4 = \"▼\";\r\n }\r\n }\r\n if (column == \"p5\") {\r\n this.sortColumn = \"p5\";\r\n if (this.sortDir_P5 == undefined || this.sortDir_P5 == \"▼\") {\r\n this.schedules = this.schedules.sort(function (a, b) {\r\n return ((a.person5 || \"\") <= (b.person5 || \"\")) ? -1 : 1;\r\n });\r\n this.sortDir_P5 = \"▲\";\r\n } else {\r\n this.schedules = this.schedules.sort(function (a, b) {\r\n return ((a.person5 || \"\") >= (b.person5 || \"\")) ? -1 : 1;\r\n });\r\n this.sortDir_P5 = \"▼\";\r\n }\r\n }\r\n }\r\n\r\n resetSort(except) {\r\n if (except != this.sortColumn)\r\n this.sortColumn = undefined;\r\n if (except != this.sortColumn)\r\n this.sortDir_Start = undefined;\r\n if (except != this.sortColumn)\r\n this.sortDir_End = undefined;\r\n if (except != this.sortColumn)\r\n this.sortDir_Shift = undefined;\r\n if (except != this.sortColumn)\r\n this.sortDir_P1 = undefined;\r\n if (except != this.sortColumn)\r\n this.sortDir_P2 = undefined;\r\n if (except != this.sortColumn)\r\n this.sortDir_P3 = undefined;\r\n if (except != this.sortColumn)\r\n this.sortDir_P4 = undefined;\r\n if (except != this.sortColumn)\r\n this.sortDir_P5 = undefined;\r\n }\r\n\r\n popupStartDateChange() {\r\n this.shiftStatusMessage = undefined;\r\n }\r\n\r\n popupEndDateChange() {\r\n this.popupStartDateTime2 = this.popupEndDateTime;\r\n this.shiftStatusMessage = undefined;\r\n }\r\n\r\n popupEndTimeChange() {\r\n this.popupStartTime2 = this.popupEndTime;\r\n this.shiftStatusMessage = undefined;\r\n }\r\n\r\n timeKeyDown($event): void {\r\n let nums = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"Backspace\", \"ArrowRight\", \"ArrowLeft\", \"Delete\"];\r\n if (nums.find(x => x == $event.key) == undefined)\r\n return;\r\n var target = $event.target || $event.srcElement || $event.currentTarget;\r\n let val = target.value;\r\n if ($event.key == \"Backspace\" || $event.key == \"ArrowRight\" || $event.key == \"ArrowLeft\" || $event.key == \"Delete\")\r\n return;\r\n let key = $event.key;\r\n let valid = false;\r\n switch (val.length) {\r\n case 0:\r\n case 5:\r\n if (key == \"0\" || key == \"1\" || key == \"2\")\r\n valid = true;\r\n break;\r\n case 1:\r\n if (val.charAt(0) == \"2\" && (key == \"0\" || key == \"1\" || key == \"2\" || key == \"3\"))\r\n valid = true;\r\n if (val.charAt(0) == \"0\" || val.charAt(0) == \"1\")\r\n valid = true;\r\n break;\r\n case 2:\r\n case 3:\r\n if (key == \"0\" || key == \"1\" || key == \"2\" || key == \"3\" || key == \"4\" || key == \"5\")\r\n valid = true;\r\n break;\r\n default:\r\n valid = true;\r\n break;\r\n }\r\n if (!valid) {\r\n $event.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('window:beforeunload', ['$event'])\r\n beforeUnload(event): string {\r\n // returning true will navigate without confirmation\r\n // returning false will show a confirm dialog before navigating away\r\n\r\n if (this.dataChanged && (this.logOutModalComponent.seconds == undefined ||\r\n this.logOutModalComponent.seconds > 0)) {\r\n event.returnValue = 'You have unsaved changes! If you leave, your changes will be lost.';\r\n return event.returnValue;\r\n } else {\r\n //remove lock\r\n if (this.scheduleGroupId != undefined) {\r\n this.appHttpService.get('modifyScheduleLock', '?scheduleGroupId=' + this.scheduleGroupId + \"&locktype=1\").then(res => {\r\n });\r\n }\r\n }\r\n }\r\n\r\n checkScroll() {\r\n if (this.router.url.indexOf(\"schedu\") < 0)\r\n return;\r\n if (window.pageYOffset >= 230) {\r\n if (this.buttonSection) {\r\n this.buttonSection.classList.add(\"stickyScheduleButtons\");\r\n }\r\n (document.querySelector('#divSchedules') as HTMLElement).style.marginTop = '100px';\r\n } else {\r\n if (this.buttonSection) {\r\n this.buttonSection.classList.remove(\"stickyScheduleButtons\");\r\n }\r\n (document.querySelector('#divSchedules') as HTMLElement).style.marginTop = '0';\r\n }\r\n }\r\n\r\n get searchTitle() {\r\n if (this.dataChanged) {\r\n return \"Either save or cancel your changes before doing another search.\";\r\n }\r\n if (this.scheduleGroupId == undefined || this.EndDateTime == undefined ||\r\n this.EndTime == undefined || this.EndTime == '' || this.StartDateTime == undefined ||\r\n this.StartTime == undefined || this.StartTime == '') {\r\n return \"Please fill out all the required fields\";\r\n }\r\n return 'Search';\r\n }\r\n\r\n get clearPeopleTitle() {\r\n if (this.isScheduleLocked)\r\n return 'Schedule Group is locked, you cannot make any changes.';\r\n if (this.selectedRows == '')\r\n return 'Please select at least one row to clear people.';\r\n else\r\n return 'Clear all the dropdowns for selected rows.';\r\n }\r\n\r\n get deleteTitle() {\r\n if (this.isScheduleLocked)\r\n return 'Schedule Group is locked, you cannot make any changes.';\r\n if (this.selectedRows == '')\r\n return 'Please select at least one row to delete.';\r\n else\r\n return 'Delete selected rows.';\r\n }\r\n\r\n get splitShiftTitle() {\r\n if (this.isScheduleLocked)\r\n return 'Schedule Group is locked, you cannot make any changes.';\r\n\r\n if (this.selectedRows == '')\r\n return 'Please select a shift to split.';\r\n if (this.isMultipleSelected)\r\n return 'Please select only one shift to split.';\r\n if (this.dataChanged == true)\r\n return 'Either save or cancel your changes before splitting a shift.';\r\n else\r\n return 'Split a shift';\r\n }\r\n\r\n get newShiftTitle() {\r\n if (this.isScheduleLocked)\r\n return 'Schedule Group is locked, you cannot make any changes.';\r\n if (this.scheduleOrganizationId == undefined || this.scheduleGroupId == undefined ||\r\n this.EndDateTime == undefined || this.EndTime == undefined || this.EndTime == '' ||\r\n this.StartDateTime == undefined || this.StartTime == undefined || this.StartTime == '')\r\n return \"Please fill out all the required fields.\";\r\n if (this.dataChanged == true)\r\n return 'Either save or cancel your changes before creating a new shift.';\r\n else\r\n return 'New shift';\r\n }\r\n\r\n setRowTitle(shitStatus) {\r\n if (shitStatus == 1)\r\n return \"Overlap\";\r\n if (shitStatus == 2)\r\n return \"Gap\";\r\n return \"\"\r\n }\r\n}\r\n\r\n\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[]}