{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/admin/admin.component.ts","./src/app/admin/admin.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.store.ts","./src/app/auth-callback/auth-callback.component.ts","./src/app/backend.service.ts","./src/app/crossValidations.ts","./src/app/errorpage/errorpage.component.ts","./src/app/errorpage/errorpage.component.html","./src/app/header/header.component.ts","./src/app/header/header.component.html","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/international/international.component.ts","./src/app/international/international.component.html","./src/app/models/cross-validation.ts","./src/app/models/culture-survey-response.ts","./src/app/models/misc-models.ts","./src/app/nav-menu/nav-menu.component.ts","./src/app/nav-menu/nav-menu.component.html","./src/app/notfound/notfound.component.ts","./src/app/notfound/notfound.component.html","./src/app/question-components/choose-multiple/choose-multiple.component.ts","./src/app/question-components/choose-multiple/choose-multiple.component.html","./src/app/question-components/choose-one/choose-one.component.ts","./src/app/question-components/choose-one/choose-one.component.html","./src/app/question-components/currency/currency.component.ts","./src/app/question-components/currency/currency.component.html","./src/app/question-components/email/email.component.ts","./src/app/question-components/email/email.component.html","./src/app/question-components/essay/essay.component.ts","./src/app/question-components/essay/essay.component.html","./src/app/question-components/file/file.component.ts","./src/app/question-components/file/file.component.html","./src/app/question-components/grid/grid.component.ts","./src/app/question-components/grid/grid.component.html","./src/app/question-components/infobar/infobar.component.ts","./src/app/question-components/infobar/infobar.component.html","./src/app/question-components/integer/integer.component.ts","./src/app/question-components/integer/integer.component.html","./src/app/question-components/logo/logo.component.ts","./src/app/question-components/logo/logo.component.html","./src/app/question-components/percent/percent.component.ts","./src/app/question-components/percent/percent.component.html","./src/app/question-components/percentwhole/percentwhole.component.ts","./src/app/question-components/percentwhole/percentwhole.component.html","./src/app/question-components/photo/photo.component.ts","./src/app/question-components/photo/photo.component.html","./src/app/question-components/question/question.component.ts","./src/app/question-components/question/question.component.html","./src/app/question-components/questions/questions.component.ts","./src/app/question-components/questions/questions.component.html","./src/app/question-components/social/social.component.ts","./src/app/question-components/social/social.component.html","./src/app/question-components/submit/submit.component.ts","./src/app/question-components/submit/submit.component.html","./src/app/question-components/textarea/textarea.component.ts","./src/app/question-components/textarea/textarea.component.html","./src/app/question-components/textinput/textinput.component.ts","./src/app/question-components/textinput/textinput.component.html","./src/app/question-components/url/url.component.ts","./src/app/question-components/url/url.component.html","./src/app/reopen/reopen.component.ts","./src/app/reopen/reopen.component.html","./src/app/securityerror/securityerror.component.ts","./src/app/securityerror/securityerror.component.html","./src/app/services/auth-guard.service.ts","./src/app/services/auth.service.ts","./src/app/services/error.service.ts","./src/app/submitfail/submitfail.component.ts","./src/app/submitfail/submitfail.component.html","./src/app/submitted/submitted.component.ts","./src/app/submitted/submitted.component.html","./src/app/survey.reducer.ts","./src/app/survey/survey.component.ts","./src/app/survey/survey.component.html","./src/app/survey/survey.module.ts","./src/app/surveydata/surveydata.component.ts","./src/app/surveydata/surveydata.component.html","./src/app/translate/translate.module.ts","./src/app/translate/translation.loader.ts","./src/environments/environment.ts","./src/main.ts","./src/assets/js/Pendo.js"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-admin',\n templateUrl: './admin.component.html',\n styleUrls: ['./admin.component.scss']\n})\nexport class AdminComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","\r\n
\r\n LongDev\r\n
\r\n Chris-CA \r\n Chris-CB \r\n Jim-CA \r\n Jim-CB \r\n
\r\n\r\n
\r\n Dev\r\n
\r\n Chris\r\n 20190827CA.1 \r\n 20201120CA.0 \r\n 20201215CA.0 \r\n 20190827CB.4 \r\n 20201120CB.0 \r\n 20201215CB.0 \r\n 20201215CB.0 (Austrian) \r\n 20201215CB.0 (3 Country Test) \r\n 20201215CB.0 (20 Country Test) \r\n 20201215CB.0 (45 Country Test) \r\n 202210285CB.0 (US) \r\n
\r\n Jim-CA \r\n Jim-CB \r\n
\r\n\r\n
\r\n QA\r\n
\r\n Chris\r\n 20190827CA.1 \r\n 20200413CA.1 \r\n 20201120CA.0 \r\n 20201215CA.0 \r\n 20190827CB.4 \r\n 20201120CB.0 \r\n 20201215CB.0 \r\n 20201215CB.0 (Oman) \r\n 20201215CB.0 (Iceland) \r\n
\r\n Jim-CA \r\n Jim-CB \r\n
\r\n\r\n","import { Component } from '@angular/core';\r\nimport {\r\n Router\r\n} from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n constructor(private router: Router) {}\r\n };\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { SurveyModule } from './survey/survey.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { AppInsights } from 'applicationinsights-js';\r\nimport { PortalClaimRequired } from './services/auth.service';\r\nimport { GPTWEmployeeOnly } from './services/auth.service';\r\nimport { AuthenticationOnly } from './services/auth.service';\r\nimport { OpenAccess } from './services/auth.service';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { SurveyComponent } from './survey/survey.component';\r\nimport { SurveyDataComponent } from './surveydata/surveydata.component';\r\nimport { AppComponent } from './app.component';\r\nimport { NavMenuComponent } from './nav-menu/nav-menu.component';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\nimport { DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { LocationStrategy, PathLocationStrategy, HashLocationStrategy, APP_BASE_HREF } from '@angular/common';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\nimport { UploadModule } from '@progress/kendo-angular-upload';\r\nimport { TooltipModule } from '@progress/kendo-angular-tooltip';\r\nimport { WindowModule, DialogModule } from '@progress/kendo-angular-dialog';\r\nimport { SubmitComponent } from './question-components/submit/submit.component';\r\nimport { QuestionsComponent } from './question-components/questions/questions.component';\r\nimport { QuestionComponent } from './question-components/question/question.component';\r\nimport { PhotoComponent } from './question-components/photo/photo.component';\r\nimport { EssayComponent } from './question-components/essay/essay.component';\r\nimport { TextinputComponent } from './question-components/textinput/textinput.component';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { EmailComponent } from './question-components/email/email.component';\r\nimport { IntegerComponent } from './question-components/integer/integer.component';\r\nimport { PercentComponent } from './question-components/percent/percent.component';\r\nimport { PercentWholeComponent } from './question-components/percentwhole/percentwhole.component';\r\nimport { SocialComponent } from './question-components/social/social.component';\r\nimport { UrlComponent } from './question-components/url/url.component';\r\nimport { CurrencyComponent } from './question-components/currency/currency.component';\r\nimport { TextareaComponent } from './question-components/textarea/textarea.component';\r\nimport { LogoComponent } from './question-components/logo/logo.component';\r\nimport { ChooseOneComponent } from './question-components/choose-one/choose-one.component';\r\nimport { ChooseMultipleComponent } from './question-components/choose-multiple/choose-multiple.component';\r\nimport { NotfoundComponent } from './notfound/notfound.component';\r\nimport { SecurityerrorComponent } from './securityerror/securityerror.component';\r\nimport { BackendService } from './backend.service';\r\nimport { SurveyReducer } from './survey.reducer';\r\nimport { appStoreProviders } from './app.store';\r\nimport { ErrorpageComponent } from './errorpage/errorpage.component'\r\nimport { DialogsModule } from '@progress/kendo-angular-dialog';\r\nimport { InfobarComponent } from './question-components/infobar/infobar.component';\r\nimport { SubmittedComponent } from './submitted/submitted.component';\r\nimport { SubmitfailComponent } from './submitfail/submitfail.component';\r\nimport { SortableModule } from '@progress/kendo-angular-sortable';\r\nimport { GridComponent } from './question-components/grid/grid.component';\r\nimport { AdminComponent } from './admin/admin.component';\r\nimport { FileComponent } from './question-components/file/file.component';\r\nimport { AuthGuardService } from './services/auth-guard.service';\r\nimport { AuthService } from './services/auth.service';\r\nimport { AuthCallbackComponent } from './auth-callback/auth-callback.component';\nimport { InternationalComponent } from './international/international.component';\nimport { ReopenComponent } from './reopen/reopen.component';\r\nimport { WindowRef } from './services/auth.service';\nimport { NgxTranslateModule } from './translate/translate.module';\n\r\nconst routes: Routes = [\r\n { path: 'auth-callback', component: AuthCallbackComponent },\r\n { path: 'survey/:cultureSurveyId/reopen', component: ReopenComponent, canActivate: [AuthGuardService], data: { access: GPTWEmployeeOnly } },\r\n { path: 'survey/:cultureSurveyId', component: SurveyDataComponent, canActivate: [AuthGuardService], data: { access: PortalClaimRequired }},\r\n { path: 'error/:errorType', component: ErrorpageComponent, data: { access: OpenAccess } },\r\n { path: 'submitted', component: SubmittedComponent, data: { access: PortalClaimRequired }},\r\n { path: 'submitfail', component: SubmitfailComponent, data: { access: PortalClaimRequired }},\r\n { path: 'test', component: AdminComponent, data: { access: GPTWEmployeeOnly } },\r\n { path: 'international', component: InternationalComponent, data: {access: GPTWEmployeeOnly}},\r\n { path: '**', redirectTo: 'error/general' }\r\n]\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HomeComponent,\r\n SurveyDataComponent,\r\n NavMenuComponent,\r\n HomeComponent,\r\n SubmitComponent,\r\n QuestionsComponent,\r\n QuestionComponent,\r\n PhotoComponent,\r\n EssayComponent,\r\n TextinputComponent,\r\n HeaderComponent,\r\n EmailComponent,\r\n IntegerComponent,\r\n PercentComponent,\r\n PercentWholeComponent,\r\n SocialComponent,\r\n UrlComponent,\r\n CurrencyComponent,\r\n TextareaComponent,\r\n LogoComponent,\r\n ChooseOneComponent,\r\n ChooseMultipleComponent,\r\n NotfoundComponent,\r\n SecurityerrorComponent,\r\n ErrorpageComponent,\r\n InfobarComponent,\r\n SubmittedComponent,\r\n SubmitfailComponent,\r\n GridComponent,\r\n AdminComponent,\r\n FileComponent,\r\n AuthCallbackComponent,\r\n InternationalComponent,\r\n ReopenComponent\r\n ],\r\n imports: [\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n HttpClientModule,\r\n FormsModule,\r\n RouterModule.forRoot(routes, { enableTracing: true, onSameUrlNavigation: \"ignore\"\r\n //, relativeLinkResolution: 'legacy'\r\n }),\r\n SurveyModule,\r\n ButtonsModule,\r\n BrowserAnimationsModule,\r\n GridModule,\r\n DateInputsModule,\r\n InputsModule,\r\n DropDownsModule,\r\n UploadModule,\r\n TooltipModule,\r\n SurveyReducer,\r\n DialogsModule,\r\n SortableModule,\r\n NgxTranslateModule\r\n ],\r\n providers: [WindowRef,appStoreProviders, AuthGuardService, AuthService,\r\n { provide: BackendService, useClass: BackendService},\r\n { provide: LocationStrategy, useClass: PathLocationStrategy },\r\n { provide: APP_BASE_HREF, useValue: '/' }],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport {\n createStore,\n Store,\n compose,\n StoreEnhancer\n} from 'redux';\n\nimport { AppState } from './app.state';\nimport {\n surveyReducer as reducer\n} from './survey.reducer';\n\nexport const AppStore = new InjectionToken('App.store');\n\nexport function createAppStore(): Store {\n return createStore(\n reducer,\n //compose(devtools)\n );\n}\n\nexport const appStoreProviders = [\n { provide: AppStore, useFactory: createAppStore }\n];\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from '../services/auth.service'\nimport { UserManager, UserManagerSettings, User } from 'oidc-client';\nimport { Router } from '@angular/router';\nimport { AppInsights } from 'applicationinsights-js';\n\n@Component({\n selector: 'app-auth-callback',\n templateUrl: './auth-callback.component.html',\n styleUrls: ['./auth-callback.component.scss']\n})\nexport class AuthCallbackComponent implements OnInit {\n constructor(public authService: AuthService, private router: Router) {\n }\n\n ngOnInit() {\n this.authService.completeAuthentication();\n }\n\n}\n","import { HttpClient, HttpHeaders, HttpParameterCodec } from '@angular/common/http';\r\nimport { Inject, Injectable, EventEmitter } from '@angular/core';\r\nimport { AuthService } from './services/auth.service'\r\nimport { Store } from 'redux';\r\nimport { AppState } from './app.state';\r\nimport { AppStore } from './app.store';\r\nimport { Router } from '@angular/router';\r\nimport { CultureSurveyQuestion } from './models/culture-survey-question';\r\nimport { CultureSurveyResponse } from './models/culture-survey-response';\r\nimport { ClientPhoto, Document, SaveCultureSurveyRequest, SaveClientDocumentsRequest, DeleteClientDocumentRequest, DeleteClientImageRequest, DeleteClientDocumentResult, DeleteClientImageResult, SaveClientImagesRequest, SaveCultureSurveyResult, ErrorHighlights, ComponentNotifyEvent, CountryInfo, CurrencyInfo, saveStateInfo, postResponseInfo, SaveClientImagesResult, ClientImages } from './models/misc-models';\r\nimport { CrossValidation } from './models/cross-validation';\r\nimport { CrossValidations } from './crossValidations';\r\nimport { DataTransferObject } from './models/data-transfer-object';\r\n//import { getNow } from '@progress/kendo-angular-dateinputs/dist/es2015/util';\r\nimport { ClientAssets, ClientConfiguration, ClientError, ClientErrorResult } from './models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ErrorService } from './services/error.service';\r\n\r\n\r\nconst UPDATE_DATA = 'UPDATE_DATA';\r\n\r\n//const httpOptions = {\r\n// headers: new HttpHeaders({\r\n// 'Content-Type': 'application/json',\r\n// 'Authorization': 'my-auth-token'\r\n// })\r\n//};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class BackendService {\r\n public CLEAR_EVENT: number = 1;\r\n public VALIDATE_CHECK: number = 2;\r\n public IS_SUBMIT: number = 4;\r\n public ERROR_TYPE_ERROR = 1;\r\n public ERROR_TYPE_WARNING = 2;\r\n public ERROR_TYPE_INFO = 3;\r\n\r\n public SURVEY_STATUS_INITIAL = 0;\r\n public SURVEY_STATUS_INPROGRESS = 1;\r\n public SURVEY_STATUS_COMPLETE = 2;\r\n public SURVEY_STATUS_ABANDONED = 3;\r\n public SURVEY_STATUS_OPTEDOUT = 4;\r\n\r\n public surveyId: string;\r\n surveyType: string;\r\n questions: CultureSurveyQuestion[];\r\n surveyTitle: string;\r\n surveyIntroduction: string;\r\n public surveyState: string;\r\n clientAssets: ClientAssets[] = [];\r\n clientDocuments: Document[];\r\n postAPIUrl: string;\r\n loading: boolean;\r\n data: object;\r\n baseUrl: string;\r\n _myErrors: ErrorHighlights[];\r\n public updated: boolean;\r\n public noErrors: boolean;\r\n public opened: boolean;\r\n public showImagePreview: boolean = false;\r\n public showLogoPreview: boolean = false;\r\n public slideImageIndex: number = 0;\r\n public photoFileName: string = \"\";\r\n public photoCaption: string = \"\";\r\n xvalidate: CrossValidation[];\r\n public confirm: boolean;\r\n public errorExplanation: string;\r\n public onChange: EventEmitter = new EventEmitter();\r\n private config: ClientConfiguration = new ClientConfiguration();\r\n public PortalURL: string;\r\n public PortalbaseUrl: string;\r\n public clientId: number;\r\n public engagementId: number;\r\n public countryName: string = \"\";\r\n public get myErrors(): ErrorHighlights[] {\r\n return this._myErrors;\r\n }\r\n public countries: CountryInfo[] = [];\r\n public currencies: CurrencyInfo[] = [];\r\n public globalSectionCountryCode: string;\r\n public ecrCompanyName: string;\r\n public currentStickySection: number = -1;\r\n public userGUIDId: string = \"\";\r\n public saveId: number = 0;\r\n //private topLevelParentResponsesToUpdate: CultureSurveyResponse[] = [];\r\n //private secondLevelParentResponsesToUpdate: CultureSurveyResponse[] = [];\r\n //private childResponsesToUpdate: CultureSurveyResponse[] = [];\r\n //private sendBODGridReloadEvent: boolean = false;\r\n //private sendNumEmpGridReloadEvent: boolean = false;\r\n //private sendDirRepGridReloadEvent: boolean = false;\r\n private numEmpGridVarNames = [\"ca1_DEMO_IndeContributor_COUNTRY\", \"ca1_DEMO_IndeContributorWomen_COUNTRY\", \"ca1_DEMO_IndeContributorMinorities_COUNTRY\", \"ca1_DEMO_MgntFrontSupervisor_COUNTRY\", \"ca1_DEMO_frntLineSupervisorWomen_COUNTRY\", \"ca1_DEMO_frntLineSupervisorMinorities_COUNTRY[?]\", \"ca1_DEMO_MgntMiddleLevel_COUNTRY\", \"ca1_DEMO_midLevelWomen_COUNTRY\", \"ca1_DEMO_midLevelMinorities_COUNTRY\", \"ca1_DEMO_MgntExecLeader_COUNTRY\", \"ca1_DEMO_clevelWomen_COUNTRY\", \"ca1_DEMO_clevelMinorities_COUNTRY\", \"cb_numCEOs_COUNTRY\", \"cb_numCEOsWomen_COUNTRY\", \"cb_numCEOsMinorities_COUNTRY\"];\r\n private saveStateInfo: saveStateInfo[] = [];\r\n private savedClientAssets: ClientAssets[] = [];\r\n public previewCountryCode: string;\r\n public countryCodesToSuppressAnotherGenderNotListed: string[] = [];\r\n public countryListItems: Array<{ countryName: string; countryCode: string }> = [];\r\n //countryListItems_FlagIcon: string;\r\n public maxNumCountriesToShowOnCB: number = 2;\r\n\r\n public countryToShow: string = \"\";\r\n public countryChangeRequestSource: string = \"\";\r\n public waitingForCountryToRender: boolean = false;\r\n public questionErrorToShow: string = \"\";\r\n public suppressTotalEmployeesGridValidation: boolean = false;\r\n\r\n constructor(private http: HttpClient,\r\n @Inject('BASE_URL') _baseUrl: string,\r\n private authService: AuthService,\r\n private router: Router,\r\n @Inject(AppStore) private store: Store,\r\n private translate: TranslateService, private errorService: ErrorService) {\r\n this.baseUrl = _baseUrl;\r\n //this.config = eval(\"window.client_config\");\r\n this.config = authService.config;\r\n this.PortalURL = this.config.PortalURL;\r\n this.PortalbaseUrl = this.config.PortalURL;\r\n }\r\n\r\n consoleLog(value) {\r\n if (this.isConsoleLogging())\r\n console.log(this.getDataString() + \":\" + value);\r\n }\r\n\r\n isConsoleLogging() {\r\n if (localStorage.hasOwnProperty('isConsoleLogging'))\r\n return localStorage.isConsoleLogging == \"true\";\r\n return false;\r\n }\r\n\r\n public SendClientErrorToServer(clientError: ClientError) {\r\n this.http.post(this.baseUrl + 'api/CultureSurvey/PostClientError', clientError, { headers: this.authService.getRequestHeaders() }).\r\n subscribe(result => {\r\n if (result) {\r\n }\r\n }, error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n \r\n\r\n setUpAppState(surveyId: string, dto: DataTransferObject) {\r\n this.surveyId = surveyId;\r\n this.questions = dto.questions;\r\n this.surveyState = dto.surveyStatus;\r\n this.surveyType = dto.surveyType;\r\n this.surveyTitle = dto.surveyTitle;\r\n this.surveyIntroduction = dto.surveyIntroduction;\r\n this.clientAssets = [];\r\n this.clientDocuments = [];\r\n this.userGUIDId = dto.userGUIDId;\r\n this.globalSectionCountryCode = dto.globalSectionCountryCode;\r\n this.ecrCompanyName = dto.ecrCompanyName;\r\n \r\n this.countryListItems = [];\r\n this.countries = [];\r\n this.currencies = [];\r\n\r\n // US-1593 Bypass TotalEmployees/Managerial Grid Validation rule if CB created before 6/72024\r\n // If CB create date <= release date\r\n const createDate = new Date(dto.createdDate);\r\n const releaseDate = new Date('2024-06-07');\r\n if (createDate <= releaseDate)\r\n this.suppressTotalEmployeesGridValidation = true;\r\n\r\n for (const country of dto.countries) {\r\n if (country.countryName == 'Entire Organization') {\r\n this.countryListItems.push({ countryName: country.pageCountryName.trim(), countryCode: country.countryCode + '.svg' });\r\n } else {\r\n this.countries.push(country);\r\n this.countryListItems.push({ countryName: country.pageCountryName.trim(), countryCode: country.countryCode + '.png' });\r\n }\r\n }\r\n \r\n for (const currency of dto.currencies) {\r\n currency.currency = currency.code + \" - \" + currency.pageCurrency;\r\n this.currencies.push(currency);\r\n }\r\n\r\n // customize the link back to the portal for the specific engagement\r\n this.clientId = dto.clientId;\r\n this.engagementId = dto.engagementId;\r\n if (this.engagementId > 0)\r\n this.PortalURL = this.config.PortalURL + \"/certify/engagement/\" + this.engagementId;\r\n\r\n if (dto.clientImages != undefined) {\r\n for (var i = 0; i < dto.clientImages.length; i++) {\r\n let clientAssets: ClientAssets = new ClientAssets();\r\n clientAssets.countryCode = dto.clientImages[i].countryCode;\r\n clientAssets.logoFileName = dto.clientImages[i].logoFileName;\r\n clientAssets.photos = [];\r\n for (var j = 0; j < dto.clientImages[i].photos.length; j++) {\r\n let clientPhoto: ClientPhoto = dto.clientImages[i].photos[j];\r\n let newClientPhoto: ClientPhoto = new ClientPhoto();\r\n newClientPhoto.fileName = clientPhoto.fileName;\r\n newClientPhoto.caption = clientPhoto.caption;\r\n newClientPhoto.primary = clientPhoto.primary;\r\n clientAssets.photos.push(newClientPhoto);\r\n }\r\n this.clientAssets.push(clientAssets);\r\n }\r\n }\r\n\r\n if (dto.clientDocuments != undefined) {\r\n for (var i = 0; i < dto.clientDocuments.length; i++) {\r\n let clientDocument: Document = dto.clientDocuments[i];\r\n let newDocument: Document = new Document();\r\n newDocument.fileName = clientDocument.fileName;\r\n newDocument.name = clientDocument.name;\r\n newDocument.size = clientDocument.size;\r\n newDocument.type = clientDocument.type;\r\n newDocument.variableName = clientDocument.variableName;\r\n this.clientDocuments[i] = newDocument;\r\n }\r\n }\r\n\r\n }\r\n\r\n clearResponseFromAppState(variableName: string) {\r\n var index: number = this.store.getState().responses.findIndex(x => x.variableName == variableName);\r\n if (index != -1) {\r\n this.store.getState().responses.splice(index, 1);\r\n //this.onChange.emit({ name: variableName, value: \"clear\" });\r\n }\r\n }\r\n\r\n SubmitSurvey() {\r\n this.saveAppStateResponses([], this.IS_SUBMIT);\r\n this.confirm = false;\r\n }\r\n\r\n saveAppState(responseToSave: CultureSurveyResponse) {\r\n var responses: CultureSurveyResponse[] = [];\r\n responses.push(responseToSave)\r\n this.saveAppStateResponses(responses);\r\n }\r\n\r\n saveAppStateResponses(responsesToSave: CultureSurveyResponse[], options?: number) {\r\n try {\r\n\r\n if (this.surveyState === \"Complete\") { // As per task#5455\r\n this.consoleLog(\"saveAppState called when surveyState == 'Complete'. Responses won't be persisted which would cause an error.\");\r\n return;\r\n }\r\n\r\n if (responsesToSave.length == 1 && responsesToSave[0] == undefined) {\r\n this.consoleLog(\"ERROR ******** saveAppState passed an undefined!\");\r\n return;\r\n }\r\n\r\n this.saveId++;\r\n\r\n this.consoleLog(this.saveId + \":saveAppStateResponses called\")\r\n\r\n if (responsesToSave) {\r\n for (let resp of responsesToSave)\r\n this.consoleLog(this.saveId + \":\" + resp.variableName + \" to \" + resp.response);\r\n }\r\n\r\n if (options == undefined)\r\n options = 0;\r\n\r\n // If theres no 0 or 1 saveStateInfo's add one. \r\n if (this.saveStateInfo.length <= 1) {\r\n this.consoleLog(this.saveId + \"Adding item to saveStateInfo list with # Items:\" + this.saveStateInfo.length)\r\n let responsesToClear: CultureSurveyResponse[] = [];\r\n if ((options & this.CLEAR_EVENT) != 0)\r\n responsesToClear = responsesToSave;\r\n this.saveStateInfo.push({\r\n responses: responsesToSave,\r\n responsesToClear: responsesToClear,\r\n isSubmit: (options & this.IS_SUBMIT) != 0,\r\n isValidateCheck: (options & this.VALIDATE_CHECK) != 0,\r\n saveId: this.saveId\r\n });\r\n\r\n }\r\n else { // else concatenate onto the 2nd one.\r\n this.consoleLog(this.saveId + \"Queueing up data for next send!\")\r\n if ((options & this.CLEAR_EVENT) != 0)\r\n this.saveStateInfo[1].responsesToClear.concat(responsesToSave);\r\n this.consoleLog(this.saveId + \"responses already queued:\" + this.saveStateInfo[1].responses.length)\r\n this.saveStateInfo[1].responses = this.saveStateInfo[1].responses.concat(responsesToSave); // add responses to responses waiting to be saved\r\n this.consoleLog(this.saveId + \"responses now queued:\" + this.saveStateInfo[1].responses.length)\r\n if ((options & this.IS_SUBMIT) != 0)\r\n this.saveStateInfo[1].isSubmit = true;\r\n if ((options & this.VALIDATE_CHECK) != 0)\r\n this.saveStateInfo[1].isValidateCheck = true;\r\n }\r\n\r\n if (this.saveStateInfo.length > 1) { // if there's only 1 then we're going to process that one. Else we've queued up more data to send\r\n this.consoleLog(this.saveId + \"leaving saveAppStateResponses!\")\r\n return; // were done for now\r\n }\r\n\r\n // Beyond this point the code only operates on this.saveStateInfo[0] data\r\n // Save locally before persisting to the server\r\n for (let response of this.saveStateInfo[0].responses) {\r\n this.store.dispatch({ type: \"UPDATE_DATA\", newResponse: response });\r\n this.consoleLog(this.saveStateInfo[0].saveId + \":updated locally \" + response.variableName + \" to \" + response.response)\r\n }\r\n for (let response of this.saveStateInfo[0].responsesToClear)\r\n this.sendComponentNotifyEvent({ name: response.variableName, value: \"reload\" });\r\n\r\n this.postAPIUrl = this.baseUrl + 'api/CultureSurvey/SaveCultureSurveyData';\r\n\r\n let myPost: SaveCultureSurveyRequest = {\r\n cultureSurveyId: this.surveyId,\r\n isSubmit: (options & this.IS_SUBMIT) != 0,\r\n userGUIDId: this.userGUIDId,\r\n saveId: this.saveStateInfo[0].saveId,\r\n verbosLogging: this.isConsoleLogging(),\r\n responses: responsesToSave\r\n }\r\n\r\n let saveCultureSurveyResult: SaveCultureSurveyResult = new SaveCultureSurveyResult;\r\n saveCultureSurveyResult.errorOccurred = true;\r\n saveCultureSurveyResult.errorMessage = \"A unhandled error has occurred\";\r\n\r\n this.consoleLog(this.saveStateInfo[0].saveId + \":Calling Controller to save state...\");\r\n\r\n this.http.post(this.postAPIUrl, myPost, { headers: this.authService.getRequestHeaders() }).subscribe(data => {\r\n saveCultureSurveyResult = data;\r\n let pRes: postResponseInfo = new postResponseInfo;\r\n pRes.isValidateCheck = this.saveStateInfo[0].isValidateCheck;\r\n pRes.saveId = this.saveStateInfo[0].saveId;\r\n\r\n this.sendComponentNotifyEvent({ name: \"SurveyDataComponent\", value: \"hideSpinner\" });\r\n\r\n if (saveCultureSurveyResult.errorOccurred) {\r\n if (saveCultureSurveyResult.surveyState.toLowerCase() == \"complete\" || saveCultureSurveyResult.surveyState.toLowerCase() == \"abandoned\" || saveCultureSurveyResult.surveyState.toLowerCase() == \"optedout\") { // is the status no longer Created/In Progress?\r\n this.authService.reload();\r\n return;\r\n }\r\n this.consoleLog(\"An error has occurred while saving survey state: \" + saveCultureSurveyResult.errorMessage);\r\n this.errorService.handleErrorNavigation(['/error/general']);\r\n }\r\n\r\n if (this.saveStateInfo[0].isSubmit) {\r\n if (saveCultureSurveyResult.errorOccurred) {\r\n this.router.navigate(['/submitfail/']);\r\n }\r\n else {\r\n this.router.navigate(['/submitted/']);\r\n }\r\n return;\r\n }\r\n\r\n this.processImageChanges(saveCultureSurveyResult.clientImages, pRes.saveId, \"DONTSKIP\");\r\n this.processDocumentChanges(saveCultureSurveyResult.clientDocuments, pRes);\r\n\r\n if (saveCultureSurveyResult.refreshResponses == null) {\r\n this.consoleLog(this.saveStateInfo[0].saveId + \":returned from save. no updates.\")\r\n this.loading = false;\r\n\r\n if (this.saveStateInfo[0].isValidateCheck)\r\n this.sendComponentNotifyEvent({ name: \"SubmitComponent\", value: \"onButtonClickDeferred\" });\r\n }\r\n else {\r\n this.consoleLog(this.saveStateInfo[0].saveId + \":returned from save with updates.\")\r\n\r\n this.processRefreshResponses(saveCultureSurveyResult, pRes);\r\n this.consoleLog(this.saveStateInfo[0].saveId + \":done comparing responses\");\r\n\r\n // clear all state\r\n this.store.dispatch({ type: \"RESET_EVENT\", newResponse: {} });\r\n for (let newResponse of saveCultureSurveyResult.refreshResponses) { // Write in all new responses to state\r\n this.store.dispatch({ type: \"UPDATE_DATA\", newResponse });\r\n //this.consoleLog(this.saveStateInfo[0].saveId + \"UPDATE_DATA:\" + newResponse.variableName + \"|\" + newResponse.response);\r\n }\r\n this.consoleLog(this.saveStateInfo[0].saveId + \":updated all responses in state store\")\r\n\r\n if (pRes.topLevelParentResponsesToUpdate.length == 0 && pRes.secondLevelParentResponsesToUpdate.length == 0)\r\n this.updateChildResponses(pRes);\r\n else {\r\n this.consoleLog(this.saveStateInfo[0].saveId + \":processing topLevelParentResponsesToUpdate\");\r\n for (let response of pRes.topLevelParentResponsesToUpdate) { // update top level branching parent questions first\r\n this.consoleLog(response + \" sending parent reload event.\")\r\n this.sendComponentNotifyEvent({ name: response.variableName, value: \"reload\" });\r\n }\r\n setTimeout(() => {\r\n this.updateSecondLevelParentResponses(pRes);\r\n return;\r\n }, 500)\r\n }\r\n }\r\n\r\n //if (this.surveyState == \"ValidationMode\") {\r\n // this.consoleLog(\"saving App State calling Validation\");\r\n // //this.consoleLog(getNow);\r\n // this.consoleLog(new Date());\r\n // this.Validation();\r\n //}\r\n\r\n for (let response of this.saveStateInfo[0].responses) {\r\n //Special Case code to solve a problem where the currency question wasn't clearing its html text input\r\n // when the question was being hidden. So we just send a message to that component to clear it's state\r\n if (response && response.response.toLowerCase() === \"no\" && response.variableName === \"ca1_GEN_OperateMultipleCountries\")\r\n this.onChange.emit({ name: \"ca1_GEN_worldwideRev\", value: \"clear\" });\r\n if (response && response.variableName.indexOf(\"ca1_GEN_CountryCompanyBrandName\") == 0)\r\n this.RefreshStickyHeader(true);\r\n }\r\n\r\n this.saveStateInfo.shift(); // remove the item we were processing and call saveAppStateResponses with any queued data\r\n\r\n this.consoleLog(\"After removing current item, # items left in saveStateInfo list:\" + this.saveStateInfo.length)\r\n\r\n if (this.saveStateInfo.length > 0) { // Is there more state to save?\r\n let options = 0;\r\n if (this.saveStateInfo[0].isSubmit)\r\n options |= this.IS_SUBMIT;\r\n if (this.saveStateInfo[0].isValidateCheck)\r\n options |= this.VALIDATE_CHECK;\r\n this.consoleLog(this.saveStateInfo[0].saveId + \"Calling saveAppStateResponses with the queued data.\")\r\n let responses: CultureSurveyResponse[] = this.saveStateInfo[0].responses;\r\n this.saveStateInfo.shift(); // remove the item we were processing and call saveAppStateResponses with all queued data\r\n this.saveAppStateResponses(responses, options);\r\n this.consoleLog(\"Returned from calling saveAppStateResponses with the queued data.\")\r\n this.consoleLog(this.saveStateInfo.length + \" items in saveStateInfo list after calling saveAppStateResponses.\")\r\n }\r\n else\r\n this.consoleLog(this.saveId + \"There is no queued data so we are done for now!\")\r\n });\r\n\r\n }\r\n catch (e: any) {\r\n this.sendComponentNotifyEvent({ name: \"SurveyDataComponent\", value: \"hideSpinner\" });\r\n this.consoleLog(\"An error has occurred while saving survey state: \" + e.message);\r\n this.errorService.handleErrorNavigation(['/error/general']);\r\n }\r\n\r\n }\r\n\r\n // Compare the returned responses to the current responses to determine which responses have changed and therefore need reloading\r\n processRefreshResponses(saveCultureSurveyResult: SaveCultureSurveyResult, pRes: postResponseInfo) {\r\n pRes.topLevelParentResponsesToUpdate = [];\r\n pRes.secondLevelParentResponsesToUpdate = [];\r\n pRes.childResponsesToUpdate = [];\r\n pRes.gridNotificationEvents = [];\r\n //pRes.gridNotificationEvents = [];\r\n let curentResponses: CultureSurveyResponse[] = this.store.getState().responses;\r\n for (let newResponse of saveCultureSurveyResult.refreshResponses) {\r\n let responseNeedsUpdating: boolean = true;\r\n\r\n //this.consoleLog(pRes.saveId + \"comparing \" + newResponse.variableName + \"|\" + newResponse.response)\r\n\r\n let foundResponse: CultureSurveyResponse = curentResponses.find(x => x.variableName == newResponse.variableName);\r\n if (foundResponse) {\r\n //this.consoleLog(pRes.saveId + \"foundResponse \" + newResponse.variableName + \": newResponse/existingResponse:\" + newResponse.variableName + \"|\" + newResponse.response)\r\n responseNeedsUpdating = false;\r\n if (newResponse.isValid != foundResponse.isValid || newResponse.isConfidential != foundResponse.isConfidential || newResponse.response != foundResponse.response) {\r\n responseNeedsUpdating = true;\r\n this.consoleLog(pRes.saveId + \":newResponse:\" + newResponse.variableName)\r\n this.consoleLog(pRes.saveId + \":current/new.response \" + foundResponse.response + \"|\" + newResponse.response)\r\n this.consoleLog(pRes.saveId + \":current/new.isConfidential \" + foundResponse.isConfidential + \"|\" + newResponse.isConfidential)\r\n this.consoleLog(pRes.saveId + \":current/new.isValid \" + foundResponse.isValid + \"|\" + newResponse.isValid)\r\n }\r\n }\r\n if (responseNeedsUpdating) {\r\n if (this.isTopLevelParentAnsweredYes(newResponse)) {\r\n pRes.topLevelParentResponsesToUpdate.push(newResponse)\r\n this.consoleLog(pRes.saveId + \":\" + newResponse.variableName + \" *** Added existing to TopLevel Parent collection.\")\r\n }\r\n else\r\n if (this.isSecondLevelParentAnsweredYes(newResponse)) {\r\n pRes.secondLevelParentResponsesToUpdate.push(newResponse)\r\n this.consoleLog(pRes.saveId + \":\" + newResponse.variableName + \" *** Added existing to SecondLevel Parent collection.\")\r\n }\r\n else {\r\n if (newResponse.variableName.indexOf(\"cb_numBOD\") == 0) {\r\n if (!pRes.gridNotificationEvents.includes(\"BOD\"))\r\n pRes.gridNotificationEvents.push(\"BOD\")\r\n }\r\n else {\r\n\r\n //ca1_DEMO_IndeContributor\r\n\r\n //ca1_DEMO_MgntFrontSupervisor\r\n //ca1_DEMO_frntLineSupervisor\r\n\r\n //ca1_DEMO_MgntMiddleLevel\r\n //ca1_DEMO_midLevelWomen\r\n //ca1_DEMO_midLevelMinorities\r\n\r\n //ca1_DEMO_MgntExecLeader\r\n //ca1_DEMO_clevelWomen\r\n //ca1_DEMO_clevelMinorities\r\n\r\n //cb_numCEOs\r\n\r\n //cb_numCEODirectReports\r\n\r\n\r\n if (newResponse.variableName.indexOf(\"cb_numCEOs\") == 0\r\n || newResponse.variableName.indexOf(\"ca1_DEMO_IndeContributor\") == 0\r\n || newResponse.variableName.indexOf(\"ca1_DEMO_MgntFrontSupervisor\") == 0\r\n || newResponse.variableName.indexOf(\"ca1_DEMO_frntLineSupervisor\") == 0\r\n || newResponse.variableName.indexOf(\"ca1_DEMO_MgntMiddleLevel\") == 0\r\n || newResponse.variableName.indexOf(\"ca1_DEMO_midLevelWomen\") == 0\r\n || newResponse.variableName.indexOf(\"ca1_DEMO_midLevelMinorities\") == 0\r\n || newResponse.variableName.indexOf(\"ca1_DEMO_MgntExecLeader\") == 0\r\n || newResponse.variableName.indexOf(\"ca1_DEMO_clevelWomen\") == 0\r\n || newResponse.variableName.indexOf(\"ca1_DEMO_clevelMinorities\") == 0) {\r\n let countryCode = this.ExtractCountryCode(newResponse.variableName);\r\n if (!pRes.gridNotificationEvents.includes(\"NOE|\" + countryCode))\r\n pRes.gridNotificationEvents.push(\"NOE|\" + countryCode)\r\n }\r\n else {\r\n if (newResponse.variableName.indexOf(\"cb_numCEODirectReports\") == 0) {\r\n let countryCode = this.ExtractCountryCode(newResponse.variableName);\r\n if (!pRes.gridNotificationEvents.includes(\"DR|\" + countryCode))\r\n pRes.gridNotificationEvents.push(\"DR|\" + countryCode)\r\n }\r\n else {\r\n pRes.childResponsesToUpdate.push(newResponse)\r\n this.consoleLog(pRes.saveId + \":\" + newResponse.variableName + \" *** Added existing to childResponses collection.\")\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n processDocumentChanges(clientDocuments: Document[], pRes: postResponseInfo) {\r\n this.consoleLog(pRes.saveId + \":processDocumentChanges\")\r\n let clientDocumentChanged: boolean = clientDocuments.length != this.clientDocuments.length;\r\n if (!clientDocumentChanged) {\r\n for (var i = 0; i < this.clientDocuments.length; i++) {\r\n if (this.clientDocuments[i].fileName != clientDocuments[i].fileName ||\r\n this.clientDocuments[i].name != clientDocuments[i].name ||\r\n this.clientDocuments[i].size != clientDocuments[i].size ||\r\n this.clientDocuments[i].variableName != clientDocuments[i].variableName) {\r\n clientDocumentChanged = true;\r\n this.consoleLog(pRes.saveId + \":client document \" + i + \" changed.\")\r\n this.consoleLog(pRes.saveId + \":local.fileName: \" + this.clientDocuments[i].fileName + \" server.fileName:\" + clientDocuments[i].fileName);\r\n this.consoleLog(pRes.saveId + \":local.name: \" + this.clientDocuments[i].name + \" server.name:\" + clientDocuments[i].name);\r\n this.consoleLog(pRes.saveId + \":local.size: \" + this.clientDocuments[i].size + \" server.size:\" + clientDocuments[i].size);\r\n this.consoleLog(pRes.saveId + \":local.variableName: \" + this.clientDocuments[i].variableName + \" server.variableName:\" + clientDocuments[i].variableName);\r\n }\r\n }\r\n }\r\n if (clientDocumentChanged) {\r\n this.clientDocuments = [];\r\n for (var i = 0; i < clientDocuments.length; i++) {\r\n let clientDocument: Document = new Document();\r\n clientDocument.fileName = clientDocuments[i].fileName;\r\n clientDocument.name = clientDocuments[i].name;\r\n clientDocument.size = clientDocuments[i].size;\r\n clientDocument.variableName = clientDocuments[i].variableName;\r\n this.clientDocuments[i] = clientDocument;\r\n }\r\n this.consoleLog(pRes.saveId + \":sendComponentNotify PhotoComponent reload\")\r\n this.sendComponentNotifyEvent({ name: \"FileComponent\", value: \"reload\" });\r\n }\r\n else\r\n this.consoleLog(pRes.saveId + \":no document differences\");\r\n }\r\n\r\n processImageChanges(clientImages: ClientImages[], saveId: number, countryCodeToSkip: string) {\r\n this.consoleLog(saveId + \":processImageChanges\")\r\n for (var i = 0; i < clientImages.length; i++) {\r\n let serverClientImages = clientImages[i];\r\n if (countryCodeToSkip == serverClientImages.countryCode) // are we skipping any particular countryCode?\r\n continue;\r\n let localClientAssets: ClientAssets = this.clientAssets.find(x => x.countryCode == clientImages[i].countryCode);\r\n if (localClientAssets != null) {\r\n if (localClientAssets.logoFileName != serverClientImages.logoFileName) {\r\n this.consoleLog(saveId + \":countryCode\" + localClientAssets.countryCode + \":local logoFileName:\" + localClientAssets.logoFileName + \" server.logoFileName:\" + serverClientImages.logoFileName);\r\n localClientAssets.logoFileName = serverClientImages.logoFileName;\r\n this.consoleLog(saveId + \":countryCode\" + localClientAssets.countryCode + \":sendComponentNotify LogoComponent reload\")\r\n this.sendComponentNotifyEvent({ name: \"LogoComponent\", value: \"reload\" });\r\n }\r\n else\r\n this.consoleLog(saveId + \":countryCode\" + localClientAssets.countryCode + \":no logo difference\");\r\n // if the number of images are the same and then if every one is identical we can skip the notifications. Else notify them ALL!\r\n let clientPhotosChanged: boolean = serverClientImages.photos.length != localClientAssets.photos.length;\r\n if (!clientPhotosChanged) { // We only need to go through each one if the number of photos is equal\r\n for (let localPhoto of this.clientAssets[i].photos) {\r\n let serverPhoto: ClientPhoto = serverClientImages.photos.find(x => x.fileName == localPhoto.fileName);\r\n if (serverPhoto != null) {\r\n if (localPhoto.caption != serverPhoto.caption || localPhoto.fileName != serverPhoto.fileName || localPhoto.primary != serverPhoto.primary) {\r\n clientPhotosChanged = true;\r\n this.consoleLog(saveId + \":countryCode\" + localClientAssets.countryCode + \":client photo \" + i + \" changed.\")\r\n this.consoleLog(saveId + \":countryCode\" + localClientAssets.countryCode + \":local.caption: \" + localPhoto.caption + \" server.caption:\" + serverPhoto.caption);\r\n this.consoleLog(saveId + \":countryCode\" + localClientAssets.countryCode + \":local.primary: \" + localPhoto.primary + \" server.primary:\" + serverPhoto.primary);\r\n }\r\n }\r\n else {\r\n clientPhotosChanged = true;\r\n this.consoleLog(saveId + \":countryCode\" + localClientAssets.countryCode + \":localPhoto:\" + localPhoto.fileName + \" not found. clientPhotoChanged = true\")\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (clientPhotosChanged) { // Update ALL of the local photos/captions with what's on the server\r\n localClientAssets.photos = [];\r\n for (var i = 0; i < serverClientImages.photos.length; i++) {\r\n localClientAssets.photos.push(serverClientImages.photos[i]);\r\n }\r\n this.consoleLog(saveId + \":countryCode\" + localClientAssets.countryCode + \":sendComponentNotify PhotoComponent reload\")\r\n this.sendComponentNotifyEvent({ name: \"PhotoComponent\", value: \"reload\" });\r\n }\r\n else\r\n this.consoleLog(saveId + \":countryCode\" + localClientAssets.countryCode + \":no photo differences\");\r\n }\r\n else {// if here someone in another browser has added logo/images/captions that this browser doesn't have\r\n let clientAssets: ClientAssets = new ClientAssets();\r\n clientAssets.countryCode = serverClientImages.countryCode;\r\n clientAssets.logoFileName = serverClientImages.logoFileName;\r\n clientAssets.photos = serverClientImages.photos;\r\n this.clientAssets.push(clientAssets);\r\n this.sendComponentNotifyEvent({ name: \"PhotoComponent\", value: \"reload\" });\r\n this.sendComponentNotifyEvent({ name: \"LogoComponent\", value: \"reload\" });\r\n }\r\n }\r\n }\r\n\r\n updateChildResponses(pRes: postResponseInfo) {\r\n this.consoleLog(pRes.saveId + \":processing child responses\");\r\n for (let response of pRes.childResponsesToUpdate) {\r\n this.consoleLog(pRes.saveId + \":\" + response.variableName + \" sending response reload event.\")\r\n this.sendComponentNotifyEvent({ name: response.variableName, value: \"reload\" });\r\n }\r\n\r\n for (let event of pRes.gridNotificationEvents) {\r\n this.sendComponentNotifyEvent({ name: event, value: \"reload\" });\r\n }\r\n\r\n if (pRes.isValidateCheck)\r\n this.sendComponentNotifyEvent({ name: \"SubmitComponent\", value: \"onButtonClickDeferred\" });\r\n }\r\n\r\n updateSecondLevelParentResponses(pRes: postResponseInfo) {\r\n this.consoleLog(pRes.saveId + \":processing top level parent responses\");\r\n for (let response of pRes.secondLevelParentResponsesToUpdate) {\r\n this.consoleLog(pRes.saveId + \":\" + response.variableName + \" sending second level parent reload event.\")\r\n this.sendComponentNotifyEvent({ name: response.variableName, value: \"reload\" });\r\n }\r\n setTimeout(() => {\r\n this.updateChildResponses(pRes);\r\n return;\r\n }, 500)\r\n }\r\n\r\n isTopLevelParentAnsweredYes(response: CultureSurveyResponse) {\r\n if (response.variableName.indexOf(\"ca1_GEN_OperateMultipleCountries\") == 0 && response.response == \"Yes\")\r\n return true;\r\n if (response.variableName.indexOf(\"cb_isSubsidiary\") == 0 && response.response == \"Yes\")\r\n return true;\r\n return false;\r\n }\r\n\r\n isSecondLevelParentAnsweredYes(response: CultureSurveyResponse) {\r\n if (response.variableName.indexOf(\"ca1_GEN_parentOrgPubliclyTraded\") == 0 && response.response == \"Yes\")\r\n return true;\r\n if (response.variableName.indexOf(\"ca1_GEN_OperateDifferentCompanyName_COUNTRY\") == 0 && response.response == \"Yes\")\r\n return true;\r\n if (response.variableName.indexOf(\"ca1_GEN_OperateDifferentIndustry_COUNTRY\") == 0 && response.response == \"Yes\")\r\n return true;\r\n return false;\r\n }\r\n\r\n isBranchingParentAnsweredNo(response: CultureSurveyResponse) {\r\n if (response.variableName.indexOf(\"ca1_GEN_OperateMultipleCountries\") == 0 && response.response == \"No\")\r\n return true;\r\n if (response.variableName.indexOf(\"cb_isSubsidiary\") == 0 && response.response == \"No\")\r\n return true;\r\n if (response.variableName.indexOf(\"ca1_GEN_parentOrgPubliclyTraded\") == 0 && response.response == \"No\")\r\n return true;\r\n if (response.variableName.indexOf(\"ca1_GEN_OperateDifferentCompanyName_COUNTRY\") == 0 && response.response == \"No\")\r\n return true;\r\n if (response.variableName.indexOf(\"ca1_GEN_OperateDifferentIndustry_COUNTRY\") == 0 && response.response == \"No\")\r\n return true;\r\n return false;\r\n }\r\n\r\n getDataString() {\r\n var d = new Date();\r\n var curr_hour = d.getHours();\r\n var curr_min = d.getMinutes();\r\n var curr_sec = d.getSeconds();\r\n return (curr_hour + \":\" + curr_min + \":\" + curr_sec);\r\n }\r\n\r\n deleteClientDocumentFromBlobStorage(fileName: string) {\r\n this.consoleLog(\"deleteClientDocumentFromBlobStorage called\");\r\n this.postAPIUrl = this.baseUrl + 'api/CultureSurvey/DeleteClientDocumentFromBlobStorage';\r\n this.loading = true;\r\n\r\n let myPost: DeleteClientDocumentRequest = {\r\n cultureSurveyId: this.surveyId,\r\n fileName: fileName\r\n }\r\n\r\n this.http.post(this.postAPIUrl, myPost, { headers: this.authService.getRequestHeaders() })\r\n .subscribe(data => {\r\n this.data = data;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n deleteClientImageFromBlobStorage(fileName: string) {\r\n this.consoleLog(\"deleteClientImageFromBlobStorage called\");\r\n this.postAPIUrl = this.baseUrl + 'api/CultureSurvey/DeleteClientImageFromBlobStorage';\r\n this.loading = true;\r\n\r\n let myPost: DeleteClientImageRequest = {\r\n cultureSurveyId: this.surveyId,\r\n fileName: fileName\r\n }\r\n\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': this.authService.getAuthorizationHeaderValue() });\r\n\r\n this.http.post(this.postAPIUrl, myPost, { headers: headers })\r\n .subscribe(data => {\r\n this.data = data;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n saveClientDocuments(documents: Document[], variableName: string) {\r\n this.consoleLog(\"saveClientDocuments called\");\r\n\r\n // go through all the current documents and remove any that share the variableName\r\n let documentsToSave: Document[] = [];\r\n if (this.clientDocuments != undefined) {\r\n for (var i = 0; i < this.clientDocuments.length; i++) {\r\n if (this.clientDocuments[i].variableName != variableName)\r\n documentsToSave.push(this.clientDocuments[i]);\r\n }\r\n }\r\n\r\n for (var i = 0; i < documents.length; i++) {\r\n documentsToSave.push(documents[i]);\r\n }\r\n\r\n this.clientDocuments = documentsToSave;\r\n\r\n this.postAPIUrl = this.baseUrl + 'api/CultureSurvey/SaveClientDocuments';\r\n this.loading = true;\r\n\r\n let myPost: SaveClientDocumentsRequest = {\r\n cultureSurveyId: this.surveyId,\r\n clientDocuments: this.clientDocuments,\r\n userGUIDId: this.userGUIDId\r\n }\r\n\r\n this.http.post(this.postAPIUrl, myPost, { headers: this.authService.getRequestHeaders() })\r\n .subscribe(data => {\r\n this.data = data;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n\r\n saveClientPhotos(countryCode: string, photos: ClientPhoto[]) {\r\n let clientAssets: ClientAssets = this.clientAssets.find(x => x.countryCode == countryCode);\r\n if (clientAssets != null) {\r\n clientAssets.photos = photos;\r\n this.saveClientImages(clientAssets);\r\n }\r\n else {\r\n let clientAssets: ClientAssets = new ClientAssets();\r\n clientAssets.countryCode = countryCode;\r\n clientAssets.logoFileName = \"\";\r\n clientAssets.photos = photos;\r\n this.clientAssets.push(clientAssets)\r\n this.saveClientImages(clientAssets);\r\n }\r\n }\r\n\r\n saveLogo(countryCode: string, logoFileName: string) {\r\n let clientAssets: ClientAssets = this.clientAssets.find(x => x.countryCode == countryCode);\r\n if (clientAssets != null) {\r\n clientAssets.logoFileName = logoFileName;\r\n this.saveClientImages(clientAssets);\r\n }\r\n else {\r\n let clientAssets: ClientAssets = new ClientAssets();\r\n clientAssets.countryCode = countryCode;\r\n clientAssets.logoFileName = logoFileName;\r\n clientAssets.photos = [];\r\n this.clientAssets.push(clientAssets)\r\n this.saveClientImages(clientAssets);\r\n }\r\n }\r\n\r\n saveClientImages(clientAssets: ClientAssets) {\r\n this.consoleLog(\"saveClientImages called\");\r\n\r\n // If theres no 0 or 1 saveImageStateInfo's add one.\r\n if (this.savedClientAssets.length <= 1) {\r\n this.consoleLog(\"Adding item to savedClientAssets list with # Items:\" + this.savedClientAssets.length)\r\n this.savedClientAssets.push(clientAssets);\r\n }\r\n else { // else concatenate onto the 2nd one.\r\n this.consoleLog(\"Queueing up savedClientAssets for next send!\")\r\n this.savedClientAssets[0] = clientAssets\r\n }\r\n\r\n if (this.savedClientAssets.length > 1) { // if there's only 1 then we're going to process that one. Else we've queued up more data to send\r\n this.consoleLog(this.saveId + \"leaving saveClientImages!\")\r\n return; // were done for now\r\n }\r\n\r\n this.consoleLog(\"saveClientImages Uploading this data\");\r\n this.consoleLog(\"countryCode:\" + this.savedClientAssets[0].countryCode)\r\n this.consoleLog(\"logoFileName:\" + this.savedClientAssets[0].logoFileName)\r\n for (var i = 0; i < this.savedClientAssets[0].photos.length; i++) {\r\n this.consoleLog(\"Filename|Caption:\" + this.savedClientAssets[0].photos[i].fileName + \"|\" + this.savedClientAssets[0].photos[i].caption)\r\n }\r\n\r\n //let ca: ClientAssets = this.clientAssets.find(x => x.countryCode == clientAssets.countryCode);\r\n //if (ca != null) {\r\n // this.consoleLog(\"LOCAL CA countryCode:\" + ca.countryCode)\r\n // this.consoleLog(\"LOCAL CA logoFileName:\" + ca.logoFileName)\r\n // for (var i = 0; i < ca.photos.length; i++) {\r\n // this.consoleLog(\"LOCAL CA Filename|Caption:\" + ca.photos[i].fileName + \"|\" + ca.photos[i].caption)\r\n // }\r\n //}\r\n //else {\r\n // this.consoleLog(\"Couldn't find LOCAL CA for countryCode:\" + clientAssets.countryCode)\r\n //}\r\n\r\n this.postAPIUrl = this.baseUrl + 'api/CultureSurvey/SaveClientImages';\r\n this.loading = true;\r\n\r\n let myPost: SaveClientImagesRequest = {\r\n countryCode: clientAssets.countryCode,\r\n cultureSurveyId: this.surveyId,\r\n clientPhotos: this.savedClientAssets[0].photos,\r\n logoFileName: this.savedClientAssets[0].logoFileName,\r\n userGUIDId: this.userGUIDId\r\n }\r\n\r\n let saveClientImagesResult: SaveClientImagesResult = new SaveClientImagesResult;\r\n\r\n this.http.post(this.postAPIUrl, myPost, { headers: this.authService.getRequestHeaders() })\r\n .subscribe(data => {\r\n saveClientImagesResult = data;\r\n this.loading = false;\r\n\r\n if (saveClientImagesResult.errorOccurred) {\r\n if (saveClientImagesResult.surveyState == this.SURVEY_STATUS_COMPLETE || saveClientImagesResult.surveyState == this.SURVEY_STATUS_ABANDONED || saveClientImagesResult.surveyState == this.SURVEY_STATUS_OPTEDOUT) { // is the status no longer Created/In Progress?\r\n this.authService.reload();\r\n return;\r\n }\r\n this.consoleLog(\"An error has occurred while saving ClientImages: \" + saveClientImagesResult.errorMessage);\r\n this.errorService.handleErrorNavigation(['/error/general']);\r\n }\r\n\r\n this.processImageChanges(saveClientImagesResult.clientImages, 0, saveClientImagesResult.countryCode);\r\n this.savedClientAssets.shift(); // remove the item we were processing and call saveClientImages with any queued data\r\n this.consoleLog(\"After removing current item, # items left in savedClientAssets list:\" + this.savedClientAssets.length)\r\n\r\n if (this.savedClientAssets.length > 0) { // Is there more state to save?\r\n this.consoleLog(\"Calling saveClientImages with the queued data.\")\r\n let countryCodeToCallWith = this.savedClientAssets[0].countryCode;\r\n this.savedClientAssets.shift(); // remove the item we were processing and call saveAppStateResponses with all queued data\r\n let clientAssets: ClientAssets = this.clientAssets.find(x => x.countryCode == countryCodeToCallWith);\r\n if (clientAssets != null)\r\n this.saveClientImages(clientAssets);\r\n else\r\n this.consoleLog(\"Couldn't get current clientAssets to call with. CC:\" + countryCodeToCallWith)\r\n this.consoleLog(\"Returned from calling saveClientImages with the queued data.\")\r\n this.consoleLog(this.savedClientAssets.length + \" items in savedClientAssets list after calling saveClientImages.\")\r\n }\r\n else\r\n this.consoleLog(this.saveId + \"There is no queued data so we are done for now!\")\r\n });\r\n }\r\n\r\n getClientDocuments(variableName: string) {\r\n let returnedDocuments: Document[] = [];\r\n if (this.clientDocuments != undefined) {\r\n for (var i = 0; i < this.clientDocuments.length; i++) {\r\n if (this.clientDocuments[i].variableName == variableName)\r\n returnedDocuments.push(this.clientDocuments[i]);\r\n }\r\n }\r\n return returnedDocuments;\r\n }\r\n\r\n getPhotos(countryCode: string): ClientPhoto[] {\r\n let clientAssets: ClientAssets = this.clientAssets.find(x => x.countryCode == countryCode);\r\n if (clientAssets != null) {\r\n return clientAssets.photos;\r\n }\r\n let returnedPhotos: ClientPhoto[] = [];\r\n return returnedPhotos;\r\n }\r\n\r\n getSurveyType() {\r\n return this.surveyType;\r\n }\r\n\r\n getSurveyState() {\r\n return this.surveyState;\r\n }\r\n\r\n getLogo(countryCode: string) {\r\n let clientAssets: ClientAssets = this.clientAssets.find(x => x.countryCode == countryCode);\r\n if (clientAssets != null) {\r\n return clientAssets.logoFileName;\r\n }\r\n return \"\";\r\n }\r\n\r\n getQuestions() {\r\n if (typeof this.questions != 'undefined') {\r\n return this.questions;\r\n }\r\n else {\r\n this.errorService.handleErrorNavigation(['/error/general']);\r\n }\r\n }\r\n\r\n // If any of the grid's child questions have a response and that response is marked as confidential then return true\r\n determineGridConfidential(question: CultureSurveyQuestion) {\r\n let result = false;\r\n let responses: CultureSurveyResponse[] = this.store.getState().responses;\r\n // look through all the grid's responses\r\n for (var i = 0; i < question.childQuestions.length; i++) {\r\n for (var j = 0; j < question.childQuestions[i].childQuestions.length; j++) {\r\n if (!result) { // only continue if we haven't found an isConfidential set to true\r\n let variableName: string = question.childQuestions[i].childQuestions[j].variableName;\r\n let reponse: CultureSurveyResponse = responses.find(x => x.variableName == variableName);\r\n if (reponse && reponse.isConfidential)\r\n result = true;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n getResponse(variableName: string) {\r\n return this.store.getState().responses.find(x => x.variableName == variableName);\r\n }\r\n\r\n sendComponentNotifyEvent(event: ComponentNotifyEvent) {\r\n this.onChange.emit(event);\r\n }\r\n\r\n getSurveyId() {\r\n return this.surveyId\r\n }\r\n\r\n getSurveyTitle() {\r\n return this.surveyTitle;\r\n }\r\n\r\n ExtractCountryCode(str: string): string {\r\n var result: string = \"\";\r\n let index = str.indexOf(\"_COUNTRY[\");\r\n if (index >= 0)\r\n result = str.substring(index + 9, index + 11);\r\n return result;\r\n }\r\n\r\n\r\n Validation() {\r\n this.consoleLog(\"validation called\");\r\n this._myErrors = [];\r\n this.resetErrorColor(\"company-logo\");\r\n this.resetErrorColor(\"company-images\");\r\n\r\n //this.errorExplanation = \"The following responses are missing or invalid. Click each error below to view the question that requires correction. The information icon next to each question provides details on what we're looking for in a valid response.\";\r\n this.translate.get('cb-validationmessage-missingorinvalid').subscribe((data: any) => {\r\n this.errorExplanation = data;\r\n });\r\n\r\n this.RequiredandSingleFieldValidation();\r\n\r\n //if (this.getSurveyType() == \"CB\") {\r\n // this.ImagesValidation();\r\n //}\r\n\r\n if (this.getSurveyType() == \"CB\") {\r\n if (this._myErrors.length == 0) {\r\n this.CrossFieldValidation();\r\n }\r\n }\r\n\r\n if (this._myErrors.length == 0) {\r\n this.noErrors = true;\r\n this.opened = false;\r\n }\r\n else {\r\n this.noErrors = false;\r\n //this.opened = true;\r\n this.confirm = false;\r\n }\r\n }\r\n\r\n\r\n //ImagesValidation() {\r\n\r\n // for (var i = 0; i < this.clientAssets.length; i++) {\r\n\r\n // // Only force a logo on Logo at Top of CB. Logo's are optional within the country sections.\r\n // if (this.clientAssets[i].countryCode == \"\" && this.clientAssets[i].logoFileName.length == 0) {\r\n // let newError = new ErrorHighlights;\r\n // newError.errorText = \"Required: Logo upload\";\r\n // newError.highlightVars = [\"company-logo\"];\r\n // this._myErrors.push(newError);\r\n // }\r\n\r\n // let isCountrySection: boolean = this.clientAssets[i].countryCode != \"\";\r\n // // Country Sections with 0 photos are ok so we can skip further validation\r\n // if (isCountrySection && this.clientAssets[i].photos.length == 0)\r\n // continue;\r\n\r\n // if (this.clientAssets[i].photos.length < 5) {\r\n // let newError = new ErrorHighlights;\r\n // newError.errorText = \"Required: At least 5 profile images.\";\r\n // newError.highlightVars = [\"company-images\"];\r\n // newError.hoverText = \"\";\r\n // this._myErrors.push(newError);\r\n // }\r\n\r\n // let requiredErrorsCount: number = 0;\r\n // let invalidErrorsCount: number = 0;\r\n\r\n // for (let thisPhoto of this.clientAssets[i].photos) {\r\n // // Check for missing captions\r\n // if (thisPhoto.caption.length == 0 && requiredErrorsCount == 0) {\r\n // // Only capture the first instance of this error\r\n // let newError = new ErrorHighlights;\r\n // newError.errorText = \"Required: Captions for each profile images.\";\r\n // newError.highlightVars = [\"company-images\"];\r\n // newError.hoverText = \"\";\r\n // this._myErrors.push(newError);\r\n // requiredErrorsCount++;\r\n // }\r\n // // Check for over long captions\r\n // if (thisPhoto.caption.length > 120 && invalidErrorsCount == 0) {\r\n // // Only capture the first instance of this error\r\n // let newError = new ErrorHighlights;\r\n // newError.errorText = \"Invalid: Captions should not exceed 120 characters.\";\r\n // newError.highlightVars = [\"company-images\"];\r\n // newError.hoverText = \"\";\r\n // this._myErrors.push(newError);\r\n // invalidErrorsCount++;\r\n // }\r\n // }\r\n //}\r\n\r\n //}\r\n\r\n RequiredandSingleFieldValidation() {\r\n let myQuestions = this.getQuestions();\r\n\r\n const firstStickyHeader: number = myQuestions.findIndex(x => x.isStickyHeader == true);\r\n if (firstStickyHeader >= 0 && this.countryListItems) {\r\n let globalQS = myQuestions[firstStickyHeader];\r\n let sortedQuestions = myQuestions.filter((item, index) => { return index != firstStickyHeader });\r\n sortedQuestions = sortedQuestions.sort((a: any, b: any) => { return a.displayText.localeCompare(b.displayText); });\r\n sortedQuestions.unshift(globalQS);\r\n\r\n let countryName, countryCodeIndex = -2;\r\n\r\n for (let question of sortedQuestions) {\r\n countryCodeIndex++;\r\n if (countryCodeIndex >= 0) {\r\n countryName = this.countries[countryCodeIndex].countryName;\r\n }\r\n else {\r\n countryName = 'Entire Organization';\r\n }\r\n\r\n if (question.childQuestions.length == 0) {\r\n //let numErrors = this._myErrors.length;\r\n this.ValidateQuestion(question, countryName);\r\n //if (numErrors != this._myErrors.length)\r\n // this.consoleLog(\"this._myErrors.length:\" + this._myErrors.length);\r\n }\r\n else {\r\n this.ValidateChildPath(question.childQuestions, countryName);\r\n }\r\n }\r\n } else {\r\n this.ValidateChildPath(myQuestions);\r\n }\r\n }\r\n\r\n ValidateChildPath(qstns: CultureSurveyQuestion[], countryName: string = \"\") {\r\n for (let qstn of qstns) {\r\n if (qstn.childQuestions.length == 0) {\r\n //let numErrors = this._myErrors.length;\r\n this.ValidateQuestion(qstn, countryName);\r\n //if (numErrors != this._myErrors.length)\r\n // this.consoleLog(\"this._myErrors.length:\" + this._myErrors.length);\r\n }\r\n else {\r\n this.ValidateChildPath(qstn.childQuestions, countryName);\r\n }\r\n }\r\n }\r\n\r\n ValidateQuestion(qstn: CultureSurveyQuestion, countryName: string) {\r\n\r\n // This is only required if ca1_GEN_OperateDifferentCompanyName_COUNTRY[?] has a response of Yes\r\n if (qstn.variableName.indexOf(\"ca1_GEN_CountryCompanyBrandName_COUNTRY[\") >= 0) {\r\n let skipValidation = true;\r\n // recover countryCode\r\n let countryCode = \"\";\r\n let index = qstn.variableName.indexOf(\"[\");\r\n if (index >= 0) {\r\n countryCode = qstn.variableName.substring(index + 1, index + 3);\r\n let response = this.getResponse(\"ca1_GEN_OperateDifferentCompanyName_COUNTRY[\" + countryCode + \"]\");\r\n if (response && response.response.length && response.response.toLowerCase() == \"yes\") {\r\n skipValidation = false;\r\n }\r\n }\r\n if (skipValidation) {\r\n return;\r\n }\r\n }\r\n\r\n // This is only required if ca1_GEN_OperateDifferentIndustry_COUNTRY[?] has a response of Yes\r\n if (qstn.variableName.indexOf(\"ca1_GEN_NAICSCode_COUNTRY[\") >= 0) {\r\n let skipValidation = true;\r\n // recover countryCode\r\n let countryCode = \"\";\r\n let index = qstn.variableName.indexOf(\"[\");\r\n if (index >= 0) {\r\n countryCode = qstn.variableName.substring(index + 1, index + 3);\r\n let response = this.getResponse(\"ca1_GEN_OperateDifferentIndustry_COUNTRY[\" + countryCode + \"]\");\r\n if (response && response.response.length && response.response.toLowerCase() == \"yes\") {\r\n skipValidation = false;\r\n }\r\n }\r\n if (skipValidation) {\r\n return;\r\n }\r\n }\r\n\r\n this.resetErrorColor(qstn.variableName);\r\n\r\n let myResponse = this.getResponse(qstn.variableName);\r\n\r\n if (qstn.variableName.indexOf(\"ca2_GEN_Logo\") == 0 || qstn.variableName.indexOf(\"ca2_GEN_Photo\") == 0) {\r\n this.consoleLog(\"logo/photo val:\" + qstn.variableName);\r\n let isLogo: boolean = qstn.variableName.indexOf(\"Logo\") > 0;\r\n let isPhoto: boolean = qstn.variableName.indexOf(\"Photo\") > 0;\r\n let hasLogo: boolean = false;\r\n let numberOfPhotos = 0;\r\n let showLogoRequired: boolean = false;\r\n let photosRequired: boolean = false;\r\n let isCountrySection: boolean = false;\r\n let countryCode: string = \"\";\r\n if (qstn.variableName.indexOf(\"_COUNTRY\") > 0) {\r\n isCountrySection = true;\r\n countryCode = this.ExtractCountryCode(qstn.variableName);\r\n }\r\n let localClientAssets: ClientAssets = this.clientAssets.find(x => x.countryCode == countryCode);\r\n if (localClientAssets != undefined) {\r\n numberOfPhotos = localClientAssets.photos.length;\r\n hasLogo = localClientAssets.logoFileName.length > 0;\r\n }\r\n\r\n if (isCountrySection) {\r\n if (isPhoto && numberOfPhotos > 0) // If we have at least one photo but not 5 then we need to prompt for 5 photos\r\n photosRequired = true;\r\n if (isPhoto && numberOfPhotos == 0 && hasLogo) // If we have a logo but no photos we need to prompt for 5 photos\r\n photosRequired = true;\r\n if (isLogo && !hasLogo && numberOfPhotos > 0) // No Logo and any amount of photos\r\n showLogoRequired = true;\r\n }\r\n else {\r\n if (isPhoto)\r\n photosRequired = true;\r\n if (isLogo && !hasLogo)\r\n showLogoRequired = true;\r\n }\r\n\r\n var translateRequired = \"\";\r\n if (showLogoRequired || photosRequired) {\r\n this.translate.get('cb-validationmessage-required').subscribe((data: any) => {\r\n translateRequired = String(data);\r\n });\r\n }\r\n if (showLogoRequired) {\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = [qstn.variableName];\r\n errHigh.hoverText = \"\";\r\n //errHigh.errorText = \"Required: Logo upload\"\r\n this.translate.get('cb-validationmessage-requiredlogoupload').subscribe((data: any) => {\r\n errHigh.errorText = translateRequired + (countryName ? \"[\" + countryName + \"] \" : \"\") + data;\r\n });\r\n this._replaceValidationMessageWithCountryName(errHigh, countryName);\r\n this._myErrors.push(errHigh);\r\n return;\r\n }\r\n\r\n if (photosRequired) {\r\n if (numberOfPhotos < 5) {\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = [qstn.variableName];\r\n errHigh.hoverText = \"\";\r\n //errHigh.errorText = \"Required: At least 5 profile images.\"\r\n this.translate.get('cb-validationmessage-requiredprofileimages').subscribe((data: any) => {\r\n errHigh.errorText = translateRequired + (countryName ? \"[\" + countryName + \"] \" : \"\") + data;\r\n });\r\n this._replaceValidationMessageWithCountryName(errHigh, countryName);\r\n this._myErrors.push(errHigh);\r\n return;\r\n }\r\n if (numberOfPhotos > 0)\r\n for (let photo of localClientAssets.photos) {\r\n if (photo.caption.length == 0) {\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = [qstn.variableName];\r\n errHigh.hoverText = \"\";\r\n //errHigh.errorText = \"Required: Captions for each profile image.\";\r\n this.translate.get('cb-validationmessage-requiredcaption').subscribe((data: any) => {\r\n errHigh.errorText = translateRequired + (countryName ? \"[\" + countryName + \"] \" : \"\") + data;\r\n });\r\n\r\n this._replaceValidationMessageWithCountryName(errHigh, countryName);\r\n this._myErrors.push(errHigh);\r\n return;\r\n }\r\n if (photo.caption.length > 120) {\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = [qstn.variableName];\r\n errHigh.hoverText = \"\";\r\n //errHigh.errorText = \"Invalid: Captions should not exceed 120 characters.\";\r\n this.translate.get('cb-validationmessage-invalidcaption').subscribe((data: any) => {\r\n errHigh.errorText = translateRequired + (countryName ? \"[\" + countryName + \"] \" : \"\") + data;\r\n });\r\n this._replaceValidationMessageWithCountryName(errHigh, countryName);\r\n this._myErrors.push(errHigh);\r\n return;\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if (typeof myResponse === 'undefined') {\r\n if (qstn.required) {\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = [qstn.variableName];\r\n errHigh.hoverText = \"\";\r\n //errHigh.errorText = \"Required: \" + (countryName ? \"[\" + countryName + \"] \" : \"\") + qstn.displayText;\r\n this.translate.get('cb-validationmessage-required').subscribe((data: any) => {\r\n errHigh.errorText = data + (countryName ? \"[\" + countryName + \"] \" : \"\") + qstn.displayText;\r\n });\r\n this._replaceValidationMessageWithCountryName(errHigh, countryName);\r\n this._myErrors.push(errHigh);\r\n }\r\n }\r\n else {\r\n if (qstn.required || myResponse.response.length > 0) {\r\n // ignoring optional empty responses\r\n if (qstn.required && myResponse.response.length === 0) {\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = [qstn.variableName];\r\n errHigh.hoverText = \"\";\r\n //errHigh.errorText = \"{{cb-validationmessage-invalid}}\" + (countryName ? \"[\" + countryName + \"] \" : \"\") + qstn.displayText;\r\n this.translate.get('cb-validationmessage-invalid').subscribe((data: any) => {\r\n errHigh.errorText = data + (countryName ? \"[\" + countryName + \"] \" : \"\") + qstn.displayText;\r\n });\r\n this._replaceValidationMessageWithCountryName(errHigh, countryName);\r\n this._myErrors.push(errHigh);\r\n }\r\n else {\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = [qstn.variableName];\r\n errHigh.hoverText = \"\";\r\n //errHigh.errorText = \"Invalid: \" + (countryName ? \"[\" + countryName + \"] \" : \"\") + qstn.displayText\r\n this.translate.get('cb-validationmessage-invalid').subscribe((data: any) => {\r\n errHigh.errorText = data + (countryName ? \"[\" + countryName + \"] \" : \"\") + qstn.displayText;\r\n });\r\n if (!myResponse.isValid) {\r\n //errHigh.errorText = \"Invalid: \" + (countryName ? \"[\" + countryName + \"] \" : \"\") + qstn.displayText;\r\n this.translate.get('cb-validationmessage-invalid').subscribe((data: any) => {\r\n errHigh.errorText = data + (countryName ? \"[\" + countryName + \"] \" : \"\") + qstn.displayText;\r\n });\r\n this._replaceValidationMessageWithCountryName(errHigh, countryName);\r\n this._myErrors.push(errHigh);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _replaceValidationMessageWithCountryName(errHigh: ErrorHighlights, countryName: string = \"\") {\r\n if (errHigh && countryName) {\r\n var translatedCountryValue = \"\";\r\n this.translate.get('cs-page-country-' + countryName).subscribe((data: any) => {\r\n translatedCountryValue = String(data);\r\n });\r\n errHigh.errorText = errHigh.errorText\r\n .replace(countryName, translatedCountryValue);\r\n }\r\n }\r\n\r\n CrossFieldValidation() {\r\n\r\n this._myErrors = [];\r\n //this.errorExplanation = \"We've noticed some inconsistency in your responses. Click the information icon next to each question for details on what we're looking for in a valid response.\";\r\n this.translate.get('cb-validationmessage-inconsistentresponses').subscribe((data: any) => {\r\n this.errorExplanation = data;\r\n });\r\n\r\n // special case global validation\r\n let publiclyTradedVar = \"ca1_GEN_parentOrgPubliclyTraded\";\r\n let stockTickerVar = \"cb_parentStockTicker\";\r\n let publiclyTradedVarRes = this.getResponse(publiclyTradedVar);\r\n let stockTickerVarRes = this.getResponse(stockTickerVar);\r\n\r\n if (publiclyTradedVarRes && publiclyTradedVarRes.response.toLowerCase() === \"yes\") {\r\n if (!stockTickerVarRes || (stockTickerVarRes && stockTickerVarRes.response.length == 0)) {\r\n let highlight: string[] = [];\r\n highlight.push(stockTickerVar);\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = highlight;\r\n //errHigh.errorText = \"Parent Company's Stock Market Symbol is Required.\";\r\n this.translate.get('cb-validationmessage-requiredstocksymbol').subscribe((data: any) => {\r\n errHigh.errorText = data;\r\n });\r\n this._myErrors.push(errHigh);\r\n this.consoleLog(\"error: \" + errHigh.errorText);\r\n }\r\n }\r\n\r\n // special case country specific validation\r\n for (const country of this.countries) {\r\n\r\n let multipleOperateVar = \"ca1_GEN_OperateMultipleCountries\";\r\n let operateVar = \"ca1_GEN_OperateDifferentCompanyName\" + \"_COUNTRY[\" + country.countryCode + \"]\";\r\n let followOnVar = \"ca1_GEN_CountryCompanyBrandName\" + \"_COUNTRY[\" + country.countryCode + \"]\";\r\n let multipleOperateVarRes = this.getResponse(multipleOperateVar);\r\n let operateVarRes = this.getResponse(operateVar);\r\n let followOnVarRes = this.getResponse(followOnVar);\r\n\r\n if (multipleOperateVarRes && multipleOperateVarRes.response.toLowerCase() === \"yes\") {\r\n if (!operateVarRes || (operateVarRes && operateVarRes.response.length == 0)) {\r\n let highlight: string[] = [];\r\n highlight.push(operateVar);\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = highlight;\r\n //errHigh.errorText = \"Do you operate under a different Company or Brand Name in [Country] is Required.\";\r\n this.translate.get('cb-validationmessage-requireddoyouoperateunderdiffcountry').subscribe((data: any) => {\r\n errHigh.errorText = data;\r\n });\r\n errHigh.errorText = errHigh.errorText.replace(\"[Country]\", country.countryName);\r\n this._replaceValidationMessageWithCountryName(errHigh, country.countryName);\r\n this._myErrors.push(errHigh);\r\n this.consoleLog(\"error: \" + errHigh.errorText);\r\n }\r\n }\r\n\r\n if (operateVarRes && operateVarRes.response.toLowerCase() === \"yes\") {\r\n if (!followOnVarRes || (followOnVarRes && followOnVarRes.response.length == 0)) {\r\n let highlight: string[] = [];\r\n highlight.push(followOnVar);\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = highlight;\r\n //errHigh.errorText = \"Company or Brand Name in: [Country] is Required.\";\r\n this.translate.get('cb-validationmessage-requiredcompanybrandname').subscribe((data: any) => {\r\n errHigh.errorText = data;\r\n });\r\n errHigh.errorText = errHigh.errorText.replace(\"[Country]\", country.countryName);\r\n this._replaceValidationMessageWithCountryName(errHigh, country.countryName);\r\n this._myErrors.push(errHigh);\r\n this.consoleLog(\"error: \" + errHigh.errorText);\r\n }\r\n }\r\n\r\n operateVar = \"ca1_GEN_OperateDifferentIndustry\" + \"_COUNTRY[\" + country.countryCode + \"]\";\r\n followOnVar = \"ca1_GEN_NAICSCode\" + \"_COUNTRY[\" + country.countryCode + \"]\";\r\n operateVarRes = this.getResponse(operateVar);\r\n followOnVarRes = this.getResponse(followOnVar);\r\n\r\n if (operateVarRes && operateVarRes.response.toLowerCase() === \"yes\") {\r\n if (!followOnVarRes || (followOnVarRes && followOnVarRes.response.length == 0)) {\r\n let highlight: string[] = [];\r\n highlight.push(followOnVar);\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = highlight;\r\n //errHigh.errorText = \"Industry in:[Country] is Required.\";\r\n this.translate.get('cb-validationmessage-requiredindustry').subscribe((data: any) => {\r\n errHigh.errorText = data;\r\n });\r\n errHigh.errorText = errHigh.errorText.replace(\"[Country]\", country.countryName);\r\n this._replaceValidationMessageWithCountryName(errHigh, country.countryName);\r\n this._myErrors.push(errHigh);\r\n this.consoleLog(\"error: \" + errHigh.errorText);\r\n }\r\n }\r\n\r\n if (multipleOperateVarRes && multipleOperateVarRes.response.toLowerCase() === \"yes\") {\r\n if (!operateVarRes || (operateVarRes && operateVarRes.response.length == 0)) {\r\n let highlight: string[] = [];\r\n highlight.push(operateVar);\r\n const errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = highlight;\r\n //errHigh.errorText = \"Do you operate in a different industry in [Country] is Required.\";\r\n this.translate.get('cb-validationmessage-requireddoyouoperateindiffindustry').subscribe((data: any) => {\r\n errHigh.errorText = data;\r\n });\r\n errHigh.errorText = errHigh.errorText.replace(\"[Country]\", country.countryName);\r\n this._replaceValidationMessageWithCountryName(errHigh, country.countryName);\r\n this._myErrors.push(errHigh);\r\n this.consoleLog(\"error: \" + errHigh.errorText);\r\n }\r\n }\r\n }\r\n\r\n if (this.countryCodesToSuppressAnotherGenderNotListed.length == 0) { // If this hasn't been set up already then do it one time here before we need to use it\r\n let AnotherGenderNotListedQuestion: CultureSurveyQuestion = this.questions.find(x => x.variableName.indexOf(\"ca1_DEMO_numofotheremp_COUNTRY\") == 0);\r\n if (AnotherGenderNotListedQuestion != null)\r\n this.countryCodesToSuppressAnotherGenderNotListed = AnotherGenderNotListedQuestion.DoNotAskInCountry;\r\n }\r\n\r\n this.xvalidate = [];\r\n this.xvalidate = CrossValidations.getCrossValidations(this.translate);\r\n for (const country of this.countries) {\r\n\r\n for (let cvOriginal of this.xvalidate) {\r\n\r\n // Pre pending Country name to the cross validation error message\r\n //var translatedCountryValue = \"\";\r\n //this.translate.get('cs-page-country-' + country.countryName).subscribe((data: any) => {\r\n // translatedCountryValue = String(data);\r\n //});\r\n //cvOriginal.errorMessage = \"[\" + translatedCountryValue + \"]: \" + cvOriginal.errorMessage;\r\n\r\n let cv: CrossValidation = new CrossValidation;\r\n cv.validation_leftside = cvOriginal.validation_leftside\r\n cv.comparison_operator = cvOriginal.comparison_operator\r\n cv.validation_rightside = cvOriginal.validation_rightside\r\n cv.errorMessage = cvOriginal.errorMessage\r\n cv.validation_intent = cvOriginal.validation_intent\r\n\r\n // If this is the suppressTotalEmployeesGridValidation is true then skip this validation\r\n if (cv.validation_intent.indexOf(\"The # of individual contributors, front-line managers/supervisors, mid-level managers, executive/C-Level managers, and CEOs must equal the number of employees in:\") == 0) {\r\n if (this.suppressTotalEmployeesGridValidation) {\r\n continue;\r\n }\r\n }\r\n\r\n // If this is the validation for Gender question WITH the AnotherGenderNotListed reference AND the the country is suppressing the AnotherGenderNotListed answer then skip this validation\r\n if (cv.validation_intent.indexOf(\"The # of female, male and non-binary\") == 0) {\r\n if (this.countryCodesToSuppressAnotherGenderNotListed.includes(country.countryCode)) {\r\n continue;\r\n }\r\n }\r\n\r\n // If this is the validation for Gender question WITHOUGHT the AnotherGenderNotListed reference AND the the country is NOT suppressing the AnotherGenderNotListed answer then skip this validation\r\n if (cv.validation_intent.indexOf(\"The # of female and male employees\") == 0) {\r\n if (!this.countryCodesToSuppressAnotherGenderNotListed.includes(country.countryCode)) {\r\n continue;\r\n }\r\n }\r\n\r\n let leftside = 0;\r\n let rightside = 0;\r\n let bypassvalidation: boolean = false;\r\n\r\n var done = false;\r\n\r\n while (!done) {\r\n var input = cv.validation_leftside;\r\n cv.validation_leftside = cv.validation_leftside.replace(\"_COUNTRY[?]\", \"_COUNTRY[\" + country.countryCode + \"]\");\r\n if (cv.validation_leftside == input)\r\n done = true;\r\n }\r\n\r\n done = false;\r\n while (!done) {\r\n var input = cv.validation_rightside;\r\n cv.validation_rightside = cv.validation_rightside.replace(\"_COUNTRY[?]\", \"_COUNTRY[\" + country.countryCode + \"]\");\r\n if (cv.validation_rightside == input)\r\n done = true;\r\n }\r\n\r\n done = false;\r\n while (!done) {\r\n var input = cv.errorMessage;\r\n cv.errorMessage = cv.errorMessage.replace(\"COUNTRY_NAME\", country.countryName);\r\n if (cv.errorMessage == input)\r\n done = true;\r\n }\r\n\r\n done = false;\r\n while (!done) {\r\n var input = cv.validation_intent;\r\n cv.validation_intent = cv.validation_intent.replace(\"[COUNTRY_NAME]\", country.countryName);\r\n if (cv.validation_intent == input)\r\n done = true;\r\n }\r\n\r\n if (cv.validation_leftside == \"ca1_DEMO_empNumWorldWide\" || cv.validation_rightside == \"ca1_DEMO_empNumWorldWide\") {\r\n let myResponse = this.getResponse(\"ca1_DEMO_empNumWorldWide\");\r\n if (myResponse) {\r\n if (myResponse.response.length == 0) {\r\n bypassvalidation = true;\r\n }\r\n }\r\n else\r\n bypassvalidation = true;\r\n }\r\n\r\n if (cv.validation_leftside.indexOf(\"ca1_TIMEOFF_moneydonated_COUNTRY[\") >= 0 && cv.validation_rightside.indexOf(\"ca1_GEN_Rev_COUNTRY[\") >= 0) {\r\n let myLeftsideResponse: CultureSurveyResponse = this.CloneResponseObject(this.getResponse(cv.validation_leftside));\r\n\r\n if (myLeftsideResponse && myLeftsideResponse.response.length) {\r\n let index = myLeftsideResponse.response.indexOf(\" (\");\r\n if (index >= 0)\r\n myLeftsideResponse.response = myLeftsideResponse.response.substring(0, index);\r\n }\r\n if (myLeftsideResponse) {\r\n if (myLeftsideResponse.response.length == 0) {\r\n bypassvalidation = true;\r\n }\r\n }\r\n else\r\n bypassvalidation = true;\r\n let myRightsideResponse: CultureSurveyResponse = this.CloneResponseObject(this.getResponse(cv.validation_rightside));\r\n if (myRightsideResponse && myRightsideResponse.response.length) {\r\n let index = myRightsideResponse.response.indexOf(\" (\");\r\n if (index >= 0)\r\n myRightsideResponse.response = myRightsideResponse.response.substring(0, index);\r\n }\r\n if (myRightsideResponse) {\r\n if (myRightsideResponse.response.length == 0) {\r\n bypassvalidation = true;\r\n }\r\n }\r\n else\r\n bypassvalidation = true;\r\n }\r\n\r\n if (!bypassvalidation) {\r\n\r\n let sumTheseVars: string[] = cv.validation_leftside.split(\"/\");\r\n for (let myVars of sumTheseVars) {\r\n leftside += this.GetNumber(myVars);\r\n }\r\n\r\n rightside = this.GetNumber(cv.validation_rightside);\r\n\r\n let compareOK = this.compareResults(leftside, rightside, cv.comparison_operator);\r\n\r\n if (compareOK == false) {\r\n //this.consoleLog(\"error: \" + cv.errorMessage);\r\n let mynum = new Intl.NumberFormat('en-us', { minimumFractionDigits: 0 }).format(rightside);\r\n let highlight = sumTheseVars;\r\n highlight.push(cv.validation_rightside);\r\n let errHigh = new ErrorHighlights;\r\n errHigh.highlightVars = highlight;\r\n errHigh.errorText = cv.errorMessage.replace('&&&', mynum);\r\n //errHigh.hoverText = cv.validation_intent;\r\n this._myErrors.push(errHigh);\r\n }\r\n\r\n } //next xvalidate\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n CloneResponseObject(resObj: CultureSurveyResponse) {\r\n if (resObj) {\r\n let response: CultureSurveyResponse = new CultureSurveyResponse;\r\n response.response = resObj.response\r\n response.isConfidential = resObj.isConfidential;\r\n response.isValid = resObj.isValid;\r\n response.variableName = resObj.variableName;\r\n return response\r\n }\r\n return null;\r\n }\r\n\r\n compareResults(leftside: number, rightside: number, operator: string): boolean {\r\n let compareResult: boolean;\r\n switch (operator) {\r\n case \"=\": {\r\n if (leftside == rightside) {\r\n compareResult = true;\r\n }\r\n else {\r\n compareResult = false;\r\n }\r\n break;\r\n }\r\n\r\n case \"<=\": {\r\n if (leftside <= rightside) {\r\n compareResult = true;\r\n }\r\n else {\r\n compareResult = false;\r\n }\r\n break;\r\n }\r\n\r\n case \">=\": {\r\n if (leftside >= rightside) {\r\n compareResult = true;\r\n }\r\n else {\r\n compareResult = false;\r\n }\r\n break;\r\n\r\n }\r\n }\r\n return compareResult;\r\n }\r\n\r\n resetErrorColor(divName: string) {\r\n //this.consoleLog(divName);\r\n let myDiv = document.getElementById(divName);\r\n if (myDiv) {\r\n myDiv.classList.remove(\"question-error\");\r\n }\r\n }\r\n\r\n numVal(stringval: string): number {\r\n let mynum = stringval.replace(/,/g, \"\");\r\n return parseInt(mynum);\r\n }\r\n\r\n GetNumber(variableName: string) {\r\n\r\n if (variableName.indexOf(\"IMPLICIT_VALUE:\") == 0) {\r\n return this.numVal(variableName.substring(\"IMPLICIT_VALUE:\".length));\r\n }\r\n\r\n let myResponse = this.CloneResponseObject(this.getResponse(variableName));\r\n\r\n // Note: these are the only two questions which involve currency and therefore need that the (USD) striped off in order to compare the numbers\r\n if (variableName.indexOf(\"ca1_TIMEOFF_moneydonated_COUNTRY[\") >= 0 || variableName.indexOf(\"ca1_GEN_Rev_COUNTRY[\") >= 0) {\r\n if (myResponse && myResponse.response.length) {\r\n let index = myResponse.response.indexOf(\" (\");\r\n if (index >= 0)\r\n myResponse.response = myResponse.response.substring(0, index);\r\n }\r\n }\r\n\r\n if (myResponse != undefined && myResponse.response.length > 0) {\r\n return this.numVal(myResponse.response);\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n\r\n RefreshStickyHeader(forceUpdate?: boolean) {\r\n // Top of survey form = header height (64) + blue title height (274) + sticky section name (128, but only if displayed)\r\n let headerHeight = 64;\r\n let titleHeight = 273.667;\r\n let stickyId = '';\r\n\r\n let topSurveyForm = headerHeight + titleHeight;\r\n let stickyinput = (document.getElementById(\"stickyinput\") as HTMLInputElement);\r\n\r\n // Hide the sticky section name if the top of survey is not at the top of the window\r\n if (window.scrollY < topSurveyForm) {\r\n stickyId = stickyinput ? stickyinput.value : '';\r\n if (stickyId) {\r\n let sectionDivClone = document.getElementById(stickyId.replace(\"header_\", \"header_clone_\"));\r\n if (sectionDivClone != null) {\r\n sectionDivClone.classList.add('hidden');\r\n sectionDivClone.classList.remove('sticky-header');\r\n\r\n let navSection = sectionDivClone.querySelector(\".navigatesection\");\r\n if (navSection) {\r\n navSection.classList.add('hidden');\r\n }\r\n let logoSection = sectionDivClone.querySelector(\".logosection\");\r\n if (logoSection) {\r\n logoSection.classList.remove('hidden');\r\n }\r\n }\r\n\r\n stickyinput.value = '';\r\n }\r\n\r\n this.currentStickySection = -1;\r\n }\r\n else {\r\n // Check which section is currently on the screen\r\n let sections = document.getElementsByClassName(\"section-marker\");\r\n\r\n let i;\r\n for (i = 0; i < sections.length; i++) {\r\n // Get this section's current height and top position\r\n let section = sections[i];\r\n let offsetTop = section.getBoundingClientRect().top;\r\n let offsetHeight = section.getBoundingClientRect().height;\r\n\r\n // The sticky title will be set to this section's question if\r\n // the section's top is within 180px of the top of the window, and\r\n // the section's bottom is at least 180px below the top of the window\r\n //if (offsetTop <= 180 && offsetTop + offsetHeight > 180) {\r\n if (offsetTop <= 53 && offsetTop + offsetHeight > 180) { // 53 / 90\r\n // Only refresh the sticky title if the section changed to prevent flicker\r\n if (forceUpdate || i != this.currentStickySection) {\r\n let sectionDiv = section.querySelector(\".section-question\");\r\n //sectionDiv.classList.add('sticky-header');\r\n\r\n let sectionDivClone = section.querySelector(\".section-question-clone\");\r\n if (sectionDivClone != null) {\r\n sectionDivClone.classList.add('sticky-header');\r\n sectionDivClone.classList.remove('hidden');\r\n\r\n let navSection = sectionDivClone.querySelector(\".navigatesection\");\r\n if (navSection) {\r\n navSection.classList.remove('hidden');\r\n }\r\n let logoSection = sectionDivClone.querySelector(\".logosection\");\r\n if (logoSection) {\r\n logoSection.classList.add('hidden');\r\n }\r\n }\r\n\r\n // remove sticky from previous sticky header\r\n let currentStickyId = (document.getElementById(\"stickyinput\") as HTMLInputElement).value;\r\n if (currentStickyId && currentStickyId != sectionDiv.id) {\r\n //let currentStickySectionHeader = document.getElementById(currentStickyId);\r\n //currentStickySectionHeader.classList.remove('sticky-header');\r\n\r\n let sectionDivClone = document.getElementById(currentStickyId.replace(\"header_\", \"header_clone_\"));\r\n if (sectionDivClone != null) {\r\n sectionDivClone.classList.add('hidden');\r\n sectionDivClone.classList.remove('sticky-header');\r\n\r\n let navSection = sectionDivClone.querySelector(\"#navigatesection\");\r\n if (navSection) {\r\n navSection.classList.add('hidden');\r\n }\r\n let logoSection = sectionDivClone.querySelector(\"#logosection\");\r\n if (logoSection) {\r\n logoSection.classList.remove('hidden');\r\n }\r\n }\r\n }\r\n\r\n (document.getElementById(\"stickyinput\") as HTMLInputElement).value = sectionDiv.id;\r\n this.currentStickySection = i;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n // grid, heading, question\r\n CheckIfQuestionComponentIsVisible(componentType: string, question: CultureSurveyQuestion) {\r\n\r\n if (question.fieldType.toLowerCase() === 'logo' && componentType === \"question\") {\r\n let show: boolean = true;\r\n //if (this.bs.countries.length == 1 && this.question.variableName.indexOf(\"_COUNTRY[\") > 0)\r\n // show = false;\r\n return show;\r\n }\r\n if (question.fieldType.toLowerCase() === 'photo' && componentType === \"question\") {\r\n let show: boolean = true;\r\n //if (this.bs.countries.length == 1 && this.question.variableName.indexOf(\"_COUNTRY[\") > 0)\r\n //show = false;\r\n return show;\r\n }\r\n\r\n if (componentType === \"grid\" && question.fieldType.toLowerCase() !== 'grid')\r\n return false;\r\n\r\n if (componentType === \"heading\" && question.fieldType !== '')\r\n return false;\r\n\r\n if (componentType === \"question\" && question.fieldType == '')\r\n return false;\r\n\r\n if (componentType === \"question\" && question.fieldType.toLowerCase() === 'grid')\r\n return false;\r\n\r\n if (question.hiddenDataOnlyQuestion)\r\n return false;\r\n\r\n // Since the Default Action will ultimately decide whether to show or hide a question\r\n // absent any determination in a rule above it we check before running any DEFAULT_ACTION\r\n // if a show/hide determination has been made. If not then DEFAULT_ACTION takes over.\r\n // This change allows for nested branching which we need for the \"Is your parent company publicly traded\" branching question\r\n // which is contained within the branching question \"Are you a subsidiary\"\r\n\r\n for (let rule of question.visibilityRules) {\r\n const variableName = rule.variableName;\r\n if (variableName == \"DEFAULT_ACTION\") {\r\n if (rule.action.toLowerCase() === \"show\")\r\n return true;\r\n if (rule.action.toLowerCase() === \"hide\")\r\n return false;\r\n }\r\n else {\r\n var responses = [];\r\n var responseVars = variableName.split(\"|\");\r\n var numMatches = 0;\r\n for (let response of responseVars) {\r\n const userResponse = this.getResponse(response);\r\n if (userResponse != null && userResponse.response.toLowerCase() === rule.response.toLowerCase())\r\n numMatches++;\r\n }\r\n\r\n if (numMatches == responseVars.length) { // Do all the responses match the Response in the Validation Rule?\r\n if (rule.action.toLowerCase() === \"show\")\r\n return true;\r\n if (rule.action.toLowerCase() === \"hide\") {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\nexport class CustomHttpParamEncoder implements HttpParameterCodec {\r\n public encodeKey(key: string): string {\r\n return encodeURIComponent(key);\r\n }\r\n public encodeValue(value: string): string {\r\n return encodeURIComponent(value);\r\n }\r\n public decodeKey(key: string): string {\r\n return decodeURIComponent(key);\r\n }\r\n public decodeValue(value: string): string {\r\n return decodeURIComponent(value);\r\n }\r\n}\r\n\r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AppInsights } from 'applicationinsights-js';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { CrossValidation } from './models/cross-validation';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nexport class CrossValidations {\r\n\r\n static xValidations: CrossValidation[] = [];\r\n\r\n static getCrossValidations(translate: TranslateService): CrossValidation[]{\r\n this.xValidations = [];\r\n let newval = ({\r\n validation_leftside: 'ca1_DEMO_empNumWorldWide',\r\n comparison_operator: '>=',\r\n validation_rightside: 'sr_Employees_COUNTRY[?]',\r\n errorMessage: 'The number of employees worldwide should be => employees in: [COUNTRY_NAME] (&&&). ',\r\n validation_intent: 'The # of employees worldwide should be => than the number of employees in: [COUNTRY_NAME] at the time of the survey. '\r\n })\r\n translate.get('cs-validationmessage-empworldwidegrtthanempcountry').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'cb_numEmployees_Europe/cb_numEmployees_LatinAmerica/cb_numEmployees_AsiaMiddleEast',\r\n comparison_operator: '<=',\r\n validation_rightside: 'ca1_DEMO_empNumWorldWide',\r\n errorMessage: 'The number of employees by continent (including employees in: [COUNTRY_NAME]) should not exceed the number of worldwide employees (&&&) ',\r\n validation_intent: 'The # of employees in Europe, Latin America, Asia/Middle East and employees in: [COUNTRY_NAME] should not exceed the number of worldwide employees at the time of the survey. '\r\n })\r\n translate.get('cs-validationmessage-empworldwidegrtthanempcontinent').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'cb_numBODWomen',\r\n comparison_operator: '<=',\r\n validation_rightside: 'cb_numBOD',\r\n errorMessage: 'The number of women on the Board must not exceed the number of Board members (&&&)',\r\n validation_intent: 'The # of women on the Board must not exceed the number of Board members.'\r\n });\r\n translate.get('cs-validationmessage-womennumlessthanBOD').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'cb_numBODMinorities',\r\n comparison_operator: '<=',\r\n validation_rightside: 'cb_numBOD',\r\n errorMessage: 'The number of minorities on the Board must not exceed the number of Board members (&&&)',\r\n validation_intent: 'The # of minorities on the Board must not exceed the number of Board members.'\r\n });\r\n translate.get('cs-validationmessage-minoritiesnumlessthanBOD').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_TIMEOFF_moneydonated_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'ca1_GEN_Rev_COUNTRY[?]',\r\n errorMessage: 'The Total Charitable Donations cannot exceed the Total Revenue in: [COUNTRY_NAME] (&&&). ',\r\n validation_intent: 'The Total Charitable Donations cannot exceed the Total Revenue in: [COUNTRY_NAME]. '\r\n })\r\n translate.get('cs-validationmessage-revgrtthanmoneydonated').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({ \r\n validation_leftside: 'sr_FT_Female_Total_COUNTRY[?]/sr_FT_Male_Total_COUNTRY[?]/ca1_DEMO_numofotheremp_COUNTRY[?]',\r\n comparison_operator: '=',\r\n validation_rightside: 'sr_Employees_COUNTRY[?]',\r\n errorMessage: 'The number of employees by gender must equal number of employees in: [COUNTRY_NAME] (&&&). ',\r\n validation_intent: 'The # of female, male and non-binary employees must equal the number of employees in: [COUNTRY_NAME] at the time of survey.'\r\n })\r\n translate.get('cs-validationmessage-numempsameasgender').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'sr_FT_Female_Total_COUNTRY[?]/sr_FT_Male_Total_COUNTRY[?]',\r\n comparison_operator: '=',\r\n validation_rightside: 'sr_Employees_COUNTRY[?]',\r\n errorMessage: 'The number of employees by gender must equal number of employees in: [COUNTRY_NAME] (&&&). ',\r\n validation_intent: 'The # of female and male employees must equal the number of employees in: [COUNTRY_NAME] at the time of survey.'\r\n })\r\n translate.get('cs-validationmessage-numempsameasgender').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'sr_Fulltime_Total_COUNTRY[?]/sr_Parttime_Total_COUNTRY[?]',\r\n comparison_operator: '=',\r\n validation_rightside: 'sr_Employees_COUNTRY[?]',\r\n errorMessage: 'The total full and part time employees must equal number of employees in: [COUNTRY_NAME] (&&&). ',\r\n validation_intent: 'The # of full and part time employees must equal the number of employees in: [COUNTRY_NAME] at the time of survey.'\r\n })\r\n translate.get('cs-validationmessage-numempsameasfullparttimetotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_DEMO_empAge25less_COUNTRY[?]/ca1_DEMO_empAge26to34_COUNTRY[?]/ca1_DEMO_empAge35to44_COUNTRY[?]/ca1_DEMO_empAge45to54_COUNTRY[?]/ca1_DEMO_empAge55plus_COUNTRY[?]',\r\n comparison_operator: '=',\r\n validation_rightside: 'sr_Employees_COUNTRY[?]',\r\n errorMessage: 'The total employees by Age must equal number of employees in: [COUNTRY_NAME] (&&&). ',\r\n validation_intent: 'The number of employees who are 25 years or younger, 26 to 34 years, 35 to 44 years, 45 to 54 years or 55 and older must equal the number of employees in: [COUNTRY_NAME] at the time of survey.'\r\n })\r\n translate.get('cs-validationmessage-employeebyagesameasnumemp').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_DEMO_tenureUnder2_COUNTRY[?]/ca1_DEMO_tenure2to5_COUNTRY[?]/ca1_DEMO_tenure6to10_COUNTRY[?]/ca1_DEMO_tenure11to15_COUNTRY[?]/ca1_DEMO_tenure16to20_COUNTRY[?]/ca1_DEMO_tenureOver20_COUNTRY[?]',\r\n comparison_operator: '=',\r\n validation_rightside: 'sr_Employees_COUNTRY[?]',\r\n errorMessage: 'The total employees by Tenure must equal number of employees in: [COUNTRY_NAME] (&&&). ',\r\n validation_intent: 'The # of 2 years, 2 years to 5 years, 6 years to 10 years, 11 years to 15 years, 16 years to 20 years, and over 20 years employees must equal the number of employees in: [COUNTRY_NAME] at the time of survey.'\r\n }) \r\n translate.get('cs-validationmessage-employeebytenuresameasnumemp').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_DEMO_IndeContributor_COUNTRY[?]/ca1_DEMO_MgntFrontSupervisor_COUNTRY[?]/ca1_DEMO_MgntMiddleLevel_COUNTRY[?]/ca1_DEMO_MgntExecLeader_COUNTRY[?]/cb_numCEOs_COUNTRY[?]',\r\n comparison_operator: '=',\r\n validation_rightside: 'sr_Employees_COUNTRY[?]',\r\n errorMessage: 'The total employees by Role/Management Level must equal the number of employees in: [COUNTRY_NAME] (&&&).',\r\n validation_intent: 'The # of individual contributors, front-line managers/supervisors, mid-level managers, executive/C-Level managers, and CEOs must equal the number of employees in: [COUNTRY_NAME] at the time of survey.'\r\n })\r\n translate.get('cs-validationmessage-employeebyrolesameasnumemp').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_DEMO_IndeContributorWomen_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'ca1_DEMO_IndeContributor_COUNTRY[?]',\r\n errorMessage: 'The number of women individual contributors must not exceed the total number of individual contributors (&&&).',\r\n validation_intent: 'The # of women contributors must not exceed the number of Individual Contributors. '\r\n })\r\n translate.get('cs-validationmessage-indecontributorwomennotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_DEMO_IndeContributorMinorities_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'ca1_DEMO_IndeContributor_COUNTRY[?]',\r\n errorMessage: 'The number of minority individual contributors must not exceed the total number of individual contributors (&&&).',\r\n validation_intent: 'The # of minority contributors must not exceed the number of Individual Contributors. '\r\n })\r\n translate.get('cs-validationmessage-indecontriminoritiesnotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_DEMO_frntLineSupervisorWomen_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'ca1_DEMO_MgntFrontSupervisor_COUNTRY[?]',\r\n errorMessage: 'The number of women front-line managers/supervisors must not exceed the total number of front-line managers/supervisors (&&&).',\r\n validation_intent: 'The # of women front-line managers/supervisors must not exceed the total number of front-line managers/supervisors.'\r\n })\r\n translate.get('cs-validationmessage-frntlinesupervisorwomennotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_DEMO_frntLineSupervisorMinorities_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'ca1_DEMO_MgntFrontSupervisor_COUNTRY[?]',\r\n errorMessage: 'The number of minority front-line managers/supervisors must not exceed the total number of front-line managers/supervisors (&&&).',\r\n validation_intent: 'The # of minority front-line managers/supervisors must not exceed the total number of front-line managers/supervisors.'\r\n })\r\n translate.get('cs-validationmessage-supervisorminoritiesnotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_DEMO_midLevelWomen_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'ca1_DEMO_MgntMiddleLevel_COUNTRY[?]',\r\n errorMessage: 'The number of women mid-level managers must not exceed the total number of mid-level managers (&&&).',\r\n validation_intent: 'The # of women mid-level managers must not exceed the number of mid-level managers.'\r\n })\r\n translate.get('cs-validationmessage-midLevelwomenmanagernotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_DEMO_midLevelMinorities_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'ca1_DEMO_MgntMiddleLevel_COUNTRY[?]',\r\n errorMessage: 'The number of minority mid-level managers must not exceed the total number of mid-level managers (&&&).',\r\n validation_intent: 'The # of minority mid-level managers must not exceed the number of mid-level managers.'\r\n })\r\n translate.get('cs-validationmessage-midLevelminoritymanagernotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_DEMO_clevelWomen_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'ca1_DEMO_MgntExecLeader_COUNTRY[?]',\r\n errorMessage: 'The number of women executive/C-Level managers must not exceed the number of executive/C-Level managers (&&&).',\r\n validation_intent: 'The # of women executive/C-Level managers must not exceed the number of executive/C-Level managers.'\r\n })\r\n translate.get('cs-validationmessage-clevelWomenmanagernotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'ca1_DEMO_clevelMinorities_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'ca1_DEMO_MgntExecLeader_COUNTRY[?]',\r\n errorMessage: 'The number of minority executive/C-Level managers must not exceed the number of executive/C-Level managers (&&&).',\r\n validation_intent: 'The # of minority executive/C-Level managers must not exceed the number of executive/C-Level managers.'\r\n })\r\n translate.get('cs-validationmessage-clevelMinoritiesmanagernotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'cb_numCEOs_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'IMPLICIT_VALUE:2',\r\n errorMessage: 'You can not have more than 2 CEOs.',\r\n validation_intent: 'You can not have more than 2 CEOs.'\r\n })\r\n translate.get('cs-validationmessage-numCEOs').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n\r\n newval = ({\r\n validation_leftside: 'cb_numCEOsWomen_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'cb_numCEOs_COUNTRY[?]',\r\n errorMessage: \"The number of women CEOs must not exceed the number of CEOs.\",\r\n validation_intent: \"The # of women CEOs must not exceed the number of CEOs.\"\r\n })\r\n translate.get('cs-validationmessage-numCEOswomennotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n\r\n newval = ({\r\n validation_leftside: 'cb_numCEOsMinorities_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'cb_numCEOs_COUNTRY[?]',\r\n errorMessage: \"The number of minority CEOs must not exceed the number of CEOs.\",\r\n validation_intent: \"The # of minority CEOs must not exceed the number of CEOs.\"\r\n })\r\n translate.get('cs-validationmessage-numCEOsminoritynotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'cb_numCEODirectReportsWomen_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'cb_numCEODirectReports_COUNTRY[?]',\r\n errorMessage: 'The number of women who are direct reports of the CEO must not exceed the total number of direct reports (&&&).',\r\n validation_intent: 'The # of women who are direct reports of the CEO must not exceed the total number of direct reports.'\r\n })\r\n translate.get('cs-validationmessage-numCEOdirectreportswomennotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'cb_numCEODirectReportsMinorities_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'cb_numCEODirectReports_COUNTRY[?]',\r\n errorMessage: 'The number of minorities who are direct reports of the CEO must not exceed the total number of direct reports (&&&).',\r\n validation_intent: 'The # of minorities who are direct reports of the CEO must not exceed the total number of direct reports.'\r\n })\r\n translate.get('cs-validationmessage-numCEOdirectreportsminoritiesnotmorethantotal').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n newval = ({\r\n validation_leftside: 'cb_numCEODirectReports_COUNTRY[?]',\r\n comparison_operator: '<=',\r\n validation_rightside: 'sr_Employees_COUNTRY[?]',\r\n errorMessage: 'The number of Direct Reports of the CEO must not exceed the number of employees in: [COUNTRY_NAME] (&&&).',\r\n validation_intent: 'The # of Direct Reports of the CEO must not exceed the number of employees in: [COUNTRY_NAME].'\r\n })\r\n translate.get('cs-validationmessage-numCEOdirectreportsnotmorethantotalemp').subscribe((data: any) => {\r\n newval.errorMessage = String(data);\r\n });\r\n this.xValidations.push(newval);\r\n\r\n return this.xValidations;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BackendService } from '../backend.service';\nimport { AuthService } from '../services/auth.service'\nimport { ClientError } from '../models/misc-models';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-errorpage',\n templateUrl: './errorpage.component.html',\n styleUrls: ['./errorpage.component.scss']\n})\n\nexport class ErrorpageComponent implements OnInit {\n public errorType = \"general\";\n private supportedErrorTypes: Array = ['noengagement', 'noportalclaim', 'sessionexpired', 'noaccess', 'general', 'downformaintenance','tokenexpiredatlogin','invalidfile'];\n public currentYear: number;\n\n constructor(public bs: BackendService, private router: Router, private route: ActivatedRoute, private authService: AuthService, private translate: TranslateService) {\n route.params.subscribe(params => {\n let param: string = params['errorType'];\n if (param !== undefined && param.length > 0) {\n param = param.toLowerCase();\n if (this.supportedErrorTypes.includes(param)) {\n this.errorType = param;\n }\n }\n })\n }\n\n ngOnInit() {\n this.currentYear = new Date().getFullYear();\n\n let clientId = this.authService.getNonRoleClaim(\"gptw_client_id\");\n let email = this.authService.user.profile.upn; // considering upn and email is same for most users\n\n let error: ClientError = {\n category: this.bs.ERROR_TYPE_ERROR,\n etype: this.errorType,\n message: \"\",\n id: -1,\n eid: -1,\n cid: Number(clientId),\n user: email,\n application: \"CultureSurvey\",\n }\n\n this.bs.SendClientErrorToServer(error);\n }\n\n //navigateToThePortal() {\n // const routePath = \"/survey/\" + this.bs.surveyId;\n // this.router.navigate([routePath]);\n //}\n\n}\n","\r\n
\r\n
\r\n {{\"cs-errorpage-sessionexpired1\" | translate}} {{\"cs-page-here\" | translate}} {{\"cs-errorpage-sessionexpired2\" | translate}}\r\n {{\"cs-errorpage-general1\" | translate}}
{{\"cs-errorpage-general2\" | translate}}
\r\n {{\"cs-errorpage-tokenexpiredatlogin1\" | translate}}
{{\"cs-errorpage-tokenexpiredatlogin2\" | translate}}
\r\n {{\"cs-errorpage-downformaintenance1\" | translate}}
{{\"cs-errorpage-downformaintenance2\" | translate}}
{{\"cs-errorpage-downformaintenance3\" | translate}} support@greatplacetowork.com
\r\n {{\"cs-errorpage-noaccess\" | translate}}\r\n {{\"cs-errorpage-invalidfile\" | translate}}\r\n
\r\n
\r\n 2017-{{currentYear}} ©Great Place To Work®. All Rights Reserved.\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { BackendService } from '../backend.service';\r\nimport { HostListener } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ComponentNotifyEvent, Claim } from '../models/misc-models';\r\nimport { HttpHeaders, HttpClient, HttpParameterCodec } from '@angular/common/http';\r\nimport { Inject, Injectable, EventEmitter } from '@angular/core';\r\nimport { AuthService } from '../services/auth.service'\r\nimport { GetAllLanguages, GetCompanyNameResult, GetDownForMaintNotficationResult, LanguageCulture } from '../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ErrorService } from '../services/error.service';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n @Input() showLanguagesLink: boolean;\r\n private myHttpClient: HttpClient;\r\n public baseUrl: string;\r\n public isEmployee = false;\r\n public as: AuthService;\r\n public dashboardurl: string;\r\n public companyUsersUrl: string;\r\n public logOutUrl: string;\r\n public showLanguages = false;\r\n public languages: LanguageCulture[];\r\n public isOpenLanguageMenu: boolean = false;\r\n public userPreferredLanguage: string;\r\n public GetDownForMaintNotfication: GetDownForMaintNotficationResult = new GetDownForMaintNotficationResult();\r\n public showDFMBanner: boolean = false;\r\n public hasDFMNotification: boolean = false;\r\n public showDFMHeaderLink: boolean = false;\r\n private _serviceSubscription;\r\n private translationSubscription: Subscription;\r\n\r\n constructor(public bs: BackendService, private http: HttpClient, @Inject('BASE_URL') _baseUrl: string,\r\n public authService: AuthService, private router: Router, private translate: TranslateService, private errorService: ErrorService) {\r\n this.myHttpClient = http;\r\n this.baseUrl = _baseUrl;\r\n this.as = authService;\r\n this.dashboardurl = this.bs.PortalbaseUrl + \"/employee/dashboard/\";\r\n this.companyUsersUrl = this.bs.PortalbaseUrl + \"/users/\" + this.bs.clientId;\r\n\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n if (event.name == \"SurveyDataComponent\" && event.value == \"LanguageChange\") {\r\n // this.bs.consoleLog(\"SurveyDataComponent.event.name:\" + event.name + \",event.value:\" + event.value);\r\n this.translate.use(this.translate.currentLang);\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n //this.GetCompanyName();\r\n this.GetAllLanguages();\r\n if (this.as.isEmployee())\r\n this.isEmployee = true;\r\n else\r\n this.isEmployee = false;\r\n\r\n this.showLanguages = this.showLanguagesLink;\r\n this.userPreferredLanguage = this.authService.getNonRoleClaim(\"language\");\r\n\r\n this.getDownForMaintNotificationInfo();\r\n\r\n this.translationSubscription = this.translate.onLangChange.subscribe(() => {\r\n this.getDownForMaintNotificationInfo();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.translationSubscription) {\r\n this.translationSubscription.unsubscribe();\r\n }\r\n if (this._serviceSubscription) {\r\n this._serviceSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n setBannerVisibility() {\r\n if (this.hasDFMNotification) {\r\n let showBanner = this.getCookie(\"showbanner\");\r\n\r\n if (!showBanner || showBanner == 'true') {\r\n this.showDFMBanner = true;\r\n this.showDFMHeaderLink = false;\r\n } else {\r\n this.showDFMHeaderLink = true;\r\n this.showDFMBanner = false;\r\n }\r\n } else {\r\n this.showDFMBanner = false;\r\n this.showDFMHeaderLink = false;\r\n }\r\n }\r\n\r\n closeDiv() {\r\n this.setCookie(\"showbanner\", \"false\", 1);\r\n this.setBannerVisibility();\r\n }\r\n\r\n setCookie(c_name, value, exdays) {\r\n var exdate = new Date();\r\n exdate.setDate(exdate.getDate() + exdays);\r\n var c_value = escape(value) + ((exdays == null) ? \"\" : \"; expires=\" + exdate.toUTCString());\r\n document.cookie = c_name + \"=\" + c_value;\r\n }\r\n\r\n getCookie(c_name) {\r\n var i, x, y, ARRcookies = document.cookie.split(\";\");\r\n for (i = 0; i < ARRcookies.length; i++) {\r\n x = ARRcookies[i].substr(0, ARRcookies[i].indexOf(\"=\"));\r\n y = ARRcookies[i].substr(ARRcookies[i].indexOf(\"=\") + 1);\r\n x = x.replace(/^\\s+|\\s+$/g, \"\");\r\n if (x == c_name) {\r\n return unescape(y);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getDownForMaintNotificationInfo() {\r\n this.myHttpClient.get(this.baseUrl + 'api/CultureSurvey/GetDownForMaintNotification', { headers: this.authService.getRequestHeaders() }).subscribe(result => {\r\n if (result) {\r\n if (result.errorOccurred) {\r\n console.log(\"error:result.errorMessage\" + result.errorMessage);\r\n this.errorService.handleErrorNavigation([\"/error/general\"]);\r\n }\r\n else {\r\n if (result.enableNotification) {\r\n this.GetDownForMaintNotfication = new GetDownForMaintNotficationResult();\r\n this.GetDownForMaintNotfication.enableNotification = result.enableNotification;\r\n this.GetDownForMaintNotfication.dfmBannerMessage = result.dfmBannerMessage;\r\n this.GetDownForMaintNotfication.enableNotificationStartDateTime = result.enableNotificationStartDateTime;\r\n this.GetDownForMaintNotfication.enableNotificationEndDateTime = result.enableNotificationEndDateTime;\r\n this.GetDownForMaintNotfication.dfmStartTime = result.dfmStartTime;\r\n this.GetDownForMaintNotfication.dfmEndTime = result.dfmEndTime;\r\n\r\n const notificationStart = new Date(this.GetDownForMaintNotfication.enableNotificationStartDateTime);\r\n const notificationEnd = new Date(this.GetDownForMaintNotfication.enableNotificationEndDateTime);\r\n\r\n var dtStart = new Date(this.GetDownForMaintNotfication.dfmStartTime);\r\n var dtEnd = new Date(this.GetDownForMaintNotfication.dfmEndTime);\r\n\r\n const now = new Date();\r\n\r\n if (notificationStart < now && notificationEnd > now) {\r\n var timeZone = this.getLocalTimeZone(this.userPreferredLanguage);\r\n\r\n var strStart = this.getFormatedBannerDate(dtStart, \"en-US\");\r\n var strEnd = this.getFormatedBannerDate(dtEnd, \"en-US\");\r\n\r\n var monthAbbreviationStart = strStart.split(\" \")[0];\r\n var monthAbbreviationEnd = strEnd.split(\" \")[0];\r\n\r\n var translatedMonthStart = this.translateMonthAbbreviation(monthAbbreviationStart);\r\n var translatedMonthEnd = this.translateMonthAbbreviation(monthAbbreviationEnd);\r\n\r\n strStart = strStart.replace(monthAbbreviationStart, translatedMonthStart);\r\n strEnd = strEnd.replace(monthAbbreviationEnd, translatedMonthEnd);\r\n\r\n this.translate.get('global-dfm-banner').subscribe((data: any) => {\r\n this.GetDownForMaintNotfication.dfmBannerMessage = data.replace(\"applicationName\", \"Culture Survey\").replace(\"startDateTime\", strStart).replace(\"endDateTime\", strEnd).replace(\"currentTimeZone\", timeZone);\r\n });\r\n\r\n this.hasDFMNotification = true;\r\n }\r\n }\r\n\r\n this.setBannerVisibility();\r\n }\r\n }\r\n else {\r\n // console.log(\"result undefined\")\r\n // this.errorService.handleErrorNavigation([\"/error/general\"]);\r\n }\r\n }, error => {\r\n if (error.status === 401) {\r\n this.errorService.handleErrorNavigation([\"/error/noaccess\"]);\r\n }\r\n else {\r\n this.errorService.handleErrorNavigation([\"/error/general\"]);\r\n }\r\n }\r\n );\r\n }\r\n\r\n getLocalTimeZone(languageCode: string): string {\r\n if (languageCode == null) {\r\n languageCode = 'en-US'\r\n }\r\n\r\n const formatter = new Intl.DateTimeFormat(languageCode, {\r\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n timeZoneName: 'long'\r\n });\r\n\r\n const parts = formatter.formatToParts(new Date());\r\n return parts.find(part => part.type === 'timeZoneName')?.value || '';\r\n }\r\n\r\n getFormatedBannerDate(dateToFormat: Date, formatLocale: string) {\r\n const date = new Date(\"2024-12-17T12:00:00\");\r\n\r\n // Format the date\r\n const options: Intl.DateTimeFormatOptions = {\r\n month: \"short\", // Abbreviated month (e.g., Dec)\r\n day: \"numeric\", // Numeric day (e.g., 17)\r\n year: \"numeric\" // Full year (e.g., 2024)\r\n };\r\n\r\n const formattedDate = date.toLocaleDateString(formatLocale, options);\r\n\r\n // Format the time\r\n const timeOptions: Intl.DateTimeFormatOptions = {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\",\r\n hour12: true // Use 12-hour format with AM/PM\r\n };\r\n\r\n const formattedTime = date.toLocaleTimeString(formatLocale, timeOptions);\r\n\r\n // Combine date and time\r\n return `${formattedDate} ${formattedTime}`;\r\n }\r\n\r\n parseISOString(s) {\r\n var b = s.split(/\\D+/);\r\n return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5], b[6]));\r\n }\r\n\r\n onClickRoute(routeStr: string) {\r\n switch (routeStr) {\r\n case \"downformaintenance\": {\r\n this.setCookie(\"showbanner\", \"true\", 1);\r\n this.setBannerVisibility()\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n logOut() {\r\n this.as.logOut();\r\n }\r\n\r\n //GetCompanyName() {\r\n // if (this.bs.clientId) {\r\n // try {\r\n // const url: string = this.baseUrl + 'api/CultureSurvey/GetCompanyName?clientId=' + this.bs.clientId + '&engagementId=' + this.bs.engagementId;\r\n // this.http.get(url, { headers: this.authService.getRequestHeaders() }).subscribe(result => {\r\n // if (!result.errorOccurred === true) {\r\n // this.clientName = result.companyName;\r\n // }\r\n // else {\r\n // this.bs.consoleLog(result.errorMessage);\r\n // }\r\n // });\r\n // }\r\n // catch (exception) {\r\n // let ex = exception;\r\n // }\r\n // }\r\n //}\r\n\r\n GetAllLanguages() {\r\n try {\r\n const url: string = this.baseUrl + 'api/CultureSurvey/GetAllLanguages';\r\n this.http.get(url, { headers: this.authService.getRequestHeaders() }).subscribe(result => {\r\n if (!result.errorOccurred === true) {\r\n this.languages = result.languageCultures;\r\n this.languages.sort((a,b) => a.displayName.localeCompare(b.displayName))\r\n }\r\n else {\r\n this.bs.consoleLog(result.errorMessage);\r\n }\r\n });\r\n }\r\n catch (exception) {\r\n let ex = exception;\r\n }\r\n }\r\n\r\n selectLanguage(culture: string) {\r\n this.isOpenLanguageMenu = false;\r\n try { \r\n this.authService.claims.find(claim => claim.claimType == \"language\").claimValue = culture.trim();\r\n this.translate.use(culture.trim());\r\n const url: string = this.baseUrl + 'api/CultureSurvey/UpdateUserPreferredLanguage?culture=' + culture.trim();\r\n this.bs.sendComponentNotifyEvent({ name: \"SurveyDataComponent\", value: \"showSpinner\" });\r\n this.http.put(url, { }, { headers: this.authService.getRequestHeaders() }).subscribe(result => {\r\n //window.location.reload();\r\n this.bs.sendComponentNotifyEvent({ name: \"SurveyDataComponent\", value: \"LanguageChange\" });\r\n },\r\n err => {\r\n this.bs.sendComponentNotifyEvent({ name: \"SurveyDataComponent\", value: \"hideSpinner\" });\r\n console.log(err)\r\n });\r\n }\r\n catch (exception) {\r\n let ex = exception;\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n clickOut(event) {\r\n if (event.target.id != 'languagedropdownList') {\r\n this.isOpenLanguageMenu = false;\r\n }\r\n }\r\n\r\n translateMonthAbbreviation(monthStr): string {\r\n var month = \"\";\r\n\r\n switch (monthStr) {\r\n case 'Jan':\r\n this.translate.get('portal-page-Month-January').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break;\r\n case 'Feb':\r\n this.translate.get('portal-page-Month-February').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break\r\n case 'Mar':\r\n this.translate.get('portal-page-Month-March').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break;\r\n case 'Apr':\r\n this.translate.get('portal-page-Month-April').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break;\r\n case 'May':\r\n this.translate.get('portal-page-Month-May').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break;\r\n case 'Jun':\r\n this.translate.get('portal-page-Month-June').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break;\r\n case 'Jul':\r\n this.translate.get('portal-page-Month-July').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break;\r\n case 'Aug':\r\n this.translate.get('portal-page-Month-August').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break;\r\n case 'Sep':\r\n this.translate.get('portal-page-Month-September').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break;\r\n case 'Oct':\r\n this.translate.get('portal-page-Month-October').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break;\r\n case 'Nov':\r\n this.translate.get('portal-page-Month-November').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break;\r\n case 'Dec':\r\n this.translate.get('portal-page-Month-December').subscribe((data: any) => {\r\n month = String(data);\r\n });\r\n break;\r\n }\r\n\r\n if (month != \"\") {\r\n return month;\r\n } else {\r\n return monthStr;\r\n }\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n      \r\n {{this.GetDownForMaintNotfication.dfmBannerMessage}}\r\n      \r\n \r\n clear\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AppInsights } from 'applicationinsights-js';\r\n\r\n\r\n@Component({\r\n selector: 'add-home',\r\n templateUrl: './home.component.html'\r\n})\r\n \r\n\r\nexport class HomeComponent implements OnInit {\r\n\r\n heroes = ['Todd', 'Erin', 'Chris', 'Jim', 'Carol'];\r\n addHero(newHero: string) {\r\n if (newHero) {\r\n this.heroes.push(newHero);\r\n }\r\n AppInsights.trackEvent(\"Hero Added\");\r\n\r\n }\r\n\r\n hide(i: any) {\r\n this.heroes.splice(i, 1);\r\n }\r\n ngOnInit() { }\r\n\r\n}\r\n","Survey\r\nNot Found\r\nInsecure\r\n","import { Component, OnInit, LOCALE_ID, Inject } from '@angular/core';\nimport { IntlService, CldrIntlService } from '@progress/kendo-angular-intl';\nimport { CurrencyPipe } from '@angular/common';\r\n\n@Component({\n selector: 'app-international',\n templateUrl: './international.component.html',\n styleUrls: ['./international.component.scss']\n})\nexport class InternationalComponent {\n public myCurrency = 123456789;\n public myDate = new Date();\n public currencyPipe: CurrencyPipe\n public myLocaleId: string;\n providers: [CurrencyPipe]\n public locales: Array = [\"EUR\",\"DKK\",\"USD\",\"CNY\",\"AUD\",\"XPF\",\"INR\",\"ISK\",\"CHF\",\"VUV\"]\n\n\n constructor(@Inject(LOCALE_ID) public localeId: string, public intlService: IntlService) {\n }\n\n\n public onLocaleChange(locale: string): void {\n this.myLocaleId = locale;\n //(this.intlService as CldrIntlService).localeId = locale;\n }\n currencyInputChanged(value) {\r\n var num = value.replace(/[$,]/g, \"\");\r\n // this.myCurrency = Number(num);\r\n return Number(num);\r\n }\n}\n","
\r\n Choose CurrencyLocale\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n Locale = {{this.myLocaleId}}\r\n
\r\n\r\n \r\n\r\n
    \r\n myCurrency | currency : 'USD' : 'symbol'\r\n
  • {{ myCurrency | currency : 'USD' : 'symbol' }}
  • \r\n
  • {{ myCurrency | currency : 'DKK' :'symbol' }}
  • \r\n
  • {{ myCurrency | currency : 'CNY' :'symbol' }}
  • \r\n
  • {{ myCurrency | currency : 'EUR' :'symbol' }}
  • \r\n myCurrency | currency : 'USD' : true\r\n
  • {{ myCurrency | currency : 'USD' : true }}
  • \r\n myCurrency | currency : 'DKK' :false\r\n
  • {{ myCurrency | currency : 'DKK' :false }}
  • \r\n
  • {{ myCurrency | currency : 'CNY' :true }}
  • \r\n
  • {{ myCurrency | currency : 'EUR' :true }}
  • \r\n intlService.formatNumber(myCurrency, 'c')\r\n
  • {{ intlService.formatNumber(myCurrency, 'c') }}
  • \r\n
\r\n\r\n
\r\n","export class CrossValidation {\r\n validation_leftside: string;\r\n comparison_operator: string;\r\n validation_rightside: string;\n errorMessage: string;\n validation_intent: string;\n}\n","export class CultureSurveyResponse {\r\n variableName: string;\r\n response: string;\r\n isConfidential: boolean;\r\n isValid: boolean;\r\n}\r\n","import { CultureSurveyResponse } from './culture-survey-response';\r\n\r\nexport class GetDownForMaintNotficationResult {\r\n errorOccurred: boolean;\r\n errorMessage: string;\r\n errorId: number;\r\n appName: string;\r\n enableNotification: boolean;\r\n enableNotificationStartDateTime: string;\r\n enableNotificationEndDateTime: string;\r\n isDownForMaint: boolean;\r\n dfmStartTime: string;\r\n dfmEndTime: string;\r\n dfmBannerMessage: string;\r\n isEmgDownForMaint: boolean;\r\n}\r\n\r\nexport class ClientPhoto {\r\n fileName: string = \"\";\r\n caption: string = \"\";\r\n primary: boolean = false;\r\n}\r\n\r\nexport class SaveClientImagesRequest {\r\n cultureSurveyId: string;\r\n countryCode: string;\r\n clientPhotos: ClientPhoto[];\r\n logoFileName: string;\r\n userGUIDId: string;\r\n}\r\n\r\nexport class SaveClientImagesResult {\r\n errorOccurred: boolean;\r\n errorMessage: string;\r\n surveyState: number;\r\n countryCode: string;\r\n clientImages: ClientImages[];\r\n}\r\n\r\nexport class Document {\r\n fileName: string = \"\";\r\n name: string = \"\";\r\n type: string = \"\";\r\n size: number = 0;\r\n variableName: string = \"\";\r\n}\r\n\r\nexport class ClientErrorResult {\r\n errorOccurred: boolean;\r\n errorMessage: string;\r\n}\r\n\r\nexport class ClientError {\r\n category: number;\r\n etype: string;\r\n message: string;\r\n id: number;\r\n eid: number;\r\n cid: number;\r\n user: string;\r\n application: string;\r\n}\r\n\r\nexport class SaveClientDocumentsRequest {\r\n cultureSurveyId: string;\r\n clientDocuments: Document[];\r\n userGUIDId: string;\r\n}\r\n\r\nexport class DeleteClientDocumentRequest {\r\n cultureSurveyId: string;\r\n fileName: string = \"\";\r\n}\r\n\r\nexport class DeleteClientImageRequest {\r\n cultureSurveyId: string;\r\n fileName: string = \"\";\r\n}\r\n\r\nexport class DeleteClientDocumentResult {\r\n errorOccurred: boolean;\r\n errorMessage: string;\r\n}\r\n\r\nexport class DeleteClientImageResult {\r\n errorOccurred: boolean;\r\n errorMessage: string;\r\n}\r\n\r\nexport class ClientAssets {\r\n countryCode: string;\r\n photos: ClientPhoto[]\r\n logoFileName: string;\r\n}\r\n\r\nexport class ClientImages {\r\n id: string;\r\n clientId: number\r\n engagementId: number;\r\n countryCode: string;\r\n photos: ClientPhoto[];\r\n logoFileName: string;\r\n CreatedDate: string;\r\n LastModifiedDate: string;\r\n}\r\n\r\nexport class SaveCultureSurveyRequest {\r\n cultureSurveyId: string;\r\n isSubmit: boolean;\r\n userGUIDId: string;\r\n saveId: number;\r\n verbosLogging: boolean;\r\n responses: CultureSurveyResponse[];\r\n}\r\nexport class SaveCultureSurveyResult {\r\n errorOccurred: boolean;\r\n errorMessage: string;\r\n surveyState: string;\r\n refreshResponses: CultureSurveyResponse[];\r\n clientImages: ClientImages[];\r\n clientDocuments: Document[];\r\n}\r\n\r\nexport class ErrorHighlights {\r\n public errorText: string;\r\n public highlightVars: string[];\r\n public hoverText: string;\r\n}\r\n\r\nexport class ComponentNotifyEvent {\r\n name: string = \"\";\r\n value: string = \"\";\r\n}\r\n\r\nexport class ClientConfiguration {\r\n AuthServerAuthority: string;\r\n ApplicationInsightsKey: string;\r\n PortalURL: string;\r\n IsAppMaintenanceMode: string;\r\n ExpectedEnvironmentClaim: string;\r\n EnablePendo: boolean;\r\n PostLogoutRedirectUri: string;\r\n}\r\n\r\nexport class GetClientConfigurationResult {\r\n errorOccurred: boolean;\r\n errorMessage: string;\r\n configuration: ClientConfiguration;\r\n}\r\n\r\nexport interface Claim {\r\n claimType: string;\r\n claimValue: string;\r\n}\r\n\r\nexport class SetPortalContactLoginDateResult {\r\n isError: boolean;\r\n errorStr: string;\r\n}\r\nexport class GetCompanyNameResult {\r\n errorOccurred: boolean;\r\n companyName: string;\r\n errorMessage: string;\r\n}\r\n\r\nexport class CountryInfo {\r\n countryCode: string;\r\n countryName: string;\r\n pageCountryName: string;\r\n}\r\n\r\nexport class CurrencyInfo {\r\n code: string;\r\n currency: string;\r\n pageCurrency: string;\r\n}\r\n\r\nexport class CultureSurveySection {\r\n sectionHeaderId: string;\r\n countryCode: string;\r\n}\r\n\r\nexport class AppConfigDetailsResult {\r\n isError: boolean;\r\n errorStr: string;\r\n isAppMaintenanceMode: \"\";\r\n appVersion: string = \"\";\r\n}\r\n\r\nexport class ReopenCultureSurveyResult {\r\n isError: boolean;\r\n errorStr: string;\r\n}\r\n\r\nexport class saveStateInfo {\r\n responses: CultureSurveyResponse[];\r\n responsesToClear: CultureSurveyResponse[];\r\n isSubmit: boolean;\r\n isValidateCheck: boolean;\r\n saveId: number;\r\n}\r\n\r\nexport class postResponseInfo {\r\n saveId: number;\r\n topLevelParentResponsesToUpdate: CultureSurveyResponse[];\r\n secondLevelParentResponsesToUpdate: CultureSurveyResponse[];\r\n childResponsesToUpdate: CultureSurveyResponse[];\r\n gridNotificationEvents: string[];\r\n //sendBODGridReloadEvent: boolean = false;\r\n //sendNumEmpGridReloadEvent: boolean = false;\r\n //sendDirRepGridReloadEvent: boolean = false;\r\n isValidateCheck: boolean = false;\r\n}\r\n\r\nexport class LanguageCulture {\r\n name: boolean;\r\n culture: string;\r\n displayName: string;\r\n}\r\n\r\nexport class GetAllLanguages {\r\n errorOccurred: boolean;\r\n errorMessage: string;\r\n languageCultures: LanguageCulture[]\r\n}\r\nexport class GetMaxClientImageUploadSizeResult {\r\n isError: boolean;\r\n errorStr: string;\r\n maxClientImageUploadSize: number;\r\n}\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-nav-menu',\r\n templateUrl: './nav-menu.component.html',\r\n styleUrls: ['./nav-menu.component.scss']\r\n})\r\nexport class NavMenuComponent implements OnInit {\r\n isExpanded = false;\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 ngOnInit() { }\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-notfound',\n templateUrl: './notfound.component.html',\n styleUrls: ['./notfound.component.scss']\n})\nexport class NotfoundComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","

\r\n \r\n CultureSurvey Not Found.\r\n

\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { CultureSurveyAnswerOption } from '../../models/culture-survey-answer-option';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-choose-multiple',\r\n templateUrl: './choose-multiple.component.html',\r\n styleUrls: ['./choose-multiple.component.scss']\r\n})\r\nexport class ChooseMultipleComponent implements OnInit {\r\n @Input() question: CultureSurveyQuestion;\r\n @Input() response: CultureSurveyResponse;\n validationMessage: string = \"\";\n confidentialRollover: string = \"\";\n listExplanation: string = \"\";\n canBeConfidential: boolean = false;\n dropdownPointerClass: string = \"dropdown-pointer\";\r\n private _serviceSubscription;\n\n constructor(private bs: BackendService, private translate: TranslateService) {\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.name}`);\r\n //this.bs.consoleLog(\"currency:ResetComponentEvent called\");\r\n if (event.name == this.question.variableName && event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"ChooseMultipleComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\n }\n\n ngOnInit() {\n this.onResponseChange();\n }\n\n onResponseChange() {\r\n if ((this.bs.surveyState.toLowerCase() == \"complete\") || (this.bs.surveyState.toLowerCase() == \"submitting\")) {\r\n this.dropdownPointerClass = \"dropdown-pointer-disabled\";\r\n }\r\n\n if (this.question.canBeConfidential) {\n //this.confidentialRollover = \"Check here to keep this information confidential.\";\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n this.canBeConfidential = true;\n }\n else\n // this.confidentialRollover = \"This question can't be marked confidential.\";\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n\n if (this.question.listExplanation)\n this.listExplanation = this.question.listExplanation;\n else\n //this.listExplanation = \"There is no list specific information relevent for this question.\";\n {\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\r\n }\n if (this.response.response.length > 0) {\n this.setValidity();\n }\r\n }\n\r\n setValidity() {\r\n this.validationMessage = \"\";\r\n if (this.response.response.length > 0)\r\n this.response.isValid = true;\r\n if (this.response.variableName == \"ca1_GEN_organization\") {\r\n if (this.response.response.length == 0) {\r\n this.response.isValid = false;\r\n //this.validationMessage = \"You must select at least one option.\"\r\n this.translate.get('cs-validationmessage-enteroneoption').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n }\r\n }\r\n }\r\n\r\n isItemChecked(ao: CultureSurveyAnswerOption) {\r\n if (this.response.response != \"\") {\r\n var answers = this.response.response.split(\",\");\r\n if (answers.includes(ao.answerOptionValue))\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n onChange(ao: CultureSurveyAnswerOption) {\r\n this.validationMessage = \"\";\r\n var answers: Array = [];\r\n\r\n if (this.response.response.length > 0) {\r\n answers = this.response.response.split(\",\");\r\n const index = answers.indexOf(ao.answerOptionValue, 0);\r\n if (index > -1) {\r\n // answeroption was just unchecked so remove it.\r\n answers.splice(index, 1);\r\n }\r\n else {\r\n answers.push(ao.answerOptionValue);\r\n }\r\n }\r\n else {\r\n answers.push(ao.answerOptionValue);\r\n }\r\n\r\n if (answers.length > 0) {\r\n this.response.response = answers.join(\",\");\r\n this.response.isValid = true;\r\n }\r\n else {\r\n this.response.response = \"\";\r\n this.response.isValid = false;\r\n }\r\n\r\n if (this.response.variableName == \"ca1_GEN_organization\") {\r\n if (this.response.response.length == 0) {\r\n this.response.isValid = false;\r\n //this.validationMessage = \"You must select at least one option.\"\r\n this.translate.get('cs-validationmessage-enteroneoption').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n }\r\n }\r\n\r\n this.bs.saveAppState(this.response)\r\n\r\n }\r\n\r\n}\r\n","\r\n
\r\n\r\n
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n\r\n
{{validationMessage}}
\r\n\r\n \r\n\r\n\r\n
\r\n\r\n
= 10\">\r\n
\r\n

\r\n {{ question.displayText }}\r\n

\r\n \r\n
\r\n\r\n
\r\n \r\n
{{validationMessage}}
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input, Inject, OnChanges } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { CultureSurveyAnswerOption } from '../../models/culture-survey-answer-option';\r\nimport { ComponentNotifyEvent, CountryInfo } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-choose-one',\r\n templateUrl: './choose-one.component.html',\r\n styleUrls: ['./choose-one.component.scss']\r\n})\r\n\r\nexport class ChooseOneComponent implements OnInit {\r\n @Input() question: CultureSurveyQuestion;\r\n @Input() response: CultureSurveyResponse;\r\n\r\n public selectedItem: CultureSurveyAnswerOption = null;\r\n validationMessage: string = \"\";\r\n confidentialRollover: string = \"\";\r\n listExplanation: string = \"\";\r\n canBeConfidential: boolean = false;\r\n dropdownClassOverride: string = \"\";\r\n dropdownAnswerOptions: CultureSurveyAnswerOption[];\r\n dropdownDisabled: boolean = false;\r\n dropdownPointerClass: string = \"dropdown-pointer\";\r\n private _serviceSubscription;\r\n\r\n constructor(private bs: BackendService, private translate: TranslateService) {\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n if (event.name == this.question.variableName) {\r\n this.bs.consoleLog(\"ChooseOneComponent.event.name:\" + event.name + \",event.value:\" + event.value);\r\n if (event.value == \"clear\")\r\n this.selectedItem = null;\r\n //this.bs.clearResponse(varName);\r\n //try {\r\n // this.bs.consoleLog(\"CHOOSEONE:this.selectedItem.answerOptionText:\" + this.selectedItem.answerOptionText + \",this.selectedItem.answerOptionId:\" + this.selectedItem.answerOptionId)\r\n //this.selectedItem.answerOptionText = \"\";\r\n //}\r\n //catch {\r\n //}\r\n if (event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n if (this.response.response == \"\")\r\n this.selectedItem = null;\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"ChooseOneComponent.varName:\" + this.question.variableName + \", response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n setDropdownClassOverride() {\r\n //override the css dropdown width if a value is set in the template\r\n if (this.question.variableName.indexOf(\"ca1_GEN_coState_REQ\") == 0) // This is required because of the new _COUNTRY[??] appenditure\r\n this.dropdownClassOverride = \"dropdown-select-state\";\r\n if (this.question.variableName == \"cb_globalHQ_country\")\r\n this.dropdownClassOverride = \"dropdown-select-country\";\r\n }\r\n\r\n setValidity() {\r\n if (this.response.response.length > 0) {\r\n this.response.isValid = true;\r\n this.validationMessage = \"\";\r\n }\r\n else {\r\n if (this.question.required == true) {\r\n //this.validationMessage = \"This field is required\";\r\n this.translate.get('cs-validationmessage-filerequired').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.onResponseChange();\r\n }\r\n\r\n onResponseChange() {\r\n if ((this.bs.surveyState.toLowerCase() == \"complete\") || (this.bs.surveyState.toLowerCase() == \"submitting\")) {\r\n this.dropdownDisabled = true;\r\n this.dropdownPointerClass = \"dropdown-pointer-disabled\";\r\n }\r\n\r\n if (this.question.canBeConfidential) {\r\n //this.confidentialRollover = \"Check here to keep this information confidential.\";\r\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n this.canBeConfidential = true;\r\n }\r\n else\r\n //this.confidentialRollover = \"This question can't be marked confidential.\";\r\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n\r\n if (this.question.listExplanation)\r\n this.listExplanation = this.question.listExplanation;\r\n else\r\n //this.listExplanation = \"There is no list specific information relevant for this question.\";\r\n {\r\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\r\n }\r\n\r\n if (this.response.response.length > 0) {\r\n //let answerOption: CultureSurveyAnswerOption = this.question.answerOptions.find(x => x.answerOptionText == this.response.response);\r\n let answerOption: CultureSurveyAnswerOption = this.question.answerOptions.find(x => x.answerOptionValue == this.response.response);\r\n this.selectedItem = answerOption;\r\n\r\n if (this.question?.variableName?.toLowerCase() == \"cb_globalhq_country\") {\r\n this.translate.get('cs-page-country-' + this.selectedItem.answerOptionText).subscribe((data: any) => {\r\n if (data) {\r\n this.selectedItem.answerOptionText = String(data);\r\n }\r\n });\r\n }\r\n\r\n if (this.question?.variableName.indexOf(\"ca1_GEN_coState_REQ_COUNTRY\") != -1) {\r\n this.translate.get('cs-page-state-' + this.selectedItem.answerOptionText).subscribe((data: any) => {\r\n if (data) {\r\n this.selectedItem.answerOptionText = String(data);\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n //if this is a dropdown, set any question-specific overrides\r\n this.setDropdownClassOverride();\r\n\r\n if (this.response.response.length > 0) {\r\n this.setValidity();\r\n }\r\n\r\n }\r\n\r\n onChange(ao: CultureSurveyAnswerOption) {\r\n //this.response.response = ao.answerOptionText;\r\n this.response.response = ao.answerOptionValue;\r\n this.setValidity();\r\n\r\n this.bs.consoleLog(\"ChooseOneComponent.onChange:\" + this.question.variableName + \", response:\" + this.response.response);\r\n\r\n // Bring up special save dialog\r\n if (this.response.variableName.indexOf(\"ca1_GEN_OperateMultipleCountries\") == 0) {\r\n this.bs.sendComponentNotifyEvent({ name: \"SurveyDataComponent\", value: \"showSpinner\" });\r\n }\r\n\r\n if (this.bs.isBranchingParentAnsweredNo(this.response) && this.response.response.toLowerCase() == \"no\") {\r\n var responsesToSave: CultureSurveyResponse[] = [];\r\n responsesToSave.push(this.response);\r\n\r\n this.bs.consoleLog(\"isBranchingParentAnsweredNo = true:\");\r\n\r\n switch (this.response.variableName) {\r\n case \"cb_isSubsidiary\": {\r\n this.clearIfNeccessary(responsesToSave, \"cb_parentCompanyName\")\r\n this.clearIfNeccessary(responsesToSave, \"cb_parentWebsite\")\r\n this.clearIfNeccessary(responsesToSave, \"ca1_GEN_parentOrgPubliclyTraded\")\r\n this.clearIfNeccessary(responsesToSave, \"cb_parentStockTicker\")\r\n break;\r\n }\r\n case \"ca1_GEN_parentOrgPubliclyTraded\": {\r\n this.clearIfNeccessary(responsesToSave, \"cb_parentStockTicker\")\r\n break;\r\n }\r\n case \"ca1_GEN_OperateMultipleCountries\": {\r\n this.clearIfNeccessary(responsesToSave, \"ca1_GEN_worldwideRev\")\r\n this.clearIfNeccessary(responsesToSave, \"ca1_DEMO_empNumWorldWide\")\r\n this.clearIfNeccessary(responsesToSave, \"cb_NumCountries\")\r\n this.clearIfNeccessary(responsesToSave, \"cb_globalHQ_country\")\r\n this.clearIfNeccessary(responsesToSave, \"cb_numEmployees_globalHQ_country\")\r\n this.clearIfNeccessary(responsesToSave, \"cb_numEmployees_Europe\")\r\n this.clearIfNeccessary(responsesToSave, \"ca1_GEN_parentOrgPubliclyTraded\")\r\n this.clearIfNeccessary(responsesToSave, \"cb_numEmployees_LatinAmerica\")\r\n this.clearIfNeccessary(responsesToSave, \"cb_numEmployees_AsiaMiddleEast\")\r\n this.clearIfNeccessary(responsesToSave, \"ca1_DEMO_name\")\r\n this.clearIfNeccessary(responsesToSave, \"ca1_DEMO_title\")\r\n this.clearIfNeccessary(responsesToSave, \"ca1_DEMO_email\")\r\n for (const countryInfo of this.bs.countries) {\r\n this.clearIfNeccessary(responsesToSave, \"ca1_GEN_OperateDifferentCompanyName_COUNTRY[\" + countryInfo.countryCode + \"]\")\r\n this.clearIfNeccessary(responsesToSave, \"ca1_GEN_CountryCompanyBrandName_COUNTRY[\" + countryInfo.countryCode + \"]\")\r\n this.clearIfNeccessary(responsesToSave, \"ca1_GEN_OperateDifferentIndustry_COUNTRY[\" + countryInfo.countryCode + \"]\")\r\n this.clearIfNeccessary(responsesToSave, \"ca1_GEN_NAICSCode_COUNTRY[\" + countryInfo.countryCode + \"]\")\r\n this.clearIfNeccessary(responsesToSave, \"ca1_GEN_NAICSVerticalCode_COUNTRY[\" + countryInfo.countryCode + \"]\")\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (this.response.variableName.indexOf(\"ca1_GEN_OperateDifferentCompanyName_COUNTRY\") == 0) {\r\n let countryCode = \"\";\r\n let index = this.response.variableName.indexOf(\"[\");\r\n if (index >= 0) {\r\n countryCode = this.response.variableName.substring(index + 1, index + 3);\r\n this.clearIfNeccessary(responsesToSave, \"ca1_GEN_CountryCompanyBrandName_COUNTRY[\" + countryCode + \"]\")\r\n }\r\n }\r\n\r\n if (this.response.variableName.indexOf(\"ca1_GEN_OperateDifferentIndustry_COUNTRY\") == 0) {\r\n let countryCode = \"\";\r\n let index = this.response.variableName.indexOf(\"[\");\r\n if (index >= 0) {\r\n countryCode = this.response.variableName.substring(index + 1, index + 3);\r\n this.clearIfNeccessary(responsesToSave, \"ca1_GEN_NAICSCode_COUNTRY[\" + countryCode + \"]\")\r\n this.clearIfNeccessary(responsesToSave, \"ca1_GEN_NAICSVerticalCode_COUNTRY[\" + countryCode + \"]\")\r\n }\r\n }\r\n\r\n //for (const response of responsesToSave) {\r\n // this.bs.consoleLog(\"ChooseOneComponent.saving: \" + response.variableName);\r\n //}\r\n\r\n this.bs.saveAppStateResponses(responsesToSave, this.bs.CLEAR_EVENT);\r\n }\r\n else\r\n this.bs.saveAppState(this.response)\r\n }\r\n\r\n\r\n public clearIfNeccessary(responsesToSave: CultureSurveyResponse[], variableName: string) {\r\n //let res: CultureSurveyResponse = this.bs.getResponse(variableName)\r\n //if (!res) // if we can't find the response then don't save\r\n // return;\r\n //if (res.response != \"\" || res.isConfidential || !res.isValid) // if any of the values are not what we want then save\r\n responsesToSave.push({ variableName: variableName, response: \"\", isConfidential: false, isValid: true })\r\n }\r\n\r\n public selectionChange(ao: CultureSurveyAnswerOption): void {\r\n let responsesToSave: CultureSurveyResponse[] = [];\r\n\r\n //this.response.response = ao.answerOptionText;\r\n this.response.response = ao.answerOptionValue;\r\n\r\n // If this dropdown has a dependent child dropdown, clear the child response\r\n var childVariableName: string = this.getDependencyVariableName(\"child\");\r\n if (childVariableName.length > 0) {\r\n this.bs.clearResponseFromAppState(childVariableName);\r\n this.bs.onChange.emit({ name: childVariableName, value: \"clear\" });\r\n }\r\n this.setValidity();\r\n responsesToSave.push(this.response)\r\n if (childVariableName.length > 0) {\r\n let responseToSave: CultureSurveyResponse = { variableName: childVariableName, response: \"\", isConfidential: false, isValid: true };\r\n responsesToSave.push(responseToSave)\r\n }\r\n this.bs.saveAppStateResponses(responsesToSave);\r\n }\r\n\r\n public onOpen(event: any): void {\r\n // Re-build the list of appropriate answer options for a dropdown\r\n var parentVariableName: string = this.getDependencyVariableName(\"parent\");\r\n var parentResponseValue: string = \"\";\r\n if (parentVariableName.length > 0)\r\n parentResponseValue = this.bs.getResponse(parentVariableName).response;\r\n this.buildDropdownAnswerOptions(parentVariableName, parentResponseValue);\r\n }\r\n\r\n // Build the list of answer options to present in a dropdown\r\n buildDropdownAnswerOptions(parentVariableName, parentResponseValue) {\r\n if (parentVariableName.length == 0) {\r\n // No parent relationship, include all available answer options\r\n this.dropdownAnswerOptions = this.question.answerOptions;\r\n }\r\n else {\r\n // Include only those that match the dependency\r\n this.dropdownAnswerOptions = [];\r\n for (var answerOption of this.question.answerOptions) {\r\n if (answerOption.dependentValue == parentResponseValue) {\r\n this.dropdownAnswerOptions.push(answerOption);\r\n }\r\n }\r\n }\r\n\r\n if (this.question?.variableName?.toLowerCase() == \"cb_globalhq_country\") {\r\n this.dropdownAnswerOptions.forEach(x => {\r\n this.translate.get('cs-page-country-' + x.answerOptionText).subscribe((data: any) => {\r\n if (data) {\r\n x.answerOptionText = String(data);\r\n }\r\n });\r\n }\r\n );\r\n }\r\n\r\n if (this.question?.variableName.indexOf(\"ca1_GEN_coState_REQ_COUNTRY\") != -1) {\r\n this.dropdownAnswerOptions.forEach(x => {\r\n this.translate.get('cs-page-state-' + x.answerOptionText).subscribe((data: any) => {\r\n if (data) {\r\n x.answerOptionText = String(data);\r\n }\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n getDependencyVariableName(dependencyType) {\r\n var dependentVariableName: string = \"\";\r\n if (this.question.dependentVariableName.length > 0) {\r\n // This question has a parent or child dependency on the value entered for a different question\r\n var dependencies: string[] = this.question.dependentVariableName.split(\":\");\r\n if (dependencies.length > 1) {\r\n if (dependencies[0].toLowerCase() == dependencyType.toLowerCase()) {\r\n dependentVariableName = dependencies[1];\r\n }\r\n }\r\n }\r\n return dependentVariableName;\r\n }\r\n\r\n}\r\n","
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
{{validationMessage}}
\r\n
\r\n\r\n
= 5\">\r\n \r\n \r\n
{{validationMessage}}
\r\n
\r\n\r\n
\r\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent, CurrencyInfo } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\n@Component({\n selector: 'app-currency',\n templateUrl: './currency.component.html',\n styleUrls: ['./currency.component.scss']\n})\nexport class CurrencyComponent implements OnInit {\n @Input() question: CultureSurveyQuestion;\r\n @Input() response: CultureSurveyResponse;\n validationMessage: string = \"\";\n confidentialRollover: string = \"\";\n listExplanation: string = \"\";\n canBeConfidential: boolean = false;\r\n private _serviceSubscription;\r\n dropdownClassOverride: string = \"\";\r\n dropdownAnswerOptions: CurrencyInfo[];\r\n dropdownDisabled: boolean = false;\r\n dropdownPointerClass: string = \"dropdown-pointer\";\r\n public selectedItem: CurrencyInfo = null;\n public localResponse: CultureSurveyResponse = new CultureSurveyResponse;\n\n // export class CultureSurveyAnswerOption {\n // answerOptionId: number;\n // dependentValue: string;\n // answerOptionText: string;\n // variableName: string;\n //}\n\r\n constructor(private bs: BackendService, private translate: TranslateService) {\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n //this.bs.consoleLog(\"currency:ResetComponentEvent called\");\r\n if (event.name == this.question.variableName) {\r\n this.bs.consoleLog(\"CurrencyComponent.event.name:\" + event.name + \",event.value:\" + event.value);\r\n if (event.value == \"clear\")\r\n this.localResponse.response = \"\";\r\n if (event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"CurrencyComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\n\n ngOnInit() {\r\n this.onResponseChange();\n }\n\n onResponseChange() {\n //this.bs.consoleLog(\"currency:ngOnInit called. name/value:\" + this.response.variableName + \"/\" + this.response.response);\r\n\r\n this.dropdownAnswerOptions = this.bs.currencies;\r\n\r\n if ((this.bs.surveyState.toLowerCase() == \"complete\") || (this.bs.surveyState.toLowerCase() == \"submitting\")) {\r\n this.dropdownDisabled = true;\r\n this.dropdownPointerClass = \"dropdown-pointer-disabled\";\r\n }\r\n\r\n // The underlying currency text input is bound to this.localResponse.response. Originally I had it bound to this.response.response\r\n // however once that response was saved (by calling ) this.bs.saveAppState after that any change to this.response.response was being\r\n // propagated to saved state. And since the text box doesn't have the (USD) tagged onto the end what was happening was the currency codes\r\n // were getting lost. So by binding the text input box to this.localResponse.response we control when this gets saved to the saved state\r\n // mechanism. And only do this when the text input losses focus or when they change the currency dropdown\r\n\r\n this.localResponse = new CultureSurveyResponse;\r\n\r\n this.localResponse.isConfidential = this.response.isConfidential;\r\n this.localResponse.isValid = this.response.isValid;\r\n this.localResponse.response = this.response.response;\r\n this.localResponse.variableName = this.response.variableName;\r\n\r\n let currencyCode = \"\";\r\n const index = this.response.response.indexOf(\"(\");\r\n if (index >= 0) {\r\n currencyCode = this.response.response.substring(index + 1, index + 4);\n this.localResponse.response = this.response.response.substring(0, index - 1); // sub 1 to remove space before parens\r\n }\r\n\r\n if (currencyCode.length > 0)\r\n this.selectedItem = this.dropdownAnswerOptions.find(x => x.code === currencyCode);\r\n else\r\n this.selectedItem = this.dropdownAnswerOptions.find(x => x.code === this.question.currencyInfo.currencyCode);\r\n\r\n if (this.question.canBeConfidential) {\n //this.confidentialRollover = \"Check here to keep this information confidential.\";\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n this.canBeConfidential = true;\n }\n else\n //this.confidentialRollover = \"This question can't be marked confidential.\";\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n\n if (this.question.listExplanation)\n this.listExplanation = this.question.listExplanation;\n else\n //this.listExplanation = \"There is no list specific information relevent for this question.\";\n {\r\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\r\n }\n\r\n //if this is a dropdown, set any question-specific overrides\r\n this.setDropdownClassOverride();\n\n this.setValidity();\r\n }\n\r\n setDropdownClassOverride() {\r\n }\r\n\r\n public selectionChange(ao: CurrencyInfo, varName: string): void {\r\n //this.bs.consoleLog(\"selectionChange called. varName:\" + varName + \",code:\" + ao.code);\r\n this.selectedItem = ao;\r\n this.saveLocalResponse();\r\n }\r\n\r\n public saveLocalResponse(): void {\r\n const res: CultureSurveyResponse = new CultureSurveyResponse;\r\n res.isConfidential = this.localResponse.isConfidential;\r\n res.isValid = this.localResponse.isValid;\r\n res.response = this.localResponse.response + \" (\" + this.selectedItem.code + \")\";\r\n res.variableName = this.localResponse.variableName;\r\n //this.bs.consoleLog(\"CurrencyComp:saveLocalResponse:saveAppState gVar=\" + this.question.variableName + \",response=\" + res.response)\r\n this.bs.saveAppState(res);\r\n }\n\r\n public onOpen(event: any): void {\r\n }\n\n onKeyupEvent() {\n this.setValidity();\n }\n\n setValidity() {\n\n this.validationMessage = \"\";\n if (this.localResponse.response.length > 0) {\n\n this.localResponse.isValid = this.validateDollar(this.localResponse.response);\n if (!this.localResponse.isValid) {\r\n //this.validationMessage = \"Please enter as a whole number.\";\r\n this.translate.get('cs-validationmessage-wholenumber').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n }\n\n if (isNaN(this.numVal(this.localResponse.response))) {\n this.localResponse.isValid = false;\n this.translate.get('cs-validationmessage-numericonly').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\n }\r\n }\r\n\r\n }\n\r\n isConfidentialChanged() {\r\n //this.bs.consoleLog(\"saveAppState:isConfidentialChanged:currency\")\r\n this.bs.saveAppState(this.localResponse);\r\n }\n\n numVal(stringval: string): number {\n let mynum = stringval.replace(/,/gi, \"\");\r\n mynum = mynum.replace(\"$\", \"\");\r\n return parseInt(mynum);\r\n }\n\n isNumeric(val: any): val is number | string {\r\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\r\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\r\n // subtraction forces infinities to NaN\r\n // adding 1 corrects loss of precision from parseFloat (#15100)\r\n return (val - parseFloat(val) + 1) >= 0;\r\n }\n\n isFloat(n): boolean {\r\n return n != \"\" && !isNaN(n) && Math.round(n) != n;\r\n }\n\n validateDollar(temp_value): boolean {\n\n var Chars = \"0123456789.,\";\n for (var i = 0; i < temp_value.length; i++) {\n if (Chars.indexOf(temp_value.charAt(i)) == -1) {\n return false;\n }\n }\n return true;\n }\r\n\r\n focusOut() {\r\n //this.bs.consoleLog(\"currency:focusOut called.vname:\" + this.localResponse.variableName);\r\n\r\n this.localResponse.isValid = true;\r\n this.validationMessage = \"\";\r\n\r\n this.setValidity();\r\n\r\n if (this.localResponse.response.length == 0 && this.question.required) {\r\n this.localResponse.isValid = false;\r\n this.validationMessage = \"Required field.\"\r\n this.translate.get('cs-validationmessage-requiredfield').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n }\r\n\r\n if (this.localResponse.variableName.indexOf('ca1_GEN_Rev_COUNTRY') == 0) {\r\n if (this.numVal(this.localResponse.response) < 0) {\r\n //this.validationMessage = \"Please enter a number greater than or equal to zero\";\r\n this.translate.get('cs-validationmessage-greaterthaneq0').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n this.localResponse.isValid = false;\r\n }\r\n }\r\n\r\n if (this.localResponse.variableName == 'ca1_GEN_worldwideRev') {\r\n if (this.numVal(this.localResponse.response) < 0) {\r\n //this.validationMessage = \"Please enter a number greater than or equal to zero\";\r\n this.translate.get('cs-validationmessage-greaterthaneq0').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n this.localResponse.isValid = false;\r\n }\r\n }\r\n\r\n if (this.localResponse.variableName.indexOf('ca1_GEN_prevRev_COUNTRY') == 0) {\r\n if (this.numVal(this.localResponse.response) < 0) {\r\n //this.validationMessage = \"Please enter a number greater than or equal to zero\";\r\n this.translate.get('cs-validationmessage-greaterthaneq0').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n this.localResponse.isValid = false;\r\n }\r\n }\r\n\r\n //formatting xxx,xxx,xxx\r\n if (this.localResponse.response.length > 0 && this.localResponse.isValid) {\r\n this.localResponse.response = new Intl.NumberFormat('en-us', { minimumFractionDigits: 0 }).format(this.numVal(this.localResponse.response));\r\n }\r\n\r\n // create a local response to we can add the CurencyCode at the end.\r\n const myResponse: CultureSurveyResponse = new CultureSurveyResponse();\r\n myResponse.isConfidential = this.localResponse.isConfidential;\r\n myResponse.isValid = this.localResponse.isValid;\r\n myResponse.variableName = this.localResponse.variableName;\r\n myResponse.response = this.localResponse.response + \" (\" + this.selectedItem.code + \")\";\r\n //this.bs.consoleLog(\"CurrencyComp:focusOut:saveAppState gVar=\" + this.question.variableName + \",response=\" + myResponse.response)\r\n this.bs.saveAppState(myResponse);\r\n }\r\n}\r\n","\r\n
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
{{validationMessage}}
\r\n\r\n","/// \r\nimport { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { HttpHeaders, HttpClient, HttpParameterCodec } from '@angular/common/http';\r\nimport { AuthService, CustomHttpParamEncoder } from '../../services/auth.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-email',\r\n templateUrl: './email.component.html',\r\n styleUrls: ['./email.component.scss']\r\n})\r\nexport class EmailComponent implements OnInit {\r\n @Input() question;\r\n @Input() response;\r\n validationMessage: string = \"\";\r\n confidentialRollover: string = \"\";\r\n listExplanation: string = \"\";\r\n canBeConfidential: boolean = false;\r\n private _baseUrl: string;\r\n private _httpClient: HttpClient;\r\n emailIsValid = true;\r\n private _serviceSubscription;\r\n\r\n constructor(private bs: BackendService, @Inject('BASE_URL') baseUrl: string, private http: HttpClient, private authService: AuthService, private translate: TranslateService) {\r\n this._baseUrl = baseUrl;\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n //this.bs.consoleLog(\"currency:ResetComponentEvent called\");\");\r\n if (event.name == this.question.variableName && event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"EmailComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.onResponseChange();\r\n }\r\n\r\n onResponseChange() {\r\n if (this.question.canBeConfidential) {\r\n // this.confidentialRollover = \"Check here to keep this information confidential.\";\r\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n this.canBeConfidential = true;\r\n }\r\n else\r\n //this.confidentialRollover = \"This question can't be marked confidential.\";\r\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n\r\n if (this.question.listExplanation)\r\n this.listExplanation = this.question.listExplanation;\r\n else\r\n //this.listExplanation = \"There is no list specific information relevent for this question.\";\r\n {\r\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\r\n }\r\n\r\n this.IsValidEmail();\r\n }\r\n\r\n IsValidEmail() {\r\n if (this.response.response == \"\")\r\n return;\r\n this.bs.consoleLog(\"IsValidEmail.EmailAddress:'\" + this.response.response + \"'\");\r\n this.validationMessage = \"\";\r\n try {\r\n let encoder = new CustomHttpParamEncoder();\r\n let url: string = this._baseUrl + 'api/CultureSurvey/IsValidEmail?email=' + encoder.encodeKey(this.response.response.trim());\r\n this.http.get(url, { headers: this.authService.getRequestHeaders() }).subscribe(result => {\r\n if (result) {\r\n this.response.isValid = result;\r\n this.bs.consoleLog(\"Returned from IsValidEmail with valid email:'\" + this.response.response + \"'\");\r\n this.bs.saveAppState(this.response);\r\n }\r\n else {\r\n this.response.isValid = result;\r\n //this.validationMessage = \"Invalid email. Use only A-Z 0-9 ~!$%^&*_=+}{'?-.@\";\r\n this.translate.get('cs-validationmessage-emailinvalid').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n this.bs.consoleLog(\"Returned from IsValidEmail with invalid email:'\" + this.response.response + \"'\");\r\n this.bs.saveAppState(this.response);\r\n }\r\n return;\r\n }, error => {\r\n this.bs.consoleLog(\"Error:api/CultureSurvey/IsValidEmail call failed! error=\" + error)\r\n return;\r\n }\r\n );\r\n return;\r\n }\r\n catch (e) {\r\n console.error(\"api/CultureSurvey/IsValidEmail failed\");\r\n }\r\n return;\r\n }\r\n\r\n isConfidentialChanged() {\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n focusOut() {\r\n this.response.response = this.response.response.trim();\r\n //this.bs.saveAppState(this.response);\r\n this.IsValidEmail();\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
{{validationMessage}}
\r\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-essay',\r\n templateUrl: './essay.component.html',\r\n styleUrls: ['./essay.component.scss']\r\n})\r\nexport class EssayComponent implements OnInit {\r\n @Input() question;\r\n @Input() response;\r\n validationMessage: string = \"\";\r\n confidentialRollover: string = \"\";\r\n listExplanation: string = \"\";\r\n canBeConfidential: boolean = false;\r\n private _serviceSubscription;\r\n\r\n constructor(private bs: BackendService, private translate: TranslateService) {\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n //this.bs.consoleLog(\"currency:ResetComponentEvent called\");\");\r\n if (event.name == this.question.variableName && event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"EssayComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.onResponseChange();\r\n }\r\n\r\n onResponseChange() {\r\n if (this.question.canBeConfidential) {\r\n //this.confidentialRollover = \"Check here to keep this information confidential.\";\r\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n this.canBeConfidential = true;\r\n }\r\n else\r\n // this.confidentialRollover = \"This question can't be marked confidential.\";\r\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n\r\n if (this.question.listExplanation)\r\n this.listExplanation = this.question.listExplanation;\r\n else\r\n // this.listExplanation = \"There is no list specific information relevent for this question.\";\r\n {\r\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\r\n }\r\n this.setValidity();\r\n }\r\n\r\n setValidity() {\r\n if (this.response.response.length > 0)\r\n this.response.isValid = true;\r\n }\r\n\r\n onKeyupEvent() {\r\n this.setValidity();\r\n }\r\n\r\n isConfidentialChanged() {\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n focusOut() {\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n}\r\n","
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
{{validationMessage}}
\r\n\r\n\r\n","import { Component, OnInit, Inject, Input, DoCheck, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { UploadEvent, RemoveEvent, FileInfo, SelectEvent, FileRestrictions } from '@progress/kendo-angular-upload';\r\nimport { HttpClient, HttpParameterCodec } from '@angular/common/http';\r\nimport { BackendService } from '../../backend.service';\r\nimport { Document } from '../../models/misc-models';\r\nimport { DataEvent, DragStartEvent, DragEndEvent, DragOverEvent, NavigateEvent } from '@progress/kendo-angular-sortable';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { Router, ActivatedRoute, RouterModule } from '@angular/router';\r\nimport { ComponentNotifyEvent, CountryInfo } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from '../../services/auth.service'\r\nimport { ErrorService } from '../../services/error.service';\r\n\r\n@Component({\r\n selector: 'app-file',\r\n templateUrl: './file.component.html',\r\n styleUrls: ['./file.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\n\r\nexport class FileComponent implements OnInit {\r\n @Input() question: CultureSurveyQuestion;\r\n @Input() response: CultureSurveyResponse;\r\n @ViewChild('sortable') public sortable: any;\r\n private _kendoFiles: FileInfo[];\r\n private _baseUrl: string = \"\";\r\n private _filesSet: Set;\r\n private _interval;\r\n public cid: number;\r\n public eid: number;\r\n public surveyId: string;\r\n public validationMessage: string;\r\n public clientDocuments: Document[] = [];\r\n public isUploadDisabled: boolean = false;\r\n public title: string = \"Click to upload your profile images.\";\r\n public uploadSaveUrl: string = \"\";\r\n public uploadRemoveUrl: string = 'removeUrl'; // should represent an actual API endpoint\r\n public documentInfoFilenameContainer: string = \"document-info-filename-container\";\r\n public imageContainerRemoveClass: string = \"image-container-remove\";\r\n public warningDialogOpened = false;\r\n public warningDialogTitle = \"\";\r\n public warningDialogMessage = \"\";\r\n private _serviceSubscription;\r\n public displayText = \"\";\r\n public countryCode = \"\";\r\n public selectDocumentText = \"\";\r\n public required: boolean = false;\r\n constructor(private http: HttpClient,\r\n public bs: BackendService,\r\n private router: Router,\r\n private authService: AuthService,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private translate: TranslateService,\r\n private errorService: ErrorService ) {\r\n\r\n this.uploadSaveUrl = \"/api/ClientDocumentUpload/SaveFile\";\r\n this.uploadRemoveUrl = \"/api/ClientDocumentUpload/RemoveFile\";\r\n this._baseUrl = baseUrl;\r\n\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n this.bs.consoleLog(`event.name:${event.name}`);\r\n this.bs.consoleLog(`event.value:${event.value}`);\r\n if (event.name == \"FileComponent\" && event.value == \"reload\") {\r\n this.bs.consoleLog(\"FileComponent.event.name:\" + event.name + \",event.value:\" + event.value);\r\n this.onResponseChange();\r\n }\r\n }\r\n })\r\n\r\n }\r\n\r\n fileUploadRestrictions: FileRestrictions = {\r\n maxFileSize: 20971520,\r\n allowedExtensions: ['.pdf']\r\n };\r\n\r\n ngOnInit() {\r\n this.cid = this.bs.clientId\r\n this.eid = this.bs.engagementId;\r\n this.surveyId = this.bs.surveyId;\r\n this.translate.get('cs-button-selectdocument').subscribe((data: any) => {\r\n this.selectDocumentText = data;\r\n });\r\n this.required = this.question.required;\r\n this.displayText = this.question.displayText;\r\n this.countryCode = this.question.countryCode;\r\n if (this.countryCode == undefined || this.countryCode == null) {\r\n this.countryCode = \"\";\r\n }\r\n else {\r\n if (this.countryCode.toLowerCase() == \"global\") {\r\n this.countryCode = \"\";\r\n this.required = true;\r\n }\r\n }\r\n this.onResponseChange();\r\n }\r\n\r\n public onResponseChange() {\r\n this.clientDocuments = this.bs.getClientDocuments(this.question.variableName);\r\n if (this.question.variableName == \"ca_sampleExecCommunications\")\r\n this.isUploadDisabled = (this.clientDocuments != null && this.clientDocuments.length >= 2);\r\n\r\n // If the survey is submitted, disable the file item in the sortable control\r\n if ((this.bs.surveyState.toLowerCase() == \"complete\") || (this.bs.surveyState.toLowerCase() == \"submitting\")) {\r\n //this.photoImageContainerClass = \"photo-image-containter-disable\";\r\n this.documentInfoFilenameContainer = \"document-info-filename-container-disabled\";\r\n this.imageContainerRemoveClass = \"image-container-remove-hide\";\r\n }\r\n }\r\n\r\n public selectEventHandler(e: SelectEvent): boolean {\r\n let eventSuccess = true;\r\n let numInvalid = 0;\r\n let numTooLarge = 0;\r\n let numFileNameTooLong = 0;\r\n e.files.forEach((file) => {\r\n //that.log(`File selected: ${file.name}`);\r\n\r\n if (file.validationErrors && file.validationErrors.length) {\r\n if (file.size > 20971520)\r\n numTooLarge++;\r\n else\r\n numInvalid++;\r\n }\r\n if (file.name.length > 50) {\r\n numFileNameTooLong++;\r\n }\r\n });\r\n\r\n if (numInvalid > 0) {\r\n this.warningDialogOpened = true;\r\n //this.warningDialogTitle = \"Invalid file type\";\r\n this.translate.get('cs-validationmessage-invalidfiletype').subscribe((data: any) => {\r\n this.warningDialogTitle = data;\r\n });\r\n //this.warningDialogMessage = \"An invalid file type was detected. The following file types are supported: pdf\";\r\n this.translate.get('cs-validationmessage-documentFileType').subscribe((data: any) => {\r\n this.warningDialogMessage = data;\r\n });\r\n }\r\n else if (numTooLarge > 0) {\r\n this.warningDialogOpened = true;\r\n //this.warningDialogTitle = \"File too large\";\r\n this.translate.get('cs-validationmessage-filetoolarge').subscribe((data: any) => {\r\n this.warningDialogTitle = data;\r\n });\r\n //this.warningDialogMessage = \"Files greater than 20 megabytes cannot be uploaded. Please reduce the size and try again.\";\r\n this.translate.get('cs-validationmessage-filegreatherthan20mb').subscribe((data: any) => {\r\n this.warningDialogMessage = data;\r\n });\r\n }\r\n else if (numFileNameTooLong > 0) {\r\n e.preventDefault();\r\n eventSuccess = false;\r\n this.warningDialogOpened = true;\r\n //this.warningDialogTitle = \"Filename too long\";\r\n this.translate.get('cs-validationmessage-filenametoolongtitle').subscribe((data: any) => {\r\n this.warningDialogTitle = data;\r\n });\r\n //this.warningDialogMessage = \"Filenames longer than 50 characters cannot be uploaded. Please rename your file and try again.\";\r\n this.translate.get('cs-validationmessage-filenametoolongmessage').subscribe((data: any) => {\r\n this.warningDialogMessage = data;\r\n });\r\n }\r\n return eventSuccess;\r\n }\r\n\r\n public closeWarningDialog() {\r\n this.warningDialogOpened = false;\r\n }\r\n\r\n\r\n saveClientDocuments() {\r\n if ((this.bs.surveyState.toLowerCase() != \"complete\") && (this.bs.surveyState.toLowerCase() != \"submitting\")) {\r\n this.bs.saveClientDocuments(this.clientDocuments, this.question.variableName);\r\n }\r\n }\r\n\r\n onFocusOut() {\r\n this.saveClientDocuments();\r\n }\r\n\r\n onMouseUp(document) {\r\n let fileNameToDelete = document.fileName;\r\n let indexToRemove = this.clientDocuments.findIndex(d => d.fileName == fileNameToDelete); //find index in your array\r\n\r\n let clientDocumentsAfterRemoval = [];\r\n let index: number = 0;\r\n\r\n for (var i = 0; i < this.clientDocuments.length; i++) {\r\n if (i != indexToRemove) {\r\n let clientDocument: Document = this.clientDocuments[i];\r\n let newClientDocument: Document = new Document();\r\n newClientDocument.fileName = clientDocument.fileName;\r\n newClientDocument.name = clientDocument.name;\r\n newClientDocument.size = clientDocument.size;\r\n newClientDocument.type = clientDocument.type;\r\n newClientDocument.variableName = clientDocument.variableName;\r\n clientDocumentsAfterRemoval[index++] = newClientDocument;\r\n }\r\n }\r\n\r\n this.clientDocuments = clientDocumentsAfterRemoval;\r\n\r\n this.saveClientDocuments();\r\n\r\n if (this.question.variableName == \"ca_sampleExecCommunications\")\r\n this.isUploadDisabled = (this.clientDocuments != null && this.clientDocuments.length >= 2);\r\n\r\n this.bs.deleteClientDocumentFromBlobStorage(fileNameToDelete);\r\n }\r\n\r\n successEventHandler(e) {\r\n if (this.question.variableName == \"ca_sampleExecCommunications\") {\r\n if (this.clientDocuments != null && this.clientDocuments.length >= 2)\r\n return;\r\n }\r\n\r\n //Skip if a file doesn't validate\r\n if (e.response.body.blobFileName.match(\"VALIDATION_ERROR\")) {\r\n this.errorService.handleErrorNavigation([\"/error/invalidfile\"]);\r\n return;\r\n }\r\n\r\n let blobFileName: string = e.response.body.blobFileName;\r\n let clientFileName: string = e.response.body.clientFileName;\r\n let size: number = e.response.body.size;\r\n let type: string = e.files[0].rawFile.type;\r\n\r\n let clientDocumentsAfterAddition = [];\r\n\r\n let newClientDocument: Document = new Document();\r\n newClientDocument.fileName = blobFileName;\r\n newClientDocument.name = clientFileName;\r\n newClientDocument.type = type;\r\n newClientDocument.size = size;\r\n newClientDocument.variableName = this.question.variableName;\r\n\r\n clientDocumentsAfterAddition[0] = newClientDocument;\r\n\r\n if (this.question.variableName == \"ca_sampleExecCommunications\") {\r\n for (var i = 0; i <= this.clientDocuments.length - 1; i++) {\r\n if (i <= 5) {\r\n let newDocument: Document = new Document();\r\n newDocument.fileName = this.clientDocuments[i].fileName;\r\n newDocument.name = this.clientDocuments[i].name;\r\n newDocument.size = this.clientDocuments[i].size;\r\n newDocument.type = this.clientDocuments[i].type;\r\n newDocument.variableName = this.clientDocuments[i].variableName;\r\n clientDocumentsAfterAddition[i + 1] = newDocument;\r\n }\r\n }\r\n }\r\n\r\n this.clientDocuments = clientDocumentsAfterAddition;\r\n\r\n this.saveClientDocuments();\r\n\r\n if (this.question.variableName == \"ca_sampleExecCommunications\")\r\n this.isUploadDisabled = (this.clientDocuments != null && this.clientDocuments.length >= 2);\r\n }\r\n\r\n uploadEventHandler(e: UploadEvent) {\r\n this.cid = this.bs.clientId\r\n this.eid = this.bs.engagementId;\r\n let authToken = this.authService.getAuthorizationToken();\r\n e.data = {\r\n cid: this.cid,\r\n eid: this.eid,\r\n surveyId: this.surveyId,\r\n token: authToken\r\n };\r\n }\r\n\r\n //removeEventHandler(e: RemoveEvent) {\r\n // e.data = {\r\n // description: 'File remove'\r\n // };\r\n //}\r\n\r\n}\r\n\r\nexport class CustomHttpParamEncoder implements HttpParameterCodec {\r\n public encodeKey(key: string): string {\r\n return encodeURIComponent(key);\r\n }\r\n public encodeValue(value: string): string {\r\n return encodeURIComponent(value);\r\n }\r\n public decodeKey(key: string): string {\r\n return decodeURIComponent(key);\r\n }\r\n public decodeValue(value: string): string {\r\n return decodeURIComponent(value);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n\r\n
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
{{\"cs-validationmessage-max2docallowed\" | translate}}
\r\n\r\n
\r\n
{{document.name}}
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n {{warningDialogTitle}}\r\n \r\n

{{warningDialogMessage}}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\nimport { Store } from 'redux';\r\nimport { AppStore } from '../../app.store';\r\nimport { AppState } from '../../app.state';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\ntype MyType = {\r\n heading: string;\r\n value1: string;\r\n value2: string;\r\n value3: string;\r\n valMes1: string;\r\n valMes2: string;\r\n valMes3: string;\r\n varName1: string;\r\n varName2: string;\r\n varName3: string;\r\n}\n\n@Component({\n selector: 'app-grid',\n templateUrl: './grid.component.html',\n styleUrls: ['./grid.component.scss']\n})\n\nexport class GridComponent implements OnInit {\r\n @Input() question: CultureSurveyQuestion;\r\n @Input() response: CultureSurveyResponse;\n validationMessage: string = \"\";\r\n title: string = \"\";\n isValid: boolean = false;\n isConfidential: boolean = false;\n gridHeader1: string;\r\n gridHeader2: string;\r\n gridHeader3: string;\n data: MyType[] = [];\r\n private _serviceSubscription;\n\n constructor(private bs: BackendService, @Inject(AppStore) private store: Store, private translate: TranslateService) {\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n\r\n if (this.title == event.name) {\r\n // The Confidentiality flag was clicked. Need to save all the values with the new confidentiality value\r\n let str = event.value;\r\n if (str.indexOf(\"confidential|\") == 0) {\r\n var strArray = str.split(\"|\");\r\n var value = strArray[1].toLowerCase();\r\n var countryCode = strArray[2];\r\n if (this.question.countryCode == countryCode) {\r\n if (value == \"true\")\r\n this.onConfidentialChanged(true);\r\n else\r\n if (value == \"false\")\r\n this.onConfidentialChanged(false);\r\n }\r\n }\r\n }\r\n\r\n if (event.value == \"reload\") {\r\n //this.bs.consoleLog(\"GridComponent.displayText:\" + this.question.displayText + \",GridComponent.countryCode:\" + this.question.countryCode + \"event.name:\" + event.name + \",GridComponent.GridName:\" + this.question.gridName);\r\n if (this.question.gridName == \"cb-page-questions-boardofdirectors\" && event.name == \"BOD\") {\r\n this.onResponseChange();\r\n }\r\n else {\r\n var strArray = event.name.split(\"|\");\r\n var cc = strArray[1];\r\n if (cc == this.question.countryCode && ((this.question.gridName == \"cb-page-questions-ceodirectreports\" && event.name.indexOf(\"DR|\") == 0) ||\r\n (this.question.gridName == \"cb-page-questions-numberofemployeesbyrole\" && event.name.indexOf(\"NOE|\") == 0)))\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\n }\n\n ngOnInit() {\r\n this.onResponseChange();\r\n }\n\n onResponseChange() {\r\n this.title = this.question.displayText;\n\n for (var i = 0; i < this.question.childQuestions.length; i++) {\r\n this.data[i] = {} as MyType;\r\n this.data[i].heading = this.question.childQuestions[i].displayText;\r\n this.data[i].value1 = \"\";\r\n this.data[i].value2 = \"\";\r\n this.data[i].value3 = \"\";\n this.data[i].varName1 = this.question.childQuestions[i].childQuestions[0].variableName;\n this.data[i].varName2 = this.question.childQuestions[i].childQuestions[1].variableName;\n this.data[i].varName3 = this.question.childQuestions[i].childQuestions[2].variableName;\r\n this.data[i].valMes1 = \"\";\r\n this.data[i].valMes2 = \"\";\r\n this.data[i].valMes3 = \"\";\r\n }\r\n\r\n this.gridHeader1 = this.question.childQuestions[0].childQuestions[0].displayText;\r\n this.gridHeader2 = this.question.childQuestions[0].childQuestions[1].displayText;\r\n this.gridHeader3 = this.question.childQuestions[0].childQuestions[2].displayText;\r\n\r\n let responses: CultureSurveyResponse[] = this.store.getState().responses;\n for (var i = 0; i < this.data.length; i++) {\r\n let foundResponse: CultureSurveyResponse = responses.find(x => x.variableName == this.data[i].varName1);\r\n if (foundResponse) {\r\n this.data[i].value1 = foundResponse.response;\r\n }\r\n foundResponse = responses.find(x => x.variableName == this.data[i].varName2);\r\n if (foundResponse) {\r\n this.data[i].value2 = foundResponse.response;\r\n }\r\n foundResponse = responses.find(x => x.variableName == this.data[i].varName3);\r\n if (foundResponse) {\r\n this.data[i].value3 = foundResponse.response;\r\n }\n }\n this.setValidityForAll();\n }\n\n onKeyupEvent(variableName: string) {\r\n this.setValidity(variableName);\n }\n\r\n focusOut(variableName: string) {\r\n this.bs.consoleLog(\"Grid:focusOut called\");\r\n this.setValidity(variableName);\n //this.saveAll();\n for (var i = 0; i < this.data.length; i++) {\n if (this.data[i].varName1 == variableName) {\r\n this.bs.saveAppState({ \"variableName\": variableName, \"response\": this.data[i].value1, \"isConfidential\": this.isConfidential, \"isValid\": this.data[i].valMes1.length == 0 });\r\n break;\r\n }\n if (this.data[i].varName2 == variableName) {\r\n this.bs.saveAppState({ \"variableName\": variableName, \"response\": this.data[i].value2, \"isConfidential\": this.isConfidential, \"isValid\": this.data[i].valMes2.length == 0 });\r\n break;\r\n }\n if (this.data[i].varName3 == variableName) {\r\n this.bs.saveAppState({ \"variableName\": variableName, \"response\": this.data[i].value3, \"isConfidential\": this.isConfidential, \"isValid\": this.data[i].valMes3.length == 0 });\r\n break;\r\n }\r\n }\r\n }\r\n\n isNumeric(val: any): val is number | string {\r\n return (val - parseFloat(val) + 1) >= 0;\r\n }\n\n isFloat(n): boolean {\r\n return n != \"\" && !isNaN(n) && Math.round(n) != n;\r\n }\r\n\n numVal(stringval: string): number {\n let mynum = stringval.replace(/,/gi, \"\");\r\n return parseInt(mynum);\r\n }\r\n\n // Here we will only set the validation messages. We won't set the response.isValid flag\n // We rely only on the users actions to set to the response.IsValid flag\n setValidityForAll() {\n for (var i = 0; i < this.data.length; i++) {\n this.data[i].valMes1 = this.getValidationMessage(this.data[i].value1);\n this.data[i].valMes2 = this.getValidationMessage(this.data[i].value2);\n this.data[i].valMes3 = this.getValidationMessage(this.data[i].value3);\r\n }\r\n }\r\n\n onConfidentialChanged(isConfidential: boolean) {\n this.isConfidential = isConfidential;\r\n this.saveAll();\r\n }\r\n\n // visit all grid values and persist regardless of whether it has a value.\n saveAll() {\r\n this.bs.consoleLog(\"Grid:saveAll called\");\r\n var responses: CultureSurveyResponse[] = [];\n let response: CultureSurveyResponse;\n for (var i = 0; i < this.data.length; i++) {\r\n response = { \"variableName\": this.data[i].varName1, \"response\": this.data[i].value1, \"isConfidential\": this.isConfidential, \"isValid\": this.data[i].valMes1.length == 0 };\r\n //this.bs.saveOnlyToAppState(response);\r\n responses.push(response);\r\n response = { \"variableName\": this.data[i].varName2, \"response\": this.data[i].value2, \"isConfidential\": this.isConfidential, \"isValid\": this.data[i].valMes2.length == 0 };\r\n //this.bs.saveOnlyToAppState(response);\r\n responses.push(response);\r\n response = { \"variableName\": this.data[i].varName3, \"response\": this.data[i].value3, \"isConfidential\": this.isConfidential, \"isValid\": this.data[i].valMes3.length == 0 };\r\n // this.bs.saveOnlyToAppState(response);\r\n responses.push(response);\r\n }\r\n this.bs.saveAppStateResponses(responses);\r\n }\r\n\n // for specific variableName items. \n setValidity(variableName: string) {\n for (var i = 0; i < this.data.length; i++) {\n if (this.data[i].varName1 == variableName) {\n this.data[i].valMes1 = this.getValidationMessage(this.data[i].value1);\r\n return;\r\n }\n if (this.data[i].varName2 == variableName) {\n this.data[i].valMes2 = this.getValidationMessage(this.data[i].value2);\r\n return;\r\n }\n if (this.data[i].varName3 == variableName) {\n this.data[i].valMes3 = this.getValidationMessage(this.data[i].value3);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n getValidationMessage(value: string): string {\r\n let result: string = \"\";\r\n if (value.length > 0) {\n\r\n const regex = /^[0-9,]+$/;\r\n if (!regex.test(value)) {\r\n //return \"Please enter a number.\";\r\n this.translate.get('cs-validationmessage-number').subscribe((data: any) => {\r\n result = data;\r\n });\r\n }\n\n let isValid: boolean = this.isNumeric(this.numVal(value));\r\n\r\n if (isValid) {\r\n if (this.isFloat(this.numVal(value))) {\n isValid = false;\r\n //result = \"Please enter a number.\";\r\n this.translate.get('cs-validationmessage-number').subscribe((data: any) => {\r\n result = data;\r\n });\r\n }\r\n if (isValid) {\r\n if (this.numVal(value) < 0) {\r\n isValid = false;\r\n //result = \"Please enter a positive integer.\";\r\n this.translate.get('cs-validationmessage-positivenumber').subscribe((data: any) => {\r\n result = data;\r\n });\r\n }\r\n }\r\n if (isValid) {\r\n if (value.indexOf('.') > 0) {\r\n isValid = false;\r\n //result = \"Please enter an integer.\";\r\n this.translate.get('cs-validationmessage-enterinteger').subscribe((data: any) => {\r\n result = data;\r\n });\r\n }\r\n }\r\n }\r\n else\r\n //result = \"Please enter a number.\";\r\n this.translate.get('cs-validationmessage-number').subscribe((data: any) => {\r\n result = data;\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{gridHeader1}}\r\n
\r\n
\r\n {{gridHeader2}}\r\n
\r\n
\r\n {{gridHeader3}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{q.heading}}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit, Input, Output, Inject, EventEmitter } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\n\r\nimport { Store } from 'redux';\r\nimport { AppStore } from '../../app.store';\r\nimport { AppState } from '../../app.state';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-infobar',\r\n templateUrl: './infobar.component.html',\r\n styleUrls: ['./infobar.component.scss']\r\n})\r\nexport class InfobarComponent implements OnInit {\r\n @Input() question: CultureSurveyQuestion;\r\n @Input() response: CultureSurveyResponse;\r\n @Input() validationMessage: string;\r\n @Output() checkBox = new EventEmitter();\r\n instructionsRollover: string = \"\";\r\n confidentialRollover: string = \"\";\r\n confidentialId: string = \"\";\r\n canBeConfidential: boolean = false;\r\n requiredRollover: string = \"\";\r\n private _serviceSubscription;\r\n translatedInstructions: string = \"\";\r\n translatedListExplanation: string = \"\";\r\n\r\n constructor(private bs: BackendService, @Inject(AppStore) private store: Store, private translate: TranslateService) {\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n //this.bs.consoleLog(\"currency:ResetComponentEvent called\");\r\n if (event.name == this.question.variableName && event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"InfobarComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.onResponseChange();\r\n }\r\n\r\n onResponseChange() {\r\n this.confidentialId = this.question.variableName;\r\n\r\n if (this.question.fieldType == \"Grid\") {\r\n this.confidentialId = this.stripNonAlphaChars(this.question.displayText) + this.question.countryCode;\r\n\r\n if (this.question.canBeConfidential) {\r\n // if any of the child questions have any responses that are true then the infobar is set to true\r\n this.response.isConfidential = this.bs.determineGridConfidential(this.question);\r\n }\r\n else {\r\n this.response.isConfidential = false;\r\n }\r\n }\r\n\r\n //This code wasn't working at all.\r\n //if (this.question.fieldType == \"Grid\") {\r\n // this.confidentialId = this.stripNonAlphaChars(this.question.displayText);\r\n // let responses: CultureSurveyResponse[] = this.store.getState().responses;\r\n // //Just look at the first one of the bunch to determine if they are all set to true or false\r\n // for (var i = 0; i < 1; i++) {\r\n // for (var j = 0; j < 1; j++) {\r\n // let variableName: string = this.question.childQuestions[i].childQuestions[j].variableName;\r\n // let aResponse: CultureSurveyResponse = responses.find(x => x.variableName == variableName);\r\n // this.bs.consoleLog(\"Infobar:ngOnInit:variableName:\" + variableName + \", responseToSave:\" + aResponse);\r\n // if (aResponse) {\r\n // this.response.isConfidential = aResponse.isConfidential;\r\n // }\r\n // else {\r\n // this.response.isConfidential = false;\r\n // }\r\n // }\r\n // }\r\n //}\r\n //

Certification Profile

\r\n if (this.question.instructions) {\r\n var certificationInstruction = \"

Certification Profile

\";\r\n this.translate.get('cs-page-CertificationProfile').subscribe((data: any) => {\r\n certificationInstruction = \"

\" + data + \"

\";\r\n });\r\n\r\n this.translate.get('cs-tooltip-instructions').subscribe((data: any) => {\r\n if (!this.question.instructions.startsWith(certificationInstruction)) {\r\n this.instructionsRollover = \"

\" + data + \"

\";\r\n }\r\n\r\n this.instructionsRollover += this.doParagraphTagWrap(this.question.instructions);\r\n });\r\n }\r\n\r\n if (this.question.listExplanation) {\r\n this.translate.get('cs-tooltip-listexplanation').subscribe((data: any) => {\r\n this.instructionsRollover += \"

\" + data + \"

\" + this.doParagraphTagWrap(this.question.listExplanation);\r\n });\r\n }\r\n\r\n if (this.question.canBeConfidential) {\r\n this.setConfidentialTooltipText();\r\n }\r\n else {\r\n this.translate.get('cs-tooltip-notconfidential').subscribe((data: any) => {\r\n this.confidentialRollover = \"

\" + data + \"

\";\r\n });\r\n }\r\n\r\n if (this.question.required) {\r\n this.translate.get('cs-tooltip-required').subscribe((data: any) => {\r\n this.requiredRollover = \"

\" + data + \"

\";\r\n });\r\n }\r\n }\r\n\r\n onConfidentialChanged(q: CultureSurveyQuestion) {\r\n if (this.question.fieldType == \"Grid\") {\r\n\r\n // Tell the specific Grid component that the isConfidential has changed so it can save all\r\n this.bs.sendComponentNotifyEvent({ name: q.displayText, value: \"confidential|\" + this.response.isConfidential.toString() + \"|\" + this.question.countryCode });\r\n\r\n //let responses: CultureSurveyResponse[] = this.store.getState().responses;\r\n\r\n //for (var i = 0; i < this.question.childQuestions.length; i++) {\r\n // for (var j = 0; j < this.question.childQuestions[i].childQuestions.length; j++) {\r\n // let variableName: string = this.question.childQuestions[i].childQuestions[j].variableName;\r\n // let responseToSave: CultureSurveyResponse = responses.find(x => x.variableName == variableName);\r\n // this.bs.consoleLog(\"Infobar:onConfidentialChanged:variableName:\" + variableName + \", responseToSave:\" + responseToSave);\r\n // if (responseToSave) {\r\n // responseToSave.isConfidential = this.response.isConfidential;\r\n // this.bs.saveOnlyToAppState(responseToSave);\r\n // }\r\n // else {\r\n // this.bs.saveOnlyToAppState({\r\n // variableName: variableName,\r\n // response: \"\",\r\n // isConfidential: this.response.isConfidential,\r\n // isValid: false,\r\n // });\r\n // }\r\n // }\r\n\r\n }\r\n else {\r\n this.bs.saveAppState(this.response);\r\n }\r\n this.setConfidentialTooltipText();\r\n }\r\n\r\n setConfidentialTooltipText() {\r\n if (this.response.isConfidential) {\r\n this.translate.get('cs-tooltip-confidential').subscribe((data: any) => {\r\n this.confidentialRollover = \"

\" + data + \"

\";\r\n });\r\n } else {\r\n //\r\n this.translate.get('cs-tooltip-notconfidential2').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n }\r\n }\r\n\r\n // Wrap a text string in a paragraph block, if it's not already formatted.\r\n // This is to normalize the appearance of all tooptips.\r\n doParagraphTagWrap(inputText: string) {\r\n\r\n var returnText: string = \"\";\r\n\r\n if (inputText.substr(0, 3).toLowerCase() != \"

\")\r\n returnText = \"

\" + inputText + \"

\";\r\n else\r\n returnText = inputText;\r\n\r\n return (returnText);\r\n }\r\n\r\n // Strip non-alphabetic characters from a string.\r\n stripNonAlphaChars(inputText: string) {\r\n var returnText: string = inputText.replace(/[^A-Za-z]/g, \"\");\r\n return (returnText);\r\n }\r\n}\r\n","
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \"\"\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \"\"\r\n \r\n
\r\n\r\n
\r\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-integer',\r\n templateUrl: './integer.component.html',\r\n styleUrls: ['./integer.component.scss']\r\n})\r\nexport class IntegerComponent implements OnInit {\r\n @Input() question: CultureSurveyQuestion;\r\n @Input() response: CultureSurveyResponse;\r\n validationMessage: string = \"\";\r\n confidentialRollover: string = \"\";\r\n listExplanation: string = \"\";\r\n canBeConfidential: boolean = false;\r\n days: string[] = ['ca1_BENE_avgPaidParentLeaveFemale_COUNTRY',\r\n 'ca1_BENE_parentalLeaveFemale_COUNTRY',\r\n 'ca1_BENE_daysPaidParentLeaveFemale_COUNTRY',\r\n 'ca1_BENE_avgPaidParentLeaveMale_COUNTRY',\r\n 'ca1_BENE_parentalLeaveMale_COUNTRY',\r\n 'ca1_BENE_daysPaidParentLeaveMale_COUNTRY',\r\n 'ca1_BENE_parentalLeaveAdoptChild_COUNTRY',\r\n 'ca1_BENE_daysPaidParentLeaveAdoptChild_COUNTRY'];\r\n private _serviceSubscription;\r\n\r\n constructor(private bs: BackendService, private translate: TranslateService) {\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n if (event.name == this.question.variableName && event.value == \"reload\") {\r\n this.bs.consoleLog(\"IntegerComponent called with var name:\" + this.question.variableName);\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"IntegerComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.onResponseChange();\r\n }\r\n\r\n onResponseChange() {\r\n if (this.question.canBeConfidential) {\r\n //this.confidentialRollover = \"Check here to keep this information confidential.\";\r\n {\r\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n }\r\n this.canBeConfidential = true;\r\n }\r\n else { //this.confidentialRollover = \"This question can't be marked confidential.\";\r\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n }\r\n\r\n if (this.question.listExplanation)\r\n this.listExplanation = this.question.listExplanation;\r\n else\r\n //this.listExplanation = \"There is no list specific information relevent for this question.\";\r\n {\r\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\r\n }\r\n this.setValidity();\r\n }\r\n\r\n isConfidentialChanged() {\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n numVal(stringval: string): number {\r\n let mynum = stringval.replace(/,/gi, \"\");\r\n return parseInt(mynum);\r\n }\r\n\r\n focusOut() {\r\n this.response.isValid = true;\r\n this.validationMessage = \"\";\r\n\r\n this.setValidity();\r\n if (this.question.required) {\r\n if (this.response.response.length == 0) {\r\n this.response.isValid = false;\r\n //this.validationMessage = \"Required field. Please enter.\"\r\n this.translate.get('cs-validationmessage-requiredplsenter').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n }\r\n }\r\n\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n isNumeric(val: any): val is number | string {\r\n return (val - parseFloat(val) + 1) >= 0;\r\n }\r\n\r\n isFloat(n): boolean {\r\n return n != \"\" && !isNaN(n) && Math.round(n) != n;\r\n }\r\n\r\n onKeyupEvent() {\r\n var regex = /^[0-9,]+$/;\r\n if (!regex.test(this.response.response)) {\r\n this.response.isValid = false;\r\n //this.validationMessage = \"Please enter a number.\";\r\n this.translate.get('cs-validationmessage-number').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n return;\r\n }\r\n }\r\n\r\n setValidity() {\r\n\r\n if (this.response.response.length === 0) {\r\n this.validationMessage = \"\";\r\n this.response.isValid = true;\r\n return;\r\n }\r\n\r\n var regex = /^[0-9,]+$/;\r\n if (!regex.test(this.response.response)) {\r\n this.response.isValid = false;\r\n //this.validationMessage = \"Please enter a whole number.\";\r\n this.translate.get('cs-validationmessage-wholenumber').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n return;\r\n }\r\n\r\n this.response.isValid = this.isNumeric(this.numVal(this.response.response));\r\n\r\n if (!this.response.isValid) {\r\n //this.validationMessage = \"Please enter a whole number.\";\r\n this.translate.get('cs-validationmessage-wholenumber').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n return;\r\n }\r\n\r\n this.validationMessage = \"\";\r\n\r\n // Once we've determined that it's an integer then do more presise min/max validations\r\n let value: number = this.bs.numVal(this.response.response);\r\n\r\n for (const variableName of this.days) {\r\n if (this.question.variableName.indexOf(variableName) === 0) {\r\n if (value > 365) {\r\n this.response.isValid = false;\r\n // this.validationMessage = \"Please enter a number less than or equal to 365\";\r\n this.translate.get('cs-validationmessage-lessthaneq365').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (this.question.variableName === 'cb_NumCountries') {\r\n if (value < 1) {\r\n this.response.isValid = false;\r\n //this.validationMessage = \"Please enter a number greater than or equal to 1\";\r\n this.translate.get('cs-validationmessage-greaterthaneq1').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n return;\r\n }\r\n }\r\n\r\n if (this.question.variableName.indexOf('ca1_GEN_foundedDate') === 0) {\r\n if (value < 1600 || value > 2050) {\r\n this.response.isValid = false;\r\n //this.validationMessage = \"Please enter a 4 digit year (greater than 1600).\";\r\n this.translate.get('cs-validationmessage-greaterthan1600').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n return;\r\n }\r\n }\r\n\r\n if (this.question.variableName.indexOf('sr_Employees_COUNTRY') === 0 || this.question.variableName === 'ca1_DEMO_empNumWorldWide') {\r\n if (value < 10) {\r\n this.response.isValid = false;\r\n //this.validationMessage = \"Please enter a number greater than or equal to 10\";\r\n this.translate.get('cs-validationmessage-greaterthaneq10').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n return;\r\n }\r\n }\r\n\r\n if (this.question.required === true) {\r\n if (this.response.response.length == 0) {\r\n this.response.isValid = false;\r\n //this.validationMessage = \"Please enter a whole number\";\r\n this.translate.get('cs-validationmessage-wholenumber').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n return;\r\n }\r\n }\r\n\r\n if (this.question.variableName.indexOf('sr_Employees_COUNTRY') == 0) {\r\n this.response.response = new Intl.NumberFormat('en-us', { minimumFractionDigits: 0 }).format(value);\r\n }\r\n\r\n if (this.question.variableName.indexOf('cb_turnoverRate_COUNTRY') === 0) {\r\n if (this.response.response.indexOf(\",\") >= 0 || value >= 100) {\r\n this.response.isValid = false;\r\n //this.validationMessage = \"Please enter a number <= 100\";\r\n this.translate.get('cs-validationmessage-lessthaneq100').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n return;\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n","
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
{{validationMessage}}
\r\n\r\n","import { Component, Input, OnInit, Inject } from '@angular/core';\r\nimport { UploadEvent, RemoveEvent, FileInfo, SelectEvent, FileRestrictions } from '@progress/kendo-angular-upload';\r\nimport { HttpClient, HttpParameterCodec } from '@angular/common/http';\r\nimport { BackendService } from '../../backend.service';\r\nimport { AuthService } from '../../services/auth.service'\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { Router, ActivatedRoute, RouterModule } from '@angular/router';\r\nimport { ComponentNotifyEvent, CountryInfo, GetMaxClientImageUploadSizeResult } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ErrorService } from '../../services/error.service';\r\n\r\n@Component({\r\n selector: 'app-logo',\r\n templateUrl: './logo.component.html',\r\n styleUrls: ['./logo.component.scss']\r\n})\r\nexport class LogoComponent implements OnInit {\r\n @Input() question;\r\n private _kendoFiles: FileInfo[];\r\n private _baseUrl: string = \"\";\r\n private _filesSet: Set;\r\n public uploadBaseSaveUrl: string = \"/api/ClientImageUpload/SaveFile\";\r\n public uploadSaveUrl: string = \"\";\r\n public cid: number;\r\n public eid: number;\r\n public surveyId: string;\r\n public logoFileName: string;\r\n public instructions: string = \"\";\r\n public required: boolean = false;\r\n public focused: boolean = false;\r\n public logoUrl = \"GetClientAsset?clientId=5024230&engagementId=50290&assetType=images&fileName=399e7f4f-b466-4c4f-9dc0-7c2ac976c912.png&token=\" + this.authService.getAuthorizationHeaderValue();\r\n public uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\r\n public myFiles: Array = [];\r\n public photoImageContainerClass: string = \"photo-image-container\";\r\n public imageContainerRemoveClass: string = \"image-container-remove\";\r\n public warningDialogOpened = false;\r\n public warningDialogMessage = \"\";\r\n public displayText = \"\";\r\n public countryCode = \"\";\r\n private _serviceSubscription;\r\n public selectLogoText = \"\";\r\n public token = \"\";\r\n public maxClientImageUploadSize: number = 0;\r\n\r\n fileUploadRestrictions: FileRestrictions = {\r\n allowedExtensions: [\".jpg\", \".jpeg\", \".png\"],\r\n maxFileSize: this.maxClientImageUploadSize\r\n };\r\n constructor(private http: HttpClient,\r\n public bs: BackendService,\r\n private router: Router,\r\n private authService: AuthService,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private translate: TranslateService,\r\n private errorService:ErrorService ) {\r\n this._baseUrl = baseUrl;\r\n\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n if (event.name == \"LogoComponent\" && event.value == \"reload\") {\r\n this.bs.consoleLog(\"LogoComponent.event.name:\" + event.name + \",event.value:\" + event.value);\r\n this.onResponseChange();\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.get('cs-button-selectlogo').subscribe((data: any) => {\r\n this.selectLogoText = data;\r\n });\r\n\r\n this.token = this.authService.getAuthorizationToken();\r\n this.displayText = this.question.displayText;\r\n this.instructions = this.question.instructions;\r\n this.countryCode = this.question.countryCode;\r\n if (this.countryCode.toLowerCase() == \"global\") {\r\n this.countryCode = \"\";\r\n this.required = true;\r\n }\r\n this.onResponseChange();\r\n this.SetMaxClientImageUploadSize();\r\n }\r\n\r\n public onResponseChange() {\r\n this.cid = this.bs.clientId\r\n this.eid = this.bs.engagementId;\r\n this.surveyId = this.bs.surveyId;\r\n this.uploadSaveUrl = this.uploadBaseSaveUrl;\r\n this.logoFileName = this.bs.getLogo(this.countryCode);\r\n\r\n //this.instructions += \"

Please provide a .png or.jpeg file with an image size at least 1,000 pixels wide.

We publish a variety of Certification Profiles around the world. This information may be included in your profile.

\";\r\n // If the survey is submitted, disable the logo item in the sortable control\r\n if ((this.bs.surveyState.toLowerCase() == \"complete\") || (this.bs.surveyState.toLowerCase() == \"submitting\")) {\r\n this.photoImageContainerClass = \"photo-image-containter-disable\";\r\n this.imageContainerRemoveClass = \"image-container-remove-hide\";\r\n }\r\n this.fileUploadRestrictions.allowedExtensions = [\".jpg\", \".jpeg\", \".png\"];\r\n }\r\n\r\n public SetMaxClientImageUploadSize() {\r\n\r\n try {\r\n const url: string = this._baseUrl + 'api/ClientImageUpload/GetMaxClientImageUploadSize';\r\n this.http.get(url, { headers: this.authService.getRequestHeaders() }).subscribe(result => {\r\n if (!result.isError === true) {\r\n this.maxClientImageUploadSize = result.maxClientImageUploadSize;\r\n this.fileUploadRestrictions = {\r\n allowedExtensions: ['jpg', 'jpeg', 'png'],\r\n maxFileSize: this.maxClientImageUploadSize\r\n };\r\n }\r\n else {\r\n this.bs.consoleLog(result.errorStr);\r\n }\r\n });\r\n }\r\n catch (exception) {\r\n let ex = exception;\r\n }\r\n }\r\n\r\n public GetUri() {\r\n const encoder = new CustomHttpParamEncoder();\r\n var url = \"api/CultureSurvey/GetClientAsset?\";\r\n url += \"clientId=\" + this.bs.clientId;\r\n url += \"&engagementId=\" + this.bs.engagementId;\r\n url += \"&assetType=images\"\r\n url += \"&fileName=\" + this.logoFileName;\r\n url += \"&token=\" + this.authService.getAuthorizationHeaderValue();\r\n return url;\r\n }\r\n\r\n public selectEventHandler(e: SelectEvent): void {\r\n const that = this;\r\n let numInvalid = 0;\r\n e.files.forEach((file) => {\r\n //that.log(`File selected: ${file.name}`);\r\n\r\n if (file.validationErrors && file.validationErrors.length) {\r\n numInvalid++;\r\n }\r\n });\r\n\r\n if (numInvalid > 0) {\r\n this.warningDialogOpened = true;\r\n //this.warningDialogMessage = \"An invalid file type was detected. The following file types are supported: jpg, jpeg, png\";\r\n this.translate.get('cs-validationmessage-fileType').subscribe((data: any) => {\r\n let maxSizeMB = Math.floor(this.maxClientImageUploadSize / 1000000);\r\n this.warningDialogMessage = String(data.replace(\"maxClientImageUploadSize\", maxSizeMB.toString() + \"MB\"));\r\n });\r\n }\r\n\r\n }\r\n public close(component) {\r\n this.warningDialogOpened = false;\r\n }\r\n\r\n\r\n onMouseUpRemove() {\r\n if ((this.bs.surveyState.toLowerCase() != \"complete\") && (this.bs.surveyState.toLowerCase() != \"submitting\")) {\r\n this.bs.deleteClientImageFromBlobStorage(this.logoFileName);\r\n this.logoFileName = \"\";\r\n this.bs.saveLogo(this.countryCode, this.logoFileName);\r\n }\r\n }\r\n\r\n onFocus() {\r\n this.focused = true;\r\n }\r\n\r\n onPreviewButtonClick() {\r\n if (this.focused) {\r\n this.bs.slideImageIndex = 0;\r\n this.bs.photoFileName = this.GetUri();\r\n this.bs.showLogoPreview = true;\r\n this.focused = false;\r\n }\r\n else\r\n this.bs.showLogoPreview = false;\r\n }\r\n\r\n isPreviewDisabled() {\r\n return this.logoFileName.length == 0;\r\n }\r\n\r\n successEventHandler(e) {\r\n let logoFileName: string = e.response.body.fileName;\r\n\r\n //Skip adding photos if a photo doesn't validate\r\n if (logoFileName.match(\"VALIDATION_ERROR\")) {\r\n this.errorService.handleErrorNavigation([\"/error/invalidfile\"]);\r\n return;\r\n }\r\n\r\n if ((this.bs.surveyState.toLowerCase() != \"complete\") && (this.bs.surveyState.toLowerCase() != \"submitting\")) {\r\n this.logoFileName = logoFileName;\r\n this.bs.saveLogo(this.countryCode, logoFileName);\r\n this.bs.Validation();\r\n if (this.bs.myErrors.length == 0) {\r\n this.bs.opened = false;\r\n }\r\n }\r\n }\r\n\r\n uploadEventHandler(e: UploadEvent) {\r\n e.data = {\r\n cid: this.cid,\r\n eid: this.eid,\r\n surveyId: this.surveyId,\r\n token: this.token\r\n };\r\n }\r\n\r\n removeEventHandler(e: RemoveEvent) {\r\n e.data = {\r\n description: 'File remove'\r\n };\r\n }\r\n\r\n}\r\n\r\nexport class CustomHttpParamEncoder implements HttpParameterCodec {\r\n public encodeKey(key: string): string {\r\n return encodeURIComponent(key);\r\n }\r\n public encodeValue(value: string): string {\r\n return encodeURIComponent(value);\r\n }\r\n public decodeKey(key: string): string {\r\n return decodeURIComponent(key);\r\n }\r\n public decodeValue(value: string): string {\r\n return decodeURIComponent(value);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n\r\n
\r\n

\r\n

\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n

{{\"cb-page-logoinstructions\" | translate}}

\r\n
\r\n
\r\n \r\n \"\"\r\n \r\n
\r\n\r\n
\r\n \r\n {{\"cb-page-questions-companylogo-tooltip-required\" | translate}}\r\n \r\n \r\n \"\"\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n

{{warningDialogMessage}}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\n@Component({\n selector: 'app-percent',\n templateUrl: './percent.component.html',\n styleUrls: ['./percent.component.scss']\n})\nexport class PercentComponent implements OnInit {\n @Input() question;\r\n @Input() response;\n validationMessage: string = \"\";\n confidentialRollover: string = \"\";\n listExplanation: string = \"\";\n canBeConfidential: boolean = false;\r\n private _serviceSubscription;\n\n constructor(private bs: BackendService, private translate: TranslateService) {\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n //this.bs.consoleLog(\"currency:ResetComponentEvent called\");\r\n if (event.name == this.question.variableName && event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"PercentComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\n }\n\n ngOnInit() {\r\n this.onResponseChange();\n }\n\n onResponseChange() {\r\n if (this.question.canBeConfidential) {\n //this.confidentialRollover = \"Check here to keep this information confidential.\";\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n this.canBeConfidential = true;\n }\n else\n //this.confidentialRollover = \"This question can't be marked confidential.\";\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n\n if (this.question.listExplanation)\n this.listExplanation = this.question.listExplanation;\n else\n //this.listExplanation = \"There is no list specific information relevent for this question.\";\n {\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\r\n }\n this.setValidity();\n }\n\n onKeyupEvent() {\n var Chars = \"0123456789.\";\n this.validationMessage = \"\";\n if (Chars.indexOf(this.response.response.charAt(this.response.response.length - 1)) == -1) {\n this.response.isValid = false;\r\n // this.validationMessage = \"Please enter numbers or a decimal point only\";\n this.translate.get('cs-validationmessage-numordecimalonly').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\n }\n else {\r\n //further validation\r\n this.setValidity()\r\n }\r\n }\n\r\n setValidity() {\r\n let newValidationMessage: string = \"\";\n if (this.response.response.length > 0) {\n\n this.response.isValid = this.isNumeric(this.numVal(this.response.response));\n\r\n if (this.response.isValid) {\r\n if (this.isFloat(this.numVal(this.response.response))) {\n this.response.isValid = false;\r\n //newValidationMessage = \"Please enter a number.\";\r\n this.translate.get('cs-validationmessage-number').subscribe((data: any) => {\r\n newValidationMessage = data;\r\n });\r\n }\r\n if (this.response.isValid) {\r\n if (this.response.response.indexOf('-') >= 0) {\r\n this.response.isValid = false;\r\n //newValidationMessage = \"Please enter a positive number\";\r\n this.translate.get('cs-validationmessage-positivenumber').subscribe((data: any) => {\r\n newValidationMessage = data;\r\n });\r\n }\r\n }\r\n if (this.response.isValid) {\r\n if (this.numVal(this.response.response) > 100 || this.numVal(this.response.response) < 0) {\r\n this.response.isValid = false;\r\n //newValidationMessage = \"Please enter a number between 0 and 100\";\r\n this.translate.get('cs-validationmessage-numbetween1to100').subscribe((data: any) => {\r\n newValidationMessage = data;\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n //newValidationMessage = \"Please enter a number.\";\r\n this.translate.get('cs-validationmessage-number').subscribe((data: any) => {\r\n newValidationMessage = data;\r\n });\r\n }\r\n }\n this.validationMessage = newValidationMessage;\n }\n\n numVal(stringval: string): number {\n let mynum = stringval.replace(/,/gi, \"\");\r\n return parseInt(mynum);\r\n }\r\n\r\n isNumeric(val: any): val is number | string {\r\n return (val - parseFloat(val) + 1) >= 0;\r\n }\n\n isFloat(n): boolean {\r\n return n != \"\" && !isNaN(n) && Math.round(n) != n;\r\n }\n\r\n isConfidentialChanged() {\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n focusOut() {\r\n this.bs.saveAppState(this.response);\r\n }\n\n}\n","
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
{{validationMessage}}
\r\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\n@Component({\n selector: 'app-percentwhole',\n templateUrl: './percentwhole.component.html',\n styleUrls: ['./percentwhole.component.scss']\n})\nexport class PercentWholeComponent implements OnInit {\n @Input() question;\r\n @Input() response;\n validationMessage: string = \"\";\n confidentialRollover: string = \"\";\n listExplanation: string = \"\";\n canBeConfidential: boolean = false;\r\n private _serviceSubscription;\n\n constructor(private bs: BackendService, private translate: TranslateService) {\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n //this.bs.consoleLog(\"currency:ResetComponentEvent called\");\r\n if (event.name == this.question.variableName && event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"PercentWholeComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\n }\n\n ngOnInit() {\r\n this.onResponseChange();\n }\n\n onResponseChange() {\r\n if (this.question.canBeConfidential) {\n //this.confidentialRollover = \"Check here to keep this information confidential.\";\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n this.canBeConfidential = true;\n }\n else\n // this.confidentialRollover = \"This question can't be marked confidential.\";\n {\r\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n }\n\n if (this.question.listExplanation)\n this.listExplanation = this.question.listExplanation;\n else\n //this.listExplanation = \"There is no list specific information relevent for this question.\";\n {\r\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\n }\n this.setValidity();\n }\n\n onKeyupEvent() {\n var Chars = \"0123456789\";\n this.validationMessage = \"\";\n if (Chars.indexOf(this.response.response.charAt(this.response.response.length - 1)) === -1) {\n this.response.isValid = false;\r\n //this.validationMessage = \"Please enter percent as a whole number between 0 and 100\";\n {\n this.translate.get('cs-validationmessage-numbetween0to100').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n }\n }\n else {\r\n //further validation\r\n this.setValidity()\r\n }\r\n }\n\r\n setValidity() {\r\n let newValidationMessage: string = \"\";\n if (this.response.response.length > 0) {\n\n this.response.isValid = this.isNumeric(this.numVal(this.response.response));\n\r\n if (this.response.isValid) {\r\n if (this.numVal(this.response.response) > 100 || this.numVal(this.response.response) < 0) {\r\n this.response.isValid = false;\r\n // newValidationMessage = \"Please enter a number between 0 and 100\";\r\n {\n this.translate.get('cs-validationmessage-numbetween0to100').subscribe((data: any) => {\r\n newValidationMessage = data;\r\n });\r\n } }\r\n }\r\n else {\r\n //newValidationMessage = \"Please enter a number.\";\r\n this.translate.get('cs-validationmessage-number').subscribe((data: any) => {\r\n newValidationMessage = data;\r\n });\r\n }\r\n }\n this.validationMessage = newValidationMessage;\n }\n\n numVal(stringval: string): number {\n let mynum = stringval.replace(/,/gi, \"\");\r\n return parseInt(mynum);\r\n }\r\n\r\n isNumeric(val: any): val is number | string {\r\n return (val - parseFloat(val) + 1) >= 0;\r\n }\n\n isConfidentialChanged() {\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n focusOut() {\r\n this.bs.saveAppState(this.response);\r\n }\n\n}\n","
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
{{validationMessage}}
\r\n","import { Component, Input, OnInit, Inject, DoCheck, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { UploadEvent, RemoveEvent, FileInfo, SelectEvent, FileRestrictions } from '@progress/kendo-angular-upload';\r\nimport { HttpClient, HttpParameterCodec } from '@angular/common/http';\r\nimport { BackendService } from '../../backend.service';\r\nimport { ClientPhoto, ComponentNotifyEvent, GetMaxClientImageUploadSizeResult } from '../../models/misc-models';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { DataEvent, DragStartEvent, DragEndEvent, DragOverEvent, NavigateEvent } from '@progress/kendo-angular-sortable';\r\nimport { AuthService } from '../../services/auth.service'\r\nimport { Router, ActivatedRoute, RouterModule } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ErrorService } from '../../services/error.service';\r\n\r\n@Component({\r\n selector: 'app-photo',\r\n templateUrl: './photo.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./photo.component.scss']\r\n})\r\n\r\nexport class PhotoComponent implements OnInit {\r\n @Input() question;\r\n @ViewChild('sortable') public sortable: any;\r\n private _kendoFiles: FileInfo[];\r\n private _baseUrl: string = \"\";\r\n private _filesSet: Set;\r\n private _interval;\r\n public cid: number;\r\n public eid: number;\r\n public surveyId: string;\r\n public clientPhotos: ClientPhoto[] = [];\r\n public isUploadDisabled: boolean = false;\r\n public disabledPhotoIndexes: Array = [];\r\n public title: string = \"Click to upload your profile images.\";\r\n public uploadBaseSaveUrl: string = \"/api/ClientImageUpload/SaveFile\";\r\n public uploadSaveUrl: string = \"\";\r\n public instructions: string = \"\";\r\n public required: boolean = false;\r\n public uploadRemoveUrl = 'removeUrl'; // should represent an actual API endpoint\r\n public draggableContainerClass: string = \"draggable-container\";\r\n public photoDragContainerClass: string = \"photo-drag-container\";\r\n public photoImageContainerClass: string = \"photo-image-container\";\r\n public imageContainerRemoveClass: string = \"image-container-remove\";\r\n public characterLimit: number = 120;\r\n public warningDialogOpened = false;\r\n public warningDialogMessage = \"\";\r\n public displayText = \"\";\r\n public countryCode = \"\";\r\n private _serviceSubscription;\r\n public selectImagesText = \"\";\r\n public validationMessage = \"\";\r\n public validationMessageCharactersAllowed = \"\";\r\n public enterCaption = \"\";\r\n public token = \"\";\r\n public maxClientImageUploadSize: number = 0;\r\n\r\n constructor(private http: HttpClient,\r\n public bs: BackendService,\r\n private authService: AuthService,\r\n private router: Router,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private translate: TranslateService,\r\n private errorService: ErrorService) {\r\n this._baseUrl = baseUrl;\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n if (event.name == \"PhotoComponent\" && event.value == \"reload\") {\r\n this.bs.consoleLog(\"PhotoComponent.event.name:\" + event.name + \",event.value:\" + event.value);\r\n this.onResponseChange();\r\n }\r\n }\r\n })\r\n }\r\n\r\n myRestrictions: FileRestrictions = {\r\n allowedExtensions: ['jpg', 'jpeg', 'png'],\r\n maxFileSize: this.maxClientImageUploadSize\r\n };\r\n\r\n ngOnInit() {\r\n this.translate.get('cs-button-selectimages').subscribe((data: any) => {\r\n this.selectImagesText = data;\r\n });\r\n this.translate.get('cs-validationmessage-maxcharallowed').subscribe((data: any) => {\r\n this.validationMessage = String(data).replace(\"characterLimit\", this.characterLimit.toString());\r\n });\r\n this.translate.get('cs-validationmessage-entercaption').subscribe((data: any) => {\r\n this.enterCaption = data;\r\n });\r\n this.translate.get('cs-validationmessage-charofcharsallowed').subscribe((data: any) => {\r\n this.validationMessageCharactersAllowed = String(data);\r\n });\r\n this.token = this.authService.getAuthorizationToken();\r\n this.required = this.question.required;\r\n this.displayText = this.question.displayText;\r\n this.instructions = this.question.instructions;\r\n this.countryCode = this.question.countryCode;\r\n if (this.countryCode.toLowerCase() == \"global\") {\r\n this.countryCode = \"\";\r\n this.required = true;\r\n }\r\n this.onResponseChange();\r\n this.SetMaxClientImageUploadSize();\r\n }\r\n\r\n onResponseChange() {\r\n this.cid = this.bs.clientId\r\n this.eid = this.bs.engagementId;\r\n this.surveyId = this.bs.surveyId;\r\n this.uploadSaveUrl = this.uploadBaseSaveUrl;\r\n this.clientPhotos = this.bs.getPhotos(this.countryCode);\r\n this.isUploadDisabled = (this.clientPhotos != null && this.clientPhotos.length >= 7);\r\n\r\n // If the survey is submitted, disable the photo items in the sortable control\r\n if ((this.bs.surveyState.toLowerCase() == \"complete\") || (this.bs.surveyState.toLowerCase() == \"submitting\")) {\r\n for (var i = 0; i < this.clientPhotos.length; i++) {\r\n this.disabledPhotoIndexes.push(i);\r\n }\r\n this.draggableContainerClass = \"draggble-container-disable\";\r\n this.photoDragContainerClass = \"photo-drag-container-hide\";\r\n this.photoImageContainerClass = \"photo-image-container-disable\";\r\n this.imageContainerRemoveClass = \"image-container-remove-hide\";\r\n }\r\n\r\n //this.instructions = \"

Provide at least 5 and no more than 7 photos to be included in your Certification Profile.Please make sure to include at least:

\"\r\n\r\n ////this.instructions += \"  
  •   1 image of your people
  •   1 image of your work environment(eg.your headquarters, office, manufacturing or retail space)
  •   1 image of your CEO
\"\r\n //this.instructions += \"

  1 image of your people

\";\r\n //this.instructions += \"

  1 image of your work environment(eg.your headquarters, office, manufacturing or retail space)

\";\r\n //this.instructions += \"

  1 image of your CEO

\";\r\n\r\n //this.instructions += \"

If you win placement on a list, our media partner will select a photo to represent your organization. Please ensure all photos are professional images you will be proud to share on Great Place To Work’s website, social media channels, and our media partners’ websites.\";\r\n //this.instructions += \"
Our media partners will not permit photo changes, so please ensure your images meet the listed requirements and are correct now.

\"\r\n\r\n //this.instructions += \"

Photo Requirements

\";\r\n\r\n //this.instructions += \"

  High resolution(at least 1, 000 pixels wide)

\";\r\n //this.instructions += \"

  Horizontal/landscape format; NOT vertical/portrait

\";\r\n //this.instructions += \"

  Clear, NOT blurry

\";\r\n //this.instructions += \"

  A photo — not a designed image. (No logos, screen shots, drawings, advertising, etc.)

\";\r\n //this.instructions += \"

  Your photo will stand out best if it tells a story and shares something about what makes your culture unique! Lots of other organizations will share photos of a large group shot of their people. Can you capture a candid moment of what it feels like to work in your organization?

\";\r\n\r\n //this.instructions += \"

By uploading these photographs, you are indicating that you are the copyright owner and giving us permission to use these images and share it with media partners.

\"\r\n\r\n //this.instructions += \"

We publish a variety of Certification Profiles around the world. This information may be included in your profile.

\"\r\n\r\n\r\n //this.instructions = \"

Provide at least 5 and no more than 7 photos to be included in your Certification Profile.

\";\r\n //this.instructions += \"

If you win placement on a list, our media partner will select one of these photos to represent your organization. Please ensure all photos are professional images you will be proud to share on greatplacetowork.com, our social media channels, and our media partners’ websites.

\";\r\n //this.instructions += \"Fortune and other media partners will not permit photo changes, so please ensure your images meet the listed requirements and are correct now.\";\r\n //this.instructions += \"

Photo Requirements

\";\r\n //this.instructions += \"

  High resolution (at least 1,000 pixels wide)

\";\r\n //this.instructions += \"

  Horizontal/landscape format; NOT vertical/portrait

\";\r\n //this.instructions += \"

  Clear, NOT blurry

\";\r\n //this.instructions += \"

  A photo — not a designed image. (No logos, screen shots, drawings, advertising, etc.)

\";\r\n //this.instructions += \"

  Your photo will stand out best if it tells a story and shares something about what makes your culture unique! Lots of other organizations will share photos of a large group shot of their people. Can you capture a candid moment of what it feels like to work in your organization?

\";\r\n //this.instructions += \"

By uploading these photographs, you are indicating that you are the copyright owner and giving us permission to use these images and share it with media partners.

\";\r\n //this.instructions += \"

We publish a variety of Certification Profiles around the world. This information may be included in your profile.

\";\r\n }\r\n\r\n public SetMaxClientImageUploadSize() {\r\n\r\n try {\r\n const url: string = this._baseUrl + 'api/ClientImageUpload/GetMaxClientImageUploadSize';\r\n this.http.get(url, { headers: this.authService.getRequestHeaders() }).subscribe(result => {\r\n if (!result.isError === true) {\r\n this.maxClientImageUploadSize = result.maxClientImageUploadSize;\r\n this.myRestrictions = {\r\n allowedExtensions: ['jpg', 'jpeg', 'png'],\r\n maxFileSize: this.maxClientImageUploadSize\r\n };\r\n }\r\n else {\r\n this.bs.consoleLog(result.errorStr);\r\n }\r\n });\r\n }\r\n catch (exception) {\r\n let ex = exception;\r\n }\r\n }\r\n\r\n handleKeyDown(event: KeyboardEvent, index: number) {\r\n if (event.key === 'Tab' && index === 0) {\r\n // Prevent the default tab behavior\r\n event.stopPropagation();\r\n console.log();\r\n\r\n const input = document.getElementById(this.GetPhotoTextAreaId(index)) as HTMLInputElement;\r\n\r\n if (input) {\r\n input.focus();\r\n }\r\n }\r\n }\r\n\r\n public GetPhotoTextAreaId(index) {\r\n let cc = this.countryCode;\r\n if (cc == \"\")\r\n cc = \"GLOBAL\"\r\n return \"PHOTO-\" + cc + \"-\" + index;\r\n }\r\n\r\n public GetPhotoId(index) {\r\n let cc = this.countryCode;\r\n if (cc == \"\")\r\n cc = \"GLOBAL-Img\"\r\n return \"PHOTO-Img-\" + cc + \"-\" + index;\r\n }\r\n\r\n public GetUri(item) {\r\n var url = \"api/CultureSurvey/GetClientAsset?\";\r\n url += \"clientId=\" + this.bs.clientId;\r\n url += \"&engagementId=\" + this.bs.engagementId;\r\n url += \"&assetType=images\"\r\n url += \"&fileName=\" + item.fileName;\r\n url += \"&token=\" + this.authService.getAuthorizationHeaderValue();\r\n return url;\r\n }\r\n\r\n //< div * ngIf=\"item.caption.length == 0\" class=\"photo-caption-character-count\" > A maximum of { { characterLimit } } characters allowed.< /div>\r\n // < div * ngIf=\"item.caption.length > 0 && item.caption.length <= 120\" class=\"photo-caption-character-count\" > {{ item.caption.length }} characters of { { characterLimit } } characters allowed.< /div>\r\n // < div * ngIf=\"item.caption.length > 120\" class=\"photo-caption-character-count-red\" > {{ item.caption.length }} characters of { { characterLimit } } characters allowed.< /div>\r\n\r\n public getValidationMessage(item) {\r\n if (item.caption.length == 0) {\r\n return this.validationMessage;\r\n }\r\n else\r\n if (item.caption.length > 0) {\r\n let charStr: string = \"characters of\";\r\n this.translate.get('cs-validationmessage-charactersof').subscribe((data: any) => {\r\n charStr = data;\r\n });\r\n\r\n if (item.caption.length == 1) {\r\n charStr = \"character of\";\r\n this.translate.get('cs-validationmessage-characterof').subscribe((data: any) => {\r\n charStr = data;\r\n });\r\n }\r\n return this.validationMessageCharactersAllowed.replace(\"captionLength\", item.caption.length).replace(\"charStr\", charStr).replace(\"characterLimit\", this.characterLimit.toString());\r\n }\r\n }\r\n\r\n public selectEventHandler(e: SelectEvent): void {\r\n let numInvalid = 0;\r\n e.files.forEach((file) => {\r\n //that.log(`File selected: ${file.name}`);\r\n\r\n if (file.validationErrors && file.validationErrors.length) {\r\n numInvalid++;\r\n }\r\n });\r\n\r\n if (numInvalid > 0) {\r\n this.warningDialogOpened = true;\r\n //this.warningDialogMessage = \"An invalid file type was detected. The following file types are supported: jpg, jpeg, png\";\r\n this.translate.get('cs-validationmessage-fileType').subscribe((data: any) => {\r\n let maxSizeMB = Math.floor(this.maxClientImageUploadSize / 1000000);\r\n this.warningDialogMessage = String(data.replace(\"maxClientImageUploadSize\", maxSizeMB.toString() + \"MB\"));\r\n });\r\n }\r\n }\r\n\r\n public close(component) {\r\n this.warningDialogOpened = false;\r\n }\r\n\r\n\r\n isPreviewDisabled() {\r\n return this.clientPhotos.length == 0;\r\n }\r\n\r\n onPreviewButtonClick() {\r\n this.bs.slideImageIndex = 0;\r\n this.bs.previewCountryCode = this.countryCode\r\n let photos = this.bs.getPhotos(this.countryCode);\r\n\r\n var url = \"api/CultureSurvey/GetClientAsset?\";\r\n url += \"clientId=\" + this.bs.clientId;\r\n url += \"&engagementId=\" + this.bs.engagementId;\r\n url += \"&assetType=images\"\r\n url += \"&fileName=\" + photos[this.bs.slideImageIndex].fileName;\r\n url += \"&token=\" + this.authService.getAuthorizationHeaderValue();\r\n\r\n this.bs.photoFileName = url\r\n\r\n this.bs.photoCaption = photos[this.bs.slideImageIndex].caption;\r\n this.bs.showImagePreview = true;\r\n }\r\n\r\n public saveClientPhotos() {\r\n if ((this.bs.surveyState.toLowerCase() != \"complete\") && (this.bs.surveyState.toLowerCase() != \"submitting\")) {\r\n this.bs.saveClientPhotos(this.countryCode, this.clientPhotos);\r\n this.bs.Validation();\r\n if (this.bs.myErrors.length == 0) {\r\n this.bs.opened = false;\r\n }\r\n }\r\n }\r\n\r\n onFocusOut(item) {\r\n this.saveClientPhotos();\r\n }\r\n\r\n onMouseUp(item) {\r\n let fileNameToDelete = item.fileName;\r\n let indexToRemove = this.clientPhotos.findIndex(d => d.fileName == fileNameToDelete); //find index in your array\r\n\r\n let clientPhotosAfterRemoval = [];\r\n let index: number = 0;\r\n\r\n for (var i = 0; i < this.clientPhotos.length; i++) {\r\n if (i != indexToRemove) {\r\n let clientPhoto: ClientPhoto = this.clientPhotos[i];\r\n let newClientPhoto: ClientPhoto = new ClientPhoto();\r\n newClientPhoto.fileName = clientPhoto.fileName;\r\n newClientPhoto.caption = clientPhoto.caption;\r\n newClientPhoto.primary = clientPhoto.primary;\r\n clientPhotosAfterRemoval[index++] = newClientPhoto;\r\n }\r\n }\r\n\r\n this.clientPhotos = clientPhotosAfterRemoval;\r\n\r\n this.saveClientPhotos();\r\n\r\n this.isUploadDisabled = (this.clientPhotos != null && this.clientPhotos.length >= 7);\r\n\r\n this.bs.deleteClientImageFromBlobStorage(fileNameToDelete);\r\n }\r\n\r\n successEventHandler(e) {\r\n // Don't allow more then 7 photos to be added\r\n if (this.clientPhotos != null && this.clientPhotos.length >= 7) {\r\n return;\r\n }\r\n\r\n let fileName: string = e.response.body.fileName;\r\n let blobName: string = e.response.body.blobName;\r\n\r\n //Skip adding photos if a photo doesn't validate\r\n if (fileName.match(\"VALIDATION_ERROR\")) {\r\n this.errorService.handleErrorNavigation([\"/error/invalidfile\"]);\r\n return;\r\n }\r\n\r\n let clientPhotosAfterAddition = [];\r\n\r\n let newClientPhoto: ClientPhoto = new ClientPhoto();\r\n newClientPhoto.fileName = fileName;\r\n newClientPhoto.caption = \"\";\r\n newClientPhoto.primary = false;\r\n\r\n clientPhotosAfterAddition[0] = newClientPhoto;\r\n\r\n for (var i = 0; i <= this.clientPhotos.length - 1; i++) {\r\n if (i <= 5) {\r\n let clientPhoto: ClientPhoto = new ClientPhoto();\r\n clientPhoto.fileName = this.clientPhotos[i].fileName;\r\n clientPhoto.caption = this.clientPhotos[i].caption;\r\n clientPhoto.primary = this.clientPhotos[i].primary;\r\n clientPhotosAfterAddition[i + 1] = clientPhoto;\r\n }\r\n }\r\n\r\n this.clientPhotos = clientPhotosAfterAddition;\r\n this.saveClientPhotos();\r\n this.isUploadDisabled = (this.clientPhotos != null && this.clientPhotos.length >= 7);\r\n\r\n }\r\n\r\n uploadEventHandler(e: UploadEvent) {\r\n e.data = {\r\n cid: this.cid,\r\n eid: this.eid,\r\n surveyId: this.surveyId,\r\n token: this.token\r\n };\r\n }\r\n\r\n removeEventHandler(e: RemoveEvent) {\r\n e.data = {\r\n description: 'File remove'\r\n };\r\n }\r\n\r\n public onDragEnd(e: DragEndEvent): void {\r\n this.saveClientPhotos();\r\n }\r\n\r\n}\r\n\r\nexport class CustomHttpParamEncoder implements HttpParameterCodec {\r\n public encodeKey(key: string): string {\r\n return encodeURIComponent(key);\r\n }\r\n public encodeValue(value: string): string {\r\n return encodeURIComponent(value);\r\n }\r\n public decodeKey(key: string): string {\r\n return decodeURIComponent(key);\r\n }\r\n public decodeValue(value: string): string {\r\n return decodeURIComponent(value);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n\r\n
\r\n

\r\n

\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n

{{\"cb-page-photoinstructions\" | translate}}

\r\n
\r\n
\r\n \r\n \"\"\r\n \r\n
\r\n\r\n
\r\n \r\n {{\"cb-page-questions-companyimage-tooltip-required\" | translate}}\r\n \r\n \r\n \"\"\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
{{\"cs-validationmessage-max7imagesallowed\" | translate}}
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
{{getValidationMessage(item)}}
\r\n
0 && item.caption.length <= 120\" class=\"photo-caption-character-count\">{{getValidationMessage(item)}}
\r\n
120\" class=\"photo-caption-character-count-red\">{{getValidationMessage(item)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n

{{warningDialogMessage}}

\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter, Inject, AfterViewChecked, ViewChild } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion, VisibilityRule } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\n//import { Component } from '@angular/core';\r\nimport { Store } from 'redux';\r\nimport { AppStore } from '../../app.store';\r\nimport { AppState } from '../../app.state';\r\n//import { CountryInfo } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-question',\r\n templateUrl: './question.component.html',\r\n styleUrls: ['./question.component.scss']\r\n})\r\n\r\nexport class QuestionComponent implements OnInit, AfterViewChecked {\r\n @Input() question: CultureSurveyQuestion;\r\n @Output() changeCountryEvent: EventEmitter;\r\n @Output() questionCountryRenderedEvent: EventEmitter;\r\n level: number = 0;\r\n response: CultureSurveyResponse = {\r\n variableName: \"\",\r\n response: \"\",\r\n isConfidential: false,\r\n isValid: false\r\n };\r\n flagIconUri: string;\r\n country_cbsection_id: string;\r\n countryListItems_FlagIcon: string;\r\n templateVersion: string = \"\";\r\n public selectedValue = 'global.svg';\r\n public defaultValue = 'global.svg';\r\n constructor(private bs: BackendService, @Inject(AppStore) private store: Store, private translate: TranslateService) {\r\n this.changeCountryEvent = new EventEmitter();\r\n this.questionCountryRenderedEvent = new EventEmitter();\r\n }\r\n\r\n //isQuestionFieldType(fieldType: string): boolean {\r\n // return (fieldType == 'Grid' || fieldType == 'Text' || fieldType == 'Email' || fieldType == 'Integer' || fieldType == 'Percent' || fieldType == 'Social' || fieldType == 'Url' || fieldType == 'Currency' || fieldType == 'Essay' || fieldType == 'Textarea' || fieldType == 'Choose one' || fieldType == 'Multiple choice')\r\n //}\r\n\r\n ngOnInit() {\r\n this.level = parseInt(this.question.dependency);\r\n //this.bs.consoleLog(\"variableName:\" + this.question.variableName);\r\n if (typeof this.question.variableName != 'undefined') {\r\n let responses: CultureSurveyResponse[] = this.store.getState().responses;\r\n let foundResponse: CultureSurveyResponse = responses.find(x => x.variableName == this.question.variableName);\r\n if (foundResponse) {\r\n this.response = foundResponse;\r\n //just because initially this was not populated. We can take it out later.\r\n this.response.variableName = this.question.variableName;\r\n //this.bs.consoleLog(\"found response for variableName:\" + foundResponse.variableName);\r\n }\r\n else {\r\n this.response.variableName = this.question.variableName;\r\n }\r\n\r\n //TBD Should be fixed in the template\r\n if (this.question.fieldWidth <= 0) {\r\n this.question.fieldWidth = 10;\r\n }\r\n if (this.question.isStickyHeader && this.question.countryCode) {\r\n if (this.question.countryCode.toLowerCase() == 'global') {\r\n this.flagIconUri = 'global.svg';\r\n this.country_cbsection_id = 'Entire Organization';\r\n this.selectedValue = 'global.svg';\r\n this.defaultValue = 'global.svg';\r\n }\r\n else {\r\n this.flagIconUri = this.question.countryCode + '.png';\r\n this.country_cbsection_id = this.question.countryCode;\r\n this.selectedValue = this.question.countryCode + '.png';\r\n this.defaultValue = this.question.countryCode + '.png';\r\n }\r\n }\r\n else {\r\n this.selectedValue = this.question.countryCode + '.png';\r\n this.defaultValue = this.question.countryCode + '.png';\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (this.bs.waitingForCountryToRender == true\r\n && this.bs.countryToShow == this.question.countryCode) {\r\n\r\n if (this.bs.countryChangeRequestSource == \"child\") {\r\n //scroll to the country section\r\n document.getElementById(\"section-marker-\" + this.bs.countryToShow).scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n } else if (this.bs.questionErrorToShow != \"\"\r\n && this.bs.countryChangeRequestSource == \"parent\"\r\n && this.bs.questionErrorToShow == this.question.variableName) {\r\n //scroll to the error control\r\n this.bs.questionErrorToShow = \"\";\r\n this.bs.currentStickySection = -1;\r\n this.questionCountryRenderedEvent.emit(this.bs.countryToShow);\r\n }\r\n }\r\n }\r\n\r\n /*\r\n public selectionChange(value: any): void {\r\n for (const cInfo of this.bs.countries) {\r\n //if (value.countryName == \"Entire Organization\") {\r\n // document.getElementById(\"Entire Organization\").scrollIntoView({ behavior: 'smooth' });\r\n //}\r\n //else if (cInfo.countryName == value.countryName) {\r\n // document.getElementById(cInfo.countryCode).scrollIntoView({ behavior: 'smooth' });\r\n // //this.selectedValue = cInfo.countryCode + '.png';\r\n //}\r\n if (value == \"global.svg\") {\r\n document.getElementById(\"Entire Organization\").scrollIntoView({ behavior: 'smooth' });\r\n }\r\n else if (cInfo.countryCode + '.png' == value) {\r\n document.getElementById(cInfo.countryCode).scrollIntoView({ behavior: 'smooth' });\r\n this.selectedValue = cInfo.countryCode + '.png';\r\n //setTimeout(() => {\r\n // this.selectedValue = cInfo.countryCode + '.png';\r\n //}, 1);\r\n }\r\n }\r\n setTimeout(() => {\r\n this.selectedValue = this.defaultValue;\r\n }, 1);\r\n //this.selectedValue = this.defaultValue;\r\n //if (isTrigger)\r\n // this.selectionChange(this.defaultValue, false);\r\n }*/\r\n\r\n public selectionChange(value: any): void {\r\n this.bs.waitingForCountryToRender = false;\r\n\r\n // the user selected a country from a dropdown\r\n // either load the country if not on the screen, or scroll to that country\r\n\r\n if (this.bs.countries.length <= this.bs.maxNumCountriesToShowOnCB) {\r\n // the survey has fewer than the max cutoff allowed number of countries on the CB screen\r\n // all countries are already rendered, scroll directly to newly selected country section\r\n if (value == \"global.svg\") {\r\n document.getElementById(\"section-marker-Global\").scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n } else {\r\n let selectedCountry = this.bs.countries.filter(c => { return c.countryCode + '.png' == value })[0];\r\n document.getElementById(\"section-marker-\" + selectedCountry.countryCode).scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n }\r\n }\r\n else {\r\n // for a many-country survey, the CB is only rendering the global section and one country section at a time\r\n // rebuild the screen with the newly selected country section\r\n\r\n if (this.bs.countryToShow != \"\" && this.bs.countryToShow != \"Global\") {\r\n let marker = document.getElementById(\"section-marker-\" + this.bs.countryToShow);\r\n if (marker != undefined) {\r\n marker.classList.add('hidden');\r\n }\r\n }\r\n\r\n let selectedCountryCode: string = \"\";\r\n if (value == \"global.svg\") {\r\n selectedCountryCode = \"Global\";\r\n } else {\r\n let selectedCountry = this.bs.countries.filter(c => { return c.countryCode + '.png' == value })[0];\r\n selectedCountryCode = selectedCountry.countryCode;\r\n }\r\n // raise an event to the parent countries component requesting a load of the selected country section\r\n this.changeCountryEvent.emit(selectedCountryCode);\r\n }\r\n\r\n this.selectedValue = value;\r\n setTimeout(() => {\r\n this.selectedValue = this.defaultValue;\r\n }, 1);\r\n }\r\n\r\n showHeaderInstructionsText() {\r\n return (this.question.isStickyHeader && this.question.fieldType == \"\" && this.question.instructions.length > 0)\r\n }\r\n\r\n getHeaderDisplayText() {\r\n let result = this.question.displayText;\r\n \r\n if (this.question.displayText.indexOf(\"[CompanyName]\") >= 0)\r\n {\r\n // replace country name with translated value before replacing the company name, company name can have ':', split() won't work as expected.\r\n let countryTranslationValue = result.split(':')[1]?.trim();\r\n this.translate.get('cs-page-country-' + countryTranslationValue).subscribe((data: any) => {\r\n countryTranslationValue = data.trim();\r\n result = result.split(':')[0]?.trim() + ': ' + countryTranslationValue;\r\n });\r\n\r\n let companyNameToUse = this.bs.ecrCompanyName;\r\n try {\r\n const userResponse = this.bs.getResponse(\"ca1_GEN_CountryCompanyBrandName_COUNTRY[\" + this.question.countryCode + \"]\");\r\n if (userResponse != undefined) {\r\n if (userResponse.response.length > 0)\r\n companyNameToUse = userResponse.response;\r\n }\r\n }\r\n catch (exception) {\r\n }\r\n result = result.replace(\"[CompanyName]\", companyNameToUse);\r\n }\r\n return result;\r\n }\r\n\r\n // grid, heading, question\r\n isVisible(componentType) {\r\n return this.bs.CheckIfQuestionComponentIsVisible(componentType, this.question);\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \"\" \r\n {{dataItem.countryName}}\r\n \r\n \r\n \"\" \r\n {{dataItem.countryName}}\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \"\" \r\n {{dataItem.countryName}}\r\n \r\n \r\n \"\" \r\n {{dataItem.countryName}}\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, AfterViewChecked, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { CultureSurveySection } from '../../models/misc-models';\r\nimport { QuestionComponent } from '../question/question.component';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-questions',\r\n templateUrl: './questions.component.html',\r\n styleUrls: ['./questions.component.scss']\r\n})\r\nexport class QuestionsComponent implements OnInit, AfterViewChecked {\r\n @ViewChild(QuestionComponent) questionReference: QuestionComponent\r\n @Output() countryRenderedEvent: EventEmitter;\r\n public questions: CultureSurveyQuestion[];\r\n public flattenedQuestions: CultureSurveyQuestion[] = [];\r\n public fragment: string;\r\n public sections: CultureSurveySection[] = null;\r\n //public countryToShow: string = \"\";\r\n //public countryChangeRequestSource: string = \"\";\r\n //public waitingForCountryToRender: boolean = false;\r\n\r\n constructor(private bs: BackendService, private router: Router) {\r\n this.countryRenderedEvent = new EventEmitter();\r\n this.questions = bs.getQuestions();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n try {\r\n\r\n let sortedQuestions: CultureSurveyQuestion[] = [];\r\n const firstStickyHeader: number = this.questions.findIndex(x => x.isStickyHeader == true);\r\n if (this.questions != undefined) {\r\n if (firstStickyHeader >= 0) {\r\n let globalQS = this.questions[firstStickyHeader];\r\n sortedQuestions = this.questions.filter((item, index) => { return index != firstStickyHeader });\r\n sortedQuestions = sortedQuestions.sort((a: any, b: any) => { return a.displayText.localeCompare(b.displayText); });\r\n sortedQuestions.unshift(globalQS);\r\n } else {\r\n sortedQuestions = this.questions;\r\n }\r\n\r\n for (let questionLevel1 of sortedQuestions) {\r\n questionLevel1.dependency = \"1\";\r\n if (!questionLevel1.hiddenDataOnlyQuestion)\r\n this.flattenedQuestions.push(questionLevel1);\r\n for (let questionLevel2 of questionLevel1.childQuestions) {\r\n questionLevel2.dependency = \"2\";\r\n if (!questionLevel2.hiddenDataOnlyQuestion)\r\n this.flattenedQuestions.push(questionLevel2);\r\n for (let questionLevel3 of questionLevel2.childQuestions) {\r\n questionLevel3.dependency = \"3\";\r\n if (!questionLevel3.hiddenDataOnlyQuestion)\r\n this.flattenedQuestions.push(questionLevel3);\r\n for (let questionLevel4 of questionLevel3.childQuestions) {\r\n questionLevel4.dependency = \"4\";\r\n if (!questionLevel4.hiddenDataOnlyQuestion)\r\n this.flattenedQuestions.push(questionLevel4);\r\n for (let questionLevel5 of questionLevel4.childQuestions) {\r\n questionLevel5.dependency = \"5\";\r\n if (!questionLevel5.hiddenDataOnlyQuestion)\r\n this.flattenedQuestions.push(questionLevel5);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.bs.countryToShow == \"\") {\r\n this.bs.countryToShow = \"Global\";\r\n }\r\n\r\n let countryCode = this.bs.globalSectionCountryCode;\r\n let countryCodeIndex = -2; // start at -2 so the first time it uses the global section country code defined above. after that it will use the country specific country codes\r\n if (firstStickyHeader >= 0) {\r\n this.sections = [];\r\n let sectionHeaderId = \"\";\r\n let questionIndex = -1;\r\n for (let question of this.flattenedQuestions) {\r\n\r\n if (question.isStickyHeader) {\r\n\r\n countryCodeIndex++;\r\n if (countryCodeIndex >= 0) {\r\n countryCode = this.bs.countries[countryCodeIndex].countryCode;\r\n }\r\n else {\r\n countryCode = \"Global\";\r\n }\r\n\r\n if (this.showThisSection(countryCode, this.bs.countryToShow)) {\r\n sectionHeaderId = question.displayText;\r\n this.sections.push({ sectionHeaderId: sectionHeaderId, countryCode: countryCode });\r\n questionIndex = 0;\r\n }\r\n }\r\n\r\n if (this.showThisSection(countryCode, this.bs.countryToShow)) {\r\n question.sectionHeaderId = sectionHeaderId;\r\n question.countryCode = countryCode;\r\n\r\n if (this.bs.CheckIfQuestionComponentIsVisible(\"grid\", question)\r\n || this.bs.CheckIfQuestionComponentIsVisible(\"heading\", question)\r\n || this.bs.CheckIfQuestionComponentIsVisible(\"question\", question)) {\r\n questionIndex++;\r\n question.indexInCountry = questionIndex;\r\n } else {\r\n question.indexInCountry = -1;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.bs.consoleLog(e);\r\n }\r\n }\r\n\r\n showThisSection(countryCode: string, countryToShow: string) {\r\n // return true if\r\n // there are fewer countries in the CB than the max allowed to show, or\r\n // this is the global section, or\r\n // this is the country that was requested to be rendered\r\n let showThisSection: boolean = false;\r\n if (this.bs.countries.length <= this.bs.maxNumCountriesToShowOnCB) {\r\n showThisSection = true;\r\n }\r\n else {\r\n if (countryCode == \"Global\" || countryCode == countryToShow) {\r\n showThisSection = true;\r\n }\r\n }\r\n return showThisSection;\r\n }\r\n\r\n changeCountryEvent(countryToShow: string) {\r\n // Event handler for a request received from child question component to render the requested country section\r\n this.changeCountry(countryToShow, \"child\");\r\n }\r\n\r\n changeCountry(countryToShow: string, countryChangeRequestSource: string) {\r\n // Change the country shown on the screen\r\n // countryToShow: the country code of the country being requested\r\n // countryChangeRequestSource: 'child' (this was requested via a child event) or 'parent' (direct call from parent)\r\n console.log(\"questions.component changeCountry countryToShow = '\" + countryToShow + \"', countryChangeRequestSource = '\" + countryChangeRequestSource + \"'\");\r\n this.bs.countryToShow = countryToShow ? countryToShow : 'Global';\r\n this.bs.countryChangeRequestSource = countryChangeRequestSource;\r\n // re-render the questions\r\n this.flattenedQuestions.length = 0;\r\n this.sections.length = 0;\r\n this.ngOnInit();\r\n this.bs.waitingForCountryToRender = true;\r\n\r\n /*document.getElementById(\"section-marker-\" + countryToShow).scrollIntoView({ block: 'start', behavior: 'smooth' });*/\r\n }\r\n\r\n questionCountryRenderedEvent(countryCode: string) {\r\n setTimeout(() => {\r\n this.countryRenderedEvent.emit(countryCode);\r\n }, 1);\r\n }\r\n\r\n ngAfterViewChecked() {\r\n //if (this.bs.waitingForCountryToRender == true && this.bs.countryChangeRequestSource == \"parent\") {\r\n // this.bs.waitingForCountryToRender = false;\r\n // // the request came from a parent call, raise an event to the parent that the country is now rendered\r\n // console.log(\"questions.component ngAfterViewChecked fire countryRenderedEvent this.countryToShow = '\" + this.bs.countryToShow + \"'\");\r\n // //this.countryRenderedEvent.emit(this.bs.countryToShow);\r\n //}\r\n\r\n //if (this.waitingForCountryToRender == true) {\r\n // // DOM for the requested country section is now ready\r\n\r\n // console.log(\"questions.component ngAfterViewChecked this.countryToShow = '\" + this.countryToShow + \"', this.countryChangeRequestSource = '\" + this.countryChangeRequestSource + \"'\");\r\n // if (this.countryChangeRequestSource == \"child\") {\r\n // //// scroll to the country section just rendered as a result of the child's changeCountryEvent\r\n // //if (this.countryToShow == \"\") {\r\n // // document.getElementById(\"section-marker-Global\").scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n // //}\r\n // //else {\r\n // // document.getElementById(\"section-marker-\" + this.countryToShow).scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n // //}\r\n // }\r\n // else {\r\n // if (this.countryChangeRequestSource == \"parent\") {\r\n // // the request came from a parent call, raise an event to the parent that the country is now rendered\r\n // console.log(\"questions.component ngAfterViewChecked fire countryRenderedEvent this.countryToShow = '\" + this.countryToShow + \"'\");\r\n // this.countryRenderedEvent.emit(this.countryToShow);\r\n // }\r\n // }\r\n // this.waitingForCountryToRender = false;\r\n //}\r\n }\r\n\r\n // grid, heading, question\r\n isVisible(componentType, question) {\r\n\r\n if (question.fieldType.toLowerCase() === 'logo' && componentType === \"question\") {\r\n let show: boolean = true;\r\n //if (this.bs.countries.length == 1 && this.question.variableName.indexOf(\"_COUNTRY[\") > 0)\r\n // show = false;\r\n return show;\r\n }\r\n if (question.fieldType.toLowerCase() === 'photo' && componentType === \"question\") {\r\n let show: boolean = true;\r\n //if (this.bs.countries.length == 1 && this.question.variableName.indexOf(\"_COUNTRY[\") > 0)\r\n //show = false;\r\n return show;\r\n }\r\n\r\n if (componentType === \"grid\" && question.fieldType.toLowerCase() !== 'grid')\r\n return false;\r\n\r\n if (componentType === \"heading\" && question.fieldType !== '')\r\n return false;\r\n\r\n if (componentType === \"question\" && question.fieldType == '')\r\n return false;\r\n\r\n if (componentType === \"question\" && question.fieldType.toLowerCase() === 'grid')\r\n return false;\r\n\r\n if (question.hiddenDataOnlyQuestion)\r\n return false;\r\n\r\n // Since the Default Action will ultimately decide whether to show or hide a question\r\n // absent any determination in a rule above it we check before running any DEFAULT_ACTION\r\n // if a show/hide determination has been made. If not then DEFAULT_ACTION takes over.\r\n // This change allows for nested branching which we need for the \"Is your parent company publicly traded\" branching question\r\n // which is contained within the branching question \"Are you a subsidiary\"\r\n\r\n for (let rule of question.visibilityRules) {\r\n const variableName = rule.variableName;\r\n if (variableName == \"DEFAULT_ACTION\") {\r\n if (rule.action.toLowerCase() === \"show\")\r\n return true;\r\n if (rule.action.toLowerCase() === \"hide\")\r\n return false;\r\n }\r\n else {\r\n var responses = [];\r\n var responseVars = variableName.split(\"|\");\r\n var numMatches = 0;\r\n for (let response of responseVars) {\r\n const userResponse = this.bs.getResponse(response);\r\n if (userResponse != null && userResponse.response.toLowerCase() === rule.response.toLowerCase())\r\n numMatches++;\r\n }\r\n\r\n if (numMatches == responseVars.length) { // Do all the responses match the Response in the Validation Rule?\r\n if (rule.action.toLowerCase() === \"show\")\r\n return true;\r\n if (rule.action.toLowerCase() === \"hide\") {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n 0 ? 'question-item-' + question.countryCode + '-' + question.indexInCountry : 'question-item-' + itemIndex }}\" (changeCountryEvent)=\"changeCountryEvent($event)\" (questionCountryRenderedEvent)=\"questionCountryRenderedEvent($event)\">\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\n@Component({\n selector: 'app-social',\n templateUrl: './social.component.html',\n styleUrls: ['./social.component.scss']\n})\n\nexport class SocialComponent implements OnInit {\n @Input() question;\r\n @Input() response;\n validationMessage: string = \"\";\n confidentialRollover: string = \"\";\n listExplanation: string = \"\";\n canBeConfidential: boolean = false;\r\n private _serviceSubscription;\n\n constructor(private bs: BackendService,private translate: TranslateService) {\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n //this.bs.consoleLog(\"currency:ResetComponentEvent called\");\r\n if (event.name == this.question.variableName && event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"SocialComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\n }\n\n ngOnInit() {\r\n this.onResponseChange();\n }\n\n onResponseChange() {\r\n if (this.question.canBeConfidential) {\n //this.confidentialRollover = \"Check here to keep this information confidential.\";\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n this.canBeConfidential = true;\n }\n else\n //this.confidentialRollover = \"This question can't be marked confidential.\";\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n\n if (this.question.listExplanation)\n this.listExplanation = this.question.listExplanation;\n else\n // this.listExplanation = \"There is no list specific information relevent for this question.\";\n {\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\r\n }\n this.setValidity();\n }\n\r\n setValidity() {\r\n if (this.response.response.length > 0)\r\n this.response.isValid = true;\r\n }\n\n onKeyupEvent() {\n this.setValidity();\n }\n\r\n isConfidentialChanged() {\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n focusOut() {\r\n this.bs.saveAppState(this.response);\r\n }\n\n}\n","
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
{{validationMessage}}
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, HostBinding, EventEmitter, Output } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\n\n@Component({\n selector: 'app-submit',\n templateUrl: './submit.component.html',\n styleUrls: ['./submit.component.scss']\n})\n\nexport class SubmitComponent implements OnInit {\n @Output() clicked: EventEmitter;\r\n private _serviceSubscription;\n\n constructor(private bs: BackendService) {\r\n this.clicked = new EventEmitter();\n\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n if (event.name == \"SubmitComponent\" && event.value == \"onButtonClickDeferred\") {\r\n this.bs.consoleLog(\"SubmitComponent.event.name:\" + event.name + \",event.value:\" + event.value);\r\n this.onButtonClickDeferred();\r\n }\r\n }\r\n })\r\n\n }\n\n ngOnInit() {\n }\n\n onButtonClick() {\r\n this.bs.consoleLog('Submit/Review button clicked!');\r\n this.bs.sendComponentNotifyEvent({ name: \"SurveyDataComponent\", value: \"showSpinner\" });\r\n let responses: CultureSurveyResponse[] = [];\r\n this.bs.saveAppStateResponses(responses, this.bs.VALIDATE_CHECK);\r\n }\n\n onButtonClickDeferred() {\r\n this.bs.consoleLog('onButtonClickDeferred');\r\n this.bs.Validation();\r\n if (this.bs.noErrors) {\r\n this.bs.confirm = true;\r\n }\r\n this.clicked.emit(true);\r\n }\n\n}\n","
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { countWords } from 'alfaaz';\r\n\r\n@Component({\r\n selector: 'app-textarea',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./textarea.component.scss']\r\n})\r\nexport class TextareaComponent implements OnInit {\r\n @Input() question: CultureSurveyQuestion;\r\n @Input() response: CultureSurveyResponse;\r\n validationMessage: string = \"\";\r\n confidentialRollover: string = \"\";\r\n listExplanation: string = \"\";\r\n canBeConfidential: boolean = false;\r\n wordCount: number = 0;\r\n isValidationError: boolean = false;\r\n private _serviceSubscription;\r\n isBrandName: boolean = false;\r\n public validationMessageCharactersAllowed = \"\";\r\n public characterLimit: number = 255;\r\n\r\n constructor(private bs: BackendService, private translate: TranslateService) {\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n if (event.name == this.question.variableName && event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"TextareaComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.onResponseChange();\r\n this.translate.get('cs-validationmessage-charofcharsallowed').subscribe((data: any) => {\r\n this.validationMessageCharactersAllowed = String(data);\r\n });\r\n if (this.question.variableName.indexOf(\"ca1_GEN_CountryCompanyBrandName_COUNTRY\") == 0) {\r\n this.isBrandName = true;\r\n this.translate.get('cs-validationmessage-maxcharallowed').subscribe((data: any) => {\r\n this.validationMessage = String(data).replace(\"characterLimit\", this.characterLimit.toString());\r\n });\r\n }\r\n }\r\n\r\n public getValidationMessage() {\r\n if (this.response.response.length == 0) {\r\n return this.validationMessage;\r\n }\r\n else\r\n if (this.response.response.length > 0) {\r\n let charStr: string = \"characters of\";\r\n this.translate.get('cs-validationmessage-charactersof').subscribe((data: any) => {\r\n charStr = data;\r\n });\r\n\r\n if (this.response.response.length == 1) {\r\n charStr = \"character of\";\r\n this.translate.get('cs-validationmessage-characterof').subscribe((data: any) => {\r\n charStr = data;\r\n });\r\n }\r\n\r\n return this.validationMessageCharactersAllowed.replace(\"captionLength\", this.response.response.length.toString()).replace(\"charStr\", charStr).replace(\"characterLimit\", this.characterLimit.toString());\r\n }\r\n }\r\n\r\n onResponseChange() {\r\n if (this.question.canBeConfidential) {\r\n //this.confidentialRollover = \"Check here to keep this information confidential.\";\r\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n this.canBeConfidential = true;\r\n }\r\n else {\r\n //this.confidentialRollover = \"This question can't be marked confidential.\";\r\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n }\r\n\r\n if (this.question.listExplanation)\r\n this.listExplanation = this.question.listExplanation;\r\n else\r\n // this.listExplanation = \"There is no list specific information relevent for this question.\";\r\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\r\n // Only call setValidity if we have a response\r\n if (this.response.response.length > 0) {\r\n this.setValidity();\r\n }\r\n else {\r\n //this.validationMessage = \"A maximum of \" + this.question.maxWordCount + \" words allowed.\";\r\n this.translate.get('cs-validationmessage-maxword').subscribe((data: any) => {\r\n this.validationMessage = String(data).replace(\"maxWordCount\", this.question.maxWordCount.toString());\r\n });\r\n }\r\n }\r\n\r\n setValidity() {\r\n this.isValidationError = false;\r\n this.validationMessage = \"\";\r\n this.wordCount = this.calcNumberOfWords(this.response.response);\r\n this.response.isValid = this.wordCount <= this.question.maxWordCount;\r\n\r\n if (this.isBrandName) {\r\n if (this.response.response.length > this.characterLimit)\r\n this.response.response = this.response.response.substring(0, this.characterLimit)\r\n }\r\n\r\n let wordStr: string = \"words\";\r\n this.translate.get('cs-validationmessage-words').subscribe((data: any) => {\r\n wordStr = data;\r\n });\r\n\r\n if (this.wordCount == 1) {\r\n wordStr = \"word\";\r\n this.translate.get('cs-validationmessage-word').subscribe((data: any) => {\r\n wordStr = data;\r\n });\r\n }\r\n\r\n //this.validationMessage = this.wordCount + \" \" + wordStr + \" of \" + this.question.maxWordCount + \" words allowed.\";\r\n //this.validationMessage = \"Total words: \" + this.wordCount + \" (\" + this.maxWordCount + \" \" + \"words maximum).\"\r\n this.translate.get('cs-validationmessage-maxwardcountallowed').subscribe((data: any) => {\r\n this.validationMessage = this.validationMessage += String(data).replace(\"wordCount\", this.wordCount.toString()).replace(\"wordStr\", wordStr).replace(\"maxWordCount\", this.question.maxWordCount.toString());\r\n });\r\n\r\n if (this.wordCount > this.question.maxWordCount) {\r\n //this.validationMessage = this.validationMessage + \" Please reduce your word count.\";\r\n this.translate.get('cs-validationmessage-reduceWordCount').subscribe((data: any) => {\r\n this.validationMessage = this.validationMessage += data;\r\n });\r\n this.isValidationError = true;\r\n }\r\n\r\n if (this.response.response.length == 0) {\r\n if (this.question.required) {\r\n this.response.isValid = false;\r\n if (this.isBrandName) {\r\n this.translate.get('cs-validationmessage-requiredfield').subscribe((data: any) => {\r\n this.validationMessage = String(data)\r\n });\r\n }\r\n else {\r\n this.translate.get('cs-validationmessage-requiredmaxwordcount').subscribe((data: any) => {\r\n this.validationMessage = String(data).replace(\"maxWordCount\", this.question.maxWordCount.toString());\r\n });\r\n }\r\n this.isValidationError = true;\r\n }\r\n else {\r\n this.translate.get('cs-validationmessage-maxword').subscribe((data: any) => {\r\n this.validationMessage = String(data).replace(\"maxWordCount\", this.question.maxWordCount.toString());\r\n });\r\n }\r\n }\r\n }\r\n\r\n onKeyupEvent() {\r\n this.setValidity();\r\n }\r\n\r\n isConfidentialChanged() {\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n focusOut() {\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n calcNumberOfWords(str: string): number {\r\n if (str.length == 0)\r\n return 0;\r\n\r\n return countWords(str);\r\n }\r\n\r\n}\r\n","\r\n
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{getValidationMessage()}}
\r\n
0 && response.response.length <= characterLimit\" style=\"text-align: left; padding-left: 0px; margin-left: 0px; padding-top: 4px; font-size: 16px; \"> {{getValidationMessage()}}
\r\n
characterLimit\" style=\"text-align: left; padding-left: 0px; margin-left: 0px; padding-top: 4px; font-size: 16px; \">{{getValidationMessage()}}
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
* {{\"cs-textarea-information\" | translate}}
\r\n
{{validationMessage}}
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-textinput',\r\n templateUrl: './textinput.component.html',\r\n styleUrls: ['./textinput.component.scss']\r\n})\r\n\r\nexport class TextinputComponent implements OnInit {\r\n @Input() question: CultureSurveyQuestion;\r\n @Input() response: CultureSurveyResponse;\n validationMessage: string = \"\";\n confidentialRollover: string = \"\";\n listExplanation: string = \"\";\n canBeConfidential: boolean = false;\r\n private _serviceSubscription;\n\n constructor(private bs: BackendService, private translate: TranslateService) {\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n if (event.name == this.question.variableName && event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"TextinputComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\n }\n\n ngOnInit() {\r\n this.onResponseChange();\n }\n\n onResponseChange() {\r\n if (this.question.canBeConfidential) {\n //this.confidentialRollover = \"Check here to keep this information confidential.\";\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n this.canBeConfidential = true;\n }\n else\n // this.confidentialRollover = \"This question can't be marked confidential.\";\n {\r\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n }\n\n if (this.question.listExplanation)\n this.listExplanation = this.question.listExplanation;\n else {\n //this.listExplanation = \"There is no list specific information relevent for this question.\";\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\n }\n if (this.response.response.length > 0) {\n this.setValidity();\n }\n }\n\n onKeyupEvent() {\n\n }\n\n setValidity() {\r\n this.response.isValid = true;\r\n this.validationMessage = \"\";\r\n\r\n if (this.question.required) {\r\n if (this.response.response.length > 0) {\r\n this.response.isValid = true;\n }\n else {\n this.response.isValid = false;\r\n //this.validationMessage = \"This field is required.\"\r\n this.translate.get('cs-validationmessage-filerequired').subscribe((data: any) => {\r\n this.validationMessage = data;\r\n });\r\n }\n }\r\n }\r\n\r\n\r\n isConfidentialChanged() {\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n focusOut() {\r\n this.setValidity();\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n}\r\n","\r\n
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
{{validationMessage}}
\r\n\r\n\r\n\r\n","import { Component, OnInit, Input, Inject } from '@angular/core';\r\nimport { BackendService } from '../../backend.service';\r\nimport { CultureSurveyQuestion } from '../../models/culture-survey-question';\r\nimport { CultureSurveyResponse } from '../../models/culture-survey-response';\r\nimport { ComponentNotifyEvent } from '../../models/misc-models';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-url',\n templateUrl: './url.component.html',\n styleUrls: ['./url.component.scss']\n})\nexport class UrlComponent implements OnInit {\n @Input() question;\r\n @Input() response;\n validationMessage: string = \"\";\n confidentialRollover: string = \"\";\n listExplanation: string = \"\";\n canBeConfidential: boolean = false;\r\n private _serviceSubscription;\n\n constructor(private bs: BackendService, private translate: TranslateService) {\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n //this.bs.consoleLog(`event.variableName:${event.variableName}`);\r\n //this.bs.consoleLog(\"currency:ResetComponentEvent called\");\r\n if (event.name == this.question.variableName && event.value == \"reload\") {\r\n let response: CultureSurveyResponse = this.bs.getResponse(this.question.variableName);\r\n if (response) {\r\n this.response.response = response.response\r\n this.response.isConfidential = response.isConfidential;\r\n this.response.isValid = response.isValid;\r\n this.bs.consoleLog(\"UrlComponent.varName:\" + this.question.variableName + \",response:\" + this.response.response);\r\n this.onResponseChange();\r\n }\r\n }\r\n }\r\n })\n }\n\n ngOnInit() {\r\n this.onResponseChange();\n }\n\n onResponseChange() {\r\n if (this.question.canBeConfidential) {\n //this.confidentialRollover = \"Check here to keep this information confidential.\";\n this.translate.get('cs-validationmessage-confidentialInformation').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\n this.canBeConfidential = true;\n }\n else\n //this.confidentialRollover = \"This question can't be marked confidential.\";\n {\r\n this.translate.get('cs-validationmessage-confidentialRollover').subscribe((data: any) => {\r\n this.confidentialRollover = data;\r\n });\r\n }\n\n if (this.question.listExplanation)\n this.listExplanation = this.question.listExplanation;\n else {\n //this.listExplanation = \"There is no list specific information relevent for this question.\";\n this.translate.get('cs-validationmessage-listExplanation').subscribe((data: any) => {\r\n this.listExplanation = data;\r\n });\n }\n this.setValidity();\n }\n\n onKeyupEvent() {\n }\n\n setValidity() {\n //this.bs.consoleLog(\"response:\" + this.response.response);\n this.validationMessage = \"\";\n if (this.response.response.length > 0) {\r\n if (!this.response.response.startsWith(\"http://\") && !this.response.response.startsWith(\"https://\")) {\n this.response.response = \"https://\" + this.response.response;\n }\n this.response.isValid = this.isValidUrl(this.response.response) && this.validateUrl(this.response.response);\r\n if (this.response.isValid) {\r\n if (this.response.response.substring(0, 4).toLowerCase() != 'http')\r\n this.response.isValid = false;\r\n }\r\n if (this.response.isValid) {\r\n this.validationMessage = \"\";\r\n }\r\n else {\r\n //this.validationMessage = \"Please enter a valid url (eg https://www.myurl.com)\"\r\n this.translate.get('cs-validationmessage-validurl').subscribe((data: any) => {\r\n this.validationMessage = String(data).replace(\"myurl\", \"(eg https://www.myurl.com)\");\r\n });\r\n }\r\n }\n else\n this.response.isValid = true;\n }\n\r\n\n isValidUrl(input: string) {\r\n try {\r\n const url = new URL(input);\r\n return true;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n validateUrl(input: string): boolean {\r\n\r\n const urlPattern = /^[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$/;\r\n const urlPatternWithHttp = /^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$/;\r\n return urlPattern.test(input.trim()) || urlPatternWithHttp.test(input.trim());\r\n }\n\r\n isConfidentialChanged() {\r\n this.bs.saveAppState(this.response);\r\n }\r\n\r\n focusOut() {\r\n this.setValidity();\r\n this.bs.saveAppState(this.response);\r\n }\n\n}\n\n","\r\n
\r\n

\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
{{validationMessage}}
\r\n","\nimport { Component, Inject, Injectable, OnInit, NgModule, HostListener, AfterViewInit, ViewChild } from '@angular/core';\nimport { AuthService } from '../services/auth.service'\nimport { AppInsights } from 'applicationinsights-js';\nimport { Router, ActivatedRoute, RouterModule } from '@angular/router';\nimport { ReopenCultureSurveyResult } from '../models/misc-models';\nimport { BackendService } from '../backend.service';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\n@Component({\n selector: 'app-reopen',\n templateUrl: './reopen.component.html',\n styleUrls: ['./reopen.component.scss']\n})\nexport class ReopenComponent implements OnInit {\n private cultureSurveyId: string;\n public errorStr: string = \"\";\n\n constructor(private route: ActivatedRoute,\n private http: HttpClient,\n private authService: AuthService,\n @Inject('BASE_URL') baseUrl: string,\n private _httpClient: HttpClient,\n public bs: BackendService,\n private router: Router) {\n\n route.params.subscribe(params => {\n\n this.cultureSurveyId = params['cultureSurveyId'];\n })\n\n AppInsights.trackPageView(\"In ReopenComponent constructor \");\n\n let headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': this.authService.getAuthorizationHeaderValue() });\n\n http.get(baseUrl + 'api/CultureSurvey/ReopenCultureSurvey?CultureSurveyId=' + this.cultureSurveyId, { headers: headers }).subscribe(result => {\n\n if (result.isError == false) {\n this.router.navigate(['/survey/' + this.cultureSurveyId]);\n }\n else {\n this.errorStr = \"Error:\" + result.errorStr;\n console.error(\"CulureSurvey Reopen failed. Error:\" + result.errorStr)\n }\n }, error => {\n console.error(error)\n this.errorStr = \"CulureSurvey Reopen failed.\"\n });\n\n }\n\n ngOnInit() {\n }\n\n \n\n\n}\n","\r\n
\r\n
\r\n {{errorStr}}\r\n
\r\n
\r\n 2017-2021 ©Great Place To Work®. All Rights Reserved.\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-securityerror',\n templateUrl: './securityerror.component.html',\n styleUrls: ['./securityerror.component.scss']\n})\nexport class SecurityerrorComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","

\r\n \r\n {{\"cs-errorpage-securitykeyError\" | translate}}\r\n

\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot } from '@angular/router';\nimport { AuthService } from '../services/auth.service'\nimport { Router } from '@angular/router';\nimport { PortalClaimRequired } from '../services/auth.service';\nimport { GPTWEmployeeOnly } from '../services/auth.service';\nimport { AuthenticationOnly } from '../services/auth.service';\nimport { OpenAccess } from '../services/auth.service';\nimport { ErrorService } from './error.service';\n\n//@Injectable({\n// providedIn: 'root'\n//})\n//export class AuthGuardService {\n\n// constructor() { }\n//}\n\n@Injectable()\nexport class AuthGuardService implements CanActivate {\n\n constructor(private authService: AuthService, private router: Router, private errorService:ErrorService) { }\n\n canActivate(route: ActivatedRouteSnapshot): boolean {\n\n if (route != null && route.url.length > 0) {\n let url: string = \"\";\n for (let part of route.url) {\n url += \"/\" + part.path;\n }\n this.authService.consoleLog(\"canActivate-url:\" + url)\n if (url != \"/error/downformaintenance\") {\n if (this.authService.isAppMaintenanceMode == 'yes' && !this.authService.isExemptFromMaintanencePage())\n this.errorService.handleErrorNavigation([\"/error/downformaintenance\"]); //then redirect to the down for maintenance page\n }\n }\n\n // If I have no route access data you aren't getting in\n if (route.data == undefined) {\n this.errorService.handleErrorNavigation([\"/error/noaccess\"]);\n return false;\n }\n\n // IF the component is open then everyone gets in.\n if (route.data.access == OpenAccess) {\n return true;\n }\n\n if (this.authService.isLoggedIn()) {\n\n // if this is an employee and they don't have env claim return false immediately\n if (this.authService.isEmployee() && !this.authService.doesEmployeeHaveExpectedEnvClaim()) {\n this.errorService.handleErrorNavigation([\"/error/noaccess\"]);\n return false;\n }\n\n // if Authentication only then we're done\n if (route.data.access == AuthenticationOnly) {\n return true;\n }\n\n // If this component has been decorated with GPTWEmployeeOnly Access then check and route to no access if they aren't an employee\n if (route.data.access == GPTWEmployeeOnly) {\n if (!this.authService.isEmployee()) {\n this.errorService.handleErrorNavigation([\"/error/noaccess\"]);\n return false;\n }\n return true;\n }\n\n // If we are at this point in the code they must have the PortalClaimRequired or some configuration has been\n // accidently not entered so we are going to bail which will force the developer to enter the correct configuration \n if (route.data.access != PortalClaimRequired) {\n this.errorService.handleErrorNavigation([\"/error/noaccess\"]);\n return false;\n }\n\n if (!this.authService.isEmployeeWithPortalClaim() && !this.authService.isEndUserWithPortalClaim()) {\n this.errorService.handleErrorNavigation([\"/error/noaccess\"]);\n return false;\n }\n\n return true;\n }\n else {\n if (route != null && route.url.length > 0) {\n let url: string = \"\";\n for (let part of route.url) {\n url += \"/\" + part.path;\n }\n this.authService.consoleLog(\"storing url:\" + url);\n localStorage.returnUrl = url;\n }\n }\n\n this.authService.startAuthentication();\n return false;\n }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { UserManager, UserManagerSettings, User } from 'oidc-client';\nimport { AppInsights } from 'applicationinsights-js';\nimport { Router } from '@angular/router';\nimport { ClientConfiguration, Claim, SetPortalContactLoginDateResult, AppConfigDetailsResult} from '../models/misc-models';\nimport { HttpHeaders, HttpClient, HttpParameterCodec } from '@angular/common/http';\nimport { startPendo } from 'src/assets/js/Pendo.js';\r\nimport { ErrorService } from './error.service';\r\n\r\nfunction _window(): any {\r\n // return the global native browser window object\r\n return window;\r\n}\r\n\r\n@Injectable()\r\nexport class WindowRef {\r\n get nativeWindow(): any {\r\n return _window();\r\n }\r\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n public manager: UserManager;\n public claims: Claim[];\n public user: User = null;\n private baseUrl: string = \"\";\n private httpClient: HttpClient;\n public config: ClientConfiguration = new ClientConfiguration();\n private sessionId: string = \"\";\n private email: string = \"\";\n private clientId: string = \"\";\n public timerId: any;\n public isAppMaintenanceMode: string = \"\";\n public appVersion: string = null;\n public nativeWindow: any;\n public surveyId: string;\n\n constructor(private winRef: WindowRef, @Inject('BASE_URL') baseUrl: string, private router: Router, http: HttpClient, private errorService:ErrorService) {\n //constructor( @Inject('BASE_URL') baseUrl: string, private router: Router, http: HttpClient) {\n this.baseUrl = baseUrl;\n this.httpClient = http;\n\n\n //this.config = eval(\"window.client_config\");\n\n this.nativeWindow = winRef.nativeWindow;\n this.config = winRef.nativeWindow.client_config;\n\n this.baseUrl = baseUrl;\n this.httpClient = http;\n this.manager = new UserManager(getClientSettings(baseUrl, this.config.AuthServerAuthority, this.config.PostLogoutRedirectUri));\n this.manager.getUser().then(user => {\r\n this.user = user;\r\n });\n\n }\n\r\n consoleLog(value) {\r\n if (this.isConsoleLogging())\r\n console.log(value);\r\n }\r\n\n reload() {\n window.location.reload();\n }\r\n\r\n isConsoleLogging() {\r\n if (localStorage.hasOwnProperty('isConsoleLogging'))\r\n return localStorage.isConsoleLogging == \"true\";\r\n return false;\r\n }\n\n isLoggedIn(): boolean {\n return this.user != null && !this.user.expired;\n }\n\n isClaimValid(claimType: string, claimValue: string): boolean {\r\n var index: number = this.claims.findIndex(x => x.claimType == claimType);\r\n if (index >= 0) {\n var cv: any = this.claims[index].claimValue; // this value can be a string OR an array\n if (typeof cv === 'string') {\r\n if (cv == claimValue)\r\n return true;\r\n }\r\n else {\r\n for (var i = 0; i < cv.length; i++) {\r\n if (cv[i] == claimValue)\r\n return true;\r\n }\r\n }\n }\r\n return false;\r\n }\n\n // NOTE: This method can be called for any non role claim because that allows us to simply return a string. Empty or otherwise.\n // The role claim can have multiple roles which would need to return an array. Technically other claims can too.\n // For instance the amr claim. However we're not having to look at that one. Of the claims we need to look out this scheme should work.\n getNonRoleClaim(claimType: string): string {\r\n if (this.claims != undefined) {\r\n var index: number = this.claims.findIndex(x => x.claimType == claimType);\r\n if (index >= 0) {\r\n return this.claims[index].claimValue;\r\n }\r\n }\r\n return \"\"\r\n }\n\n doesEmployeeHaveExpectedEnvClaim() {\n if (this.claims != undefined) {\r\n let envClaimName = \"GptwAd_\" + this.config.ExpectedEnvironmentClaim;\r\n var index: number = this.claims.findIndex(x => x.claimType == envClaimName);\r\n if (index >= 0) {\r\n return this.claims[index].claimValue == this.config.ExpectedEnvironmentClaim;\r\n }\r\n }\r\n return false;\r\n }\n\n getClaims(): any {\n return this.claims;\n }\n\n getAuthorizationHeaderTokenValueOnly(): string {\r\n return `${this.user.access_token}`;\r\n }\n\n getAuthorizationHeaderValue(): string {\n return `${this.user.token_type} ${this.user.access_token}`;\n }\n\n getAuthorizationToken(): string {\n return this.user.access_token;\n }\n\n getRequestHeaders(): HttpHeaders {\n let headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': this.getAuthorizationHeaderValue(), 'cs-session-id': this.getSessionId() });\n return headers;\n }\n\n getSessionId(): string {\n return this.sessionId;\n }\n\n startAuthentication(): Promise {\n return this.manager.signinRedirect();\n\n }\n\n logOut(): Promise {\n this.claims = [];\n return this.manager.signoutRedirect();\r\n }\n\n isEmployee() {\n let idpClaim = this.getNonRoleClaim(\"idp\");\n return (idpClaim == 'GptwEmployeeLogin');\n }\n\r\n isEmployeeWithPortalClaim(): boolean {\n return this.isClaimValid(\"GptwAd_GptwAppRole_PortalGeneral\", \"GptwAppRole_PortalGeneral\");\n }\r\n\r\n isEndUserWithPortalClaim() {\n return this.isClaimValid(\"role\", \"ClientAppRole_PortalManager\");\n }\n\n // TBD- If possible this code should look at the route object and pull this information from there.\n DoesRouteRequirePortalClaim(routePath: string) {\n if (routePath.toLowerCase().indexOf(\"/error/\") >= 0)\n return false\n else\r\n return true\r\n }\r\n\n getUserEmailValue(): string {\r\n var result = \"\";\r\n try {\r\n result = this.user.profile.email;\r\n }\r\n catch { }\r\n return result;\r\n }\n\n // Only gptw employees and users with an email address containing @forallcorp.com are exempt\n isExemptFromMaintanencePage() {\r\n if (!this.isEmployee()) // only continue if we are not an employee\r\n {\r\n let email = this.getUserEmailValue();\r\n this.consoleLog(\"email: \" + this.getUserEmailValue());\r\n if (email != undefined) {\r\n if (email.toLowerCase().indexOf(\"@forallcorp.com\") > 0) { //check for a @forallcorp.com email\r\n this.consoleLog(\"forallcorp.com email so skipping the redirect to the Down for maintenance page\");\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }\r\n else {\r\n this.consoleLog(\"isEmployee: \" + this.isEmployee() + \". Skipping the redirect to the Down For Maintenance Page\");\r\n }\r\n return true;\r\n }\n\r\n completeAuthentication(): Promise {\r\n this.consoleLog(\"In CompleteAuthentication\")\r\n return this.manager.signinRedirectCallback().then(user => {\r\n this.consoleLog(\"Completed SigninRedirectCallback\")\r\n this.user = user;\r\n if (user === null || user === undefined) {\r\n this.consoleLog(\"User is undefined\");\r\n }\r\n this.consoleLog(\"User \" + user.profile.email);\r\n let i = 0;\r\n let claims: Claim[] = [];\r\n for (let key in this.user.profile) {\r\n let value = this.user.profile[key];\r\n claims[i] = { \"claimType\": key, \"claimValue\": value };\r\n i++;\r\n }\r\n this.claims = claims;\n\n // if the language claim is missing, add one\n if (this.claims.findIndex(claim => claim.claimType == \"language\") == -1)\n this.claims.push({ claimType: \"language\", claimValue: \"en-US\" });\n\n this.sessionId = new Date().getTime().toString();\r\n\n let returnUrl = \"\";\n\n if (localStorage.hasOwnProperty('returnUrl')) {\r\n returnUrl = localStorage.returnUrl;\r\n }\r\n else {\r\n this.consoleLog(\"localStorage.hasOwnProperty-returns false\")\r\n }\r\n\r\n this.consoleLog(\"Auth.Service-navigate to:\" + returnUrl);\n\r\n if (this.config.IsAppMaintenanceMode.toLowerCase() == 'yes') {\r\n if (!this.isExemptFromMaintanencePage()) {\r\n this.errorService.handleErrorNavigation([\"/error/downformaintenance\"]); //then redirect to the down for maintenance page\r\n return;\r\n }\r\n }\n\n this.timerId = setInterval(() => {\r\n const isExpired: boolean = user.expired;\r\n try {\r\n const hours = Math.floor(user.expires_in / 60 / 60);\r\n const minutes = Math.floor(user.expires_in / 60) - (hours * 60)\r\n if ((minutes % 10) == 0)\r\n this.consoleLog(\"session expires in \" + hours + \" hours, \" + minutes + \" minutes\");\r\n } catch { }\n if (isExpired) {\r\n clearInterval(this.timerId);\r\n this.errorService.handleErrorNavigation([\"/error/sessionExpired\"]);\n }\n }, 1000 * 60 * 1);\n\n if (this.DoesRouteRequirePortalClaim(returnUrl) && !this.isEmployeeWithPortalClaim() && !this.isEndUserWithPortalClaim()) {\r\n this.errorService.handleErrorNavigation([\"/error/noaccess\"]);\n return;\n }\n\r\n let userEmail = \"\";\r\n for (let i = 0; i < this.claims.length; i++) {\r\n let claim = this.claims[i];\r\n if (claim.claimType == \"upn\") {\r\n userEmail = claim.claimValue;\r\n }\r\n }\r\n\r\n // Install and activate Pendo\r\n startPendo(userEmail);\r\n\r\n if (returnUrl) {\r\n this.consoleLog(\"CompleteAuthentication-navigate to:\" + returnUrl)\r\n this.router.navigate([returnUrl]);\r\n if (returnUrl.indexOf('reopen') > 0) {\r\n this.surveyId = returnUrl.substring(\"'survey/\".length, returnUrl.length);\r\n this.surveyId = this.surveyId.substring(0, this.surveyId.length - \"/reopen\".length);\r\n }\r\n else\r\n this.surveyId = returnUrl.substring(\"'survey/\".length, returnUrl.length);\r\n }\r\n else {\r\n this.consoleLog('navigate to the root.\"\"');\r\n this.router.navigate([\"/\"]);\r\n }\r\n\r\n }).catch(function(e) {\r\n\r\n if (e.message != undefined) {\r\n this.console(\"completeAuthentication: unhandled exception. e.Error:\" + e.message);\r\n if (e.message.toLowerCase().indexOf(\"iat is in the future\") >= 0) {\r\n window.location.href = \"/error/tokenexpiredatlogin\";\r\n return;\r\n }\r\n if (e.message.toLowerCase().indexOf(\"exp is in the past\") >= 0) {\r\n window.location.href = \"/error/tokenexpiredatlogin\";\r\n return;\r\n }\r\n }\r\n console.error(e);\r\n window.location.href = \"/error/general\";\r\n });\r\n }\n}\n\nexport function getClientSettings(baseUrl: string, authServerAuthority: string, postLogoutRedirectUri: string): UserManagerSettings {\n let myUserSettings: UserManagerSettings;\n myUserSettings = {\n authority: authServerAuthority,\n client_id: 'Gptw_CultureSurvey',\n redirect_uri: baseUrl + 'auth-callback',\n post_logout_redirect_uri: postLogoutRedirectUri,\n response_type: \"id_token token\",\n scope: \"openid profile all_claims GptwClientLoginScope\",\n filterProtocolClaims: true,\n loadUserInfo: true\n };\n return myUserSettings;\n}\n\nexport class CustomHttpParamEncoder implements HttpParameterCodec {\n public encodeKey(key: string): string {\n return encodeURIComponent(key);\n }\n public encodeValue(value: string): string {\n return encodeURIComponent(value);\n }\n public decodeKey(key: string): string {\n return decodeURIComponent(key);\n }\n public decodeValue(value: string): string {\n return decodeURIComponent(value);\n }\n}\n\n\r\n// Requires Authentication (having a token) AND a portal claim (whether an employee or an end user)\r\nexport class PortalClaimRequired {\r\n}\r\n// Requires Authentication (having a token) AND an employee claim (idp = 'GptwEmployeeLogin')\r\nexport class GPTWEmployeeOnly {\r\n}\r\n// Requires Authentication (having a token) only. No additional Authorization required.\r\nexport class AuthenticationOnly {\r\n}\r\n// Requires Neither Authentication or Authorization. For instance the error page has be to able to tell users that they have no access or that an error occurred.\r\nexport class OpenAccess {\r\n}\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras, Event, NavigationStart } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorService {\r\n private errorPageNavigatedSubject = new BehaviorSubject(false);\r\n private readonly ERROR_PAGE_PATH = '/error';\r\n\r\n constructor(private router: Router) {\r\n // Listen to router events to reset the errorPageNavigated when user navigates away from the error page\r\n this.router.events.pipe(\r\n filter((event: Event) => event instanceof NavigationStart)\r\n ).subscribe((event: NavigationStart) => {\r\n // Check if we're leaving the error page (and reset the error state)\r\n if (!event.url.includes(this.ERROR_PAGE_PATH)) {\r\n this.resetErrorPageNavigation();\r\n }\r\n });\r\n }\r\n\r\n // Set the error page navigation flag to true\r\n setErrorPageNavigated() {\r\n this.errorPageNavigatedSubject.next(true);\r\n }\r\n\r\n // Reset the error page navigation flag to false\r\n resetErrorPageNavigation() {\r\n this.errorPageNavigatedSubject.next(false);\r\n }\r\n\r\n // Check if the error page has been navigated to already\r\n getCurrentErrorPageNavigated(): boolean {\r\n return this.errorPageNavigatedSubject.getValue();\r\n }\r\n\r\n // Handle error and navigating to error page\r\n handleErrorNavigation(commands: any[], extras?: NavigationExtras) {\r\n if (!this.getCurrentErrorPageNavigated()) {\r\n this.setErrorPageNavigated();\r\n this.router.navigate(commands, extras);\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-submitfail',\n templateUrl: './submitfail.component.html',\n styleUrls: ['./submitfail.component.scss']\n})\nexport class SubmitfailComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","
\r\n
\r\n An error occurred while trying to submit your survey.\r\n\r\n Please return to the Portal and try again, or contact your friendly GPTW staff for help.\r\n
\r\n
\r\n 2017-2019 ©Great Place To Work®. All Rights Reserved.\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\nimport { BackendService } from '../backend.service';\nimport { ViewportScroller } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-submitted',\n templateUrl: './submitted.component.html',\n styleUrls: ['./submitted.component.scss']\n})\nexport class SubmittedComponent implements OnInit {\n\n // this placeholder is in the LanguageResources.Sql script in \n public placeholder: string = \"portalLink\";\n public portalReturnMessage: string = \"\";\n constructor(public bs: BackendService, private viewportScroller: ViewportScroller, private translate: TranslateService) { }\n\n ngOnInit() {\n this.scrollToTop();\n this.getportalUrl();\n }\n\n scrollToTop() {\n this.viewportScroller.scrollToPosition([0, 0]);\n }\n\n\n public getportalUrl() {\n this.translate.get('cs-validationmessage-cbportalreturn').subscribe((data: string) => {\n\n\n let placeholderIndex = data.indexOf(this.placeholder);\n\n // Only if we change theplaceholder would this fail.\n if (placeholderIndex !== -1) {\n const afterPlaceholder = data.slice(placeholderIndex, + this.placeholder.length).trim();\r\n\r\n if (afterPlaceholder.length >= 4) {\r\n this.portalReturnMessage = String(data).replace(\"portalLink\", \"\");\r\n }\r\n\r\n var temp = `${data.replace(this.placeholder, \"\").trim()}`;\r\n\r\n this.portalReturnMessage = String(temp);\r\n\r\n }\n });\n }\n} \n","\r\n
\r\n
\n {{\"cs-validationmessage-cbcompletionsuccess\" | translate}}\n
\n
\n \n
\r\n
\r\n","import { NgModule, Inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CultureSurveyResponse } from './models/culture-survey-response';\r\nimport { Reducer, Action } from 'redux';\r\nimport { AppState } from './app.state';\r\n//import { BackendService } from './backend.service';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\n\r\nexport class SurveyReducer {\r\n //constructor(private bs: BackendService) { }\r\n}\r\n\r\nconst UPDATE_DATA = 'UPDATE_DATA';\r\n\r\ninterface UpdateResponseAction extends Action {\r\n type: 'UPDATE_DATA';\r\n newResponse: CultureSurveyResponse;\r\n}\r\n\r\nconst initialState: AppState = { responses: [] };\r\n\r\n// Create our reducer that will handle changes to the state\r\nexport const surveyReducer: Reducer =\r\n (state: AppState = initialState, action: Action): AppState => {\r\n switch (action.type)\r\n {\r\n case 'RESET_EVENT':\r\n state.responses = [];\r\n return state;\r\n\r\n case 'UPDATE_DATA':\r\n let foundResponse: boolean = false;\r\n let nr: CultureSurveyResponse = (action).newResponse;\r\n for (let i in state.responses) {\r\n if (state.responses[i].variableName == nr.variableName) {\r\n //this.bs.consoleLog(\"Updated:(\" + nr.variableName + \") \" + nr.isValid + \",\" + nr.isConfidential + \",\" + nr.response);\r\n state.responses[i] = nr;\r\n foundResponse = true;\r\n break;\r\n }\r\n }\r\n if (!foundResponse) {\r\n state.responses = state.responses.concat(nr);\r\n //this.bs.consoleLog(\"Saved:(\" + nr.variableName + \") \" + nr.isValid + \",\" + nr.isConfidential + \",\" + nr.response);\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n };\r\n","import { Component, Inject, Injectable, OnInit, NgModule, HostListener, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AppInsights } from 'applicationinsights-js';\r\nimport { Router, ActivatedRoute, RouterModule } from '@angular/router';\r\nimport { CultureSurveyQuestion } from '../models/culture-survey-question';\r\nimport { QuestionsComponent } from '../question-components/questions/questions.component';\r\nimport { QuestionComponent } from '../question-components/question/question.component';\r\nimport { BackendService } from '../backend.service';\r\nimport { ErrorHighlights } from '../models/misc-models';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { DataTransferObject } from '../models/data-transfer-object';\r\nimport { AppStore } from '../app.store';\r\nimport { AppState } from '../app.state';\r\nimport {\r\n Action,\r\n Reducer,\r\n Store,\r\n createStore\r\n} from 'redux';\r\nimport { Subscription } from 'rxjs';\r\nimport { ErrorService } from '../services/error.service';\r\n\r\n@Component({\r\n selector: 'app-survey',\r\n templateUrl: './survey.component.html'\r\n})\r\n//export class SurveyComponent implements OnInit {\r\n// private surveyId: string;\r\n// private secureGuid1: string;\r\n// private secureGuid2: string;\r\n// private authenticationUrl: string;\r\n// private surveyState: string;\r\n\r\n// constructor(private route: ActivatedRoute,\r\n// http: HttpClient,\r\n// @Inject('BASE_URL') baseUrl: string,\r\n// private router: Router,\r\n// private bs: BackendService,\r\n// @Inject(AppStore) private store: Store) {\r\n// route.params.subscribe(params => {\r\n// this.surveyId = params['cultureSurveyId'];\r\n// this.secureGuid1 = params['secureGuid1'];\r\n// this.secureGuid2 = params['secureGuid2'];\r\n// })\r\n\r\n// AppInsights.trackPageView(\"In survey constructor \" + this.surveyId);\r\n\r\n// this.authenticationUrl = baseUrl + 'api/CultureSurvey/GetSurveyData?CultureSurveyId=' + this.surveyId;\r\n\r\n// http.get(this.authenticationUrl).subscribe(result => {\r\n// if (result.result == 200) {\r\n// bs.setUpAppState(this.surveyId, this.secureGuid1, this.secureGuid2, result)\r\n// for (let newResponse of result.responses) {\r\n// this.store.dispatch({ type: \"UPDATE_DATA\", newResponse });\r\n// }\r\n// //this.bs.consoleLog(\"Authentication was a success. Redirecting to survey.\");\r\n// //this.router.navigate(['/survey/' + this.surveyId]);\r\n// this.bs.confirm = false;\r\n// }\r\n// else {\r\n// this.bs.consoleLog(\"Authentication failed!\")\r\n// if (result.result == 404) {\r\n// this.bs.consoleLog(\"not found\")\r\n// this.router.navigate(['/survey/' + this.surveyId + '/notfound/']);\r\n// }\r\n// if (result.result == 401) {\r\n// this.bs.consoleLog(\"security error\")\r\n// this.router.navigate(['/survey/' + this.surveyId + '/securityerror/' ]);\r\n// }\r\n// }\r\n// }, error => {\r\n// console.error(error)\r\n// });\r\n// }\r\n\r\n// ngOnInit(): void { }\r\n//}\r\n\r\nexport class SurveyComponent implements OnInit {\r\n @ViewChild(QuestionsComponent) questionsReference: QuestionsComponent\r\n private cultureSurveyId: string;\r\n private authenticationUrl: string;\r\n private surveyState: string;\r\n\r\n private questions: CultureSurveyQuestion[];\r\n public topOfPage: number;\r\n public doit: string;\r\n public submitted: boolean = false;\r\n public readonly: boolean = false;\r\n public readonlyopen: boolean = false;\r\n public surveyType: string = \"\";\r\n public surveyTitle: string = \"\";\r\n public surveyIntroduction: string = \"\";\r\n public actionsLayout: string = 'normal';\r\n public myActions = [\r\n { text: 'Cancel' },\r\n { text: 'Ok', primary: true }\r\n ]\r\n public surveyStateMessage: string = \"\";\r\n public ready: boolean = false;\r\n private _serviceSubscription: Subscription | null = null;\r\n\r\n constructor(private route: ActivatedRoute, http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n public bs: BackendService,\r\n private router: Router,\r\n elRef: ElementRef,\r\n @Inject(AppStore) private store: Store,\r\n private errorService: ErrorService ) {\r\n route.params.subscribe(params => {\r\n this.cultureSurveyId = params['cultureSurveyId'];\r\n this.topOfPage = 0;\r\n })\r\n\r\n\r\n AppInsights.trackPageView(\"In survey constructor \" + this.cultureSurveyId);\r\n\r\n this.authenticationUrl = baseUrl + 'api/CultureSurvey/GetSurveyData?CultureSurveyId=' + this.cultureSurveyId;\r\n\r\n this._serviceSubscription = http.get(this.authenticationUrl).subscribe(result => {\r\n if (result.result == 200) {\r\n bs.setUpAppState(this.cultureSurveyId, result)\r\n for (let newResponse of result.responses) {\r\n this.store.dispatch({ type: \"UPDATE_DATA\", newResponse });\r\n }\r\n //this.bs.consoleLog(\"Authentication was a success. Redirecting to survey.\");\r\n //this.router.navigate(['/survey/' + this.surveyId]);\r\n this.bs.confirm = false;\r\n this.ready = true;\r\n\r\n this.surveyType = this.bs.getSurveyType();\r\n this.surveyTitle = this.bs.getSurveyTitle();\r\n this.surveyIntroduction = this.bs.surveyIntroduction;\r\n }\r\n else {\r\n this.bs.consoleLog(\"Authentication failed!\")\r\n if (result.result == 404) {\r\n this.bs.consoleLog(\"not found\")\r\n this.router.navigate(['/survey/' + this.cultureSurveyId + '/notfound/']);\r\n }\r\n if (result.result == 401) {\r\n this.bs.consoleLog(\"security error\")\r\n this.router.navigate(['/survey/' + this.cultureSurveyId + '/securityerror/']);\r\n }\r\n }\r\n }, error => {\r\n console.error(error)\r\n });\r\n }\r\n\r\n\r\n //AppInsights.trackPageView(\"In SurveyData \" + this.cultureSurveyId);\r\n //if (this.bs.surveyState === \"Complete\") {\r\n // this.readonly = true;\r\n // this.readonlyopen = true;\r\n // this.surveyStateMessage = \"Already Submitted\";\r\n //}\r\n //if (this.bs.surveyState === \"Submitting\") {\r\n // this.readonly = true;\r\n // this.readonlyopen = true;\r\n // this.surveyStateMessage = \"Submission in Progress\";\r\n //}\r\n\r\n ngOnInit() {\r\n if (this.bs.surveyId !== this.cultureSurveyId) {\r\n this.errorService.handleErrorNavigation(['/error/general']);\r\n }\r\n }\r\n\r\n closeImagePreview() {\r\n this.bs.showImagePreview = false;\r\n this.bs.slideImageIndex = 0;\r\n }\r\n\r\n closeLogoPreview() {\r\n this.bs.showLogoPreview = false;\r\n }\r\n\r\n setNextImage(direction: number) {\r\n let i = 10;\r\n //let photos = this.bs.getPhotos();\r\n //this.bs.slideImageIndex += direction;\r\n //if (this.bs.slideImageIndex < 0) {\r\n // this.bs.slideImageIndex = photos.length - 1;\r\n //}\r\n //if (this.bs.slideImageIndex > photos.length - 1) {\r\n // this.bs.slideImageIndex = 0;\r\n //}\r\n //this.bs.photoFileName = photos[this.bs.slideImageIndex].fileName;\r\n //this.bs.photoCaption = photos[this.bs.slideImageIndex].caption;\r\n }\r\n\r\n onClick() {\r\n AppInsights.trackPageView(\"In SurveyData onClick \");\r\n\r\n this.bs.opened = true;\r\n this.bs.surveyState = \"ValidationMode\";\r\n\r\n if (this.bs.myErrors.length == 0) {\r\n this.bs.opened = false;\r\n }\r\n else {\r\n this.onErrorClick(this.bs.myErrors[0].highlightVars);\r\n }\r\n }\r\n\r\n\r\n openClose(openit: boolean) {\r\n this.bs.opened = openit;\r\n if (openit == false) {\r\n this.ResetColour();\r\n }\r\n }\r\n\r\n finalize(submit: string) {\r\n //add Update logic here\r\n if (submit === 'yes') {\r\n this.submitted = true;\r\n this.bs.surveyState = \"Submitting\";\r\n this.bs.SubmitSurvey();\r\n }\r\n else {\r\n this.bs.confirm = false;\r\n }\r\n }\r\n\r\n ResetColour() {\r\n for (let resetQuestion of this.bs.myErrors) {\r\n for (let allvars of resetQuestion.highlightVars) {\r\n let myQstn = document.getElementById(allvars);\r\n if (myQstn) {\r\n myQstn.classList.remove(\"question-error\");\r\n // myQstn.classList.add(\"question-child\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n readonlyclose() {\r\n this.readonlyopen = false;\r\n }\r\n\r\n onErrorClick(divs: string[]) {\r\n\r\n if (divs) {\r\n this.ResetColour();\r\n for (var i = 0; i < divs.length; i++) {\r\n let divName: string = divs[i];\r\n this.bs.consoleLog(divName);\r\n let myDiv = document.getElementById(divName);\r\n\r\n if (myDiv) {\r\n if (!myDiv.classList.contains(\"question-error\")) {\r\n myDiv.classList.add(\"question-error\");\r\n }\r\n }\r\n }\r\n\r\n const myfirstDiv = document.getElementById(divs[0]);\r\n myfirstDiv.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n }\r\n }\r\n\r\n onGoToTopClick() {\r\n const myfirstDiv = document.getElementById(\"top\");\r\n myfirstDiv.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._serviceSubscription) {\r\n this._serviceSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n //@HostListener('window:popstate', ['$event'])\r\n //onBrowserBackBtnClose(event: Event) {\r\n // this.bs.consoleLog('back button pressed');\r\n // event.preventDefault();\r\n // this.router.navigate([this.bs.PortalURL], { replaceUrl: true });\r\n //}\r\n}\r\n\r\n","\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n RouterModule,\r\n ActivatedRoute,\r\n Router,\r\n Routes\r\n} from '@angular/router';\r\nimport { SurveyComponent } from './survey.component';\r\n\r\n\r\n\r\nexport const routes: Routes = [\r\n { path: ':cultureSurveyId', component: SurveyComponent }\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n SurveyComponent],\r\n exports: [\r\n SurveyComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ]\r\n})\r\nexport class SurveyModule { }\r\n\r\n","import { Component, Inject, Injectable, OnInit, NgModule, HostListener, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { AuthService } from '../services/auth.service'\r\nimport { AppInsights } from 'applicationinsights-js';\r\nimport { Router, ActivatedRoute, RouterModule } from '@angular/router';\r\nimport { CultureSurveyQuestion } from '../models/culture-survey-question';\r\nimport { QuestionsComponent } from '../question-components/questions/questions.component';\r\nimport { BackendService } from '../backend.service';\r\nimport { DataTransferObject } from '../models/data-transfer-object';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { ComponentNotifyEvent } from '../models/misc-models';\r\nimport { AppStore } from '../app.store';\r\nimport { AppState } from '../app.state';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CultureSurveyResponse } from '../models/culture-survey-response';\r\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\r\n\r\nimport {\r\n Action,\r\n Reducer,\r\n Store,\r\n createStore\r\n} from 'redux';\r\nimport { ErrorService } from '../services/error.service';\r\n\r\n@Component({\r\n selector: 'app-surveydata',\r\n templateUrl: './surveydata.component.html'\r\n})\r\n\r\nexport class SurveyDataComponent implements OnInit {\r\n @ViewChild(QuestionsComponent) questionsReference: QuestionsComponent\r\n private cultureSurveyId: string;\r\n private questions: CultureSurveyQuestion[];\r\n public topOfPage: number;\r\n public doit: string;\r\n public submitted: boolean = false;\r\n public readonly: boolean = false;\r\n public readonlyopen: boolean = false;\r\n public surveyType: string = \"\";\r\n public surveyTitle: string = \"\";\r\n public surveyIntroduction: any;\r\n public actionsLayout: string = 'normal';\r\n public myActions = [\r\n { text: 'Cancel' },\r\n { text: 'Ok', primary: true }\r\n ]\r\n public surveyStateMessage: string = \"\";\r\n public ready: boolean = false;\r\n public currentYear: number;\r\n //public waitingForDataToLoad = true;\r\n private currentStickySection: number = -1;\r\n private _serviceSubscription;\r\n public showSpinner: boolean = false;\r\n public errorDivs: string[];\r\n\r\n ///*public showLogoPhoto: boolean = false;*/\r\n //public questionForLogo = new CultureSurveyQuestion();\r\n //public questionForPhoto = new CultureSurveyQuestion();\r\n\r\n constructor(private route: ActivatedRoute,\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private _httpClient: HttpClient,\r\n public bs: BackendService,\r\n private router: Router,\r\n elRef: ElementRef,\r\n @Inject(AppStore) private store: Store,\r\n private translate: TranslateService, private sanitizer: DomSanitizer, private errorService: ErrorService) {\r\n route.params.subscribe(params => {\r\n this.cultureSurveyId = params['cultureSurveyId'];\r\n this.topOfPage = 0;\r\n })\r\n\r\n this._serviceSubscription = this.bs.onChange.subscribe({\r\n next: (event: ComponentNotifyEvent) => {\r\n if (event.name == \"SurveyDataComponent\" && event.value == \"showSpinner\") {\r\n this.bs.consoleLog(\"SurveyDataComponent.event.name:\" + event.name + \",event.value:\" + event.value);\r\n this.showSpinner = true;\r\n }\r\n if (event.name == \"SurveyDataComponent\" && event.value == \"hideSpinner\") {\r\n this.bs.consoleLog(\"SurveyDataComponent.event.name:\" + event.name + \",event.value:\" + event.value);\r\n this.showSpinner = false;\r\n }\r\n if (event.name == \"SurveyDataComponent\" && event.value == \"LanguageChange\") {\r\n this.bs.consoleLog(\"SurveyDataComponent.event.name:\" + event.name + \",event.value:\" + event.value);\r\n let currentUrl = this.router.url;\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n this.router.navigate([currentUrl]);\r\n });\r\n }\r\n }\r\n })\r\n\r\n AppInsights.trackPageView(\"In survey constructor \" + this.cultureSurveyId);\r\n\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': this.authService.getAuthorizationHeaderValue() });\r\n\r\n const culture = this.authService.claims.find(claim => claim.claimType == \"language\").claimValue.trim();\r\n\r\n http.get(baseUrl + 'api/CultureSurvey/GetSurveyData?culture=' + culture + '&CultureSurveyId=' + this.cultureSurveyId, { headers: headers }).subscribe(result => {\r\n if (result.result == 200) {\r\n\r\n bs.setUpAppState(this.cultureSurveyId, result)\r\n\r\n //this.questionForLogo = new CultureSurveyQuestion();\r\n //this.questionForLogo.countryCode = \"\";\r\n //this.questionForLogo.displayText = \"Company Logo:  Upload One Logo Image\";\r\n //this.questionForPhoto = new CultureSurveyQuestion();\r\n //this.questionForPhoto.countryCode = \"\";\r\n //this.questionForPhoto.displayText = \"Profile Images:  Upload at least 5 but no more than 7 images that meet the photo requirements in the information icon at right. Use ctrl or shift click to select multiple images. Then enter the required captions. Drag to change the order in which they will appear within your company profile. Note: If you appear on a Best Workplace list, our media partner will choose a photo from one of these images – and that photo cannot be changed later.\";\r\n /*this.showLogoPhoto = this.surveyType == 'CB' && (this.bs.templateVersion == '0201215CB.0' || this.bs.templateVersion == '20221028CB.0');*/\r\n\r\n //if (this.bs.templateVersion == '20201215CB.0' || this.bs.templateVersion == '20221028CB.0') {\r\n // this.showLogoPhoto = true;\r\n //}\r\n\r\n for (let newResponse of result.responses) {\r\n this.store.dispatch({ type: \"UPDATE_DATA\", newResponse });\r\n }\r\n\r\n this.bs.confirm = false;\r\n this.ready = true;\r\n\r\n if (this.bs.surveyId !== this.cultureSurveyId) {\r\n this.errorService.handleErrorNavigation(['/error/general']);\r\n }\r\n this.surveyType = this.bs.getSurveyType();\r\n this.surveyTitle = this.bs.getSurveyTitle();\r\n this.surveyIntroduction = this.sanitizer.bypassSecurityTrustHtml(this.bs.surveyIntroduction.replace(\"[flagIcon]\", \"\").replace(\"[infoIcon]\", \"\").replace(\"[lockIcon]\", \"\"));\r\n\r\n if (this.bs.surveyState === \"Complete\") {\r\n this.readonly = true;\r\n this.readonlyopen = true;\r\n //this.surveyStateMessage = \"Already Submitted\";\r\n this.translate.get('cs-validationmessage-alreadysubmitted').subscribe((data: any) => {\r\n this.surveyStateMessage = data;\r\n });\r\n }\r\n\r\n if (this.bs.surveyState === \"Abandoned\") {\r\n this.readonly = true;\r\n this.readonlyopen = true;\r\n //this.surveyStateMessage = \"Survey Abandoned\";\r\n this.translate.get('cs-validationmessage-surveyabandoned').subscribe((data: any) => {\r\n this.surveyStateMessage = data;\r\n });\r\n }\r\n\r\n if (this.bs.surveyState === \"OptedOut\") {\r\n this.readonly = true;\r\n this.readonlyopen = true;\r\n //this.surveyStateMessage = \"Survey Opted-Out\";\r\n this.translate.get('cs-validationmessage-surveyoptedout').subscribe((data: any) => {\r\n this.surveyStateMessage = data;\r\n });\r\n }\r\n\r\n if (this.bs.surveyState === \"Submitting\") {\r\n this.readonly = true;\r\n this.readonlyopen = true;\r\n //this.surveyStateMessage = \"Submission in Progress\";\r\n this.translate.get('cs-validationmessage-submissioninprogress').subscribe((data: any) => {\r\n this.surveyStateMessage = data;\r\n });\r\n }\r\n }\r\n else {\r\n this.bs.consoleLog(\"Authentication failed!\")\r\n if (result.result == 404) {\r\n this.bs.consoleLog(\"not found\")\r\n this.errorService.handleErrorNavigation(['/error/general']);\r\n //this.router.navigate(['/survey/' + this.cultureSurveyId + '/notfound/']);\r\n }\r\n else\r\n //if (result.result == 401) {\r\n // this.bs.consoleLog(\"security error\")\r\n // this.router.navigate(['/survey/' + this.cultureSurveyId + '/securityerror/']);\r\n //}\r\n //else\r\n this.errorService.handleErrorNavigation(['/error/general']);\r\n }\r\n }, error => {\r\n console.error(error)\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.currentYear = new Date().getFullYear();\r\n if (this.bs.opened) {\r\n this.bs.opened = false;\r\n }\r\n }\r\n\r\n closeImagePreview() {\r\n this.bs.showImagePreview = false;\r\n this.bs.slideImageIndex = 0;\r\n }\r\n\r\n closeLogoPreview() {\r\n this.bs.showLogoPreview = false;\r\n }\r\n\r\n setNextImage(direction: number) {\r\n let photos = this.bs.getPhotos(this.bs.previewCountryCode);\r\n this.bs.slideImageIndex += direction;\r\n if (this.bs.slideImageIndex < 0) {\r\n this.bs.slideImageIndex = photos.length - 1;\r\n }\r\n if (this.bs.slideImageIndex > photos.length - 1) {\r\n this.bs.slideImageIndex = 0;\r\n }\r\n\r\n var url = \"api/CultureSurvey/GetClientAsset?\";\r\n url += \"clientId=\" + this.bs.clientId;\r\n url += \"&engagementId=\" + this.bs.engagementId;\r\n url += \"&assetType=images\"\r\n url += \"&fileName=\" + photos[this.bs.slideImageIndex].fileName;\r\n url += \"&token=\" + this.authService.getAuthorizationHeaderValue();\r\n\r\n this.bs.photoFileName = url\r\n\r\n this.bs.photoCaption = photos[this.bs.slideImageIndex].caption;\r\n }\r\n\r\n onClick() {\r\n AppInsights.trackPageView(\"In SurveyData onClick \");\r\n this.showSpinner = false;\r\n this.bs.opened = true;\r\n this.bs.surveyState = \"ValidationMode\";\r\n\r\n if (this.bs.myErrors != null && this.bs.myErrors.length == 0) {\r\n this.bs.opened = false;\r\n }\r\n }\r\n\r\n openClose(openit: boolean) {\r\n this.bs.opened = openit;\r\n if (openit == false) {\r\n this.ResetColour();\r\n }\r\n }\r\n\r\n finalize(submit: string) {\r\n //add Update logic here\r\n if (submit === 'yes') {\r\n this.submitted = true;\r\n this.bs.surveyState = \"Submitting\";\r\n this.showSpinner = true;\r\n this.bs.SubmitSurvey();\r\n }\r\n else {\r\n this.bs.confirm = false;\r\n }\r\n }\r\n\r\n ResetColour() {\r\n for (let resetQuestion of this.bs.myErrors) {\r\n for (let allvars of resetQuestion.highlightVars) {\r\n let myQstn = document.getElementById(allvars);\r\n if (myQstn) {\r\n myQstn.classList.remove(\"question-error\");\r\n // myQstn.classList.add(\"question-child\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n readonlyclose() {\r\n this.readonlyopen = false;\r\n }\r\n\r\n onErrorClick(divs: string[]) {\r\n\r\n if (divs) {\r\n this.errorDivs = divs;\r\n this.scrollToErrorQuestion();\r\n }\r\n }\r\n\r\n scrollToErrorQuestion() {\r\n // scroll to the question that contains an error\r\n\r\n this.ResetColour();\r\n\r\n for (var i = 0; i < this.errorDivs.length; i++) {\r\n let divName: string = this.errorDivs[i];\r\n //console.log(\"surveydata.component scrollToErrorQuestion - divName: \" + divName);\r\n //errorCountryCode = this.getCountryCodeFromVariableName(divName);\r\n //this.bs.consoleLog(divName);\r\n let myDiv = document.getElementById(divName);\r\n //if (!myDiv && errorCountryCode != \"\") {\r\n // // the country is not on the screen, need to load it\r\n // this.showCountrySection(errorCountryCode);\r\n // // leave now, the questions component will notify via an event when the country is rendered\r\n // return;\r\n //}\r\n if (myDiv) {\r\n if (!myDiv.classList.contains(\"question-error\")) {\r\n myDiv.classList.add(\"question-error\");\r\n }\r\n }\r\n }\r\n\r\n let myfirstDiv = document.getElementById(this.errorDivs[0]);\r\n let errorCountryCode: string = this.getCountryCodeFromVariableName(this.errorDivs[0]);\r\n\r\n if (myfirstDiv) {\r\n myfirstDiv.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n this.bs.RefreshStickyHeader();\r\n } else if (errorCountryCode != \"\") {\r\n this.bs.questionErrorToShow = this.errorDivs[0];\r\n\r\n if (this.bs.countryToShow != \"\" && this.bs.countryToShow != \"Global\") {\r\n let marker = document.getElementById(\"section-marker-\" + this.bs.countryToShow);\r\n if (marker != undefined) {\r\n marker.classList.add('hidden');\r\n }\r\n }\r\n\r\n this.showCountrySection(errorCountryCode);\r\n }\r\n\r\n //const myfirstDiv = document.getElementById(this.errorDivs[0]);\r\n //if (myfirstDiv != undefined) {\r\n // myfirstDiv.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n // this.bs.RefreshStickyHeader(true);\r\n //}\r\n //else {\r\n // this.bs.consoleLog(\"myfirstDiv is undefined\");\r\n //}\r\n\r\n }\r\n\r\n showCountrySection(countryCode: string) {\r\n // call child questions component to change the rendered country section on screen\r\n if (countryCode != \"\") {\r\n console.log(\"surveydata.component showCountrySection - calling child questions component to render country: \" + countryCode);\r\n this.questionsReference.changeCountry(countryCode, \"parent\");\r\n }\r\n }\r\n\r\n countryRenderedEvent(countryCode: string) {\r\n // event handler for a notification from the child questions component that the specified country section has now rendered\r\n console.log(\"surveydata.component countryRenderedEvent - country: \" + countryCode + \" is rendered\");\r\n // ready to scroll to the country's error question\r\n this.scrollToErrorQuestion();\r\n }\r\n\r\n getCountryCodeFromVariableName(variableName: string) {\r\n let countryCode: string = \"\";\r\n let startCountryCodeIndex: number = 0;\r\n let endCountryCodeIndex: number = 0;\r\n for (let i = 0; i < variableName.length; i++) {\r\n if (variableName.charAt(i) == \"[\") {\r\n startCountryCodeIndex = i + 1;\r\n };\r\n if (variableName.charAt(i) == \"]\") {\r\n endCountryCodeIndex = i - 1;\r\n };\r\n }\r\n if (endCountryCodeIndex > 0) {\r\n countryCode = variableName.substring(startCountryCodeIndex, endCountryCodeIndex + 1);\r\n }\r\n return countryCode;\r\n }\r\n\r\n onGoToTopClick() {\r\n const myfirstDiv = document.getElementById(\"top\");\r\n myfirstDiv.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n\r\n refreshErrorPanel() {\r\n this.bs.consoleLog(\"refreshErrorPanel clicked\");\r\n this.bs._myErrors = [];\r\n this.bs.sendComponentNotifyEvent({ name: \"SurveyDataComponent\", value: \"showSpinner\" });\r\n let responses: CultureSurveyResponse[] = [];\r\n this.bs.saveAppStateResponses(responses, this.bs.VALIDATE_CHECK);\r\n }\r\n\r\n @HostListener('window:scroll') onMyScroll(e: Event): void {\r\n if (this.bs.waitingForCountryToRender) {\r\n this.bs.waitingForCountryToRender = false;\r\n this.bs.currentStickySection = -1;\r\n this.bs.questionErrorToShow = \"\";\r\n } else {\r\n this.bs.RefreshStickyHeader();\r\n }\r\n let stickySectionId = (document.getElementById(\"stickyinput\") as HTMLInputElement).value;\r\n //if (stickySectionId == '') {\r\n // alert(this.questionsReference.questionReference.selectedValue);\r\n //}\r\n }\r\n}\r\n\r\n","\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {{this.surveyStateMessage}}\r\n \r\n

\r\n {{\"cb-page-nofurtheractioncanbemade\" | translate}}\r\n

\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
{{\"cb-title-needsattention\" | translate}}
\r\n refresh\r\n \r\n \r\n \r\n
\r\n\r\n

\r\n\r\n
\r\n \r\n\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n \r\n {{\"cb-title-plsconfirm\"| translate}}\r\n \r\n

{{\"cb-title-yousuretosubmit\"| translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n


{{this.bs.photoCaption}}
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n 2017-{{currentYear}} ©Great Place To Work®. All Rights Reserved.\r\n \r\n \"Go\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Inject, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\nimport { TranslateModule, TranslateLoader, TranslateParser, TranslateStore } from '@ngx-translate/core';\r\nimport { TranslationLoader } from './translation.loader';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { TranslateICUParser } from 'ngx-translate-parser-plural-select';\r\n\r\nexport function HttpLoaderFactory(http: HttpClient, module: NgxTranslateModule) {\r\n return new TranslationLoader(http, module);\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n defaultLanguage: 'default',\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient, NgxTranslateModule],\r\n },\r\n parser: {\r\n provide: TranslateParser,\r\n useClass: TranslateICUParser\r\n },\r\n })\r\n ],\r\n providers: [TranslateStore],\r\n exports: [TranslateModule],\r\n})\r\nexport class NgxTranslateModule {\r\n public baseUrl: string;\r\n public authService: AuthService;\r\n constructor(@Inject('BASE_URL') _baseUrl: string, private _authService: AuthService) {\r\n this.baseUrl = _baseUrl;\r\n this.authService = _authService;\r\n }\r\n}\r\n","import { TranslateLoader } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NgxTranslateModule } from './translate.module';\r\n//import '../rxjs-operators';\r\n\r\nexport class TranslationLoader implements TranslateLoader {\r\n public translateModule: NgxTranslateModule;\r\n public cultureSurveyId: string;\r\n\r\n constructor(private http: HttpClient, private _translateModule: NgxTranslateModule) {\r\n this.translateModule = _translateModule;\r\n }\r\n\r\n getTranslation(culture: string): Observable {\r\n if (this._translateModule.authService.surveyId)\r\n this.cultureSurveyId = this._translateModule.authService.surveyId;\r\n\r\n if (this._translateModule.authService.user) {\r\n return this.http.get(this._translateModule.baseUrl + \"api/Translation/GetTranslation?culture=\" + culture + \"&cultureSurveyId=\" + this.cultureSurveyId, { headers: this._translateModule.authService.getRequestHeaders() });\r\n } else {\r\n return this.http.get(this._translateModule.baseUrl + \"api/Translation/GetTranslation?culture=\" + culture + \"&cultureSurveyId=\" + this.cultureSurveyId);\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 appInsightsConfig: {\r\n instrumentationKey: '6547b483-14e6-46dc-9f4f-bc36f0a90ea6'\r\n }\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","exports.startPendo = function (userEmail) {\r\n if (window.client_config.EnablePendo == true || window.client_config.EnablePendo.toLowerCase() == 'true') {\r\n loadScript('342007da-ecd9-4b6f-4024-704e09bf2227', window, document, 'script', 'pendo');\r\n runPendo(userEmail);\r\n }\r\n}\r\n\r\nfunction loadScript(apiKey, p, e, n, d, o) {\r\n var v, w, x, y, z; o = p[d] = p[d] || {}; o._q = o._q || [];\r\n v = ['initialize', 'identify', 'updateOptions', 'pageLoad', 'track']; for (w = 0, x = v.length; w < x; ++w)(function (m) {\r\n o[m] = o[m] || function () { o._q[m === v[0] ? 'unshift' : 'push']([m].concat([].slice.call(arguments, 0))); };\r\n })(v[w]);\r\n y = e.createElement(n); y.async = !0; y.src = 'https://cdn.pendo.io/agent/static/' + apiKey + '/pendo.js';\r\n z = e.getElementsByTagName(n)[0]; z.parentNode.insertBefore(y, z);\r\n}\r\n\r\nfunction runPendo(userEmail) {\r\n // This function creates anonymous visitor IDs in Pendo unless you change the visitor id field to use your app's values\r\n // This function uses the placeholder 'ACCOUNT-UNIQUE-ID' value for account ID unless you change the account id field to use your app's values\r\n // Call this function after users are authenticated in your app and your visitor and account id values are available\r\n // Please use Strings, Numbers, or Bools for value types.\r\n pendo.initialize({\r\n visitor: {\r\n id: 'EMP' + userEmail // Required if user is logged in, default creates anonymous ID\r\n // email: 'douglas.choi@greatplacetowork.com' // Recommended if using Pendo Feedback, or NPS Email\r\n // full_name: // Recommended if using Pendo Feedback\r\n // role: // Optional\r\n\r\n // You can add any additional visitor level key-values here,\r\n // as long as it's not one of the above reserved names.\r\n },\r\n\r\n account: {\r\n id: 'GPTW-PENDO' // Required if using Pendo Feedback, default uses the value 'ACCOUNT-UNIQUE-ID'\r\n // name: 'Great Place To Work' // Optional\r\n // is_paying: // Recommended if using Pendo Feedback\r\n // monthly_value:// Recommended if using Pendo Feedback\r\n // planLevel: // Optional\r\n // planPrice: // Optional\r\n // creationDate: // Optional\r\n\r\n // You can add any additional account level key-values here,\r\n // as long as it's not one of the above reserved names.\r\n }\r\n });\r\n}\r\n"],"names":["AdminComponent","constructor","ngOnInit","_","_2","selectors","decls","vars","consts","template","AdminComponent_Template","rf","ctx","i0","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","AppComponent","router","ɵɵdirectiveInject","i1","Router","AppComponent_Template","BrowserModule","RouterModule","SurveyModule","FormsModule","HttpClientModule","PortalClaimRequired","GPTWEmployeeOnly","OpenAccess","HomeComponent","SurveyDataComponent","NavMenuComponent","ButtonsModule","BrowserAnimationsModule","GridModule","DateInputsModule","InputsModule","LocationStrategy","PathLocationStrategy","APP_BASE_HREF","DropDownsModule","UploadModule","TooltipModule","SubmitComponent","QuestionsComponent","QuestionComponent","PhotoComponent","EssayComponent","TextinputComponent","HeaderComponent","EmailComponent","IntegerComponent","PercentComponent","PercentWholeComponent","SocialComponent","UrlComponent","CurrencyComponent","TextareaComponent","LogoComponent","ChooseOneComponent","ChooseMultipleComponent","NotfoundComponent","SecurityerrorComponent","BackendService","SurveyReducer","appStoreProviders","ErrorpageComponent","DialogsModule","InfobarComponent","SubmittedComponent","SubmitfailComponent","SortableModule","GridComponent","FileComponent","AuthGuardService","AuthService","AuthCallbackComponent","InternationalComponent","ReopenComponent","WindowRef","NgxTranslateModule","routes","path","component","canActivate","data","access","redirectTo","AppModule","bootstrap","_3","provide","useClass","useValue","imports","withServerTransition","appId","forRoot","enableTracing","onSameUrlNavigation","declarations","i2","InjectionToken","createStore","surveyReducer","reducer","AppStore","createAppStore","useFactory","authService","completeAuthentication","AuthCallbackComponent_Template","styles","HttpHeaders","EventEmitter","CultureSurveyResponse","ClientPhoto","Document","SaveCultureSurveyResult","ErrorHighlights","postResponseInfo","SaveClientImagesResult","CrossValidation","CrossValidations","ClientAssets","ClientConfiguration","UPDATE_DATA","myErrors","_myErrors","http","_baseUrl","store","translate","errorService","CLEAR_EVENT","VALIDATE_CHECK","IS_SUBMIT","ERROR_TYPE_ERROR","ERROR_TYPE_WARNING","ERROR_TYPE_INFO","SURVEY_STATUS_INITIAL","SURVEY_STATUS_INPROGRESS","SURVEY_STATUS_COMPLETE","SURVEY_STATUS_ABANDONED","SURVEY_STATUS_OPTEDOUT","clientAssets","showImagePreview","showLogoPreview","slideImageIndex","photoFileName","photoCaption","onChange","config","countryName","countries","currencies","currentStickySection","userGUIDId","saveId","numEmpGridVarNames","saveStateInfo","savedClientAssets","countryCodesToSuppressAnotherGenderNotListed","countryListItems","maxNumCountriesToShowOnCB","countryToShow","countryChangeRequestSource","waitingForCountryToRender","questionErrorToShow","suppressTotalEmployeesGridValidation","baseUrl","PortalURL","PortalbaseUrl","consoleLog","value","isConsoleLogging","console","log","getDataString","localStorage","hasOwnProperty","SendClientErrorToServer","clientError","post","headers","getRequestHeaders","subscribe","result","error","setUpAppState","surveyId","dto","questions","surveyState","surveyStatus","surveyType","surveyTitle","surveyIntroduction","clientDocuments","globalSectionCountryCode","ecrCompanyName","createDate","Date","createdDate","releaseDate","country","push","pageCountryName","trim","countryCode","currency","code","pageCurrency","clientId","engagementId","clientImages","undefined","i","length","logoFileName","photos","j","clientPhoto","newClientPhoto","fileName","caption","primary","clientDocument","newDocument","name","size","type","variableName","clearResponseFromAppState","index","getState","responses","findIndex","x","splice","SubmitSurvey","saveAppStateResponses","confirm","saveAppState","responseToSave","responsesToSave","options","resp","response","responsesToClear","isSubmit","isValidateCheck","concat","dispatch","newResponse","sendComponentNotifyEvent","postAPIUrl","myPost","cultureSurveyId","verbosLogging","saveCultureSurveyResult","errorOccurred","errorMessage","pRes","toLowerCase","reload","handleErrorNavigation","navigate","processImageChanges","processDocumentChanges","refreshResponses","loading","processRefreshResponses","topLevelParentResponsesToUpdate","secondLevelParentResponsesToUpdate","updateChildResponses","setTimeout","updateSecondLevelParentResponses","emit","indexOf","RefreshStickyHeader","shift","e","message","childResponsesToUpdate","gridNotificationEvents","curentResponses","responseNeedsUpdating","foundResponse","find","isValid","isConfidential","isTopLevelParentAnsweredYes","isSecondLevelParentAnsweredYes","includes","ExtractCountryCode","clientDocumentChanged","countryCodeToSkip","serverClientImages","localClientAssets","clientPhotosChanged","localPhoto","serverPhoto","event","isBranchingParentAnsweredNo","d","curr_hour","getHours","curr_min","getMinutes","curr_sec","getSeconds","deleteClientDocumentFromBlobStorage","deleteClientImageFromBlobStorage","getAuthorizationHeaderValue","saveClientDocuments","documents","documentsToSave","saveClientPhotos","saveClientImages","saveLogo","clientPhotos","saveClientImagesResult","countryCodeToCallWith","getClientDocuments","returnedDocuments","getPhotos","returnedPhotos","getSurveyType","getSurveyState","getLogo","getQuestions","determineGridConfidential","question","childQuestions","reponse","getResponse","getSurveyId","getSurveyTitle","str","substring","Validation","resetErrorColor","get","errorExplanation","RequiredandSingleFieldValidation","CrossFieldValidation","noErrors","opened","myQuestions","firstStickyHeader","isStickyHeader","globalQS","sortedQuestions","filter","item","sort","a","b","displayText","localeCompare","unshift","countryCodeIndex","ValidateQuestion","ValidateChildPath","qstns","qstn","skipValidation","myResponse","isLogo","isPhoto","hasLogo","numberOfPhotos","showLogoRequired","photosRequired","isCountrySection","translateRequired","String","errHigh","highlightVars","hoverText","errorText","_replaceValidationMessageWithCountryName","photo","required","translatedCountryValue","replace","publiclyTradedVar","stockTickerVar","publiclyTradedVarRes","stockTickerVarRes","highlight","multipleOperateVar","operateVar","followOnVar","multipleOperateVarRes","operateVarRes","followOnVarRes","AnotherGenderNotListedQuestion","DoNotAskInCountry","xvalidate","getCrossValidations","cvOriginal","cv","validation_leftside","comparison_operator","validation_rightside","validation_intent","leftside","rightside","bypassvalidation","done","input","myLeftsideResponse","CloneResponseObject","myRightsideResponse","sumTheseVars","split","myVars","GetNumber","compareOK","compareResults","mynum","Intl","NumberFormat","minimumFractionDigits","format","resObj","operator","compareResult","divName","myDiv","document","getElementById","classList","remove","numVal","stringval","parseInt","forceUpdate","headerHeight","titleHeight","stickyId","topSurveyForm","stickyinput","window","scrollY","sectionDivClone","add","navSection","querySelector","logoSection","sections","getElementsByClassName","section","offsetTop","getBoundingClientRect","top","offsetHeight","height","sectionDiv","currentStickyId","id","CheckIfQuestionComponentIsVisible","componentType","fieldType","show","hiddenDataOnlyQuestion","rule","visibilityRules","action","responseVars","numMatches","userResponse","ɵɵinject","HttpClient","i3","i4","TranslateService","i5","ErrorService","factory","ɵfac","providedIn","CustomHttpParamEncoder","encodeKey","key","encodeURIComponent","encodeValue","decodeKey","decodeURIComponent","decodeValue","xValidations","newval","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵpropertyInterpolate","ctx_r0","bs","ɵɵsanitizeUrl","ɵɵtextInterpolate1","route","errorType","supportedErrorTypes","params","param","currentYear","getFullYear","getNonRoleClaim","email","user","profile","upn","category","etype","eid","cid","Number","application","ActivatedRoute","ErrorpageComponent_Template","ɵɵtemplate","ErrorpageComponent_span_3_Template","ErrorpageComponent_span_4_Template","ErrorpageComponent_span_5_Template","ErrorpageComponent_span_6_Template","ErrorpageComponent_span_7_Template","ErrorpageComponent_span_8_Template","ɵɵproperty","GetDownForMaintNotficationResult","ɵɵlistener","HeaderComponent_div_3_Template_i_click_12_listener","$event","ɵɵrestoreView","_r5","ctx_r4","ɵɵnextContext","ɵɵresetView","closeDiv","GetDownForMaintNotfication","dfmBannerMessage","HeaderComponent_div_14_Template_a_click_1_listener","_r7","ctx_r6","onClickRoute","HeaderComponent_a_18_ul_4_li_9_Template_li_click_0_listener","restoredCtx","_r12","language_r10","$implicit","ctx_r11","selectLanguage","culture","ɵɵpureFunction1","_c0","ctx_r9","userPreferredLanguage","displayName","HeaderComponent_a_18_ul_4_li_9_Template","ctx_r8","languages","HeaderComponent_a_18_Template_a_click_0_listener","_r14","ctx_r13","isOpenLanguageMenu","HeaderComponent_a_18_ul_4_Template","ctx_r2","ctx_r3","dashboardurl","isEmployee","showLanguages","showDFMBanner","hasDFMNotification","showDFMHeaderLink","myHttpClient","as","companyUsersUrl","_serviceSubscription","next","use","currentLang","GetAllLanguages","showLanguagesLink","getDownForMaintNotificationInfo","translationSubscription","onLangChange","ngOnDestroy","unsubscribe","setBannerVisibility","showBanner","getCookie","setCookie","c_name","exdays","exdate","setDate","getDate","c_value","escape","toUTCString","cookie","y","ARRcookies","substr","unescape","enableNotification","enableNotificationStartDateTime","enableNotificationEndDateTime","dfmStartTime","dfmEndTime","notificationStart","notificationEnd","dtStart","dtEnd","now","timeZone","getLocalTimeZone","strStart","getFormatedBannerDate","strEnd","monthAbbreviationStart","monthAbbreviationEnd","translatedMonthStart","translateMonthAbbreviation","translatedMonthEnd","status","languageCode","formatter","DateTimeFormat","resolvedOptions","timeZoneName","parts","formatToParts","part","dateToFormat","formatLocale","date","month","day","year","formattedDate","toLocaleDateString","timeOptions","hour","minute","second","hour12","formattedTime","toLocaleTimeString","parseISOString","s","UTC","routeStr","logOut","url","languageCultures","exception","ex","claims","claim","claimType","claimValue","put","err","clickOut","target","monthStr","i6","hostBindings","HeaderComponent_HostBindings","ɵɵresolveDocument","HeaderComponent_div_3_Template","HeaderComponent_div_14_Template","HeaderComponent_a_18_Template","HeaderComponent_a_19_Template","HeaderComponent_Template_a_click_24_listener","AppInsights","heroes","addHero","newHero","trackEvent","hide","HomeComponent_Template","ɵɵpureFunction0","_c1","_c3","_c5","LOCALE_ID","localeId","intlService","myCurrency","myDate","locales","onLocaleChange","locale","myLocaleId","currencyInputChanged","num","IntlService","InternationalComponent_Template","InternationalComponent_Template_kendo_dropdownlist_ngModelChange_3_listener","InternationalComponent_Template_input_ngModelChange_7_listener","ɵɵpipeBind4","ɵɵpipeBind3","formatNumber","SaveClientImagesRequest","ClientErrorResult","ClientError","SaveClientDocumentsRequest","DeleteClientDocumentRequest","DeleteClientImageRequest","DeleteClientDocumentResult","DeleteClientImageResult","ClientImages","SaveCultureSurveyRequest","ComponentNotifyEvent","GetClientConfigurationResult","SetPortalContactLoginDateResult","GetCompanyNameResult","CountryInfo","CurrencyInfo","CultureSurveySection","AppConfigDetailsResult","appVersion","ReopenCultureSurveyResult","LanguageCulture","GetMaxClientImageUploadSizeResult","isExpanded","collapse","toggle","NavMenuComponent_Template","NavMenuComponent_Template_button_click_3_listener","ɵɵattribute","_c2","_c7","_c9","NotfoundComponent_Template","ChooseMultipleComponent_div_0_div_7_Template_input_change_1_listener","ao_r3","ɵɵpropertyInterpolate2","answerOptionId","isItemChecked","ɵɵclassMap","dropdownPointerClass","ɵɵclassMapInterpolate1","answerOptionText","ChooseMultipleComponent_div_0_div_7_Template","ɵɵsanitizeHtml","validationMessage","answerOptions","ctx_r1","confidentialRollover","listExplanation","canBeConfidential","onResponseChange","setValidity","ao","answers","answerOptionValue","join","inputs","ChooseMultipleComponent_Template","ChooseMultipleComponent_div_0_Template","ChooseMultipleComponent_div_1_Template","ChooseOneComponent_div_4_div_4_Template_input_change_1_listener","ChooseOneComponent_div_4_div_4_Template","ChooseOneComponent_div_5_Template_kendo_dropdownlist_selectionChange_1_listener","selectionChange","ChooseOneComponent_div_5_Template_kendo_dropdownlist_open_1_listener","onOpen","ChooseOneComponent_div_5_Template_kendo_dropdownlist_ngModelChange_1_listener","selectedItem","ɵɵclassMapInterpolate2","dropdownClassOverride","dropdownAnswerOptions","dropdownDisabled","setDropdownClassOverride","answerOption","clearIfNeccessary","countryInfo","childVariableName","getDependencyVariableName","parentVariableName","parentResponseValue","buildDropdownAnswerOptions","dependentValue","forEach","dependencyType","dependentVariableName","dependencies","ChooseOneComponent_Template","ChooseOneComponent_div_4_Template","ChooseOneComponent_div_5_Template","localResponse","currencyCode","currencyInfo","varName","saveLocalResponse","res","onKeyupEvent","validateDollar","isNaN","isConfidentialChanged","isNumeric","val","parseFloat","isFloat","n","Math","round","temp_value","Chars","charAt","focusOut","CurrencyComponent_Template","CurrencyComponent_Template_input_ngModelChange_9_listener","CurrencyComponent_Template_input_keyup_9_listener","CurrencyComponent_Template_input_focusout_9_listener","CurrencyComponent_Template_kendo_dropdownlist_selectionChange_11_listener","CurrencyComponent_Template_kendo_dropdownlist_open_11_listener","CurrencyComponent_Template_kendo_dropdownlist_ngModelChange_11_listener","fieldWidth","emailIsValid","IsValidEmail","encoder","EmailComponent_Template","EmailComponent_Template_input_ngModelChange_7_listener","EmailComponent_Template_input_focusout_7_listener","EssayComponent_Template","EssayComponent_Template_textarea_focusout_7_listener","EssayComponent_Template_textarea_ngModelChange_7_listener","EssayComponent_Template_textarea_keyup_7_listener","FileComponent_div_12_Template_div_mouseup_3_listener","document_r3","onMouseUp","documentInfoFilenameContainer","imageContainerRemoveClass","FileComponent_kendo_dialog_13_Template_kendo_dialog_close_0_listener","closeWarningDialog","warningDialogTitle","warningDialogMessage","isUploadDisabled","title","uploadSaveUrl","uploadRemoveUrl","warningDialogOpened","selectDocumentText","fileUploadRestrictions","maxFileSize","allowedExtensions","selectEventHandler","eventSuccess","numInvalid","numTooLarge","numFileNameTooLong","files","file","validationErrors","preventDefault","onFocusOut","fileNameToDelete","indexToRemove","clientDocumentsAfterRemoval","newClientDocument","successEventHandler","body","blobFileName","match","clientFileName","rawFile","clientDocumentsAfterAddition","uploadEventHandler","authToken","getAuthorizationToken","token","viewQuery","FileComponent_Query","FileComponent_Template_kendo_upload_upload_8_listener","FileComponent_Template_kendo_upload_select_8_listener","FileComponent_Template_kendo_upload_success_8_listener","FileComponent_div_11_Template","FileComponent_div_12_Template","FileComponent_kendo_dialog_13_Template","ɵɵpropertyInterpolate1","GridComponent_div_13_Template_input_ngModelChange_4_listener","_r3","q_r1","value1","GridComponent_div_13_Template_input_focusout_4_listener","varName1","GridComponent_div_13_Template_input_keyup_4_listener","ctx_r5","GridComponent_div_13_Template_input_ngModelChange_7_listener","value2","GridComponent_div_13_Template_input_focusout_7_listener","ctx_r7","varName2","GridComponent_div_13_Template_input_keyup_7_listener","GridComponent_div_13_Template_input_ngModelChange_10_listener","value3","GridComponent_div_13_Template_input_focusout_10_listener","ctx_r10","varName3","GridComponent_div_13_Template_input_keyup_10_listener","heading","strArray","onConfidentialChanged","gridName","cc","valMes1","valMes2","valMes3","gridHeader1","gridHeader2","gridHeader3","setValidityForAll","getValidationMessage","saveAll","regex","test","GridComponent_Template","GridComponent_div_13_Template","instructionsRollover","InfobarComponent_div_1_ng_template_1_Template","ɵɵtemplateRefExtractor","_r8","confidentialId","InfobarComponent_span_5_Template_input_ngModelChange_1_listener","_r10","InfobarComponent_span_5_Template_input_change_1_listener","requiredRollover","checkBox","translatedInstructions","translatedListExplanation","stripNonAlphaChars","instructions","certificationInstruction","startsWith","doParagraphTagWrap","setConfidentialTooltipText","q","toString","inputText","returnText","outputs","InfobarComponent_Template","InfobarComponent_div_1_Template","InfobarComponent_ng_template_3_Template","InfobarComponent_span_5_Template","InfobarComponent_ng_template_7_Template","InfobarComponent_span_9_Template","_r2","days","IntegerComponent_Template","IntegerComponent_Template_input_ngModelChange_7_listener","IntegerComponent_Template_input_keyup_7_listener","IntegerComponent_Template_input_focusout_7_listener","LogoComponent_div_5_ng_template_1_Template","LogoComponent_div_6_ng_template_1_Template","LogoComponent_div_19_Template_div_mouseup_3_listener","_r9","onMouseUpRemove","GetUri","LogoComponent_kendo_dialog_20_Template_kendo_dialog_close_0_listener","_r11","close","uploadBaseSaveUrl","focused","logoUrl","myFiles","photoImageContainerClass","selectLogoText","maxClientImageUploadSize","SetMaxClientImageUploadSize","isError","errorStr","that","maxSizeMB","floor","onFocus","onPreviewButtonClick","isPreviewDisabled","removeEventHandler","description","LogoComponent_Template","LogoComponent_div_5_Template","LogoComponent_div_6_Template","LogoComponent_Template_kendo_upload_upload_12_listener","LogoComponent_Template_kendo_upload_select_12_listener","LogoComponent_Template_kendo_upload_success_12_listener","LogoComponent_Template_button_focus_15_listener","LogoComponent_Template_button_click_15_listener","LogoComponent_div_19_Template","LogoComponent_kendo_dialog_20_Template","newValidationMessage","PercentComponent_Template","PercentComponent_Template_input_ngModelChange_7_listener","PercentComponent_Template_input_keyup_7_listener","PercentComponent_Template_input_focusout_7_listener","PercentWholeComponent_Template","PercentWholeComponent_Template_input_ngModelChange_7_listener","PercentWholeComponent_Template_input_keyup_7_listener","PercentWholeComponent_Template_input_focusout_7_listener","PhotoComponent_div_5_ng_template_1_Template","_r6","PhotoComponent_div_6_ng_template_1_Template","ctx_r12","item_r10","ctx_r14","ɵɵnamespaceSVG","ɵɵnamespaceHTML","PhotoComponent_kendo_sortable_20_ng_template_1_Template_textarea_keydown_9_listener","_r19","i_r11","ctx_r18","handleKeyDown","PhotoComponent_kendo_sortable_20_ng_template_1_Template_textarea_focusout_9_listener","ctx_r20","PhotoComponent_kendo_sortable_20_ng_template_1_Template_textarea_ngModelChange_9_listener","PhotoComponent_kendo_sortable_20_ng_template_1_div_10_Template","PhotoComponent_kendo_sortable_20_ng_template_1_div_11_Template","PhotoComponent_kendo_sortable_20_ng_template_1_div_12_Template","PhotoComponent_kendo_sortable_20_ng_template_1_Template_div_mouseup_13_listener","ctx_r22","draggableContainerClass","GetPhotoId","photoDragContainerClass","GetPhotoTextAreaId","enterCaption","PhotoComponent_kendo_sortable_20_Template_kendo_sortable_dragEnd_0_listener","_r24","ctx_r23","onDragEnd","PhotoComponent_kendo_sortable_20_ng_template_1_Template","disabledPhotoIndexes","PhotoComponent_kendo_dialog_21_Template_kendo_dialog_close_0_listener","_r26","ctx_r25","characterLimit","selectImagesText","validationMessageCharactersAllowed","myRestrictions","stopPropagation","focus","charStr","previewCountryCode","clientPhotosAfterRemoval","blobName","clientPhotosAfterAddition","PhotoComponent_Query","PhotoComponent_div_5_Template","PhotoComponent_div_6_Template","PhotoComponent_Template_kendo_upload_dragEnd_12_listener","sortable","PhotoComponent_Template_kendo_upload_select_12_listener","PhotoComponent_Template_kendo_upload_upload_12_listener","PhotoComponent_Template_kendo_upload_success_12_listener","PhotoComponent_Template_button_click_15_listener","PhotoComponent_div_19_Template","PhotoComponent_kendo_sortable_20_Template","PhotoComponent_kendo_dialog_21_Template","level","dataItem_r8","dataItem_r9","QuestionComponent_div_2_div_8_Template_kendo_dropdownlist_valueChange_2_listener","QuestionComponent_div_2_div_8_ng_template_3_Template","QuestionComponent_div_2_div_8_ng_template_4_Template","country_cbsection_id","selectedValue","QuestionComponent_div_2_div_8_Template","QuestionComponent_div_2_div_9_Template","getHeaderDisplayText","showHeaderInstructionsText","dataItem_r16","dataItem_r17","QuestionComponent_div_3_div_8_Template_kendo_dropdownlist_valueChange_2_listener","QuestionComponent_div_3_div_8_ng_template_3_Template","QuestionComponent_div_3_div_8_ng_template_4_Template","QuestionComponent_div_3_div_8_Template","QuestionComponent_div_3_div_9_Template","ctx_r21","ctx_r24","ctx_r26","ctx_r27","ctx_r28","ctx_r29","ctx_r30","ctx_r31","ctx_r32","ctx_r33","ctx_r34","QuestionComponent_div_4_app_textinput_4_Template","QuestionComponent_div_4_app_email_5_Template","QuestionComponent_div_4_app_integer_6_Template","QuestionComponent_div_4_app_percent_7_Template","QuestionComponent_div_4_app_percentwhole_8_Template","QuestionComponent_div_4_app_social_9_Template","QuestionComponent_div_4_app_url_10_Template","QuestionComponent_div_4_app_currency_11_Template","QuestionComponent_div_4_app_essay_12_Template","QuestionComponent_div_4_app_textarea_13_Template","QuestionComponent_div_4_app_choose_one_14_Template","QuestionComponent_div_4_app_choose_multiple_15_Template","QuestionComponent_div_4_app_file_16_Template","QuestionComponent_div_4_app_photo_17_Template","QuestionComponent_div_4_app_logo_18_Template","templateVersion","defaultValue","changeCountryEvent","questionCountryRenderedEvent","dependency","flagIconUri","ngAfterViewChecked","scrollIntoView","block","behavior","selectedCountry","c","marker","selectedCountryCode","countryTranslationValue","companyNameToUse","isVisible","QuestionComponent_Template","QuestionComponent_div_0_Template","QuestionComponent_div_2_Template","QuestionComponent_div_3_Template","QuestionComponent_div_4_Template","question_r4","QuestionsComponent_div_0_div_1_Template","flattenedQuestions","QuestionsComponent_ng_template_1_section_1_div_1_app_question_1_Template_app_question_changeCountryEvent_0_listener","QuestionsComponent_ng_template_1_section_1_div_1_app_question_1_Template_app_question_questionCountryRenderedEvent_0_listener","question_r8","indexInCountry","itemIndex_r9","QuestionsComponent_ng_template_1_section_1_div_1_app_question_1_Template","sectionHeaderId","section_r6","QuestionsComponent_ng_template_1_section_1_div_1_Template","QuestionsComponent_ng_template_1_section_1_Template","countryRenderedEvent","questionLevel1","questionLevel2","questionLevel3","questionLevel4","questionLevel5","questionIndex","showThisSection","changeCountry","QuestionsComponent_Query","QuestionsComponent_div_0_Template","QuestionsComponent_ng_template_1_Template","SocialComponent_Template","SocialComponent_Template_input_ngModelChange_7_listener","SocialComponent_Template_input_keyup_7_listener","SocialComponent_Template_input_focusout_7_listener","clicked","onButtonClickDeferred","onButtonClick","SubmitComponent_Template","SubmitComponent_Template_button_click_2_listener","SubmitComponent_Template_button_click_5_listener","countWords","TextareaComponent_div_3_Template_textarea_focusout_5_listener","TextareaComponent_div_3_Template_textarea_ngModelChange_5_listener","TextareaComponent_div_3_Template_textarea_keyup_5_listener","TextareaComponent_div_3_div_6_Template","TextareaComponent_div_3_div_7_Template","TextareaComponent_div_3_div_8_Template","TextareaComponent_ng_template_4_Template_textarea_focusout_4_listener","TextareaComponent_ng_template_4_Template_textarea_ngModelChange_4_listener","TextareaComponent_ng_template_4_Template_textarea_keyup_4_listener","isValidationError","wordCount","isBrandName","maxWordCount","calcNumberOfWords","wordStr","TextareaComponent_Template","TextareaComponent_div_3_Template","TextareaComponent_ng_template_4_Template","TextinputComponent_Template","TextinputComponent_Template_input_ngModelChange_7_listener","TextinputComponent_Template_input_keyup_7_listener","TextinputComponent_Template_input_focusout_7_listener","isValidUrl","validateUrl","URL","urlPattern","urlPatternWithHttp","UrlComponent_Template","UrlComponent_Template_input_ngModelChange_7_listener","UrlComponent_Template_input_keyup_7_listener","UrlComponent_Template_input_focusout_7_listener","_httpClient","trackPageView","ReopenComponent_Template","SecurityerrorComponent_Template","AuthenticationOnly","isAppMaintenanceMode","isExemptFromMaintanencePage","isLoggedIn","doesEmployeeHaveExpectedEnvClaim","isEmployeeWithPortalClaim","isEndUserWithPortalClaim","returnUrl","startAuthentication","UserManager","startPendo","_window","nativeWindow","winRef","sessionId","httpClient","client_config","manager","getClientSettings","AuthServerAuthority","PostLogoutRedirectUri","getUser","then","location","expired","isClaimValid","envClaimName","ExpectedEnvironmentClaim","getClaims","getAuthorizationHeaderTokenValueOnly","access_token","token_type","getSessionId","signinRedirect","signoutRedirect","idpClaim","DoesRouteRequirePortalClaim","routePath","getUserEmailValue","signinRedirectCallback","getTime","IsAppMaintenanceMode","timerId","setInterval","isExpired","hours","expires_in","minutes","clearInterval","userEmail","catch","href","authServerAuthority","postLogoutRedirectUri","myUserSettings","authority","client_id","redirect_uri","post_logout_redirect_uri","response_type","scope","filterProtocolClaims","loadUserInfo","NavigationStart","BehaviorSubject","errorPageNavigatedSubject","ERROR_PAGE_PATH","events","pipe","resetErrorPageNavigation","setErrorPageNavigated","getCurrentErrorPageNavigated","getValue","commands","extras","SubmitfailComponent_Template","viewportScroller","placeholder","portalReturnMessage","scrollToTop","getportalUrl","scrollToPosition","placeholderIndex","afterPlaceholder","slice","temp","ViewportScroller","SubmittedComponent_Template","CommonModule","Action","initialState","state","nr","SurveyComponent","elRef","submitted","readonly","readonlyopen","actionsLayout","myActions","text","surveyStateMessage","ready","topOfPage","authenticationUrl","closeImagePreview","closeLogoPreview","setNextImage","direction","onClick","onErrorClick","openClose","openit","ResetColour","finalize","submit","resetQuestion","allvars","myQstn","readonlyclose","divs","contains","myfirstDiv","onGoToTopClick","ElementRef","SurveyComponent_Query","exports","SurveyDataComponent_div_2_kendo_dialog_14_Template_kendo_dialog_close_0_listener","SurveyDataComponent_div_2_kendo_dialog_14_Template_button_click_7_listener","SurveyDataComponent_div_2_fieldset_15_Template_app_submit_clicked_3_listener","SurveyDataComponent_div_2_fieldset_16_Template_app_questions_countryRenderedEvent_1_listener","_r16","ctx_r15","SurveyDataComponent_div_2_fieldset_16_Template_app_submit_clicked_3_listener","ctx_r17","SurveyDataComponent_div_2_kendo_window_17_div_13_Template_div_click_0_listener","_r21","error_r19","SurveyDataComponent_div_2_kendo_window_17_Template_kendo_window_close_0_listener","_r23","SurveyDataComponent_div_2_kendo_window_17_Template_a_click_5_listener","refreshErrorPanel","SurveyDataComponent_div_2_kendo_window_17_div_13_Template","SurveyDataComponent_div_2_kendo_dialog_18_Template_kendo_dialog_close_0_listener","SurveyDataComponent_div_2_kendo_dialog_18_Template_button_click_8_listener","SurveyDataComponent_div_2_kendo_dialog_18_Template_button_click_11_listener","SurveyDataComponent_div_2_kendo_dialog_19_Template_kendo_dialog_close_0_listener","_r30","SurveyDataComponent_div_2_kendo_dialog_19_Template_img_click_3_listener","SurveyDataComponent_div_2_kendo_dialog_19_Template_img_click_11_listener","SurveyDataComponent_div_2_kendo_dialog_20_Template_kendo_dialog_close_0_listener","_r34","SurveyDataComponent_div_2_div_2_Template","SurveyDataComponent_div_2_kendo_dialog_14_Template","SurveyDataComponent_div_2_fieldset_15_Template","SurveyDataComponent_div_2_fieldset_16_Template","SurveyDataComponent_div_2_kendo_window_17_Template","SurveyDataComponent_div_2_kendo_dialog_18_Template","SurveyDataComponent_div_2_kendo_dialog_19_Template","SurveyDataComponent_div_2_kendo_dialog_20_Template","SurveyDataComponent_div_2_Template_span_click_28_listener","_r36","ctx_r35","showSpinner","sanitizer","currentUrl","navigateByUrl","skipLocationChange","bypassSecurityTrustHtml","errorDivs","scrollToErrorQuestion","errorCountryCode","getCountryCodeFromVariableName","showCountrySection","questionsReference","startCountryCodeIndex","endCountryCodeIndex","onMyScroll","stickySectionId","DomSanitizer","i7","SurveyDataComponent_Query","ɵɵresolveWindow","SurveyDataComponent_div_1_Template","SurveyDataComponent_div_2_Template","TranslateModule","TranslateLoader","TranslateParser","TranslateStore","TranslationLoader","TranslateICUParser","HttpLoaderFactory","module","_authService","defaultLanguage","loader","deps","parser","_translateModule","translateModule","getTranslation","environment","production","appInsightsConfig","instrumentationKey","enableProdMode","getBaseUrl","getElementsByTagName","providers","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","EnablePendo","loadScript","runPendo","apiKey","p","o","v","w","z","_q","m","call","arguments","createElement","async","src","parentNode","insertBefore","pendo","initialize","visitor","account"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}