{"version":3,"file":"main.js","mappings":"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mN,KAAK,mDAAmD,8EAA8E,KAAK,mDAAmD,kDAAkD;;;;;;;;;;;;ACAnrD,+DAAe,8OAA8O,0DAA0D,yQAAyQ,wDAAwD,yQAAyQ,mEAAmE,0IAA0I,mEAAmE,0XAA0X,gEAAgE,6IAA6I,gEAAgE,0WAA0W;;;;;;;;;;;;ACAloE,+DAAe,8HAA8H,iCAAiC,mJAAmJ,mBAAmB,sFAAsF,8BAA8B,kiBAAkiB,ioDAAioD,iBAAiB,2EAA2E,iCAAiC,gGAAgG,4BAA4B,mDAAmD;;;;;;;;;;;;ACAv5F,+DAAe,2VAA2V,0DAA0D,0PAA0P,wDAAwD,mQAAmQ,mEAAmE,uKAAuK,mEAAmE,uBAAuB,wBAAwB,0dAA0d,gFAAgF;;;;;;;;;;;;ACA/1D,+DAAe,wKAAwK,cAAc,8PAA8P,iDAAiD,iDAAiD,gDAAgD;;;;;;;;;;;;ACArlB,+DAAe,+DAA+D,6CAA6C,yJAAyJ,0DAA0D,qPAAqP,0DAA0D,kTAAkT,gEAAgE,oDAAoD,qNAAqN,wEAAwE,iZAAiZ;;;;;;;;;;ACAjtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,6CAA6C;AAC7C;AACA;AACA","sources":["./models/configuration/javasciptvalues.ts","./models/configuration/user.ts","./models/display/displaycheckresult.ts","./models/display/displaygroup.ts","./models/display/displaylinks.ts","./models/display/prioirtyitem.ts","./models/enum/linkcategory.ts","./models/enum/locationtype.ts","./models/enum/operator.ts","./models/enum/pagetype.ts","./models/enum/questiontype.ts","./models/enum/resultstatus.ts","./models/enum/rulecategory.ts","./models/enum/segmentformtype.ts","./models/library/constraintrule.ts","./models/library/feedbackdata.ts","./models/library/filtervalues.ts","./models/library/index.ts","./models/library/inputvalues.ts","./models/library/priorityrule.ts","./models/params/libraryquery.ts","./models/traveldoc/checkresult.ts","./models/traveldoc/checkresults.ts","./models/traveldoc/countrygroup.ts","./models/traveldoc/document.ts","./models/traveldoc/documentformat.ts","./models/traveldoc/documenttype.ts","./models/traveldoc/feedbackMessage.ts","./models/traveldoc/index.ts","./models/traveldoc/interviewanswer.ts","./models/traveldoc/interviewquestion.ts","./models/traveldoc/libraryresult.ts","./models/traveldoc/link.ts","./models/traveldoc/location.ts","./models/traveldoc/lookups.ts","./models/traveldoc/passenger.ts","./models/traveldoc/rule.ts","./models/traveldoc/segment.ts","./models/traveldoc/tag.ts","./projects/common/animations/animations.ts","./projects/common/i18n/calendar-formats.index.ts","./projects/common/i18n/language.lookup.ts","./projects/common/i18n/moment.zh-Hans.ts","./projects/common/i18n/moment.zh-Hant.ts","./projects/common/i18n/traveldoc.index.ts","./projects/common/pipes/highlight.pipe.ts","./projects/common/pipes/index.ts","./projects/common/pipes/moment.pipe.ts","./projects/common/pipes/no-sanitize.pipe.ts","./projects/common/services/configuration/configuration.service.ts","./projects/common/services/http/http-interceptor.service.ts","./projects/common/services/http/http-loader-inteceptor.service.ts","./projects/common/services/http/travel-doc-api.service.ts","./projects/common/services/i18n/client.translate.service.ts","./projects/common/services/index.ts","./projects/common/services/logging/global-error.service.ts","./projects/common/services/utils/data-shim.service.ts","./projects/common/services/utils/data.service.ts","./projects/common/services/utils/error.service.ts","./projects/common/services/utils/library-data.service.ts","./projects/common/services/utils/loader.service.ts","./projects/common/services/utils/object-formatter.service.ts","./projects/common/services/utils/query-string-helper.service.ts","./projects/common/src/lib/abstract.autocomplete/abstract.autocomplete.component.ts","./projects/common/src/lib/base/focusnextbase.ts","./projects/common/src/lib/base/itembase.ts","./projects/common/src/lib/common.module.ts","./projects/common/src/lib/documentformat.autocomplete/documentformat.autocomplete.component.ts","./projects/common/src/lib/documenttype.autocomplete/documenttype.autocomplete.component.ts","./projects/common/src/lib/error/error.component.ts","./projects/common/src/lib/index.ts","./projects/common/src/lib/loading/loading.component.ts","./projects/common/src/lib/locations.autocomplete/locations.autocomplete.component.ts","./projects/common/src/lib/question.autocomplete/question.autocomplete.component.ts","./projects/common/src/lib/results-country-page/results-country-page.component.ts","./projects/common/src/lib/select-language/select-language.component.ts","./projects/common/src/lib/site-footer/site-footer.component.ts","./projects/common/src/lib/site-header/site-header.component.ts","./projects/common/src/lib/slide-down/slide-down.component.ts","./projects/common/src/public-api.ts","./projects/common/utility/merge.ts","./projects/common/validators/custom-validators.ts","./projects/passengerview/src/app/app-routing.module.ts","./projects/passengerview/src/app/app.component.ts","./projects/passengerview/src/app/app.module.ts","./projects/passengerview/src/app/base/questionbase.ts","./projects/passengerview/src/app/document/document.component.ts","./projects/passengerview/src/app/documents/documents.component.ts","./projects/passengerview/src/app/feedback-dialog/feedback-dialog.component.ts","./projects/passengerview/src/app/home/home.component.ts","./projects/passengerview/src/app/index.ts","./projects/passengerview/src/app/one-way/one-way.component.ts","./projects/passengerview/src/app/passenger-view-feedback/passenger-view-feedback.component.ts","./projects/passengerview/src/app/question-airport/question-airport.component.ts","./projects/passengerview/src/app/question-document-format/question-document-format.component.ts","./projects/passengerview/src/app/question-document-type/question-document-type.component.ts","./projects/passengerview/src/app/questions/questions.component.ts","./projects/passengerview/src/app/result-status-header/result-status-header.component.ts","./projects/passengerview/src/app/result-status/result-status.component.ts","./projects/passengerview/src/app/results-additional-info/results-additional-info.component.ts","./projects/passengerview/src/app/results-country-pages/results-country-pages.component.ts","./projects/passengerview/src/app/results-passenger-info/results-passenger-info.component.ts","./projects/passengerview/src/app/results-segment/results-segment.component.ts","./projects/passengerview/src/app/results-segments/results-segments.component.ts","./projects/passengerview/src/app/results/results.component.ts","./projects/passengerview/src/app/return-trip/return-trip.component.ts","./projects/passengerview/src/app/segment-header/segment-header.component.ts","./projects/passengerview/src/app/segment/segment.component.ts","./projects/passengerview/src/app/segments/segments.component.ts","./projects/passengerview/src/app/your-trip/your-trip.component.ts","./projects/passengerview/src/environments/environment.ts","./projects/passengerview/src/main.ts","./projects/vendors/src/lib/materials.module.ts","./projects/vendors/src/lib/vendors.module.ts","./projects/vendors/src/public_api.ts","./projects/common/src/lib/documentformat.autocomplete/documentformat.autocomplete.component.html","./projects/common/src/lib/documenttype.autocomplete/documenttype.autocomplete.component.html","./projects/common/src/lib/error/error.component.html","./projects/common/src/lib/loading/loading.component.html","./projects/common/src/lib/locations.autocomplete/locations.autocomplete.component.html","./projects/common/src/lib/question.autocomplete/question.autocomplete.component.html","./projects/common/src/lib/results-country-page/results-country-page.component.html","./projects/common/src/lib/select-language/select-language.component.html","./projects/common/src/lib/site-footer/site-footer.component.html","./projects/common/src/lib/site-header/site-header.component.html","./projects/common/src/lib/slide-down/slide-down.component.html","./projects/passengerview/src/app/app.component.html","./projects/passengerview/src/app/document/document.component.html","./projects/passengerview/src/app/documents/documents.component.html","./projects/passengerview/src/app/feedback-dialog/feedback-dialog.component.html","./projects/passengerview/src/app/home/home.component.html","./projects/passengerview/src/app/one-way/one-way.component.html","./projects/passengerview/src/app/passenger-view-feedback/passenger-view-feedback.component.html","./projects/passengerview/src/app/question-airport/question-airport.component.html","./projects/passengerview/src/app/question-document-format/question-document-format.component.html","./projects/passengerview/src/app/question-document-type/question-document-type.component.html","./projects/passengerview/src/app/questions/questions.component.html","./projects/passengerview/src/app/result-status-header/result-status-header.component.html","./projects/passengerview/src/app/result-status/result-status.component.html","./projects/passengerview/src/app/results-additional-info/results-additional-info.component.html","./projects/passengerview/src/app/results-country-pages/results-country-pages.component.html","./projects/passengerview/src/app/results-passenger-info/results-passenger-info.component.html","./projects/passengerview/src/app/results-segment/results-segment.component.html","./projects/passengerview/src/app/results-segments/results-segments.component.html","./projects/passengerview/src/app/results/results.component.html","./projects/passengerview/src/app/return-trip/return-trip.component.html","./projects/passengerview/src/app/segment-header/segment-header.component.html","./projects/passengerview/src/app/segment/segment.component.html","./projects/passengerview/src/app/segments/segments.component.html","./projects/passengerview/src/app/your-trip/your-trip.component.html","./node_modules/moment/locale|sync|/^/.*$","./projects/passengerview/$_lazy_route_resources|lazy|groupOptions: {}|namespace object"],"sourcesContent":["import { Lookups } from '../traveldoc';\r\nimport { AiConfig } from './aiconfig';\r\nimport { User } from './user';\r\n\r\n\r\nexport class JavaScriptValues {\r\n lookups: Lookups;\r\n aiConfig: AiConfig;\r\n user: User;\r\n baseUrl: string;\r\n infoPagesUrl: string;\r\n selectedCulture: string;\r\n instrumentationKey: string;\r\n tagManagerKey: string;\r\n segmentDatesDefault: number;\r\n termsUrl: string;\r\n privacyUrl: string;\r\n skin: string;\r\n readonly minDate: Date;\r\n readonly maxDate: Date;\r\n constructor() {\r\n this.lookups = new Lookups();\r\n const currentYear = new Date().getFullYear();\r\n this.minDate = new Date(currentYear - 20, 0, 1);\r\n this.maxDate = new Date(currentYear + 20, 0, 1);\r\n }\r\n}\r\n","import { Claim } from './claim';\r\n\r\nexport class User {\r\n authenticated: boolean;\r\n claims: Array; \r\n\r\n public isApproved(): boolean {\r\n const CLAIM_NAME = 'approved';\r\n const CLAIM_VALUE = 'true';\r\n let result = false;\r\n if (this.getClaimValue(CLAIM_NAME) === CLAIM_VALUE) {\r\n result = true;\r\n }\r\n return result;\r\n }\r\n\r\n public isSupportOrAbove(): boolean {\r\n const CLAIM_NAME = 'traveldoc_role';\r\n const CLAIM_VALUES = ['admin', 'support'];\r\n let result = false;\r\n if (CLAIM_VALUES.indexOf(this.getClaimValue(CLAIM_NAME)) > -1) {\r\n result = true;\r\n }\r\n return result;\r\n\r\n }\r\n\r\n public getClaimValue(claimName: string) {\r\n let value: string = null;\r\n if (this.claims) {\r\n for (const claim of this.claims) {\r\n if (claim.key && claim.key.toLowerCase() === claimName) {\r\n value = claim.value;\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n toFeedbackJSON() {\r\n const claimEmail = \"name\";\r\n const claimCompany = \"company\";\r\n const claimUserInputCompany = \"user_input_company\";\r\n const claimFullName = \"full_name\";\r\n return {\r\n submittedBy: this.getClaimValue(claimFullName),\r\n email: this.getClaimValue(claimEmail),\r\n company: this.getClaimValue(claimCompany),\r\n userInputCompany: this.getClaimValue(claimUserInputCompany),\r\n }\r\n }\r\n}\r\n","import { RuleMessage } from '../traveldoc/rulemessage';\r\nimport { PriorityItem } from './prioirtyitem';\r\nimport { ResultStatus } from '../enum/resultstatus';\r\n\r\nexport class DisplayCheckResult {\r\n status: ResultStatus;\r\n iVisaLink: string;\r\n /*segmentOrdinal:number*/\r\n priorityLevel1Messages: Array;\r\n level1Messages: Array;\r\n level2Messages: Array;\r\n constructor() {\r\n this.priorityLevel1Messages = new Array();\r\n this.level1Messages = new Array();\r\n this.level2Messages = new Array();\r\n }\r\n}\r\n","import { Moment } from 'moment';\r\n\r\nexport class DisplayGroup {\n from: string;\r\n to: string;\r\n date: Moment;\r\n fromDescription: string;\r\n toDescription: string;\r\n items: Array;\r\n segmentOrdinal: number;\r\n constructor() {\r\n this.from = '';\r\n this.to = '';\r\n this.date = null;\r\n this.items = new Array();\r\n this.segmentOrdinal= 0;\r\n }\r\n}\r\n","import { Location, Link } from '../traveldoc';\r\n\r\nexport class DisplayLinks {\r\n location: Location;\r\n healthHTML: string;\r\n customsHTML: string;\r\n otherResources: string;\r\n}\r\n","import { RuleMessage } from '../traveldoc/rulemessage';\r\n\r\nexport class PriorityItem {\r\n title: string;\r\n items: Array;\r\n constructor() {\r\n this.items = new Array();\r\n }\r\n}\r\n","export enum LinkCategory {\r\n Misc = 0,\r\n Immigration = 1,\r\n Customs = 2,\r\n Health = 3\r\n}\r\n","export enum LocationType {\r\n Unknown = 0,\r\n Country = 1,\r\n CountryAlias = 2,\r\n Airport = 3,\r\n Nationality = 4,\r\n IssuingCountry = 5\r\n}\r\n","export enum Operator {\r\n In = 0,\r\n NotIn = 1\r\n}\r\n","export enum PageType {\n PassengerView,\r\n LibraryView,\r\n Integration,\r\n Widget,\r\n Android,\r\n Contact\r\n}\n\n\n\n","// Not sure why we have so many question types defined as only the\r\n// uncommented types are actually created by the service - just commented out for now\r\nexport enum QuestionType {\r\n DocumentType = 0, \r\n DocumentFormat = 1,\r\n Airport = 2,\r\n //Nationality = 3,\r\n //IssuingCountry = 4\r\n}\r\n","export enum ResultStatus {\r\n Unknown = 0,\r\n Green = 1,\r\n Amber = 2,\r\n Red = 3,\r\n DomesticSegmentCustomStatus = 10 // Client application only status https://ictseuropesystems.visualstudio.com/defaultcollection/All/_boards/board/t/TravelDoc%20Website/Stories/?workitem=8796\r\n}\r\n","export enum RuleCategory {\r\n DocumentRequired = 0,\r\n VisaWaiver = 1,\r\n PassportValidity = 2,\r\n AcceptedDocuments = 3,\r\n Constraint = 4,\r\n NoAcceptedDocuments = 5,\r\n OnwardTravel = 6\r\n}\r\n","export enum SegmentFormType {\n OneWay = \"OneWay\",\r\n Return = \"Return\",\r\n MultiSegment = \"MultiSegment\"\r\n}\r\n","import { Rule } from '../traveldoc/rule';\r\n\r\nexport class ConstraintRule {\r\n title: string;\r\n text: string;\r\n appliesTo: string;\r\n appliesToText: string;\r\n rule: Rule;\r\n\r\n toFeedbackJSON() {\r\n return {\r\n ruleName: this.title,\r\n applicationMessage: this.text,\r\n nationalies: (this.rule && this.rule.nationalityCodes) ? this.rule.nationalityCodes.toString() : 'no nationalities',\r\n tags: (this.rule && this.rule.tags) ? this.rule.tags.map((t) => t.description).toString() : 'no tags',\r\n }\r\n }\r\n}\r\n","export class FeedbackData {\r\n // User data\r\n submittedBy: string;\r\n email: string;\r\n submittedAt: Date;\r\n company: string;\r\n userInputCompany: string;\r\n website: string;\r\n userComments: string;\r\n // rule data\r\n ruleName: string;\r\n applicationMessage: string;\r\n nationalies: string;\r\n tags: string;\r\n // Inputs Data\r\n destination: string;\r\n nationality: string;\r\n originLocation: string;\r\n issuingCountry: string;\r\n documentType: string;\r\n documentFormat: string;\r\n\r\n // Client Filters\r\n selectedTags: string;\r\n searchText: string;\r\n}\r\n","import { Tag } from '../traveldoc/tag';\r\nimport { Observer } from 'rxjs';\r\n\r\nexport class FilterValues {\r\n\r\n private _observer: Observer;\r\n\r\n constructor(observer: Observer = null) {\r\n this._observer = observer;\r\n this._searchText = '';\r\n this._filterTags = [];\r\n }\r\n private _searchText: string;\r\n get searchText(): string { return this._searchText; }\r\n set searchText(value: string) {\r\n this._searchText = value;\r\n this.trigger();\r\n }\r\n\r\n //searchText: string;\r\n private _filterTags: Array;\r\n get filterTags(): Array { return this._filterTags; }\r\n set filterTags(value: Array) {\r\n this._filterTags = value;\r\n this.trigger();\r\n }\r\n\r\n private trigger() {\r\n if (this._observer) this._observer.next(this);\r\n }\r\n\r\n toFeedbackJSON() {\r\n return {\r\n selectedTags: (this._filterTags) ? this._filterTags.map(t=>t.name).toString() : 'No filter tags selected',\r\n searchText: this.searchText\r\n };\r\n }\r\n\r\n}\r\n","export { ConstraintRule } from './constraintrule';\r\nexport { FeedbackData } from './feedbackdata';\r\nexport { FilterValues } from './filtervalues';\r\nexport { InputValues } from './inputvalues';\r\nexport { PriorityRule } from './priorityrule';\r\n","import {\r\n Location,\r\n DocumentType,\r\n DocumentFormat\r\n} from '../traveldoc/index'\r\nimport { Observer } from 'rxjs';\r\n\r\nexport class InputValues {\r\n\r\n private subscriber: Observer\r\n\r\n //constructor();\r\n constructor(subscriber?: Observer, inputValues?) {\r\n Object.assign(this, inputValues);\r\n this.subscriber = subscriber;\r\n }\r\n\r\n destination: Location;\r\n nationality: Location;\r\n originLocation: Location;\r\n issuingCountry: Location;\r\n documentType: DocumentType;\r\n documentFormat: DocumentFormat;\r\n\r\n triggerUpdate() {\r\n if (this.subscriber) {\r\n this.subscriber.next(this);\r\n }\r\n }\r\n\r\n toJSON() {\r\n return JSON.stringify({\r\n destination: this.destination,\r\n nationality: this.nationality,\r\n issuingCountry: this.issuingCountry,\r\n originLocation: this.originLocation,\r\n documentType: this.documentType,\r\n documentFormat: this.documentFormat\r\n });\r\n }\r\n\r\n toFeedbackJSON() {\r\n // Returns a flattented string object used to provide \r\n // selected input values for the feedback email\r\n return {\r\n destination: (this.destination) ? this.destination.countryICAO : null,\r\n nationality: (this.nationality) ? this.nationality.countryICAO : null,\r\n issuingCountry: (this.issuingCountry) ? this.issuingCountry.countryICAO : null,\r\n originLocation: (this.originLocation) ? this.originLocation.countryICAO : null,\r\n documentType: (this.documentType) ? this.documentType.name : null,\r\n documentFormat: (this.documentFormat) ? this.documentFormat.description : null\r\n };\r\n }\r\n\r\n}\r\n","import { RuleCategory } from '../enum/rulecategory';\r\nimport { retry } from 'rxjs/operators';\r\n\r\nexport class PriorityRule {\r\n constructor(ruleCategory: RuleCategory, content: string) {\r\n this.ruleCategory = ruleCategory;\r\n this._content = content;\r\n }\r\n\r\n private readonly ruleCategory: RuleCategory;\r\n private readonly _content: string;\r\n\r\n get title(): string {\r\n switch (this.ruleCategory) {\r\n case RuleCategory.AcceptedDocuments: return \"Accepted Documents\"; break;\r\n case RuleCategory.Constraint: return \"Constraint\"; break;\r\n case RuleCategory.DocumentRequired: return \"Document Required\"; break;\r\n case RuleCategory.NoAcceptedDocuments: return \"No Accepted Documents\"; break;\r\n case RuleCategory.OnwardTravel: return \"Onwards Travel\"; break;\r\n case RuleCategory.PassportValidity: return \"Passport Validity\"; break;\r\n case RuleCategory.VisaWaiver: return \"Visa Waiver\"; break;\r\n default: break;\r\n }\r\n };\r\n\r\n get content(): string {\r\n return this._content;\r\n }\r\n \r\n}\r\n","import { Location } from '../traveldoc/location';\r\nimport { DocumentType } from '../traveldoc/documenttype';\r\nimport { DocumentFormat } from '../traveldoc/documentformat';\r\n\r\nexport class LibraryQuery {\r\n\r\n destination: Location;\r\n origin: Location;\r\n nationality: Location;\r\n issuingCountry: Location;\r\n documentType: DocumentType;\r\n documentFormat: DocumentFormat;\r\n}\r\n","import { ResultStatus } from '../enum/resultstatus';\r\nimport { Link } from '.';\r\nimport { RuleMessage } from './rulemessage';\r\nimport { DestinationDocument } from './destinationdocument';\r\n\r\nexport class CheckResult {\r\n iVisaLink: string;\r\n status: ResultStatus;\r\n level1Messages: Array;\r\n level2Messages: Array;\r\n destinationDocuments: Array\r\n links: Array\r\n segmentOrdinal: number;\r\n}\r\n","import { ResultStatus } from '../enum/resultstatus';\r\nimport { CheckResult, Document } from '.';\r\nexport class CheckResults {\r\n overallStatus: ResultStatus;\r\n overallMessage: string;\r\n resultsList: Array;\r\n documents: Array;\r\n resultsValidityDate: Date;\r\n}\r\n","export class CountryGroup {\r\n countryGroupID: number;\r\n name: string;\r\n description: string;\r\n dountryIDs: Array\r\n}\r\n","import { DocumentFormat } from './documentformat';\r\nimport { Location } from './location';\r\nimport { DocumentType } from './documenttype';\r\nimport { Moment } from 'moment';\r\n\r\n\r\nexport class Document {\r\n documentGuid: string;\r\n documentFormat: DocumentFormat;\r\n documentType: DocumentType;\r\n //name: string;\r\n expiry: Moment;\r\n issuingCountry: Location;\r\n nationality: Location;\r\n}\r\n","export class DocumentFormat {\r\n id: number;\r\n description: string;\r\n isDefault: boolean;\r\n}\r\n","export class DocumentType {\r\n documentTypeId: number;\r\n name: string;\r\n description: string;\r\n isPrimaryDocument: boolean;\r\n}\r\n","export class FeedbackMessage {\r\n name: string;\r\n email: string;\r\n description: string;\r\n segmentOrdinal: string;\r\n queryLink: string;\r\n}\r\n","// Enums\r\nexport { RuleCategory } from '../enum/rulecategory';\r\nexport { LinkCategory } from '../enum/linkcategory';\r\nexport { Operator } from '../enum/operator';\r\nexport { LocationType } from '../enum/locationtype';\r\nexport { QuestionType } from '../enum/questiontype';\r\n\r\n// Models\r\nexport { Passenger } from './passenger';\r\nexport { FeedbackMessage } from './feedbackMessage';\r\nexport { InterviewQuestion } from './interviewquestion';\r\nexport { Location } from './location';\r\nexport { Document } from './document';\r\nexport { DocumentType } from './documenttype';\r\nexport { DocumentFormat } from './documentformat';\r\nexport { CountryGroup } from './countrygroup';\r\nexport { Lookups } from './lookups';\r\nexport { CheckResults } from './checkresults';\r\nexport { CheckResult } from './checkresult';\r\nexport { InterviewAnswer } from './interviewanswer';\r\nexport { Segment } from './segment';\r\n\r\n// Display models\r\nexport { DisplayGroup } from '../display/displaygroup';\r\nexport { DisplayLinks } from '../display/displaylinks';\r\nexport { DisplayCheckResult } from '../display/displaycheckresult';\r\nexport { PriorityItem } from '../display/prioirtyitem';\r\n\r\n// Library objects\r\nexport { Rule } from './rule';\r\nexport { Tag } from './tag';\r\nexport { Link } from './link';\r\nexport { LibraryResult } from './libraryresult';\r\n\r\n\r\n// HTTP Proxy Args\r\nexport { LibraryQuery } from '../params/libraryquery';\r\n\r\n","export class InterviewAnswer {\r\n key: string;\r\n value: string;\r\n}\r\n","import { QuestionType } from '../enum/questiontype';\r\nimport { InterviewAnswer } from '.';\r\n\r\nexport class InterviewQuestion {\r\n segmentOrdinal: number;\r\n questionType: QuestionType;\r\n questionReferences: string;\r\n questionText: string;\r\n answerList: Array;\r\n answer: string;\r\n}\r\n","import { Rule, Tag,Link } from './index';\r\nexport class LibraryResult {\r\n rules: Array;\r\n tags: Array;\r\n links: Array;\r\n}\r\n","import { LinkCategory } from '../enum/linkcategory';\r\n\r\nexport class Link {\r\n name: string;\r\n url: string;\r\n categoryName: string;\r\n category: LinkCategory;\r\n}\r\n","import { LocationType } from '../../models/enum/locationtype';\r\n\r\nexport class Location {\r\n type: LocationType;\r\n countryICAO: string;\r\n countryDescription: string;\r\n locationICAO: string;\r\n locationDescription: string;\r\n}\r\n","import {\r\n Location,\r\n DocumentType,\r\n DocumentFormat,\r\n CountryGroup\r\n} from './index';\r\n\r\n\r\nexport class Lookups {\r\n nationalities: Array\r\n nationalitiesOnly: Array;\r\n issuingAuthorities: Array;\r\n documentTypes: Array;\r\n documentFormats: Array;\r\n countryGroups: Array;\r\n}\r\n","import { InterviewQuestion } from './interviewquestion';\r\nimport { Segment } from './segment';\r\nimport { Document } from './document';\r\n\r\n\r\nexport class Passenger {\r\n constructor() {\r\n this.documents = new Array();\r\n this.segments = new Array();\r\n }\r\n travellingWithChildren = false;\r\n documents: Array\r\n questions: Array;\r\n segments: Array;\r\n}\r\n","import { Tag } from './tag';\r\nimport { RuleCategory } from '../enum/rulecategory';\r\nimport { Operator } from '../enum/operator';\r\n\r\n\r\n\r\nexport class Rule {\r\n ruleCategory: RuleCategory = RuleCategory.Constraint;\r\n ruleID: string = null;\r\n ruleText: string = null;\r\n priority: number = 0;\r\n ordinal: number = 0;\r\n nationalityOperator: Operator = Operator.In;\r\n nationalityCodes: Array = new Array();\r\n nationalitySmartMessages: Array = new Array();\r\n issuingCountryOperator: Operator = Operator.In;\r\n issuingCountryCodes: Array = new Array();\r\n tags: Array = new Array();\r\n fieldMessages: Array = new Array();\r\n documentTypes: Array = new Array();\r\n}\r\n","import { Moment } from 'moment';\r\nimport { Location } from '.';\r\n\r\nexport class Segment {\r\n segmentGuid: string;\r\n departureDate: Moment;\r\n destination: Location;\r\n origin: Location;\r\n segmentOrdinal: number;\r\n transit: boolean;\r\n transitHours: number;\r\n}\r\n","export class Tag {\r\n tagID: number;\r\n name: string;\r\n description: string;\r\n}\r\n","import { trigger, transition, animate, style, state, stagger, animateChild, query, group } from '@angular/animations';\r\n\r\nconst defaultTiming = '225ms cubic-bezier(0.4,0.0,0.2,1)';\r\nconst delayedDefaultTiming = '225ms 225ms cubic-bezier(0.4,0.0,0.2,1)';\r\nconst longerTiming = '500ms cubic-bezier(0.4,0.0,0.2,1)';\r\n\r\nexport const addRemove = trigger('addRemove', [\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate(defaultTiming, style({ opacity: 1 })),\r\n ]),\r\n transition(':leave', [\r\n animate(defaultTiming, style({ opacity: 0 }))\r\n ])\r\n]);\r\nexport const indicator = trigger('indicator', [\r\n state('true', style({ 'height': '*' })),\r\n state('false', style({ 'height': '0', 'visibility': 'hidden' })),\r\n transition('true => false', [\r\n animate(defaultTiming)\r\n ]),\r\n transition('false => true', [\r\n animate(defaultTiming)\r\n ])\r\n]);\r\nexport const triangle = trigger('triangle', [\r\n state('HEALTH', style({ 'left': '16.66%' })),\r\n state('CUSTOMS', style({ 'left': '50%' })),\r\n state('OTHER', style({ 'left': '83.33%' })),\r\n transition('* <=> *', [\r\n animate(defaultTiming)\r\n ])\r\n]);\r\nexport const openClose = trigger('openClose', [\r\n state('true', style({ 'height': '*' })),\r\n state('false', style({ 'height': '0' })),\r\n transition('false => true', [\r\n animate(defaultTiming)\r\n ]),\r\n transition('true => *', [\r\n animate(defaultTiming)\r\n ])\r\n]);\r\n\r\nexport const indicatorRotate = trigger('indicatorRotate', [\r\n state('false', style({ transform: 'rotate(0deg)' })),\r\n state('true', style({ transform: 'rotate(-180deg)' })),\r\n transition(\"true => false\", animate(defaultTiming)),\r\n transition(\"false => true\", animate(defaultTiming))\r\n]);\r\nexport const bodyExpansion = trigger('bodyExpansion', [\r\n state('false', style({ height: '0px', display: 'none' })),\r\n state('true', style({ height: '*', display: 'block' })),\r\n transition(\"true => false\", animate(defaultTiming)),\r\n transition(\"false => true\", animate(defaultTiming))\r\n])\r\nexport const expanded = trigger(\"expanded\", [\r\n state('true', style({ height: '*' })),\r\n state('false', style({ height: '0' })),\r\n transition(\"true => false\", animate(defaultTiming)),\r\n transition(\"false => true\", animate(defaultTiming))\r\n]);\r\n\r\nexport const slideDown = trigger(\"slideDown\", [\r\n state('void', style({ bottom: '-100%' })),\r\n state('true', style({ bottom: '0' })),\r\n state('false', style({ bottom: '-100%' })),\r\n transition(\"* => false\", animate(defaultTiming)),\r\n transition(\"* => true\", animate(defaultTiming))\r\n]);\r\n\r\nexport const inputSummary = trigger(\"inputSummary\", [\r\n state(\"true\", style({ \"height\": \"0\", opacity: 0 })),\r\n state(\"false\", style({ \"height\": \"*\", opacity: 1 })),\r\n transition(\"false => true\", [animate(defaultTiming)]),\r\n transition(\"true => false\", [animate(delayedDefaultTiming)])\r\n]);\r\nexport const additonalInputs = trigger(\"additionalInputs\", [\r\n state(\"true\", style({ \"height\": \"*\", opacity: 1 })),\r\n state(\"false\", style({ \"height\": \"0\", opacity: 0 })),\r\n transition(\"false => true\", [\r\n animate(delayedDefaultTiming)\r\n ]),\r\n transition(\"true => false\", [\r\n animate(defaultTiming)\r\n ])\r\n]);\r\nexport const item = trigger('item', [\r\n // cubic-bezier for a tiny bouncing feel\r\n transition(':enter', [\r\n style({ transform: 'scale(0.5)', opacity: 0 }),\r\n animate(longerTiming,\r\n style({ transform: 'scale(1)', opacity: 1 }))\r\n ]),\r\n transition(':leave', [\r\n style({ transform: 'scale(1)', opacity: 1, }),\r\n animate(longerTiming,\r\n style({ transform: 'scale(0.5)', opacity: 0 }))\r\n ])\r\n])\r\n\r\nexport const listAnimation = trigger('listAnimation', [\r\n transition('* <=> *', [\r\n group([\r\n query(':enter', [\r\n style({ transform: 'scale(0.5)', opacity: 0 }),\r\n stagger('20ms', animate(longerTiming, style({ transform: 'scale(1)', opacity: 1 })))],\r\n { optional: true }\r\n ),\r\n query(':leave', [\r\n style({ opacity: 1, height: '*', transform: 'scale(1)' }),\r\n animate(longerTiming, style({ opacity: 0, height: 0, transform: 'scale(0.5)' }))],\r\n { optional: true }\r\n )])\r\n ])\r\n]);\r\n","import { default as en } from './calendar-formats.en.json';\r\nimport { default as zhHans } from './calendar-formats.zh-Hans.json';\r\nimport { default as zhHant } from './calendar-formats.zh-Hant.json';\r\n\r\nexport const matCalendarFormats = {\r\n 'en': en,\r\n 'fr': en,\r\n 'nl': en,\r\n 'es': en,\r\n 'de': en,\r\n 'it': en,\r\n 'pt-PT': en,\r\n 'pt-BR': en,\r\n 'zh-Hans': zhHans,\r\n 'zh-Hant': zhHant\r\n}\r\n","export const languageLookup = [\r\n { \"cultureCode\": \"en\", \"name\": \"English\" },\r\n { \"cultureCode\": \"zh-Hans\", \"name\": \"简体中文\", \"clientCodes\": [\"icts\", \"afkl\", \"airasia\", \"airfrance\", \"alaskaairlines\", \"cebu\", \"evaair\", \"kenyaairways\", \"klm\", \"skyteam\", \"starlux\", \"china-airlines\", \"ceair\"] },\r\n { \"cultureCode\": \"zh-Hant\", \"name\": \"繁體中文\", \"clientCodes\": [\"icts\", \"afkl\", \"airasia\", \"airfrance\", \"alaskaairlines\", \"cebu\", \"evaair\", \"kenyaairways\", \"klm\", \"skyteam\", \"starlux\", \"china-airlines\", \"ceair\"] },\r\n { \"cultureCode\": \"nl\", \"name\": \"Nederlands\", \"clientCodes\": [\"icts\", \"afkl\", \"airfrance\", \"klm\" ] },\r\n { \"cultureCode\": \"fr\", \"name\": \"Français\", \"clientCodes\": [\"icts\", \"afkl\", \"airfrance\", \"klm\", \"transavia\", \"airsenegal\", \"luxair\"] },\r\n { \"cultureCode\": \"es\", \"name\": \"español\", \"clientCodes\": [\"icts\", \"aireuropa\", \"afkl\", \"airfrance\", \"klm\", \"luxair\"] },\r\n { \"cultureCode\": \"pt-PT\", \"name\": \"Português (Portugal)\", \"clientCodes\": [\"icts\", \"aireuropa\", \"luxair\", \"afkl\", \"airfrance\", \"klm\"] },\r\n { \"cultureCode\": \"pt-BR\", \"name\": \"Português (Brasil)\", \"clientCodes\": [\"icts\", \"aireuropa\"] },\r\n { \"cultureCode\": \"it\", \"name\": \"Italiano\", \"clientCodes\": [\"icts\", \"luxair\"] },\r\n { \"cultureCode\": \"de\", \"name\": \"Deutsch\", \"clientCodes\": [\"icts\", \"luxair\"] }\r\n];\r\n\r\n\r\n","export default {\r\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\r\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\r\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\r\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\r\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY/MM/DD',\r\n LL: 'YYYY年M月D日',\r\n LLL: 'YYYY年M月D日Ah点mm分',\r\n LLLL: 'YYYY年M月D日ddddAh点mm分',\r\n l: 'YYYY/M/D',\r\n ll: 'YYYY年M月D日',\r\n lll: 'YYYY年M月D日 HH:mm',\r\n llll: 'YYYY年M月D日dddd HH:mm'\r\n },\r\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === '凌晨' || meridiem === '早上' ||\r\n meridiem === '上午') {\r\n return hour;\r\n } else if (meridiem === '下午' || meridiem === '晚上') {\r\n return hour + 12;\r\n } else {\r\n // '中午'\r\n return hour >= 11 ? hour : hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n var hm = hour * 100 + minute;\r\n if (hm < 600) {\r\n return '凌晨';\r\n } else if (hm < 900) {\r\n return '早上';\r\n } else if (hm < 1130) {\r\n return '上午';\r\n } else if (hm < 1230) {\r\n return '中午';\r\n } else if (hm < 1800) {\r\n return '下午';\r\n } else {\r\n return '晚上';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[今天]LT',\r\n nextDay: '[明天]LT',\r\n nextWeek: '[下]ddddLT',\r\n lastDay: '[昨天]LT',\r\n lastWeek: '[上]ddddLT',\r\n sameElse: 'L'\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'd':\r\n case 'D':\r\n case 'DDD':\r\n return number + '日';\r\n case 'M':\r\n return number + '月';\r\n case 'w':\r\n case 'W':\r\n return number + '周';\r\n default:\r\n return number;\r\n }\r\n },\r\n relativeTime: {\r\n future: '%s内',\r\n past: '%s前',\r\n s: '几秒',\r\n ss: '%d 秒',\r\n m: '1 分钟',\r\n mm: '%d 分钟',\r\n h: '1 小时',\r\n hh: '%d 小时',\r\n d: '1 天',\r\n dd: '%d 天',\r\n M: '1 个月',\r\n MM: '%d 个月',\r\n y: '1 年',\r\n yy: '%d 年'\r\n },\r\n week: {\r\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4 // The week that contains Jan 4th is the first week of the year.\r\n }\r\n};\r\n","export default {\r\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\r\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\r\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\r\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\r\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\r\n longDateFormat: {\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss',\r\n L: 'YYYY/MM/DD',\r\n LL: 'YYYY年M月D日',\r\n LLL: 'YYYY年M月D日 HH:mm',\r\n LLLL: 'YYYY年M月D日dddd HH:mm',\r\n l: 'YYYY/M/D',\r\n ll: 'YYYY年M月D日',\r\n lll: 'YYYY年M月D日 HH:mm',\r\n llll: 'YYYY年M月D日dddd HH:mm'\r\n },\r\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\r\n meridiemHour: function (hour, meridiem) {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\r\n return hour;\r\n } else if (meridiem === '中午') {\r\n return hour >= 11 ? hour : hour + 12;\r\n } else if (meridiem === '下午' || meridiem === '晚上') {\r\n return hour + 12;\r\n }\r\n },\r\n meridiem: function (hour, minute, isLower) {\r\n var hm = hour * 100 + minute;\r\n if (hm < 600) {\r\n return '凌晨';\r\n } else if (hm < 900) {\r\n return '早上';\r\n } else if (hm < 1130) {\r\n return '上午';\r\n } else if (hm < 1230) {\r\n return '中午';\r\n } else if (hm < 1800) {\r\n return '下午';\r\n } else {\r\n return '晚上';\r\n }\r\n },\r\n calendar: {\r\n sameDay: '[今天] LT',\r\n nextDay: '[明天] LT',\r\n nextWeek: '[下]dddd LT',\r\n lastDay: '[昨天] LT',\r\n lastWeek: '[上]dddd LT',\r\n sameElse: 'L'\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'd':\r\n case 'D':\r\n case 'DDD':\r\n return number + '日';\r\n case 'M':\r\n return number + '月';\r\n case 'w':\r\n case 'W':\r\n return number + '週';\r\n default:\r\n return number;\r\n }\r\n },\r\n relativeTime: {\r\n future: '%s內',\r\n past: '%s前',\r\n s: '幾秒',\r\n ss: '%d 秒',\r\n m: '1 分鐘',\r\n mm: '%d 分鐘',\r\n h: '1 小時',\r\n hh: '%d 小時',\r\n d: '1 天',\r\n dd: '%d 天',\r\n M: '1 個月',\r\n MM: '%d 個月',\r\n y: '1 年',\r\n yy: '%d 年'\r\n }\r\n}\r\n","import { default as en } from './traveldoc.en.json';\r\nimport { default as enKLM } from './traveldoc.en.klm.json';\r\nimport { default as enAirfrance } from './traveldoc.en.airfrance.json';\r\nimport { default as enTransavia } from './traveldoc.en.transavia.json';\r\nimport { default as enCeair } from './traveldoc.en.ceair.json';\r\nimport { default as enAirSenegal } from './traveldoc.en.airsenegal.json';\r\nimport { default as enLuxair } from './traveldoc.en.luxair.json';\r\n\r\nimport { default as nl } from './traveldoc.nl.json';\r\nimport { default as nlKLM } from './traveldoc.nl.klm.json';\r\nimport { default as nlAirfrance } from './traveldoc.nl.airfrance.json';\r\nimport { default as nlLuxair } from './traveldoc.nl.luxair.json';\r\n\r\nimport { default as fr } from './traveldoc.fr.json';\r\nimport { default as frKLM } from './traveldoc.fr.klm.json';\r\nimport { default as frAirfrance } from './traveldoc.fr.airfrance.json';\r\nimport { default as frTransavia } from './traveldoc.fr.transavia.json';\r\nimport { default as frAirSenegal } from './traveldoc.fr.airsenegal.json';\r\nimport { default as frLuxair } from './traveldoc.fr.luxair.json';\r\n\r\nimport { default as zhHans } from './traveldoc.zh-Hans.json';\r\nimport { default as zhHansCeair } from './traveldoc.zh-Hans.ceair.json';\r\nimport { default as zhHansKLM } from './traveldoc.zh-Hans.klm.json';\r\nimport { default as zhHansAirfrance } from './traveldoc.zh-Hans.airfrance.json';\r\nimport { default as zhHansLuxair} from './traveldoc.zh-Hans.luxair.json';\r\n\r\nimport { default as zhHant } from './traveldoc.zh-Hant.json';\r\nimport { default as zhHantCeair } from './traveldoc.zh-Hant.ceair.json';\r\nimport { default as zhHantKLM } from './traveldoc.zh-Hant.klm.json';\r\nimport { default as zhHantAirfrance } from './traveldoc.zh-Hant.airfrance.json';\r\nimport { default as zhHantLuxair} from './traveldoc.zh-Hant.luxair.json';\r\n\r\nimport { default as es } from './traveldoc.es.json';\r\nimport { default as esKLM } from './traveldoc.es.klm.json';\r\nimport { default as esAirfrance } from './traveldoc.es.airfrance.json';\r\nimport { default as esLuxair } from './traveldoc.es.luxair.json';\r\n\r\nimport { default as ptPT } from './traveldoc.pt-PT.json';\r\nimport { default as ptPTKLM } from './traveldoc.pt-PT.klm.json';\r\nimport { default as ptPTAirfrance } from './traveldoc.pt-PT.airfrance.json';\r\nimport { default as ptPTLuxair } from './traveldoc.pt-PT.luxair.json';\r\n\r\nimport { default as ptBR } from './traveldoc.pt-BR.json';\r\nimport { default as ptBRKLM } from './traveldoc.pt-BR.klm.json';\r\nimport { default as ptBRAirfrance } from './traveldoc.pt-BR.airfrance.json';\r\nimport { default as ptBRLuxair} from './traveldoc.pt-BR.luxair.json';\r\n\r\nimport { default as de } from './traveldoc.de.json';\r\nimport { default as deLuxair } from './traveldoc.de.luxair.json';\r\n\r\nimport { default as it } from './traveldoc.it.json';\r\nimport { default as itLuxair } from './traveldoc.it.luxair.json';\r\n\r\n\r\n\r\nexport const availableLanguages = {\r\n \"en\": en,\r\n \"en.klm\": enKLM,\r\n \"en.airfrance\": enAirfrance,\r\n \"en.transavia\": enTransavia,\r\n \"en.ceair\": enCeair,\r\n \"en.airsenegal\": enAirSenegal,\r\n \"en.luxair\": enLuxair,\r\n \"nl\": nl,\r\n \"nl.klm\": nlKLM,\r\n \"nl.airfrance\": nlAirfrance,\r\n \"nl.luxair\": nlLuxair,\r\n \"fr\": fr,\r\n \"fr.klm\": frKLM,\r\n \"fr.airfrance\": frAirfrance,\r\n \"fr.transavia\": frTransavia,\r\n \"fr.airsenegal\": frAirSenegal,\r\n \"fr.luxair\": frLuxair,\r\n \"zh-Hans\": zhHans,\r\n \"zh-Hans.ceair\": zhHansCeair,\r\n \"zh-Hans.klm\": zhHansKLM,\r\n \"zh-Hans.airfrance\": zhHansAirfrance,\r\n \"zh-Hans.luxair\": zhHansLuxair,\r\n \"zh-Hant\": zhHant,\r\n \"zh-Hant.ceair\": zhHantCeair,\r\n \"zh-Hant.klm\": zhHantKLM,\r\n \"zh-Hant.airfrance\": zhHantAirfrance,\r\n \"zh-Hant.luxair\": zhHantLuxair,\r\n \"es\": es,\r\n \"es.klm\": esKLM,\r\n \"es.airfrance\": esAirfrance,\r\n \"es.luxair\": esLuxair,\r\n \"pt-PT\": ptPT,\r\n \"pt-PT.klm\": ptPTKLM, \r\n \"pt-PT.airfrance\": ptPTAirfrance,\r\n \"pt-PT.luxair\": ptPTLuxair,\r\n \"pt-BR\": ptBR,\r\n \"pt-BR.klm\": ptBRKLM,\r\n \"pt-BR.airfrance\": ptBRAirfrance,\r\n \"pt-BR.luxair\": ptBRLuxair,\r\n \"de\": de,\r\n \"de.luxair\": deLuxair,\r\n \"it\": it,\r\n \"it.luxair\": itLuxair,\r\n};\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\n@Pipe({\n name: 'highlight'\n})\nexport class HighlightPipe implements PipeTransform {\n constructor(private sanitized: DomSanitizer) { }\n\n transform(html : string, args: string): SafeHtml {\n args = this.escapeRegExp(args);\n \n if (!args) { return html; }\n const re = new RegExp(args, 'gi'); //'gi' for case insensitive and can use 'g' if you want the search to be case sensitive.\n \n const returnValue: string = html .replace(re, \"$&\");\n return this.sanitized.bypassSecurityTrustHtml(returnValue);\r\n }\n\n escapeRegExp(string) {\r\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\r\n }\n}\n","export { HighlightPipe } from './highlight.pipe';\r\nexport { NoSanitizePipe } from './no-sanitize.pipe';\r\nexport { MomentPipe } from './moment.pipe';\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\r\n//import { ConfigurationService } from '../services';\r\n//import { config } from 'rxjs';\r\n\n@Pipe({\n name: 'moment'\n})\nexport class MomentPipe implements PipeTransform {\n\n //constructor(private configurationService: ConfigurationService) {\n \n //}\n\n transform(date: Date, format: string): unknown {\n \n return moment(date).format(format);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({ name: 'noSanitize' })\nexport class NoSanitizePipe implements PipeTransform {\n constructor(private domSanitizer: DomSanitizer) {\n\n }\n transform(html: string): SafeHtml {\n return this.domSanitizer.bypassSecurityTrustHtml(html);\n\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { InterviewQuestion, CheckResults, Passenger, Segment, Document, DocumentType, DocumentFormat, LibraryResult } from '../../../../models/traveldoc';\r\nimport { JavaScriptValues } from '../../../../models/configuration/javasciptvalues';\r\nimport { DataService } from '../utils/data.service';\r\nimport * as moment from 'moment';\r\nimport { InputValues } from '../../../../models/library/inputvalues';\r\nimport { User } from '../../../../models/configuration/user'\r\nimport { Data } from '@angular/router';\r\n\r\nconst defaultDocFormatId = 5; // Biometric\r\nconst defaultDocumentType = 'passport'; //passport\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigurationService {\r\n isLibrary: boolean = false;\r\n configuration: JavaScriptValues;\r\n results: CheckResults;\r\n questions: Array;\r\n antiForgeryToken: string;\r\n inputValues: InputValues;\r\n libraryResult: LibraryResult;\r\n\r\n constructor(\r\n private dataService: DataService) {\r\n this.results = null;\r\n this.questions = new Array();\r\n\r\n const bootData = window['td'];\r\n\r\n this.configuration = this.bindConfiguration(bootData);\r\n\r\n this.validateConfiguration(this.configuration);\r\n this.bindDataService(bootData, this.dataService);\r\n this.bindInputValues(bootData);\r\n }\r\n private bindDataService(jsonJsValues, dataService: DataService) {\r\n dataService.passenger = this.getPassenger(jsonJsValues.passenger);\r\n dataService.results = jsonJsValues.results;\r\n }\r\n\r\n private bindInputValues(jsonJsValues) {\r\n this.inputValues = this.getInputValues(jsonJsValues.inputValues);\r\n this.libraryResult = jsonJsValues.libraryResult;\r\n }\r\n\r\n\r\n\r\n private bindConfiguration(jsonJsValues): JavaScriptValues {\r\n const returnValue = new JavaScriptValues();\r\n returnValue.baseUrl = jsonJsValues.baseUrl;\r\n returnValue.tagManagerKey = jsonJsValues.tagManagerKey;\r\n returnValue.aiConfig = jsonJsValues.aiConfig;\r\n returnValue.infoPagesUrl = jsonJsValues.infoPagesUrl;\r\n returnValue.privacyUrl = jsonJsValues.privacyUrl;\r\n returnValue.termsUrl = jsonJsValues.termsUrl;\r\n returnValue.selectedCulture = jsonJsValues.selectedCulture;\r\n returnValue.segmentDatesDefault = jsonJsValues.segmentDatesDefault;\r\n returnValue.user = new User(); // Required to keep the object prototype\r\n returnValue.user.authenticated = jsonJsValues.user.authenticated;\r\n returnValue.user.claims = jsonJsValues.user.claims;\r\n\r\n returnValue.lookups.countryGroups = jsonJsValues.lookups.countryGroups;\r\n returnValue.lookups.documentFormats = jsonJsValues.lookups.documentFormats;\r\n returnValue.lookups.documentTypes = jsonJsValues.lookups.documentTypes;\r\n returnValue.lookups.issuingAuthorities = jsonJsValues.lookups.issuingAuthorities;\r\n returnValue.lookups.nationalities = jsonJsValues.lookups.nationalities;\r\n returnValue.lookups.nationalitiesOnly = jsonJsValues.lookups.nationalitiesOnly;\r\n\r\n returnValue.selectedCulture = jsonJsValues.selectedCulture;\r\n returnValue.skin = jsonJsValues.skin;\r\n this.antiForgeryToken = jsonJsValues.antiForgeryToken;\r\n return returnValue;\r\n }\r\n\r\n private validateConfiguration(configuration: JavaScriptValues) {\r\n if (this.isNullOrWhitespace(configuration.baseUrl)) {\r\n throw new Error(`TravelDoc Configuration error baseURL is missing'`);\r\n }\r\n\r\n\r\n if (!configuration.lookups) {\r\n throw new Error(`Configuration error lookups data was not loaded'`);\r\n }\r\n\r\n if (!configuration.lookups.documentFormats) {\r\n throw new Error(`Configuration error documentFormats data was not loaded'`);\r\n }\r\n if (!configuration.lookups.documentTypes) {\r\n throw new Error(`Configuration error documentTypes data was not loaded'`);\r\n }\r\n\r\n if (!configuration.lookups.issuingAuthorities) {\r\n throw new Error(`Configuration error issuingAuthorities data was not loaded'`);\r\n }\r\n if (!configuration.lookups.nationalities) {\r\n throw new Error(`Configuration error nationalities data was not loaded'`);\r\n }\r\n if (!configuration.lookups.nationalitiesOnly) {\r\n throw new Error(`Configuration error nationalitiesOnly data was not loaded'`);\r\n }\r\n }\r\n\r\n private isNullOrWhitespace(input: string) {\r\n if (typeof input === 'undefined' || input === null) return true;\r\n return input.replace(/\\s/g, '').length < 1;\r\n }\r\n\r\n private getInputValues(jsonData): InputValues {\r\n const returnValue = {} as InputValues;\r\n\r\n\r\n // Default the document format and type\r\n const df: DocumentFormat = this.configuration.lookups.documentFormats.filter((df) => df.id === defaultDocFormatId)[0];\r\n\r\n returnValue.documentFormat = df;\r\n returnValue.documentType = this.getDefaultDocumentType();\r\n\r\n if (jsonData) {\r\n const parsedData = jsonData;\r\n if (parsedData.destination) { returnValue.destination = parsedData.destination; }\r\n if (parsedData.nationality) { returnValue.nationality = parsedData.nationality; }\r\n if (parsedData.issuingCountry) { returnValue.issuingCountry = parsedData.issuingCountry; }\r\n if (parsedData.originLocation) { returnValue.originLocation = parsedData.originLocation }\r\n if (parsedData.documentFormat) { returnValue.documentFormat = parsedData.documentFormat; }\r\n if (parsedData.documentType) { returnValue.documentType = parsedData.documentType; }\r\n }\r\n return returnValue;\r\n }\r\n\r\n private getDefaultDocumentType = (): DocumentType => this.configuration.lookups.documentTypes.filter((dt) => dt.name.toLowerCase() === defaultDocumentType)[0];\r\n\r\n public getPassenger(jsonData): Passenger {\r\n let passenger: Passenger;\r\n if (jsonData) {\r\n passenger = jsonData;\r\n\r\n if (passenger.segments.length === 0) {\r\n this.defaultSegments(passenger);\r\n }\r\n else {\r\n for (let i = 0; i < passenger.segments.length; i++) {\r\n if (typeof passenger.segments[i].departureDate == \"string\") {\r\n passenger.segments[i].departureDate = moment(passenger.segments[i].departureDate);\r\n }\r\n }\r\n }\r\n\r\n if (passenger.documents.length === 0) {\r\n this.defaultDocument(passenger);\r\n } else {\r\n for (let i = 0; i < passenger.documents.length; i++) {\r\n if (typeof passenger.documents[i].expiry == \"string\") {\r\n passenger.documents[i].expiry = moment(passenger.documents[i].expiry);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n passenger = new Passenger();\r\n this.defaultSegments(passenger);\r\n this.defaultDocument(passenger);\r\n }\r\n return passenger;\r\n }\r\n\r\n private defaultSegments(passenger: Passenger) {\r\n let departureDate: Date = null,\r\n returnDate: Date = null;\r\n if (this.configuration.segmentDatesDefault) {\r\n departureDate = new Date();\r\n const m = moment().add(this.configuration.segmentDatesDefault, 'days');\r\n returnDate = m.toDate();\r\n }\r\n\r\n // This is a bit hacky with the cast issue\r\n passenger.segments.push(new Segment());\r\n passenger.segments[0].departureDate = moment(departureDate);\r\n passenger.segments[0].segmentOrdinal = 1;\r\n passenger.segments.push(new Segment());\r\n passenger.segments[1].departureDate = moment(returnDate);\r\n passenger.segments[1].segmentOrdinal = 2;\r\n }\r\n\r\n private defaultDocument(passenger: Passenger) {\r\n const passportDT: DocumentType = this.getDefaultDocumentType();\r\n passenger.documents.push(new Document());\r\n passenger.documents[0].documentType = passportDT;\r\n passenger.documents[0].expiry = moment().add(1, 'years');\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ErrorService } from '../utils/error.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpInterceptorService implements HttpInterceptor {\r\n constructor(private errorService: ErrorService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request)\r\n .pipe(catchError((error: HttpErrorResponse) => {\r\n let errorMessage = '';\r\n\r\n if (error.error instanceof ErrorEvent) {\r\n // This is a client side error\r\n errorMessage = `A client-side error was encountered: ${error.error.message}`;\r\n } else {\r\n // This is a server side error\r\n if (error.status === 401) {\r\n // auto logout if 401 response returned from api\r\n //this.authenticationService.logout();\r\n window.appInsights?.trackException(error);\r\n location.reload();\r\n }\r\n else {\r\n errorMessage = `Server responded with error: ${error.statusText}, error code: ${error.status}, message: ${error.message}, url: ${error.url}`;\r\n }\r\n }\r\n window.appInsights?.trackException({ error: new Error(errorMessage) });\r\n this.errorService.addError(new Error(\"An error occured contacting the server\"));\r\n return throwError(errorMessage);\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize, tap } from 'rxjs/operators';\nimport { LoaderService } from '../utils/loader.service';\n@Injectable({\n providedIn: 'root'\n})\nexport class HttploaderinteceptorService {\n\n constructor(private loaderService: LoaderService) { }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n const ajaxRequests: Array = ['getinterview', 'checkpassenger', 'getresult','submitfeedback'];\n // filter callback function\n const urlContains = (url: string): boolean => {\n for (let i = 0; i < ajaxRequests.length; i++) {\r\n if (url.toLowerCase().indexOf(ajaxRequests[i]) > -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\n\n // Only show the loader for ajax requests to methods in the array\n if (urlContains(request.url)) {\n return next.handle(request)\n .pipe(\n tap(() => {\n this.loaderService.show()\r\n }),\n finalize(() => this.loaderService.hide()));\r\n }\n else {\n return next.handle(request);\r\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\n\nimport {\r\n Passenger,\n InterviewQuestion,\r\n LibraryResult,\r\n Location,\r\n CheckResults,\r Lookups\n} from '../../../../models/traveldoc';\n\nimport {\r\n LibraryQuery\r\n} from '../../../../models/params';\n\r\nimport { ConfigurationService } from '../configuration/configuration.service';\r\nimport { FeedbackData } from '../../../../models/library/feedbackdata';\r\nimport { config } from 'rxjs';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FeedbackMessage } from '../../../../models/traveldoc/feedbackMessage';\r\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TravelDocAPIService {\n private readonly baseURL: string;\n private readonly infoPagesURL: string;\n private readonly getLocationsUrl: string;\n private lookups: Lookups;\n\n private readonly httpHeaders: HttpHeaders;\n\n constructor(private http: HttpClient,\n private configurationService: ConfigurationService) {\n\n\n this.baseURL = this.configurationService.configuration.baseUrl.replace(/\\/$/, '');\n this.lookups = this.configurationService.configuration.lookups;\n this.infoPagesURL = this.configurationService.configuration.infoPagesUrl;\n this.httpHeaders = new HttpHeaders({\n 'Content-Type': 'application/json',\r\n 'X-XSRF-TOKEN': this.configurationService.antiForgeryToken\n });\n\n this.getLocationsUrl = (configurationService.isLibrary) ? `//${this.baseURL}/library/rules/getlocations` : './getlocations';\n }\n\n //#region InfoPages Calls\n\n public async getHealth(icaoCode: string): Promise {\n return this.getHTML(`${this.infoPagesURL}/Health/${icaoCode}/Plain?language=${this.configurationService.configuration.selectedCulture}`);\n }\n\n public async getCustoms(icaoCode: string): Promise {\n return this.getHTML(`${this.infoPagesURL}/Customs/${icaoCode}/Plain?language=${this.configurationService.configuration.selectedCulture}`);\n }\n\n\n //#endregion\n\n\n //#region API Calls\n\n public async getInterviewAsync(passenger: Passenger): Promise> {\n return await this.http\r\n .post>('./getinterview' as const, passenger, { responseType: 'json' as const, headers: this.httpHeaders })\r\n .toPromise>();\r\n }\n\n public async submitFeedbackAsync(feedbackData: FeedbackData): Promise {\n await this.http\r\n .post(`./library/rules/submitfeedback` as const, feedbackData, { responseType: 'json' as const, headers: this.httpHeaders })\r\n .toPromise();\r\n }\n\n public async checkPassengerAsync(passenger: Passenger): Promise {\n return await this.http\r\n .post(`./checkpassenger` as const, passenger, { responseType: 'json' as const, headers: this.httpHeaders })\r\n .toPromise();\r\n }\n\n public async getResultsAsync(libraryQuery: LibraryQuery): Promise {\n return await this.http\r\n .post(`./library/rules/getresults` as const, libraryQuery, { responseType: 'json' as const, headers: this.httpHeaders })\r\n .toPromise();\r\n }\n\n public async getLocationsAsync(searchText: string): Promise> {\n return await this.http\r\n .post>(this.getLocationsUrl, JSON.stringify(searchText), { responseType: 'json' as const, headers: this.httpHeaders })\r\n .toPromise>();\r\n }\n\n public async submitPassengerViewFeedback(feedback: FeedbackMessage) {\n return await this.http\r\n .post('./submitFeedbackRequest' as const, feedback, { headers: this.httpHeaders })\r\n .toPromise();\r\n }\n\n public async logiVisaClick(iVisaUrl: string) {\n return await this.http\r\n .post('./LogIVisa' as const, JSON.stringify({ url: encodeURI(iVisaUrl) }), { responseType: 'json' as const, headers: this.httpHeaders })\r\n .toPromise();\r\n }\n\n\n //#endregion\n\n //#region private methods\n\n private async getHTML(url: string): Promise {\n return this.http.get(url, { responseType: 'text' })\r\n .toPromise();\r\n }\n\n //#endregion\n\n}\r\n","import { TranslateService, TranslateLoader, TranslateCompiler, TranslateParser, MissingTranslationHandler } from '@ngx-translate/core';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { availableLanguages } from '../../i18n/traveldoc.index';\r\nimport { mergeObjects } from '../../utility/merge';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClientTranslateService extends TranslateService implements TranslateService {\r\n\r\n private availableClients: Array = [];\r\n allowedLanguages: Array = [];\r\n currentClient: string;\r\n constructor(public currentLoader: TranslateLoader,\r\n public compiler: TranslateCompiler,\r\n public parser: TranslateParser,\r\n public missingTranslationHandler: MissingTranslationHandler) {\r\n super(null, currentLoader, compiler, parser, missingTranslationHandler, true, true, true, 'en');\r\n\r\n this.buildTranlations();\r\n }\r\n\r\n get languageCode(): string {\r\n return this.GetLanguageCode(this.currentLang || this.defaultLang);\r\n }\r\n\r\n get cultureCode(): string {\r\n return this.GetCultureCode(this.currentLang || this.defaultLang);\r\n }\r\n\r\n get clients(): Array {\r\n return this.availableClients;\r\n }\r\n\r\n\r\n private formatRootLanguage(language: string) {\r\n return this.GetLanguageCode(language);\r\n }\r\n\r\n private formatClientLanguage(language: string, client: string) {\r\n const languageCode = this.GetLanguageCode(language);\r\n return (client) ? `${languageCode}.${client}` : undefined;\r\n }\r\n\r\n private formatSpecificCulture(language: string) {\r\n const languageCode = this.GetLanguageCode(language);\r\n const cultureCode = this.GetCultureCode(language);\r\n return (cultureCode) ? `${languageCode}-${cultureCode}` : undefined;\r\n }\r\n\r\n private formatClientSpecificCulture(language: string, client: string) {\r\n const languageCode = this.GetLanguageCode(language);\r\n const cultureCode = this.GetCultureCode(language);\r\n return (cultureCode) ? `${languageCode}-${cultureCode}.${client}` : undefined;\r\n }\r\n\r\n buildTranlations() {\r\n const exceptions = ['zh-Hans', 'zh-Hant'];\r\n const language = this.currentLang || this.defaultLang;\r\n const client = this.currentClient;\r\n const itemsToMerge = [];\r\n const rootLanguageKey = this.formatRootLanguage(this.defaultLang);\r\n const specificLanguageKey = this.formatRootLanguage(this.currentLang);\r\n const clientLanguageKey = this.formatClientLanguage(language, client);\r\n const specificCultureKey = this.formatSpecificCulture(language);\r\n const clientSpecificCultureKey = this.formatClientSpecificCulture(language, client);\r\n\r\n let specificLanguage, specificLanguageAndClient, specificCulture, specificCultureAndClient;\r\n\r\n\r\n const defaultLanguage = availableLanguages[rootLanguageKey];\r\n if (!defaultLanguage) throwError('There must be a default language file present in the application');\r\n itemsToMerge.push(defaultLanguage);\r\n\r\n if (exceptions.indexOf(this.currentLang) === -1) {\r\n if (specificLanguageKey) {\r\n specificLanguage = availableLanguages[specificLanguageKey];\r\n if (specificLanguage !== undefined) {\r\n itemsToMerge.push(specificLanguage);\r\n }\r\n }\r\n\r\n if (clientLanguageKey) {\r\n specificLanguageAndClient = availableLanguages[clientLanguageKey];\r\n if (specificLanguageAndClient !== undefined) {\r\n itemsToMerge.push(specificLanguageAndClient);\r\n }\r\n }\r\n\r\n if (specificCultureKey) {\r\n specificCulture = availableLanguages[specificCultureKey];\r\n if (specificCulture !== undefined) {\r\n itemsToMerge.push(specificCulture);\r\n }\r\n }\r\n\r\n if (clientSpecificCultureKey) {\r\n specificCultureAndClient = availableLanguages[clientSpecificCultureKey];\r\n if (specificCultureAndClient !== undefined) {\r\n itemsToMerge.push(specificCultureAndClient);\r\n }\r\n }\r\n }\r\n else {\r\n specificLanguage = availableLanguages[this.currentLang];\r\n if (specificLanguage) {\r\n itemsToMerge.push(specificLanguage);\r\n }\r\n\r\n // In the case of chinese languages the process is slightly different helpfully being language-script[-culture]\r\n specificLanguageAndClient = availableLanguages[`${this.currentLang}.${this.currentClient}`];\r\n if (specificLanguageAndClient) {\r\n itemsToMerge.push(specificLanguageAndClient);\r\n }\r\n }\r\n\r\n const translation = mergeObjects({}, ...itemsToMerge);\r\n this.setTranslation(this.currentLang || this.defaultLang, translation, true);\r\n }\r\n\r\n\r\n use(lang: string): Observable {\r\n this.currentLang = lang;\r\n this.buildTranlations();\r\n return null;\r\n }\r\n\r\n setClient(client: string): Observable {\r\n if (client !== undefined && this.clients.indexOf(client) === -1) {\r\n throwError('Invalid client selection');\r\n }\r\n this.currentClient = client;\r\n return this.use(this.currentLang);\r\n }\r\n\r\n addClients(...args: Array) {\r\n this.availableClients.push(...args)\r\n }\r\n addLangs(langs: Array) {\r\n this.allowedLanguages = langs;\r\n super.addLangs(langs);\r\n }\r\n\r\n private GetCultureCode(language: string): string {\r\n if (language === undefined || language.length === 2) {\r\n return undefined\r\n }\r\n else {\r\n return language.split('-', 2)[1];\r\n }\r\n }\r\n\r\n private GetLanguageCode(language: string): string {\r\n if (language === undefined || language.length === 2) {\r\n return language\r\n }\r\n else {\r\n return language.split('-', 1)[0];\r\n }\r\n }\r\n\r\n public getParsedResult(translations: any, key: any, interpolateParams?: Object): any {\r\n return super.getParsedResult(translations, key, interpolateParams);\r\n }\r\n public get(key: string | Array, interpolateParams?: Object): Observable {\r\n return super.get(key, interpolateParams);\r\n }\r\n}\r\n","export { ConfigurationService } from './configuration/configuration.service';\r\nexport { HttpInterceptorService } from './http/http-interceptor.service';\r\nexport { HttploaderinteceptorService } from './http/http-loader-inteceptor.service';\r\nexport { TravelDocAPIService } from './http/travel-doc-api.service';\r\nexport { DataService } from './utils/data.service';\r\nexport { DataShimService } from './utils/data-shim.service';\r\nexport { ErrorService } from './utils/error.service';\r\nexport { LibraryDataService } from './utils/library-data.service';\r\nexport { LoaderService } from './utils/loader.service';\r\nexport { ObjectFormatterService } from './utils/object-formatter.service';\r\nexport { QueryStringHelperService } from './utils/query-string-helper.service';\r\n","import { Injectable, ErrorHandler } from '@angular/core';\nimport { ErrorService } from '../utils/error.service';\r\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GlobalErrorService extends ErrorHandler {\n\n constructor(private errorService: ErrorService) {\n super();\n }\n\n handleError(error: Error) {\r\n this.errorService.addError(error)\r\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationService } from '../configuration/configuration.service';\r\nimport { Location } from '../../../../models/traveldoc';\n\r\nclass CodeMapping {\n constructor(codes: Array, codeMapping: string) {\n this.codes = codes;\r\n this.codeMapping = codeMapping;\r\n }\n codes: Array;\r\n codeMapping: string;\r\n}\n\r\n\r\n@Injectable({\n providedIn: 'root'\n})\nexport class DataShimService {\n\n private readonly issuedBymappings: Array = [\n new CodeMapping([\"GBD\", \"GBO\", \"GBS\", \"GBP\", \"GBN\"], \"GBR\")\n ];\n\n constructor(private configurationService: ConfigurationService) {\n\n }\n\n mitigateNationality(location: Location): Location {\n if (location === undefined || location.countryDescription === undefined) {\r\n return undefined;\r\n }\n const result = this.configurationService.configuration.lookups.nationalities.filter((item: Location) => location.countryICAO === item.countryICAO);\r\n return (result.length) ? result[0] : undefined;\r\n }\n\n mitigateIssuingCountry(location: Location): Location {\n let returnLocation: Location;\n let locationsQueryResults: Array;\n if (location === undefined || location.countryDescription === undefined) {\r\n return;\r\n }\r\n const codesList: Array\r\n = this.issuedBymappings.map((item: CodeMapping) => {\r\n if (item.codes.indexOf(location.countryICAO) > -1) {\r\n return item.codeMapping;\r\n }\r\n }).filter((value: string) => (value));\r\n\r\n\r\n\r\n if (codesList.length !== 1) {\r\n locationsQueryResults = this.configurationService.configuration.lookups.issuingAuthorities.filter((item: Location) => location.countryICAO === item.countryICAO);\r\n }\r\n else {\r\n locationsQueryResults = this.configurationService.configuration.lookups.issuingAuthorities.filter((item: Location) => codesList[0] === item.countryICAO);\r\n }\r\n\r\n if (locationsQueryResults && locationsQueryResults.length) {\r\n returnLocation = locationsQueryResults[0];\r\n }\r\n\r\n return returnLocation;\r\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Passenger, CheckResults, DocumentType } from '../../../../models/traveldoc';\r\n\r\n@Injectable({\n providedIn: 'root'\n})\nexport class DataService {\n passenger: Passenger;\n results: CheckResults;\n}\n","import { Injectable } from '@angular/core';\nimport { interval, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorService {\n\n\n private errors: Array;\n\n private tick: boolean;\n\n private readonly seconds = interval(5000);\n\n $error: Observable;\n\n constructor() {\n this.tick = true;\n this.errors = new Array();\n this.$error = this.seconds\n // only tick when we have messages to remove\n .pipe(filter(() => this.tick),\n map(() => {\n let error: Error = null;\n if (this.errors.length > 0) {\n error = this.errors[0];\n this.errors.shift();\n }\n else {\n this.tick = false;\n }\n return error;\n }));\n }\n\n addError(error: Error) {\n //console.log('an error occured',error);\n this.errors.push(error);\n this.tick = true;\n\n }\n\n removeError() {\n this.errors.pop();\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observer, Observable, } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { LibraryResult, Rule, RuleCategory, LibraryQuery, Tag, DisplayLinks, Location, Lookups } from '../../../../models/traveldoc';\r\nimport { FilterValues, ConstraintRule, PriorityRule, InputValues } from '../../../../models/library';\r\nimport { ConfigurationService } from '../configuration/configuration.service';\r\nimport { TravelDocAPIService } from '../http/travel-doc-api.service';\r\nimport { ObjectFormatterService } from './object-formatter.service';\r\nimport { QueryStringHelperService } from './query-string-helper.service';\r\nimport { ErrorService } from './error.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ClientTranslateService } from '../i18n/client.translate.service';\r\n\r\n\r\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LibraryDataService {\n\n\n lookups: Lookups;\n\n readonly clientTranslateService: ClientTranslateService;\n\n private lastDestination: Location;\n\n constraintCount$: Observable;\n private constraintCountObserver: Observer;\n\n private libraryResult$: Observable;\n private libraryResultObserver: Observer;\n\n private _libraryResult: LibraryResult;\n private set libraryResult(value: LibraryResult) {\n this._libraryResult = value;\r\n if (value === null) {\r\n this.priortiyRules = null;\r\n this.filteredRules = null;\r\n this.tags = null;\r\n this.displayLinks = null;\r\n }\r\n if (this.libraryResultObserver) {\r\n this.libraryResultObserver.next(this._libraryResult);\r\n }\r\n }\n private get libraryResult(): LibraryResult { return this._libraryResult; }\n\n private filteredRulesObserver: Observer>;\n private _filteredRules: Array\n private set filteredRules(value: Array) {\n this._filteredRules = value;\n if (this.filteredRulesObserver) {\n this.filteredRulesObserver.next(this._filteredRules);\r\n }\n }\n private get filteredRules(): Array { return this._filteredRules; }\n\n private priortiyRulesObserver: Observer>;\n private _priortiyRules: Array = new Array();\n private set priortiyRules(value: Array) {\n this._priortiyRules = value;\n if (this.priortiyRulesObserver) {\n this.priortiyRulesObserver.next(this._priortiyRules);\r\n }\n }\n\n private tagsObserver: Observer>;\n private _tags: Array = new Array();\n private set tags(value: Array) {\n this._tags = value;\n if (this.tagsObserver) {\n this.tagsObserver.next(this._tags);\r\n }\n }\n private get tags(): Array { return this._tags; }\n\n\n private displayLinksObserver: Observer;\n private _displayLinks: DisplayLinks = new DisplayLinks();\n private set displayLinks(value: DisplayLinks) {\n this._displayLinks = value;\n if (this.displayLinksObserver) {\n this.displayLinksObserver.next(this._displayLinks);\r\n }\n }\n private get displayLinks(): DisplayLinks { return this._displayLinks; }\n\n constructor(private configurationService: ConfigurationService,\n private errorService: ErrorService,\n private travelDocApiService: TravelDocAPIService,\n private objectFomratterService: ObjectFormatterService,\n private querystringHelperService: QueryStringHelperService,\n private translateService: TranslateService) {\n this.lookups = configurationService.configuration.lookups;\n this.filteredRules = new Array();\n\n // Listen for library results data\n this.libraryResult$ = new Observable((observer) => this.libraryResultObserver = observer);\r\n this.constraintCount$ = new Observable((oberver) => this.constraintCountObserver = oberver);\r\n this.clientTranslateService = this.translateService as ClientTranslateService;\r\n\r\n \r\n\r\n // set up a pipe to convert the results to a useful format\r\n this.libraryResult$\r\n .subscribe(async (results: LibraryResult) => {\r\n try {\r\n if (results) {\r\n const rules: Array = results.rules;\r\n const tags: Array = results.tags;\r\n\r\n // build rules results\r\n if (rules && rules.length) {\r\n this.filteredRules = rules.filter(r => r.ruleCategory === RuleCategory.Constraint).map((r) => this.objectFomratterService.getConstraintRule(r, this.lookups.countryGroups));\r\n this.priortiyRules = this.objectFomratterService.getPriorityRules(rules);\r\n } else {\r\n this.filteredRules = [];\r\n this.priortiyRules = [];\r\n }\r\n // Update the rule count\r\n this.constraintCountObserver.next(this.filteredRules.length);\r\n\r\n // Process tags\r\n if (tags && tags.length) {\r\n this.tags = tags;\r\n }\r\n else {\r\n this.tags = [];\r\n }\r\n\r\n // Set up customs and health data\r\n this.displayLinks = this.objectFomratterService.getDisplayLinks(this.lastDestination, results);\r\n }\r\n } catch (e) {\r\n window.appInsights?.trackException(e);\r\n this.errorService.addError(new Error('An error occured processing the returned rules.'));\r\n }\r\n });\r\n }\n\n bindInputs($inputValues: Observable) {\n $inputValues.pipe(debounceTime(500)).subscribe(async (input) => {\r\n try {\r\n const lq: LibraryQuery = {\r\n destination: input.destination || null,\r\n origin: input.originLocation || null,\r\n documentFormat: input.documentFormat || null,\r\n documentType: input.documentType || null,\r\n issuingCountry: input.issuingCountry || null,\r\n nationality: input.nationality || null\r\n };\r\n // Send event to the header link\r\n this.querystringHelperService.queryStringChanged(this.querystringHelperService.getQueryStringFromInputs(input));\r\n\r\n if (lq.destination !== null) {\r\n this.lastDestination = lq.destination;\r\n\r\n this.libraryResult = await this.travelDocApiService.getResultsAsync(lq);\r\n\r\n\r\n }\r\n else {\r\n this.libraryResult = null;\r\n }\r\n } catch (e) {\r\n window?.appInsights.trackException(e);\r\n this.libraryResult = null;\r\n const error: Error = new Error(await this.clientTranslateService.get('services.libraryDataService.errorGettingRules').toPromise());\r\n this.errorService.addError(error)\r\n }\r\n });\r\n }\n\n initialiseData() {\n try {\r\n if (this.configurationService.libraryResult && this.configurationService.libraryResult.rules) {\n // If we have init data then set it\n this.querystringHelperService.queryStringChanged(this.querystringHelperService.getQueryStringFromInputs(this.configurationService.inputValues));\n this.lastDestination = this.configurationService.inputValues.destination;\n this.libraryResult = this.configurationService.libraryResult;\n this.priortiyRules = this.objectFomratterService.getPriorityRules(this.configurationService.libraryResult.rules);\n }\r\n } catch (e) {\r\n window.appInsights?.trackException(e);\r\n this.errorService.addError(new Error('failed to initialise the library rules.'));\r\n }\n }\n\n bindFilters($filterValue: Observable) {\n $filterValue.subscribe(async (filter) => {\r\n\r\n\r\n // Search through the rules and see if we can match any text in the rule text\r\n const textCheck: (value: Rule) => boolean = (value: Rule) => {\r\n // Calculate the rule we are searching ( a bit inefficient but until we have a performance issue it's easier);\r\n const constraintRule: ConstraintRule = this.objectFomratterService.getConstraintRule(value, this.configurationService.configuration.lookups.countryGroups);\r\n const plainText = constraintRule.text.replace(/<[^>]*>?/gm, '').toLowerCase(); // strip any HTML tags\r\n return (\r\n (\r\n\r\n plainText.indexOf(filter.searchText.toLowerCase()) > -1 ||\r\n constraintRule.title.toLowerCase().indexOf(filter.searchText.toLowerCase()) > -1 ||\r\n constraintRule.appliesTo.toLowerCase().indexOf(filter.searchText.toLowerCase()) > -1 ||\r\n constraintRule.appliesToText.toLowerCase().indexOf(filter.searchText.toLowerCase()) > -1\r\n )\r\n &&\r\n value.ruleCategory === RuleCategory.Constraint); // only return constraints for filter\r\n };\r\n\r\n const tagCheck = (filterTags: Array, ruleTags: Array) => {\r\n if (filterTags.length === 0) {\r\n return true;\r\n }\r\n if (!ruleTags.length) {\r\n return false;\r\n }\r\n let result = false;\r\n\r\n for (let indexFilterTag = 0; indexFilterTag < filterTags.length; indexFilterTag++) {\r\n // Keep a running total of all the match filters. if we reach the same count as the filters\r\n // the tag contains them all so return true to select a matched rule\r\n let matchCount = 0;\r\n for (let indexRuleTag = 0; indexRuleTag < ruleTags.length; indexRuleTag++) {\r\n if (filterTags[indexFilterTag].name === ruleTags[indexRuleTag].name) {\r\n matchCount++;\r\n break;\r\n }\r\n }\r\n if (matchCount === filterTags.length) {\r\n result = true;\r\n break;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n // Combine the things that we want to check (could possibly build this a bit Linqey with currying)\r\n const check = (rule: Rule) => {\r\n return tagCheck(filter.filterTags, rule.tags) &&\r\n textCheck(rule);\r\n };\r\n try {\r\n // Update the filtered rules list\r\n if (this.libraryResult) {\r\n this.filteredRules = this.libraryResult.rules.filter(check).map((r) => this.objectFomratterService.getConstraintRule(r, this.lookups.countryGroups));\r\n }\r\n } catch (e) {\r\n window.appInsights?.trackException(e);\r\n this.errorService.addError(new Error('filtering rules.'));\r\n }\r\n });\n }\n\n attatchFilteredRulesWatch(filteredRulesObserver: Observer>) {\n this.filteredRulesObserver = filteredRulesObserver;\n }\n\n attatchPriorityRules(priortiyRulesObserver: Observer>) {\n this.priortiyRulesObserver = priortiyRulesObserver;\n }\n\n attatchTags(tagsObserver: Observer>) {\n this.tagsObserver = tagsObserver;\n }\n\n attachDisplayLinks(displayLinksObserver: Observer) {\n this.displayLinksObserver = displayLinksObserver;\r\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\r\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoaderService {\n isLoading = new Subject();\n show() {\n this.isLoading.next(true);\n }\n hide() {\n this.isLoading.next(false);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { DisplayGroup } from '../../../../models/display/displaygroup';\r\nimport {\r\n Segment,\r\n Location,\r\n CheckResult,\r\n DisplayLinks,\r\n RuleCategory,\r\n Rule,\r\n LibraryResult,\r\n Link,\r\n Operator,\r\n CountryGroup,\r\n LocationType,\r\n InterviewQuestion,\r\n Passenger\r\n} from '../../../../models/traveldoc';\r\nimport { FilterValues, ConstraintRule, PriorityRule, InputValues } from '../../../../models/library';\r\nimport { FeedbackData } from '../../../../models/library/feedbackdata';\r\nimport { ConfigurationService } from '../configuration/configuration.service';\r\nimport { DisplayCheckResult } from '../../../../models/display/displaycheckresult';\r\nimport { PriorityItem } from '../../../../models/display/prioirtyitem';\r\nimport { MessageLevel } from '../../../../models/enum/messagelevel';\r\nimport { ResultStatus } from '../../../../models/enum/resultstatus';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ObjectFormatterService {\r\n\r\n constructor(private configurationService: ConfigurationService) {\r\n\r\n }\r\n\r\n generateQuestionDisplayGroups(segments: Array, interviewQuestions: Array): Array> {\r\n const results: Array> = new Array>();\r\n const matcher = (segment: Segment, questions: Array): Array => {\r\n const matchedQuestions = questions.filter((value: InterviewQuestion) => value.segmentOrdinal === segment.segmentOrdinal);\r\n return matchedQuestions || [];\r\n };\r\n\r\n segments.forEach(s => {\r\n const dg: DisplayGroup = new DisplayGroup();\r\n dg.items = matcher(s, interviewQuestions);\r\n dg.from = this.getSegmentMessageTitle(s.origin);\r\n dg.to = this.getSegmentMessageTitle(s.destination);\r\n dg.date = s.departureDate;\r\n dg.segmentOrdinal = s.segmentOrdinal;\r\n dg.fromDescription = this.getSegmentMessageDescription(s.origin);\r\n dg.toDescription = this.getSegmentMessageDescription(s.destination);\r\n if (dg.items && dg.items.length) {\r\n results.push(dg);\r\n }\r\n })\r\n return results;\r\n }\r\n\r\n async generateResultDisplayGroups(passenger: Passenger, results: Array): Promise>> {\r\n //const covidMessageCodes = ['9104', //Covid-19 Warning\r\n // '9105', // PCR Test Required\r\n // '9106', // Health Form Required\r\n // '9107', // Passenger Locator Form Required\r\n // '9108', // Authorisation Required\r\n // '9109', // Insurance Required\r\n // '9110', // Quarantine Required​\r\n // '9111', // Vaccination required\r\n // '9112', // Entry is not permitted due to Covid-19\r\n // '9113', // Masks are required\r\n // '9114' //Vaccination definition (TBC)\r\n //];\r\n\r\n\r\n const displayGroupResults: Array> = new Array>();\r\n const segments = passenger.segments;\r\n //let previousSegment: Segment;\r\n for (const segment of segments) {\r\n for (const result of results) {\r\n const displayCheckResult = new DisplayCheckResult();\r\n\r\n\r\n // Set the initial message lists to be filtered as we progress\r\n displayCheckResult.level1Messages = result.level1Messages;\r\n displayCheckResult.level2Messages = result.level2Messages;\r\n displayCheckResult.iVisaLink = result.iVisaLink;\r\n\r\n if (result.segmentOrdinal === segment.segmentOrdinal) {\r\n /*displayCheckResult.segmentOrdinal = segment.segmentOrdinal;*/\r\n \r\n const displayGroup: DisplayGroup = new DisplayGroup();\r\n displayCheckResult.status = result.status;\r\n displayGroup.from = this.getSegmentMessageTitle(segment.origin);\r\n displayGroup.to = this.getSegmentMessageTitle(segment.destination);\r\n displayGroup.date = segment.departureDate;\r\n displayGroup.segmentOrdinal = segment.segmentOrdinal;\r\n displayGroup.fromDescription = this.getSegmentMessageDescription(segment.origin);\r\n displayGroup.toDescription = this.getSegmentMessageDescription(segment.destination);\r\n\r\n displayGroup.items.push(displayCheckResult);\r\n displayGroupResults.push(displayGroup);\r\n }\r\n }\r\n }\r\n\r\n\r\n return displayGroupResults;\r\n }\r\n\r\n\r\n getLinksObject(checkResult: CheckResult, segment: Segment): DisplayLinks {\r\n const links: DisplayLinks = new DisplayLinks();\r\n links.location = segment.destination;\r\n links.otherResources = this.getLinkHTML(checkResult.links);\r\n return links;\r\n }\r\n\r\n getCountryShortDescription(location: Location): string {\r\n return this.getSegmentMessageTitle(location);\r\n }\r\n\r\n getRules(rules: Array): Array {\r\n return rules.filter(r => r.ruleCategory === RuleCategory.Constraint);\r\n }\r\n\r\n getPriorityRules(rules: Array): Array {\r\n const priorityRulesAsRules: Array = rules.filter(r => r.ruleCategory != RuleCategory.Constraint),\r\n returnCollection: Array = new Array();\r\n\r\n for (const rule of priorityRulesAsRules) {\r\n const priorityRule: PriorityRule = new PriorityRule(rule.ruleCategory, rule.ruleText);\r\n returnCollection.push(priorityRule);\r\n }\r\n return returnCollection;\r\n }\r\n\r\n getConstraintRule(rule: Rule, countryGroups: Array): ConstraintRule {\r\n const cr: ConstraintRule = new ConstraintRule();\r\n cr.title = rule.ruleID;\r\n cr.text = rule.ruleText;\r\n cr.appliesTo = this.getAppliesToTitle(rule);\r\n cr.appliesToText = this.getAppliesToText(rule, countryGroups);\r\n cr.rule = rule;\r\n return cr;\r\n }\r\n\r\n getDisplayLinks(location: Location, libraryResult: LibraryResult): DisplayLinks {\r\n const returnValue: DisplayLinks = new DisplayLinks();\r\n returnValue.location = location;\r\n returnValue.otherResources = this.getLinkHTML(libraryResult.links);\r\n return returnValue;\r\n }\r\n\r\n\r\n getFeedbackData(userComments: string, rule: ConstraintRule, inputValues: InputValues, filterValues: FilterValues): FeedbackData {\r\n const inputValuesInstance = Object.create(InputValues.prototype);\r\n Object.assign(inputValuesInstance, inputValues);\r\n const inputData = inputValuesInstance.toFeedbackJSON();\r\n const ruleData = rule.toFeedbackJSON();\r\n const filterData = filterValues.toFeedbackJSON();\r\n const userData = this.configurationService.configuration.user.toFeedbackJSON();\r\n const data: FeedbackData = {\r\n submittedAt: new Date(),\r\n website: this.configurationService.configuration.baseUrl,\r\n userComments: userComments,\r\n ...ruleData,\r\n ...inputData,\r\n ...filterData,\r\n ...userData\r\n };\r\n return data;\r\n }\r\n\r\n private getLinkHTML(links: Array): string {\r\n let returnString = '';\r\n // 1.) Get the groups\r\n let categories: Array = links.map((value: Link): string => {\r\n return value.categoryName;\r\n });\r\n\r\n // 2.) Get the links by group\r\n if (categories) {\r\n // Get unique categories\r\n categories = categories.filter((item, i, ar) => ar.indexOf(item) === i);\r\n categories.forEach((catName: string) => {\r\n const catLinks = links.filter((link: Link) => link.categoryName === catName)\r\n if (catLinks) {\r\n catLinks.forEach((catLink: Link) => {\r\n returnString += `
  • ${catLink.name}
  • `\r\n })\r\n }\r\n });\r\n }\r\n\r\n return (returnString) ? `
      ${returnString}
    ` : null;\r\n }\r\n\r\n private getSegmentMessageTitle(location: Location): string {\r\n if (typeof location !== \"object\") {\r\n window.appInsights.trackEvent({ name: \"getSegmentMessageTitle Non object location\", properties: { \"locationData\": JSON.stringify(location), \"locationType\": typeof location } });\r\n return \"Invalid Location Object\";\r\n }\r\n return (location.type === LocationType.Country|| location.type === LocationType.IssuingCountry) ? `${location.countryDescription} - ${location.locationICAO}` : location.locationDescription;\r\n }\r\n\r\n private getSegmentMessageDescription(location: Location): string {\r\n return (location.type === LocationType.Country) ? '' : `${location.countryDescription}`;\r\n }\r\n\r\n private getAppliesToText(rule: Rule, countryGroups: Array): string {\r\n let returnValue = '';\r\n\r\n if (!rule.nationalitySmartMessages.length) {\r\n returnValue = 'All Nationalities';\r\n }\r\n else {\r\n for (const message of rule.nationalitySmartMessages) {\r\n if (countryGroups.map((cg) => (cg) ? cg.name : '').indexOf(message) > -1) {\r\n returnValue += `

    Country Group${message}

    `;\r\n }\r\n else {\r\n returnValue += `

    ${message}

    `;\r\n }\r\n }\r\n }\r\n return returnValue;\r\n }\r\n\r\n private getAppliesToTitle(rule: Rule): string {\r\n return (rule.nationalityOperator === Operator.In) ? \"Applies to\" : \"Applies to all except\";\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Passenger, Segment, Document, DocumentType, LocationType } from '../../../../models/traveldoc';\r\nimport * as moment from 'moment';\r\nimport { ConfigurationService } from '../configuration/configuration.service';\r\nimport { InputValues } from '../../../../models/library';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QueryStringHelperService {\r\n private processedResultsQueryString = false;\r\n private baseURL: string;\r\n private documentTypes: Array;\r\n private readonly contifurationService: ConfigurationService;\r\n constructor(private configurationService: ConfigurationService) {\r\n this.configurationService = configurationService;\r\n this.baseURL = configurationService.configuration.baseUrl;\r\n this.documentTypes = configurationService.configuration.lookups.documentTypes;\r\n }\r\n\r\n private emitQueryChangeSource = new Subject();\r\n // Observable string streams\r\n changeEmitted$ = this.emitQueryChangeSource.asObservable();\r\n // Service message commands\r\n queryStringChanged(change: string) {\r\n this.emitQueryChangeSource.next((change) ? encodeURIComponent(change):undefined);\r\n }\r\n\r\n\r\n getQueryStringFromPassenger(passenger: Passenger): string {\r\n let returnString = '';\r\n try {\r\n returnString = this.getRawQueryStringFromPassenger(passenger);\r\n returnString = `${this.baseURL}?${returnString}`;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n return returnString;\r\n }\r\n\r\n getRawQueryStringFromPassenger(passenger: Passenger): string {\r\n let returnString = '';\r\n let first = true;\r\n\r\n // Inline Helper function for querystring\r\n const getPrefix = () => {\r\n const prefix = (first) ? '' : '&';\r\n first = false;\r\n return prefix;\r\n }\r\n\r\n try {\r\n for (const segment of passenger.segments) {\r\n const segString = this.formatSegment(segment);\r\n if (segString) {\r\n returnString += `${getPrefix()}${segString}`;\r\n }\r\n }\r\n for (const document of passenger.documents) {\r\n const docString = this.formatDocument(document);\r\n if (docString) {\r\n returnString += `${getPrefix()}${docString}`;\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n return returnString;\r\n }\r\n\r\n\r\n private formatSegment(segment: Segment): string {\r\n let segmentString = '';\r\n\r\n if (!segment.origin || !segment.destination) {\r\n return segmentString;\r\n }\r\n\r\n if (segment.origin.type === LocationType.Airport && segment.destination.type === LocationType.Airport) {\r\n // Both airports is OK\r\n segmentString = `S=${segment.segmentOrdinal}|${segment.origin.locationICAO}|${segment.destination.locationICAO}|${this.formatDate(segment.departureDate)}`;\r\n }\r\n else {\r\n // Both countries is OK\r\n segmentString = `SC=${segment.segmentOrdinal}|${segment.origin.countryICAO}|${segment.destination.countryICAO}|${this.formatDate(segment.departureDate)}`;\r\n }\r\n return segmentString;\r\n }\r\n\r\n getQueryStringFromInputs(inputValues: InputValues): string {\r\n let returnValue = '';\r\n // Get a defaulted passenger so we use consistent dates for defaulting the segments\r\n const passenger: Passenger = this.buildPassengerFromInputValues(inputValues);\r\n returnValue = this.getRawQueryStringFromPassenger(passenger);\r\n return returnValue;\r\n }\r\n\r\n private buildPassengerFromInputValues(inputValues: InputValues): Passenger {\r\n const defaultPassenger: Passenger = this.configurationService.getPassenger(undefined);\r\n const outSegment: Segment = defaultPassenger.segments[0];\r\n const returnSegment: Segment = defaultPassenger.segments[1];\r\n const document: Document = defaultPassenger.documents[0];\r\n if (inputValues.destination) {\r\n outSegment.destination = inputValues.destination;\r\n returnSegment.origin = inputValues.destination;\r\n }\r\n if (inputValues.originLocation) {\r\n outSegment.origin = inputValues.originLocation;\r\n returnSegment.destination = inputValues.originLocation;\r\n }\r\n else {\r\n if (inputValues.nationality) {\r\n if (!outSegment.origin) {\r\n outSegment.origin = inputValues.nationality;\r\n }\r\n if (!returnSegment.destination) {\r\n returnSegment.destination = inputValues.nationality;\r\n }\r\n }\r\n }\r\n // Provide default segment date values if note are present\r\n if (!defaultPassenger.segments[0].departureDate) {\r\n let departureDate: Date = null,\r\n returnDate: Date = null;\r\n departureDate = new Date();\r\n const m = moment().add(this.configurationService.configuration.segmentDatesDefault || 14, 'days');\r\n returnDate = m.toDate();\r\n\r\n outSegment.departureDate = moment(departureDate);;\r\n returnSegment.departureDate = moment(returnDate);\r\n }\r\n\r\n\r\n if (inputValues.documentType) {\r\n document.documentType = inputValues.documentType;\r\n }\r\n if (inputValues.documentFormat) {\r\n document.documentFormat = inputValues.documentFormat;\r\n }\r\n if (inputValues.issuingCountry) {\r\n document.issuingCountry = inputValues.issuingCountry;\r\n }\r\n if (inputValues.nationality) {\r\n document.nationality = inputValues.nationality;\r\n }\r\n\r\n return defaultPassenger;\r\n }\r\n\r\n private formatDocument(document: Document): string {\r\n\r\n let formattedDocument = ''\r\n if (typeof document === \"string\" ||\r\n !document ||\r\n !document.documentType ||\r\n !document.issuingCountry ||\r\n !document.nationality ||\r\n !document.expiry) {\r\n return formattedDocument;\r\n }\r\n const dtid: number = document.documentType.documentTypeId;\r\n formattedDocument = `D=${dtid}|${document.issuingCountry.countryICAO}|${document.nationality.countryICAO}|${this.formatDate(document.expiry)}`;\r\n return formattedDocument;\r\n }\r\n\r\n private formatDate(date: moment.Moment): string {\r\n let formattedDate: string = ''\r\n if(moment.isDate(date))\r\n {\r\n date = moment(date);\r\n }\r\n\r\n if(moment.isMoment(date)){\r\n return date.format('YYYY-MM-DD')\r\n }\r\n return formattedDate ;\r\n }\r\n\r\n private getParameterByName(name: string, url: string) {\r\n if (!url) url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n }\r\n\r\n public get showResults(): boolean {\r\n if (this.processedResultsQueryString) {\r\n return false;\r\n }\r\n this.processedResultsQueryString = true;\r\n const queryValue = this.getParameterByName('results', window.location.href.toLowerCase());\r\n return (queryValue && queryValue.toLowerCase() === 'true');\r\n }\r\n\r\n}\r\n","import { Input, Output, EventEmitter, ViewChild, ElementRef, Directive } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { FormGroup } from '@angular/forms';\r\nimport {\r\n TravelDocAPIService,\r\n ConfigurationService\r\n} from '../../../services';\r\nimport { FocusNextBase } from '../base/focusnextbase';\r\n\r\n\r\n\r\n@Directive()\r\nexport abstract class AbstractAutocompleteComponent extends FocusNextBase {\r\n\r\n filteredOptions: Observable>;\r\n isLoading = false;\r\n\r\n\r\n\r\n private _selectedItem: T | string;\r\n get selectedItem(): T | string {\r\n return this._selectedItem;\r\n }\r\n @Input() set selectedItem(value: T | string) {\r\n if (this._selectedItem !== value) {\r\n this._selectedItem = value;\r\n if (this.parentForm !== undefined) {\r\n this.parentForm.controls[this.controlName].setValue(value)\r\n }\r\n }\r\n }\r\n\r\n @Input() public items: Array;\r\n\r\n @Input() public placeholder: string;\r\n\r\n @Input() public controlName: string;\r\n\r\n @Output() public changedEvent = new EventEmitter();\r\n\r\n @Input() public parentForm: FormGroup;\r\n\r\n @ViewChild('autocompleteInput', { static: false }) autoCompleteInput: ElementRef;\r\n\r\n constructor(protected travelDocAPIService: TravelDocAPIService,\r\n protected configurationService: ConfigurationService) {\r\n super();\r\n }\r\n \r\n clear = () => this.parentForm.controls[this.controlName].setValue(undefined);\r\n\r\n}\r\n","import { delay } from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\n\r\nexport class FocusNextBase {\r\n\r\n readonly tabDelay: number = 100;\r\n\r\n public constructor() { }\r\n\r\n focusNext(currentInput: HTMLElement) {\r\n const example = of(null);\r\n let nInput: HTMLElement = null,\r\n itterationInput: HTMLElement;\r\n example.pipe(delay(this.tabDelay))\r\n .subscribe(() => {\r\n const inputs = document.getElementsByTagName('input');\r\n for (let i = 0; i < inputs.length; i++) {\r\n itterationInput = inputs[i];\r\n if (itterationInput && currentInput && itterationInput.id === currentInput.id) {\r\n if (inputs.length > i) {\r\n nInput = inputs[i + 1];\r\n }\r\n break;\r\n }\r\n }\r\n if (nInput) {\r\n nInput.focus(); // Focus on the next element\r\n }\r\n })\r\n }\r\n\r\n}\r\n","import { FormGroup } from '@angular/forms';\r\nimport { Input, Directive } from '@angular/core';\r\nimport { FocusNextBase } from './focusnextbase';\r\n\r\n@Directive()\nexport class ItemBase extends FocusNextBase {\r\n\r\n form: FormGroup;\n @Input() controlPrefix: number;\r\n // wrapper function prevents setting the selected value to the input text\n protected checkWrapper = ((value: any, callback: Function): void => { if (typeof value != 'string') callback(); });\r\n\r\n public getControlName = (name: string): string => `${this.controlPrefix}_${name}`;\n\r\n}\r\n","import { NgModule, LOCALE_ID, ErrorHandler } from '@angular/core';\nimport { VendorsModule } from '../../../vendors/src/public_api';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { NoSanitizePipe, HighlightPipe, MomentPipe } from '../../pipes';\nimport {\n QuestionAutocompleteComponent,\n LocationsAutocompleteComponent,\n DocumentTypeAutocompleteComponent,\n DocumentFormatAutocompleteComponent,\n ErrorComponent,\n SelectLanguageComponent,\n SiteFooterComponent,\n LoadingComponent,\n ResultsCountryPageComponent,\n SiteHeaderComponent\n} from './';\nimport { SlideDownComponent } from './slide-down/slide-down.component';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { ClientTranslateService } from '../../../common/services/i18n/client.translate.service';\nimport { ConfigurationService, TravelDocAPIService, QueryStringHelperService, ObjectFormatterService, DataShimService, ErrorService, LoaderService, HttploaderinteceptorService, HttpInterceptorService } from '../../services';\n// Register supported locales \nimport { registerLocaleData } from '@angular/common';\nimport localeEn from '@angular/common/locales/en';\nimport localeEnExtra from '@angular/common/locales/extra/en';\nimport localeZhHans from '@angular/common/locales/zh-Hans'; // simplified\nimport localeZhHansExtra from '@angular/common/locales/extra/zh-Hans';\nimport localeZhHant from '@angular/common/locales/zh-Hant'; \nimport localeZhHantExtra from '@angular/common/locales/extra/zh-Hant';\nimport { matCalendarFormats } from '../../i18n/calendar-formats.index';\nimport momentLocaleZhHant from '../../i18n/moment.zh-Hant';\nimport momentLocaleZhHans from '../../i18n/moment.zh-Hans';\nimport moment from 'moment';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { languageLookup } from '../../i18n/language.lookup';\nimport { GlobalErrorService } from '../../services/logging/global-error.service';\r\n\nmoment.fn.toJSON = function () {return this.format('YYYY-MM-DD') + 'T00:00:00.000Z'; }\n\nregisterLocaleData(localeEn, 'en', localeEnExtra);\nregisterLocaleData(localeZhHans, 'zh-Hans', localeZhHansExtra);\nregisterLocaleData(localeZhHant, 'zh-Hant', localeZhHantExtra);\nmoment.defineLocale('zh-Hans', momentLocaleZhHans as object);\nmoment.defineLocale('zh-Hant', momentLocaleZhHant as object);\n\nconst culture = window['td']['selectedCulture'];\nmoment.locale(culture);\n\n\n@NgModule({\n providers: [\n TravelDocAPIService,\r\n QueryStringHelperService,\r\n ObjectFormatterService,\r\n ConfigurationService,\r\n DataShimService,\r\n ErrorService,\r\n LoaderService,\r\n { provide: HTTP_INTERCEPTORS, useClass: HttploaderinteceptorService, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: HttpInterceptorService, multi: true },\n { provide: LOCALE_ID, useValue: culture },\n { provide: MAT_DATE_LOCALE, useValue: culture, deps: [MAT_DATE_LOCALE] },\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\n { provide: MAT_DATE_FORMATS, useValue: matCalendarFormats[culture] },\n { provide: TranslateService, useClass: ClientTranslateService },\n { provide: ErrorHandler, useClass: GlobalErrorService },\n ],\n declarations: [\n LocationsAutocompleteComponent,\n QuestionAutocompleteComponent,\n DocumentTypeAutocompleteComponent,\n DocumentFormatAutocompleteComponent,\n ErrorComponent,\n SelectLanguageComponent,\n SiteFooterComponent,\n LoadingComponent,\n ResultsCountryPageComponent,\n SiteHeaderComponent,\n //************* PIPES\n NoSanitizePipe,\n HighlightPipe,\n SlideDownComponent,\n MomentPipe\n \n ],\n imports: [\n VendorsModule,\n TranslateModule.forRoot(),\n ],\n exports: [\n VendorsModule,\n TranslateModule,\n //************* COMPONENTS\n QuestionAutocompleteComponent,\n LocationsAutocompleteComponent,\n DocumentTypeAutocompleteComponent,\n DocumentFormatAutocompleteComponent,\n ErrorComponent,\n SelectLanguageComponent,\n SiteFooterComponent,\n LoadingComponent,\n ResultsCountryPageComponent,\n SiteHeaderComponent,\n SlideDownComponent,\n //************* PIPES\n NoSanitizePipe,\n HighlightPipe,\n MomentPipe\n \n ]\n})\nexport class CommonModule {\n constructor(private translateService: TranslateService) {\n const clientTranslateService = this.translateService as ClientTranslateService;\n clientTranslateService.addClients(window['td']['skin']);\n clientTranslateService.addLangs(languageLookup.map(c => c.cultureCode));\n clientTranslateService.setDefaultLang('en');\n clientTranslateService.use(window['td']['selectedCulture']);\n clientTranslateService.setClient(window['td']['skin']);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { startWith, map } from 'rxjs/operators';\r\nimport { DocumentFormat } from '../../../../../models/traveldoc';\nimport { AbstractAutocompleteComponent } from '../abstract.autocomplete/abstract.autocomplete.component';\nimport { TravelDocAPIService } from '../../../services/http/travel-doc-api.service';\r\nimport { ConfigurationService } from '../../../services/configuration/configuration.service';\r\n\r\n\r\n\n@Component({\n selector: 'documentformatAutocomplete',\n templateUrl: './documentformat.autocomplete.component.html',\n styleUrls: ['./documentformat.autocomplete.component.scss']\n})\nexport class DocumentFormatAutocompleteComponent extends AbstractAutocompleteComponent implements OnInit {\n\n constructor(travelDocAPIService: TravelDocAPIService,\r\n configurationService: ConfigurationService) {\r\n super(travelDocAPIService, configurationService);\r\n }\n\n\n ngOnInit() {\n if (this.selectedItem != null) {\r\n this.parentForm.controls[this.controlName].setValue(this.selectedItem);\r\n }\n this.filteredOptions = this.parentForm.controls[this.controlName].valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(input => typeof input === 'string' ? input : ''),\r\n map(value => this.filter(value))\r\n );\r\n }\n\n private filter(value: string): DocumentFormat[] {\r\n const filterValue = (value) ? value.toLowerCase() : '';\r\n return (this.items) ? this.items.filter(option => (option && option.description) ? option.description.toLowerCase().includes(filterValue) : false) : [];\r\n }\r\n\r\n format = (value: DocumentFormat) => (value) ? value.description : undefined;\r\n}\n","import { Component, OnInit } from '@angular/core';\r\nimport { startWith, map } from 'rxjs/operators';\r\nimport { DocumentType } from '../../../../../models/traveldoc/documenttype';\r\nimport { AbstractAutocompleteComponent } from '../abstract.autocomplete/abstract.autocomplete.component';\r\nimport { TravelDocAPIService, ConfigurationService } from '../../../services';\r\n\r\n\r\n@Component({\r\n selector: 'documenttypeAutocomplete',\r\n templateUrl: './documenttype.autocomplete.component.html',\r\n styleUrls: ['./documenttype.autocomplete.component.scss']\r\n})\r\nexport class DocumentTypeAutocompleteComponent extends AbstractAutocompleteComponent implements OnInit {\r\n\r\n private _selected: DocumentType;\r\n get selectedItem() : DocumentType{\r\n return this._selected;\r\n }\r\n set selectedItem(value:DocumentType){\r\n this._selected = value;\r\n }\r\n\r\n constructor(travelDocAPIService: TravelDocAPIService,\r\n configurationService: ConfigurationService) {\r\n super(travelDocAPIService, configurationService);\r\n }\r\n\r\n ngOnInit() {\r\n if (this.selectedItem !== null) {\r\n this.parentForm.controls[this.controlName].setValue(this.selectedItem);\r\n }\r\n this.filteredOptions = this.parentForm.controls[this.controlName].valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(input => typeof input === 'string' ? input : ''),\r\n map(value => this.filter(value))\r\n );\r\n }\r\n\r\n private filter(value: string): Array {\r\n const filterValue = (value) ? value.toLowerCase() : '';\r\n return this.items.filter(option => (option && option.description) ? option.description.toLowerCase().includes(filterValue) : false);\r\n }\r\n\r\n format(value: DocumentType) {\r\n return (typeof value === 'string' || !value) ? value : value.description;\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ErrorService } from '../../../services';\r\nimport { item } from '../../../animations/animations';\r\nimport { Subscription } from 'rxjs';\r\nimport { error } from '@angular/compiler/src/util';\r\n\n@Component({\n animations: [item],\n selector: 'error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss']\n})\nexport class ErrorComponent implements OnInit, OnDestroy {\n\n error: Error;\n\n subscriber: Subscription;\n\n constructor(private errorService: ErrorService) {\n\n }\n ngOnInit(): void {\r\n this.subscriber = this.errorService.$error.subscribe((error) => {\n this.error = error;\n });\r\n }\r\n\n\n ngOnDestroy() {\n this.subscriber.unsubscribe();\n this.subscriber = null;\n }\n remove() {\n this.error = null;\r\n }\n\n}\n","export { ItemBase } from './base/itembase';\r\nexport { FocusNextBase } from './base/focusnextbase';\r\nexport { AbstractAutocompleteComponent } from './abstract.autocomplete/abstract.autocomplete.component';\r\nexport { QuestionAutocompleteComponent } from './question.autocomplete/question.autocomplete.component';\r\nexport { DocumentFormatAutocompleteComponent } from './documentformat.autocomplete/documentformat.autocomplete.component';\r\nexport { DocumentTypeAutocompleteComponent } from './documenttype.autocomplete/documenttype.autocomplete.component';\r\nexport { ErrorComponent } from './error/error.component';\r\nexport { LoadingComponent } from './loading/loading.component';\r\nexport { LocationsAutocompleteComponent } from './locations.autocomplete/locations.autocomplete.component';\r\nexport { ResultsCountryPageComponent } from './/results-country-page/results-country-page.component';\r\nexport { SelectLanguageComponent } from './select-language/select-language.component';\r\nexport { SiteFooterComponent } from './site-footer/site-footer.component';\r\nexport { SiteHeaderComponent } from './site-header/site-header.component';\r\n\r\n","import { Component, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\r\nimport { LoaderService } from '../../../services';\r\n\n@Component({\n selector: 'loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss']\n})\nexport class LoadingComponent implements OnInit {\n\n isLoading: Subject = this.loaderService.isLoading;\n constructor(private loaderService: LoaderService) {}\n\n ngOnInit() {}\n}\n","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { map, switchMap, tap, finalize, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nimport { TravelDocAPIService, ConfigurationService } from '../../../services/';\nimport { AbstractAutocompleteComponent } from '../abstract.autocomplete/abstract.autocomplete.component';\r\nimport {\r\n LocationType,\r\n Location\r\n} from '../../../../../models/traveldoc';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete';\r\n\r\n/**\r\n * @title Filter autocomplete\r\n */\r\n@Component({\r\n selector: 'locationsAutocomplete',\r\n templateUrl: 'locations.autocomplete.component.html',\r\n styleUrls: ['locations.autocomplete.component.scss'],\r\n})\r\nexport class LocationsAutocompleteComponent extends AbstractAutocompleteComponent implements OnInit {\r\n private readonly classname_airport: string = \"airport\";\r\n private readonly classname_location: string = \"location\";\r\n\r\n @Input() public useEnglish = false;\r\n\r\n @ViewChild(MatAutocomplete, { static: false }) autoComplete: MatAutocomplete;\r\n\r\n constructor(travelDocAPIService: TravelDocAPIService,\r\n configurationService: ConfigurationService) {\r\n super(travelDocAPIService, configurationService);\r\n }\r\n\r\n format(location: Location) {\r\n let locationString = '';\r\n if (typeof location !== 'string') {\r\n if (location && location.locationICAO) {\r\n if (location.type === LocationType.Airport) {\r\n locationString = `${location.locationICAO} - ${location.locationDescription} (${location.countryICAO})`;\r\n }\r\n else {\r\n locationString = `${location.locationICAO} - ${location.locationDescription}`;\r\n }\r\n }\r\n }\r\n return locationString;\r\n }\r\n\r\n getOptionClass(option: Location): string {\r\n let optionClass: string;\r\n switch (option.type) {\r\n case LocationType.Airport: { optionClass = this.classname_airport; } break;\r\n default: { optionClass = this.classname_location; } break;\r\n }\r\n return optionClass;\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.parentForm.controls[this.controlName].setValue(this.selectedItem);\r\n if (this.items) {\r\n // Work with a in memory list\r\n this.filteredOptions = this.parentForm.controls[this.controlName].valueChanges\r\n .pipe(map(value => this.filter(value)));\r\n\r\n } else {\r\n // get list from server\r\n this.filteredOptions = this.parentForm.controls[this.controlName].valueChanges\r\n .pipe(\r\n filter(text => text && text.length > 1),\r\n debounceTime(100),\r\n distinctUntilChanged(),\r\n tap(() => this.isLoading = true),\r\n switchMap(async value => await this.getResultsAsync(value)),\r\n finalize(() => this.isLoading = false)\r\n );\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n private filter(value: string): Location[] {\r\n if (typeof value === 'string') {\r\n const filterValue = (value) ? value.toLowerCase() : '';\r\n return this.items.filter(option => this.testLocation(option, filterValue));\r\n }\r\n }\r\n\r\n private testLocation(location: Location, text: string): boolean {\r\n const locationString = this.format(location);\r\n return (location) ? locationString.toLowerCase().includes(text.toLowerCase()) : false;\r\n }\r\n\r\n private async getResultsAsync(value: string): Promise {\r\n if (typeof value === 'string') {\r\n try {\r\n return await this.travelDocAPIService.getLocationsAsync(value); }\r\n catch (e) {\r\n window.appInsights?.trackException(e);\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport {\r\n TravelDocAPIService,\r\n ConfigurationService\r\n} from '../../../../common/services';\n\r\nimport { InterviewAnswer } from '../../../../../models/traveldoc';\r\nimport { AbstractAutocompleteComponent } from '../../../../common/src/lib/abstract.autocomplete/abstract.autocomplete.component';\r\nimport { startWith, map } from 'rxjs/operators';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\n\n\n@Component({\n selector: 'questionAutocomplete',\n templateUrl: './question.autocomplete.component.html',\n styleUrls: ['./question.autocomplete.component.scss']\n})\nexport class QuestionAutocompleteComponent extends AbstractAutocompleteComponent implements OnInit {\r\n\n\n constructor(travelDocAPIService: TravelDocAPIService,\r\n configurationService: ConfigurationService) {\r\n super(travelDocAPIService, configurationService);\r\n }\n\n ngOnInit() {\n this.filteredOptions = this.parentForm.controls[this.controlName].valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(input => typeof input === 'string' ? input : ''),\r\n map(value => this.filter(value))\r\n );\n }\n\n private filter(value: string): Array {\r\n const filterValue = (value) ? value.toLowerCase() : '';\r\n return this.items.filter(option => (option && option.value) ? option.value.toLowerCase().includes(filterValue) : false);\r\n\r\n }\n\n format = (answer: InterviewAnswer) => (answer) ? answer.value : null;\n\n onSelected(input: MatAutocompleteSelectedEvent) {\r\n const answer: InterviewAnswer = input.option.value;\r\n //this.selectedItem = answer;\r\n //this.focusNext(this.autoCompleteInput.nativeElement);\r\n if (this.changedEvent) {\r\n this.changedEvent.emit(answer);\r\n }\r\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { DisplayLinks } from '../../../../../models/traveldoc';\r\nimport { TravelDocAPIService, ErrorService } from '../../../services';\r\nimport { indicator, openClose, triangle } from '../../../animations/animations';\r\n\nconst PNL_CUSTOMS = 'CUSTOMS';\nconst PNL_HEALTH = 'HEALTH';\nconst PNL_OTHER = 'OTHER';\n\n@Component({\n animations: [\n indicator,\n triangle,\n openClose,\n ],\n selector: 'results-country-page',\n templateUrl: './results-country-page.component.html',\n styleUrls: ['./results-country-page.component.scss']\n})\nexport class ResultsCountryPageComponent {\n\n private expanded = false;\n\n currentPanel = '';\n customsHtml = '';\n healthHtml = '';\n otherHtml = '';\n countryName = '';\n\n @Input() set displayLinks(value: DisplayLinks) {\n this.currentPanel = '';\n this.countryName = '';\n this.expanded = false;\n try {\r\n if (value && value.location) {\n this.countryName = value.location.countryDescription;\r\n this.otherHtml = value.otherResources;\n this.travelDocAPIService.getCustoms(value.location.countryICAO).then((value) => this.customsHtml = value);\n this.travelDocAPIService.getHealth(value.location.countryICAO).then((value) => this.healthHtml = value);\r\n }\n else {\n this.otherHtml = '';\r\n this.customsHtml = '';\r\n this.healthHtml = '';\n }\n } catch (e) {\r\n this.errorService.addError(new Error(\"An unexpected error was encountered retrieving customs or health data\"));\r\n }\n }\n\n constructor(private travelDocAPIService: TravelDocAPIService,\n private errorService: ErrorService) { }\n\n changePanel(contentType: string) {\n if (this.expanded && this.currentPanel === contentType) {\n this.expanded = false;\r\n this.currentPanel = '';\r\n return;\r\n }\n else if (!this.expanded) {\n this.expanded = true;\r\n }\n this.currentPanel = contentType;\n }\n}\n","import { Component } from '@angular/core';\r\nimport { ConfigurationService } from '../../../services';\r\nimport { ClientTranslateService } from '../../../services/i18n/client.translate.service';\r\nimport { languageLookup } from '../../../i18n/language.lookup';\r\nimport { LanguageOption } from '../../../../../models/traveldoc/languageoption';\r\n\r\n@Component({\r\n selector: 'select-language',\r\n templateUrl: './select-language.component.html',\r\n styleUrls: ['./select-language.component.scss'] \r\n})\r\nexport class SelectLanguageComponent {\r\n\r\n clientTranslateService: ClientTranslateService;\r\n cultures: Array;\r\n selectedLanguage: string;\r\n postAction: string;\r\n antiForgeryToken: string;\r\n\r\n constructor(private configurationService: ConfigurationService) {\r\n this.antiForgeryToken = this.configurationService.antiForgeryToken;\r\n this.cultures = this.filterLanguages();\r\n this.selectedLanguage = this.configurationService.configuration.selectedCulture;\r\n this.postAction = this.configurationService.configuration.baseUrl;\r\n }\r\n\r\n public OnChange(culture) {\r\n\r\n window.location.href = `${window.location.protocol}//${window.location.host}?culture=${culture}`;\r\n //window.location.search = `culture=${culture}`;\r\n }\r\n \r\n\r\n private filterLanguages(): Array {\r\n return languageLookup.filter(c => {\r\n const currentClient: string = window['td']['skin'];\r\n const clientfilter: Array = c[\"clientCodes\"];\r\n if (!clientfilter) {\r\n // we have no client filters specified\r\n return true;\r\n }\r\n\r\n if (!clientfilter.length) {\r\n return false;\r\n }\r\n\r\n return clientfilter.filter((showForClient: string) => {\r\n return showForClient === currentClient\r\n }).length > 0;\r\n\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\nimport * as moment from 'moment';\r\n\n@Component({\n selector: 'site-footer',\n templateUrl: './site-footer.component.html',\n styleUrls: ['./site-footer.component.scss']\n})\nexport class SiteFooterComponent implements OnInit {\n\n year: string;\n\n @Input() termsUrl: string;\n\n @Input() privacyUrl: string;\n\n\n\n constructor() {\n this.year = moment().format('YYYY');\n }\n\n ngOnInit() { }\n}\n","import { Component, Input, ChangeDetectorRef } from '@angular/core';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Observable, Subscription } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { PageType } from '../../../../../models/enum/pagetype';\r\nimport { User } from '../../../../../models/configuration/user';\r\nimport { ConfigurationService, QueryStringHelperService } from '../../../services';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\n\n@Component({\n selector: 'site-header',\n templateUrl: './site-header.component.html',\n styleUrls: ['./site-header.component.scss']\n})\nexport class SiteHeaderComponent {\n @Input() page: PageType = PageType.PassengerView;\n @Input() showLanguageSelection = false;\n //get libraryViewUrl(): SafeUrl {\r\n // let url = `https://${this.baseURL}/Library/Rules${this.queryString}`\r\n // console.log(url)\r\n // return this.sanitizer.bypassSecurityTrustUrl(url);\r\n //}\n //get passengerViewUrl(): SafeUrl {\r\n\r\n // return this.sanitizer.bypassSecurityTrustUrl(`https://${this.baseURL}${this.queryString}`);\r\n //}\n pageTypes = PageType;\n switchState: boolean;\n isAuthenticated: boolean;\n baseURL: string;\n queryString = \"\";\n subscriber: Subscription;\n loginAction: SafeUrl;\r\n\n\n isHandset$: Observable = this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(\n map(result => result.matches),\n shareReplay()\n );\n\n\n constructor(private breakpointObserver: BreakpointObserver,\n public configurationService: ConfigurationService,\n private queryStringHelper: QueryStringHelperService,\n private cd: ChangeDetectorRef,\n private sanitizer: DomSanitizer\n ) {\n this.baseURL = this.configurationService.configuration.baseUrl;\n this.isAuthenticated = this.configurationService.configuration.user.authenticated;\n this.switchState = undefined;\n this.loginAction = this.sanitizer.bypassSecurityTrustUrl((this.isAuthenticated) ? this.formatPath('Endpoints/Logout') : this.formatPath('Library/Rules'));\n }\n\n ngOnInit() {\n this.setShowSwitch();\n\n this.subscriber = this.queryStringHelper.changeEmitted$.subscribe((queryString: string | undefined) => {\n this.queryString = (queryString !== undefined) ? `?${queryString}` : '';\n this.cd.detectChanges();\n });\n }\n\n private setShowSwitch() {\n const user: User = new User();\n user.claims = this.configurationService.configuration.user.claims;\n if (this.isAuthenticated && user && user.isApproved()) {\n switch (this.page) {\n case PageType.LibraryView: { this.switchState = true; } break;\n case PageType.PassengerView: { this.switchState = false; } break;\n default: { this.switchState = undefined; } break;\n }\n }\n else {\n this.switchState = undefined;\n }\n }\n\n\n //handleAccountEvent() {\n // if (this.isAuthenticated) {\n // // Log out the user\n // window.location.href = this.formatPath('Endpoints/Logout');\n // }\n // else {\n // window.location.href = this.formatPath('Library/Rules');\n // }\n //}\n\n getSelected(pageType: PageType): HTMLElement {\n\n let HTML: HTMLElement = undefined;\n\n if (pageType === this.page) { HTML = document.createElement('span'); HTML.className = \"sr-only\"; }\n return HTML;\n\n }\n\n getLink(pageType: PageType): string {\n let path = './';\n switch (pageType) {\n case PageType.LibraryView: { path = 'library/rules'; } break;\n case PageType.PassengerView: { path = ''; } break;\n case PageType.Integration: { path = 'info/integration'; } break;\n case PageType.Widget: { path = 'info/widget'; } break;\n case PageType.Android: { path = 'info/android'; } break;\n case PageType.Contact: { path = 'info/contact'; } break;\n default: {\n window.appInsights?.trackException({ exception: new Error(`Error building link in site header component. Unexpected page name '${pageType}'`) });\n } break;\n }\n return this.formatPath(path);\n }\n\n readonly pageRules: string;\n\n\n formatPath(path: string) {\n return `https://${this.baseURL}/${path}`;\n }\n\n\n}\n","import { Component, Input } from '@angular/core';\nimport { indicatorRotate, bodyExpansion } from '../../../animations/animations';\n\n@Component({\n selector: 'slide-down',\n templateUrl: './slide-down.component.html',\n styleUrls: ['./slide-down.component.scss'],\n animations: [\n indicatorRotate,\n bodyExpansion\n ]\n})\nexport class SlideDownComponent {\n\n @Input() isOpen = false;\n\n toggle() {\n this.isOpen = !this.isOpen;\n }\n\n @Input() title: string;\n\n @Input() content: string;\n}\n","/*\n * Public API Surface of common\n */\n\nexport * from './lib/common.module';\n","const isObject = (item): boolean => {\r\n return item !== null && typeof item === 'object';\r\n};\r\n\r\nconst isMergebleObject = (item): boolean => {\r\n return isObject(item) && !Array.isArray(item);\r\n};\r\n\r\nexport const mergeObjects = (target: T, ...sources: T[]): T => {\r\n if (!sources.length) {\r\n return target;\r\n }\r\n const source = sources.shift();\r\n if (source === undefined) {\r\n return target;\r\n }\r\n\r\n if (isMergebleObject(target) && isMergebleObject(source)) {\r\n Object.keys(source).forEach(function (key: string) {\r\n if (isMergebleObject(source[key])) {\r\n if (!target[key]) {\r\n target[key] = {};\r\n }\r\n mergeObjects(target[key], source[key]);\r\n } else {\r\n target[key] = source[key];\r\n }\r\n });\r\n }\r\n\r\n return mergeObjects(target, ...sources);\r\n};\r\n","import { AbstractControl, Validators, ValidationErrors } from '@angular/forms';\r\n\r\nexport class CustomValidators extends Validators {\r\n\r\n static objectSelectedValidator(control: AbstractControl): ValidationErrors | null {\r\n let returnValue = null;\r\n const requiredValidator = Validators.required;\r\n returnValue = requiredValidator(control);\r\n if (returnValue !== null) return returnValue;\r\n returnValue = (control.value && typeof control.value) !== \"string\" ? undefined : { required: true };\r\n return returnValue;\r\n }\r\n \r\n}\r\n\r\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule, Event, Router, NavigationEnd } from '@angular/router';\nimport { HomeComponent } from './home/home.component';\nimport { QuestionsComponent } from './questions/questions.component';\nimport { ResultsComponent } from './results/results.component';\nimport { filter } from 'rxjs/operators';\n\n\nconst routes: Routes = [\n {\n path: '',\n component: HomeComponent\n },\n {\n path: 'questions',\n component: QuestionsComponent\n },\n {\n path: 'results',\n component: ResultsComponent\n },\n { // This route will redirect if we have any MVC strangeness\n // to simplify the routing\n path: '**',\n pathMatch: 'full',\n redirectTo: ''\n },\n];\n\n@NgModule({\n //imports: [RouterModule.forRoot(routes, { scrollPositionRestoration: 'top' })],\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {\n constructor(private router: Router) {\n this.router.events\n .pipe(filter((routerEvent: Event) => routerEvent instanceof NavigationEnd))\n .subscribe((event: NavigationEnd) => {\n if (window.td.tagManagerKey) {\n gtag('config', window.td.tagManagerKey, { \"page_path\": event.urlAfterRedirects });\n }\n window.appInsights?.trackPageView({ name: event.urlAfterRedirects });\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { ConfigurationService, QueryStringHelperService } from '../../../common/services';\r\nimport { PageType } from '../../../../models/enum/pagetype';\r\nimport { config } from 'rxjs';\r\n\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n\n termsUrl: string;\n privacyUrl: string;\n pageTypes = PageType;\n\n constructor(private configurationService: ConfigurationService) {\n this.termsUrl = configurationService.configuration.termsUrl;\n this.privacyUrl = configurationService.configuration.privacyUrl;\n }\n}\n","/****************************************************************************************************\n * MODULE IMPORTS\n ****************************************************************************************************/\nimport { NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { CommonModule } from '../../../common/src/public-api';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { HttpClientModule } from '@angular/common/http';\n\n/****************************************************************************************************\n * CUSTOM APLICATION COMPONENT IMPORTS\n ****************************************************************************************************/\nimport { AppComponent } from './app.component';\n\nimport {\n HomeComponent,\n QuestionsComponent,\n QuestionAirportComponent,\n QuestionDocumentFormatComponent,\n QuestionDocumentTypeComponent,\n ResultsAdditionalInfoComponent,\n ResultsCountryPagesComponent,\n ResultsPassengerInfoComponent,\n ResultsSegmentComponent,\n ResultsSegmentsComponent,\n ResultsComponent,\n YourTripComponent,\n ReturnTripComponent,\n OneWayComponent,\n SegmentComponent,\n SegmentsComponent,\n DocumentComponent,\n DocumentsComponent,\n SegmentHeaderComponent,\n ResultStatusComponent,\n PassengerViewFeedbackComponent,\n FeedbackDialogComponent\n\n} from './index';\n\n\n\n/****************************************************************************************************\n * COMMON SERVICE IMPORTS\n ****************************************************************************************************/\nimport { ConfigurationService, DataService } from '../../../common/services';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { ResultStatusHeaderComponent } from './result-status-header/result-status-header.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n HomeComponent,\n QuestionsComponent,\n QuestionAirportComponent,\n QuestionDocumentFormatComponent,\n QuestionDocumentTypeComponent,\n ResultsAdditionalInfoComponent,\n ResultsCountryPagesComponent,\n ResultsPassengerInfoComponent,\n ResultsSegmentComponent,\n ResultsSegmentsComponent,\n ResultsComponent,\n YourTripComponent,\n ReturnTripComponent,\n OneWayComponent,\n SegmentComponent,\n SegmentsComponent,\n DocumentComponent,\n DocumentsComponent,\n SegmentHeaderComponent,\n ResultStatusComponent,\n ResultStatusHeaderComponent,\n PassengerViewFeedbackComponent,\n FeedbackDialogComponent\n\n ],\n imports: [\n CommonModule,\n AppRoutingModule,\n LayoutModule,\n MatToolbarModule,\n MatButtonModule,\n MatSidenavModule,\n MatIconModule,\n MatListModule,\n HttpClientModule\n ],\n providers: [\n DataService,\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n constructor(iconRegistry: MatIconRegistry, domSanitizer: DomSanitizer, configurationService: ConfigurationService) {\n configurationService.isLibrary = false;\n iconRegistry.addSvgIconSet(\n domSanitizer.bypassSecurityTrustResourceUrl('./passengerview/assets/mdi.svg')\n );\n }\n}\n","import { Input, Directive } from '@angular/core';\r\nimport { InterviewQuestion, InterviewAnswer } from '../../../../../models/traveldoc';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\n@Directive({})\nexport class QuestionBase {\r\n @Input() public question: InterviewQuestion;\r\n @Input() public parentForm: FormGroup;\r\n @Input() public controlName: string;\r\n\r\n onSelected(args: MatRadioChange) {\r\n this.question.answer = args.value.key;\r\n }\r\n\r\n onSelectedAutoComplete(answer: InterviewAnswer) {\r\n this.question.answer = answer.key;\r\n }\r\n}\r\n","import { Component, OnInit, Input, EventEmitter, Output, ElementRef, ViewChild } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { Lookups, Document, Location, DocumentType } from '~models/traveldoc/index';\nimport { ConfigurationService, DataShimService } from '~common/services/index';\nimport { ItemBase } from '~common/components/base/itembase';\nimport { CustomValidators } from '~common/validators/custom-validators';\nimport moment, { Moment } from 'moment';\n\n\n@Component({\n selector: 'document',\n templateUrl: './document.component.html',\n styleUrls: ['./document.component.scss']\n})\nexport class DocumentComponent extends ItemBase implements OnInit {\n\n lookups: Lookups;\n @Input() document: Document;\n\n @Output() documentRemoved = new EventEmitter();\n\n @ViewChild('documentExpiry', { static: false }) datepickerInput: ElementRef;\n\n private passport: DocumentType;\n private visa: DocumentType;\n\n // convenience getter for easy access to form fields\n get controls() { return this.form.controls; }\n\n public readonly minDate: Date;\n\n constructor(configurationService: ConfigurationService,\n private dataShimService: DataShimService) {\n super();\n this.lookups = configurationService.configuration.lookups;\n this.form = new FormGroup({});\n this.passport = configurationService.configuration.lookups.documentTypes.filter(dt => dt.name.toLowerCase() === \"passport\")[0];\n this.visa = configurationService.configuration.lookups.documentTypes.filter(dt => dt.name.toLowerCase() === \"visa\")[0];\n this.minDate = configurationService.configuration.minDate;\n }\n\n\n ngOnInit() {\n const typeControlName: string = this.getControlName('type');\n const issuedByControlName: string = this.getControlName('issuedBy');\n const nationalityControlName: string = this.getControlName('nationality');\n const expiryControlName: string = this.getControlName('expiry');\n\n this.form.addControl(typeControlName, new FormControl('', CustomValidators.objectSelectedValidator));\n this.form.addControl(issuedByControlName, new FormControl('', CustomValidators.objectSelectedValidator));\n this.form.addControl(nationalityControlName, new FormControl('', CustomValidators.objectSelectedValidator));\n this.form.addControl(expiryControlName, new FormControl('', CustomValidators.objectSelectedValidator));\n\n this.controls[typeControlName].setValue(this.document?.documentType?.name);\n this.controls[issuedByControlName].setValue(this.document.issuingCountry);\n this.controls[nationalityControlName].setValue(this.document.nationality);\n if (typeof this.document.expiry == \"string\") {\n this.document.expiry = moment(this.document.expiry);\r\n }\n this.controls[expiryControlName].setValue(this.document.expiry);\n\n this.controls[typeControlName].valueChanges.subscribe((value: DocumentType) => {\n this.document.documentType = value;\n });\n\n this.controls[issuedByControlName].valueChanges.subscribe((value: Location) => {\n this.checkWrapper(value, () => {\n this.document.issuingCountry = value\n if (this.document.documentType === undefined) {\n if (this.controlPrefix === 0) {\n this.document.documentType = this.passport;\n }\n else {\n this.document.documentType = this.visa;\n }\n }\n if (this.document.nationality === undefined) {\n this.document.nationality = this.dataShimService.mitigateNationality(value);\n }\n });\n });\n\n this.controls[nationalityControlName].valueChanges.subscribe((value: Location) => {\n this.checkWrapper(value, () => {\n this.document.nationality = value;\n if (this.document.issuingCountry === undefined) {\n this.document.issuingCountry = this.dataShimService.mitigateIssuingCountry(value)\n }\n });\n });\n\n this.controls[expiryControlName].valueChanges.subscribe((value: Moment) => {\n this.checkWrapper(value, () => {\n this.document.expiry = value;\n //if (this.datepickerInput) {\n // this.focusNext(this.datepickerInput.nativeElement);\n //}\n });\n });\n\n }\n\n remove($event: MouseEvent) {\n $event.preventDefault();\n if (this.documentRemoved) { this.documentRemoved.emit(this.document); }\n };\n\n\n\n}\n","import { Component, Input, ViewChildren, QueryList } from '@angular/core';\nimport { Document, Segment } from '../../../../../models/traveldoc';\nimport { FormGroup } from '@angular/forms';\nimport { DocumentComponent } from '../document/document.component';\nimport { ConfigurationService, DataShimService } from '../../../../common/services';\nimport { addRemove } from '../../../../common/animations/animations';\nimport moment from 'moment';\n\n@Component({\n animations: [\n addRemove\n ],\n selector: 'documents',\n templateUrl: './documents.component.html',\n styleUrls: ['./documents.component.scss']\n})\nexport class DocumentsComponent {\n @Input() documents: Array;\n @Input() segments: Array;\n form: FormGroup;\n\n @ViewChildren(DocumentComponent) documentComponents: QueryList;\n\n constructor(private configurationService: ConfigurationService,\n private dataShimServive: DataShimService) {\n this.form = new FormGroup({});\n }\n\n ngAfterViewInit() {\n // This needs to be in AfterViewInit as the childcomponents are not\n // available until this point\n this.documentComponents.changes.subscribe(() => {\n this.BindChildForms();\n })\n this.BindChildForms();\n }\n\n private addDocumentWithDefault(defaultDocumentType: string |undefined){\n const initialSegment = this.segments[0];\n // Get the passport from the list of\n // this needs to be done like this\n // in case the language is not English\n let documentType = undefined;\n if(defaultDocumentType){\n documentType = this.configurationService.configuration.lookups.documentTypes.filter(dt => dt.name.toLowerCase() === defaultDocumentType)[0];\n }\n const document = new Document();\n document.documentType = documentType;\n if (initialSegment.destination) {\n document.issuingCountry = this.dataShimServive.mitigateIssuingCountry(this.segments[0].destination);\n }\n\n if (initialSegment.origin) {\n const nationalityResult = this.configurationService.configuration.lookups.nationalities.filter(nat => nat.countryICAO === initialSegment.origin.countryICAO);\n if (nationalityResult.length) {\n document.nationality = nationalityResult[0];\n }\n }\n document.expiry = moment().add(1, 'years');\n this.documents.push(document);\n }\n\n addDocument() {\n this.addDocumentWithDefault(undefined);\n }\n\n addResidencePermit(){\n this.addDocumentWithDefault('residencepermit')\n }\n\n addSeamanBook(){\n this.addDocumentWithDefault('seamanbook')\n }\n\n addVisa(){\n this.addDocumentWithDefault('visa');\n }\n\n removeDocument(document: Document) {\n // Remove all the document forms as they are re-added by the\n // documentComponents changes binding\n for (let i: number = this.documents.length - 1; i > -1; i--) {\n this.form.removeControl(this.getName(i));\n }\n this.documents.splice(this.documents.indexOf(document), 1);\n }\n\n private BindChildForms() {\n this.documentComponents.forEach((instance, index) => {\n this.form.addControl(this.getName(index), instance.form);\n });\n }\n\n getName(index: number): string {\n return `document${index}`;\n }\n\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { FeedbackMessage } from '../../../../../models/traveldoc';\r\nimport { TravelDocAPIService } from '../../../../common/services';\r\n\nenum FormState {\r\n New = 1,\r\n Submitted = 2\r\n}\n\n@Component({\n selector: 'feedback-dialog',\n templateUrl: './feedback-dialog.component.html',\n styleUrls: ['./feedback-dialog.component.scss']\n})\n\n\nexport class FeedbackDialogComponent implements OnInit {\n public FormState = FormState;\n public formState: FormState;\n constructor(public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public feedbackMessage: FeedbackMessage,\n private traveldocAPIService: TravelDocAPIService) {\n this.formState = FormState.New;\n }\n\n ngOnInit(): void {\n }\n\n onCloseForm(): void {\r\n this.dialogRef.close();\r\n }\n\n onSubmitClick(): void {\n\n console.log(this.feedbackMessage);\n\n this.feedbackMessage.description = this.encodeHTMLEntities(this.feedbackMessage.description);\n this.feedbackMessage.name = this.encodeHTMLEntities(this.feedbackMessage.name);\n\n this.traveldocAPIService.submitPassengerViewFeedback(this.feedbackMessage)\r\n .then(() => this.formState = FormState.Submitted)\r\n .catch(() => this.dialogRef.close());\r\n }\n\n private encodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n textArea.innerText = text;\r\n let encodedOutput = textArea.innerHTML;\r\n let arr = encodedOutput.split('
    ');\r\n encodedOutput = arr.join('\\n');\r\n return encodedOutput;\r\n}\n\n}\n","import { Component, OnInit, ViewChild, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';\nimport { TravelDocAPIService, ErrorService, QueryStringHelperService, DataService, ConfigurationService } from '../../../../common/services';\nimport { Router } from '@angular/router';\nimport { FormGroup } from '@angular/forms';\nimport { DocumentsComponent } from '../documents/documents.component';\nimport { YourTripComponent } from '../your-trip/your-trip.component';\nimport { Subscription } from 'rxjs';\nimport { SegmentFormType } from '../../../../../models/enum/segmentformtype';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ClientTranslateService } from '../../../../common/services/i18n/client.translate.service';\nimport { take } from 'rxjs/operators';\n\n@Component({\n selector: 'home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss']\n})\nexport class HomeComponent implements OnInit {\n readonly clientTranslateService: ClientTranslateService;\n\n termsUrl: string;\n privacyUrl: string;\n\n form: FormGroup;\n @ViewChild(DocumentsComponent, { static: false }) documentsComponent: DocumentsComponent;\n @ViewChild(YourTripComponent, { static: false }) yourTripComponent: YourTripComponent;\n @Output() querystringChanged: EventEmitter = new EventEmitter();\n\n constructor(private travelDocAPIService: TravelDocAPIService,\n private router: Router,\n public dataService: DataService,\n private configurationService: ConfigurationService,\n private errorService: ErrorService,\n private quryStringHelperService: QueryStringHelperService,\n private cd: ChangeDetectorRef,\n private translateService: TranslateService\n ) {\n this.termsUrl = this.configurationService.configuration.termsUrl;\n this.privacyUrl = this.configurationService.configuration.privacyUrl;\n this.clientTranslateService = this.translateService as ClientTranslateService;\n }\n\n queryString: string;\n subscriber: Subscription;\n\n\n ngOnInit() {\n try {\n this.form = new FormGroup({});\n this.subscriber = this.form.valueChanges.subscribe(async () => {\n let updatedLibraryLink: string;\n let updatedQueryLink: string;\n if (this.form.valid) {\n updatedLibraryLink = await this.quryStringHelperService.getRawQueryStringFromPassenger(this.dataService.passenger);\n updatedQueryLink = await this.quryStringHelperService.getQueryStringFromPassenger(this.dataService.passenger);\n }\n if (updatedQueryLink) {\n this.queryString = `https://${this.configurationService.configuration.baseUrl}?${updatedLibraryLink}&results=true`;\r\n } else {\n this.queryString = ''\r\n }\n this.quryStringHelperService.queryStringChanged(updatedLibraryLink);\n this.cd.detectChanges();\n });\n\n if (this.quryStringHelperService.showResults) {\n this.router.navigate(['results']);\n }\n } catch (e) {\n window.appInsights?.trackException(e);\n this.clientTranslateService.get('passengerview.home.error.initailisingPage')\n .pipe(take(1))\n .subscribe((message: string) => {\n this.errorService.addError(new Error(message));\n });\n }\n }\n\n ngAfterViewInit() {\n this.form.addControl('yourTripComponent', this.yourTripComponent.form);\n this.form.addControl('documentsComponent', this.documentsComponent.form);\n }\n\n async checkPassenger(): Promise {\n\n if (this.validateControls(this.form)) {\n\n try {\n this.dataService.passenger.questions = await this.travelDocAPIService.getInterviewAsync(this.dataService.passenger);\n } catch (e) {\n window.appInsights?.trackException(e);\n this.errorService.addError(new Error(await this.clientTranslateService.get('passengerview.home.error.gettingInterview').toPromise()))\n return;\n }\n\n try {\n if (this.dataService.passenger.questions && this.dataService.passenger.questions.length !== 0) {\n this.router.navigate(['questions']);\n }\n else {\n this.dataService.results = await this.travelDocAPIService.checkPassengerAsync(this.dataService.passenger);\n if (this.dataService.results) {\n this.router.navigate(['results']);\n }\n }\n } catch (e) {\n window.appInsights?.trackException(e);\n this.errorService.addError(new Error(await this.clientTranslateService.get('passengerview.home.error.gettingResults').toPromise()))\n }\n }\n };\n\n ngOnDestroy() {\n this.subscriber.unsubscribe();\n this.subscriber = null;\n }\n\n private validateControls(form: FormGroup): boolean {\n form.markAllAsTouched();\n //this.debugForms();\n return form.valid\n }\n\n\n\n private debugForms() {\n const yt = this.form.controls[\"yourTripComponent\"] as FormGroup;\n\n const fOw = yt.controls[SegmentFormType.OneWay.toString()] as FormGroup;\n const fRe = yt.controls[SegmentFormType.Return.toString()] as FormGroup;\n const fMs = yt.controls[SegmentFormType.MultiSegment.toString()] as FormGroup;\n\n\n console.log(`Form overall status = '${this.form.status}' is valid = '${this.form.valid}'`);\n console.log(this.form.controls);\n\n if (fOw) {\n console.log('One way form loaded');\n console.log(`One way form status = '${fOw.status}' is valid = '${fOw.valid}'`);\n console.log(fOw.controls);\n }\n if (fRe) {\n console.log('Return form loaded');\n console.log(`Return form status = '${fRe.status}' is valid = '${fRe.valid}'`);\n console.log(fRe.controls);\n }\n if (fMs) {\n console.log('Multi segment form loaded');\n console.log(`Multi segment form status = '${fMs.status}' is valid = '${fMs.valid}'`);\n console.log(fMs.controls);\n }\n }\n\n}\n","import { from } from 'rxjs';\r\n\r\nexport { AppComponent } from '../app/app.component';\r\nexport { ItemBase } from '../../../common/src/lib/';\r\n\r\nexport { QuestionBase } from './base/questionbase';\r\nexport { DocumentComponent } from './document/document.component';\r\nexport { DocumentsComponent } from './documents/documents.component';\r\nexport { HomeComponent } from './home/home.component';\r\n\r\nexport { QuestionAirportComponent } from './question-airport/question-airport.component';\r\nexport { QuestionDocumentTypeComponent } from './question-document-type/question-document-type.component';\r\nexport { QuestionDocumentFormatComponent } from './question-document-format/question-document-format.component';\r\nexport { QuestionsComponent } from './questions/questions.component';\r\n\r\nexport { ResultsComponent } from './results/results.component';\r\nexport { ResultsAdditionalInfoComponent } from './results-additional-info/results-additional-info.component';\r\nexport { ResultsCountryPagesComponent } from './results-country-pages/results-country-pages.component'; \r\n\r\nexport { ResultsSegmentComponent } from './results-segment/results-segment.component';\r\nexport { ResultsSegmentsComponent } from './results-segments/results-segments.component';\r\nexport { ResultsPassengerInfoComponent } from './results-passenger-info/results-passenger-info.component';\r\n\r\nexport { OneWayComponent } from './one-way/one-way.component';\r\nexport { ReturnTripComponent } from './return-trip/return-trip.component';\r\nexport { SegmentComponent } from './segment/segment.component';\r\nexport { SegmentsComponent } from './segments/segments.component';\r\n\r\nexport { YourTripComponent } from './your-trip/your-trip.component';\r\nexport { SegmentHeaderComponent } from './segment-header/segment-header.component';\r\nexport { ResultStatusComponent } from './result-status/result-status.component';\r\n\r\nexport { PassengerViewFeedbackComponent } from './passenger-view-feedback/passenger-view-feedback.component';\r\nexport { FeedbackDialogComponent } from './feedback-dialog/feedback-dialog.component';\r\n","import { Component, OnInit, Input, EventEmitter, Output, ViewChild, ChangeDetectorRef } from '@angular/core';\nimport { ConfigurationService } from '~common/configuration/configuration.service';\r\nimport { Lookups, Segment, Location } from '~models/traveldoc';\r\nimport { FormGroup, FormBuilder, FormControl } from '@angular/forms';\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { FocusNextBase } from '~common/components/base/focusnextbase';\r\nimport { CustomValidators } from '~common/validators/custom-validators';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\nimport { Observable } from 'rxjs';\r\nimport { map, shareReplay } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\n selector: 'one-way',\n templateUrl: './one-way.component.html',\n styleUrls: ['./one-way.component.scss']\n})\n\nexport class OneWayComponent extends FocusNextBase implements OnInit {\n form: FormGroup;\n lookups: Lookups;\n \n @Input() parentForm: FormGroup;\n @Input() segments: Array;\n @ViewChild('departureDate', { static: false }) departureDate;\n @Output() dateChange: EventEmitter>;\n @Output() originChanged: EventEmitter = new EventEmitter();\n\n readonly ctrl_departureDate: string = \"departureDate\";\n readonly ctrl_departureLocation: string = \"departureLocation\";\n readonly ctrl_arrivalLocation: string = \"arrivalLocaiton\";\n public readonly minDate: Date;\n public readonly maxDate: Date;\n\n get controls() { return this.form.controls; }\n\n isHandset$: Observable = this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(\n map(result => result.matches),\n shareReplay()\n );\n\n constructor(private breakpointObserver: BreakpointObserver,\n private formBuilder: FormBuilder,\n private configurationService: ConfigurationService,\n private cd: ChangeDetectorRef) {\n super();\n this.lookups = this.configurationService.configuration.lookups;\n this.minDate = configurationService.configuration.minDate;\n this.maxDate = configurationService.configuration.maxDate;\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n departureLocation: ['', CustomValidators.objectSelectedValidator],\n arrivalLocaiton: ['', CustomValidators.objectSelectedValidator],\n });\n\n this.form.addControl('departureDate', new FormControl(moment(this.segments[0].departureDate), CustomValidators.objectSelectedValidator));\n this.controls[this.ctrl_departureDate].valueChanges.subscribe((value: moment.Moment) => {\n if (typeof value !== \"string\") {\n this.segments[0].departureDate = value;\r\n }\r\n //if (this.departureDate) {\r\n // this.focusNext(this.departureDate.nativeElement);\r\n //}\r\n });\n\n this.controls[this.ctrl_departureLocation].valueChanges.subscribe((value: Location) => {\n if (typeof value !== \"string\") {\n if (this.originChanged) {\n this.originChanged.emit(value);\r\n }\n this.segments[0].origin = value;\n if (this.segments.length > 1) {\n this.segments[1].destination = value;\r\n }\r\n }\r\n });\n\n this.controls[this.ctrl_arrivalLocation].valueChanges.subscribe((value: Location) => {\n if (typeof value !== \"string\") {\n if (this.segments.length > 1) {\n this.segments[1].origin = value;\n }\n this.segments[0].destination = value;\r\n }\r\n });\n this.cd.detectChanges();\n }\n\n}\n","import { Component, Input } from '@angular/core';\r\nimport {\r\n MatDialog\r\n} from '@angular/material/dialog'\r\n\r\nimport { FeedbackDialogComponent } from '../feedback-dialog/feedback-dialog.component';\r\nimport { DataService, QueryStringHelperService } from '../../../../common/services';\r\n\r\n@Component({\r\n selector: 'passenger-view-feedback',\n templateUrl: './passenger-view-feedback.component.html',\n styleUrls: ['./passenger-view-feedback.component.scss']\r\n})\r\nexport class PassengerViewFeedbackComponent {\r\n\r\n @Input() segmentOrdinal: number;\r\n constructor(public dialog: MatDialog,\r\n private querystringHelperService: QueryStringHelperService,\n private dataService: DataService) { }\r\n \r\n openDialog(): void {\r\n let portString: string = (window.location.port) ? `:${window.location.port}`:'';\r\n const dialogRef = this.dialog.open(FeedbackDialogComponent, {\r\n minWidth: '350px',\r\n minHeight: '100px',\r\n data: {\r\n name: '',\r\n email: '',\r\n description: '',\r\n segmentOrdinal: this.segmentOrdinal,\r\n queryLink: `${window.location.protocol}//${window.location.hostname}${portString}/?${this.querystringHelperService.getRawQueryStringFromPassenger(this.dataService.passenger)}&results=true`\r\n }\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\nimport { QuestionBase } from '../base/questionbase';\r\n\n@Component({\n selector: 'question-airport',\n templateUrl: './question-airport.component.html',\n styleUrls: ['./question-airport.component.scss']\n})\nexport class QuestionAirportComponent extends QuestionBase {\n\n constructor() {\n super();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { QuestionBase } from '../base/questionbase';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\n\n@Component({\n selector: 'question-document-format',\n templateUrl: './question-document-format.component.html',\n styleUrls: ['./question-document-format.component.scss']\n})\nexport class QuestionDocumentFormatComponent extends QuestionBase implements OnInit {\n\n readonly documentTypeBiometric = '5';\n constructor() {\n super();\n }\n\n ngOnInit() {\n super.onSelected(new MatRadioChange(null, { key: this.documentTypeBiometric }));\n }\n\n}\n","import { Component } from '@angular/core';\nimport { QuestionBase } from '../base/questionbase';\r\n\n@Component({\n selector: 'question-document-type',\n templateUrl: './question-document-type.component.html',\n styleUrls: ['./question-document-type.component.scss']\n})\nexport class QuestionDocumentTypeComponent extends QuestionBase{\n\n constructor() {\n super();\n }\n}\n","import { Component, ViewChildren, QueryList } from '@angular/core';\nimport { InterviewQuestion, QuestionType, Segment } from '../../../../../models/traveldoc';\r\nimport { TravelDocAPIService, ObjectFormatterService, DataService, ErrorService } from '../../../../common/services';\r\nimport { Router } from '@angular/router';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { DisplayGroup } from '../../../../../models/display/displaygroup';\r\nimport { QuestionBase } from '../base/questionbase';\r\nimport { ClientTranslateService } from '../../../../common/services/i18n/client.translate.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { take } from 'rxjs/operators';\r\n\n@Component({\n selector: 'questions',\n templateUrl: './questions.component.html',\n styleUrls: ['./questions.component.scss']\n})\nexport class QuestionsComponent {\n\n @ViewChildren(QuestionBase) questionComponents: QueryList;\n\n questions: Array;\n\n qustionDisplayGroups: Array>;\n\n questionTypes = QuestionType;\n form: FormGroup;\n segments: Array;\n\n readonly clientTranslateService: ClientTranslateService;\n\n constructor(private travelDocAPIService: TravelDocAPIService,\n private router: Router,\n private dataService: DataService,\n private objectFormatterService: ObjectFormatterService,\n private translateService: TranslateService,\n private errorService: ErrorService) {\n this.questions = this.dataService.passenger.questions;\n this.clientTranslateService = this.translateService as ClientTranslateService;\n this.init();\n }\n\n getControlname = (question: InterviewQuestion, index: number) => {\n return `question_${index - 1}`;\r\n };\n\n showControl(questionType: number, type: QuestionType) {\n return (questionType as QuestionType === type);\n }\n\n async continue() {\n try {\n this.dataService.passenger.questions = this.questions;\n this.dataService.results = await this.travelDocAPIService.checkPassengerAsync(this.dataService.passenger);\r\n \r\n if (this.dataService.results) {\r\n this.router.navigate(['results']);\r\n }\n } catch (e) {\r\n window.appInsights?.trackException(e);\r\n this.errorService.addError(new Error(await this.clientTranslateService.get('passengerview.questions.error.gettingResults').toPromise()));\r\n }\n }\n\n back() {\n // Clear out the questions\n this.dataService.passenger.questions.splice(0, this.dataService.passenger.questions.length);\n this.router.navigate(['../']);\r\n }\n\n\n private init() {\n try {\r\n const group = {};\n this.questions.forEach((question: InterviewQuestion, key) => {\n // reset any answer\n question.answer = undefined;\n const ctrl: FormControl = new FormControl(question.answer, Validators.required);\n const controlName: string = this.getControlname(question, key);\n ctrl.setValue(question.answer);\n group[controlName] = ctrl;\n });\n this.form = new FormGroup(group);\n\n // make sure we don't get an object reference\n if (this.dataService &&\n this.dataService.passenger &&\n this.dataService.passenger.segments) {\n this.segments = this.dataService.passenger.segments;\r\n }\n else {\n this.segments = new Array();\r\n }\n\n this.qustionDisplayGroups = this.objectFormatterService.generateQuestionDisplayGroups(this.segments, this.questions);\n } catch (e) {\r\n window.appInsights?.trackException(e);\r\n this.clientTranslateService.get('passengerview.questions.error.initailisingPage')\r\n .pipe(take(1))\r\n .subscribe((message: string) => {\r\n this.errorService.addError(new Error(message));\r\n });\r\n }\n \n }\n}\n\n\n\n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { ResultStatus } from '../../../../../models/enum/resultstatus';\r\n\n@Component({\n selector: 'result-status-header',\n templateUrl: './result-status-header.component.html',\n styleUrls: ['./result-status-header.component.scss']\n})\nexport class ResultStatusHeaderComponent implements OnInit {\n\n\n // TODO this needs to be refactored as it is almost exactly the same \n // as the results statu with different styling and string content\n @Input() status: ResultStatus;\n // Exposed for clarity. this way we avoid magic numbers in the view\n resultsStatuses: typeof ResultStatus = ResultStatus; \n\n\n constructor() { }\n\n ngOnInit() {\n }\n\n getClass(): string {\n let result = \"\";\n switch (this.status) {\r\n case ResultStatus.Green: { result = \"green\"; } break;\r\n case ResultStatus.Amber: { result = \"amber\"; } break;\r\n case ResultStatus.Red: { result = \"red\"; } break;\r\n\r\n // fall through for unknown and out of range\r\n case ResultStatus.Unknown:\r\n default: {\r\n result = \"unknown\";\r\n window.appInsights?.trackException({ error: new Error(`Result status '${this.status}' was not recognised`) });\r\n } break;\r\n }\r\n return result;\r\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { ResultStatus } from '../../../../../models/enum/resultstatus';\r\n\n@Component({\n selector: 'result-status',\n templateUrl: './result-status.component.html',\n styleUrls: ['./result-status.component.scss']\n})\nexport class ResultStatusComponent implements OnInit {\n\n\n @Input() status: ResultStatus;\n // Exposed for clarity. this way we avoid magic numbers in the view\n resultsStatuses: typeof ResultStatus = ResultStatus; \n\n constructor() { }\n\n ngOnInit() {\n }\n\n\n getClass(): string {\n let result = \"\";\n switch (this.status) {\r\n case ResultStatus.Green: { result = \"green\"; } break;\r\n case ResultStatus.DomesticSegmentCustomStatus :\r\n case ResultStatus.Amber: { result = \"amber\"; } break;\r\n case ResultStatus.Red: { result = \"red\"; } break;\r\n // fall through for unknown and out of range\r\n case ResultStatus.Unknown:\r\n default: {\r\n result = \"unknown\";\r\n window.appInsights?.trackException({ exception: new Error(`Result status '${this.status}' was not recognised`) });\r\n } break;\r\n }\r\n return result;\r\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { CheckResults, Passenger } from '../../../../../models/traveldoc';\r\n\n@Component({\n selector: 'results-additional-info',\n templateUrl: './results-additional-info.component.html',\n styleUrls: ['./results-additional-info.component.scss']\n})\nexport class ResultsAdditionalInfoComponent implements OnInit {\n\n @Input() passenger: Passenger;\n @Input() checkResults: CheckResults;\n\n constructor() { }\n\n ngOnInit() {\n\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { CheckResults, DisplayLinks, CheckResult, Passenger } from '../../../../../models/traveldoc';\r\nimport { ObjectFormatterService } from '../../../../common/services';\r\n\n@Component({\n selector: 'results-country-pages',\n templateUrl: './results-country-pages.component.html',\n styleUrls: ['./results-country-pages.component.scss']\n})\nexport class ResultsCountryPagesComponent implements OnInit {\n\n @Input() checkResults: CheckResults;\n @Input() passenger: Passenger;\n\n linksInfo: Array;\n\n\n constructor(private objectFormatterService: ObjectFormatterService) { }\n\n ngOnInit() {\n this.linksInfo = new Array();\n this.checkResults.resultsList.forEach((item: CheckResult, index: number, array: Array) => {\n let linkInfo: DisplayLinks = this.objectFormatterService.getLinksObject(item, this.passenger.segments[index]);\n this.linksInfo.push(linkInfo);\n });\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Passenger, Location, CheckResults, Document } from '../../../../../models/traveldoc';\r\nimport { ObjectFormatterService } from '../../../../common/services';\r\n\n@Component({\n selector: 'results-passenger-info',\n templateUrl: './results-passenger-info.component.html',\n styleUrls: ['./results-passenger-info.component.scss']\n})\nexport class ResultsPassengerInfoComponent implements OnInit {\n\n @Input() passenger: Passenger;\n @Input() checkResults: CheckResults;\n documents: Array;\n\n constructor(private objectFormatterService: ObjectFormatterService) { }\n\n ngOnInit() {\n this.initDocuments();\n }\n\n formatLocation(location: Location): string {\n return this.objectFormatterService.getCountryShortDescription(location);\r\n }\n\n initDocuments() {\n if (!this.documents) {\n this.documents = new Array();\r\n }\n\n for (const document of this.passenger.documents) {\n this.documents.push(document);\r\n }\n\n for (const document of this.checkResults.documents) {\n const duplicates: Array = this.documents.filter(d =>\n d.documentType.name === document.documentType.name &&\n d.issuingCountry.countryICAO === document.issuingCountry.countryICAO &&\n d.issuingCountry.locationICAO === document.issuingCountry.locationICAO);\n\n const notInList: boolean = duplicates.length === 0;\n\n if (notInList) {\n this.documents.push(document);\n }\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { DisplayCheckResult } from '../../../../../models/display/displaycheckresult';\nimport { MatDialog } from '@angular/material/dialog';\nimport { TravelDocAPIService } from '../../../../common/services/http/travel-doc-api.service';\n@Component({\n selector: 'results-segment',\n templateUrl: './results-segment.component.html',\n styleUrls: ['./results-segment.component.scss']\n\n})\nexport class ResultsSegmentComponent {\n constructor(public dialog: MatDialog,\n private traveldocAPIService: TravelDocAPIService) {\n\n }\n @Input() checkResult: DisplayCheckResult;\n @Input() segmentOrdinal: number;\n\n public async iVisaOnClick(url: string) {\n await this.traveldocAPIService.logiVisaClick(url)\n }\n\n\n}\n","import { Component, Input } from '@angular/core';\nimport { Passenger } from '../../../../../models/traveldoc';\nimport { DisplayGroup } from '../../../../../models/display/displaygroup';\r\nimport { DisplayCheckResult } from '../../../../../models/display/displaycheckresult';\r\n\n@Component({\n selector: 'results-segments',\n templateUrl: './results-segments.component.html',\n styleUrls: ['./results-segments.component.scss']\n})\nexport class ResultsSegmentsComponent {\n @Input() segmentsDisplayGroups: Array>;\n @Input() passenger: Passenger;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { CheckResults, Passenger, Segment } from '../../../../../models/traveldoc';\nimport { ObjectFormatterService, DataService, ErrorService } from '../../../../common/services';\nimport { DisplayGroup } from '../../../../../models/display/displaygroup';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ClientTranslateService } from '../../../../common/services/i18n/client.translate.service';\nimport { take } from 'rxjs/operators';\nimport { DisplayCheckResult } from '../../../../../models/display/displaycheckresult';\nimport moment, { Moment } from 'moment';\nimport { ResultStatus } from '../../../../../models/enum/resultstatus';\n/*import type{ ApplicationInsights} from '@microsoft/applicationinsights-web'*/\n@Component({\n selector: 'results',\n templateUrl: './results.component.html',\n styleUrls: ['./results.component.scss']\n})\nexport class ResultsComponent implements OnInit {\n checkResults: CheckResults;\n\n passenger: Passenger;\n\n resultsValidityDate: Moment;\n\n segmentsDisplayGroups: Array>;\n\n clientTranslateService: ClientTranslateService;\n\n showBack() {\n return this.dataService.passenger &&\n this.dataService.passenger.questions &&\n this.dataService.passenger.questions.length > 0;\n }\n\n constructor(private router: Router,\n private dataService: DataService,\n private objectFormatterService: ObjectFormatterService,\n private errorService: ErrorService,\n private translageService: TranslateService,\n private location: Location) {\n this.checkResults = dataService.results;\n this.passenger = dataService.passenger;\n this.clientTranslateService = this.translageService as ClientTranslateService;\n }\n\n ngOnInit() {\n try {\n\n this.objectFormatterService.generateResultDisplayGroups(\n this.passenger,\n this.checkResults.resultsList)\n .then((result) => {\n this.segmentsDisplayGroups = result;\n });\n //Post process result\n if (this.passenger.segments.every((s) => s.origin.countryICAO === s.destination.countryICAO)) {\n if (this.checkResults.overallStatus !== ResultStatus.Red) {\n this.checkResults.overallStatus = ResultStatus.Amber;\n }\n }\n\n this.resultsValidityDate = moment.utc(this.checkResults.resultsValidityDate);\n\n } catch (e) {\n window.appInsights?.trackException(e);\n this.clientTranslateService.get('passengerview.results.error.initailisingPage')\n .pipe(take(1))\n .subscribe((message: string) => {\n this.errorService.addError(new Error(message));\n });\n }\n }\n\n adjustResultForDomestic() {\n let previousSegment: Segment;\n this.passenger.segments.every((segment) => {\n if (previousSegment && previousSegment.destination.countryICAO === segment.origin.countryICAO) {\n if (this.checkResults.overallStatus === ResultStatus.Green) {\n this.checkResults.overallStatus = ResultStatus.Amber;\n return false;\n }\n }\n\n previousSegment = segment;\n\n })\n }\n\n \n\n home() {\n // Clear out the questions\n this.dataService.passenger.questions.splice(0, this.dataService.passenger.questions.length);\n this.router.navigate(['../']);\n }\n\n back() {\n this.location.back();\n }\n\n}\n","import { Component, OnInit, Input, EventEmitter, Output, ViewChild, } from '@angular/core';\nimport { ConfigurationService } from '~common/configuration/configuration.service';\nimport { Lookups, Segment, Location } from '~models/traveldoc';\nimport { FormGroup, FormBuilder, FormControl } from '@angular/forms';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { FocusNextBase } from '~common/components/base/focusnextbase';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Observable } from 'rxjs';\nimport { CustomValidators } from '~common/validators/custom-validators';\nimport { map, shareReplay } from 'rxjs/operators';\nimport * as moment from 'moment';\n\n// See the Moment.js docs for the meaning of these formats:\n// https://momentjs.com/docs/#/displaying/format/\n\n\n@Component({\n selector: 'return-trip',\n templateUrl: './return-trip.component.html',\n styleUrls: ['./return-trip.component.scss']\n})\n\nexport class ReturnTripComponent extends FocusNextBase implements OnInit {\n form: FormGroup;\n lookups: Lookups;\n @Input() parentForm: FormGroup;\n @Input() segments: Array;\n\n @ViewChild('departureDate', { static: false }) departureDate;\n @ViewChild('returnDate', { static: false }) returnDate;\n @ViewChild('return', { static: false }) returnDateCalendar;\n\n @Output() dateChange: EventEmitter>;\n @Output() originChanged: EventEmitter = new EventEmitter();\n\n readonly ctrl_departureDate: string = \"departureDate\";\n readonly ctrl_returnDate: string = \"returnDate\";\n readonly ctrl_departureLocation: string = \"departureLocation\";\n readonly ctrl_arrivalLocation: string = \"arrivalLocaiton\";\n public readonly minDate: Date;\n public readonly maxDate: Date;\n readonly dateInterval: number;\n isHandset$: Observable = this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(\n map(result => result.matches),\n shareReplay()\n );\n\n constructor(private breakpointObserver: BreakpointObserver,\n private formBuilder: FormBuilder,\n private configurationService: ConfigurationService) {\n super();\n this.lookups = this.configurationService.configuration.lookups;\n this.minDate = configurationService.configuration.minDate;\n this.maxDate = configurationService.configuration.maxDate;\n this.dateInterval = configurationService.configuration.segmentDatesDefault;\n }\n\n get returnMinDate() {\n if(!this.segments && this.segments.length){\n return this.minDate;\n }\n else{\n if(moment.isMoment(this.segments[0].departureDate)){\n return (this.segments[0].departureDate.toDate() > this.minDate)?this.segments[0].departureDate.toDate():this.minDate; \n }\n else{\n return (this.segments[0].departureDate > this.minDate)?this.segments[0].departureDate:this.minDate;\n }\n }\n }\n\n get controls() { return this.form.controls; }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n departureLocation: ['', CustomValidators.objectSelectedValidator],\n arrivalLocaiton: ['', CustomValidators.objectSelectedValidator]\n });\n\n this.form.addControl('departureDate', new FormControl(moment(this.segments[0].departureDate), CustomValidators.objectSelectedValidator));\n this.controls[this.ctrl_departureDate].valueChanges.subscribe((value: moment.Moment) => {\n if (typeof value !== \"string\") {\n this.segments[0].departureDate = value;\n if(this.segments[0].departureDate > this.segments[1].departureDate){\n const newDate = moment(value).add(this.dateInterval,'d').toDate();\n this.controls[this.ctrl_returnDate].setValue(newDate);\n }\n }\n });\n\n this.controls[this.ctrl_departureLocation].valueChanges.subscribe((value: Location) => {\n if (typeof value !== \"string\") {\n if (this.originChanged) {\n this.originChanged.emit(value);\n }\n\n this.segments[0].origin = value;\n if (this.segments.length > 1) {\n this.segments[1].destination = value;\n }\n }\n });\n\n this.controls[this.ctrl_arrivalLocation].valueChanges.subscribe((value: Location) => {\n if (typeof value !== \"string\") {\n if (this.segments.length > 1) {\n this.segments[1].origin = value;\n }\n this.segments[0].destination = value;\n }\n });\n\n this.form.addControl('returnDate', new FormControl(moment((this.segments.length > 1) ? this.segments[1].departureDate : new Date()), CustomValidators.objectSelectedValidator));\n this.controls[this.ctrl_returnDate].valueChanges.subscribe((value: moment.Moment) => {\n if (typeof value !== \"string\") {\n if (this.segments.length > 1) {\n this.segments[1].departureDate = value;\n }\n }\n });\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { DisplayGroup } from '../../../../../models/display/displaygroup';\r\n\n@Component({\n selector: 'segment-header',\n templateUrl: './segment-header.component.html',\n styleUrls: ['./segment-header.component.scss']\n})\nexport class SegmentHeaderComponent implements OnInit {\n\n @Input() displayGroup: DisplayGroup;\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit, Input, EventEmitter, Output, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { ConfigurationService } from '~common/configuration/configuration.service';\r\nimport { Lookups, Segment, Location } from '~models/traveldoc';\r\nimport { ItemBase } from '~common/components/base/itembase';\r\nimport { CustomValidators } from '~common/validators/custom-validators';\r\nimport { Moment } from 'moment'\r\n\r\n@Component({\r\n selector: 'segment',\r\n templateUrl: './segment.component.html',\r\n styleUrls: ['./segment.component.scss']\r\n})\r\nexport class SegmentComponent extends ItemBase implements OnInit {\r\n form: FormGroup;\r\n lookups: Lookups;\r\n\r\n get controls() { return this.form.controls; }\r\n\r\n @Output() segmentRemoved = new EventEmitter();\r\n @Output() originChanged: EventEmitter = new EventEmitter();\r\n @Input() segment: Segment;\r\n @Input() index = 0;\r\n\r\n @ViewChild(\"segmentDate\", { static: false }) datepickerInput: ElementRef;\r\n\r\n public readonly minDate: Date;\r\n public readonly maxDate: Date;\r\n\r\n readonly ctrl_from: string = \"from\";\r\n readonly ctrl_to: string = \"to\";\r\n readonly ctrl_date: string = \"date\";\r\n\r\n constructor(configurationService: ConfigurationService) {\r\n super();\r\n this.lookups = configurationService.configuration.lookups;\r\n this.form = new FormGroup({});\r\n this.minDate = configurationService.configuration.minDate;\r\n this.maxDate = configurationService.configuration.maxDate;\r\n }\r\n\r\n ngOnInit() {\r\n const fromControlName: string = this.getControlName('from');\r\n const toControlName: string = this.getControlName('to');\r\n const dateControlName: string = this.getControlName('date');\r\n\r\n this.form.addControl(fromControlName, new FormControl('', CustomValidators.objectSelectedValidator));\r\n this.form.addControl(toControlName, new FormControl('', CustomValidators.objectSelectedValidator));\r\n this.form.addControl(dateControlName, new FormControl('', null));\r\n\r\n this.controls[fromControlName].setValue(this.segment.origin);\r\n this.controls[toControlName].setValue(this.segment.destination);\r\n this.controls[dateControlName].setValue(this.segment.departureDate);\r\n\r\n this.controls[fromControlName].valueChanges.subscribe((value: Location) => {\r\n this.checkWrapper(value, () => {\r\n this.segment.origin = value; if (this.originChanged && this.index === 0) {\r\n this.originChanged.emit(value);\r\n }\r\n });\r\n });\r\n\r\n this.controls[toControlName].valueChanges.subscribe((value: Location) => {\r\n this.checkWrapper(value, () => this.segment.destination = value);\r\n });\r\n\r\n this.controls[dateControlName].valueChanges.subscribe((value: Moment) => {\r\n console.log(value)\r\n this.checkWrapper(value, () => {\r\n this.segment.departureDate = value;\r\n });\r\n });\r\n }\r\n\r\n remove($event: MouseEvent) {\r\n $event.preventDefault();\r\n if (this.segmentRemoved) {\r\n this.segmentRemoved.emit(this.segment);\r\n }\r\n }\r\n}\r\n","import { Component, Input, ViewChildren, QueryList, EventEmitter, Output } from '@angular/core';\nimport { Segment } from '../../../../../models/traveldoc';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { SegmentComponent } from '../segment/segment.component';\r\nimport { addRemove } from '../../../../common/animations/animations';\r\nimport { ConfigurationService } from '../../../../common/services';\r\nimport * as moment from 'moment';\r\n\n@Component({\n animations: [\n addRemove\n ],\n selector: 'segments',\n templateUrl: './segments.component.html',\n styleUrls: ['./segments.component.scss']\n})\nexport class SegmentsComponent {\n\n @ViewChildren(SegmentComponent) segmentComponents: QueryList;\n @Input() segments: Array;\n @Output() originChanged: EventEmitter = new EventEmitter();;\n form: FormGroup;\n\n constructor(private configuraionService: ConfigurationService) {\n this.form = new FormGroup({});\n }\n\n ngAfterViewInit() {\r\n this.segmentComponents.changes.subscribe(() => {\r\n this.BindChildForms();\r\n })\r\n this.BindChildForms();\r\n }\n\n addSegment() {\n const newSegment = new Segment(),\n lastSegment = this.segments[this.segments.length - 1];\n newSegment.segmentOrdinal = this.segments.length + 1;\n newSegment.origin = lastSegment.destination;\n newSegment.departureDate = this.getNextDate(lastSegment);\r\n this.segments.push(newSegment);\n }\n\n removeSegment(segment: Segment) {\n for (let i: number = this.segments.length - 1; i > -1; i--) {\r\n this.form.removeControl(this.getName(i));\r\n }\n this.segments.splice(this.segments.indexOf(segment), 1);\r\n this.reIndexSegments();\r\n }\n\n onOriginChange(location: Location) {\n if (this.originChanged) this.originChanged.emit(location);\n }\n\n private BindChildForms() {\n this.segmentComponents.forEach((instance, index) => {\r\n instance.form.setParent(this.form);\r\n this.form.addControl(this.getName(index), instance.form);\r\n });\r\n }\n\n getName(index: number): string {\n return `segment${index}`;\r\n }\n\n private getNextDate = (previousSegment: Segment): moment.Moment => {\n\n if (!previousSegment || !previousSegment.departureDate) return;\n let returnDate: moment.Moment = moment(previousSegment.departureDate);\n\n if (previousSegment.departureDate && previousSegment.departureDate.isValid) {\n returnDate.add(this.configuraionService.configuration.segmentDatesDefault | 0, 'days');\n }\n\r\n return returnDate;\n }\n\n private reIndexSegments() {\n for (let i = 0; i < this.segments.length; i++) {\n this.segments[i].segmentOrdinal = i + 1;\r\n }\n }\n}\n","import { Component, Input, ViewChild, EventEmitter, Output } from '@angular/core';\r\nimport { Segment, Location, Document } from '../../../../../models/traveldoc';\r\nimport { MatTabChangeEvent, MatTabGroup } from '@angular/material/tabs';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ReturnTripComponent } from '../return-trip/return-trip.component';\r\nimport { SegmentsComponent } from '../segments/segments.component';\r\nimport { SegmentFormType } from '../../../../../models/enum/segmentformtype';\r\nimport { DataShimService, DataService } from '../../../../common/services';\r\nimport { OneWayComponent } from '../one-way/one-way.component';\r\n\r\n@Component({\r\n selector: 'your-trip',\r\n templateUrl: './your-trip.component.html',\r\n styleUrls: ['./your-trip.component.scss']\r\n})\r\nexport class YourTripComponent { //implements OnInit {\r\n\r\n formType: SegmentFormType = SegmentFormType.Return;\r\n initialSelectedIndex: number;\r\n\r\n @Input() form: FormGroup;\r\n @Input() segments: Array;\r\n @Output() originChangedEvent = new EventEmitter();\r\n\r\n @ViewChild(ReturnTripComponent, { static: false }) returnTripComponent: ReturnTripComponent;\r\n @ViewChild(OneWayComponent, { static: false }) oneWayComponent: OneWayComponent;\r\n @ViewChild(SegmentsComponent, { static: false }) multiSegmentComponent: SegmentsComponent;\r\n @ViewChild(\"yourTripTabs\", { static: false }) yourTripTabs: MatTabGroup;\r\n\r\n constructor(private dataService: DataService,\r\n private dataShimService: DataShimService) {\r\n this.form = new FormGroup({});\r\n }\r\n calculateTab(): number {\r\n switch (this.segments.length) {\r\n case 1: {\r\n return 1;\r\n }\r\n case 2: {\r\n const firstSegment = this.segments[0];\r\n const secondSegment = this.segments[1];\r\n const locations = [];\r\n if (firstSegment.origin) {\r\n locations.push(firstSegment.origin.locationICAO);\r\n }\r\n if (firstSegment.destination) {\r\n locations.push(firstSegment.destination.locationICAO);\r\n }\r\n if (secondSegment.origin) {\r\n locations.push(secondSegment.origin.locationICAO);\r\n }\r\n if (secondSegment.destination) {\r\n locations.push(secondSegment.destination.locationICAO);\r\n }\r\n const distinctLocations = locations.filter((loc, i) => locations.indexOf(loc) === i);\r\n\r\n if (distinctLocations.length > 2) {\r\n return 2;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n default: {\r\n return 2;\r\n }\r\n }\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.initialSelectedIndex = this.calculateTab();\r\n }\r\n ngAfterViewInit() {\r\n switch (this.calculateTab()) {\r\n case 1: {\r\n this.yourTripTabs.selectedIndex = 1;\r\n if (this.oneWayComponent) {\r\n this.form.addControl(SegmentFormType.OneWay.toString(), this.oneWayComponent.form);\r\n }\r\n } break;\r\n case 0: {\r\n this.yourTripTabs.selectedIndex = 0;\r\n if (this.returnTripComponent) {\r\n this.form.addControl(SegmentFormType.Return.toString(), this.returnTripComponent.form);\r\n }\r\n } break;\r\n default: {\r\n this.yourTripTabs.selectedIndex = 2;\r\n if (this.multiSegmentComponent) {\r\n this.form.addControl(SegmentFormType.MultiSegment.toString(), this.multiSegmentComponent.form);\r\n }\r\n } break;\r\n }\r\n }\r\n\r\n originChanged(location: Location) {\r\n if (this.dataService.passenger.documents && this.dataService.passenger.documents.length > 0) {\r\n const document: Document = this.dataService.passenger.documents[0];\r\n\r\n if (document !== undefined && document.issuingCountry === undefined) {\r\n document.issuingCountry = this.dataShimService.mitigateIssuingCountry(location)\r\n }\r\n if (document !== undefined && document.nationality === undefined) {\r\n //document.nationality = document.issuingCountry;\r\n document.nationality = this.dataShimService.mitigateNationality(location);\r\n }\r\n\r\n }\r\n else {\r\n throw new Error('Error in your-trip component originChanged : expected passenger to have at least one document but none were available');\r\n }\r\n }\r\n\r\n onChangeTab(event: MatTabChangeEvent) {\r\n this.form.removeControl(SegmentFormType.Return.toString());\r\n this.form.removeControl(SegmentFormType.OneWay.toString());\r\n this.form.removeControl(SegmentFormType.MultiSegment.toString());\r\n switch (event.index) {\r\n case 0: {\r\n this.formType === SegmentFormType.Return;\r\n this.form.addControl(SegmentFormType.Return.toString(), this.returnTripComponent.form);\r\n this.segments.splice(2, this.segments.length - 2);\r\n if (this.segments.length === 1) {\r\n const newSegment: Segment = new Segment(),\r\n firstSegment: Segment = this.segments[0];\r\n if (!firstSegment) throw new Error('Unexpected error in your-trip control: Initial segment is missing');\r\n\r\n newSegment.origin = firstSegment.destination;\r\n newSegment.destination = firstSegment.origin;\r\n newSegment.departureDate = firstSegment.departureDate\r\n this.segments.push(newSegment);\r\n }\r\n this.reIndexSegments();\r\n } break;\r\n case 1: {\r\n this.formType === SegmentFormType.OneWay;\r\n this.form.addControl(SegmentFormType.OneWay.toString(), this.oneWayComponent.form);\r\n this.segments.splice(1, this.segments.length - 1);\r\n this.reIndexSegments();\r\n } break;\r\n case 2: {\r\n this.formType === SegmentFormType.MultiSegment;\r\n this.form.addControl(SegmentFormType.MultiSegment.toString(), this.multiSegmentComponent.form);\r\n } break;\r\n }\r\n }\r\n\r\n transitInfoClick() {\r\n event.stopPropagation();\r\n }\r\n\r\n private reIndexSegments() {\r\n for (let i = 0; i < this.segments.length; i++) {\r\n this.segments[i].segmentOrdinal = i + 1;\r\n }\r\n }\r\n\r\n}\r\n\r\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","import { NgModule } from '@angular/core';\nimport { MatExpansionModule } from '@angular/material/expansion'\nimport { MatAutocompleteModule } from '@angular/material/autocomplete'\nimport { MatInputModule } from '@angular/material/input'\nimport { MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatTabsModule } from '@angular/material/tabs'\nimport { MatDatepickerModule } from '@angular/material/datepicker'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatButtonModule } from '@angular/material/button'\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n//import { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nconst appearance: MatFormFieldDefaultOptions = {\n appearance: 'outline'\n};\n\n@NgModule({\n imports: [\n MatExpansionModule,\n MatAutocompleteModule,\n MatInputModule,\n MatFormFieldModule,\n MatTabsModule,\n MatDatepickerModule,\n MatIconModule,\n MatButtonModule,\n MatRadioModule,\n MatProgressSpinnerModule,\n MatMenuModule,\n MatToolbarModule,\n MatSidenavModule,\n MatListModule,\n MatMomentDateModule,\n MatSlideToggleModule,\n MatCheckboxModule,\n MatTooltipModule,\n MatButtonToggleModule,\n MatDialogModule\n ],\n exports: [MatExpansionModule,\n MatAutocompleteModule,\n MatInputModule,\n MatFormFieldModule,\n MatTabsModule,\n MatDatepickerModule,\n MatIconModule,\n MatButtonModule,\n MatRadioModule,\n MatProgressSpinnerModule,\n MatMenuModule,\n MatToolbarModule,\n MatSidenavModule,\n MatListModule,\n MatMomentDateModule,\n MatSlideToggleModule,\n MatCheckboxModule,\n MatTooltipModule,\n MatButtonToggleModule,\n MatDialogModule\n ],\n providers: [\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: appearance\n }\n ]\n})\nexport class MaterialsModule { }\n","import { NgModule } from '@angular/core';\r\nimport { MaterialsModule } from './materials.module';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n MaterialsModule,\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n HttpClientModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [\r\n MaterialsModule,\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n HttpClientModule,\r\n ReactiveFormsModule\r\n ]\r\n})\r\nexport class VendorsModule { }\r\n","/*\n * Public API Surface of vendors\n */\n//import '../../../types/window'\nexport * from './lib/materials.module';\nexport * from './lib/vendors.module';\n\n","export default \"
    \\r\\n \\r\\n {{placeholder}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{option.description}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n {{placeholder}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{option.description}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n error_outline\\r\\n
    \\r\\n
    \\r\\n {{'common.error.prefix' | translate }} \\\"{{error?.message}}\\\"\\r\\n
    \\r\\n \\r\\n clear\\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\";","export default \"\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n {{placeholder}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{this.format(option)}}\\r\\n
    \\r\\n
    \\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.format(option)}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{format(option)}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n

    {{'common.resultsCountryPage.countryInformationTitle' | translate:{countryName: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\";","export default \"
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\";","export default \"\\r\\n\";","export default \"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\";","export default \"
    \\r\\n
    \\r\\n {{title}}\\r\\n \\r\\n keyboard_arrow_down\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'passengerview.document.placeholder.expiryDate' | 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\";","export default \"
    \\r\\n
    {{'passengerview.documents.title' | translate}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{'passengerview.documents.addButton' | translate}}add\\r\\n
    \\r\\n\";","export default \"

    {{'passengerview.results.segment.feedback.sendFeedbackButtonText' | translate}}

    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'passengerview.results.segment.feedback.nameLabel' | translate}}\\r\\n \\r\\n
    \\r\\n
    {{'passengerview.results.segment.feedback.nameValidation' | translate}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'passengerview.results.segment.feedback.emailLabel' | translate}}\\r\\n \\r\\n
    \\r\\n
    {{'passengerview.results.segment.feedback.emailValidation' | translate}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'passengerview.results.segment.feedback.descriptionLabel' | translate}}\\r\\n \\r\\n
    \\r\\n
    {{'passengerview.results.segment.feedback.descriptionValidation' | translate}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{'passengerview.results.segment.feedback.thankYouMessageText' | translate}}

    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'passengerview.home.childResultsQuestion' | translate}}\\r\\n
    \\r\\n \\r\\n {{'passengerview.home.adults' | translate}}\\r\\n {{'passengerview.home.children' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'passengerview.home.privacyStatement.start' | translate }} {{'passengerview.home.privacyStatement.privacyLink' | translate }} {{'passengerview.home.privacyStatement.middle' | translate }} {{'passengerview.home.privacyStatement.termsLink' | 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\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'passengerview.oneway.placeholder.departureDate' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{answer.value}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    7\\\">\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{answer.value}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    7\\\">\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'passengerview.question.documentType.default.dontHaveDocument' | translate }}\\r\\n \\r\\n {{answer.value}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    7\\\">\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    1?'fixed-width':''\\\">\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n {{'passengerview.results.statusHeader.unknown' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{'passengerview.results.statusHeader.green' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{'passengerview.results.statusHeader.amber' | translate }}\\r\\n
    \\r\\n
    \\r\\n {{'passengerview.results.statusHeader.red' | translate }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n error_outline\\r\\n {{'passengerview.results.status.unknown' | translate }}\\r\\n
    \\r\\n
    \\r\\n check_circle\\r\\n {{'passengerview.results.status.green' | translate }}\\r\\n
    \\r\\n
    \\r\\n error_outline\\r\\n {{'passengerview.results.status.amber' | translate }}\\r\\n
    \\r\\n
    \\r\\n cancel\\r\\n {{'passengerview.results.status.red' | translate }}\\r\\n
    \\r\\n
    \\r\\n error_outline\\r\\n {{'passengerview.results.status.DomesticSegmentCustomStatus' | translate }}\\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n \\r\\n
    \\r\\n\\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    {{document.documentType.description}}
    \\r\\n
    \\r\\n
    {{'passengerview.results.passengerInfo.label.issuingCountry' | translate }}
    \\r\\n
    {{formatLocation(document.issuingCountry)}}
    \\r\\n
    {{'passengerview.results.passengerInfo.label.nationality' | translate }}
    \\r\\n
    {{formatLocation(document.nationality)}}
    \\r\\n
    {{'passengerview.results.passengerInfo.label.expiry' | translate }}
    \\r\\n
    {{document.expiry | moment:'LL'}}
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n {{'passengerview.results.segment.travelRequirements' | 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\";","export default \"
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
      \\r\\n
    • {{displayGroup.items[0].level1Messages[0].message}}
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{((this.passenger.travellingWithChildren)?'passengerview.results.childrenOnlyRules':'passengerview.results.adultOnlyRules') | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{'passengerview.results.validityMessage' | translate:{DateValue:resultsValidityDate| moment: 'MMM DD YYYY hh:mm a'} }}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'passengerview.returnTrip.placeholder.departureDate' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'passengerview.returnTrip.placeholder.returnDate' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    {{displayGroup.date | moment:'LL'}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{displayGroup.from}}
    \\r\\n
    {{displayGroup.fromDescription}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    {{displayGroup.to}} | {{displayGroup.date | moment:'LL'}}
    \\r\\n
    {{displayGroup.toDescription}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'passengerview.returnTrip.placeholder.departureDate' | 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\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{'passengerview.segments.addButton' | translate }}add\\r\\n\\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    {{'passengerview.yourTrip.title' | 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 {{'passengerview.yourTrip.tabHeadings.multiSegment' | translate }}\\r\\n
    help_outline
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","var map = {\n\t\"./af\": 62275,\n\t\"./af.js\": 62275,\n\t\"./ar\": 90857,\n\t\"./ar-dz\": 11218,\n\t\"./ar-dz.js\": 11218,\n\t\"./ar-kw\": 14754,\n\t\"./ar-kw.js\": 14754,\n\t\"./ar-ly\": 66680,\n\t\"./ar-ly.js\": 66680,\n\t\"./ar-ma\": 92178,\n\t\"./ar-ma.js\": 92178,\n\t\"./ar-sa\": 56522,\n\t\"./ar-sa.js\": 56522,\n\t\"./ar-tn\": 95682,\n\t\"./ar-tn.js\": 95682,\n\t\"./ar.js\": 90857,\n\t\"./az\": 70164,\n\t\"./az.js\": 70164,\n\t\"./be\": 79774,\n\t\"./be.js\": 79774,\n\t\"./bg\": 60947,\n\t\"./bg.js\": 60947,\n\t\"./bm\": 21832,\n\t\"./bm.js\": 21832,\n\t\"./bn\": 89650,\n\t\"./bn-bd\": 74477,\n\t\"./bn-bd.js\": 74477,\n\t\"./bn.js\": 89650,\n\t\"./bo\": 66005,\n\t\"./bo.js\": 66005,\n\t\"./br\": 98492,\n\t\"./br.js\": 98492,\n\t\"./bs\": 70534,\n\t\"./bs.js\": 70534,\n\t\"./ca\": 52061,\n\t\"./ca.js\": 52061,\n\t\"./cs\": 84737,\n\t\"./cs.js\": 84737,\n\t\"./cv\": 61167,\n\t\"./cv.js\": 61167,\n\t\"./cy\": 77996,\n\t\"./cy.js\": 77996,\n\t\"./da\": 9528,\n\t\"./da.js\": 9528,\n\t\"./de\": 14540,\n\t\"./de-at\": 49430,\n\t\"./de-at.js\": 49430,\n\t\"./de-ch\": 67978,\n\t\"./de-ch.js\": 67978,\n\t\"./de.js\": 14540,\n\t\"./dv\": 83426,\n\t\"./dv.js\": 83426,\n\t\"./el\": 6616,\n\t\"./el.js\": 6616,\n\t\"./en-au\": 63816,\n\t\"./en-au.js\": 63816,\n\t\"./en-ca\": 32162,\n\t\"./en-ca.js\": 32162,\n\t\"./en-gb\": 83305,\n\t\"./en-gb.js\": 83305,\n\t\"./en-ie\": 61954,\n\t\"./en-ie.js\": 61954,\n\t\"./en-il\": 43060,\n\t\"./en-il.js\": 43060,\n\t\"./en-in\": 59923,\n\t\"./en-in.js\": 59923,\n\t\"./en-nz\": 13540,\n\t\"./en-nz.js\": 13540,\n\t\"./en-sg\": 16505,\n\t\"./en-sg.js\": 16505,\n\t\"./eo\": 41907,\n\t\"./eo.js\": 41907,\n\t\"./es\": 86640,\n\t\"./es-do\": 41246,\n\t\"./es-do.js\": 41246,\n\t\"./es-mx\": 56131,\n\t\"./es-mx.js\": 56131,\n\t\"./es-us\": 36430,\n\t\"./es-us.js\": 36430,\n\t\"./es.js\": 86640,\n\t\"./et\": 62551,\n\t\"./et.js\": 62551,\n\t\"./eu\": 32711,\n\t\"./eu.js\": 32711,\n\t\"./fa\": 54572,\n\t\"./fa.js\": 54572,\n\t\"./fi\": 33390,\n\t\"./fi.js\": 33390,\n\t\"./fil\": 87860,\n\t\"./fil.js\": 87860,\n\t\"./fo\": 48216,\n\t\"./fo.js\": 48216,\n\t\"./fr\": 99291,\n\t\"./fr-ca\": 98527,\n\t\"./fr-ca.js\": 98527,\n\t\"./fr-ch\": 58407,\n\t\"./fr-ch.js\": 58407,\n\t\"./fr.js\": 99291,\n\t\"./fy\": 47054,\n\t\"./fy.js\": 47054,\n\t\"./ga\": 49540,\n\t\"./ga.js\": 49540,\n\t\"./gd\": 73917,\n\t\"./gd.js\": 73917,\n\t\"./gl\": 51486,\n\t\"./gl.js\": 51486,\n\t\"./gom-deva\": 56245,\n\t\"./gom-deva.js\": 56245,\n\t\"./gom-latn\": 48868,\n\t\"./gom-latn.js\": 48868,\n\t\"./gu\": 59652,\n\t\"./gu.js\": 59652,\n\t\"./he\": 89019,\n\t\"./he.js\": 89019,\n\t\"./hi\": 42040,\n\t\"./hi.js\": 42040,\n\t\"./hr\": 63402,\n\t\"./hr.js\": 63402,\n\t\"./hu\": 79322,\n\t\"./hu.js\": 79322,\n\t\"./hy-am\": 27609,\n\t\"./hy-am.js\": 27609,\n\t\"./id\": 57942,\n\t\"./id.js\": 57942,\n\t\"./is\": 98275,\n\t\"./is.js\": 98275,\n\t\"./it\": 73053,\n\t\"./it-ch\": 4378,\n\t\"./it-ch.js\": 4378,\n\t\"./it.js\": 73053,\n\t\"./ja\": 46176,\n\t\"./ja.js\": 46176,\n\t\"./jv\": 679,\n\t\"./jv.js\": 679,\n\t\"./ka\": 92726,\n\t\"./ka.js\": 92726,\n\t\"./kk\": 72953,\n\t\"./kk.js\": 72953,\n\t\"./km\": 86957,\n\t\"./km.js\": 86957,\n\t\"./kn\": 59181,\n\t\"./kn.js\": 59181,\n\t\"./ko\": 47148,\n\t\"./ko.js\": 47148,\n\t\"./ku\": 27752,\n\t\"./ku.js\": 27752,\n\t\"./ky\": 65675,\n\t\"./ky.js\": 65675,\n\t\"./lb\": 41263,\n\t\"./lb.js\": 41263,\n\t\"./lo\": 65746,\n\t\"./lo.js\": 65746,\n\t\"./lt\": 11143,\n\t\"./lt.js\": 11143,\n\t\"./lv\": 38753,\n\t\"./lv.js\": 38753,\n\t\"./me\": 44054,\n\t\"./me.js\": 44054,\n\t\"./mi\": 31573,\n\t\"./mi.js\": 31573,\n\t\"./mk\": 30202,\n\t\"./mk.js\": 30202,\n\t\"./ml\": 68523,\n\t\"./ml.js\": 68523,\n\t\"./mn\": 79794,\n\t\"./mn.js\": 79794,\n\t\"./mr\": 56681,\n\t\"./mr.js\": 56681,\n\t\"./ms\": 56975,\n\t\"./ms-my\": 39859,\n\t\"./ms-my.js\": 39859,\n\t\"./ms.js\": 56975,\n\t\"./mt\": 3691,\n\t\"./mt.js\": 3691,\n\t\"./my\": 5152,\n\t\"./my.js\": 5152,\n\t\"./nb\": 7607,\n\t\"./nb.js\": 7607,\n\t\"./ne\": 21526,\n\t\"./ne.js\": 21526,\n\t\"./nl\": 86368,\n\t\"./nl-be\": 40076,\n\t\"./nl-be.js\": 40076,\n\t\"./nl.js\": 86368,\n\t\"./nn\": 68420,\n\t\"./nn.js\": 68420,\n\t\"./oc-lnc\": 51906,\n\t\"./oc-lnc.js\": 51906,\n\t\"./pa-in\": 94504,\n\t\"./pa-in.js\": 94504,\n\t\"./pl\": 54721,\n\t\"./pl.js\": 54721,\n\t\"./pt\": 74645,\n\t\"./pt-br\": 54548,\n\t\"./pt-br.js\": 54548,\n\t\"./pt.js\": 74645,\n\t\"./ro\": 71977,\n\t\"./ro.js\": 71977,\n\t\"./ru\": 26042,\n\t\"./ru.js\": 26042,\n\t\"./sd\": 78849,\n\t\"./sd.js\": 78849,\n\t\"./se\": 27739,\n\t\"./se.js\": 27739,\n\t\"./si\": 50084,\n\t\"./si.js\": 50084,\n\t\"./sk\": 92449,\n\t\"./sk.js\": 92449,\n\t\"./sl\": 23086,\n\t\"./sl.js\": 23086,\n\t\"./sq\": 33139,\n\t\"./sq.js\": 33139,\n\t\"./sr\": 30607,\n\t\"./sr-cyrl\": 30063,\n\t\"./sr-cyrl.js\": 30063,\n\t\"./sr.js\": 30607,\n\t\"./ss\": 40131,\n\t\"./ss.js\": 40131,\n\t\"./sv\": 21665,\n\t\"./sv.js\": 21665,\n\t\"./sw\": 5642,\n\t\"./sw.js\": 5642,\n\t\"./ta\": 33622,\n\t\"./ta.js\": 33622,\n\t\"./te\": 74825,\n\t\"./te.js\": 74825,\n\t\"./tet\": 48336,\n\t\"./tet.js\": 48336,\n\t\"./tg\": 39238,\n\t\"./tg.js\": 39238,\n\t\"./th\": 99463,\n\t\"./th.js\": 99463,\n\t\"./tk\": 39986,\n\t\"./tk.js\": 39986,\n\t\"./tl-ph\": 29672,\n\t\"./tl-ph.js\": 29672,\n\t\"./tlh\": 40043,\n\t\"./tlh.js\": 40043,\n\t\"./tr\": 51212,\n\t\"./tr.js\": 51212,\n\t\"./tzl\": 50110,\n\t\"./tzl.js\": 50110,\n\t\"./tzm\": 80482,\n\t\"./tzm-latn\": 38309,\n\t\"./tzm-latn.js\": 38309,\n\t\"./tzm.js\": 80482,\n\t\"./ug-cn\": 42495,\n\t\"./ug-cn.js\": 42495,\n\t\"./uk\": 54157,\n\t\"./uk.js\": 54157,\n\t\"./ur\": 80984,\n\t\"./ur.js\": 80984,\n\t\"./uz\": 64141,\n\t\"./uz-latn\": 43662,\n\t\"./uz-latn.js\": 43662,\n\t\"./uz.js\": 64141,\n\t\"./vi\": 12607,\n\t\"./vi.js\": 12607,\n\t\"./x-pseudo\": 66460,\n\t\"./x-pseudo.js\": 66460,\n\t\"./yo\": 92948,\n\t\"./yo.js\": 92948,\n\t\"./zh-cn\": 62658,\n\t\"./zh-cn.js\": 62658,\n\t\"./zh-hk\": 39352,\n\t\"./zh-hk.js\": 39352,\n\t\"./zh-mo\": 38274,\n\t\"./zh-mo.js\": 38274,\n\t\"./zh-tw\": 98451,\n\t\"./zh-tw.js\": 98451\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 85206;\nmodule.exports = webpackEmptyAsyncContext;"],"names":[],"sourceRoot":"webpack:///"}