{"version":3,"sources":["utils/stringUtils.js","utils/libphonenumber.js","constants/ErrorMessageConstants.js","utils/dateUtils.js","images/jet/6000/1.svg","images/jet/5000/1.svg","images/jet/850/1.svg","images/jet/605/1.svg","images/jet/350/1.svg","utils/luhn.js","utils/errorUtils.js","utils/Validators/PhoneNumberValidator.js","utils/Validators/Validators.js","features/api/airportLookupAPI.js","features/slices/airportLookupSlice.js","constants/CateringConstants.js","utils/objectUtils.js","components/shared/FloatingLabel.js","components/shared/UnderlineField.js","components/shared/ErrorText.js","components/shared/HintText.js","store/sources/LoadLibraryPhoneNumber.js","components/shared/react-intl-tel-input/libphonenumber.js","constants/ApiConstants.js","constants/PhoneConstants.js","configs/constants.js","images/jet/7500/1.svg","constants/SignupConstants.js","store/actionTypes/index.js","store/reducers/termsAndPolicyReducer.js","store/reducers/userReducer.js","constants/CityConstants.js","store/reducers/offersReducer.js","constants/CountryConstants.js","store/reducers/geocodeReducer.js","store/reducers/googleMapReducer.js","store/reducers/visitedAirportsReducer.js","store/reducers/validateFlightReducer.js","store/reducers/PAFReducer.js","store/reducers/tokenReducer.js","store/reducers/registrationReducer.js","store/reducers/resendRegisterCodeReducer.js","store/reducers/membershipPlanReducer.js","store/reducers/creditCardReducer.js","store/reducers/directSignupReducer.js","store/reducers/contactusReducer.js","constants/UserAccessTypes.js","utils/requestFlightUtils.js","constants/MembershipConstants.js","constants/ServerCodeConstants.js","utils/userUtils.js","components/Drawer.js","constants/MessageConstants.js","utils/sourceUtils.js","constants/ItineraryConstants.js","utils/parserUtils.js","utils/Aircrafts.js","utils/aircraftUtils.js","utils/itinerariesUtils.js","store/reducers/itineraryListingReducer.js","store/reducers/itineraryDetails/itineraryDetailsReducer.js","constants/DateConstants.js","utils/Helpers.js","utils/arrayUtils.js","utils/passportUtils.js","utils/timezoneUtils.js","utils/passengerUtils.js","store/reducers/itineraryDetails/passengerReducer.js","normalizers/PassengerNormalizer.js","store/reducers/passengerPopupReducer.js","store/reducers/topUpReducer.js","store/reducers/topUpHistoryReducer.js","store/reducers/directAccountBalanceReducer.js","store/reducers/itineraryDetails/crewReducer.js","store/reducers/itineraryDetails/entertainmentReducer.js","store/reducers/itineraryDetails/itineraryPdfReducer.js","store/reducers/itineraryDetails/flightCancelReducer.js","store/reducers/quotesReducer.js","utils/PASUtils.js","store/reducers/PASReducer.js","store/reducers/itineraryDetails/movementMessagesReducer.js","store/reducers/itineraryDetails/availedServicesReducer.js","store/reducers/groundServicesReducer.js","store/reducers/aircraftsReducer.js","store/reducers/customerFeedbackReducer.js","store/reducers/cateringReducer.js","store/reducers/pushNotificationReducer.js","store/reducers/itineraryDetails/weatherReducer.js","store/reducers/itineraryDetails/fboReducer.js","store/reducers/rootReducer.js","store/store.js","components/withStore.js","components/shared/IsAuthenticated.js","containers/IsAuthenticatedContainer.js","normalizers/tokenNormalizer.js","utils/decrypt.js","store/sources/AdminTokenSource.js","store/actions/AdminTokenActions.js","store/sources/AuthenticateTokenSource.js","normalizers/authenticateTokenNormalizer.js","store/actions/AuthenticateTokenActions.js","store/sources/ContactUsSource.js","store/actions/ContactUsActions.js","store/actions/GeocoderActions.js","store/sources/GeocoderSource.js","store/actions/GoogleMapActions.js","normalizers/offerNormalizer.js","configs/status.js","store/sources/OffersSource.js","store/actions/OfferActions.js","store/sources/RegistrationSource.js","store/actions/RegistrationActions.js","normalizers/registerNormalizer.js","store/sources/ResendRegisterCodeSource.js","store/actions/ResendRegisterCodeActions.js","store/actions/TermsActions.js","store/sources/TokenSource.js","store/actions/TokenActions.js","constants/localStorageKeys.js","normalizers/userNormalizer.js","store/sources/UserSource.js","store/actions/UserActions.js","normalizers/airportNomalizer.js","store/sources/VisitedAirportsSource.js","store/actions/VisitedAirportsActions.js","normalizers/itineraryListingNormalizer.js","store/sources/ItineraryListingSource.js","store/actions/ItineraryListingActions.js","store/sources/ItineraryDetailsSource.js","store/sources/ItineraryPDFSource.js","store/actions/ItineraryDetailActions.js","store/sources/CrewSource.js","store/actions/CrewActions.js","normalizers/AvailOfferNormailizer.js","utils/guidUtils.js","constants/BookingFlightConstants.js","utils/Validators/PAFValidators.js","constants/PAFConstants.js","utils/PAFUtils.js","normalizers/PAFNormalizer.js","store/sources/AvailOfferSource.js","store/actions/AvailOfferActions.js","utils/fileUtils.js","store/sources/ItineraryPassengerSource.js","store/sources/UserSettingsSource.js","store/sources/PAFSource.js","store/actions/PAFActions.js","normalizers/validateFlightNormalizer.js","store/sources/ValidateFlightSource.js","store/actions/ValidateFlightActions.js","store/sources/AccountStatusSource.js","normalizers/AccountStatusNormalizer.js","store/actions/AccountStatusActions.js","normalizers/creditCardNormalizer.js","store/sources/CreditCardSource.js","store/actions/CreditCardActions.js","store/sources/DirectSignupSource.js","normalizers/MemberShipPlansNormalizer.js","store/actions/DirectSignupActions.js","store/actions/MemberShipPlanActions.js","store/sources/RequestQuoteSource.js","store/actions/RequestQuoteActions.js","normalizers/PASNormalizer.js","store/sources/PASSource.js","store/actions/PASActions.js","store/sources/EntertainmentSource.js","store/actions/EntertainmentActions.js","store/sources/PushNotificationSource.js","normalizers/pushNotificationNormalizer.js","store/actions/PushNotificationActions.js","normalizers/DirectAccountBalanceNormalizer.js","store/sources/DirectAccountBalanceSource.js","store/actions/DirectAccountBalanceActions.js","store/sources/FboSource.js","store/actions/FboActions.js","store/actions/AvailedServicesActions.js","store/sources/GroundServicesSource.js","store/actions/GroundServicesActions.js","store/sources/FlightCancelSource.js","store/actions/FlightCancelActions.js","store/sources/MovementMessagesSource.js","store/actions/MovementMessageActions.js","store/sources/WeatherSource.js","store/actions/WeatherActions.js","normalizers/normalizeCateringOrder.js","normalizers/normalizeCatering.js","store/sources/CateringSource.js","store/actions/CateringActions.js","store/sources/PassengerSource.js","store/actions/PassengerActions.js","store/sources/AircraftSource.js","store/actions/AircraftActions.js","constants/feedbackConstants.js","normalizers/customerFeedbackNoramlizer.js","store/sources/CustomerFeedbackSource.js","store/actions/FeedbackActions.js","normalizers/quoteNormalizer.js","store/sources/QuoteSource.js","store/actions/QuoteActions.js","store/actions/passengerPopupActions.js","containers/DrawerContainer.js","components/Header.js","containers/HeaderContainer.js","components/shared/spinnerLoader.js","components/shared/ModalWithHeaderFooter.js","components/shared/ConfirmationPopUp.js","utils/Validators/ForgotPasswordValidator.js","components/shared/MessagePopUp.js","components/ForgotPassword/ForgotPassword.js","components/shared/MessagePopUpNew.js","utils/Validators/ChangePasswordValidator.js","components/ForgotPassword/ResetPassword.js","validators/validateDirty.js","constants/SPAConstants.js","components/Login/Login.js","utils/Validators/LoginFormValidator.js","containers/UserContainer.js","components/Core.js","containers/CoreContainer.js","components/MapStyle.js","components/GoogleMap.js","components/MapMarker.js","utils/geolocation.js","components/OfferMap.js","components/CardWithButton.js","components/OfferDetails.js","mocks/aircraftDetails.js","components/OfferCard.js","components/shared/SkeletonLoaderCards.js","components/shared/SkeletonLoaderCardsWithoutMap.js","components/shared/Pagination.js","components/shared/AircraftDropList.js","components/shared/AircraftDropDown/AircraftDropdown.js","utils/offerUtils.js","components/shared/ConfirmationPopUpNew.js","components/Offers.js","containers/OffersContainer.js","components/PlanAFlight/FlightTime.js","components/PlanAFlight/EstimateTime.js","components/Stepper.js","components/PlanAFlight/Wrappers/StepperWrapper.js","components/PlanAFlight/Wrappers/AircraftDropdownWrapper.js","components/TimeElement.js","components/TimePicker.js","components/PlanAFlight/Wrappers/TimePickerWrapper.js","components/PlanAFlight/Wrappers/DatePickerWrapper.js","components/shared/AirportSelector.js","components/PlanAFlight/Wrappers/AirportSelectorWrapper.js","components/shared/Modal.js","components/passengersPopup/ExistingPax.js","constants/passengerConstants.js","components/passengersPopup/AddPassengers.js","containers/passengers/PassengersAddContainer.js","utils/countryUtils.js","components/passengersPopup/PassengerRow.js","components/passengersPopup/ListPassengerRows.js","components/passengersPopup/ListPassengers.js","containers/passengers/PassengersListContainer.js","components/passengersPopup/PassengerDetail.js","containers/passengers/PassengersDetailContainer.js","utils/Validator.js","components/shared/ReactCalendar.js","components/passengersPopup/AddPassport.js","containers/passengers/AddPassportContainer.js","components/passengersPopup/AddNewPassenger.js","components/passengersPopup/PassengerPopup.js","containers/passengers/passengerPopupContainer.js","components/ItineraryDetails/PassengerCard.js","components/PlanAFlight/LegCard.js","components/shared/ContractSelector.js","components/DialogWrapper.js","components/shared/Button.js","components/ValidateFlightMessage.js","components/shared/BulletPopup.js","utils/oneWayOfferUtils.js","components/PlanAFlight/LegListing.js","components/PlanAFlight/ThankyouScreen.js","components/shared/TextField.js","components/shared/MaskedTextField.js","components/shared/CreditCardFlagImage.js","components/shared/CreditCardFlag.js","components/shared/CreditCardInputNumber.js","utils/Validators/AddCreditCardDetailsValidator.js","constants/DirtyPopupConstant.js","components/Credit-Card/AddCreditCardModal.js","components/PlanAFlight/PaymentMethods.js","components/PlanAFlight/OfferSummary.js","components/PlanAFlight/AddBillingAddressModal.js","utils/Validators/ContractingDetailFormValidator.js","components/PlanAFlight/BillingAddress.js","components/PlanAFlight/QuoteSummary.js","components/PlanAFlight/PAFLayout.js","containers/PAFContainer.js","components/shared/SkeletonLoaderAirport.js","components/shared/AddEventCalendarLink.js","components/shared/FlightPathRow.js","components/Itinerary/ItineraryListingCard.js","components/Itinerary/ItineraryListItem.js","components/Itinerary/ItinerariesListing.js","containers/Itinerary/UpcomingItinerariesListingContainer.js","containers/Itinerary/PastItinerariesListingContainer.js","containers/Itinerary/CancelledItinerariesListingContainer.js","components/ItineraryDetails/Crew.js","components/ItineraryDetails/FlightCancel.js","components/ItineraryDetails/ItineraryCard.js","containers/passengers/passengerCardContainer.js","components/ItineraryDetails/GroundServicesModal.js","components/ItineraryDetails/GroundTransportationModal.js","components/ItineraryDetails/GroundServicesCard.js","components/ItineraryDetails/FboModal.js","components/ItineraryDetails/Fbo.js","components/ItineraryDetails/Weather.js","components/ItineraryDetails/OperationalNotes.js","utils/movementMessageUtils.js","components/ItineraryDetails/MovementMessages.js","components/ItineraryDetails/EntertainmentCard.js","components/shared/RatingsComponent/RatingComponent.js","utils/urlUtils.js","components/ItineraryDetails/CustomerFeedbackOptions.js","components/ItineraryDetails/CustomerFeedbackPopup.js","components/ItineraryDetails/CustomerFeedback.js","containers/Itinerary/CustomerFeedbackContainer.js","utils/cateringUtils.js","components/ItineraryDetails/Catering/CateringPopup.js","components/ItineraryDetails/Catering/CateringListActionItem.js","components/ItineraryDetails/Catering/CateringFooter.js","components/ItineraryDetails/Catering/SupplierMenuList.js","components/ItineraryDetails/Catering/PassengerQuantityListItem.js","components/ItineraryDetails/Catering/PassengerQuantityList.js","components/ItineraryDetails/Catering/CateringSuppliers.js","components/ItineraryDetails/Catering/Catering.js","components/ItineraryDetails/ItineraryDetails.js","containers/Itinerary/ItineraryDetailsContainer.js","components/ItineraryDetails/Entertainment.js","containers/Itinerary/EntertainmentContainer.js","components/Registration/RegistrationForm.js","utils/Validators/RegistrationFormValidator.js","containers/SimpleRegistrationContainer.js","components/Registration/RegistrationConfirm.js","containers/RegistrationConfirmContainer.js","components/Quotes/ActiveQuotes.js","containers/Quotes/ActiveQuotesContainer.js","constants/PASConstants.js","components/UnbilledFlights.js","components/CurrentBalance.js","components/StepperPagination.js","components/AccountStatementDetails.js","components/AccountStatement.js","components/ProgramAccountStatement.js","containers/PASContainer.js","components/UserProfile/UserDetailsSection/UserDetailsCard.js","components/UserProfile/UserDetailsSection/AddEditUserDetailsForm.js","utils/Validators/AddEditUserProfileDetailValidator.js","components/UserProfile/UserDetailsSection/UserMembershipDetailsCard.js","components/UserProfile/UserDetailsSection/UserDetailSection.js","components/UserProfile/PassportSection/PassportListingCard.js","components/UserProfile/PassportSection/AddEditPassportDetailsForm.js","utils/Validators/PassportValidator.js","components/UserProfile/PassportSection/PassportListingSection.js","components/UserProfile/UserCreditCardSection/CreditCardListingCard.js","components/UserProfile/UserCreditCardSection/CreditCardAddEditDetailForm.js","components/UserProfile/UserCreditCardSection/CreditCardListingSection.js","components/UserProfile/ChangePassowordSection/ChangeUserPasswordForm.js","components/UserProfile/PushNotificationSection/PushNotificationCard.js","components/UserProfile/UserProfile.js","containers/UserProfileContainer.js","components/Quotes/ExpiredQuotes.js","containers/Quotes/ExpiredQuotesContainer.js","utils/emailUtils.js","components/AccountStatement/TopUpAccount.js","constants/topUpConstants.js","normalizers/TopUpNormalizer.js","store/sources/TopUpAccountSource.js","store/actions/TopUpAccountActions.js","containers/TopUpAccountContainer.js","components/AccountStatement/DirectAccountBalance.js","containers/DirectAccountBalanceContainer.js","components/AccountStatement/TopUpHistory.js","containers/TopUpHistoryContainer.js","store/actions/TopUpHistoryActions.js","components/ProgramBuilder/ProgramBuilderRangeSlider.js","components/ProgramBuilder/ProgramBuilderWidget.js","containers/ProgramBuilderWidget.js","utils/postTransport.js","components/ProgramBuilder/ProgramBuilderDetailForm.js","utils/Validators/ProgramBuilderDetailFormValidator.js","components/ProgramBuilder/ProgramBuilderDonutAndSuggestion.js","components/ProgramBuilder/ProgramBuilder.js","utils/OtherAircrafts.js","components/CostCalculator/CostCalculatorForm.js","utils/Validators/CostCalculatorFormValidator.js","components/CostCalculator/CostComparisonCard.js","components/CostCalculator/CostCalculator.js","index.js","constants/CreditCardConstants.js","utils/airportUtils.js","utils/creditCardUtils.js","utils/cache.js","components/shared/PhoneNumberSelector.js","utils/browserUtils.js","utils/stateUtils.js"],"names":["capitalize","str","constructor","String","replace","txt","charAt","toUpperCase","substr","toLowerCase","convertToTitleCase","getFirstChars","length","status","arguments","undefined","regex","RegExp","concat","substring","match","lastIndexOf","replaceSpecialCharacterAndSpaces","concatenateStrings","str1","str2","libphonenumber","errorMessages","SALUTATION_REQ","INVALID_NAME","FIRST_NAME_REQ","LAST_NAME_REQ","EMAIL_REQ","INVALID_EMAIL","REPEAT_EMAIL_REQ","EMAIL_DO_NOT_MATCH","MESSAGE_REQ","MESSAGE_INVALID","PHONE_REQUIRED","INVALID_PHONE","PASS_REQ","PASS_MAX_LENGTH","PASS_MAX_LENGT_MOBILE","INVALID_PASS","REPEAT_PASS_REQ","PASS_DO_NOT_MATCH","SAME_PASSWORD","CHECK_REQUIRED","USER_ALREADY_EXISTS","TELEPHONE_ALREADY_EXISTS","CVV_REQUIRED","INVALID_CVV","INVALID_EXPIRY_DATE_FORMAT","INVALID_EXPIRY_DATE","EXPIRY_DATE_REQUIRED","CREDIT_CARD_NUMBER_REQUIRED","INVALID_CREDIT_CARD_NUMBER","ADDRESS_REQUIRED","CITY_REQUIRED","STATE_REQUIRED","COUNTRY_REQUIRED","POSTAL_CODE_REQUIRED","PAYMENT_NOT_DEFINED","CANNOT_ACCESS_STATEMENTS","NO_RELATED_INVOICES","DATE_OF_BIRTH_REQUIRED","INVALID_DOB_FORMAT","EMAIL_ALREADY_EXISTS","PASSPORT_NAME_REQUIRED","INVALID_PASSPORT_NAME","PASSPORT_NUMBER_REQUIRED","INVALID_PASSPORT_NUMBER","PLESASE_USE_DATE_FORMAT","INVALID_PASSPORT_EXPIRY_DATE_FUTURE","INVALID_PASSPORT_EXPIRY_DATE","INVALID_NATIONALITY","INVALID_ISSUING_COUNTRY","LEGACY_ERROR_MESSAGES","timeout","loginFailed","legAddSuccessMsg","legUpdateSuccessMsg","legUpdateWarning","paxCountAboveCapacity","firstNameRequired","lastNameRequired","emailRequired","emailIncorrect","emailDoesntExists","passwordRequired","passwordValid","passwordMatch","phoneRequired","phoneIncorrect","countryRequired","countryInvalid","termsRequired","titleRequired","singupSuccess","telephoneAlreadyExists","userAlreadyExists","INVALID_DATE_MSG","dateFnsFormats","YYYY_MM_DD","DDMMMYYYY","YYYY_MM_DD_WITH_TIME","dateFormats","MMDDYYYY","MM_DD_YYYY_HHmm","YYYY_MM_DD_HHmm","YYYY_MM_DD_PAX","YYYY_MM_DD_HHmmss","INVALID_DATE","DATE_WITHOUT_UTC","formatDate","date","format","convertToZulu","momentObj","isNaN","moment","isMoment","getDateWithoutTimeZone","dateFormated","isValid","convertToDoubleDigits","time","isValidDateInFuture","momentDifference","_d","toString","duration","diff","dateDifference","_i","_milliseconds","luhn","cardNumber","trimmed","calc","calc2","odd","total","test","i","parseInt","calcAux","setResponse","errorMessage","isError","message","validatePhoneNumber","phoneNumber","isPhoneNumberValid","res","validateSalutation","value","validateTitleOther","title","titleOther","validateFirstName","NAME_REGEX","validateLastName","validateEmail","email","EMAIL_REGEX","validateEmailStartingFromUpperCase","validatePhone","validatePhoneAndCountry","countryCode","validateTypeOfFlying","typeOfFlying","validateCurrentFlyingSolution","currentFlyingSolution","validateHowDidYouHear","howDidYouHear","validateHowOftenDoYouFly","howOftenDoYouFly","validatePassword","password","PASSWORD_REGEX","validateRepeatPassword","repeatPassword","validateNotEmpty","validateSamePassword","oldPassword","newPassword","validateCheckBox","isChecked","validateCVV","cvv","cc","brandId","possibleBrandIds","getPossibleBrandIds","getCreditCardTypes","CardType","AMERICAN_EXPRESS","REGEX_MM_YY","validateExpiryDate","expiryDate","error","endOf","isBefore","validateCreditCardNumber","creditCardNumber","addressValidator","address","cityValidator","city","stateValidator","state","countryValidator","country","dateInFuture","dateString","resolution","utc","isAfter","dateInPast","zipCodeValidator","zipCode","validateDateOfBirth","dateOfBirth","dateBirth","passportNumberValidator","passportNumber","passportNumberTrimmed","trim","PASSPORT_REGEX","expiresOnDatevalidator","expiresOnDate","startOf","add","displayNameValidator","displayName","PASSPORT_NAME_REGEX","isoPassportIssueAndIssuingCountryValidator","isoPassportCountry","issuingCountry","validateStateCode","stateCode","validateStateCountries","stateCountries","some","o","url","sortByWeight","a1","a2","weight","METROPOLITAN_AREA_WITH_AIRPORTS","METROPOLITAN_AREA","NORMAL_AIRPORT","NESTED_AIRPORT","normalizeAirports","airportData","ap","airports","ma","metropolitanAreas","airportsByAreas","sort","reduce","result","airport","rest","parentMA","find","_ref","metropolitan_area_id","push","ma_name","name","type","flattenDestionations","acc","getNearestAirports","createAsyncThunk","async","api","getPopularAirports","response","axios","post","geo","data","searchAirports","searchValue","sessionKey","text","key","airportLookupSlice","createSlice","initialState","nearestAirports","popularAirports","reducers","extraReducers","builder","addCase","pending","fulfilled","action","payload","selectNearestAirports","airportLookup","selectPopularAirports","module","exports","CATERING_STATUS_PENDING_APPROVAL","CATERING_STATUS_PENDING_SELECTION","CATERING_STATUS_ON_REQUEST","CATERING_STATUS_CONFIRMED","CATERING_STATUS_NOT_REQUIRED","CATERING_STATUS_CODE_0","CATERING_STATUS_CODE_1","CATERING_STATUS_CODE_2","CATERING_STATUS_CODE_3","CATERING_STATUS_CODE_4","CATERING_STATUS_CODE_5","CATERING_STATUS_CODE_6","CATERING_STATUS_CODE_7","CATERING_STATUS_CODE_8","CATERING_STATUS_CODE_9","CATERING_STATUS_CODE_10","CATERING_STATUS_CODE_11","CATERING_STATUS_CODE_12","CATERING_STATUS_CODE_13","CATERING_STATUS_CODE_14","CATERING_STATUS_CODE_15","CATERING_STATUS_CODE_16","CATERING_STATUS_CODE_17","CATERING_STATUS_CODE_18","CATERING_STATUS_CODE_19","cateringStates","NOT_STARTED","PENDING_APPROVAL","PENDING_SELECTION","ON_REQUEST","CONFIRMED","NOT_REQUIRED","CATERING_SERVICE_GENERAL","CATERING_SHARED_ORDER_KEY","CATERING_SHARED_ORDER_LABEL","CATERING_SCREENS","SUPPLIER_LIST_MENU","PASSENGER_QUANTITY_LIST","SUPPLIERS_LIST","isValidJSON","JSON","parse","e","FloatingLabel","props","context","children","style","htmlFor","styles","Object","assign","position","zIndex","top","left","fontSize","fontFamily","lineHeight","pointerEvents","transition","transformOrigin","isFocused","hasValue","transform","getStyle","_jsx","contextTypes","muiTheme","PropTypes","object","isRequired","UnderlineField","underline","borderStyle","borderBottomWidth","bottom","boxSizing","margin","width","underlineStyle","underlineFocus","underlineFocusStyle","getStyles","_jsxs","ErrorText","color","paddingLeft","paddingTop","defaultProps","opacity","height","HintText","LoadLibPhoneNumber","loadPhoneLib","Promise","resolve","reject","window","intlTelInputUtils","get","phoneNumberUrl","TIMEOUT","end","err","document","getElementById","oBody","getElementsByTagName","oScript","createElement","id","appendChild","aa","this","k","a","m","b","split","d","c","execScript","shift","prototype","n","f","Array","apply","p","indexOf","call","Math","max","q","ba","da","h","l","ea","fa","ha","ia","ja","ka","la","g","defaultValue","r","oa","ca","na","w","v","clone","x","u","t","y","Boolean","Number","A","B","C","has","set","Error","pa","D","E","F","G","qa","H","ra","I","sa","J","j","required","ta","ua","$","s","ctor","K","wa","AC","AD","AE","AF","AG","AI","AL","AM","AO","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GT","GU","GW","GY","HK","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TA","TC","TD","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","M","xa","ya","L","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ia","Ja","Ka","La","Ma","Na","search","join","Oa","Pa","Qa","Ra","exec","Sa","Ha","z","va","Ua","E164","INTERNATIONAL","NATIONAL","RFC3966","FIXED_LINE","MOBILE","FIXED_LINE_OR_MOBILE","TOLL_FREE","PREMIUM_RATE","SHARED_COST","VOIP","PERSONAL_NUMBER","PAGER","UAN","VOICEMAIL","UNKNOWN","IS_POSSIBLE","INVALID_COUNTRY_CODE","TOO_SHORT","TOO_LONG","NOT_A_NUMBER","HTTP_HEADERS","deviceInfo","os","navigator","platform","appBuildNr","Accept","HTTP_HEADERS_JSON","HTTP_HEADERS_JSON_PAS","HTTP_HEADERS_XML","PaxOperationCode","Default","Add","Edit","Delete","ChangeDefault","formatCountriesData","map","token","APP_VERSION","ENCRYPTION_SECRET","process","SALT","APP_SOURCE","CONTEXT","DEFAULT_FLAG","SIGNUP_CONTEXT","SIGNUP_CONTEXT_PASSWORD","webservice","globalEnv","GOOGLE_MAP_API_KEY","BASE_URL","BASE_SERVICE_URL","EPISERVER_VERSION","EPISERVER_FIELDS","FORECAST_API_KEY","CUSTOMER_APP_ID","REGISTER_URL","TOPUP_REFERENCE","TOPUP_SUBMITTED","TOPUP_CANCEL_REFERENCE","TOPUP_HISTORY","GET_TOKEN_URL","AUTHENTICATE_URL","FORGET_PASSWORD_URL","FETCH_MEMBERSHIP_PLANS","MEMBERSHIP_WITHOUT_CARD_SIGN_UP","LOGOUT_URL","CHANGE_PASSWORD_URL","FETCH_OFFERS_URL","FETCH_VISITED_AIRPORTS_URL","FETCH_AIRPORT_BY_ID","REQUEST_QUOTE_URL","DOWNLOAD_PRIVATE_FILE_URL","CREATE_COMPANY_URL","VALIDATE_FLIGHT_URL","REQUEST_FLIGHT_2_0_URL","QUOTE_URL","MANAGE_USER_PROFILE","ACCOUNT_MEMBERSHIP_STATUS","FORECAST_URL","HEADER","currentEnv","INVOICES_PER_PAGE","ADD_CREDIT_CARD_URL","GET_CREDIT_CARD_LIST_URL","DELETE_CREDIT_CARD_URL","GET_NOTIFICATION_OPTIONS","UPDATE_NOTIFICATION_OPTIONS","SAVE_BILLING_ADDRESS_URL","TRANSACTIONS_QUANTITY","ON_DEMAND_ACCOUNT_BALANCE_URL","FETCH_ITINERARIES_URL","FETCH_CANCEL_ITINERARIES_URL","FETCH_ITINERARY_DETAILS_URL","FETCH_ENTERTAINMENT_ISSUE_NUMBER","FETCH_ENTERTAINMENT","FETCH_FBO_URL","CREW_INFO_URL","ITINERARY_DETAIL_PDF","FETCH_GROUND_SERVICES_URL","ADD_GROUND_SERVICES_URL","SERVICES_AVAILED_URL","CATERING_STATE_URL","CATERING_PROPOSAL_URL","CATERING_SELECTION_PDF","CUSTOMER_SELECTION_URL","FETCH_MOVEMENT_MESSAGES","FETCH_SINGLE_LEG_PAX","FLIGHT_CANCEL_URL","FETCH_UNBILLED_ACCOUNT_BALANCE","FETCH_PROGRAM_ACCOUNT_BALANCE","FETCH_ACCOUNT_STATEMENTS","DOWNLOAD_ZIP_URL","FETCH_STATEMENT_INVOICES","GET_PDF_FILE_URL","FETCH_ORDER_ID_BY_LEG","FETCH_SINGLE_LEG_FEEDBACK","SAVE_LEG_FEEDBACK","FETCH_MY_QUOTES","GET_BILLING_ADDRESS_URL","SEARCH_PAX_URL","MANAGE_PAX_URL","POST_FILE_URL","GET_PUBLIC_FILE_URL","GET_PRIVATE_FILE_URL","WRITE_USER_SETTINGS","enviorments","PRE_PROD","INTEGRATION","PROD","location","origin","TERMS_URL","TERMS_URL_PAGE","epiSettings","language","POLICY_URL_PAGE","CONFIRM_REGISTER_PAGE_URL","DIRECT_CONFIRM_REGISTER_PAGE_URL","PAF_PAGE_URL","MODIFY_ORDER_PAGE_URL","RAF_PAGE_URL","UPCOMING_ITINERARIES_PAGE_URL","PAST_ITINERARIES_PAGE_URL","CANCELLED_ITINERARIES_PAGE_URL","HOME_PAGE_URL","OFFERS_PAGE_URL","PAS_PAGE_URL","ACTIVE_QUOTES_PAGE_URL","EXPIRED_QUOTES_PAGE_URL","QUOTE_SUMMARY_PAGE_URL","CONTACT_US_PAGE_URL","AIRCRAFT_URLS","LINK_TO_CHALLENGER_350","LINK_TO_CHALLENGER_605","LINK_TO_CHALLENGER_850","LINK_TO_GLOBAL_5000","LINK_TO_GLOBAL_XRS_6000","LINK_TO_GLOBAL_XRS_7500","ENTERTAINMENT_DETAILS_PAGE_URL","ITINERARY_DETAILS_PAGE_URL","TOPUP_HISTORY_PAGE_URL","TOPUP_ACCOUNT_PAGE_URL","DIRECT_ACCOUNT_BALANCE_PAGE_URL","USER_PROFILE_PAGE","Salutation","label","ADMIN_FETCH_TOKEN_INIT","ADMIN_FETCH_TOKEN_SUCCESS","ADMIN_FETCH_TOKEN_FAIL","AUTHENTICATE_TOKEN_INIT","AUTHENTICATE_TOKEN_SUCCESS","AUTHENTICATE_TOKEN_FAIL","POST_CONTACTUS_INIT","POST_CONTACTUS_SUCCESS","POST_CONTACTUS_FAIL","POST_CONTACTUS_REFRESH","FETCH_GEOCODE_INIT","FETCH_GEOCODE_SUCCESS","FETCH_GEOCODE_FAIL","GOOGLE_MAPS_API_LOADED","PLACES_AUTOCOMPLETE_BINDED","FETCH_OFFERS_INIT","FETCH_OFFERS_SUCCESS","FETCH_OFFERS_FAIL","REGISTRATION_INIT","REGISTRATION_SUCCESS","REGISTRATION_FAIL","VERIFY_USER_INIT","VERIFY_USER_SUCCESS","VERIFY_USER_FAIL","FETCH_REGISTER_CODE_INIT","FETCH_REGISTER_CODE_SUCCESS","FETCH_REGISTER_CODE_FAIL","FETCH_TERMS_INIT","FETCH_TERMS_SUCCESS","FETCH_TERMS_FAILURE","FETCH_POLICY_INIT","FETCH_POLICY_SUCCESS","FETCH_POLICY_FAILURE","FETCH_TOKEN_INIT","FETCH_TOKEN_SUCCESS","FETCH_TOKEN_FAIL","FETCH_REGISTRATION_TOKEN_INIT","FETCH_REGISTRATION_TOKEN_SUCCESS","FETCH_REGISTRATION_TOKEN_FAIL","LOGIN_INIT","LOGIN_SUCCESS","LOGIN_FAILURE","LOGIN_NOT_VERIFIED_SUCCESS","FORGOT_INIT","FORGOT_SUCCESS","FORGOT_FAILURE","RESEND_FORGOT_EMAIL","CLEAR_FORGOT_ERROR_MESSAGE","CLEAR_FORGOT_PASSWORD_RESENT_EMAIL_MESSAGE","CLEAR_NOT_VERIFIED_USER","LOGOUT_INIT","LOGOUT_SUCCESS","LOGOUT_FAIL","CHANGE_PASSWORD_INIT","CHANGE_PASSWORD_SUCCESS","CHANGE_PASSWORD_FAILURE","CHANGE_PASSWORD_REQUIRED","FETCH_VISITED_AIRPORTS_INIT","FETCH_VISITED_AIRPORTS_SUCCESS","FETCH_VISITED_AIRPORTS_FAIL","FETCH_AIRPORT_BY_ID_INIT","FETCH_AIRPORT_BY_ID_SUCCESS","FETCH_AIRPORT_BY_ID_FAIL","DIRECT_SIGNUP_INIT","DIRECT_SIGNUP_SUCCESS","DIRECT_SIGNUP_FAIL","FETCH_MEMBERSHIP_INIT","FETCH_MEMBERSHIP_SUCCESS","FETCH_MEMBERSHIP_FAIL","ADD_CREDIT_CARD_INIT","ADD_CREDIT_CARD_SUCCESS","UPDATE_CREDIT_CARD_SUCCESS","ADD_CREDIT_CARD_FAIL","CLEAR_CREDIT_CARD_STATE","GET_CREDIT_CARD_LIST_INIT","GET_CREDIT_CARD_LIST_SUCCESS","GET_CREDIT_CARD_LIST_FAIL","DELETE_CREDIT_CARD_INIT","DELETE_CREDIT_CARD_SUCCESS","DELETE_CREDIT_CARD_FAILURE","VALIDATE_FLIGHT_INIT","VALIDATE_FLIGHT_SUCCESS","VALIDATE_FLIGHT_FAIL","RESET_FLIGHT_ERROR_MESSAGES","REQUEST_FLIGHT_INIT","REQUEST_FLIGHT_SUCCESS","REQUEST_FLIGHT_FAIL","FETCH_ITINERARIES_INIT","FETCH_ITINERARIES_SUCCESS","FETCH_ITINERARIES_FAIL","ITINERARY_DETAILS_INIT","ITINERARY_DETAILS_SUCCESS","ITINERARY_DETAILS_FAIL","ITINERARY_PDF_INIT","ITINERARY_PDF_SUCCESS","ITINERARY_PDF_FAIL","GET_ACCOUNT_STATUS_INIT","GET_ACCOUNT_STATUS_SUCCESS","GET_ACCOUNT_STATUS_FAILURE","AVAIL_OFFER_INIT","AVAIL_OFFER_SUCCESS","AVAIL_OFFER_FAIL","AVAIL_OFFER_QUOTING_NOT_AVAILABLE","UPDATE_QUOTE_CONSTANT","BUY_OFFER_INIT","BUY_OFFER_SUCCESS","BUY_OFFER_FAIL","REQUEST_QUOTE_INIT","REQUEST_QUOTE_SUCCESS","REQUEST_QUOTE_FAIL","CREATE_COMPANY_INIT","CREATE_COMPANY_SUCCESS","CREATE_COMPANY_FAIL","UPDATE_USER_CREATE_COMPANY","FETCH_ENTERTAINMENT_ISSUE_INIT","FETCH_ENTERTAINMENT_ISSUE_SUCCESS","FETCH_ENTERTAINMENT_ISSUE_FAIL","FETCH_ENTERTAINMENT_INIT","FETCH_ENTERTAINMENT_SUCCESS","FETCH_ENTERTAINMENT_FAIL","FETCH_FBO_INIT","FETCH_FBO_SUCCESS","FETCH_FBO_FAIL","UPDATE_USER_REDUCER","FETCH_UNBILLED_INIT","FETCH_UNBILLED_SUCCESS","FETCH_UNBILLED_FAIL","FETCH_RECENT_INVOICES_INIT","FETCH_RECENT_INVOICES_SUCCESS","FETCH_RECENT_INVOICES_FAIL","FETCH_MORE_INVOICES_INIT","FETCH_MORE_INVOICES_SUCCESS","FETCH_MORE_INVOICES_FAIL","FETCH_ACCOUNT_STATEMENTS_INIT","FETCH_ACCOUNT_STATEMENTS_SUCCESS","FETCH_ACCOUNT_STATEMENTS_FAIL","FETCH_STATEMENT_INVOICES_INIT","FETCH_STATEMENT_INVOICES_SUCCESS","FETCH_STATEMENT_INVOICES_FAIL","CLEAR_INVOICE_FILTER","FETCH_ZIP_URL_INIT","FETCH_ZIP_URL_SUCCESS","FETCH_ZIP_URL_FAIL","FETCH_ACCOUNT_STATEMENT_PDF_INIT","FETCH_ACCOUNT_STATEMENT_PDF_SUCCESS","FETCH_ACCOUNT_STATEMENT_PDF_FAIL","CLEAR_PAS_ERROR","TOPUP_REFERENCE_INIT","TOPUP_REFERENCE_SUCCESS","TOPUP_REFERENCE_FAIL","TOPUP_INIT","TOPUP_SUCCESS","TOPUP_FAIL","TOPUP_HISTORY_INIT","TOPUP_HISTORY_SUCCESS","TOPUP_HISTORY_FAIL","CANCEL_REFERENCE_CODE_INIT","CANCEL_REFERENCE_CODE_SUCCESS","CANCEL_REFERENCE_CODE_FAIL","TOPUP_VIEW_ACTION","CLEAR_TOPUP_ERROR","UPDATE_USER_PROFILE_INIT","UPDATE_USER_PROFILE_SUCCESS","UPDATE_USER_PROFILE_FAILURE","FETCH_WEATHER_INIT","FETCH_WEATHER_SUCCESS","FETCH_WEATHER_FAIL","FETCH_CREW_INIT","FETCH_CREW_SUCCESS","FETCH_CREW_FAIL","FETCH_GROUND_SERVICES_INIT","FETCH_GROUND_SERVICES_FAIL","FETCH_GROUND_SERVICES_SUCCESS","FETCH_AVAILED_SERVICES_INIT","FETCH_AVAILED_SERVICES_FAIL","FETCH_AVAILED_SERVICES_SUCCESS","ADD_TRANSPORT_SERVICES_INIT","ADD_TRANSPORT_SERVICES_SUCCESS","ADD_TRANSPORT_SERVICES_FAIL","ADD_ADDITIONAL_SERVICES_INIT","ADD_ADDITIONAL_SERVICES_SUCCESS","ADD_ADDITIONAL_SERVICES_FAIL","SAVE_BILLING_ADDRESS_INIT","SAVE_BILLING_ADDRESS_SUCCESS","SAVE_BILLING_ADDRESS_FAILURE","GET_BILLING_ADDRESS_INIT","GET_BILLING_ADDRESS_SUCCESS","GET_BILLING_ADDRESS_FAILURE","GET_CATERING_STATE_INIT","GET_CATERING_STATE_SUCCESS","GET_CATERING_STATE_FAIL","GET_CATERING_PROPOSAL_INIT","GET_CATERING_PROPOSAL_SUCCESS","GET_CATERING_PROPOSAL_FAIL","CHANGE_CATERING_PROPOSAL_INIT","CHANGE_CATERING_PROPOSAL_SUCCESS","CHANGE_CATERING_PROPOSAL_FAIL","GET_CATERING_PDF_SUCCESS","GET_CATERING_PDF_FAIL","UPDATE_PASSENGER","FETCH_PASSENGER_INIT","FETCH_PASSENGER_SUCCESS","FETCH_PASSENGER_FAIL","STARTED_UPDATING_PASSENGER","FINISHED_UPDATING_PASSENGER","GET_PUSH_NOTIFICATION_INIT","GET_PUSH_NOTIFICATION_SUCCESS","GET_PUSH_NOTIFICATION_FAILURE","UPDATE_PUSH_NOTIFICATION_INIT","UPDATE_PUSH_NOTIFICATION_SUCCESS","UPDATE_PUSH_NOTIFICATION_FAILURE","UPDATE_PUSH_NOTIFICATION_DISABLE_CITY_CHECK","MEMBERSHIP_ACCOUNT_STATEMENT_INIT","MEMBERSHIP_ACCOUNT_STATEMENT_SUCCESS","MEMBERSHIP_ACCOUNT_STATEMENT_FAIL","FLIGHT_CANCEL_INIT","FLIGHT_CANCEL_SUCCESS","FLIGHT_CANCEL_FAILURE","FLIGHT_CANCEL_AFTER_SUCCESS","GET_AIRCRAFTS_INIT","GET_AIRCRAFTS_SUCCESS","GET_AIRCRAFTS_FAILURE","FETCH_MOVEMENT_MESSAGES_INIT","FETCH_MOVEMENT_MESSAGES_SUCCESS","FETCH_MOVEMENT_MESSAGES_FAIL","CLEAR_ERROR_FETCH_ITINERARY","FETCH_ORDER_ID_BY_LEG_INIT","FETCH_ORDER_ID_BY_LEG_SUCCESS","FETCH_ORDER_ID_BY_LEG_FAIL","FETCH_LEG_FEEDBACK_INIT","FETCH_LEG_FEEDBACK_SUCCESS","FETCH_LEG_FEEDBACK_FAIL","SAVE_LEG_FEEDBACK_INIT","SAVE_LEG_FEEDBACK_SUCCESS","SAVE_LEG_FEEDBACK_FAIL","CLEAR_FEEDBACK","FETCH_QUOTES_INIT","FETCH_QUOTES_SUCCESS","FETCH_QUOTES_FAIL","UPDATE_FREQUENT_PAX","UPDATE_ADDED_PASSENGERS","UPDATE_PASSPORT","CLOSE_POPUP","SET_LEG_PASSPORT","SET_LEAD_PASSENGER","UPDATE_SELECTED_PASSENGER","CLEAR_SELECTED_PASSENGER","REMOVE_PASSPORT","REMOVE_USER","INITIALIZE_POPUP","isLoading","content","user","isLoggingIn","isLoggedIn","isLoggingOut","isForgotEmailSent","changePasswordRequired","forgotPasswordErrors","isPasswordChangeLoading","isDirectFromProfile","userNotVerified","isAccountDataFetched","isAccountDataFetchedLoading","isAccountDataFail","addressSaved","authenticatedUser","isUserVerified","isVerifyUserLoading","isVerifyUserError","verifyUserError","billingAddress","isProfileUpdateLoading","isProfileUpdated","isProfileUpdateError","profileUpdateErrorCode","profileUpdateError","passportUpdateMessage","disablePushNotificationCities","isAccountDataFetchedError","accountDataError","userHasLoggedOut","isLogOutFailed","cities","placeId","cityName","countryName","offers","totalOffers","slice","isOfferFetched","regionId","countryData","COUNTRY_NAME","THREE_LETTER_CODE","TWO_LETTER_CODE","REGION_NAME","REGION_ID","locationDisabled","isGoogleMapsApiLoaded","isGooglePlacesAutocompleteBinded","isAirportsLoading","isAirportByIdLoading","visitedAirports","visitedAirportsFinder","isAirportsFetched","isValidateFlightLoading","validateFlightMessages","isProposalOrRestriction","legArray","isContractSelected","allowAircraftSelect","allowAircraftErrMessage","accountId","isRequestFlightLoading","isCreateCompanyLoading","orderIdentifiers","quoteContent","requestFlightSuccess","requestQuoteSuccess","buyOfferSuccess","orderId","orderStatus","confirmationMessage","isTokenLoading","isTokenError","tokenError","isRegistrationTokenLoading","adminToken","isadminTokenLoading","isadminTokenError","adminTokenError","isTokenValid","isPasswordChange","isTokenAuthLoading","isTokenAuthError","tokenAuthError","isUserRegistered","isMessageSent","memberPlans","creditCards","isDeleted","isAdded","appendCreditCard","newCard","allCards","keys","ids","defaultId","alias","isDefault","cardId","updateCreditCard","updatedCard","updatedCardAlias","removeCreditCard","deletedCardAlias","index","splice","paymentDetails","isSuccess","isDirectSignup","USER_ACCESS_TYPES","GUEST","FSP","ON_DEMAND","MEMBER","getPreferredAccount","account","isPreferred","MEMBERSHIP_STATUS","NEW","ACTIVE","EXPIRED","SUSPENDED","EXITED","NOT_FULFILLED","ADHOC","TIMEOUT_CODE","SERVER_UNRESOLVED","EMAIL_EXISTS","INVALID_ACCOUNT","ACCOUNT_NOT_FOUND_CODE","UNAUTHORIZED","code","BAD_REQUEST","INTERNAL_SERVER_ERROR","LEG_IN_PAST_CODE","PERMISSION_DENIED_CODE","UPDATE_FIRST_CODE","MEMBERSHIP_EXPIRED_CODE","PHONE_NUMBER_EXISTS","USER_EXISTS","GENERIC_EXCEPTION_CODE","INVALID_FEEDBACK_CODE","USER_UNAUTHENTICATED_CODE","LOGIN_FAILED_CODE","PAYMENT_NOT_DEFINED_CODE","INVALID_DETAILS_CODE","FEEDBACK_EXIST","MULTI_LEG_OFFER_QOUTING_NA","ALREADY_LINKED_WITH_COMPANY","INVOICES_NOT_FOUND","RECORD_NOT_FOUND","PHONE_NUMBER_NOT_FOUND","USER_NOT_FOUND","DEVICE_ID_NULL","PHONE_NUMBER_NULL","USERNAME_NULL","RECORD_NOT_UPDATE","ACCOUNT_BLOCKED","INVALID_SIGNATURE","TIME_MISMATCH","MISSING_PARAMETER","USER_ALREADY_REGISTERED","INVALID_SOURCE","INVALID_TIME","CANNOT_ACCESS_STATEMENTS_CODE","getUserAccessType","accessType","getToken","userToken","store","getState","getUser","getMembershipStatus","membershipStatus","getAccountId","getVJAccountId","accounts","vjAccount","filter","typeId","isVJ2","isMembershipActive","isFspDirect","isFSP","hasVjDirectAccount","isMembershipUser","isAdhoc","isGuest","removeOffersForFSP","getFromLocal","jQuery","remove","parent","prev","isFSPAccountExpire","localStorageKey","customerId","existInLocal","isVJDirectAccountExpire","canAccessStatement","redirect","URL","open","Drawer","React","Component","render","Fragment","class","href","className","logoutUrl","method","SOMETHING_UNEXPECTED","onClick","LOGIN_FAILED","MIN_HOUR_EXPECPTION","AIRCRAFT_NOT_IN_CONTRACT","USER_PROFILE_SUCCESSFULLY_UPDATED","PASSPORT_UPDATE_MESSAGES","CREDIT_CARD_MESSAGE","BACK_TO_OFFER","OFFER_NOT_APPLIED","THANK_YOU_REQUEST_QUOTE_ADHOC","THANK_YOU_REQUEST_QUOTE_VJ","THANK_YOU_OFFER","NO_FLIGHT_LEG_ORDER_FOUND","encryptData","plainTextParam","CryptoJS","MD5","plainText","enc","Utf8","iv","lib","WordArray","random","encrypted","AES","encrypt","ciphertext","Base64","handleServerErrors","statusCode","parser","xml2js","Parser","explicitArray","valueProcessors","parseNumbers","processors","parseBooleans","parserPascalCase","tagNameProcessors","firstCharLowerCase","parseString","_len","args","_key","Builder","xmldec","version","encoding","standalone","garanteeArray","obj","isArray","encodeData","encodeURIComponent","forEach","preferredContract","includes","membershipType","membershipTypeId","findMembershiptAccountByStatus","accountMembershipStatus","findActiveMembershipAccount","findPendingMembershipAccount","findAdhocMembershipAccount","accountsAircraftList","aircrafts","aircraftTypeDtos","aircraft","aircraftTypeId","number","parseFloat","parsePascalCaseString","_len3","_key3","legStatus","QUOTED","OPTION","READY","FLYING","LANDED","COMPLETED","CANCELLED","CANCELLATION_PENDING","NOSHOW","UNCONFIRMED","REQUESTED","ITINERARY_TYPES","EMPTY_MESSAGE","MULTI_LEG","RETURN_LEG","SERVICE_AVAILED_MESSAGE","AS_DETAIL_PLACEHOLDER_EMPTY","GROUND_TRANSPORT_SERVICE","ADDITIONAL_SERVICE","parseXmlStringToJson","xmlString","jsonData","_this","parserIgnoreNumber","parserPascalCaseIgnoreNumber","_len2","_key2","builderXmlRequest","buildObject","jsonToXml","numberWithCommas","num","AircraftsList","images","classification","smallUrl","largeUrl","getAircraftByField","searchText","aircraftsArray","field","aircraftsList","getAircraftByAllFields","fields","PAST_FLIGHT_MIN_HOURS_CRITERIA","getItineraryLegDates","firstLeg","lastLeg","item","dateFormat","dates","departureAirportTimeLocal","legs","arrivalAirportTimeLocal","populateLegsForMap","temp","itinerary","arrivalAirportId","departureAirportId","arrivalAirport","departureAirport","singleLegs","legId","flightLegExtIdentifier","getLegLocalTime","localTime","getLegDuration","mins","floor","getFlightId","leg","isCancelledLeg","isPastLeg","arrivalTimeUTC","arrivalAirportTimeUTC","currentTimeUTC","getOrderStatus","sortUpcomingItinerariesLegs","departureAirportTimeUTC","sortPastItineraries","valueA","valueB","getItineraryLegStatus","currentLeg","itineraryType","errorsItineraries","pastItineraries","cancelItineraries","upcomingItineraries","isLoadMorePast","isLoadMoreUpcoming","isLoadMoreCancelled","isLoadingMorePastItineraries","isLoadingMoreUpcomingItineraries","isLoadingMoreCancelledItineraries","isLoadingPastItineraries","isLoadingUpcomingItineraries","isLoadingCancelledItineraries","allLegs","orderType","itineraryDetailsError","orderExtIdentifier","DATE","MONTH_YEAR","SHORT_MONTH_YEAR","YEAR","SHORT_MONTH","instance","Helpers","refs","copy","output","addRealMonth","setDate","years","months","days","guid","s4","getValue","getFlightDuration","deptAirport","arriveAirport","aircraftObj","cruiseSpeed","speed","speedBlock30KPH","speedFirst30minBlock","speedBlock60KPH","speedSecond30minBlock","sb60Distance","sb30Distance2","taxiTimeMinutes","distanceToGo","getAirportDistance","roundTo5Minutes","GreatCircle","distance","latitude","longitude","getCurrentTimestamp","now","Date","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","minutes","zeroPad","round","roundUp5","ceil","roundUpTo","roundUpto","places","zero","findAndRemove","array","property","getFlagClass","iso2","flagClass","size","stringify","getFutureDateOffset","getMonthName","MonthIndex","month","mIndex","roundUp5MinutesMoment","aux","timeDiff","getLatestTimeOfAirport","airportObj","utcoffset","utcOffset","offset","findOffset","generateRandomKey","redirectTo","hash","capitalizeFirstLetter","getAirportDisplayText","icao","getLegStatusString","statusStr","getAirportSelectedText","isGuid","getArrivalTime","departTime","deptOffset","offsetDiff","timezones","arrayOffset","getzoneOffset","zone","guaranteeArray","hasOwnProperty","isBetween","dstFromTimeUtc","dstToTimeUtc","isSame","dstUtcOffset","standardUtcOffsetMinutes","effectiveFromTimeUtc","effectiveToTimeUtc","capitalizeWord","word","getDaysDiff","depart","arrival","date1","getUtcDateObj","date2","dayDiff","abs","daysInMonth","getYear","truncateStr","len","useWordBoundary","isTooLong","year","isoString","mom","getTime","isEditableLeg","departureAirportDetail","isEditable","timeZoneOffset","deptUtcObj","setTime","toISOString","satisfy24HoursCheck","current","TIME_TO_SHOW_CREW","getCountryFromCode","countryObj","CountriesList","getStandardDateFormat","dateObj","lastFocused","scrollFunctionForTable","scroll","element","target","maxHorizontalScroll","scrollWidth","clientWidth","scrollPosition","scrollLeft","addClass","removeClass","isObject","isEmpty","passportActiveFilter","passport","isActive","normalizePassports","passports","init","previous","passportId","expiry","isInvalid","isOnHands","isoIssuedByCountry","isoPassportIssuedByCountry","passportCountry","issuedByCountry","passportIssuedByCountry","other","isUpdated","normalizePassport","mergePassports","oldPassArray","newPassArray","arr3","paxPass","uniquePass","uniqueIds","existingPassInd","uniquePassports","mergePassportbyPax","paxinfoDev","freqPaxCache","activeLegPax","cachePax","activePaxCurrent","exists","cachePaxCurrent","comparePassengers","isPassportExpired","dateToExpire","getCurrentTimezone","timezone","getUtcOffsetMinutes","removeOffsetMinutes","offsetMinutes","subtract","getGender","pax1","pax2","p1","passengerId","extId","passengerExtIdentifier","p2","getAnnouncedPax","activeLeg","flightPassengers","passengers","remainingPax","numberOfPassenger","passengerCount","announcedPax","paxLabel","paxCount","normalizePaxForCateringData","pax","leadPassenger","isApproved","passengerFirstName","passengerLastName","mergePassenger","oldPaxObj","newPaxObj","firstName","lastName","profilePicture","genderId","gender","emailAddresses","getPassengerId","passenger","generateFrequentPaxList","addedPax","cachedfreqPax","frequentPaxList","elem","pos","setLegPassport","legPassport","isLegPassport","tempDetailPax","paxObj","passengerObj","truncatedName","fullName","genderMap","phoneNumbers","formatDetailPax","isExpired","isPassExpiredBeforeDept","deptDate","isPassportExpiredBeforeDept","deptAirportTimeUTC","paxName","formattedPaxObj","sortPassengers","sortedPassengers","unshift","setPaxLegPassport","filterPassports","isLeg","setPaxDefaultPassport","setLeadPax","isChanged","isLoadingPassenger","updatePassenger","emailAddressesNormalizer","emailAddress","phoneNumbersNormalizer","phone","passportFilesNormalizer","file","fileLocation","fileName","fileUrl","passportsNormalizer","issuedOnDate","passportFiles","imageUrl","visa","currentPaxNormalizer","username","personId","passengerNationality","personPhoneNumbers","imageURL","passengerPictureUrl","legPassportsNormalizer","passportFileDtos","sourcePaxNormalizer","legPaxNormalizer","isInformationUpdated","isInformationUpdateds","frequentPax","paxDetail","deletedPax","selectedPassengerId","count","swift","bankName","currency","topUpAmount","to","iban","referenceCode","topUpId","paymentMethod","topUpStatusDesc","openPopUpMessage","topUpReferenceLoader","topUpSubmittedLoader","topUpCancelLoader","disableAmountField","topUpError","topUpIds","topUpContent","membershipAccount","topUpHistoryLoader","topUpHistoryError","membershipAccountLoading","accountData","moreTransactions","loadingMoreTransactions","directAccoutBalanceError","isDirectAccountBalanceError","isMemebershipAccountFetched","isLoadingCrew","isErrorCrew","isLoadingEntertainment","itineraryPdfLoading","itineraryCancellationIsLoading","itineraryCancellationMessage","isQuoteLoading","isQuoteLoadMoreLoading","activeQuotes","expiredQuotes","quoteError","addQuotes","oldQuotes","newQuotes","_oldQuotes","quote","currentDate","mergeInvoices","currentFlights","billedFlights","currentFlight","flight","invoice","noMoreInvoices","isActiveContract","contractPeriodStart","contractPeriodEnd","periodStart","periodEnd","unbilledFlights","loadingUnbilledFlights","unbilledFlightsError","loadingBilledFlights","billedFlightsError","loadingMoreBilledFlights","moreBilledFlightsError","accountStatementInfo","accountStatements","accountStatementsError","loadingAccountStatements","statementInvoices","statementInvoicesLastPage","loadingStatementInvoices","loadingMoreStatementInvoices","statemenetInvoicesError","loadingZipUrl","zipUrlError","loadingPdf","pdfError","isLoadingMovementMessages","isLoadingAvailedServices","isLoadingAdditionalServices","isErrorAvailedServices","isErrorAdditionalServices","groundServices","groundServicesAdd","isLoadingGroundServices","isLoadingAddGroundServices","isErrorGroundTransport","isAircraftsLoading","feedback","isFeedbackLoading","feedbackError","isSavingFeedback","getCateringCounter","currentCount","notifications","isFetched","isLoadingWeather","isLoadingFbo","rootReducer","combineReducers","stateObj","types","user_email","userObjectInStore","saveToLocal","isSendingForgotEmail","resentForgotPassword","changePasswordErrors","changePasswordSuccess","changePasswordErrorText","isProfile","errorCode","userObject","personPhoneNumber","geocode","region","values","googleMap","itineraries","isLoadMore","upcomingOrders","pastOrders","cancelledOrders","currentUpcoming","currentPast","currentCancelled","pastLegs","upcomingLegs","cancelledLegs","pastLeadPassenger","upcomingLeadPassenger","cancelledLeadPassenger","orderKey","orderIdentifier","orderLegId","legObj","leadPassengerName","isCancelled","isPast","orderExist","order","departureTime","arrivalTime","mobilePreviewCssClass","isUpdate","sepratePastUpcomingLegs","LoadingKeys","termsPolicy","validateFlight","PAFData","flightDetails","identifiers","mustChangePassword","registration","resendCode","success","contactus","membersPlanReducer","creditCardReducer","directSignupReducer","paymentMethodDetails","pushNotificationReduer","updatedNotification","updatedCities","groundServicesReducer","itineraryDetails","legsData","PASData","_ref2","statementInvoicesError","loadMore","statementInvoicesData","invoices","lastPage","errorField","topUp","topUpHistory","descSortArray","topUps","directAccountBalance","lineItems","crewDetails","crewData","crew","flightLegId","crewSuccess","weather","weatherData","isLoadingArrivalWeather","isLoadingDepartureWeather","arrivalWeather","departureWeather","arrivalWeatherFetched","departureWeatherFetched","movementMessages","movementMessagesData","movementMessagesFetched","itineraryPdf","itineraryPdfUrl","availedServices","availedServiceData","availedAdditionalServicesData","availedService","availedASData","availedGTData","cateringDetails","newState","isCateringLoading","cateringProposal","passengerData","normalizedData","statePassengers","passengerPopup","deletedPassengers","currentUser","currentUserPax","currentInCache","passengerIds","isNew","pass","isFrequent","selectedpax","isSoftlyAdded","paxId","isNewlyAdded","isSearched","fbo","fboData","fboFetched","cancelItinerary","customerFeedback","feedbackData","feedbackSuccess","quotes","quoteType","entertainment","entertainmentData","entertainmentIssue","airportLookupReducer","persistedState","userState","tokenState","registrationState","checkAndRestoreFromLocal","middlewareEnhancer","applyMiddleware","thunkMiddleware","composedEnhancer","composeWithDevTools","createStore","withStore","WrappedComponent","Provider","IsAuthenticated","pathname","route","connect","normalizeParsedToken","vjResponse","decryptSingupKeys","DECRYPTED_SIGNUP_CONTEXT","decrypt","DECRYPTED_SIGNUP_CONTEXT_PASSWORD","adminTokenPromiseInprogress","adminTokenSource","dispatch","uniqueKey","adminTokenPromise","fetchAdminTokenInit","then","normalizedToken","fetchAdminTokenSuccess","fetchAdminTokenFail","catch","errors","fetchAdminToken","authenticateTokenPromiseInprogress","authenticateTokenSource","authenticateTokenPromise","reqPayload","credentials","attributes","devicePushId","authenticateTokenInit","put","responseHeader","authenticateTokenFail","normalizedAuthenticateResponse","normalizeAuthenticationResponse","responseBody","authenticateTokenSuccess","authenticateTokenAction","contactUsPromiseInprogress","postContactUsForm","param","contactUsPromise","postContactUsInit","CONTACTUS_URL","formData","FormData","contactUsSuccess","append","postContactUsSuccess","postContactUsFail","clearReducer","postContactUs","fetchGeocodeInit","fetchCountryGeocode","onGoogleMapsApiLoaded","onPlacesAutocompleteBinded","normalizeOffers","offer","isOneWay","aircraftId","availableIn","departureAirportPlaceId","maxGroundTimeInHours","maxLegs","operatingCompanyId","operatingCompanyName","segmentEnd","segmentStart","sortDate","tailNumber","validFrom","validTo","amount","brokerValidFrom","brokerValidTo","emptyLegId","flightTimeMinutes","fspValidFrom","fspValidTo","isEmptyLeg","maxArrivalTime","maxDepartureTime","minArrivalTime","minDepartureTime","normalizeOffer","totalCount","fetchOffersPromiseInprogress","fetchOffers","pageNum","pageSize","fetchOffersPromise","fetchOffersInit","offersPayload","headers","parsedData","responseDto","fetchOffersFail","normalizedOffers","fetchOffersSuccess","verifyUserSource","verificationCode","verifyUserInit","verifyData","source","responseHeaderDto","verifyUserFail","console","log","verifyUserSuccess","responseBodyDto","registrationInit","registrationSuccess","registrationFail","registrationAction","registrationSource","req","deviceType","osVersion","privacyConsent","agreementCheckbox","salutation","subscription","marketingCheckbox","normalizeRegisterRequestPayload","normalizedResponse","fleet","externalAppUserId","normalizeRegisterResponse","requestPayload","resendRegisterCode","resendRegisterCodeInit","resendRegisterCodeFail","resendRegisterCodeSuccess","tokenPromiseInprogress","tokenSource","isRegistrationFlow","tokenPromise","fetchRegistrationTokenInit","fetchTokenInit","fetchRegistrationTokenSuccess","fetchTokenSuccess","fetchRegistrationTokenFail","fetchTokenFail","fetchToken","firstValue","secondValue","LEG_ARRAY","USER_REDUCER","REGISTER_VIA_PAF","LOGIN_VIA_PAF","TOP_UP_STATUS","IS_OFFER_FLOW","IS_FSP_VALIDATED","IS_VJ_VALIDATED","QUOTE_OBJECT","normalizeBillingAddressResponse","billingAddresses","preferredBillingAddress","addressableName","postCode","postalCode","buildPassportRequest","handleError","authenticateLogin","dataEncripted","loginFailure","isChangedPassword","passportDataNormalized","isChangePasswordRequired","personalData","normalizePersonalData","userPreferences","userVerificationStatusCode","verificationStatusCode","companyBaseEmail","companyBaseNumber","preferredAircraft","setTimeout","loginNotVerifiedSuccess","isUserVerifiedAfterLogin","loginSuccess","getAccountStatusAction","getAircraftsAction","changePassword","changePasswordInit","resetPassword","HttpStatus","jsonResponse","newUserObject","changePasswordFailure","updateUserProfileData","paxOperationId","updateUserProfileDataInit","successMessage","params","updatedPassengersList","passengerEmail","mDateOfBirth","passengerDob","changedPhoneNumbers","changedPhoneNumber","oldPhoneNumber","newPhoneNumber","passengerManageRequest","updated","parseErr","updateUserProfileDataFail","currentEmail","emailObj","normalizePassenger","updateUserProfileDataSuccess","getBillingAddressPromiseInprogress","loginInit","clearNotVerifiedUser","forgotInit","forgotSuccess","forgotFailure","forgotAction","isResending","resendForgotEmail","errJson","forgotPassword","changePasswordAction","logoutInit","logoutSuccess","logoutFail","saveBillingAddressInit","saveBillingAddressSuccess","saveBillingAddressFailure","getBillingAddressInit","getBillingAddressSuccess","getBillingAddressFailure","saveBillingAddressAction","options","saveBillingAddress","loginAction","login","logoutAction","removeFromLocal","logout","getBillingAddress","getBillingAddressPromise","responseData","companyAddressDtos","airportList","cityAndCountry","visitedAirportsPromiseInprogress","airportByIdPromiseInprogress","fetchVisitedAirportsInit","fetchVisitedAirportsSuccess","fetchVisitedAirportsFail","fetchAirportByIdInit","fetchAirportByIdSuccess","fetchAirportByIdFail","fetchAllVisitedAirports","visitedAirportsPromise","normalizedAirports","getAirportById","fetchAirportById","airportIds","airportByIdPromise","payLoad","airportIdList","normalizedAirport","normalizeLegData","newLegArray","legItem","singleLeg","defaultDurationMinutes","aircraftTypeName","requestedAircraftTypeName","aircraftTailNumber","operatorTailId","operatorTailName","within24Hours","aircraftCode","uniqueIdentifier","normalizeItineraryListingData","fetchItinerariesInit","fetchItinerariesSuccess","fetchItinerariesFail","clearErrorFetchItinerary","fetchAllItineraryListing","fetchItineraryListing","myItineraries","itineraryDtos","itineraryLeg","itinerarydetailsPromiseInprogress","fetchItineraryDetailsSource","itineraryDetailsPromise","itineraryDetailsInit","itineraryDetailsFail","sepratedData","pastItinerary","upcomingItinerary","cancelledItinerary","seprateDetailPastUpcomingLegs","itineraryDetailsSuccess","fetchOrderIdByLegPromiseInprogress","itineraryPdfPromiseInprogress","fetchItineraryPdfSource","itineraryPdfPromise","itineraryPdfInit","itineraryPdfSuccess","itineraryPdfFail","fetchItineraryDetails","fetchOrderIdByLegInit","fetchOrderIdByLegSuccess","fetchOrderIdByLegFail","fetchOrderIdByLeg","identifier","fetchOrderIdByLegDetails","fechOrderIdByLegPromise","crewPromiseInprogress","fetchCrewSource","crewPromise","fetchCrewInit","fetchCrewFail","fetchCrewSuccess","crewInfos","normalizeQuoteResponse","isSingleLeg","prices","price","refrenceIds","quoteOfferId","costsBreakdown","costBreakdown","vatPrice","description","flightLegs","flightLeg","requestedAircraftTypeId","opportunityId","paymentAdditionalCharges","normalizePaymentAdditionalCharges","paymentAdditionalCharge","normalizeQuote","quoteId","createGuid","PAYMENT_METHODS_FOR_BOOKING","MEMBERSHIP_FLIGHT_REQUEST","Validator","validPhoneNo","phoneno","onlyAlphaNumeric","stringToTest","validRequired","isInvalidDate","validPax","validAircraft","validTimeZone","validAgreement","check","matchPassword","pass1","pass2","checkCharacterLimit","maxLimit","minLimit","validateDuration","aircraftTime","isSameMinDate","dateOne","dateTwo","isSameDate","isDateValid","val","quoteQueryEmail","quoteQueryEmailSubject","mapLegStatus","calcDepartAndArrivalTime","legToUpdate","tmpObj","datetimeString","selectedAircraft","validation","errorOn","minHoursException","calcFlightDuration","isNotComingFromOffer","fuelStopErr","maxFlightTime","fuelStop","sortLegs","leg1","leg2","normalizeFlightLegIdentifiers","normalizeLegStatus","createAvailOfferPayload","passengersCount","toJSON","legsReqAvailOfferPayload","createBuyOfferPayload","quoteDetails","paymentOptionId","creditCard","isQuote","totalAmount","mode","ccAlias","ccCode","legBuyOfferPayload","availOfferInit","availOfferSuccess","availOfferFail","availOfferQuotingNotAvailable","buyOfferInit","buyOfferFail","availOfferQuote","availOffer","buyOfferQuote","paymentOption","ResponseBody","header","textToReturn","flightOrderId","buyOffer","getFiles","fileURL","shouldDownload","postFiles","ItineraryPassengerSource","transformPassport","searchPax","term","passengerRestDtoes","managePassengers","deleted","deletedXmlStructure","newXmlStructure","existingUpdateXmlStructure","passportXmlStructure","deletedXml","newXml","existingUpdateXml","passportsXml","finalXml","pas","uploadImage","form","ext","pop","userId","timestamp","relativeUrl","UserSettingsSource","writeUserSettings","basicXml","allSettings","planFSPFlights","isEdit","requestFlightInit","broker","isBroker","isSimulateUser","contactXml","orderXml","legsXml","totalLegs","requestFlightFail","passengerInfo","startedUpdatingPassenger","Source","settingsInfo","SettingsSource","paxToCache","passengerParam","freqPax","mergePax","finishedUpdatingPassenger","normalizeRestrictions","restrictions","restriction","normalizeProposals","proposals","changes","proposal","prop","payloadFSP","requestedAircraftId","requestedAircraftTailNumber","validateFlights","validateFlightInit","flightValidationRequestDto","validateFlightFail","validateFlightResponseDto","validateFlightSuccess","requestAllFSPFlights","requestFSPFlights","introductionToSuggestion","normalizeValidateFlightResponse","accountStatusInProgress","getAccountStatusSource","getAccountStatusPromise","getAccountStatusInit","getAccountStatusFail","normalizedAccountStatus","baseCompanyEmail","baseCompanyNumber","enabled","verificationStatusDescription","normalizeAccountStatus","accountStatusDto","getAccountStatusSuccess","userObj","normalizeCreditCard","cardBrandId","cardNumberLastFour","getCreditCardList","getCreditCardListInit","getCreditCardListFail","CreditCardsList","normalizedCreditCards","getCreditCardListSuccess","addCreditCardInit","addCreditCardSuccess","updateCreditCardSuccess","addCreditCardFail","deleteCreditCardInit","deleteCreditCardSuccess","deleteCreditCardFailure","addCreditCardAction","AddCreditCardSource","creditCardPayload","defaultChecked","creditCardRequestDto","creditCardResponseDto","normalizedCreditCardResponse","isSetDefault","getAllCreditCards","deleteCreditCardAction","deleteCreditCardSource","DirectSignupSource","directSignupInit","normalizedRequestPayload","SignUpDto","directSignupFail","signUpResponseBody","signUpResponse","statusMembership","accessTypeId","normalizeSignupWithoutCardResponse","directSignupSuccess","requestQuote","userInfo","requestQuoteInit","parentQuoteId","requestQuoteFail","createCompany","createCompanyInit","createCompanyFail","createCompanySuccess","updatedUser","updateUserCreateCompany","normalizeInvoice","depTimeLocal","deptUtc","fileKey","invoiceId","invoicePk","invoicedLineType","legHoursDeducted","toFixed","totalInvoiceHours","sortInvoices","normalizefleets","fleets","accountName","contractEndDate","contractPeriodId","contractStartDate","hoursFlown","hoursForYear","remainingHours","aircraftName","aircraftRank","rank","normalizeFleet","normalizeUnbilled","flights","contractAircrafts","airTypeId","arrAirId","arrAirTimeLocal","depAirId","depAirTimeLocal","depAirTimeUTC","normalizeUnbilledFlights","normalizeUnbilledAircrafts","fetchUnbilledPromiseInProgress","fetchBilledPromiseInProgress","fetchAccountStatementsInProgress","fetchStatementInvoicesInProgress","zipDownloadInProgress","fetchPdfInProgress","fetchUnbilledFlights","fetchUnbilledFlightsInit","fetchUnbilledPromise","fetchUnbilledFlightsFail","fleetListResponseDto","fleetDto","fetchUnbilledFlightsSuccess","fetchBilledFlights","fetchMoreInvoicesInit","fetchRecentInvoicesInit","fetchRecentInvoicesPromise","invoiceHoursResponse","fetchMoreInvoicesSuccess","fetchRecentInvoicesSuccess","fetchMoreInvoicesFail","fetchRecentInvoicesFail","fetchAccountStatements","fetchAccountStatementsInit","fetchAccountStatementsPromise","accountStatementInfoDtoList","accountStatementDtoList","fetchAccountStatementsFail","accountStatementsData","_ref3","infoList","periodNumber","statementsList","createdDate","totalBilledHours","accountStatementPDFFile","normalizeAccountStatements","fetchAccountStatementsSuccess","fetchStatementInvoices","accountStatementId","pageNumber","fetchStatementInvoicesInit","fetchStatementInvoicesPromise","accountStatementDetails","fetchStatementInvoicesFail","_ref4","invoiceDate","billedHours","normalizeStatementInvoices","fetchStatementInvoicesSuccess","fetchZipUrlInit","fetchZipUrlSuccess","fetchZipUrlFail","fetchZipUrlAction","fetchZipUrl","entries","curr","fetchZipUrlPromise","fetchAccountStatementPdfInit","fetchAccountStatementPdfSuccess","fetchAccountStatementPdfFail","fetchAccountStatementPdfAction","fetchAccountStatementPdf","fetchPdfPromise","body","fetchEntertainmentPromiseInprogress","fetchEntertainmentIssueInit","fetchEntertainmentIssueSuccess","fetchEntertainmentIssueFail","fetchEntertainmentInit","fetchEntertainmentSuccess","fetchEntertainmentFail","fetchEntertainmentIssueNumber","fetchEntertainmentIssue","fetchEntertainmentDetails","issueNumber","fetchEntertainmentPromise","fetchEntertainment","fetchPushNotification","getPushNotificationInit","getPushNotificationFailure","normalizedPushNotification","cityId","notification","notificationId","getPushNotificationSuccess","updatePushNotificationInit","updatePushNotificationSuccess","updatePushNotificationFailure","updateDisableCitiesCheck","updatePushNotificationAction","disableToggle","isCitiesDisable","normalizeRequestUpdateNotifications","notificationPayload","cityPayload","updatePushNotifications","normalizeLeg","arrivalAirportIcao","arrivalAirportName","departureAirportIcao","departureAirportName","normalizeLineItems","lineItem","documentDate","documentNumber","invoiceNumber","newLegs","normalizeFlightLegs","MembershipAccountStatementSource","currentLength","MembershipAccountStatementInit","ResponseDto","MembershipAccountStatementFail","MembershipAccountStatementSuccess","invoiceAndBalanceResponse","newAccount","accountTypeId","accountDisplayName","currentBalance","normalizeAccount","MembershipAccountStatement","fetchFboPromiseInprogress","fetchFboInit","fetchFboSuccess","fetchFboFail","fetchFboDetails","fetchFbo","fetchFboPromise","addTransportServicesFail","addAdditionalServicesFail","servicesAvailedFail","addGroundServices","serviceXml","transportServiceId","onDeparture","notes","transportServiceTitle","AdditionalServicesPayload","serviceId","serviceType","addTransportServicesInit","addAdditionalServicesInit","addTransportServicesSuccess","addAdditionalServicesSuccess","serviceAvailed","servicesAvailedInit","transportSummaryDtos","otherServiceDtos","servicesAvailedSuccess","fetchGroundServicesInit","fetchGroundServicesSuccess","servicesOptions","fetchGroundServicesFail","fetchAllGroundServices","fetchGroundServices","serviceTypes","flightCancelSource","userType","legAircraft","reqPayLoad","flightRequestForCustomer","referenceOrderId","aircraftType","flightPayload","flightCancelInit","flightCancelSuccess","flightCancelFail","movementMessagesPromiseInprogress","fetchMovementMessagesSource","movementMessagesPromise","fetchMovementMessagesInit","fetchMovementMessagesSuccess","fetchMovementMessagesFail","weatherPromiseInprogress","fetchWeather","lat","long","weatherPromise","fetchWeatherInit","weatherDetail","currently","icon","summary","temperature","centigrade","normalizeForecast","fetchWeatherSuccess","fetchWeatherFail","normalizeSelectionList","selection","quantity","customerNotes","toShare","normalizeCategories","category","cateringCategory","itemList","orList","orderRequest","normalizeItemList","cateringType","unit","service","selectionList","orSelectionList","orderRequestSelection","normalizeSupplier","supplier","categories","orCategoryList","orderRequestCategory","services","normalizeServices","serviceProviderId","supplierDisplayName","supplierName","normalizeCateringOrderUtil","cateringObj","cateringModuleDetail","orSupplierList","orderRequestSupplier","normalizeCateringUtil","routeParams","cateringStatus","cateringModuleState","stateName","stateId","passengersInfo","normalizeData","inProgressProposals","inProgressState","getCateringState","flightId","cateringStatePromise","actions","combineResponse","responseObj","getCateringProposal","proposalPromise","fetchCateringSelectionPDF","fileUrlResponse","getCateringStateFail","getCateringStateSuccess","getCateringProposalInit","getCateringProposalFail","getCateringProposalSuccess","changeCateringPropsalInit","changeCateringPropsalFail","changeCateringPropsalSuccess","getCateringPDFInit","getCateringPDFFail","getCateringPDFSuccess","changeCateringProposalAction","cateringSelection","changeCateringSelection","customerSelections","customerSelectionEntries","customerSelectionEntry","cateringSources","inprogressLegPaxPromise","fetchSingleLegPax","legKey","getLegKey","legPaxPromise","normalizePassengerUtil","maxPax","maxNumberOfPassengers","passengersInfoResponseDtoList","updatePassengers","fetchPassengerInit","fetchPassengerSuccess","fetchPassengerFail","fetchPassengers","getAircraftsInit","getAircraftsFailure","SUBMIT_CUSTOMER_FEEDBACK","GLITCH_TYPE","catering","transportation","overall","normalizeFeedback","feedbackObject","feedbackRating","categoryRatingTypeId","comments","feedbacksResponse","glitchTypeId","feedbackTypeId","feedbackDescription","saveLegFeedbackSource","saveLegFeedbackInit","constructParamsForCall","servicesFeedbacks","feedbackIdentifier","feedbacks","rating","glitchOriginId","desc","feedbackReporterId","immediateAttention","noramlizeSaveFeedbackParams","saveLegFeedbackFail","noramalizedFeedback","saveLegFeedbackSuccess","fetchLegFeedbackInit","fetchLegFeedbackSuccess","fetchLegFeedbackFail","fetchLegFeedback","paramsObj","flightLegIds","fetchLegFeedbackSource","getExpiryDate","legsList","_b","newExpiryDate","expiryDateViaDepartureDate","normalizeMyQuotes","normalizedItineraries","asMinutes","currencyCode","requestedDate","quotedDate","fetchQuotesPromiseInprogress","fetchQuotesSource","fetchQuotesPromise","fetchQuotesInit","fetchQuotesFail","quoteDtos","fetchQuotesSuccess","fetchQuotes","updateFrequentPax","updateAddedPassengers","updatePassport","closePopup","setLeadPassenger","updateSelectedPassenger","clearSelectedPassenger","removePassport","removeUser","initializePopup","Header","super","loginUrl","DrawerContainer","spinnerLoader","ModalWithHeaderFooter","container","headerContent","subHeadingInHeader","noCross","SpinnerLoader","ConfirmationPopUp","leftButtonContent","rightButtonContent","onLeftButtonClick","onClosePopup","leftRef","rightRef","rightTarget","leftTarget","onRightButtonClick","onClose","validateForgotPasswordForm","emailResponse","MessagePopUp","stack","ForgotPassword","handleEmailChange","setState","handleSubmit","preventDefault","removeErrors","remErrors","renderForm","sendingEmailButtonText","onChange","onFocus","autoComplete","disabled","resendConfirmationCode","popupMessage","UNSAFE_componentWillReceiveProps","nextProps","UIkit","modal","show","clearForgotErrorMessage","clearForgotPasswordResentMessageModal","hide","isCenter","closeOnEsc","closeOnOverlayClick","onExited","showCloseIcon","closeIconSize","closeIconSvgPath","focusTrapped","Modal","classNames","overlay","closeButton","closeIcon","center","ValidateChangePasswordForm","oldpasswordResponse","newpasswordResponse","newpasswordRetypeResponse","retypeNewPassword","samePasswordResponse","ResetPassword","handleOldPasswordChange","handleNewPasswordChange","handleRetypePasswordChange","handleChangePassword","toggleOldPasswordType","oldPasswordType","oldPasswordIconClass","toggleNewPasswordType","newPasswordType","newPasswordIconClass","toggleRetypePasswordType","retypeNewPasswordType","retypePasswordIconClass","changePasswordButtonText","mobileErrorTextMarginStyle","isMobile","marginBottom","onMouseDown","onMouseUp","onTouchStart","onTouchEnd","URLSearchParams","dirtystateSingleTon","dirtyStatefn","dirtystate","getDirty","setDirty","getAllDirty","setAllDirty","isDirtyTrue","onBeforeUnload","SPAConstants","PAFContainer","RegisterPAFContainer","GroundTransportation","AdditionalServices","ItineraryCatering","ItineraryPassengers","ItineraryPassengersPassport","ItineraryNewPassengers","TopUpAccount","AddCreditCard","MyQuotes","BillingAddress","UserProfile","CustomerFeedback","resetPasswordModalId","Login","handlePasswordChange","handleLogin","passwordResponse","validateLoginForm","togglePassView","passwordType","passwordIconClass","getHeaderContent","checkUserAccountExpiry","isFSPValidated","isVJValidated","AccountExpiryPopupMessage","accountExpiryErrorPopUp","componentDidMount","isUserAuthenticated","checkUserVerification","authError","isAuthError","shouldVerifyUser","clearNotVerifiedFlag","MessagePopUpNew","ref","UserContainer","onbeforeunload","getAircrafts","handleApiErrors","propUser","oldLoadingPdf","messagePopup","removePointerEvent","greatPlaceStyle","textAlign","googleMapStyles","elementType","stylers","visibility","featureType","GoogleMap","GoogleMapReact","bootstrapURLKeys","libraries","defaultCenter","lng","defaultZoom","fullscreenControl","mapTypeId","PinArrival","PinReturn","MapMarker","getMarkerImg","img","side","isListing","markerURL","arrivalStyle","src","alt","role","SESSION_STORAGE_KEY","GeoLocation","cache","sessionStorage","getItem","loc","coords","transformResponseToBrowserLikeFormat","setItem","geolocation","getCurrentPosition","INDEX","OffersMap","mapSmallHeight","mapLargeHeight","getCenterLocation","crd","markers","routes","zoom","mapHeight","buttonText","createMarkers","bound","google","maps","LatLngBounds","legIdentifier","tempId","airportId","extend","LatLng","from","getCenter","worldCoordinateCenter","getProjection","fromLatLngToPoint","mapWidth","offsetX","pixelOffset","Point","worldCoordinateNewCenter","newCenter","fromPointToLatLng","centerArray","drawRoutes","removeRoutes","marker","Polyline","strokeColor","strokeOpacity","strokeWeight","icons","geodesic","path","setMap","isReturnItinerary","markersHtml","self","zoomControlOptions","ControlPosition","RIGHT_BOTTOM","ZoomControlStyle","SMALL","mapTypeControlOptions","TOP_RIGHT","mapTypeControl","yesIWantToUseGoogleMapApiInternals","onGoogleApiLoaded","CardWithButton","handleSendRequest","isSendRequest","routeToDirectRegistration","offerDetails","aircraftDetails","flyingHours","range","maximumSpeed","passengerCapacity","imgUrl","pageUrl","availability","isWithinInterval","start","parseISO","departureCity","arrivalCity","default","rel","OfferDetails","departureAirportDetails","arrivalAirportDetails","offerId","offerDetailsObject","mapStyle","OfferMap","OfferDetailsCard","AIRCRAFT_IDS","CHALLENGER_350","CHALLENGER_605","CHALLENGER_850","GLOBAL_5000","GLOBAL_6000","AIRCRAFT_DETAILS","passengerCapacitySleeping","require","VJ_AIRCRAFTS","rate","cabinlength","cabinwidth","cabinheight","baggage","image","aircrafturl","OfferCard","handlerOfferClick","onCardClick","handleAvailability","availableFrom","availableTo","activeCardId","shouldScroll","activeClass","today","sameDay","isSameDay","departureAirportCity","arrivalAirportCity","child","Link","spy","smooth","SkeletonLoaderCards","SkeletonLoaderCardsWithoutMap","LEFT_PAGE","RIGHT_PAGE","MORE_PAGE","step","Pagination","gotoPage","page","onPageChanged","currentPage","min","totalPages","paginationData","pageLimit","totalRecords","handleClick","evt","handleMoveLeft","handleMoveRight","fetchPageNumbers","pageNeighbours","totalNumbers","startPage","endPage","pages","hasLeftSpill","hasRightSpill","spillOffset","extraPages","updatePaginationOnPropRecieve","componentWillReceiveProps","AircraftDropList","onAirCraftSelection","newAir","currentTarget","nodeValue","el","list","getElementsByClassName","classList","dropdown","selectedAircraftObj","compThis","flyingTime","aircraftsData","shouldShowAvailable","availableAircraftIds","isDisable","liClassName","AIRCRAFT_ICONS","tourURL","glex","CL350","CL605","CL850","GL5T","GLEX","aircraftAlignment","AircraftDropdown","isEditFlow","openContractPopup","handleAircraftChange","getAircraftName","getAircraftImage","checkContractSelected","isWidgetFlow","validateContract","renderAircraftDropList","showAircraftInContract","aircraftClass","legObject","prevLeg","hour","bookedFlightId","isCanceled","isRequestFailed","isReturn","errorMsg","departure","departureArrival","departureArrivalSame","calcDepartTime","splitDate","day","splitTime","formatOfferObject","objectFromOffer","dateObject","ConfirmationPopup","PAGE_SIZE","isMobileOnly","LoaderComponenent","TABS","OfferListing","toggleIsSendRequest","findAllAirports","undefinedIds","isUndefinedIds","Set","loadOffersWithLocation","handleDateChange","selectedDate","handleFromAirportChange","stateValue","fromAirport","handleTempFromAirportChange","tempFromAirport","handleToAirportChange","toAirport","handleTempToAirportChange","tempToAirport","offerObject","activeCard","toggleState","warn","cardClicked","handleTabChange","tabIndex","activeTab","resetFilters","isFound","handleSearch","event","filteredOffers","arrivalAirports","offerDate","offerDateFormat","findAirportsWithCityAndCountry","isArrivalAirportFound","handlePageChange","toCityCountry","isVJDirectMembershipExpire","noConfirmPopup","membershipExpiry","addPopup","formattedOfferObject","filterAirports","forceUpdate","messageContent","offerMessages","fetchVisitedAirports","offerApiErrors","activeTabStyle","unActiveTabStyle","loadingGeolocation","fromAirportsList","toAirportsList","offersCount","SHOW_AIRPPORTS_TO","paf_link","paf_btn_text","Select","classNamePrefix","isClearable","isSearchable","onInputChange","placeholder","isDisabled","DatePicker","selected","placeholderText","minDate","customInput","padding","fromOffersPage","Element","mapClass","registerUrl","ConfirmationPopUpNew","locationNotDisabled","fetchAllOffers","fetchGeocode","Offers","getDurationString","hr","hrString","FlightTime","iconDivStyle","display","justifyContent","EstimateTime","timeToRender","timeSelected","eTime","daysDiff","toBeAnnounced","Stepper","OPERATOR","SUB","ADD","operator","maxValue","minValue","showPassengerLabel","isDisableAdd","isDisableSub","StepperWrapper","AircraftDropdownWrapper","selectedContract","isOfferFlow","TimeElement","onKeyPress","FIRST_TWO","LAST_TWO","HOUR_VALID_REGEX","HOUR_MINUTE_FORMAT","buildArray","fillArray","multiplier","HOURS","MINUTES","TimePicker","closeTimePicker","openTimePicker","handleHoursSelect","hours","handleChange","handleMinutesSelect","handleOnChange","handleDepartureTimeHour","handleHour","selectHour","handleDepartureTimeMinutes","handleMinutes","selectMin","handleInputClick","hintText","selectedFlightTime","readOnly","overflowY","TimePickerWrapper","selectedTime","DatePickerWrapper","highlightedDates","highlightDates","maxDate","marginRight","fontStyle","AirportSelector","compareCity","city1","city2","airportsSortByCity","searchAirportList","searchedAirport","handleInputChange","debounceIt","handleSelectChange","handleFormatAirport","selectValue","displayText","showLabel","onAirportSelect","hideLabel","airportCity","airportCountry","airportName","airpotCode","filtered","MAX_AIRPORT_SEARCH","filteredAirports","formatAirportData","shouldChangeSelection","prePopulatedData","preSelectedDeparture","sortedAirport","AirportsList","inputValue","noOptionsMessage","AirportSelectorWrapper","determinigData","classes","ReactModal","ExistingPax","heading","paxList","handleAddPaxClick","submitting","searchTerm","searchClicked","paxRows","paxNameRows","PassengerList","PassengerSearch","PassengerForm","PassportForm","PassengerDetails","AddPassengers","handleSearchInput","marginClass","isSearch","searchInput","checkValidity","addedPaxIds","handleReset","handleAddNewPaxClick","handleRenderingChange","handleDirtyChange","formSubmit","borderTopRightRadius","borderBottomRightRadius","getCountry","getTruncatedCountryName","countryLabel","getNameLengthToDisplay","flagIcon","toBeReduced","outerWidth","PassengerRow","changePassportNumber","setToLeadPassenger","handleIconsHover","showIcons","handleIconsOut","viewPassengerDetail","handleViewDetail","handlePassportShow","dropdownId","PrevState","showPassport","removeBorder","handleRemoveUser","deletePopup","closeDeletePopup","getDefaultPassportChecked","renderPassport","countryFlagCode","checked","handleRemovePassport","uniqueId","passengerName","paxStatus","removeBorderClass","activePassportClass","handleAddNewPassport","ListPassengerRows","handlePassengerClick","renderPassengers","listLength","showLoaderPassenger","ListPassengers","paxToBeAnnounced","getPaxToBeAnnounced","remaining","paxlabel","padStart","PassengerDetail","ValidatorObj","validEmail","validName","isValidDate","ReactCalendar","validDates","currentIsAfter","toDate","currentIsBefore","dateInput","onDateChange","inputProps","DateTime","timeFormat","closeOnSelect","closeOnTab","disableOnClickOutside","AddPassport","onHandleClose","duplicatePassportErr","onPassportNumberChange","onPassportNameChange","input","onPassportNationalityChange","newValue","onPassportIssueCountryChange","jsDate","validatePassportExpiry","handlePassportOverride","createData","handleAddPassportToPax","passportChangesOverride","isDuplicatePassport","targetPassportNumber","isDuplicate","isFormValid","validationErrors","nationality","Validate","formattedExpiration","duplicatePassportErrRef","isPassportExist","makePassportNumberCapital","isExistPassport","newPassenger","onCancel","generateCountries","disableButton","handleDateChangeRaw","imageFile","showLoader","openPassportExistsDialog","selectBox","borderRadius","updatePaxFlag","countryOptions","isDisableButton","buttonClass","classMargin","marginTop","maxLength","onBlur","Calendar","valueKey","labelKey","AddNewPassenger","getGenderObj","genderName","onFirstNameChange","onLastNameChange","onGenderChange","onEmailChange","onPhoneChange","validatePhoneNumberField","isDobInvalid","dob","handleDateInputBlur","validateForm","focusField","datePicker","getDOMNode","focus","resp","submitNewPassenger","handleAddPassportClick","handleAddPassportFromPax","handlePicUpload","setDefaultFirst","filteredPassport","componentWillMount","genderOptions","isButtonDisable","disableButtonClass","autocomplete","headings","PassengerPopup","isShowBackBtn","cmps","referrerManager","handleBackButton","passportDirtyChange","passengerDirtyChange","backBtnFlag","componentsToRender","showConfirmationPopup","changesLostPopup","referrerCmps","getReferrer","referenceScreen","closeMainPopup","setReferrer","handlePaxCount","currentPaxSelectedId","handlePassportDirtyChange","handlePassengerDirtyChange","handleConfirm","handlePassengerConfirm","cacheFrequent","added","freq","newAdded","Search","cacheAdded","finalMerge","mergePassengersList","tempPax","handleConfirmClick","handleSubmitNewPassenger","handleClosePopup","bool","dirtyChange","handleCounterChange","passengerRemoveLimitError","removePaxFromCounter","handleconfirmNavigation","currentComp","closeChangesLostPopup","paxPopup","handleAddPassenger","onHandleCloseMessage","onMoveAway","disableAddPassengerButton","welcome","setError","nextCmp","currentCmp","showCounter","onItineraryDetail","disableConfirmBtn","showStepper","currentScreen","PassengersListContainer","PassengersAddContainer","AddPassportContainer","PassengersDetailContainer","heading1","zeroPax","topClass","Counter","PassengerCard","getTotalPassengerCount","classNameTobe","deletedPassenger","isLegCard","gatherPassengerInfo","handleStepperChange","renderPassenger","passExpiredBeforeDeptLbl","handlePassengerClose","setStateDirty","openPassengerPopup","getMaxPassengers","popupRefs","showToastMesg","disableDialog","isCancelLeg","numOfPax","PassengerPopupContainer","paxNumber","LegCard","handleDate","handleAirportSelected","handleAirportSelect","handleRemoveLeg","removePopup","handleRemoveFlight","handlePassengerChange","bind","modalId","addedPaxCount","shouldRemoveButton","allHighlightedDates","handleDepartureHourChange","handleDepartureMinuteChange","isOffer","abc","ContractSelector","getPreferredAccountOption","renderAccountName","initialSelection","itineraryAccountId","handleContractChange","DialogWrapper","MessagePopup","Button","onClickHandler","ValidateFlightMessage","messages","contentError","handleClose","GROUND_TIME","notValidOfferMessage","reason","legIndex","maxArrivalDateTime","groundTime","isLegInOfferRange","isSameOrAfter","isSameOrBefore","isExtendedOneWayValid","oneWay","valid","connected","areLegsConnected","isAircraftValid","isAircraftEqualToOffer","isInRage","isInGroundTime","areLegsInGroundTime","LegListing","handleAddFlight","isReturnAdded","refreshFormFields","setEnabledAddReturn","disableReturn","initialLeg","isValidOffer","validateOffer","popUpContent","popupErrorMessages","info","editiedInfo","contractValidation","getAllDates","checkAllowAircraftSelect","handleOnChangeTimePicker","timeVal","notAnOfferMessage","renderLeg","emptyLeg","checkAircraftInContract","contract","availableAircrafts","availableAircraft","getAvailableAircrafts","newSelectedTime","validateAircraftinContract","tempArray","userProps","getErrorArray","validMultiLegs","modalMessage","handleSend","validLegs","rawLegs","isModalError","datetime","userDepartTime","actualCurrentLocalTimeString","actualCurrentLocalTime","afterFourHoursTime","isTimeValid","curDepartDate","prevArrivalDate","validateLegs","multiLegs","popupErrors","firstleg","arrivalDatetimeFirstLeg","departureDatetimeLastLeg","offsetMinutesArrival","offsetMinutesDeparture","validateMultiLeg","sendFinalRequest","quoteConfirmPopup","handleValidationModalClose","handleOpsRestrictionsClose","resetFlightErrorMessages","scrollToTop","validateAllFlights","requestAllQuote","initialLegStruct","isOkPressed","actualData","isOfferValid","validated","BUTTON_TEXT","updateContractSelected","offerToolTipInfo","hideButtons","BulletPopup","formatDepartTime","formatArrivalTime","makeData","legCardObject","arrivalDate","departDate","legsLength","sum","ThankYou","isBuyQuote","structuredData","shouldButtonAppear","shouldViewButton","isShowViewItinerary","iconClass","formattedDepartDate","formattedArrivalDate","formattedTime","redirectToHome","Url","redirectToItinerary","TextField","handleFocus","handleBlur","fullWidth","underlineShow","MaskedTextField","mask","guide","placeholderChar","tabIndexing","inputClassName","textField","MaskedInput","CreditCardFlagImage","backgroundImage","root","backgroundRepeat","backgroundSize","CREDIT_CARD_BRAND_IMAGE","american","diners","discover","master","CreditCardFlag","NOT_A_DIGIT","DIGIT","generateMaskByCreditCardType","creditCardType","gaps","lengths","fill","gap","CreditCardInputNumber","anchorEl","removeMaskPlaceholder","inputStyle","flagStyle","lastFour","ccBrandId","creditCardTypes","getOnlyPossibleCreditCardType","flag","flagContainer","right","alignItems","brands","brandFlag","CREDIT_CARD_BRANDS","ccBrand","flagId","CREDIT_CARD_BRAND_IDS","validateAddCreditCardDetailsForm","cvvResponse","creditCardNumberResponse","expiryDateResponse","CONFIRMATION_TITLE","LEFT_BUTTON_TEXT","RIGHT_BUTTON_TEXT","CONFIRMATION_MESSAGE","AddCreditCardModal","cardConfirmPopup","hideAndClearModal","clearState","handleCreditCardNumberChange","handleCVVChange","handleExpiryDateChange","handleCardTypeChange","typeOfCardSelected","handleDefaultCheck","NEW_CARD_TYPES","confirmation","lengthCC","found","confirmPopup","addCreditCard","renderConfirmationContent","isCreditCardLoading","creditCardError","isCreditCardAdded","typeOfCardOptions","addCreditCardButtonText","for","PaymentMethods","getCreditCardImage","renderDots","arr","renderAddedCreditCards","selectedCvv","selectedCard","card","cardType","handleSelectCard","OfferSummary","showMap","onScroll","hideDivider","closeMap","showDivider","renderSingleLeg","buyQuote","formattedDate","offerType","refrenceId","expireDiff","expire","displayMap","asDays","parsedAmount","cost","renderMultiLegBody","renderMultiLeg","elementToScroll","scrollIntoView","behavior","AddBillingAddressModal","handleFirstNameChange","handleLastNameChange","handleAddress","handleCountryChange","handleCityChange","handleStateChange","handlePostCode","handleVatNumber","vatNumber","isBillingAddress","addressResponse","cityResponse","cityValue","countryResponse","countryValue","salutaionResponse","firstNameResponse","lastNameResponse","stateResponse","postalCodeResponse","validateContractingFormDetails","handleNext","removeCountryError","removeCityError","billingConfirmPopup","closeBillingModal","countries","isBillingAddressLoading","isBillingAddressError","country_","addBillingAddress","QuoteSummary","ailias","confirm","allFieldsPresent","checkedTermsAndConditions","handleTermsAndConditions","handleReadMore","readMore","goBack","backToOffer","renderReadMoreText","readMoreButtonText","readMoreText","acceptAgreement","PAFLayout","getLegs","itineraryLegs","isEditQuote","requoteParam","redirectURLLink","orderExt","isThankyou","URL_TO_REDIRECT","history","back","updateQuoteContent","populateMessage","moveAwayFromOffer","confirmationMessagePopUp","checkDirtyBeforeRedirect","pafConfirmPopup","shouldModalOpen","handleErrors","dataFromLocal","offerObjectTemp","quoteObj","quoteSummaryParam","isItineraryLoading","itineraryOrderId","itineraryOrderExt","errorToShow","ThankyouScreen","createCompanies","itineraryOrderStatus","updateDepartureAirport","updateArrivalAirport","updateSelectedAircraft","selectedAircraftDetails","updateDate","dateDetails","updatePassengersCount","updatePassengersCounter","updateDuration","updateTime","timeDetails","addLeg","updateEstimateTime","timeObject","updateUserReducer","userData","AddEventCalendarLink","getTitle","departureCountry","arrivalCountry","getUtcDate","dateTime","getDates","getLocation","getLink","ctz","FlightPathRow","getSelectedAircraft","getLegOrderId","isItineraryDetail","withd","getFlightPathIcon","flightIconType","renderAddToCalender","arrivalAirportDetail","isLegPast","getDuration","aircraftInfo","legDuration","childLeg","flightIcon","upcomingFirstMultiLeg","upcomingFirstLeg","SkeletonLoaderAirport","ItineraryListingCard","getStatusStyle","handleOnClick","handleItineraryTap","orderID","aircraftLists","ItineraryListItem","getItinerary","hasOrderId","renderOrderId","isMultileg","getItineryPathIcon","listClass","firstLegDate","legDate","ItinerariesListing","loadMoreItineraries","renderButton","renderHeading","itineraryHeading","clearErrorMessage","validationPopUp","getMissingAirports","emptyMessage","isLoadingMore","isLoadMoreDisable","isLoadingItineraries","Crew","renderCrew","crewMembers","crewMember","crewMemberRole","crewMemberName","crewMemberTitle","crewMemberPhoneNumber","withIn24Hours","sortedCrewMembers","obj1","obj2","FlightCancel","openCancelPopUp","flightCancelPopUp","closeCancelPopUp","handleCancelFlight","flightCancel","isRenderCancelButton","updateFlightCancel","ItineraryCard","flightDates","INITIAL_STATE","selectedOption","airportIndex","alertMessage","serviceData","detail","GroundServicesModal","onASModalClose","asConfirmPopup","closeASModal","handleServiceChange","openAvailedModal","selectAirport","isTextareaDisabled","isDeptTextareaDisabled","isArrivalTextareaDisabled","getActiveClass","getDetailValue","getAirportValue","AirportDetail","isConfirmButtonEnabled","isEnabledArrival","isEnabledDeparture","addService","addGroundTransportService","missingAirportIds","modalHeading","selectedAirport","groundTransportation","getSubset","externalName","labelValue","dynamicPlaceholder","detailPlaceholder","rows","GroundTransportationModal","onGTModalClose","gtConfirmPopup","closeGTModal","GroundServicesCard","openGTModal","GTModal","openASModal","ASModal","renderServiceStatus","componentType","transportServiceStatus","renderService","airportLength","renderNoService","renderServicecomponent","departureAirportAvailed","departureAirportAvailedLength","arrivalAirportAvailed","arrivalAirportAvailedLength","renderServicesListing","cardHeading","isAddGroundServiceButtonShow","isLoadingComponent","FboModal","selectedAirportId","selectedFbo","handleBack","fboAddressUrl","fboName","handlingAgentName","fboNumber","handlingAgentPhoneNumber","fboEmail","fboEmailAddress","fboAddress","borderTop","noFboAirport","Fbo","renderFbo","fboDetails","arrivalAirportAddress","departureAirportAddress","arrivalFbo","departureFbo","showFboDetails","openFBOModal","fboPopup","Weather","renderWeather","weatherDetails","departureDate","arrivalClass","departureClass","companyPhoneNumber","OperationalNotes","operationalNotes","getTimeString","eventDate","localDate","local","diffStr","movementTypeIds","MovementMessages","renderMovementMessages","offBlock","movementMessageTypeId","mvtTimeLocalTime","landing","onBlock","offBlockTime","landingTime","onBlockTime","showMovementMessages","EntertainmentCard","entertainmentUrl","parentStyles","overflow","defaultStyles","cursor","defaultStatusStyles","getHalfStarStyles","uniqueness","ReactStars","stars","halfStar","at","hidden","half","config","char","color1","color2","edit","showStatus","customStatusStyle","getStars","isDecimal","getRate","activeCount","active","mouseOver","getAttribute","isAtHalf","moreThanHalf","onHover","customStatus","mouseAt","clientX","getBoundingClientRect","mouseLeave","statusClicked","clicked","star","renderHalfStarStyleElement","dangerouslySetInnerHTML","__html","renderStars","starClass","onMouseOver","onMouseMove","onMouseLeave","statusStyle","paddingBetween","getParameterByName","paramName","results","decodeURIComponent","CustomerFeedbackOptions","renderCommentBox","showCommentBox","onCrossClick","nameInput","onrating","onChangeMsg","handleRating","ratingFor","isOptional","autoFocus","stateMapping","overallFeedback","cateringFeedback","cabinComfortFeedback","onBoardFeedback","transportFeedback","showServices","submitDisable","isDirty","CustomerFeedbackPopup","onChangeOverallRating","onServiceRatingChange","confirmFeedbackPopup","feedbackConfirmPopup","submitFeedback","saveLegFeedback","dirtyStatePopup","closeRatingDialogue","handleDirtyPopup","isFeedbackActive","legData","customerFeedbackPopup","handleRatingDialogue","handleMessageText","feedbackInfo","shouldShowModal","clearError","clearFeedbackError","errorPopUp","handleShowFeedback","isDetailFlow","getCateringMap","CateringConstants","getCateringStatus","statusToShow","summaryAvailable","backendState","cateringDialogEnabled","isCateringEditable","selectionCountdownString","currentTime","selectionTime","string","shouldShowCountdownString","isSelectionMade","zeroFill","countStr","selectionCountdown","totalItems","showBackButton","CateringListActionItem","handleActionClick","onActionClicked","CateringFooter","SupplierMenuList","onConfirmSelection","onSelectionConfirmed","handleScreenChange","getQuantityForMenuItem","quantities","getQuantityForService","serviceCategories","handleMenuClicked","onMenuItemSelected","handleServiceToggle","collapsibleStates","onServiceSelected","renderCategories","renderMenuItems","items","actionLabel","renderServices","isOpen","serviceQuantity","selectedService","PassengerQuantityListItem","handleShowNotes","isShowingNotes","showNotes","onStartEditingNotes","onStopEditingNotes","handleCountChange","onQuantityChanged","handleNotesValue","clearNotes","handleSave","onNotesSaved","handelCancel","showNotesClass","PassengerQuantityList","showingNotesCount","passengerQuantities","handleAdd","onQunatitiesAdded","handleQuantityChanged","shouldEnableAddButton","renderSharedOrder","sharedQuantity","passengersList","handleConfirmCancel","cateringItemCancel","menuItem","sharedOrderObj","isAddEnabled","CateringSuppliers","getSupplierWiseCounts","passengerCounts","serviceName","customerSelection","passengerSelection","flightMenuPriceId","isFlightEditable","onSupplierSelected","renderPassengerCounts","renderPassengerDetailItem","passengerDetails","listOfCounts","renderCatering","removeCaret","totalItemCount","legCountDown","loading","fallbackMsg","isDirtyState","FALLBACK_MSG","Catering","getTotalItemsCount","selectedSupplier","errorPopup","onServiceConfrimed","showTotalItems","selectedMenuItem","confirmedSelection","changeCateringProposal","handleExitPopUp","setProposalQuantities","newProposal","supplierQuantities","totalSupplierCount","newItem","person","getSelectedSupplierProposal","supplierId","getCurrentScreen","screenHistory","screen","shouldClearAll","cateringModal","isCateringDirty","cateringConfirmPopup","renderCurrentScreen","cateringDuration","supplierProposal","supplierScreen","isSummary","showCateringModal","renderSelectionCountdown","renderSupplierQuantities","disableCatering","dontDisplayCateringStatus","isPassengerLoading","isCateringProposalLoading","disableCateringDialog","popupHeading","countDownMargin","CateringPopup","disableConfirmButton","onConfirmClicked","ItineraryDetails","onFetchItineraryDetails","itineraryDetailsParam","orderkey","addNewError","errorArray","setErrorArrayState","showError","removeCard","errorValidationPopUp","fetchDataOnChange","fetchCrew","fetchCateringPdf","fetchitineraryPdf","fetchAvailedServices","fetchMovementMessages","currentLegId","arrivalAirportTime","departureAirportTime","availedServicesKey","isLegId","hasLegId","fetchPreviousLeg","setLegIndex","fetchNextLeg","legsArray","renderArrows","renderDownloadBtn","downloadItinerary","pdfUrl","renderEditBtn","redirectionURL","renderEditContent","legsSelected","currentLegIdSelected","allAirports","fboInfo","availedServiceInfo","availedASDataInfo","movementMessagesResponse","movementMessageResultDTOes","movementMessagesInfo","movementMessageResult","canBook","disableFeedback","PassengerCardContainer","CustomerFeedbackContainer","fetchWeatherDetails","getCateringPDFAction","getCateringStateAction","getCateringProposalAction","placeholderLarge","Entertainment","handleDetailsToggle","itemDetailView","renderItemDetails","trailerDetail","trailer","trailerId","frameborder","allow","allowfullscreen","rated","runtime","genre","released","imdbRating","plot","director","writer","awards","actors","ageRating","nOfPlayers","developer","renderEntertainmentDetails","entertainmentDetails","tabindex","movies","movie","ReactImageFallback","poster","fallbackImage","tvshows","tvshow","games","game","entertainmentDetailsParam","issue","RegistrationForm","populateValues","handlePhoneNumberChange","handleSalutationChange","handleConfirmPasswordChange","confirmPassword","toggleConfirmPassView","confirmPasswordType","confirmPasswordIconClass","makePayloadForDirectRegistration","handleAgreementCheck","handleMarketingCheck","salutationResponse","phoneNumberResponse","confirmPasswordResponse","agreementCheckboxResponse","validateRegistrationForm","dataLayer","createAccount","directSignupSourceAction","registerMemeber","auth","generateSalutationOptions","removePhoneError","progressIncrement","updateProgressInWizard","handleGoBack","salutationOptions","defaultCountry","isWizard","tokenLoading","registerLoading","adminTokenLoading","isMemberPlanLoading","isAuthLoading","wizardStepper","isDirectSignupLoading","createAccountButtonText","countinueRegisterButtonText","borderRight","inputId","borderTopLeftRadius","borderBottomLeftRadius","borderLeft","IntlTelphoneInput","errorText","handlePhoneNumberBlur","autoPlaceholder","registrationErrorPopUp","disableCreateButton","isAdminTokenError","userRegistrationError","isUserRegisterError","directSignupError","isDirectSignupError","SimpleRegistrationContainer","RegistrationConfirm","resendRegisterCodeAction","loggedInUser","verifyLoading","authenticateToken","redirectToLogin","renderPage","isDirect","renderConfirmRegistrationPage","renderSimpleConfirmPage","resendEmailText","verifyUserAction","isDirectConfirmContainer","ActiveQuotes","fetchAirports","handleEmailUs","emailUsWindow","close","redirectToEditPage","populateLegs","sortQuotes","_a","formattedDateA","formattedDateB","reverse","_quote","renderQuoteList","isMultiLeg","formattedRequestedDate","formattedQuotedDate","airportError","TAB_BALANCE","TAB_STATEMENT","TAB_UNBILLED","UnbilledFlights","getAirportName","currentAirport","getItineraryDetailsRoute","renderAirports","dep","renderUnbilledRow","CurrentBalance","isOtherFlight","otherAircrafts","loadingMoreInvoices","shouldShowLoadMore","otherContracts","getOtherFlights","contracts","getOtherInvoices","fetchMoreInvoices","renderBalanceAsOf","renderInvoiceRow","otherFlightSelected","lastStatement","StepperPagination","updateDisabled","contains","onClickYear","isFutureContract","updateCurrentYear","shouldArrowDisable","contractualYear","selectedContractualYear","direction","alert","getTabClass","currentYear","stepperClass","renderTabContainer","contractualYears","yearTabs","renderTab","componentDidUpdate","MONTHS","AccountStatementDetails","isActiveMonth","isStart","selectedStatement","isActiveYear","isDisabledMonth","shouldDisbaleLoadMore","getYears","startYear","endYear","getFilterValue","handleClearFilter","clearInvoiceFilter","handleFilterStart","newFilter","newStart","fetchAllInvoices","handleFilterEnd","newEnd","handleOnFilterChange","getPlaceHolder","getFilteredInvoices","compareInvoiceDates","filterDate","next","onClickLoadMore","onClickDownloadAll","onBackButtonClick","filteredInvoices","AccountStatement","updateSelectedStatement","onStatementClick","selectContractualYear","getCurrentStatements","statements","setCurrentTab","stepper","activeSlideTab","slider","renderStatementRow","statement","renderStatementRows","firstYear","currentYearIndex","currentStatements","ProgramAccountStatement","showUnbilledError","unbilledErrorPopup","showBilledError","billedErrorPopup","onSelectStatementTab","hasInvoices","getOtherAircrafts","getOtherContracts","getBilledFlights","getUnbilledFlights","getActiveContract","contractFlights","switchContent","switchContract","currentContract","contractedFlights","switcher","renderTabs","otherFlights","renderSideMenu","showDisclaimer","fetchRecentInvoices","missingAirports","depId","arrId","accountStatementsErrorPopup","statementInvoicesErrorPopup","zipUrlErrorPopup","viewBox","xmlns","stroke","x1","y1","x2","y2","moreInvoicesError","fetchRecentInvoicesAction","fetchMoreInvoicesAction","fetchAccountStatementsAction","fetchStatementInvoicesAction","UserDetailCard","renderUserDetailCard","toggleIsUserEditDetails","UserDetailForm","forState","oldState","dobResponse","validateUserProfileForm","emailChanged","emailPopUp","updateProfile","updateUserProfileAction","compareOldAndNewValues","isFieldsChanged","handleDobChange","goBackToAccountDetails","renderUserDetailsForm","MemberShipDetailCard","redirectToDirectAccountBalance","renderMemberShipDetailCard","numeral","getDirectAccountStatement","UserDetailSection","isUserDetailEdit","renderCards","AddEditUserDetailForm","isGuestUser","isFsp","PassportListingCard","getPassportFlag","flagData","flagIso2","formatExpiryDate","updatePassportDetails","isDefaultEdit","toggleIsPassportAddEditDetails","normalizeAndCombinePassportPayload","newPayload","oldPayload","isDefaultDelete","isNewDefault","passportPayload","payloadOfDefault","deletePassport","userPayload","defaultPaxId","doPassportExist","deletePopUp","checkIfDefaultPassportExpired","checkSetAsDefault","expiresDate","expiredPopup","setAsNewDefault","renderPassportListing","renderDefaultPassport","renderOtherPassports","selectedId","showDeletePrompt","defaultPassportId","defaultFlagIcon","defaultExpiryData","expiryData","textDecoration","paddingRight","PassportDetailForm","generatePaxNumberAndIdMapping","editFieldId","paxMapping","getTwoLetterIsoCode","paxCountryType","generateObjectOfCountry","isAdd","checkIfPaxNumberExistsAndValidateForm","passportNumberResponse","displayNameResponse","nationalityResponse","issuingCountryResponse","validateAddEditPassportForm","paxExistsId","overwritePopUp","passportPopUp","addOrUpdatePassport","closeOverWritePopUp","handlePaxNameChange","handlePaxNumberChange","handleExpiryChange","handleNationalityCountryChange","handleIssuingCountryChange","removeNationalityCountryError","removeIssuingCountryError","nationalityCheck","issuingCountryCheck","oldNationalityCheck","oldIssuingCountryCheck","goBackPopUp","goBackManagePassport","renderPassportDetailsForm","onOverlayClick","PassportListingSection","editId","isPassportDetailAddEdit","CreditCardListingCard","deleteCreditCard","creditCardDeletePopUp","updateCreditCardDetails","toggleIsCreditCardAddEditDetails","showDefaultDeletePrompt","defaultDeletePopup","renderCreditCardListing","isAddCreditCardLoading","renderDefaultCreditCard","renderOtherCards","defaultCreditCardId","isAddCreditCardError","addCreditCardLoadingError","CreditCardAddEditDetailsForm","checkIfCardWithLastDigitExists","lastFourDigits","existsLastDigits","creditCardExistsPopUp","addCreditCardState","typeOfCardCheck","oldTypeOfCardCheck","creditCardGoBackPopUp","goBackManageCreditCard","handleCancelAddCreditCard","promptText","isAddedCreditCard","CreditCardListingSection","isCreditCardDetailAddEdit","UserChangePasswordForm","renderChangePasswordForm","goToTabSelection","filterOptions","createFilterOptions","PushNotificationCard","notificationOldState","citiesOldState","toggleOldState","selectedCities","getCityDisplayName","isCityAdded","handleCitySelectChange","cityObj","newCityObj","handleNotificationRadioCheck","removeSelectedCity","compareNotificationIds","newNotificationState","oldNotificationState","newId","compareCityids","newCitiesState","oldCitiesState","toggleDisablePreferredCities","updateNotifications","renderNotificationOptions","renderChips","cityChipId","renderPushNotificationCard","isPushNotificationLoading","VirtualizedSelect","menuIsOpen","selectedCitiesDisplayNames","checkFormated","firstThreeCities","notificationOldIdsState","citiesOldIdsState","isPushNotificationUpdated","pushNotificationError","isPushNotificationError","getUserType","isVjdirect","reRender","showNotification","toggleShowNotification","shouldNotificationShow","tempIndex","userProfilePopup","handleConfirmTabChange","tempEvent","renderSelectedTab","renderUserProfileScreen","creditCardMessage","isDeletedCreditCard","pushNotificationFetched","ExpiredQuotes","requote","getTopUpEmailBody","customerName","createNumberMask","prefix","includeThousandsSeparator","integerLimit","callAction","TopUpReference","topUpSentAmount","callSubmitted","TopUpAction","amountChange","emailDetails","subject","encodeURI","newWindow","copyToClipboard","toTooltip","ibanTooltip","clipboard","writeText","changeWindowLocation","callCancelTopUp","CancelTopUp","hideConfirmationBox","showConfirmationBox","confirmationPopUp","disableTopUpButton","renderButtonImage","hideModal","topUpDirtyPopup","hideTopUpModal","topUpAccountModal","TopUpModal","ClearTopUpError","makeModalTopClass","makeModalSecondClass","fromDirectScreen","validationPopUpTopUp","confirmId","background","TOP_UP_STATUS_TYPE","MEMBERSHIP_TYPE","TOP_UP_PAYMENT_METHOD","topUpNormalizer","topUpDate","topUpStatusId","topUpReferenceSource","transferAmount","TopUpReferenceInit","topUpReferenceRequestDto","topUpReferenceResponseDto","TopUpReferenceFail","TopUpReferenceSuccess","createTopUpNormalizer","topUpHistorySource","TopUpHistoryInit","topUpHistoryRequestDto","topUpHistoryResponseDto","TopUpHistoryFail","TopUpHistorySuccess","membershipSubType","memberShipSubType","topUpHistoryNormalizer","TopUpInit","TopUpSuccess","TopUpFail","cancelReferenceCodeInit","cancelReferenceCodeSuccess","cancelReferenceCodeFail","TopUpViewAction","topUpSource","topUpSubmitRequestDto","topUpSubmitResponseDto","TopUpReferenceAction","Currency","TopUpCancelReferenceCode","topUpCancelReferenceCodeSource","topUpCancelRequestDto","topUpCancelResponseDto","DirectAccountBalance","loadMoreTranscations","GetMembershipAccountStatement","renderInvoices","showTopup","disableAmountState","topUpIdState","referenceCodeState","topUpAmountState","isComponentLoadingClass","SetOpenPopupFalse","adhocUser","boxShadow","TopUpHistory","openTopUp","setStateWithModalData","modalWithData","GetTopUpHistory","toUpId","validationPopUpHistory","getTopUpHistoryList","line","ProgramBuilderRangeSlider","handleRangeSliderMax","returnCheckbox","sliderValue","showYears","handleRangeSlider","dragging","restProps","Tooltip","prefixCls","placement","Handle","handleReturnCheck","handleDropDown","marks","Slider","onAfterChange","handle","ProgramBuilderWidget","handleDurationChange","updateAiportsTime","updateAirCraftDetails","selectPrefferedAirCraft","maxPassengerCount","maxFlightDistance","maxRangeKm","selectedAirCraft","handleDistanceChange","prefferedAirCraft","isAddFlight","formValidatiion","every","fieldValidator","flightInfo","submitLegArraytoProgramBuilder","handlePlan","removeFlight","copyFlightArray","getSliderValue","airportDistance","renderButtons","isFormSubmitable","isButtonEnable","renderAddFlights","tokenAuthLoading","DEFAULT_OPTIONS","HIDDEN_STYLES_STRING","PostTransport","isFormSubmitted","frameId","formId","createRange","createContextualFragment","fieldName","containerEl","frame","elements","addEventListener","removeChild","submit","ProgramBuilderDetailForm","enableSeeMoreButton","showSeeMoreButton","geoLookupCountryCode","phoneStrLength","requestACallBack","stateCodeResponse","validateProgramBuilderDetailForm","submitHiddenForm","formatLegArray","from_airport_str","from_airport","to_airport_str","to_airport","out","date_time","no_passengers","ac_type","createPayload","VALUE_ENV_MAP","preproduction","oid","production","FIELDS_MAP","webSalutationText","env","webSalutationOther","greetingSalutation","marketingOptIn","conversionURL","googleSource","googleMedium","googleCampaign","googleTerm","customJSON","flightsJSON","vistajetAircraft","internalNote","callback","getValuePerEnv","formattedLegArray","utmData","suggestionData","airCraft","yearlyHours","company","retURL","renameFields","programBuilder","hasStateField","cn","isContactUsForm","stateList","isLegArray","StateAbbreviation","onClearReducer","ProgramBuilderDonutAndSuggestion","ProgramBuilder","updateLegArray","prepareDonutData","showSuggestion","routesHours","extraHours","showSuggestions","block","inline","submitSeeMore","personalInfo","ProgramBuilderWidgetContainer","onContactUsForm","OTHER_AIRCRAFTS","fixed","variable","vjAirCraft","illustration","comparablerate","GLOBAL_7500","CostCalculatorForm","handlePossessionChange","possession","handleHoursChange","handleTypeOfFlyingChange","handleCurrentFlyingSolutionChange","handlePrivacyCheck","privacyCheckbox","updateData","typeOfFlyingResponse","currentFlyingSolutionResponse","privacyCheckboxResponse","validateCostCalculatorForm","costCalculatorPayload","privacyCheck","isValidData","generateAirCraftsOptions","airCraftsOption","_ref5","_ref6","CostComparisonCard","handleDiscoverMoreClick","feetToMetre","feet","feetCubeToMetreCube","nmToKm","nm","mphToKmh","mph","getResult","vjAircraft","saving","savingFormatted","savingString","isSaving","CostCalculator","FlightRequest","lazy","spaContainerObj","reactComp","HeaderContainer","isAuthenticated","TopUpAccountContainer","DirectAccountBalanceContainer","TopUpHistoryContainer","UserProfileContainer","OffersContainer","EntertainmentContainer","UpcomingItinerariesListingContainer","PastItinerariesListingContainer","CancelledItinerariesListingContainer","ItineraryDetailsContainer","RegistrationConfirmContainer","PASContainer","isDirectRegistration","ActiveQuotesContainer","ExpiredQuotesContainer","CoreContainer","blocks","dataset","ReactDOM","IsAuthenticatedContainer","containers","Suspense","fallback","MASTERCARD","VISA","capitalizeCity","capitalizeCountry","capitalizeName","debounceOnChange","debounceTimer","func","delay","clearTimeout","formatName","handleFormatFlyxoAirport","has_multiple_airports","country_code","creditCardValue","charge","cardBrandID","percentage","normalizePaymentAdditionalCharge","cookies","Cookies","isEncrypted","saveData","sameSite","global","localStorage","isJson","doNotParse","reactUser","isValidJson","bytes","loadJSONP","script","parentNode","insertBefore","onload","geoIpLookup","that","sendBack","updateState","isReady","getSelectedCountryData","_this$intlTelInputRef","intlTelInputRef","selectedCountryData","handleFlagDropDownClick","stopPropagation","dialCode","_state","handleSelectedFlag","onFlagSelected","setIntlTelInputRef","onLoaded","tel","telInput","flagDropDown","findDOMNode","componentWillUnmount","removeEventListener","floatingLabelText","floatingLabelStyle","errorStyle","hintStyle","formattedValue","formatNumber","numberFormat","css","border","backgroundColor","IntlTelInput","fieldId","countriesData","PhoneCountries","utilsScript","onPhoneNumberChange","onSelectFlag","nationalMode","autoHideDialCode","preferredCountries","brazilStateList","canadaStateList","chinaStateList","indiaStateList","irelandStateList","italyStateList","mexicoStateList","GetStateList"],"mappings":"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AAK,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK,KAAK,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAClf,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MACjf,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MACxf,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAA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,MAEF,CACE,SACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,UACA,KACA,QAEF,CACE,0CACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,oIACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,kBACA,KACA,MAEF,CACE,iCACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,8DACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,wDACA,KACA,OAEF,CACE,sBACA,KACA,OAEF,CACE,SACA,KACA,IACA,EACA,CACE,MAAO,MAAO,MAAO,MAAO,MAAO,MACnC,MAAO,MAAO,MAAO,MAAO,MAAO,MACnC,MAAO,MAAO,MAAO,MAAO,MAAO,MACnC,MAAO,MAAO,MAAO,MAAO,MAAO,MACnC,MAAO,MAAO,MAAO,MAAO,MAAO,MACnC,MAAO,MAAO,MAAO,MAAO,MAAO,MACnC,MAAO,MAAO,MAAO,MAAO,MAAO,QAGvC,CACE,0BACA,KACA,OAEF,CACE,wBACA,KACA,MACA,GAEF,CACE,iBACA,KACA,QAEF,CACE,0DACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,QACA,KACA,MAEF,CACE,uBACA,KACA,MAEF,CACE,mBACA,KACA,KACA,GAEF,CACE,0BACA,KACA,KACA,GAEF,CACE,WACA,KACA,MAEF,CACE,gFACA,KACA,OAEF,CACE,iDACA,KACA,OAEF,CACE,uCACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,wBACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,OACA,KACA,MAEF,CACE,aACA,KACA,MACA,GAEF,CACE,gDACA,KACA,OAEF,CACE,2CACA,KACA,OAEF,CACE,oBACA,KACA,MAEF,CACE,WACA,KACA,OAEF,CACE,WACA,KACA,QAEF,CACE,+CACA,KACA,IACA,EACA,CAAC,MAAO,MAAO,QAEjB,CACE,UACA,KACA,OAEF,CACE,+CACA,KACA,MAEF,CACE,cACA,KACA,OAEF,CACE,wCACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,4CACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,oCACA,KACA,OAEF,CACE,6BACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,kBACA,KACA,MACA,GAEF,CACE,SACA,KACA,MAEF,CACE,sCACA,KACA,OAEF,CACE,+CACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,yEACA,KACA,OAEF,CACE,wBACA,KACA,MAEF,CACE,gBACA,KACA,OAEF,CACE,YACA,KACA,OAEF,CACE,gDACA,KACA,MAEF,CACE,+BACA,KACA,OAEF,CACE,UACA,KACA,QAEF,CACE,aACA,KACA,MACA,GAEF,CACE,OACA,KACA,QAEF,CACE,YACA,KACA,OAEF,CACE,WACA,KACA,KACA,GAEF,CACE,qBACA,KACA,OAEF,CACE,kCACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,2BACA,KACA,OAEF,CACE,4BACA,KACA,MAEF,CACE,sBACA,KACA,OAEF,CACE,mCACA,KACA,MAEF,CACE,YACA,KACA,MAEF,CACE,0DACA,KACA,MAEF,CACE,gEACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,cACA,KACA,KACA,GAEF,CACE,4DACA,KACA,OAEF,CACE,iBACA,KACA,KACA,GAEF,CACE,UACA,KACA,QAEF,CACE,uBACA,KACA,MAEF,CACE,SACA,KACA,KACA,GAEF,CACE,kEACA,KACA,OAEF,CACE,sEACA,KACA,IACA,GAEF,CACE,QACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,uFACA,KACA,OAEF,CACE,0CACA,KACA,MAOF,CACE,kEACA,KACA,OAEF,CACE,4EACA,KACA,OAEF,CACE,4BACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,6DACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,2DACA,KACA,OAEF,CACE,gBACA,KACA,OAEF,CACE,sBACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,uBACA,KACA,OAEF,CACE,oLACA,KACA,OAEF,CACE,4BACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,WACA,KACA,MAEF,CACE,WACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,wFACA,KACA,OAEF,CACE,oBACA,KACA,OAEF,CACE,UACA,KACA,MACA,GAEF,CACE,qBACA,KACA,MAEF,CACE,kCACA,KACA,OAEF,CACE,2CACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,kDACA,KACA,OAEF,CACE,yBACA,KACA,OAEF,CACE,aACA,KACA,QAEF,CACE,mEACA,KACA,MACA,GAEF,CACE,6BACA,KACA,OAEF,CACE,yDACA,KACA,MAEF,CACE,uBACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,yCACA,KACA,OAEF,CACE,0BACA,KACA,MAEF,CACE,wCACA,KACA,OAEF,CACE,cACA,KACA,MAEF,CACE,YACA,KACA,OAEF,CACE,gBACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,iBACA,KACA,OAEF,CACE,2BACA,KACA,QAEF,CACE,iBACA,KACA,KACA,GAEF,CACE,0DACA,KACA,OAEF,CACE,0EACA,KACA,MAEF,CACE,QACA,KACA,OAEF,CACE,2FACA,KACA,OAEF,CACE,qBACA,KACA,OAEF,CACE,mBACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,iBACA,KACA,MAEF,CACE,cACA,KACA,MAEF,CACE,kBACA,KACA,MAEF,CACE,WACA,KACA,OAEF,CACE,cACA,KACA,IACA,EACA,CAAC,MAAO,QAEV,CACE,+CACA,KACA,OAEF,CACE,6BACA,KACA,MACA,GAEF,CACE,uBACA,KACA,MAEF,CACE,gDACA,KACA,IACA,GAEF,CACE,SACA,KACA,OAEF,CACE,4CACA,KACA,MACA,GAEF,CACE,+CACA,KACA,OAEF,CACE,wBACA,KACA,QAEF,CACE,cACA,KACA,QAEF,CACE,oDACA,KACA,MACA,GAEF,CACE,uDACA,KACA,OAEF,CACE,mCACA,KACA,QAEF,CACE,QACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,gEACA,KACA,OAEF,CACE,0KACA,KACA,OAEF,CACE,0BACA,KACA,OAEF,CACE,gDACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,eACA,KACA,OAEF,CACE,YACA,KACA,MAEF,CACE,eACA,KACA,QAEF,CACE,uBACA,KACA,OAEF,CACE,uBACA,KACA,OAEF,CACE,kBACA,KACA,OAEF,CACE,uBACA,KACA,OAEF,CACE,eACA,KACA,MAEF,CACE,sGACA,KACA,OAEF,CACE,oBACA,KACA,MAEF,CACE,4EACA,KACA,MAEF,CACE,uEACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,yBACA,KACA,KACA,GAEF,CACE,mBACA,KACA,MAEF,CACE,wBACA,KACA,MAEF,CACE,2DACA,KACA,OAEF,CACE,2CACA,KACA,OAEF,CACE,aACA,KACA,OAEF,CACE,WACA,KACA,OAEF,CACE,gCACA,KACA,MAEF,CACE,cACA,KACA,OAEF,CACE,OACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,QACA,KACA,OAEF,CACE,sBACA,KACA,QAEF,CACE,uDACA,KACA,OAEF,CACE,sBACA,KACA,MAEF,CACE,eACA,KACA,OAEF,CACE,2BACA,KACA,QAEF,CACE,SACA,KACA,OAEF,CACE,SACA,KACA,OAEF,CACE,uDACA,KACA,OAEF,CACE,kLACA,KACA,OAEF,CACE,iBACA,KACA,KACA,GAEF,CACE,gBACA,KACA,IACA,GAEF,CACE,UACA,KACA,OAEF,CACE,gCACA,KACA,OAEF,CACE,UACA,KACA,OAEF,CACE,uCACA,KACA,KACA,GAEF,CACE,YACA,KACA,MAEF,CACE,0BACA,KACA,MAEF,C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","file":"static/js/main.f37dc32a.chunk.js","sourcesContent":["// whether the @param `str` is string, properly defined and not null\r\n// it will captilize its first letter, otherwise it returns an empty string\r\nexport function capitalize(str) {\r\n if (!!str && str.constructor === String) {\r\n return str.replace(/\\w\\S*/g, txt => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase());\r\n }\r\n\r\n return '';\r\n}\r\n\r\nexport function convertToTitleCase(str) {\r\n return str.replace(/\\w\\S*/g, txt => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase());\r\n}\r\n\r\nexport function getFirstChars(str, length, status = false) {\r\n const regex = new RegExp(`[\\\\s\\\\S]{1,${length}}`, 'g');\r\n const substring = str.match(regex);\r\n if (substring && substring.length > 0) {\r\n if (status) {\r\n if (substring[0].lastIndexOf('+') === 1) {\r\n const subStringToReturn = substring[0].substr(1, substring[0].length);\r\n return subStringToReturn;\r\n }\r\n }\r\n return substring[0];\r\n }\r\n return '';\r\n}\r\n\r\nexport function replaceSpecialCharacterAndSpaces(str) {\r\n return str.replace(/[^A-Z0-9]+/ig, '');\r\n}\r\n\r\nexport function concatenateStrings(str1, str2) {\r\n let str = null;\r\n if (str1 && str2) {\r\n str = `${str1} ${str2}`;\r\n return convertToTitleCase(str);\r\n }\r\n if (str1) {\r\n str = `${str1}`;\r\n return convertToTitleCase(str);\r\n }\r\n if (str2) {\r\n str = `${str2}`;\r\n return convertToTitleCase(str);\r\n }\r\n return str;\r\n}\r\n","/*eslint-disable */\r\nimport libphonenumber from '../components/shared/react-intl-tel-input/libphonenumber.js';\r\nexport default libphonenumber;\r\n","export const errorMessages = {\r\n // Salutation error messages\r\n SALUTATION_REQ: \"Required\",\r\n\r\n // Name error messages\r\n INVALID_NAME: \"Name can't have numbers or special characters\",\r\n FIRST_NAME_REQ: \"First name is required\",\r\n LAST_NAME_REQ: \"Last name is required\",\r\n\r\n // Email error messages\r\n EMAIL_REQ: \"Email is required\",\r\n INVALID_EMAIL: \"Please provide correct email address\",\r\n REPEAT_EMAIL_REQ: \"Repeat email is required\",\r\n EMAIL_DO_NOT_MATCH: \"Emails must match\",\r\n\r\n // ContactUs-Message error message\r\n MESSAGE_REQ: \"Please enter your message\",\r\n MESSAGE_INVALID: \"Invalid message\",\r\n\r\n // Phonenumber error messages\r\n PHONE_REQUIRED: \"Phone number is required\",\r\n INVALID_PHONE: \"Please provide a valid telephone number\",\r\n\r\n // Password error messages\r\n PASS_REQ: 'Password is required',\r\n PASS_MAX_LENGTH: 'For your password, please use a maximum of 30 characters',\r\n PASS_MAX_LENGT_MOBILE: 'Use atleast 8 characters. eg.(aA59cdL)',\r\n INVALID_PASS: `Please use at least 8 and a maximum of 30 characters\r\n including an uppercase letter, a lowercase letter and a number`,\r\n REPEAT_PASS_REQ: \"Repeat password is required\",\r\n PASS_DO_NOT_MATCH: \"Passwords don't match. Please check and try again.\",\r\n SAME_PASSWORD:\r\n \"You have already used this password. Please enter a new password to continue\",\r\n\r\n // Terms and condition error messages\r\n CHECK_REQUIRED: \"Please accept the terms and conditions to continue\",\r\n\r\n // Register API Actions\r\n USER_ALREADY_EXISTS: `There is already an account registered to this email id.\r\n \r\n Please use another email id or log in to continue`,\r\n TELEPHONE_ALREADY_EXISTS: `There is already an account registered to this phone number.\r\n Please use a different number`,\r\n\r\n // Credit card error messages\r\n CVV_REQUIRED: 'Security code is required',\r\n INVALID_CVV: 'Invalid CVV number. Please check and try again',\r\n INVALID_EXPIRY_DATE_FORMAT: 'Expiry Date format is not valid, please try MM/YY',\r\n INVALID_EXPIRY_DATE: 'Invalid expiry date. Please check and try again',\r\n EXPIRY_DATE_REQUIRED: 'Expiry date is required',\r\n CREDIT_CARD_NUMBER_REQUIRED: 'Credit card number is required',\r\n INVALID_CREDIT_CARD_NUMBER: 'Invalid credit card number. Please check and try again',\r\n\r\n // Contracting details error messages\r\n ADDRESS_REQUIRED: 'Address is required',\r\n CITY_REQUIRED: 'City is required',\r\n STATE_REQUIRED: 'State is required',\r\n COUNTRY_REQUIRED: 'Country is required',\r\n POSTAL_CODE_REQUIRED: 'Postal Code is required',\r\n PAYMENT_NOT_DEFINED: 'Payment Method not defined',\r\n\r\n //account statement error messgaes\r\n CANNOT_ACCESS_STATEMENTS: 'You do not have access to the Statement PDF',\r\n NO_RELATED_INVOICES: 'The request has no related invoices',\r\n // User profile error messages\r\n DATE_OF_BIRTH_REQUIRED: 'Date of birth is required',\r\n INVALID_DOB_FORMAT: 'Please use format: DD MMM YYYY',\r\n EMAIL_ALREADY_EXISTS: 'Email already exists',\r\n\r\n // User Passport validation error messages\r\n PASSPORT_NAME_REQUIRED: 'Passport Name is required',\r\n INVALID_PASSPORT_NAME: 'Name can not have any special characters or numbers',\r\n PASSPORT_NUMBER_REQUIRED: 'Passport Number is required',\r\n INVALID_PASSPORT_NUMBER: 'Passport can not have any special characters',\r\n PLESASE_USE_DATE_FORMAT: 'Please use format: DD/MM/YYYY',\r\n INVALID_PASSPORT_EXPIRY_DATE_FUTURE: 'Passport expiry date should be in future. Please insert a valid date.',\r\n INVALID_PASSPORT_EXPIRY_DATE: 'Passport expiry date should be valid. Please insert a valid date.',\r\n INVALID_NATIONALITY: 'Please enter valid nationality',\r\n INVALID_ISSUING_COUNTRY: 'Please enter valid issuing country',\r\n};\r\n\r\nexport const LEGACY_ERROR_MESSAGES = {\r\n timeout: \"Server not responding\",\r\n loginFailed:\r\n \"We could not log you in. Please check your username and password and try again\",\r\n legAddSuccessMsg: `You have successfully created your flight +\r\n from {deptAirport} to {arrivalAirport}`,\r\n legUpdateSuccessMsg: `Your Flight from {deptAirport} to {arrivalAirport}\r\n has been updated Successfully`,\r\n legUpdateWarning: \"Please update the opened leg first\",\r\n 500: \"Internal Server Error\",\r\n 501: \"No services are available currently\",\r\n 1: \"Phone Number already exists\",\r\n 2: \"User already exists\",\r\n 3: \"Phone already exists.\",\r\n 400: \"Bad request\",\r\n 1007: \"You are not authorized to request a flight. Please contact us for further assistance\",\r\n 1006: \"Itinerary already updated. Please refresh it\",\r\n paxCountAboveCapacity:\r\n \"Aircraft capacity does not allow you to add more passengers\",\r\n firstNameRequired: \"First Name is required\",\r\n lastNameRequired: \"Last Name is required\",\r\n emailRequired: \"Please enter email address\",\r\n emailIncorrect: \"Email is incorrect\",\r\n emailDoesntExists: \"The provided email address does not exist\",\r\n passwordRequired: \"Password is required\",\r\n passwordValid: `Passwords should contain at least 8 characters,\r\n with 1 uppercase letter and 1 numeric`,\r\n passwordMatch: \"Password does not match\",\r\n phoneRequired: \"Phone No. is required\",\r\n phoneIncorrect: \"Phone No. is incorrect\",\r\n countryRequired: \"Country is required\",\r\n countryInvalid: \"Invalid Country\",\r\n termsRequired: \"Please Agree to Terms & Conditions\",\r\n titleRequired: \"Title is required\",\r\n singupSuccess: \"Signup successful\",\r\n telephoneAlreadyExists: `There is already an account registered to this phone number.\r\n Please use a different number`,\r\n userAlreadyExists: `There is already an account registered to this email id.\r\n Please use another email id or log in to continue`,\r\n};\r\n\r\nexport const INVALID_DATE_MSG = 'Invalid date of birth';\r\n","import moment from \"moment\";\r\n\r\n// DATE-FNS UTILITIES\r\nexport const dateFnsFormats = {\r\n YYYY_MM_DD: \"yyyy-MM-dd\",\r\n DDMMMYYYY: \"dd MMM yyyy\",\r\n YYYY_MM_DD_WITH_TIME: \"yyyy-MM-ddTHH:mm:ss.SSSXX\"\r\n}\r\n\r\n// LEGACY DATE HANDLING FOR MOMENT JS BELOW THIS POINT\r\nexport const dateFormats = {\r\n YYYY_MM_DD: \"YYYY-MM-DD\",\r\n DDMMMYYYY: \"DD MMM YYYY\",\r\n YYYY_MM_DD_WITH_TIME: \"YYYY-MM-DDTHH:mm:ss.sssZZ\",\r\n MMDDYYYY: \"MM/DD/YYYY\",\r\n MM_DD_YYYY_HHmm: \"MM/DD/YYYY HH:mm\",\r\n YYYY_MM_DD_HHmm: \"YYYY-MM-DD HH:mm\",\r\n YYYY_MM_DD_PAX: \"YYYY-MM-DDTHH:mm:ssZ\",\r\n YYYY_MM_DD_HHmmss: \"YYYY-MM-DDTHH:mm:ss\",\r\n};\r\n\r\nconst INVALID_DATE = 'Invalid Date';\r\nconst DATE_WITHOUT_UTC = 'YYYY-MM-DDT[00:00:00Z]';\r\n\r\nexport const formatDate = (date, format) => date.format(format);\r\n\r\nexport function convertToZulu(momentObj) {\r\n if (!momentObj || isNaN(momentObj)) {\r\n return '';\r\n }\r\n return moment.isMoment(momentObj) ? moment(`${momentObj.format('YYYY-MM-DDTHH:mm:ss')}Z`) :\r\n momentObj;\r\n}\r\n\r\n// export const isDateBetween = (from, fromDateFormat, to, toDateFormat) => {\r\n// const currentDate = moment().format(dateFormats.YYYY_MM_DD);\r\n// const validFromDate = moment(from, fromDateFormat).format(\r\n// dateFormats.YYYY_MM_DD,\r\n// );\r\n// const validToDate = moment(to, toDateFormat).format(dateFormats.YYYY_MM_DD);\r\n// const isBetween = moment(currentDate).isBetween(\r\n// validFromDate,\r\n// validToDate,\r\n// null,\r\n// \"[]\"\r\n// );\r\n// return isBetween;\r\n// };\r\n\r\nexport function getDateWithoutTimeZone(date) {\r\n let dateFormated = date;\r\n if (!(dateFormated instanceof moment)) {\r\n dateFormated = moment(date, dateFormats.DDMMMYYYY);\r\n if (!moment(dateFormated).isValid()) {\r\n return date;\r\n }\r\n }\r\n return dateFormated.format(DATE_WITHOUT_UTC);\r\n}\r\n\r\nexport const convertToDoubleDigits = (time) => {\r\n if(+time < 10)\r\n return `0${time}`;\r\n return time;\r\n};\r\n\r\nexport function closest(el1, selector) {\r\n let matchesFn;\r\n let el = el1;\r\n // find vendor prefix\r\n ['matches',\r\n 'webkitMatchesSelector',\r\n\t'mozMatchesSelector',\r\n\t'msMatchesSelector',\r\n\t'oMatchesSelector'].some((fn) => {\r\n if (typeof document.body[fn] === 'function') {\r\n matchesFn = fn;\r\n return true;\r\n }\r\n return false;\r\n});\r\n let parent;\r\n // traverse parents\r\n while (el) {\r\n parent = el.parentElement;\r\n if (parent && parent[matchesFn](selector)) {\r\n return parent;\r\n }\r\n el = parent;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns difference between current and provided momentobj\r\n * @param {string} date\r\n * @returns {moment}\r\n **/\r\nexport function dateDifference(date) {\r\n const dateMoment = moment(date, 'DD MMM YYYY', true);\r\n if (dateMoment._d.toString() === INVALID_DATE) { // eslint-disable-line no-underscore-dangle\r\n return '';\r\n }\r\n return moment(moment.duration(moment().diff(moment(date))));\r\n}\r\nexport function isValidDateInFuture(date) {\r\n if (date === '') {\r\n return false;\r\n }\r\n const momentDifference = dateDifference(date);\r\n if (momentDifference === '') {\r\n return true;\r\n }\r\n return momentDifference && momentDifference._i // eslint-disable-line no-underscore-dangle\r\n && momentDifference._i._milliseconds < 0; // eslint-disable-line no-underscore-dangle\r\n}\r\n","export default __webpack_public_path__ + \"static/media/1.6f9448d1.svg\";","export default __webpack_public_path__ + \"static/media/1.fd87c4dc.svg\";","export default __webpack_public_path__ + \"static/media/1.0845f754.svg\";","export default __webpack_public_path__ + \"static/media/1.b707d987.svg\";","export default __webpack_public_path__ + \"static/media/1.fa3f77b6.svg\";","/**\r\n * luhn algorithm for Credit Card Validation\r\n * https://en.wikipedia.org/wiki/Luhn_algorithm\r\n */\r\nconst luhn = (cardNumber) => {\r\n const trimmed = String(cardNumber).replace(/[\\s]/g, '');\r\n const length = trimmed.length; // eslint-disable-line\r\n let odd = false;\r\n let total = 0;\r\n let calc;\r\n let calc2;\r\n\r\n if (length === 0) {\r\n return true;\r\n }\r\n\r\n if (!/^[0-9]+$/.test(trimmed)) {\r\n return false;\r\n }\r\n\r\n for (let i = length; i > 0; i--) {\r\n calc = parseInt(trimmed.charAt(i - 1), 10);\r\n if (!odd) {\r\n total += calc;\r\n } else {\r\n const calcAux = calc * 2;\r\n\r\n switch (calcAux) {\r\n case 10: calc2 = 1; break;\r\n case 12: calc2 = 3; break;\r\n case 14: calc2 = 5; break;\r\n case 16: calc2 = 7; break;\r\n case 18: calc2 = 9; break;\r\n default: calc2 = calcAux;\r\n }\r\n total += calc2;\r\n }\r\n odd = !odd;\r\n }\r\n\r\n return ((total % 10) === 0);\r\n};\r\n\r\nexport default luhn;\r\n","export default function setResponse(errorMessage) {\r\n return {\r\n isError: !!errorMessage,\r\n message: errorMessage,\r\n };\r\n}\r\n","/* eslint-disable */\r\nimport setResponse from '../errorUtils';\r\nimport { errorMessages } from '../../constants/ErrorMessageConstants';\r\n\r\nexport default function validatePhoneNumber(phoneNumber, isPhoneNumberValid) {\r\n let res = setResponse();\r\n if (!phoneNumber) {\r\n return res = setResponse(errorMessages.PHONE_REQUIRED);\r\n } else if (!isPhoneNumberValid) {\r\n return res = setResponse(errorMessages.INVALID_PHONE);\r\n }\r\n return res;\r\n};\r\n","import { types as CardType } from \"credit-card-type\";\r\nimport moment from \"moment\";\r\nimport luhn from \"../luhn\";\r\n\r\nimport validatePhoneNumber from \"./PhoneNumberValidator\";\r\nimport {\r\n EMAIL_REGEX,\r\n PASSWORD_REGEX,\r\n NAME_REGEX,\r\n PASSPORT_NAME_REGEX,\r\n PASSPORT_REGEX,\r\n} from \"../../constants/SignupConstants\";\r\nimport { getCreditCardTypes, getPossibleBrandIds } from \"../creditCardUtils\";\r\n\r\nimport setResponse from \"../errorUtils\";\r\nimport { dateFormats } from '../dateUtils';\r\nimport { errorMessages } from \"../../constants/ErrorMessageConstants\";\r\n\r\nexport function validateSalutation(value) {\r\n // eslint-disable-line\r\n let res = setResponse();\r\n if (value === undefined || value === null) {\r\n res = setResponse(errorMessages.SALUTATION_REQ);\r\n return res;\r\n }\r\n return res;\r\n}\r\n\r\nexport function validateTitleOther(title, titleOther) {\r\n if (title === \"Other\" && !titleOther) {\r\n return setResponse(\"Title is required\");\r\n }\r\n return setResponse();\r\n}\r\n\r\nexport function validateFirstName(value) {\r\n let res = setResponse();\r\n if (!value || (value && value.length < 2)) {\r\n res = setResponse(errorMessages.FIRST_NAME_REQ);\r\n return res;\r\n }\r\n if (!NAME_REGEX.test(value)) {\r\n res = setResponse(errorMessages.INVALID_NAME);\r\n return res;\r\n }\r\n return res;\r\n}\r\n\r\nexport function validateLastName(value) {\r\n let res = setResponse();\r\n if (!value || (value && value.length < 2)) {\r\n res = setResponse(errorMessages.LAST_NAME_REQ);\r\n return res;\r\n }\r\n if (!NAME_REGEX.test(value)) {\r\n res = setResponse(errorMessages.INVALID_NAME);\r\n return res;\r\n }\r\n return res;\r\n}\r\n\r\nexport function validateEmail(email) {\r\n let res = setResponse();\r\n if (!email) {\r\n res = setResponse(errorMessages.EMAIL_REQ);\r\n return res;\r\n }\r\n if (!EMAIL_REGEX.test(email)) {\r\n res = setResponse(errorMessages.INVALID_EMAIL);\r\n return res;\r\n }\r\n return res;\r\n}\r\n\r\nexport function validateEmailStartingFromUpperCase(email) {\r\n let emailRegex = /^[aA-zZ0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;\r\n let res = setResponse();\r\n if (!email) {\r\n res = setResponse(errorMessages.EMAIL_REQ);\r\n return res;\r\n }\r\n if (!emailRegex.test(email)) {\r\n res = setResponse(errorMessages.INVALID_EMAIL);\r\n return res;\r\n }\r\n return res;\r\n}\r\n\r\nexport function validateRepeatEmail(repeatEmail, email) {\r\n // eslint-disable-line\r\n let res = setResponse();\r\n if (!repeatEmail) {\r\n res = setResponse(errorMessages.REPEAT_EMAIL_REQ);\r\n return res;\r\n }\r\n if (repeatEmail !== email) {\r\n res = setResponse(errorMessages.EMAIL_DO_NOT_MATCH);\r\n return res;\r\n }\r\n return res;\r\n}\r\n\r\nexport function validatePhone(phoneNumber, isPhoneNumberValid) {\r\n return validatePhoneNumber(phoneNumber, isPhoneNumberValid);\r\n}\r\n\r\nexport function validatePhoneAndCountry(phoneNumber, isPhoneNumberValid, countryCode) {\r\n if (!countryCode)\r\n return setResponse(errorMessages.COUNTRY_REQUIRED);\r\n return validatePhoneNumber(phoneNumber, isPhoneNumberValid);\r\n}\r\n\r\nexport function validateTypeOfFlying(typeOfFlying) {\r\n if (!typeOfFlying) {\r\n return setResponse(\"Type of flying is required\");\r\n }\r\n return setResponse();\r\n}\r\n\r\nexport function validateCurrentFlyingSolution(currentFlyingSolution) {\r\n if (!currentFlyingSolution) {\r\n return setResponse(\"Current flying solution is required\");\r\n }\r\n return setResponse();\r\n}\r\n\r\n\r\nexport function validateHowDidYouHear(howDidYouHear) {\r\n if (!howDidYouHear) {\r\n return setResponse(\"How you heard is required\");\r\n }\r\n return setResponse();\r\n}\r\n\r\nexport function validateHowOftenDoYouFly(howOftenDoYouFly) {\r\n if (!howOftenDoYouFly) {\r\n return setResponse(\"How often you fly is required\");\r\n }\r\n return setResponse();\r\n}\r\n\r\nexport function validatePassword(password) {\r\n let res = setResponse();\r\n if (!password) {\r\n res = setResponse(errorMessages.PASS_REQ);\r\n return res;\r\n }\r\n if (password.length > 30) {\r\n res = setResponse(\r\n // isMobile\r\n // ? errorMessages.PASS_MAX_LENGT_MOBILE\r\n // : errorMessages.PASS_MAX_LENGTH\r\n errorMessages.PASS_MAX_LENGTH,\r\n );\r\n return res;\r\n }\r\n if (password.length < 8 || !PASSWORD_REGEX.test(password)) {\r\n res = setResponse(\r\n // isMobile\r\n // ? errorMessages.PASS_MAX_LENGT_MOBILE\r\n // : errorMessages.INVALID_PASS\r\n errorMessages.INVALID_PASS,\r\n );\r\n return res;\r\n }\r\n return res;\r\n}\r\n\r\nexport function validateRepeatPassword(repeatPassword, password) {\r\n let res = setResponse();\r\n if (!repeatPassword) {\r\n res = setResponse(errorMessages.REPEAT_PASS_REQ);\r\n return res;\r\n }\r\n if (repeatPassword !== password) {\r\n res = setResponse(errorMessages.PASS_DO_NOT_MATCH);\r\n return res;\r\n }\r\n return res;\r\n}\r\n\r\nexport function validateMessage(value) {\r\n let res = setResponse();\r\n if (!value || (value && value.length < 2)) {\r\n res = setResponse(errorMessages.MESSAGE_REQ);\r\n return res;\r\n }\r\n\r\n return res;\r\n}\r\n\r\nexport function validateNotEmpty(value) {\r\n let res = setResponse();\r\n if (!value) {\r\n res = setResponse(errorMessages.PASS_REQ);\r\n return res;\r\n }\r\n return res;\r\n}\r\n\r\nexport function validateSamePassword(oldPassword, newPassword) {\r\n let res = setResponse();\r\n if (oldPassword === newPassword) {\r\n res = setResponse(errorMessages.SAME_PASSWORD);\r\n return res;\r\n }\r\n return res;\r\n}\r\n\r\nexport function validateCheckBox(isChecked) {\r\n let res = setResponse();\r\n if (!isChecked) {\r\n res = setResponse(errorMessages.CHECK_REQUIRED);\r\n return res;\r\n }\r\n return res;\r\n}\r\n\r\n// Additional parameter cc added to get brandName. And validate 4 digit cvv for AMEX\r\n// (American Express and 3 or 4 digit cvv for others\r\nexport const validateCVV = (cvv, cc, brandId) => {\r\n let res = setResponse();\r\n if (!cvv) {\r\n res = setResponse(errorMessages.CVV_REQUIRED);\r\n return res;\r\n }\r\n\r\n if (cc) {\r\n const possibleBrandIds = getPossibleBrandIds(getCreditCardTypes(cc));\r\n\r\n if (\r\n (possibleBrandIds[0] !== CardType.AMERICAN_EXPRESS && cvv.length !== 3) ||\r\n (possibleBrandIds[0] === CardType.AMERICAN_EXPRESS && cvv.length !== 4)\r\n ) {\r\n res = setResponse(errorMessages.INVALID_CVV);\r\n return res;\r\n }\r\n return res;\r\n }\r\n if (\r\n (brandId != 1 && cvv.length !== 3) ||\r\n (brandId == 1 && cvv.length !== 4)\r\n ) {\r\n res = setResponse(errorMessages.INVALID_CVV);\r\n return res;\r\n }\r\n\r\n return res;\r\n};\r\n\r\nexport const validateCVVWithBrandId = (cvv, brandId) => {\r\n let res = setResponse();\r\n if (!cvv) {\r\n res = setResponse(errorMessages.CVV_REQUIRED);\r\n return res;\r\n }\r\n\r\n if (\r\n (brandId !== CardType.AMERICAN_EXPRESS && cvv.length !== 3) ||\r\n (brandId === CardType.AMERICAN_EXPRESS && cvv.length !== 4)\r\n ) {\r\n res = setResponse(errorMessages.INVALID_CVV);\r\n return res;\r\n }\r\n\r\n return res;\r\n};\r\n\r\nconst REGEX_MM_YY = /^([0][1-9]|[1][0-2])\\/[0-9][0-9]$/;\r\n\r\nconst validateExpiryDateFormat = date => {\r\n if (!REGEX_MM_YY.test(date)) {\r\n return errorMessages.INVALID_EXPIRY_DATE_FORMAT;\r\n }\r\n\r\n const ccDate = moment(date, \"MM-YY\").endOf(\"month\");\r\n\r\n if (ccDate.isBefore(moment())) {\r\n return errorMessages.INVALID_EXPIRY_DATE;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const validateExpiryDate = expiryDate => {\r\n let res = setResponse();\r\n if (!expiryDate) {\r\n res = setResponse(errorMessages.EXPIRY_DATE_REQUIRED);\r\n } else {\r\n const error = validateExpiryDateFormat(expiryDate);\r\n if (error) {\r\n res = setResponse(error);\r\n }\r\n }\r\n return res;\r\n};\r\n\r\nexport const validateCreditCardNumber = creditCardNumber => {\r\n let res = setResponse();\r\n if (!creditCardNumber) {\r\n res = setResponse(errorMessages.CREDIT_CARD_NUMBER_REQUIRED);\r\n } else if (!luhn(creditCardNumber)) {\r\n res = setResponse(errorMessages.INVALID_CREDIT_CARD_NUMBER);\r\n }\r\n return res;\r\n};\r\n\r\nexport const addressValidator = address => {\r\n let res = setResponse();\r\n if (!address || address.constructor !== String) {\r\n res = setResponse(errorMessages.ADDRESS_REQUIRED);\r\n return res;\r\n }\r\n return res;\r\n};\r\n\r\nexport const cityValidator = city => {\r\n let res = setResponse();\r\n if (!city || city.constructor !== String) {\r\n res = setResponse(errorMessages.CITY_REQUIRED);\r\n return res;\r\n }\r\n return res;\r\n};\r\n\r\nexport const stateValidator = state => {\r\n let res = setResponse();\r\n if (!state || state.constructor !== String) {\r\n res = setResponse(errorMessages.STATE_REQUIRED);\r\n return res;\r\n }\r\n return res;\r\n};\r\n\r\nexport const countryValidator = country => {\r\n let res = setResponse();\r\n if (!country || country.constructor !== String) {\r\n res = setResponse(errorMessages.COUNTRY_REQUIRED);\r\n return res;\r\n }\r\n return res;\r\n};\r\n\r\n// is given date string is after current date\r\nexport function dateInFuture(dateString, res) {\r\n const resolution = res || \"day\";\r\n const momentObj = moment(dateString).utc();\r\n return momentObj.isAfter(moment(), resolution);\r\n}\r\n\r\nexport const dateInPast = (dateString, res) => {\r\n const resolution = res || \"day\";\r\n const momentObj = moment(dateString);\r\n return momentObj.isBefore(moment(), resolution);\r\n}\r\nexport const zipCodeValidator = (zipCode) => {\r\n let res = setResponse();\r\n if (!zipCode || zipCode.constructor !== String) {\r\n res = setResponse(errorMessages.POSTAL_CODE_REQUIRED);\r\n }\r\n return res;\r\n}\r\n\r\nexport const validateDateOfBirth = (dateOfBirth) => {\r\n let res = setResponse();\r\n if (!dateOfBirth) {\r\n res = setResponse(errorMessages.DATE_OF_BIRTH_REQUIRED);\r\n } else {\r\n const dateBirth = moment(dateOfBirth, dateFormats.DDMMMYYYY, true);\r\n if (!dateBirth.isValid()) {\r\n res = setResponse(errorMessages.INVALID_DOB_FORMAT);\r\n }\r\n if (dateBirth.isAfter(moment())) {\r\n res = setResponse('Invalid date. It must be before today');\r\n }\r\n // else if (!handleIsValidDate(dateBirth)) {\r\n // dateOfBirthError = 'Invalid date. It must be before today';\r\n // }\r\n }\r\n return res;\r\n};\r\n\r\nexport const passportNumberValidator = (passportNumber) => {\r\n let res = setResponse();\r\n const passportNumberTrimmed = passportNumber && `${passportNumber}`.trim();\r\n if (!passportNumberTrimmed) {\r\n res = setResponse(errorMessages.PASSPORT_NUMBER_REQUIRED);\r\n } else if (!PASSPORT_REGEX.test(passportNumberTrimmed)) {\r\n res = setResponse(errorMessages.INVALID_PASSPORT_NUMBER);\r\n }\r\n return res;\r\n};\r\n\r\nexport const expiresOnDatevalidator = (expiresOnDate) => {\r\n let res = setResponse();\r\n if (!expiresOnDate) {\r\n res = setResponse(errorMessages.EXPIRY_DATE_REQUIRED);\r\n } else {\r\n if (!moment(expiresOnDate, dateFormats.DDMMMYYYY, true).isValid()) {\r\n res = setResponse(errorMessages.PLESASE_USE_DATE_FORMAT);\r\n }\r\n if (moment(expiresOnDate, dateFormats.DDMMMYYYY, true).startOf('day')\r\n .isBefore(moment()\r\n .startOf('day'))) {\r\n res = setResponse(errorMessages.INVALID_PASSPORT_EXPIRY_DATE_FUTURE);\r\n }\r\n if (moment(expiresOnDate, dateFormats.DDMMMYYYY, true).startOf('day')\r\n .isAfter(moment().add(10, 'years')\r\n .endOf('day'))) {\r\n res = setResponse(errorMessages.INVALID_PASSPORT_EXPIRY_DATE);\r\n }\r\n }\r\n return res;\r\n};\r\n\r\nexport const displayNameValidator = (displayName) => {\r\n let res = setResponse();\r\n const displayNameTrimmed = displayName && `${displayName}`.trim();\r\n if (!displayNameTrimmed) {\r\n res = setResponse(errorMessages.PASSPORT_NAME_REQUIRED);\r\n } else if (!PASSPORT_NAME_REGEX.test(displayName)) {\r\n res = setResponse(errorMessages.INVALID_PASSPORT_NAME);\r\n }\r\n return res;\r\n};\r\n\r\nexport const isoPassportIssueAndIssuingCountryValidator = (\r\n isoPassportCountry,\r\n issuingCountry = false,\r\n) => {\r\n let res = setResponse();\r\n if (issuingCountry) {\r\n if (!isoPassportCountry) {\r\n res = setResponse(errorMessages.INVALID_ISSUING_COUNTRY);\r\n return res;\r\n }\r\n return res;\r\n }\r\n if (!isoPassportCountry) {\r\n res = setResponse(errorMessages.INVALID_NATIONALITY);\r\n return res;\r\n }\r\n return res;\r\n};\r\n\r\nexport const validateStateCode = (stateCode, countryCode) => {\r\n if (countryCode !== 'US' || stateCode)\r\n return setResponse();\r\n return setResponse(errorMessages.STATE_REQUIRED)\r\n}\r\n\r\n// Format of stateCountries as below, although list could be omitted for this usage.\r\n//\r\n// const stateCountries = [\r\n// {\r\n// country: 'US',\r\n// list: stateList\r\n// }, {\r\n// country: 'IN',\r\n// list: indiaStateList\r\n// }];\r\nexport const validateStateCountries = (stateCountries, stateCode, countryCode) => {\r\n if (!stateCountries.some(o => o.country === countryCode) || stateCode)\r\n return setResponse();\r\n return setResponse(errorMessages.STATE_REQUIRED)\r\n}","import axios from \"axios\";\r\nimport getLocation from \"./geolocationAPI\";\r\n\r\nconst url = \"https://api.flyxo.com/airports/suggest_airport\";\r\nconst sortByWeight = (a1, a2) => ((a2.weight || 0) - (a1.weight || 0))\r\n\r\n// airport types\r\nexport const METROPOLITAN_AREA_WITH_AIRPORTS = \"metropolitan-area-with-airports\";\r\nexport const METROPOLITAN_AREA = \"metropolitan-area\";\r\nexport const NORMAL_AIRPORT = \"airport\";\r\nexport const NESTED_AIRPORT = \"airport-nested\";\r\n\r\nfunction normalizeAirports(airportData) {\r\n\tconst { ap: airports, ma: metropolitanAreas } = airportData\r\n\r\n\tconst airportsByAreas = airports.sort(sortByWeight).reduce((result, airport) => {\r\n\t\tif (!result.rest) result.rest = []\r\n\r\n\t\tconst parentMA = metropolitanAreas.find(({ metropolitan_area_id }) =>\r\n\t\t\tmetropolitan_area_id === airport.metropolitan_area_id\r\n\t\t)\r\n\t\tif (parentMA) {\r\n\t\t\tif (!result[airport.metropolitan_area_id]) {\r\n\t\t\t\tresult[airport.metropolitan_area_id] = [];\r\n\t\t\t}\r\n\r\n\t\t\tresult[airport.metropolitan_area_id].push({\r\n\t\t\t\t...airport,\r\n\t\t\t\tma_name: parentMA.name,\r\n\t\t\t\ttype: NESTED_AIRPORT\r\n\t\t\t});\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\tresult.rest.push({ ...airport, type: NORMAL_AIRPORT });\r\n\r\n\t\treturn result;\r\n\t}, {})\r\n\r\n\tconst flattenDestionations = metropolitanAreas.reduce((acc, ma) => {\r\n\t\tif (airportsByAreas[ma.metropolitan_area_id]) {\r\n\t\t\tacc.push({ ...ma, type: METROPOLITAN_AREA_WITH_AIRPORTS });\r\n\t\t\tacc = [...acc, ...airportsByAreas[ma.metropolitan_area_id]];\r\n\t\t} else {\r\n\t\t\tacc.push({ ...ma, type: METROPOLITAN_AREA });\r\n\t\t}\r\n\r\n\t\treturn acc;\r\n\t}, []);\r\n\r\n\treturn airportsByAreas.rest\r\n\t\t? [...flattenDestionations, ...airportsByAreas.rest]\r\n\t\t: flattenDestionations;\r\n}\r\n\r\nexport async function getNearestAirports() {\r\n/* \tconst location = await getLocation();\r\n\tif (!location || !location.coords) return;\r\n\r\n\tconst response = await axios.post(url,\r\n\t\t{\r\n\t\t\tgeo: { lat: location.coords.latitude, lon: location.coords.longitude }\r\n\t\t\t//geo: { lat: 48.8566, lon: 2.3522 }\t// Paris coords for testing\r\n\t\t});\r\n\t//console.log(\":getNearestAirport::response\");\r\n\t//console.log(response);\r\n\r\n\tif (response.status === 200 && response.data && response.data.ma && response.data.ma[0]) {\r\n\t\tlet result = normalizeAirports(response.data);\r\n\t\t//console.log(\":getNearestAirport::result\");\r\n\t\t//console.log(result);\r\n\t\treturn result;\r\n\t} */\r\n\treturn null;\r\n}\r\n\r\nexport async function getPopularAirports() {\r\n\tconst response = await axios.post(url, { geo: {} });\r\n\t//console.log(\":getPopularAirports::response\");\r\n\t//console.log(response);\r\n\r\n\tif (response.status === 200 && response.data && response.data.ma) {\r\n\t\tlet result = normalizeAirports(response.data);\r\n\t\t//console.log(\":getPopularAirports::result\");\r\n\t\t//console.log(result);\r\n\t\treturn result;\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nexport async function searchAirports(searchValue) {\r\n\tvar sessionKey = null;\r\n\r\n\tconst data = {\r\n\t\ttext: searchValue,\r\n\t\t...(sessionKey && { key: sessionKey })\r\n\t}\r\n\r\n\tconst response = await axios.post(url, data);\r\n\t//console.log(\":searchAirports::response\");\r\n\t//console.log(response);\r\n\r\n\tif (!sessionKey) {\r\n\t\tsessionKey = response.data.key;\r\n\t}\r\n\tlet result = normalizeAirports(response.data);\r\n\t//console.log(\":searchAirports::result\");\r\n\t//console.log(result);\r\n\treturn result;\r\n}\r\n","import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport * as api from 'features/api/airportLookupAPI';\r\n\r\nconst initialState = {\r\n nearestAirports: null,\r\n popularAirports: null,\r\n status: 'idle'\r\n};\r\n\r\nexport const getNearestAirports = createAsyncThunk(\r\n 'flyxoAirportAPI/getNearestAirports',\r\n async () => await api.getNearestAirports()\r\n);\r\n\r\nexport const getPopularAirports = createAsyncThunk(\r\n 'flyxoAirportAPI/getPopularAirports',\r\n async () => await api.getPopularAirports()\r\n);\r\n\r\nexport const searchAirports = api.searchAirports;\r\n\r\nexport const airportLookupSlice = createSlice({\r\n name: 'airportLookup',\r\n initialState,\r\n reducers: {\r\n\r\n },\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(getNearestAirports.pending, (state) => {\r\n state.status = 'loading';\r\n })\r\n .addCase(getNearestAirports.fulfilled, (state, action) => {\r\n state.status = 'idle';\r\n state.nearestAirports = action.payload;\r\n })\r\n .addCase(getPopularAirports.pending, (state) => {\r\n state.status = 'loading';\r\n })\r\n .addCase(getPopularAirports.fulfilled, (state, action) => {\r\n state.status = 'idle';\r\n state.popularAirports = action.payload;\r\n });\r\n },\r\n});\r\n\r\nexport const selectNearestAirports = (state) => state.airportLookup.nearestAirports;\r\nexport const selectPopularAirports = (state) => state.airportLookup.popularAirports;\r\n\r\nexport default airportLookupSlice.reducer;","const CateringConstants = {\r\n CATERING_STATUS_PENDING_APPROVAL: 'Awaiting Menu',\r\n CATERING_STATUS_PENDING_SELECTION: 'Menu Available',\r\n CATERING_STATUS_ON_REQUEST: 'On Request',\r\n CATERING_STATUS_CONFIRMED: 'Confirmed',\r\n CATERING_STATUS_NOT_REQUIRED: 'Not Required',\r\n CATERING_STATUS_CODE_0: 0, // : No backend response 1\r\n CATERING_STATUS_CODE_1: 1, // : No Work Started 1\r\n CATERING_STATUS_CODE_2: 2, // : Proposal Started 1\r\n CATERING_STATUS_CODE_3: 3, // : Proposal Available 2\r\n CATERING_STATUS_CODE_4: 4, // : Customer Selection Made 3\r\n CATERING_STATUS_CODE_5: 5, // : Menu Proposal Rejected 1\r\n CATERING_STATUS_CODE_6: 6, // : Purchase Order Process Started 3\r\n CATERING_STATUS_CODE_7: 7, // : Catering Order(s) Placed 3\r\n CATERING_STATUS_CODE_8: 8, // : Catering Confirmed 4\r\n CATERING_STATUS_CODE_9: 9, // : Flight Preferences updated 3\r\n CATERING_STATUS_CODE_10: 10, // : Flight Cancelled - Cancel Catering 5\r\n CATERING_STATUS_CODE_11: 11, // : Flight Cancelled - Catering Cancelled 5\r\n CATERING_STATUS_CODE_12: 12, // : Check Work - Flight Changed 1\r\n CATERING_STATUS_CODE_13: 13, // : No Catering Required 5\r\n CATERING_STATUS_CODE_14: 14, // : C/H To Organise 4\r\n CATERING_STATUS_CODE_15: 15, // : Catering Delivered 4\r\n CATERING_STATUS_CODE_16: 16, // : Catering Feedback Received 4\r\n CATERING_STATUS_CODE_17: 17, // : Customer Selection Updating 3\r\n CATERING_STATUS_CODE_18: 18, // : Customer Selection Updated 3\r\n CATERING_STATUS_CODE_19: 19, // : Pending O/B Approval 3\r\n cateringStates: {\r\n NOT_STARTED:[0,1,2],\r\n PENDING_APPROVAL: [0, 1, 2, 5],\r\n PENDING_SELECTION: [3, 12],\r\n ON_REQUEST: [4, 6, 7, 9, 17, 18, 19],\r\n CONFIRMED: [8, 14, 15, 16],\r\n NOT_REQUIRED: [10, 11, 13],\r\n },\r\n CATERING_SERVICE_GENERAL: 'General',\r\n CATERING_SHARED_ORDER_KEY: '0',\r\n CATERING_SHARED_ORDER_LABEL: 'Shared Order',\r\n CATERING_SCREENS: {\r\n SUPPLIER_LIST_MENU: 'supplierlistmenu',\r\n PASSENGER_QUANTITY_LIST: 'passengerquantitylist',\r\n SUPPLIERS_LIST: 'suppliersscreen',\r\n }\r\n};\r\n\r\n\r\nmodule.exports = CateringConstants;\r\n","export const isEmpty = obj => Object.keys(obj).length === 0;\r\n\r\nexport const isValidJSON = (str) => {\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst getStyle = (props) => {\r\n const style = {\r\n position: 'absolute',\r\n zIndex: '1',\r\n top: '13px',\r\n left: '20px',\r\n fontSize: '16px',\r\n fontFamily: 'garamond, serif',\r\n lineHeight: '22px',\r\n pointerEvents: 'none',\r\n transition: 'all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms',\r\n transformOrigin: 'left top 0px',\r\n };\r\n\r\n if (props.isFocused || props.hasValue) {\r\n style.transform = 'perspective(1px) scale(1) translate3d(0, -28px, 0)';\r\n style.left = '20px';\r\n style.top = '5px';\r\n }\r\n\r\n return style;\r\n};\r\n\r\nconst FloatingLabel = (props, context) => {\r\n const { children, style, htmlFor } = props;\r\n const styles = Object.assign(getStyle(props, context), style);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nFloatingLabel.propTypes = {\r\n /**\r\n * Content of the label.\r\n */\r\n children: PropTypes.object, // eslint-disable-line\r\n\r\n /**\r\n * Controls the label style color if it's enabled or not.\r\n */\r\n disabled: PropTypes.bool, // eslint-disable-line\r\n\r\n /**\r\n * Controls if the label has value or not.\r\n */\r\n hasValue: PropTypes.bool.isRequired, // eslint-disable-line\r\n\r\n /**\r\n * htmlFor property of the Label.\r\n */\r\n htmlFor: PropTypes.string, // eslint-disable-line\r\n\r\n /**\r\n * Controls the color style if the label is focused.\r\n */\r\n isFocused: PropTypes.bool.isRequired, // eslint-disable-line\r\n\r\n /**\r\n * Label inline style.\r\n */\r\n style: PropTypes.object, // eslint-disable-line\r\n};\r\n\r\nFloatingLabel.contextTypes = {\r\n muiTheme: PropTypes.object.isRequired, // eslint-disable-line\r\n};\r\n\r\nexport default FloatingLabel;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst getStyles = (props) => {\r\n\r\n const underline = Object.assign({\r\n borderStyle: 'none none solid',\r\n borderBottomWidth: '1px',\r\n bottom: '0px',\r\n boxSizing: 'content-box',\r\n margin: '0px',\r\n position: 'absolute',\r\n width: '100%',\r\n }, props.underlineStyle);\r\n\r\n const underlineFocus = Object.assign({}, underline, {\r\n borderBottomWidth: '2px',\r\n transform: props.isFocused ? 'scaleX(1)' : 'scaleX(0)',\r\n transition: 'all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms',\r\n }, props.underlineFocusStyle);\r\n\r\n return {\r\n underline,\r\n underlineFocus,\r\n };\r\n};\r\n\r\nconst UnderlineField = (props) => {\r\n const styles = getStyles(props);\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nUnderlineField.propTypes = {\r\n\r\n /**\r\n * Bool used to verify if it's disabled.\r\n */\r\n disabled: PropTypes.bool.isRequired, // eslint-disable-line\r\n\r\n /**\r\n * Bool used to verify if it has value.\r\n */\r\n hasValue: PropTypes.bool.isRequired, // eslint-disable-line\r\n\r\n /**\r\n * Bool used to verify if it's selected.\r\n */\r\n isFocused: PropTypes.bool.isRequired, // eslint-disable-line\r\n\r\n /**\r\n * Override the inline-styles of the underline WITH focus element.\r\n */\r\n underlineFocusStyle: PropTypes.object, // eslint-disable-line\r\n\r\n /**\r\n * Override the inline-styles of the underline element.\r\n */\r\n underlineStyle: PropTypes.object, // eslint-disable-line\r\n};\r\n\r\nexport default UnderlineField;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst getStyle = () => {\r\n return {\r\n position: 'initial',\r\n bottom: 2,\r\n fontSize: 18,\r\n lineHeight: 'normal',\r\n color: 'red',\r\n transition: 'all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms',\r\n paddingLeft: 20,\r\n paddingTop: 3,\r\n fontFamily: 'garamond, serif',\r\n };\r\n};\r\n\r\nconst ErrorText = (props, context) => {\r\n const { children, style } = props;\r\n const styles = Object.assign(getStyle(props, context), style);\r\n if (children) {\r\n return (\r\n
\r\n {children }\r\n
\r\n );\r\n }\r\n return null\r\n};\r\n\r\nErrorText.propTypes = {\r\n /**\r\n * The contents of the Error Text.\r\n */\r\n children: PropTypes.node,\r\n\r\n /**\r\n * Inline styles of the element.\r\n */\r\n style: PropTypes.object, // eslint-disable-line\r\n};\r\n\r\nErrorText.defaultProps = {\r\n children: null,\r\n}\r\n\r\nErrorText.contextTypes = {\r\n muiTheme: PropTypes.object, // eslint-disable-line\r\n};\r\n\r\nexport default ErrorText;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst getStyle = (props) => {\r\n return {\r\n position: 'absolute',\r\n opacity: props.hasValue ? 0 : 1,\r\n color: '#4a4a4a', // props.disabled\r\n transition: 'all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms',\r\n bottom: 0,\r\n fontSize: 13,\r\n fontFamily: '\"museo-sans\", sans-serif',\r\n paddingLeft: 46, \r\n lineHeight: '36px',\r\n width: 'calc(100% - 46px)',\r\n height: '33.5px'\r\n };\r\n};\r\n\r\nconst HintText = (props) => {\r\n const { style, children } = props;\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nHintText.propTypes = {\r\n /**\r\n * Content of HintText\r\n */\r\n children: PropTypes.node.isRequired,\r\n\r\n /**\r\n * Controls color style if hintText is enabled or not.\r\n */\r\n // disabled: PropTypes.bool.isRequired,\r\n\r\n /**\r\n * Controls opacity style if the label has value or not.\r\n */\r\n // hasValue: PropTypes.bool.isRequired,\r\n\r\n /**\r\n * Controls styles if hintText is focused or not.\r\n */\r\n // isFocused: PropTypes.bool.isRequired,\r\n\r\n /**\r\n * Override the inline-styles of the root element.\r\n */\r\n style: PropTypes.shape().isRequired,\r\n};\r\n\r\nexport default HintText;\r\n","import axios from 'axios';\r\nimport { TIMEOUT } from '../../constants/ApiConstants';\r\n\r\nimport phoneNumberUrl from '../../utils/libphonenumber';\r\n\r\nconst LoadLibPhoneNumber = {\r\n loadPhoneLib() {\r\n return new Promise((resolve, reject) => {\r\n if (window.intlTelInputUtils) {\r\n resolve();\r\n } else {\r\n axios\r\n .get(phoneNumberUrl)\r\n .timeout(TIMEOUT)\r\n .end((err, res) => {\r\n if (err) {\r\n reject();\r\n } else {\r\n if (res.text && !document.getElementById('intlTelInputUtils')) {\r\n const oBody = document.getElementsByTagName('body')[0];\r\n const oScript = document.createElement('script');\r\n oScript.id = 'intlTelInputUtils';\r\n oScript.text = res.text;\r\n oBody.appendChild(oScript);\r\n }\r\n resolve();\r\n }\r\n });\r\n }\r\n });\r\n },\r\n};\r\n\r\nexport default LoadLibPhoneNumber;\r\n","/* eslint-disable */\r\n(function(){var aa=this;function k(a){return\"string\"==typeof a}function m(a,b){a=a.split(\".\");var c=aa;a[0]in c||\"undefined\"==typeof c.execScript||c.execScript(\"var \"+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b}\r\n function n(a,b){function c(){}c.prototype=b.prototype;a.o=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.aa=function(a,c,f){for(var d=Array(arguments.length-2),e=2;ec?Math.max(0,a.length+c):c;if(k(a))return k(b)&&1==b.length?a.indexOf(b,c):-1;for(;cb?1:aa.length?!1:O(Fa,a)}function Ja(a){return O(Da,a)?P(a,ya):P(a,xa)}function Ka(a){var b=Ja(a.toString());a.c=\"\";a.a(b)}function La(a){return null!=a&&(1!=A(a,9)||-1!=w(a,9)[0])}function P(a,b){for(var c=new F,d,e=a.length,f=0;fb?2:f[f.length-1]=b.c.length)throw Error(\"Phone number too short after IDD\");\r\n a:{a=b.toString();if(0!=a.length&&\"0\"!=a.charAt(0))for(e=a.length,b=1;3>=b&&b<=e;++b)if(c=parseInt(a.substring(0,b),10),c in K){d.a(a.substring(b));d=c;break a}d=0}if(0!=d)return u(f,1,d),d;throw Error(\"Invalid country calling code\");}if(null!=c&&(g=y(c,10),h=\"\"+g,l=b.toString(),0==l.lastIndexOf(h,0)&&(h=new F(l.substring(h.length)),l=t(c,1),l=new RegExp(y(l,2)),Ra(h,c,null),h=h.toString(),!O(l,b.toString())&&O(l,h)||3==Y(a,b.toString(),c,-1))))return d.a(h),e&&u(f,6,10),u(f,1,g),g;u(f,1,0);return 0}\r\n function Ra(a,b,c){var d=a.toString(),e=d.length,f=t(b,15);if(0!=e&&null!=f&&0!=f.length){var g=new RegExp(\"^(?:\"+f+\")\");if(e=g.exec(d)){f=new RegExp(y(t(b,1),2));var h=O(f,d),l=e.length-1;b=t(b,16);if(null==b||0==b.length||null==e[l]||0==e[l].length){if(!h||O(f,d.substring(e[0].length)))null!=c&&0b.c.length)throw Error(\"The string supplied is too short to be a phone number\");null!=g&&(c=new F,e=new F(b.toString()),Ra(e,g,c),a=Y(a,e.toString(),g,-1),2!=a&&4!=a&&5!=a&&(b=e,d&&0a)throw Error(\"The string supplied is too short to be a phone number\");if(171 country with same dial code),\r\n// Area codes (if >1 country with same dial code)\r\n// ]\r\nexport const defaultCountriesData = [\r\n [\r\n 'Afghanistan (‫افغانستان‬‎)',\r\n 'af',\r\n '93',\r\n ],\r\n [\r\n 'Åland Islands',\r\n 'ax',\r\n '358',\r\n 1,\r\n ], \r\n [\r\n 'Albania (Shqipëri)',\r\n 'al',\r\n '355',\r\n ],\r\n [\r\n 'Algeria (‫الجزائر‬‎)',\r\n 'dz',\r\n '213',\r\n ],\r\n [\r\n 'American Samoa',\r\n 'as',\r\n '1684',\r\n ],\r\n [\r\n 'Andorra',\r\n 'ad',\r\n '376',\r\n ],\r\n [\r\n 'Angola',\r\n 'ao',\r\n '244',\r\n ],\r\n [\r\n 'Anguilla',\r\n 'ai',\r\n '1264',\r\n ],\r\n [\r\n 'Antigua and Barbuda',\r\n 'ag',\r\n '1268',\r\n ],\r\n [\r\n 'Argentina',\r\n 'ar',\r\n '54',\r\n ],\r\n [\r\n 'Armenia (Հայաստան)',\r\n 'am',\r\n '374',\r\n ],\r\n [\r\n 'Aruba',\r\n 'aw',\r\n '297',\r\n ],\r\n [\r\n 'Australia',\r\n 'au',\r\n '61',\r\n 0,\r\n ],\r\n [\r\n 'Austria (Österreich)',\r\n 'at',\r\n '43',\r\n ],\r\n [\r\n 'Azerbaijan (Azərbaycan)',\r\n 'az',\r\n '994',\r\n ],\r\n [\r\n 'Bahamas',\r\n 'bs',\r\n '1242',\r\n ],\r\n [\r\n 'Bahrain (‫البحرين‬‎)',\r\n 'bh',\r\n '973',\r\n ],\r\n [\r\n 'Bangladesh (বাংলাদেশ)',\r\n 'bd',\r\n '880',\r\n ],\r\n [\r\n 'Barbados',\r\n 'bb',\r\n '1246',\r\n ],\r\n [\r\n 'Belarus (Беларусь)',\r\n 'by',\r\n '375',\r\n ],\r\n [\r\n 'Belgium (België)',\r\n 'be',\r\n '32',\r\n ],\r\n [\r\n 'Belize',\r\n 'bz',\r\n '501',\r\n ],\r\n [\r\n 'Benin (Bénin)',\r\n 'bj',\r\n '229',\r\n ],\r\n [\r\n 'Bermuda',\r\n 'bm',\r\n '1441',\r\n ],\r\n [\r\n 'Bhutan (འབྲུག)',\r\n 'bt',\r\n '975',\r\n ],\r\n [\r\n 'Bolivia',\r\n 'bo',\r\n '591',\r\n ],\r\n [\r\n 'Bosnia and Herzegovina (Босна и Херцеговина)',\r\n 'ba',\r\n '387',\r\n ],\r\n [\r\n 'Botswana',\r\n 'bw',\r\n '267',\r\n ],\r\n [\r\n 'Brazil (Brasil)',\r\n 'br',\r\n '55',\r\n ],\r\n [\r\n 'British Indian Ocean Territory',\r\n 'io',\r\n '246',\r\n ],\r\n [\r\n 'Brunei',\r\n 'bn',\r\n '673',\r\n ],\r\n [\r\n 'Bulgaria (България)',\r\n 'bg',\r\n '359',\r\n ],\r\n [\r\n 'Burkina Faso',\r\n 'bf',\r\n '226',\r\n ],\r\n [\r\n 'Burundi (Uburundi)',\r\n 'bi',\r\n '257',\r\n ],\r\n [\r\n 'Cambodia (កម្ពុជា)',\r\n 'kh',\r\n '855',\r\n ],\r\n [\r\n 'Cameroon (Cameroun)',\r\n 'cm',\r\n '237',\r\n ],\r\n [\r\n 'Canada',\r\n 'ca',\r\n '1',\r\n 1,\r\n [\r\n '204', '226', '236', '249', '250', '289',\r\n '306', '343', '365', '387', '403', '416',\r\n '418', '431', '437', '438', '450', '506',\r\n '514', '519', '548', '579', '581', '587',\r\n '604', '613', '639', '647', '672', '705',\r\n '709', '742', '778', '780', '782', '807',\r\n '819', '825', '867', '873', '902', '905',\r\n ],\r\n ],\r\n [\r\n 'Cape Verde (Kabu Verdi)',\r\n 'cv',\r\n '238',\r\n ],\r\n [\r\n 'Caribbean Netherlands',\r\n 'bq',\r\n '599',\r\n 1,\r\n ],\r\n [\r\n 'Cayman Islands',\r\n 'ky',\r\n '1345',\r\n ],\r\n [\r\n 'Central African Republic (République centrafricaine)',\r\n 'cf',\r\n '236',\r\n ],\r\n [\r\n 'Chad (Tchad)',\r\n 'td',\r\n '235',\r\n ],\r\n [\r\n 'Chile',\r\n 'cl',\r\n '56',\r\n ],\r\n [\r\n 'China (中国)',\r\n 'cn',\r\n '86',\r\n ],\r\n [\r\n 'Christmas Island',\r\n 'cx',\r\n '61',\r\n 2,\r\n ],\r\n [\r\n 'Cocos (Keeling) Islands',\r\n 'cc',\r\n '61',\r\n 1,\r\n ],\r\n [\r\n 'Colombia',\r\n 'co',\r\n '57',\r\n ],\r\n [\r\n 'Comoros (‫جزر القمر‬‎)',\r\n 'km',\r\n '269',\r\n ],\r\n [\r\n 'Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)',\r\n 'cd',\r\n '243',\r\n ],\r\n [\r\n 'Congo (Republic) (Congo-Brazzaville)',\r\n 'cg',\r\n '242',\r\n ],\r\n [\r\n 'Cook Islands',\r\n 'ck',\r\n '682',\r\n ],\r\n [\r\n 'Costa Rica',\r\n 'cr',\r\n '506',\r\n ],\r\n [\r\n 'Côte d’Ivoire',\r\n 'ci',\r\n '225',\r\n ],\r\n [\r\n 'Croatia (Hrvatska)',\r\n 'hr',\r\n '385',\r\n ],\r\n [\r\n 'Cuba',\r\n 'cu',\r\n '53',\r\n ],\r\n [\r\n 'Curaçao',\r\n 'cw',\r\n '599',\r\n 0,\r\n ],\r\n [\r\n 'Cyprus (Κύπρος)',\r\n 'cy',\r\n '357',\r\n ],\r\n [\r\n 'Czech Republic (Česká republika)',\r\n 'cz',\r\n '420',\r\n ],\r\n [\r\n 'Denmark (Danmark)',\r\n 'dk',\r\n '45',\r\n ],\r\n [\r\n 'Djibouti',\r\n 'dj',\r\n '253',\r\n ],\r\n [\r\n 'Dominica',\r\n 'dm',\r\n '1767',\r\n ],\r\n [\r\n 'Dominican Republic (República Dominicana)',\r\n 'do',\r\n '1',\r\n 2,\r\n ['809', '829', '849'],\r\n ],\r\n [\r\n 'Ecuador',\r\n 'ec',\r\n '593',\r\n ],\r\n [\r\n 'Egypt (‫مصر‬‎)',\r\n 'eg',\r\n '20',\r\n ],\r\n [\r\n 'El Salvador',\r\n 'sv',\r\n '503',\r\n ],\r\n [\r\n 'Equatorial Guinea (Guinea Ecuatorial)',\r\n 'gq',\r\n '240',\r\n ],\r\n [\r\n 'Eritrea',\r\n 'er',\r\n '291',\r\n ],\r\n [\r\n 'Estonia (Eesti)',\r\n 'ee',\r\n '372',\r\n ],\r\n [\r\n 'Eswatini, Kingdom of (formerly Swaziland)',\r\n 'sz',\r\n '268',\r\n ], \r\n [\r\n 'Ethiopia',\r\n 'et',\r\n '251',\r\n ],\r\n [\r\n 'Falkland Islands (Islas Malvinas)',\r\n 'fk',\r\n '500',\r\n ],\r\n [\r\n 'Faroe Islands (Føroyar)',\r\n 'fo',\r\n '298',\r\n ],\r\n [\r\n 'Fiji',\r\n 'fj',\r\n '679',\r\n ],\r\n [\r\n 'Finland (Suomi)',\r\n 'fi',\r\n '358',\r\n 0,\r\n ],\r\n [\r\n 'France',\r\n 'fr',\r\n '33',\r\n ],\r\n [\r\n 'French Guiana (Guyane française)',\r\n 'gf',\r\n '594',\r\n ],\r\n [\r\n 'French Polynesia (Polynésie française)',\r\n 'pf',\r\n '689',\r\n ],\r\n [\r\n 'Gabon',\r\n 'ga',\r\n '241',\r\n ],\r\n [\r\n 'Gambia',\r\n 'gm',\r\n '220',\r\n ],\r\n [\r\n 'Georgia (საქართველო)',\r\n 'ge',\r\n '995',\r\n ],\r\n [\r\n 'Germany (Deutschland)',\r\n 'de',\r\n '49',\r\n ],\r\n [\r\n 'Ghana (Gaana)',\r\n 'gh',\r\n '233',\r\n ],\r\n [\r\n 'Gibraltar',\r\n 'gi',\r\n '350',\r\n ],\r\n [\r\n 'Greece (Ελλάδα)',\r\n 'gr',\r\n '30',\r\n ],\r\n [\r\n 'Greenland (Kalaallit Nunaat)',\r\n 'gl',\r\n '299',\r\n ],\r\n [\r\n 'Grenada',\r\n 'gd',\r\n '1473',\r\n ],\r\n [\r\n 'Guadeloupe',\r\n 'gp',\r\n '590',\r\n 0,\r\n ],\r\n [\r\n 'Guam',\r\n 'gu',\r\n '1671',\r\n ],\r\n [\r\n 'Guatemala',\r\n 'gt',\r\n '502',\r\n ],\r\n [\r\n 'Guernsey',\r\n 'gg',\r\n '44',\r\n 1,\r\n ],\r\n [\r\n 'Guinea (Guinée)',\r\n 'gn',\r\n '224',\r\n ],\r\n [\r\n 'Guinea-Bissau (Guiné Bissau)',\r\n 'gw',\r\n '245',\r\n ],\r\n [\r\n 'Guyana',\r\n 'gy',\r\n '592',\r\n ],\r\n [\r\n 'Haiti',\r\n 'ht',\r\n '509',\r\n ],\r\n [\r\n 'Honduras',\r\n 'hn',\r\n '504',\r\n ],\r\n [\r\n 'Hong Kong (香港)',\r\n 'hk',\r\n '852',\r\n ],\r\n [\r\n 'Hungary (Magyarország)',\r\n 'hu',\r\n '36',\r\n ],\r\n [\r\n 'Iceland (Ísland)',\r\n 'is',\r\n '354',\r\n ],\r\n [\r\n 'India (भारत)',\r\n 'in',\r\n '91',\r\n ],\r\n [\r\n 'Indonesia',\r\n 'id',\r\n '62',\r\n ],\r\n [\r\n 'Iran (‫ایران‬‎)',\r\n 'ir',\r\n '98',\r\n ],\r\n [\r\n 'Iraq (‫العراق‬‎)',\r\n 'iq',\r\n '964',\r\n ],\r\n [\r\n 'Ireland',\r\n 'ie',\r\n '353',\r\n ],\r\n [\r\n 'Isle of Man',\r\n 'im',\r\n '44',\r\n 2,\r\n ],\r\n [\r\n 'Israel (‫ישראל‬‎)',\r\n 'il',\r\n '972',\r\n ],\r\n [\r\n 'Italy (Italia)',\r\n 'it',\r\n '39',\r\n 0,\r\n ],\r\n [\r\n 'Jamaica',\r\n 'jm',\r\n '1876',\r\n ],\r\n [\r\n 'Japan (日本)',\r\n 'jp',\r\n '81',\r\n ],\r\n [\r\n 'Jersey',\r\n 'je',\r\n '44',\r\n 3,\r\n ],\r\n [\r\n 'Jordan (‫الأردن‬‎)',\r\n 'jo',\r\n '962',\r\n ],\r\n [\r\n 'Kazakhstan (Казахстан)',\r\n 'kz',\r\n '7',\r\n 1,\r\n ],\r\n [\r\n 'Kenya',\r\n 'ke',\r\n '254',\r\n ],\r\n [\r\n 'Kiribati',\r\n 'ki',\r\n '686',\r\n ],\r\n [\r\n 'Korea, North (조선 민주주의 인민 공화국)',\r\n 'kp',\r\n '850',\r\n ], \r\n [\r\n 'Korea, South (대한민국)',\r\n 'kr',\r\n '82',\r\n ], \r\n // [\r\n // 'Kosovo',\r\n // 'xk',\r\n // '383',\r\n // ],\r\n [\r\n 'Kuwait (‫الكويت‬‎)',\r\n 'kw',\r\n '965',\r\n ],\r\n [\r\n 'Kyrgyzstan (Кыргызстан)',\r\n 'kg',\r\n '996',\r\n ],\r\n [\r\n 'Laos (ລາວ)',\r\n 'la',\r\n '856',\r\n ],\r\n [\r\n 'Latvia (Latvija)',\r\n 'lv',\r\n '371',\r\n ],\r\n [\r\n 'Lebanon (‫لبنان‬‎)',\r\n 'lb',\r\n '961',\r\n ],\r\n [\r\n 'Lesotho',\r\n 'ls',\r\n '266',\r\n ],\r\n [\r\n 'Liberia',\r\n 'lr',\r\n '231',\r\n ],\r\n [\r\n 'Libya (‫ليبيا‬‎)',\r\n 'ly',\r\n '218',\r\n ],\r\n [\r\n 'Liechtenstein',\r\n 'li',\r\n '423',\r\n ],\r\n [\r\n 'Lithuania (Lietuva)',\r\n 'lt',\r\n '370',\r\n ],\r\n [\r\n 'Luxembourg',\r\n 'lu',\r\n '352',\r\n ],\r\n [\r\n 'Macao (澳門)',\r\n 'mo',\r\n '853',\r\n ],\r\n [\r\n 'Macedonia, North (Република Северна Македонија)',\r\n 'mk',\r\n '389',\r\n ],\r\n [\r\n 'Madagascar (Madagasikara)',\r\n 'mg',\r\n '261',\r\n ],\r\n [\r\n 'Malawi',\r\n 'mw',\r\n '265',\r\n ],\r\n [\r\n 'Malaysia',\r\n 'my',\r\n '60',\r\n ],\r\n [\r\n 'Maldives',\r\n 'mv',\r\n '960',\r\n ],\r\n [\r\n 'Mali',\r\n 'ml',\r\n '223',\r\n ],\r\n [\r\n 'Malta',\r\n 'mt',\r\n '356',\r\n ],\r\n [\r\n 'Marshall Islands',\r\n 'mh',\r\n '692',\r\n ],\r\n [\r\n 'Martinique',\r\n 'mq',\r\n '596',\r\n ],\r\n [\r\n 'Mauritania (‫موريتانيا‬‎)',\r\n 'mr',\r\n '222',\r\n ],\r\n [\r\n 'Mauritius (Moris)',\r\n 'mu',\r\n '230',\r\n ],\r\n [\r\n 'Mayotte',\r\n 'yt',\r\n '262',\r\n 1,\r\n ],\r\n [\r\n 'Mexico (México)',\r\n 'mx',\r\n '52',\r\n ],\r\n [\r\n 'Micronesia, Federated States of',\r\n 'fm',\r\n '691',\r\n ],\r\n [\r\n 'Moldova, Republic of (Republica Moldova)',\r\n 'md',\r\n '373',\r\n ],\r\n [\r\n 'Monaco',\r\n 'mc',\r\n '377',\r\n ],\r\n [\r\n 'Mongolia (Монгол)',\r\n 'mn',\r\n '976',\r\n ],\r\n [\r\n 'Montenegro (Crna Gora)',\r\n 'me',\r\n '382',\r\n ],\r\n [\r\n 'Montserrat',\r\n 'ms',\r\n '1664',\r\n ],\r\n [\r\n 'Morocco (‫المغرب‬‎)',\r\n 'ma',\r\n '212',\r\n 0,\r\n ],\r\n [\r\n 'Mozambique (Moçambique)',\r\n 'mz',\r\n '258',\r\n ],\r\n [\r\n 'Myanmar (Burma) (မြန်မာ)',\r\n 'mm',\r\n '95',\r\n ],\r\n [\r\n 'Namibia (Namibië)',\r\n 'na',\r\n '264',\r\n ],\r\n [\r\n 'Nauru',\r\n 'nr',\r\n '674',\r\n ],\r\n [\r\n 'Nepal (नेपाल)',\r\n 'np',\r\n '977',\r\n ],\r\n [\r\n 'Netherlands (Nederland)',\r\n 'nl',\r\n '31',\r\n ],\r\n [\r\n 'New Caledonia (Nouvelle-Calédonie)',\r\n 'nc',\r\n '687',\r\n ],\r\n [\r\n 'New Zealand',\r\n 'nz',\r\n '64',\r\n ],\r\n [\r\n 'Nicaragua',\r\n 'ni',\r\n '505',\r\n ],\r\n [\r\n 'Niger (Nijar)',\r\n 'ne',\r\n '227',\r\n ],\r\n [\r\n 'Nigeria',\r\n 'ng',\r\n '234',\r\n ],\r\n [\r\n 'Niue',\r\n 'nu',\r\n '683',\r\n ],\r\n [\r\n 'Norfolk Island',\r\n 'nf',\r\n '672',\r\n ],\r\n [\r\n 'Northern Mariana Islands',\r\n 'mp',\r\n '1670',\r\n ],\r\n [\r\n 'Norway (Norge)',\r\n 'no',\r\n '47',\r\n 0,\r\n ],\r\n [\r\n 'Oman (‫عُمان‬‎)',\r\n 'om',\r\n '968',\r\n ],\r\n [\r\n 'Pakistan (‫پاکستان‬‎)',\r\n 'pk',\r\n '92',\r\n ],\r\n [\r\n 'Palau',\r\n 'pw',\r\n '680',\r\n ],\r\n [\r\n 'Palestinian Territory, Occupied (‫فلسطين‬‎)',\r\n 'ps',\r\n '970',\r\n ],\r\n [\r\n 'Panama (Panamá)',\r\n 'pa',\r\n '507',\r\n ],\r\n [\r\n 'Papua New Guinea',\r\n 'pg',\r\n '675',\r\n ],\r\n [\r\n 'Paraguay',\r\n 'py',\r\n '595',\r\n ],\r\n [\r\n 'Peru (Perú)',\r\n 'pe',\r\n '51',\r\n ],\r\n [\r\n 'Philippines',\r\n 'ph',\r\n '63',\r\n ],\r\n [\r\n 'Poland (Polska)',\r\n 'pl',\r\n '48',\r\n ],\r\n [\r\n 'Portugal',\r\n 'pt',\r\n '351',\r\n ],\r\n [\r\n 'Puerto Rico',\r\n 'pr',\r\n '1',\r\n 3,\r\n ['787', '939'],\r\n ],\r\n [\r\n 'Qatar (‫قطر‬‎)',\r\n 'qa',\r\n '974',\r\n ],\r\n [\r\n 'Réunion (La Réunion)',\r\n 're',\r\n '262',\r\n 0,\r\n ],\r\n [\r\n 'Romania (România)',\r\n 'ro',\r\n '40',\r\n ],\r\n [\r\n 'Russia (Россия)',\r\n 'ru',\r\n '7',\r\n 0,\r\n ],\r\n [\r\n 'Rwanda',\r\n 'rw',\r\n '250',\r\n ],\r\n [\r\n 'Saint Barthélemy (Saint-Barthélemy)',\r\n 'bl',\r\n '590',\r\n 1,\r\n ],\r\n [\r\n 'Saint Helena, Ascension and Tristan da Cunha',\r\n 'sh',\r\n '290',\r\n ],\r\n [\r\n 'Saint Kitts and Nevis',\r\n 'kn',\r\n '1869',\r\n ],\r\n [\r\n 'Saint Lucia',\r\n 'lc',\r\n '1758',\r\n ],\r\n [\r\n 'Saint Martin (Saint-Martin (partie française))',\r\n 'mf',\r\n '590',\r\n 2,\r\n ],\r\n [\r\n 'Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)',\r\n 'pm',\r\n '508',\r\n ],\r\n [\r\n 'Saint Vincent and the Grenadines',\r\n 'vc',\r\n '1784',\r\n ],\r\n [\r\n 'Samoa',\r\n 'ws',\r\n '685',\r\n ],\r\n [\r\n 'San Marino',\r\n 'sm',\r\n '378',\r\n ],\r\n [\r\n 'São Tomé and Príncipe (São Tomé e Príncipe)',\r\n 'st',\r\n '239',\r\n ],\r\n [\r\n 'Saudi Arabia (‫المملكة العربية السعودية‬‎)',\r\n 'sa',\r\n '966',\r\n ],\r\n [\r\n 'Senegal (Sénégal)',\r\n 'sn',\r\n '221',\r\n ],\r\n [\r\n 'Serbia (Србија)',\r\n 'rs',\r\n '381',\r\n ],\r\n [\r\n 'Seychelles',\r\n 'sc',\r\n '248',\r\n ],\r\n [\r\n 'Sierra Leone',\r\n 'sl',\r\n '232',\r\n ],\r\n [\r\n 'Singapore',\r\n 'sg',\r\n '65',\r\n ],\r\n [\r\n 'Sint Maarten',\r\n 'sx',\r\n '1721',\r\n ],\r\n [\r\n 'Slovakia (Slovensko)',\r\n 'sk',\r\n '421',\r\n ],\r\n [\r\n 'Slovenia (Slovenija)',\r\n 'si',\r\n '386',\r\n ],\r\n [\r\n 'Solomon Islands',\r\n 'sb',\r\n '677',\r\n ],\r\n [\r\n 'Somalia (Soomaaliya)',\r\n 'so',\r\n '252',\r\n ],\r\n [\r\n 'South Africa',\r\n 'za',\r\n '27',\r\n ],\r\n [\r\n 'South Sudan (‫جنوب السودان‬‎)',\r\n 'ss',\r\n '211',\r\n ],\r\n [\r\n 'Spain (España)',\r\n 'es',\r\n '34',\r\n ],\r\n [\r\n 'Sri Lanka (ශ්‍රී ලංකාව)',\r\n 'lk',\r\n '94',\r\n ],\r\n [\r\n 'Sudan (‫السودان‬‎)',\r\n 'sd',\r\n '249',\r\n ],\r\n [\r\n 'Suriname',\r\n 'sr',\r\n '597',\r\n ],\r\n [\r\n 'Svalbard and Jan Mayen',\r\n 'sj',\r\n '47',\r\n 1,\r\n ],\r\n [\r\n 'Sweden (Sverige)',\r\n 'se',\r\n '46',\r\n ],\r\n [\r\n 'Switzerland (Schweiz)',\r\n 'ch',\r\n '41',\r\n ],\r\n [\r\n 'Syria (‫سوريا‬‎)',\r\n 'sy',\r\n '963',\r\n ],\r\n [\r\n 'Taiwan, Province of China (台灣)',\r\n 'tw',\r\n '886',\r\n ],\r\n [\r\n 'Tajikistan',\r\n 'tj',\r\n '992',\r\n ],\r\n [\r\n 'Tanzania',\r\n 'tz',\r\n '255',\r\n ],\r\n [\r\n 'Thailand (ไทย)',\r\n 'th',\r\n '66',\r\n ],\r\n [\r\n 'Timor-Leste',\r\n 'tl',\r\n '670',\r\n ],\r\n [\r\n 'Togo',\r\n 'tg',\r\n '228',\r\n ],\r\n [\r\n 'Tokelau',\r\n 'tk',\r\n '690',\r\n ],\r\n [\r\n 'Tonga',\r\n 'to',\r\n '676',\r\n ],\r\n [\r\n 'Trinidad and Tobago',\r\n 'tt',\r\n '1868',\r\n ],\r\n [\r\n 'Tunisia (‫تونس‬‎)',\r\n 'tn',\r\n '216',\r\n ],\r\n [\r\n 'Turkey (Türkiye)',\r\n 'tr',\r\n '90',\r\n ],\r\n [\r\n 'Turkmenistan',\r\n 'tm',\r\n '993',\r\n ],\r\n [\r\n 'Turks and Caicos Islands',\r\n 'tc',\r\n '1649',\r\n ],\r\n [\r\n 'Tuvalu',\r\n 'tv',\r\n '688',\r\n ],\r\n [\r\n 'Uganda',\r\n 'ug',\r\n '256',\r\n ],\r\n [\r\n 'Ukraine (Україна)',\r\n 'ua',\r\n '380',\r\n ],\r\n [\r\n 'United Arab Emirates (‫الإمارات العربية المتحدة‬‎)',\r\n 'ae',\r\n '971',\r\n ],\r\n [\r\n 'United Kingdom',\r\n 'gb',\r\n '44',\r\n 0,\r\n ],\r\n [\r\n 'United States',\r\n 'us',\r\n '1',\r\n 0,\r\n ],\r\n [\r\n 'Uruguay',\r\n 'uy',\r\n '598',\r\n ],\r\n [\r\n 'Uzbekistan (Oʻzbekiston)',\r\n 'uz',\r\n '998',\r\n ],\r\n [\r\n 'Vanuatu',\r\n 'vu',\r\n '678',\r\n ],\r\n [\r\n 'Vatican City (Città del Vaticano)',\r\n 'va',\r\n '39',\r\n 1,\r\n ],\r\n [\r\n 'Venezuela',\r\n 've',\r\n '58',\r\n ],\r\n [\r\n 'Vietnam (Việt Nam)',\r\n 'vn',\r\n '84',\r\n ],\r\n [\r\n 'Virgin Islands, British',\r\n 'vg',\r\n '1284',\r\n ],\r\n [\r\n 'Virgin Islands, U.S.',\r\n 'vi',\r\n '1340',\r\n ], \r\n [\r\n 'Wallis and Futuna',\r\n 'wf',\r\n '681',\r\n ],\r\n [\r\n 'Western Sahara (‫الصحراء الغربية‬‎)',\r\n 'eh',\r\n '212',\r\n 1,\r\n ],\r\n [\r\n 'Yemen (‫اليمن‬‎)',\r\n 'ye',\r\n '967',\r\n ],\r\n [\r\n 'Zambia',\r\n 'zm',\r\n '260',\r\n ],\r\n [\r\n 'Zimbabwe',\r\n 'zw',\r\n '263',\r\n ],\r\n];\r\n\r\nfunction formatCountriesData(countriesData) {\r\n return countriesData.map((country) => {\r\n return (\r\n [\r\n country[0],\r\n country[1],\r\n country[2],\r\n country[3] || 0,\r\n country[4] || null,\r\n ]\r\n );\r\n });\r\n}\r\n\r\nexport default formatCountriesData(defaultCountriesData);\r\n","const token = \"7bcc4f7290d440468732d30c6d6cb235\";\r\n\r\nexport const APP_VERSION = \"0.1.0\";\r\n\r\nexport const ENCRYPTION_SECRET = process.env.REACT_APP_ENCRYPTION_SECRET;\r\n\r\nexport const SALT = \"!,9>@V{j~]\";\r\n\r\nexport const API_URL = process.env.REACT_APP_API_URL;\r\n\r\nexport const APP_SOURCE = \"CUSTOMERWEB\";\r\n\r\nexport const CONTEXT = \"customerapp\";\r\n\r\nexport const DEFAULT_FLAG = '588842CD-8CBB-85D1-35ED-C73A4CE9E64B';\r\n\r\nexport const SIGNUP_CONTEXT = \"U2FsdGVkX1+gjDqZR1ZHHWOGgMNIVc1V0yaaqjOeRZYswpJfDOM65gq99ltIN34b\";\r\n\r\nexport const SIGNUP_CONTEXT_PASSWORD = \"U2FsdGVkX1+utXyWMXwCbSv0eoKE8Iy3IVq7Hl5UEmk=\";\r\n\r\n// webserviceqa.vistajet.com shouldn't be used for generally testing in any environment\r\n// it should only be used if testing against an API change and preparing the app for that change\r\nconst webservice = window.globalEnv && window.globalEnv.toLowerCase() === \"production\" ? process.env.REACT_APP_WEB_SERV : process.env.REACT_APP_WEB_PREP;\r\n\r\nexport const GOOGLE_MAP_API_KEY = process.env.REACT_APP_GOOGLE_MAP_API_KEY;\r\n\r\nexport const BASE_URL = `https://${webservice}.vistajet.com/extranetServices/`;\r\n\r\nexport const BASE_SERVICE_URL = `${BASE_URL}1.1/`;\r\n\r\nconst EPISERVER_VERSION = \"api/episerver/v2.0\";\r\n\r\nconst EPISERVER_FIELDS = \"?fields=apiContent\";\r\n\r\nconst FORECAST_API_KEY = process.env.REACT_APP_FORECAST_API_KEY;\r\n\r\nexport const CUSTOMER_APP_ID = 12;\r\n\r\nexport const LOGIN_URL = `${API_URL}/login`;\r\n\r\nexport const REGISTER_URL = `${BASE_URL}1.5/customerapp/customerappadmin/{token}/user/register?mode={mode}`;\r\nexport const GET_AIRCRAFTS_URL = `${BASE_URL}1.1/customerapp/customerapp/${token}/aircrafttype/updates`;\r\nexport const TOPUP_REFERENCE = `${BASE_URL}1.1/customerapp/customerapp/{token}/topUpReference`;\r\nexport const TOPUP_SUBMITTED = `${BASE_URL}1.1/customerapp/customerapp/{token}/topUp`;\r\nexport const TOPUP_CANCEL_REFERENCE = `${BASE_URL}1.1/customerapp/customerapp/{token}/cancelReferenceCode`;\r\nexport const TOPUP_HISTORY = `${BASE_URL}1.1/customerapp/customerapp/{token}/topUpHistory`;\r\nexport const GET_TOKEN_URL = `${BASE_SERVICE_URL}user/{context}/{username}/token/`;\r\nexport const AUTHENTICATE_URL = `${BASE_URL}1.6/user/{context}/{username}/authenticate?source=CUSTOMERWEB`;\r\nexport const FORGET_PASSWORD_URL = `${BASE_URL}1.1/user/{context}/{email}/requestNewPassword`;\r\nexport const FETCH_MEMBERSHIP_PLANS = `${BASE_URL}1.0/pricer/customerapp/{token}/membershipPlans`;\r\nexport const MEMBERSHIP_SIGN_UP = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/signup`;\r\nexport const MEMBERSHIP_WITHOUT_CARD_SIGN_UP = `${BASE_URL}1.2/customerapp/${CONTEXT}/{token}/signup`;\r\nexport const LOGOUT_URL = `${BASE_SERVICE_URL}user/${CONTEXT}/{token}/logout/V2/`;\r\nexport const CHANGE_PASSWORD_URL = `${BASE_URL}1.1/user/{context}/{username}/password/?source=CUSTOMERWEB`;\r\nexport const FETCH_OFFERS_URL = `${BASE_URL}1.3/pricer/${CONTEXT}/${token}/offer-opportunities`;\r\nexport const FETCH_VISITED_AIRPORTS_URL = `${BASE_URL}1.0/msairportdata/${CONTEXT}/visitedAirport`;\r\n\r\n// TODO: Add enviroment\r\nexport const FETCH_SUGGEST_AIRPORTS_URL = \"https://api.flyxo.com/airports/suggest_airport\";\r\nexport const FETCH_AIRPORT_BY_ID = `${BASE_URL}1.0/trendingairports/${CONTEXT}/airportById`;\r\nexport const REQUEST_QUOTE_URL = `${BASE_URL}1.5/customerapp/${CONTEXT}/{token}/requestflight`;\r\nexport const DOWNLOAD_PRIVATE_FILE_URL = `${BASE_URL}3.0/files/getfile/${CONTEXT}/{token}?mode=download&fileKey={key}`;\r\nexport const CREATE_COMPANY_URL = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/createCompany`;\r\nexport const VALIDATE_FLIGHT_URL = `${BASE_URL}1.2/opsrestrictions/customerapp/{token}/validateFlight`;\r\nexport const REQUEST_FLIGHT_2_0_URL = `${BASE_URL}1.6/customerapp/${CONTEXT}/{token}/requestflight/`;\r\nexport const QUOTE_URL = `${BASE_URL}1.0/pricer/${CONTEXT}/{token}/quote/`;\r\nexport const MANAGE_USER_PROFILE = `${BASE_SERVICE_URL}customerapp/{CONTEXT}/{token}/passenger/manage/1.2?{params}`;\r\nexport const ACCOUNT_MEMBERSHIP_STATUS = `${BASE_URL}1.7/customerapp/{context}/{token}/accountStatus`;\r\nexport const FORECAST_URL = `https://api.forecast.io/forecast/${FORECAST_API_KEY}/{lat},{long},{time}`;\r\nexport const DETAIL_FORECAST_URL = `https://api.forecast.io/forecast/${FORECAST_API_KEY}/{lat},{long}`;\r\n\r\nexport const LIMITED_OFFER_FETCH = {\r\n pageNumber: 1,\r\n pageSize: 3\r\n};\r\n\r\nexport const HEADER = {\r\n \"Accept-Language\": \"en\"\r\n};\r\n\r\nexport const HEADLESS_API_BASE_URL =\r\n \"http://vjin01mstrx3y70inte.dxcloud.episerver.net/\";\r\n\r\n\r\n\r\nexport const contactusEnv = \"dev\";\r\n\r\nconst currentEnv = \"PROD\";\r\n\r\nexport const INVOICES_PER_PAGE = 5;\r\n\r\nexport const ADD_CREDIT_CARD_URL = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/creditCardManagement/`;\r\nexport const GET_CREDIT_CARD_LIST_URL = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/getCreditCardList/`;\r\nexport const DELETE_CREDIT_CARD_URL = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/deleteCreditCard/`;\r\nexport const GET_NOTIFICATION_OPTIONS = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/getNotificationOptions`;\r\nexport const UPDATE_NOTIFICATION_OPTIONS = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/updatePushNotificationOptions`;\r\nexport const SAVE_BILLING_ADDRESS_URL = `${BASE_URL}1.1/customerapp/${CONTEXT}/{token}/saveAddress`;\r\nexport const TRANSACTIONS_QUANTITY = 5;\r\nexport const ON_DEMAND_ACCOUNT_BALANCE_URL = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/membershipAccountStatement?lineItemsPerPage={lineItemsPerpage}¤tCount={currentCount}`;\r\n\r\nexport const FETCH_ITINERARIES_URL = `${BASE_URL}1.8/customerapp/${CONTEXT}/{token}/fetchItineraries?isUpcoming={isUpcoming}&pageNum={pageNum}`;\r\nexport const FETCH_CANCEL_ITINERARIES_URL = `${BASE_URL}1.0/customerapp/${CONTEXT}/{token}/itineraries/cancelled?pageNum={pageNum}`;\r\n\r\nexport const FETCH_ITINERARY_DETAILS_URL = `${BASE_URL}1.7/customerapp/{context}/{token}/itineraries/fetchItinerariesByOrderId/?{key}={uniqueIdentifier}`;\r\nexport const FETCH_ENTERTAINMENT_ISSUE_NUMBER = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/issues/current?tail-number={tailNumber}`;\r\nexport const FETCH_ENTERTAINMENT = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/issues/{issueNumber}?tail-number={tailNumber}`;\r\nexport const FETCH_FBO_URL = `${BASE_URL}1.7/customerapp/${CONTEXT}/{token}/fboDetails/{flightLegId}`;\r\nexport const CREW_INFO_URL = `${BASE_URL}1.6/customerapp/${CONTEXT}/{token}/crewInfo/{flightLegId}`;\r\nexport const ITINERARY_DETAIL_PDF = `${BASE_URL}1.0/itinerary/customerapp/{token}/pdf/{flightLegId}`;\r\nexport const FETCH_GROUND_SERVICES_URL = `${BASE_URL}1.6/customerapp/${CONTEXT}/{token}/serviceOptions/`;\r\nexport const ADD_GROUND_SERVICES_URL = `${BASE_URL}1.1/customerapp/${CONTEXT}/{token}/services/add?{key}={uniqueIdentifier}`;\r\nexport const SERVICES_AVAILED_URL = `${BASE_URL}1.6/customerapp/${CONTEXT}/{token}/servicesAvailed?{key}={flightLegId}`;\r\nexport const CATERING_STATE_URL = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/catering/cateringState/{flightId}`;\r\nexport const CATERING_PROPOSAL_URL = `${BASE_URL}1.2/customerapp/${CONTEXT}/{token}/catering/cateringProposal/{flightId}/`;\r\nexport const CATERING_SELECTION_PDF = `${BASE_URL}1.1/customerapp/customerapp/{token}/flightMenuURL/{flightLegId}`;\r\n\r\nexport const CUSTOMER_SELECTION_URL = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/catering/customerSelection`;\r\nexport const FETCH_MOVEMENT_MESSAGES = `${BASE_URL}1.2/customerapp/${CONTEXT}/{token}/retrieveAllMovementMessageByFlightId/{flightId}`;\r\nexport const FETCH_SINGLE_LEG_PAX = `${BASE_URL}1.6/customerapp/${CONTEXT}/{token}/passenger?{flightLegKey}={flightLegId}`;\r\nexport const FLIGHT_CANCEL_URL = `${BASE_URL}1.4/customerapp/${CONTEXT}/{token}/requestflight`;\r\nexport const FETCH_UNBILLED_ACCOUNT_BALANCE = `${BASE_SERVICE_URL}${CONTEXT}/{token}/fetchUnBilledFlights`;\r\n\r\nexport const FETCH_PROGRAM_ACCOUNT_BALANCE = `${BASE_SERVICE_URL}customerapp/customerapp/{token}/nextInvoiceHoursV2?invoicesPerPage=${INVOICES_PER_PAGE}¤tCount={currentCount}&aircraftTypeId={aircraftTypeId}`;\r\n\r\nexport const FETCH_ACCOUNT_STATEMENTS = `${BASE_SERVICE_URL}${CONTEXT}/customerapp/{token}/accountStatements?accountId={accountId}&aircraftTypeId={aircraftTypeId}`;\r\n\r\nexport const DOWNLOAD_ZIP_URL = `${BASE_URL}1.1/customerapp/${CONTEXT}/{token}/accountStatements/allPdfZipped?{key}`;\r\n\r\nexport const FETCH_STATEMENT_INVOICES = `${BASE_SERVICE_URL}${CONTEXT}/customerapp/{token}/accountStatementInvoices?accountStatementId={accountStatementId}&pageNumber={pageNumber}&pageSize={pageSize}`;\r\n\r\nexport const GET_PDF_FILE_URL = `${BASE_URL}3.0/files/getfile/${CONTEXT}/{token}?accountStatementId={id}`;\r\n\r\nexport const FETCH_ORDER_ID_BY_LEG = `${BASE_URL}1.6/customerapp/${CONTEXT}/{token}/itineraries/flightLeg?{key}={legId}`;\r\n\r\n\r\nexport const FETCH_SINGLE_LEG_FEEDBACK = `${BASE_URL}1.0/customerapp/${CONTEXT}/{token}/getFlightFeedback`;\r\n\r\n\r\nexport const SAVE_LEG_FEEDBACK = `${BASE_URL}1.0/customerapp/${CONTEXT}/{token}/saveFlightFeedback`;\r\n\r\nexport const GET_PUBLIC_TOKEN = `${BASE_URL}1.1/user/customerapp/${CONTEXT}/token`;\r\n\r\nexport const HTTP_HEADERS = {\r\n deviceInfo: 'WEB',\r\n os: navigator.platform,\r\n appBuildNr: APP_VERSION,\r\n // deviceUUID: Helpers.guid(),\r\n Accept: 'application/xml',\r\n 'Content-Type': 'application/xml',\r\n // requestedTime: Helpers.getCurrentTimestamp(),\r\n};\r\nexport const HTTP_HEADERS_JSON = Object.assign({}, HTTP_HEADERS, {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n});\r\nexport const FETCH_MY_QUOTES = `${BASE_URL}1.5/customerapp/${CONTEXT}/{token}/fetchQuotes?quoteStatus={quoteStatus}&pageNum={pageNum}`;\r\n\r\nexport const GET_BILLING_ADDRESS_URL = `${BASE_URL}1.1/customerapp/${CONTEXT}/{token}/getAddresses`;\r\n\r\nexport const SEARCH_PAX_URL = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/passenger/search?key={term}`;\r\n\r\nexport const MANAGE_PAX_URL = `${BASE_URL}1.2/customerapp/${CONTEXT}/{token}/passenger/manage/?{key}={uniqueIdentifier}`;\r\n\r\nexport const POST_FILE_URL = `${BASE_URL}2.0/files/postfile/${CONTEXT}/{token}?fileKey={key}`;\r\n\r\n// URLs for ES File Security\r\nexport const GET_PUBLIC_FILE_URL = `${BASE_URL}1.2/files/getpublicfile?fileKey={key}`;\r\n\r\nexport const GET_PRIVATE_FILE_URL = `${BASE_URL}2.0/files/getfile/${CONTEXT}/{token}?fileKey={key}`;\r\n\r\nexport const WRITE_USER_SETTINGS = `${BASE_SERVICE_URL}customerapp/${CONTEXT}/{token}/update_general_setting/`;\r\n\r\nexport const CONTACTUS_URL =\r\n \"https://cs84.salesforce.com/servlet/servlet.WebToCase?encoding=UTF-8\";\r\n\r\n\r\nconst enviorments = {\r\n PRE_PROD: \"http://vjin01mstrx3y70prep.dxcloud.episerver.net\",\r\n INTEGRATION: \"http://vjin01mstrx3y70inte.dxcloud.episerver.net\",\r\n PROD: window.location.origin\r\n};\r\n\r\nexport const TERMS_POLICY_URLS = {\r\n SUPPLIER_POLICY: `${enviorments[currentEnv]\r\n }/${EPISERVER_VERSION}/content/2360${EPISERVER_FIELDS}`,\r\n ANTI_CORRUPTION_POLICY: `${enviorments[currentEnv]\r\n }/${EPISERVER_VERSION}/content/2372${EPISERVER_FIELDS}`,\r\n SPEAK_UP_POLICY: `${enviorments[currentEnv]\r\n }/${EPISERVER_VERSION}/content/2371${EPISERVER_FIELDS}`,\r\n INSIDER_TRADING_POLICY: `${enviorments[currentEnv]\r\n }/${EPISERVER_VERSION}/content/2368${EPISERVER_FIELDS}`,\r\n SANCTIONS_COMPLIANCE_POLICY: `${enviorments[currentEnv]\r\n }/${EPISERVER_VERSION}/content/2370${EPISERVER_FIELDS}`,\r\n ANTI_MONEY_LAUNDERING_POLICY: `${enviorments[currentEnv]\r\n }/${EPISERVER_VERSION}/content/2367${EPISERVER_FIELDS}`\r\n};\r\n\r\nexport const TERMS_URL = `${enviorments[currentEnv]\r\n }/${EPISERVER_VERSION}/content/2258${EPISERVER_FIELDS}`;\r\nexport const TERMS_URL_PAGE = `/${window.epiSettings.language}/legal/`;\r\n\r\nexport const POLICY_URL = `${enviorments[currentEnv]\r\n }/${EPISERVER_VERSION}/content/2273${EPISERVER_FIELDS}`;\r\n\r\n// URLS redirection\r\n\r\n\r\nexport const POLICY_URL_PAGE = `/${window.epiSettings.language}/privacy-policy/{headingId}`;\r\nexport const MEMBRSHIP_PROGRAM_URL_PAGE = `/${window.epiSettings.language}/memberships/program/`;\r\n\r\nexport const DIRET_REGISTRATION_PAGE_URL = {\r\n url: `/${window.epiSettings.language}/direct-registration/`\r\n};\r\nexport const CONFIRM_REGISTER_PAGE_URL = {\r\n url: `/${window.epiSettings.language}/registration/success/` // eslint-disable-line\r\n};\r\nexport const DIRECT_CONFIRM_REGISTER_PAGE_URL = {\r\n url: `/${window.epiSettings.language}/direct-registration/success/` // eslint-disable-line\r\n};\r\n\r\nexport const PAF_PAGE_URL = `/${window.epiSettings.language}/account/plan-a-flight/`;\r\nexport const MODIFY_ORDER_PAGE_URL = `/${window.epiSettings.language}/account/modify-order/`;\r\nexport const RAF_PAGE_URL = `/${window.epiSettings.language}/account/request-a-flight/`;\r\nexport const UPCOMING_ITINERARIES_PAGE_URL = `/${window.epiSettings.language}/account/itineraries/`;\r\nexport const PAST_ITINERARIES_PAGE_URL = `/${window.epiSettings.language}/account/itineraries/past/`;\r\nexport const CANCELLED_ITINERARIES_PAGE_URL = `/${window.epiSettings.language}/account/itineraries/cancelled/`;\r\nexport const HOME_PAGE_URL = `/${window.epiSettings.language}/`;\r\nexport const OFFERS_PAGE_URL = `/${window.epiSettings.language}/offers/`;\r\nexport const PAS_PAGE_URL = `/${window.epiSettings.language}/account/program-statement/`;\r\nexport const ACTIVE_QUOTES_PAGE_URL = `/${window.epiSettings.language}/account/quotes/`;\r\nexport const EXPIRED_QUOTES_PAGE_URL = `/${window.epiSettings.language}/account/quotes/expired/`;\r\nexport const QUOTE_SUMMARY_PAGE_URL = `/${window.epiSettings.language}/account/quotes/summary/`;\r\nexport const CONTACT_US_PAGE_URL = `/${window.epiSettings.language}/contact-us/`;\r\n\r\nexport const AIRCRAFT_URLS = {\r\n LINK_TO_CHALLENGER_350: `/${window.epiSettings.language}/private-jets/challenger-350/`,\r\n LINK_TO_CHALLENGER_605: `/${window.epiSettings.language}/private-jets/challenger-605/`,\r\n LINK_TO_CHALLENGER_850: `/${window.epiSettings.language}/private-jets/challenger-850/`,\r\n LINK_TO_GLOBAL_5000: `/${window.epiSettings.language}/private-jets/global-5000/`,\r\n LINK_TO_GLOBAL_XRS_6000: `/${window.epiSettings.language}/private-jets/global-6000/`,\r\n LINK_TO_GLOBAL_XRS_7500: `/${window.epiSettings.language}/private-jets/global-7500/`,\r\n};\r\n\r\nexport const ENTERTAINMENT_DETAILS_PAGE_URL = {\r\n url: `/${window.epiSettings.language}/account/itineraries/summary/entertainment/?/{key}/{orderExtendifier}/{flightLegExtendifier}/{itineraryType}/entertainment/{tailNumber}`\r\n};\r\nexport const ITINERARY_DETAILS_PAGE_URL = {\r\n url: `/${window.epiSettings.language}/account/itineraries/summary/?/{key}/{orderExtendifier}/{flightLegExtendifier}/{itineraryType}`\r\n};\r\nexport const TOPUP_HISTORY_PAGE_URL = {\r\n url: `/${window.epiSettings.language}/account/balance/transactions/`,\r\n};\r\nexport const TOPUP_ACCOUNT_PAGE_URL = {\r\n url: `/${window.epiSettings.language}/account/balance/top-up/`,\r\n};\r\nexport const DIRECT_ACCOUNT_BALANCE_PAGE_URL = {\r\n url: `/${window.epiSettings.language}/account/balance/`,\r\n};\r\nexport const USER_PROFILE_PAGE = {\r\n url: `/${window.epiSettings.language}/account/`\r\n};\r\n","export default __webpack_public_path__ + \"static/media/1.6f9448d1.svg\";","export const Salutation = [\r\n { label: 'Mr.', value: 0 },\r\n { label: 'Ms.', value: 1 },\r\n { label: 'Mrs.', value: 2 },\r\n { label: 'Other', value: 3 }\r\n];\r\nexport const PASSWORD_REGEX = /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,30}$/;\r\n// eslint-disable-next-line\r\nexport const EMAIL_REGEX = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;\r\nexport const NAME_REGEX = /^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$/u; //eslint-disable-line\r\nexport const INVALID_NAME = 'Name cannot have special characters';\r\nexport const PASSPORT_NAME_REGEX = /^[a-zA-Z ']+$/;\r\nexport const PASSPORT_REGEX = /^[a-zA-Z\\d]+$/;\r\n","// Admin Token\r\nexport const ADMIN_FETCH_TOKEN_INIT = 'ADMIN_FETCH_TOKEN_INIT';\r\nexport const ADMIN_FETCH_TOKEN_SUCCESS = 'ADMIN_FETCH_TOKEN_SUCCESS';\r\nexport const ADMIN_FETCH_TOKEN_FAIL = 'ADMIN_FETCH_TOKEN_FAIL';\r\n\r\n// Authentication Token\r\nexport const AUTHENTICATE_TOKEN_INIT = 'AUTHENTICATE_TOKEN_INIT';\r\nexport const AUTHENTICATE_TOKEN_SUCCESS = 'AUTHENTICATE_TOKEN_SUCCESS';\r\nexport const AUTHENTICATE_TOKEN_FAIL = 'AUTHENTICATE_TOKEN_FAIL';\r\n\r\n// Contact Us\r\nexport const POST_CONTACTUS_INIT = 'POST_CONTACTUS_INIT';\r\nexport const POST_CONTACTUS_SUCCESS = 'POST_CONTACTUS_SUCCESS';\r\nexport const POST_CONTACTUS_FAIL = 'POST_CONTACTUS_FAIL';\r\nexport const POST_CONTACTUS_REFRESH = 'POST_CONTACTUS_REFRESH';\r\n\r\n// GeoCode\r\nexport const FETCH_GEOCODE_INIT = 'FETCH_GEOCODE_INIT';\r\nexport const FETCH_GEOCODE_SUCCESS = 'FETCH_GEOCODE_SUCCESS';\r\nexport const FETCH_GEOCODE_FAIL = 'FETCH_GEOCODE_FAIL';\r\n\r\n// Google Map API\r\nexport const GOOGLE_MAPS_API_LOADED = 'GOOGLE_MAPS_API_LOADED';\r\nexport const PLACES_AUTOCOMPLETE_BINDED = 'PLACES_AUTOCOMPLETE_BINDED';\r\n\r\n// Offers\r\nexport const FETCH_OFFERS_INIT = 'FETCH_OFFERS_INIT';\r\nexport const FETCH_OFFERS_SUCCESS = 'FETCH_OFFERS_SUCCESS';\r\nexport const FETCH_OFFERS_FAIL = 'FETCH_OFFERS_FAIL';\r\n\r\n// Registation\r\nexport const REGISTRATION_INIT = 'REGISTRATION_INIT';\r\nexport const REGISTRATION_SUCCESS = 'REGISTRATION_SUCCESS';\r\nexport const REGISTRATION_FAIL = 'REGISTRATION_FAIL';\r\n\r\n// Register\r\nexport const REGISTER_INIT = 'REGISTER_INIT';\r\nexport const REGISTER_SUCCESS = 'REGISTER_SUCCESS';\r\nexport const REGISTER_FAILURE = 'REGISTER_FAILURE';\r\n\r\n// Verify\r\nexport const VERIFY_USER_INIT = 'VERIFY_USER_INIT';\r\nexport const VERIFY_USER_SUCCESS = 'VERIFY_USER_SUCCESS';\r\nexport const VERIFY_USER_FAIL = 'VERIFY_USER_FAIL';\r\n\r\n// Resend Register Code\r\nexport const FETCH_REGISTER_CODE_INIT = 'FETCH_REGISTER_CODE_INIT';\r\nexport const FETCH_REGISTER_CODE_SUCCESS = 'FETCH_REGISTER_CODE_SUCCESS';\r\nexport const FETCH_REGISTER_CODE_FAIL = 'FETCH_REGISTER_CODE_FAIL';\r\n\r\n// Term\r\nexport const FETCH_TERMS_INIT = 'FETCH_TERMS_INIT';\r\nexport const FETCH_TERMS_SUCCESS = 'FETCH_TERMS_SUCCESS';\r\nexport const FETCH_TERMS_FAILURE = 'FETCH_TERMS_FAIL';\r\n\r\nexport const FETCH_POLICY_INIT = 'FETCH_POLICY_INIT';\r\nexport const FETCH_POLICY_SUCCESS = 'FETCH_POLICY_SUCCESS';\r\nexport const FETCH_POLICY_FAILURE = 'FETCH_POLICY_FAIL';\r\n\r\n// Token\r\nexport const FETCH_TOKEN_INIT = 'FETCH_TOKEN_INIT';\r\nexport const FETCH_TOKEN_SUCCESS = 'FETCH_TOKEN_SUCCESS';\r\nexport const FETCH_TOKEN_FAIL = 'FETCH_TOKEN_FAIL';\r\n\r\n// Token Registration Flow\r\nexport const FETCH_REGISTRATION_TOKEN_INIT = 'FETCH_REGISTRATION_TOKEN_INIT';\r\nexport const FETCH_REGISTRATION_TOKEN_SUCCESS = 'FETCH_REGISTRATION_TOKEN_SUCCESS';\r\nexport const FETCH_REGISTRATION_TOKEN_FAIL = 'FETCH_REGISTRATION_TOKEN_FAIL';\r\n\r\n// Login\r\nexport const LOGIN_INIT = 'LOGIN_INIT';\r\nexport const LOGIN_SUCCESS = 'LOGIN_SUCCESS';\r\nexport const LOGIN_FAILURE = 'LOGIN_FAILURE';\r\nexport const LOGIN_NOT_VERIFIED_SUCCESS = 'LOGIN_NOT_VERIFIED_SUCCESS';\r\n\r\n// Forgot Password\r\nexport const FORGOT_INIT = 'FORGOT_INIT';\r\nexport const FORGOT_SUCCESS = 'FORGOT_SUCCESS';\r\nexport const FORGOT_FAILURE = 'FORGOT_FAILURE';\r\nexport const RESEND_FORGOT_EMAIL = 'RESEND_FORGOT_EMAIL';\r\nexport const CLEAR_FORGOT_ERROR_MESSAGE = 'CLEAR_FORGOT_ERROR_MESSAGE';\r\nexport const CLEAR_FORGOT_PASSWORD_RESENT_EMAIL_MESSAGE = 'CLEAR_FORGOT_PASSWORD_RESENT_EMAIL_MESSAGE';\r\nexport const CLEAR_NOT_VERIFIED_USER = 'CLEAR_NOT_VERIFIED_USER';\r\n\r\n// Logout\r\nexport const LOGOUT = 'LOGOUT';\r\nexport const LOGOUT_INIT = 'LOGOUT_INIT';\r\nexport const LOGOUT_SUCCESS = 'LOGOUT_SUCCESS';\r\nexport const LOGOUT_FAIL = 'LOGOUT_FAIL';\r\n\r\n// Change Password\r\nexport const CHANGE_PASSWORD_INIT = 'CHANGE_PASSWORD_INIT';\r\nexport const CHANGE_PASSWORD_SUCCESS = 'CHANGE_PASSWORD_SUCCESS';\r\nexport const CHANGE_PASSWORD_FAILURE = 'CHANGE_PASSWORD_FAILURE';\r\nexport const CHANGE_PASSWORD_REQUIRED = 'CHANGE_PASSWORD_REQUIRED';\r\n\r\n// Visited Airports\r\nexport const FETCH_VISITED_AIRPORTS_INIT = 'FETCH_VISITED_AIRPORTS_INIT';\r\nexport const FETCH_VISITED_AIRPORTS_SUCCESS = 'FETCH_VISITED_AIRPORTS_SUCCESS';\r\nexport const FETCH_VISITED_AIRPORTS_FAIL = 'FETCH_VISITED_AIRPORTS_FAIL';\r\n\r\n// Airport By Id\r\nexport const FETCH_AIRPORT_BY_ID_INIT = 'FETCH_AIRPORT_BY_ID_INIT';\r\nexport const FETCH_AIRPORT_BY_ID_SUCCESS = 'FETCH_AIRPORT_BY_ID_SUCCESS';\r\nexport const FETCH_AIRPORT_BY_ID_FAIL = 'FETCH_AIRPORT_BY_ID_FAIL';\r\n\r\n// Direct Sign up\r\nexport const DIRECT_SIGNUP_INIT = 'DIRECT_SIGNUP_INIT';\r\nexport const DIRECT_SIGNUP_SUCCESS = 'DIRECT_SIGNUP_SUCCESS';\r\nexport const DIRECT_SIGNUP_FAIL = 'DIRECT_SIGNUP_FAIL';\r\n\r\n// fetch membership\r\nexport const FETCH_MEMBERSHIP_INIT = 'FETCH_MEMBERSHIP_INIT';\r\nexport const FETCH_MEMBERSHIP_SUCCESS = 'FETCH_MEMBERSHIP_SUCCESS';\r\nexport const FETCH_MEMBERSHIP_FAIL = 'FETCH_MEMBERSHIP_FAIL';\r\n\r\n// Credit Card Constants\r\nexport const ADD_CREDIT_CARD_INIT = 'ADD_CREDIT_CARD_INIT';\r\nexport const ADD_CREDIT_CARD_SUCCESS = 'ADD_CREDIT_CARD_SUCCESS';\r\nexport const UPDATE_CREDIT_CARD_SUCCESS = 'UPDATE_CREDIT_CARD_SUCCESS';\r\nexport const ADD_CREDIT_CARD_FAIL = 'ADD_CREDIT_CARD_FAIL';\r\nexport const CLEAR_CREDIT_CARD_STATE = 'CLEAR_CREDIT_CARD_STATE';\r\nexport const GET_CREDIT_CARD_LIST_INIT = 'GET_CREDIT_CARD_LIST_INIT';\r\nexport const GET_CREDIT_CARD_LIST_SUCCESS = 'GET_CREDIT_CARD_LIST_SUCCESS';\r\nexport const GET_CREDIT_CARD_LIST_FAIL = 'GET_CREDIT_CARD_LIST_FAIL';\r\nexport const DELETE_CREDIT_CARD_INIT = 'DELETE_CREDIT_CARD_INIT';\r\nexport const DELETE_CREDIT_CARD_SUCCESS = 'DELETE_CREDIT_CARD_SUCCESS';\r\nexport const DELETE_CREDIT_CARD_FAILURE = 'DELETE_CREDIT_CARD_FAILURE';\r\n\r\n// Validate Flight\r\nexport const VALIDATE_FLIGHT_INIT = 'VALIDATE_FLIGHT_INIT';\r\nexport const VALIDATE_FLIGHT_SUCCESS = 'VALIDATE_FLIGHT_SUCCESS';\r\nexport const VALIDATE_FLIGHT_FAIL = 'VALIDATE_FLIGHT_FAIL';\r\nexport const RESET_FLIGHT_ERROR_MESSAGES = 'RESET_FLIGHT_ERROR_MESSAGES';\r\n\r\n//PAF Constants\r\nexport const PAF_INIT = 'PAF_INIT';\r\nexport const PAF_SUCCESS = 'PAF_SUCCESS';\r\nexport const PAF_FAILURE = 'PAF_FAILURE';\r\nexport const REQUEST_FLIGHT_INIT = 'REQUEST_FLIGHT_INIT';\r\nexport const REQUEST_FLIGHT_SUCCESS = 'REQUEST_FLIGHT_SUCCESS';\r\nexport const REQUEST_FLIGHT_FAIL = 'REQUEST_FLIGHT_FAIL';\r\nexport const CHECK_CONTRACT_SELECTED = \"CONTRACT_SELECTED\";\r\nexport const UPDATE_CONTRACT_SELECTED = \"UPDATE_CONTRACT_SELECTED\";\r\nexport const UPDATE_DEPARTURE_AIRPORT = \"UPDATE_DEPARTURE_AIRPORT\";\r\nexport const UPDATE_ARRIVAL_AIRPORT = \"UPDATE_ARRIVAL_AIRPORT\";\r\nexport const UPDATE_DATE = \"UPDATE_DATE\";\r\nexport const UPDATE_AIRCRAFT = \"UPDATE_AIRCRAFT\";\r\nexport const UPDATE_DURATION = \"UPDATE_DURATION\";\r\nexport const UPDATE_PASSENGERS_COUNT = \"UPDATE_PASSENGERS_COUNT\";\r\nexport const UPDATE_TIME = \"UPDATE_TIME\";\r\nexport const UPDATE_ESTIMATE_TIME = \"UPDATE_ESTIMATE_TIME\";\r\nexport const ADD_LEG = \"ADD_LEG\";\r\n\r\n// Itinerary Listing\r\n\r\nexport const FETCH_ITINERARIES_INIT = \"FETCH_ITINERARIES_INIT\";\r\nexport const FETCH_ITINERARIES_SUCCESS = \"FETCH_ITINERARIES_SUCCESS\";\r\nexport const FETCH_ITINERARIES_FAIL = \"FETCH_ITINERARIES_FAIL\";\r\n\r\n// Itinerary Details\r\n\r\nexport const ITINERARY_DETAILS_INIT = 'ITINERARY_DETAILS_INIT';\r\nexport const ITINERARY_DETAILS_SUCCESS = 'ITINERARY_DETAILS_SUCCESS';\r\nexport const ITINERARY_DETAILS_FAIL = 'ITINERARY_DETAILS_FAIL';\r\n\r\n// Itinerary PDF\r\n\r\nexport const ITINERARY_PDF_INIT = 'ITINERARY_PDF_INIT';\r\nexport const ITINERARY_PDF_SUCCESS = 'ITINERARY_PDF_SUCCESS';\r\nexport const ITINERARY_PDF_FAIL = 'ITINERARY_PDF_FAIL';\r\n\r\n// Memebership constants\r\nexport const GET_ACCOUNT_STATUS_INIT = 'GET_ACCOUNT_STATUS_INIT';\r\nexport const GET_ACCOUNT_STATUS_SUCCESS = 'GET_ACCOUNT_STATUS_SUCCESS';\r\nexport const GET_ACCOUNT_STATUS_FAILURE = 'GET_ACCOUNT_STATUS_FAILURE';\r\n// Avail Offer\r\nexport const AVAIL_OFFER_INIT = 'AVAIL_OFFER_INIT';\r\nexport const AVAIL_OFFER_SUCCESS = 'AVAIL_OFFER_SUCCESS';\r\nexport const AVAIL_OFFER_FAIL = 'AVAIL_OFFER_FAIL';\r\nexport const AVAIL_OFFER_QUOTING_NOT_AVAILABLE = 'AVAIL_OFFER_QUOTING_NOT_AVAILABLE';\r\nexport const UPDATE_QUOTE_CONSTANT = 'UPDATE_QUOTE_CONSTANT';\r\n\r\n//Buy Offer/Quote\r\nexport const BUY_OFFER_INIT = 'BUY_OFFER_INIT';\r\nexport const BUY_OFFER_SUCCESS = 'BUY_OFFER_SUCCESS';\r\nexport const BUY_OFFER_FAIL = 'BUY_OFFER_FAIL';\r\n\r\n//request quote\r\nexport const REQUEST_QUOTE_INIT = \"REQUEST_QUOTE_INIT\";\r\nexport const REQUEST_QUOTE_SUCCESS = \"REQUEST_QUOTE_SUCCESS\";\r\nexport const REQUEST_QUOTE_FAIL = \"REQUEST_QUOTE_FAIL\";\r\n\r\n//create company\r\nexport const CREATE_COMPANY_INIT = 'CREATE_COMPANY_INIT';\r\nexport const CREATE_COMPANY_SUCCESS = 'CREATE_COMPANY_SUCCESS';\r\nexport const CREATE_COMPANY_FAIL = 'CREATE_COMPANY_FAIL';\r\nexport const UPDATE_USER_CREATE_COMPANY = 'UPDATE_USER_CREATE_COMPANY';\r\n\r\n//entertainment\r\nexport const FETCH_ENTERTAINMENT_ISSUE_INIT = 'FETCH_ENTERTAINMENT_ISSUE_INIT';\r\nexport const FETCH_ENTERTAINMENT_ISSUE_SUCCESS = 'FETCH_ENTERTAINMENT_ISSUE_SUCCESS';\r\nexport const FETCH_ENTERTAINMENT_ISSUE_FAIL = 'FETCH_ENTERTAINMENT_ISSUE_FAIL';\r\nexport const FETCH_ENTERTAINMENT_INIT = 'FETCH_ENTERTAINMENT_INIT';\r\nexport const FETCH_ENTERTAINMENT_SUCCESS = 'FETCH_ENTERTAINMENT_SUCCESS';\r\nexport const FETCH_ENTERTAINMENT_FAIL = 'FETCH_ENTERTAINMENT_FAIL';\r\n\r\n//fbo\r\nexport const FETCH_FBO_INIT = 'FETCH_FBO_INIT';\r\nexport const FETCH_FBO_SUCCESS = 'FETCH_FBO_SUCCESS';\r\nexport const FETCH_FBO_FAIL = 'FETCH_FBO_FAIL';\r\n\r\nexport const UPDATE_USER_REDUCER = 'UPDATE_USER_REDUCER';\r\n\r\n//fetch unbilled flights\r\nexport const FETCH_UNBILLED_INIT = 'FETCH_UNBILLED_INIT';\r\nexport const FETCH_UNBILLED_SUCCESS = 'FETCH_UNBILLED_SUCCESS';\r\nexport const FETCH_UNBILLED_FAIL = 'FETCH_UNBILLED_FAIL';\r\n\r\n//fetch recent invoices\r\nexport const FETCH_RECENT_INVOICES_INIT = 'FETCH_RECENT_INVOICES_INIT';\r\nexport const FETCH_RECENT_INVOICES_SUCCESS = 'FETCH_RECENT_INVOICES_SUCCESS';\r\nexport const FETCH_RECENT_INVOICES_FAIL = 'FETCH_RECENT_INVOICES_FAIL';\r\n\r\n//fetch more invoices\r\nexport const FETCH_MORE_INVOICES_INIT = 'FETCH_MORE_INVOICES_INIT';\r\nexport const FETCH_MORE_INVOICES_SUCCESS = 'FETCH_MORE_INVOICES_SUCCESS';\r\nexport const FETCH_MORE_INVOICES_FAIL = 'FETCH_MORE_INVOICES_FAIL';\r\n\r\n//fetch account statements\r\nexport const FETCH_ACCOUNT_STATEMENTS_INIT = 'FETCH_ACCOUNT_STATEMENTS_INIT';\r\nexport const FETCH_ACCOUNT_STATEMENTS_SUCCESS = 'FETCH_ACCOUNT_STATEMENTS_SUCCESS';\r\nexport const FETCH_ACCOUNT_STATEMENTS_FAIL = 'FETCH_ACCOUNT_STATEMENTS_FAIL';\r\n\r\n//fetch statement invoices\r\nexport const FETCH_STATEMENT_INVOICES_INIT = 'FETCH_STATEMENT_INVOICES_INIT';\r\nexport const FETCH_STATEMENT_INVOICES_SUCCESS = 'FETCH_STATEMENT_INVOICES_SUCCESS';\r\nexport const FETCH_STATEMENT_INVOICES_FAIL = 'FETCH_STATEMENT_INVOICES_FAIL';\r\nexport const CLEAR_INVOICE_FILTER = 'CLEAR_INVOICE_FILTER';\r\n\r\n//fetch account statement zip url\r\nexport const FETCH_ZIP_URL_INIT = 'FETCH_ZIP_URL_INIT';\r\nexport const FETCH_ZIP_URL_SUCCESS = 'FETCH_ZIP_URL_SUCCESS';\r\nexport const FETCH_ZIP_URL_FAIL = 'FETCH_ZIP_URL_FAIL';\r\n\r\n//fetch account statement pdf\r\nexport const FETCH_ACCOUNT_STATEMENT_PDF_INIT = 'FETCH_ACCOUNT_STATEMENT_PDF_INIT';\r\nexport const FETCH_ACCOUNT_STATEMENT_PDF_SUCCESS = 'FETCH_ACCOUNT_STATEMENT_PDF_SUCCESS';\r\nexport const FETCH_ACCOUNT_STATEMENT_PDF_FAIL = 'FETCH_ACCOUNT_STATEMENT_PDF_FAIL';\r\n\r\nexport const CLEAR_PAS_ERROR = 'CLEAR_PAS_ERROR';\r\n//TopUpReference\r\nexport const TOPUP_REFERENCE_INIT = 'TOPUP_REFERENCE_INIT';\r\nexport const TOPUP_REFERENCE_SUCCESS = 'TOPUP_REFERENCE_SUCCESS';\r\nexport const TOPUP_REFERENCE_FAIL = 'TOPUP_REFERENCE_FAIL';\r\n\r\n//TopUp\r\nexport const TOPUP_INIT = 'TOPUP_INIT';\r\nexport const TOPUP_SUCCESS = 'TOPUP_SUCCESS';\r\nexport const TOPUP_FAIL = 'TOPUP_FAIL';\r\n\r\n//TopUpHistory\r\nexport const TOPUP_HISTORY_INIT = 'TOPUP_HISTORY_INIT';\r\nexport const TOPUP_HISTORY_SUCCESS = 'TOPUP_HISTORY_SUCCESS';\r\nexport const TOPUP_HISTORY_FAIL = 'TOPUP_HISTORY_FAIL';\r\n\r\n//cancelReferenceCode\r\nexport const CANCEL_REFERENCE_CODE_INIT = 'CANCEL_REFERENCE_CODE_INIT';\r\nexport const CANCEL_REFERENCE_CODE_SUCCESS = 'CANCEL_REFERENCE_CODE_SUCCESS';\r\nexport const CANCEL_REFERENCE_CODE_FAIL = 'CANCEL_REFERENCE_CODE_FAIL';\r\n\r\nexport const TOPUP_VIEW_ACTION = 'TOPUP_VIEW_ACTION';\r\nexport const CLEAR_TOPUP_ERROR = 'CLEAR_TOPUP_ERROR';\r\n// Update User Profile constants\r\nexport const UPDATE_USER_PROFILE_INIT = 'UPDATE_USER_PROFILE_INIT';\r\nexport const UPDATE_USER_PROFILE_SUCCESS = 'UPDATE_USER_PROFILE_SUCCESS';\r\nexport const UPDATE_USER_PROFILE_FAILURE = 'UPDATE_USER_PROFILE_FAILURE';\r\n//Weather\r\nexport const FETCH_WEATHER_INIT = 'FETCH_WEATHER_INIT';\r\nexport const FETCH_WEATHER_SUCCESS = 'FETCH_WEATHER_SUCCESS';\r\nexport const FETCH_WEATHER_FAIL = 'FETCH_WEATHER_FAIL';\r\n\r\n// Crew\r\nexport const FETCH_CREW_INIT = 'FETCH_CREW_INIT';\r\nexport const FETCH_CREW_SUCCESS = 'FETCH_CREW_SUCCESS';\r\nexport const FETCH_CREW_FAIL = 'FETCH_CREW_FAIL';\r\n\r\n//ground services\r\nexport const FETCH_GROUND_SERVICES_INIT = 'FETCH_GROUND_SERVICES_INIT';\r\nexport const FETCH_GROUND_SERVICES_FAIL = 'FETCH_GROUND_SERVICES_FAIL';\r\nexport const FETCH_GROUND_SERVICES_SUCCESS = 'FETCH_GROUND_SERVICES_SUCCESS';\r\n\r\n//availed services\r\nexport const FETCH_AVAILED_SERVICES_INIT = 'FETCH_AVAILED_SERVICES_INIT';\r\nexport const FETCH_AVAILED_SERVICES_FAIL = 'FETCH_AVAILED_SERVICES_FAIL';\r\nexport const FETCH_AVAILED_SERVICES_SUCCESS = 'FETCH_AVAILED_SERVICES_SUCCESS';\r\n\r\n//add transport services\r\nexport const ADD_TRANSPORT_SERVICES_INIT = 'ADD_TRANSPORT_SERVICES_INIT';\r\nexport const ADD_TRANSPORT_SERVICES_SUCCESS = 'ADD_TRANSPORT_SERVICES_SUCCESS';\r\nexport const ADD_TRANSPORT_SERVICES_FAIL = 'ADD_TRANSPORT_SERVICES_FAIL';\r\n\r\n//add additional services\r\nexport const ADD_ADDITIONAL_SERVICES_INIT = 'ADD_ADDITIONAL_SERVICES_INIT';\r\nexport const ADD_ADDITIONAL_SERVICES_SUCCESS = 'ADD_ADDITIONAL_SERVICES_SUCCESS';\r\nexport const ADD_ADDITIONAL_SERVICES_FAIL = 'ADD_ADDITIONAL_SERVICES_FAIL';\r\n\r\n\r\n//Billing Address Constants\r\nexport const SAVE_BILLING_ADDRESS_INIT = 'SAVE_BILLING_ADDRESS_INIT';\r\nexport const SAVE_BILLING_ADDRESS_SUCCESS = 'SAVE_BILLING_ADDRESS_SUCCESS';\r\nexport const SAVE_BILLING_ADDRESS_FAILURE = 'SAVE_BILLING_ADDRESS_FAILURE';\r\nexport const GET_BILLING_ADDRESS_INIT = 'GET_BILLING_ADDRESS_INIT';\r\nexport const GET_BILLING_ADDRESS_SUCCESS = 'GET_BILLING_ADDRESS_SUCCESS';\r\nexport const GET_BILLING_ADDRESS_FAILURE = 'GET_BILLING_ADDRESS_FAILURE';\r\n\r\n\r\n//catering constants\r\nexport const GET_CATERING_STATE_INIT = 'GET_CATERING_STATE_INIT';\r\nexport const GET_CATERING_STATE_SUCCESS = 'GET_CATERING_STATE_SUCCESS';\r\nexport const GET_CATERING_STATE_FAIL = 'GET_CATERING_STATE_FAIL';\r\nexport const GET_CATERING_PROPOSAL_INIT = 'GET_CATERING_PROPOSAL_INIT';\r\nexport const GET_CATERING_PROPOSAL_SUCCESS = 'GET_CATERING_PROPOSAL_SUCCESS';\r\nexport const GET_CATERING_PROPOSAL_FAIL = 'GET_CATERING_PROPOSAL_FAIL';\r\nexport const CHANGE_CATERING_PROPOSAL_INIT = 'CHANGE_CATERING_PROPOSAL_INIT';\r\nexport const CHANGE_CATERING_PROPOSAL_SUCCESS = 'CHANGE_CATERING_PROPOSAL_SUCCESS';\r\nexport const CHANGE_CATERING_PROPOSAL_FAIL = 'CHANGE_CATERING_PROPOSAL_FAIL';\r\nexport const GET_CATERING_PDF_INIT = 'GET_CATERING_PDF_INIT';\r\nexport const GET_CATERING_PDF_SUCCESS = 'GET_CATERING_PDF_SUCCESS';\r\nexport const GET_CATERING_PDF_FAIL = 'GET_CATERING_PDF_FAIL';\r\n\r\n// Passenger\r\nexport const UPDATE_PASSENGER = 'UPDATE_PASSENGER';\r\nexport const FETCH_PASSENGER_INIT = 'FETCH_PASSENGER_INIT';\r\nexport const FETCH_PASSENGER_SUCCESS = 'FETCH_PASSENGER_SUCCESS';\r\nexport const FETCH_PASSENGER_FAIL = 'FETCH_PASSENGER_FAIL';\r\nexport const STARTED_UPDATING_PASSENGER = 'STARTED_UPDATING_PASSENGER';\r\nexport const FINISHED_UPDATING_PASSENGER = 'FINISHED_UPDATING_PASSENGER';\r\n\r\n// Push Notification Constants\r\nexport const GET_PUSH_NOTIFICATION_INIT = 'GET_PUSH_NOTIFICATION_INIT';\r\nexport const GET_PUSH_NOTIFICATION_SUCCESS = 'GET_PUSH_NOTIFICATION_SUCCESS';\r\nexport const GET_PUSH_NOTIFICATION_FAILURE = 'GET_PUSH_NOTIFICATION_FAILURE';\r\nexport const UPDATE_PUSH_NOTIFICATION_INIT = 'UPDATE_PUSH_NOTIFICATION_INIT';\r\nexport const UPDATE_PUSH_NOTIFICATION_SUCCESS = 'UPDATE_PUSH_NOTIFICATION_SUCCESS';\r\nexport const UPDATE_PUSH_NOTIFICATION_FAILURE = 'UPDATE_PUSH_NOTIFICATION_FAILURE';\r\nexport const UPDATE_PUSH_NOTIFICATION_DISABLE_CITY_CHECK = 'UPDATE_PUSH_NOTIFICATION_DISABLE_CITY_CHECK';\r\n\r\nexport const MEMBERSHIP_ACCOUNT_STATEMENT_INIT = 'MEMBERSHIP_ACCOUNT_STATEMENT_INIT';\r\nexport const MEMBERSHIP_ACCOUNT_STATEMENT_SUCCESS = 'MEMBERSHIP_ACCOUNT_STATEMENT_SUCCESS';\r\nexport const MEMBERSHIP_ACCOUNT_STATEMENT_FAIL = 'MEMBERSHIP_ACCOUNT_STATEMENT_FAIL';\r\n\r\n// Flight Cancel\r\nexport const FLIGHT_CANCEL_INIT = 'FLIGHT_CANCEL_INIT';\r\nexport const FLIGHT_CANCEL_SUCCESS = 'FLIGHT_CANCEL_SUCCESS';\r\nexport const FLIGHT_CANCEL_FAILURE = 'FLIGHT_CANCEL_FAILURE';\r\nexport const FLIGHT_CANCEL_AFTER_SUCCESS = 'FLIGHT_CANCEL_AFTER_SUCCESS';\r\n\r\n// Aircrfts List\r\nexport const GET_AIRCRAFTS_INIT = 'GET_AIRCRAFTS_INIT';\r\nexport const GET_AIRCRAFTS_SUCCESS = 'GET_AIRCRAFTS_SUCCESS';\r\nexport const GET_AIRCRAFTS_FAILURE = 'GET_AIRCRAFTS_FAILURE';\r\n\r\n\r\n//Movement Messages\r\nexport const FETCH_MOVEMENT_MESSAGES_INIT = 'FETCH_MOVEMENT_MESSAGES_INIT';\r\nexport const FETCH_MOVEMENT_MESSAGES_SUCCESS = 'FETCH_MOVEMENT_MESSAGES_SUCCESS';\r\nexport const FETCH_MOVEMENT_MESSAGES_FAIL = 'FETCH_MOVEMENT_MESSAGES_FAIL';\r\n\r\nexport const CLEAR_ERROR_FETCH_ITINERARY = 'CLEAR_ERROR_FETCH_ITINERARY';\r\n\r\n//Fetch order id by leg identifier\r\nexport const FETCH_ORDER_ID_BY_LEG_INIT = \"FETCH_ORDER_ID_BY_LEG_INIT\";\r\nexport const FETCH_ORDER_ID_BY_LEG_SUCCESS = \"FETCH_ORDER_ID_BY_LEG_SUCCESS\";\r\nexport const FETCH_ORDER_ID_BY_LEG_FAIL = \"FETCH_ORDER_ID_BY_LEG_FAIL\";\r\n\r\n//Feedback Actions\r\nexport const FETCH_LEG_FEEDBACK_INIT = \"FETCH_LEG_FEEDBACK_INIT\";\r\nexport const FETCH_LEG_FEEDBACK_SUCCESS = \"FETCH_LEG_FEEDBACK_SUCCESS\";\r\nexport const FETCH_LEG_FEEDBACK_FAIL = \"FETCH_LEG_FEEDBACK_FAIL\";\r\nexport const SAVE_LEG_FEEDBACK_INIT = \"SAVE_LEG_FEEDBACK_INIT\";\r\nexport const SAVE_LEG_FEEDBACK_SUCCESS = \"SAVE_LEG_FEEDBACK_SUCCESS\";\r\nexport const SAVE_LEG_FEEDBACK_FAIL = \"SAVE_LEG_FEEDBACK_FAIL\";\r\nexport const CLEAR_FEEDBACK = \"CLEAR_FEEDBACK\";\r\n\r\n//fetch quotes\r\nexport const FETCH_QUOTES_INIT = 'FETCH_QUOTES_INIT';\r\nexport const FETCH_QUOTES_SUCCESS = 'FETCH_QUOTES_SUCCESS';\r\nexport const FETCH_QUOTES_FAIL = 'FETCH_QUOTES_FAIL';\r\n\r\n// Passport popup\r\nexport const UPDATE_FREQUENT_PAX = 'UPDATE_FREQUENT_PAX';\r\nexport const UPDATE_ADDED_PASSENGERS = 'UPDATE_ADDED_PASSENGERS';\r\nexport const UPDATE_PASSPORT = 'UPDATE_PASSPORT';\r\nexport const CLOSE_POPUP = 'CLOSE_POPUP';\r\nexport const SET_LEG_PASSPORT = 'SET_LEG_PASSPORT';\r\nexport const SET_LEAD_PASSENGER = 'SET_LEAD_PASSENGER';\r\nexport const UPDATE_SELECTED_PASSENGER = 'UPDATE_SELECTED_PASSENGER';\r\nexport const CLEAR_SELECTED_PASSENGER = 'CLEAR_SELECTED_PASSENGER';\r\nexport const REMOVE_PASSPORT = 'REMOVE_PASSPORT';\r\nexport const REMOVE_USER = 'REMOVE_USER';\r\nexport const INITIALIZE_POPUP = 'INITIALIZE_POPUP';\r\n","import * as types from '../actionTypes';\r\n\r\nconst initialState = {\r\n isLoading: true,\r\n content: null,\r\n};\r\n\r\nexport default function termsReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.FETCH_TERMS_INIT: {\r\n return Object.assign({}, state, {\r\n content: null,\r\n isLoading: true,\r\n });\r\n }\r\n case types.FETCH_TERMS_SUCCESS: {\r\n return Object.assign({}, state, {\r\n content: action.data,\r\n isLoading: false,\r\n });\r\n }\r\n case types.FETCH_TERMS_FAILURE: {\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n });\r\n }\r\n case types.FETCH_POLICY_INIT: {\r\n return Object.assign({}, state, {\r\n content: null,\r\n isLoading: true,\r\n });\r\n }\r\n case types.FETCH_POLICY_SUCCESS: {\r\n return Object.assign({}, state, {\r\n content: action.data,\r\n isLoading: false,\r\n });\r\n }\r\n case types.FETCH_POLICY_FAILURE: {\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\nimport { getFromLocal, saveToLocal, existInLocal } from '../../utils/cache';\r\n\r\nexport const initialState = {\r\n user: null,\r\n isLoggingIn: false,\r\n isLoggedIn: false,\r\n isLoggingOut: false,\r\n isForgotEmailSent: false,\r\n isError: false,\r\n changePasswordRequired: false,\r\n error: '',\r\n forgotPasswordErrors: '',\r\n isPasswordChangeLoading: false,\r\n isDirectFromProfile: false,\r\n userNotVerified: false,\r\n isAccountDataFetched: false,\r\n isAccountDataFetchedLoading: false,\r\n isAccountDataFail: false,\r\n isLoading: false,\r\n addressSaved: false,\r\n authenticatedUser: {},\r\n isUserVerified: false,\r\n isVerifyUserLoading: false,\r\n isVerifyUserError: false,\r\n verifyUserError: '',\r\n billingAddress: {},\r\n // Update Profile\r\n isProfileUpdateLoading: false,\r\n isProfileUpdated: false,\r\n isProfileUpdateError: false,\r\n profileUpdateErrorCode: null,\r\n profileUpdateError: '',\r\n passportUpdateMessage: null,\r\n disablePushNotificationCities: false,\r\n isAccountDataFetchedError: false,\r\n accountDataError: '',\r\n userHasLoggedOut: false,\r\n isLogOutFailed: false,\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n let stateObj = state;\r\n let isDefault = false;\r\n switch (action.type) {\r\n case types.LOGIN_INIT: {\r\n stateObj = Object.assign({}, state, {\r\n user: null,\r\n isLoggingIn: true,\r\n isLoggedIn: false,\r\n isError: false,\r\n isForgotEmailSent: false,\r\n userNotVerified: false,\r\n error: '',\r\n });\r\n break;\r\n }\r\n case types.LOGIN_SUCCESS: {\r\n stateObj = Object.assign({}, state, {\r\n user: { ...action.data },\r\n isLoggingIn: false,\r\n isLoggedIn: true,\r\n isError: false,\r\n userNotVerified: false,\r\n error: '',\r\n });\r\n break;\r\n }\r\n case types.LOGIN_NOT_VERIFIED_SUCCESS: {\r\n stateObj = Object.assign({}, state, {\r\n user: { ...action.data },\r\n isLoggingIn: false,\r\n isLoggedIn: false,\r\n isError: false,\r\n error: '',\r\n userNotVerified: true,\r\n email: action.data.user_email,\r\n });\r\n break;\r\n }\r\n case types.LOGIN_FAILURE: {\r\n stateObj = Object.assign({}, state, {\r\n isLoggingIn: false,\r\n isLoggedIn: false,\r\n isError: true,\r\n error: action.data.error,\r\n });\r\n break;\r\n }\r\n case types.GET_ACCOUNT_STATUS_INIT: {\r\n stateObj = Object.assign({}, state, {\r\n isAccountDataFetched: false,\r\n isAccountDataFetchedLoading: true,\r\n isAccountDataFetchedError: false,\r\n isAccountDataFail: false,\r\n accountDataError: '',\r\n });\r\n break;\r\n }\r\n case types.GET_ACCOUNT_STATUS_SUCCESS: {\r\n stateObj = Object.assign({}, state, {\r\n isAccountDataFetched: true,\r\n isAccountDataFetchedLoading: false,\r\n user: { ...state.user, ...action.data },\r\n isAccountDataFetchedError: false,\r\n isAccountDataFail: false,\r\n accountDataError: '',\r\n });\r\n break;\r\n }\r\n case types.GET_ACCOUNT_STATUS_FAILURE: {\r\n stateObj = Object.assign({}, state, {\r\n isAccountDataFetched: false,\r\n isAccountDataFetchedLoading: false,\r\n isAccountDataFetchedError: true,\r\n isAccountDataFail: true,\r\n accountDataError: action.data,\r\n });\r\n break;\r\n }\r\n case types.LOGOUT_INIT: {\r\n stateObj = Object.assign({}, state, {\r\n isLoggingOut: true,\r\n isLoggedIn: true,\r\n userHasLoggedOut: false,\r\n isLogOutFailed: false,\r\n });\r\n break;\r\n }\r\n case types.LOGOUT_SUCCESS: {\r\n stateObj = Object.assign({}, state, {\r\n user: null,\r\n isLoggingOut: false,\r\n isLoggedIn: false,\r\n userHasLoggedOut: true,\r\n isLogOutFailed: false,\r\n });\r\n break;\r\n }\r\n case types.CLEAR_NOT_VERIFIED_USER: {\r\n let { user } = state || {};\r\n user = user || {};\r\n user.userNotVerified = false;\r\n stateObj = Object.assign({}, state, {\r\n user,\r\n });\r\n if (existInLocal('user')) {\r\n let userObjectInStore = getFromLocal('user', true, true);\r\n userObjectInStore.user = user;\r\n saveToLocal(userObjectInStore, 'user', true, true);\r\n };\r\n break;\r\n }\r\n case types.LOGOUT_FAIL: {\r\n stateObj = Object.assign({}, state, {\r\n isLoggingOut: false,\r\n isLoggedIn: true,\r\n userHasLoggedOut: false,\r\n isLogOutFailed: true,\r\n });\r\n break;\r\n }\r\n case types.FORGOT_INIT: {\r\n stateObj = Object.assign({}, state, {\r\n isForgotEmailSent: false,\r\n isSendingForgotEmail: true,\r\n });\r\n break;\r\n }\r\n case types.FORGOT_SUCCESS: {\r\n stateObj = Object.assign({}, state, {\r\n user: { ...action.data },\r\n isForgotEmailSent: true,\r\n isSendingForgotEmail: false,\r\n });\r\n break;\r\n }\r\n case types.FORGOT_FAILURE: {\r\n stateObj = Object.assign({}, state, {\r\n isForgotEmailSent: false,\r\n isSendingForgotEmail: false,\r\n forgotPasswordErrors: action.data && action.data.error,\r\n });\r\n break;\r\n }\r\n case types.CLEAR_FORGOT_PASSWORD_RESENT_EMAIL_MESSAGE: {\r\n return Object.assign({}, state, {\r\n resentForgotPassword: false,\r\n });\r\n }\r\n case types.CHANGE_PASSWORD_INIT: {\r\n stateObj = Object.assign({}, state, {\r\n isPasswordChangeLoading: true,\r\n isDirectFromProfile: false,\r\n changePasswordErrors: false,\r\n changePasswordSuccess: false,\r\n changePasswordErrorText: '',\r\n });\r\n break;\r\n }\r\n case types.CHANGE_PASSWORD_SUCCESS: {\r\n stateObj = Object.assign({}, state, {\r\n changePasswordRequired: false,\r\n changePasswordErrors: false,\r\n changePasswordSuccess: true,\r\n isPasswordChangeLoading: false,\r\n isDirectFromProfile: action.data.isProfile,\r\n changePasswordErrorText: '',\r\n });\r\n break;\r\n }\r\n case types.CHANGE_PASSWORD_REQUIRED: {\r\n stateObj = Object.assign({}, state, {\r\n changePasswordRequired: true,\r\n isPasswordChangeLoading: false,\r\n });\r\n break;\r\n }\r\n case types.CHANGE_PASSWORD_FAILURE: {\r\n stateObj = Object.assign({}, state, {\r\n changePasswordErrors: true,\r\n changePasswordErrorText: action.data.error,\r\n isPasswordChangeLoading: false,\r\n isDirectFromProfile: action.data.isProfile,\r\n });\r\n break;\r\n }\r\n case types.CLEAR_FORGOT_ERROR_MESSAGE: {\r\n stateObj = Object.assign({}, state, {\r\n forgotPasswordErrors: null,\r\n isPasswordChangeLoading: false,\r\n });\r\n break;\r\n }\r\n case types.RESEND_FORGOT_EMAIL: {\r\n stateObj = Object.assign({}, state, {\r\n resentForgotPassword: true,\r\n });\r\n break;\r\n }\r\n case types.VERIFY_USER_INIT: {\r\n return Object.assign({}, state, {\r\n authenticatedUser: {},\r\n isUserVerified: false,\r\n isVerifyUserLoading: true,\r\n isVerifyUserError: false,\r\n verifyUserError: '',\r\n });\r\n }\r\n case types.VERIFY_USER_SUCCESS: {\r\n let { user } = state || {};\r\n user = user || {};\r\n user.userNotVerified = false;\r\n return Object.assign({}, state, {\r\n authenticatedUser: action.data.authenticatedUser,\r\n isUserVerified: true,\r\n isVerifyUserLoading: false,\r\n isVerifyUserError: false,\r\n user,\r\n verifyUserError: '',\r\n });\r\n }\r\n case types.VERIFY_USER_FAIL: {\r\n return Object.assign({}, state, {\r\n authenticatedUser: {},\r\n isUserVerified: false,\r\n isVerifyUserLoading: false,\r\n isVerifyUserError: true,\r\n verifyUserError: action.data.error,\r\n });\r\n }\r\n case types.UPDATE_USER_CREATE_COMPANY: {\r\n stateObj = Object.assign({}, state, {\r\n user: action.data,\r\n });\r\n break;\r\n }\r\n case types.UPDATE_USER_REDUCER: {\r\n stateObj = Object.assign({}, state, action.data);\r\n break;\r\n }\r\n case types.UPDATE_USER_PROFILE_INIT: {\r\n return Object.assign({}, state, {\r\n isProfileUpdateLoading: true,\r\n isProfileUpdated: false,\r\n isProfileUpdateError: false,\r\n profileUpdateErrorCode: null,\r\n profileUpdateError: '',\r\n passportUpdateMessage: null,\r\n });\r\n }\r\n case types.UPDATE_USER_PROFILE_FAILURE: {\r\n return Object.assign({}, state, {\r\n isProfileUpdateLoading: false,\r\n isProfileUpdated: false,\r\n isProfileUpdateError: true,\r\n profileUpdateErrorCode: action.data.errorCode || null,\r\n profileUpdateError: action.data.error,\r\n passportUpdateMessage: null,\r\n });\r\n }\r\n case types.UPDATE_USER_PROFILE_SUCCESS: {\r\n const passport = {\r\n passports: action.data.response.passports,\r\n };\r\n const userObject = Object.assign({}, state.user, action.data.response.user, passport, {\r\n personPhoneNumber: action.data.response.phoneNumbers,\r\n phoneNumber: action.data.response.phoneNumbers[0].phoneNumber,\r\n });\r\n return Object.assign({}, state, {\r\n user: userObject,\r\n isProfileUpdateLoading: false,\r\n isProfileUpdated: true,\r\n isProfileUpdateError: false,\r\n profileUpdateErrorCode: null,\r\n profileUpdateError: '',\r\n passportUpdateMessage: action.data.message,\r\n });\r\n }\r\n case types.SAVE_BILLING_ADDRESS_INIT: {\r\n return Object.assign({}, state, {\r\n isLoading: true,\r\n billingAddress: {},\r\n addressSaved: false,\r\n error: '',\r\n });\r\n }\r\n case types.SAVE_BILLING_ADDRESS_SUCCESS: {\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n billingAddress: action.data,\r\n addressSaved: true,\r\n });\r\n }\r\n case types.SAVE_BILLING_ADDRESS_FAILURE: {\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n addressSaved: false,\r\n error: action.data,\r\n });\r\n }\r\n case types.GET_BILLING_ADDRESS_INIT: {\r\n return Object.assign({}, state, {\r\n isLoading: true,\r\n error: '',\r\n billingAddress: {},\r\n });\r\n }\r\n case types.GET_BILLING_ADDRESS_SUCCESS: {\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n billingAddress: action.data,\r\n });\r\n }\r\n case types.GET_BILLING_ADDRESS_FAILURE: {\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n error: action.data,\r\n })\r\n }\r\n\r\n case types.UPDATE_PUSH_NOTIFICATION_DISABLE_CITY_CHECK: {\r\n return Object.assign({}, state, {\r\n disablePushNotificationCities: action.data,\r\n });\r\n }\r\n default:\r\n isDefault = true;\r\n stateObj = state;\r\n }\r\n if (!isDefault) {\r\n // localStorage.setItem(\"userReducer\", JSON.stringify(stateObj));\r\n }\r\n return stateObj;\r\n}\r\n","const cities = [\r\n { placeId: 4297, cityName: 'BAGRAM', countryName: 'AFGHANISTAN' },\r\n { placeId: 4702, cityName: 'BASTION', countryName: 'AFGHANISTAN' },\r\n { placeId: 10124, cityName: 'CHAKHCHARAN', countryName: 'AFGHANISTAN' },\r\n { placeId: 10682, cityName: 'FARAH', countryName: 'AFGHANISTAN' },\r\n { placeId: 10706, cityName: 'FEYZABAD', countryName: 'AFGHANISTAN' },\r\n { placeId: 5830, cityName: 'HERAT', countryName: 'AFGHANISTAN' },\r\n { placeId: 11305, cityName: 'JALALABAD', countryName: 'AFGHANISTAN' },\r\n { placeId: 2340, cityName: 'KABUL', countryName: 'AFGHANISTAN' },\r\n { placeId: 2341, cityName: 'KANDAHAR', countryName: 'AFGHANISTAN' },\r\n { placeId: 11448, cityName: 'KHOST/CHAPMAN', countryName: 'AFGHANISTAN' },\r\n { placeId: 6314, cityName: 'KONDUZ', countryName: 'AFGHANISTAN' },\r\n { placeId: 11801, cityName: 'MAIMANA', countryName: 'AFGHANISTAN' },\r\n { placeId: 6891, cityName: 'MAZAR-E SHARIF', countryName: 'AFGHANISTAN' },\r\n { placeId: 12684, cityName: 'QALA-I-NAW', countryName: 'AFGHANISTAN' },\r\n { placeId: 12896, cityName: 'SALERNO', countryName: 'AFGHANISTAN' },\r\n { placeId: 13034, cityName: 'SHANK', countryName: 'AFGHANISTAN' },\r\n { placeId: 13035, cityName: 'SHARANA', countryName: 'AFGHANISTAN' },\r\n { placeId: 13062, cityName: 'SHINDAND', countryName: 'AFGHANISTAN' },\r\n { placeId: 8620, cityName: 'TEREEN', countryName: 'AFGHANISTAN' },\r\n { placeId: 1392, cityName: 'TIRANA', countryName: 'ALBANIA' },\r\n { placeId: 4016, cityName: 'ADRAR', countryName: 'ALGERIA' },\r\n { placeId: 4075, cityName: 'ALGIERS', countryName: 'ALGERIA' },\r\n { placeId: 4155, cityName: 'ANNABA', countryName: 'ALGERIA' },\r\n { placeId: 4377, cityName: 'BATNA', countryName: 'ALGERIA' },\r\n { placeId: 9776, cityName: 'BECHAR', countryName: 'ALGERIA' },\r\n { placeId: 4404, cityName: 'BEJAIA', countryName: 'ALGERIA' },\r\n { placeId: 9133, cityName: 'BISKRA', countryName: 'ALGERIA' },\r\n { placeId: 4546, cityName: 'BORDJ MOKHTAR', countryName: 'ALGERIA' },\r\n { placeId: 4561, cityName: 'BOU SAADA', countryName: 'ALGERIA' },\r\n { placeId: 4848, cityName: 'CHLEF', countryName: 'ALGERIA' },\r\n { placeId: 4946, cityName: 'CONSTANTINE', countryName: 'ALGERIA' },\r\n { placeId: 5184, cityName: 'DJANET', countryName: 'ALGERIA' },\r\n { placeId: 9177, cityName: 'EL BAYADH', countryName: 'ALGERIA' },\r\n { placeId: 5286, cityName: 'EL GOLEA', countryName: 'ALGERIA' },\r\n { placeId: 5293, cityName: 'EL OUED', countryName: 'ALGERIA' },\r\n { placeId: 5554, cityName: 'GHARDAIA', countryName: 'ALGERIA' },\r\n { placeId: 5558, cityName: 'GHRISS', countryName: 'ALGERIA' },\r\n { placeId: 2859, cityName: 'HASSI MESSAOUD', countryName: 'ALGERIA' },\r\n { placeId: 5949, cityName: 'ILLIZI', countryName: 'ALGERIA' },\r\n { placeId: 5958, cityName: 'IN GUEZZAM', countryName: 'ALGERIA' },\r\n { placeId: 5959, cityName: 'IN SALAH', countryName: 'ALGERIA' },\r\n { placeId: 6062, cityName: 'JIJEL', countryName: 'ALGERIA' },\r\n { placeId: 7400, cityName: 'ORAN', countryName: 'ALGERIA' },\r\n { placeId: 7440, cityName: 'OUARGLA', countryName: 'ALGERIA' },\r\n { placeId: 8195, cityName: 'SETIF', countryName: 'ALGERIA' },\r\n { placeId: 8565, cityName: 'TAMANRASSET', countryName: 'ALGERIA' },\r\n { placeId: 8602, cityName: 'TEBESSA', countryName: 'ALGERIA' },\r\n { placeId: 8654, cityName: 'TIARET', countryName: 'ALGERIA' },\r\n { placeId: 8668, cityName: 'TIMIMOUN', countryName: 'ALGERIA' },\r\n { placeId: 13440, cityName: 'TINDOUF', countryName: 'ALGERIA' },\r\n { placeId: 8676, cityName: 'TLEMCEN', countryName: 'ALGERIA' },\r\n { placeId: 8689, cityName: 'TOUGGOURT', countryName: 'ALGERIA' },\r\n { placeId: 9111, cityName: 'ZARZAITINE', countryName: 'ALGERIA' },\r\n { placeId: 12408, cityName: 'PAGO PAGO', countryName: 'AMERICAN SAMOA' },\r\n { placeId: 4116, cityName: 'AMBRIZ', countryName: 'ANGOLA' },\r\n { placeId: 4422, cityName: 'BENGUELA', countryName: 'ANGOLA' },\r\n { placeId: 4664, cityName: 'CABINDA', countryName: 'ANGOLA' },\r\n { placeId: 5897, cityName: 'HUAMBO', countryName: 'ANGOLA' },\r\n { placeId: 6339, cityName: 'KUITO', countryName: 'ANGOLA' },\r\n { placeId: 6592, cityName: 'LOBITO', countryName: 'ANGOLA' },\r\n { placeId: 1144, cityName: 'LUANDA', countryName: 'ANGOLA' },\r\n { placeId: 6641, cityName: 'LUBANGO', countryName: 'ANGOLA' },\r\n { placeId: 6656, cityName: 'LUENA', countryName: 'ANGOLA' },\r\n { placeId: 6685, cityName: 'M\\'BANZA CONGO', countryName: 'ANGOLA' },\r\n { placeId: 6734, cityName: 'MALANGE', countryName: 'ANGOLA' },\r\n { placeId: 6791, cityName: 'MAQUELA', countryName: 'ANGOLA' },\r\n { placeId: 6938, cityName: 'MENONGUE', countryName: 'ANGOLA' },\r\n { placeId: 6495, cityName: 'N\\'ZETO', countryName: 'ANGOLA' },\r\n { placeId: 7175, cityName: 'NAMIBE', countryName: 'ANGOLA' },\r\n { placeId: 7211, cityName: 'NEGAGE', countryName: 'ANGOLA' },\r\n { placeId: 7164, cityName: 'ONDJIVA', countryName: 'ANGOLA' },\r\n { placeId: 7714, cityName: 'PORTO AMBOIM', countryName: 'ANGOLA' },\r\n { placeId: 8131, cityName: 'SAURIMO', countryName: 'ANGOLA' },\r\n { placeId: 8376, cityName: 'SOYO', countryName: 'ANGOLA' },\r\n { placeId: 8511, cityName: 'SUMBE', countryName: 'ANGOLA' },\r\n { placeId: 8777, cityName: 'UIGE', countryName: 'ANGOLA' },\r\n { placeId: 8904, cityName: 'WAKO KUNGO', countryName: 'ANGOLA' },\r\n { placeId: 9057, cityName: 'XANGONGO', countryName: 'ANGOLA' },\r\n { placeId: 8636, cityName: 'THE VALLEY', countryName: 'ANGUILLA' },\r\n { placeId: 6914, cityName: 'MCMURDO STATION', countryName: 'ANTARCTICA (AUS, NZ)' },\r\n { placeId: 6913, cityName: 'MCMURDO', countryName: 'ANTARCTICA (AUS, NZ)' },\r\n { placeId: 8372, cityName: 'SOUTH POLE STATION', countryName: 'ANTARCTICA (AUS, NZ)' },\r\n { placeId: 8622, cityName: 'TERRA NOVA BAY', countryName: 'ANTARCTICA (AUS, NZ)' },\r\n { placeId: 9722, cityName: 'BARBUDA', countryName: 'ANTIGUA' },\r\n { placeId: 2537, cityName: 'ST JOHNS', countryName: 'ANTIGUA' },\r\n { placeId: 3215, cityName: 'ALTO RIO SENGUERR', countryName: 'ARGENTINA' },\r\n { placeId: 3228, cityName: 'AZUL', countryName: 'ARGENTINA' },\r\n { placeId: 3229, cityName: 'BAHIA BLANCA', countryName: 'ARGENTINA' },\r\n { placeId: 3235, cityName: 'BOLIVAR', countryName: 'ARGENTINA' },\r\n { placeId: 2451, cityName: 'BUENOS AIRES', countryName: 'ARGENTINA' },\r\n { placeId: 3185, cityName: 'CATAMARCA', countryName: 'ARGENTINA' },\r\n { placeId: 2457, cityName: 'CATARATAS DEL IGUAZU', countryName: 'ARGENTINA' },\r\n { placeId: 3191, cityName: 'CERES', countryName: 'ARGENTINA' },\r\n { placeId: 3189, cityName: 'CHILECITO', countryName: 'ARGENTINA' },\r\n { placeId: 10277, cityName: 'CLORINDA', countryName: 'ARGENTINA' },\r\n { placeId: 2461, cityName: 'COMODORO RIVADAVIA', countryName: 'ARGENTINA' },\r\n { placeId: 10324, cityName: 'CONCORDIA', countryName: 'ARGENTINA' },\r\n { placeId: 2452, cityName: 'CORDOBA', countryName: 'ARGENTINA' },\r\n { placeId: 3179, cityName: 'CORONEL OLMEDO', countryName: 'ARGENTINA' },\r\n { placeId: 3230, cityName: 'CORONEL SUAREZ', countryName: 'ARGENTINA' },\r\n { placeId: 10348, cityName: 'CORRIENTES', countryName: 'ARGENTINA' },\r\n { placeId: 3209, cityName: 'CURUZU CUATIA', countryName: 'ARGENTINA' },\r\n { placeId: 3244, cityName: 'CUTRAL-CO', countryName: 'ARGENTINA' },\r\n { placeId: 3210, cityName: 'EL BOLSON', countryName: 'ARGENTINA' },\r\n { placeId: 3221, cityName: 'EL CALAFATE', countryName: 'ARGENTINA' },\r\n { placeId: 3211, cityName: 'EL MAITEN', countryName: 'ARGENTINA' },\r\n { placeId: 3226, cityName: 'EL TURBIO', countryName: 'ARGENTINA' },\r\n { placeId: 3204, cityName: 'ELDORADO', countryName: 'ARGENTINA' },\r\n { placeId: 3212, cityName: 'ESQUEL', countryName: 'ARGENTINA' },\r\n { placeId: 2456, cityName: 'FORMOSA', countryName: 'ARGENTINA' },\r\n { placeId: 3181, cityName: 'GENERAL ALVEAR', countryName: 'ARGENTINA' },\r\n { placeId: 3233, cityName: 'GENERAL PICO', countryName: 'ARGENTINA' },\r\n { placeId: 3180, cityName: 'GENERAL ROCA', countryName: 'ARGENTINA' },\r\n { placeId: 3907, cityName: 'GOBERNADOR GORDILLO', countryName: 'ARGENTINA' },\r\n { placeId: 3224, cityName: 'GOBERNADOR GREGORES', countryName: 'ARGENTINA' },\r\n { placeId: 3205, cityName: 'GOYA', countryName: 'ARGENTINA' },\r\n { placeId: 3174, cityName: 'GUALEGUAYCHU', countryName: 'ARGENTINA' },\r\n { placeId: 3225, cityName: 'JOSE DE SAN MARTIN', countryName: 'ARGENTINA' },\r\n { placeId: 3236, cityName: 'JUAREZ', countryName: 'ARGENTINA' },\r\n { placeId: 2460, cityName: 'JUJUY', countryName: 'ARGENTINA' },\r\n { placeId: 3175, cityName: 'JUNIN', countryName: 'ARGENTINA' },\r\n { placeId: 3178, cityName: 'LA CUMBRE', countryName: 'ARGENTINA' },\r\n { placeId: 3183, cityName: 'LA PAZ', countryName: 'ARGENTINA' },\r\n { placeId: 11565, cityName: 'LA PLATA', countryName: 'ARGENTINA' },\r\n { placeId: 3188, cityName: 'LA RIOJA', countryName: 'ARGENTINA' },\r\n { placeId: 3194, cityName: 'LABOULAYE', countryName: 'ARGENTINA' },\r\n { placeId: 3220, cityName: 'LAGO ARGENTINO', countryName: 'ARGENTINA' },\r\n { placeId: 3182, cityName: 'MALARGUE', countryName: 'ARGENTINA' },\r\n { placeId: 3214, cityName: 'MAQUINCHAO', countryName: 'ARGENTINA' },\r\n { placeId: 3237, cityName: 'MAR DEL PLATA', countryName: 'ARGENTINA' },\r\n { placeId: 3195, cityName: 'MARCOS JUAREZ', countryName: 'ARGENTINA' },\r\n { placeId: 3908, cityName: 'MARIANO MORENO', countryName: 'ARGENTINA' },\r\n { placeId: 11900, cityName: 'MATANZA', countryName: 'ARGENTINA' },\r\n { placeId: 2453, cityName: 'MENDOZA', countryName: 'ARGENTINA' },\r\n { placeId: 3206, cityName: 'MERCEDES', countryName: 'ARGENTINA' },\r\n { placeId: 3200, cityName: 'MONTE CASEROS', countryName: 'ARGENTINA' },\r\n { placeId: 3909, cityName: 'MORON', countryName: 'ARGENTINA' },\r\n { placeId: 3238, cityName: 'NECOCHEA', countryName: 'ARGENTINA' },\r\n { placeId: 2464, cityName: 'NEUQUEN', countryName: 'ARGENTINA' },\r\n { placeId: 3245, cityName: 'NUEVE DE JULIO', countryName: 'ARGENTINA' },\r\n { placeId: 3207, cityName: 'OBERA', countryName: 'ARGENTINA' },\r\n { placeId: 3232, cityName: 'OLAVARRIA', countryName: 'ARGENTINA' },\r\n { placeId: 3202, cityName: 'ORAN', countryName: 'ARGENTINA' },\r\n { placeId: 3176, cityName: 'PARANA', countryName: 'ARGENTINA' },\r\n { placeId: 3199, cityName: 'PASO DE LOS LIBRES', countryName: 'ARGENTINA' },\r\n { placeId: 3239, cityName: 'PEHUAJO', countryName: 'ARGENTINA' },\r\n { placeId: 3223, cityName: 'PERITO MORENO', countryName: 'ARGENTINA' },\r\n { placeId: 3231, cityName: 'PIGUE', countryName: 'ARGENTINA' },\r\n { placeId: 2458, cityName: 'POSADAS', countryName: 'ARGENTINA' },\r\n { placeId: 3201, cityName: 'PRESIDENCIA ROQUE S. PENA', countryName: 'ARGENTINA' },\r\n { placeId: 12668, cityName: 'PUERTO DESEADO', countryName: 'ARGENTINA' },\r\n { placeId: 3219, cityName: 'PUERTO MADRYN', countryName: 'ARGENTINA' },\r\n { placeId: 12679, cityName: 'PUNTA INDIO', countryName: 'ARGENTINA' },\r\n { placeId: 12702, cityName: 'QUILMES', countryName: 'ARGENTINA' },\r\n { placeId: 3208, cityName: 'RECONQUISTA', countryName: 'ARGENTINA' },\r\n { placeId: 2455, cityName: 'RESISTENCIA', countryName: 'ARGENTINA' },\r\n { placeId: 3240, cityName: 'RIO COLORADO', countryName: 'ARGENTINA' },\r\n { placeId: 3192, cityName: 'RIO CUARTO', countryName: 'ARGENTINA' },\r\n { placeId: 2462, cityName: 'RIO GALLEGOS', countryName: 'ARGENTINA' },\r\n { placeId: 12798, cityName: 'RIO GRANDE', countryName: 'ARGENTINA' },\r\n { placeId: 3222, cityName: 'RIO MAYO', countryName: 'ARGENTINA' },\r\n { placeId: 2450, cityName: 'ROSARIO', countryName: 'ARGENTINA' },\r\n { placeId: 2465, cityName: 'S C DE BARILOCHE', countryName: 'ARGENTINA' },\r\n { placeId: 2459, cityName: 'SALTA', countryName: 'ARGENTINA' },\r\n { placeId: 3213, cityName: 'SAN ANTONIO OESTE', countryName: 'ARGENTINA' },\r\n { placeId: 12921, cityName: 'SAN FERNANDO', countryName: 'ARGENTINA' },\r\n { placeId: 3190, cityName: 'SAN JUAN', countryName: 'ARGENTINA' },\r\n { placeId: 12925, cityName: 'SAN JULIAN', countryName: 'ARGENTINA' },\r\n { placeId: 3198, cityName: 'SAN LUIS', countryName: 'ARGENTINA' },\r\n { placeId: 3246, cityName: 'SAN MARTIN DE LOS ANDES', countryName: 'ARGENTINA' },\r\n { placeId: 3184, cityName: 'SAN RAFAEL', countryName: 'ARGENTINA' },\r\n { placeId: 3227, cityName: 'SANTA CRUZ', countryName: 'ARGENTINA' },\r\n { placeId: 3177, cityName: 'SANTA FE', countryName: 'ARGENTINA' },\r\n { placeId: 3241, cityName: 'SANTA ROSA', countryName: 'ARGENTINA' },\r\n { placeId: 12954, cityName: 'SANTA TERESITA', countryName: 'ARGENTINA' },\r\n { placeId: 3186, cityName: 'SANTIAGO DEL ESTERO', countryName: 'ARGENTINA' },\r\n { placeId: 3216, cityName: 'SIERRA GRANDE', countryName: 'ARGENTINA' },\r\n { placeId: 3242, cityName: 'TANDIL', countryName: 'ARGENTINA' },\r\n { placeId: 3203, cityName: 'TARTAGAL', countryName: 'ARGENTINA' },\r\n { placeId: 3187, cityName: 'TINOGASTA', countryName: 'ARGENTINA' },\r\n { placeId: 3217, cityName: 'TRELEW', countryName: 'ARGENTINA' },\r\n { placeId: 3234, cityName: 'TRES ARROYOS', countryName: 'ARGENTINA' },\r\n { placeId: 2454, cityName: 'TUCUMAN', countryName: 'ARGENTINA' },\r\n { placeId: 2463, cityName: 'USHUAIA', countryName: 'ARGENTINA' },\r\n { placeId: 3197, cityName: 'VALLE DEL CONLARA', countryName: 'ARGENTINA' },\r\n { placeId: 3218, cityName: 'VIEDMA', countryName: 'ARGENTINA' },\r\n { placeId: 3193, cityName: 'VILLA DOLORES', countryName: 'ARGENTINA' },\r\n { placeId: 3243, cityName: 'VILLA GESELL', countryName: 'ARGENTINA' },\r\n { placeId: 3196, cityName: 'VILLA REYNOLDS', countryName: 'ARGENTINA' },\r\n { placeId: 5757, cityName: 'GYUMRI', countryName: 'ARMENIA' },\r\n { placeId: 2571, cityName: 'YEREVAN', countryName: 'ARMENIA' },\r\n { placeId: 2548, cityName: 'ARUBA ISLAND', countryName: 'ARUBA' },\r\n { placeId: 9626, cityName: 'ASCENSION I.', countryName: 'ASCENSION' },\r\n // { placeId: 9411, cityName: '', countryName: 'AUSTRALIA' },\r\n { placeId: 2769, cityName: 'ADELAIDE', countryName: 'AUSTRALIA' },\r\n { placeId: 3849, cityName: 'AEROPELICAN', countryName: 'AUSTRALIA' },\r\n { placeId: 3745, cityName: 'ALBANY', countryName: 'AUSTRALIA' },\r\n { placeId: 3822, cityName: 'ALBURY', countryName: 'AUSTRALIA' },\r\n { placeId: 2758, cityName: 'ALICE SPRINGS', countryName: 'AUSTRALIA' },\r\n { placeId: 9553, cityName: 'ALPHA', countryName: 'AUSTRALIA' },\r\n { placeId: 9565, cityName: 'AMBERLEY', countryName: 'AUSTRALIA' },\r\n { placeId: 9575, cityName: 'ANDAMOOKA', countryName: 'AUSTRALIA' },\r\n { placeId: 3747, cityName: 'ARARAT', countryName: 'AUSTRALIA' },\r\n { placeId: 3748, cityName: 'ARGYLE', countryName: 'AUSTRALIA' },\r\n { placeId: 3749, cityName: 'ARMIDALE', countryName: 'AUSTRALIA' },\r\n { placeId: 9645, cityName: 'ATHERTON', countryName: 'AUSTRALIA' },\r\n { placeId: 9674, cityName: 'AURUKUN', countryName: 'AUSTRALIA' },\r\n { placeId: 2765, cityName: 'AVALON', countryName: 'AUSTRALIA' },\r\n { placeId: 9683, cityName: 'AYERS ROCK', countryName: 'AUSTRALIA' },\r\n { placeId: 9688, cityName: 'BADU ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 3758, cityName: 'BAIRNSDALE', countryName: 'AUSTRALIA' },\r\n { placeId: 3751, cityName: 'BALGO HILL', countryName: 'AUSTRALIA' },\r\n { placeId: 3756, cityName: 'BALLARAT', countryName: 'AUSTRALIA' },\r\n { placeId: 9702, cityName: 'BALLERA', countryName: 'AUSTRALIA' },\r\n { placeId: 3757, cityName: 'BALLINA', countryName: 'AUSTRALIA' },\r\n { placeId: 3759, cityName: 'BALRANALD', countryName: 'AUSTRALIA' },\r\n { placeId: 9706, cityName: 'BAMYILI', countryName: 'AUSTRALIA' },\r\n { placeId: 9723, cityName: 'BARCALDINE', countryName: 'AUSTRALIA' },\r\n { placeId: 3761, cityName: 'BARIMUNYA', countryName: 'AUSTRALIA' },\r\n { placeId: 9732, cityName: 'BARROW I', countryName: 'AUSTRALIA' },\r\n { placeId: 9738, cityName: 'BARYULGIL', countryName: 'AUSTRALIA' },\r\n { placeId: 9750, cityName: 'BATHURST I', countryName: 'AUSTRALIA' },\r\n { placeId: 3762, cityName: 'BATHURST', countryName: 'AUSTRALIA' },\r\n { placeId: 9783, cityName: 'BEDOURIE', countryName: 'AUSTRALIA' },\r\n { placeId: 9800, cityName: 'BELLEVUE', countryName: 'AUSTRALIA' },\r\n { placeId: 3755, cityName: 'BENALLA', countryName: 'AUSTRALIA' },\r\n { placeId: 3750, cityName: 'BENDIGO', countryName: 'AUSTRALIA' },\r\n { placeId: 13937, cityName: 'Beverley Springs', countryName: 'AUSTRALIA' },\r\n { placeId: 3753, cityName: 'BIRCHIP', countryName: 'AUSTRALIA' },\r\n { placeId: 9844, cityName: 'BIRDSVILLE', countryName: 'AUSTRALIA' },\r\n { placeId: 9854, cityName: 'BLACKALL', countryName: 'AUSTRALIA' },\r\n { placeId: 9858, cityName: 'BLACKWATER', countryName: 'AUSTRALIA' },\r\n { placeId: 9879, cityName: 'BOIGU', countryName: 'AUSTRALIA' },\r\n { placeId: 9890, cityName: 'BORROLOOLA', countryName: 'AUSTRALIA' },\r\n { placeId: 9900, cityName: 'BOULIA', countryName: 'AUSTRALIA' },\r\n { placeId: 3754, cityName: 'BOURKE', countryName: 'AUSTRALIA' },\r\n { placeId: 9904, cityName: 'BOWEN', countryName: 'AUSTRALIA' },\r\n { placeId: 3760, cityName: 'BREWARRINA', countryName: 'AUSTRALIA' },\r\n { placeId: 2759, cityName: 'BRISBANE', countryName: 'AUSTRALIA' },\r\n { placeId: 3752, cityName: 'BROKEN HILL', countryName: 'AUSTRALIA' },\r\n { placeId: 3956, cityName: 'BRONZEWING', countryName: 'AUSTRALIA' },\r\n { placeId: 9951, cityName: 'BROOME', countryName: 'AUSTRALIA' },\r\n { placeId: 9976, cityName: 'BUNBURY', countryName: 'AUSTRALIA' },\r\n { placeId: 9977, cityName: 'BUNDABERG', countryName: 'AUSTRALIA' },\r\n { placeId: 9980, cityName: 'BURKETOWN', countryName: 'AUSTRALIA' },\r\n { placeId: 9997, cityName: 'BUSSELTON', countryName: 'AUSTRALIA' },\r\n { placeId: 2761, cityName: 'CAIRNS', countryName: 'AUSTRALIA' },\r\n { placeId: 3861, cityName: 'CAMDEN', countryName: 'AUSTRALIA' },\r\n { placeId: 10034, cityName: 'CAMOOWEAL', countryName: 'AUSTRALIA' },\r\n { placeId: 2775, cityName: 'CANBERRA', countryName: 'AUSTRALIA' },\r\n { placeId: 10061, cityName: 'CAPE LEVEQUE', countryName: 'AUSTRALIA' },\r\n { placeId: 10080, cityName: 'CARNARVON', countryName: 'AUSTRALIA' },\r\n { placeId: 3763, cityName: 'CASINO', countryName: 'AUSTRALIA' },\r\n { placeId: 10108, cityName: 'CEDUNA', countryName: 'AUSTRALIA' },\r\n { placeId: 10119, cityName: 'CENTURY MINE', countryName: 'AUSTRALIA' },\r\n { placeId: 10144, cityName: 'CHARLEVILLE', countryName: 'AUSTRALIA' },\r\n { placeId: 10195, cityName: 'CHILLAGOE', countryName: 'AUSTRALIA' },\r\n { placeId: 10199, cityName: 'CHINCHILLA', countryName: 'AUSTRALIA' },\r\n { placeId: 13924, cityName: 'Christmas Island', countryName: 'AUSTRALIA' },\r\n { placeId: 10263, cityName: 'CLERMONT', countryName: 'AUSTRALIA' },\r\n { placeId: 10264, cityName: 'CLEVE', countryName: 'AUSTRALIA' },\r\n { placeId: 10275, cityName: 'CLONCURRY', countryName: 'AUSTRALIA' },\r\n { placeId: 3764, cityName: 'COBAR', countryName: 'AUSTRALIA' },\r\n { placeId: 10285, cityName: 'COCONUT ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 10286, cityName: 'COCOS (KEELING) I', countryName: 'AUSTRALIA' },\r\n { placeId: 10288, cityName: 'COEN', countryName: 'AUSTRALIA' },\r\n { placeId: 3768, cityName: 'COFFS HARBOUR', countryName: 'AUSTRALIA' },\r\n { placeId: 3766, cityName: 'COLLARENEBRI', countryName: 'AUSTRALIA' },\r\n { placeId: 3767, cityName: 'CONDOBOLIN', countryName: 'AUSTRALIA' },\r\n { placeId: 10331, cityName: 'COOBER PEDY', countryName: 'AUSTRALIA' },\r\n { placeId: 10334, cityName: 'COOKTOWN', countryName: 'AUSTRALIA' },\r\n { placeId: 3957, cityName: 'COOLAH', countryName: 'AUSTRALIA' },\r\n { placeId: 3771, cityName: 'COOMA-SNOWY MOUNTAINS', countryName: 'AUSTRALIA' },\r\n { placeId: 10335, cityName: 'COOMINYA', countryName: 'AUSTRALIA' },\r\n { placeId: 3765, cityName: 'COONABARABRAN', countryName: 'AUSTRALIA' },\r\n { placeId: 3770, cityName: 'COONAMBLE', countryName: 'AUSTRALIA' },\r\n { placeId: 3777, cityName: 'COONDEWANNA', countryName: 'AUSTRALIA' },\r\n { placeId: 2861, cityName: 'COOTAMUNDRA', countryName: 'AUSTRALIA' },\r\n { placeId: 3772, cityName: 'COROWA', countryName: 'AUSTRALIA' },\r\n { placeId: 3773, cityName: 'CORRYONG', countryName: 'AUSTRALIA' },\r\n { placeId: 10359, cityName: 'COWELL', countryName: 'AUSTRALIA' },\r\n { placeId: 3778, cityName: 'COWRA', countryName: 'AUSTRALIA' },\r\n { placeId: 10376, cityName: 'CROKER I', countryName: 'AUSTRALIA' },\r\n { placeId: 3774, cityName: 'CUDAL', countryName: 'AUSTRALIA' },\r\n { placeId: 3775, cityName: 'CUE', countryName: 'AUSTRALIA' },\r\n { placeId: 3776, cityName: 'CUNDERDIN', countryName: 'AUSTRALIA' },\r\n { placeId: 10395, cityName: 'CUNNAMULLA', countryName: 'AUSTRALIA' },\r\n { placeId: 10397, cityName: 'CURTIN', countryName: 'AUSTRALIA' },\r\n { placeId: 3779, cityName: 'DARLOT', countryName: 'AUSTRALIA' },\r\n { placeId: 10424, cityName: 'DARNLEY ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 2770, cityName: 'DARWIN', countryName: 'AUSTRALIA' },\r\n { placeId: 10460, cityName: 'DELAMERE', countryName: 'AUSTRALIA' },\r\n { placeId: 10464, cityName: 'DELISSAVILLE', countryName: 'AUSTRALIA' },\r\n { placeId: 3780, cityName: 'DENILIQUIN', countryName: 'AUSTRALIA' },\r\n { placeId: 10476, cityName: 'DERBY', countryName: 'AUSTRALIA' },\r\n { placeId: 10484, cityName: 'DEVONPORT', countryName: 'AUSTRALIA' },\r\n { placeId: 3781, cityName: 'DOCHRA', countryName: 'AUSTRALIA' },\r\n { placeId: 3782, cityName: 'DONALD', countryName: 'AUSTRALIA' },\r\n { placeId: 10504, cityName: 'DOOMADGEE', countryName: 'AUSTRALIA' },\r\n { placeId: 3864, cityName: 'DUBBO', countryName: 'AUSTRALIA' },\r\n { placeId: 10532, cityName: 'DUNK ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 10543, cityName: 'DYSART', countryName: 'AUSTRALIA' },\r\n { placeId: 3828, cityName: 'EAST SALE', countryName: 'AUSTRALIA' },\r\n { placeId: 3783, cityName: 'ECHUCA', countryName: 'AUSTRALIA' },\r\n { placeId: 10572, cityName: 'EDINBURGH', countryName: 'AUSTRALIA' },\r\n { placeId: 10590, cityName: 'ELCHO I', countryName: 'AUSTRALIA' },\r\n { placeId: 10615, cityName: 'EMERALD', countryName: 'AUSTRALIA' },\r\n { placeId: 10629, cityName: 'ENOGGERA', countryName: 'AUSTRALIA' },\r\n { placeId: 13935, cityName: 'Erldunda', countryName: 'AUSTRALIA' },\r\n { placeId: 3784, cityName: 'ESPERANCE', countryName: 'AUSTRALIA' },\r\n { placeId: 3787, cityName: 'FITZROY CROSSING', countryName: 'AUSTRALIA' },\r\n { placeId: 10718, cityName: 'FLINDERS I', countryName: 'AUSTRALIA' },\r\n { placeId: 3785, cityName: 'FORBES', countryName: 'AUSTRALIA' },\r\n { placeId: 2764, cityName: 'FORREST', countryName: 'AUSTRALIA' },\r\n { placeId: 3786, cityName: 'FORRESTANIA', countryName: 'AUSTRALIA' },\r\n { placeId: 10746, cityName: 'FORTESCUE DAVE FORREST', countryName: 'AUSTRALIA' },\r\n { placeId: 10866, cityName: 'GARDEN I', countryName: 'AUSTRALIA' },\r\n { placeId: 10867, cityName: 'GARDEN POINT', countryName: 'AUSTRALIA' },\r\n { placeId: 10876, cityName: 'GAYNDAH', countryName: 'AUSTRALIA' },\r\n { placeId: 10878, cityName: 'GEORGETOWN', countryName: 'AUSTRALIA' },\r\n { placeId: 10883, cityName: 'GERALDTON', countryName: 'AUSTRALIA' },\r\n { placeId: 3792, cityName: 'GIBB RIVER', countryName: 'AUSTRALIA' },\r\n { placeId: 3793, cityName: 'GINGIN', countryName: 'AUSTRALIA' },\r\n { placeId: 10900, cityName: 'GLADSTONE', countryName: 'AUSTRALIA' },\r\n { placeId: 3795, cityName: 'GLEN INNES', countryName: 'AUSTRALIA' },\r\n { placeId: 2760, cityName: 'GOLD COAST', countryName: 'AUSTRALIA' },\r\n { placeId: 3791, cityName: 'GOLDEN GROVE', countryName: 'AUSTRALIA' },\r\n { placeId: 3788, cityName: 'GOODOOGA', countryName: 'AUSTRALIA' },\r\n { placeId: 10927, cityName: 'GOOLWA', countryName: 'AUSTRALIA' },\r\n { placeId: 10928, cityName: 'GOONDIWINDI', countryName: 'AUSTRALIA' },\r\n { placeId: 3794, cityName: 'GOULBURN', countryName: 'AUSTRALIA' },\r\n { placeId: 10941, cityName: 'GOVE', countryName: 'AUSTRALIA' },\r\n { placeId: 3790, cityName: 'GRAFTON', countryName: 'AUSTRALIA' },\r\n { placeId: 3796, cityName: 'GREAT LAKES', countryName: 'AUSTRALIA' },\r\n { placeId: 3798, cityName: 'GRIFFITH', countryName: 'AUSTRALIA' },\r\n { placeId: 11007, cityName: 'GROOTE EYLANDT', countryName: 'AUSTRALIA' },\r\n { placeId: 3789, cityName: 'GUNNEDAH', countryName: 'AUSTRALIA' },\r\n { placeId: 3800, cityName: 'HALLS CREEK', countryName: 'AUSTRALIA' },\r\n { placeId: 2762, cityName: 'HAMILTON I', countryName: 'AUSTRALIA' },\r\n { placeId: 3801, cityName: 'HAMILTON', countryName: 'AUSTRALIA' },\r\n { placeId: 3799, cityName: 'HAY', countryName: 'AUSTRALIA' },\r\n { placeId: 11132, cityName: 'HERVEY BAY', countryName: 'AUSTRALIA' },\r\n { placeId: 2766, cityName: 'HOBART', countryName: 'AUSTRALIA' },\r\n { placeId: 3867, cityName: 'HOLSWORTHY', countryName: 'AUSTRALIA' },\r\n { placeId: 11172, cityName: 'HOOKER CREEK', countryName: 'AUSTRALIA' },\r\n { placeId: 3804, cityName: 'HOPETOUN', countryName: 'AUSTRALIA' },\r\n { placeId: 11183, cityName: 'HORN ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 3805, cityName: 'HORSHAM', countryName: 'AUSTRALIA' },\r\n { placeId: 3803, cityName: 'HOXTON PARK', countryName: 'AUSTRALIA' },\r\n { placeId: 11207, cityName: 'HUGHENDEN', countryName: 'AUSTRALIA' },\r\n { placeId: 11259, cityName: 'INNISFAIL', countryName: 'AUSTRALIA' },\r\n { placeId: 3806, cityName: 'INVERELL', countryName: 'AUSTRALIA' },\r\n { placeId: 11287, cityName: 'JABIRU', countryName: 'AUSTRALIA' },\r\n { placeId: 11288, cityName: 'JACINTH AMBROSIA', countryName: 'AUSTRALIA' },\r\n { placeId: 11292, cityName: 'JACKSON', countryName: 'AUSTRALIA' },\r\n { placeId: 3807, cityName: 'JERVIS BAY', countryName: 'AUSTRALIA' },\r\n { placeId: 11352, cityName: 'JULIA CREEK', countryName: 'AUSTRALIA' },\r\n { placeId: 3808, cityName: 'JUNDEE', countryName: 'AUSTRALIA' },\r\n { placeId: 3810, cityName: 'KALBARRI', countryName: 'AUSTRALIA' },\r\n { placeId: 2772, cityName: 'KALGOORLIE-BOULDER', countryName: 'AUSTRALIA' },\r\n { placeId: 11369, cityName: 'KALKGURUNG', countryName: 'AUSTRALIA' },\r\n { placeId: 3809, cityName: 'KALUMBURU', countryName: 'AUSTRALIA' },\r\n { placeId: 11372, cityName: 'KAMBALDA', countryName: 'AUSTRALIA' },\r\n { placeId: 11390, cityName: 'KARARA', countryName: 'AUSTRALIA' },\r\n { placeId: 11395, cityName: 'KARRATHA', countryName: 'AUSTRALIA' },\r\n { placeId: 11397, cityName: 'KARUMBA', countryName: 'AUSTRALIA' },\r\n { placeId: 3813, cityName: 'KATANNING', countryName: 'AUSTRALIA' },\r\n { placeId: 3812, cityName: 'KEMPSEY', countryName: 'AUSTRALIA' },\r\n { placeId: 3811, cityName: 'KERANG', countryName: 'AUSTRALIA' },\r\n { placeId: 11456, cityName: 'KIDSTON', countryName: 'AUSTRALIA' },\r\n { placeId: 11467, cityName: 'KIMBA', countryName: 'AUSTRALIA' },\r\n { placeId: 11476, cityName: 'KING I', countryName: 'AUSTRALIA' },\r\n { placeId: 11479, cityName: 'KINGAROY', countryName: 'AUSTRALIA' },\r\n { placeId: 11482, cityName: 'KINGSCOTE', countryName: 'AUSTRALIA' },\r\n { placeId: 11529, cityName: 'KOWANYAMA', countryName: 'AUSTRALIA' },\r\n { placeId: 11536, cityName: 'KUBIN', countryName: 'AUSTRALIA' },\r\n { placeId: 3854, cityName: 'KUNUNURRA', countryName: 'AUSTRALIA' },\r\n { placeId: 3815, cityName: 'LAKE CARGELLIGO', countryName: 'AUSTRALIA' },\r\n { placeId: 11594, cityName: 'LAKE EVELLA', countryName: 'AUSTRALIA' },\r\n { placeId: 3821, cityName: 'LATROBE VALLEY', countryName: 'AUSTRALIA' },\r\n { placeId: 2767, cityName: 'LAUNCESTON', countryName: 'AUSTRALIA' },\r\n { placeId: 11639, cityName: 'LAVARACK', countryName: 'AUSTRALIA' },\r\n { placeId: 3797, cityName: 'LAVERTON', countryName: 'AUSTRALIA' },\r\n { placeId: 2773, cityName: 'LEARMONTH', countryName: 'AUSTRALIA' },\r\n { placeId: 11660, cityName: 'LEIGH CREEK', countryName: 'AUSTRALIA' },\r\n { placeId: 3814, cityName: 'LEINSTER', countryName: 'AUSTRALIA' },\r\n { placeId: 11668, cityName: 'LEONGATHA', countryName: 'AUSTRALIA' },\r\n { placeId: 3816, cityName: 'LEONORA', countryName: 'AUSTRALIA' },\r\n { placeId: 3820, cityName: 'LIGHTNING RIDGE', countryName: 'AUSTRALIA' },\r\n { placeId: 3817, cityName: 'LILYDALE', countryName: 'AUSTRALIA' },\r\n { placeId: 3818, cityName: 'LISMORE', countryName: 'AUSTRALIA' },\r\n { placeId: 11719, cityName: 'LOCKHART RIVER', countryName: 'AUSTRALIA' },\r\n { placeId: 11731, cityName: 'LONGREACH', countryName: 'AUSTRALIA' },\r\n { placeId: 11737, cityName: 'LORD HOWE ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 11755, cityName: 'LOXTON', countryName: 'AUSTRALIA' },\r\n { placeId: 11774, cityName: 'MABUIAG ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 11779, cityName: 'MACKAY', countryName: 'AUSTRALIA' },\r\n { placeId: 3833, cityName: 'MAITLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 3824, cityName: 'MALLACOOTA', countryName: 'AUSTRALIA' },\r\n { placeId: 3835, cityName: 'MANGALORE', countryName: 'AUSTRALIA' },\r\n { placeId: 11819, cityName: 'MANINGRIDA', countryName: 'AUSTRALIA' },\r\n { placeId: 3831, cityName: 'MANJIMUP', countryName: 'AUSTRALIA' },\r\n { placeId: 11850, cityName: 'MAREEBA', countryName: 'AUSTRALIA' },\r\n { placeId: 3829, cityName: 'MARGARET RIVER', countryName: 'AUSTRALIA' },\r\n { placeId: 3823, cityName: 'MARYBOROUGH', countryName: 'AUSTRALIA' },\r\n { placeId: 11924, cityName: 'MCARTHUR RIVER MINE', countryName: 'AUSTRALIA' },\r\n { placeId: 3826, cityName: 'MEEKATHARRA', countryName: 'AUSTRALIA' },\r\n { placeId: 2768, cityName: 'MELBOURNE', countryName: 'AUSTRALIA' },\r\n { placeId: 3827, cityName: 'MERIMBULA', countryName: 'AUSTRALIA' },\r\n { placeId: 3830, cityName: 'MILDURA', countryName: 'AUSTRALIA' },\r\n { placeId: 11983, cityName: 'MILINGIMBI', countryName: 'AUSTRALIA' },\r\n { placeId: 11987, cityName: 'MILLICENT', countryName: 'AUSTRALIA' },\r\n { placeId: 12001, cityName: 'MINJILANG', countryName: 'AUSTRALIA' },\r\n { placeId: 12004, cityName: 'MINNIPA', countryName: 'AUSTRALIA' },\r\n { placeId: 12012, cityName: 'MITTA MITTA', countryName: 'AUSTRALIA' },\r\n { placeId: 12056, cityName: 'MOOMBA', countryName: 'AUSTRALIA' },\r\n { placeId: 12067, cityName: 'MORANBAH', countryName: 'AUSTRALIA' },\r\n { placeId: 3839, cityName: 'MORAWA', countryName: 'AUSTRALIA' },\r\n { placeId: 3837, cityName: 'MOREE', countryName: 'AUSTRALIA' },\r\n { placeId: 12073, cityName: 'MORNINGTON I', countryName: 'AUSTRALIA' },\r\n { placeId: 3840, cityName: 'MORUYA', countryName: 'AUSTRALIA' },\r\n { placeId: 12091, cityName: 'MOUNT GAMBIER', countryName: 'AUSTRALIA' },\r\n { placeId: 3836, cityName: 'MOUNT MAGNET', countryName: 'AUSTRALIA' },\r\n { placeId: 3802, cityName: 'MT HOTHAM', countryName: 'AUSTRALIA' },\r\n { placeId: 12106, cityName: 'MT ISA', countryName: 'AUSTRALIA' },\r\n { placeId: 3834, cityName: 'MT. KEITH', countryName: 'AUSTRALIA' },\r\n { placeId: 3825, cityName: 'MUDGEE', countryName: 'AUSTRALIA' },\r\n { placeId: 12126, cityName: 'MURRAY FIELD', countryName: 'AUSTRALIA' },\r\n { placeId: 12127, cityName: 'MURRAY/MER ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 3832, cityName: 'MURRIN MURRIN', countryName: 'AUSTRALIA' },\r\n { placeId: 12165, cityName: 'NARACOORTE', countryName: 'AUSTRALIA' },\r\n { placeId: 3959, cityName: 'NARRABRI', countryName: 'AUSTRALIA' },\r\n { placeId: 3958, cityName: 'NARRANDERA', countryName: 'AUSTRALIA' },\r\n { placeId: 3961, cityName: 'NARROMINE', countryName: 'AUSTRALIA' },\r\n { placeId: 3843, cityName: 'NEWMAN', countryName: 'AUSTRALIA' },\r\n { placeId: 12222, cityName: 'NGUKURR', countryName: 'AUSTRALIA' },\r\n { placeId: 3960, cityName: 'NHILL', countryName: 'AUSTRALIA' },\r\n { placeId: 3769, cityName: 'NIFTY', countryName: 'AUSTRALIA' },\r\n { placeId: 12243, cityName: 'NORFOLK I', countryName: 'AUSTRALIA' },\r\n { placeId: 12246, cityName: 'NORMANTON', countryName: 'AUSTRALIA' },\r\n { placeId: 3842, cityName: 'NORSEMAN', countryName: 'AUSTRALIA' },\r\n { placeId: 12263, cityName: 'NORTHERN PENINSULA', countryName: 'AUSTRALIA' },\r\n { placeId: 3869, cityName: 'NOWRA', countryName: 'AUSTRALIA' },\r\n { placeId: 12283, cityName: 'NUMBULWAR', countryName: 'AUSTRALIA' },\r\n { placeId: 3844, cityName: 'NYNGAN', countryName: 'AUSTRALIA' },\r\n { placeId: 12291, cityName: 'OAKEY', countryName: 'AUSTRALIA' },\r\n { placeId: 12307, cityName: 'OENPELLI', countryName: 'AUSTRALIA' },\r\n { placeId: 12333, cityName: 'OLYMPIC DAM', countryName: 'AUSTRALIA' },\r\n { placeId: 12341, cityName: 'ONSLOW', countryName: 'AUSTRALIA' },\r\n { placeId: 12346, cityName: 'OODNADATTA', countryName: 'AUSTRALIA' },\r\n { placeId: 3846, cityName: 'ORANGE', countryName: 'AUSTRALIA' },\r\n { placeId: 3845, cityName: 'ORBOST', countryName: 'AUSTRALIA' },\r\n { placeId: 12366, cityName: 'OSBORNE MINE', countryName: 'AUSTRALIA' },\r\n { placeId: 12416, cityName: 'PALM ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 3847, cityName: 'PARABURDOO', countryName: 'AUSTRALIA' },\r\n { placeId: 3853, cityName: 'PARKES', countryName: 'AUSTRALIA' },\r\n { placeId: 2771, cityName: 'PEARCE', countryName: 'AUSTRALIA' },\r\n { placeId: 2774, cityName: 'PERTH', countryName: 'AUSTRALIA' },\r\n { placeId: 3851, cityName: 'PHILLIP ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 3855, cityName: 'PLUTONIC', countryName: 'AUSTRALIA' },\r\n { placeId: 3838, cityName: 'POINT COOK', countryName: 'AUSTRALIA' },\r\n { placeId: 3850, cityName: 'POLO FLAT', countryName: 'AUSTRALIA' },\r\n { placeId: 3848, cityName: 'POONCARIE', countryName: 'AUSTRALIA' },\r\n { placeId: 12586, cityName: 'PORMPURAAW', countryName: 'AUSTRALIA' },\r\n { placeId: 12591, cityName: 'PORT AUGUSTA', countryName: 'AUSTRALIA' },\r\n { placeId: 12597, cityName: 'PORT HEDLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 12603, cityName: 'PORT KEATS', countryName: 'AUSTRALIA' },\r\n { placeId: 12605, cityName: 'PORT LINCOLN', countryName: 'AUSTRALIA' },\r\n { placeId: 3856, cityName: 'PORT MACQUARIE', countryName: 'AUSTRALIA' },\r\n { placeId: 12609, cityName: 'PORT PIRIE', countryName: 'AUSTRALIA' },\r\n { placeId: 3857, cityName: 'PORTLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 12656, cityName: 'PROMINENT HILL', countryName: 'AUSTRALIA' },\r\n { placeId: 12657, cityName: 'PROSERPINE', countryName: 'AUSTRALIA' },\r\n { placeId: 3852, cityName: 'PUCKAPUNYAL', countryName: 'AUSTRALIA' },\r\n { placeId: 3859, cityName: 'QUEENSTOWN', countryName: 'AUSTRALIA' },\r\n { placeId: 12703, cityName: 'QUILPIE', countryName: 'AUSTRALIA' },\r\n { placeId: 3858, cityName: 'QUIRINDI', countryName: 'AUSTRALIA' },\r\n { placeId: 12722, cityName: 'RAMINGINING', countryName: 'AUSTRALIA' },\r\n { placeId: 3841, cityName: 'RAVENSTHORPE', countryName: 'AUSTRALIA' },\r\n { placeId: 12755, cityName: 'REDCLIFFE', countryName: 'AUSTRALIA' },\r\n { placeId: 12769, cityName: 'RENMARK', countryName: 'AUSTRALIA' },\r\n { placeId: 2776, cityName: 'RICHMOND', countryName: 'AUSTRALIA' },\r\n { placeId: 3860, cityName: 'ROBINVALE', countryName: 'AUSTRALIA' },\r\n { placeId: 12827, cityName: 'ROCKHAMPTON', countryName: 'AUSTRALIA' },\r\n { placeId: 12845, cityName: 'ROMA', countryName: 'AUSTRALIA' },\r\n { placeId: 12857, cityName: 'ROTTNEST I', countryName: 'AUSTRALIA' },\r\n { placeId: 12889, cityName: 'SAIBAI ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 3871, cityName: 'SAINT ARNAUD', countryName: 'AUSTRALIA' },\r\n { placeId: 13936, cityName: 'Saint Paul\\'s Mission', countryName: 'AUSTRALIA' },\r\n { placeId: 12983, cityName: 'SCHERGER', countryName: 'AUSTRALIA' },\r\n { placeId: 3862, cityName: 'SCONE', countryName: 'AUSTRALIA' },\r\n { placeId: 3868, cityName: 'SEA LAKE', countryName: 'AUSTRALIA' },\r\n { placeId: 13037, cityName: 'SHARK BAY', countryName: 'AUSTRALIA' },\r\n { placeId: 3865, cityName: 'SHAY GAP', countryName: 'AUSTRALIA' },\r\n { placeId: 3866, cityName: 'SHEPPARTON', countryName: 'AUSTRALIA' },\r\n { placeId: 13115, cityName: 'SMITHTON', countryName: 'AUSTRALIA' },\r\n { placeId: 13117, cityName: 'SNAKE BAY', countryName: 'AUSTRALIA' },\r\n { placeId: 13139, cityName: 'SOUTH GOULBURN I', countryName: 'AUSTRALIA' },\r\n { placeId: 3863, cityName: 'SOUTHERN CROSS', countryName: 'AUSTRALIA' },\r\n { placeId: 13148, cityName: 'SOUTHPORT', countryName: 'AUSTRALIA' },\r\n { placeId: 13184, cityName: 'ST GEORGE', countryName: 'AUSTRALIA' },\r\n { placeId: 3872, cityName: 'ST HELENS', countryName: 'AUSTRALIA' },\r\n { placeId: 13240, cityName: 'STANTHORPE', countryName: 'AUSTRALIA' },\r\n { placeId: 3876, cityName: 'STAWELL', countryName: 'AUSTRALIA' },\r\n { placeId: 13276, cityName: 'STRAHAN', countryName: 'AUSTRALIA' },\r\n { placeId: 13282, cityName: 'STREAKY BAY', countryName: 'AUSTRALIA' },\r\n { placeId: 3870, cityName: 'SUNRISE DAM', countryName: 'AUSTRALIA' },\r\n { placeId: 13311, cityName: 'SUNSHINE COAST', countryName: 'AUSTRALIA' },\r\n { placeId: 3875, cityName: 'SWAN HILL', countryName: 'AUSTRALIA' },\r\n { placeId: 2777, cityName: 'SYDNEY', countryName: 'AUSTRALIA' },\r\n { placeId: 3873, cityName: 'TAMWORTH', countryName: 'AUSTRALIA' },\r\n { placeId: 3968, cityName: 'TAREE', countryName: 'AUSTRALIA' },\r\n { placeId: 13368, cityName: 'TAROOM', countryName: 'AUSTRALIA' },\r\n { placeId: 3962, cityName: 'TELFER', countryName: 'AUSTRALIA' },\r\n { placeId: 3963, cityName: 'TEMORA', countryName: 'AUSTRALIA' },\r\n { placeId: 13391, cityName: 'TENNANT CREEK', countryName: 'AUSTRALIA' },\r\n { placeId: 13406, cityName: 'THANGOOL', countryName: 'AUSTRALIA' },\r\n { placeId: 13407, cityName: 'THARGOMINDAH', countryName: 'AUSTRALIA' },\r\n { placeId: 13409, cityName: 'THE GRANITES', countryName: 'AUSTRALIA' },\r\n { placeId: 13410, cityName: 'THE MONUMENT', countryName: 'AUSTRALIA' },\r\n { placeId: 3964, cityName: 'TIBOOBURRA', countryName: 'AUSTRALIA' },\r\n { placeId: 13439, cityName: 'TINDAL', countryName: 'AUSTRALIA' },\r\n { placeId: 3966, cityName: 'TOCUMWAL', countryName: 'AUSTRALIA' },\r\n { placeId: 13461, cityName: 'TOOWOOMBA', countryName: 'AUSTRALIA' },\r\n { placeId: 3967, cityName: 'TOTTENHAM', countryName: 'AUSTRALIA' },\r\n { placeId: 2763, cityName: 'TOWNSVILLE', countryName: 'AUSTRALIA' },\r\n { placeId: 13484, cityName: 'TREPELL', countryName: 'AUSTRALIA' },\r\n { placeId: 13489, cityName: 'TROUGHTON I', countryName: 'AUSTRALIA' },\r\n { placeId: 13495, cityName: 'TRUSCOTT-MUNGALALU', countryName: 'AUSTRALIA' },\r\n { placeId: 13511, cityName: 'TUMBY BAY', countryName: 'AUSTRALIA' },\r\n { placeId: 3965, cityName: 'TUMUT', countryName: 'AUSTRALIA' },\r\n { placeId: 13606, cityName: 'VICTORIA RIVER DOWNS', countryName: 'AUSTRALIA' },\r\n { placeId: 3874, cityName: 'WAGGA WAGGA', countryName: 'AUSTRALIA' },\r\n { placeId: 13641, cityName: 'WAIKERIE', countryName: 'AUSTRALIA' },\r\n { placeId: 3882, cityName: 'WALGETT', countryName: 'AUSTRALIA' },\r\n { placeId: 3880, cityName: 'WANGARATTA', countryName: 'AUSTRALIA' },\r\n { placeId: 3878, cityName: 'WARBURTON', countryName: 'AUSTRALIA' },\r\n { placeId: 13661, cityName: 'WARRABER ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 3881, cityName: 'WARRACKNABEAL', countryName: 'AUSTRALIA' },\r\n { placeId: 3885, cityName: 'WARREN', countryName: 'AUSTRALIA' },\r\n { placeId: 3877, cityName: 'WARRNAMBOOL', countryName: 'AUSTRALIA' },\r\n { placeId: 13669, cityName: 'WARWICK', countryName: 'AUSTRALIA' },\r\n { placeId: 13697, cityName: 'WAVE HILL', countryName: 'AUSTRALIA' },\r\n { placeId: 13710, cityName: 'WEIPA', countryName: 'AUSTRALIA' },\r\n { placeId: 3746, cityName: 'WEST ANGELAS', countryName: 'AUSTRALIA' },\r\n { placeId: 3819, cityName: 'WEST PERTH', countryName: 'AUSTRALIA' },\r\n { placeId: 3886, cityName: 'WEST SALE', countryName: 'AUSTRALIA' },\r\n { placeId: 3887, cityName: 'WEST WYALONG', countryName: 'AUSTRALIA' },\r\n { placeId: 13756, cityName: 'WHYALLA', countryName: 'AUSTRALIA' },\r\n { placeId: 13764, cityName: 'WILLIAM CREEK', countryName: 'AUSTRALIA' },\r\n { placeId: 13770, cityName: 'WILLIAMSON', countryName: 'AUSTRALIA' },\r\n { placeId: 2778, cityName: 'WILLIAMTOWN', countryName: 'AUSTRALIA' },\r\n { placeId: 3883, cityName: 'WILUNA', countryName: 'AUSTRALIA' },\r\n { placeId: 3879, cityName: 'WINDARLING', countryName: 'AUSTRALIA' },\r\n { placeId: 13789, cityName: 'WINDORAH', countryName: 'AUSTRALIA' },\r\n { placeId: 13806, cityName: 'WINTON', countryName: 'AUSTRALIA' },\r\n { placeId: 3884, cityName: 'WOLLONGONG', countryName: 'AUSTRALIA' },\r\n { placeId: 13816, cityName: 'WOODIE WOODIE', countryName: 'AUSTRALIA' },\r\n { placeId: 13821, cityName: 'WOOMERA', countryName: 'AUSTRALIA' },\r\n { placeId: 13829, cityName: 'WUDINNA', countryName: 'AUSTRALIA' },\r\n { placeId: 3888, cityName: 'WYCHEPROOF', countryName: 'AUSTRALIA' },\r\n { placeId: 3889, cityName: 'WYNDHAM', countryName: 'AUSTRALIA' },\r\n { placeId: 13833, cityName: 'WYNYARD', countryName: 'AUSTRALIA' },\r\n { placeId: 13844, cityName: 'YAM ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 3891, cityName: 'YARRAM', countryName: 'AUSTRALIA' },\r\n { placeId: 3892, cityName: 'YARRAWONGA', countryName: 'AUSTRALIA' },\r\n { placeId: 13867, cityName: 'YORKE ISLAND', countryName: 'AUSTRALIA' },\r\n { placeId: 3890, cityName: 'YOUNG', countryName: 'AUSTRALIA' },\r\n { placeId: 4092, cityName: 'ALTLICHTENWARTH', countryName: 'AUSTRIA' },\r\n { placeId: 2069, cityName: 'DOBERSBERG', countryName: 'AUSTRIA' },\r\n { placeId: 2098, cityName: 'EFERDING', countryName: 'AUSTRIA' },\r\n { placeId: 2090, cityName: 'FELDKIRCHEN', countryName: 'AUSTRIA' },\r\n { placeId: 2091, cityName: 'FERLACH', countryName: 'AUSTRIA' },\r\n { placeId: 2099, cityName: 'FREISTADT', countryName: 'AUSTRIA' },\r\n { placeId: 2092, cityName: 'FRIESACH', countryName: 'AUSTRIA' },\r\n { placeId: 2076, cityName: 'FURSTENFELD', countryName: 'AUSTRIA' },\r\n { placeId: 2107, cityName: 'GMUNDEN', countryName: 'AUSTRIA' },\r\n { placeId: 2110, cityName: 'GRAZ', countryName: 'AUSTRIA' },\r\n { placeId: 2101, cityName: 'HB HOFKIRCHEN', countryName: 'AUSTRIA' },\r\n { placeId: 2086, cityName: 'HOHENEMS', countryName: 'AUSTRIA' },\r\n { placeId: 2111, cityName: 'INNSBRUCK', countryName: 'AUSTRIA' },\r\n { placeId: 2079, cityName: 'KAPFENBERG', countryName: 'AUSTRIA' },\r\n { placeId: 2112, cityName: 'KLAGENFURT', countryName: 'AUSTRIA' },\r\n { placeId: 2071, cityName: 'KREMS', countryName: 'AUSTRIA' },\r\n { placeId: 2088, cityName: 'KUFSTEIN', countryName: 'AUSTRIA' },\r\n { placeId: 2080, cityName: 'LANZEN', countryName: 'AUSTRIA' },\r\n { placeId: 2093, cityName: 'LIENZ', countryName: 'AUSTRIA' },\r\n { placeId: 2104, cityName: 'LINZ OST', countryName: 'AUSTRIA' },\r\n { placeId: 2113, cityName: 'LINZ', countryName: 'AUSTRIA' },\r\n { placeId: 2081, cityName: 'MARIAZELL', countryName: 'AUSTRIA' },\r\n { placeId: 2109, cityName: 'MAUTERNDORF', countryName: 'AUSTRIA' },\r\n { placeId: 2094, cityName: 'MAYERHOFEN', countryName: 'AUSTRIA' },\r\n { placeId: 2103, cityName: 'MICHELDORF', countryName: 'AUSTRIA' },\r\n { placeId: 2082, cityName: 'NIEDEROBLARN', countryName: 'AUSTRIA' },\r\n { placeId: 2095, cityName: 'NOTSCH IM GAILTAL', countryName: 'AUSTRIA' },\r\n { placeId: 2068, cityName: 'OTTENSCHLAG', countryName: 'AUSTRIA' },\r\n { placeId: 2083, cityName: 'PINKAFELD', countryName: 'AUSTRIA' },\r\n { placeId: 2077, cityName: 'PUNITZ-GUSSING', countryName: 'AUSTRIA' },\r\n { placeId: 2089, cityName: 'REUTTE', countryName: 'AUSTRIA' },\r\n { placeId: 2102, cityName: 'RIED', countryName: 'AUSTRIA' },\r\n { placeId: 2114, cityName: 'SALZBURG', countryName: 'AUSTRIA' },\r\n { placeId: 2105, cityName: 'SCHARDING-SUBEN', countryName: 'AUSTRIA' },\r\n { placeId: 2097, cityName: 'SCHARNSTEIN', countryName: 'AUSTRIA' },\r\n { placeId: 2106, cityName: 'SEITENSTETTEN', countryName: 'AUSTRIA' },\r\n { placeId: 2073, cityName: 'SPITZERBERG', countryName: 'AUSTRIA' },\r\n { placeId: 2100, cityName: 'ST GEORGEN/YBBSFELD', countryName: 'AUSTRIA' },\r\n { placeId: 2087, cityName: 'ST JOHANN', countryName: 'AUSTRIA' },\r\n { placeId: 2074, cityName: 'STOCKERAU', countryName: 'AUSTRIA' },\r\n { placeId: 2084, cityName: 'TIMMERSDORF', countryName: 'AUSTRIA' },\r\n { placeId: 2078, cityName: 'TRIEBEN', countryName: 'AUSTRIA' },\r\n { placeId: 2115, cityName: 'VIENNA', countryName: 'AUSTRIA' },\r\n { placeId: 2070, cityName: 'VOLTENDORF', countryName: 'AUSTRIA' },\r\n { placeId: 2075, cityName: 'VOSLAU', countryName: 'AUSTRIA' },\r\n { placeId: 2085, cityName: 'WEIZ', countryName: 'AUSTRIA' },\r\n { placeId: 2108, cityName: 'WELS', countryName: 'AUSTRIA' },\r\n { placeId: 2072, cityName: 'WIENER NEUSTADT/OST', countryName: 'AUSTRIA' },\r\n { placeId: 2096, cityName: 'WOLFSBERG', countryName: 'AUSTRIA' },\r\n { placeId: 2116, cityName: 'ZELL AM SEE', countryName: 'AUSTRIA' },\r\n { placeId: 2117, cityName: 'ZELTWEG', countryName: 'AUSTRIA' },\r\n { placeId: 2568, cityName: 'BAKU', countryName: 'AZERBAIJAN' },\r\n { placeId: 10838, cityName: 'GABALA', countryName: 'AZERBAIJAN' },\r\n { placeId: 2569, cityName: 'GANJA', countryName: 'AZERBAIJAN' },\r\n { placeId: 11664, cityName: 'LENKORAN', countryName: 'AZERBAIJAN' },\r\n { placeId: 2570, cityName: 'NAKHCHIVAN', countryName: 'AZERBAIJAN' },\r\n { placeId: 13875, cityName: 'ZAGATALA', countryName: 'AZERBAIJAN' },\r\n { placeId: 4971, cityName: 'CORVO', countryName: 'AZORES' },\r\n { placeId: 2128, cityName: 'FLORES', countryName: 'AZORES' },\r\n { placeId: 2130, cityName: 'GRACIOSA', countryName: 'AZORES' },\r\n { placeId: 2131, cityName: 'HORTA', countryName: 'AZORES' },\r\n { placeId: 2134, cityName: 'LAJES', countryName: 'AZORES' },\r\n { placeId: 2144, cityName: 'PICO', countryName: 'AZORES' },\r\n { placeId: 2143, cityName: 'PONTA DELGADA', countryName: 'AZORES' },\r\n { placeId: 2119, cityName: 'SANTA MARIA', countryName: 'AZORES' },\r\n { placeId: 2152, cityName: 'SAO JORGE', countryName: 'AZORES' },\r\n { placeId: 9138, cityName: 'ABACO I', countryName: 'BAHAMAS' },\r\n { placeId: 4012, cityName: 'ACKLINS I', countryName: 'BAHAMAS' },\r\n { placeId: 4137, cityName: 'ANDROS I', countryName: 'BAHAMAS' },\r\n { placeId: 4443, cityName: 'BERRY I', countryName: 'BAHAMAS' },\r\n { placeId: 4475, cityName: 'BIMINI I', countryName: 'BAHAMAS' },\r\n { placeId: 4757, cityName: 'CAT ISLAND', countryName: 'BAHAMAS' },\r\n { placeId: 4858, cityName: 'CHUB CAY', countryName: 'BAHAMAS' },\r\n { placeId: 4994, cityName: 'CROOKED I', countryName: 'BAHAMAS' },\r\n { placeId: 5302, cityName: 'ELEUTHERA I', countryName: 'BAHAMAS' },\r\n { placeId: 5301, cityName: 'ELEUTHERA', countryName: 'BAHAMAS' },\r\n { placeId: 5346, cityName: 'EXUMA', countryName: 'BAHAMAS' },\r\n { placeId: 2836, cityName: 'FREEPORT', countryName: 'BAHAMAS' },\r\n { placeId: 5696, cityName: 'GREAT INAGUA I', countryName: 'BAHAMAS' },\r\n { placeId: 6610, cityName: 'LONG I', countryName: 'BAHAMAS' },\r\n { placeId: 6885, cityName: 'MAYAGUANA I', countryName: 'BAHAMAS' },\r\n { placeId: 2325, cityName: 'NASSAU', countryName: 'BAHAMAS' },\r\n { placeId: 7666, cityName: 'PITTSTOWN POINT', countryName: 'BAHAMAS' },\r\n { placeId: 12715, cityName: 'RAGGED ISLAND', countryName: 'BAHAMAS' },\r\n { placeId: 7982, cityName: 'RUM CAY', countryName: 'BAHAMAS' },\r\n { placeId: 8065, cityName: 'SAN SALVADOR', countryName: 'BAHAMAS' },\r\n { placeId: 8455, cityName: 'STANIEL CAY', countryName: 'BAHAMAS' },\r\n { placeId: 2342, cityName: 'BAHRAIN', countryName: 'BAHRAIN' },\r\n { placeId: 4349, cityName: 'BARISAL', countryName: 'BANGLADESH' },\r\n { placeId: 2680, cityName: 'CHITTAGONG', countryName: 'BANGLADESH' },\r\n { placeId: 4006, cityName: 'COMILLA', countryName: 'BANGLADESH' },\r\n { placeId: 4982, cityName: 'COX\\'S BAZAR', countryName: 'BANGLADESH' },\r\n { placeId: 2681, cityName: 'DHAKA', countryName: 'BANGLADESH' },\r\n { placeId: 5995, cityName: 'ISHURDI', countryName: 'BANGLADESH' },\r\n { placeId: 6058, cityName: 'JESSORE', countryName: 'BANGLADESH' },\r\n { placeId: 7842, cityName: 'RAJSHAHI', countryName: 'BANGLADESH' },\r\n { placeId: 8003, cityName: 'SAIDPUR', countryName: 'BANGLADESH' },\r\n { placeId: 8211, cityName: 'SHAMSHERNAGAR', countryName: 'BANGLADESH' },\r\n { placeId: 8339, cityName: 'SYLHET', countryName: 'BANGLADESH' },\r\n { placeId: 2538, cityName: 'BARBADOS', countryName: 'BARBADOS' },\r\n { placeId: 2610, cityName: 'BREST', countryName: 'BELARUS' },\r\n { placeId: 2614, cityName: 'GRODNO', countryName: 'BELARUS' },\r\n { placeId: 2611, cityName: 'HOMIEL', countryName: 'BELARUS' },\r\n { placeId: 2616, cityName: 'MAHILIOU', countryName: 'BELARUS' },\r\n { placeId: 2615, cityName: 'MINSK', countryName: 'BELARUS' },\r\n { placeId: 2612, cityName: 'VICIEBSK', countryName: 'BELARUS' },\r\n { placeId: 159, cityName: 'AMOUGIES', countryName: 'BELGIUM' },\r\n { placeId: 160, cityName: 'ANTWERP', countryName: 'BELGIUM' },\r\n { placeId: 172, cityName: 'BALEN-KEIHEUVEL', countryName: 'BELGIUM' },\r\n { placeId: 161, cityName: 'BEAUVECHAIN', countryName: 'BELGIUM' },\r\n { placeId: 165, cityName: 'BERTRIX', countryName: 'BELGIUM' },\r\n { placeId: 164, cityName: 'BRASSCHAAT', countryName: 'BELGIUM' },\r\n { placeId: 163, cityName: 'BRUSSELS', countryName: 'BELGIUM' },\r\n { placeId: 4778, cityName: 'CERFONTAINE', countryName: 'BELGIUM' },\r\n { placeId: 166, cityName: 'CHARLEROI', countryName: 'BELGIUM' },\r\n { placeId: 167, cityName: 'CHIEVRES', countryName: 'BELGIUM' },\r\n { placeId: 169, cityName: 'FLORENNES', countryName: 'BELGIUM' },\r\n { placeId: 189, cityName: 'GENK', countryName: 'BELGIUM' },\r\n { placeId: 5551, cityName: 'GERAARDSBERGEN', countryName: 'BELGIUM' },\r\n { placeId: 182, cityName: 'GOETSENHOVEN', countryName: 'BELGIUM' },\r\n { placeId: 170, cityName: 'GRIMBERGEN', countryName: 'BELGIUM' },\r\n { placeId: 187, cityName: 'HASSELT', countryName: 'BELGIUM' },\r\n { placeId: 171, cityName: 'HOEVENEN', countryName: 'BELGIUM' },\r\n { placeId: 162, cityName: 'KLEINE-BROGEL', countryName: 'BELGIUM' },\r\n { placeId: 168, cityName: 'KOKSIJDE', countryName: 'BELGIUM' },\r\n { placeId: 173, cityName: 'KORTRIJK-WEVELGEM', countryName: 'BELGIUM' },\r\n { placeId: 6529, cityName: 'LEOPOLDSBURG', countryName: 'BELGIUM' },\r\n { placeId: 174, cityName: 'LIEGE', countryName: 'BELGIUM' },\r\n { placeId: 175, cityName: 'MOORSELE', countryName: 'BELGIUM' },\r\n { placeId: 176, cityName: 'NAMUR', countryName: 'BELGIUM' },\r\n { placeId: 177, cityName: 'OSTEND-BRUGGE', countryName: 'BELGIUM' },\r\n { placeId: 7515, cityName: 'SAINT-GHISLAIN', countryName: 'BELGIUM' },\r\n { placeId: 180, cityName: 'SPA', countryName: 'BELGIUM' },\r\n { placeId: 178, cityName: 'ST HUBERT', countryName: 'BELGIUM' },\r\n { placeId: 181, cityName: 'ST TRUIDEN', countryName: 'BELGIUM' },\r\n { placeId: 184, cityName: 'TOURNAI', countryName: 'BELGIUM' },\r\n { placeId: 185, cityName: 'URSEL', countryName: 'BELGIUM' },\r\n { placeId: 183, cityName: 'VERVIERS', countryName: 'BELGIUM' },\r\n { placeId: 186, cityName: 'WEELDE', countryName: 'BELGIUM' },\r\n { placeId: 188, cityName: 'ZOERSEL', countryName: 'BELGIUM' },\r\n { placeId: 179, cityName: 'ZUTENDAAL', countryName: 'BELGIUM' },\r\n { placeId: 2326, cityName: 'BELIZE CITY', countryName: 'BELIZE' },\r\n { placeId: 8061, cityName: 'SAN PEDRO, BELIZE', countryName: 'BELIZE' },\r\n { placeId: 140, cityName: 'COTONOU', countryName: 'BENIN' },\r\n { placeId: 5641, cityName: 'KANDI', countryName: 'BENIN' },\r\n { placeId: 7197, cityName: 'NATITINGOU', countryName: 'BENIN' },\r\n { placeId: 7554, cityName: 'PARAKOU', countryName: 'BENIN' },\r\n { placeId: 7695, cityName: 'PORGA', countryName: 'BENIN' },\r\n { placeId: 8135, cityName: 'SAVE', countryName: 'BENIN' },\r\n { placeId: 2552, cityName: 'BERMUDA IS', countryName: 'BERMUDA' },\r\n { placeId: 2833, cityName: 'PARO INTL', countryName: 'BHUTAN' },\r\n { placeId: 7563, cityName: 'PARO', countryName: 'BHUTAN' },\r\n { placeId: 4169, cityName: 'APOLO', countryName: 'BOLIVIA' },\r\n { placeId: 4234, cityName: 'ASCENCION DE GUARAYOS', countryName: 'BOLIVIA' },\r\n { placeId: 4441, cityName: 'BERMEJO', countryName: 'BOLIVIA' },\r\n { placeId: 4700, cityName: 'CAMIRI', countryName: 'BOLIVIA' },\r\n { placeId: 4788, cityName: 'CHARANA', countryName: 'BOLIVIA' },\r\n { placeId: 4909, cityName: 'COBIJA', countryName: 'BOLIVIA' },\r\n { placeId: 2519, cityName: 'COCHABAMBA', countryName: 'BOLIVIA' },\r\n { placeId: 4934, cityName: 'CONCEPCION', countryName: 'BOLIVIA' },\r\n { placeId: 4954, cityName: 'COPACABANA', countryName: 'BOLIVIA' },\r\n { placeId: 5732, cityName: 'GUAYARAMERIN', countryName: 'BOLIVIA' },\r\n { placeId: 2520, cityName: 'LA PAZ', countryName: 'BOLIVIA' },\r\n { placeId: 6408, cityName: 'LAJA', countryName: 'BOLIVIA' },\r\n { placeId: 6707, cityName: 'MAGDALENA', countryName: 'BOLIVIA' },\r\n { placeId: 7042, cityName: 'MONTEAGUDO', countryName: 'BOLIVIA' },\r\n { placeId: 7428, cityName: 'ORURO', countryName: 'BOLIVIA' },\r\n { placeId: 7746, cityName: 'POTOSI', countryName: 'BOLIVIA' },\r\n { placeId: 7793, cityName: 'PUERTO SUAREZ', countryName: 'BOLIVIA' },\r\n { placeId: 7904, cityName: 'REYES', countryName: 'BOLIVIA' },\r\n { placeId: 7907, cityName: 'RIBERALTA', countryName: 'BOLIVIA' },\r\n { placeId: 7930, cityName: 'ROBORE', countryName: 'BOLIVIA' },\r\n { placeId: 7986, cityName: 'RURRENABAQUE', countryName: 'BOLIVIA' },\r\n { placeId: 8032, cityName: 'SAN BORJA', countryName: 'BOLIVIA' },\r\n { placeId: 8043, cityName: 'SAN IGNACIO DE MOXOS', countryName: 'BOLIVIA' },\r\n { placeId: 8044, cityName: 'SAN IGNACIO DE VELASCO', countryName: 'BOLIVIA' },\r\n { placeId: 8046, cityName: 'SAN JAVIER', countryName: 'BOLIVIA' },\r\n { placeId: 8047, cityName: 'SAN JOAQUIN', countryName: 'BOLIVIA' },\r\n { placeId: 8050, cityName: 'SAN JOSE DE CHIQUITOS', countryName: 'BOLIVIA' },\r\n { placeId: 8056, cityName: 'SAN MATIAS', countryName: 'BOLIVIA' },\r\n { placeId: 8064, cityName: 'SAN RAMON', countryName: 'BOLIVIA' },\r\n { placeId: 8084, cityName: 'SANTA ANA DEL YACUMA', countryName: 'BOLIVIA' },\r\n { placeId: 2522, cityName: 'SANTA CRUZ', countryName: 'BOLIVIA' },\r\n { placeId: 8104, cityName: 'SANTA ROSA DEL YACUMA', countryName: 'BOLIVIA' },\r\n { placeId: 8163, cityName: 'SUCRE', countryName: 'BOLIVIA' },\r\n { placeId: 8587, cityName: 'TARIJA', countryName: 'BOLIVIA' },\r\n { placeId: 2521, cityName: 'TRINIDAD', countryName: 'BOLIVIA' },\r\n { placeId: 8171, cityName: 'VALLEGRANDE', countryName: 'BOLIVIA' },\r\n { placeId: 8859, cityName: 'VILLAMONTES', countryName: 'BOLIVIA' },\r\n { placeId: 9062, cityName: 'YACUIBA', countryName: 'BOLIVIA' },\r\n { placeId: 2157, cityName: 'BANJA LUKA', countryName: 'BOSNIA AND HERZEGOVINA' },\r\n { placeId: 4470, cityName: 'BIHAC', countryName: 'BOSNIA AND HERZEGOVINA' },\r\n { placeId: 6588, cityName: 'LIVNO', countryName: 'BOSNIA AND HERZEGOVINA' },\r\n { placeId: 2158, cityName: 'MOSTAR', countryName: 'BOSNIA AND HERZEGOVINA' },\r\n { placeId: 7764, cityName: 'PRIJEDOR', countryName: 'BOSNIA AND HERZEGOVINA' },\r\n { placeId: 2159, cityName: 'SARAJEVO', countryName: 'BOSNIA AND HERZEGOVINA' },\r\n { placeId: 2160, cityName: 'TUZLA', countryName: 'BOSNIA AND HERZEGOVINA' },\r\n { placeId: 13590, cityName: 'VELIKA KLADUSA', countryName: 'BOSNIA AND HERZEGOVINA' },\r\n { placeId: 8869, cityName: 'VISOKO', countryName: 'BOSNIA AND HERZEGOVINA' },\r\n { placeId: 1118, cityName: 'FRANCISTOWN', countryName: 'BOTSWANA' },\r\n { placeId: 1122, cityName: 'GABORONE', countryName: 'BOTSWANA' },\r\n { placeId: 1119, cityName: 'GHANZI', countryName: 'BOTSWANA' },\r\n { placeId: 5743, cityName: 'GUMARE', countryName: 'BOTSWANA' },\r\n { placeId: 6088, cityName: 'JWANENG', countryName: 'BOTSWANA' },\r\n { placeId: 5643, cityName: 'KANG', countryName: 'BOTSWANA' },\r\n { placeId: 6132, cityName: 'KANYE', countryName: 'BOTSWANA' },\r\n { placeId: 1120, cityName: 'KASANE', countryName: 'BOTSWANA' },\r\n { placeId: 6214, cityName: 'KHWAI RIVER', countryName: 'BOTSWANA' },\r\n { placeId: 6562, cityName: 'LIMPOPO VALLEY', countryName: 'BOTSWANA' },\r\n { placeId: 6722, cityName: 'MAKALAMABEDI', countryName: 'BOTSWANA' },\r\n { placeId: 1121, cityName: 'MAUN', countryName: 'BOTSWANA' },\r\n { placeId: 7194, cityName: 'NATA', countryName: 'BOTSWANA' },\r\n { placeId: 7274, cityName: 'NOKANENG', countryName: 'BOTSWANA' },\r\n { placeId: 7408, cityName: 'ORAPA', countryName: 'BOTSWANA' },\r\n { placeId: 6512, cityName: 'PALAPYE', countryName: 'BOTSWANA' },\r\n { placeId: 7844, cityName: 'RAKOPS', countryName: 'BOTSWANA' },\r\n { placeId: 1123, cityName: 'SELEBI-PHIKWE', countryName: 'BOTSWANA' },\r\n { placeId: 8193, cityName: 'SEROWE', countryName: 'BOTSWANA' },\r\n { placeId: 8209, cityName: 'SHAKAWE', countryName: 'BOTSWANA' },\r\n { placeId: 8501, cityName: 'SUA', countryName: 'BOTSWANA' },\r\n { placeId: 8720, cityName: 'TSHABONG', countryName: 'BOTSWANA' },\r\n { placeId: 8721, cityName: 'TSHANE', countryName: 'BOTSWANA' },\r\n { placeId: 9061, cityName: 'XUGANA', countryName: 'BOTSWANA' },\r\n // { placeId: 9319, cityName: '', countryName: 'BRAZIL' },\r\n { placeId: 3349, cityName: 'ABARE', countryName: 'BRAZIL' },\r\n { placeId: 3529, cityName: 'ACU', countryName: 'BRAZIL' },\r\n { placeId: 3326, cityName: 'ADAMANTINA', countryName: 'BRAZIL' },\r\n { placeId: 3389, cityName: 'ADUSTINA', countryName: 'BRAZIL' },\r\n { placeId: 3557, cityName: 'ALEGRETE', countryName: 'BRAZIL' },\r\n { placeId: 3428, cityName: 'ALFENAS', countryName: 'BRAZIL' },\r\n { placeId: 3300, cityName: 'ALMEIRIM', countryName: 'BRAZIL' },\r\n { placeId: 3394, cityName: 'ALMENARA', countryName: 'BRAZIL' },\r\n { placeId: 3252, cityName: 'ALTA FLORESTA', countryName: 'BRAZIL' },\r\n { placeId: 3282, cityName: 'ALTAMIRA', countryName: 'BRAZIL' },\r\n { placeId: 3678, cityName: 'ALTO GARCAS', countryName: 'BRAZIL' },\r\n { placeId: 3378, cityName: 'ALTO PARAISO', countryName: 'BRAZIL' },\r\n { placeId: 3390, cityName: 'ALTO PARNAIBA', countryName: 'BRAZIL' },\r\n { placeId: 3558, cityName: 'AMAMBAI', countryName: 'BRAZIL' },\r\n { placeId: 9562, cityName: 'AMAPA', countryName: 'BRAZIL' },\r\n { placeId: 3328, cityName: 'AMERICANA', countryName: 'BRAZIL' },\r\n { placeId: 3248, cityName: 'ANAPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3559, cityName: 'ANDIRA', countryName: 'BRAZIL' },\r\n { placeId: 3335, cityName: 'ANDRADINA', countryName: 'BRAZIL' },\r\n { placeId: 3327, cityName: 'ANGRA DOS REIS', countryName: 'BRAZIL' },\r\n { placeId: 3560, cityName: 'APUCARANA', countryName: 'BRAZIL' },\r\n { placeId: 3721, cityName: 'APUI', countryName: 'BRAZIL' },\r\n { placeId: 3250, cityName: 'ARACAJU', countryName: 'BRAZIL' },\r\n { placeId: 9600, cityName: 'ARACATI', countryName: 'BRAZIL' },\r\n { placeId: 3253, cityName: 'ARACATUBA', countryName: 'BRAZIL' },\r\n { placeId: 3532, cityName: 'ARACUAI', countryName: 'BRAZIL' },\r\n { placeId: 3653, cityName: 'ARAGARCAS', countryName: 'BRAZIL' },\r\n { placeId: 3675, cityName: 'ARAGUACEMA', countryName: 'BRAZIL' },\r\n { placeId: 3655, cityName: 'ARAGUAIANA', countryName: 'BRAZIL' },\r\n { placeId: 3677, cityName: 'ARAGUAINA', countryName: 'BRAZIL' },\r\n { placeId: 3388, cityName: 'ARAGUARI', countryName: 'BRAZIL' },\r\n { placeId: 3654, cityName: 'ARAGUATINS', countryName: 'BRAZIL' },\r\n { placeId: 3391, cityName: 'ARAPIRACA', countryName: 'BRAZIL' },\r\n { placeId: 3612, cityName: 'ARAPONGAS', countryName: 'BRAZIL' },\r\n { placeId: 3649, cityName: 'ARAPOTI', countryName: 'BRAZIL' },\r\n { placeId: 3249, cityName: 'ARARAQUARA', countryName: 'BRAZIL' },\r\n { placeId: 3325, cityName: 'ARARAS', countryName: 'BRAZIL' },\r\n { placeId: 3255, cityName: 'ARAXA', countryName: 'BRAZIL' },\r\n { placeId: 3387, cityName: 'ARCOVERDE', countryName: 'BRAZIL' },\r\n { placeId: 3944, cityName: 'ARIQUEMES', countryName: 'BRAZIL' },\r\n { placeId: 3699, cityName: 'ARRAIAS', countryName: 'BRAZIL' },\r\n { placeId: 3556, cityName: 'ARROIO GRANDE', countryName: 'BRAZIL' },\r\n { placeId: 3943, cityName: 'ARUANA', countryName: 'BRAZIL' },\r\n { placeId: 3251, cityName: 'ASSIS', countryName: 'BRAZIL' },\r\n { placeId: 3690, cityName: 'ATALAIA DO NORTE', countryName: 'BRAZIL' },\r\n { placeId: 3368, cityName: 'AVARE', countryName: 'BRAZIL' },\r\n { placeId: 3399, cityName: 'BACABAL', countryName: 'BRAZIL' },\r\n { placeId: 2467, cityName: 'BAGE', countryName: 'BRAZIL' },\r\n { placeId: 3406, cityName: 'BAIAO', countryName: 'BRAZIL' },\r\n { placeId: 3398, cityName: 'BAIXO GUANDU', countryName: 'BRAZIL' },\r\n { placeId: 3404, cityName: 'BALSAS', countryName: 'BRAZIL' },\r\n { placeId: 3564, cityName: 'BANDEIRANTES', countryName: 'BRAZIL' },\r\n { placeId: 3256, cityName: 'BARBACENA', countryName: 'BRAZIL' },\r\n { placeId: 3657, cityName: 'BARCELOS', countryName: 'BRAZIL' },\r\n { placeId: 3332, cityName: 'BARIRI', countryName: 'BRAZIL' },\r\n { placeId: 3396, cityName: 'BARRA DO CORDA', countryName: 'BRAZIL' },\r\n { placeId: 3259, cityName: 'BARRA DO GARCAS', countryName: 'BRAZIL' },\r\n { placeId: 3407, cityName: 'BARRA', countryName: 'BRAZIL' },\r\n { placeId: 3403, cityName: 'BARREIRAS', countryName: 'BRAZIL' },\r\n { placeId: 3658, cityName: 'BARREIRINHA', countryName: 'BRAZIL' },\r\n { placeId: 3257, cityName: 'BARRETOS', countryName: 'BRAZIL' },\r\n { placeId: 3258, cityName: 'BAURU', countryName: 'BRAZIL' },\r\n { placeId: 3329, cityName: 'BEBEDOURO', countryName: 'BRAZIL' },\r\n { placeId: 3565, cityName: 'BELA VISTA', countryName: 'BRAZIL' },\r\n { placeId: 3431, cityName: 'BELEM DE SAO FRANCISCO', countryName: 'BRAZIL' },\r\n { placeId: 2466, cityName: 'BELEM', countryName: 'BRAZIL' },\r\n { placeId: 9804, cityName: 'BELMONTE', countryName: 'BRAZIL' },\r\n { placeId: 2470, cityName: 'BELO HORIZONTE', countryName: 'BRAZIL' },\r\n { placeId: 3400, cityName: 'BELO JARDIM', countryName: 'BRAZIL' },\r\n { placeId: 3424, cityName: 'BELTERRA', countryName: 'BRAZIL' },\r\n { placeId: 3405, cityName: 'BENEDITO LEITE', countryName: 'BRAZIL' },\r\n { placeId: 3563, cityName: 'BLUMENAU', countryName: 'BRAZIL' },\r\n { placeId: 2469, cityName: 'BOA VISTA', countryName: 'BRAZIL' },\r\n { placeId: 3945, cityName: 'BOCA DO ACRE', countryName: 'BRAZIL' },\r\n { placeId: 3401, cityName: 'BOCAIUVA', countryName: 'BRAZIL' },\r\n { placeId: 3296, cityName: 'BOM JESUS DA LAPA', countryName: 'BRAZIL' },\r\n { placeId: 3436, cityName: 'BOM JESUS DO GURGUEIA', countryName: 'BRAZIL' },\r\n { placeId: 3562, cityName: 'BOM JESUS', countryName: 'BRAZIL' },\r\n { placeId: 3385, cityName: 'BONITO', countryName: 'BRAZIL' },\r\n { placeId: 3402, cityName: 'BOQUIRA', countryName: 'BRAZIL' },\r\n { placeId: 3660, cityName: 'BORBA', countryName: 'BRAZIL' },\r\n { placeId: 3330, cityName: 'BOTUCATU', countryName: 'BRAZIL' },\r\n { placeId: 3331, cityName: 'BRAGANCA PAULISTA', countryName: 'BRAZIL' },\r\n { placeId: 3661, cityName: 'BRASILEIA', countryName: 'BRAZIL' },\r\n { placeId: 2468, cityName: 'BRASILIA', countryName: 'BRAZIL' },\r\n { placeId: 3506, cityName: 'BREJO', countryName: 'BRAZIL' },\r\n { placeId: 3540, cityName: 'BREVES', countryName: 'BRAZIL' },\r\n { placeId: 3458, cityName: 'BROTAS DE MACAUBAS', countryName: 'BRAZIL' },\r\n { placeId: 3656, cityName: 'BURITI ALEGRE', countryName: 'BRAZIL' },\r\n { placeId: 3525, cityName: 'BURITIRAMA', countryName: 'BRAZIL' },\r\n { placeId: 3261, cityName: 'CABO FRIO', countryName: 'BRAZIL' },\r\n { placeId: 3263, cityName: 'CACADOR', countryName: 'BRAZIL' },\r\n { placeId: 3647, cityName: 'CACAPAVA DO SUL', countryName: 'BRAZIL' },\r\n { placeId: 3569, cityName: 'CACEQUI', countryName: 'BRAZIL' },\r\n { placeId: 3669, cityName: 'CACERES', countryName: 'BRAZIL' },\r\n { placeId: 3595, cityName: 'CACHOEIRA DO SUL', countryName: 'BRAZIL' },\r\n { placeId: 3454, cityName: 'CACHOEIRO DO ITAPEMIRIM', countryName: 'BRAZIL' },\r\n { placeId: 3692, cityName: 'CACOAL', countryName: 'BRAZIL' },\r\n { placeId: 3929, cityName: 'CAETITE', countryName: 'BRAZIL' },\r\n { placeId: 3455, cityName: 'CAICO', countryName: 'BRAZIL' },\r\n { placeId: 10011, cityName: 'CALCOENE', countryName: 'BRAZIL' },\r\n { placeId: 3268, cityName: 'CALDAS NOVAS', countryName: 'BRAZIL' },\r\n { placeId: 10033, cityName: 'CAMOCIM', countryName: 'BRAZIL' },\r\n { placeId: 3291, cityName: 'CAMPINA GRANDE', countryName: 'BRAZIL' },\r\n { placeId: 3413, cityName: 'CAMPINA VERDE', countryName: 'BRAZIL' },\r\n { placeId: 2481, cityName: 'CAMPINAS', countryName: 'BRAZIL' },\r\n { placeId: 3627, cityName: 'CAMPO ALEGRE DE LOURDES', countryName: 'BRAZIL' },\r\n { placeId: 3409, cityName: 'CAMPO DO MEIO', countryName: 'BRAZIL' },\r\n { placeId: 2471, cityName: 'CAMPO GRANDE', countryName: 'BRAZIL' },\r\n { placeId: 3593, cityName: 'CAMPO MOURAO', countryName: 'BRAZIL' },\r\n { placeId: 3594, cityName: 'CAMPO NOVO', countryName: 'BRAZIL' },\r\n { placeId: 3663, cityName: 'CAMPOS BELOS', countryName: 'BRAZIL' },\r\n { placeId: 3269, cityName: 'CAMPOS DOS GOYTACAZES', countryName: 'BRAZIL' },\r\n { placeId: 3412, cityName: 'CAMPOS SALES', countryName: 'BRAZIL' },\r\n { placeId: 3671, cityName: 'CANARANA', countryName: 'BRAZIL' },\r\n { placeId: 10047, cityName: 'CANAVIEIRAS', countryName: 'BRAZIL' },\r\n { placeId: 10049, cityName: 'CANDIOTA', countryName: 'BRAZIL' },\r\n { placeId: 3567, cityName: 'CANELA', countryName: 'BRAZIL' },\r\n { placeId: 3333, cityName: 'CAPAO BONITO', countryName: 'BRAZIL' },\r\n { placeId: 3592, cityName: 'CAPAO DA CANOA', countryName: 'BRAZIL' },\r\n { placeId: 3459, cityName: 'CAPELINHA', countryName: 'BRAZIL' },\r\n { placeId: 3698, cityName: 'CARACARAI', countryName: 'BRAZIL' },\r\n { placeId: 3266, cityName: 'CARAJAS', countryName: 'BRAZIL' },\r\n { placeId: 3662, cityName: 'CARAUARI', countryName: 'BRAZIL' },\r\n { placeId: 10067, cityName: 'CARAVELAS', countryName: 'BRAZIL' },\r\n { placeId: 3597, cityName: 'CARAZINHO', countryName: 'BRAZIL' },\r\n { placeId: 3475, cityName: 'CARINHANHA', countryName: 'BRAZIL' },\r\n { placeId: 3265, cityName: 'CAROLINA', countryName: 'BRAZIL' },\r\n { placeId: 3511, cityName: 'CARUARU', countryName: 'BRAZIL' },\r\n { placeId: 3410, cityName: 'CARUTAPERA', countryName: 'BRAZIL' },\r\n { placeId: 3339, cityName: 'CASA NOVA', countryName: 'BRAZIL' },\r\n { placeId: 3260, cityName: 'CASCAVEL', countryName: 'BRAZIL' },\r\n { placeId: 3626, cityName: 'CASTRO ALVES', countryName: 'BRAZIL' },\r\n { placeId: 3623, cityName: 'CASTRO', countryName: 'BRAZIL' },\r\n { placeId: 3694, cityName: 'CATALAO, BRAZIL', countryName: 'BRAZIL' },\r\n { placeId: 10101, cityName: 'CATANDUVA', countryName: 'BRAZIL' },\r\n { placeId: 3382, cityName: 'CATOLE DO ROCHA', countryName: 'BRAZIL' },\r\n { placeId: 3665, cityName: 'CAVALCANTE', countryName: 'BRAZIL' },\r\n { placeId: 3544, cityName: 'CAXAMBU', countryName: 'BRAZIL' },\r\n { placeId: 3270, cityName: 'CAXIAS DO SUL', countryName: 'BRAZIL' },\r\n { placeId: 3546, cityName: 'CAXIAS', countryName: 'BRAZIL' },\r\n { placeId: 3651, cityName: 'CENTENARIO DO SOL', countryName: 'BRAZIL' },\r\n { placeId: 3666, cityName: 'CERES', countryName: 'BRAZIL' },\r\n { placeId: 3953, cityName: 'CHAPADA DOS GUIMARAES', countryName: 'BRAZIL' },\r\n { placeId: 3264, cityName: 'CHAPECO', countryName: 'BRAZIL' },\r\n { placeId: 3547, cityName: 'CHAVES', countryName: 'BRAZIL' },\r\n { placeId: 3571, cityName: 'CIANORTE', countryName: 'BRAZIL' },\r\n { placeId: 3932, cityName: 'CIPO', countryName: 'BRAZIL' },\r\n { placeId: 3693, cityName: 'COARI', countryName: 'BRAZIL' },\r\n { placeId: 3449, cityName: 'COCOS', countryName: 'BRAZIL' },\r\n { placeId: 3468, cityName: 'CODO', countryName: 'BRAZIL' },\r\n { placeId: 3503, cityName: 'COELHO NETO', countryName: 'BRAZIL' },\r\n { placeId: 3414, cityName: 'COLATINA', countryName: 'BRAZIL' },\r\n { placeId: 3456, cityName: 'COLINAS', countryName: 'BRAZIL' },\r\n { placeId: 3537, cityName: 'CONCEICAO DAS ALAGOAS', countryName: 'BRAZIL' },\r\n { placeId: 3247, cityName: 'CONCEICAO DO ARAGUAIA', countryName: 'BRAZIL' },\r\n { placeId: 3450, cityName: 'CONCEICAO DO MATO DENTRO', countryName: 'BRAZIL' },\r\n { placeId: 3383, cityName: 'CONCEICAO', countryName: 'BRAZIL' },\r\n { placeId: 3566, cityName: 'CONCORDIA', countryName: 'BRAZIL' },\r\n { placeId: 3452, cityName: 'CONSELHEIRO LAFAIETE', countryName: 'BRAZIL' },\r\n { placeId: 3568, cityName: 'CORNELIO PROCOPIO', countryName: 'BRAZIL' },\r\n { placeId: 3478, cityName: 'COROATA', countryName: 'BRAZIL' },\r\n { placeId: 3460, cityName: 'CORRENTE', countryName: 'BRAZIL' },\r\n { placeId: 2472, cityName: 'CORUMBA', countryName: 'BRAZIL' },\r\n { placeId: 3664, cityName: 'COSTA MARQUES', countryName: 'BRAZIL' },\r\n { placeId: 3379, cityName: 'COSTA RICA', countryName: 'BRAZIL' },\r\n { placeId: 3924, cityName: 'COXIM', countryName: 'BRAZIL' },\r\n { placeId: 3542, cityName: 'CRATEUS', countryName: 'BRAZIL' },\r\n { placeId: 3453, cityName: 'CREPUTIA', countryName: 'BRAZIL' },\r\n { placeId: 3267, cityName: 'CRICIUMA', countryName: 'BRAZIL' },\r\n { placeId: 3684, cityName: 'CRISTALANDIA', countryName: 'BRAZIL' },\r\n { placeId: 3377, cityName: 'CRISTALINA', countryName: 'BRAZIL' },\r\n { placeId: 3271, cityName: 'CRUZEIRO DO SUL', countryName: 'BRAZIL' },\r\n { placeId: 2474, cityName: 'CUIABA', countryName: 'BRAZIL' },\r\n { placeId: 2473, cityName: 'CURITIBA', countryName: 'BRAZIL' },\r\n { placeId: 3596, cityName: 'CURITIBANOS', countryName: 'BRAZIL' },\r\n { placeId: 3457, cityName: 'CURRAIS NOVOS', countryName: 'BRAZIL' },\r\n { placeId: 3504, cityName: 'CURVELO', countryName: 'BRAZIL' },\r\n { placeId: 3420, cityName: 'DIAMANTINA', countryName: 'BRAZIL' },\r\n { placeId: 3667, cityName: 'DIAMANTINO', countryName: 'BRAZIL' },\r\n { placeId: 3668, cityName: 'DIANOPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3572, cityName: 'DIONISIO CERQUEIRA', countryName: 'BRAZIL' },\r\n { placeId: 3421, cityName: 'DIVINOPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3574, cityName: 'DOM PEDRITO', countryName: 'BRAZIL' },\r\n { placeId: 3423, cityName: 'DORES DO INDAIA', countryName: 'BRAZIL' },\r\n { placeId: 3573, cityName: 'DOURADOS', countryName: 'BRAZIL' },\r\n { placeId: 3343, cityName: 'DR. JOSE AUGUSTO DE ARRUDA BOT', countryName: 'BRAZIL' },\r\n { placeId: 3336, cityName: 'DRACENA', countryName: 'BRAZIL' },\r\n { placeId: 3670, cityName: 'EIRUNEPE', countryName: 'BRAZIL' },\r\n { placeId: 10591, cityName: 'ELDORADO DO SUL', countryName: 'BRAZIL' },\r\n { placeId: 3422, cityName: 'ENCRUZILHADA', countryName: 'BRAZIL' },\r\n { placeId: 3576, cityName: 'ERECHIM', countryName: 'BRAZIL' },\r\n { placeId: 3427, cityName: 'ESPLANADA', countryName: 'BRAZIL' },\r\n { placeId: 3411, cityName: 'EUCLIDES DA CUNHA', countryName: 'BRAZIL' },\r\n { placeId: 3426, cityName: 'EUNAPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3672, cityName: 'FEIJO', countryName: 'BRAZIL' },\r\n { placeId: 10703, cityName: 'FERNANDO DE NORONHA', countryName: 'BRAZIL' },\r\n { placeId: 3338, cityName: 'FERNANDOPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3501, cityName: 'FLORIANO', countryName: 'BRAZIL' },\r\n { placeId: 2477, cityName: 'FLORIANOPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3948, cityName: 'FONTE BOA', countryName: 'BRAZIL' },\r\n { placeId: 3430, cityName: 'FORMIGA', countryName: 'BRAZIL' },\r\n { placeId: 3673, cityName: 'FORMOSA', countryName: 'BRAZIL' },\r\n { placeId: 2478, cityName: 'FORTALEZA', countryName: 'BRAZIL' },\r\n { placeId: 2476, cityName: 'FOZ DO IGUACU', countryName: 'BRAZIL' },\r\n { placeId: 3384, cityName: 'FRANCA', countryName: 'BRAZIL' },\r\n { placeId: 3577, cityName: 'FRANCISCO BELTRAO', countryName: 'BRAZIL' },\r\n { placeId: 3429, cityName: 'FRANCISCO SA', countryName: 'BRAZIL' },\r\n { placeId: 3275, cityName: 'FRONTEIRA', countryName: 'BRAZIL' },\r\n { placeId: 3432, cityName: 'FRUTAL', countryName: 'BRAZIL' },\r\n { placeId: 3919, cityName: 'GARANHUNS', countryName: 'BRAZIL' },\r\n { placeId: 3340, cityName: 'GARCA', countryName: 'BRAZIL' },\r\n { placeId: 3578, cityName: 'GARIBALDI', countryName: 'BRAZIL' },\r\n { placeId: 3278, cityName: 'GAVIAO PEIXOTO', countryName: 'BRAZIL' },\r\n { placeId: 3920, cityName: 'GENTIO DE OURO', countryName: 'BRAZIL' },\r\n { placeId: 3580, cityName: 'GETULIO VARGAS', countryName: 'BRAZIL' },\r\n { placeId: 3434, cityName: 'GILBUES', countryName: 'BRAZIL' },\r\n { placeId: 3277, cityName: 'GOIANIA', countryName: 'BRAZIL' },\r\n { placeId: 3581, cityName: 'GOIO-ERE', countryName: 'BRAZIL' },\r\n { placeId: 3280, cityName: 'GOVERNADOR VALADARES', countryName: 'BRAZIL' },\r\n { placeId: 3439, cityName: 'GRAJAU', countryName: 'BRAZIL' },\r\n { placeId: 3435, cityName: 'GUADALUPE', countryName: 'BRAZIL' },\r\n { placeId: 3582, cityName: 'GUAIRA', countryName: 'BRAZIL' },\r\n { placeId: 3276, cityName: 'GUAJARA MIRIM', countryName: 'BRAZIL' },\r\n { placeId: 3438, cityName: 'GUANAMBI', countryName: 'BRAZIL' },\r\n { placeId: 3437, cityName: 'GUANHAES', countryName: 'BRAZIL' },\r\n { placeId: 3579, cityName: 'GUAPORE', countryName: 'BRAZIL' },\r\n { placeId: 11014, cityName: 'GUARAPARI', countryName: 'BRAZIL' },\r\n { placeId: 3279, cityName: 'GUARAPUAVA', countryName: 'BRAZIL' },\r\n { placeId: 3281, cityName: 'GUARATINGUETA', countryName: 'BRAZIL' },\r\n { placeId: 11015, cityName: 'GUARATUBA', countryName: 'BRAZIL' },\r\n { placeId: 3910, cityName: 'GUARUJA', countryName: 'BRAZIL' },\r\n { placeId: 3922, cityName: 'GUAXUPE', countryName: 'BRAZIL' },\r\n { placeId: 11021, cityName: 'GUIMARAES', countryName: 'BRAZIL' },\r\n { placeId: 3921, cityName: 'GURUPA', countryName: 'BRAZIL' },\r\n { placeId: 3676, cityName: 'GURUPI', countryName: 'BRAZIL' },\r\n { placeId: 11182, cityName: 'HORIZONTINA', countryName: 'BRAZIL' },\r\n { placeId: 3680, cityName: 'HUMAITA', countryName: 'BRAZIL' },\r\n { placeId: 3681, cityName: 'IASSIARA', countryName: 'BRAZIL' },\r\n { placeId: 3555, cityName: 'IBAITI', countryName: 'BRAZIL' },\r\n { placeId: 3935, cityName: 'IBIMIRIM', countryName: 'BRAZIL' },\r\n { placeId: 3341, cityName: 'IBITINGA', countryName: 'BRAZIL' },\r\n { placeId: 3934, cityName: 'IBOTIRAMA', countryName: 'BRAZIL' },\r\n { placeId: 3926, cityName: 'IGARAPE-ACU', countryName: 'BRAZIL' },\r\n { placeId: 11234, cityName: 'IGUARACU', countryName: 'BRAZIL' },\r\n { placeId: 3561, cityName: 'IGUATEMI', countryName: 'BRAZIL' },\r\n { placeId: 3930, cityName: 'IGUATU', countryName: 'BRAZIL' },\r\n { placeId: 3583, cityName: 'IJUI', countryName: 'BRAZIL' },\r\n { placeId: 11241, cityName: 'ILHEUS', countryName: 'BRAZIL' },\r\n { placeId: 11244, cityName: 'IMBITUBA', countryName: 'BRAZIL' },\r\n { placeId: 3287, cityName: 'IMPERATRIZ', countryName: 'BRAZIL' },\r\n { placeId: 3683, cityName: 'IPAMERI', countryName: 'BRAZIL' },\r\n { placeId: 3285, cityName: 'IPATINGA', countryName: 'BRAZIL' },\r\n { placeId: 11270, cityName: 'IPIAU', countryName: 'BRAZIL' },\r\n { placeId: 3646, cityName: 'IRAI', countryName: 'BRAZIL' },\r\n { placeId: 3586, cityName: 'IRATI', countryName: 'BRAZIL' },\r\n { placeId: 3928, cityName: 'IRECE', countryName: 'BRAZIL' },\r\n { placeId: 3927, cityName: 'ITABERABA', countryName: 'BRAZIL' },\r\n { placeId: 3923, cityName: 'ITABUNA', countryName: 'BRAZIL' },\r\n { placeId: 3283, cityName: 'ITACOATIARA', countryName: 'BRAZIL' },\r\n { placeId: 3284, cityName: 'ITAITUBA', countryName: 'BRAZIL' },\r\n { placeId: 3375, cityName: 'ITAPERUNA', countryName: 'BRAZIL' },\r\n { placeId: 3933, cityName: 'ITAPETINGA', countryName: 'BRAZIL' },\r\n { placeId: 3380, cityName: 'ITAPEVA', countryName: 'BRAZIL' },\r\n { placeId: 11282, cityName: 'ITAPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3584, cityName: 'ITAQUI', countryName: 'BRAZIL' },\r\n { placeId: 3548, cityName: 'ITUIUTABA', countryName: 'BRAZIL' },\r\n { placeId: 3286, cityName: 'ITUMBIARA', countryName: 'BRAZIL' },\r\n { placeId: 3342, cityName: 'ITUVERAVA', countryName: 'BRAZIL' },\r\n { placeId: 3344, cityName: 'JABOTICABAL', countryName: 'BRAZIL' },\r\n { placeId: 3273, cityName: 'JACAREACANGA', countryName: 'BRAZIL' },\r\n { placeId: 3588, cityName: 'JACAREZINHO', countryName: 'BRAZIL' },\r\n { placeId: 3685, cityName: 'JACIARA', countryName: 'BRAZIL' },\r\n { placeId: 3440, cityName: 'JACOBINA', countryName: 'BRAZIL' },\r\n { placeId: 3591, cityName: 'JAGUARAO', countryName: 'BRAZIL' },\r\n { placeId: 3469, cityName: 'JAGUARARI', countryName: 'BRAZIL' },\r\n { placeId: 3345, cityName: 'JALES', countryName: 'BRAZIL' },\r\n { placeId: 3393, cityName: 'JANAUBA', countryName: 'BRAZIL' },\r\n { placeId: 3443, cityName: 'JANUARIA', countryName: 'BRAZIL' },\r\n { placeId: 3688, cityName: 'JAPURA', countryName: 'BRAZIL' },\r\n { placeId: 3936, cityName: 'JARDIM DE ANGICOS', countryName: 'BRAZIL' },\r\n { placeId: 3447, cityName: 'JARDIM DO SERIDO', countryName: 'BRAZIL' },\r\n { placeId: 3589, cityName: 'JARDIM', countryName: 'BRAZIL' },\r\n { placeId: 3691, cityName: 'JATAI', countryName: 'BRAZIL' },\r\n { placeId: 3442, cityName: 'JEQUIE', countryName: 'BRAZIL' },\r\n { placeId: 3445, cityName: 'JEQUITINHONHA', countryName: 'BRAZIL' },\r\n { placeId: 3686, cityName: 'JI-PARANA', countryName: 'BRAZIL' },\r\n { placeId: 3587, cityName: 'JOACABA', countryName: 'BRAZIL' },\r\n { placeId: 3441, cityName: 'JOAO DURVAL CARNEIRO', countryName: 'BRAZIL' },\r\n { placeId: 11338, cityName: 'JOAO PESSOA', countryName: 'BRAZIL' },\r\n { placeId: 3444, cityName: 'JOAO PINHEIRO', countryName: 'BRAZIL' },\r\n { placeId: 11344, cityName: 'JOINVILLE', countryName: 'BRAZIL' },\r\n { placeId: 3290, cityName: 'JUAZEIRO DO NORTE', countryName: 'BRAZIL' },\r\n { placeId: 3687, cityName: 'JUINA', countryName: 'BRAZIL' },\r\n { placeId: 3289, cityName: 'JUIZ DE FORA', countryName: 'BRAZIL' },\r\n { placeId: 3590, cityName: 'JULIO DE CASTILOS', countryName: 'BRAZIL' },\r\n { placeId: 3288, cityName: 'JUNDIAI', countryName: 'BRAZIL' },\r\n { placeId: 3689, cityName: 'JURUENA', countryName: 'BRAZIL' },\r\n { placeId: 3937, cityName: 'LABREA', countryName: 'BRAZIL' },\r\n { placeId: 3293, cityName: 'LAGES', countryName: 'BRAZIL' },\r\n { placeId: 3297, cityName: 'LAGOA SANTA', countryName: 'BRAZIL' },\r\n { placeId: 11590, cityName: 'LAGUNA', countryName: 'BRAZIL' },\r\n { placeId: 3350, cityName: 'LEME', countryName: 'BRAZIL' },\r\n { placeId: 3351, cityName: 'LENCOIS PAULISTA', countryName: 'BRAZIL' },\r\n { placeId: 3292, cityName: 'LENCOIS', countryName: 'BRAZIL' },\r\n { placeId: 3419, cityName: 'LEOPOLDINA', countryName: 'BRAZIL' },\r\n { placeId: 3462, cityName: 'LINHARES', countryName: 'BRAZIL' },\r\n { placeId: 3294, cityName: 'LINS', countryName: 'BRAZIL' },\r\n { placeId: 3461, cityName: 'LIVRAMENTO DO BRUMADO', countryName: 'BRAZIL' },\r\n { placeId: 3600, cityName: 'LOANDA', countryName: 'BRAZIL' },\r\n { placeId: 3295, cityName: 'LONDRINA', countryName: 'BRAZIL' },\r\n { placeId: 3599, cityName: 'LONTRAS', countryName: 'BRAZIL' },\r\n { placeId: 3348, cityName: 'LUCELIA', countryName: 'BRAZIL' },\r\n { placeId: 3710, cityName: 'LUCIARA', countryName: 'BRAZIL' },\r\n { placeId: 3713, cityName: 'LUZIANIA', countryName: 'BRAZIL' },\r\n { placeId: 11775, cityName: 'MACAE', countryName: 'BRAZIL' },\r\n { placeId: 2483, cityName: 'MACAPA', countryName: 'BRAZIL' },\r\n { placeId: 3467, cityName: 'MACAUBAS', countryName: 'BRAZIL' },\r\n { placeId: 2482, cityName: 'MACEIO', countryName: 'BRAZIL' },\r\n { placeId: 3543, cityName: 'MACHADO', countryName: 'BRAZIL' },\r\n { placeId: 3602, cityName: 'MAFRA', countryName: 'BRAZIL' },\r\n { placeId: 2475, cityName: 'MANAUS', countryName: 'BRAZIL' },\r\n { placeId: 3306, cityName: 'MANICORE', countryName: 'BRAZIL' },\r\n { placeId: 3304, cityName: 'MANOEL RIBAS', countryName: 'BRAZIL' },\r\n { placeId: 3298, cityName: 'MARABA', countryName: 'BRAZIL' },\r\n { placeId: 3603, cityName: 'MARACAJU', countryName: 'BRAZIL' },\r\n { placeId: 3470, cityName: 'MARACAS', countryName: 'BRAZIL' },\r\n { placeId: 3570, cityName: 'MARECHAL CANDIDO ROND*', countryName: 'BRAZIL' },\r\n { placeId: 3352, cityName: 'MARICA', countryName: 'BRAZIL' },\r\n { placeId: 3303, cityName: 'MARILIA', countryName: 'BRAZIL' },\r\n { placeId: 3301, cityName: 'MARINGA', countryName: 'BRAZIL' },\r\n { placeId: 3355, cityName: 'MATAO', countryName: 'BRAZIL' },\r\n { placeId: 3940, cityName: 'MAUES', countryName: 'BRAZIL' },\r\n { placeId: 3601, cityName: 'MEDIANEIRA', countryName: 'BRAZIL' },\r\n { placeId: 3624, cityName: 'MIMOSO DO OESTE', countryName: 'BRAZIL' },\r\n { placeId: 3299, cityName: 'MINACU', countryName: 'BRAZIL' },\r\n { placeId: 3939, cityName: 'MINEIROS', countryName: 'BRAZIL' },\r\n { placeId: 3353, cityName: 'MIRASSOL', countryName: 'BRAZIL' },\r\n { placeId: 3347, cityName: 'MOCOCA', countryName: 'BRAZIL' },\r\n { placeId: 3354, cityName: 'MOGI MIRIM', countryName: 'BRAZIL' },\r\n { placeId: 3466, cityName: 'MOMBACA', countryName: 'BRAZIL' },\r\n { placeId: 3474, cityName: 'MONTALVANIA', countryName: 'BRAZIL' },\r\n { placeId: 3465, cityName: 'MONTE ALEGRE', countryName: 'BRAZIL' },\r\n { placeId: 3521, cityName: 'MONTE CARMELO', countryName: 'BRAZIL' },\r\n { placeId: 3473, cityName: 'MONTE SANTO DE MINAS', countryName: 'BRAZIL' },\r\n { placeId: 3622, cityName: 'MONTE SANTO', countryName: 'BRAZIL' },\r\n { placeId: 3605, cityName: 'MONTENEGRO', countryName: 'BRAZIL' },\r\n { placeId: 3302, cityName: 'MONTES CLAROS', countryName: 'BRAZIL' },\r\n { placeId: 3471, cityName: 'MORADA NOVA DE MINAS', countryName: 'BRAZIL' },\r\n { placeId: 3472, cityName: 'MORADA NOVA', countryName: 'BRAZIL' },\r\n { placeId: 3941, cityName: 'MORRINHOS', countryName: 'BRAZIL' },\r\n { placeId: 3480, cityName: 'MORRO DO CHAPEU', countryName: 'BRAZIL' },\r\n { placeId: 3305, cityName: 'MOSSORO', countryName: 'BRAZIL' },\r\n { placeId: 12087, cityName: 'MOSTARDAS', countryName: 'BRAZIL' },\r\n { placeId: 3949, cityName: 'MOURA', countryName: 'BRAZIL' },\r\n { placeId: 3361, cityName: 'MOZARLANDIA', countryName: 'BRAZIL' },\r\n { placeId: 3621, cityName: 'MUNDO NOVO', countryName: 'BRAZIL' },\r\n { placeId: 3477, cityName: 'NANUQUE', countryName: 'BRAZIL' },\r\n { placeId: 2484, cityName: 'NATAL', countryName: 'BRAZIL' },\r\n { placeId: 12173, cityName: 'NAVEGANTES', countryName: 'BRAZIL' },\r\n { placeId: 3425, cityName: 'NEROPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3476, cityName: 'NILO PECANHA', countryName: 'BRAZIL' },\r\n { placeId: 3610, cityName: 'NIOAQUE', countryName: 'BRAZIL' },\r\n { placeId: 3947, cityName: 'NIQUELANDIA', countryName: 'BRAZIL' },\r\n { placeId: 3608, cityName: 'NONOAI', countryName: 'BRAZIL' },\r\n { placeId: 3358, cityName: 'NOVA IGUACU', countryName: 'BRAZIL' },\r\n { placeId: 3946, cityName: 'NOVA OLINDA DO NORTE', countryName: 'BRAZIL' },\r\n { placeId: 3609, cityName: 'NOVA PRATA', countryName: 'BRAZIL' },\r\n { placeId: 3720, cityName: 'NOVA XAVANTINA', countryName: 'BRAZIL' },\r\n { placeId: 3942, cityName: 'NOVO ARIPUANA', countryName: 'BRAZIL' },\r\n { placeId: 3606, cityName: 'NOVO HAMBURGO', countryName: 'BRAZIL' },\r\n { placeId: 3356, cityName: 'NOVO HORIZONTE', countryName: 'BRAZIL' },\r\n { placeId: 3262, cityName: 'NOVO PROGRESSO', countryName: 'BRAZIL' },\r\n { placeId: 3520, cityName: 'OBIDOS', countryName: 'BRAZIL' },\r\n { placeId: 3481, cityName: 'OEIRAS', countryName: 'BRAZIL' },\r\n { placeId: 3309, cityName: 'OIAPOQUE', countryName: 'BRAZIL' },\r\n { placeId: 3359, cityName: 'OLIMPIA', countryName: 'BRAZIL' },\r\n { placeId: 3485, cityName: 'ORIXIMINA', countryName: 'BRAZIL' },\r\n { placeId: 3362, cityName: 'OURILANDIA DO NORTE', countryName: 'BRAZIL' },\r\n { placeId: 3360, cityName: 'OURINHOS', countryName: 'BRAZIL' },\r\n { placeId: 3482, cityName: 'OURO FINO', countryName: 'BRAZIL' },\r\n { placeId: 3312, cityName: 'PALMAS', countryName: 'BRAZIL' },\r\n { placeId: 3616, cityName: 'PALMEIRA DAS MISSOES', countryName: 'BRAZIL' },\r\n { placeId: 3493, cityName: 'PALMEIRAS', countryName: 'BRAZIL' },\r\n { placeId: 3618, cityName: 'PALOTINA', countryName: 'BRAZIL' },\r\n { placeId: 3486, cityName: 'PARA DE MINAS', countryName: 'BRAZIL' },\r\n { placeId: 3554, cityName: 'PARACATU', countryName: 'BRAZIL' },\r\n { placeId: 3371, cityName: 'PARAGUACU PAULISTA', countryName: 'BRAZIL' },\r\n { placeId: 3496, cityName: 'PARAGUACU', countryName: 'BRAZIL' },\r\n { placeId: 3706, cityName: 'PARAISO DO TOCANTINS', countryName: 'BRAZIL' },\r\n { placeId: 3408, cityName: 'PARAMIRIM', countryName: 'BRAZIL' },\r\n { placeId: 3955, cityName: 'PARANA', countryName: 'BRAZIL' },\r\n { placeId: 3614, cityName: 'PARANAGUA', countryName: 'BRAZIL' },\r\n { placeId: 3617, cityName: 'PARANAIBA', countryName: 'BRAZIL' },\r\n { placeId: 3615, cityName: 'PARANAVAI', countryName: 'BRAZIL' },\r\n { placeId: 12438, cityName: 'PARATI', countryName: 'BRAZIL' },\r\n { placeId: 12439, cityName: 'PARDINHO', countryName: 'BRAZIL' },\r\n { placeId: 2867, cityName: 'PARINTINS', countryName: 'BRAZIL' },\r\n { placeId: 12448, cityName: 'PARNAIBA', countryName: 'BRAZIL' },\r\n { placeId: 3311, cityName: 'PASSO FUNDO', countryName: 'BRAZIL' },\r\n { placeId: 3484, cityName: 'PASSOS', countryName: 'BRAZIL' },\r\n { placeId: 3487, cityName: 'PASTOS BONS', countryName: 'BRAZIL' },\r\n { placeId: 3613, cityName: 'PATO BRANCO', countryName: 'BRAZIL' },\r\n { placeId: 3489, cityName: 'PATOS DE MINAS', countryName: 'BRAZIL' },\r\n { placeId: 3527, cityName: 'PATOS', countryName: 'BRAZIL' },\r\n { placeId: 3551, cityName: 'PATROCINIO', countryName: 'BRAZIL' },\r\n { placeId: 3711, cityName: 'PAUINI', countryName: 'BRAZIL' },\r\n { placeId: 3464, cityName: 'PAULISTANA', countryName: 'BRAZIL' },\r\n { placeId: 3918, cityName: 'PAULO AFONSO', countryName: 'BRAZIL' },\r\n { placeId: 3499, cityName: 'PEDRA AZUL', countryName: 'BRAZIL' },\r\n { placeId: 3950, cityName: 'PEDRO AFONSO', countryName: 'BRAZIL' },\r\n { placeId: 2486, cityName: 'PELOTAS', countryName: 'BRAZIL' },\r\n { placeId: 3363, cityName: 'PENAPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3490, cityName: 'PENEDO', countryName: 'BRAZIL' },\r\n { placeId: 3495, cityName: 'PESQUEIRA BRAZIL', countryName: 'BRAZIL' },\r\n { placeId: 3313, cityName: 'PETROLINA', countryName: 'BRAZIL' },\r\n { placeId: 3492, cityName: 'PIATA', countryName: 'BRAZIL' },\r\n { placeId: 3497, cityName: 'PIAUS', countryName: 'BRAZIL' },\r\n { placeId: 3488, cityName: 'PICOS', countryName: 'BRAZIL' },\r\n { placeId: 3549, cityName: 'PILAO ARCADO', countryName: 'BRAZIL' },\r\n { placeId: 3954, cityName: 'PIMENTA BUENO', countryName: 'BRAZIL' },\r\n { placeId: 3550, cityName: 'PINHEIRO', countryName: 'BRAZIL' },\r\n { placeId: 3365, cityName: 'PIRACICABA', countryName: 'BRAZIL' },\r\n { placeId: 3585, cityName: 'PIRAI DO SUL', countryName: 'BRAZIL' },\r\n { placeId: 3505, cityName: 'PIRAPORA', countryName: 'BRAZIL' },\r\n { placeId: 3324, cityName: 'PIRASSUNUNGA', countryName: 'BRAZIL' },\r\n { placeId: 3696, cityName: 'PIRES DO RIO', countryName: 'BRAZIL' },\r\n { placeId: 3526, cityName: 'PIRITIBA, BRAZIL', countryName: 'BRAZIL' },\r\n { placeId: 3531, cityName: 'PIUMHI', countryName: 'BRAZIL' },\r\n { placeId: 3553, cityName: 'POCOES', countryName: 'BRAZIL' },\r\n { placeId: 3952, cityName: 'POCONE', countryName: 'BRAZIL' },\r\n { placeId: 3310, cityName: 'POCOS DE CALDAS', countryName: 'BRAZIL' },\r\n { placeId: 3494, cityName: 'POMPEU', countryName: 'BRAZIL' },\r\n { placeId: 3652, cityName: 'PONTA GROSSA', countryName: 'BRAZIL' },\r\n { placeId: 2487, cityName: 'PONTA PORA', countryName: 'BRAZIL' },\r\n { placeId: 3415, cityName: 'PONTE NOVA', countryName: 'BRAZIL' },\r\n { placeId: 3716, cityName: 'PORANGATU', countryName: 'BRAZIL' },\r\n { placeId: 2485, cityName: 'PORTO ALEGRE', countryName: 'BRAZIL' },\r\n { placeId: 3307, cityName: 'PORTO DE MOZ', countryName: 'BRAZIL' },\r\n { placeId: 3951, cityName: 'PORTO DOS GAUCHOS', countryName: 'BRAZIL' },\r\n { placeId: 3491, cityName: 'PORTO GRANDE', countryName: 'BRAZIL' },\r\n { placeId: 3314, cityName: 'PORTO NACIONAL', countryName: 'BRAZIL' },\r\n { placeId: 3315, cityName: 'PORTO SEGURO', countryName: 'BRAZIL' },\r\n { placeId: 2488, cityName: 'PORTO VELHO', countryName: 'BRAZIL' },\r\n { placeId: 3697, cityName: 'POSSE', countryName: 'BRAZIL' },\r\n { placeId: 3552, cityName: 'POUSO ALEGRE', countryName: 'BRAZIL' },\r\n { placeId: 12634, cityName: 'PRADO', countryName: 'BRAZIL' },\r\n { placeId: 3931, cityName: 'PRAINHA', countryName: 'BRAZIL' },\r\n { placeId: 3510, cityName: 'PRATA', countryName: 'BRAZIL' },\r\n { placeId: 3337, cityName: 'PRESIDENTE EPITACIO', countryName: 'BRAZIL' },\r\n { placeId: 3272, cityName: 'PRESIDENTE PRUDENTE', countryName: 'BRAZIL' },\r\n { placeId: 3364, cityName: 'PRESIDENTE VENCESLAU', countryName: 'BRAZIL' },\r\n { placeId: 3483, cityName: 'PROPRIA', countryName: 'BRAZIL' },\r\n { placeId: 3366, cityName: 'QUATA', countryName: 'BRAZIL' },\r\n { placeId: 3502, cityName: 'QUEIMADAS', countryName: 'BRAZIL' },\r\n { placeId: 12727, cityName: 'RANCHARIA', countryName: 'BRAZIL' },\r\n { placeId: 3625, cityName: 'REALEZA', countryName: 'BRAZIL' },\r\n { placeId: 2490, cityName: 'RECIFE', countryName: 'BRAZIL' },\r\n { placeId: 3417, cityName: 'REDENCAO', countryName: 'BRAZIL' },\r\n { placeId: 3381, cityName: 'REGIONAL DA ZONA DA MATA', countryName: 'BRAZIL' },\r\n { placeId: 3369, cityName: 'RESENDE', countryName: 'BRAZIL' },\r\n { placeId: 3512, cityName: 'RIACHAO', countryName: 'BRAZIL' },\r\n { placeId: 3317, cityName: 'RIBEIRAO PRETO', countryName: 'BRAZIL' },\r\n { placeId: 2489, cityName: 'RIO BRANCO', countryName: 'BRAZIL' },\r\n { placeId: 3367, cityName: 'RIO CLARO', countryName: 'BRAZIL' },\r\n { placeId: 2479, cityName: 'RIO DE JANEIRO', countryName: 'BRAZIL' },\r\n { placeId: 3386, cityName: 'RIO GRANDE', countryName: 'BRAZIL' },\r\n { placeId: 3508, cityName: 'RIO PARANAIBA', countryName: 'BRAZIL' },\r\n { placeId: 12799, cityName: 'RIO QUENTE', countryName: 'BRAZIL' },\r\n { placeId: 3507, cityName: 'RIO TINTO', countryName: 'BRAZIL' },\r\n { placeId: 3938, cityName: 'RIO VERDE', countryName: 'BRAZIL' },\r\n { placeId: 3700, cityName: 'RONDONOPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3254, cityName: 'ROSANA', countryName: 'BRAZIL' },\r\n { placeId: 3629, cityName: 'ROSARIO DO SUL', countryName: 'BRAZIL' },\r\n { placeId: 3416, cityName: 'RUROPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3509, cityName: 'RUSSAS', countryName: 'BRAZIL' },\r\n { placeId: 3448, cityName: 'SACRAMENTO', countryName: 'BRAZIL' },\r\n { placeId: 3513, cityName: 'SALGUEIRO', countryName: 'BRAZIL' },\r\n { placeId: 3517, cityName: 'SALINAS', countryName: 'BRAZIL' },\r\n { placeId: 3607, cityName: 'SALTO DO JACUI', countryName: 'BRAZIL' },\r\n { placeId: 2493, cityName: 'SALVADOR', countryName: 'BRAZIL' },\r\n { placeId: 3631, cityName: 'SANTA CRUZ DO SUL', countryName: 'BRAZIL' },\r\n { placeId: 3679, cityName: 'SANTA HELENA DE GOIAS', countryName: 'BRAZIL' },\r\n { placeId: 3707, cityName: 'SANTA ISABEL DO RIO NEGRO', countryName: 'BRAZIL' },\r\n { placeId: 3536, cityName: 'SANTA MARIA DA VITORIA', countryName: 'BRAZIL' },\r\n { placeId: 3318, cityName: 'SANTA MARIA', countryName: 'BRAZIL' },\r\n { placeId: 3514, cityName: 'SANTA RITA DO SAPUCAI', countryName: 'BRAZIL' },\r\n { placeId: 3650, cityName: 'SANTA ROSA', countryName: 'BRAZIL' },\r\n { placeId: 3704, cityName: 'SANTA TEREZINHA', countryName: 'BRAZIL' },\r\n { placeId: 3451, cityName: 'SANTANA DO ARAGUAIA', countryName: 'BRAZIL' },\r\n { placeId: 2492, cityName: 'SANTAREM', countryName: 'BRAZIL' },\r\n { placeId: 3635, cityName: 'SANTIAGO', countryName: 'BRAZIL' },\r\n { placeId: 3308, cityName: 'SANTO ANGELO', countryName: 'BRAZIL' },\r\n { placeId: 3392, cityName: 'SANTO ANTONIO DO AMPARO', countryName: 'BRAZIL' },\r\n { placeId: 3682, cityName: 'SANTO ANTONIO DO ICA', countryName: 'BRAZIL' },\r\n { placeId: 3630, cityName: 'SAO BORJA', countryName: 'BRAZIL' },\r\n { placeId: 3370, cityName: 'SAO CARLOS', countryName: 'BRAZIL' },\r\n { placeId: 3418, cityName: 'SAO DOMINGOS DO MARANHAO', countryName: 'BRAZIL' },\r\n { placeId: 3674, cityName: 'SAO FELIX DO ARAGUAIA', countryName: 'BRAZIL' },\r\n { placeId: 3433, cityName: 'SAO FELIX DO XINGU', countryName: 'BRAZIL' },\r\n { placeId: 3695, cityName: 'SAO GABRIEL DA CACHOEIRA', countryName: 'BRAZIL' },\r\n { placeId: 3633, cityName: 'SAO GABRIEL', countryName: 'BRAZIL' },\r\n { placeId: 3446, cityName: 'SAO JOAO DEL REI', countryName: 'BRAZIL' },\r\n { placeId: 3634, cityName: 'SAO JOAQUIM', countryName: 'BRAZIL' },\r\n { placeId: 3346, cityName: 'SAO JOAQUIN DA BARRA', countryName: 'BRAZIL' },\r\n { placeId: 3319, cityName: 'SAO JOSE DO RIO PRETO', countryName: 'BRAZIL' },\r\n { placeId: 2491, cityName: 'SAO JOSE DOS CAMPOS', countryName: 'BRAZIL' },\r\n { placeId: 3628, cityName: 'SAO LOURENCO DO SUL', countryName: 'BRAZIL' },\r\n { placeId: 3463, cityName: 'SAO LOURENCO', countryName: 'BRAZIL' },\r\n { placeId: 3598, cityName: 'SAO LUIS GONZAGA', countryName: 'BRAZIL' },\r\n { placeId: 12959, cityName: 'SAO LUIS', countryName: 'BRAZIL' },\r\n { placeId: 3357, cityName: 'SAO MANUEL', countryName: 'BRAZIL' },\r\n { placeId: 12960, cityName: 'SAO MATEUS', countryName: 'BRAZIL' },\r\n { placeId: 3709, cityName: 'SAO MIGUEL DO ARAGUAIA, BRAZIL', countryName: 'BRAZIL' },\r\n { placeId: 3604, cityName: 'SAO MIGUEL DO IGUACU', countryName: 'BRAZIL' },\r\n { placeId: 3611, cityName: 'SAO MIGUEL DO OESTE', countryName: 'BRAZIL' },\r\n { placeId: 12961, cityName: 'SAO PAULO DE OLIVENCA', countryName: 'BRAZIL' },\r\n { placeId: 2480, cityName: 'SAO PAULO', countryName: 'BRAZIL' },\r\n { placeId: 3274, cityName: 'SAO PEDRO DA ALDEIA', countryName: 'BRAZIL' },\r\n { placeId: 3515, cityName: 'SAO RAIMUNDO NONATO', countryName: 'BRAZIL' },\r\n { placeId: 3498, cityName: 'SAO SEBASTIAO DO PARAISO', countryName: 'BRAZIL' },\r\n { placeId: 3575, cityName: 'SAO SEPE', countryName: 'BRAZIL' },\r\n { placeId: 3648, cityName: 'SARANDI', countryName: 'BRAZIL' },\r\n { placeId: 3397, cityName: 'SENHOR DO BONFIM', countryName: 'BRAZIL' },\r\n { placeId: 3925, cityName: 'SERRA TALHADA', countryName: 'BRAZIL' },\r\n { placeId: 13016, cityName: 'SERRANOPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3516, cityName: 'SERRO', countryName: 'BRAZIL' },\r\n { placeId: 3703, cityName: 'SERTANIA', countryName: 'BRAZIL' },\r\n { placeId: 3636, cityName: 'SERTANOPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3702, cityName: 'SINOP', countryName: 'BRAZIL' },\r\n { placeId: 3619, cityName: 'SIQUEIRA CAMPOS', countryName: 'BRAZIL' },\r\n { placeId: 3479, cityName: 'SOBRAL', countryName: 'BRAZIL' },\r\n { placeId: 3632, cityName: 'SOLEDADE', countryName: 'BRAZIL' },\r\n { placeId: 3334, cityName: 'SOROCABA', countryName: 'BRAZIL' },\r\n { placeId: 13134, cityName: 'SOURE', countryName: 'BRAZIL' },\r\n { placeId: 3518, cityName: 'SOUTO SOARES, BRAZIL', countryName: 'BRAZIL' },\r\n { placeId: 3500, cityName: 'SOUZA', countryName: 'BRAZIL' },\r\n { placeId: 2494, cityName: 'TABATINGA', countryName: 'BRAZIL' },\r\n { placeId: 3708, cityName: 'TAGUATINGA', countryName: 'BRAZIL' },\r\n { placeId: 3522, cityName: 'TAMBORIL', countryName: 'BRAZIL' },\r\n { placeId: 3620, cityName: 'TANQUE NOVO', countryName: 'BRAZIL' },\r\n { placeId: 3915, cityName: 'TARAUACA', countryName: 'BRAZIL' },\r\n { placeId: 3372, cityName: 'TATUI', countryName: 'BRAZIL' },\r\n { placeId: 3911, cityName: 'TAUBATE', countryName: 'BRAZIL' },\r\n { placeId: 3914, cityName: 'TEFE', countryName: 'BRAZIL' },\r\n { placeId: 3519, cityName: 'TEIXEIRA DE FREITAS', countryName: 'BRAZIL' },\r\n { placeId: 3916, cityName: 'TELEMACO BORBA', countryName: 'BRAZIL' },\r\n { placeId: 3524, cityName: 'TEOFILO OTONI', countryName: 'BRAZIL' },\r\n { placeId: 3913, cityName: 'TERESINA', countryName: 'BRAZIL' },\r\n { placeId: 13397, cityName: 'TERRAVISTA', countryName: 'BRAZIL' },\r\n { placeId: 3701, cityName: 'TESOURO', countryName: 'BRAZIL' },\r\n { placeId: 13437, cityName: 'TIMON', countryName: 'BRAZIL' },\r\n { placeId: 3705, cityName: 'TOCANTINIA', countryName: 'BRAZIL' },\r\n { placeId: 3912, cityName: 'TOLEDO', countryName: 'BRAZIL' },\r\n { placeId: 13466, cityName: 'TORRES', countryName: 'BRAZIL' },\r\n { placeId: 3637, cityName: 'TRES BARRAS', countryName: 'BRAZIL' },\r\n { placeId: 3538, cityName: 'TRES CORACOES', countryName: 'BRAZIL' },\r\n { placeId: 3638, cityName: 'TRES LAGOAS', countryName: 'BRAZIL' },\r\n { placeId: 3395, cityName: 'TRES MARIAS', countryName: 'BRAZIL' },\r\n { placeId: 3639, cityName: 'TRES PASSOS', countryName: 'BRAZIL' },\r\n { placeId: 3917, cityName: 'TUCURUI', countryName: 'BRAZIL' },\r\n { placeId: 3373, cityName: 'TUPA', countryName: 'BRAZIL' },\r\n { placeId: 3523, cityName: 'TURMALINA', countryName: 'BRAZIL' },\r\n { placeId: 3535, cityName: 'UAUA', countryName: 'BRAZIL' },\r\n { placeId: 3528, cityName: 'UBA', countryName: 'BRAZIL' },\r\n { placeId: 3374, cityName: 'UBATUBA', countryName: 'BRAZIL' },\r\n { placeId: 3321, cityName: 'UBERABA', countryName: 'BRAZIL' },\r\n { placeId: 3320, cityName: 'UBERLANDIA', countryName: 'BRAZIL' },\r\n { placeId: 3712, cityName: 'UIRAPURU', countryName: 'BRAZIL' },\r\n { placeId: 3640, cityName: 'UMUARAMA', countryName: 'BRAZIL' },\r\n { placeId: 13540, cityName: 'UNA', countryName: 'BRAZIL' },\r\n { placeId: 3533, cityName: 'UNAI', countryName: 'BRAZIL' },\r\n { placeId: 3641, cityName: 'UNIAO DA VITORIA', countryName: 'BRAZIL' },\r\n { placeId: 3530, cityName: 'URBANO SANTOS', countryName: 'BRAZIL' },\r\n { placeId: 3718, cityName: 'URUACU', countryName: 'BRAZIL' },\r\n { placeId: 3717, cityName: 'URUCARA', countryName: 'BRAZIL' },\r\n { placeId: 2495, cityName: 'URUGUAIANA', countryName: 'BRAZIL' },\r\n { placeId: 3534, cityName: 'UTINGA, BRAZIL', countryName: 'BRAZIL' },\r\n { placeId: 3642, cityName: 'VACARIA', countryName: 'BRAZIL' },\r\n { placeId: 13571, cityName: 'VALENCA', countryName: 'BRAZIL' },\r\n { placeId: 3322, cityName: 'VARGINHA', countryName: 'BRAZIL' },\r\n { placeId: 3541, cityName: 'VARZEA DA PALMA', countryName: 'BRAZIL' },\r\n { placeId: 3645, cityName: 'VENANCIO AIRES', countryName: 'BRAZIL' },\r\n { placeId: 3644, cityName: 'VERANOPOLIS', countryName: 'BRAZIL' },\r\n { placeId: 3643, cityName: 'VIDEIRA', countryName: 'BRAZIL' },\r\n { placeId: 3659, cityName: 'VILA BELA DA S S TRINDADE BRA*', countryName: 'BRAZIL' },\r\n { placeId: 3714, cityName: 'VILA BELA', countryName: 'BRAZIL' },\r\n { placeId: 3715, cityName: 'VILA RICA', countryName: 'BRAZIL' },\r\n { placeId: 3323, cityName: 'VILHENA', countryName: 'BRAZIL' },\r\n { placeId: 3539, cityName: 'VIRGEM DA LAPA', countryName: 'BRAZIL' },\r\n { placeId: 3316, cityName: 'VITORIA DA CONQUISTA', countryName: 'BRAZIL' },\r\n { placeId: 13620, cityName: 'VITORIA', countryName: 'BRAZIL' },\r\n { placeId: 3376, cityName: 'VOTUPORANGA', countryName: 'BRAZIL' },\r\n { placeId: 3719, cityName: 'XAPURI', countryName: 'BRAZIL' },\r\n { placeId: 3545, cityName: 'XIQUE-XIQUE', countryName: 'BRAZIL' },\r\n { placeId: 4139, cityName: 'ANEGADA', countryName: 'BRITISH VIRGIN ISLANDS' },\r\n { placeId: 7732, cityName: 'ROADTOWN', countryName: 'BRITISH VIRGIN ISLANDS' },\r\n { placeId: 8377, cityName: 'SPANISHTOWN', countryName: 'BRITISH VIRGIN ISLANDS' },\r\n { placeId: 4138, cityName: 'ANDUKI/SERIA', countryName: 'BRUNEI' },\r\n { placeId: 2739, cityName: 'BANDAR SERI BEGAWAN', countryName: 'BRUNEI' },\r\n { placeId: 1393, cityName: 'BURGAS', countryName: 'BULGARIA' },\r\n { placeId: 1394, cityName: 'GORNA ORYAHOVITSA', countryName: 'BULGARIA' },\r\n { placeId: 11671, cityName: 'LESNOVO', countryName: 'BULGARIA' },\r\n { placeId: 1395, cityName: 'PLOVDIV', countryName: 'BULGARIA' },\r\n { placeId: 12648, cityName: 'PRIMORSKO', countryName: 'BULGARIA' },\r\n { placeId: 1396, cityName: 'SOFIA', countryName: 'BULGARIA' },\r\n { placeId: 1397, cityName: 'VARNA', countryName: 'BULGARIA' },\r\n { placeId: 4120, cityName: 'AMILCAR CABRAL DE GAOUA', countryName: 'BURKINA FASO' },\r\n { placeId: 4214, cityName: 'ARIBINDA', countryName: 'BURKINA FASO' },\r\n { placeId: 4218, cityName: 'ARLY', countryName: 'BURKINA FASO' },\r\n { placeId: 4329, cityName: 'BANFORA', countryName: 'BURKINA FASO' },\r\n { placeId: 142, cityName: 'BOBO-DIOULASSO', countryName: 'BURKINA FASO' },\r\n { placeId: 4518, cityName: 'BOGANDE', countryName: 'BURKINA FASO' },\r\n { placeId: 5091, cityName: 'DEDOUGOU', countryName: 'BURKINA FASO' },\r\n { placeId: 5168, cityName: 'DIEBOUGOU', countryName: 'BURKINA FASO' },\r\n { placeId: 5185, cityName: 'DJIBO', countryName: 'BURKINA FASO' },\r\n { placeId: 5200, cityName: 'DORI', countryName: 'BURKINA FASO' },\r\n { placeId: 5349, cityName: 'FADA N\\'GOURMA', countryName: 'BURKINA FASO' },\r\n { placeId: 5143, cityName: 'GOROM-GOROM', countryName: 'BURKINA FASO' },\r\n { placeId: 5889, cityName: 'HOUNDE', countryName: 'BURKINA FASO' },\r\n { placeId: 6327, cityName: 'KOUDOUGOU', countryName: 'BURKINA FASO' },\r\n { placeId: 6632, cityName: 'LOUMANA', countryName: 'BURKINA FASO' },\r\n { placeId: 7318, cityName: 'NOUNA', countryName: 'BURKINA FASO' },\r\n { placeId: 7423, cityName: 'ORODARA', countryName: 'BURKINA FASO' },\r\n { placeId: 141, cityName: 'OUAGADOUGOU', countryName: 'BURKINA FASO' },\r\n { placeId: 7301, cityName: 'OUAHIGOUYA', countryName: 'BURKINA FASO' },\r\n { placeId: 7541, cityName: 'PAMA', countryName: 'BURKINA FASO' },\r\n { placeId: 7999, cityName: 'SAFANE', countryName: 'BURKINA FASO' },\r\n { placeId: 7525, cityName: 'SEBBA', countryName: 'BURKINA FASO' },\r\n { placeId: 8619, cityName: 'TENKODOGO', countryName: 'BURKINA FASO' },\r\n { placeId: 8688, cityName: 'TOUGAN', countryName: 'BURKINA FASO' },\r\n { placeId: 1203, cityName: 'BUJUMBURA', countryName: 'BURUNDI' },\r\n { placeId: 5570, cityName: 'GITEGA', countryName: 'BURUNDI' },\r\n { placeId: 6261, cityName: 'KIRUNDO', countryName: 'BURUNDI' },\r\n { placeId: 9564, cityName: 'AMBERGRIS CAY', countryName: 'CAICOS IS' },\r\n { placeId: 6966, cityName: 'MIDDLE CAICOS', countryName: 'CAICOS IS' },\r\n { placeId: 7282, cityName: 'NORTH CAICOS I.', countryName: 'CAICOS IS' },\r\n { placeId: 7651, cityName: 'PINE CAY I.', countryName: 'CAICOS IS' },\r\n { placeId: 7772, cityName: 'PROVIDENCIALES I.', countryName: 'CAICOS IS' },\r\n { placeId: 8326, cityName: 'SOUTH CAICOS I.', countryName: 'CAICOS IS' },\r\n { placeId: 4176, cityName: 'BATTAMBANG', countryName: 'CAMBODIA' },\r\n { placeId: 6295, cityName: 'KOH KONG', countryName: 'CAMBODIA' },\r\n { placeId: 6333, cityName: 'KRATIE', countryName: 'CAMBODIA' },\r\n { placeId: 7023, cityName: 'MONDULKIRI', countryName: 'CAMBODIA' },\r\n { placeId: 2838, cityName: 'PHNOM PENH', countryName: 'CAMBODIA' },\r\n { placeId: 7862, cityName: 'RATANAKIRI', countryName: 'CAMBODIA' },\r\n { placeId: 2837, cityName: 'SIEM REAP', countryName: 'CAMBODIA' },\r\n { placeId: 8255, cityName: 'SIHANOUK VILLE', countryName: 'CAMBODIA' },\r\n { placeId: 8498, cityName: 'STUNG TRENG', countryName: 'CAMBODIA' },\r\n { placeId: 9145, cityName: 'ABONG-M\\'BANG', countryName: 'CAMEROON' },\r\n { placeId: 4289, cityName: 'BAFIA', countryName: 'CAMEROON' },\r\n { placeId: 4291, cityName: 'BAFOUSSAM', countryName: 'CAMEROON' },\r\n { placeId: 4314, cityName: 'BALI', countryName: 'CAMEROON' },\r\n { placeId: 4320, cityName: 'BAMENDA', countryName: 'CAMEROON' },\r\n { placeId: 4337, cityName: 'BANYO', countryName: 'CAMEROON' },\r\n { placeId: 4378, cityName: 'BATOURI', countryName: 'CAMEROON' },\r\n { placeId: 4444, cityName: 'BERTOUA', countryName: 'CAMEROON' },\r\n { placeId: 4447, cityName: 'BETARE-OYA', countryName: 'CAMEROON' },\r\n { placeId: 1131, cityName: 'DOUALA', countryName: 'CAMEROON' },\r\n { placeId: 5212, cityName: 'DSCHANG', countryName: 'CAMEROON' },\r\n { placeId: 5260, cityName: 'EBOLOWA', countryName: 'CAMEROON' },\r\n { placeId: 5030, cityName: 'ESEKA', countryName: 'CAMEROON' },\r\n { placeId: 5441, cityName: 'FOUMBAN', countryName: 'CAMEROON' },\r\n { placeId: 5535, cityName: 'GAROUA', countryName: 'CAMEROON' },\r\n { placeId: 6334, cityName: 'KRIBI', countryName: 'CAMEROON' },\r\n { placeId: 6743, cityName: 'MAMFE', countryName: 'CAMEROON' },\r\n { placeId: 6829, cityName: 'MAROUA', countryName: 'CAMEROON' },\r\n { placeId: 7163, cityName: 'N\\'GAOUNDERE', countryName: 'CAMEROON' },\r\n { placeId: 7166, cityName: 'N\\'KONGSAMBA', countryName: 'CAMEROON' },\r\n { placeId: 8655, cityName: 'TIBATI', countryName: 'CAMEROON' },\r\n { placeId: 8662, cityName: 'TIKO', countryName: 'CAMEROON' },\r\n { placeId: 1132, cityName: 'YAOUNDE', countryName: 'CAMEROON' },\r\n { placeId: 9075, cityName: 'YAOUNDE/VILLE', countryName: 'CAMEROON' },\r\n { placeId: 9134, cityName: '108 MILE RANCH', countryName: 'CANADA' },\r\n {\r\n placeId: 118, cityName: 'ABBOTSFORD', state: 'BC', countryName: 'CANADA',\r\n },\r\n { placeId: 4013, cityName: 'ACME', countryName: 'CANADA' },\r\n { placeId: 4029, cityName: 'AIRDRIE', countryName: 'CANADA' },\r\n { placeId: 4037, cityName: 'AKLAVIK', countryName: 'CANADA' },\r\n { placeId: 9517, cityName: 'AKULIVIK', countryName: 'CANADA' },\r\n { placeId: 4066, cityName: 'ALERT BAY', countryName: 'CANADA' },\r\n { placeId: 2918, cityName: 'ALERT', countryName: 'CANADA' },\r\n { placeId: 4071, cityName: 'ALEXANDRIA', countryName: 'CANADA' },\r\n { placeId: 4074, cityName: 'ALEXIS LAKE', countryName: 'CANADA' },\r\n { placeId: 4084, cityName: 'ALLISTON', countryName: 'CANADA' },\r\n { placeId: 4086, cityName: 'ALMA', countryName: 'CANADA' },\r\n { placeId: 4095, cityName: 'ALTONA', countryName: 'CANADA' },\r\n { placeId: 4121, cityName: 'AMOS', countryName: 'CANADA' },\r\n { placeId: 4125, cityName: 'ANAHIM LAKE', countryName: 'CANADA' },\r\n { placeId: 4134, cityName: 'ANDREW', countryName: 'CANADA' },\r\n { placeId: 9596, cityName: 'APPLE RIVER', countryName: 'CANADA' },\r\n { placeId: 4204, cityName: 'ARBORFIELD', countryName: 'CANADA' },\r\n { placeId: 4205, cityName: 'ARBORG', countryName: 'CANADA' },\r\n { placeId: 4208, cityName: 'ARCOLA', countryName: 'CANADA' },\r\n { placeId: 9608, cityName: 'ARCTIC BAY', countryName: 'CANADA' },\r\n { placeId: 4221, cityName: 'ARMSTRONG', countryName: 'CANADA' },\r\n { placeId: 9616, cityName: 'ARNES', countryName: 'CANADA' },\r\n { placeId: 4222, cityName: 'ARNPRIOR', countryName: 'CANADA' },\r\n { placeId: 4223, cityName: 'ARNSTEIN', countryName: 'CANADA' },\r\n { placeId: 4227, cityName: 'ARTHUR', countryName: 'CANADA' },\r\n { placeId: 9624, cityName: 'ARVIAT', countryName: 'CANADA' },\r\n { placeId: 4238, cityName: 'ASHERN', countryName: 'CANADA' },\r\n { placeId: 4248, cityName: 'ASSINIBOIA', countryName: 'CANADA' },\r\n { placeId: 4257, cityName: 'ATHABASCA', countryName: 'CANADA' },\r\n { placeId: 4263, cityName: 'ATIKOKAN', countryName: 'CANADA' },\r\n { placeId: 4267, cityName: 'ATLIN', countryName: 'CANADA' },\r\n { placeId: 4272, cityName: 'ATTAWAPISKAT', countryName: 'CANADA' },\r\n { placeId: 4274, cityName: 'ATWOOD', countryName: 'CANADA' },\r\n { placeId: 3972, cityName: 'AUPALUK', countryName: 'CANADA' },\r\n { placeId: 9682, cityName: 'AXE LAKE', countryName: 'CANADA' },\r\n { placeId: 4288, cityName: 'BADDECK', countryName: 'CANADA' },\r\n {\r\n placeId: 28, cityName: 'BAGOTVILLE', state: 'QC', countryName: 'CANADA',\r\n },\r\n { placeId: 9692, cityName: 'BAIE-COMEAU', countryName: 'CANADA' },\r\n { placeId: 4302, cityName: 'BAIE-COMEAU', countryName: 'CANADA' },\r\n { placeId: 29, cityName: 'BAKER LAKE', countryName: 'CANADA' },\r\n { placeId: 4312, cityName: 'BALDWIN', countryName: 'CANADA' },\r\n { placeId: 4323, cityName: 'BANCROFT', countryName: 'CANADA' },\r\n { placeId: 4328, cityName: 'BANFF', countryName: 'CANADA' },\r\n { placeId: 4338, cityName: 'BAR RIVER', countryName: 'CANADA' },\r\n { placeId: 4350, cityName: 'BARKERVILLE', countryName: 'CANADA' },\r\n { placeId: 4356, cityName: 'BARRHEAD', countryName: 'CANADA' },\r\n { placeId: 9730, cityName: 'BARRIE-ORILLIA', countryName: 'CANADA' },\r\n { placeId: 4357, cityName: 'BARRIE-ORILLIA', countryName: 'CANADA' },\r\n { placeId: 4358, cityName: 'BARRY\\'S BAY', countryName: 'CANADA' },\r\n { placeId: 4366, cityName: 'BASHAW', countryName: 'CANADA' },\r\n { placeId: 4368, cityName: 'BASSANO', countryName: 'CANADA' },\r\n { placeId: 138, cityName: 'BATHURST', countryName: 'CANADA' },\r\n { placeId: 4380, cityName: 'BAWLF', countryName: 'CANADA' },\r\n { placeId: 2900, cityName: 'BEARSKIN LAKE', countryName: 'CANADA' },\r\n { placeId: 4387, cityName: 'BEAUVAL', countryName: 'CANADA' },\r\n { placeId: 4389, cityName: 'BEAVER CREEK', countryName: 'CANADA' },\r\n { placeId: 4391, cityName: 'BEAVERLEY', countryName: 'CANADA' },\r\n { placeId: 4392, cityName: 'BEAVERLODGE', countryName: 'CANADA' },\r\n { placeId: 4398, cityName: 'BEECHY', countryName: 'CANADA' },\r\n { placeId: 4403, cityName: 'BEISEKER', countryName: 'CANADA' },\r\n { placeId: 9789, cityName: 'BELL ISLAND', countryName: 'CANADA' },\r\n { placeId: 26, cityName: 'BELLA BELLA', countryName: 'CANADA' },\r\n { placeId: 4409, cityName: 'BELLA COOLA', countryName: 'CANADA' },\r\n { placeId: 4413, cityName: 'BELLEVILLE', countryName: 'CANADA' },\r\n { placeId: 4439, cityName: 'BERENS RIVER', countryName: 'CANADA' },\r\n { placeId: 4466, cityName: 'BIG SAND LAKE', countryName: 'CANADA' },\r\n { placeId: 95, cityName: 'BIG TROUT LAKE', countryName: 'CANADA' },\r\n { placeId: 4469, cityName: 'BIGGAR', countryName: 'CANADA' },\r\n { placeId: 4482, cityName: 'BIRCH HILLS', countryName: 'CANADA' },\r\n { placeId: 4483, cityName: 'BIRCH MOUNTAIN', countryName: 'CANADA' },\r\n { placeId: 4486, cityName: 'BIRD RIVER', countryName: 'CANADA' },\r\n { placeId: 4496, cityName: 'BITUMOUNT', countryName: 'CANADA' },\r\n { placeId: 4498, cityName: 'BJORGUM FARM', countryName: 'CANADA' },\r\n { placeId: 4499, cityName: 'BLACK DIAMOND', countryName: 'CANADA' },\r\n { placeId: 9853, cityName: 'BLACK TICKLE', countryName: 'CANADA' },\r\n { placeId: 4501, cityName: 'BLACKIE', countryName: 'CANADA' },\r\n { placeId: 9865, cityName: 'BLEIBLER RANCH', countryName: 'CANADA' },\r\n { placeId: 4508, cityName: 'BLOODVEIN RIVER', countryName: 'CANADA' },\r\n { placeId: 4510, cityName: 'BLUE RIVER', countryName: 'CANADA' },\r\n { placeId: 4513, cityName: 'BOB QUINN LAKE', countryName: 'CANADA' },\r\n { placeId: 4521, cityName: 'BOISSEVAIN', countryName: 'CANADA' },\r\n { placeId: 4534, cityName: 'BONAVENTURE', countryName: 'CANADA' },\r\n { placeId: 4540, cityName: 'BONNYVILLE', countryName: 'CANADA' },\r\n { placeId: 4558, cityName: 'BOSTON BROOK', countryName: 'CANADA' },\r\n { placeId: 9901, cityName: 'BOUNDARY BAY', countryName: 'CANADA' },\r\n { placeId: 4575, cityName: 'BOW ISLAND', countryName: 'CANADA' },\r\n { placeId: 4576, cityName: 'BOYLE', countryName: 'CANADA' },\r\n { placeId: 4580, cityName: 'BRADFORD', countryName: 'CANADA' },\r\n { placeId: 4583, cityName: 'BRAEBURN', countryName: 'CANADA' },\r\n { placeId: 4586, cityName: 'BRAMPTON', countryName: 'CANADA' },\r\n { placeId: 31, cityName: 'BRANDON', countryName: 'CANADA' },\r\n { placeId: 4588, cityName: 'BRANT', countryName: 'CANADA' },\r\n { placeId: 4589, cityName: 'BRANTFORD', countryName: 'CANADA' },\r\n { placeId: 4598, cityName: 'BRIERCREST SOUTH', countryName: 'CANADA' },\r\n { placeId: 4600, cityName: 'BRISTOL', countryName: 'CANADA' },\r\n { placeId: 4603, cityName: 'BROCHET', countryName: 'CANADA' },\r\n { placeId: 9943, cityName: 'BROCKVILLE', countryName: 'CANADA' },\r\n { placeId: 4604, cityName: 'BROCKWAY', countryName: 'CANADA' },\r\n { placeId: 4606, cityName: 'BROMONT', countryName: 'CANADA' },\r\n { placeId: 4609, cityName: 'BROOKS', countryName: 'CANADA' },\r\n { placeId: 4613, cityName: 'BRUSSELS', countryName: 'CANADA' },\r\n { placeId: 106, cityName: 'BUFFALO NARROWS', countryName: 'CANADA' },\r\n { placeId: 4643, cityName: 'BURLINGTON', countryName: 'CANADA' },\r\n { placeId: 4649, cityName: 'BURNS LAKE', countryName: 'CANADA' },\r\n { placeId: 35, cityName: 'BURWASH', countryName: 'CANADA' },\r\n { placeId: 10002, cityName: 'CABLE HEAD AIRPARK', countryName: 'CANADA' },\r\n { placeId: 4667, cityName: 'CABRI', countryName: 'CANADA' },\r\n { placeId: 4668, cityName: 'CACHE CREEK', countryName: 'CANADA' },\r\n { placeId: 4670, cityName: 'CADOTTE', countryName: 'CANADA' },\r\n {\r\n placeId: 121, cityName: 'CALGARY', state: 'AB', countryName: 'CANADA',\r\n },\r\n { placeId: 4687, cityName: 'CALLING LAKE', countryName: 'CANADA' },\r\n { placeId: 10028, cityName: 'CAMBRIDGE BAY', countryName: 'CANADA' },\r\n { placeId: 4695, cityName: 'CAMBRIDGE', countryName: 'CANADA' },\r\n { placeId: 30, cityName: 'CAMPBELL RIVER', countryName: 'CANADA' },\r\n { placeId: 4708, cityName: 'CAMROSE', countryName: 'CANADA' },\r\n { placeId: 4709, cityName: 'CAMSELL PORTAGE', countryName: 'CANADA' },\r\n { placeId: 4715, cityName: 'CANDLE LAKE AIRPARK', countryName: 'CANADA' },\r\n { placeId: 10052, cityName: 'CANIAPISCAU', countryName: 'CANADA' },\r\n { placeId: 4716, cityName: 'CANORA', countryName: 'CANADA' },\r\n { placeId: 10059, cityName: 'CAPE DORSET', countryName: 'CANADA' },\r\n { placeId: 4729, cityName: 'CARCROSS', countryName: 'CANADA' },\r\n { placeId: 4730, cityName: 'CARDSTON', countryName: 'CANADA' },\r\n { placeId: 4732, cityName: 'CAREY LAKE', countryName: 'CANADA' },\r\n { placeId: 4734, cityName: 'CARLETON PLACE', countryName: 'CANADA' },\r\n { placeId: 4736, cityName: 'CARLYLE', countryName: 'CANADA' },\r\n { placeId: 4737, cityName: 'CARMACKS', countryName: 'CANADA' },\r\n { placeId: 4738, cityName: 'CARMAN', countryName: 'CANADA' },\r\n { placeId: 4746, cityName: 'CARP', countryName: 'CANADA' },\r\n { placeId: 4194, cityName: 'CARSTAIRS', countryName: 'CANADA' },\r\n { placeId: 32, cityName: 'CARTWRIGHT', countryName: 'CANADA' },\r\n { placeId: 4754, cityName: 'CASTLEGAR', countryName: 'CANADA' },\r\n { placeId: 4755, cityName: 'CASTOR', countryName: 'CANADA' },\r\n { placeId: 2909, cityName: 'CAT LAKE', countryName: 'CANADA' },\r\n { placeId: 4763, cityName: 'CAUSAPSCAL', countryName: 'CANADA' },\r\n {\r\n placeId: 4765, cityName: 'CAYLEY', state: 'AB', countryName: 'CANADA',\r\n },\r\n { placeId: 4775, cityName: 'CENTRAL BUTTE', countryName: 'CANADA' },\r\n { placeId: 4777, cityName: 'CENTRALIA', countryName: 'CANADA' },\r\n { placeId: 4786, cityName: 'CHAPLEAU', countryName: 'CANADA' },\r\n { placeId: 4787, cityName: 'CHAPMAN LAKE', countryName: 'CANADA' },\r\n {\r\n placeId: 2919, cityName: 'CHARLEVOIX', state: 'QC', countryName: 'CANADA',\r\n },\r\n { placeId: 4792, cityName: 'CHARLO', countryName: 'CANADA' },\r\n { placeId: 2882, cityName: 'CHARLOTTETOWN', countryName: 'CANADA' },\r\n { placeId: 10152, cityName: 'CHARLOTTETOWN', countryName: 'CANADA' },\r\n { placeId: 4795, cityName: 'CHATHAM', countryName: 'CANADA' },\r\n { placeId: 4799, cityName: 'CHEADLE', countryName: 'CANADA' },\r\n { placeId: 10174, cityName: 'CHESTERFIELD INLET', countryName: 'CANADA' },\r\n { placeId: 4809, cityName: 'CHESTERMERE', countryName: 'CANADA' },\r\n { placeId: 2912, cityName: 'CHETWYND', countryName: 'CANADA' },\r\n { placeId: 10179, cityName: 'CHEVERY', countryName: 'CANADA' },\r\n { placeId: 4813, cityName: 'CHIBOUGAMAU', countryName: 'CANADA' },\r\n { placeId: 4824, cityName: 'CHILKO LAKE', countryName: 'CANADA' },\r\n { placeId: 4828, cityName: 'CHILLIWACK', countryName: 'CANADA' },\r\n { placeId: 4835, cityName: 'CHINCHAGA', countryName: 'CANADA' },\r\n { placeId: 4841, cityName: 'CHIPEWYAN LAKE', countryName: 'CANADA' },\r\n { placeId: 4842, cityName: 'CHIPMAN', countryName: 'CANADA' },\r\n { placeId: 4843, cityName: 'CHISASIBI', countryName: 'CANADA' },\r\n { placeId: 4857, cityName: 'CHRISTINA BASIN', countryName: 'CANADA' },\r\n { placeId: 10216, cityName: 'CHRISTINA LAKE', countryName: 'CANADA' },\r\n { placeId: 2897, cityName: 'CHURCHBRIDGE', countryName: 'CANADA' },\r\n { placeId: 139, cityName: 'CHURCHILL FALLS', countryName: 'CANADA' },\r\n { placeId: 128, cityName: 'CHURCHILL', countryName: 'CANADA' },\r\n { placeId: 4863, cityName: 'CIGAR LAKE', countryName: 'CANADA' },\r\n { placeId: 10240, cityName: 'CLARENVILLE', countryName: 'CANADA' },\r\n { placeId: 4875, cityName: 'CLARESHOLM', countryName: 'CANADA' },\r\n { placeId: 4891, cityName: 'CLEARWATER RIVER', countryName: 'CANADA' },\r\n { placeId: 4889, cityName: 'CLEARWATER', countryName: 'CANADA' },\r\n { placeId: 4893, cityName: 'CLEMENTSPORT MAPLECOVE', countryName: 'CANADA' },\r\n { placeId: 4906, cityName: 'CLUFF LAKE', countryName: 'CANADA' },\r\n { placeId: 10280, cityName: 'CLYDE RIVER', countryName: 'CANADA' },\r\n { placeId: 4908, cityName: 'COBDEN ONTARIO', countryName: 'CANADA' },\r\n { placeId: 4911, cityName: 'COCHRANE', countryName: 'CANADA' },\r\n { placeId: 68, cityName: 'COLD LAKE', countryName: 'CANADA' },\r\n { placeId: 4925, cityName: 'COLLINGWOOD', countryName: 'CANADA' },\r\n { placeId: 4926, cityName: 'COLLINS BAY', countryName: 'CANADA' },\r\n { placeId: 4004, cityName: 'COLVILLE LAKE', countryName: 'CANADA' },\r\n { placeId: 10318, cityName: 'COMOX', countryName: 'CANADA' },\r\n { placeId: 4942, cityName: 'CONKLIN', countryName: 'CANADA' },\r\n { placeId: 4945, cityName: 'CONSORT', countryName: 'CANADA' },\r\n { placeId: 4953, cityName: 'COOKSTOWN', countryName: 'CANADA' },\r\n { placeId: 10336, cityName: 'CORAL HARBOUR', countryName: 'CANADA' },\r\n { placeId: 2911, cityName: 'CORNWALL', countryName: 'CANADA' },\r\n { placeId: 4966, cityName: 'CORONACH', countryName: 'CANADA' },\r\n { placeId: 4967, cityName: 'CORONATION', countryName: 'CANADA' },\r\n { placeId: 4969, cityName: 'CORTES ISLAND', countryName: 'CANADA' },\r\n { placeId: 4974, cityName: 'COTTAM', countryName: 'CANADA' },\r\n { placeId: 10357, cityName: 'COURTENAY', countryName: 'CANADA' },\r\n { placeId: 4978, cityName: 'COURTENAY', countryName: 'CANADA' },\r\n { placeId: 4979, cityName: 'COUTTS', countryName: 'CANADA' },\r\n { placeId: 4981, cityName: 'COWLEY', countryName: 'CANADA' },\r\n { placeId: 4986, cityName: 'CRAIK', countryName: 'CANADA' },\r\n { placeId: 110, cityName: 'CRANBROOK', countryName: 'CANADA' },\r\n { placeId: 2875, cityName: 'CRAWFORD BAY', countryName: 'CANADA' },\r\n { placeId: 10368, cityName: 'CREE LAKE', countryName: 'CANADA' },\r\n { placeId: 2874, cityName: 'CRESTON', countryName: 'CANADA' },\r\n { placeId: 4997, cityName: 'CROSS LAKE', countryName: 'CANADA' },\r\n { placeId: 5000, cityName: 'CRYSTAL CITY-PILOT MOUND', countryName: 'CANADA' },\r\n { placeId: 5004, cityName: 'CUDWORTH', countryName: 'CANADA' },\r\n { placeId: 5010, cityName: 'CUMBERLAND HOUSE', countryName: 'CANADA' },\r\n { placeId: 5015, cityName: 'CUT KNIFE', countryName: 'CANADA' },\r\n { placeId: 37, cityName: 'DAUPHIN', countryName: 'CANADA' },\r\n { placeId: 5071, cityName: 'DAVIDSON', countryName: 'CANADA' },\r\n { placeId: 5072, cityName: 'DAVIN LAKE', countryName: 'CANADA' },\r\n { placeId: 2914, cityName: 'DAWSON CREEK', countryName: 'CANADA' },\r\n { placeId: 34, cityName: 'DAWSON', countryName: 'CANADA' },\r\n { placeId: 5080, cityName: 'DE WINTON', countryName: 'CANADA' },\r\n { placeId: 5082, cityName: 'DEASE LAKE', countryName: 'CANADA' },\r\n { placeId: 5083, cityName: 'DEBDEN', countryName: 'CANADA' },\r\n { placeId: 5084, cityName: 'DEBERT', countryName: 'CANADA' },\r\n { placeId: 5086, cityName: 'DEBOLT', countryName: 'CANADA' },\r\n { placeId: 2904, cityName: 'DEEP RIVER', countryName: 'CANADA' },\r\n { placeId: 36, cityName: 'DEER LAKE', countryName: 'CANADA' },\r\n { placeId: 2923, cityName: 'DEER LAKE', countryName: 'CANADA' },\r\n { placeId: 10458, cityName: 'DEL BONITA', countryName: 'CANADA' },\r\n { placeId: 5102, cityName: 'DELINE', countryName: 'CANADA' },\r\n { placeId: 5103, cityName: 'DELORAINE', countryName: 'CANADA' },\r\n { placeId: 5149, cityName: 'DELTA AIR PARK', countryName: 'CANADA' },\r\n { placeId: 5165, cityName: 'DIAVIK', countryName: 'CANADA' },\r\n { placeId: 10489, cityName: 'DIDSBURY', countryName: 'CANADA' },\r\n { placeId: 5172, cityName: 'DIGBY', countryName: 'CANADA' },\r\n { placeId: 5181, cityName: 'DINSMORE', countryName: 'CANADA' },\r\n { placeId: 5191, cityName: 'DOIG', countryName: 'CANADA' },\r\n { placeId: 5194, cityName: 'DOLBEAU-ST-FELICIEN', countryName: 'CANADA' },\r\n { placeId: 5198, cityName: 'DONNELLY', countryName: 'CANADA' },\r\n { placeId: 5199, cityName: 'DORE LAKE', countryName: 'CANADA' },\r\n { placeId: 10506, cityName: 'DORIS LAKE', countryName: 'CANADA' },\r\n { placeId: 5208, cityName: 'DOUGLAS LAKE', countryName: 'CANADA' },\r\n { placeId: 5020, cityName: 'DRAYTON VALLEY', countryName: 'CANADA' },\r\n { placeId: 5022, cityName: 'DRUMHELLER', countryName: 'CANADA' },\r\n { placeId: 48, cityName: 'DRYDEN', countryName: 'CANADA' },\r\n { placeId: 5219, cityName: 'DUNCAN', countryName: 'CANADA' },\r\n { placeId: 10534, cityName: 'DUNNVILLE', countryName: 'CANADA' },\r\n { placeId: 5227, cityName: 'DURHAM', countryName: 'CANADA' },\r\n { placeId: 10540, cityName: 'DWIGHT', countryName: 'CANADA' },\r\n { placeId: 2898, cityName: 'EAGLE RIVER', countryName: 'CANADA' },\r\n { placeId: 10550, cityName: 'EAGLESHAM', countryName: 'CANADA' },\r\n { placeId: 2920, cityName: 'EAR FALLS', countryName: 'CANADA' },\r\n { placeId: 2925, cityName: 'EARLTON', countryName: 'CANADA' },\r\n { placeId: 5247, cityName: 'EASTEND', countryName: 'CANADA' },\r\n { placeId: 5248, cityName: 'EASTERVILLE', countryName: 'CANADA' },\r\n { placeId: 5250, cityName: 'EASTMAIN RIVER', countryName: 'CANADA' },\r\n { placeId: 5256, cityName: 'EATONIA', countryName: 'CANADA' },\r\n { placeId: 5261, cityName: 'ECHO VALLEY', countryName: 'CANADA' },\r\n { placeId: 5262, cityName: 'EDAM', countryName: 'CANADA' },\r\n { placeId: 5265, cityName: 'EDDONTENAJON', countryName: 'CANADA' },\r\n { placeId: 5266, cityName: 'EDENVALE', countryName: 'CANADA' },\r\n {\r\n placeId: 38, cityName: 'EDMONTON', state: 'AB', countryName: 'CANADA',\r\n },\r\n { placeId: 10573, cityName: 'EDMONTON', countryName: 'CANADA' },\r\n { placeId: 10574, cityName: 'EDMUNDSTON', countryName: 'CANADA' },\r\n { placeId: 5268, cityName: 'EDRA', countryName: 'CANADA' },\r\n { placeId: 5269, cityName: 'EDSON', countryName: 'CANADA' },\r\n { placeId: 5274, cityName: 'EKATI', countryName: 'CANADA' },\r\n { placeId: 10592, cityName: 'ELEONORE', countryName: 'CANADA' },\r\n { placeId: 5108, cityName: 'ELK ISLAND', countryName: 'CANADA' },\r\n { placeId: 5109, cityName: 'ELK LAKE', countryName: 'CANADA' },\r\n { placeId: 5110, cityName: 'ELK POINT', countryName: 'CANADA' },\r\n { placeId: 5114, cityName: 'ELKIN CREEK', countryName: 'CANADA' },\r\n { placeId: 2876, cityName: 'ELKO', countryName: 'CANADA' },\r\n { placeId: 5303, cityName: 'ELLIOT LAKE', countryName: 'CANADA' },\r\n { placeId: 5305, cityName: 'ELMIRA', countryName: 'CANADA' },\r\n { placeId: 5311, cityName: 'EMBARRAS', countryName: 'CANADA' },\r\n { placeId: 5312, cityName: 'EMBRUN', countryName: 'CANADA' },\r\n { placeId: 2915, cityName: 'EMPRESS', countryName: 'CANADA' },\r\n { placeId: 5319, cityName: 'EMSDALE', countryName: 'CANADA' },\r\n { placeId: 5023, cityName: 'ERICKSON', countryName: 'CANADA' },\r\n { placeId: 5331, cityName: 'ESSEX', countryName: 'CANADA' },\r\n { placeId: 5334, cityName: 'ESTERHAZY', countryName: 'CANADA' },\r\n { placeId: 5335, cityName: 'ESTEVAN', countryName: 'CANADA' },\r\n { placeId: 5337, cityName: 'ESTON', countryName: 'CANADA' },\r\n { placeId: 5338, cityName: 'ETHEL', countryName: 'CANADA' },\r\n { placeId: 10654, cityName: 'EUREKA', countryName: 'CANADA' },\r\n { placeId: 5345, cityName: 'EXPLOITS VALLEY', countryName: 'CANADA' },\r\n { placeId: 2913, cityName: 'FAIRMONT HOT SPRINGS', countryName: 'CANADA' },\r\n { placeId: 5358, cityName: 'FAIRVIEW', countryName: 'CANADA' },\r\n { placeId: 5375, cityName: 'FARNHAM', countryName: 'CANADA' },\r\n { placeId: 5376, cityName: 'FARO', countryName: 'CANADA' },\r\n { placeId: 5387, cityName: 'FERGUS', countryName: 'CANADA' },\r\n { placeId: 5390, cityName: 'FERLAND', countryName: 'CANADA' },\r\n { placeId: 5395, cityName: 'FILLMORE', countryName: 'CANADA' },\r\n { placeId: 5399, cityName: 'FINLAY', countryName: 'CANADA' },\r\n { placeId: 5402, cityName: 'FISHER BRANCH', countryName: 'CANADA' },\r\n { placeId: 5409, cityName: 'FLIN FLON', countryName: 'CANADA' },\r\n { placeId: 5413, cityName: 'FLORENCEVILLE', countryName: 'CANADA' },\r\n { placeId: 5418, cityName: 'FOGO', countryName: 'CANADA' },\r\n { placeId: 5421, cityName: 'FOND-DU-LAC', countryName: 'CANADA' },\r\n { placeId: 5422, cityName: 'FONTANGES', countryName: 'CANADA' },\r\n { placeId: 5423, cityName: 'FONTAS', countryName: 'CANADA' },\r\n { placeId: 5424, cityName: 'FORD BAY', countryName: 'CANADA' },\r\n { placeId: 5425, cityName: 'FORDWICH', countryName: 'CANADA' },\r\n { placeId: 5426, cityName: 'FOREMOST', countryName: 'CANADA' },\r\n { placeId: 5428, cityName: 'FORESTBURG', countryName: 'CANADA' },\r\n { placeId: 10735, cityName: 'FORESTVILLE', countryName: 'CANADA' },\r\n { placeId: 10738, cityName: 'FORT ERIE', countryName: 'CANADA' },\r\n { placeId: 5430, cityName: 'FORT GRAHAM', countryName: 'CANADA' },\r\n { placeId: 5431, cityName: 'FORT LANGLEY', countryName: 'CANADA' },\r\n { placeId: 5432, cityName: 'FORT MACKAY', countryName: 'CANADA' },\r\n { placeId: 5433, cityName: 'FORT MACLEOD', countryName: 'CANADA' },\r\n { placeId: 5436, cityName: 'FORT NELSON', countryName: 'CANADA' },\r\n { placeId: 5443, cityName: 'FOX CREEK', countryName: 'CANADA' },\r\n { placeId: 5444, cityName: 'FOX LAKE', countryName: 'CANADA' },\r\n { placeId: 5451, cityName: 'FRASER LAKE', countryName: 'CANADA' },\r\n { placeId: 41, cityName: 'FREDERICTON', countryName: 'CANADA' },\r\n { placeId: 5126, cityName: 'FRONTIER', countryName: 'CANADA' },\r\n { placeId: 5129, cityName: 'FT ALBANY', countryName: 'CANADA' },\r\n { placeId: 5458, cityName: 'FT CHIPEWYAN', countryName: 'CANADA' },\r\n { placeId: 10789, cityName: 'FT FRANCES', countryName: 'CANADA' },\r\n { placeId: 5462, cityName: 'FT GOOD HOPE', countryName: 'CANADA' },\r\n { placeId: 5464, cityName: 'FT HOPE', countryName: 'CANADA' },\r\n { placeId: 5470, cityName: 'FT LIARD', countryName: 'CANADA' },\r\n { placeId: 5471, cityName: 'FT MACLEOD', countryName: 'CANADA' },\r\n { placeId: 5472, cityName: 'FT MC PHERSON', countryName: 'CANADA' },\r\n {\r\n placeId: 65, cityName: 'FT MCMURRAY', state: 'AB', countryName: 'CANADA',\r\n },\r\n { placeId: 122, cityName: 'FT NELSON', countryName: 'CANADA' },\r\n { placeId: 5476, cityName: 'FT PROVIDENCE', countryName: 'CANADA' },\r\n { placeId: 5477, cityName: 'FT RESOLUTION', countryName: 'CANADA' },\r\n { placeId: 5480, cityName: 'FT SEVERN', countryName: 'CANADA' },\r\n { placeId: 5482, cityName: 'FT SIMPSON ISLAND', countryName: 'CANADA' },\r\n { placeId: 42, cityName: 'FT SIMPSON', countryName: 'CANADA' },\r\n { placeId: 93, cityName: 'FT SMITH', countryName: 'CANADA' },\r\n { placeId: 5484, cityName: 'FT ST JAMES', countryName: 'CANADA' },\r\n { placeId: 113, cityName: 'FT ST JOHN', countryName: 'CANADA' },\r\n { placeId: 5488, cityName: 'FT VERMILION', countryName: 'CANADA' },\r\n { placeId: 5489, cityName: 'FT WARE', countryName: 'CANADA' },\r\n { placeId: 2899, cityName: 'GAINSBOROUGH', countryName: 'CANADA' },\r\n { placeId: 5521, cityName: 'GAMETI', countryName: 'CANADA' },\r\n { placeId: 10860, cityName: 'GANANOQUE', countryName: 'CANADA' },\r\n {\r\n placeId: 87, cityName: 'GANDER', state: 'NF', countryName: 'CANADA',\r\n },\r\n { placeId: 5523, cityName: 'GANG RANCH', countryName: 'CANADA' },\r\n { placeId: 5530, cityName: 'GARDEN RIVER', countryName: 'CANADA' },\r\n { placeId: 10871, cityName: 'GASPE', countryName: 'CANADA' },\r\n { placeId: 2921, cityName: 'GATINEAU', countryName: 'CANADA' },\r\n { placeId: 44, cityName: 'GERALDTON', countryName: 'CANADA' },\r\n { placeId: 5562, cityName: 'GILBERT PLAINS', countryName: 'CANADA' },\r\n { placeId: 47, cityName: 'GILLAM', countryName: 'CANADA' },\r\n { placeId: 5566, cityName: 'GIMLI', countryName: 'CANADA' },\r\n { placeId: 49, cityName: 'GJOA HAVEN', countryName: 'CANADA' },\r\n { placeId: 5573, cityName: 'GLADSTONE', countryName: 'CANADA' },\r\n { placeId: 5575, cityName: 'GLASLYN', countryName: 'CANADA' },\r\n { placeId: 5576, cityName: 'GLENBORO', countryName: 'CANADA' },\r\n { placeId: 5580, cityName: 'GLENDON', countryName: 'CANADA' },\r\n { placeId: 5592, cityName: 'GODERICH', countryName: 'CANADA' },\r\n { placeId: 5594, cityName: 'GODS LAKE NARROWS', countryName: 'CANADA' },\r\n { placeId: 5593, cityName: 'GODS LAKE', countryName: 'CANADA' },\r\n { placeId: 5595, cityName: 'GODS RIVER', countryName: 'CANADA' },\r\n { placeId: 2916, cityName: 'GOLDEN', countryName: 'CANADA' },\r\n { placeId: 5133, cityName: 'GOODSOIL', countryName: 'CANADA' },\r\n {\r\n placeId: 10929,\r\n cityName: 'GOOSE BAY',\r\n state: 'NEWFOUNDLAND AND LABRADOR',\r\n countryName: 'CANADA',\r\n },\r\n { placeId: 5136, cityName: 'GORDON LAKE', countryName: 'CANADA' },\r\n { placeId: 5139, cityName: 'GORE BAY', countryName: 'CANADA' },\r\n { placeId: 5666, cityName: 'GRAND BEND', countryName: 'CANADA' },\r\n { placeId: 5670, cityName: 'GRAND FALLS', countryName: 'CANADA' },\r\n { placeId: 5671, cityName: 'GRAND FORKS', countryName: 'CANADA' },\r\n { placeId: 10954, cityName: 'GRAND MANAN', countryName: 'CANADA' },\r\n { placeId: 5676, cityName: 'GRAND RAPIDS', countryName: 'CANADA' },\r\n { placeId: 5678, cityName: 'GRAND RIVER', countryName: 'CANADA' },\r\n { placeId: 5683, cityName: 'GRANDE CACHE', countryName: 'CANADA' },\r\n { placeId: 84, cityName: 'GRANDE PRAIRIE', countryName: 'CANADA' },\r\n { placeId: 10963, cityName: 'GRANDE-RIVIERE', countryName: 'CANADA' },\r\n { placeId: 5681, cityName: 'GRANDE', countryName: 'CANADA' },\r\n { placeId: 10964, cityName: 'GRANDES-BERGERONNES', countryName: 'CANADA' },\r\n { placeId: 5685, cityName: 'GRANT', countryName: 'CANADA' },\r\n { placeId: 5689, cityName: 'GRAVELBOURG', countryName: 'CANADA' },\r\n { placeId: 5694, cityName: 'GREAT BEAR LAKE', countryName: 'CANADA' },\r\n { placeId: 5697, cityName: 'GREAT SLAVE LAKE LODGE', countryName: 'CANADA' },\r\n { placeId: 5034, cityName: 'GREEN LAKE', countryName: 'CANADA' },\r\n { placeId: 5698, cityName: 'GREENBANK', countryName: 'CANADA' },\r\n { placeId: 136, cityName: 'GREENWOOD', countryName: 'CANADA' },\r\n { placeId: 5711, cityName: 'GRENFELL', countryName: 'CANADA' },\r\n { placeId: 5715, cityName: 'GRIMSBY', countryName: 'CANADA' },\r\n { placeId: 5717, cityName: 'GRIMSHAW', countryName: 'CANADA' },\r\n { placeId: 11005, cityName: 'GRISE FIORD', countryName: 'CANADA' },\r\n { placeId: 5719, cityName: 'GRIST LAKE', countryName: 'CANADA' },\r\n { placeId: 5735, cityName: 'GUELPH', countryName: 'CANADA' },\r\n { placeId: 5740, cityName: 'GULL LAKE', countryName: 'CANADA' },\r\n { placeId: 5766, cityName: 'HAFFORD', countryName: 'CANADA' },\r\n { placeId: 5772, cityName: 'HAINES JUNCTION', countryName: 'CANADA' },\r\n { placeId: 5776, cityName: 'HALIBURTON', countryName: 'CANADA' },\r\n { placeId: 53, cityName: 'HALIFAX', countryName: 'CANADA' },\r\n { placeId: 11046, cityName: 'HALL BEACH', countryName: 'CANADA' },\r\n {\r\n placeId: 50, cityName: 'HAMILTON', state: 'ON', countryName: 'CANADA',\r\n },\r\n { placeId: 5792, cityName: 'HANLEY', countryName: 'CANADA' },\r\n { placeId: 5794, cityName: 'HANNA', countryName: 'CANADA' },\r\n { placeId: 5796, cityName: 'HANOVER', countryName: 'CANADA' },\r\n { placeId: 11071, cityName: 'HANOVER', countryName: 'CANADA' },\r\n { placeId: 5799, cityName: 'HARBOUR GRACE', countryName: 'CANADA' },\r\n { placeId: 5801, cityName: 'HARDISTY', countryName: 'CANADA' },\r\n { placeId: 5810, cityName: 'HARROW', countryName: 'CANADA' },\r\n { placeId: 5616, cityName: 'HATCHET LAKE LODGE', countryName: 'CANADA' },\r\n { placeId: 5622, cityName: 'HAVELOCK', countryName: 'CANADA' },\r\n { placeId: 45, cityName: 'HAVRE ST-PIERRE', countryName: 'CANADA' },\r\n { placeId: 2903, cityName: 'HAWKESBURY', countryName: 'CANADA' },\r\n { placeId: 52, cityName: 'HAY RIVER', countryName: 'CANADA' },\r\n { placeId: 5821, cityName: 'HEARST', countryName: 'CANADA' },\r\n { placeId: 5826, cityName: 'HELMET', countryName: 'CANADA' },\r\n { placeId: 5836, cityName: 'HESPERO', countryName: 'CANADA' },\r\n { placeId: 69, cityName: 'HIGH LEVEL', countryName: 'CANADA' },\r\n { placeId: 5840, cityName: 'HIGH PRAIRIE', countryName: 'CANADA' },\r\n { placeId: 5841, cityName: 'HIGH RIVER', countryName: 'CANADA' },\r\n { placeId: 5843, cityName: 'HIGHGATE', countryName: 'CANADA' },\r\n { placeId: 5852, cityName: 'HINTON', countryName: 'CANADA' },\r\n { placeId: 5864, cityName: 'HOLLAND LANDING AIRPARK', countryName: 'CANADA' },\r\n { placeId: 5873, cityName: 'HOMEWOOD', countryName: 'CANADA' },\r\n { placeId: 11176, cityName: 'HOPE BAY', countryName: 'CANADA' },\r\n { placeId: 5879, cityName: 'HOPE', countryName: 'CANADA' },\r\n { placeId: 11177, cityName: 'HOPEDALE', countryName: 'CANADA' },\r\n { placeId: 5880, cityName: 'HOPEWELL', countryName: 'CANADA' },\r\n { placeId: 5881, cityName: 'HORNEPAYNE', countryName: 'CANADA' },\r\n { placeId: 5890, cityName: 'HOUSTON', countryName: 'CANADA' },\r\n { placeId: 5901, cityName: 'HUDSON BAY', countryName: 'CANADA' },\r\n { placeId: 2922, cityName: 'HUDSON\\'S HOPE', countryName: 'CANADA' },\r\n { placeId: 5905, cityName: 'HUMBOLDT', countryName: 'CANADA' },\r\n { placeId: 5908, cityName: 'HUNTSVILLE', countryName: 'CANADA' },\r\n { placeId: 5918, cityName: 'HYLAND', countryName: 'CANADA' },\r\n { placeId: 11232, cityName: 'IGLOOLIK', countryName: 'CANADA' },\r\n { placeId: 2930, cityName: 'IGNACE', countryName: 'CANADA' },\r\n { placeId: 5942, cityName: 'ILE AUX COUDRES', countryName: 'CANADA' },\r\n { placeId: 5943, cityName: 'ILE-A-LA-CROSSE', countryName: 'CANADA' },\r\n { placeId: 5944, cityName: 'ILE-AUX-GRUES', countryName: 'CANADA' },\r\n { placeId: 11239, cityName: 'ILES-DE-LA-MADELEINE', countryName: 'CANADA' },\r\n { placeId: 5946, cityName: 'ILFORD', countryName: 'CANADA' },\r\n { placeId: 5955, cityName: 'IMPERIAL', countryName: 'CANADA' },\r\n { placeId: 5967, cityName: 'INDUS', countryName: 'CANADA' },\r\n { placeId: 5970, cityName: 'INGENIKA', countryName: 'CANADA' },\r\n { placeId: 5974, cityName: 'INNISFAIL', countryName: 'CANADA' },\r\n { placeId: 11262, cityName: 'INUKJUAK', countryName: 'CANADA' },\r\n { placeId: 39, cityName: 'INUVIK', countryName: 'CANADA' },\r\n { placeId: 2873, cityName: 'INVERMERE', countryName: 'CANADA' },\r\n {\r\n placeId: 40, cityName: 'IQALUIT', state: 'NU', countryName: 'CANADA',\r\n },\r\n { placeId: 5989, cityName: 'IRMA', countryName: 'CANADA' },\r\n { placeId: 5990, cityName: 'IROQUOIS FALLS', countryName: 'CANADA' },\r\n { placeId: 11278, cityName: 'IROQUOIS', countryName: 'CANADA' },\r\n { placeId: 55, cityName: 'ISLAND LAKE', countryName: 'CANADA' },\r\n { placeId: 6014, cityName: 'ITUNA', countryName: 'CANADA' },\r\n { placeId: 6016, cityName: 'IVUJIVIK', countryName: 'CANADA' },\r\n { placeId: 2893, cityName: 'JAN LAKE', countryName: 'CANADA' },\r\n { placeId: 6043, cityName: 'JANVIER', countryName: 'CANADA' },\r\n { placeId: 6045, cityName: 'JASPER', countryName: 'CANADA' },\r\n { placeId: 6050, cityName: 'JEAN MARIE RIVER', countryName: 'CANADA' },\r\n { placeId: 6055, cityName: 'JENPEG', countryName: 'CANADA' },\r\n { placeId: 6068, cityName: 'JOHN D\\'OR PRAIRIE', countryName: 'CANADA' },\r\n { placeId: 6069, cityName: 'JOHNSON LAKE', countryName: 'CANADA' },\r\n { placeId: 6072, cityName: 'JOLIETTE', countryName: 'CANADA' },\r\n { placeId: 6087, cityName: 'JUNIPER', countryName: 'CANADA' },\r\n { placeId: 11358, cityName: 'KAHNTAH', countryName: 'CANADA' },\r\n { placeId: 6111, cityName: 'KAKABEKA FALLS', countryName: 'CANADA' },\r\n { placeId: 57, cityName: 'KAMLOOPS', countryName: 'CANADA' },\r\n {\r\n placeId: 2888, cityName: 'KAMSACK', state: 'LA', countryName: 'CANADA',\r\n },\r\n { placeId: 5640, cityName: 'KANAWATA', countryName: 'CANADA' },\r\n { placeId: 5644, cityName: 'KANGIQSUALUJJUAQ', countryName: 'CANADA' },\r\n { placeId: 11382, cityName: 'KANGIQSUJUAQ', countryName: 'CANADA' },\r\n { placeId: 5035, cityName: 'KANGIRSUK', countryName: 'CANADA' },\r\n { placeId: 6129, cityName: 'KANTAH', countryName: 'CANADA' },\r\n { placeId: 131, cityName: 'KAPUSKASING', countryName: 'CANADA' },\r\n { placeId: 6142, cityName: 'KARS', countryName: 'CANADA' },\r\n { placeId: 6145, cityName: 'KASABONIKA', countryName: 'CANADA' },\r\n { placeId: 6148, cityName: 'KASBA LAKE', countryName: 'CANADA' },\r\n { placeId: 6152, cityName: 'KASHECHEWAN', countryName: 'CANADA' },\r\n { placeId: 2878, cityName: 'KASLO', countryName: 'CANADA' },\r\n { placeId: 6167, cityName: 'KATTINIQ', countryName: 'CANADA' },\r\n { placeId: 6182, cityName: 'KEENE', countryName: 'CANADA' },\r\n { placeId: 2906, cityName: 'KEEWAYWIN', countryName: 'CANADA' },\r\n { placeId: 11418, cityName: 'KEGASKA', countryName: 'CANADA' },\r\n {\r\n placeId: 62, cityName: 'KELOWNA', state: 'BC', countryName: 'CANADA',\r\n },\r\n { placeId: 6185, cityName: 'KELSEY', countryName: 'CANADA' },\r\n { placeId: 6187, cityName: 'KELVINGTON', countryName: 'CANADA' },\r\n { placeId: 6188, cityName: 'KEMESS CREEK', countryName: 'CANADA' },\r\n { placeId: 79, cityName: 'KENORA', countryName: 'CANADA' },\r\n { placeId: 5044, cityName: 'KERROBERT', countryName: 'CANADA' },\r\n { placeId: 6207, cityName: 'KEY LAKE', countryName: 'CANADA' },\r\n { placeId: 6230, cityName: 'KILLAM', countryName: 'CANADA' },\r\n { placeId: 6231, cityName: 'KILLARNEY', countryName: 'CANADA' },\r\n { placeId: 6232, cityName: 'KILLARNEY', countryName: 'CANADA' },\r\n { placeId: 11470, cityName: 'KIMMIRUT', countryName: 'CANADA' },\r\n { placeId: 6239, cityName: 'KINCARDINE', countryName: 'CANADA' },\r\n { placeId: 6241, cityName: 'KINDERSLEY', countryName: 'CANADA' },\r\n { placeId: 2902, cityName: 'KINGFISHER LAKE', countryName: 'CANADA' },\r\n { placeId: 2917, cityName: 'KINGSTON', countryName: 'CANADA' },\r\n { placeId: 6252, cityName: 'KIPLING', countryName: 'CANADA' },\r\n { placeId: 6255, cityName: 'KIRBY LAKE', countryName: 'CANADA' },\r\n { placeId: 6257, cityName: 'KIRKLAND LAKE', countryName: 'CANADA' },\r\n { placeId: 58, cityName: 'KITCHENER', countryName: 'CANADA' },\r\n { placeId: 6274, cityName: 'KITIMAT', countryName: 'CANADA' },\r\n { placeId: 6280, cityName: 'KLEENA KLEENE', countryName: 'CANADA' },\r\n { placeId: 11506, cityName: 'KNEE LAKE', countryName: 'CANADA' },\r\n { placeId: 2910, cityName: 'KUGAARUK', countryName: 'CANADA' },\r\n { placeId: 33, cityName: 'KUGLUKTUK', countryName: 'CANADA' },\r\n { placeId: 103, cityName: 'KUUJJUAQ', countryName: 'CANADA' },\r\n { placeId: 46, cityName: 'KUUJJUARAPIK', countryName: 'CANADA' },\r\n { placeId: 6354, cityName: 'KYLE', countryName: 'CANADA' },\r\n { placeId: 6359, cityName: 'LA BICHE RIVER', countryName: 'CANADA' },\r\n { placeId: 6363, cityName: 'LA CRETE', countryName: 'CANADA' },\r\n { placeId: 43, cityName: 'LA GRANDE RIVIERE', countryName: 'CANADA' },\r\n { placeId: 6371, cityName: 'LA GRANDE-4', countryName: 'CANADA' },\r\n { placeId: 6373, cityName: 'LA LOCHE', countryName: 'CANADA' },\r\n { placeId: 11568, cityName: 'LA ROMAINE', countryName: 'CANADA' },\r\n { placeId: 100, cityName: 'LA RONGE', countryName: 'CANADA' },\r\n { placeId: 6380, cityName: 'LA SARRE', countryName: 'CANADA' },\r\n { placeId: 6384, cityName: 'LA TUQUE', countryName: 'CANADA' },\r\n { placeId: 6389, cityName: 'LAC A LA PERCHAUDE', countryName: 'CANADA' },\r\n { placeId: 6390, cityName: 'LAC AGILE', countryName: 'CANADA' },\r\n { placeId: 6391, cityName: 'LAC BROCHET', countryName: 'CANADA' },\r\n { placeId: 6392, cityName: 'LAC DU BONNET', countryName: 'CANADA' },\r\n { placeId: 6393, cityName: 'LAC ETCHEMIN', countryName: 'CANADA' },\r\n { placeId: 6394, cityName: 'LAC LA BICHE', countryName: 'CANADA' },\r\n { placeId: 6395, cityName: 'LAC LA MARTRE', countryName: 'CANADA' },\r\n { placeId: 6396, cityName: 'LAC-A-LA-TORTUE', countryName: 'CANADA' },\r\n { placeId: 6397, cityName: 'LACHUTE', countryName: 'CANADA' },\r\n { placeId: 6398, cityName: 'LACOMBE', countryName: 'CANADA' },\r\n { placeId: 6423, cityName: 'LAMPMAN', countryName: 'CANADA' },\r\n { placeId: 6434, cityName: 'LANGLEY', countryName: 'CANADA' },\r\n { placeId: 6435, cityName: 'LANIGAN', countryName: 'CANADA' },\r\n { placeId: 6436, cityName: 'LANSDOWNE HOUSE', countryName: 'CANADA' },\r\n { placeId: 6454, cityName: 'LAURIE RIVER', countryName: 'CANADA' },\r\n { placeId: 6462, cityName: 'LEADER', countryName: 'CANADA' },\r\n { placeId: 6464, cityName: 'LEAF RAPIDS', countryName: 'CANADA' },\r\n { placeId: 6465, cityName: 'LEAMINGTON', countryName: 'CANADA' },\r\n { placeId: 6466, cityName: 'LEASK', countryName: 'CANADA' },\r\n { placeId: 6469, cityName: 'LEBEL-SUR-QUEVILLON', countryName: 'CANADA' },\r\n { placeId: 6520, cityName: 'LEFROY', countryName: 'CANADA' },\r\n { placeId: 6296, cityName: 'LEMBERG', countryName: 'CANADA' },\r\n { placeId: 6525, cityName: 'LENNOXVILLE', countryName: 'CANADA' },\r\n { placeId: 6530, cityName: 'LEOVILLE', countryName: 'CANADA' },\r\n { placeId: 80, cityName: 'LETHBRIDGE', countryName: 'CANADA' },\r\n { placeId: 6539, cityName: 'LEWVAN', countryName: 'CANADA' },\r\n { placeId: 6547, cityName: 'LIEGE', countryName: 'CANADA' },\r\n { placeId: 6552, cityName: 'LIKELY', countryName: 'CANADA' },\r\n { placeId: 6555, cityName: 'LILLOOET', countryName: 'CANADA' },\r\n { placeId: 6572, cityName: 'LINDSAY', countryName: 'CANADA' },\r\n { placeId: 6577, cityName: 'LISTOWEL', countryName: 'CANADA' },\r\n { placeId: 6579, cityName: 'LITTLE BEAR LAKE', countryName: 'CANADA' },\r\n { placeId: 6581, cityName: 'LITTLE GRAND RAPIDS', countryName: 'CANADA' },\r\n { placeId: 11713, cityName: 'LIVERPOOL', countryName: 'CANADA' },\r\n { placeId: 61, cityName: 'LLOYDMINSTER', countryName: 'CANADA' },\r\n {\r\n placeId: 117, cityName: 'LONDON', state: 'ON', countryName: 'CANADA',\r\n },\r\n { placeId: 6615, cityName: 'LOON LAKE', countryName: 'CANADA' },\r\n { placeId: 6616, cityName: 'LOON RIVER', countryName: 'CANADA' },\r\n { placeId: 6630, cityName: 'LOUISEVILLE', countryName: 'CANADA' },\r\n { placeId: 11751, cityName: 'LOURDES-DE-BLANC-SABLON', countryName: 'CANADA' },\r\n { placeId: 6633, cityName: 'LOURDES-DE-JOLIETTE', countryName: 'CANADA' },\r\n { placeId: 6635, cityName: 'LOWER EAST PUBNICO', countryName: 'CANADA' },\r\n { placeId: 6649, cityName: 'LUCAN', countryName: 'CANADA' },\r\n { placeId: 6651, cityName: 'LUCKY LAKE', countryName: 'CANADA' },\r\n { placeId: 5650, cityName: 'LUNDAR', countryName: 'CANADA' },\r\n { placeId: 6675, cityName: 'LUSELAND', countryName: 'CANADA' },\r\n { placeId: 6678, cityName: 'LUTSELK\\'E', countryName: 'CANADA' },\r\n { placeId: 126, cityName: 'LYNN LAKE', countryName: 'CANADA' },\r\n { placeId: 6688, cityName: 'MABEL LAKE', countryName: 'CANADA' },\r\n { placeId: 6474, cityName: 'MACDONALD', countryName: 'CANADA' },\r\n { placeId: 6476, cityName: 'MACGREGOR', countryName: 'CANADA' },\r\n { placeId: 137, cityName: 'MACKENZIE', countryName: 'CANADA' },\r\n { placeId: 6689, cityName: 'MACKLIN', countryName: 'CANADA' },\r\n { placeId: 6690, cityName: 'MACMILLAN PASS', countryName: 'CANADA' },\r\n { placeId: 2887, cityName: 'MAIDSTONE', countryName: 'CANADA' },\r\n { placeId: 6725, cityName: 'MAKKOVIK', countryName: 'CANADA' },\r\n { placeId: 6762, cityName: 'MANIC-5', countryName: 'CANADA' },\r\n { placeId: 6766, cityName: 'MANITOU', countryName: 'CANADA' },\r\n { placeId: 6767, cityName: 'MANITOUWADGE', countryName: 'CANADA' },\r\n { placeId: 6768, cityName: 'MANITOWANING', countryName: 'CANADA' },\r\n { placeId: 6769, cityName: 'MANIWAKI', countryName: 'CANADA' },\r\n { placeId: 6775, cityName: 'MANNING', countryName: 'CANADA' },\r\n { placeId: 6781, cityName: 'MANSFIELD', countryName: 'CANADA' },\r\n { placeId: 6783, cityName: 'MANSONVILLE', countryName: 'CANADA' },\r\n { placeId: 6788, cityName: 'MAPLE CREEK', countryName: 'CANADA' },\r\n { placeId: 6799, cityName: 'MARATHON', countryName: 'CANADA' },\r\n { placeId: 6803, cityName: 'MAREK FARMS', countryName: 'CANADA' },\r\n { placeId: 6806, cityName: 'MARGAREE', countryName: 'CANADA' },\r\n { placeId: 6807, cityName: 'MARGARET LAKE', countryName: 'CANADA' },\r\n { placeId: 11882, cityName: 'MARY RIVER', countryName: 'CANADA' },\r\n { placeId: 11883, cityName: 'MARYS HARBOUR', countryName: 'CANADA' },\r\n { placeId: 6858, cityName: 'MASSET', countryName: 'CANADA' },\r\n { placeId: 6863, cityName: 'MATAGAMI', countryName: 'CANADA' },\r\n { placeId: 6866, cityName: 'MATANE', countryName: 'CANADA' },\r\n { placeId: 6869, cityName: 'MATHESON ISLAND', countryName: 'CANADA' },\r\n { placeId: 6887, cityName: 'MAYERTHORPE', countryName: 'CANADA' },\r\n { placeId: 63, cityName: 'MAYO', countryName: 'CANADA' },\r\n { placeId: 6905, cityName: 'MC QUESTEN', countryName: 'CANADA' },\r\n { placeId: 6907, cityName: 'MCARTHUR RIVER', countryName: 'CANADA' },\r\n { placeId: 6908, cityName: 'MCBRIDE', countryName: 'CANADA' },\r\n { placeId: 6909, cityName: 'MCCREARY', countryName: 'CANADA' },\r\n { placeId: 6916, cityName: 'MEADOW LAKE', countryName: 'CANADA' },\r\n { placeId: 11931, cityName: 'MEADOWBANK', countryName: 'CANADA' },\r\n { placeId: 112, cityName: 'MEDICINE HAT', countryName: 'CANADA' },\r\n { placeId: 6926, cityName: 'MELBOURNE', countryName: 'CANADA' },\r\n { placeId: 6927, cityName: 'MELFORT', countryName: 'CANADA' },\r\n { placeId: 6928, cityName: 'MELITA', countryName: 'CANADA' },\r\n { placeId: 6932, cityName: 'MELVILLE', countryName: 'CANADA' },\r\n { placeId: 6949, cityName: 'MERRITT', countryName: 'CANADA' },\r\n { placeId: 6968, cityName: 'MIDLAND', countryName: 'CANADA' },\r\n { placeId: 6970, cityName: 'MIDWAY', countryName: 'CANADA' },\r\n { placeId: 6971, cityName: 'MILDRED LAKE', countryName: 'CANADA' },\r\n { placeId: 6975, cityName: 'MILK RIVER', countryName: 'CANADA' },\r\n { placeId: 6981, cityName: 'MIMINISKA', countryName: 'CANADA' },\r\n { placeId: 6990, cityName: 'MINNEDOSA', countryName: 'CANADA' },\r\n { placeId: 12007, cityName: 'MINTO', countryName: 'CANADA' },\r\n { placeId: 6995, cityName: 'MIRAMICHI', countryName: 'CANADA' },\r\n { placeId: 6491, cityName: 'MOBIL BISTCHO', countryName: 'CANADA' },\r\n { placeId: 7016, cityName: 'MOLSON LAKE', countryName: 'CANADA' },\r\n { placeId: 81, cityName: 'MONCTON', countryName: 'CANADA' },\r\n { placeId: 132, cityName: 'MONT-JOLI', countryName: 'CANADA' },\r\n { placeId: 5659, cityName: 'MONT-LAURIER', countryName: 'CANADA' },\r\n { placeId: 7054, cityName: 'MONTMAGNY', countryName: 'CANADA' },\r\n { placeId: 12054, cityName: 'MONTREAL', countryName: 'CANADA' },\r\n {\r\n placeId: 66, cityName: 'MONTREAL', state: 'QC', countryName: 'CANADA',\r\n },\r\n { placeId: 64, cityName: 'MOOSE JAW', countryName: 'CANADA' },\r\n { placeId: 7061, cityName: 'MOOSE LAKE', countryName: 'CANADA' },\r\n { placeId: 7063, cityName: 'MOOSOMIN', countryName: 'CANADA' },\r\n { placeId: 7064, cityName: 'MOOSONEE', countryName: 'CANADA' },\r\n { placeId: 7068, cityName: 'MORDEN', countryName: 'CANADA' },\r\n { placeId: 12078, cityName: 'MORRISBURG', countryName: 'CANADA' },\r\n { placeId: 7095, cityName: 'MOUNTAIN VIEW', countryName: 'CANADA' },\r\n { placeId: 7126, cityName: 'MULE CREEK', countryName: 'CANADA' },\r\n { placeId: 7140, cityName: 'MUSKEG TOWER', countryName: 'CANADA' },\r\n { placeId: 7143, cityName: 'MUSKOKA', countryName: 'CANADA' },\r\n { placeId: 2926, cityName: 'MUSKRAT DAM', countryName: 'CANADA' },\r\n { placeId: 6501, cityName: 'NAHANNI BUTTE', countryName: 'CANADA' },\r\n { placeId: 6502, cityName: 'NAICAM', countryName: 'CANADA' },\r\n { placeId: 12148, cityName: 'NAIN', countryName: 'CANADA' },\r\n { placeId: 7172, cityName: 'NAKINA', countryName: 'CANADA' },\r\n { placeId: 7174, cityName: 'NAKUSP', countryName: 'CANADA' },\r\n { placeId: 7177, cityName: 'NAMUR LAKE', countryName: 'CANADA' },\r\n { placeId: 12153, cityName: 'NANAIMO', countryName: 'CANADA' },\r\n { placeId: 3896, cityName: 'NANISIVIK', countryName: 'CANADA' },\r\n { placeId: 12169, cityName: 'NATASHQUAN', countryName: 'CANADA' },\r\n { placeId: 2901, cityName: 'NATUASHISH', countryName: 'CANADA' },\r\n { placeId: 7210, cityName: 'NEEPAWA', countryName: 'CANADA' },\r\n { placeId: 7213, cityName: 'NEILBURG', countryName: 'CANADA' },\r\n { placeId: 7217, cityName: 'NEKWEAGA BAY', countryName: 'CANADA' },\r\n { placeId: 7218, cityName: 'NELSON', countryName: 'CANADA' },\r\n { placeId: 7223, cityName: 'NEMISCAU', countryName: 'CANADA' },\r\n { placeId: 2885, cityName: 'NESTOR FALLS', countryName: 'CANADA' },\r\n { placeId: 2907, cityName: 'NEW LISKEARD', countryName: 'CANADA' },\r\n { placeId: 12223, cityName: 'NIAGARA', countryName: 'CANADA' },\r\n { placeId: 7264, cityName: 'NIPAWIN', countryName: 'CANADA' },\r\n { placeId: 7268, cityName: 'NIXON', countryName: 'CANADA' },\r\n { placeId: 104, cityName: 'NORMAN WELLS', countryName: 'CANADA' },\r\n { placeId: 86, cityName: 'NORTH BATTLEFORD', countryName: 'CANADA' },\r\n { placeId: 120, cityName: 'NORTH BAY', countryName: 'CANADA' },\r\n { placeId: 7286, cityName: 'NORTH SEAL RIVER', countryName: 'CANADA' },\r\n { placeId: 2895, cityName: 'NORTH SPIRIT LAKE', countryName: 'CANADA' },\r\n { placeId: 67, cityName: 'NORWAY HOUSE', countryName: 'CANADA' },\r\n { placeId: 7312, cityName: 'NORWOOD', countryName: 'CANADA' },\r\n { placeId: 6503, cityName: 'NOVA SCOTIA', countryName: 'CANADA' },\r\n { placeId: 12275, cityName: 'NUELTIN LAKE', countryName: 'CANADA' },\r\n { placeId: 7334, cityName: 'OAK HAMMOCK AIR PARK', countryName: 'CANADA' },\r\n { placeId: 7351, cityName: 'OBRE LAKE/NORTH OF SIXTY', countryName: 'CANADA' },\r\n { placeId: 7365, cityName: 'OGILVIE RIVER', countryName: 'CANADA' },\r\n { placeId: 7366, cityName: 'OGOKI POST', countryName: 'CANADA' },\r\n { placeId: 7375, cityName: 'OLD CROW', countryName: 'CANADA' },\r\n { placeId: 7378, cityName: 'OLDS-DIDSBURY', countryName: 'CANADA' },\r\n { placeId: 7377, cityName: 'OLDS', countryName: 'CANADA' },\r\n {\r\n placeId: 7381, cityName: 'OLIVER', state: 'BC', countryName: 'CANADA',\r\n },\r\n { placeId: 7391, cityName: 'ONE HUNDRED MILE HOUSE', countryName: 'CANADA' },\r\n { placeId: 2894, cityName: 'OPAPIMISKAN LAKE', countryName: 'CANADA' },\r\n { placeId: 7396, cityName: 'OPINACA', countryName: 'CANADA' },\r\n { placeId: 7406, cityName: 'ORANGEVILLE', countryName: 'CANADA' },\r\n { placeId: 7414, cityName: 'ORILLIA', countryName: 'CANADA' },\r\n { placeId: 7426, cityName: 'ORTON', countryName: 'CANADA' },\r\n { placeId: 12369, cityName: 'OSHAWA', countryName: 'CANADA' },\r\n { placeId: 7436, cityName: 'OSOYOOS', countryName: 'CANADA' },\r\n { placeId: 7437, cityName: 'OSPIKA', countryName: 'CANADA' },\r\n {\r\n placeId: 70, cityName: 'OTTAWA', state: 'ON', countryName: 'CANADA',\r\n },\r\n { placeId: 12378, cityName: 'OTTAWA', countryName: 'CANADA' },\r\n { placeId: 7298, cityName: 'OTTER LAKE', countryName: 'CANADA' },\r\n { placeId: 7444, cityName: 'OUTLOOK', countryName: 'CANADA' },\r\n { placeId: 7451, cityName: 'OWEN SOUND', countryName: 'CANADA' },\r\n { placeId: 7454, cityName: 'OXBOW', countryName: 'CANADA' },\r\n { placeId: 7459, cityName: 'OXFORD HOUSE', countryName: 'CANADA' },\r\n { placeId: 7463, cityName: 'OYEN', countryName: 'CANADA' },\r\n { placeId: 7482, cityName: 'PALMERSTON', countryName: 'CANADA' },\r\n { placeId: 7547, cityName: 'PANGMAN', countryName: 'CANADA' },\r\n { placeId: 2924, cityName: 'PANGNIRTUNG', countryName: 'CANADA' },\r\n { placeId: 2886, cityName: 'PARADISE HILL', countryName: 'CANADA' },\r\n { placeId: 7303, cityName: 'PARAMOUNT BISTCHO', countryName: 'CANADA' },\r\n { placeId: 7557, cityName: 'PARENT', countryName: 'CANADA' },\r\n { placeId: 7564, cityName: 'PARRY SOUND', countryName: 'CANADA' },\r\n { placeId: 7579, cityName: 'PATUANAK', countryName: 'CANADA' },\r\n { placeId: 7581, cityName: 'PAULATUK', countryName: 'CANADA' },\r\n { placeId: 72, cityName: 'PEACE RIVER', countryName: 'CANADA' },\r\n { placeId: 7590, cityName: 'PEAWANUCK', countryName: 'CANADA' },\r\n { placeId: 7595, cityName: 'PEGGO DEVON CANADA', countryName: 'CANADA' },\r\n { placeId: 7596, cityName: 'PEGGO GAS PLANT', countryName: 'CANADA' },\r\n { placeId: 12469, cityName: 'PELEE ISLAND', countryName: 'CANADA' },\r\n { placeId: 7598, cityName: 'PELICAN NARROWS', countryName: 'CANADA' },\r\n { placeId: 7597, cityName: 'PELICAN', countryName: 'CANADA' },\r\n { placeId: 7602, cityName: 'PELLY CROSSING', countryName: 'CANADA' },\r\n { placeId: 7604, cityName: 'PEMBERTON', countryName: 'CANADA' },\r\n { placeId: 7606, cityName: 'PEMBROKE', countryName: 'CANADA' },\r\n { placeId: 7607, cityName: 'PENDLETON', countryName: 'CANADA' },\r\n { placeId: 123, cityName: 'PENTICTON', countryName: 'CANADA' },\r\n { placeId: 7617, cityName: 'PETAWAWA', countryName: 'CANADA' },\r\n {\r\n placeId: 7618, cityName: 'PETERBOROUGH', state: 'ON', countryName: 'CANADA',\r\n },\r\n { placeId: 7620, cityName: 'PETITOT', countryName: 'CANADA' },\r\n { placeId: 7634, cityName: 'PICKLE LAKE', countryName: 'CANADA' },\r\n { placeId: 12516, cityName: 'PICTON', countryName: 'CANADA' },\r\n { placeId: 3893, cityName: 'PIKANGIKUM', countryName: 'CANADA' },\r\n { placeId: 7642, cityName: 'PIKWITONEI', countryName: 'CANADA' },\r\n { placeId: 7647, cityName: 'PINCHER CREEK', countryName: 'CANADA' },\r\n { placeId: 7652, cityName: 'PINE DOCK', countryName: 'CANADA' },\r\n { placeId: 7653, cityName: 'PINE LAKE', countryName: 'CANADA' },\r\n { placeId: 7657, cityName: 'PINEHOUSE LAKE', countryName: 'CANADA' },\r\n { placeId: 7663, cityName: 'PITT MEADOWS', countryName: 'CANADA' },\r\n { placeId: 7310, cityName: 'PLEVNA', countryName: 'CANADA' },\r\n { placeId: 7488, cityName: 'POINTED MOUNTAIN', countryName: 'CANADA' },\r\n { placeId: 7489, cityName: 'POINTS NORTH LANDING', countryName: 'CANADA' },\r\n { placeId: 12572, cityName: 'POKEMOUCHE', countryName: 'CANADA' },\r\n { placeId: 54, cityName: 'POND INLET', countryName: 'CANADA' },\r\n { placeId: 7495, cityName: 'PONOKA', countryName: 'CANADA' },\r\n { placeId: 12580, cityName: 'PONTIAC', countryName: 'CANADA' },\r\n { placeId: 2905, cityName: 'POPLAR HILL,', countryName: 'CANADA' },\r\n { placeId: 7690, cityName: 'POPLAR RIVER', countryName: 'CANADA' },\r\n { placeId: 7694, cityName: 'PORCUPINE PLAIN', countryName: 'CANADA' },\r\n { placeId: 7696, cityName: 'PORT ALBERNI', countryName: 'CANADA' },\r\n { placeId: 7699, cityName: 'PORT AU CHOIX', countryName: 'CANADA' },\r\n { placeId: 7704, cityName: 'PORT ELGIN', countryName: 'CANADA' },\r\n { placeId: 135, cityName: 'PORT HARDY', countryName: 'CANADA' },\r\n { placeId: 12596, cityName: 'PORT HAWKESBURY', countryName: 'CANADA' },\r\n { placeId: 2883, cityName: 'PORT HOPE SIMPSON', countryName: 'CANADA' },\r\n { placeId: 12599, cityName: 'PORT HOPE', countryName: 'CANADA' },\r\n { placeId: 7706, cityName: 'PORT MC NEILL', countryName: 'CANADA' },\r\n { placeId: 12607, cityName: 'PORT MENIER', countryName: 'CANADA' },\r\n { placeId: 7710, cityName: 'PORTAGE LA PRAIRIE', countryName: 'CANADA' },\r\n { placeId: 12613, cityName: 'PORTERS LAKE', countryName: 'CANADA' },\r\n { placeId: 7743, cityName: 'POSTE MONTAGNAIS', countryName: 'CANADA' },\r\n { placeId: 2881, cityName: 'POSTVILLE', countryName: 'CANADA' },\r\n { placeId: 12630, cityName: 'POURVOIRIE MIRAGE', countryName: 'CANADA' },\r\n { placeId: 7751, cityName: 'POWELL RIVER', countryName: 'CANADA' },\r\n { placeId: 7754, cityName: 'PRAIRIE CREEK', countryName: 'CANADA' },\r\n { placeId: 7759, cityName: 'PREECEVILLE', countryName: 'CANADA' },\r\n { placeId: 71, cityName: 'PRINCE ALBERT', countryName: 'CANADA' },\r\n {\r\n placeId: 115, cityName: 'PRINCE GEORGE', state: 'BC', countryName: 'CANADA',\r\n },\r\n { placeId: 73, cityName: 'PRINCE RUPERT', countryName: 'CANADA' },\r\n { placeId: 7765, cityName: 'PRINCETON', countryName: 'CANADA' },\r\n { placeId: 7774, cityName: 'PROVOST', countryName: 'CANADA' },\r\n { placeId: 7798, cityName: 'PUKATAWAGAN', countryName: 'CANADA' },\r\n { placeId: 7806, cityName: 'PUNTZI MOUNTAIN', countryName: 'CANADA' },\r\n { placeId: 7808, cityName: 'PUVIRNITUQ', countryName: 'CANADA' },\r\n { placeId: 101, cityName: 'QIKIQTARJUAQ', countryName: 'CANADA' },\r\n { placeId: 7822, cityName: 'QUALICUM BEACH', countryName: 'CANADA' },\r\n { placeId: 12694, cityName: 'QUAQTAQ', countryName: 'CANADA' },\r\n {\r\n placeId: 74, cityName: 'QUEBEC', state: 'QC', countryName: 'CANADA',\r\n },\r\n { placeId: 7827, cityName: 'QUESNEL LAKE', countryName: 'CANADA' },\r\n { placeId: 89, cityName: 'QUESNEL', countryName: 'CANADA' },\r\n { placeId: 7830, cityName: 'QUILCHENA', countryName: 'CANADA' },\r\n { placeId: 7831, cityName: 'QUILL LAKE', countryName: 'CANADA' },\r\n { placeId: 7841, cityName: 'RADISSON', countryName: 'CANADA' },\r\n { placeId: 2877, cityName: 'RADIUM HOT SPRINGS', countryName: 'CANADA' },\r\n { placeId: 7500, cityName: 'RADVILLE', countryName: 'CANADA' },\r\n { placeId: 7501, cityName: 'RAE', countryName: 'CANADA' },\r\n { placeId: 7508, cityName: 'RAINBOW LAKE', countryName: 'CANADA' },\r\n { placeId: 12731, cityName: 'RANKIN INLET', countryName: 'CANADA' },\r\n { placeId: 7723, cityName: 'RED DEER FORESTRY', countryName: 'CANADA' },\r\n { placeId: 76, cityName: 'RED DEER', countryName: 'CANADA' },\r\n { placeId: 7874, cityName: 'RED EARTH CREEK', countryName: 'CANADA' },\r\n { placeId: 3894, cityName: 'RED LAKE', countryName: 'CANADA' },\r\n { placeId: 7877, cityName: 'RED SUCKER LAKE', countryName: 'CANADA' },\r\n { placeId: 7887, cityName: 'REGINA BEACH', countryName: 'CANADA' },\r\n {\r\n placeId: 82, cityName: 'REGINA', state: 'SK', countryName: 'CANADA',\r\n },\r\n { placeId: 12774, cityName: 'REPULSE BAY', countryName: 'CANADA' },\r\n { placeId: 12775, cityName: 'RESOLUTE BAY', countryName: 'CANADA' },\r\n { placeId: 7900, cityName: 'RESTON', countryName: 'CANADA' },\r\n {\r\n placeId: 7902, cityName: 'REVELSTOKE', state: 'BC', countryName: 'CANADA',\r\n },\r\n { placeId: 7914, cityName: 'RIDING MOUNTAIN', countryName: 'CANADA' },\r\n { placeId: 2884, cityName: 'RIGOLET', countryName: 'CANADA' },\r\n { placeId: 7916, cityName: 'RIMBEY', countryName: 'CANADA' },\r\n { placeId: 7917, cityName: 'RIMOUSKI', countryName: 'CANADA' },\r\n { placeId: 7727, cityName: 'RIVERTON', countryName: 'CANADA' },\r\n { placeId: 7729, cityName: 'RIVIERE AUX SAUMONS', countryName: 'CANADA' },\r\n { placeId: 12805, cityName: 'RIVIERE BELL', countryName: 'CANADA' },\r\n { placeId: 7730, cityName: 'RIVIERE ROUGE', countryName: 'CANADA' },\r\n { placeId: 7731, cityName: 'RIVIERE-DU-LOUP', countryName: 'CANADA' },\r\n { placeId: 90, cityName: 'ROBERVAL', countryName: 'CANADA' },\r\n { placeId: 7929, cityName: 'ROBLIN', countryName: 'CANADA' },\r\n { placeId: 2891, cityName: 'ROCANVILLE', countryName: 'CANADA' },\r\n { placeId: 7940, cityName: 'ROCKGLEN', countryName: 'CANADA' },\r\n { placeId: 7942, cityName: 'ROCKTON', countryName: 'CANADA' },\r\n { placeId: 7944, cityName: 'ROCKY MOUNTAIN HOUSE', countryName: 'CANADA' },\r\n { placeId: 7945, cityName: 'RODNEY', countryName: 'CANADA' },\r\n { placeId: 7949, cityName: 'ROGERSVILLE', countryName: 'CANADA' },\r\n { placeId: 7953, cityName: 'ROLAND', countryName: 'CANADA' },\r\n { placeId: 7962, cityName: 'ROSENORT', countryName: 'CANADA' },\r\n { placeId: 7963, cityName: 'ROSETOWN', countryName: 'CANADA' },\r\n { placeId: 7965, cityName: 'ROSS RIVER', countryName: 'CANADA' },\r\n { placeId: 7969, cityName: 'ROUGEMONT', countryName: 'CANADA' },\r\n { placeId: 2928, cityName: 'ROUND LAKE', countryName: 'CANADA' },\r\n { placeId: 99, cityName: 'ROUYN', countryName: 'CANADA' },\r\n { placeId: 7987, cityName: 'RUSSELL', countryName: 'CANADA' },\r\n { placeId: 12879, cityName: 'SABLE ISLAND', countryName: 'CANADA' },\r\n { placeId: 2927, cityName: 'SACHIGO LAKE', countryName: 'CANADA' },\r\n { placeId: 12884, cityName: 'SACHS HARBOUR', countryName: 'CANADA' },\r\n { placeId: 12890, cityName: 'SAINT JOHN', countryName: 'CANADA' },\r\n { placeId: 7517, cityName: 'SAKAMI', countryName: 'CANADA' },\r\n { placeId: 8015, cityName: 'SALLUIT', countryName: 'CANADA' },\r\n { placeId: 8017, cityName: 'SALMON ARM', countryName: 'CANADA' },\r\n { placeId: 12936, cityName: 'SANDSPIT', countryName: 'CANADA' },\r\n { placeId: 8078, cityName: 'SANDY BAY', countryName: 'CANADA' },\r\n { placeId: 2929, cityName: 'SANDY LAKE', countryName: 'CANADA' },\r\n { placeId: 3895, cityName: 'SANIKILUAQ', countryName: 'CANADA' },\r\n { placeId: 8122, cityName: 'SARNIA', countryName: 'CANADA' },\r\n {\r\n placeId: 111, cityName: 'SASKATOON', state: 'SK', countryName: 'CANADA',\r\n },\r\n { placeId: 12970, cityName: 'SASKATOON', countryName: 'CANADA' },\r\n {\r\n placeId: 27, cityName: 'SAULT STE MARIE', state: 'ON', countryName: 'CANADA',\r\n },\r\n { placeId: 59, cityName: 'SCHEFFERVILLE', countryName: 'CANADA' },\r\n { placeId: 8147, cityName: 'SCOTTSFIELD AIRPARK', countryName: 'CANADA' },\r\n { placeId: 7522, cityName: 'SCUM LAKE', countryName: 'CANADA' },\r\n { placeId: 12995, cityName: 'SECHELT-GIBSONS', countryName: 'CANADA' },\r\n { placeId: 8153, cityName: 'SELKIRK', countryName: 'CANADA' },\r\n { placeId: 13003, cityName: 'SELKIRK', countryName: 'CANADA' },\r\n { placeId: 8188, cityName: 'SENNETERRE', countryName: 'CANADA' },\r\n { placeId: 13014, cityName: 'SEPT-ILES', countryName: 'CANADA' },\r\n { placeId: 8197, cityName: 'SEVOGLE', countryName: 'CANADA' },\r\n { placeId: 8201, cityName: 'SEXSMITH', countryName: 'CANADA' },\r\n { placeId: 8210, cityName: 'SHAMATTAWA', countryName: 'CANADA' },\r\n { placeId: 8215, cityName: 'SHAUNAVON', countryName: 'CANADA' },\r\n { placeId: 8218, cityName: 'SHEDIAC BRIDGE', countryName: 'CANADA' },\r\n { placeId: 8220, cityName: 'SHELBURNE', countryName: 'CANADA' },\r\n { placeId: 8225, cityName: 'SHELL', countryName: 'CANADA' },\r\n { placeId: 8228, cityName: 'SHELLBROOK', countryName: 'CANADA' },\r\n { placeId: 8230, cityName: 'SHERBROOKE', countryName: 'CANADA' },\r\n { placeId: 8239, cityName: 'SHOAL LAKE', countryName: 'CANADA' },\r\n { placeId: 13072, cityName: 'SHUSHWAP', countryName: 'CANADA' },\r\n { placeId: 8262, cityName: 'SILVER CITY', countryName: 'CANADA' },\r\n { placeId: 8263, cityName: 'SILVER FALLS', countryName: 'CANADA' },\r\n { placeId: 8266, cityName: 'SIMCOE', countryName: 'CANADA' },\r\n { placeId: 114, cityName: 'SIOUX LOOKOUT', countryName: 'CANADA' },\r\n { placeId: 2892, cityName: 'SIOUX NARROWS', countryName: 'CANADA' },\r\n { placeId: 2890, cityName: 'SLATE FALLS', countryName: 'CANADA' },\r\n { placeId: 134, cityName: 'SLAVE LAKE', countryName: 'CANADA' },\r\n { placeId: 8294, cityName: 'SMITHERS', countryName: 'CANADA' },\r\n { placeId: 13114, cityName: 'SMITHS FALLS', countryName: 'CANADA' },\r\n { placeId: 8297, cityName: 'SNAP LAKE', countryName: 'CANADA' },\r\n { placeId: 8298, cityName: 'SNARE RIVER', countryName: 'CANADA' },\r\n { placeId: 8299, cityName: 'SNOW LAKE', countryName: 'CANADA' },\r\n { placeId: 8312, cityName: 'SOMERSET', countryName: 'CANADA' },\r\n { placeId: 8319, cityName: 'SOREL', countryName: 'CANADA' },\r\n { placeId: 8324, cityName: 'SOURIS GLENWOOD INDUSTRIAL AIR', countryName: 'CANADA' },\r\n { placeId: 8328, cityName: 'SOUTH INDIAN LAKE', countryName: 'CANADA' },\r\n { placeId: 8374, cityName: 'SOUTHAMPTON', countryName: 'CANADA' },\r\n { placeId: 8375, cityName: 'SOUTHEND', countryName: 'CANADA' },\r\n { placeId: 3897, cityName: 'SPARWOOD', countryName: 'CANADA' },\r\n { placeId: 8384, cityName: 'SPIRIT RIVER', countryName: 'CANADA' },\r\n { placeId: 8385, cityName: 'SPIRITWOOD', countryName: 'CANADA' },\r\n { placeId: 8387, cityName: 'SPRING VALLEY', countryName: 'CANADA' },\r\n { placeId: 8389, cityName: 'SPRINGDALE', countryName: 'CANADA' },\r\n { placeId: 8395, cityName: 'SPRINGHOUSE', countryName: 'CANADA' },\r\n { placeId: 8397, cityName: 'SPRINGWATER', countryName: 'CANADA' },\r\n { placeId: 8399, cityName: 'SQUAMISH', countryName: 'CANADA' },\r\n { placeId: 8400, cityName: 'SQUAW RAPIDS', countryName: 'CANADA' },\r\n { placeId: 13174, cityName: 'ST ANDREWS', countryName: 'CANADA' },\r\n { placeId: 8403, cityName: 'ST ANTHONY', countryName: 'CANADA' },\r\n { placeId: 8406, cityName: 'ST BRUNO DE GUIGUES', countryName: 'CANADA' },\r\n { placeId: 8407, cityName: 'ST CATHARINES', countryName: 'CANADA' },\r\n { placeId: 8411, cityName: 'ST DONAT', countryName: 'CANADA' },\r\n { placeId: 8413, cityName: 'ST FREDERIC', countryName: 'CANADA' },\r\n { placeId: 8416, cityName: 'ST GEORGES', countryName: 'CANADA' },\r\n {\r\n placeId: 130, cityName: 'ST JOHN\\'S', state: 'NF', countryName: 'CANADA',\r\n },\r\n { placeId: 13194, cityName: 'ST LEWIS', countryName: 'CANADA' },\r\n { placeId: 8424, cityName: 'ST PAUL', countryName: 'CANADA' },\r\n { placeId: 13204, cityName: 'ST STEPHEN', countryName: 'CANADA' },\r\n { placeId: 8161, cityName: 'ST THERESA POINT', countryName: 'CANADA' },\r\n { placeId: 8162, cityName: 'ST THOMAS', countryName: 'CANADA' },\r\n { placeId: 8427, cityName: 'ST-ANSELME', countryName: 'CANADA' },\r\n { placeId: 13208, cityName: 'ST-AUGUSTIN', countryName: 'CANADA' },\r\n { placeId: 8428, cityName: 'ST-BASILE', countryName: 'CANADA' },\r\n { placeId: 8429, cityName: 'ST-DOMINIQUE', countryName: 'CANADA' },\r\n { placeId: 13211, cityName: 'ST-ESPRIT', countryName: 'CANADA' },\r\n { placeId: 8430, cityName: 'ST-FERDINAND', countryName: 'CANADA' },\r\n { placeId: 8431, cityName: 'ST-HONORE', countryName: 'CANADA' },\r\n { placeId: 51, cityName: 'ST-HUBERT', countryName: 'CANADA' },\r\n { placeId: 8432, cityName: 'ST-HYACINTHE QUEBEC', countryName: 'CANADA' },\r\n { placeId: 8434, cityName: 'ST-JEAN CHRYSOSTOME', countryName: 'CANADA' },\r\n { placeId: 8433, cityName: 'ST-JEAN', countryName: 'CANADA' },\r\n { placeId: 13218, cityName: 'ST-JEROME', countryName: 'CANADA' },\r\n { placeId: 8435, cityName: 'ST-JOVITE', countryName: 'CANADA' },\r\n { placeId: 8436, cityName: 'ST-LAMBERT-DE-LEVIS', countryName: 'CANADA' },\r\n { placeId: 8438, cityName: 'ST-LEONARD', countryName: 'CANADA' },\r\n { placeId: 8439, cityName: 'ST-LOUIS-DE-FRANCE', countryName: 'CANADA' },\r\n { placeId: 8440, cityName: 'ST-MATHIAS', countryName: 'CANADA' },\r\n { placeId: 8441, cityName: 'ST-MATHIEU-DE-BELOEIL', countryName: 'CANADA' },\r\n { placeId: 8442, cityName: 'ST-MICHEL-DES-SAINTS', countryName: 'CANADA' },\r\n { placeId: 8443, cityName: 'ST-NICEPHORE', countryName: 'CANADA' },\r\n { placeId: 8444, cityName: 'ST-QUENTIN', countryName: 'CANADA' },\r\n { placeId: 8445, cityName: 'ST-RAYMOND', countryName: 'CANADA' },\r\n { placeId: 8446, cityName: 'ST-SIMON-DE-BAGOT', countryName: 'CANADA' },\r\n { placeId: 8447, cityName: 'ST-VICTOR-DE-BEAUCE', countryName: 'CANADA' },\r\n { placeId: 8448, cityName: 'ST. BRIEUX', countryName: 'CANADA' },\r\n { placeId: 8449, cityName: 'ST. FRANCIS', countryName: 'CANADA' },\r\n { placeId: 8450, cityName: 'ST. JOSEPH ISLAND', countryName: 'CANADA' },\r\n { placeId: 13236, cityName: 'STANHOPE', countryName: 'CANADA' },\r\n { placeId: 8456, cityName: 'STANLEY', countryName: 'CANADA' },\r\n { placeId: 8457, cityName: 'STANSTEAD', countryName: 'CANADA' },\r\n { placeId: 8460, cityName: 'STARBUCK', countryName: 'CANADA' },\r\n { placeId: 8467, cityName: 'STE-AGNES-DE-DUNDEE', countryName: 'CANADA' },\r\n { placeId: 8468, cityName: 'STE-ANNE-DES-MONTS', countryName: 'CANADA' },\r\n { placeId: 8469, cityName: 'STE-JULIENNE', countryName: 'CANADA' },\r\n { placeId: 13253, cityName: 'STE-LUCIE-DE-BEAUREGARD', countryName: 'CANADA' },\r\n { placeId: 8470, cityName: 'STE. ROSE DU LAC', countryName: 'CANADA' },\r\n { placeId: 8473, cityName: 'STEEN RIVER', countryName: 'CANADA' },\r\n { placeId: 8474, cityName: 'STEEN TOWER', countryName: 'CANADA' },\r\n { placeId: 8475, cityName: 'STEINBACH', countryName: 'CANADA' },\r\n { placeId: 56, cityName: 'STEPHENVILLE', countryName: 'CANADA' },\r\n { placeId: 8480, cityName: 'STETTLER', countryName: 'CANADA' },\r\n { placeId: 8482, cityName: 'STEWART', countryName: 'CANADA' },\r\n { placeId: 8485, cityName: 'STONEY CREEK', countryName: 'CANADA' },\r\n { placeId: 8486, cityName: 'STONEY POINT', countryName: 'CANADA' },\r\n { placeId: 8487, cityName: 'STONY PLAIN', countryName: 'CANADA' },\r\n { placeId: 92, cityName: 'STONY RAPIDS', countryName: 'CANADA' },\r\n { placeId: 8490, cityName: 'STRAFFORDVILLE', countryName: 'CANADA' },\r\n { placeId: 8493, cityName: 'STRATFORD', countryName: 'CANADA' },\r\n { placeId: 8494, cityName: 'STRATHCLAIR', countryName: 'CANADA' },\r\n { placeId: 13280, cityName: 'STRATHMORE', countryName: 'CANADA' },\r\n { placeId: 8495, cityName: 'STRATHROY', countryName: 'CANADA' },\r\n { placeId: 91, cityName: 'SUDBURY', countryName: 'CANADA' },\r\n { placeId: 8512, cityName: 'SUMMER BEAVER', countryName: 'CANADA' },\r\n { placeId: 8513, cityName: 'SUMMERSIDE', countryName: 'CANADA' },\r\n { placeId: 8517, cityName: 'SUNDRE', countryName: 'CANADA' },\r\n { placeId: 8519, cityName: 'SUNRIDGE', countryName: 'CANADA' },\r\n { placeId: 13315, cityName: 'SUSSEX', countryName: 'CANADA' },\r\n { placeId: 8334, cityName: 'SWAN HILLS', countryName: 'CANADA' },\r\n { placeId: 8335, cityName: 'SWAN RIVER', countryName: 'CANADA' },\r\n { placeId: 127, cityName: 'SWIFT CURRENT', countryName: 'CANADA' },\r\n { placeId: 88, cityName: 'SYDNEY', countryName: 'CANADA' },\r\n { placeId: 8529, cityName: 'TABER', countryName: 'CANADA' },\r\n { placeId: 8543, cityName: 'TADOULE LAKE', countryName: 'CANADA' },\r\n { placeId: 124, cityName: 'TALOYOAK', countryName: 'CANADA' },\r\n { placeId: 8589, cityName: 'TASIUJAQ', countryName: 'CANADA' },\r\n { placeId: 8604, cityName: 'TEEPEE', countryName: 'CANADA' },\r\n { placeId: 8605, cityName: 'TEESWATER', countryName: 'CANADA' },\r\n { placeId: 8610, cityName: 'TELEGRAPH CREEK', countryName: 'CANADA' },\r\n { placeId: 116, cityName: 'TERRACE', countryName: 'CANADA' },\r\n { placeId: 8626, cityName: 'TESLIN', countryName: 'CANADA' },\r\n { placeId: 13403, cityName: 'TEXADA', countryName: 'CANADA' },\r\n { placeId: 75, cityName: 'THE PAS', countryName: 'CANADA' },\r\n { placeId: 8639, cityName: 'THESSALON', countryName: 'CANADA' },\r\n { placeId: 8640, cityName: 'THETFORD MINES', countryName: 'CANADA' },\r\n { placeId: 8641, cityName: 'THICKET PORTAGE', countryName: 'CANADA' },\r\n { placeId: 94, cityName: 'THOMPSON', countryName: 'CANADA' },\r\n { placeId: 8649, cityName: 'THORBURN', countryName: 'CANADA' },\r\n { placeId: 8652, cityName: 'THREE HILLS', countryName: 'CANADA' },\r\n { placeId: 83, cityName: 'THUNDER BAY', countryName: 'CANADA' },\r\n { placeId: 8665, cityName: 'TILLSONBURG', countryName: 'CANADA' },\r\n { placeId: 97, cityName: 'TIMMINS', countryName: 'CANADA' },\r\n { placeId: 8671, cityName: 'TIPELLA', countryName: 'CANADA' },\r\n { placeId: 8675, cityName: 'TISDALE', countryName: 'CANADA' },\r\n { placeId: 8677, cityName: 'TOAD RIVER', countryName: 'CANADA' },\r\n { placeId: 8678, cityName: 'TOBERMORY', countryName: 'CANADA' },\r\n { placeId: 8682, cityName: 'TOFIELD', countryName: 'CANADA' },\r\n { placeId: 8345, cityName: 'TOFINO', countryName: 'CANADA' },\r\n {\r\n placeId: 60, cityName: 'TORONTO', state: 'ON', countryName: 'CANADA',\r\n },\r\n { placeId: 8685, cityName: 'TOTTENHAM', countryName: 'CANADA' },\r\n { placeId: 8694, cityName: 'TRAIL', countryName: 'CANADA' },\r\n { placeId: 8696, cityName: 'TREHERNE', countryName: 'CANADA' },\r\n { placeId: 13478, cityName: 'TREHERNE', countryName: 'CANADA' },\r\n { placeId: 96, cityName: 'TRENTON', countryName: 'CANADA' },\r\n { placeId: 8700, cityName: 'TRENTON', countryName: 'CANADA' },\r\n { placeId: 8707, cityName: 'TROIS-RIVIERES', countryName: 'CANADA' },\r\n { placeId: 8708, cityName: 'TROUT LAKE', countryName: 'CANADA' },\r\n { placeId: 8709, cityName: 'TROUT LAKE', countryName: 'CANADA' },\r\n { placeId: 8716, cityName: 'TSACHA LAKE', countryName: 'CANADA' },\r\n { placeId: 8718, cityName: 'TSAY KEH', countryName: 'CANADA' },\r\n { placeId: 8719, cityName: 'TSETZI LAKE', countryName: 'CANADA' },\r\n { placeId: 8730, cityName: 'TSUNIAH LAKE', countryName: 'CANADA' },\r\n { placeId: 98, cityName: 'TUKTOYAKTUK', countryName: 'CANADA' },\r\n { placeId: 8739, cityName: 'TULITA', countryName: 'CANADA' },\r\n { placeId: 2880, cityName: 'TUMBLER RIDGE', countryName: 'CANADA' },\r\n { placeId: 8746, cityName: 'TUNDRA MINE/SALMITA MINE', countryName: 'CANADA' },\r\n { placeId: 2879, cityName: 'TUNGSTEN', countryName: 'CANADA' },\r\n { placeId: 8754, cityName: 'TURNER VALLEY BAR N RANCH', countryName: 'CANADA' },\r\n { placeId: 8761, cityName: 'TWIN CREEKS', countryName: 'CANADA' },\r\n { placeId: 8764, cityName: 'TWO HILLS', countryName: 'CANADA' },\r\n { placeId: 8765, cityName: 'TYENDINAGA', countryName: 'CANADA' },\r\n { placeId: 13536, cityName: 'ULUKHAKTOK', countryName: 'CANADA' },\r\n { placeId: 8786, cityName: 'UMIUJAQ', countryName: 'CANADA' },\r\n { placeId: 8793, cityName: 'UNITY', countryName: 'CANADA' },\r\n { placeId: 8800, cityName: 'URANIUM CITY', countryName: 'CANADA' },\r\n { placeId: 102, cityName: 'VAL-D\\'OR', countryName: 'CANADA' },\r\n { placeId: 8814, cityName: 'VALCOURT', countryName: 'CANADA' },\r\n { placeId: 8816, cityName: 'VALEMOUNT', countryName: 'CANADA' },\r\n { placeId: 8173, cityName: 'VALLEY', countryName: 'CANADA' },\r\n { placeId: 8819, cityName: 'VALLEYFIELD', countryName: 'CANADA' },\r\n { placeId: 8820, cityName: 'VALLEYVIEW', countryName: 'CANADA' },\r\n {\r\n placeId: 105, cityName: 'VANCOUVER', state: 'BC', countryName: 'CANADA',\r\n },\r\n { placeId: 8825, cityName: 'VANDERHOOF', countryName: 'CANADA' },\r\n { placeId: 8830, cityName: 'VAUXHALL', countryName: 'CANADA' },\r\n { placeId: 8833, cityName: 'VEGREVILLE', countryName: 'CANADA' },\r\n { placeId: 8836, cityName: 'VERMILION', countryName: 'CANADA' },\r\n { placeId: 2896, cityName: 'VERMILLION BAY', countryName: 'CANADA' },\r\n { placeId: 8838, cityName: 'VERNON', countryName: 'CANADA' },\r\n { placeId: 8843, cityName: 'VICTOR MINE', countryName: 'CANADA' },\r\n {\r\n placeId: 125, cityName: 'VICTORIA', state: 'CA', countryName: 'CANADA',\r\n },\r\n { placeId: 8847, cityName: 'VICTORIAVILLE', countryName: 'CANADA' },\r\n { placeId: 8853, cityName: 'VIKING', countryName: 'CANADA' },\r\n { placeId: 8866, cityName: 'VIRDEN', countryName: 'CANADA' },\r\n { placeId: 2908, cityName: 'VOISEY\\'S BAY', countryName: 'CANADA' },\r\n { placeId: 8879, cityName: 'VULCAN', countryName: 'CANADA' },\r\n { placeId: 13625, cityName: 'VULCAN', countryName: 'CANADA' },\r\n { placeId: 8881, cityName: 'WABASCA', countryName: 'CANADA' },\r\n { placeId: 108, cityName: 'WABUSH', countryName: 'CANADA' },\r\n { placeId: 8884, cityName: 'WADENA', countryName: 'CANADA' },\r\n { placeId: 8894, cityName: 'WAINWRIGHT', countryName: 'CANADA' },\r\n { placeId: 8900, cityName: 'WAKAW', countryName: 'CANADA' },\r\n { placeId: 2889, cityName: 'WAPEKEKA', countryName: 'CANADA' },\r\n { placeId: 8915, cityName: 'WARBURG', countryName: 'CANADA' },\r\n { placeId: 8917, cityName: 'WARNER', countryName: 'CANADA' },\r\n { placeId: 8919, cityName: 'WARREN', countryName: 'CANADA' },\r\n { placeId: 8928, cityName: 'WASKAGANISH', countryName: 'CANADA' },\r\n { placeId: 8936, cityName: 'WATERVILLE', countryName: 'CANADA' },\r\n { placeId: 8940, cityName: 'WATROUS', countryName: 'CANADA' },\r\n { placeId: 78, cityName: 'WATSON LAKE', countryName: 'CANADA' },\r\n { placeId: 8951, cityName: 'WAWA', countryName: 'CANADA' },\r\n { placeId: 8952, cityName: 'WAWOTA', countryName: 'CANADA' },\r\n { placeId: 8958, cityName: 'WEBEQUIE', countryName: 'CANADA' },\r\n { placeId: 8962, cityName: 'WEKWETI', countryName: 'CANADA' },\r\n { placeId: 13713, cityName: 'WELLAND', countryName: 'CANADA' },\r\n { placeId: 8970, cityName: 'WEMINDJI', countryName: 'CANADA' },\r\n { placeId: 8983, cityName: 'WEST POPLAR', countryName: 'CANADA' },\r\n { placeId: 8989, cityName: 'WESTLOCK', countryName: 'CANADA' },\r\n { placeId: 8992, cityName: 'WESTPORT', countryName: 'CANADA' },\r\n { placeId: 8179, cityName: 'WETASKIWIN', countryName: 'CANADA' },\r\n { placeId: 8181, cityName: 'WEYBURN', countryName: 'CANADA' },\r\n { placeId: 8182, cityName: 'WEYMAN', countryName: 'CANADA' },\r\n { placeId: 8183, cityName: 'WEYMONTACHIE', countryName: 'CANADA' },\r\n { placeId: 13743, cityName: 'WHALE COVE', countryName: 'CANADA' },\r\n { placeId: 8998, cityName: 'WHITECOURT', countryName: 'CANADA' },\r\n {\r\n placeId: 119, cityName: 'WHITEHORSE', state: '', countryName: 'CANADA',\r\n },\r\n { placeId: 9001, cityName: 'WHITEWOOD', countryName: 'CANADA' },\r\n { placeId: 9004, cityName: 'WIARTON', countryName: 'CANADA' },\r\n { placeId: 13761, cityName: 'WILDWOOD', countryName: 'CANADA' },\r\n { placeId: 9006, cityName: 'WILEY', countryName: 'CANADA' },\r\n { placeId: 13766, cityName: 'WILLIAMS HARBOUR', countryName: 'CANADA' },\r\n { placeId: 109, cityName: 'WILLIAMS LAKE', countryName: 'CANADA' },\r\n { placeId: 9017, cityName: 'WILLOW BUNCH', countryName: 'CANADA' },\r\n { placeId: 9022, cityName: 'WINCHESTER', countryName: 'CANADA' },\r\n { placeId: 9026, cityName: 'WINDERMERE', countryName: 'CANADA' },\r\n { placeId: 77, cityName: 'WINDSOR', countryName: 'CANADA' },\r\n { placeId: 9029, cityName: 'WINGHAM', countryName: 'CANADA' },\r\n { placeId: 9031, cityName: 'WINKLER', countryName: 'CANADA' },\r\n {\r\n placeId: 107, cityName: 'WINNIPEG', state: 'MB', countryName: 'CANADA',\r\n },\r\n { placeId: 9037, cityName: 'WINTERLAND', countryName: 'CANADA' },\r\n { placeId: 9044, cityName: 'WOLLASTON LAKE', countryName: 'CANADA' },\r\n { placeId: 9045, cityName: 'WOLVERINE', countryName: 'CANADA' },\r\n { placeId: 9047, cityName: 'WOODCOCK', countryName: 'CANADA' },\r\n { placeId: 8187, cityName: 'WOODSTOCK ONTARIO', countryName: 'CANADA' },\r\n { placeId: 8186, cityName: 'WOODSTOCK', countryName: 'CANADA' },\r\n { placeId: 9053, cityName: 'WRIGLEY', countryName: 'CANADA' },\r\n { placeId: 9054, cityName: 'WUNNUMIN LAKE', countryName: 'CANADA' },\r\n { placeId: 9055, cityName: 'WYEVALE', countryName: 'CANADA' },\r\n { placeId: 9056, cityName: 'WYNYARD', countryName: 'CANADA' },\r\n { placeId: 13853, cityName: 'YARMOUTH', countryName: 'CANADA' },\r\n { placeId: 133, cityName: 'YELLOWKNIFE', countryName: 'CANADA' },\r\n { placeId: 9094, cityName: 'YORK LANDING', countryName: 'CANADA' },\r\n { placeId: 9092, cityName: 'YORK', countryName: 'CANADA' },\r\n { placeId: 85, cityName: 'YORKTON', countryName: 'CANADA' },\r\n { placeId: 9104, cityName: 'ZAMA LAKE', countryName: 'CANADA' },\r\n { placeId: 9103, cityName: 'ZAMA', countryName: 'CANADA' },\r\n { placeId: 9122, cityName: 'ZHODA', countryName: 'CANADA' },\r\n { placeId: 2933, cityName: 'EL BERRIEL', countryName: 'CANARY IS' },\r\n { placeId: 1173, cityName: 'FUERTEVENTURA', countryName: 'CANARY IS' },\r\n { placeId: 1175, cityName: 'GRAN CANARIA', countryName: 'CANARY IS' },\r\n { placeId: 2932, cityName: 'HIERRO', countryName: 'CANARY IS' },\r\n { placeId: 2931, cityName: 'LA GOMERA', countryName: 'CANARY IS' },\r\n { placeId: 1174, cityName: 'LA PALMA', countryName: 'CANARY IS' },\r\n { placeId: 1176, cityName: 'LANZAROTE', countryName: 'CANARY IS' },\r\n { placeId: 1178, cityName: 'TENERIFE-NORTH', countryName: 'CANARY IS' },\r\n { placeId: 1177, cityName: 'TENERIFE-SOUTH', countryName: 'CANARY IS' },\r\n { placeId: 6719, cityName: 'MAIO', countryName: 'CAPE VERDE ISLANDS' },\r\n { placeId: 7085, cityName: 'MOSTEIROS', countryName: 'CAPE VERDE ISLANDS' },\r\n { placeId: 1199, cityName: 'PRAIA', countryName: 'CAPE VERDE ISLANDS' },\r\n { placeId: 7760, cityName: 'PREGUICA', countryName: 'CAPE VERDE ISLANDS' },\r\n { placeId: 7839, cityName: 'RABIL', countryName: 'CAPE VERDE ISLANDS' },\r\n { placeId: 1198, cityName: 'SAL', countryName: 'CAPE VERDE ISLANDS' },\r\n { placeId: 8111, cityName: 'SAO FILIPE', countryName: 'CAPE VERDE ISLANDS' },\r\n { placeId: 1200, cityName: 'SAO VICENTE', countryName: 'CAPE VERDE ISLANDS' },\r\n { placeId: 2323, cityName: 'CAYMAN BRAC', countryName: 'CAYMAN IS' },\r\n { placeId: 2324, cityName: 'GRAND CAYMAN', countryName: 'CAYMAN IS' },\r\n { placeId: 4080, cityName: 'ALINDAO', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 4318, cityName: 'BAMBARI', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 4332, cityName: 'BANGASSOU', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 1127, cityName: 'BANGUI', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 4437, cityName: 'BERBERATI', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 4480, cityName: 'BIRAO', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 4556, cityName: 'BOSSANGOA', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 4563, cityName: 'BOUAR', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 4579, cityName: 'BOZOUM', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 4595, cityName: 'BRIA', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 6930, cityName: 'MELLE', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 7162, cityName: 'N\\'DELE', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 7348, cityName: 'OBO', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 7300, cityName: 'OUADDA', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 7438, cityName: 'OUANDA-DJALLE', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 7502, cityName: 'RAFAI', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 9066, cityName: 'YALINGA', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 9118, cityName: 'ZEMIO', countryName: 'CENTRAL AFRICAN REP' },\r\n { placeId: 9141, cityName: 'ABECHE', countryName: 'CHAD' },\r\n { placeId: 4103, cityName: 'AM-TIMAN', countryName: 'CHAD' },\r\n { placeId: 4261, cityName: 'ATI', countryName: 'CHAD' },\r\n { placeId: 4344, cityName: 'BARDAI', countryName: 'CHAD' },\r\n { placeId: 4474, cityName: 'BILTINE', countryName: 'CHAD' },\r\n { placeId: 4526, cityName: 'BOKORO', countryName: 'CHAD' },\r\n { placeId: 4529, cityName: 'BOL', countryName: 'CHAD' },\r\n { placeId: 4538, cityName: 'BONGOR', countryName: 'CHAD' },\r\n { placeId: 4573, cityName: 'BOUSSO', countryName: 'CHAD' },\r\n { placeId: 5348, cityName: 'FADA', countryName: 'CHAD' },\r\n { placeId: 5380, cityName: 'FAYA-LARGEAU', countryName: 'CHAD' },\r\n { placeId: 5607, cityName: 'GOZ-BEIDA', countryName: 'CHAD' },\r\n { placeId: 6407, cityName: 'LAI', countryName: 'CHAD' },\r\n { placeId: 6787, cityName: 'MAO', countryName: 'CHAD' },\r\n { placeId: 7026, cityName: 'MONGO', countryName: 'CHAD' },\r\n { placeId: 7091, cityName: 'MOUNDOU', countryName: 'CHAD' },\r\n { placeId: 1156, cityName: 'N\\'DJAMENA', countryName: 'CHAD' },\r\n { placeId: 7477, cityName: 'PALA', countryName: 'CHAD' },\r\n { placeId: 8119, cityName: 'SARH', countryName: 'CHAD' },\r\n { placeId: 9126, cityName: 'ZOUAR', countryName: 'CHAD' },\r\n { placeId: 10490, cityName: 'DIEGO GARCIA', countryName: 'CHAGOS ARCHIPELAGO' },\r\n { placeId: 4093, cityName: 'ALTO PALENA', countryName: 'CHILE' },\r\n { placeId: 4128, cityName: 'ANCUD', countryName: 'CHILE' },\r\n { placeId: 4163, cityName: 'ANTOFAGASTA', countryName: 'CHILE' },\r\n { placeId: 4215, cityName: 'ARICA', countryName: 'CHILE' },\r\n { placeId: 2496, cityName: 'BALMACEDA', countryName: 'CHILE' },\r\n { placeId: 4678, cityName: 'CALAMA', countryName: 'CHILE' },\r\n { placeId: 4682, cityName: 'CALDERA', countryName: 'CHILE' },\r\n { placeId: 4756, cityName: 'CASTRO, CHILE', countryName: 'CHILE' },\r\n { placeId: 4779, cityName: 'CERRO SOMBRERO', countryName: 'CHILE' },\r\n { placeId: 4785, cityName: 'CHAITEN', countryName: 'CHILE' },\r\n { placeId: 3988, cityName: 'CHANARAL', countryName: 'CHILE' },\r\n { placeId: 4823, cityName: 'CHILE CHICO', countryName: 'CHILE' },\r\n { placeId: 4825, cityName: 'CHILLAN', countryName: 'CHILE' },\r\n { placeId: 4912, cityName: 'COCHRANE', countryName: 'CHILE' },\r\n { placeId: 2499, cityName: 'CONCEPCION', countryName: 'CHILE' },\r\n { placeId: 4948, cityName: 'CONSTITUCION', countryName: 'CHILE' },\r\n { placeId: 4955, cityName: 'COPIAPO', countryName: 'CHILE' },\r\n { placeId: 4983, cityName: 'COYHAIQUE', countryName: 'CHILE' },\r\n { placeId: 5012, cityName: 'CURACAVI', countryName: 'CHILE' },\r\n { placeId: 5296, cityName: 'EL SALVADOR', countryName: 'CHILE' },\r\n { placeId: 5500, cityName: 'FUNDO LOMA LARGA', countryName: 'CHILE' },\r\n { placeId: 5503, cityName: 'FUTALEUFU', countryName: 'CHILE' },\r\n { placeId: 5924, cityName: 'ICALMA', countryName: 'CHILE' },\r\n { placeId: 5986, cityName: 'IQUIQUE', countryName: 'CHILE' },\r\n { placeId: 5999, cityName: 'ISLA DAWSON', countryName: 'CHILE' },\r\n { placeId: 6005, cityName: 'ISLA MOCHA', countryName: 'CHILE' },\r\n { placeId: 2503, cityName: 'LA SERENA', countryName: 'CHILE' },\r\n { placeId: 6386, cityName: 'LA VINA', countryName: 'CHILE' },\r\n { placeId: 6563, cityName: 'LINARES', countryName: 'CHILE' },\r\n { placeId: 6590, cityName: 'LLANADA GRANDE', countryName: 'CHILE' },\r\n { placeId: 6621, cityName: 'LOS ANDES', countryName: 'CHILE' },\r\n { placeId: 6622, cityName: 'LOS ANGELES', countryName: 'CHILE' },\r\n { placeId: 6815, cityName: 'MARINA DE RAPEL', countryName: 'CHILE' },\r\n { placeId: 11943, cityName: 'MELINKA', countryName: 'CHILE' },\r\n { placeId: 2501, cityName: 'OSORNO', countryName: 'CHILE' },\r\n { placeId: 12385, cityName: 'OVALLE', countryName: 'CHILE' },\r\n { placeId: 7485, cityName: 'PALO ALTO', countryName: 'CHILE' },\r\n { placeId: 7661, cityName: 'PIRQUE', countryName: 'CHILE' },\r\n { placeId: 7742, cityName: 'PORVENIR', countryName: 'CHILE' },\r\n { placeId: 7777, cityName: 'PUCON', countryName: 'CHILE' },\r\n { placeId: 7780, cityName: 'PUERTO AYSEN', countryName: 'CHILE' },\r\n { placeId: 2505, cityName: 'PUERTO MONTT', countryName: 'CHILE' },\r\n { placeId: 2502, cityName: 'PUERTO NATALES', countryName: 'CHILE' },\r\n { placeId: 7794, cityName: 'PUERTO VARAS', countryName: 'CHILE' },\r\n { placeId: 7795, cityName: 'PUERTO WILLIAMS', countryName: 'CHILE' },\r\n { placeId: 2497, cityName: 'PUNTA ARENAS', countryName: 'CHILE' },\r\n { placeId: 7810, cityName: 'PUYUHUAPI', countryName: 'CHILE' },\r\n { placeId: 7826, cityName: 'QUELLON', countryName: 'CHILE' },\r\n { placeId: 7836, cityName: 'QUINTERO', countryName: 'CHILE' },\r\n { placeId: 7848, cityName: 'RANCAGUA', countryName: 'CHILE' },\r\n { placeId: 7854, cityName: 'RAPEL', countryName: 'CHILE' },\r\n { placeId: 7928, cityName: 'ROBINSON CRUSOE IS', countryName: 'CHILE' },\r\n { placeId: 7734, cityName: 'RUSSFIN', countryName: 'CHILE' },\r\n { placeId: 7519, cityName: 'SALAR DE ATACAMA', countryName: 'CHILE' },\r\n { placeId: 8039, cityName: 'SAN FELIPE', countryName: 'CHILE' },\r\n { placeId: 8040, cityName: 'SAN FERNANDO', countryName: 'CHILE' },\r\n { placeId: 8058, cityName: 'SAN PEDRO DE ATACAMA', countryName: 'CHILE' },\r\n { placeId: 8066, cityName: 'SAN SEBASTIAN', countryName: 'CHILE' },\r\n { placeId: 2498, cityName: 'SANTIAGO', countryName: 'CHILE' },\r\n { placeId: 12956, cityName: 'SANTO DOMINGO', countryName: 'CHILE' },\r\n { placeId: 8558, cityName: 'TALCA', countryName: 'CHILE' },\r\n { placeId: 8563, cityName: 'TALTAL', countryName: 'CHILE' },\r\n { placeId: 2504, cityName: 'TEMUCO', countryName: 'CHILE' },\r\n { placeId: 8657, cityName: 'TIC TOC', countryName: 'CHILE' },\r\n { placeId: 8681, cityName: 'TOCOPILLA', countryName: 'CHILE' },\r\n { placeId: 8815, cityName: 'VALDIVIA', countryName: 'CHILE' },\r\n { placeId: 8172, cityName: 'VALLENAR', countryName: 'CHILE' },\r\n { placeId: 8844, cityName: 'VICTORIA', countryName: 'CHILE' },\r\n { placeId: 8857, cityName: 'VILLA O\\'HIGGINS', countryName: 'CHILE' },\r\n { placeId: 8860, cityName: 'VINA DEL MAR', countryName: 'CHILE' },\r\n // { placeId: 9461, cityName: '', countryName: 'CHINA PR OF' },\r\n { placeId: 13921, cityName: 'Yining', countryName: 'CHINA PR OF' },\r\n { placeId: 9236, cityName: 'ZHEJIANG', countryName: 'CHINA PR OF' },\r\n // { placeId: 9436, cityName: '', countryName: 'CHINA, PR OF' },\r\n { placeId: 14152, cityName: 'BAISHAN', countryName: 'CHINA, PR OF' },\r\n { placeId: 2779, cityName: 'BEIJING', countryName: 'CHINA, PR OF' },\r\n { placeId: 2808, cityName: 'CHANGCHUN', countryName: 'CHINA, PR OF' },\r\n { placeId: 2785, cityName: 'CHANGSHA', countryName: 'CHINA, PR OF' },\r\n { placeId: 2805, cityName: 'CHENGDU', countryName: 'CHINA, PR OF' },\r\n { placeId: 2804, cityName: 'CHONGQING', countryName: 'CHINA, PR OF' },\r\n { placeId: 2810, cityName: 'DALIAN', countryName: 'CHINA, PR OF' },\r\n { placeId: 14249, cityName: 'DEHONG', countryName: 'CHINA, PR OF' },\r\n { placeId: 2798, cityName: 'FUZHOU', countryName: 'CHINA, PR OF' },\r\n { placeId: 2784, cityName: 'GUANGZHOU', countryName: 'CHINA, PR OF' },\r\n { placeId: 2786, cityName: 'GUILIN', countryName: 'CHINA, PR OF' },\r\n { placeId: 2791, cityName: 'HAIKOU', countryName: 'CHINA, PR OF' },\r\n { placeId: 5769, cityName: 'HAILAR', countryName: 'CHINA, PR OF' },\r\n { placeId: 2799, cityName: 'HANGZHOU', countryName: 'CHINA, PR OF' },\r\n { placeId: 2809, cityName: 'HARBIN', countryName: 'CHINA, PR OF' },\r\n { placeId: 2801, cityName: 'HEFEI', countryName: 'CHINA, PR OF' },\r\n { placeId: 2780, cityName: 'HOHHOT', countryName: 'CHINA, PR OF' },\r\n { placeId: 5885, cityName: 'HOTAN', countryName: 'CHINA, PR OF' },\r\n { placeId: 6061, cityName: 'JIAMUSI', countryName: 'CHINA, PR OF' },\r\n { placeId: 6064, cityName: 'JINAN', countryName: 'CHINA, PR OF' },\r\n { placeId: 2806, cityName: 'KASHI', countryName: 'CHINA, PR OF' },\r\n { placeId: 2796, cityName: 'KUNMING', countryName: 'CHINA, PR OF' },\r\n { placeId: 2793, cityName: 'LANZHOU', countryName: 'CHINA, PR OF' },\r\n {\r\n placeId: 14151, cityName: 'LIBO', state: 'Guizhou Province<', countryName: 'CHINA, PR OF',\r\n },\r\n { placeId: 14250, cityName: 'LINCANG', countryName: 'CHINA, PR OF' },\r\n { placeId: 14199, cityName: 'LUOYANG', countryName: 'CHINA, PR OF' },\r\n { placeId: 7118, cityName: 'MUDANJIANG', countryName: 'CHINA, PR OF' },\r\n { placeId: 7180, cityName: 'NANCHANG', countryName: 'CHINA, PR OF' },\r\n { placeId: 2800, cityName: 'NANJING', countryName: 'CHINA, PR OF' },\r\n { placeId: 2787, cityName: 'NANNING', countryName: 'CHINA, PR OF' },\r\n { placeId: 7261, cityName: 'NINGBO', countryName: 'CHINA, PR OF' },\r\n { placeId: 2803, cityName: 'QINGDAO', countryName: 'CHINA, PR OF' },\r\n { placeId: 7819, cityName: 'QIQIHAR', countryName: 'CHINA, PR OF' },\r\n { placeId: 2792, cityName: 'SANYA', countryName: 'CHINA, PR OF' },\r\n { placeId: 2802, cityName: 'SHANGHAI', countryName: 'CHINA, PR OF' },\r\n { placeId: 2811, cityName: 'SHENYANG', countryName: 'CHINA, PR OF' },\r\n { placeId: 2788, cityName: 'SHENZHEN', countryName: 'CHINA, PR OF' },\r\n { placeId: 2781, cityName: 'SHIJIAZHUANG', countryName: 'CHINA, PR OF' },\r\n { placeId: 2783, cityName: 'TAIYUAN', countryName: 'CHINA, PR OF' },\r\n { placeId: 2782, cityName: 'TIANJIN', countryName: 'CHINA, PR OF' },\r\n {\r\n placeId: 9480, cityName: 'TONGLIAO', state: 'INNER MONGOLIA', countryName: 'CHINA, PR OF',\r\n },\r\n { placeId: 2807, cityName: 'URUMQI', countryName: 'CHINA, PR OF' },\r\n { placeId: 13910, cityName: 'WENZHOU', countryName: 'CHINA, PR OF' },\r\n { placeId: 2790, cityName: 'WUHAN', countryName: 'CHINA, PR OF' },\r\n {\r\n placeId: 13905, cityName: 'Wuxi', state: 'JIANGSU', countryName: 'CHINA, PR OF',\r\n },\r\n { placeId: 2794, cityName: 'XI\\'AN', countryName: 'CHINA, PR OF' },\r\n { placeId: 2797, cityName: 'XIAMEN', countryName: 'CHINA, PR OF' },\r\n { placeId: 9058, cityName: 'XICHANG', countryName: 'CHINA, PR OF' },\r\n { placeId: 9060, cityName: 'XISHUANGBANNA', countryName: 'CHINA, PR OF' },\r\n { placeId: 9072, cityName: 'YANJI', countryName: 'CHINA, PR OF' },\r\n { placeId: 9073, cityName: 'YANTAI', countryName: 'CHINA, PR OF' },\r\n { placeId: 2789, cityName: 'ZHENGZHOU', countryName: 'CHINA, PR OF' },\r\n {\r\n placeId: 14150, cityName: 'Zhongwei', state: 'NINGXIA', countryName: 'CHINA, PR OF',\r\n },\r\n // { placeId: 9441, cityName: '', countryName: 'CHINA' },\r\n { placeId: 13901, cityName: 'Dandong', countryName: 'CHINA' },\r\n { placeId: 13932, cityName: 'Datong', countryName: 'CHINA' },\r\n {\r\n placeId: 13934, cityName: 'Dunhuang', state: 'GANSU', countryName: 'CHINA',\r\n },\r\n { placeId: 11022, cityName: 'GUIYANG', countryName: 'CHINA' },\r\n { placeId: 11204, cityName: 'HUANGSHAN', countryName: 'CHINA' },\r\n { placeId: 11211, cityName: 'HULUNBEIER', countryName: 'CHINA' },\r\n { placeId: 13931, cityName: 'Jiayuguan', countryName: 'CHINA' },\r\n { placeId: 11333, cityName: 'JIEYANG', countryName: 'CHINA' },\r\n { placeId: 11685, cityName: 'LHASA', countryName: 'CHINA' },\r\n { placeId: 13923, cityName: 'Lianyungang', countryName: 'CHINA' },\r\n {\r\n placeId: 13903, cityName: 'Lijiang', state: 'YUNNAN', countryName: 'CHINA',\r\n },\r\n { placeId: 9476, cityName: 'LONGYAN', countryName: 'CHINA' },\r\n { placeId: 11839, cityName: 'MANZHOULI', countryName: 'CHINA' },\r\n { placeId: 9156, cityName: 'NANTONG', countryName: 'CHINA' },\r\n { placeId: 12693, cityName: 'QUANZHOU', countryName: 'CHINA' },\r\n { placeId: 13709, cityName: 'WEIHAI', countryName: 'CHINA' },\r\n { placeId: 13838, cityName: 'XINING', countryName: 'CHINA' },\r\n { placeId: 13846, cityName: 'YANCHENG', countryName: 'CHINA' },\r\n { placeId: 13933, cityName: 'Yichang', countryName: 'CHINA' },\r\n { placeId: 13862, cityName: 'YINCHUAN', countryName: 'CHINA' },\r\n { placeId: 13891, cityName: 'ZHANGJIAJIE', countryName: 'CHINA' },\r\n { placeId: 4010, cityName: 'ACANDI', countryName: 'COLOMBIA' },\r\n { placeId: 4023, cityName: 'AGUACHICA', countryName: 'COLOMBIA' },\r\n { placeId: 4201, cityName: 'ARARACUARA', countryName: 'COLOMBIA' },\r\n { placeId: 4202, cityName: 'ARAUCA', countryName: 'COLOMBIA' },\r\n { placeId: 4220, cityName: 'ARMENIA', countryName: 'COLOMBIA' },\r\n { placeId: 4300, cityName: 'BAHIA SOLANO', countryName: 'COLOMBIA' },\r\n { placeId: 4354, cityName: 'BARRANCABERMEJA', countryName: 'COLOMBIA' },\r\n { placeId: 2513, cityName: 'BARRANQUILLA', countryName: 'COLOMBIA' },\r\n { placeId: 2512, cityName: 'BOGOTA', countryName: 'COLOMBIA' },\r\n { placeId: 4617, cityName: 'BUCARAMANGA', countryName: 'COLOMBIA' },\r\n { placeId: 4619, cityName: 'BUENAVENTURA', countryName: 'COLOMBIA' },\r\n { placeId: 2515, cityName: 'CALI', countryName: 'COLOMBIA' },\r\n { placeId: 4731, cityName: 'CAREPA', countryName: 'COLOMBIA' },\r\n { placeId: 4740, cityName: 'CARMEN DE BOLIVAR', countryName: 'COLOMBIA' },\r\n { placeId: 2514, cityName: 'CARTAGENA', countryName: 'COLOMBIA' },\r\n { placeId: 4195, cityName: 'CARTAGO', countryName: 'COLOMBIA' },\r\n { placeId: 4750, cityName: 'CARURU', countryName: 'COLOMBIA' },\r\n { placeId: 4762, cityName: 'CAUCASIA', countryName: 'COLOMBIA' },\r\n { placeId: 3996, cityName: 'CHAPARRAL', countryName: 'COLOMBIA' },\r\n { placeId: 4821, cityName: 'CHIGORODO', countryName: 'COLOMBIA' },\r\n { placeId: 4864, cityName: 'CIMITARRA', countryName: 'COLOMBIA' },\r\n { placeId: 4941, cityName: 'CONDOTO', countryName: 'COLOMBIA' },\r\n { placeId: 4197, cityName: 'COROZAL', countryName: 'COLOMBIA' },\r\n { placeId: 4980, cityName: 'COVENAS', countryName: 'COLOMBIA' },\r\n { placeId: 4987, cityName: 'CRAVO NORTE', countryName: 'COLOMBIA' },\r\n { placeId: 2848, cityName: 'CUCUTA', countryName: 'COLOMBIA' },\r\n { placeId: 5277, cityName: 'EL BAGRE', countryName: 'COLOMBIA' },\r\n { placeId: 5278, cityName: 'EL BANCO', countryName: 'COLOMBIA' },\r\n { placeId: 5299, cityName: 'EL YOPAL', countryName: 'COLOMBIA' },\r\n { placeId: 5414, cityName: 'FLORENCIA', countryName: 'COLOMBIA' },\r\n { placeId: 5536, cityName: 'GARZON', countryName: 'COLOMBIA' },\r\n { placeId: 5407, cityName: 'GIRARDOT', countryName: 'COLOMBIA' },\r\n { placeId: 5727, cityName: 'GUAPI', countryName: 'COLOMBIA' },\r\n { placeId: 5733, cityName: 'GUAYMARAL', countryName: 'COLOMBIA' },\r\n { placeId: 5618, cityName: 'HATO COROZAL', countryName: 'COLOMBIA' },\r\n { placeId: 5921, cityName: 'IBAGUE', countryName: 'COLOMBIA' },\r\n { placeId: 5984, cityName: 'IPIALES', countryName: 'COLOMBIA' },\r\n { placeId: 6006, cityName: 'ISLA PROVIDENCIA', countryName: 'COLOMBIA' },\r\n { placeId: 6378, cityName: 'LA PEDRERA', countryName: 'COLOMBIA' },\r\n { placeId: 2516, cityName: 'LETICIA', countryName: 'COLOMBIA' },\r\n { placeId: 6699, cityName: 'MADRID', countryName: 'COLOMBIA' },\r\n { placeId: 6706, cityName: 'MAGANGUE', countryName: 'COLOMBIA' },\r\n { placeId: 6715, cityName: 'MAICAO', countryName: 'COLOMBIA' },\r\n { placeId: 6730, cityName: 'MALAGA', countryName: 'COLOMBIA' },\r\n { placeId: 6761, cityName: 'MANI', countryName: 'COLOMBIA' },\r\n { placeId: 6770, cityName: 'MANIZALES', countryName: 'COLOMBIA' },\r\n { placeId: 6822, cityName: 'MARIQUITA', countryName: 'COLOMBIA' },\r\n { placeId: 6918, cityName: 'MEDELLIN', countryName: 'COLOMBIA' },\r\n { placeId: 6994, cityName: 'MIRAFLORES', countryName: 'COLOMBIA' },\r\n { placeId: 6999, cityName: 'MITU', countryName: 'COLOMBIA' },\r\n { placeId: 7021, cityName: 'MOMPOS', countryName: 'COLOMBIA' },\r\n { placeId: 7043, cityName: 'MONTELIBANO', countryName: 'COLOMBIA' },\r\n { placeId: 7046, cityName: 'MONTERIA', countryName: 'COLOMBIA' },\r\n { placeId: 7208, cityName: 'NECOCLI', countryName: 'COLOMBIA' },\r\n { placeId: 7215, cityName: 'NEIVA', countryName: 'COLOMBIA' },\r\n { placeId: 7322, cityName: 'NUQUI', countryName: 'COLOMBIA' },\r\n { placeId: 7354, cityName: 'OCANA', countryName: 'COLOMBIA' },\r\n { placeId: 7417, cityName: 'ORITO', countryName: 'COLOMBIA' },\r\n { placeId: 7422, cityName: 'OROCUE', countryName: 'COLOMBIA' },\r\n { placeId: 7473, cityName: 'PAIPA', countryName: 'COLOMBIA' },\r\n { placeId: 6511, cityName: 'PALANQUERO', countryName: 'COLOMBIA' },\r\n { placeId: 7572, cityName: 'PASTO', countryName: 'COLOMBIA' },\r\n { placeId: 7589, cityName: 'PAZ DE ARIPORO', countryName: 'COLOMBIA' },\r\n { placeId: 7611, cityName: 'PEREIRA', countryName: 'COLOMBIA' },\r\n { placeId: 7662, cityName: 'PITALITO', countryName: 'COLOMBIA' },\r\n { placeId: 7688, cityName: 'POPAYAN', countryName: 'COLOMBIA' },\r\n { placeId: 7713, cityName: 'PORTETE', countryName: 'COLOMBIA' },\r\n { placeId: 7778, cityName: 'PUERTO ASIS', countryName: 'COLOMBIA' },\r\n { placeId: 7781, cityName: 'PUERTO BERRIO', countryName: 'COLOMBIA' },\r\n { placeId: 7785, cityName: 'PUERTO CARRENO', countryName: 'COLOMBIA' },\r\n { placeId: 7787, cityName: 'PUERTO INIRIDA', countryName: 'COLOMBIA' },\r\n { placeId: 7788, cityName: 'PUERTO LEGUIZAMO', countryName: 'COLOMBIA' },\r\n { placeId: 7829, cityName: 'QUIBDO', countryName: 'COLOMBIA' },\r\n { placeId: 7837, cityName: 'QUIPAMA', countryName: 'COLOMBIA' },\r\n { placeId: 7893, cityName: 'REMEDIOS', countryName: 'COLOMBIA' },\r\n { placeId: 7921, cityName: 'RIOHACHA', countryName: 'COLOMBIA' },\r\n { placeId: 2517, cityName: 'RIONEGRO', countryName: 'COLOMBIA' },\r\n { placeId: 2518, cityName: 'SAN ANDRES', countryName: 'COLOMBIA' },\r\n { placeId: 8051, cityName: 'SAN JOSE DEL GUAVIARE', countryName: 'COLOMBIA' },\r\n { placeId: 8069, cityName: 'SAN VICENTE DEL CAGUAN', countryName: 'COLOMBIA' },\r\n { placeId: 8099, cityName: 'SANTA MARTA', countryName: 'COLOMBIA' },\r\n { placeId: 8118, cityName: 'SARAVENA', countryName: 'COLOMBIA' },\r\n { placeId: 8304, cityName: 'SOGAMOSO', countryName: 'COLOMBIA' },\r\n { placeId: 8452, cityName: 'STA FE DE ANTIOQUIA', countryName: 'COLOMBIA' },\r\n { placeId: 8570, cityName: 'TAME', countryName: 'COLOMBIA' },\r\n { placeId: 8656, cityName: 'TIBU', countryName: 'COLOMBIA' },\r\n { placeId: 8353, cityName: 'TOLU', countryName: 'COLOMBIA' },\r\n { placeId: 8706, cityName: 'TRINIDAD', countryName: 'COLOMBIA' },\r\n { placeId: 8741, cityName: 'TULUA', countryName: 'COLOMBIA' },\r\n { placeId: 8742, cityName: 'TUMACO', countryName: 'COLOMBIA' },\r\n { placeId: 8753, cityName: 'TURBO', countryName: 'COLOMBIA' },\r\n { placeId: 8802, cityName: 'URRAO', countryName: 'COLOMBIA' },\r\n { placeId: 8170, cityName: 'VALLEDUPAR', countryName: 'COLOMBIA' },\r\n { placeId: 8858, cityName: 'VILLAGARZON', countryName: 'COLOMBIA' },\r\n { placeId: 2857, cityName: 'VILLAVICENCIO', countryName: 'COLOMBIA' },\r\n { placeId: 4150, cityName: 'ANJOUAN', countryName: 'COMOROS' },\r\n { placeId: 7008, cityName: 'MOHELI', countryName: 'COMOROS' },\r\n { placeId: 1134, cityName: 'MORONI', countryName: 'COMOROS' },\r\n { placeId: 9137, cityName: 'ABA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4008, cityName: 'ABUMUMBAZI', countryName: 'CONGO, DR OF' },\r\n { placeId: 4034, cityName: 'AKETI', countryName: 'CONGO, DR OF' },\r\n { placeId: 4319, cityName: 'BAMBILI-DINGILA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4327, cityName: 'BANDUNDU', countryName: 'CONGO, DR OF' },\r\n { placeId: 4330, cityName: 'BANGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4364, cityName: 'BASANKUSU', countryName: 'CONGO, DR OF' },\r\n { placeId: 4367, cityName: 'BASONGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 4180, cityName: 'BAU', countryName: 'CONGO, DR OF' },\r\n { placeId: 4425, cityName: 'BENI-DIBELE', countryName: 'CONGO, DR OF' },\r\n { placeId: 4423, cityName: 'BENI', countryName: 'CONGO, DR OF' },\r\n { placeId: 4428, cityName: 'BENO', countryName: 'CONGO, DR OF' },\r\n { placeId: 4434, cityName: 'BEONGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 4460, cityName: 'BIBANGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4476, cityName: 'BINDJA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4477, cityName: 'BINGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4517, cityName: 'BOENDE', countryName: 'CONGO, DR OF' },\r\n { placeId: 4523, cityName: 'BOKADA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4525, cityName: 'BOKELA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4527, cityName: 'BOKOTE', countryName: 'CONGO, DR OF' },\r\n { placeId: 4528, cityName: 'BOKUNGU', countryName: 'CONGO, DR OF' },\r\n { placeId: 4530, cityName: 'BOLILA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4531, cityName: 'BOLONGONKELE', countryName: 'CONGO, DR OF' },\r\n { placeId: 4532, cityName: 'BOMA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4537, cityName: 'BONGIMBA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4539, cityName: 'BONKITA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4550, cityName: 'BOSANGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 4554, cityName: 'BOSOBE', countryName: 'CONGO, DR OF' },\r\n { placeId: 4555, cityName: 'BOSONDJO', countryName: 'CONGO, DR OF' },\r\n { placeId: 4559, cityName: 'BOTEKA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4626, cityName: 'BUKAVU', countryName: 'CONGO, DR OF' },\r\n { placeId: 4627, cityName: 'BUKENA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4631, cityName: 'BUMBA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4634, cityName: 'BUNIA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4651, cityName: 'BUSALA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4656, cityName: 'BUTA-ZEGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 4773, cityName: 'CELO-ZONGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 5097, cityName: 'DEKESE', countryName: 'CONGO, DR OF' },\r\n { placeId: 5166, cityName: 'DIBOKO', countryName: 'CONGO, DR OF' },\r\n { placeId: 5174, cityName: 'DIKUNGU', countryName: 'CONGO, DR OF' },\r\n { placeId: 5177, cityName: 'DILOLO', countryName: 'CONGO, DR OF' },\r\n { placeId: 5180, cityName: 'DINGELE', countryName: 'CONGO, DR OF' },\r\n { placeId: 5186, cityName: 'DJOKELE', countryName: 'CONGO, DR OF' },\r\n { placeId: 5193, cityName: 'DOKO', countryName: 'CONGO, DR OF' },\r\n { placeId: 5201, cityName: 'DORUMA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5222, cityName: 'DUNGU-UYE', countryName: 'CONGO, DR OF' },\r\n { placeId: 5324, cityName: 'ENGENGELE', countryName: 'CONGO, DR OF' },\r\n { placeId: 5366, cityName: 'FARADJE', countryName: 'CONGO, DR OF' },\r\n { placeId: 5501, cityName: 'FUNGURUME', countryName: 'CONGO, DR OF' },\r\n { placeId: 5522, cityName: 'GANDAJIKA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5543, cityName: 'GBADO', countryName: 'CONGO, DR OF' },\r\n { placeId: 5544, cityName: 'GBADOLITE', countryName: 'CONGO, DR OF' },\r\n { placeId: 5546, cityName: 'GEMENA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5599, cityName: 'GOMA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5606, cityName: 'GOYONGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 5753, cityName: 'GWAKA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5927, cityName: 'IDIOFA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5928, cityName: 'IDUMBE', countryName: 'CONGO, DR OF' },\r\n { placeId: 5937, cityName: 'IKELA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5945, cityName: 'ILEBO', countryName: 'CONGO, DR OF' },\r\n { placeId: 5953, cityName: 'IMESSE', countryName: 'CONGO, DR OF' },\r\n { placeId: 5968, cityName: 'INGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5969, cityName: 'INGENDE', countryName: 'CONGO, DR OF' },\r\n { placeId: 5973, cityName: 'INKISI', countryName: 'CONGO, DR OF' },\r\n { placeId: 5975, cityName: 'INONGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 5983, cityName: 'IPEKA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5993, cityName: 'ISHASHA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5997, cityName: 'ISIRO-MATARI', countryName: 'CONGO, DR OF' },\r\n { placeId: 5998, cityName: 'ISIRO-VILLE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6010, cityName: 'ISONGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6013, cityName: 'ITO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6091, cityName: 'KABALO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6092, cityName: 'KABINDA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6093, cityName: 'KABOMBO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6102, cityName: 'KAHEMBA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6106, cityName: 'KAILO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6110, cityName: 'KAJIJI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6115, cityName: 'KALA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6120, cityName: 'KALEMIE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6122, cityName: 'KALIMA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6125, cityName: 'KALONDA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5631, cityName: 'KAMINA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5633, cityName: 'KAMITUGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5634, cityName: 'KAMPENE', countryName: 'CONGO, DR OF' },\r\n { placeId: 5639, cityName: 'KANANGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5037, cityName: 'KANIA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5038, cityName: 'KANIAMA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6128, cityName: 'KANSIMBA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6135, cityName: 'KAPANGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6139, cityName: 'KARAWA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6146, cityName: 'KASAJI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6149, cityName: 'KASENGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6150, cityName: 'KASESE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6153, cityName: 'KASHIA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6155, cityName: 'KASONGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6156, cityName: 'KASONGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6160, cityName: 'KATAKO\\'KOMBE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6161, cityName: 'KATALE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6168, cityName: 'KATUBWE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6171, cityName: 'KATWE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6190, cityName: 'KEMPA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6191, cityName: 'KEMPILE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6195, cityName: 'KENGE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6203, cityName: 'KEREKERE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6215, cityName: 'KIAPUPE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6224, cityName: 'KIKONGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6226, cityName: 'KIKWIT', countryName: 'CONGO, DR OF' },\r\n { placeId: 6234, cityName: 'KILOMINES', countryName: 'CONGO, DR OF' },\r\n { placeId: 6238, cityName: 'KIMANO II', countryName: 'CONGO, DR OF' },\r\n { placeId: 6242, cityName: 'KINDU', countryName: 'CONGO, DR OF' },\r\n { placeId: 1170, cityName: 'KINSHASA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6251, cityName: 'KIPATA-KATIKA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6253, cityName: 'KIPUSHIA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6262, cityName: 'KISANGANI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6264, cityName: 'KISENGE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6265, cityName: 'KISENGWA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6275, cityName: 'KITONA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6286, cityName: 'KM 95 CFL', countryName: 'CONGO, DR OF' },\r\n { placeId: 6293, cityName: 'KODORO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6307, cityName: 'KOLE SUR LUKENIE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6311, cityName: 'KOLWEZI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6312, cityName: 'KONDE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6316, cityName: 'KONGOLO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6325, cityName: 'KOTAKOLI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6350, cityName: 'KUTUSONGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6351, cityName: 'KWILU-NGONGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6544, cityName: 'LIBENGE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6551, cityName: 'LIKASI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6576, cityName: 'LISALA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6594, cityName: 'LODJA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6602, cityName: 'LOKUTU', countryName: 'CONGO, DR OF' },\r\n { placeId: 6604, cityName: 'LOMBO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6605, cityName: 'LOMELA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6642, cityName: 'LUBAO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6643, cityName: 'LUBERO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6646, cityName: 'LUBONDAIE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6647, cityName: 'LUBUDI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6648, cityName: 'LUBUMBASHI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6655, cityName: 'LUEBO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6657, cityName: 'LUENA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6661, cityName: 'LUGUSHWA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6662, cityName: 'LUISHI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6663, cityName: 'LUIZA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6664, cityName: 'LUKALA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6666, cityName: 'LUKOMBE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6669, cityName: 'LULINGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 5654, cityName: 'LUNIEMU', countryName: 'CONGO, DR OF' },\r\n { placeId: 5655, cityName: 'LUNKUNI', countryName: 'CONGO, DR OF' },\r\n { placeId: 5656, cityName: 'LUOZI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6673, cityName: 'LUSAMBO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6674, cityName: 'LUSANGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6676, cityName: 'LUSINGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6679, cityName: 'LUVUA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6711, cityName: 'MAHAGI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6733, cityName: 'MALANGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6740, cityName: 'MALEBO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6756, cityName: 'MANGAI II', countryName: 'CONGO, DR OF' },\r\n { placeId: 6778, cityName: 'MANONO', countryName: 'CONGO, DR OF' },\r\n { placeId: 6785, cityName: 'MANZALELE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6850, cityName: 'MASI-MANIMBA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6862, cityName: 'MATADI-TSHIMPI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6892, cityName: 'MBANDAKA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6896, cityName: 'MBOIE', countryName: 'CONGO, DR OF' },\r\n { placeId: 6897, cityName: 'MBUJI-MAYI', countryName: 'CONGO, DR OF' },\r\n { placeId: 6939, cityName: 'MENTOLE', countryName: 'CONGO, DR OF' },\r\n { placeId: 7000, cityName: 'MITWABA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6488, cityName: 'MOANZA', countryName: 'CONGO, DR OF' },\r\n { placeId: 6489, cityName: 'MOBA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7003, cityName: 'MOGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7010, cityName: 'MOKARIA-YAMOLEKA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7017, cityName: 'MOMA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7019, cityName: 'MOMBONGO', countryName: 'CONGO, DR OF' },\r\n { placeId: 7027, cityName: 'MONGOWAKENDA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7030, cityName: 'MONKOTO', countryName: 'CONGO, DR OF' },\r\n { placeId: 7101, cityName: 'MPAKA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7114, cityName: 'MUAMBI', countryName: 'CONGO, DR OF' },\r\n { placeId: 7116, cityName: 'MUANDA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7123, cityName: 'MUKEDI', countryName: 'CONGO, DR OF' },\r\n { placeId: 7125, cityName: 'MUKOY', countryName: 'CONGO, DR OF' },\r\n { placeId: 7131, cityName: 'MULUNGU', countryName: 'CONGO, DR OF' },\r\n { placeId: 7134, cityName: 'MUNKAMBA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7138, cityName: 'MUSESE', countryName: 'CONGO, DR OF' },\r\n { placeId: 7139, cityName: 'MUSHIE', countryName: 'CONGO, DR OF' },\r\n { placeId: 7146, cityName: 'MUTENA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7147, cityName: 'MUTOTO', countryName: 'CONGO, DR OF' },\r\n { placeId: 7148, cityName: 'MUTSHATSHA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7150, cityName: 'MVULA NSANDA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7152, cityName: 'MWADINGUSHA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7155, cityName: 'MWEKA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7156, cityName: 'MWENE-DITU', countryName: 'CONGO, DR OF' },\r\n { placeId: 7251, cityName: 'NGI', countryName: 'CONGO, DR OF' },\r\n { placeId: 7253, cityName: 'NGUMU', countryName: 'CONGO, DR OF' },\r\n { placeId: 7262, cityName: 'NIOKI', countryName: 'CONGO, DR OF' },\r\n { placeId: 7271, cityName: 'NKOLO FUMA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7327, cityName: 'NYUNZU', countryName: 'CONGO, DR OF' },\r\n { placeId: 7329, cityName: 'NZAMBA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7331, cityName: 'NZOVU', countryName: 'CONGO, DR OF' },\r\n { placeId: 7341, cityName: 'OBAYE', countryName: 'CONGO, DR OF' },\r\n { placeId: 7350, cityName: 'OBOKOTE', countryName: 'CONGO, DR OF' },\r\n { placeId: 7361, cityName: 'ODUKU', countryName: 'CONGO, DR OF' },\r\n { placeId: 7434, cityName: 'OSHWE', countryName: 'CONGO, DR OF' },\r\n { placeId: 7610, cityName: 'PEPA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7623, cityName: 'PHIBRAKI', countryName: 'CONGO, DR OF' },\r\n { placeId: 7691, cityName: 'POPOKABAKA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7716, cityName: 'PUNIA-BASENGE', countryName: 'CONGO, DR OF' },\r\n { placeId: 7715, cityName: 'PUNIA', countryName: 'CONGO, DR OF' },\r\n { placeId: 7811, cityName: 'PWETO', countryName: 'CONGO, DR OF' },\r\n { placeId: 7989, cityName: 'RUTSHURU', countryName: 'CONGO, DR OF' },\r\n { placeId: 7990, cityName: 'RWINDI', countryName: 'CONGO, DR OF' },\r\n { placeId: 8075, cityName: 'SANDOA', countryName: 'CONGO, DR OF' },\r\n { placeId: 8129, cityName: 'SAULIA', countryName: 'CONGO, DR OF' },\r\n { placeId: 8156, cityName: 'SEMENDUA', countryName: 'CONGO, DR OF' },\r\n { placeId: 8204, cityName: 'SHABUNDA', countryName: 'CONGO, DR OF' },\r\n { placeId: 8242, cityName: 'SHONGAMBA', countryName: 'CONGO, DR OF' },\r\n { placeId: 8576, cityName: 'TANDALA', countryName: 'CONGO, DR OF' },\r\n { placeId: 8669, cityName: 'TINGI-TINGI', countryName: 'CONGO, DR OF' },\r\n { placeId: 8359, cityName: 'TONO', countryName: 'CONGO, DR OF' },\r\n { placeId: 8723, cityName: 'TSHELA', countryName: 'CONGO, DR OF' },\r\n { placeId: 8724, cityName: 'TSHIBALA', countryName: 'CONGO, DR OF' },\r\n { placeId: 8725, cityName: 'TSHIKAJI', countryName: 'CONGO, DR OF' },\r\n { placeId: 8726, cityName: 'TSHIKAPA', countryName: 'CONGO, DR OF' },\r\n { placeId: 8727, cityName: 'TSHUMBE', countryName: 'CONGO, DR OF' },\r\n { placeId: 8826, cityName: 'VANGA', countryName: 'CONGO, DR OF' },\r\n { placeId: 8930, cityName: 'WASOLO', countryName: 'CONGO, DR OF' },\r\n { placeId: 8941, cityName: 'WATSHA', countryName: 'CONGO, DR OF' },\r\n { placeId: 8969, cityName: 'WEMBO', countryName: 'CONGO, DR OF' },\r\n { placeId: 9067, cityName: 'YALINGIMBA', countryName: 'CONGO, DR OF' },\r\n { placeId: 9071, cityName: 'YANGAMBI', countryName: 'CONGO, DR OF' },\r\n { placeId: 9076, cityName: 'YASA', countryName: 'CONGO, DR OF' },\r\n { placeId: 9082, cityName: 'YEDI', countryName: 'CONGO, DR OF' },\r\n { placeId: 9084, cityName: 'YEMBE', countryName: 'CONGO, DR OF' },\r\n { placeId: 9085, cityName: 'YEMO', countryName: 'CONGO, DR OF' },\r\n { placeId: 9097, cityName: 'YUKI', countryName: 'CONGO, DR OF' },\r\n { placeId: 4331, cityName: 'BANGAMBA', countryName: 'CONGO, REP OF' },\r\n { placeId: 4570, cityName: 'BOUNDJI', countryName: 'CONGO, REP OF' },\r\n { placeId: 1124, cityName: 'BRAZZAVILLE', countryName: 'CONGO, REP OF' },\r\n { placeId: 5195, cityName: 'DOLISIE', countryName: 'CONGO, REP OF' },\r\n { placeId: 5344, cityName: 'EWO', countryName: 'CONGO, REP OF' },\r\n { placeId: 5956, cityName: 'IMPFONDO', countryName: 'CONGO, REP OF' },\r\n { placeId: 6184, cityName: 'KELLE', countryName: 'CONGO, REP OF' },\r\n { placeId: 6216, cityName: 'KIBANGOU', countryName: 'CONGO, REP OF' },\r\n { placeId: 6240, cityName: 'KINDAMBA', countryName: 'CONGO, REP OF' },\r\n { placeId: 6721, cityName: 'MAKABANA', countryName: 'CONGO, REP OF' },\r\n { placeId: 6727, cityName: 'MAKOUA', countryName: 'CONGO, REP OF' },\r\n { placeId: 6882, cityName: 'MAVINZA', countryName: 'CONGO, REP OF' },\r\n { placeId: 7084, cityName: 'MOSSENDJO', countryName: 'CONGO, REP OF' },\r\n { placeId: 7099, cityName: 'MOUYONDZI', countryName: 'CONGO, REP OF' },\r\n { placeId: 7165, cityName: 'N\\'KAYI', countryName: 'CONGO, REP OF' },\r\n { placeId: 7317, cityName: 'NOUMBI', countryName: 'CONGO, REP OF' },\r\n { placeId: 13908, cityName: 'OLLOMBO', countryName: 'CONGO, REP OF' },\r\n { placeId: 7443, cityName: 'OUESSO', countryName: 'CONGO, REP OF' },\r\n { placeId: 7449, cityName: 'OWANDO', countryName: 'CONGO, REP OF' },\r\n { placeId: 1125, cityName: 'POINTE NOIRE', countryName: 'CONGO, REP OF' },\r\n { placeId: 8247, cityName: 'SIBITI', countryName: 'CONGO, REP OF' },\r\n { placeId: 8323, cityName: 'SOUANKE', countryName: 'CONGO, REP OF' },\r\n { placeId: 8875, cityName: 'VOUKA', countryName: 'CONGO, REP OF' },\r\n { placeId: 8876, cityName: 'VOUNDA', countryName: 'CONGO, REP OF' },\r\n { placeId: 9106, cityName: 'ZANAGA', countryName: 'CONGO, REP OF' },\r\n { placeId: 4032, cityName: 'AITUTAKI', countryName: 'COOK IS' },\r\n { placeId: 4264, cityName: 'ATIU, COOK IS', countryName: 'COOK IS' },\r\n { placeId: 6757, cityName: 'MANGAIA/AUAU, COOK IS', countryName: 'COOK IS' },\r\n { placeId: 6763, cityName: 'MANIHIKI', countryName: 'COOK IS' },\r\n { placeId: 6879, cityName: 'MAUKE', countryName: 'COOK IS' },\r\n { placeId: 7265, cityName: 'NITIARO/NUKUROA, COOK IS', countryName: 'COOK IS' },\r\n { placeId: 7609, cityName: 'PENRHYN ISLAND', countryName: 'COOK IS' },\r\n { placeId: 7797, cityName: 'PUKAPUKA', countryName: 'COOK IS' },\r\n { placeId: 2327, cityName: 'RAROTONGA I', countryName: 'COOK IS' },\r\n { placeId: 4213, cityName: 'ARENAL', countryName: 'COSTA RICA' },\r\n { placeId: 4620, cityName: 'BUENOS AIRES', countryName: 'COSTA RICA' },\r\n { placeId: 4188, cityName: 'CARRILLO', countryName: 'COSTA RICA' },\r\n { placeId: 4782, cityName: 'CHACARITA', countryName: 'COSTA RICA' },\r\n { placeId: 4973, cityName: 'COTO 47', countryName: 'COSTA RICA' },\r\n { placeId: 5169, cityName: 'DIECIOCHO', countryName: 'COSTA RICA' },\r\n { placeId: 5281, cityName: 'EL CARMEN', countryName: 'COSTA RICA' },\r\n { placeId: 5397, cityName: 'FINCA 63', countryName: 'COSTA RICA' },\r\n { placeId: 5415, cityName: 'FLORENCIA DE SAN CARLOS', countryName: 'COSTA RICA' },\r\n { placeId: 5598, cityName: 'GOLFITO', countryName: 'COSTA RICA' },\r\n { placeId: 5728, cityName: 'GUAPILES', countryName: 'COSTA RICA' },\r\n { placeId: 6367, cityName: 'LA FLOR', countryName: 'COSTA RICA' },\r\n { placeId: 6374, cityName: 'LA MANAGUA', countryName: 'COSTA RICA' },\r\n { placeId: 2314, cityName: 'LIBERIA', countryName: 'COSTA RICA' },\r\n { placeId: 6625, cityName: 'LOS CHILES', countryName: 'COSTA RICA' },\r\n { placeId: 7181, cityName: 'NANDAYURE', countryName: 'COSTA RICA' },\r\n { placeId: 7257, cityName: 'NICOYA', countryName: 'COSTA RICA' },\r\n { placeId: 7314, cityName: 'NOSARA', countryName: 'COSTA RICA' },\r\n { placeId: 6515, cityName: 'PALMAR SUR', countryName: 'COSTA RICA' },\r\n { placeId: 7538, cityName: 'PALO ARCO', countryName: 'COSTA RICA' },\r\n { placeId: 12489, cityName: 'PEREZ ZELEDON', countryName: 'COSTA RICA' },\r\n { placeId: 4353, cityName: 'POCOCI', countryName: 'COSTA RICA' },\r\n { placeId: 2315, cityName: 'PUERTO LIMON', countryName: 'COSTA RICA' },\r\n { placeId: 6453, cityName: 'PUNTARENAS', countryName: 'COSTA RICA' },\r\n { placeId: 8026, cityName: 'SAN ALBERTO', countryName: 'COSTA RICA' },\r\n { placeId: 12923, cityName: 'SAN ISIDRO', countryName: 'COSTA RICA' },\r\n { placeId: 2316, cityName: 'SAN JOSE', countryName: 'COSTA RICA' },\r\n { placeId: 8070, cityName: 'SAN VITO DE JABA', countryName: 'COSTA RICA' },\r\n { placeId: 8091, cityName: 'SANTA CLARA DE GUAPILES', countryName: 'COSTA RICA' },\r\n { placeId: 8092, cityName: 'SANTA CRUZ', countryName: 'COSTA RICA' },\r\n { placeId: 8098, cityName: 'SANTA MARIA DE GUACIMO', countryName: 'COSTA RICA' },\r\n { placeId: 8283, cityName: 'SIXAOLA', countryName: 'COSTA RICA' },\r\n { placeId: 8796, cityName: 'UPALA', countryName: 'COSTA RICA' },\r\n { placeId: 144, cityName: 'ABIDJAN', countryName: 'COTE D IVOIRE' },\r\n { placeId: 9142, cityName: 'ABENGOUROU', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 9144, cityName: 'ABOISSO', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 4514, cityName: 'BOCANDA', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 4535, cityName: 'BONDOUKOU', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 4562, cityName: 'BOUAKE', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 4568, cityName: 'BOUNA', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 4569, cityName: 'BOUNDIALI', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 5018, cityName: 'DABOU', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 5054, cityName: 'DALOA', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 5179, cityName: 'DIMBOKRO', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 5389, cityName: 'FERKESSEDOUGOU', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 5667, cityName: 'GRAND BEREBY', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 5736, cityName: 'GUIGLO', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 6320, cityName: 'KORHOGO', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 6745, cityName: 'MAN', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 7360, cityName: 'ODIENNE', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 7439, cityName: 'OUANGO FITINI', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 8057, cityName: 'SAN PEDRO', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 8125, cityName: 'SASSANDRA', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 7535, cityName: 'SEGUELA', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 8532, cityName: 'TABOU', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 8687, cityName: 'TOUBA', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 9069, cityName: 'YAMOUSSOUKRO', countryName: 'COTE D\\'IVOIRE' },\r\n { placeId: 4497, cityName: 'BJELOVAR', countryName: 'CROATIA' },\r\n { placeId: 1412, cityName: 'BRAC', countryName: 'CROATIA' },\r\n { placeId: 4652, cityName: 'BUSEVEC', countryName: 'CROATIA' },\r\n { placeId: 1417, cityName: 'CAKOVEC', countryName: 'CROATIA' },\r\n { placeId: 4769, cityName: 'CAZMA', countryName: 'CROATIA' },\r\n { placeId: 5069, cityName: 'DARUVAR', countryName: 'CROATIA' },\r\n { placeId: 1401, cityName: 'DUBROVNIK', countryName: 'CROATIA' },\r\n { placeId: 1409, cityName: 'GROBNIK', countryName: 'CROATIA' },\r\n { placeId: 1413, cityName: 'HVAR', countryName: 'CROATIA' },\r\n { placeId: 6319, cityName: 'KOPRIVNICA', countryName: 'CROATIA' },\r\n { placeId: 1410, cityName: 'KRK ISLAND', countryName: 'CROATIA' },\r\n { placeId: 1402, cityName: 'LOSINJ ISLAND', countryName: 'CROATIA' },\r\n { placeId: 1407, cityName: 'MEDULIN', countryName: 'CROATIA' },\r\n { placeId: 7319, cityName: 'NOVA KAPELA', countryName: 'CROATIA' },\r\n { placeId: 1404, cityName: 'OSIJEK', countryName: 'CROATIA' },\r\n { placeId: 1411, cityName: 'OTOCAC', countryName: 'CROATIA' },\r\n { placeId: 1406, cityName: 'PULA', countryName: 'CROATIA' },\r\n { placeId: 1415, cityName: 'SINJ', countryName: 'CROATIA' },\r\n { placeId: 13098, cityName: 'SISAK', countryName: 'CROATIA' },\r\n { placeId: 1405, cityName: 'SLAVONSKI BROD', countryName: 'CROATIA' },\r\n { placeId: 1414, cityName: 'SPLIT', countryName: 'CROATIA' },\r\n { placeId: 1420, cityName: 'UDBINA', countryName: 'CROATIA' },\r\n { placeId: 8790, cityName: 'UNIJE', countryName: 'CROATIA' },\r\n { placeId: 1416, cityName: 'VARAZDIN', countryName: 'CROATIA' },\r\n { placeId: 8863, cityName: 'VINKOVCI', countryName: 'CROATIA' },\r\n { placeId: 1408, cityName: 'VRSAR', countryName: 'CROATIA' },\r\n { placeId: 1403, cityName: 'VUKOVAR', countryName: 'CROATIA' },\r\n { placeId: 1419, cityName: 'ZADAR', countryName: 'CROATIA' },\r\n { placeId: 1418, cityName: 'ZAGREB', countryName: 'CROATIA' },\r\n { placeId: 9131, cityName: 'ZVEKOVAC', countryName: 'CROATIA' },\r\n { placeId: 4340, cityName: 'BARACOA', countryName: 'CUBA' },\r\n { placeId: 4382, cityName: 'BAYAMO', countryName: 'CUBA' },\r\n { placeId: 2319, cityName: 'CAMAGUEY', countryName: 'CUBA' },\r\n { placeId: 2318, cityName: 'CAYO COCO', countryName: 'CUBA' },\r\n { placeId: 4766, cityName: 'CAYO LARGO DEL SUR', countryName: 'CUBA' },\r\n { placeId: 4767, cityName: 'CAYO LAS BRUJAS', countryName: 'CUBA' },\r\n { placeId: 4861, cityName: 'CIEGO DE AVILA', countryName: 'CUBA' },\r\n { placeId: 4862, cityName: 'CIENFUEGOS', countryName: 'CUBA' },\r\n { placeId: 5726, cityName: 'GUANTANAMO BAY', countryName: 'CUBA' },\r\n { placeId: 5725, cityName: 'GUANTANAMO', countryName: 'CUBA' },\r\n { placeId: 5729, cityName: 'GUARDALAVACA', countryName: 'CUBA' },\r\n { placeId: 2321, cityName: 'HAVANA', countryName: 'CUBA' },\r\n { placeId: 2322, cityName: 'HOLGUIN', countryName: 'CUBA' },\r\n { placeId: 6002, cityName: 'ISLA DE LA JUVENTUD', countryName: 'CUBA' },\r\n { placeId: 6444, cityName: 'LAS TUNAS', countryName: 'CUBA' },\r\n { placeId: 6786, cityName: 'MANZANILLO', countryName: 'CUBA' },\r\n { placeId: 6484, cityName: 'MOA', countryName: 'CUBA' },\r\n { placeId: 6508, cityName: 'NUEVA GERONA', countryName: 'CUBA' },\r\n { placeId: 7646, cityName: 'PINAR DEL RIO', countryName: 'CUBA' },\r\n { placeId: 9220, cityName: 'SANCTI SPIRITUS', countryName: 'CUBA' },\r\n { placeId: 8090, cityName: 'SANTA CLARA', countryName: 'CUBA' },\r\n { placeId: 8096, cityName: 'SANTA LUCIA', countryName: 'CUBA' },\r\n { placeId: 2320, cityName: 'SANTIAGO DE CUBA', countryName: 'CUBA' },\r\n { placeId: 8704, cityName: 'TRINIDAD', countryName: 'CUBA' },\r\n { placeId: 2823, cityName: 'VARADERO', countryName: 'CUBA' },\r\n { placeId: 1400, cityName: 'AKROTIRI', countryName: 'CYPRUS' },\r\n { placeId: 1398, cityName: 'LARNACA', countryName: 'CYPRUS' },\r\n { placeId: 13900, cityName: 'Nicosia', countryName: 'CYPRUS' },\r\n { placeId: 1399, cityName: 'PAFOS', countryName: 'CYPRUS' },\r\n { placeId: 1982, cityName: 'BENESOV', countryName: 'CZECH' },\r\n { placeId: 4519, cityName: 'BOHUNOVICE', countryName: 'CZECH' },\r\n { placeId: 1981, cityName: 'BRECLAV', countryName: 'CZECH' },\r\n { placeId: 2049, cityName: 'BRNO', countryName: 'CZECH' },\r\n { placeId: 1983, cityName: 'BROUMOV', countryName: 'CZECH' },\r\n { placeId: 1984, cityName: 'BUBOVICE', countryName: 'CZECH' },\r\n { placeId: 1985, cityName: 'CESKA LIPA', countryName: 'CZECH' },\r\n { placeId: 1989, cityName: 'CESKE BUDEJOVICE', countryName: 'CZECH' },\r\n { placeId: 10158, cityName: 'CHEB', countryName: 'CZECH' },\r\n { placeId: 1986, cityName: 'CHOMUTOV', countryName: 'CZECH' },\r\n { placeId: 1990, cityName: 'CHOTEBOR', countryName: 'CZECH' },\r\n { placeId: 1988, cityName: 'CHRUDIM', countryName: 'CZECH' },\r\n { placeId: 1991, cityName: 'DVUR KRALOVE', countryName: 'CZECH' },\r\n { placeId: 5026, cityName: 'ERPUZICE', countryName: 'CZECH' },\r\n { placeId: 1992, cityName: 'FRYDLANT', countryName: 'CZECH' },\r\n { placeId: 1993, cityName: 'HAVLICKUV BROD', countryName: 'CZECH' },\r\n { placeId: 1995, cityName: 'HODKOVICE', countryName: 'CZECH' },\r\n { placeId: 1998, cityName: 'HOLESOV', countryName: 'CZECH' },\r\n { placeId: 1994, cityName: 'HORICE', countryName: 'CZECH' },\r\n { placeId: 2000, cityName: 'HOROVICE', countryName: 'CZECH' },\r\n { placeId: 1999, cityName: 'HOSIN', countryName: 'CZECH' },\r\n { placeId: 1996, cityName: 'HRADEC KRALOVE', countryName: 'CZECH' },\r\n { placeId: 1997, cityName: 'HRANICE', countryName: 'CZECH' },\r\n { placeId: 2001, cityName: 'JAROMER', countryName: 'CZECH' },\r\n { placeId: 2002, cityName: 'JICIN', countryName: 'CZECH' },\r\n { placeId: 2004, cityName: 'JIHLAVA', countryName: 'CZECH' },\r\n { placeId: 2003, cityName: 'JINDRICHUV HRADEC', countryName: 'CZECH' },\r\n { placeId: 2012, cityName: 'KARLOVY VARY', countryName: 'CZECH' },\r\n { placeId: 11412, cityName: 'KBELY', countryName: 'CZECH' },\r\n { placeId: 2006, cityName: 'KLADNO', countryName: 'CZECH' },\r\n { placeId: 2010, cityName: 'KLATOVY', countryName: 'CZECH' },\r\n { placeId: 2008, cityName: 'KOLIN', countryName: 'CZECH' },\r\n { placeId: 2005, cityName: 'KRIZANOV', countryName: 'CZECH' },\r\n { placeId: 6335, cityName: 'KRIZENEC', countryName: 'CZECH' },\r\n { placeId: 2009, cityName: 'KRNOV', countryName: 'CZECH' },\r\n { placeId: 2007, cityName: 'KROMERIZ', countryName: 'CZECH' },\r\n { placeId: 2011, cityName: 'KUNOVICE', countryName: 'CZECH' },\r\n { placeId: 2013, cityName: 'KYJOV', countryName: 'CZECH' },\r\n { placeId: 2031, cityName: 'LETKOV', countryName: 'CZECH' },\r\n { placeId: 2016, cityName: 'LETNANY', countryName: 'CZECH' },\r\n { placeId: 2014, cityName: 'LIBEREC', countryName: 'CZECH' },\r\n { placeId: 2022, cityName: 'MARIANSKE LAZNE', countryName: 'CZECH' },\r\n { placeId: 1987, cityName: 'MEDLANKY', countryName: 'CZECH' },\r\n { placeId: 2019, cityName: 'MIKULOVICE', countryName: 'CZECH' },\r\n { placeId: 2017, cityName: 'MLADA BOLESLAV', countryName: 'CZECH' },\r\n { placeId: 2018, cityName: 'MNICHOVO HRADISTE', countryName: 'CZECH' },\r\n { placeId: 2020, cityName: 'MORAVSKA TREBOVA', countryName: 'CZECH' },\r\n { placeId: 2021, cityName: 'MOST', countryName: 'CZECH' },\r\n { placeId: 2024, cityName: 'NOVE MESTO', countryName: 'CZECH' },\r\n { placeId: 2025, cityName: 'OLOMOUC', countryName: 'CZECH' },\r\n { placeId: 2023, cityName: 'OSTRAVA', countryName: 'CZECH' },\r\n { placeId: 2026, cityName: 'OTROKOVICE', countryName: 'CZECH' },\r\n { placeId: 7545, cityName: 'PANENSKY TYNEC', countryName: 'CZECH' },\r\n { placeId: 2028, cityName: 'PARDUBICE', countryName: 'CZECH' },\r\n { placeId: 2036, cityName: 'PLASY', countryName: 'CZECH' },\r\n { placeId: 2015, cityName: 'PLZEN', countryName: 'CZECH' },\r\n { placeId: 2033, cityName: 'PODHORANY', countryName: 'CZECH' },\r\n { placeId: 2027, cityName: 'POLICKA', countryName: 'CZECH' },\r\n { placeId: 2035, cityName: 'PRAGUE', countryName: 'CZECH' },\r\n { placeId: 2034, cityName: 'PREROV', countryName: 'CZECH' },\r\n { placeId: 2032, cityName: 'PRIBRAM', countryName: 'CZECH' },\r\n { placeId: 2029, cityName: 'PRIBYSLAV', countryName: 'CZECH' },\r\n { placeId: 2030, cityName: 'PROSTEJOV', countryName: 'CZECH' },\r\n { placeId: 2038, cityName: 'RAKOVNIK', countryName: 'CZECH' },\r\n { placeId: 2037, cityName: 'RANA', countryName: 'CZECH' },\r\n { placeId: 7952, cityName: 'ROKYCANY', countryName: 'CZECH' },\r\n { placeId: 2039, cityName: 'ROUDNICE', countryName: 'CZECH' },\r\n { placeId: 2047, cityName: 'SAZENA', countryName: 'CZECH' },\r\n { placeId: 2041, cityName: 'SKUTEC', countryName: 'CZECH' },\r\n { placeId: 2042, cityName: 'SLANY', countryName: 'CZECH' },\r\n { placeId: 2043, cityName: 'SOBESLAV', countryName: 'CZECH' },\r\n { placeId: 2040, cityName: 'STANKOV', countryName: 'CZECH' },\r\n { placeId: 8483, cityName: 'STICHOVICE', countryName: 'CZECH' },\r\n { placeId: 2045, cityName: 'STRAKONICE', countryName: 'CZECH' },\r\n { placeId: 2044, cityName: 'STRUNKOVICE', countryName: 'CZECH' },\r\n { placeId: 2046, cityName: 'SUMPERK', countryName: 'CZECH' },\r\n { placeId: 2048, cityName: 'TABOR', countryName: 'CZECH' },\r\n { placeId: 8538, cityName: 'TACHOV', countryName: 'CZECH' },\r\n { placeId: 2050, cityName: 'TOCNA', countryName: 'CZECH' },\r\n { placeId: 2051, cityName: 'TOUZIM', countryName: 'CZECH' },\r\n { placeId: 8803, cityName: 'USTI NAD LABEM', countryName: 'CZECH' },\r\n { placeId: 2052, cityName: 'USTI NAD ORLICI', countryName: 'CZECH' },\r\n { placeId: 2056, cityName: 'VELKE PORICI', countryName: 'CZECH' },\r\n { placeId: 2053, cityName: 'VLASIM', countryName: 'CZECH' },\r\n { placeId: 2055, cityName: 'VODOCHODY', countryName: 'CZECH' },\r\n { placeId: 2057, cityName: 'VRCHLABI', countryName: 'CZECH' },\r\n { placeId: 2058, cityName: 'VYSKOV', countryName: 'CZECH' },\r\n { placeId: 2054, cityName: 'VYSOKE MYTO', countryName: 'CZECH' },\r\n { placeId: 2059, cityName: 'ZABREH', countryName: 'CZECH' },\r\n { placeId: 2061, cityName: 'ZAMBERK', countryName: 'CZECH' },\r\n { placeId: 9112, cityName: 'ZATEC', countryName: 'CZECH' },\r\n { placeId: 2060, cityName: 'ZBRASLAVICE', countryName: 'CZECH' },\r\n { placeId: 9125, cityName: 'ZNOJMO', countryName: 'CZECH' },\r\n { placeId: 2852, cityName: 'DAKHLA', countryName: 'DAKHLA AND LAAYOUNE' },\r\n { placeId: 1186, cityName: 'LAAYOUNE', countryName: 'DAKHLA AND LAAYOUNE' },\r\n { placeId: 857, cityName: 'AALBORG', countryName: 'DENMARK' },\r\n { placeId: 823, cityName: 'AARHUS', countryName: 'DENMARK' },\r\n { placeId: 822, cityName: 'AERO', countryName: 'DENMARK' },\r\n { placeId: 824, cityName: 'ANHOLT', countryName: 'DENMARK' },\r\n { placeId: 825, cityName: 'BILLUND', countryName: 'DENMARK' },\r\n { placeId: 840, cityName: 'BORNHOLM', countryName: 'DENMARK' },\r\n { placeId: 9915, cityName: 'BRAEDSTRUP', countryName: 'DENMARK' },\r\n { placeId: 826, cityName: 'COPENHAGEN', countryName: 'DENMARK' },\r\n { placeId: 5322, cityName: 'ENDELAVE', countryName: 'DENMARK' },\r\n { placeId: 827, cityName: 'ESBJERG', countryName: 'DENMARK' },\r\n { placeId: 5502, cityName: 'FUR', countryName: 'DENMARK' },\r\n { placeId: 10935, cityName: 'GORLEV', countryName: 'DENMARK' },\r\n { placeId: 10936, cityName: 'GORLOSE', countryName: 'DENMARK' },\r\n { placeId: 5709, cityName: 'GRENA', countryName: 'DENMARK' },\r\n { placeId: 828, cityName: 'GRONHOLT', countryName: 'DENMARK' },\r\n { placeId: 5765, cityName: 'HADERSLEV', countryName: 'DENMARK' },\r\n { placeId: 830, cityName: 'HADSUND', countryName: 'DENMARK' },\r\n { placeId: 829, cityName: 'HERNING', countryName: 'DENMARK' },\r\n { placeId: 5861, cityName: 'HOLBAEK', countryName: 'DENMARK' },\r\n { placeId: 832, cityName: 'KALUNDBORG', countryName: 'DENMARK' },\r\n { placeId: 831, cityName: 'KARUP', countryName: 'DENMARK' },\r\n { placeId: 853, cityName: 'KOLDING', countryName: 'DENMARK' },\r\n { placeId: 6321, cityName: 'KORSOR', countryName: 'DENMARK' },\r\n { placeId: 838, cityName: 'KRUSA-PADBORG', countryName: 'DENMARK' },\r\n { placeId: 833, cityName: 'LAESO', countryName: 'DENMARK' },\r\n { placeId: 834, cityName: 'LEMVIG', countryName: 'DENMARK' },\r\n { placeId: 835, cityName: 'LOLLAND FALSTER', countryName: 'DENMARK' },\r\n { placeId: 836, cityName: 'MORSO', countryName: 'DENMARK' },\r\n { placeId: 837, cityName: 'ODENSE', countryName: 'DENMARK' },\r\n { placeId: 839, cityName: 'RANDERS', countryName: 'DENMARK' },\r\n { placeId: 7856, cityName: 'RARUP', countryName: 'DENMARK' },\r\n { placeId: 841, cityName: 'RINGSTED', countryName: 'DENMARK' },\r\n { placeId: 7998, cityName: 'SAEBY', countryName: 'DENMARK' },\r\n { placeId: 846, cityName: 'SAMSO', countryName: 'DENMARK' },\r\n { placeId: 844, cityName: 'SINDAL', countryName: 'DENMARK' },\r\n { placeId: 848, cityName: 'SKIVE', countryName: 'DENMARK' },\r\n { placeId: 13104, cityName: 'SLAGLILLE', countryName: 'DENMARK' },\r\n { placeId: 842, cityName: 'SONDERBORG', countryName: 'DENMARK' },\r\n { placeId: 843, cityName: 'SPJALD', countryName: 'DENMARK' },\r\n { placeId: 856, cityName: 'STAUNING', countryName: 'DENMARK' },\r\n { placeId: 847, cityName: 'SYDFYN', countryName: 'DENMARK' },\r\n { placeId: 850, cityName: 'THISTED', countryName: 'DENMARK' },\r\n { placeId: 849, cityName: 'TONDER', countryName: 'DENMARK' },\r\n { placeId: 855, cityName: 'VESTHIMMERLAND', countryName: 'DENMARK' },\r\n { placeId: 852, cityName: 'VIBORG', countryName: 'DENMARK' },\r\n { placeId: 845, cityName: 'VOJENS/SKRYDSTRUP', countryName: 'DENMARK' },\r\n { placeId: 4246, cityName: 'ASSA-GUEYLA', countryName: 'DJIBOUTI' },\r\n { placeId: 5173, cityName: 'DIKHIL', countryName: 'DJIBOUTI' },\r\n { placeId: 1204, cityName: 'DJIBOUTI', countryName: 'DJIBOUTI' },\r\n { placeId: 5834, cityName: 'HERKALE', countryName: 'DJIBOUTI' },\r\n { placeId: 7349, cityName: 'OBOCK', countryName: 'DJIBOUTI' },\r\n { placeId: 8542, cityName: 'TADJOURAH', countryName: 'DJIBOUTI' },\r\n { placeId: 7960, cityName: 'ROSEAU', countryName: 'DOMINICA' },\r\n { placeId: 4142, cityName: 'ANGELINA', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 4224, cityName: 'ARROYO BARRIL', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 4341, cityName: 'BARAHONA', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 4665, cityName: 'CABO ROJO', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 4947, cityName: 'CONSTANZA', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 10388, cityName: 'CUEVA DE LAS MARAVILLAS', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 5049, cityName: 'DAJABON', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 5294, cityName: 'EL PORTILLO', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 5844, cityName: 'HIGUERO', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 2294, cityName: 'HIGUEY', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 2293, cityName: 'LA ROMANA', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 7040, cityName: 'MONTE CRISTI', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 2295, cityName: 'PUERTO PLATA', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 8021, cityName: 'SAMANA', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 8045, cityName: 'SAN ISIDRO', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 8059, cityName: 'SAN PEDRO DE MACORIS', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 2297, cityName: 'SANTIAGO', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 2296, cityName: 'SANTO DOMINGO', countryName: 'DOMINICAN REPUBLIC' },\r\n { placeId: 9504, cityName: 'AHUANO', countryName: 'ECUADOR' },\r\n { placeId: 4110, cityName: 'AMBATO', countryName: 'ECUADOR' },\r\n { placeId: 4316, cityName: 'BALTRA I GALAPAGOS IS', countryName: 'ECUADOR' },\r\n { placeId: 10100, cityName: 'CATAMAYO', countryName: 'ECUADOR' },\r\n { placeId: 4910, cityName: 'COCA', countryName: 'ECUADOR' },\r\n { placeId: 5005, cityName: 'CUENCA', countryName: 'ECUADOR' },\r\n { placeId: 5723, cityName: 'GUALAQUIZA', countryName: 'ECUADOR' },\r\n { placeId: 2506, cityName: 'GUAYAQUIL', countryName: 'ECUADOR' },\r\n { placeId: 5922, cityName: 'IBARRA', countryName: 'ECUADOR' },\r\n { placeId: 6004, cityName: 'ISLA ISABELA', countryName: 'ECUADOR' },\r\n { placeId: 6382, cityName: 'LA TOMA', countryName: 'ECUADOR' },\r\n { placeId: 2507, cityName: 'LATACUNGA', countryName: 'ECUADOR' },\r\n { placeId: 6472, cityName: 'MACARA', countryName: 'ECUADOR' },\r\n { placeId: 6473, cityName: 'MACAS', countryName: 'ECUADOR' },\r\n { placeId: 6477, cityName: 'MACHALA', countryName: 'ECUADOR' },\r\n { placeId: 2508, cityName: 'MANTA', countryName: 'ECUADOR' },\r\n { placeId: 7038, cityName: 'MONTALVO', countryName: 'ECUADOR' },\r\n { placeId: 6509, cityName: 'NUEVA LOJA', countryName: 'ECUADOR' },\r\n { placeId: 7740, cityName: 'PORTOVIEJO', countryName: 'ECUADOR' },\r\n { placeId: 2509, cityName: 'QUITO', countryName: 'ECUADOR' },\r\n { placeId: 7920, cityName: 'RIOBAMBA', countryName: 'ECUADOR' },\r\n { placeId: 8010, cityName: 'SALINAS', countryName: 'ECUADOR' },\r\n { placeId: 8037, cityName: 'SAN CRISTOBAL', countryName: 'ECUADOR' },\r\n { placeId: 8068, cityName: 'SAN VICENTE', countryName: 'ECUADOR' },\r\n { placeId: 8102, cityName: 'SANTA ROSA', countryName: 'ECUADOR' },\r\n { placeId: 8109, cityName: 'SANTO DOMINGO DE LOS COLORADOS', countryName: 'ECUADOR' },\r\n { placeId: 8226, cityName: 'SHELL', countryName: 'ECUADOR' },\r\n { placeId: 8164, cityName: 'SUCUA', countryName: 'ECUADOR' },\r\n { placeId: 8537, cityName: 'TACHINA', countryName: 'ECUADOR' },\r\n { placeId: 8552, cityName: 'TAISHA', countryName: 'ECUADOR' },\r\n { placeId: 8583, cityName: 'TARAPOA', countryName: 'ECUADOR' },\r\n { placeId: 8618, cityName: 'TENA', countryName: 'ECUADOR' },\r\n { placeId: 8672, cityName: 'TIPUTINI', countryName: 'ECUADOR' },\r\n { placeId: 8738, cityName: 'TULCAN', countryName: 'ECUADOR' },\r\n { placeId: 9135, cityName: '6TH OF OCTOBER', countryName: 'EGYPT' },\r\n { placeId: 2842, cityName: 'ABU SIMBEL', countryName: 'EGYPT' },\r\n { placeId: 4043, cityName: 'AL ALAMAIN', countryName: 'EGYPT' },\r\n { placeId: 1205, cityName: 'ALEXANDRIA', countryName: 'EGYPT' },\r\n { placeId: 4089, cityName: 'ALMAZA', countryName: 'EGYPT' },\r\n { placeId: 2813, cityName: 'ASWAN', countryName: 'EGYPT' },\r\n { placeId: 4251, cityName: 'ASYUT', countryName: 'EGYPT' },\r\n { placeId: 1206, cityName: 'CAIRO', countryName: 'EGYPT' },\r\n { placeId: 5050, cityName: 'DAKHLA', countryName: 'EGYPT' },\r\n { placeId: 5276, cityName: 'EL ARISH', countryName: 'EGYPT' },\r\n { placeId: 5287, cityName: 'EL GORA', countryName: 'EGYPT' },\r\n { placeId: 5288, cityName: 'EL GOUNA', countryName: 'EGYPT' },\r\n { placeId: 5290, cityName: 'EL KHARGA', countryName: 'EGYPT' },\r\n { placeId: 5297, cityName: 'EL TOR', countryName: 'EGYPT' },\r\n { placeId: 1207, cityName: 'HURGHADA', countryName: 'EGYPT' },\r\n { placeId: 1208, cityName: 'LUXOR', countryName: 'EGYPT' },\r\n { placeId: 1209, cityName: 'MARSA ALAM', countryName: 'EGYPT' },\r\n { placeId: 6951, cityName: 'MERSA MATRUH', countryName: 'EGYPT' },\r\n { placeId: 7708, cityName: 'PORT SAID', countryName: 'EGYPT' },\r\n { placeId: 8213, cityName: 'SHARK EL OWEINAT', countryName: 'EGYPT' },\r\n { placeId: 1210, cityName: 'SHARM EL SHEIKH', countryName: 'EGYPT' },\r\n { placeId: 13938, cityName: 'Siwa Oasis North', countryName: 'EGYPT' },\r\n { placeId: 8408, cityName: 'ST CATHERINE', countryName: 'EGYPT' },\r\n { placeId: 13295, cityName: 'SUHAG', countryName: 'EGYPT' },\r\n { placeId: 1211, cityName: 'TABA', countryName: 'EGYPT' },\r\n { placeId: 10587, cityName: 'EL PAPALON', countryName: 'EL SALVADOR' },\r\n { placeId: 11555, cityName: 'LA CARRERA', countryName: 'EL SALVADOR' },\r\n { placeId: 2317, cityName: 'SAN SALVADOR', countryName: 'EL SALVADOR' },\r\n { placeId: 4372, cityName: 'BATA', countryName: 'EQUATORIAL GUINEA' },\r\n { placeId: 1128, cityName: 'MALABO', countryName: 'EQUATORIAL GUINEA' },\r\n { placeId: 14154, cityName: 'MENGOMEYEN', countryName: 'EQUATORIAL GUINEA' },\r\n { placeId: 4244, cityName: 'ASMARA', countryName: 'ERITREA' },\r\n { placeId: 4247, cityName: 'ASSAB', countryName: 'ERITREA' },\r\n { placeId: 6857, cityName: 'MASSAWA', countryName: 'ERITREA' },\r\n { placeId: 8629, cityName: 'TESSENAI', countryName: 'ERITREA' },\r\n { placeId: 11343, cityName: 'JOHVI', countryName: 'ESTONIA' },\r\n { placeId: 550, cityName: 'KARDLA', countryName: 'ESTONIA' },\r\n { placeId: 11392, cityName: 'KARKSI', countryName: 'ESTONIA' },\r\n { placeId: 6222, cityName: 'KIHNU', countryName: 'ESTONIA' },\r\n { placeId: 551, cityName: 'KURESSAARE', countryName: 'ESTONIA' },\r\n { placeId: 11768, cityName: 'LYCKHOLM', countryName: 'ESTONIA' },\r\n { placeId: 7192, cityName: 'NARVA', countryName: 'ESTONIA' },\r\n { placeId: 552, cityName: 'PARNU', countryName: 'ESTONIA' },\r\n { placeId: 12720, cityName: 'RAKVERE', countryName: 'ESTONIA' },\r\n { placeId: 7855, cityName: 'RAPLA', countryName: 'ESTONIA' },\r\n { placeId: 7913, cityName: 'RIDALI', countryName: 'ESTONIA' },\r\n { placeId: 12793, cityName: 'RIIDAJA', countryName: 'ESTONIA' },\r\n { placeId: 7980, cityName: 'RUHNU', countryName: 'ESTONIA' },\r\n { placeId: 553, cityName: 'TALLINN', countryName: 'ESTONIA' },\r\n { placeId: 554, cityName: 'TARTU', countryName: 'ESTONIA' },\r\n { placeId: 13587, cityName: 'VARSTU', countryName: 'ESTONIA' },\r\n { placeId: 8855, cityName: 'VILJANDI', countryName: 'ESTONIA' },\r\n { placeId: 1201, cityName: 'ADDIS ABABA', countryName: 'ETHIOPIA' },\r\n { placeId: 4203, cityName: 'ARBA MINCH', countryName: 'ETHIOPIA' },\r\n { placeId: 4245, cityName: 'ASOSA', countryName: 'ETHIOPIA' },\r\n { placeId: 3981, cityName: 'AXUM', countryName: 'ETHIOPIA' },\r\n { placeId: 4301, cityName: 'BAHIR DAR', countryName: 'ETHIOPIA' },\r\n { placeId: 1202, cityName: 'DIRE DAWA', countryName: 'ETHIOPIA' },\r\n { placeId: 5520, cityName: 'GAMBELLA', countryName: 'ETHIOPIA' },\r\n { placeId: 5587, cityName: 'GOBA', countryName: 'ETHIOPIA' },\r\n { placeId: 5591, cityName: 'GODE', countryName: 'ETHIOPIA' },\r\n { placeId: 5600, cityName: 'GONDER', countryName: 'ETHIOPIA' },\r\n { placeId: 6063, cityName: 'JIMMA', countryName: 'ETHIOPIA' },\r\n { placeId: 6415, cityName: 'LALIBELLA', countryName: 'ETHIOPIA' },\r\n { placeId: 6924, cityName: 'MEKELE', countryName: 'ETHIOPIA' },\r\n { placeId: 13939, cityName: 'Neghelli', countryName: 'ETHIOPIA' },\r\n { placeId: 776, cityName: 'MOUNT PLEASANT', countryName: 'FALKLAND IS' },\r\n { placeId: 10676, cityName: 'FALKLAND ISLAND', countryName: 'FALKLAND ISLANDS (MALVINAS)' },\r\n { placeId: 854, cityName: 'VAGAR', countryName: 'FAROE ISLANDS' },\r\n { placeId: 9223, cityName: 'BA', countryName: 'FIJI ISLANDS' },\r\n { placeId: 9179, cityName: 'CICIA', countryName: 'FIJI ISLANDS' },\r\n { placeId: 6096, cityName: 'KADAVU, FIJI IS', countryName: 'FIJI ISLANDS' },\r\n { placeId: 6387, cityName: 'LABASA', countryName: 'FIJI ISLANDS' },\r\n { placeId: 9180, cityName: 'LAUCALA', countryName: 'FIJI ISLANDS' },\r\n { placeId: 6868, cityName: 'MATEI', countryName: 'FIJI ISLANDS' },\r\n { placeId: 2328, cityName: 'NADI', countryName: 'FIJI ISLANDS' },\r\n { placeId: 2329, cityName: 'NAUSORI', countryName: 'FIJI ISLANDS' },\r\n { placeId: 7968, cityName: 'ROTUMA', countryName: 'FIJI ISLANDS' },\r\n { placeId: 555, cityName: 'AAVAHELUKKA', countryName: 'FINLAND' },\r\n { placeId: 556, cityName: 'AHMOSUO', countryName: 'FINLAND' },\r\n { placeId: 557, cityName: 'ALAVUS', countryName: 'FINLAND' },\r\n { placeId: 558, cityName: 'ENONTEKIO', countryName: 'FINLAND' },\r\n { placeId: 559, cityName: 'EURA', countryName: 'FINLAND' },\r\n { placeId: 560, cityName: 'FORSSA', countryName: 'FINLAND' },\r\n { placeId: 5760, cityName: 'HAAPAJARVI', countryName: 'FINLAND' },\r\n { placeId: 566, cityName: 'HAAPAVESI', countryName: 'FINLAND' },\r\n { placeId: 563, cityName: 'HAILUOTO', countryName: 'FINLAND' },\r\n { placeId: 561, cityName: 'HALLI', countryName: 'FINLAND' },\r\n { placeId: 564, cityName: 'HAMEENKYRO', countryName: 'FINLAND' },\r\n { placeId: 565, cityName: 'HANKO', countryName: 'FINLAND' },\r\n { placeId: 562, cityName: 'HELSINKI', countryName: 'FINLAND' },\r\n { placeId: 567, cityName: 'HYVINKAA', countryName: 'FINLAND' },\r\n { placeId: 568, cityName: 'IISALMI', countryName: 'FINLAND' },\r\n { placeId: 570, cityName: 'IMMOLA', countryName: 'FINLAND' },\r\n { placeId: 572, cityName: 'IVALO', countryName: 'FINLAND' },\r\n { placeId: 573, cityName: 'JAMIJARVI', countryName: 'FINLAND' },\r\n { placeId: 574, cityName: 'JOENSUU', countryName: 'FINLAND' },\r\n { placeId: 575, cityName: 'JYVASKYLA', countryName: 'FINLAND' },\r\n { placeId: 580, cityName: 'KAJAANI', countryName: 'FINLAND' },\r\n { placeId: 6117, cityName: 'KALAJOKI', countryName: 'FINLAND' },\r\n { placeId: 5646, cityName: 'KANNUS', countryName: 'FINLAND' },\r\n { placeId: 584, cityName: 'KARSAMAKI', countryName: 'FINLAND' },\r\n { placeId: 581, cityName: 'KAUHAJOKI', countryName: 'FINLAND' },\r\n { placeId: 576, cityName: 'KAUHAVA', countryName: 'FINLAND' },\r\n { placeId: 577, cityName: 'KEMI', countryName: 'FINLAND' },\r\n { placeId: 583, cityName: 'KEMIJARVI', countryName: 'FINLAND' },\r\n { placeId: 569, cityName: 'KIIKALA', countryName: 'FINLAND' },\r\n { placeId: 571, cityName: 'KITEE', countryName: 'FINLAND' },\r\n { placeId: 586, cityName: 'KITTILA', countryName: 'FINLAND' },\r\n { placeId: 607, cityName: 'KIURUVESI', countryName: 'FINLAND' },\r\n { placeId: 588, cityName: 'KIVIJARVI', countryName: 'FINLAND' },\r\n { placeId: 582, cityName: 'KOKKOLA-PIETARSAARI', countryName: 'FINLAND' },\r\n { placeId: 579, cityName: 'KUHMO', countryName: 'FINLAND' },\r\n { placeId: 578, cityName: 'KUMLINGE', countryName: 'FINLAND' },\r\n { placeId: 587, cityName: 'KUOPIO', countryName: 'FINLAND' },\r\n { placeId: 585, cityName: 'KUUSAMO', countryName: 'FINLAND' },\r\n { placeId: 589, cityName: 'KYMI', countryName: 'FINLAND' },\r\n { placeId: 590, cityName: 'LAHTI', countryName: 'FINLAND' },\r\n { placeId: 591, cityName: 'LAPPEENRANTA', countryName: 'FINLAND' },\r\n { placeId: 6548, cityName: 'LIEKSA-NURMES', countryName: 'FINLAND' },\r\n { placeId: 592, cityName: 'MARIEHAMN', countryName: 'FINLAND' },\r\n { placeId: 593, cityName: 'MENKIJARVI', countryName: 'FINLAND' },\r\n { placeId: 594, cityName: 'MIKKELI', countryName: 'FINLAND' },\r\n { placeId: 595, cityName: 'NUMMELA', countryName: 'FINLAND' },\r\n { placeId: 596, cityName: 'ORIPAA', countryName: 'FINLAND' },\r\n { placeId: 597, cityName: 'OULU', countryName: 'FINLAND' },\r\n { placeId: 599, cityName: 'PIEKSAMAKI', countryName: 'FINLAND' },\r\n { placeId: 598, cityName: 'PIIKAJARVI', countryName: 'FINLAND' },\r\n { placeId: 7491, cityName: 'POKKA', countryName: 'FINLAND' },\r\n { placeId: 600, cityName: 'PORI', countryName: 'FINLAND' },\r\n { placeId: 601, cityName: 'PUDASJARVI', countryName: 'FINLAND' },\r\n { placeId: 7717, cityName: 'PUNKAHARJU', countryName: 'FINLAND' },\r\n { placeId: 602, cityName: 'PYHASALMI', countryName: 'FINLAND' },\r\n { placeId: 604, cityName: 'RAAHE', countryName: 'FINLAND' },\r\n { placeId: 605, cityName: 'RANTASALMI', countryName: 'FINLAND' },\r\n { placeId: 7853, cityName: 'RANUA', countryName: 'FINLAND' },\r\n { placeId: 603, cityName: 'RAUTAVAARA', countryName: 'FINLAND' },\r\n { placeId: 608, cityName: 'RAYSKALA', countryName: 'FINLAND' },\r\n { placeId: 606, cityName: 'ROVANIEMI', countryName: 'FINLAND' },\r\n { placeId: 8136, cityName: 'SAVIKKO', countryName: 'FINLAND' },\r\n { placeId: 609, cityName: 'SAVONLINNA', countryName: 'FINLAND' },\r\n { placeId: 611, cityName: 'SEINAJOKI', countryName: 'FINLAND' },\r\n { placeId: 610, cityName: 'SELANPAA', countryName: 'FINLAND' },\r\n { placeId: 612, cityName: 'SODANKYLA', countryName: 'FINLAND' },\r\n { placeId: 8505, cityName: 'SULKAHARJU', countryName: 'FINLAND' },\r\n { placeId: 613, cityName: 'SUOMUSSALMI', countryName: 'FINLAND' },\r\n { placeId: 614, cityName: 'TAMPERE', countryName: 'FINLAND' },\r\n { placeId: 615, cityName: 'TEISKO', countryName: 'FINLAND' },\r\n { placeId: 616, cityName: 'TURKU', countryName: 'FINLAND' },\r\n { placeId: 617, cityName: 'UTTI', countryName: 'FINLAND' },\r\n { placeId: 619, cityName: 'VAALA', countryName: 'FINLAND' },\r\n { placeId: 618, cityName: 'VAASA', countryName: 'FINLAND' },\r\n { placeId: 8821, cityName: 'VAMPULA', countryName: 'FINLAND' },\r\n { placeId: 620, cityName: 'VARKAUS', countryName: 'FINLAND' },\r\n { placeId: 8851, cityName: 'VIITASAARI', countryName: 'FINLAND' },\r\n { placeId: 621, cityName: 'WREDEBY', countryName: 'FINLAND' },\r\n { placeId: 622, cityName: 'YLIVIESKA', countryName: 'FINLAND' },\r\n { placeId: 1738, cityName: 'ABBEVILLE', countryName: 'FRANCE' },\r\n { placeId: 1482, cityName: 'AGEN', countryName: 'FRANCE' },\r\n { placeId: 1528, cityName: 'AIRE-SUR-L\\'ADOUR', countryName: 'FRANCE' },\r\n { placeId: 1688, cityName: 'AIX', countryName: 'FRANCE' },\r\n { placeId: 1660, cityName: 'AJACCIO', countryName: 'FRANCE' },\r\n { placeId: 1473, cityName: 'ALBERT', countryName: 'FRANCE' },\r\n { placeId: 1653, cityName: 'ALBERTVILLE', countryName: 'FRANCE' },\r\n { placeId: 1512, cityName: 'ALBI', countryName: 'FRANCE' },\r\n { placeId: 1735, cityName: 'ALENCON', countryName: 'FRANCE' },\r\n { placeId: 1703, cityName: 'ALES', countryName: 'FRANCE' },\r\n { placeId: 1836, cityName: 'AMBERIEU', countryName: 'FRANCE' },\r\n { placeId: 1633, cityName: 'AMBERT', countryName: 'FRANCE' },\r\n { placeId: 1553, cityName: 'AMBOISE', countryName: 'FRANCE' },\r\n { placeId: 1481, cityName: 'AMIENS', countryName: 'FRANCE' },\r\n { placeId: 1578, cityName: 'ANCENIS', countryName: 'FRANCE' },\r\n { placeId: 1507, cityName: 'ANDERNOS-LES-BAINS', countryName: 'FRANCE' },\r\n { placeId: 4143, cityName: 'ANGERS', countryName: 'FRANCE' },\r\n { placeId: 1499, cityName: 'ANGOULEME', countryName: 'FRANCE' },\r\n { placeId: 1680, cityName: 'ANNECY', countryName: 'FRANCE' },\r\n { placeId: 1674, cityName: 'ANNEMASSE', countryName: 'FRANCE' },\r\n { placeId: 1595, cityName: 'ARBOIS', countryName: 'FRANCE' },\r\n { placeId: 1511, cityName: 'ARCACHON', countryName: 'FRANCE' },\r\n { placeId: 1467, cityName: 'ARGENTAN', countryName: 'FRANCE' },\r\n { placeId: 1554, cityName: 'ARGENTON SUR CREUSE', countryName: 'FRANCE' },\r\n { placeId: 1774, cityName: 'ARRAS', countryName: 'FRANCE' },\r\n { placeId: 1718, cityName: 'ASPRES SUR BUECH', countryName: 'FRANCE' },\r\n { placeId: 1628, cityName: 'AUBENAS', countryName: 'FRANCE' },\r\n { placeId: 4276, cityName: 'AUBENASSON', countryName: 'FRANCE' },\r\n { placeId: 1555, cityName: 'AUBIGNY-SUR-NERE', countryName: 'FRANCE' },\r\n { placeId: 1534, cityName: 'AUCH', countryName: 'FRANCE' },\r\n { placeId: 1686, cityName: 'AURILLAC', countryName: 'FRANCE' },\r\n { placeId: 1776, cityName: 'AUTUN', countryName: 'FRANCE' },\r\n { placeId: 1668, cityName: 'AUXERRE', countryName: 'FRANCE' },\r\n { placeId: 1596, cityName: 'AVALLON', countryName: 'FRANCE' },\r\n { placeId: 1706, cityName: 'AVIGNON', countryName: 'FRANCE' },\r\n { placeId: 1730, cityName: 'AVORD', countryName: 'FRANCE' },\r\n { placeId: 1815, cityName: 'AVRANCHES', countryName: 'FRANCE' },\r\n { placeId: 1505, cityName: 'BAGNERES DE LUCHON', countryName: 'FRANCE' },\r\n { placeId: 1471, cityName: 'BAGNOLES DE L\\'ORNE', countryName: 'FRANCE' },\r\n { placeId: 1581, cityName: 'BAILLEAU ARMENONVILLE', countryName: 'FRANCE' },\r\n { placeId: 1567, cityName: 'BAR-LE-DUC', countryName: 'FRANCE' },\r\n { placeId: 1585, cityName: 'BAR-SUR-SEINE', countryName: 'FRANCE' },\r\n { placeId: 1702, cityName: 'BARCELONNETTE', countryName: 'FRANCE' },\r\n { placeId: 1817, cityName: 'BASLE-MULHOUSE', countryName: 'FRANCE' },\r\n { placeId: 1654, cityName: 'BASTIA', countryName: 'FRANCE' },\r\n { placeId: 1597, cityName: 'BEAUNE', countryName: 'FRANCE' },\r\n { placeId: 1731, cityName: 'BEAUVAIS', countryName: 'FRANCE' },\r\n { placeId: 1728, cityName: 'BEDARIEUX', countryName: 'FRANCE' },\r\n { placeId: 4407, cityName: 'BELFORT', countryName: 'FRANCE' },\r\n { placeId: 1549, cityName: 'BELLE ILE', countryName: 'FRANCE' },\r\n { placeId: 1627, cityName: 'BELLEGARDE', countryName: 'FRANCE' },\r\n { placeId: 1636, cityName: 'BELLEVILLE', countryName: 'FRANCE' },\r\n { placeId: 1666, cityName: 'BELLEY', countryName: 'FRANCE' },\r\n { placeId: 1640, cityName: 'BELVES', countryName: 'FRANCE' },\r\n { placeId: 1470, cityName: 'BERCK SUR MER', countryName: 'FRANCE' },\r\n { placeId: 1485, cityName: 'BERGERAC', countryName: 'FRANCE' },\r\n { placeId: 1755, cityName: 'BERNAY', countryName: 'FRANCE' },\r\n { placeId: 1723, cityName: 'BERRE', countryName: 'FRANCE' },\r\n { placeId: 1782, cityName: 'BESANCON', countryName: 'FRANCE' },\r\n { placeId: 1757, cityName: 'BEYNES', countryName: 'FRANCE' },\r\n { placeId: 1705, cityName: 'BEZIERS', countryName: 'FRANCE' },\r\n { placeId: 1503, cityName: 'BIARRITZ', countryName: 'FRANCE' },\r\n { placeId: 1497, cityName: 'BISCARROSSE', countryName: 'FRANCE' },\r\n { placeId: 4506, cityName: 'BLOIS', countryName: 'FRANCE' },\r\n { placeId: 1484, cityName: 'BORDEAUX', countryName: 'FRANCE' },\r\n { placeId: 1632, cityName: 'BOURG', countryName: 'FRANCE' },\r\n { placeId: 1671, cityName: 'BOURGES', countryName: 'FRANCE' },\r\n { placeId: 1795, cityName: 'BREST', countryName: 'FRANCE' },\r\n { placeId: 1769, cityName: 'BRETIGNY-SUR-ORGE', countryName: 'FRANCE' },\r\n { placeId: 1556, cityName: 'BRIARE', countryName: 'FRANCE' },\r\n { placeId: 1582, cityName: 'BRIENNE', countryName: 'FRANCE' },\r\n { placeId: 1631, cityName: 'BRIOUDE', countryName: 'FRANCE' },\r\n { placeId: 1500, cityName: 'BRIVE', countryName: 'FRANCE' },\r\n { placeId: 1572, cityName: 'BUNO BONNEVAUX', countryName: 'FRANCE' },\r\n { placeId: 1804, cityName: 'CAEN', countryName: 'FRANCE' },\r\n { placeId: 1506, cityName: 'CAHORS', countryName: 'FRANCE' },\r\n { placeId: 1461, cityName: 'CALAIS-DUNKERQUE', countryName: 'FRANCE' },\r\n { placeId: 1655, cityName: 'CALVI', countryName: 'FRANCE' },\r\n { placeId: 1779, cityName: 'CAMBRAI', countryName: 'FRANCE' },\r\n { placeId: 1690, cityName: 'CANNES', countryName: 'FRANCE' },\r\n { placeId: 1696, cityName: 'CARCASSONNE', countryName: 'FRANCE' },\r\n { placeId: 1717, cityName: 'CARPENTRAS', countryName: 'FRANCE' },\r\n { placeId: 1642, cityName: 'CASSAGNES-BEGONHES', countryName: 'FRANCE' },\r\n { placeId: 1542, cityName: 'CASTELNAU-MAGNOAC', countryName: 'FRANCE' },\r\n { placeId: 1707, cityName: 'CASTELNAUDARY', countryName: 'FRANCE' },\r\n { placeId: 1525, cityName: 'CASTELSARRASIN', countryName: 'FRANCE' },\r\n { placeId: 1514, cityName: 'CASTRES-MAZAMET', countryName: 'FRANCE' },\r\n { placeId: 1483, cityName: 'CAZAUX', countryName: 'FRANCE' },\r\n { placeId: 4768, cityName: 'CAZERES', countryName: 'FRANCE' },\r\n { placeId: 3984, cityName: 'CHALAIS', countryName: 'FRANCE' },\r\n { placeId: 1673, cityName: 'CHALON', countryName: 'FRANCE' },\r\n { placeId: 1740, cityName: 'CHALONS', countryName: 'FRANCE' },\r\n { placeId: 1669, cityName: 'CHAMBERY', countryName: 'FRANCE' },\r\n { placeId: 10127, cityName: 'CHAMBLEY', countryName: 'FRANCE' },\r\n { placeId: 1790, cityName: 'CHARLEVILLE-MEZIERES', countryName: 'FRANCE' },\r\n { placeId: 1746, cityName: 'CHARTRES', countryName: 'FRANCE' },\r\n { placeId: 1708, cityName: 'CHATEAU-ARNOUX', countryName: 'FRANCE' },\r\n { placeId: 1577, cityName: 'CHATEAU-THIERRY', countryName: 'FRANCE' },\r\n { placeId: 1833, cityName: 'CHATEAUBRIANT', countryName: 'FRANCE' },\r\n { placeId: 1732, cityName: 'CHATEAUDUN', countryName: 'FRANCE' },\r\n { placeId: 1587, cityName: 'CHATEAUNEUF SUR CHER', countryName: 'FRANCE' },\r\n { placeId: 1557, cityName: 'CHATEAUROUX', countryName: 'FRANCE' },\r\n { placeId: 1504, cityName: 'CHATELLERAULT', countryName: 'FRANCE' },\r\n { placeId: 1778, cityName: 'CHATILLON-SUR-SEINE', countryName: 'FRANCE' },\r\n { placeId: 4797, cityName: 'CHAUMONT', countryName: 'FRANCE' },\r\n { placeId: 1547, cityName: 'CHAUVIGNY', countryName: 'FRANCE' },\r\n { placeId: 1768, cityName: 'CHAVENAY', countryName: 'FRANCE' },\r\n { placeId: 1758, cityName: 'CHELLES', countryName: 'FRANCE' },\r\n { placeId: 1796, cityName: 'CHERBOURG', countryName: 'FRANCE' },\r\n { placeId: 1748, cityName: 'CHOLET', countryName: 'FRANCE' },\r\n { placeId: 4871, cityName: 'CLAMECY', countryName: 'FRANCE' },\r\n { placeId: 1670, cityName: 'CLERMONT-FERRAND/AUVERGNE', countryName: 'FRANCE' },\r\n { placeId: 4917, cityName: 'COETQUIDAN', countryName: 'FRANCE' },\r\n { placeId: 1487, cityName: 'COGNAC', countryName: 'FRANCE' },\r\n { placeId: 1593, cityName: 'COLMAR', countryName: 'FRANCE' },\r\n { placeId: 1462, cityName: 'COMPIEGNE', countryName: 'FRANCE' },\r\n { placeId: 4940, cityName: 'CONDOM', countryName: 'FRANCE' },\r\n { placeId: 4959, cityName: 'CORLIER', countryName: 'FRANCE' },\r\n { placeId: 1664, cityName: 'CORTE', countryName: 'FRANCE' },\r\n { placeId: 1598, cityName: 'COSNE SUR LOIRE', countryName: 'FRANCE' },\r\n { placeId: 1546, cityName: 'COUHE', countryName: 'FRANCE' },\r\n { placeId: 1759, cityName: 'COULOMMIERS', countryName: 'FRANCE' },\r\n { placeId: 1675, cityName: 'COURCHEVEL', countryName: 'FRANCE' },\r\n { placeId: 1754, cityName: 'CREIL', countryName: 'FRANCE' },\r\n { placeId: 1830, cityName: 'CUERS', countryName: 'FRANCE' },\r\n { placeId: 1840, cityName: 'DAMBLAIN', countryName: 'FRANCE' },\r\n { placeId: 1502, cityName: 'DAX', countryName: 'FRANCE' },\r\n { placeId: 1800, cityName: 'DEAUVILLE', countryName: 'FRANCE' },\r\n { placeId: 1460, cityName: 'DIEPPE', countryName: 'FRANCE' },\r\n { placeId: 1794, cityName: 'DIEUZE', countryName: 'FRANCE' },\r\n { placeId: 1599, cityName: 'DIJON', countryName: 'FRANCE' },\r\n { placeId: 1550, cityName: 'DINAN', countryName: 'FRANCE' },\r\n { placeId: 1797, cityName: 'DINARD', countryName: 'FRANCE' },\r\n { placeId: 1600, cityName: 'DOLE', countryName: 'FRANCE' },\r\n { placeId: 1608, cityName: 'DONCOURT LES CONFLANS', countryName: 'FRANCE' },\r\n { placeId: 1743, cityName: 'DREUX', countryName: 'FRANCE' },\r\n { placeId: 1468, cityName: 'DUNKERQUE', countryName: 'FRANCE' },\r\n { placeId: 1531, cityName: 'EGLETONS', countryName: 'FRANCE' },\r\n { placeId: 1575, cityName: 'ENGHIEN', countryName: 'FRANCE' },\r\n { placeId: 1828, cityName: 'EPERNAY', countryName: 'FRANCE' },\r\n { placeId: 1818, cityName: 'EPINAL', countryName: 'FRANCE' },\r\n { placeId: 1775, cityName: 'ETAIN', countryName: 'FRANCE' },\r\n { placeId: 1751, cityName: 'ETAMPES', countryName: 'FRANCE' },\r\n { placeId: 1591, cityName: 'ETREPAGNY', countryName: 'FRANCE' },\r\n { placeId: 1463, cityName: 'EU', countryName: 'FRANCE' },\r\n { placeId: 1734, cityName: 'EVREUX', countryName: 'FRANCE' },\r\n { placeId: 1475, cityName: 'FALAISE', countryName: 'FRANCE' },\r\n { placeId: 1692, cityName: 'FAYENCE', countryName: 'FRANCE' },\r\n { placeId: 1687, cityName: 'FEURS', countryName: 'FRANCE' },\r\n { placeId: 1658, cityName: 'FIGARI/SUD CORSE', countryName: 'FRANCE' },\r\n { placeId: 1509, cityName: 'FIGEAC', countryName: 'FRANCE' },\r\n { placeId: 1736, cityName: 'FLERS', countryName: 'FRANCE' },\r\n { placeId: 1720, cityName: 'FLORAC', countryName: 'FRANCE' },\r\n { placeId: 1580, cityName: 'FONTENAY-LE COMTE', countryName: 'FRANCE' },\r\n { placeId: 1764, cityName: 'FONTENAY-TRESIGNY', countryName: 'FRANCE' },\r\n { placeId: 1548, cityName: 'FUMEL', countryName: 'FRANCE' },\r\n { placeId: 1533, cityName: 'GAILLAC', countryName: 'FRANCE' },\r\n { placeId: 1711, cityName: 'GAP', countryName: 'FRANCE' },\r\n { placeId: 1659, cityName: 'GHISONACCIA', countryName: 'FRANCE' },\r\n { placeId: 1799, cityName: 'GRANVILLE', countryName: 'FRANCE' },\r\n { placeId: 1519, cityName: 'GRAULHET', countryName: 'FRANCE' },\r\n { placeId: 1568, cityName: 'GRAY', countryName: 'FRANCE' },\r\n { placeId: 1672, cityName: 'GRENOBLE', countryName: 'FRANCE' },\r\n { placeId: 1508, cityName: 'GUERET', countryName: 'FRANCE' },\r\n { placeId: 1565, cityName: 'GUISCRIFF', countryName: 'FRANCE' },\r\n { placeId: 1820, cityName: 'HAGUENAU', countryName: 'FRANCE' },\r\n { placeId: 1831, cityName: 'HYERES', countryName: 'FRANCE' },\r\n { placeId: 1571, cityName: 'ILE D\\'YEU', countryName: 'FRANCE' },\r\n { placeId: 1616, cityName: 'ISSOIRE', countryName: 'FRANCE' },\r\n { placeId: 1558, cityName: 'ISSOUDUN', countryName: 'FRANCE' },\r\n { placeId: 1695, cityName: 'ISTRES', countryName: 'FRANCE' },\r\n { placeId: 1649, cityName: 'ITXASSOU', countryName: 'FRANCE' },\r\n { placeId: 1601, cityName: 'JOIGNY', countryName: 'FRANCE' },\r\n { placeId: 1579, cityName: 'JOINVILLE', countryName: 'FRANCE' },\r\n { placeId: 1513, cityName: 'JONZAC', countryName: 'FRANCE' },\r\n { placeId: 1792, cityName: 'JUVANCOURT', countryName: 'FRANCE' },\r\n { placeId: 1741, cityName: 'L\\'AIGLE', countryName: 'FRANCE' },\r\n { placeId: 1634, cityName: 'L\\'ALPE D\\'HUEZ', countryName: 'FRANCE' },\r\n { placeId: 1798, cityName: 'LA BAULE-ESCOUBLAC', countryName: 'FRANCE' },\r\n { placeId: 1584, cityName: 'LA FERTE-ALAIS', countryName: 'FRANCE' },\r\n { placeId: 1576, cityName: 'LA FERTE-GAUCHER', countryName: 'FRANCE' },\r\n { placeId: 1469, cityName: 'LA FLECHE', countryName: 'FRANCE' },\r\n { placeId: 6370, cityName: 'LA GRAND\\'COMBE', countryName: 'FRANCE' },\r\n { placeId: 6375, cityName: 'LA MOLE', countryName: 'FRANCE' },\r\n { placeId: 1693, cityName: 'LA MONTAGNE NOIRE', countryName: 'FRANCE' },\r\n { placeId: 6376, cityName: 'LA MOTTE', countryName: 'FRANCE' },\r\n { placeId: 1543, cityName: 'LA REOLE', countryName: 'FRANCE' },\r\n { placeId: 1802, cityName: 'LA ROCHE-SUR-YON', countryName: 'FRANCE' },\r\n { placeId: 1488, cityName: 'LA ROCHELLE', countryName: 'FRANCE' },\r\n { placeId: 1803, cityName: 'LANDIVISIAU', countryName: 'FRANCE' },\r\n { placeId: 1625, cityName: 'LANGOGNE', countryName: 'FRANCE' },\r\n { placeId: 1826, cityName: 'LANGRES-ROLAMPONT', countryName: 'FRANCE' },\r\n { placeId: 1808, cityName: 'LANNION', countryName: 'FRANCE' },\r\n { placeId: 1805, cityName: 'LANVEOC', countryName: 'FRANCE' },\r\n { placeId: 1464, cityName: 'LAON', countryName: 'FRANCE' },\r\n { placeId: 1637, cityName: 'LAPALISSE', countryName: 'FRANCE' },\r\n { placeId: 11632, cityName: 'LASCLAVERIES', countryName: 'FRANCE' },\r\n { placeId: 1749, cityName: 'LAVAL', countryName: 'FRANCE' },\r\n { placeId: 1559, cityName: 'LE BLANC', countryName: 'FRANCE' },\r\n { placeId: 1701, cityName: 'LE CASTELLET', countryName: 'FRANCE' },\r\n { placeId: 1737, cityName: 'LE HAVRE', countryName: 'FRANCE' },\r\n { placeId: 1689, cityName: 'LE LUC', countryName: 'FRANCE' },\r\n { placeId: 1806, cityName: 'LE MANS', countryName: 'FRANCE' },\r\n { placeId: 1729, cityName: 'LE MAZET DE ROMANIN', countryName: 'FRANCE' },\r\n { placeId: 1763, cityName: 'LE PLESSIS-BELLEVILLE', countryName: 'FRANCE' },\r\n { placeId: 1629, cityName: 'LE PUY', countryName: 'FRANCE' },\r\n { placeId: 1476, cityName: 'LE TOUQUET', countryName: 'FRANCE' },\r\n { placeId: 1781, cityName: 'LENS', countryName: 'FRANCE' },\r\n { placeId: 1839, cityName: 'LES MUREAUX', countryName: 'FRANCE' },\r\n { placeId: 1744, cityName: 'LES SABLES D\\'OLONNE', countryName: 'FRANCE' },\r\n { placeId: 1545, cityName: 'LESPARRE', countryName: 'FRANCE' },\r\n { placeId: 1742, cityName: 'LESSAY', countryName: 'FRANCE' },\r\n { placeId: 1710, cityName: 'LEZIGNAN-CORBIERES', countryName: 'FRANCE' },\r\n { placeId: 1535, cityName: 'LIBOURNE', countryName: 'FRANCE' },\r\n { placeId: 1784, cityName: 'LILLE', countryName: 'FRANCE' },\r\n { placeId: 1492, cityName: 'LIMOGES', countryName: 'FRANCE' },\r\n { placeId: 1760, cityName: 'LOGNES', countryName: 'FRANCE' },\r\n { placeId: 1609, cityName: 'LONGUYON', countryName: 'FRANCE' },\r\n { placeId: 1602, cityName: 'LONS-LE-SAUNIER', countryName: 'FRANCE' },\r\n { placeId: 1801, cityName: 'LORIENT', countryName: 'FRANCE' },\r\n { placeId: 1538, cityName: 'LOUDUN', countryName: 'FRANCE' },\r\n { placeId: 1773, cityName: 'LUNEVILLE', countryName: 'FRANCE' },\r\n { placeId: 6672, cityName: 'LURCY', countryName: 'FRANCE' },\r\n { placeId: 1829, cityName: 'LUXEUIL', countryName: 'FRANCE' },\r\n { placeId: 1624, cityName: 'LYON', countryName: 'FRANCE' },\r\n { placeId: 1677, cityName: 'MACON', countryName: 'FRANCE' },\r\n { placeId: 1573, cityName: 'MANTES', countryName: 'FRANCE' },\r\n { placeId: 6804, cityName: 'MARENNES', countryName: 'FRANCE' },\r\n { placeId: 1539, cityName: 'MARMANDE', countryName: 'FRANCE' },\r\n { placeId: 1697, cityName: 'MARSEILLE/PROVENCE', countryName: 'FRANCE' },\r\n { placeId: 1780, cityName: 'MAUBEUGE', countryName: 'FRANCE' },\r\n { placeId: 6880, cityName: 'MAULEON', countryName: 'FRANCE' },\r\n { placeId: 1756, cityName: 'MEAUX', countryName: 'FRANCE' },\r\n { placeId: 1626, cityName: 'MEGEVE', countryName: 'FRANCE' },\r\n { placeId: 1761, cityName: 'MELUN', countryName: 'FRANCE' },\r\n { placeId: 1712, cityName: 'MENDE', countryName: 'FRANCE' },\r\n { placeId: 1665, cityName: 'MERIBEL', countryName: 'FRANCE' },\r\n { placeId: 1788, cityName: 'MERVILLE', countryName: 'FRANCE' },\r\n { placeId: 1651, cityName: 'METZ-NANCY/LORRAINE', countryName: 'FRANCE' },\r\n { placeId: 1819, cityName: 'METZ', countryName: 'FRANCE' },\r\n { placeId: 1515, cityName: 'MILLAU', countryName: 'FRANCE' },\r\n { placeId: 1527, cityName: 'MIMIZAN', countryName: 'FRANCE' },\r\n { placeId: 1713, cityName: 'MONT DAUPHIN', countryName: 'FRANCE' },\r\n { placeId: 1493, cityName: 'MONT-DE-MARSAN', countryName: 'FRANCE' },\r\n { placeId: 1722, cityName: 'MONT-LOUIS', countryName: 'FRANCE' },\r\n { placeId: 1589, cityName: 'MONTAIGU', countryName: 'FRANCE' },\r\n { placeId: 1560, cityName: 'MONTARGIS', countryName: 'FRANCE' },\r\n { placeId: 1529, cityName: 'MONTAUBAN', countryName: 'FRANCE' },\r\n { placeId: 1824, cityName: 'MONTBELIARD', countryName: 'FRANCE' },\r\n { placeId: 1603, cityName: 'MONTCEAU LES MINES', countryName: 'FRANCE' },\r\n { placeId: 1474, cityName: 'MONTDIDIER', countryName: 'FRANCE' },\r\n { placeId: 1681, cityName: 'MONTELIMAR', countryName: 'FRANCE' },\r\n { placeId: 1530, cityName: 'MONTENDRE', countryName: 'FRANCE' },\r\n { placeId: 1491, cityName: 'MONTLUCON-GUERET', countryName: 'FRANCE' },\r\n { placeId: 1683, cityName: 'MONTLUCON', countryName: 'FRANCE' },\r\n { placeId: 1716, cityName: 'MONTPELLIER', countryName: 'FRANCE' },\r\n { placeId: 1704, cityName: 'MONTPELLIER/MEDITERRANEE', countryName: 'FRANCE' },\r\n { placeId: 1623, cityName: 'MORESTEL', countryName: 'FRANCE' },\r\n { placeId: 1766, cityName: 'MORET', countryName: 'FRANCE' },\r\n { placeId: 1813, cityName: 'MORLAIX', countryName: 'FRANCE' },\r\n { placeId: 1480, cityName: 'MORTAGNE AU PERCHE', countryName: 'FRANCE' },\r\n { placeId: 1638, cityName: 'MOULINS', countryName: 'FRANCE' },\r\n { placeId: 7127, cityName: 'MULHOUSE', countryName: 'FRANCE' },\r\n { placeId: 1496, cityName: 'MURET', countryName: 'FRANCE' },\r\n { placeId: 1570, cityName: 'NANCY', countryName: 'FRANCE' },\r\n { placeId: 1466, cityName: 'NANGIS', countryName: 'FRANCE' },\r\n { placeId: 1811, cityName: 'NANTES/ATLANTIQUE', countryName: 'FRANCE' },\r\n { placeId: 12166, cityName: 'NARBONNE', countryName: 'FRANCE' },\r\n { placeId: 1586, cityName: 'NEUFCHATEAU', countryName: 'FRANCE' },\r\n { placeId: 1777, cityName: 'NEVERS', countryName: 'FRANCE' },\r\n { placeId: 1698, cityName: 'NICE/COTE D\\'AZUR', countryName: 'FRANCE' },\r\n { placeId: 1691, cityName: 'NIMES', countryName: 'FRANCE' },\r\n { placeId: 1494, cityName: 'NIORT', countryName: 'FRANCE' },\r\n { placeId: 1516, cityName: 'NOGARO', countryName: 'FRANCE' },\r\n { placeId: 1615, cityName: 'NUITS-ST GEORGES', countryName: 'FRANCE' },\r\n { placeId: 1517, cityName: 'OLORON', countryName: 'FRANCE' },\r\n { placeId: 1699, cityName: 'ORANGE', countryName: 'FRANCE' },\r\n { placeId: 1739, cityName: 'ORLEANS', countryName: 'FRANCE' },\r\n { placeId: 1551, cityName: 'OUESSANT', countryName: 'FRANCE' },\r\n { placeId: 1676, cityName: 'OYONNAX', countryName: 'FRANCE' },\r\n { placeId: 1536, cityName: 'PAMIERS', countryName: 'FRANCE' },\r\n { placeId: 1604, cityName: 'PARAY LE MONIAL', countryName: 'FRANCE' },\r\n { placeId: 1753, cityName: 'PARIS', countryName: 'FRANCE' },\r\n { placeId: 1495, cityName: 'PAU/PYRENEES', countryName: 'FRANCE' },\r\n { placeId: 1501, cityName: 'PERIGUEUX', countryName: 'FRANCE' },\r\n { placeId: 1465, cityName: 'PERONNE-ST QUENTIN', countryName: 'FRANCE' },\r\n { placeId: 1617, cityName: 'PEROUGES', countryName: 'FRANCE' },\r\n { placeId: 1700, cityName: 'PERPIGNAN', countryName: 'FRANCE' },\r\n { placeId: 1752, cityName: 'PERSAN-BEAUMONT', countryName: 'FRANCE' },\r\n { placeId: 1646, cityName: 'PEYRESOURDE', countryName: 'FRANCE' },\r\n { placeId: 1721, cityName: 'PEZENAS', countryName: 'FRANCE' },\r\n { placeId: 1785, cityName: 'PHALSBOURG', countryName: 'FRANCE' },\r\n { placeId: 1618, cityName: 'PIERRELATTE', countryName: 'FRANCE' },\r\n { placeId: 1583, cityName: 'PITHIVIERS', countryName: 'FRANCE' },\r\n { placeId: 1809, cityName: 'PLOERMEL', countryName: 'FRANCE' },\r\n { placeId: 1489, cityName: 'POITIERS', countryName: 'FRANCE' },\r\n { placeId: 1518, cityName: 'PONS', countryName: 'FRANCE' },\r\n { placeId: 1827, cityName: 'PONT ST VINCENT', countryName: 'FRANCE' },\r\n { placeId: 1714, cityName: 'PONT-ST ESPRIT', countryName: 'FRANCE' },\r\n { placeId: 1605, cityName: 'PONT-SUR-YONNE', countryName: 'FRANCE' },\r\n { placeId: 1825, cityName: 'PONTARLIER', countryName: 'FRANCE' },\r\n { placeId: 1552, cityName: 'PONTIVY', countryName: 'FRANCE' },\r\n { placeId: 1765, cityName: 'PONTOISE', countryName: 'FRANCE' },\r\n { placeId: 1562, cityName: 'POUILLY', countryName: 'FRANCE' },\r\n { placeId: 1662, cityName: 'PROPRIANO', countryName: 'FRANCE' },\r\n { placeId: 1832, cityName: 'PUIMOISSON', countryName: 'FRANCE' },\r\n { placeId: 1727, cityName: 'PUIVERT', countryName: 'FRANCE' },\r\n { placeId: 1563, cityName: 'QUIBERON', countryName: 'FRANCE' },\r\n { placeId: 1810, cityName: 'QUIMPER', countryName: 'FRANCE' },\r\n { placeId: 1564, cityName: 'REDON', countryName: 'FRANCE' },\r\n { placeId: 1771, cityName: 'REIMS', countryName: 'FRANCE' },\r\n { placeId: 1807, cityName: 'RENNES', countryName: 'FRANCE' },\r\n { placeId: 1472, cityName: 'RETHEL', countryName: 'FRANCE' },\r\n { placeId: 1647, cityName: 'REVEL', countryName: 'FRANCE' },\r\n { placeId: 1643, cityName: 'RIBERAC', countryName: 'FRANCE' },\r\n { placeId: 1644, cityName: 'RION DES LANDES', countryName: 'FRANCE' },\r\n { placeId: 1679, cityName: 'ROANNE', countryName: 'FRANCE' },\r\n { placeId: 1540, cityName: 'ROCHEFORT', countryName: 'FRANCE' },\r\n { placeId: 1520, cityName: 'RODEZ', countryName: 'FRANCE' },\r\n { placeId: 1619, cityName: 'ROMANS', countryName: 'FRANCE' },\r\n { placeId: 1786, cityName: 'ROMILLY-SUR-SEINE', countryName: 'FRANCE' },\r\n { placeId: 7957, cityName: 'ROMORANTIN', countryName: 'FRANCE' },\r\n { placeId: 1745, cityName: 'ROUEN/VALLEE DE SEINE', countryName: 'FRANCE' },\r\n { placeId: 1526, cityName: 'ROYAN', countryName: 'FRANCE' },\r\n { placeId: 1620, cityName: 'RUOMS', countryName: 'FRANCE' },\r\n { placeId: 7514, cityName: 'SAINT REMY DE MAURIENNE', countryName: 'FRANCE' },\r\n { placeId: 12891, cityName: 'SAINT SULPICE DES LANDES', countryName: 'FRANCE' },\r\n { placeId: 1532, cityName: 'SAINTE FOY LA GRANDE', countryName: 'FRANCE' },\r\n { placeId: 1841, cityName: 'SAINTE LEOCADIE', countryName: 'FRANCE' },\r\n { placeId: 1837, cityName: 'SAINTES', countryName: 'FRANCE' },\r\n { placeId: 1639, cityName: 'SALLANCHES', countryName: 'FRANCE' },\r\n { placeId: 1709, cityName: 'SALON', countryName: 'FRANCE' },\r\n { placeId: 1544, cityName: 'SARLAT', countryName: 'FRANCE' },\r\n { placeId: 1789, cityName: 'SARRE-UNION', countryName: 'FRANCE' },\r\n { placeId: 1610, cityName: 'SARREBOURG', countryName: 'FRANCE' },\r\n { placeId: 1611, cityName: 'SARREGUEMINES', countryName: 'FRANCE' },\r\n { placeId: 1569, cityName: 'SAULIEU', countryName: 'FRANCE' },\r\n { placeId: 1733, cityName: 'SAUMUR', countryName: 'FRANCE' },\r\n { placeId: 1793, cityName: 'SAVERNE', countryName: 'FRANCE' },\r\n { placeId: 1822, cityName: 'SEDAN', countryName: 'FRANCE' },\r\n { placeId: 1607, cityName: 'SEMUR EN AUXOIS', countryName: 'FRANCE' },\r\n { placeId: 8194, cityName: 'SERRES-LA-BATIE', countryName: 'FRANCE' },\r\n { placeId: 1592, cityName: 'SEZANNE', countryName: 'FRANCE' },\r\n { placeId: 1724, cityName: 'SISTERON', countryName: 'FRANCE' },\r\n { placeId: 1652, cityName: 'SOISSONS', countryName: 'FRANCE' },\r\n { placeId: 1663, cityName: 'SOLENZARA', countryName: 'FRANCE' },\r\n { placeId: 1656, cityName: 'SOLLIERES SARDIERES', countryName: 'FRANCE' },\r\n { placeId: 1537, cityName: 'SOULAC SUR MER', countryName: 'FRANCE' },\r\n { placeId: 1641, cityName: 'ST AFRIQUE', countryName: 'FRANCE' },\r\n { placeId: 1574, cityName: 'ST ANDRE DE L\\'EURE', countryName: 'FRANCE' },\r\n { placeId: 1812, cityName: 'ST BRIEUC', countryName: 'FRANCE' },\r\n { placeId: 1621, cityName: 'ST CHAMOND', countryName: 'FRANCE' },\r\n { placeId: 1838, cityName: 'ST CHRISTOL', countryName: 'FRANCE' },\r\n { placeId: 1667, cityName: 'ST CLAUDE', countryName: 'FRANCE' },\r\n { placeId: 1770, cityName: 'ST CYR-L\\'ECOLE', countryName: 'FRANCE' },\r\n { placeId: 1614, cityName: 'ST DIE', countryName: 'FRANCE' },\r\n { placeId: 1821, cityName: 'ST DIZIER', countryName: 'FRANCE' },\r\n { placeId: 1694, cityName: 'ST ETIENNE', countryName: 'FRANCE' },\r\n { placeId: 1606, cityName: 'ST FLORENTIN', countryName: 'FRANCE' },\r\n { placeId: 1630, cityName: 'ST FLOUR', countryName: 'FRANCE' },\r\n { placeId: 1661, cityName: 'ST GALMIER', countryName: 'FRANCE' },\r\n { placeId: 1645, cityName: 'ST GAUDENS', countryName: 'FRANCE' },\r\n { placeId: 1510, cityName: 'ST GIRONS', countryName: 'FRANCE' },\r\n { placeId: 13188, cityName: 'ST INGLEVERT', countryName: 'FRANCE' },\r\n { placeId: 1650, cityName: 'ST JEAN D\\'ANGELY', countryName: 'FRANCE' },\r\n { placeId: 1657, cityName: 'ST JEAN EN ROYANS', countryName: 'FRANCE' },\r\n { placeId: 1490, cityName: 'ST JUNIEN', countryName: 'FRANCE' },\r\n { placeId: 1719, cityName: 'ST MARTIN DE LONDRES', countryName: 'FRANCE' },\r\n { placeId: 1816, cityName: 'ST NAZAIRE', countryName: 'FRANCE' },\r\n { placeId: 1783, cityName: 'ST OMER', countryName: 'FRANCE' },\r\n { placeId: 1541, cityName: 'ST PIERRE D\\'OLERON', countryName: 'FRANCE' },\r\n { placeId: 1750, cityName: 'ST QUENTIN', countryName: 'FRANCE' },\r\n { placeId: 1682, cityName: 'ST RAMBERT D\\'ALBON', countryName: 'FRANCE' },\r\n { placeId: 1747, cityName: 'ST VALERY', countryName: 'FRANCE' },\r\n { placeId: 1678, cityName: 'ST YAN', countryName: 'FRANCE' },\r\n { placeId: 1594, cityName: 'STRASBOURG', countryName: 'FRANCE' },\r\n { placeId: 1498, cityName: 'TARBES', countryName: 'FRANCE' },\r\n { placeId: 1612, cityName: 'THIONVILLE', countryName: 'FRANCE' },\r\n { placeId: 1521, cityName: 'THOUARS', countryName: 'FRANCE' },\r\n { placeId: 1566, cityName: 'TIL-CHATEL', countryName: 'FRANCE' },\r\n { placeId: 1486, cityName: 'TOULOUSE', countryName: 'FRANCE' },\r\n { placeId: 1590, cityName: 'TOURNUS', countryName: 'FRANCE' },\r\n { placeId: 1561, cityName: 'TOURS', countryName: 'FRANCE' },\r\n { placeId: 1762, cityName: 'TOUSSUS-LE-NOBLE', countryName: 'FRANCE' },\r\n { placeId: 1772, cityName: 'TROYES', countryName: 'FRANCE' },\r\n { placeId: 1522, cityName: 'USSEL', countryName: 'FRANCE' },\r\n { placeId: 1725, cityName: 'UZES', countryName: 'FRANCE' },\r\n { placeId: 1684, cityName: 'VALENCE', countryName: 'FRANCE' },\r\n { placeId: 1478, cityName: 'VALENCIENNES', countryName: 'FRANCE' },\r\n { placeId: 1726, cityName: 'VALREAS', countryName: 'FRANCE' },\r\n { placeId: 1814, cityName: 'VANNES', countryName: 'FRANCE' },\r\n { placeId: 1477, cityName: 'VAUVILLE', countryName: 'FRANCE' },\r\n { placeId: 1648, cityName: 'VENDAYS MONTALIVET', countryName: 'FRANCE' },\r\n { placeId: 1613, cityName: 'VERDUN', countryName: 'FRANCE' },\r\n { placeId: 1791, cityName: 'VESOUL', countryName: 'FRANCE' },\r\n { placeId: 1685, cityName: 'VICHY', countryName: 'FRANCE' },\r\n { placeId: 1622, cityName: 'VIENNE', countryName: 'FRANCE' },\r\n { placeId: 1588, cityName: 'VIERZON', countryName: 'FRANCE' },\r\n { placeId: 1767, cityName: 'VILLACOUBLAY', countryName: 'FRANCE' },\r\n { placeId: 1523, cityName: 'VILLEFRANCHE-DE-ROUERGUE', countryName: 'FRANCE' },\r\n { placeId: 1635, cityName: 'VILLEFRANCHE', countryName: 'FRANCE' },\r\n { placeId: 1524, cityName: 'VILLENEUVE-SUR-LOT', countryName: 'FRANCE' },\r\n { placeId: 1479, cityName: 'VILLERUPT', countryName: 'FRANCE' },\r\n { placeId: 1715, cityName: 'VINON', countryName: 'FRANCE' },\r\n { placeId: 1787, cityName: 'VITRY EN ARTOIS', countryName: 'FRANCE' },\r\n { placeId: 1823, cityName: 'VITRY LE FRANCOIS', countryName: 'FRANCE' },\r\n { placeId: 2524, cityName: 'CAYENNE', countryName: 'FRENCH GUIANA' },\r\n { placeId: 8128, cityName: 'SAUL', countryName: 'FRENCH GUIANA' },\r\n { placeId: 8417, cityName: 'ST GEORGES DE L\\'OYAPOCK', countryName: 'FRENCH GUIANA' },\r\n { placeId: 8437, cityName: 'ST-LAURENT-DU-MARONI', countryName: 'FRENCH GUIANA' },\r\n { placeId: 9571, cityName: 'ANAA I', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 9594, cityName: 'APATAKI', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 9602, cityName: 'ARATIKA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 9622, cityName: 'ARUTUA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 3906, cityName: 'BORA BORA I', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 10662, cityName: 'FAAITE', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 10673, cityName: 'FAKAHINA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 10674, cityName: 'FAKARAVA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 10681, cityName: 'FANGATAU I.', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11072, cityName: 'HAO I', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11143, cityName: 'HIKUERU', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11152, cityName: 'HIVA OA I', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11202, cityName: 'HUAHINE I', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11406, cityName: 'KATIU', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11408, cityName: 'KAUEHI', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11409, cityName: 'KAUKURA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11802, cityName: 'MAKEMO ISLAND', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11815, cityName: 'MANIHI', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11868, cityName: 'MARQUESAS IS', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11897, cityName: 'MATAIVA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11901, cityName: 'MATAURA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 11905, cityName: 'MAUPITI', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12057, cityName: 'MOOREA ISLAND', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12164, cityName: 'NAPUKA ISLAND', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12225, cityName: 'NIAU', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12279, cityName: 'NUKU-HIVA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12281, cityName: 'NUKUTAVAKE', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12569, cityName: 'POINTE PAKAKURU', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12671, cityName: 'PUKA PUKA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12673, cityName: 'PUKARUA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12716, cityName: 'RAIATEA I', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12730, cityName: 'RANGIROA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12734, cityName: 'RAROIA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12744, cityName: 'REAO I.', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12795, cityName: 'RIMATARA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12868, cityName: 'RURUTU AUSTRAL IS', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 2333, cityName: 'TAHITI I', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 13343, cityName: 'TAKAPOTO', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 13344, cityName: 'TAKAROA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 13345, cityName: 'TAKUME', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 13370, cityName: 'TATAKOTO', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 13402, cityName: 'TETIAROA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 13432, cityName: 'TIKEHAU', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 13469, cityName: 'TOTEGEGIE I', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 13517, cityName: 'TUREIA', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 13529, cityName: 'UA POU', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 13565, cityName: 'VAHITAHI', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' },\r\n { placeId: 12718, cityName: 'RAIVAVAE, AUSTRAL IS', countryName: 'FRENCH PACIFIC OVERSEAS TERR.' }, // eslint-disable-line max-len\r\n { placeId: 4494, cityName: 'BITAM', countryName: 'GABON' },\r\n { placeId: 4544, cityName: 'BOOUE', countryName: 'GABON' },\r\n { placeId: 4914, cityName: 'COCOBEACH', countryName: 'GABON' },\r\n { placeId: 5440, cityName: 'FOUGAMOU', countryName: 'GABON' },\r\n { placeId: 5446, cityName: 'FRANCEVILLE', countryName: 'GABON' },\r\n { placeId: 6418, cityName: 'LAMBARENE', countryName: 'GABON' },\r\n { placeId: 6449, cityName: 'LASTOURVILLE', countryName: 'GABON' },\r\n { placeId: 1146, cityName: 'LIBREVILLE', countryName: 'GABON' },\r\n { placeId: 6726, cityName: 'MAKOKOU', countryName: 'GABON' },\r\n { placeId: 6889, cityName: 'MAYUMBA', countryName: 'GABON' },\r\n { placeId: 6895, cityName: 'MBIGOU', countryName: 'GABON' },\r\n { placeId: 6923, cityName: 'MEKAMBO', countryName: 'GABON' },\r\n { placeId: 6993, cityName: 'MINVOUL', countryName: 'GABON' },\r\n { placeId: 7001, cityName: 'MITZIC', countryName: 'GABON' },\r\n { placeId: 6486, cityName: 'MOABI', countryName: 'GABON' },\r\n { placeId: 6487, cityName: 'MOANDA', countryName: 'GABON' },\r\n { placeId: 7089, cityName: 'MOUILA', countryName: 'GABON' },\r\n { placeId: 7204, cityName: 'NDENDE', countryName: 'GABON' },\r\n { placeId: 7205, cityName: 'NDJOLE', countryName: 'GABON' },\r\n { placeId: 7372, cityName: 'OKONDJA', countryName: 'GABON' },\r\n { placeId: 7387, cityName: 'OMBOUE', countryName: 'GABON' },\r\n { placeId: 7462, cityName: 'OYEM', countryName: 'GABON' },\r\n { placeId: 1145, cityName: 'PORT GENTIL', countryName: 'GABON' },\r\n { placeId: 8196, cityName: 'SETTE-CAMA', countryName: 'GABON' },\r\n { placeId: 8598, cityName: 'TCHIBANGA', countryName: 'GABON' },\r\n { placeId: 1172, cityName: 'BANJUL', countryName: 'GAMBIA' },\r\n { placeId: 949, cityName: 'GAMBA', countryName: 'GAMBIA' },\r\n { placeId: 13930, cityName: 'ABKHAZIA', countryName: 'GEORGIA' },\r\n { placeId: 2576, cityName: 'BATUMI', countryName: 'GEORGIA' },\r\n { placeId: 2575, cityName: 'KUTAISI', countryName: 'GEORGIA' },\r\n { placeId: 2577, cityName: 'TBILISI', countryName: 'GEORGIA' },\r\n { placeId: 315, cityName: 'AACHEN', countryName: 'GERMANY' },\r\n { placeId: 413, cityName: 'AALEN-HEIDENHEIM', countryName: 'GERMANY' },\r\n { placeId: 529, cityName: 'ACHMER', countryName: 'GERMANY' },\r\n { placeId: 311, cityName: 'AHRENLOHE', countryName: 'GERMANY' },\r\n { placeId: 287, cityName: 'AILERTCHEN', countryName: 'GERMANY' },\r\n { placeId: 463, cityName: 'ALBSTADT', countryName: 'GERMANY' },\r\n { placeId: 277, cityName: 'ALLENDORF/EDER', countryName: 'GERMANY' },\r\n { placeId: 4085, cityName: 'ALLSTEDT', countryName: 'GERMANY' },\r\n { placeId: 469, cityName: 'ALTDORF-WALLBURG', countryName: 'GERMANY' },\r\n { placeId: 317, cityName: 'ALTENA', countryName: 'GERMANY' },\r\n { placeId: 1063, cityName: 'ALTENSTADT', countryName: 'GERMANY' },\r\n { placeId: 374, cityName: 'AMPFING', countryName: 'GERMANY' },\r\n { placeId: 228, cityName: 'ANKLAM', countryName: 'GERMANY' },\r\n { placeId: 431, cityName: 'ANSBACH', countryName: 'GERMANY' },\r\n { placeId: 262, cityName: 'ANSPACH/TAUNUS', countryName: 'GERMANY' },\r\n { placeId: 375, cityName: 'ARNBRUCK', countryName: 'GERMANY' },\r\n { placeId: 331, cityName: 'ARNSBERG', countryName: 'GERMANY' },\r\n { placeId: 211, cityName: 'ARNSTADT', countryName: 'GERMANY' },\r\n { placeId: 264, cityName: 'ASCHAFFENBURG', countryName: 'GERMANY' },\r\n { placeId: 236, cityName: 'ASCHERSLEBEN', countryName: 'GERMANY' },\r\n { placeId: 327, cityName: 'ATTENDORN', countryName: 'GERMANY' },\r\n { placeId: 395, cityName: 'AUERBACH', countryName: 'GERMANY' },\r\n { placeId: 352, cityName: 'AUGSBURG', countryName: 'GERMANY' },\r\n { placeId: 4282, cityName: 'BABENHAUSEN', countryName: 'GERMANY' },\r\n { placeId: 465, cityName: 'BACKNANG', countryName: 'GERMANY' },\r\n { placeId: 396, cityName: 'BAD BERKA', countryName: 'GERMANY' },\r\n { placeId: 414, cityName: 'BAD DITZENBACH', countryName: 'GERMANY' },\r\n { placeId: 447, cityName: 'BAD DURKHEIM', countryName: 'GERMANY' },\r\n { placeId: 4286, cityName: 'BAD FRANKENHAUSEN', countryName: 'GERMANY' },\r\n { placeId: 489, cityName: 'BAD GANDERSHEIM', countryName: 'GERMANY' },\r\n { placeId: 9686, cityName: 'BAD HERSFELD', countryName: 'GERMANY' },\r\n { placeId: 271, cityName: 'BAD KISSINGEN', countryName: 'GERMANY' },\r\n { placeId: 4287, cityName: 'BAD LANGENSALZA', countryName: 'GERMANY' },\r\n { placeId: 445, cityName: 'BAD NEUENAHR-AHRWEILER', countryName: 'GERMANY' },\r\n { placeId: 265, cityName: 'BAD NEUSTADT/SAALE', countryName: 'GERMANY' },\r\n { placeId: 504, cityName: 'BAD PYRMONT', countryName: 'GERMANY' },\r\n { placeId: 458, cityName: 'BAD SOBERNHEIM', countryName: 'GERMANY' },\r\n { placeId: 427, cityName: 'BAD WINDSHEIM', countryName: 'GERMANY' },\r\n { placeId: 380, cityName: 'BAD WORISHOFEN', countryName: 'GERMANY' },\r\n { placeId: 471, cityName: 'BADEN', countryName: 'GERMANY' },\r\n { placeId: 229, cityName: 'BALLENSTEDT', countryName: 'GERMANY' },\r\n { placeId: 528, cityName: 'BALTRUM', countryName: 'GERMANY' },\r\n { placeId: 1060, cityName: 'BAMBERG', countryName: 'GERMANY' },\r\n { placeId: 538, cityName: 'BARSSEL', countryName: 'GERMANY' },\r\n { placeId: 217, cityName: 'BARTH', countryName: 'GERMANY' },\r\n { placeId: 4360, cityName: 'BARTHOLOMA', countryName: 'GERMANY' },\r\n { placeId: 1061, cityName: 'BAUMHOLDER', countryName: 'GERMANY' },\r\n { placeId: 190, cityName: 'BAUTZEN', countryName: 'GERMANY' },\r\n { placeId: 429, cityName: 'BAYREUTH', countryName: 'GERMANY' },\r\n { placeId: 376, cityName: 'BEILNGRIES', countryName: 'GERMANY' },\r\n { placeId: 4438, cityName: 'BERCHING', countryName: 'GERMANY' },\r\n { placeId: 318, cityName: 'BERGNEUSTADT', countryName: 'GERMANY' },\r\n { placeId: 243, cityName: 'BERLIN', countryName: 'GERMANY' },\r\n { placeId: 320, cityName: 'BETZDORF-KIRCHEN', countryName: 'GERMANY' },\r\n { placeId: 353, cityName: 'BIBERACH AN DER RISS', countryName: 'GERMANY' },\r\n { placeId: 338, cityName: 'BIELEFELD', countryName: 'GERMANY' },\r\n { placeId: 401, cityName: 'BIENENFARM', countryName: 'GERMANY' },\r\n { placeId: 466, cityName: 'BINNINGEN', countryName: 'GERMANY' },\r\n { placeId: 4495, cityName: 'BITBURG', countryName: 'GERMANY' },\r\n { placeId: 354, cityName: 'BLAUBEUREN', countryName: 'GERMANY' },\r\n { placeId: 492, cityName: 'BLOMBERG', countryName: 'GERMANY' },\r\n { placeId: 468, cityName: 'BLUMBERG', countryName: 'GERMANY' },\r\n { placeId: 399, cityName: 'BOHLEN', countryName: 'GERMANY' },\r\n { placeId: 532, cityName: 'BOHMTE', countryName: 'GERMANY' },\r\n { placeId: 316, cityName: 'BONN', countryName: 'GERMANY' },\r\n { placeId: 387, cityName: 'BOPFINGEN', countryName: 'GERMANY' },\r\n { placeId: 506, cityName: 'BORDELUM', countryName: 'GERMANY' },\r\n { placeId: 350, cityName: 'BORKEN', countryName: 'GERMANY' },\r\n { placeId: 332, cityName: 'BORKENBERGE', countryName: 'GERMANY' },\r\n { placeId: 522, cityName: 'BORKUM', countryName: 'GERMANY' },\r\n { placeId: 299, cityName: 'BOTTENHORN', countryName: 'GERMANY' },\r\n { placeId: 4587, cityName: 'BRANDENBURG', countryName: 'GERMANY' },\r\n { placeId: 491, cityName: 'BRAUNSCHWEIG-WOLFSBURG', countryName: 'GERMANY' },\r\n { placeId: 288, cityName: 'BREITSCHEID', countryName: 'GERMANY' },\r\n { placeId: 257, cityName: 'BREMEN', countryName: 'GERMANY' },\r\n { placeId: 507, cityName: 'BREMERHAVEN', countryName: 'GERMANY' },\r\n { placeId: 4594, cityName: 'BREMGARTEN', countryName: 'GERMANY' },\r\n { placeId: 324, cityName: 'BRILON/HOCHSAUERLAND', countryName: 'GERMANY' },\r\n { placeId: 4607, cityName: 'BRONKOW', countryName: 'GERMANY' },\r\n { placeId: 472, cityName: 'BRUCHSAL', countryName: 'GERMANY' },\r\n { placeId: 1085, cityName: 'BUCHEL', countryName: 'GERMANY' },\r\n { placeId: 1064, cityName: 'BUCKEBURG', countryName: 'GERMANY' },\r\n { placeId: 430, cityName: 'BURG FEUERSTEIN', countryName: 'GERMANY' },\r\n { placeId: 216, cityName: 'BURG', countryName: 'GERMANY' },\r\n { placeId: 490, cityName: 'CELLE', countryName: 'GERMANY' },\r\n { placeId: 233, cityName: 'CHEMNITZ', countryName: 'GERMANY' },\r\n { placeId: 428, cityName: 'COBURG', countryName: 'GERMANY' },\r\n { placeId: 249, cityName: 'COLOGNE-BONN', countryName: 'GERMANY' },\r\n { placeId: 4975, cityName: 'COTTBUS-DREWITZ', countryName: 'GERMANY' },\r\n { placeId: 355, cityName: 'DACHAU', countryName: 'GERMANY' },\r\n { placeId: 328, cityName: 'DAHLEMER BINZ', countryName: 'GERMANY' },\r\n { placeId: 508, cityName: 'DAMME', countryName: 'GERMANY' },\r\n { placeId: 214, cityName: 'DEDELOW', countryName: 'GERMANY' },\r\n { placeId: 372, cityName: 'DEGGENDORF', countryName: 'GERMANY' },\r\n { placeId: 192, cityName: 'DESSAU', countryName: 'GERMANY' },\r\n { placeId: 5159, cityName: 'DETMOLD', countryName: 'GERMANY' },\r\n { placeId: 1073, cityName: 'DIEPHOLZ', countryName: 'GERMANY' },\r\n { placeId: 460, cityName: 'DIERDORF', countryName: 'GERMANY' },\r\n { placeId: 415, cityName: 'DINGOLFING', countryName: 'GERMANY' },\r\n { placeId: 377, cityName: 'DINKELSBUHL', countryName: 'GERMANY' },\r\n { placeId: 334, cityName: 'DINSLAKEN', countryName: 'GERMANY' },\r\n { placeId: 473, cityName: 'DONAUESCHINGEN', countryName: 'GERMANY' },\r\n { placeId: 368, cityName: 'DONAUWORTH', countryName: 'GERMANY' },\r\n { placeId: 422, cityName: 'DONZDORF', countryName: 'GERMANY' },\r\n { placeId: 348, cityName: 'DORTMUND', countryName: 'GERMANY' },\r\n { placeId: 244, cityName: 'DRESDEN', countryName: 'GERMANY' },\r\n { placeId: 250, cityName: 'DUSSELDORF', countryName: 'GERMANY' },\r\n { placeId: 440, cityName: 'EBERN', countryName: 'GERMANY' },\r\n { placeId: 5258, cityName: 'EBERSWALDE-FINOW', countryName: 'GERMANY' },\r\n { placeId: 356, cityName: 'EGGENFELDEN', countryName: 'GERMANY' },\r\n { placeId: 230, cityName: 'EGGERSDORF', countryName: 'GERMANY' },\r\n { placeId: 416, cityName: 'EICHSTATT', countryName: 'GERMANY' },\r\n { placeId: 289, cityName: 'EISENACH-KINDEL', countryName: 'GERMANY' },\r\n { placeId: 193, cityName: 'EISENHUTTENSTADT', countryName: 'GERMANY' },\r\n { placeId: 5304, cityName: 'ELLWANGEN', countryName: 'GERMANY' },\r\n { placeId: 285, cityName: 'ELZ', countryName: 'GERMANY' },\r\n { placeId: 509, cityName: 'EMDEN', countryName: 'GERMANY' },\r\n { placeId: 378, cityName: 'ERBACH', countryName: 'GERMANY' },\r\n { placeId: 1086, cityName: 'ERDING', countryName: 'GERMANY' },\r\n { placeId: 245, cityName: 'ERFURT', countryName: 'GERMANY' },\r\n { placeId: 335, cityName: 'ESSEN-MULHEIM', countryName: 'GERMANY' },\r\n { placeId: 5362, cityName: 'FALKENBERG', countryName: 'GERMANY' },\r\n { placeId: 1069, cityName: 'FASSBERG', countryName: 'GERMANY' },\r\n { placeId: 488, cityName: 'FINSTERWALDE', countryName: 'GERMANY' },\r\n { placeId: 534, cityName: 'FLENSBURG', countryName: 'GERMANY' },\r\n { placeId: 266, cityName: 'FRANKFURT-EGELSBACH', countryName: 'GERMANY' },\r\n { placeId: 268, cityName: 'FRANKFURT-HAHN', countryName: 'GERMANY' },\r\n { placeId: 246, cityName: 'FRANKFURT/MAIN', countryName: 'GERMANY' },\r\n { placeId: 474, cityName: 'FREIBURG I. BR.', countryName: 'GERMANY' },\r\n { placeId: 394, cityName: 'FRIEDRICHSHAFEN', countryName: 'GERMANY' },\r\n { placeId: 1065, cityName: 'FRITZLAR', countryName: 'GERMANY' },\r\n { placeId: 290, cityName: 'FULDA', countryName: 'GERMANY' },\r\n { placeId: 1087, cityName: 'FURSTENFELDBRUCK', countryName: 'GERMANY' },\r\n { placeId: 198, cityName: 'FURSTENWALDE', countryName: 'GERMANY' },\r\n { placeId: 357, cityName: 'FURSTENZELL', countryName: 'GERMANY' },\r\n { placeId: 521, cityName: 'GANDERKESEE', countryName: 'GERMANY' },\r\n { placeId: 397, cityName: 'GARDELEGEN', countryName: 'GERMANY' },\r\n { placeId: 1074, cityName: 'GEILENKIRCHEN', countryName: 'GERMANY' },\r\n { placeId: 267, cityName: 'GELNHAUSEN', countryName: 'GERMANY' },\r\n { placeId: 196, cityName: 'GERA', countryName: 'GERMANY' },\r\n { placeId: 426, cityName: 'GERSTETTEN', countryName: 'GERMANY' },\r\n { placeId: 10892, cityName: 'GIEBELSTADT', countryName: 'GERMANY' },\r\n { placeId: 379, cityName: 'GIENGEN/BRENZ', countryName: 'GERMANY' },\r\n { placeId: 272, cityName: 'GIESSEN', countryName: 'GERMANY' },\r\n { placeId: 5589, cityName: 'GOCH', countryName: 'GERMANY' },\r\n { placeId: 227, cityName: 'GORLITZ', countryName: 'GERMANY' },\r\n { placeId: 5146, cityName: 'GOTHA-OST', countryName: 'GERMANY' },\r\n { placeId: 5609, cityName: 'GRABENSTETTEN', countryName: 'GERMANY' },\r\n { placeId: 1070, cityName: 'GRAFENWOHR', countryName: 'GERMANY' },\r\n { placeId: 336, cityName: 'GREFRATH', countryName: 'GERMANY' },\r\n { placeId: 409, cityName: 'GREIZ', countryName: 'GERMANY' },\r\n { placeId: 418, cityName: 'GRIESAU', countryName: 'GERMANY' },\r\n { placeId: 197, cityName: 'GROSSENHAIN', countryName: 'GERMANY' },\r\n { placeId: 194, cityName: 'GROSSRUCKERSWALDE', countryName: 'GERMANY' },\r\n { placeId: 304, cityName: 'GRUBE', countryName: 'GERMANY' },\r\n { placeId: 5744, cityName: 'GUNDELFINGEN', countryName: 'GERMANY' },\r\n { placeId: 358, cityName: 'GUNZBURG', countryName: 'GERMANY' },\r\n { placeId: 359, cityName: 'GUNZENHAUSEN', countryName: 'GERMANY' },\r\n { placeId: 239, cityName: 'GUSTROW', countryName: 'GERMANY' },\r\n { placeId: 1091, cityName: 'GUTERSLOH', countryName: 'GERMANY' },\r\n { placeId: 203, cityName: 'HALLE', countryName: 'GERMANY' },\r\n { placeId: 248, cityName: 'HAMBURG', countryName: 'GERMANY' },\r\n { placeId: 337, cityName: 'HAMM', countryName: 'GERMANY' },\r\n { placeId: 256, cityName: 'HANNOVER', countryName: 'GERMANY' },\r\n { placeId: 542, cityName: 'HARLE', countryName: 'GERMANY' },\r\n { placeId: 309, cityName: 'HARTENHOLM', countryName: 'GERMANY' },\r\n { placeId: 441, cityName: 'HASSFURT', countryName: 'GERMANY' },\r\n { placeId: 530, cityName: 'HEIDE', countryName: 'GERMANY' },\r\n { placeId: 11118, cityName: 'HEILBAD-HEILIGENSTADT', countryName: 'GERMANY' },\r\n { placeId: 536, cityName: 'HELGOLAND', countryName: 'GERMANY' },\r\n { placeId: 5829, cityName: 'HEPPENHEIM', countryName: 'GERMANY' },\r\n { placeId: 195, cityName: 'HERINGSDORF', countryName: 'GERMANY' },\r\n { placeId: 258, cityName: 'HERRENTEICH', countryName: 'GERMANY' },\r\n { placeId: 482, cityName: 'HERTEN', countryName: 'GERMANY' },\r\n { placeId: 432, cityName: 'HERZOGENAURACH', countryName: 'GERMANY' },\r\n { placeId: 291, cityName: 'HETTSTADT', countryName: 'GERMANY' },\r\n { placeId: 443, cityName: 'HETZLESER BERG', countryName: 'GERMANY' },\r\n { placeId: 475, cityName: 'HEUBACH', countryName: 'GERMANY' },\r\n { placeId: 498, cityName: 'HILDESHEIM', countryName: 'GERMANY' },\r\n { placeId: 269, cityName: 'HIRZENHAIN', countryName: 'GERMANY' },\r\n { placeId: 284, cityName: 'HOCKENHEIM', countryName: 'GERMANY' },\r\n { placeId: 494, cityName: 'HODENHAGEN', countryName: 'GERMANY' },\r\n { placeId: 436, cityName: 'HOF-PLAUEN', countryName: 'GERMANY' },\r\n { placeId: 1071, cityName: 'HOHENFELS', countryName: 'GERMANY' },\r\n { placeId: 1075, cityName: 'HOHN', countryName: 'GERMANY' },\r\n { placeId: 497, cityName: 'HOLLEBERG', countryName: 'GERMANY' },\r\n { placeId: 1088, cityName: 'HOLZDORF', countryName: 'GERMANY' },\r\n { placeId: 449, cityName: 'HOPPSTADTEN-WEIERSBACH', countryName: 'GERMANY' },\r\n { placeId: 495, cityName: 'HOXTER-HOLZMINDEN', countryName: 'GERMANY' },\r\n { placeId: 319, cityName: 'HUNSBORN', countryName: 'GERMANY' },\r\n { placeId: 5913, cityName: 'HUSUM', countryName: 'GERMANY' },\r\n { placeId: 546, cityName: 'HUTTENBUSCH', countryName: 'GERMANY' },\r\n { placeId: 448, cityName: 'IDAR-OBERSTEIN', countryName: 'GERMANY' },\r\n { placeId: 360, cityName: 'ILLERTISSEN', countryName: 'GERMANY' },\r\n { placeId: 292, cityName: 'INGELFINGEN', countryName: 'GERMANY' },\r\n { placeId: 1089, cityName: 'INGOLSTADT', countryName: 'GERMANY' },\r\n { placeId: 6015, cityName: 'ITZEHOE', countryName: 'GERMANY' },\r\n { placeId: 219, cityName: 'JENA', countryName: 'GERMANY' },\r\n { placeId: 361, cityName: 'JESENWANG', countryName: 'GERMANY' },\r\n { placeId: 1076, cityName: 'JEVER', countryName: 'GERMANY' },\r\n { placeId: 514, cityName: 'JUIST', countryName: 'GERMANY' },\r\n { placeId: 235, cityName: 'KAMENZ', countryName: 'GERMANY' },\r\n { placeId: 333, cityName: 'KAMP-LINTFORT', countryName: 'GERMANY' },\r\n { placeId: 515, cityName: 'KARLSHOFEN', countryName: 'GERMANY' },\r\n { placeId: 476, cityName: 'KARLSRUHE', countryName: 'GERMANY' },\r\n { placeId: 464, cityName: 'KARLSRUHE/BADEN-BADEN', countryName: 'GERMANY' },\r\n { placeId: 496, cityName: 'KASSEL', countryName: 'GERMANY' },\r\n { placeId: 467, cityName: 'KEHL', countryName: 'GERMANY' },\r\n { placeId: 362, cityName: 'KEMPTEN', countryName: 'GERMANY' },\r\n { placeId: 307, cityName: 'KIEL', countryName: 'GERMANY' },\r\n { placeId: 382, cityName: 'KIRCHDORF/INN', countryName: 'GERMANY' },\r\n { placeId: 6281, cityName: 'KLEIN MUHLINGEN', countryName: 'GERMANY' },\r\n { placeId: 6285, cityName: 'KLIETZ', countryName: 'GERMANY' },\r\n { placeId: 232, cityName: 'KLIX', countryName: 'GERMANY' },\r\n { placeId: 452, cityName: 'KOBLENZ', countryName: 'GERMANY' },\r\n { placeId: 487, cityName: 'KONSTANZ', countryName: 'GERMANY' },\r\n { placeId: 294, cityName: 'KORBACH', countryName: 'GERMANY' },\r\n { placeId: 234, cityName: 'KOTHEN', countryName: 'GERMANY' },\r\n { placeId: 339, cityName: 'KREFELD', countryName: 'GERMANY' },\r\n { placeId: 549, cityName: 'KUHRSTEDT', countryName: 'GERMANY' },\r\n { placeId: 434, cityName: 'KULMBACH', countryName: 'GERMANY' },\r\n { placeId: 220, cityName: 'KYRITZ', countryName: 'GERMANY' },\r\n { placeId: 1077, cityName: 'LAAGE', countryName: 'GERMANY' },\r\n { placeId: 453, cityName: 'LACHEN-SPEYERDORF', countryName: 'GERMANY' },\r\n { placeId: 270, cityName: 'LAGER HAMMELBURG', countryName: 'GERMANY' },\r\n { placeId: 477, cityName: 'LAHR', countryName: 'GERMANY' },\r\n { placeId: 420, cityName: 'LAICHINGEN', countryName: 'GERMANY' },\r\n { placeId: 1084, cityName: 'LANDSBERG', countryName: 'GERMANY' },\r\n { placeId: 363, cityName: 'LANDSHUT', countryName: 'GERMANY' },\r\n { placeId: 259, cityName: 'LANGENLONSHEIM', countryName: 'GERMANY' },\r\n { placeId: 516, cityName: 'LANGEOOG', countryName: 'GERMANY' },\r\n { placeId: 6433, cityName: 'LANGHENNERSDORF', countryName: 'GERMANY' },\r\n { placeId: 221, cityName: 'LAUCHA', countryName: 'GERMANY' },\r\n { placeId: 313, cityName: 'LAUENBRUCK', countryName: 'GERMANY' },\r\n { placeId: 433, cityName: 'LAUF-LILLINGHOF', countryName: 'GERMANY' },\r\n { placeId: 1066, cityName: 'LAUPHEIM', countryName: 'GERMANY' },\r\n { placeId: 280, cityName: 'LAUTERBACH', countryName: 'GERMANY' },\r\n { placeId: 1090, cityName: 'LECHFELD', countryName: 'GERMANY' },\r\n { placeId: 6470, cityName: 'LECK', countryName: 'GERMANY' },\r\n { placeId: 510, cityName: 'LEER', countryName: 'GERMANY' },\r\n { placeId: 191, cityName: 'LEIPZIG-ALTENBURG', countryName: 'GERMANY' },\r\n { placeId: 253, cityName: 'LEIPZIG-HALLE', countryName: 'GERMANY' },\r\n { placeId: 383, cityName: 'LEUTKIRCH', countryName: 'GERMANY' },\r\n { placeId: 321, cityName: 'LEVERKUSEN', countryName: 'GERMANY' },\r\n { placeId: 435, cityName: 'LICHTENFELS', countryName: 'GERMANY' },\r\n { placeId: 450, cityName: 'LINKENHEIM', countryName: 'GERMANY' },\r\n { placeId: 308, cityName: 'LUBECK', countryName: 'GERMANY' },\r\n { placeId: 305, cityName: 'LUCHOW', countryName: 'GERMANY' },\r\n { placeId: 5653, cityName: 'LUNEBURG', countryName: 'GERMANY' },\r\n { placeId: 402, cityName: 'LUSSE', countryName: 'GERMANY' },\r\n { placeId: 222, cityName: 'MAGDEBURG', countryName: 'GERMANY' },\r\n { placeId: 213, cityName: 'MAGDEBURG/COCHSTEDT', countryName: 'GERMANY' },\r\n { placeId: 281, cityName: 'MAINBULLAU', countryName: 'GERMANY' },\r\n { placeId: 286, cityName: 'MAINZ', countryName: 'GERMANY' },\r\n { placeId: 273, cityName: 'MANNHEIM', countryName: 'GERMANY' },\r\n { placeId: 274, cityName: 'MARBURG-SCHONSTADT', countryName: 'GERMANY' },\r\n { placeId: 340, cityName: 'MARL', countryName: 'GERMANY' },\r\n { placeId: 330, cityName: 'MEINERZHAGEN', countryName: 'GERMANY' },\r\n { placeId: 535, cityName: 'MELLE-GRONEGAU', countryName: 'GERMANY' },\r\n { placeId: 2871, cityName: 'MEMMINGEN', countryName: 'GERMANY' },\r\n { placeId: 11949, cityName: 'MENDIG', countryName: 'GERMANY' },\r\n { placeId: 478, cityName: 'MENGEN', countryName: 'GERMANY' },\r\n { placeId: 493, cityName: 'MENGERINGHAUSEN', countryName: 'GERMANY' },\r\n { placeId: 6940, cityName: 'MEPPEN', countryName: 'GERMANY' },\r\n { placeId: 199, cityName: 'MERSEBURG', countryName: 'GERMANY' },\r\n { placeId: 322, cityName: 'MESCHEDE', countryName: 'GERMANY' },\r\n { placeId: 275, cityName: 'MICHELSTADT/ODW.', countryName: 'GERMANY' },\r\n { placeId: 365, cityName: 'MINDELHEIM', countryName: 'GERMANY' },\r\n { placeId: 341, cityName: 'MONCHENGLADBACH', countryName: 'GERMANY' },\r\n { placeId: 295, cityName: 'MOSBACH', countryName: 'GERMANY' },\r\n { placeId: 260, cityName: 'MOSENBERG', countryName: 'GERMANY' },\r\n { placeId: 373, cityName: 'MUHLDORF', countryName: 'GERMANY' },\r\n { placeId: 7121, cityName: 'MUHLHAUSEN', countryName: 'GERMANY' },\r\n { placeId: 251, cityName: 'MUNICH', countryName: 'GERMANY' },\r\n { placeId: 346, cityName: 'MUNSTER', countryName: 'GERMANY' },\r\n { placeId: 247, cityName: 'MUNSTER/OSNABRUCK', countryName: 'GERMANY' },\r\n { placeId: 479, cityName: 'NABERN/TECK', countryName: 'GERMANY' },\r\n { placeId: 455, cityName: 'NANNHAUSEN', countryName: 'GERMANY' },\r\n { placeId: 205, cityName: 'NARDT', countryName: 'GERMANY' },\r\n { placeId: 1080, cityName: 'NEUBRANDENBURG', countryName: 'GERMANY' },\r\n { placeId: 381, cityName: 'NEUBURG', countryName: 'GERMANY' },\r\n { placeId: 7226, cityName: 'NEUHARDENBERG', countryName: 'GERMANY' },\r\n { placeId: 7227, cityName: 'NEUHAUSEN OB ECK', countryName: 'GERMANY' },\r\n { placeId: 202, cityName: 'NEUHAUSEN', countryName: 'GERMANY' },\r\n { placeId: 446, cityName: 'NEUMAGEN-DHRON', countryName: 'GERMANY' },\r\n { placeId: 423, cityName: 'NEUMARKT/OPF.', countryName: 'GERMANY' },\r\n { placeId: 310, cityName: 'NEUMUNSTER', countryName: 'GERMANY' },\r\n { placeId: 200, cityName: 'NEUSTADT-GLEWE', countryName: 'GERMANY' },\r\n { placeId: 437, cityName: 'NEUSTADT/AISCH', countryName: 'GERMANY' },\r\n { placeId: 347, cityName: 'NIEDERRHEIN', countryName: 'GERMANY' },\r\n { placeId: 1067, cityName: 'NIEDERSTETTEN', countryName: 'GERMANY' },\r\n { placeId: 537, cityName: 'NIENBURG', countryName: 'GERMANY' },\r\n { placeId: 384, cityName: 'NITTENAU', countryName: 'GERMANY' },\r\n { placeId: 9146, cityName: 'NOERVENICH', countryName: 'GERMANY' },\r\n { placeId: 523, cityName: 'NORDEN-NORDDEICH', countryName: 'GERMANY' },\r\n { placeId: 527, cityName: 'NORDERNEY', countryName: 'GERMANY' },\r\n { placeId: 201, cityName: 'NORDHAUSEN', countryName: 'GERMANY' },\r\n { placeId: 540, cityName: 'NORDHOLZ-SPIEKA', countryName: 'GERMANY' },\r\n { placeId: 1072, cityName: 'NORDHOLZ', countryName: 'GERMANY' },\r\n { placeId: 518, cityName: 'NORDHORN', countryName: 'GERMANY' },\r\n { placeId: 385, cityName: 'NORDLINGEN', countryName: 'GERMANY' },\r\n { placeId: 499, cityName: 'NORTHEIM', countryName: 'GERMANY' },\r\n { placeId: 1078, cityName: 'NORVENICH', countryName: 'GERMANY' },\r\n { placeId: 252, cityName: 'NURNBERG', countryName: 'GERMANY' },\r\n { placeId: 276, cityName: 'OBER-MORLEN', countryName: 'GERMANY' },\r\n { placeId: 7344, cityName: 'OBERMEHLER/SCHLOTHEIM', countryName: 'GERMANY' },\r\n { placeId: 366, cityName: 'OBERPFAFFENHOFEN', countryName: 'GERMANY' },\r\n { placeId: 7345, cityName: 'OBERRISSDORF', countryName: 'GERMANY' },\r\n { placeId: 7346, cityName: 'OBERSCHLEISSHEIM', countryName: 'GERMANY' },\r\n { placeId: 293, cityName: 'OCHSENFURT', countryName: 'GERMANY' },\r\n { placeId: 223, cityName: 'OEHNA', countryName: 'GERMANY' },\r\n { placeId: 342, cityName: 'OERLINGHAUSEN', countryName: 'GERMANY' },\r\n { placeId: 480, cityName: 'OFFENBURG', countryName: 'GERMANY' },\r\n { placeId: 512, cityName: 'OLDENBURG', countryName: 'GERMANY' },\r\n { placeId: 296, cityName: 'OPPENHEIM', countryName: 'GERMANY' },\r\n { placeId: 406, cityName: 'OSCHATZ', countryName: 'GERMANY' },\r\n { placeId: 404, cityName: 'OSCHERSLEBEN', countryName: 'GERMANY' },\r\n { placeId: 519, cityName: 'OSNABRUCK', countryName: 'GERMANY' },\r\n { placeId: 438, cityName: 'OTTENGRUNER HEIDE', countryName: 'GERMANY' },\r\n { placeId: 344, cityName: 'PADERBORN', countryName: 'GERMANY' },\r\n { placeId: 343, cityName: 'PADERBORN/LIPPSTADT', countryName: 'GERMANY' },\r\n { placeId: 240, cityName: 'PASEWALK', countryName: 'GERMANY' },\r\n { placeId: 7578, cityName: 'PATTONVILLE', countryName: 'GERMANY' },\r\n { placeId: 7594, cityName: 'PEENEMUNDE', countryName: 'GERMANY' },\r\n { placeId: 444, cityName: 'PEGNITZ', countryName: 'GERMANY' },\r\n { placeId: 500, cityName: 'PEINE', countryName: 'GERMANY' },\r\n { placeId: 12475, cityName: 'PELLWORM', countryName: 'GERMANY' },\r\n { placeId: 408, cityName: 'PENNEWITZ', countryName: 'GERMANY' },\r\n { placeId: 386, cityName: 'PFARRKIRCHEN', countryName: 'GERMANY' },\r\n { placeId: 481, cityName: 'PFULLENDORF', countryName: 'GERMANY' },\r\n { placeId: 224, cityName: 'PINNOW', countryName: 'GERMANY' },\r\n { placeId: 457, cityName: 'PIRMASENS', countryName: 'GERMANY' },\r\n { placeId: 204, cityName: 'PIRNA', countryName: 'GERMANY' },\r\n { placeId: 325, cityName: 'PLETTENBERG', countryName: 'GERMANY' },\r\n { placeId: 505, cityName: 'PORTA WESTFALICA', countryName: 'GERMANY' },\r\n { placeId: 7769, cityName: 'PRITZWALK', countryName: 'GERMANY' },\r\n { placeId: 242, cityName: 'PURKSHOF', countryName: 'GERMANY' },\r\n { placeId: 12710, cityName: 'RADOLFZELL', countryName: 'GERMANY' },\r\n { placeId: 1059, cityName: 'RAMSTEIN', countryName: 'GERMANY' },\r\n { placeId: 208, cityName: 'RECHLIN-LARZ', countryName: 'GERMANY' },\r\n { placeId: 388, cityName: 'REGENSBURG', countryName: 'GERMANY' },\r\n { placeId: 263, cityName: 'REICHELSHEIM', countryName: 'GERMANY' },\r\n { placeId: 398, cityName: 'REINSDORF', countryName: 'GERMANY' },\r\n { placeId: 544, cityName: 'RENDSBURG', countryName: 'GERMANY' },\r\n { placeId: 7896, cityName: 'RENNERITZ', countryName: 'GERMANY' },\r\n { placeId: 237, cityName: 'RERIK-ZWEEDORF', countryName: 'GERMANY' },\r\n { placeId: 533, cityName: 'RHEINE', countryName: 'GERMANY' },\r\n { placeId: 206, cityName: 'RIESA', countryName: 'GERMANY' },\r\n { placeId: 501, cityName: 'RINTELN', countryName: 'GERMANY' },\r\n { placeId: 207, cityName: 'ROITZSCHJORA', countryName: 'GERMANY' },\r\n { placeId: 439, cityName: 'ROSENTHAL-FIELD', countryName: 'GERMANY' },\r\n { placeId: 543, cityName: 'ROTENBURG/WUMME', countryName: 'GERMANY' },\r\n { placeId: 1068, cityName: 'ROTH', countryName: 'GERMANY' },\r\n { placeId: 278, cityName: 'ROTHENBURG O.D. TAUBER', countryName: 'GERMANY' },\r\n { placeId: 225, cityName: 'ROTHENBURG/GORLITZ', countryName: 'GERMANY' },\r\n { placeId: 470, cityName: 'ROTTWEIL', countryName: 'GERMANY' },\r\n { placeId: 403, cityName: 'RUDOLSTADT', countryName: 'GERMANY' },\r\n { placeId: 231, cityName: 'RUGEN', countryName: 'GERMANY' },\r\n { placeId: 215, cityName: 'RUPPINER LAND', countryName: 'GERMANY' },\r\n { placeId: 254, cityName: 'SAARBRUCKEN', countryName: 'GERMANY' },\r\n { placeId: 451, cityName: 'SAARLOUIS', countryName: 'GERMANY' },\r\n { placeId: 238, cityName: 'SAARMUND', countryName: 'GERMANY' },\r\n { placeId: 502, cityName: 'SALZGITTER', countryName: 'GERMANY' },\r\n { placeId: 484, cityName: 'SAULGAU', countryName: 'GERMANY' },\r\n { placeId: 297, cityName: 'SCHAMEDER', countryName: 'GERMANY' },\r\n { placeId: 531, cityName: 'SCHLESWIG', countryName: 'GERMANY' },\r\n { placeId: 326, cityName: 'SCHMALLENBERG', countryName: 'GERMANY' },\r\n { placeId: 424, cityName: 'SCHMIDGADEN', countryName: 'GERMANY' },\r\n { placeId: 8142, cityName: 'SCHMOLDOW', countryName: 'GERMANY' },\r\n { placeId: 421, cityName: 'SCHONBERG', countryName: 'GERMANY' },\r\n { placeId: 412, cityName: 'SCHONEBECK', countryName: 'GERMANY' },\r\n { placeId: 210, cityName: 'SCHONHAGEN', countryName: 'GERMANY' },\r\n { placeId: 419, cityName: 'SCHWABACH-BUCHENBACH', countryName: 'GERMANY' },\r\n { placeId: 486, cityName: 'SCHWABISCH HALL', countryName: 'GERMANY' },\r\n { placeId: 389, cityName: 'SCHWABMUNCHEN', countryName: 'GERMANY' },\r\n { placeId: 417, cityName: 'SCHWANDORF', countryName: 'GERMANY' },\r\n { placeId: 8143, cityName: 'SCHWARZHEIDE/SCHIPKAU', countryName: 'GERMANY' },\r\n { placeId: 456, cityName: 'SCHWEIGHOFEN', countryName: 'GERMANY' },\r\n { placeId: 279, cityName: 'SCHWEINFURT', countryName: 'GERMANY' },\r\n { placeId: 483, cityName: 'SCHWENNINGEN AM NECKAR', countryName: 'GERMANY' },\r\n { placeId: 405, cityName: 'SCHWERIN-PARCHIM', countryName: 'GERMANY' },\r\n { placeId: 545, cityName: 'SEEDORF', countryName: 'GERMANY' },\r\n { placeId: 7533, cityName: 'SEGELETZ', countryName: 'GERMANY' },\r\n { placeId: 298, cityName: 'SIEGERLAND', countryName: 'GERMANY' },\r\n { placeId: 8250, cityName: 'SIERKSDORF', countryName: 'GERMANY' },\r\n { placeId: 351, cityName: 'SOEST', countryName: 'GERMANY' },\r\n { placeId: 226, cityName: 'SOMMERDA', countryName: 'GERMANY' },\r\n { placeId: 425, cityName: 'SONNEN', countryName: 'GERMANY' },\r\n { placeId: 1058, cityName: 'SPANGDAHLEM', countryName: 'GERMANY' },\r\n { placeId: 461, cityName: 'SPEYER', countryName: 'GERMANY' },\r\n { placeId: 8386, cityName: 'SPREMBERG', countryName: 'GERMANY' },\r\n { placeId: 8398, cityName: 'SPROSSEN', countryName: 'GERMANY' },\r\n { placeId: 539, cityName: 'ST MICHAELISDONN', countryName: 'GERMANY' },\r\n { placeId: 541, cityName: 'ST PETER-ORDING', countryName: 'GERMANY' },\r\n { placeId: 312, cityName: 'STADE', countryName: 'GERMANY' },\r\n { placeId: 345, cityName: 'STADTLOHN', countryName: 'GERMANY' },\r\n { placeId: 8472, cityName: 'STECHOW', countryName: 'GERMANY' },\r\n { placeId: 410, cityName: 'STENDAL-BORSTEL', countryName: 'GERMANY' },\r\n { placeId: 407, cityName: 'STOLLN/RHINOW', countryName: 'GERMANY' },\r\n { placeId: 8491, cityName: 'STRALSUND', countryName: 'GERMANY' },\r\n { placeId: 369, cityName: 'STRAUBING', countryName: 'GERMANY' },\r\n { placeId: 209, cityName: 'STRAUSBERG', countryName: 'GERMANY' },\r\n { placeId: 255, cityName: 'STUTTGART', countryName: 'GERMANY' },\r\n { placeId: 8165, cityName: 'SUHL', countryName: 'GERMANY' },\r\n { placeId: 547, cityName: 'SYLT', countryName: 'GERMANY' },\r\n { placeId: 370, cityName: 'TANNHEIM', countryName: 'GERMANY' },\r\n { placeId: 8590, cityName: 'TAUCHA', countryName: 'GERMANY' },\r\n { placeId: 8616, cityName: 'TEMPLIN', countryName: 'GERMANY' },\r\n { placeId: 8633, cityName: 'THALMASSING-WAIZENHOFEN', countryName: 'GERMANY' },\r\n { placeId: 391, cityName: 'THANNHAUSEN', countryName: 'GERMANY' },\r\n { placeId: 400, cityName: 'TORGAU', countryName: 'GERMANY' },\r\n { placeId: 454, cityName: 'TRABEN-TRARBACH', countryName: 'GERMANY' },\r\n { placeId: 390, cityName: 'TREUCHTLINGEN', countryName: 'GERMANY' },\r\n { placeId: 459, cityName: 'TRIER', countryName: 'GERMANY' },\r\n { placeId: 8756, cityName: 'TUTOW', countryName: 'GERMANY' },\r\n { placeId: 503, cityName: 'UELZEN', countryName: 'GERMANY' },\r\n { placeId: 306, cityName: 'UETERSEN', countryName: 'GERMANY' },\r\n { placeId: 300, cityName: 'UNTERSCHUPF', countryName: 'GERMANY' },\r\n { placeId: 524, cityName: 'VARRELBUSCH', countryName: 'GERMANY' },\r\n { placeId: 525, cityName: 'VERDEN', countryName: 'GERMANY' },\r\n { placeId: 367, cityName: 'VILSBIBURG', countryName: 'GERMANY' },\r\n { placeId: 1082, cityName: 'VILSECK', countryName: 'GERMANY' },\r\n { placeId: 371, cityName: 'VILSHOFEN', countryName: 'GERMANY' },\r\n { placeId: 392, cityName: 'VOGTAREUTH', countryName: 'GERMANY' },\r\n { placeId: 314, cityName: 'WAHLSTEDT', countryName: 'GERMANY' },\r\n { placeId: 302, cityName: 'WALLDORF', countryName: 'GERMANY' },\r\n { placeId: 261, cityName: 'WALLDURN', countryName: 'GERMANY' },\r\n { placeId: 511, cityName: 'WANGEROOGE', countryName: 'GERMANY' },\r\n { placeId: 411, cityName: 'WAREN', countryName: 'GERMANY' },\r\n { placeId: 8932, cityName: 'WASSERKUPPE', countryName: 'GERMANY' },\r\n { placeId: 442, cityName: 'WEIDEN/OPF.', countryName: 'GERMANY' },\r\n { placeId: 8960, cityName: 'WEIMAR', countryName: 'GERMANY' },\r\n { placeId: 303, cityName: 'WEINHEIM/BERGSTRASSE', countryName: 'GERMANY' },\r\n { placeId: 393, cityName: 'WEISSENHORN', countryName: 'GERMANY' },\r\n { placeId: 8968, cityName: 'WELZOW', countryName: 'GERMANY' },\r\n { placeId: 329, cityName: 'WERDOHL', countryName: 'GERMANY' },\r\n { placeId: 8973, cityName: 'WERNEUCHEN', countryName: 'GERMANY' },\r\n { placeId: 8974, cityName: 'WERSHOFEN/EIFEL', countryName: 'GERMANY' },\r\n { placeId: 349, cityName: 'WESEL', countryName: 'GERMANY' },\r\n { placeId: 517, cityName: 'WESER-WUMME', countryName: 'GERMANY' },\r\n { placeId: 526, cityName: 'WESTERSTEDE', countryName: 'GERMANY' },\r\n { placeId: 520, cityName: 'WIEFELSTEDE/CONNEFORDE', countryName: 'GERMANY' },\r\n { placeId: 1083, cityName: 'WIESBADEN', countryName: 'GERMANY' },\r\n { placeId: 513, cityName: 'WILHELMSHAVEN', countryName: 'GERMANY' },\r\n { placeId: 485, cityName: 'WINZELN', countryName: 'GERMANY' },\r\n { placeId: 323, cityName: 'WIPPERFURTH', countryName: 'GERMANY' },\r\n { placeId: 241, cityName: 'WISMAR', countryName: 'GERMANY' },\r\n { placeId: 1079, cityName: 'WITTMUNDHAFEN', countryName: 'GERMANY' },\r\n { placeId: 301, cityName: 'WOLFHAGEN', countryName: 'GERMANY' },\r\n { placeId: 282, cityName: 'WORMS', countryName: 'GERMANY' },\r\n { placeId: 1081, cityName: 'WUNSTORF', countryName: 'GERMANY' },\r\n { placeId: 283, cityName: 'WURZBURG', countryName: 'GERMANY' },\r\n { placeId: 548, cityName: 'WYK AUF FOHR', countryName: 'GERMANY' },\r\n { placeId: 9115, cityName: 'ZELL', countryName: 'GERMANY' },\r\n { placeId: 9120, cityName: 'ZERBST', countryName: 'GERMANY' },\r\n { placeId: 462, cityName: 'ZWEIBRUCKEN', countryName: 'GERMANY' },\r\n { placeId: 218, cityName: 'ZWICKAU', countryName: 'GERMANY' },\r\n { placeId: 143, cityName: 'ACCRA', countryName: 'GHANA' },\r\n { placeId: 6343, cityName: 'KUMASI', countryName: 'GHANA' },\r\n { placeId: 7200, cityName: 'NAVRONGO', countryName: 'GHANA' },\r\n { placeId: 8520, cityName: 'SUNYANI', countryName: 'GHANA' },\r\n { placeId: 8557, cityName: 'TAKORADI', countryName: 'GHANA' },\r\n { placeId: 8564, cityName: 'TAMALE', countryName: 'GHANA' },\r\n { placeId: 8880, cityName: 'WA', countryName: 'GHANA' },\r\n { placeId: 9086, cityName: 'YENDI', countryName: 'GHANA' },\r\n { placeId: 2271, cityName: 'GIBRALTAR', countryName: 'GIBRALTAR' },\r\n { placeId: 1843, cityName: 'AGRINION', countryName: 'GREECE' },\r\n { placeId: 1847, cityName: 'ALEXANDRIA', countryName: 'GREECE' },\r\n { placeId: 1844, cityName: 'ALEXANDROUPOLIS', countryName: 'GREECE' },\r\n { placeId: 1842, cityName: 'ANDRAVIDA', countryName: 'GREECE' },\r\n { placeId: 1877, cityName: 'ARAXOS', countryName: 'GREECE' },\r\n { placeId: 4250, cityName: 'ASTYPALAIA', countryName: 'GREECE' },\r\n { placeId: 1846, cityName: 'ATHENS', countryName: 'GREECE' },\r\n { placeId: 1878, cityName: 'CHANIA', countryName: 'GREECE' },\r\n { placeId: 1851, cityName: 'CHIOS', countryName: 'GREECE' },\r\n { placeId: 1892, cityName: 'DEKELIA', countryName: 'GREECE' },\r\n { placeId: 1849, cityName: 'ELEFSIS', countryName: 'GREECE' },\r\n { placeId: 1850, cityName: 'EPITALION', countryName: 'GREECE' },\r\n { placeId: 5936, cityName: 'IKARIA', countryName: 'GREECE' },\r\n { placeId: 1853, cityName: 'IOANNINA', countryName: 'GREECE' },\r\n { placeId: 1854, cityName: 'IRAKLION', countryName: 'GREECE' },\r\n { placeId: 1859, cityName: 'KALAMATA', countryName: 'GREECE' },\r\n { placeId: 5626, cityName: 'KALYMNOS', countryName: 'GREECE' },\r\n { placeId: 1863, cityName: 'KARPATHOS', countryName: 'GREECE' },\r\n { placeId: 1865, cityName: 'KASSOS', countryName: 'GREECE' },\r\n { placeId: 1889, cityName: 'KASTELI', countryName: 'GREECE' },\r\n { placeId: 1858, cityName: 'KASTELORIZO', countryName: 'GREECE' },\r\n { placeId: 1855, cityName: 'KASTORIA', countryName: 'GREECE' },\r\n { placeId: 1860, cityName: 'KAVALA', countryName: 'GREECE' },\r\n { placeId: 1857, cityName: 'KEFALLINIA', countryName: 'GREECE' },\r\n { placeId: 1864, cityName: 'KERKIRA', countryName: 'GREECE' },\r\n { placeId: 1856, cityName: 'KITHIRA', countryName: 'GREECE' },\r\n { placeId: 1862, cityName: 'KOS', countryName: 'GREECE' },\r\n { placeId: 1866, cityName: 'KOZANI', countryName: 'GREECE' },\r\n { placeId: 1869, cityName: 'LARISSA', countryName: 'GREECE' },\r\n { placeId: 1867, cityName: 'LEROS', countryName: 'GREECE' },\r\n { placeId: 1868, cityName: 'LIMNOS', countryName: 'GREECE' },\r\n { placeId: 1861, cityName: 'MARATHON', countryName: 'GREECE' },\r\n { placeId: 1870, cityName: 'MEGARA', countryName: 'GREECE' },\r\n { placeId: 1871, cityName: 'MIKONOS', countryName: 'GREECE' },\r\n { placeId: 1872, cityName: 'MILOS', countryName: 'GREECE' },\r\n { placeId: 1873, cityName: 'MITILINI', countryName: 'GREECE' },\r\n { placeId: 7201, cityName: 'NAXOS', countryName: 'GREECE' },\r\n { placeId: 1848, cityName: 'NEA ANCHIALOS', countryName: 'GREECE' },\r\n { placeId: 1874, cityName: 'PAROS', countryName: 'GREECE' },\r\n { placeId: 1852, cityName: 'PORTO CHELI', countryName: 'GREECE' },\r\n { placeId: 1875, cityName: 'PREVEZA', countryName: 'GREECE' },\r\n { placeId: 1876, cityName: 'RODOS', countryName: 'GREECE' },\r\n { placeId: 1881, cityName: 'SAMOS', countryName: 'GREECE' },\r\n { placeId: 1884, cityName: 'SANTORINI', countryName: 'GREECE' },\r\n { placeId: 1879, cityName: 'SEDES', countryName: 'GREECE' },\r\n { placeId: 1885, cityName: 'SITIA', countryName: 'GREECE' },\r\n { placeId: 1880, cityName: 'SKIATHOS', countryName: 'GREECE' },\r\n { placeId: 1887, cityName: 'SKIROS', countryName: 'GREECE' },\r\n { placeId: 1883, cityName: 'SPARTI', countryName: 'GREECE' },\r\n { placeId: 1886, cityName: 'STEFANOVIKION', countryName: 'GREECE' },\r\n { placeId: 1882, cityName: 'SYROS', countryName: 'GREECE' },\r\n { placeId: 1888, cityName: 'TANAGRA', countryName: 'GREECE' },\r\n { placeId: 1891, cityName: 'THESSALONIKI', countryName: 'GREECE' },\r\n { placeId: 1890, cityName: 'TRIPOLIS', countryName: 'GREECE' },\r\n { placeId: 1893, cityName: 'VOLOS', countryName: 'GREECE' },\r\n { placeId: 1894, cityName: 'ZAKINTHOS', countryName: 'GREECE' },\r\n { placeId: 9136, cityName: 'AASIAAT', countryName: 'GREENLAND' },\r\n { placeId: 11243, cityName: 'ILULISSAT', countryName: 'GREENLAND' },\r\n { placeId: 16, cityName: 'KANGERLUSSUAQ', countryName: 'GREENLAND' },\r\n { placeId: 11542, cityName: 'KULUSUK', countryName: 'GREENLAND' },\r\n { placeId: 11817, cityName: 'MANIITSOQ', countryName: 'GREENLAND' },\r\n { placeId: 13, cityName: 'NARSARSUAQ', countryName: 'GREENLAND' },\r\n { placeId: 14, cityName: 'NERLERIT INAAT', countryName: 'GREENLAND' },\r\n { placeId: 15, cityName: 'NUUK', countryName: 'GREENLAND' },\r\n { placeId: 12401, cityName: 'PAAMIUT', countryName: 'GREENLAND' },\r\n { placeId: 12683, cityName: 'QAANAAQ', countryName: 'GREENLAND' },\r\n { placeId: 13099, cityName: 'SISIMIUT', countryName: 'GREENLAND' },\r\n { placeId: 8465, cityName: 'STATION NORD', countryName: 'GREENLAND' },\r\n { placeId: 2872, cityName: 'THULE', countryName: 'GREENLAND' },\r\n { placeId: 13547, cityName: 'UPERNAVIK', countryName: 'GREENLAND' },\r\n { placeId: 8808, cityName: 'UUMMANNAQ', countryName: 'GREENLAND' },\r\n { placeId: 4748, cityName: 'CARRIACOU IS', countryName: 'GRENADA' },\r\n { placeId: 8415, cityName: 'ST GEORGES', countryName: 'GRENADA' },\r\n { placeId: 4369, cityName: 'BASSE-TERRE', countryName: 'GUADELOUPE' },\r\n { placeId: 5680, cityName: 'GRAND-BOURG', countryName: 'GUADELOUPE' },\r\n { placeId: 5682, cityName: 'GRANDE ANSE', countryName: 'GUADELOUPE' },\r\n { placeId: 2540, cityName: 'POINTE-A-PITRE', countryName: 'GUADELOUPE' },\r\n { placeId: 8405, cityName: 'ST BARTHELEMY I', countryName: 'GUADELOUPE' },\r\n { placeId: 8421, cityName: 'ST MARTIN I', countryName: 'GUADELOUPE' },\r\n { placeId: 8623, cityName: 'TERRE DE HAUT', countryName: 'GUADELOUPE' },\r\n { placeId: 11012, cityName: 'GUAM I', countryName: 'GUAM' },\r\n { placeId: 2404, cityName: 'GUAM, GQ', countryName: 'GUAM' },\r\n { placeId: 4907, cityName: 'COBAN', countryName: 'GUATEMALA' },\r\n { placeId: 5416, cityName: 'FLORES', countryName: 'GUATEMALA' },\r\n { placeId: 2298, cityName: 'GUATEMALA CITY', countryName: 'GUATEMALA' },\r\n { placeId: 7692, cityName: 'POPTUN', countryName: 'GUATEMALA' },\r\n { placeId: 2299, cityName: 'PUERTO BARRIOS', countryName: 'GUATEMALA' },\r\n { placeId: 2300, cityName: 'PUERTO SAN JOSE', countryName: 'GUATEMALA' },\r\n { placeId: 7901, cityName: 'RETALHULEU', countryName: 'GUATEMALA' },\r\n { placeId: 4322, cityName: 'BANANKORO', countryName: 'GUINEA REP' },\r\n { placeId: 4524, cityName: 'BOKE', countryName: 'GUINEA REP' },\r\n { placeId: 4933, cityName: 'CONAKRY', countryName: 'GUINEA REP' },\r\n { placeId: 5368, cityName: 'FARANAH', countryName: 'GUINEA REP' },\r\n { placeId: 5123, cityName: 'FRIA', countryName: 'GUINEA REP' },\r\n { placeId: 5635, cityName: 'KAMSAR', countryName: 'GUINEA REP' },\r\n { placeId: 5040, cityName: 'KANKAN', countryName: 'GUINEA REP' },\r\n { placeId: 6268, cityName: 'KISSIDOUGOU', countryName: 'GUINEA REP' },\r\n { placeId: 6329, cityName: 'KOUNDARA', countryName: 'GUINEA REP' },\r\n { placeId: 6388, cityName: 'LABE', countryName: 'GUINEA REP' },\r\n { placeId: 6475, cityName: 'MACENTA', countryName: 'GUINEA REP' },\r\n { placeId: 7330, cityName: 'NZEREKORE', countryName: 'GUINEA REP' },\r\n { placeId: 8081, cityName: 'SANGAREDI', countryName: 'GUINEA REP' },\r\n { placeId: 8254, cityName: 'SIGUIRI', countryName: 'GUINEA REP' },\r\n { placeId: 1180, cityName: 'BISSAU', countryName: 'GUINEA-BISSAU' },\r\n { placeId: 4030, cityName: 'AISHALTON', countryName: 'GUYANA' },\r\n { placeId: 4156, cityName: 'ANNAI', countryName: 'GUYANA' },\r\n { placeId: 4170, cityName: 'APOTERI', countryName: 'GUYANA' },\r\n { placeId: 3980, cityName: 'AWARUWANNAWA', countryName: 'GUYANA' },\r\n { placeId: 5259, cityName: 'EBINI', countryName: 'GUYANA' },\r\n { placeId: 2536, cityName: 'GEORGETOWN', countryName: 'GUYANA' },\r\n { placeId: 5952, cityName: 'IMBAIMADAI', countryName: 'GUYANA' },\r\n { placeId: 11360, cityName: 'KAIETEUR', countryName: 'GUYANA' },\r\n { placeId: 5628, cityName: 'KAMARANG', countryName: 'GUYANA' },\r\n { placeId: 6138, cityName: 'KARANAMBO', countryName: 'GUYANA' },\r\n { placeId: 6164, cityName: 'KATO', countryName: 'GUYANA' },\r\n { placeId: 6347, cityName: 'KURUKABARU GUYANA', countryName: 'GUYANA' },\r\n { placeId: 6534, cityName: 'LETHEM', countryName: 'GUYANA' },\r\n { placeId: 6569, cityName: 'LINDEN', countryName: 'GUYANA' },\r\n { placeId: 5649, cityName: 'LUMID PAU', countryName: 'GUYANA' },\r\n { placeId: 6713, cityName: 'MAHDIA', countryName: 'GUYANA' },\r\n { placeId: 7094, cityName: 'MOUNTAIN POINT GUYANA', countryName: 'GUYANA' },\r\n { placeId: 7415, cityName: 'ORINDUIK', countryName: 'GUYANA' },\r\n { placeId: 4721, cityName: 'CAP HAITIEN', countryName: 'HAITI' },\r\n { placeId: 4764, cityName: 'CAYES', countryName: 'HAITI' },\r\n { placeId: 6032, cityName: 'JACMEL', countryName: 'HAITI' },\r\n { placeId: 6056, cityName: 'JEREMIE', countryName: 'HAITI' },\r\n { placeId: 7703, cityName: 'PORT DE PAIX', countryName: 'HAITI' },\r\n { placeId: 7709, cityName: 'PORT-AU-PRINCE', countryName: 'HAITI' },\r\n { placeId: 4758, cityName: 'CATACAMAS', countryName: 'HONDURAS' },\r\n { placeId: 6008, cityName: 'ISLAS DEL CISNE I.', countryName: 'HONDURAS' },\r\n { placeId: 6361, cityName: 'LA CEIBA', countryName: 'HONDURAS' },\r\n { placeId: 6366, cityName: 'LA ESPERANZA', countryName: 'HONDURAS' },\r\n { placeId: 7789, cityName: 'PUERTO LEMPIRA', countryName: 'HONDURAS' },\r\n { placeId: 7926, cityName: 'ROATAN', countryName: 'HONDURAS' },\r\n { placeId: 8060, cityName: 'SAN PEDRO SULA', countryName: 'HONDURAS' },\r\n { placeId: 9224, cityName: 'SANTA ROSA DE COPAN', countryName: 'HONDURAS' },\r\n { placeId: 8606, cityName: 'TEGUCIGALPA', countryName: 'HONDURAS' },\r\n { placeId: 8609, cityName: 'TELA', countryName: 'HONDURAS' },\r\n { placeId: 2682, cityName: 'HONG KONG', countryName: 'HONG KONG, PR OF CHINA' },\r\n { placeId: 1895, cityName: 'BEKESCSABA', countryName: 'HUNGARY' },\r\n { placeId: 1897, cityName: 'BUDAORS', countryName: 'HUNGARY' },\r\n { placeId: 1896, cityName: 'BUDAPEST', countryName: 'HUNGARY' },\r\n { placeId: 1898, cityName: 'DEBRECEN', countryName: 'HUNGARY' },\r\n { placeId: 5391, cityName: 'FERTOSZENTMIKLOS', countryName: 'HUNGARY' },\r\n { placeId: 1901, cityName: 'GYOR-PER', countryName: 'HUNGARY' },\r\n { placeId: 6035, cityName: 'JAKABSZALLAS', countryName: 'HUNGARY' },\r\n { placeId: 11387, cityName: 'KAPOSVAR', countryName: 'HUNGARY' },\r\n { placeId: 11414, cityName: 'KECSKEMET', countryName: 'HUNGARY' },\r\n { placeId: 1899, cityName: 'NYIREGYHAZA', countryName: 'HUNGARY' },\r\n { placeId: 12304, cityName: 'OCSENY', countryName: 'HUNGARY' },\r\n { placeId: 12432, cityName: 'PAPA', countryName: 'HUNGARY' },\r\n { placeId: 1900, cityName: 'PECS', countryName: 'HUNGARY' },\r\n { placeId: 1902, cityName: 'SARMELLEK', countryName: 'HUNGARY' },\r\n { placeId: 13087, cityName: 'SIOFOK-KILITI', countryName: 'HUNGARY' },\r\n { placeId: 1903, cityName: 'SZEGED', countryName: 'HUNGARY' },\r\n { placeId: 13329, cityName: 'SZOLNOK', countryName: 'HUNGARY' },\r\n { placeId: 17, cityName: 'AKUREYRI', countryName: 'ICELAND' },\r\n { placeId: 9698, cityName: 'BAKKI', countryName: 'ICELAND' },\r\n { placeId: 4472, cityName: 'BILDUDALUR', countryName: 'ICELAND' },\r\n { placeId: 4507, cityName: 'BLONDUOS', countryName: 'ICELAND' },\r\n { placeId: 4592, cityName: 'BREIDDALSVIK', countryName: 'ICELAND' },\r\n { placeId: 18, cityName: 'EGILSSTADIR', countryName: 'ICELAND' },\r\n { placeId: 5572, cityName: 'GJOGUR', countryName: 'ICELAND' },\r\n { placeId: 5716, cityName: 'GRIMSEY', countryName: 'ICELAND' },\r\n { placeId: 19, cityName: 'HOFN', countryName: 'ICELAND' },\r\n { placeId: 5867, cityName: 'HOLMAVIK', countryName: 'ICELAND' },\r\n { placeId: 5911, cityName: 'HUSAVIK', countryName: 'ICELAND' },\r\n { placeId: 20, cityName: 'ISAFJORDUR', countryName: 'ICELAND' },\r\n { placeId: 21, cityName: 'KEFLAVIK', countryName: 'ICELAND' },\r\n { placeId: 6318, cityName: 'KOPASKER', countryName: 'ICELAND' },\r\n { placeId: 7275, cityName: 'NORDFJORDUR', countryName: 'ICELAND' },\r\n { placeId: 7575, cityName: 'PATREKSFJORDUR', countryName: 'ICELAND' },\r\n { placeId: 7867, cityName: 'RAUFARHOFN', countryName: 'ICELAND' },\r\n { placeId: 7905, cityName: 'REYKJAHLID', countryName: 'ICELAND' },\r\n { placeId: 23, cityName: 'REYKJAVIK', countryName: 'ICELAND' },\r\n { placeId: 7915, cityName: 'RIF', countryName: 'ICELAND' },\r\n { placeId: 22, cityName: 'SAUDARKROKUR', countryName: 'ICELAND' },\r\n { placeId: 8150, cityName: 'SELFOSS', countryName: 'ICELAND' },\r\n { placeId: 8253, cityName: 'SIGLUFJORDUR', countryName: 'ICELAND' },\r\n { placeId: 8500, cityName: 'STYKKISHOLMUR', countryName: 'ICELAND' },\r\n { placeId: 8644, cityName: 'THINGEYRI', countryName: 'ICELAND' },\r\n { placeId: 8651, cityName: 'THORSHOFN', countryName: 'ICELAND' },\r\n { placeId: 24, cityName: 'VESTMANNAEYJAR', countryName: 'ICELAND' },\r\n { placeId: 8874, cityName: 'VOPNAFJORDUR', countryName: 'ICELAND' },\r\n { placeId: 4018, cityName: 'AGARTALA', countryName: 'INDIA' },\r\n { placeId: 4021, cityName: 'AGRA', countryName: 'INDIA' },\r\n { placeId: 2674, cityName: 'AHMEDABAD', countryName: 'INDIA' },\r\n { placeId: 4039, cityName: 'AKOLA', countryName: 'INDIA' },\r\n { placeId: 4083, cityName: 'ALLAHABAD', countryName: 'INDIA' },\r\n { placeId: 2683, cityName: 'AMRITSAR', countryName: 'INDIA' },\r\n { placeId: 3973, cityName: 'AURANGABAD', countryName: 'INDIA' },\r\n { placeId: 4294, cityName: 'BAGDOGRA', countryName: 'INDIA' },\r\n { placeId: 2812, cityName: 'BANGALORE', countryName: 'INDIA' },\r\n { placeId: 4342, cityName: 'BARAPANI', countryName: 'INDIA' },\r\n { placeId: 4346, cityName: 'BAREILLY', countryName: 'INDIA' },\r\n { placeId: 4401, cityName: 'BEHALA', countryName: 'INDIA' },\r\n { placeId: 4408, cityName: 'BELGAUM', countryName: 'INDIA' },\r\n { placeId: 4454, cityName: 'BHAVNAGAR', countryName: 'INDIA' },\r\n { placeId: 4457, cityName: 'BHOPAL', countryName: 'INDIA' },\r\n { placeId: 4458, cityName: 'BHUBANESHWAR', countryName: 'INDIA' },\r\n { placeId: 4459, cityName: 'BHUJ', countryName: 'INDIA' },\r\n { placeId: 4471, cityName: 'BILASPUR', countryName: 'INDIA' },\r\n { placeId: 2692, cityName: 'CALICUT', countryName: 'INDIA' },\r\n { placeId: 4726, cityName: 'CAR NICOBAR', countryName: 'INDIA' },\r\n { placeId: 3983, cityName: 'CHAKULIA', countryName: 'INDIA' },\r\n { placeId: 3990, cityName: 'CHANDIGARH', countryName: 'INDIA' },\r\n { placeId: 2694, cityName: 'CHENNAI', countryName: 'INDIA' },\r\n { placeId: 2691, cityName: 'COCHIN', countryName: 'INDIA' },\r\n { placeId: 4919, cityName: 'COIMBATORE', countryName: 'INDIA' },\r\n { placeId: 4951, cityName: 'COOCH BEHAR', countryName: 'INDIA' },\r\n { placeId: 5093, cityName: 'DEESA', countryName: 'INDIA' },\r\n { placeId: 5095, cityName: 'DEHRADUN', countryName: 'INDIA' },\r\n { placeId: 2685, cityName: 'DELHI', countryName: 'INDIA' },\r\n { placeId: 5167, cityName: 'DIBRUGARH', countryName: 'INDIA' },\r\n { placeId: 5178, cityName: 'DIMAPUR', countryName: 'INDIA' },\r\n { placeId: 5540, cityName: 'GAYA', countryName: 'INDIA' },\r\n { placeId: 2834, cityName: 'GOA', countryName: 'INDIA' },\r\n { placeId: 5601, cityName: 'GONDIA', countryName: 'INDIA' },\r\n { placeId: 5135, cityName: 'GORAKHPUR', countryName: 'INDIA' },\r\n { placeId: 5750, cityName: 'GUWAHATI', countryName: 'INDIA' },\r\n { placeId: 5754, cityName: 'GWALIOR', countryName: 'INDIA' },\r\n { placeId: 5900, cityName: 'HUBLI', countryName: 'INDIA' },\r\n { placeId: 2693, cityName: 'HYDERABAD', countryName: 'INDIA' },\r\n { placeId: 5957, cityName: 'IMPHAL', countryName: 'INDIA' },\r\n { placeId: 5966, cityName: 'INDORE', countryName: 'INDIA' },\r\n { placeId: 6023, cityName: 'JABALPUR', countryName: 'INDIA' },\r\n { placeId: 2686, cityName: 'JAIPUR', countryName: 'INDIA' },\r\n { placeId: 6039, cityName: 'JAMMU', countryName: 'INDIA' },\r\n { placeId: 6040, cityName: 'JAMNAGAR', countryName: 'INDIA' },\r\n { placeId: 6041, cityName: 'JAMSHEDPUR', countryName: 'INDIA' },\r\n { placeId: 6067, cityName: 'JODHPUR', countryName: 'INDIA' },\r\n { placeId: 6080, cityName: 'JORHAT', countryName: 'INDIA' },\r\n { placeId: 5642, cityName: 'KANDLA', countryName: 'INDIA' },\r\n { placeId: 5036, cityName: 'KANGRA', countryName: 'INDIA' },\r\n { placeId: 6127, cityName: 'KANPUR', countryName: 'INDIA' },\r\n { placeId: 6205, cityName: 'KESHOD', countryName: 'INDIA' },\r\n { placeId: 6208, cityName: 'KHAJURAHO', countryName: 'INDIA' },\r\n { placeId: 6308, cityName: 'KOLHAPUR', countryName: 'INDIA' },\r\n { placeId: 2678, cityName: 'KOLKATA', countryName: 'INDIA' },\r\n { placeId: 6324, cityName: 'KOTA', countryName: 'INDIA' },\r\n { placeId: 6341, cityName: 'KULLU MANALI', countryName: 'INDIA' },\r\n { placeId: 13913, cityName: 'LEH', countryName: 'INDIA' },\r\n { placeId: 6524, cityName: 'LENGPUI', countryName: 'INDIA' },\r\n { placeId: 6554, cityName: 'LILABARI', countryName: 'INDIA' },\r\n { placeId: 2687, cityName: 'LUCKNOW', countryName: 'INDIA' },\r\n { placeId: 6653, cityName: 'LUDHIANA', countryName: 'INDIA' },\r\n { placeId: 6700, cityName: 'MADURAI', countryName: 'INDIA' },\r\n { placeId: 6758, cityName: 'MANGALORE', countryName: 'INDIA' },\r\n { placeId: 2675, cityName: 'MUMBAI', countryName: 'INDIA' },\r\n { placeId: 12141, cityName: 'MYSORE', countryName: 'INDIA' },\r\n { placeId: 2676, cityName: 'NAGPUR', countryName: 'INDIA' },\r\n { placeId: 7182, cityName: 'NANDED', countryName: 'INDIA' },\r\n { placeId: 7465, cityName: 'OZAR', countryName: 'INDIA' },\r\n { placeId: 7549, cityName: 'PANTNAGAR', countryName: 'INDIA' },\r\n { placeId: 7569, cityName: 'PASIGHAT', countryName: 'INDIA' },\r\n { placeId: 7573, cityName: 'PATHANKOT', countryName: 'INDIA' },\r\n { placeId: 2679, cityName: 'PATNA', countryName: 'INDIA' },\r\n { placeId: 7493, cityName: 'PONDICHERRY', countryName: 'INDIA' },\r\n { placeId: 7693, cityName: 'PORBANDAR', countryName: 'INDIA' },\r\n { placeId: 7701, cityName: 'PORT BLAIR', countryName: 'INDIA' },\r\n { placeId: 2845, cityName: 'PUNE', countryName: 'INDIA' },\r\n { placeId: 13940, cityName: 'Puttaparthi', countryName: 'INDIA' },\r\n { placeId: 7509, cityName: 'RAIPUR', countryName: 'INDIA' },\r\n { placeId: 7510, cityName: 'RAJAHMUNDRY', countryName: 'INDIA' },\r\n { placeId: 7512, cityName: 'RAJKOT', countryName: 'INDIA' },\r\n { placeId: 7849, cityName: 'RANCHI', countryName: 'INDIA' },\r\n { placeId: 7865, cityName: 'RATNAGIRI', countryName: 'INDIA' },\r\n { placeId: 7871, cityName: 'RAXAUL', countryName: 'INDIA' },\r\n { placeId: 7985, cityName: 'RUPSI', countryName: 'INDIA' },\r\n { placeId: 8004, cityName: 'SALEM', countryName: 'INDIA' },\r\n { placeId: 8127, cityName: 'SATNA', countryName: 'INDIA' },\r\n { placeId: 8234, cityName: 'SHIMLA', countryName: 'INDIA' },\r\n { placeId: 8240, cityName: 'SHOLAPUR', countryName: 'INDIA' },\r\n { placeId: 8401, cityName: 'SRI SATHYA SAI', countryName: 'INDIA' },\r\n { placeId: 8402, cityName: 'SRINAGAR', countryName: 'INDIA' },\r\n { placeId: 8523, cityName: 'SURAT', countryName: 'INDIA' },\r\n { placeId: 2696, cityName: 'THIRUVANANTHAPURAM', countryName: 'INDIA' },\r\n { placeId: 8645, cityName: 'THOISE', countryName: 'INDIA' },\r\n { placeId: 2695, cityName: 'TIRUCHIRAPPALLI', countryName: 'INDIA' },\r\n { placeId: 8674, cityName: 'TIRUPATI', countryName: 'INDIA' },\r\n { placeId: 8772, cityName: 'UDAIPUR', countryName: 'INDIA' },\r\n { placeId: 8812, cityName: 'VADODARA', countryName: 'INDIA' },\r\n { placeId: 2684, cityName: 'VARANASI', countryName: 'INDIA' },\r\n { placeId: 8852, cityName: 'VIJAYAWADA', countryName: 'INDIA' },\r\n { placeId: 8868, cityName: 'VISHAKHAPATNAM', countryName: 'INDIA' },\r\n { placeId: 14049, cityName: 'Yelahanka', countryName: 'INDIA' },\r\n // { placeId: 9435, cityName: '', countryName: 'INDONESIA' },\r\n { placeId: 3734, cityName: 'AMBON', countryName: 'INDONESIA' },\r\n { placeId: 13941, cityName: 'Atambua', countryName: 'INDONESIA' },\r\n { placeId: 2729, cityName: 'BALI', countryName: 'INDONESIA' },\r\n { placeId: 3729, cityName: 'BALIKPAPAN', countryName: 'INDONESIA' },\r\n { placeId: 3743, cityName: 'BANDA ACEH', countryName: 'INDONESIA' },\r\n { placeId: 9709, cityName: 'BANDAR LAMPUNG', countryName: 'INDONESIA' },\r\n { placeId: 3739, cityName: 'BANDUNG', countryName: 'INDONESIA' },\r\n { placeId: 9717, cityName: 'BANJARMASIN', countryName: 'INDONESIA' },\r\n { placeId: 2740, cityName: 'BATAM', countryName: 'INDONESIA' },\r\n { placeId: 9754, cityName: 'BAUCAU', countryName: 'INDONESIA' },\r\n { placeId: 9810, cityName: 'BENGKULU', countryName: 'INDONESIA' },\r\n { placeId: 9825, cityName: 'BIAK', countryName: 'INDONESIA' },\r\n { placeId: 9836, cityName: 'BIMA', countryName: 'INDONESIA' },\r\n { placeId: 10225, cityName: 'CILACAP', countryName: 'INDONESIA' },\r\n { placeId: 10229, cityName: 'CIREBON', countryName: 'INDONESIA' },\r\n { placeId: 2756, cityName: 'DILI', countryName: 'INDONESIA' },\r\n { placeId: 10528, cityName: 'DUMAI', countryName: 'INDONESIA' },\r\n { placeId: 10937, cityName: 'GORONTALO', countryName: 'INDONESIA' },\r\n { placeId: 2741, cityName: 'JAKARTA', countryName: 'INDONESIA' },\r\n { placeId: 3741, cityName: 'JAMBI', countryName: 'INDONESIA' },\r\n { placeId: 11320, cityName: 'JAYAPURA', countryName: 'INDONESIA' },\r\n { placeId: 851, cityName: 'KALIMANTAN', countryName: 'INDONESIA' },\r\n { placeId: 6193, cityName: 'KENDARI', countryName: 'INDONESIA' },\r\n { placeId: 11437, cityName: 'KETAPANG', countryName: 'INDONESIA' },\r\n { placeId: 11496, cityName: 'KISAR ISLAND', countryName: 'INDONESIA' },\r\n { placeId: 6345, cityName: 'KUPANG', countryName: 'INDONESIA' },\r\n { placeId: 9203, cityName: 'LABUAN BAJO', countryName: 'INDONESIA' },\r\n { placeId: 9228, cityName: 'LABUHA', countryName: 'INDONESIA' },\r\n {\r\n placeId: 13906, cityName: 'LHOK SEUMAWE', state: 'ACEH', countryName: 'INDONESIA',\r\n },\r\n { placeId: 11767, cityName: 'LUWUK', countryName: 'INDONESIA' },\r\n { placeId: 11793, cityName: 'MADIUN', countryName: 'INDONESIA' },\r\n { placeId: 3727, cityName: 'MAKASSAR', countryName: 'INDONESIA' },\r\n { placeId: 3735, cityName: 'MALANG', countryName: 'INDONESIA' },\r\n { placeId: 11808, cityName: 'MAMUJU', countryName: 'INDONESIA' },\r\n { placeId: 3731, cityName: 'MANADO', countryName: 'INDONESIA' },\r\n { placeId: 9225, cityName: 'MANGOLE', countryName: 'INDONESIA' },\r\n { placeId: 11833, cityName: 'MANOKWARI', countryName: 'INDONESIA' },\r\n { placeId: 3728, cityName: 'MATARAM', countryName: 'INDONESIA' },\r\n { placeId: 6881, cityName: 'MAUMERE', countryName: 'INDONESIA' },\r\n { placeId: 2742, cityName: 'MEDAN', countryName: 'INDONESIA' },\r\n { placeId: 11953, cityName: 'MERAUKE', countryName: 'INDONESIA' },\r\n { placeId: 12075, cityName: 'MOROTAI', countryName: 'INDONESIA' },\r\n { placeId: 12118, cityName: 'MUKOMUKO', countryName: 'INDONESIA' },\r\n { placeId: 12143, cityName: 'NABIRE', countryName: 'INDONESIA' },\r\n { placeId: 12317, cityName: 'OKSIBIL', countryName: 'INDONESIA' },\r\n { placeId: 3742, cityName: 'PADANG PARIAMAN', countryName: 'INDONESIA' },\r\n { placeId: 12404, cityName: 'PADANG', countryName: 'INDONESIA' },\r\n { placeId: 3733, cityName: 'PALANGKA RAYA', countryName: 'INDONESIA' },\r\n { placeId: 12412, cityName: 'PALEMBANG', countryName: 'INDONESIA' },\r\n { placeId: 12424, cityName: 'PALU', countryName: 'INDONESIA' },\r\n { placeId: 12429, cityName: 'PANGKAL PINANG', countryName: 'INDONESIA' },\r\n { placeId: 3732, cityName: 'PANGKALANBUN', countryName: 'INDONESIA' },\r\n { placeId: 3738, cityName: 'PEKANBARU', countryName: 'INDONESIA' },\r\n { placeId: 3740, cityName: 'PONTIANAK', countryName: 'INDONESIA' },\r\n { placeId: 12621, cityName: 'POSO, INDONESIA', countryName: 'INDONESIA' },\r\n { placeId: 12639, cityName: 'PRAYA', countryName: 'INDONESIA' },\r\n { placeId: 12726, cityName: 'RANAI', countryName: 'INDONESIA' },\r\n { placeId: 12768, cityName: 'RENGAT', countryName: 'INDONESIA' },\r\n { placeId: 12878, cityName: 'SABANG', countryName: 'INDONESIA' },\r\n { placeId: 12909, cityName: 'SAMARINDA', countryName: 'INDONESIA' },\r\n { placeId: 9181, cityName: 'SAMPIT', countryName: 'INDONESIA' },\r\n { placeId: 8126, cityName: 'SATARTACIK', countryName: 'INDONESIA' },\r\n { placeId: 13007, cityName: 'SEMARANG', countryName: 'INDONESIA' },\r\n { placeId: 13086, cityName: 'SINGKEP', countryName: 'INDONESIA' },\r\n { placeId: 3737, cityName: 'SOLO', countryName: 'INDONESIA' },\r\n { placeId: 8321, cityName: 'SORONG', countryName: 'INDONESIA' },\r\n { placeId: 13291, cityName: 'SUAI', countryName: 'INDONESIA' },\r\n { placeId: 13300, cityName: 'SUMBAWA', countryName: 'INDONESIA' },\r\n { placeId: 2730, cityName: 'SURABAYA', countryName: 'INDONESIA' },\r\n { placeId: 13357, cityName: 'TANGERANG', countryName: 'INDONESIA' },\r\n { placeId: 13359, cityName: 'TANJUNG PANDAN', countryName: 'INDONESIA' },\r\n { placeId: 13360, cityName: 'TANJUNG PINANG', countryName: 'INDONESIA' },\r\n { placeId: 3730, cityName: 'TARAKAN', countryName: 'INDONESIA' },\r\n { placeId: 13395, cityName: 'TERNATE', countryName: 'INDONESIA' },\r\n { placeId: 13435, cityName: 'TIMIKA', countryName: 'INDONESIA' },\r\n { placeId: 13904, cityName: 'WAIKABUBAK', countryName: 'INDONESIA' },\r\n { placeId: 13642, cityName: 'WAINGAPU', countryName: 'INDONESIA' },\r\n { placeId: 13654, cityName: 'WAMENA', countryName: 'INDONESIA' },\r\n { placeId: 13668, cityName: 'WARUKIN', countryName: 'INDONESIA' },\r\n { placeId: 3736, cityName: 'YOGYAKARTA', countryName: 'INDONESIA' },\r\n { placeId: 9139, cityName: 'ABADAN', countryName: 'IRAN' },\r\n { placeId: 4009, cityName: 'ABUMUSA ISLAND', countryName: 'IRAN' },\r\n { placeId: 4020, cityName: 'AGHAJARI', countryName: 'IRAN' },\r\n { placeId: 2354, cityName: 'AHWAZ', countryName: 'IRAN' },\r\n { placeId: 4198, cityName: 'ARAK', countryName: 'IRAN' },\r\n { placeId: 4210, cityName: 'ARDABIL', countryName: 'IRAN' },\r\n { placeId: 4233, cityName: 'ASALOYEH', countryName: 'IRAN' },\r\n { placeId: 9691, cityName: 'BAHREGAN', countryName: 'IRAN' },\r\n { placeId: 4317, cityName: 'BAM', countryName: 'IRAN' },\r\n { placeId: 2358, cityName: 'BANDAR ABBASS', countryName: 'IRAN' },\r\n { placeId: 4324, cityName: 'BANDAR LENGEH', countryName: 'IRAN' },\r\n { placeId: 4325, cityName: 'BANDAR MAHSHAHR', countryName: 'IRAN' },\r\n { placeId: 4487, cityName: 'BIRJAND', countryName: 'IRAN' },\r\n { placeId: 4490, cityName: 'BISHE KOLA', countryName: 'IRAN' },\r\n { placeId: 4522, cityName: 'BOJNORD', countryName: 'IRAN' },\r\n { placeId: 4653, cityName: 'BUSHEHR', countryName: 'IRAN' },\r\n { placeId: 4784, cityName: 'CHAH BAHAR', countryName: 'IRAN' },\r\n { placeId: 5163, cityName: 'DEZFUL', countryName: 'IRAN' },\r\n { placeId: 2356, cityName: 'ESFAHAN', countryName: 'IRAN' },\r\n { placeId: 5379, cityName: 'FASA', countryName: 'IRAN' },\r\n { placeId: 5506, cityName: 'GACHSARAN', countryName: 'IRAN' },\r\n { placeId: 5556, cityName: 'GHAZVIN', countryName: 'IRAN' },\r\n { placeId: 5557, cityName: 'GHESHM ISLAND', countryName: 'IRAN' },\r\n { placeId: 5140, cityName: 'GORGAN', countryName: 'IRAN' },\r\n { placeId: 5780, cityName: 'HAMADAN', countryName: 'IRAN' },\r\n { placeId: 5941, cityName: 'ILAM', countryName: 'IRAN' },\r\n { placeId: 5987, cityName: 'IRAN SHAHR', countryName: 'IRAN' },\r\n { placeId: 6034, cityName: 'JAHROM', countryName: 'IRAN' },\r\n { placeId: 6036, cityName: 'JAM', countryName: 'IRAN' },\r\n { placeId: 6065, cityName: 'JIROFT', countryName: 'IRAN' },\r\n { placeId: 6118, cityName: 'KALALEH', countryName: 'IRAN' },\r\n { placeId: 6136, cityName: 'KARAJ', countryName: 'IRAN' },\r\n { placeId: 11400, cityName: 'KASHAN', countryName: 'IRAN' },\r\n { placeId: 2359, cityName: 'KERMAN', countryName: 'IRAN' },\r\n { placeId: 5043, cityName: 'KERMANSHAH', countryName: 'IRAN' },\r\n { placeId: 6209, cityName: 'KHARK ISLAND', countryName: 'IRAN' },\r\n { placeId: 6211, cityName: 'KHORAM ABAD', countryName: 'IRAN' },\r\n { placeId: 6212, cityName: 'KHOY', countryName: 'IRAN' },\r\n { placeId: 2355, cityName: 'KISH ISLAND', countryName: 'IRAN' },\r\n { placeId: 6419, cityName: 'LAMERD', countryName: 'IRAN' },\r\n { placeId: 6440, cityName: 'LAR', countryName: 'IRAN' },\r\n { placeId: 6455, cityName: 'LAVAN ISLAND', countryName: 'IRAN' },\r\n { placeId: 6796, cityName: 'MARAGHEH', countryName: 'IRAN' },\r\n { placeId: 2360, cityName: 'MASHHAD', countryName: 'IRAN' },\r\n { placeId: 6853, cityName: 'MASJED SOLEIMAN', countryName: 'IRAN' },\r\n { placeId: 7315, cityName: 'NOSHAHR', countryName: 'IRAN' },\r\n { placeId: 7388, cityName: 'OMIDIYEH', countryName: 'IRAN' },\r\n { placeId: 7565, cityName: 'PARSABADE MOGHAN', countryName: 'IRAN' },\r\n { placeId: 7306, cityName: 'PERSIAN GULF', countryName: 'IRAN' },\r\n { placeId: 7504, cityName: 'RAFSANJAN', countryName: 'IRAN' },\r\n { placeId: 7847, cityName: 'RAMSAR', countryName: 'IRAN' },\r\n { placeId: 7861, cityName: 'RASHT', countryName: 'IRAN' },\r\n { placeId: 7993, cityName: 'SABZEVAR', countryName: 'IRAN' },\r\n { placeId: 8071, cityName: 'SANANDAJ', countryName: 'IRAN' },\r\n { placeId: 8113, cityName: 'SARAKHS', countryName: 'IRAN' },\r\n { placeId: 8116, cityName: 'SARAVAN', countryName: 'IRAN' },\r\n { placeId: 8120, cityName: 'SARI', countryName: 'IRAN' },\r\n { placeId: 8207, cityName: 'SHAHRE KORD', countryName: 'IRAN' },\r\n { placeId: 8208, cityName: 'SHAHROUD', countryName: 'IRAN' },\r\n { placeId: 2361, cityName: 'SHIRAZ', countryName: 'IRAN' },\r\n { placeId: 8277, cityName: 'SIRJAN', countryName: 'IRAN' },\r\n { placeId: 8278, cityName: 'SIRRI ISLAND', countryName: 'IRAN' },\r\n { placeId: 8344, cityName: 'TABAS', countryName: 'IRAN' },\r\n { placeId: 8533, cityName: 'TABRIZ', countryName: 'IRAN' },\r\n { placeId: 2357, cityName: 'TEHRAN', countryName: 'IRAN' },\r\n { placeId: 2362, cityName: 'UROMIYEH', countryName: 'IRAN' },\r\n { placeId: 9077, cityName: 'YASOUJ', countryName: 'IRAN' },\r\n { placeId: 9079, cityName: 'YAZD', countryName: 'IRAN' },\r\n { placeId: 9100, cityName: 'ZABOL', countryName: 'IRAN' },\r\n { placeId: 2363, cityName: 'ZAHEDAN', countryName: 'IRAN' },\r\n { placeId: 9108, cityName: 'ZANJAN', countryName: 'IRAN' },\r\n { placeId: 4044, cityName: 'AL ASAD', countryName: 'IRAQ' },\r\n { placeId: 9182, cityName: 'AL NAJAF', countryName: 'IRAQ' },\r\n { placeId: 4052, cityName: 'AL TAJI', countryName: 'IRAQ' },\r\n { placeId: 4053, cityName: 'AL TAQADDUM', countryName: 'IRAQ' },\r\n { placeId: 4295, cityName: 'BAGHDAD', countryName: 'IRAQ' },\r\n { placeId: 4309, cityName: 'BALAD', countryName: 'IRAQ' },\r\n { placeId: 2379, cityName: 'BASRAH', countryName: 'IRAQ' },\r\n { placeId: 2841, cityName: 'ERBIL', countryName: 'IRAQ' },\r\n { placeId: 6259, cityName: 'KIRKUK', countryName: 'IRAQ' },\r\n { placeId: 7086, cityName: 'MOSUL', countryName: 'IRAQ' },\r\n { placeId: 7818, cityName: 'QAYYARAH WEST', countryName: 'IRAQ' },\r\n { placeId: 8503, cityName: 'SULAYMANIYAH', countryName: 'IRAQ' },\r\n { placeId: 13348, cityName: 'TALL AFAR', countryName: 'IRAQ' },\r\n { placeId: 8562, cityName: 'TALLIL', countryName: 'IRAQ' },\r\n { placeId: 8663, cityName: 'TIKRIT', countryName: 'IRAQ' },\r\n { placeId: 799, cityName: 'ABBEYSHRULE', countryName: 'IRELAND' },\r\n { placeId: 9640, cityName: 'ATHBOY', countryName: 'IRELAND' },\r\n { placeId: 814, cityName: 'BALDONNEL', countryName: 'IRELAND' },\r\n { placeId: 800, cityName: 'BANTRY', countryName: 'IRELAND' },\r\n { placeId: 802, cityName: 'BELMULLET', countryName: 'IRELAND' },\r\n { placeId: 801, cityName: 'BIRR', countryName: 'IRELAND' },\r\n { placeId: 4854, cityName: 'CHONAMARA', countryName: 'IRELAND' },\r\n { placeId: 4902, cityName: 'CLONBULLOGUE', countryName: 'IRELAND' },\r\n { placeId: 805, cityName: 'COONAGH', countryName: 'IRELAND' },\r\n { placeId: 803, cityName: 'CORK', countryName: 'IRELAND' },\r\n { placeId: 806, cityName: 'DONEGAL', countryName: 'IRELAND' },\r\n { placeId: 807, cityName: 'DUBLIN', countryName: 'IRELAND' },\r\n { placeId: 10638, cityName: 'ERINAGH', countryName: 'IRELAND' },\r\n { placeId: 804, cityName: 'GALWAY', countryName: 'IRELAND' },\r\n { placeId: 808, cityName: 'GORMANSTON', countryName: 'IRELAND' },\r\n { placeId: 809, cityName: 'HACKETSTOWN', countryName: 'IRELAND' },\r\n { placeId: 811, cityName: 'INISHEER', countryName: 'IRELAND' },\r\n { placeId: 815, cityName: 'INISHMAAN', countryName: 'IRELAND' },\r\n { placeId: 810, cityName: 'INISHMORE', countryName: 'IRELAND' },\r\n { placeId: 812, cityName: 'IRELAND WEST', countryName: 'IRELAND' },\r\n { placeId: 813, cityName: 'KERRY', countryName: 'IRELAND' },\r\n { placeId: 6229, cityName: 'KILKENNY', countryName: 'IRELAND' },\r\n { placeId: 6236, cityName: 'KILRUSH', countryName: 'IRELAND' },\r\n { placeId: 7243, cityName: 'NEWCASTLE', countryName: 'IRELAND' },\r\n { placeId: 817, cityName: 'RATHCOOLE', countryName: 'IRELAND' },\r\n { placeId: 816, cityName: 'SHANNON', countryName: 'IRELAND' },\r\n { placeId: 818, cityName: 'SLIGO', countryName: 'IRELAND' },\r\n { placeId: 13485, cityName: 'TREVET', countryName: 'IRELAND' },\r\n { placeId: 819, cityName: 'TRIM', countryName: 'IRELAND' },\r\n { placeId: 820, cityName: 'WATERFORD', countryName: 'IRELAND' },\r\n { placeId: 821, cityName: 'WESTON', countryName: 'IRELAND' },\r\n { placeId: 2500, cityName: 'ISLA DE PASCUA', countryName: 'ISLA DE PASCUA' },\r\n { placeId: 2063, cityName: 'EILAT', countryName: 'ISRAEL' },\r\n { placeId: 2064, cityName: 'HAIFA', countryName: 'ISRAEL' },\r\n { placeId: 2065, cityName: 'JERUSALEM', countryName: 'ISRAEL' },\r\n { placeId: 2066, cityName: 'OVDA', countryName: 'ISRAEL' },\r\n { placeId: 2062, cityName: 'TEL AVIV', countryName: 'ISRAEL' },\r\n { placeId: 1928, cityName: 'ALBENGA', countryName: 'ITALY' },\r\n { placeId: 4068, cityName: 'ALESSANDRIA', countryName: 'ITALY' },\r\n { placeId: 1920, cityName: 'ALGHERO', countryName: 'ITALY' },\r\n { placeId: 4102, cityName: 'ALZATE BRIANZA', countryName: 'ITALY' },\r\n { placeId: 1904, cityName: 'AMENDOLA', countryName: 'ITALY' },\r\n { placeId: 2814, cityName: 'ANCONA', countryName: 'ITALY' },\r\n { placeId: 1934, cityName: 'AOSTA', countryName: 'ITALY' },\r\n { placeId: 4174, cityName: 'AQUINO', countryName: 'ITALY' },\r\n { placeId: 1954, cityName: 'AREZZO', countryName: 'ITALY' },\r\n { placeId: 4243, cityName: 'ASIAGO', countryName: 'ITALY' },\r\n { placeId: 1936, cityName: 'AVIANO', countryName: 'ITALY' },\r\n { placeId: 1906, cityName: 'BARI', countryName: 'ITALY' },\r\n { placeId: 4417, cityName: 'BELLUNO', countryName: 'ITALY' },\r\n { placeId: 1927, cityName: 'BERGAMO', countryName: 'ITALY' },\r\n { placeId: 4461, cityName: 'BIELLA', countryName: 'ITALY' },\r\n { placeId: 1940, cityName: 'BOLOGNA', countryName: 'ITALY' },\r\n { placeId: 1937, cityName: 'BOLZANO', countryName: 'ITALY' },\r\n { placeId: 1949, cityName: 'BRESCIA', countryName: 'ITALY' },\r\n { placeId: 1911, cityName: 'BRINDISI', countryName: 'ITALY' },\r\n { placeId: 1922, cityName: 'CAGLIARI', countryName: 'ITALY' },\r\n { placeId: 4681, cityName: 'CALCINATE DEL PESCE', countryName: 'ITALY' },\r\n { placeId: 1930, cityName: 'CAMERI', countryName: 'ITALY' },\r\n { placeId: 4725, cityName: 'CAPUA', countryName: 'ITALY' },\r\n { placeId: 4747, cityName: 'CARPI BUDRIONE', countryName: 'ITALY' },\r\n { placeId: 4752, cityName: 'CASALE MONFERRATO', countryName: 'ITALY' },\r\n { placeId: 1914, cityName: 'CATANIA', countryName: 'ITALY' },\r\n { placeId: 1938, cityName: 'CERVIA', countryName: 'ITALY' },\r\n { placeId: 4007, cityName: 'COMO', countryName: 'ITALY' },\r\n { placeId: 4989, cityName: 'CREMONA', countryName: 'ITALY' },\r\n { placeId: 1905, cityName: 'CROTONE', countryName: 'ITALY' },\r\n { placeId: 1935, cityName: 'CUNEO', countryName: 'ITALY' },\r\n { placeId: 1921, cityName: 'DECIMOMANNU', countryName: 'ITALY' },\r\n { placeId: 5365, cityName: 'FANO', countryName: 'ITALY' },\r\n { placeId: 1941, cityName: 'FERRARA', countryName: 'ITALY' },\r\n { placeId: 1968, cityName: 'FLORENCE', countryName: 'ITALY' },\r\n { placeId: 1907, cityName: 'FOGGIA', countryName: 'ITALY' },\r\n { placeId: 5419, cityName: 'FOLIGNO', countryName: 'ITALY' },\r\n { placeId: 1945, cityName: 'FORLI', countryName: 'ITALY' },\r\n { placeId: 1961, cityName: 'FROSINONE', countryName: 'ITALY' },\r\n { placeId: 1929, cityName: 'GENOA', countryName: 'ITALY' },\r\n { placeId: 1946, cityName: 'GHEDI', countryName: 'ITALY' },\r\n { placeId: 1912, cityName: 'GIOIA DEL COLLE', countryName: 'ITALY' },\r\n { placeId: 1942, cityName: 'GORIZIA', countryName: 'ITALY' },\r\n { placeId: 1965, cityName: 'GRAZZANISE', countryName: 'ITALY' },\r\n { placeId: 1969, cityName: 'GROSSETO', countryName: 'ITALY' },\r\n { placeId: 1960, cityName: 'GUIDONIA', countryName: 'ITALY' },\r\n { placeId: 6356, cityName: 'L\\'AQUILA', countryName: 'ITALY' },\r\n { placeId: 1913, cityName: 'LAMEZIA TERME', countryName: 'ITALY' },\r\n { placeId: 1915, cityName: 'LAMPEDUSA', countryName: 'ITALY' },\r\n { placeId: 1964, cityName: 'LATINA', countryName: 'ITALY' },\r\n { placeId: 1909, cityName: 'LECCE', countryName: 'ITALY' },\r\n { placeId: 6522, cityName: 'LEGNAGO', countryName: 'ITALY' },\r\n { placeId: 1955, cityName: 'LUCCA', countryName: 'ITALY' },\r\n { placeId: 6660, cityName: 'LUGO DI ROMAGNA', countryName: 'ITALY' },\r\n { placeId: 1963, cityName: 'MARINA DI CAMPO', countryName: 'ITALY' },\r\n { placeId: 6856, cityName: 'MASSA', countryName: 'ITALY' },\r\n { placeId: 1926, cityName: 'MILAN', countryName: 'ITALY' },\r\n { placeId: 1947, cityName: 'MODENA', countryName: 'ITALY' },\r\n { placeId: 1966, cityName: 'NAPLES', countryName: 'ITALY' },\r\n { placeId: 1932, cityName: 'NOVI LIGURE', countryName: 'ITALY' },\r\n { placeId: 1923, cityName: 'OLBIA', countryName: 'ITALY' },\r\n { placeId: 7416, cityName: 'ORISTANO', countryName: 'ITALY' },\r\n { placeId: 1952, cityName: 'PADOVA', countryName: 'ITALY' },\r\n { placeId: 1917, cityName: 'PALERMO', countryName: 'ITALY' },\r\n { placeId: 1916, cityName: 'PANTELLERIA', countryName: 'ITALY' },\r\n { placeId: 1931, cityName: 'PARMA', countryName: 'ITALY' },\r\n { placeId: 7583, cityName: 'PAVULLO', countryName: 'ITALY' },\r\n { placeId: 1971, cityName: 'PERUGIA', countryName: 'ITALY' },\r\n { placeId: 1910, cityName: 'PESCARA', countryName: 'ITALY' },\r\n { placeId: 1933, cityName: 'PIACENZA', countryName: 'ITALY' },\r\n { placeId: 1967, cityName: 'PISA', countryName: 'ITALY' },\r\n { placeId: 7757, cityName: 'PRATI VECCHI DI AGUSCELLO', countryName: 'ITALY' },\r\n { placeId: 1959, cityName: 'PRATICA DI MARE', countryName: 'ITALY' },\r\n { placeId: 7868, cityName: 'RAVENNA', countryName: 'ITALY' },\r\n { placeId: 1918, cityName: 'REGGIO CALABRIA', countryName: 'ITALY' },\r\n { placeId: 7886, cityName: 'REGGIO EMILIA', countryName: 'ITALY' },\r\n { placeId: 1956, cityName: 'RIETI', countryName: 'ITALY' },\r\n { placeId: 1951, cityName: 'RIMINI', countryName: 'ITALY' },\r\n { placeId: 1944, cityName: 'RIVOLTO', countryName: 'ITALY' },\r\n { placeId: 1958, cityName: 'ROME', countryName: 'ITALY' },\r\n { placeId: 1962, cityName: 'SALERNO', countryName: 'ITALY' },\r\n { placeId: 8006, cityName: 'SALGAREDA', countryName: 'ITALY' },\r\n { placeId: 8123, cityName: 'SARZANA', countryName: 'ITALY' },\r\n { placeId: 1957, cityName: 'SIENA', countryName: 'ITALY' },\r\n { placeId: 8315, cityName: 'SONDRIO', countryName: 'ITALY' },\r\n { placeId: 1908, cityName: 'TARANTO', countryName: 'ITALY' },\r\n { placeId: 8643, cityName: 'THIENE', countryName: 'ITALY' },\r\n { placeId: 1925, cityName: 'TORINO', countryName: 'ITALY' },\r\n { placeId: 1924, cityName: 'TORTOLI', countryName: 'ITALY' },\r\n { placeId: 1919, cityName: 'TRAPANI', countryName: 'ITALY' },\r\n { placeId: 8698, cityName: 'TRENTO', countryName: 'ITALY' },\r\n { placeId: 1943, cityName: 'TREVISO', countryName: 'ITALY' },\r\n { placeId: 1950, cityName: 'TRIESTE', countryName: 'ITALY' },\r\n { placeId: 1939, cityName: 'UDINE', countryName: 'ITALY' },\r\n { placeId: 8813, cityName: 'VALBREMBO', countryName: 'ITALY' },\r\n { placeId: 8828, cityName: 'VARESE', countryName: 'ITALY' },\r\n { placeId: 1953, cityName: 'VENICE', countryName: 'ITALY' },\r\n { placeId: 8368, cityName: 'VERCELLI', countryName: 'ITALY' },\r\n { placeId: 8370, cityName: 'VERGIATE', countryName: 'ITALY' },\r\n { placeId: 1948, cityName: 'VERONA', countryName: 'ITALY' },\r\n { placeId: 1970, cityName: 'VITERBO', countryName: 'ITALY' },\r\n { placeId: 8870, cityName: 'VOGHERA', countryName: 'ITALY' },\r\n { placeId: 2301, cityName: 'KINGSTON', countryName: 'JAMAICA' },\r\n { placeId: 2302, cityName: 'MONTEGO BAY', countryName: 'JAMAICA' },\r\n { placeId: 7212, cityName: 'NEGRIL', countryName: 'JAMAICA' },\r\n { placeId: 7356, cityName: 'OCHO RIOS', countryName: 'JAMAICA' },\r\n { placeId: 7698, cityName: 'PORT ANTONIO, JAMAICA', countryName: 'JAMAICA' },\r\n { placeId: 4024, cityName: 'AGUNI', countryName: 'JAPAN' },\r\n { placeId: 4033, cityName: 'AKENO', countryName: 'JAPAN' },\r\n { placeId: 4035, cityName: 'AKITA', countryName: 'JAPAN' },\r\n { placeId: 4104, cityName: 'AMAKUSA', countryName: 'JAPAN' },\r\n { placeId: 4106, cityName: 'AMAMI', countryName: 'JAPAN' },\r\n { placeId: 2432, cityName: 'AOMORI', countryName: 'JAPAN' },\r\n { placeId: 4232, cityName: 'ASAHIKAWA', countryName: 'JAPAN' },\r\n { placeId: 4240, cityName: 'ASHIYA', countryName: 'JAPAN' },\r\n { placeId: 4271, cityName: 'ATSUGI', countryName: 'JAPAN' },\r\n { placeId: 9102, cityName: 'CAMP ZAMA', countryName: 'JAPAN' },\r\n { placeId: 4850, cityName: 'CHOFU', countryName: 'JAPAN' },\r\n { placeId: 5492, cityName: 'FUKUE', countryName: 'JAPAN' },\r\n { placeId: 5493, cityName: 'FUKUI', countryName: 'JAPAN' },\r\n { placeId: 2418, cityName: 'FUKUOKA', countryName: 'JAPAN' },\r\n { placeId: 5494, cityName: 'FUKUSHIMA', countryName: 'JAPAN' },\r\n { placeId: 5561, cityName: 'GIFU', countryName: 'JAPAN' },\r\n { placeId: 5761, cityName: 'HACHIJOJIMA', countryName: 'JAPAN' },\r\n { placeId: 5762, cityName: 'HACHINOHE', countryName: 'JAPAN' },\r\n { placeId: 2417, cityName: 'HAKODATE', countryName: 'JAPAN' },\r\n { placeId: 5781, cityName: 'HAMAMATSU', countryName: 'JAPAN' },\r\n { placeId: 5787, cityName: 'HANAMAKI', countryName: 'JAPAN' },\r\n { placeId: 5617, cityName: 'HATERUMA', countryName: 'JAPAN' },\r\n { placeId: 2427, cityName: 'HIROSHIMA', countryName: 'JAPAN' },\r\n { placeId: 5853, cityName: 'HIROSHIMANISHI', countryName: 'JAPAN' },\r\n { placeId: 5858, cityName: 'HOFU', countryName: 'JAPAN' },\r\n { placeId: 5916, cityName: 'HYAKURI', countryName: 'JAPAN' },\r\n { placeId: 5929, cityName: 'IE SHIMA I.', countryName: 'JAPAN' },\r\n { placeId: 5930, cityName: 'IEJIMA', countryName: 'JAPAN' },\r\n { placeId: 5938, cityName: 'IKISHIMA', countryName: 'JAPAN' },\r\n { placeId: 5991, cityName: 'IRUMA', countryName: 'JAPAN' },\r\n { placeId: 5994, cityName: 'ISHIGAKI I', countryName: 'JAPAN' },\r\n { placeId: 6017, cityName: 'IWAKUNI', countryName: 'JAPAN' },\r\n { placeId: 6018, cityName: 'IWAMI', countryName: 'JAPAN' },\r\n { placeId: 6020, cityName: 'IWOTO', countryName: 'JAPAN' },\r\n { placeId: 6022, cityName: 'IZUMO', countryName: 'JAPAN' },\r\n { placeId: 2419, cityName: 'KAGOSHIMA', countryName: 'JAPAN' },\r\n { placeId: 5630, cityName: 'KAMIGOTO', countryName: 'JAPAN' },\r\n { placeId: 5647, cityName: 'KANOYA', countryName: 'JAPAN' },\r\n { placeId: 6158, cityName: 'KASUMIGAURA', countryName: 'JAPAN' },\r\n { placeId: 6201, cityName: 'KERAMA', countryName: 'JAPAN' },\r\n { placeId: 6223, cityName: 'KIKAI', countryName: 'JAPAN' },\r\n { placeId: 6263, cityName: 'KISARAZU', countryName: 'JAPAN' },\r\n { placeId: 6271, cityName: 'KITADAITO I', countryName: 'JAPAN' },\r\n { placeId: 6272, cityName: 'KITAKYUSHU', countryName: 'JAPAN' },\r\n { placeId: 6290, cityName: 'KOBE', countryName: 'JAPAN' },\r\n { placeId: 2429, cityName: 'KOCHI', countryName: 'JAPAN' },\r\n { placeId: 2425, cityName: 'KOMATSU', countryName: 'JAPAN' },\r\n { placeId: 6331, cityName: 'KOZUSHIMA', countryName: 'JAPAN' },\r\n { placeId: 2422, cityName: 'KUMAMOTO', countryName: 'JAPAN' },\r\n { placeId: 6344, cityName: 'KUMEJIMA', countryName: 'JAPAN' },\r\n { placeId: 6349, cityName: 'KUSHIRO', countryName: 'JAPAN' },\r\n { placeId: 6872, cityName: 'MATSUDO', countryName: 'JAPAN' },\r\n { placeId: 6873, cityName: 'MATSUMOTO', countryName: 'JAPAN' },\r\n { placeId: 6874, cityName: 'MATSUSHIMA', countryName: 'JAPAN' },\r\n { placeId: 2430, cityName: 'MATSUYAMA', countryName: 'JAPAN' },\r\n { placeId: 6933, cityName: 'MEMANBETSU', countryName: 'JAPAN' },\r\n { placeId: 6956, cityName: 'METABARU', countryName: 'JAPAN' },\r\n { placeId: 6982, cityName: 'MINAMI TORISHIMA', countryName: 'JAPAN' },\r\n { placeId: 6983, cityName: 'MINAMIDAITO', countryName: 'JAPAN' },\r\n { placeId: 6997, cityName: 'MISAWA', countryName: 'JAPAN' },\r\n { placeId: 6480, cityName: 'MIYAKEJIMA', countryName: 'JAPAN' },\r\n { placeId: 6481, cityName: 'MIYAKOJIMA', countryName: 'JAPAN' },\r\n { placeId: 2420, cityName: 'MIYAZAKI', countryName: 'JAPAN' },\r\n { placeId: 7022, cityName: 'MONBETSU', countryName: 'JAPAN' },\r\n { placeId: 2423, cityName: 'NAGASAKI', countryName: 'JAPAN' },\r\n { placeId: 2424, cityName: 'NAGOYA', countryName: 'JAPAN' },\r\n { placeId: 2442, cityName: 'NAHA', countryName: 'JAPAN' },\r\n { placeId: 7168, cityName: 'NAKASHIBETSU', countryName: 'JAPAN' },\r\n { placeId: 7169, cityName: 'NAKATSU', countryName: 'JAPAN' },\r\n { placeId: 7183, cityName: 'NANKI-SHIRAHAMA', countryName: 'JAPAN' },\r\n { placeId: 2433, cityName: 'NIIGATA', countryName: 'JAPAN' },\r\n { placeId: 7258, cityName: 'NIIJIMA', countryName: 'JAPAN' },\r\n { placeId: 7316, cityName: 'NOTO', countryName: 'JAPAN' },\r\n { placeId: 7328, cityName: 'NYUTABARU', countryName: 'JAPAN' },\r\n { placeId: 7347, cityName: 'OBIHIRO', countryName: 'JAPAN' },\r\n { placeId: 7358, cityName: 'ODATE-NOSHIRO', countryName: 'JAPAN' },\r\n { placeId: 2421, cityName: 'OITA', countryName: 'JAPAN' },\r\n { placeId: 7368, cityName: 'OJIKA', countryName: 'JAPAN' },\r\n { placeId: 2428, cityName: 'OKAYAMA', countryName: 'JAPAN' },\r\n { placeId: 7370, cityName: 'OKI', countryName: 'JAPAN' },\r\n { placeId: 7371, cityName: 'OKIERABU I', countryName: 'JAPAN' },\r\n { placeId: 7292, cityName: 'OKINAWA I', countryName: 'JAPAN' },\r\n { placeId: 7374, cityName: 'OKUSHIRI', countryName: 'JAPAN' },\r\n { placeId: 7389, cityName: 'OMINATO', countryName: 'JAPAN' },\r\n { placeId: 12338, cityName: 'OMURA', countryName: 'JAPAN' },\r\n { placeId: 2415, cityName: 'OSAKA', countryName: 'JAPAN' },\r\n { placeId: 7432, cityName: 'OSHIMA', countryName: 'JAPAN' },\r\n { placeId: 7721, cityName: 'REBUN', countryName: 'JAPAN' },\r\n { placeId: 7923, cityName: 'RISHIRI', countryName: 'JAPAN' },\r\n { placeId: 7997, cityName: 'SADO', countryName: 'JAPAN' },\r\n { placeId: 8001, cityName: 'SAGA', countryName: 'JAPAN' },\r\n { placeId: 2416, cityName: 'SAPPORO', countryName: 'JAPAN' },\r\n { placeId: 2434, cityName: 'SENDAI', countryName: 'JAPAN' },\r\n { placeId: 8235, cityName: 'SHIMOJISHIMA', countryName: 'JAPAN' },\r\n { placeId: 8236, cityName: 'SHIMONOSEKI', countryName: 'JAPAN' },\r\n { placeId: 13067, cityName: 'SHIZUOKA', countryName: 'JAPAN' },\r\n { placeId: 8241, cityName: 'SHONAI', countryName: 'JAPAN' },\r\n { placeId: 8535, cityName: 'TACHIKAWA', countryName: 'JAPAN' },\r\n { placeId: 8554, cityName: 'TAJIMA', countryName: 'JAPAN' },\r\n { placeId: 2431, cityName: 'TAKAMATSU', countryName: 'JAPAN' },\r\n { placeId: 8577, cityName: 'TANEGASHIMA', countryName: 'JAPAN' },\r\n { placeId: 8582, cityName: 'TARAMA', countryName: 'JAPAN' },\r\n { placeId: 8347, cityName: 'TOKACHI', countryName: 'JAPAN' },\r\n { placeId: 8350, cityName: 'TOKUNOSHIMA', countryName: 'JAPAN' },\r\n { placeId: 8351, cityName: 'TOKUSHIMA', countryName: 'JAPAN' },\r\n { placeId: 2414, cityName: 'TOKYO', countryName: 'JAPAN' },\r\n { placeId: 8686, cityName: 'TOTTORI', countryName: 'JAPAN' },\r\n { placeId: 2426, cityName: 'TOYAMA', countryName: 'JAPAN' },\r\n { placeId: 8731, cityName: 'TSUSHIMA', countryName: 'JAPAN' },\r\n { placeId: 8770, cityName: 'UBE', countryName: 'JAPAN' },\r\n { placeId: 8807, cityName: 'UTSUNOMIYA', countryName: 'JAPAN' },\r\n { placeId: 8903, cityName: 'WAKKANAI', countryName: 'JAPAN' },\r\n { placeId: 9063, cityName: 'YAIZU', countryName: 'JAPAN' },\r\n { placeId: 9065, cityName: 'YAKUSHIMA', countryName: 'JAPAN' },\r\n { placeId: 9068, cityName: 'YAMAGATA', countryName: 'JAPAN' },\r\n { placeId: 9074, cityName: 'YAO', countryName: 'JAPAN' },\r\n { placeId: 9090, cityName: 'YONAGO', countryName: 'JAPAN' },\r\n { placeId: 9091, cityName: 'YONAGUNI I', countryName: 'JAPAN' },\r\n { placeId: 9095, cityName: 'YORON', countryName: 'JAPAN' },\r\n { placeId: 2364, cityName: 'AMMAN', countryName: 'JORDAN' },\r\n { placeId: 2365, cityName: 'AQABA', countryName: 'JORDAN' },\r\n { placeId: 13942, cityName: 'maan', countryName: 'JORDAN' },\r\n { placeId: 2564, cityName: 'AKTAU', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2566, cityName: 'AKTOBE', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2553, cityName: 'ALMATY', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2554, cityName: 'ASTANA', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2565, cityName: 'ATYRAU', countryName: 'KAZAKHSTAN' },\r\n { placeId: 9186, cityName: 'BALKHASH', countryName: 'KAZAKHSTAN' },\r\n { placeId: 10581, cityName: 'EKIBASTUS', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2559, cityName: 'KARAGANDA', countryName: 'KAZAKHSTAN' },\r\n { placeId: 9170, cityName: 'KOKSHETAU', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2567, cityName: 'KOSTANAY', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2560, cityName: 'KYZYLORDA', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2562, cityName: 'PAVLODAR', countryName: 'KAZAKHSTAN' },\r\n { placeId: 9184, cityName: 'PETROPAVLOVSK', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2563, cityName: 'SEMEY', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2558, cityName: 'SHYMKENT', countryName: 'KAZAKHSTAN' },\r\n { placeId: 13346, cityName: 'TALDYKORGAN', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2555, cityName: 'TARAZ', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2561, cityName: 'URALSK', countryName: 'KAZAKHSTAN' },\r\n { placeId: 2825, cityName: 'UST-KAMENOGORSK', countryName: 'KAZAKHSTAN' },\r\n { placeId: 9185, cityName: 'YUBILEYNY', countryName: 'KAZAKHSTAN' },\r\n { placeId: 9183, cityName: 'ZHEZKAZGAN', countryName: 'KAZAKHSTAN' },\r\n { placeId: 4114, cityName: 'AMBOSELI', countryName: 'KENYA' },\r\n { placeId: 4633, cityName: 'BUNGOMA', countryName: 'KENYA' },\r\n { placeId: 4638, cityName: 'BURA EAST', countryName: 'KENYA' },\r\n { placeId: 4654, cityName: 'BUSIA', countryName: 'KENYA' },\r\n { placeId: 1212, cityName: 'ELDORET', countryName: 'KENYA' },\r\n { placeId: 5104, cityName: 'ELIYE SPRINGS', countryName: 'KENYA' },\r\n { placeId: 5313, cityName: 'EMBU', countryName: 'KENYA' },\r\n { placeId: 5528, cityName: 'GARBA TULA', countryName: 'KENYA' },\r\n { placeId: 5534, cityName: 'GARISSA', countryName: 'KENYA' },\r\n { placeId: 5860, cityName: 'HOLA', countryName: 'KENYA' },\r\n { placeId: 5870, cityName: 'HOMA BAY', countryName: 'KENYA' },\r\n { placeId: 5996, cityName: 'ISIOLO', countryName: 'KENYA' },\r\n { placeId: 6112, cityName: 'KAKAMEGA', countryName: 'KENYA' },\r\n { placeId: 6123, cityName: 'KALOKOL', countryName: 'KENYA' },\r\n { placeId: 6181, cityName: 'KEEKOROK', countryName: 'KENYA' },\r\n { placeId: 5041, cityName: 'KERICHO', countryName: 'KENYA' },\r\n { placeId: 6227, cityName: 'KILAGUNI', countryName: 'KENYA' },\r\n { placeId: 6266, cityName: 'KISII', countryName: 'KENYA' },\r\n { placeId: 6269, cityName: 'KISUMU', countryName: 'KENYA' },\r\n { placeId: 6273, cityName: 'KITALE', countryName: 'KENYA' },\r\n { placeId: 6424, cityName: 'LAMU/MANDA', countryName: 'KENYA' },\r\n { placeId: 6595, cityName: 'LODWAR', countryName: 'KENYA' },\r\n { placeId: 6599, cityName: 'LOITOKITOK', countryName: 'KENYA' },\r\n { placeId: 6600, cityName: 'LOKICHOGIO', countryName: 'KENYA' },\r\n { placeId: 6601, cityName: 'LOKITAUNG', countryName: 'KENYA' },\r\n { placeId: 6636, cityName: 'LOYANGALANI', countryName: 'KENYA' },\r\n { placeId: 6479, cityName: 'MACKINNON ROAD', countryName: 'KENYA' },\r\n { placeId: 6705, cityName: 'MAGADI', countryName: 'KENYA' },\r\n { placeId: 6724, cityName: 'MAKINDU', countryName: 'KENYA' },\r\n { placeId: 2829, cityName: 'MALINDI', countryName: 'KENYA' },\r\n { placeId: 6754, cityName: 'MANDERA', countryName: 'KENYA' },\r\n { placeId: 6797, cityName: 'MARALAL', countryName: 'KENYA' },\r\n { placeId: 6832, cityName: 'MARSABIT', countryName: 'KENYA' },\r\n { placeId: 6952, cityName: 'MERU', countryName: 'KENYA' },\r\n { placeId: 1214, cityName: 'MOMBASA', countryName: 'KENYA' },\r\n { placeId: 7100, cityName: 'MOYALE LOWER', countryName: 'KENYA' },\r\n { placeId: 7112, cityName: 'MTITO ANDEI', countryName: 'KENYA' },\r\n { placeId: 1213, cityName: 'NAIROBI', countryName: 'KENYA' },\r\n { placeId: 7167, cityName: 'NAIVASHA', countryName: 'KENYA' },\r\n { placeId: 7173, cityName: 'NAKURU', countryName: 'KENYA' },\r\n { placeId: 7184, cityName: 'NANYUKI', countryName: 'KENYA' },\r\n { placeId: 7191, cityName: 'NAROK', countryName: 'KENYA' },\r\n { placeId: 7324, cityName: 'NYERI', countryName: 'KENYA' },\r\n { placeId: 8023, cityName: 'SAMBURU SOUTH', countryName: 'KENYA' },\r\n { placeId: 8872, cityName: 'VOI', countryName: 'KENYA' },\r\n { placeId: 8899, cityName: 'WAJIR', countryName: 'KENYA' },\r\n { placeId: 9998, cityName: 'BUTARITARI', countryName: 'KIRIBATI' },\r\n { placeId: 10057, cityName: 'CANTON I', countryName: 'KIRIBATI' },\r\n { placeId: 3172, cityName: 'CHRISTMAS I', countryName: 'KIRIBATI' },\r\n { placeId: 12422, cityName: 'PALMYRA IS', countryName: 'KIRIBATI' },\r\n { placeId: 13366, cityName: 'TARAWA I', countryName: 'KIRIBATI' },\r\n { placeId: 7814, cityName: 'PYONGYANG', countryName: 'KOREA, DPR OF' },\r\n { placeId: 2437, cityName: 'BUSAN', countryName: 'KOREA' },\r\n { placeId: 7813, cityName: 'CAMP HUMPHREYS', countryName: 'KOREA' },\r\n { placeId: 2441, cityName: 'CHEONGJU', countryName: 'KOREA' },\r\n { placeId: 4836, cityName: 'CHINHAE', countryName: 'KOREA' },\r\n { placeId: 4855, cityName: 'CHOONGWON', countryName: 'KOREA' },\r\n { placeId: 4859, cityName: 'CHUNCHON', countryName: 'KOREA' },\r\n { placeId: 2440, cityName: 'DAEGU', countryName: 'KOREA' },\r\n { placeId: 5524, cityName: 'GANGNEUNG', countryName: 'KOREA' },\r\n { placeId: 5746, cityName: 'GUNSAN', countryName: 'KOREA' },\r\n { placeId: 5755, cityName: 'GWANGJU', countryName: 'KOREA' },\r\n { placeId: 2436, cityName: 'JEJU', countryName: 'KOREA' },\r\n { placeId: 6060, cityName: 'JHUNJU', countryName: 'KOREA' },\r\n { placeId: 5638, cityName: 'KANAM-NI', countryName: 'KOREA' },\r\n { placeId: 7012, cityName: 'MOKPO', countryName: 'KOREA' },\r\n { placeId: 7115, cityName: 'MUAN', countryName: 'KOREA' },\r\n { placeId: 7430, cityName: 'OSAN', countryName: 'KOREA' },\r\n { placeId: 7682, cityName: 'POCHUN', countryName: 'KOREA' },\r\n { placeId: 7686, cityName: 'POHANG', countryName: 'KOREA' },\r\n { placeId: 7996, cityName: 'SACHEON', countryName: 'KOREA' },\r\n { placeId: 8189, cityName: 'SEOSAN', countryName: 'KOREA' },\r\n { placeId: 2439, cityName: 'SEOUL', countryName: 'KOREA' },\r\n { placeId: 2438, cityName: 'SEOUL/INCHEON', countryName: 'KOREA' },\r\n { placeId: 8526, cityName: 'SUSAEK', countryName: 'KOREA' },\r\n { placeId: 8330, cityName: 'SUWON', countryName: 'KOREA' },\r\n { placeId: 13534, cityName: 'ULJIN', countryName: 'KOREA' },\r\n { placeId: 8782, cityName: 'ULSAN', countryName: 'KOREA' },\r\n { placeId: 9046, cityName: 'WONJU', countryName: 'KOREA' },\r\n { placeId: 2435, cityName: 'YANGYANG', countryName: 'KOREA' },\r\n { placeId: 9081, cityName: 'YECHEON', countryName: 'KOREA' },\r\n { placeId: 9088, cityName: 'YEOSU', countryName: 'KOREA' },\r\n { placeId: 4077, cityName: 'ALI AL SALEM', countryName: 'KUWAIT' },\r\n { placeId: 2366, cityName: 'KUWAIT', countryName: 'KUWAIT' },\r\n { placeId: 8773, cityName: 'UDAIRI', countryName: 'KUWAIT' },\r\n { placeId: 2556, cityName: 'BISHKEK', countryName: 'KYRGYZSTAN' },\r\n { placeId: 2557, cityName: 'OSH', countryName: 'KYRGYZSTAN' },\r\n { placeId: 2843, cityName: 'TAMCHY', countryName: 'KYRGYZSTAN' },\r\n { placeId: 4273, cityName: 'ATTOPEU', countryName: 'LAOS' },\r\n { placeId: 4321, cityName: 'BAN HOUEISAY', countryName: 'LAOS' },\r\n { placeId: 3987, cityName: 'CHAMPASACK', countryName: 'LAOS' },\r\n { placeId: 6637, cityName: 'LUANG NAMTHA', countryName: 'LAOS' },\r\n { placeId: 6638, cityName: 'LUANG PHABANG', countryName: 'LAOS' },\r\n { placeId: 7441, cityName: 'OUDOMSAY', countryName: 'LAOS' },\r\n { placeId: 8020, cityName: 'SAM NEUA', countryName: 'LAOS' },\r\n { placeId: 8117, cityName: 'SARAVANE', countryName: 'LAOS' },\r\n { placeId: 8134, cityName: 'SAVANNAKHET', countryName: 'LAOS' },\r\n { placeId: 8138, cityName: 'SAYABOULY', countryName: 'LAOS' },\r\n { placeId: 8632, cityName: 'THAKHEK', countryName: 'LAOS' },\r\n { placeId: 2688, cityName: 'VIENTIANE', countryName: 'LAOS' },\r\n { placeId: 9059, cityName: 'XIENG KHOUANG', countryName: 'LAOS' },\r\n { placeId: 9495, cityName: 'ADAZI', countryName: 'LATVIA' },\r\n { placeId: 4780, cityName: 'CESIS', countryName: 'LATVIA' },\r\n { placeId: 10425, cityName: 'DAUGAVPILS', countryName: 'LATVIA' },\r\n { placeId: 5939, cityName: 'IKSHKILE', countryName: 'LATVIA' },\r\n { placeId: 1092, cityName: 'LIEPAJA', countryName: 'LATVIA' },\r\n { placeId: 11693, cityName: 'LIMBAZI', countryName: 'LATVIA' },\r\n { placeId: 1093, cityName: 'RIGA', countryName: 'LATVIA' },\r\n { placeId: 8736, cityName: 'TUKUMS', countryName: 'LATVIA' },\r\n { placeId: 8366, cityName: 'VENTSPILS', countryName: 'LATVIA' },\r\n { placeId: 2367, cityName: 'BEIRUT', countryName: 'LEBANON' },\r\n { placeId: 6284, cityName: 'KLEYATE', countryName: 'LEBANON' },\r\n { placeId: 7872, cityName: 'RAYAK', countryName: 'LEBANON' },\r\n { placeId: 6165, cityName: 'KATSE', countryName: 'LESOTHO' },\r\n { placeId: 6531, cityName: 'LERIBE', countryName: 'LESOTHO' },\r\n { placeId: 6535, cityName: 'LETSENG', countryName: 'LESOTHO' },\r\n { placeId: 6702, cityName: 'MAFETENG', countryName: 'LESOTHO' },\r\n { placeId: 6849, cityName: 'MASERU', countryName: 'LESOTHO' },\r\n { placeId: 7011, cityName: 'MOKHOTLONG', countryName: 'LESOTHO' },\r\n { placeId: 7815, cityName: 'QACHA\\'S NEK', countryName: 'LESOTHO' },\r\n { placeId: 7536, cityName: 'SEHONGHONG', countryName: 'LESOTHO' },\r\n { placeId: 8159, cityName: 'SEMONKONG', countryName: 'LESOTHO' },\r\n { placeId: 4184, cityName: 'BUCHANAN', countryName: 'LIBERIA' },\r\n { placeId: 4185, cityName: 'BUCKANAN', countryName: 'LIBERIA' },\r\n { placeId: 5706, cityName: 'GREENVILLE', countryName: 'LIBERIA' },\r\n { placeId: 5805, cityName: 'HARPER', countryName: 'LIBERIA' },\r\n { placeId: 1181, cityName: 'MONROVIA', countryName: 'LIBERIA' },\r\n { placeId: 7260, cityName: 'NIMBA', countryName: 'LIBERIA' },\r\n { placeId: 8599, cityName: 'TCHIEN', countryName: 'LIBERIA' },\r\n { placeId: 4019, cityName: 'AGEDABIA', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 4105, cityName: 'AMAL V12', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 4394, cityName: 'BEDA M3', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 1215, cityName: 'BENGHAZI', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 4616, cityName: 'BU-ATTIFL A100', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 5048, cityName: 'DAHRA WH32', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 5264, cityName: 'EDDIB V7', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 5279, cityName: 'EL BEIDA', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 5332, cityName: 'ESSIDER OJ', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 5553, cityName: 'GHADAMES', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 5555, cityName: 'GHAT', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 5559, cityName: 'GIALO WH59E', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 5778, cityName: 'HAMADA NC5', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 5779, cityName: 'HAMADA NC8', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 5876, cityName: 'HON', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 6338, cityName: 'KUFRA', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 6831, cityName: 'MARSA BREGA S21', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 6955, cityName: 'MESSLA 5ALV', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 6500, cityName: 'NAFOORA M4', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 7461, cityName: 'OXY 103A', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 7858, cityName: 'RASLANUF V40', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 8002, cityName: 'SAHIL', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 8121, cityName: 'SARIR C4/5ALZ', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 7526, cityName: 'SEBHA', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 8279, cityName: 'SIRTE', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 8603, cityName: 'TEBISTY V9', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 1216, cityName: 'TRIPOLI', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 8890, cityName: 'WAHA WH59A', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 9116, cityName: 'ZELLA Z74', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 9117, cityName: 'ZELTEN S22', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 9128, cityName: 'ZUEITINA OXYL', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 9132, cityName: 'ZWARA', countryName: 'LIBYA, SPA JAMAHIRIYA' },\r\n { placeId: 9979, cityName: 'BURDI', countryName: 'LIBYAN ARAB JAMAHIRIYA' },\r\n { placeId: 12010, cityName: 'MISURATA', countryName: 'LIBYAN ARAB JAMAHIRIYA' },\r\n { placeId: 13036, cityName: 'SHARARA', countryName: 'LIBYAN ARAB JAMAHIRIYA' },\r\n { placeId: 13530, cityName: 'UBARI', countryName: 'LIBYAN ARAB JAMAHIRIYA' },\r\n { placeId: 13635, cityName: 'WAFA', countryName: 'LIBYAN ARAB JAMAHIRIYA' },\r\n { placeId: 4038, cityName: 'AKMENE', countryName: 'LITHUANIA' },\r\n { placeId: 4101, cityName: 'ALYTUS', countryName: 'LITHUANIA' },\r\n { placeId: 4363, cityName: 'BARYSIAI', countryName: 'LITHUANIA' },\r\n { placeId: 4488, cityName: 'BIRZAI', countryName: 'LITHUANIA' },\r\n { placeId: 5211, cityName: 'DRUSKININKAI', countryName: 'LITHUANIA' },\r\n { placeId: 5934, cityName: 'IGNALINA', countryName: 'LITHUANIA' },\r\n { placeId: 6143, cityName: 'KARTENA', countryName: 'LITHUANIA' },\r\n { placeId: 6172, cityName: 'KAUNAS', countryName: 'LITHUANIA' },\r\n { placeId: 6179, cityName: 'KEDAINIAI', countryName: 'LITHUANIA' },\r\n { placeId: 6277, cityName: 'KLAIPEDA', countryName: 'LITHUANIA' },\r\n { placeId: 6355, cityName: 'KYVISKES', countryName: 'LITHUANIA' },\r\n { placeId: 7014, cityName: 'MOLETAI', countryName: 'LITHUANIA' },\r\n { placeId: 1094, cityName: 'PALANGA', countryName: 'LITHUANIA' },\r\n { placeId: 7540, cityName: 'PALUKNYS', countryName: 'LITHUANIA' },\r\n { placeId: 7546, cityName: 'PANEVEZYS', countryName: 'LITHUANIA' },\r\n { placeId: 7683, cityName: 'POCIUNAI', countryName: 'LITHUANIA' },\r\n { placeId: 7951, cityName: 'ROJUNAI', countryName: 'LITHUANIA' },\r\n { placeId: 7975, cityName: 'RUDISKES', countryName: 'LITHUANIA' },\r\n { placeId: 8124, cityName: 'SASNAVA', countryName: 'LITHUANIA' },\r\n { placeId: 7531, cityName: 'SEDUVA', countryName: 'LITHUANIA' },\r\n { placeId: 8246, cityName: 'SIAULIAI', countryName: 'LITHUANIA' },\r\n { placeId: 8259, cityName: 'SILUTE', countryName: 'LITHUANIA' },\r\n { placeId: 13374, cityName: 'TAURAGE', countryName: 'LITHUANIA' },\r\n { placeId: 8613, cityName: 'TELSIAI', countryName: 'LITHUANIA' },\r\n { placeId: 8673, cityName: 'TIRKSLIAI', countryName: 'LITHUANIA' },\r\n { placeId: 8804, cityName: 'UTENA', countryName: 'LITHUANIA' },\r\n { placeId: 1095, cityName: 'VILNIUS', countryName: 'LITHUANIA' },\r\n { placeId: 9109, cityName: 'ZARASAI', countryName: 'LITHUANIA' },\r\n { placeId: 858, cityName: 'LUXEMBOURG', countryName: 'LUXEMBOURG' },\r\n { placeId: 7273, cityName: 'NOERTRANGE', countryName: 'LUXEMBOURG' },\r\n { placeId: 2689, cityName: 'MACAO', countryName: 'MACAO, PR OF CHINA' },\r\n { placeId: 2269, cityName: 'OHRID', countryName: 'MACEDONIA, FORMER YUGOSLAV REP' },\r\n { placeId: 2270, cityName: 'SKOPJE', countryName: 'MACEDONIA, FORMER YUGOSLAV REP' },\r\n { placeId: 4108, cityName: 'AMBALAVAO', countryName: 'MADAGASCAR' },\r\n { placeId: 4109, cityName: 'AMBANJA', countryName: 'MADAGASCAR' },\r\n { placeId: 4111, cityName: 'AMBATONDRAZAKA', countryName: 'MADAGASCAR' },\r\n { placeId: 4112, cityName: 'AMBILOBE', countryName: 'MADAGASCAR' },\r\n { placeId: 4122, cityName: 'AMPANIHY', countryName: 'MADAGASCAR' },\r\n { placeId: 4127, cityName: 'ANALALAVA', countryName: 'MADAGASCAR' },\r\n { placeId: 4130, cityName: 'ANDAPA', countryName: 'MADAGASCAR' },\r\n { placeId: 4151, cityName: 'ANKAVANDRA', countryName: 'MADAGASCAR' },\r\n { placeId: 4152, cityName: 'ANKAZOBE', countryName: 'MADAGASCAR' },\r\n { placeId: 4160, cityName: 'ANTALAHA', countryName: 'MADAGASCAR' },\r\n { placeId: 1137, cityName: 'ANTANANARIVO', countryName: 'MADAGASCAR' },\r\n { placeId: 4164, cityName: 'ANTSALOVA', countryName: 'MADAGASCAR' },\r\n { placeId: 4165, cityName: 'ANTSIRABE', countryName: 'MADAGASCAR' },\r\n { placeId: 1139, cityName: 'ANTSIRANANA', countryName: 'MADAGASCAR' },\r\n { placeId: 4166, cityName: 'ANTSOHIHY', countryName: 'MADAGASCAR' },\r\n { placeId: 4400, cityName: 'BEFANDRIANA', countryName: 'MADAGASCAR' },\r\n { placeId: 4405, cityName: 'BEKILY', countryName: 'MADAGASCAR' },\r\n { placeId: 4419, cityName: 'BELO', countryName: 'MADAGASCAR' },\r\n { placeId: 4442, cityName: 'BEROROHA', countryName: 'MADAGASCAR' },\r\n { placeId: 4445, cityName: 'BESALAMPY', countryName: 'MADAGASCAR' },\r\n { placeId: 5367, cityName: 'FARAFANGANA', countryName: 'MADAGASCAR' },\r\n { placeId: 5392, cityName: 'FIANARANTSOA', countryName: 'MADAGASCAR' },\r\n { placeId: 5935, cityName: 'IHOSY', countryName: 'MADAGASCAR' },\r\n { placeId: 5940, cityName: 'ILAKA', countryName: 'MADAGASCAR' },\r\n { placeId: 1140, cityName: 'MAHAJANGA', countryName: 'MADAGASCAR' },\r\n { placeId: 6712, cityName: 'MAHANORO', countryName: 'MADAGASCAR' },\r\n { placeId: 6718, cityName: 'MAINTIRANO', countryName: 'MADAGASCAR' },\r\n { placeId: 6731, cityName: 'MALAIMBANDY', countryName: 'MADAGASCAR' },\r\n { placeId: 6746, cityName: 'MANAKARA', countryName: 'MADAGASCAR' },\r\n { placeId: 6747, cityName: 'MANANARA', countryName: 'MADAGASCAR' },\r\n { placeId: 6749, cityName: 'MANANJARY', countryName: 'MADAGASCAR' },\r\n { placeId: 6753, cityName: 'MANDABE', countryName: 'MADAGASCAR' },\r\n { placeId: 6755, cityName: 'MANDRITSARA', countryName: 'MADAGASCAR' },\r\n { placeId: 6771, cityName: 'MANJA', countryName: 'MADAGASCAR' },\r\n { placeId: 6828, cityName: 'MAROANTSETRA', countryName: 'MADAGASCAR' },\r\n { placeId: 6964, cityName: 'MIANDRIVAZO', countryName: 'MADAGASCAR' },\r\n { placeId: 7067, cityName: 'MORAFENOBE', countryName: 'MADAGASCAR' },\r\n { placeId: 12066, cityName: 'MORAMANGA', countryName: 'MADAGASCAR' },\r\n { placeId: 7074, cityName: 'MOROMBE', countryName: 'MADAGASCAR' },\r\n { placeId: 7075, cityName: 'MORONDAVA', countryName: 'MADAGASCAR' },\r\n { placeId: 1141, cityName: 'NOSY-BE', countryName: 'MADAGASCAR' },\r\n { placeId: 7700, cityName: 'PORT BERGE', countryName: 'MADAGASCAR' },\r\n { placeId: 7516, cityName: 'SAINTE-MARIE', countryName: 'MADAGASCAR' },\r\n { placeId: 8022, cityName: 'SAMBAVA', countryName: 'MADAGASCAR' },\r\n { placeId: 8301, cityName: 'SOALALA', countryName: 'MADAGASCAR' },\r\n { placeId: 8568, cityName: 'TAMBOHORANO', countryName: 'MADAGASCAR' },\r\n { placeId: 8573, cityName: 'TANANDAVA', countryName: 'MADAGASCAR' },\r\n { placeId: 1138, cityName: 'TOAMASINA', countryName: 'MADAGASCAR' },\r\n { placeId: 1142, cityName: 'TOLAGNARO', countryName: 'MADAGASCAR' },\r\n { placeId: 1143, cityName: 'TOLIARY', countryName: 'MADAGASCAR' },\r\n { placeId: 8717, cityName: 'TSARATANANA', countryName: 'MADAGASCAR' },\r\n { placeId: 8728, cityName: 'TSIROANOMANDIDY', countryName: 'MADAGASCAR' },\r\n { placeId: 8827, cityName: 'VANGAINDRANO', countryName: 'MADAGASCAR' },\r\n { placeId: 8829, cityName: 'VATOMANDRY', countryName: 'MADAGASCAR' },\r\n { placeId: 8871, cityName: 'VOHIMARINA', countryName: 'MADAGASCAR' },\r\n { placeId: 4333, cityName: 'BANGULA', countryName: 'MALAWI' },\r\n { placeId: 1164, cityName: 'BLANTYRE', countryName: 'MALAWI' },\r\n { placeId: 4803, cityName: 'CHELINDA', countryName: 'MALAWI' },\r\n { placeId: 4829, cityName: 'CHILUMBA', countryName: 'MALAWI' },\r\n { placeId: 4844, cityName: 'CHITIPA', countryName: 'MALAWI' },\r\n { placeId: 4905, cityName: 'CLUB MAKOKOLA', countryName: 'MALAWI' },\r\n { placeId: 5230, cityName: 'DWANGWA', countryName: 'MALAWI' },\r\n { placeId: 6141, cityName: 'KARONGA', countryName: 'MALAWI' },\r\n { placeId: 6159, cityName: 'KASUNGU', countryName: 'MALAWI' },\r\n { placeId: 6170, cityName: 'KATUMBI', countryName: 'MALAWI' },\r\n { placeId: 6553, cityName: 'LIKOMA', countryName: 'MALAWI' },\r\n { placeId: 1165, cityName: 'LILONGWE', countryName: 'MALAWI' },\r\n { placeId: 6759, cityName: 'MANGOCHI', countryName: 'MALAWI' },\r\n { placeId: 6911, cityName: 'MCHINJI', countryName: 'MALAWI' },\r\n { placeId: 7029, cityName: 'MONKEY BAY', countryName: 'MALAWI' },\r\n { placeId: 7160, cityName: 'MZIMBA', countryName: 'MALAWI' },\r\n { placeId: 7161, cityName: 'MZUZU', countryName: 'MALAWI' },\r\n { placeId: 7203, cityName: 'NCHALO', countryName: 'MALAWI' },\r\n { placeId: 7270, cityName: 'NKHOTAKOTA', countryName: 'MALAWI' },\r\n { placeId: 6505, cityName: 'NSANJE', countryName: 'MALAWI' },\r\n { placeId: 6506, cityName: 'NTCHISI', countryName: 'MALAWI' },\r\n { placeId: 8008, cityName: 'SALIMA', countryName: 'MALAWI' },\r\n { placeId: 2745, cityName: 'ALOR STAR', countryName: 'MALAYSIA' },\r\n { placeId: 4348, cityName: 'BARIO', countryName: 'MALAYSIA' },\r\n { placeId: 2731, cityName: 'BINTULU', countryName: 'MALAYSIA' },\r\n { placeId: 4660, cityName: 'BUTTERWORTH', countryName: 'MALAYSIA' },\r\n { placeId: 5602, cityName: 'GONG KEDAK', countryName: 'MALAYSIA' },\r\n { placeId: 2749, cityName: 'IPOH', countryName: 'MALAYSIA' },\r\n { placeId: 2750, cityName: 'JOHOR BAHRU', countryName: 'MALAYSIA' },\r\n { placeId: 6198, cityName: 'KENINGUA, MALAYSIA', countryName: 'MALAYSIA' },\r\n { placeId: 2748, cityName: 'KERTEH', countryName: 'MALAYSIA' },\r\n { placeId: 2743, cityName: 'KLUANG', countryName: 'MALAYSIA' },\r\n { placeId: 2746, cityName: 'KOTA BHARU', countryName: 'MALAYSIA' },\r\n { placeId: 2735, cityName: 'KOTA KINABALU', countryName: 'MALAYSIA' },\r\n { placeId: 2751, cityName: 'KUALA LUMPUR', countryName: 'MALAYSIA' },\r\n { placeId: 2754, cityName: 'KUALA TERENGGANU', countryName: 'MALAYSIA' },\r\n { placeId: 2747, cityName: 'KUANTAN', countryName: 'MALAYSIA' },\r\n { placeId: 2732, cityName: 'KUCHING', countryName: 'MALAYSIA' },\r\n { placeId: 2736, cityName: 'LABUAN I', countryName: 'MALAYSIA' },\r\n { placeId: 6406, cityName: 'LAHAD DATU', countryName: 'MALAYSIA' },\r\n { placeId: 2752, cityName: 'LANGKAWI I.', countryName: 'MALAYSIA' },\r\n { placeId: 6456, cityName: 'LAWAS', countryName: 'MALAYSIA' },\r\n { placeId: 6559, cityName: 'LIMBANG', countryName: 'MALAYSIA' },\r\n { placeId: 6609, cityName: 'LONG AKAH', countryName: 'MALAYSIA' },\r\n { placeId: 2753, cityName: 'MALACCA', countryName: 'MALAYSIA' },\r\n { placeId: 6842, cityName: 'MARUDI', countryName: 'MALAYSIA' },\r\n { placeId: 2733, cityName: 'MIRI', countryName: 'MALAYSIA' },\r\n { placeId: 7122, cityName: 'MUKAH', countryName: 'MALAYSIA' },\r\n { placeId: 7130, cityName: 'MULU', countryName: 'MALAYSIA' },\r\n { placeId: 2755, cityName: 'PENANG I', countryName: 'MALAYSIA' },\r\n { placeId: 7800, cityName: 'PULAU REDANG', countryName: 'MALAYSIA' },\r\n { placeId: 2744, cityName: 'PULAU TIOMAN', countryName: 'MALAYSIA' },\r\n { placeId: 2737, cityName: 'SANDAKAN', countryName: 'MALAYSIA' },\r\n { placeId: 2734, cityName: 'SIBU', countryName: 'MALAYSIA' },\r\n { placeId: 8551, cityName: 'TAIPING', countryName: 'MALAYSIA' },\r\n { placeId: 2738, cityName: 'TAWAU', countryName: 'MALAYSIA' },\r\n { placeId: 2697, cityName: 'GAN ISLAND', countryName: 'MALDIVES' },\r\n { placeId: 5790, cityName: 'HANIMAADHOO ISLAND', countryName: 'MALDIVES' },\r\n { placeId: 6089, cityName: 'KAADEDHDHOO ISLAND', countryName: 'MALDIVES' },\r\n { placeId: 6097, cityName: 'KADHDHOO ISLAND', countryName: 'MALDIVES' },\r\n { placeId: 13902, cityName: 'MAAMIGILI ISLAND', countryName: 'MALDIVES' },\r\n { placeId: 2698, cityName: 'MALE', countryName: 'MALDIVES' },\r\n { placeId: 4158, cityName: 'ANSONGO', countryName: 'MALI' },\r\n { placeId: 4290, cityName: 'BAFOULABE', countryName: 'MALI' },\r\n { placeId: 1171, cityName: 'BAMAKO', countryName: 'MALI' },\r\n { placeId: 4326, cityName: 'BANDIAGARA', countryName: 'MALI' },\r\n { placeId: 4565, cityName: 'BOUGOUNI', countryName: 'MALI' },\r\n { placeId: 4572, cityName: 'BOUREM', countryName: 'MALI' },\r\n { placeId: 5205, cityName: 'DOUENTZA', countryName: 'MALI' },\r\n { placeId: 5527, cityName: 'GAO', countryName: 'MALI' },\r\n { placeId: 5604, cityName: 'GOUNDAM', countryName: 'MALI' },\r\n { placeId: 6176, cityName: 'KAYES', countryName: 'MALI' },\r\n { placeId: 6197, cityName: 'KENIEBA', countryName: 'MALI' },\r\n { placeId: 6218, cityName: 'KIDAL', countryName: 'MALI' },\r\n { placeId: 6270, cityName: 'KITA', countryName: 'MALI' },\r\n { placeId: 6310, cityName: 'KOLOKANI', countryName: 'MALI' },\r\n { placeId: 6330, cityName: 'KOUTIALA', countryName: 'MALI' },\r\n { placeId: 6824, cityName: 'MARKALA', countryName: 'MALI' },\r\n { placeId: 6935, cityName: 'MENAKA', countryName: 'MALI' },\r\n { placeId: 2853, cityName: 'MOPTI', countryName: 'MALI' },\r\n { placeId: 7189, cityName: 'NARA', countryName: 'MALI' },\r\n { placeId: 7256, cityName: 'NIAFUNKE', countryName: 'MALI' },\r\n { placeId: 7263, cityName: 'NIORO', countryName: 'MALI' },\r\n { placeId: 8256, cityName: 'SIKASSO', countryName: 'MALI' },\r\n { placeId: 8627, cityName: 'TESSALIT', countryName: 'MALI' },\r\n { placeId: 8356, cityName: 'TOMBOUCTOU', countryName: 'MALI' },\r\n { placeId: 9083, cityName: 'YELIMANE', countryName: 'MALI' },\r\n { placeId: 2067, cityName: 'MALTA', countryName: 'MALTA' },\r\n { placeId: 10409, cityName: 'DALAP', countryName: 'MARSHALL ISLANDS' },\r\n { placeId: 10624, cityName: 'ENEWETAK ATOLL', countryName: 'MARSHALL ISLANDS' },\r\n { placeId: 11549, cityName: 'KWAJALEIN ATOLL', countryName: 'MARSHALL ISLANDS' },\r\n { placeId: 12841, cityName: 'ROI-NAMUR', countryName: 'MARSHALL ISLANDS' },\r\n { placeId: 2539, cityName: 'MARTINIQUE', countryName: 'MARTINIQUE' },\r\n { placeId: 4028, cityName: 'AIOUN-EL-ATROUSS', countryName: 'MAURITANIA' },\r\n { placeId: 4036, cityName: 'AKJOUJT', countryName: 'MAURITANIA' },\r\n { placeId: 4255, cityName: 'ATAR', countryName: 'MAURITANIA' },\r\n { placeId: 4479, cityName: 'BIR MOGHREIN', countryName: 'MAURITANIA' },\r\n { placeId: 2934, cityName: 'BOGUE', countryName: 'MAURITANIA' },\r\n { placeId: 4574, cityName: 'BOUTILIMIT', countryName: 'MAURITANIA' },\r\n { placeId: 5347, cityName: 'F\\'DERIK', countryName: 'MAURITANIA' },\r\n { placeId: 6100, cityName: 'KAEDI', countryName: 'MAURITANIA' },\r\n { placeId: 6220, cityName: 'KIFFA', countryName: 'MAURITANIA' },\r\n { placeId: 7088, cityName: 'MOUDJERIA', countryName: 'MAURITANIA' },\r\n { placeId: 7221, cityName: 'NEMA', countryName: 'MAURITANIA' },\r\n { placeId: 1197, cityName: 'NOUADHIBOU', countryName: 'MAURITANIA' },\r\n { placeId: 1196, cityName: 'NOUAKCHOTT', countryName: 'MAURITANIA' },\r\n { placeId: 8151, cityName: 'SELIBABI', countryName: 'MAURITANIA' },\r\n { placeId: 8569, cityName: 'TAMCHAKETT', countryName: 'MAURITANIA' },\r\n { placeId: 8658, cityName: 'TICHIT', countryName: 'MAURITANIA' },\r\n { placeId: 8660, cityName: 'TIDJIKJA', countryName: 'MAURITANIA' },\r\n { placeId: 8667, cityName: 'TIMBEDRA', countryName: 'MAURITANIA' },\r\n { placeId: 9127, cityName: 'ZOUERATT', countryName: 'MAURITANIA' },\r\n { placeId: 1129, cityName: 'MAURITIUS', countryName: 'MAURITIUS' },\r\n { placeId: 1130, cityName: 'RODRIGUES', countryName: 'MAURITIUS' },\r\n { placeId: 1135, cityName: 'DZAOUDZI', countryName: 'MAYOTTE' },\r\n { placeId: 1179, cityName: 'MELILLA', countryName: 'MELILLA' },\r\n { placeId: 2303, cityName: 'ACAPULCO', countryName: 'MEXICO' },\r\n { placeId: 9500, cityName: 'AGUALEGUAS', countryName: 'MEXICO' },\r\n { placeId: 9501, cityName: 'AGUASCALIENTES', countryName: 'MEXICO' },\r\n { placeId: 9595, cityName: 'APATZINGAN', countryName: 'MEXICO' },\r\n { placeId: 9648, cityName: 'ATIZAPAN DE ZARAGOZA', countryName: 'MEXICO' },\r\n { placeId: 9690, cityName: 'BAHIAS DE HUATULCO', countryName: 'MEXICO' },\r\n { placeId: 10003, cityName: 'CABO SAN LUCAS', countryName: 'MEXICO' },\r\n { placeId: 10043, cityName: 'CAMPECHE', countryName: 'MEXICO' },\r\n { placeId: 2310, cityName: 'CANCUN', countryName: 'MEXICO' },\r\n { placeId: 10110, cityName: 'CELAYA', countryName: 'MEXICO' },\r\n { placeId: 10176, cityName: 'CHETUMAL', countryName: 'MEXICO' },\r\n { placeId: 10188, cityName: 'CHICHEN-ITZA', countryName: 'MEXICO' },\r\n { placeId: 10192, cityName: 'CHIHUAHUA', countryName: 'MEXICO' },\r\n { placeId: 10231, cityName: 'CIUDAD ACUNA', countryName: 'MEXICO' },\r\n { placeId: 10232, cityName: 'CIUDAD CONSTITUCION', countryName: 'MEXICO' },\r\n { placeId: 10233, cityName: 'CIUDAD DEL CARMEN', countryName: 'MEXICO' },\r\n { placeId: 10234, cityName: 'CIUDAD JUAREZ', countryName: 'MEXICO' },\r\n { placeId: 10235, cityName: 'CIUDAD OBREGON', countryName: 'MEXICO' },\r\n { placeId: 10236, cityName: 'CIUDAD VICTORIA', countryName: 'MEXICO' },\r\n { placeId: 10297, cityName: 'COLIMA', countryName: 'MEXICO' },\r\n { placeId: 10317, cityName: 'COMITAN', countryName: 'MEXICO' },\r\n { placeId: 10362, cityName: 'COZUMEL', countryName: 'MEXICO' },\r\n { placeId: 10387, cityName: 'CUERNAVACA', countryName: 'MEXICO' },\r\n { placeId: 10389, cityName: 'CULIACAN', countryName: 'MEXICO' },\r\n { placeId: 10536, cityName: 'DURANGO', countryName: 'MEXICO' },\r\n { placeId: 10630, cityName: 'ENSENADA', countryName: 'MEXICO' },\r\n { placeId: 11011, cityName: 'GUADALAJARA', countryName: 'MEXICO' },\r\n { placeId: 9475, cityName: 'GUANAJUATO', countryName: 'MEXICO' },\r\n { placeId: 11016, cityName: 'GUAYMAS', countryName: 'MEXICO' },\r\n { placeId: 11019, cityName: 'GUERRERO NEGRO', countryName: 'MEXICO' },\r\n { placeId: 11130, cityName: 'HERMOSILLO', countryName: 'MEXICO' },\r\n { placeId: 11280, cityName: 'ISLA MUJERES', countryName: 'MEXICO' },\r\n { placeId: 11286, cityName: 'IXTAPA-ZIHUATANEJO', countryName: 'MEXICO' },\r\n { placeId: 11306, cityName: 'JALAPA', countryName: 'MEXICO' },\r\n { placeId: 11564, cityName: 'LA PAZ', countryName: 'MEXICO' },\r\n { placeId: 11646, cityName: 'LAZARO CARDENAS', countryName: 'MEXICO' },\r\n { placeId: 11739, cityName: 'LORETO', countryName: 'MEXICO' },\r\n { placeId: 11744, cityName: 'LOS MOCHIS', countryName: 'MEXICO' },\r\n { placeId: 11838, cityName: 'MANZANILLO', countryName: 'MEXICO' },\r\n { placeId: 11898, cityName: 'MATAMOROS', countryName: 'MEXICO' },\r\n { placeId: 11910, cityName: 'MAZATLAN', countryName: 'MEXICO' },\r\n { placeId: 11955, cityName: 'MERIDA', countryName: 'MEXICO' },\r\n { placeId: 11966, cityName: 'MEXICALI', countryName: 'MEXICO' },\r\n { placeId: 2305, cityName: 'MEXICO CITY', countryName: 'MEXICO' },\r\n { placeId: 11994, cityName: 'MINATITLAN', countryName: 'MEXICO' },\r\n { placeId: 12029, cityName: 'MONCLOVA', countryName: 'MEXICO' },\r\n { placeId: 2304, cityName: 'MONTERREY', countryName: 'MEXICO' },\r\n { placeId: 12070, cityName: 'MORELIA', countryName: 'MEXICO' },\r\n { placeId: 12236, cityName: 'NOGALES', countryName: 'MEXICO' },\r\n { placeId: 12276, cityName: 'NUEVO CASAS GRANDES', countryName: 'MEXICO' },\r\n { placeId: 12277, cityName: 'NUEVO LAREDO', countryName: 'MEXICO' },\r\n { placeId: 12294, cityName: 'OAXACA', countryName: 'MEXICO' },\r\n { placeId: 12402, cityName: 'PACHUCA', countryName: 'MEXICO' },\r\n { placeId: 12413, cityName: 'PALENQUE', countryName: 'MEXICO' },\r\n { placeId: 12518, cityName: 'PIEDRAS NEGRAS', countryName: 'MEXICO' },\r\n { placeId: 12633, cityName: 'POZA RICA', countryName: 'MEXICO' },\r\n { placeId: 12665, cityName: 'PUEBLA', countryName: 'MEXICO' },\r\n { placeId: 12667, cityName: 'PUERTO CORTES', countryName: 'MEXICO' },\r\n { placeId: 12669, cityName: 'PUERTO ESCONDIDO', countryName: 'MEXICO' },\r\n { placeId: 12670, cityName: 'PUERTO PENASCO', countryName: 'MEXICO' },\r\n { placeId: 2306, cityName: 'PUERTO VALLARTA', countryName: 'MEXICO' },\r\n { placeId: 12677, cityName: 'PUNTA COLORADA', countryName: 'MEXICO' },\r\n { placeId: 12696, cityName: 'QUERETARO', countryName: 'MEXICO' },\r\n { placeId: 12779, cityName: 'REYNOSA', countryName: 'MEXICO' },\r\n { placeId: 3169, cityName: 'SALTILLO', countryName: 'MEXICO' },\r\n { placeId: 12916, cityName: 'SAN BLAS', countryName: 'MEXICO' },\r\n { placeId: 3170, cityName: 'SAN CRISTOBAL DE LAS CASAS', countryName: 'MEXICO' },\r\n { placeId: 12920, cityName: 'SAN FELIPE', countryName: 'MEXICO' },\r\n { placeId: 2307, cityName: 'SAN JOSE DEL CABO', countryName: 'MEXICO' },\r\n { placeId: 12928, cityName: 'SAN LUIS POTOSI', countryName: 'MEXICO' },\r\n { placeId: 2308, cityName: 'TAMPICO', countryName: 'MEXICO' },\r\n { placeId: 13354, cityName: 'TAMUIN', countryName: 'MEXICO' },\r\n { placeId: 13363, cityName: 'TAPACHULA', countryName: 'MEXICO' },\r\n { placeId: 3168, cityName: 'TEHUACAN', countryName: 'MEXICO' },\r\n { placeId: 13392, cityName: 'TEPIC', countryName: 'MEXICO' },\r\n { placeId: 13393, cityName: 'TERAN', countryName: 'MEXICO' },\r\n { placeId: 13431, cityName: 'TIJUANA', countryName: 'MEXICO' },\r\n { placeId: 2309, cityName: 'TOLUCA', countryName: 'MEXICO' },\r\n { placeId: 13465, cityName: 'TORREON', countryName: 'MEXICO' },\r\n { placeId: 13509, cityName: 'TULUM', countryName: 'MEXICO' },\r\n { placeId: 13520, cityName: 'TUXTLA GUTIERREZ', countryName: 'MEXICO' },\r\n { placeId: 13553, cityName: 'URUAPAN', countryName: 'MEXICO' },\r\n { placeId: 13594, cityName: 'VERACRUZ', countryName: 'MEXICO' },\r\n { placeId: 13613, cityName: 'VILLAHERMOSA', countryName: 'MEXICO' },\r\n { placeId: 13874, cityName: 'ZACATECAS', countryName: 'MEXICO' },\r\n { placeId: 13879, cityName: 'ZAMORA', countryName: 'MEXICO' },\r\n { placeId: 6323, cityName: 'KOSRAE I', countryName: 'MICRONESIA' },\r\n { placeId: 7687, cityName: 'POHNPEI I', countryName: 'MICRONESIA' },\r\n { placeId: 3724, cityName: 'ULITHI I', countryName: 'MICRONESIA' },\r\n { placeId: 2409, cityName: 'WENO I', countryName: 'MICRONESIA' },\r\n { placeId: 2411, cityName: 'YAP I', countryName: 'MICRONESIA' },\r\n { placeId: 11979, cityName: 'MIDWAY ATOLL', countryName: 'MIDWAY I' },\r\n { placeId: 1834, cityName: 'MIQUELON I', countryName: 'MIQUELON I' },\r\n { placeId: 2266, cityName: 'BALTI', countryName: 'MOLDOVA' },\r\n { placeId: 2267, cityName: 'CAHUL', countryName: 'MOLDOVA' },\r\n { placeId: 2268, cityName: 'CHISINAU', countryName: 'MOLDOVA' },\r\n { placeId: 11849, cityName: 'MARCULESTI', countryName: 'MOLDOVA' },\r\n { placeId: 9554, cityName: 'ALTAI', countryName: 'MONGOLIA' },\r\n { placeId: 9623, cityName: 'ARVAIKHEER', countryName: 'MONGOLIA' },\r\n { placeId: 9737, cityName: 'BARUUN-URT', countryName: 'MONGOLIA' },\r\n { placeId: 9760, cityName: 'BAYANKHONGOR', countryName: 'MONGOLIA' },\r\n { placeId: 9973, cityName: 'BULGAN SUM', countryName: 'MONGOLIA' },\r\n { placeId: 9972, cityName: 'BULGAN', countryName: 'MONGOLIA' },\r\n { placeId: 10207, cityName: 'CHOIBALSAN', countryName: 'MONGOLIA' },\r\n { placeId: 10404, cityName: 'DADAL', countryName: 'MONGOLIA' },\r\n { placeId: 10456, cityName: 'DEGLII TSAGAAN', countryName: 'MONGOLIA' },\r\n { placeId: 11029, cityName: 'GURVANSAIKHAN', countryName: 'MONGOLIA' },\r\n { placeId: 11444, cityName: 'KHARKHORIN', countryName: 'MONGOLIA' },\r\n { placeId: 11446, cityName: 'KHATGAL', countryName: 'MONGOLIA' },\r\n { placeId: 11449, cityName: 'KHOVD', countryName: 'MONGOLIA' },\r\n { placeId: 11811, cityName: 'MANDALGOBI', countryName: 'MONGOLIA' },\r\n { placeId: 12123, cityName: 'MUREN', countryName: 'MONGOLIA' },\r\n { placeId: 12399, cityName: 'OYUT', countryName: 'MONGOLIA' },\r\n { placeId: 13468, cityName: 'TOSONTSENGEL', countryName: 'MONGOLIA' },\r\n { placeId: 13499, cityName: 'TSETSERLEG', countryName: 'MONGOLIA' },\r\n { placeId: 2795, cityName: 'ULAANBAATAR', countryName: 'MONGOLIA' },\r\n { placeId: 13543, cityName: 'UNDURKHAAN', countryName: 'MONGOLIA' },\r\n { placeId: 2275, cityName: 'TIVAT', countryName: 'MONTENEGRO' },\r\n { placeId: 10882, cityName: 'GERALD\\'S', countryName: 'MONTSERRAT I' },\r\n { placeId: 1182, cityName: 'AGADIR', countryName: 'MOROCCO' },\r\n { placeId: 1191, cityName: 'AL HOCEIMA', countryName: 'MOROCCO' },\r\n { placeId: 4424, cityName: 'BENI MELLAL', countryName: 'MOROCCO' },\r\n { placeId: 4429, cityName: 'BENSLIMANE', countryName: 'MOROCCO' },\r\n { placeId: 4564, cityName: 'BOUARFA', countryName: 'MOROCCO' },\r\n { placeId: 1187, cityName: 'CASABLANCA', countryName: 'MOROCCO' },\r\n { placeId: 5027, cityName: 'ERRACHIDIA', countryName: 'MOROCCO' },\r\n { placeId: 5330, cityName: 'ESSAOUIRA', countryName: 'MOROCCO' },\r\n { placeId: 1183, cityName: 'FES', countryName: 'MOROCCO' },\r\n { placeId: 5734, cityName: 'GUELMIME', countryName: 'MOROCCO' },\r\n { placeId: 5932, cityName: 'IFRANE', countryName: 'MOROCCO' },\r\n { placeId: 6199, cityName: 'KENITRA', countryName: 'MOROCCO' },\r\n { placeId: 1189, cityName: 'MARRAKECH', countryName: 'MOROCCO' },\r\n { placeId: 1188, cityName: 'NADOR', countryName: 'MOROCCO' },\r\n { placeId: 1190, cityName: 'OUARZAZATE', countryName: 'MOROCCO' },\r\n { placeId: 1184, cityName: 'OUJDA', countryName: 'MOROCCO' },\r\n { placeId: 1185, cityName: 'RABAT', countryName: 'MOROCCO' },\r\n { placeId: 8571, cityName: 'TAN TAN', countryName: 'MOROCCO' },\r\n { placeId: 1192, cityName: 'TANGER', countryName: 'MOROCCO' },\r\n { placeId: 8588, cityName: 'TAROUDANT', countryName: 'MOROCCO' },\r\n { placeId: 8597, cityName: 'TAZA', countryName: 'MOROCCO' },\r\n { placeId: 8630, cityName: 'TETOUAN', countryName: 'MOROCCO' },\r\n { placeId: 9101, cityName: 'ZAGORA', countryName: 'MOROCCO' },\r\n { placeId: 4145, cityName: 'ANGOCHE', countryName: 'MOZAMBIQUE' },\r\n { placeId: 1147, cityName: 'BEIRA', countryName: 'MOZAMBIQUE' },\r\n { placeId: 4473, cityName: 'BILENE', countryName: 'MOZAMBIQUE' },\r\n { placeId: 4832, cityName: 'CHIMOIO', countryName: 'MOZAMBIQUE' },\r\n { placeId: 5002, cityName: 'CUAMBA', countryName: 'MOZAMBIQUE' },\r\n { placeId: 5971, cityName: 'INHACA', countryName: 'MOZAMBIQUE' },\r\n { placeId: 5972, cityName: 'INHAMBANE', countryName: 'MOZAMBIQUE' },\r\n { placeId: 1148, cityName: 'LICHINGA', countryName: 'MOZAMBIQUE' },\r\n { placeId: 6671, cityName: 'LUMBO', countryName: 'MOZAMBIQUE' },\r\n { placeId: 1149, cityName: 'MAPUTO', countryName: 'MOZAMBIQUE' },\r\n { placeId: 6830, cityName: 'MARRUPA', countryName: 'MOZAMBIQUE' },\r\n { placeId: 6493, cityName: 'MOCIMBOA DA PRAIA', countryName: 'MOZAMBIQUE' },\r\n { placeId: 6497, cityName: 'NACALA', countryName: 'MOZAMBIQUE' },\r\n { placeId: 1150, cityName: 'NAMPULA', countryName: 'MOZAMBIQUE' },\r\n { placeId: 1151, cityName: 'PEMBA', countryName: 'MOZAMBIQUE' },\r\n { placeId: 7496, cityName: 'PONTA DE OURO', countryName: 'MOZAMBIQUE' },\r\n { placeId: 1152, cityName: 'QUELIMANE', countryName: 'MOZAMBIQUE' },\r\n { placeId: 8317, cityName: 'SONGO', countryName: 'MOZAMBIQUE' },\r\n { placeId: 1153, cityName: 'TETE', countryName: 'MOZAMBIQUE' },\r\n { placeId: 8781, cityName: 'ULONGWE', countryName: 'MOZAMBIQUE' },\r\n { placeId: 1154, cityName: 'VILANKULO', countryName: 'MOZAMBIQUE' },\r\n { placeId: 4149, cityName: 'ANISAKAN', countryName: 'MYANMAR' },\r\n { placeId: 9586, cityName: 'ANN', countryName: 'MYANMAR' },\r\n { placeId: 4293, cityName: 'BAGAN', countryName: 'MYANMAR' },\r\n { placeId: 4334, cityName: 'BANMAW', countryName: 'MYANMAR' },\r\n { placeId: 9883, cityName: 'BOKPYINN', countryName: 'MYANMAR' },\r\n { placeId: 4913, cityName: 'COCO I', countryName: 'MYANMAR' },\r\n { placeId: 5074, cityName: 'DAWEI', countryName: 'MYANMAR' },\r\n { placeId: 5526, cityName: 'GANTGAW', countryName: 'MYANMAR' },\r\n { placeId: 5751, cityName: 'GWA', countryName: 'MYANMAR' },\r\n { placeId: 5825, cityName: 'HEHO', countryName: 'MYANMAR' },\r\n { placeId: 5855, cityName: 'HMAWBY', countryName: 'MYANMAR' },\r\n { placeId: 5875, cityName: 'HOMMALINN', countryName: 'MYANMAR' },\r\n { placeId: 5893, cityName: 'HPA-AN', countryName: 'MYANMAR' },\r\n { placeId: 5894, cityName: 'HPA-PUN', countryName: 'MYANMAR' },\r\n { placeId: 6119, cityName: 'KALAY', countryName: 'MYANMAR' },\r\n { placeId: 6130, cityName: 'KANTI', countryName: 'MYANMAR' },\r\n { placeId: 6175, cityName: 'KAWTHOUNG', countryName: 'MYANMAR' },\r\n { placeId: 6196, cityName: 'KENGTUNG', countryName: 'MYANMAR' },\r\n { placeId: 6352, cityName: 'KYAUKPYU', countryName: 'MYANMAR' },\r\n { placeId: 6353, cityName: 'KYAUKTU', countryName: 'MYANMAR' },\r\n { placeId: 6439, cityName: 'LANYWA', countryName: 'MYANMAR' },\r\n { placeId: 6447, cityName: 'LASHIO', countryName: 'MYANMAR' },\r\n { placeId: 6598, cityName: 'LOIKAW', countryName: 'MYANMAR' },\r\n { placeId: 6710, cityName: 'MAGWAY', countryName: 'MYANMAR' },\r\n { placeId: 6752, cityName: 'MANAUNG', countryName: 'MYANMAR' },\r\n { placeId: 2727, cityName: 'MANDALAY', countryName: 'MYANMAR' },\r\n { placeId: 6883, cityName: 'MAWLAMYINE', countryName: 'MYANMAR' },\r\n { placeId: 6922, cityName: 'MEIKTILA', countryName: 'MYANMAR' },\r\n { placeId: 7020, cityName: 'MOMEIK', countryName: 'MYANMAR' },\r\n { placeId: 7024, cityName: 'MONG TONG', countryName: 'MYANMAR' },\r\n { placeId: 7025, cityName: 'MONG-HSAT', countryName: 'MYANMAR' },\r\n { placeId: 7056, cityName: 'MONYWAR', countryName: 'MYANMAR' },\r\n { placeId: 7158, cityName: 'MYEIK', countryName: 'MYANMAR' },\r\n { placeId: 7159, cityName: 'MYITKYINA', countryName: 'MYANMAR' },\r\n { placeId: 7176, cityName: 'NAMSANG', countryName: 'MYANMAR' },\r\n { placeId: 2858, cityName: 'NAYPYITAW', countryName: 'MYANMAR' },\r\n { placeId: 7475, cityName: 'PAKHOKKU', countryName: 'MYANMAR' },\r\n { placeId: 7574, cityName: 'PATHEIN', countryName: 'MYANMAR' },\r\n { placeId: 7807, cityName: 'PUTAO', countryName: 'MYANMAR' },\r\n { placeId: 7812, cityName: 'PYAY', countryName: 'MYANMAR' },\r\n { placeId: 8212, cityName: 'SHANTE', countryName: 'MYANMAR' },\r\n { placeId: 8281, cityName: 'SITTWE', countryName: 'MYANMAR' },\r\n { placeId: 8536, cityName: 'TACHILEK', countryName: 'MYANMAR' },\r\n { placeId: 8592, cityName: 'TAUNGOO', countryName: 'MYANMAR' },\r\n { placeId: 8635, cityName: 'THANDWE', countryName: 'MYANMAR' },\r\n { placeId: 2728, cityName: 'YANGON', countryName: 'MYANMAR' },\r\n { placeId: 9080, cityName: 'YE', countryName: 'MYANMAR' },\r\n { placeId: 4199, cityName: 'ARANDIS', countryName: 'NAMIBIA' },\r\n { placeId: 5588, cityName: 'GOBABIS', countryName: 'NAMIBIA' },\r\n { placeId: 5690, cityName: 'GRAVENSTEIN', countryName: 'NAMIBIA' },\r\n { placeId: 1166, cityName: 'GROOTFONTEIN', countryName: 'NAMIBIA' },\r\n { placeId: 6163, cityName: 'KATIMA MULILO', countryName: 'NAMIBIA' },\r\n { placeId: 1167, cityName: 'KEETMANSHOOP', countryName: 'NAMIBIA' },\r\n { placeId: 6543, cityName: 'LIANSHULU', countryName: 'NAMIBIA' },\r\n { placeId: 6652, cityName: 'LUDERITZ', countryName: 'NAMIBIA' },\r\n { placeId: 6812, cityName: 'MARIENTAL', countryName: 'NAMIBIA' },\r\n { placeId: 7013, cityName: 'MOKUTI LODGE', countryName: 'NAMIBIA' },\r\n { placeId: 7390, cityName: 'ONDANGWA', countryName: 'NAMIBIA' },\r\n { placeId: 7407, cityName: 'ORANJEMUND', countryName: 'NAMIBIA' },\r\n { placeId: 7505, cityName: 'RAG ROCK', countryName: 'NAMIBIA' },\r\n { placeId: 7984, cityName: 'RUNDU', countryName: 'NAMIBIA' },\r\n { placeId: 8286, cityName: 'SKORPION MINE', countryName: 'NAMIBIA' },\r\n { placeId: 8333, cityName: 'SWAKOPMUND', countryName: 'NAMIBIA' },\r\n { placeId: 8729, cityName: 'TSUMEB', countryName: 'NAMIBIA' },\r\n { placeId: 1168, cityName: 'WALVIS BAY', countryName: 'NAMIBIA' },\r\n { placeId: 1169, cityName: 'WINDHOEK', countryName: 'NAMIBIA' },\r\n { placeId: 2, cityName: 'NAURU I, NAURU', countryName: 'NAURU' },\r\n { placeId: 4296, cityName: 'BAGLUNG', countryName: 'NEPAL' },\r\n { placeId: 4303, cityName: 'BAITADI', countryName: 'NEPAL' },\r\n { placeId: 4304, cityName: 'BAJHANG', countryName: 'NEPAL' },\r\n { placeId: 4305, cityName: 'BAJURA', countryName: 'NEPAL' },\r\n { placeId: 4452, cityName: 'BHAIRAHAWA', countryName: 'NEPAL' },\r\n { placeId: 4453, cityName: 'BHARATPUR', countryName: 'NEPAL' },\r\n { placeId: 4456, cityName: 'BHOJPUR', countryName: 'NEPAL' },\r\n { placeId: 4481, cityName: 'BIRATNAGAR', countryName: 'NEPAL' },\r\n { placeId: 3993, cityName: 'CHANDRAGADHI', countryName: 'NEPAL' },\r\n { placeId: 4798, cityName: 'CHAURIJHARI', countryName: 'NEPAL' },\r\n { placeId: 5059, cityName: 'DANG', countryName: 'NEPAL' },\r\n { placeId: 5064, cityName: 'DARCHULA', countryName: 'NEPAL' },\r\n { placeId: 5164, cityName: 'DHANGADHI', countryName: 'NEPAL' },\r\n { placeId: 5196, cityName: 'DOLPA', countryName: 'NEPAL' },\r\n { placeId: 5204, cityName: 'DOTI', countryName: 'NEPAL' },\r\n { placeId: 5141, cityName: 'GORKHA', countryName: 'NEPAL' },\r\n { placeId: 6042, cityName: 'JANAKPUR', countryName: 'NEPAL' },\r\n { placeId: 6075, cityName: 'JOMSOM', countryName: 'NEPAL' },\r\n { placeId: 6084, cityName: 'JUMLA', countryName: 'NEPAL' },\r\n { placeId: 2690, cityName: 'KATHMANDU', countryName: 'NEPAL' },\r\n { placeId: 6420, cityName: 'LAMIDADA', countryName: 'NEPAL' },\r\n { placeId: 6665, cityName: 'LUKLA', countryName: 'NEPAL' },\r\n { placeId: 6714, cityName: 'MAHENDRANAGAR', countryName: 'NEPAL' },\r\n { placeId: 6748, cityName: 'MANANG', countryName: 'NEPAL' },\r\n { placeId: 6920, cityName: 'MEGHAULI', countryName: 'NEPAL' },\r\n { placeId: 7225, cityName: 'NEPALGUNJ', countryName: 'NEPAL' },\r\n { placeId: 7490, cityName: 'POKHARA', countryName: 'NEPAL' },\r\n { placeId: 7511, cityName: 'RAJBIRAJ', countryName: 'NEPAL' },\r\n { placeId: 7845, cityName: 'RAMECHHAP', countryName: 'NEPAL' },\r\n { placeId: 7983, cityName: 'RUMJATAR', countryName: 'NEPAL' },\r\n { placeId: 8079, cityName: 'SANFEBAGAR', countryName: 'NEPAL' },\r\n { placeId: 8265, cityName: 'SIMARA', countryName: 'NEPAL' },\r\n { placeId: 8268, cityName: 'SIMIKOT', countryName: 'NEPAL' },\r\n { placeId: 8525, cityName: 'SURKHET', countryName: 'NEPAL' },\r\n { placeId: 8745, cityName: 'TUMLINGTAR', countryName: 'NEPAL' },\r\n { placeId: 2549, cityName: 'BONAIRE I', countryName: 'NETHERLANDS ANTILLES' },\r\n { placeId: 2550, cityName: 'CURACAO I', countryName: 'NETHERLANDS ANTILLES' },\r\n { placeId: 8412, cityName: 'ST EUSTATIUS I', countryName: 'NETHERLANDS ANTILLES' },\r\n { placeId: 2551, cityName: 'ST MAARTEN I', countryName: 'NETHERLANDS ANTILLES' },\r\n { placeId: 777, cityName: 'AMELAND', countryName: 'NETHERLANDS' },\r\n { placeId: 778, cityName: 'AMSTERDAM', countryName: 'NETHERLANDS' },\r\n { placeId: 781, cityName: 'ARNHEM', countryName: 'NETHERLANDS' },\r\n { placeId: 788, cityName: 'DE KOOY', countryName: 'NETHERLANDS' },\r\n { placeId: 795, cityName: 'DEVENTER', countryName: 'NETHERLANDS' },\r\n { placeId: 782, cityName: 'DRACHTEN', countryName: 'NETHERLANDS' },\r\n { placeId: 783, cityName: 'EINDHOVEN', countryName: 'NETHERLANDS' },\r\n { placeId: 796, cityName: 'ENSCHEDE', countryName: 'NETHERLANDS' },\r\n { placeId: 785, cityName: 'GILZE-RIJEN', countryName: 'NETHERLANDS' },\r\n { placeId: 784, cityName: 'GRONINGEN', countryName: 'NETHERLANDS' },\r\n { placeId: 787, cityName: 'HILVERSUM', countryName: 'NETHERLANDS' },\r\n { placeId: 794, cityName: 'HOEVEN', countryName: 'NETHERLANDS' },\r\n { placeId: 786, cityName: 'HOOGEVEEN', countryName: 'NETHERLANDS' },\r\n { placeId: 790, cityName: 'LEEUWARDEN', countryName: 'NETHERLANDS' },\r\n { placeId: 789, cityName: 'LELYSTAD', countryName: 'NETHERLANDS' },\r\n { placeId: 780, cityName: 'MAASTRICHT', countryName: 'NETHERLANDS' },\r\n { placeId: 791, cityName: 'MIDDELBURG', countryName: 'NETHERLANDS' },\r\n { placeId: 792, cityName: 'ROTTERDAM', countryName: 'NETHERLANDS' },\r\n { placeId: 793, cityName: 'SOESTERBERG', countryName: 'NETHERLANDS' },\r\n { placeId: 797, cityName: 'TEXEL', countryName: 'NETHERLANDS' },\r\n { placeId: 8873, cityName: 'VOLKEL', countryName: 'NETHERLANDS' },\r\n { placeId: 779, cityName: 'WEERT', countryName: 'NETHERLANDS' },\r\n { placeId: 798, cityName: 'WOENSDRECHT', countryName: 'NETHERLANDS' },\r\n { placeId: 3723, cityName: 'NEVIS I.', countryName: 'NEVIS IS' },\r\n { placeId: 4225, cityName: 'ART I.', countryName: 'NEW CALEDONIA' },\r\n { placeId: 5157, cityName: 'DES PINS IS.', countryName: 'NEW CALEDONIA' },\r\n { placeId: 5886, cityName: 'HOUAILOU', countryName: 'NEW CALEDONIA' },\r\n { placeId: 6315, cityName: 'KONE', countryName: 'NEW CALEDONIA' },\r\n { placeId: 6328, cityName: 'KOUMAC', countryName: 'NEW CALEDONIA' },\r\n { placeId: 6549, cityName: 'LIFOU', countryName: 'NEW CALEDONIA' },\r\n { placeId: 6802, cityName: 'MARE', countryName: 'NEW CALEDONIA' },\r\n { placeId: 2336, cityName: 'NOUMEA', countryName: 'NEW CALEDONIA' },\r\n { placeId: 7445, cityName: 'OUVEA', countryName: 'NEW CALEDONIA' },\r\n { placeId: 13430, cityName: 'TIGA', countryName: 'NEW CALEDONIA' },\r\n { placeId: 8690, cityName: 'TOUHO', countryName: 'NEW CALEDONIA' },\r\n { placeId: 4070, cityName: 'ALEXANDRA', countryName: 'NEW ZEALAND' },\r\n { placeId: 4236, cityName: 'ASHBURTON', countryName: 'NEW ZEALAND' },\r\n { placeId: 2337, cityName: 'AUCKLAND', countryName: 'NEW ZEALAND' },\r\n { placeId: 4311, cityName: 'BALCLUTHA', countryName: 'NEW ZEALAND' },\r\n { placeId: 4505, cityName: 'BLENHEIM', countryName: 'NEW ZEALAND' },\r\n { placeId: 4796, cityName: 'CHATHAM IS', countryName: 'NEW ZEALAND' },\r\n { placeId: 2338, cityName: 'CHRISTCHURCH', countryName: 'NEW ZEALAND' },\r\n { placeId: 4964, cityName: 'COROMANDEL', countryName: 'NEW ZEALAND' },\r\n { placeId: 10377, cityName: 'CROMWELL', countryName: 'NEW ZEALAND' },\r\n { placeId: 5060, cityName: 'DANNEVIRKE', countryName: 'NEW ZEALAND' },\r\n { placeId: 5065, cityName: 'DARGAVILLE', countryName: 'NEW ZEALAND' },\r\n { placeId: 5221, cityName: 'DUNEDIN', countryName: 'NEW ZEALAND' },\r\n { placeId: 5385, cityName: 'FEILDING', countryName: 'NEW ZEALAND' },\r\n { placeId: 5445, cityName: 'FOXPINE', countryName: 'NEW ZEALAND' },\r\n { placeId: 5568, cityName: 'GISBORNE', countryName: 'NEW ZEALAND' },\r\n { placeId: 5581, cityName: 'GLENORCHY', countryName: 'NEW ZEALAND' },\r\n { placeId: 5583, cityName: 'GLENTANNER', countryName: 'NEW ZEALAND' },\r\n { placeId: 5138, cityName: 'GORE', countryName: 'NEW ZEALAND' },\r\n { placeId: 5692, cityName: 'GREAT BARRIER', countryName: 'NEW ZEALAND' },\r\n { placeId: 5712, cityName: 'GREYMOUTH', countryName: 'NEW ZEALAND' },\r\n { placeId: 5783, cityName: 'HAMILTON', countryName: 'NEW ZEALAND' },\r\n { placeId: 5793, cityName: 'HANMER SPRINGS', countryName: 'NEW ZEALAND' },\r\n { placeId: 5612, cityName: 'HASTINGS', countryName: 'NEW ZEALAND' },\r\n { placeId: 5623, cityName: 'HAWERA', countryName: 'NEW ZEALAND' },\r\n { placeId: 5859, cityName: 'HOKITIKA', countryName: 'NEW ZEALAND' },\r\n { placeId: 5978, cityName: 'INVERCARGILL', countryName: 'NEW ZEALAND' },\r\n { placeId: 6104, cityName: 'KAIKOHE', countryName: 'NEW ZEALAND' },\r\n { placeId: 6105, cityName: 'KAIKOURA', countryName: 'NEW ZEALAND' },\r\n { placeId: 6107, cityName: 'KAIPARA FLATS', countryName: 'NEW ZEALAND' },\r\n { placeId: 6109, cityName: 'KAITAIA', countryName: 'NEW ZEALAND' },\r\n { placeId: 6137, cityName: 'KARAMEA', countryName: 'NEW ZEALAND' },\r\n { placeId: 5042, cityName: 'KERIKERI', countryName: 'NEW ZEALAND' },\r\n { placeId: 6412, cityName: 'LAKE STATION/NELSON LAKES', countryName: 'NEW ZEALAND' },\r\n { placeId: 6750, cityName: 'MANAPOURI', countryName: 'NEW ZEALAND' },\r\n { placeId: 6859, cityName: 'MASTERTON', countryName: 'NEW ZEALAND' },\r\n { placeId: 6865, cityName: 'MATAMATA', countryName: 'NEW ZEALAND' },\r\n { placeId: 6867, cityName: 'MATARANGI', countryName: 'NEW ZEALAND' },\r\n { placeId: 6877, cityName: 'MAUI A', countryName: 'NEW ZEALAND' },\r\n { placeId: 6878, cityName: 'MAUI B', countryName: 'NEW ZEALAND' },\r\n { placeId: 6943, cityName: 'MERCER', countryName: 'NEW ZEALAND' },\r\n { placeId: 6974, cityName: 'MILFORD SOUND', countryName: 'NEW ZEALAND' },\r\n { placeId: 7087, cityName: 'MOTUEKA', countryName: 'NEW ZEALAND' },\r\n { placeId: 5661, cityName: 'MOUNT COOK', countryName: 'NEW ZEALAND' },\r\n { placeId: 7135, cityName: 'MURCHISON', countryName: 'NEW ZEALAND' },\r\n { placeId: 7187, cityName: 'NAPIER', countryName: 'NEW ZEALAND' },\r\n { placeId: 7219, cityName: 'NELSON', countryName: 'NEW ZEALAND' },\r\n { placeId: 6303, cityName: 'NEW PLYMOUTH', countryName: 'NEW ZEALAND' },\r\n { placeId: 7287, cityName: 'NORTH SHORE', countryName: 'NEW ZEALAND' },\r\n { placeId: 7338, cityName: 'OAMARU', countryName: 'NEW ZEALAND' },\r\n { placeId: 7339, cityName: 'OAONUI', countryName: 'NEW ZEALAND' },\r\n { placeId: 7367, cityName: 'OHAKEA', countryName: 'NEW ZEALAND' },\r\n { placeId: 7293, cityName: 'OKIWI', countryName: 'NEW ZEALAND' },\r\n { placeId: 7386, cityName: 'OMARAMA', countryName: 'NEW ZEALAND' },\r\n { placeId: 7398, cityName: 'OPOTIKI', countryName: 'NEW ZEALAND' },\r\n { placeId: 7483, cityName: 'PALMERSTON NORTH', countryName: 'NEW ZEALAND' },\r\n { placeId: 12435, cityName: 'PARAKAI', countryName: 'NEW ZEALAND' },\r\n { placeId: 7304, cityName: 'PARAPARAUMU', countryName: 'NEW ZEALAND' },\r\n { placeId: 7580, cityName: 'PAUANUI BEACH', countryName: 'NEW ZEALAND' },\r\n { placeId: 7796, cityName: 'PUKAKI', countryName: 'NEW ZEALAND' },\r\n { placeId: 2870, cityName: 'QUEENSTOWN', countryName: 'NEW ZEALAND' },\r\n { placeId: 7506, cityName: 'RAGLAN', countryName: 'NEW ZEALAND' },\r\n { placeId: 7851, cityName: 'RANGIORA', countryName: 'NEW ZEALAND' },\r\n { placeId: 7967, cityName: 'ROTORUA', countryName: 'NEW ZEALAND' },\r\n { placeId: 8393, cityName: 'SPRINGHILL', countryName: 'NEW ZEALAND' },\r\n { placeId: 8492, cityName: 'STRATFORD', countryName: 'NEW ZEALAND' },\r\n { placeId: 8549, cityName: 'TAIERI', countryName: 'NEW ZEALAND' },\r\n { placeId: 8556, cityName: 'TAKAKA', countryName: 'NEW ZEALAND' },\r\n { placeId: 8591, cityName: 'TAUMARUNUI', countryName: 'NEW ZEALAND' },\r\n { placeId: 8593, cityName: 'TAUPO', countryName: 'NEW ZEALAND' },\r\n { placeId: 8594, cityName: 'TAURANGA', countryName: 'NEW ZEALAND' },\r\n { placeId: 8600, cityName: 'TE ANAU', countryName: 'NEW ZEALAND' },\r\n { placeId: 8601, cityName: 'TE KUITI', countryName: 'NEW ZEALAND' },\r\n { placeId: 8634, cityName: 'THAMES', countryName: 'NEW ZEALAND' },\r\n { placeId: 8666, cityName: 'TIMARU', countryName: 'NEW ZEALAND' },\r\n { placeId: 8348, cityName: 'TOKOROA', countryName: 'NEW ZEALAND' },\r\n { placeId: 8751, cityName: 'TURANGI', countryName: 'NEW ZEALAND' },\r\n { placeId: 8892, cityName: 'WAIHI BEACH', countryName: 'NEW ZEALAND' },\r\n { placeId: 8893, cityName: 'WAIMATE', countryName: 'NEW ZEALAND' },\r\n { placeId: 8896, cityName: 'WAIOURU', countryName: 'NEW ZEALAND' },\r\n { placeId: 8897, cityName: 'WAIPUKURAU', countryName: 'NEW ZEALAND' },\r\n { placeId: 8898, cityName: 'WAIROA', countryName: 'NEW ZEALAND' },\r\n { placeId: 8909, cityName: 'WANAKA', countryName: 'NEW ZEALAND' },\r\n { placeId: 8911, cityName: 'WANGANUI', countryName: 'NEW ZEALAND' },\r\n { placeId: 2339, cityName: 'WELLINGTON', countryName: 'NEW ZEALAND' },\r\n { placeId: 8979, cityName: 'WEST MELTON', countryName: 'NEW ZEALAND' },\r\n { placeId: 8993, cityName: 'WESTPORT', countryName: 'NEW ZEALAND' },\r\n { placeId: 8184, cityName: 'WHAKATANE', countryName: 'NEW ZEALAND' },\r\n { placeId: 8994, cityName: 'WHANGAREI', countryName: 'NEW ZEALAND' },\r\n { placeId: 9002, cityName: 'WHITIANGA', countryName: 'NEW ZEALAND' },\r\n // { placeId: 9449, cityName: '', countryName: 'NICARAGUA' },\r\n { placeId: 4511, cityName: 'BLUEFIELDS', countryName: 'NICARAGUA' },\r\n { placeId: 4533, cityName: 'BONANZA', countryName: 'NICARAGUA' },\r\n { placeId: 4834, cityName: 'CHINANDEGA', countryName: 'NICARAGUA' },\r\n { placeId: 4960, cityName: 'CORN ISLAND', countryName: 'NICARAGUA' },\r\n { placeId: 6527, cityName: 'LEON', countryName: 'NICARAGUA' },\r\n { placeId: 6624, cityName: 'LOS BRASILES', countryName: 'NICARAGUA' },\r\n { placeId: 2311, cityName: 'MANAGUA', countryName: 'NICARAGUA' },\r\n { placeId: 7044, cityName: 'MONTELIMAR', countryName: 'NICARAGUA' },\r\n { placeId: 6496, cityName: 'N. GUINEA', countryName: 'NICARAGUA' },\r\n { placeId: 7544, cityName: 'PANCHITO', countryName: 'NICARAGUA' },\r\n { placeId: 7784, cityName: 'PUERTO CABEZAS', countryName: 'NICARAGUA' },\r\n { placeId: 8034, cityName: 'RIO SAN JUAN', countryName: 'NICARAGUA' },\r\n { placeId: 7964, cityName: 'ROSITA', countryName: 'NICARAGUA' },\r\n { placeId: 8282, cityName: 'SIUNA', countryName: 'NICARAGUA' },\r\n { placeId: 8931, cityName: 'WASPAN', countryName: 'NICARAGUA' },\r\n { placeId: 152, cityName: 'AGADES', countryName: 'NIGER' },\r\n { placeId: 5171, cityName: 'DIFFA', countryName: 'NIGER' },\r\n { placeId: 5183, cityName: 'DIRKOU', countryName: 'NIGER' },\r\n { placeId: 5190, cityName: 'DOGONDOUTCHI', countryName: 'NIGER' },\r\n { placeId: 5202, cityName: 'DOSSO', countryName: 'NIGER' },\r\n { placeId: 5541, cityName: 'GAYA', countryName: 'NIGER' },\r\n { placeId: 5605, cityName: 'GOURE', countryName: 'NIGER' },\r\n { placeId: 5931, cityName: 'IFEROUANE', countryName: 'NIGER' },\r\n { placeId: 6381, cityName: 'LA TAPOA', countryName: 'NIGER' },\r\n { placeId: 6717, cityName: 'MAINE-SOROA', countryName: 'NIGER' },\r\n { placeId: 6795, cityName: 'MARADI', countryName: 'NIGER' },\r\n { placeId: 151, cityName: 'NIAMEY', countryName: 'NIGER' },\r\n { placeId: 7302, cityName: 'OUALLAM', countryName: 'NIGER' },\r\n { placeId: 8547, cityName: 'TAHOUA', countryName: 'NIGER' },\r\n { placeId: 8628, cityName: 'TESSAOUA', countryName: 'NIGER' },\r\n { placeId: 8664, cityName: 'TILLABERY', countryName: 'NIGER' },\r\n { placeId: 153, cityName: 'ZINDER', countryName: 'NIGER' },\r\n { placeId: 145, cityName: 'ABUJA', countryName: 'NIGERIA' },\r\n { placeId: 4041, cityName: 'AKURE', countryName: 'NIGERIA' },\r\n {\r\n placeId: 13907, cityName: 'ASABA', state: 'DELTA STATE', countryName: 'NIGERIA',\r\n },\r\n { placeId: 4426, cityName: 'BENIN', countryName: 'NIGERIA' },\r\n { placeId: 14299, cityName: 'Birmin Kebbi', countryName: 'NIGERIA' },\r\n { placeId: 146, cityName: 'CALABAR', countryName: 'NIGERIA' },\r\n { placeId: 5328, cityName: 'ENUGU', countryName: 'NIGERIA' },\r\n { placeId: 10643, cityName: 'ESCRAVOS', countryName: 'NIGERIA' },\r\n { placeId: 14153, cityName: 'FINIMA', countryName: 'NIGERIA' },\r\n { placeId: 9187, cityName: 'GOMBE', countryName: 'NIGERIA' },\r\n { placeId: 5920, cityName: 'IBADAN', countryName: 'NIGERIA' },\r\n { placeId: 147, cityName: 'ILORIN', countryName: 'NIGERIA' },\r\n { placeId: 6081, cityName: 'JOS', countryName: 'NIGERIA' },\r\n { placeId: 6099, cityName: 'KADUNA', countryName: 'NIGERIA' },\r\n { placeId: 148, cityName: 'KANO', countryName: 'NIGERIA' },\r\n { placeId: 6166, cityName: 'KATSINA', countryName: 'NIGERIA' },\r\n { placeId: 149, cityName: 'LAGOS', countryName: 'NIGERIA' },\r\n { placeId: 2864, cityName: 'MAIDUGURI', countryName: 'NIGERIA' },\r\n { placeId: 9167, cityName: 'MARKUDI', countryName: 'NIGERIA' },\r\n { placeId: 6989, cityName: 'MINNA', countryName: 'NIGERIA' },\r\n { placeId: 9163, cityName: 'OSUBI', countryName: 'NIGERIA' },\r\n { placeId: 7452, cityName: 'OWERRI', countryName: 'NIGERIA' },\r\n { placeId: 9237, cityName: 'PORT HARCOURT MILITARY', countryName: 'NIGERIA' },\r\n { placeId: 150, cityName: 'PORT HARCOURT', countryName: 'NIGERIA' },\r\n { placeId: 8306, cityName: 'SOKOTO', countryName: 'NIGERIA' },\r\n { placeId: 9188, cityName: 'UYO', countryName: 'NIGERIA' },\r\n { placeId: 9089, cityName: 'YOLA', countryName: 'NIGERIA' },\r\n { placeId: 9110, cityName: 'ZARIA', countryName: 'NIGERIA' },\r\n { placeId: 2331, cityName: 'NIUE ISLAND', countryName: 'NIUE' },\r\n { placeId: 12856, cityName: 'ROTA I', countryName: 'NORTHERN MARIANA ISLANDS' },\r\n { placeId: 12892, cityName: 'SAIPAN I', countryName: 'NORTHERN MARIANA ISLANDS' },\r\n { placeId: 13441, cityName: 'TINIAN I', countryName: 'NORTHERN MARIANA ISLANDS' },\r\n { placeId: 859, cityName: 'ALESUND', countryName: 'NORWAY' },\r\n { placeId: 862, cityName: 'ALTA', countryName: 'NORWAY' },\r\n { placeId: 860, cityName: 'ANDENES', countryName: 'NORWAY' },\r\n { placeId: 872, cityName: 'BARDUFOSS', countryName: 'NORWAY' },\r\n { placeId: 868, cityName: 'BATSFJORD', countryName: 'NORWAY' },\r\n { placeId: 867, cityName: 'BERGEN', countryName: 'NORWAY' },\r\n { placeId: 869, cityName: 'BERLEVAG', countryName: 'NORWAY' },\r\n { placeId: 866, cityName: 'BODO', countryName: 'NORWAY' },\r\n { placeId: 864, cityName: 'BOMOEN', countryName: 'NORWAY' },\r\n { placeId: 865, cityName: 'BRONNOYSUND', countryName: 'NORWAY' },\r\n { placeId: 5192, cityName: 'DOKKA', countryName: 'NORWAY' },\r\n { placeId: 873, cityName: 'EGGEMOEN', countryName: 'NORWAY' },\r\n { placeId: 885, cityName: 'ELVERUM', countryName: 'NORWAY' },\r\n { placeId: 10626, cityName: 'ENGELOY', countryName: 'NORWAY' },\r\n { placeId: 876, cityName: 'FAGERNES', countryName: 'NORWAY' },\r\n { placeId: 892, cityName: 'FARSUND', countryName: 'NORWAY' },\r\n { placeId: 877, cityName: 'FLORO', countryName: 'NORWAY' },\r\n { placeId: 880, cityName: 'FOLLDAL', countryName: 'NORWAY' },\r\n { placeId: 863, cityName: 'FORDE', countryName: 'NORWAY' },\r\n { placeId: 875, cityName: 'FROYA', countryName: 'NORWAY' },\r\n { placeId: 5127, cityName: 'FRYA', countryName: 'NORWAY' },\r\n { placeId: 878, cityName: 'FYRESDAL', countryName: 'NORWAY' },\r\n { placeId: 871, cityName: 'GEILO', countryName: 'NORWAY' },\r\n { placeId: 5741, cityName: 'GULLKNAPP', countryName: 'NORWAY' },\r\n { placeId: 881, cityName: 'HAMAR', countryName: 'NORWAY' },\r\n { placeId: 883, cityName: 'HAMMERFEST', countryName: 'NORWAY' },\r\n { placeId: 874, cityName: 'HARSTAD-NARVIK', countryName: 'NORWAY' },\r\n { placeId: 884, cityName: 'HASVIK', countryName: 'NORWAY' },\r\n { placeId: 5619, cityName: 'HATTFJELLDAL', countryName: 'NORWAY' },\r\n { placeId: 882, cityName: 'HAUGESUND', countryName: 'NORWAY' },\r\n { placeId: 886, cityName: 'HOKKSUND', countryName: 'NORWAY' },\r\n { placeId: 887, cityName: 'HONNINGSVAG', countryName: 'NORWAY' },\r\n { placeId: 888, cityName: 'JARLSBERG', countryName: 'NORWAY' },\r\n { placeId: 891, cityName: 'KIRKENES', countryName: 'NORWAY' },\r\n { placeId: 890, cityName: 'KJELLER', countryName: 'NORWAY' },\r\n { placeId: 6278, cityName: 'KLANTEN', countryName: 'NORWAY' },\r\n { placeId: 870, cityName: 'KRISTIANSAND', countryName: 'NORWAY' },\r\n { placeId: 889, cityName: 'KRISTIANSUND', countryName: 'NORWAY' },\r\n { placeId: 896, cityName: 'LAKSELV', countryName: 'NORWAY' },\r\n { placeId: 893, cityName: 'LEKNES', countryName: 'NORWAY' },\r\n { placeId: 5652, cityName: 'LUNDE', countryName: 'NORWAY' },\r\n { placeId: 6921, cityName: 'MEHAMN', countryName: 'NORWAY' },\r\n { placeId: 902, cityName: 'MO I RANA', countryName: 'NORWAY' },\r\n { placeId: 894, cityName: 'MOLDE', countryName: 'NORWAY' },\r\n { placeId: 895, cityName: 'MOSJOEN', countryName: 'NORWAY' },\r\n { placeId: 906, cityName: 'MOSS', countryName: 'NORWAY' },\r\n { placeId: 898, cityName: 'NAMSOS', countryName: 'NORWAY' },\r\n { placeId: 897, cityName: 'NARVIK', countryName: 'NORWAY' },\r\n { placeId: 899, cityName: 'NOTODDEN', countryName: 'NORWAY' },\r\n { placeId: 861, cityName: 'NY ALESUND', countryName: 'NORWAY' },\r\n { placeId: 7399, cityName: 'OPPDAL', countryName: 'NORWAY' },\r\n { placeId: 900, cityName: 'ORLAND', countryName: 'NORWAY' },\r\n { placeId: 901, cityName: 'ORSTA-VOLDA', countryName: 'NORWAY' },\r\n { placeId: 7429, cityName: 'OS', countryName: 'NORWAY' },\r\n { placeId: 879, cityName: 'OSLO', countryName: 'NORWAY' },\r\n { placeId: 7843, cityName: 'RAKKESTAD', countryName: 'NORWAY' },\r\n { placeId: 7891, cityName: 'REINSVOLL', countryName: 'NORWAY' },\r\n { placeId: 7950, cityName: 'ROGNAN', countryName: 'NORWAY' },\r\n { placeId: 904, cityName: 'ROROS', countryName: 'NORWAY' },\r\n { placeId: 903, cityName: 'RORVIK', countryName: 'NORWAY' },\r\n { placeId: 905, cityName: 'ROST', countryName: 'NORWAY' },\r\n { placeId: 909, cityName: 'SANDANE', countryName: 'NORWAY' },\r\n { placeId: 919, cityName: 'SANDEFJORD', countryName: 'NORWAY' },\r\n { placeId: 917, cityName: 'SANDNESSJOEN', countryName: 'NORWAY' },\r\n { placeId: 913, cityName: 'SKIEN', countryName: 'NORWAY' },\r\n { placeId: 910, cityName: 'SOGNDAL', countryName: 'NORWAY' },\r\n { placeId: 915, cityName: 'SORKJOSEN', countryName: 'NORWAY' },\r\n { placeId: 922, cityName: 'STAVANGER', countryName: 'NORWAY' },\r\n { placeId: 912, cityName: 'STOKMARKNES', countryName: 'NORWAY' },\r\n { placeId: 914, cityName: 'STORD', countryName: 'NORWAY' },\r\n { placeId: 8518, cityName: 'SUNNDAL', countryName: 'NORWAY' },\r\n { placeId: 908, cityName: 'SVALBARD', countryName: 'NORWAY' },\r\n { placeId: 907, cityName: 'SVEA', countryName: 'NORWAY' },\r\n { placeId: 911, cityName: 'SVOLVAER', countryName: 'NORWAY' },\r\n { placeId: 918, cityName: 'TROMSO', countryName: 'NORWAY' },\r\n { placeId: 920, cityName: 'TRONDHEIM', countryName: 'NORWAY' },\r\n { placeId: 8715, cityName: 'TRYSIL', countryName: 'NORWAY' },\r\n { placeId: 8767, cityName: 'TYNSET', countryName: 'NORWAY' },\r\n { placeId: 921, cityName: 'VADSO', countryName: 'NORWAY' },\r\n { placeId: 8168, cityName: 'VALLE', countryName: 'NORWAY' },\r\n { placeId: 916, cityName: 'VARDO', countryName: 'NORWAY' },\r\n { placeId: 9494, cityName: 'ADAM', countryName: 'OMAN' },\r\n { placeId: 5351, cityName: 'FAHUD', countryName: 'OMAN' },\r\n { placeId: 5400, cityName: 'FIRQ', countryName: 'OMAN' },\r\n { placeId: 5771, cityName: 'HAIMA', countryName: 'OMAN' },\r\n { placeId: 6021, cityName: 'IZKI', countryName: 'OMAN' },\r\n { placeId: 6210, cityName: 'KHASAB', countryName: 'OMAN' },\r\n { placeId: 6827, cityName: 'MARMUL', countryName: 'OMAN' },\r\n { placeId: 6852, cityName: 'MASIRAH', countryName: 'OMAN' },\r\n { placeId: 12117, cityName: 'MUKHAIZNA', countryName: 'OMAN' },\r\n { placeId: 2373, cityName: 'MUSCAT', countryName: 'OMAN' },\r\n { placeId: 5552, cityName: 'QARN ALAM', countryName: 'OMAN' },\r\n { placeId: 2374, cityName: 'SALALAH', countryName: 'OMAN' },\r\n { placeId: 8653, cityName: 'THUMRAIT', countryName: 'OMAN' },\r\n { placeId: 4299, cityName: 'BAHAWALPUR', countryName: 'PAKISTAN' },\r\n { placeId: 4336, cityName: 'BANNU', countryName: 'PAKISTAN' },\r\n { placeId: 4845, cityName: 'CHITRAL', countryName: 'PAKISTAN' },\r\n { placeId: 5052, cityName: 'DALBANDIN', countryName: 'PAKISTAN' },\r\n { placeId: 5155, cityName: 'DERA GHAZI KHAN', countryName: 'PAKISTAN' },\r\n { placeId: 5156, cityName: 'DERA ISMAIL KHAN', countryName: 'PAKISTAN' },\r\n { placeId: 5359, cityName: 'FAISALABAD', countryName: 'PAKISTAN' },\r\n { placeId: 5563, cityName: 'GILGIT', countryName: 'PAKISTAN' },\r\n { placeId: 5752, cityName: 'GWADAR', countryName: 'PAKISTAN' },\r\n { placeId: 5917, cityName: 'HYDERABAD', countryName: 'PAKISTAN' },\r\n { placeId: 6007, cityName: 'ISLAMABAD', countryName: 'PAKISTAN' },\r\n { placeId: 6066, cityName: 'JIWANI', countryName: 'PAKISTAN' },\r\n { placeId: 2375, cityName: 'KARACHI', countryName: 'PAKISTAN' },\r\n { placeId: 6213, cityName: 'KHUZDAR', countryName: 'PAKISTAN' },\r\n { placeId: 2376, cityName: 'LAHORE', countryName: 'PAKISTAN' },\r\n { placeId: 7002, cityName: 'MOENJODARO', countryName: 'PAKISTAN' },\r\n { placeId: 7129, cityName: 'MULTAN', countryName: 'PAKISTAN' },\r\n { placeId: 7149, cityName: 'MUZAFFARABAD', countryName: 'PAKISTAN' },\r\n { placeId: 2377, cityName: 'NAWABSHAH', countryName: 'PAKISTAN' },\r\n { placeId: 7419, cityName: 'ORMARA', countryName: 'PAKISTAN' },\r\n { placeId: 7548, cityName: 'PANJGUR', countryName: 'PAKISTAN' },\r\n { placeId: 7551, cityName: 'PARACHINAR', countryName: 'PAKISTAN' },\r\n { placeId: 7570, cityName: 'PASNI', countryName: 'PAKISTAN' },\r\n { placeId: 2378, cityName: 'PESHAWAR', countryName: 'PAKISTAN' },\r\n { placeId: 7828, cityName: 'QUETTA', countryName: 'PAKISTAN' },\r\n { placeId: 7507, cityName: 'RAHIM YAR KHAN', countryName: 'PAKISTAN' },\r\n { placeId: 7869, cityName: 'RAWALAKOT', countryName: 'PAKISTAN' },\r\n { placeId: 7513, cityName: 'SAIDU SHARIF', countryName: 'PAKISTAN' },\r\n { placeId: 8245, cityName: 'SIALKOT', countryName: 'PAKISTAN' },\r\n { placeId: 8285, cityName: 'SKARDU', countryName: 'PAKISTAN' },\r\n { placeId: 8167, cityName: 'SUKKUR', countryName: 'PAKISTAN' },\r\n { placeId: 8752, cityName: 'TURBAT', countryName: 'PAKISTAN' },\r\n { placeId: 9121, cityName: 'ZHOB', countryName: 'PAKISTAN' },\r\n { placeId: 2410, cityName: 'BABELTHUAP I', countryName: 'PALAU' },\r\n { placeId: 4310, cityName: 'BALBOA', countryName: 'PANAMA' },\r\n { placeId: 4515, cityName: 'BOCAS DEL TORO', countryName: 'PANAMA' },\r\n { placeId: 3994, cityName: 'CHANGUINOLA', countryName: 'PANAMA' },\r\n { placeId: 4846, cityName: 'CHITRE', countryName: 'PANAMA' },\r\n { placeId: 4928, cityName: 'COLON', countryName: 'PANAMA' },\r\n { placeId: 2312, cityName: 'DAVID', countryName: 'PANAMA' },\r\n { placeId: 6044, cityName: 'JAQUE', countryName: 'PANAMA' },\r\n { placeId: 2313, cityName: 'PANAMA CITY', countryName: 'PANAMA' },\r\n { placeId: 7919, cityName: 'RIO HATO', countryName: 'PANAMA' },\r\n { placeId: 8107, cityName: 'SANTIAGO', countryName: 'PANAMA' },\r\n { placeId: 8912, cityName: 'WANNUKANDI', countryName: 'PANAMA' },\r\n { placeId: 9508, cityName: 'AIOME', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 4, cityName: 'ALOTAU, PNG', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 9700, cityName: 'BALIMO', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 4625, cityName: 'BUKA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 9975, cityName: 'BULOLO', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 8, cityName: 'BWAGAOIA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 4831, cityName: 'CHIMBU', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 3, cityName: 'DARU', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 10711, cityName: 'FINSCHHAFEN', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 10864, cityName: 'GARAINA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 5567, cityName: 'GIRUA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 10914, cityName: 'GOBE', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 5142, cityName: 'GOROKA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 10983, cityName: 'GREEN RIVER', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 11030, cityName: 'GUSAP', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 5882, cityName: 'HOSKINS', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 11380, cityName: 'KANDRIAN', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 11391, cityName: 'KARIMUI', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 6, cityName: 'KAVIENG', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 11411, cityName: 'KAWITO', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 6204, cityName: 'KEREMA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 6225, cityName: 'KIKORI', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 6256, cityName: 'KIRIWINA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 5, cityName: 'KIUNGA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 11515, cityName: 'KOKODA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 9, cityName: 'LAE', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 6550, cityName: 'LIHIR, PAPA NEW GUINEA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 6693, cityName: 'MADANG', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 6936, cityName: 'MENDI', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 11952, cityName: 'MENYAMYA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 7, cityName: 'MOMOTE', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 7072, cityName: 'MORO', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 6297, cityName: 'MOUNT HAGEN', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 10, cityName: 'PORT MORESBY', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 11, cityName: 'RABAUL', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 13083, cityName: 'SIMBERI', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 8504, cityName: 'SULE', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 8534, cityName: 'TABUBIL', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 13339, cityName: 'TADJI', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 13364, cityName: 'TAPINI', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 8586, cityName: 'TARI', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 13383, cityName: 'TELEFOMIN', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 12, cityName: 'VANIMO', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 13655, cityName: 'WANIGELA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 8914, cityName: 'WAPENAMANDA', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 8180, cityName: 'WEWAK', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 9041, cityName: 'WITU', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 13810, cityName: 'WOITAPE', countryName: 'PAPUA NEW GUINEA' },\r\n { placeId: 2510, cityName: 'ASUNCION', countryName: 'PARAGUAY' },\r\n { placeId: 9792, cityName: 'BELLA VISTA NORTE', countryName: 'PARAGUAY' },\r\n { placeId: 2511, cityName: 'CIUDAD DEL ESTE', countryName: 'PARAGUAY' },\r\n { placeId: 4935, cityName: 'CONCEPCION', countryName: 'PARAGUAY' },\r\n { placeId: 5320, cityName: 'ENCARNACION', countryName: 'PARAGUAY' },\r\n { placeId: 5394, cityName: 'FILADELFIA', countryName: 'PARAGUAY' },\r\n { placeId: 10832, cityName: 'FUERTE OLIMPO', countryName: 'PARAGUAY' },\r\n { placeId: 5835, cityName: 'HERNANDARIAS', countryName: 'PARAGUAY' },\r\n { placeId: 6823, cityName: 'MARISCAL ESTIGARRIBIA', countryName: 'PARAGUAY' },\r\n { placeId: 7593, cityName: 'PEDRO JUAN CABALLERO', countryName: 'PARAGUAY' },\r\n { placeId: 8105, cityName: 'SANTA TERESA', countryName: 'PARAGUAY' },\r\n { placeId: 8856, cityName: 'VILLA HAYES', countryName: 'PARAGUAY' },\r\n { placeId: 4067, cityName: 'ALERTA', countryName: 'PERU' },\r\n { placeId: 4129, cityName: 'ANDAHUAYLAS', countryName: 'PERU' },\r\n { placeId: 4133, cityName: 'ANDOAS', countryName: 'PERU' },\r\n { placeId: 4159, cityName: 'ANTA HUARAZ', countryName: 'PERU' },\r\n { placeId: 2529, cityName: 'AREQUIPA', countryName: 'PERU' },\r\n { placeId: 4253, cityName: 'ATALAYA', countryName: 'PERU' },\r\n { placeId: 4262, cityName: 'ATICO', countryName: 'PERU' },\r\n { placeId: 3982, cityName: 'AYACUCHO', countryName: 'PERU' },\r\n { placeId: 4662, cityName: 'CABALLOCOCHA', countryName: 'PERU' },\r\n { placeId: 4675, cityName: 'CAJABAMBA', countryName: 'PERU' },\r\n { placeId: 4676, cityName: 'CAJAMARCA', countryName: 'PERU' },\r\n { placeId: 4783, cityName: 'CHACHAPOYAS', countryName: 'PERU' },\r\n { placeId: 2525, cityName: 'CHICLAYO', countryName: 'PERU' },\r\n { placeId: 4830, cityName: 'CHIMBOTE', countryName: 'PERU' },\r\n { placeId: 4847, cityName: 'CHIVAY', countryName: 'PERU' },\r\n { placeId: 10230, cityName: 'CIRO ALEGRIA', countryName: 'PERU' },\r\n { placeId: 4927, cityName: 'COLLIQUE', countryName: 'PERU' },\r\n { placeId: 4930, cityName: 'COLONIA ANGAMOS', countryName: 'PERU' },\r\n { placeId: 2534, cityName: 'CUZCO', countryName: 'PERU' },\r\n { placeId: 10852, cityName: 'GALILEA', countryName: 'PERU' },\r\n { placeId: 11018, cityName: 'GUEPPI', countryName: 'PERU' },\r\n { placeId: 11203, cityName: 'HUAMACHUCO', countryName: 'PERU' },\r\n { placeId: 5898, cityName: 'HUANCABAMBA', countryName: 'PERU' },\r\n { placeId: 5899, cityName: 'HUANUCO', countryName: 'PERU' },\r\n { placeId: 5950, cityName: 'ILO', countryName: 'PERU' },\r\n { placeId: 5960, cityName: 'INAPARI', countryName: 'PERU' },\r\n { placeId: 5977, cityName: 'INTUTO, PERU', countryName: 'PERU' },\r\n { placeId: 2528, cityName: 'IQUITOS', countryName: 'PERU' },\r\n { placeId: 5992, cityName: 'ISCOZASIN', countryName: 'PERU' },\r\n { placeId: 6033, cityName: 'JAEN', countryName: 'PERU' },\r\n { placeId: 6049, cityName: 'JAUJA', countryName: 'PERU' },\r\n { placeId: 6082, cityName: 'JUANJUI', countryName: 'PERU' },\r\n { placeId: 2527, cityName: 'JULIACA', countryName: 'PERU' },\r\n { placeId: 11629, cityName: 'LAS MALVINAS', countryName: 'PERU' },\r\n { placeId: 6528, cityName: 'LEON VELARDE', countryName: 'PERU' },\r\n { placeId: 2526, cityName: 'LIMA-CALLAO', countryName: 'PERU' },\r\n { placeId: 6557, cityName: 'LIMA', countryName: 'PERU' },\r\n { placeId: 6784, cityName: 'MANU', countryName: 'PERU' },\r\n { placeId: 7015, cityName: 'MOLLENDO', countryName: 'PERU' },\r\n { placeId: 7065, cityName: 'MOQUEGUA', countryName: 'PERU' },\r\n { placeId: 7202, cityName: 'NAZCA', countryName: 'PERU' },\r\n { placeId: 6510, cityName: 'NUEVO MUNDO', countryName: 'PERU' },\r\n { placeId: 7409, cityName: 'ORCOPAMPA', countryName: 'PERU' },\r\n { placeId: 7411, cityName: 'ORELLANA', countryName: 'PERU' },\r\n { placeId: 7446, cityName: 'OVENTENI', countryName: 'PERU' },\r\n { placeId: 7467, cityName: 'PACASMAYO', countryName: 'PERU' },\r\n { placeId: 7480, cityName: 'PALMAS DEL ESPINO', countryName: 'PERU' },\r\n { placeId: 7543, cityName: 'PAMPA HERMOSA', countryName: 'PERU' },\r\n { placeId: 7556, cityName: 'PARAMONGA', countryName: 'PERU' },\r\n { placeId: 7576, cityName: 'PATRIA', countryName: 'PERU' },\r\n { placeId: 2531, cityName: 'PISCO', countryName: 'PERU' },\r\n { placeId: 7667, cityName: 'PIURA', countryName: 'PERU' },\r\n { placeId: 7776, cityName: 'PUCALLPA', countryName: 'PERU' },\r\n { placeId: 7782, cityName: 'PUERTO BREU', countryName: 'PERU' },\r\n { placeId: 7786, cityName: 'PUERTO ESPERANZA', countryName: 'PERU' },\r\n { placeId: 7790, cityName: 'PUERTO MALDONADO', countryName: 'PERU' },\r\n { placeId: 7791, cityName: 'PUERTO OCOPA', countryName: 'PERU' },\r\n { placeId: 7833, cityName: 'QUINCEMIL', countryName: 'PERU' },\r\n { placeId: 7899, cityName: 'REQUENA', countryName: 'PERU' },\r\n { placeId: 7922, cityName: 'RIOJA', countryName: 'PERU' },\r\n { placeId: 7946, cityName: 'RODRIGUEZ DE MENDOZA', countryName: 'PERU' },\r\n { placeId: 8053, cityName: 'SAN JUAN DE MARCONA', countryName: 'PERU' },\r\n { placeId: 8062, cityName: 'SAN RAFAEL', countryName: 'PERU' },\r\n { placeId: 8063, cityName: 'SAN RAMON', countryName: 'PERU' },\r\n { placeId: 8190, cityName: 'SEPAHUA', countryName: 'PERU' },\r\n { placeId: 2532, cityName: 'TACNA', countryName: 'PERU' },\r\n { placeId: 2533, cityName: 'TALARA', countryName: 'PERU' },\r\n { placeId: 8574, cityName: 'TANANTA', countryName: 'PERU' },\r\n { placeId: 8584, cityName: 'TARAPOTO', countryName: 'PERU' },\r\n { placeId: 13390, cityName: 'TENIENTE BERGERIE', countryName: 'PERU' },\r\n { placeId: 8621, cityName: 'TERESITA', countryName: 'PERU' },\r\n { placeId: 8670, cityName: 'TINGO MARIA', countryName: 'PERU' },\r\n { placeId: 8679, cityName: 'TOCACHE', countryName: 'PERU' },\r\n { placeId: 8691, cityName: 'TOURNAVISTA', countryName: 'PERU' },\r\n { placeId: 2530, cityName: 'TRUJILLO', countryName: 'PERU' },\r\n { placeId: 8743, cityName: 'TUMBES', countryName: 'PERU' },\r\n { placeId: 8771, cityName: 'UCHIZA', countryName: 'PERU' },\r\n { placeId: 8840, cityName: 'VICCO', countryName: 'PERU' },\r\n { placeId: 13612, cityName: 'VILCASHUAMAN', countryName: 'PERU' },\r\n { placeId: 9078, cityName: 'YAURI, PERU', countryName: 'PERU' },\r\n { placeId: 9099, cityName: 'YURIMAGUAS', countryName: 'PERU' },\r\n { placeId: 4060, cityName: 'ALABAT', countryName: 'PHILIPPINES' },\r\n { placeId: 2444, cityName: 'ANGELES CITY', countryName: 'PHILIPPINES' },\r\n { placeId: 4284, cityName: 'BACON', countryName: 'PHILIPPINES' },\r\n { placeId: 4292, cityName: 'BAGABAG', countryName: 'PHILIPPINES' },\r\n { placeId: 4298, cityName: 'BAGUIO', countryName: 'PHILIPPINES' },\r\n { placeId: 4313, cityName: 'BALER', countryName: 'PHILIPPINES' },\r\n { placeId: 4365, cityName: 'BASCO', countryName: 'PHILIPPINES' },\r\n { placeId: 4492, cityName: 'BISLIG', countryName: 'PHILIPPINES' },\r\n { placeId: 4536, cityName: 'BONGAO', countryName: 'PHILIPPINES' },\r\n { placeId: 4549, cityName: 'BORONGAN', countryName: 'PHILIPPINES' },\r\n { placeId: 4629, cityName: 'BULAN', countryName: 'PHILIPPINES' },\r\n { placeId: 4655, cityName: 'BUSUANGA', countryName: 'PHILIPPINES' },\r\n { placeId: 4661, cityName: 'BUTUAN', countryName: 'PHILIPPINES' },\r\n { placeId: 4672, cityName: 'CAGAYAN DE ORO', countryName: 'PHILIPPINES' },\r\n { placeId: 4673, cityName: 'CAGAYAN DE SULU', countryName: 'PHILIPPINES' },\r\n { placeId: 4679, cityName: 'CALAPAN', countryName: 'PHILIPPINES' },\r\n { placeId: 4680, cityName: 'CALBAYOG', countryName: 'PHILIPPINES' },\r\n { placeId: 4759, cityName: 'CATARMAN', countryName: 'PHILIPPINES' },\r\n { placeId: 4760, cityName: 'CATBALOGAN', countryName: 'PHILIPPINES' },\r\n { placeId: 4761, cityName: 'CAUAYAN', countryName: 'PHILIPPINES' },\r\n { placeId: 4972, cityName: 'COTABATO', countryName: 'PHILIPPINES' },\r\n { placeId: 5016, cityName: 'CUYO', countryName: 'PHILIPPINES' },\r\n { placeId: 5019, cityName: 'DAET', countryName: 'PHILIPPINES' },\r\n { placeId: 2447, cityName: 'DAVAO', countryName: 'PHILIPPINES' },\r\n { placeId: 5098, cityName: 'DEL CARMEN', countryName: 'PHILIPPINES' },\r\n { placeId: 5182, cityName: 'DIPOLOG', countryName: 'PHILIPPINES' },\r\n { placeId: 5217, cityName: 'DUMAGUETE', countryName: 'PHILIPPINES' },\r\n { placeId: 5417, cityName: 'FLORIDABLANCA', countryName: 'PHILIPPINES' },\r\n { placeId: 5434, cityName: 'FORT MAGSAYSAY APT', countryName: 'PHILIPPINES' },\r\n { placeId: 5537, cityName: 'GASAN', countryName: 'PHILIPPINES' },\r\n { placeId: 5547, cityName: 'GEN SANTOS', countryName: 'PHILIPPINES' },\r\n { placeId: 5549, cityName: 'GENERAL SANTOS CITY', countryName: 'PHILIPPINES' },\r\n { placeId: 5738, cityName: 'GUIUAN', countryName: 'PHILIPPINES' },\r\n { placeId: 5850, cityName: 'HILONGOS', countryName: 'PHILIPPINES' },\r\n { placeId: 5919, cityName: 'IBA', countryName: 'PHILIPPINES' },\r\n { placeId: 5948, cityName: 'ILIGAN CITY', countryName: 'PHILIPPINES' },\r\n { placeId: 5951, cityName: 'ILOILO', countryName: 'PHILIPPINES' },\r\n { placeId: 5985, cityName: 'IPIL', countryName: 'PHILIPPINES' },\r\n { placeId: 6011, cityName: 'ITBAYAT', countryName: 'PHILIPPINES' },\r\n { placeId: 6073, cityName: 'JOLO', countryName: 'PHILIPPINES' },\r\n { placeId: 6074, cityName: 'JOMALIG', countryName: 'PHILIPPINES' },\r\n { placeId: 6121, cityName: 'KALIBO', countryName: 'PHILIPPINES' },\r\n { placeId: 2445, cityName: 'LAOAG', countryName: 'PHILIPPINES' },\r\n { placeId: 2449, cityName: 'LAPU-LAPU', countryName: 'PHILIPPINES' },\r\n { placeId: 6521, cityName: 'LEGAZPI', countryName: 'PHILIPPINES' },\r\n { placeId: 6556, cityName: 'LILOY', countryName: 'PHILIPPINES' },\r\n { placeId: 6573, cityName: 'LINGAYEN', countryName: 'PHILIPPINES' },\r\n { placeId: 6574, cityName: 'LIPA', countryName: 'PHILIPPINES' },\r\n { placeId: 6640, cityName: 'LUBANG', countryName: 'PHILIPPINES' },\r\n { placeId: 6650, cityName: 'LUCENA', countryName: 'PHILIPPINES' },\r\n { placeId: 6687, cityName: 'MAASIN', countryName: 'PHILIPPINES' },\r\n { placeId: 6728, cityName: 'MALABANG', countryName: 'PHILIPPINES' },\r\n { placeId: 6735, cityName: 'MALAY', countryName: 'PHILIPPINES' },\r\n { placeId: 6736, cityName: 'MALAYBALAY', countryName: 'PHILIPPINES' },\r\n { placeId: 6741, cityName: 'MAMBAJAO', countryName: 'PHILIPPINES' },\r\n { placeId: 6742, cityName: 'MAMBURAO', countryName: 'PHILIPPINES' },\r\n { placeId: 2446, cityName: 'MANILA', countryName: 'PHILIPPINES' },\r\n { placeId: 6780, cityName: 'MANSALAY', countryName: 'PHILIPPINES' },\r\n { placeId: 6848, cityName: 'MASBATE', countryName: 'PHILIPPINES' },\r\n { placeId: 6870, cityName: 'MATI', countryName: 'PHILIPPINES' },\r\n { placeId: 7198, cityName: 'NAVAL', countryName: 'PHILIPPINES' },\r\n { placeId: 7420, cityName: 'ORMOC', countryName: 'PHILIPPINES' },\r\n { placeId: 7464, cityName: 'OZAMIS', countryName: 'PHILIPPINES' },\r\n { placeId: 7468, cityName: 'PAGADIAN', countryName: 'PHILIPPINES' },\r\n { placeId: 7478, cityName: 'PALANAN', countryName: 'PHILIPPINES' },\r\n { placeId: 7644, cityName: 'PILI', countryName: 'PHILIPPINES' },\r\n { placeId: 7672, cityName: 'PLARIDEL', countryName: 'PHILIPPINES' },\r\n { placeId: 7792, cityName: 'PUERTO PRINCESA', countryName: 'PHILIPPINES' },\r\n { placeId: 7959, cityName: 'ROSALES', countryName: 'PHILIPPINES' },\r\n { placeId: 7971, cityName: 'ROXAS', countryName: 'PHILIPPINES' },\r\n { placeId: 8041, cityName: 'SAN FERNANDO', countryName: 'PHILIPPINES' },\r\n { placeId: 8049, cityName: 'SAN JOSE DE BUENA VISTA', countryName: 'PHILIPPINES' },\r\n { placeId: 8048, cityName: 'SAN JOSE', countryName: 'PHILIPPINES' },\r\n { placeId: 8257, cityName: 'SILAY', countryName: 'PHILIPPINES' },\r\n { placeId: 8271, cityName: 'SIOCON', countryName: 'PHILIPPINES' },\r\n { placeId: 8275, cityName: 'SIQUIJOR', countryName: 'PHILIPPINES' },\r\n { placeId: 2443, cityName: 'SUBIC BAY', countryName: 'PHILIPPINES' },\r\n { placeId: 8522, cityName: 'SURALLAH', countryName: 'PHILIPPINES' },\r\n { placeId: 8524, cityName: 'SURIGAO', countryName: 'PHILIPPINES' },\r\n { placeId: 8530, cityName: 'TABLAS ISLAND', countryName: 'PHILIPPINES' },\r\n { placeId: 8539, cityName: 'TACLOBAN', countryName: 'PHILIPPINES' },\r\n { placeId: 8545, cityName: 'TAGBILARAN', countryName: 'PHILIPPINES' },\r\n { placeId: 8575, cityName: 'TANDAG', countryName: 'PHILIPPINES' },\r\n { placeId: 8735, cityName: 'TUGUEGARAO', countryName: 'PHILIPPINES' },\r\n { placeId: 8769, cityName: 'UBAY', countryName: 'PHILIPPINES' },\r\n { placeId: 8850, cityName: 'VIGAN', countryName: 'PHILIPPINES' },\r\n { placeId: 8865, cityName: 'VIRAC', countryName: 'PHILIPPINES' },\r\n { placeId: 2448, cityName: 'ZAMBOANGA', countryName: 'PHILIPPINES' },\r\n { placeId: 924, cityName: 'BIALYSTOK', countryName: 'POLAND' },\r\n { placeId: 4462, cityName: 'BIELSKO-BIALA', countryName: 'POLAND' },\r\n { placeId: 925, cityName: 'BYDGOSZCZ', countryName: 'POLAND' },\r\n { placeId: 4781, cityName: 'CEWICE', countryName: 'POLAND' },\r\n { placeId: 5067, cityName: 'DARLOWO', countryName: 'POLAND' },\r\n { placeId: 5085, cityName: 'DEBLIN', countryName: 'POLAND' },\r\n { placeId: 5300, cityName: 'ELBLAG', countryName: 'POLAND' },\r\n { placeId: 926, cityName: 'GDANSK', countryName: 'POLAND' },\r\n { placeId: 5586, cityName: 'GLIWICE', countryName: 'POLAND' },\r\n { placeId: 9190, cityName: 'GORASZKA', countryName: 'POLAND' },\r\n { placeId: 9201, cityName: 'GRADY', countryName: 'POLAND' },\r\n { placeId: 927, cityName: 'GRUDZIADZ', countryName: 'POLAND' },\r\n { placeId: 5976, cityName: 'INOWROCLAW', countryName: 'POLAND' },\r\n { placeId: 6019, cityName: 'IWONICZ', countryName: 'POLAND' },\r\n { placeId: 928, cityName: 'JELENIA GORA', countryName: 'POLAND' },\r\n { placeId: 9202, cityName: 'KANIOW', countryName: 'POLAND' },\r\n { placeId: 931, cityName: 'KATOWICE', countryName: 'POLAND' },\r\n { placeId: 9189, cityName: 'KETRZYN', countryName: 'POLAND' },\r\n { placeId: 929, cityName: 'KIELCE', countryName: 'POLAND' },\r\n { placeId: 11523, cityName: 'KORNE', countryName: 'POLAND' },\r\n { placeId: 930, cityName: 'KRAKOW', countryName: 'POLAND' },\r\n { placeId: 932, cityName: 'KROSNO', countryName: 'POLAND' },\r\n { placeId: 6448, cityName: 'LASK', countryName: 'POLAND' },\r\n { placeId: 6471, cityName: 'LECZYCA', countryName: 'POLAND' },\r\n { placeId: 6523, cityName: 'LEGNICA', countryName: 'POLAND' },\r\n { placeId: 934, cityName: 'LESZNO', countryName: 'POLAND' },\r\n { placeId: 933, cityName: 'LODZ', countryName: 'POLAND' },\r\n { placeId: 6644, cityName: 'LUBIN', countryName: 'POLAND' },\r\n { placeId: 6645, cityName: 'LUBLIN', countryName: 'POLAND' },\r\n { placeId: 6737, cityName: 'MALBORK', countryName: 'POLAND' },\r\n { placeId: 8342, cityName: 'MAZURY', countryName: 'POLAND' },\r\n { placeId: 935, cityName: 'MIELEC', countryName: 'POLAND' },\r\n { placeId: 6992, cityName: 'MINSK MAZOWIECKI', countryName: 'POLAND' },\r\n { placeId: 6996, cityName: 'MIROSLAWIEC', countryName: 'POLAND' },\r\n { placeId: 6504, cityName: 'NOWY SACZ', countryName: 'POLAND' },\r\n { placeId: 936, cityName: 'NOWY TARG', countryName: 'POLAND' },\r\n { placeId: 7373, cityName: 'OKSYWIE', countryName: 'POLAND' },\r\n { placeId: 937, cityName: 'OLSZTYN', countryName: 'POLAND' },\r\n { placeId: 7397, cityName: 'OPOLE', countryName: 'POLAND' },\r\n { placeId: 7295, cityName: 'OSTROW WIELKOPOLSKI', countryName: 'POLAND' },\r\n { placeId: 7649, cityName: 'PINCZOW', countryName: 'POLAND' },\r\n { placeId: 939, cityName: 'PIOTRKOW TRYBUNALSKI', countryName: 'POLAND' },\r\n { placeId: 7311, cityName: 'PLOCK', countryName: 'POLAND' },\r\n { placeId: 7679, cityName: 'POBIEDNIK WIELKI', countryName: 'POLAND' },\r\n { placeId: 7752, cityName: 'POWIDZ', countryName: 'POLAND' },\r\n { placeId: 938, cityName: 'POZNAN', countryName: 'POLAND' },\r\n { placeId: 7775, cityName: 'PRUSZCZ GDANSKI', countryName: 'POLAND' },\r\n { placeId: 7499, cityName: 'RADOM', countryName: 'POLAND' },\r\n { placeId: 7976, cityName: 'RUDNIKI', countryName: 'POLAND' },\r\n { placeId: 940, cityName: 'RYBNIK', countryName: 'POLAND' },\r\n { placeId: 941, cityName: 'RZESZOW', countryName: 'POLAND' },\r\n { placeId: 8292, cityName: 'SLUPSK', countryName: 'POLAND' },\r\n { placeId: 8454, cityName: 'STALOWA WOLA', countryName: 'POLAND' },\r\n { placeId: 8329, cityName: 'SUWALKI', countryName: 'POLAND' },\r\n { placeId: 944, cityName: 'SWIDNIK', countryName: 'POLAND' },\r\n { placeId: 943, cityName: 'SWIDWIN', countryName: 'POLAND' },\r\n { placeId: 942, cityName: 'SZCZECIN', countryName: 'POLAND' },\r\n { placeId: 8355, cityName: 'TOMASZOW MAZOWIECKI', countryName: 'POLAND' },\r\n { placeId: 8684, cityName: 'TORUN', countryName: 'POLAND' },\r\n { placeId: 923, cityName: 'WARSAW', countryName: 'POLAND' },\r\n { placeId: 8939, cityName: 'WATOROWO', countryName: 'POLAND' },\r\n { placeId: 9042, cityName: 'WLOCLAWEK', countryName: 'POLAND' },\r\n { placeId: 945, cityName: 'WROCLAW', countryName: 'POLAND' },\r\n { placeId: 9105, cityName: 'ZAMOSC', countryName: 'POLAND' },\r\n { placeId: 947, cityName: 'ZAR', countryName: 'POLAND' },\r\n { placeId: 946, cityName: 'ZIELONA GORA', countryName: 'POLAND' },\r\n { placeId: 2118, cityName: 'ALVERCA', countryName: 'PORTUGAL' },\r\n { placeId: 3977, cityName: 'AVEIRO', countryName: 'PORTUGAL' },\r\n { placeId: 2121, cityName: 'BEJA', countryName: 'PORTUGAL' },\r\n { placeId: 2122, cityName: 'BRAGA', countryName: 'PORTUGAL' },\r\n { placeId: 2120, cityName: 'BRAGANCA', countryName: 'PORTUGAL' },\r\n { placeId: 2125, cityName: 'CASCAIS', countryName: 'PORTUGAL' },\r\n { placeId: 2123, cityName: 'CHAVES', countryName: 'PORTUGAL' },\r\n { placeId: 2124, cityName: 'COIMBRA', countryName: 'PORTUGAL' },\r\n { placeId: 2126, cityName: 'COVILHA', countryName: 'PORTUGAL' },\r\n { placeId: 2132, cityName: 'ESPINHO', countryName: 'PORTUGAL' },\r\n { placeId: 2127, cityName: 'EVORA', countryName: 'PORTUGAL' },\r\n { placeId: 2129, cityName: 'FARO', countryName: 'PORTUGAL' },\r\n { placeId: 10704, cityName: 'FERREIRA DO ALENTEJO', countryName: 'PORTUGAL' },\r\n { placeId: 2133, cityName: 'LEIRIA', countryName: 'PORTUGAL' },\r\n { placeId: 2148, cityName: 'LISBON', countryName: 'PORTUGAL' },\r\n { placeId: 2135, cityName: 'LOUSA', countryName: 'PORTUGAL' },\r\n { placeId: 2136, cityName: 'MADEIRA', countryName: 'PORTUGAL' },\r\n { placeId: 2138, cityName: 'MIRANDELA', countryName: 'PORTUGAL' },\r\n { placeId: 7005, cityName: 'MOGADOURO', countryName: 'PORTUGAL' },\r\n { placeId: 2137, cityName: 'MONFORTINHO', countryName: 'PORTUGAL' },\r\n { placeId: 7039, cityName: 'MONTARGIL', countryName: 'PORTUGAL' },\r\n { placeId: 2139, cityName: 'MONTE REAL', countryName: 'PORTUGAL' },\r\n { placeId: 2140, cityName: 'MONTIJO', countryName: 'PORTUGAL' },\r\n { placeId: 2141, cityName: 'OVAR', countryName: 'PORTUGAL' },\r\n { placeId: 12578, cityName: 'PONTE DE SOR', countryName: 'PORTUGAL' },\r\n { placeId: 2145, cityName: 'PORTIMAO', countryName: 'PORTUGAL' },\r\n { placeId: 2147, cityName: 'PORTO SANTO', countryName: 'PORTUGAL' },\r\n { placeId: 2146, cityName: 'PORTO', countryName: 'PORTUGAL' },\r\n { placeId: 2149, cityName: 'PRAIA VERDE', countryName: 'PORTUGAL' },\r\n { placeId: 12655, cityName: 'PROENCA-A-NOVA', countryName: 'PORTUGAL' },\r\n { placeId: 2150, cityName: 'SANTA CRUZ', countryName: 'PORTUGAL' },\r\n { placeId: 8106, cityName: 'SANTAREM', countryName: 'PORTUGAL' },\r\n { placeId: 12999, cityName: 'SEIA', countryName: 'PORTUGAL' },\r\n { placeId: 2151, cityName: 'SINES', countryName: 'PORTUGAL' },\r\n { placeId: 2153, cityName: 'SINTRA', countryName: 'PORTUGAL' },\r\n { placeId: 2154, cityName: 'TANCOS', countryName: 'PORTUGAL' },\r\n { placeId: 2155, cityName: 'VILA REAL', countryName: 'PORTUGAL' },\r\n { placeId: 8854, cityName: 'VILAR DA LUZ', countryName: 'PORTUGAL' },\r\n { placeId: 2156, cityName: 'VISEU', countryName: 'PORTUGAL' },\r\n { placeId: 2543, cityName: 'AGUADILLA', countryName: 'PUERTO RICO' },\r\n { placeId: 9612, cityName: 'ARECIBO', countryName: 'PUERTO RICO' },\r\n { placeId: 10109, cityName: 'CEIBA', countryName: 'PUERTO RICO' },\r\n { placeId: 5360, cityName: 'FAJARDO', countryName: 'PUERTO RICO' },\r\n { placeId: 6001, cityName: 'ISLA DE CULEBRA', countryName: 'PUERTO RICO' },\r\n { placeId: 6003, cityName: 'ISLA DE VIEQUES', countryName: 'PUERTO RICO' },\r\n { placeId: 6886, cityName: 'MAYAGUEZ', countryName: 'PUERTO RICO' },\r\n { placeId: 2544, cityName: 'PONCE', countryName: 'PUERTO RICO' },\r\n { placeId: 2545, cityName: 'SAN JUAN', countryName: 'PUERTO RICO' },\r\n { placeId: 4050, cityName: 'AL KHOR', countryName: 'QATAR' },\r\n { placeId: 4058, cityName: 'AL-UDAID', countryName: 'QATAR' },\r\n { placeId: 2382, cityName: 'DOHA', countryName: 'QATAR' },\r\n { placeId: 1136, cityName: 'ST DENIS', countryName: 'REUNION' },\r\n { placeId: 13203, cityName: 'ST PIERRE', countryName: 'REUNION' },\r\n { placeId: 2161, cityName: 'ARAD', countryName: 'ROMANIA' },\r\n { placeId: 2162, cityName: 'BACAU', countryName: 'ROMANIA' },\r\n { placeId: 2163, cityName: 'BAIA MARE', countryName: 'ROMANIA' },\r\n { placeId: 2164, cityName: 'BUCHAREST', countryName: 'ROMANIA' },\r\n { placeId: 2167, cityName: 'CARANSEBES', countryName: 'ROMANIA' },\r\n { placeId: 2166, cityName: 'CLUJ-NAPOCA', countryName: 'ROMANIA' },\r\n { placeId: 2165, cityName: 'CONSTANTA', countryName: 'ROMANIA' },\r\n { placeId: 2168, cityName: 'CRAIOVA', countryName: 'ROMANIA' },\r\n { placeId: 2169, cityName: 'IASI', countryName: 'ROMANIA' },\r\n { placeId: 2170, cityName: 'ORADEA', countryName: 'ROMANIA' },\r\n { placeId: 2172, cityName: 'SATU MARE', countryName: 'ROMANIA' },\r\n { placeId: 2171, cityName: 'SIBIU', countryName: 'ROMANIA' },\r\n { placeId: 2173, cityName: 'SUCEAVA', countryName: 'ROMANIA' },\r\n { placeId: 2175, cityName: 'TARGU MURES', countryName: 'ROMANIA' },\r\n { placeId: 2176, cityName: 'TIMISOARA', countryName: 'ROMANIA' },\r\n { placeId: 2174, cityName: 'TULCEA', countryName: 'ROMANIA' },\r\n { placeId: 8759, cityName: 'TUZLA', countryName: 'ROMANIA' },\r\n { placeId: 2617, cityName: 'ABAKAN', countryName: 'RUSSIA' },\r\n { placeId: 9532, cityName: 'ALDAN', countryName: 'RUSSIA' },\r\n { placeId: 2580, cityName: 'ANADYR', countryName: 'RUSSIA' },\r\n { placeId: 2625, cityName: 'ANAPA', countryName: 'RUSSIA' },\r\n { placeId: 2605, cityName: 'ARKHANGELSK', countryName: 'RUSSIA' },\r\n { placeId: 2634, cityName: 'ASTRAKHAN', countryName: 'RUSSIA' },\r\n { placeId: 2618, cityName: 'BARNAUL', countryName: 'RUSSIA' },\r\n { placeId: 9743, cityName: 'BATAGAY', countryName: 'RUSSIA' },\r\n { placeId: 2666, cityName: 'BEGISHEVO', countryName: 'RUSSIA' },\r\n { placeId: 2821, cityName: 'BELGOROD', countryName: 'RUSSIA' },\r\n { placeId: 9216, cityName: 'BELOYARSKIY', countryName: 'RUSSIA' },\r\n { placeId: 2578, cityName: 'BLAGOVESHCHENSK', countryName: 'RUSSIA' },\r\n { placeId: 2586, cityName: 'BRATSK', countryName: 'RUSSIA' },\r\n { placeId: 2660, cityName: 'BRYANSK', countryName: 'RUSSIA' },\r\n { placeId: 9215, cityName: 'BUGULMA', countryName: 'RUSSIA' },\r\n { placeId: 3726, cityName: 'CHEBOKSARY', countryName: 'RUSSIA' },\r\n { placeId: 2637, cityName: 'CHELYABINSK', countryName: 'RUSSIA' },\r\n { placeId: 9214, cityName: 'CHEREMSHANKA', countryName: 'RUSSIA' },\r\n { placeId: 9165, cityName: 'CHEREPOVETS', countryName: 'RUSSIA' },\r\n { placeId: 10169, cityName: 'CHERSKY', countryName: 'RUSSIA' },\r\n { placeId: 2585, cityName: 'CHITA', countryName: 'RUSSIA' },\r\n { placeId: 10209, cityName: 'CHOKURDAKH', countryName: 'RUSSIA' },\r\n { placeId: 2635, cityName: 'ELISTA', countryName: 'RUSSIA' },\r\n { placeId: 9213, cityName: 'GELENDZHIK', countryName: 'RUSSIA' },\r\n {\r\n placeId: 9477, cityName: 'GORNO-ALTAYSK', state: 'ALTAI REPUBLIC', countryName: 'RUSSIA',\r\n },\r\n { placeId: 9166, cityName: 'GROZNY', countryName: 'RUSSIA' },\r\n { placeId: 11230, cityName: 'IGARKA', countryName: 'RUSSIA' },\r\n { placeId: 11274, cityName: 'IRKUTSK-2', countryName: 'RUSSIA' },\r\n { placeId: 2587, cityName: 'IRKUTSK', countryName: 'RUSSIA' },\r\n { placeId: 9173, cityName: 'IVANOVO', countryName: 'RUSSIA' },\r\n { placeId: 9148, cityName: 'IZHEVSK', countryName: 'RUSSIA' },\r\n { placeId: 2613, cityName: 'KALININGRAD', countryName: 'RUSSIA' },\r\n { placeId: 2665, cityName: 'KAZAN', countryName: 'RUSSIA' },\r\n { placeId: 2619, cityName: 'KEMEROVO', countryName: 'RUSSIA' },\r\n { placeId: 11432, cityName: 'KEPERVEYEM', countryName: 'RUSSIA' },\r\n { placeId: 2579, cityName: 'KHABAROVSK', countryName: 'RUSSIA' },\r\n { placeId: 2640, cityName: 'KHANTY-MANSIYSK', countryName: 'RUSSIA' },\r\n { placeId: 11445, cityName: 'KHATANGA', countryName: 'RUSSIA' },\r\n { placeId: 11471, cityName: 'KIMRY', countryName: 'RUSSIA' },\r\n { placeId: 11491, cityName: 'KIRENSK', countryName: 'RUSSIA' },\r\n { placeId: 9176, cityName: 'KIROV', countryName: 'RUSSIA' },\r\n { placeId: 9231, cityName: 'KIROVSK', countryName: 'RUSSIA' },\r\n { placeId: 2644, cityName: 'KOGALYM', countryName: 'RUSSIA' },\r\n { placeId: 11519, cityName: 'KOMSOMOLSK-NA-AMURE', countryName: 'RUSSIA' },\r\n { placeId: 9218, cityName: 'KOSTROMA', countryName: 'RUSSIA' },\r\n { placeId: 11526, cityName: 'KOTLAS', countryName: 'RUSSIA' },\r\n { placeId: 2626, cityName: 'KRASNODAR', countryName: 'RUSSIA' },\r\n { placeId: 2620, cityName: 'KRASNOYARSK', countryName: 'RUSSIA' },\r\n { placeId: 9217, cityName: 'KURGAN', countryName: 'RUSSIA' },\r\n { placeId: 14149, cityName: 'KURILSK', countryName: 'RUSSIA' },\r\n { placeId: 3725, cityName: 'KURSK', countryName: 'RUSSIA' },\r\n { placeId: 9154, cityName: 'KYZYL', countryName: 'RUSSIA' },\r\n { placeId: 11666, cityName: 'LENSK', countryName: 'RUSSIA' },\r\n { placeId: 9162, cityName: 'LIPETSK', countryName: 'RUSSIA' },\r\n { placeId: 2581, cityName: 'MAGADAN', countryName: 'RUSSIA' },\r\n { placeId: 11797, cityName: 'MAGAN', countryName: 'RUSSIA' },\r\n { placeId: 2638, cityName: 'MAGNITOGORSK', countryName: 'RUSSIA' },\r\n { placeId: 2628, cityName: 'MAKHACHKALA', countryName: 'RUSSIA' },\r\n { placeId: 11865, cityName: 'MARKOVO', countryName: 'RUSSIA' },\r\n { placeId: 2627, cityName: 'MAYKOP', countryName: 'RUSSIA' },\r\n { placeId: 2629, cityName: 'MINERALNYYE VODY', countryName: 'RUSSIA' },\r\n { placeId: 2574, cityName: 'MIRNY', countryName: 'RUSSIA' },\r\n { placeId: 2661, cityName: 'MOSCOW', countryName: 'RUSSIA' },\r\n { placeId: 2608, cityName: 'MURMANSK', countryName: 'RUSSIA' },\r\n { placeId: 12140, cityName: 'MYS KAMENYY', countryName: 'RUSSIA' },\r\n { placeId: 2641, cityName: 'NADYM', countryName: 'RUSSIA' },\r\n { placeId: 2630, cityName: 'NALCHIK', countryName: 'RUSSIA' },\r\n { placeId: 2606, cityName: 'NARYAN-MAR', countryName: 'RUSSIA' },\r\n { placeId: 9160, cityName: 'NERYUNGRI', countryName: 'RUSSIA' },\r\n { placeId: 12227, cityName: 'NIKOLAYEVSK NA AMURE', countryName: 'RUSSIA' },\r\n { placeId: 2642, cityName: 'NIZHNEVARTOVSK', countryName: 'RUSSIA' },\r\n { placeId: 2664, cityName: 'NIZHNY NOVGOROD', countryName: 'RUSSIA' },\r\n { placeId: 2624, cityName: 'NORILSK', countryName: 'RUSSIA' },\r\n { placeId: 2623, cityName: 'NOVOKUZNETSK', countryName: 'RUSSIA' },\r\n { placeId: 2621, cityName: 'NOVOSIBIRSK', countryName: 'RUSSIA' },\r\n { placeId: 2850, cityName: 'NOVY URENGOY', countryName: 'RUSSIA' },\r\n { placeId: 9159, cityName: 'NOYABRSK', countryName: 'RUSSIA' },\r\n { placeId: 9153, cityName: 'NYAGAN', countryName: 'RUSSIA' },\r\n { placeId: 12284, cityName: 'NYURBA', countryName: 'RUSSIA' },\r\n { placeId: 12314, cityName: 'OKHOTSK', countryName: 'RUSSIA' },\r\n { placeId: 12324, cityName: 'OLEKMINSK', countryName: 'RUSSIA' },\r\n { placeId: 12325, cityName: 'OLENYOK', countryName: 'RUSSIA' },\r\n { placeId: 12337, cityName: 'OMOLON', countryName: 'RUSSIA' },\r\n { placeId: 2622, cityName: 'OMSK', countryName: 'RUSSIA' },\r\n { placeId: 2668, cityName: 'ORENBURG', countryName: 'RUSSIA' },\r\n { placeId: 2669, cityName: 'ORSK', countryName: 'RUSSIA' },\r\n { placeId: 12466, cityName: 'PECHORA', countryName: 'RUSSIA' },\r\n { placeId: 2670, cityName: 'PENZA', countryName: 'RUSSIA' },\r\n { placeId: 2643, cityName: 'PERM', countryName: 'RUSSIA' },\r\n { placeId: 2582, cityName: 'PETROPAVLOVSK-KAMCHATSKY', countryName: 'RUSSIA' },\r\n { placeId: 2835, cityName: 'PETROZAVODSK', countryName: 'RUSSIA' },\r\n { placeId: 9207, cityName: 'PEVEK', countryName: 'RUSSIA' },\r\n { placeId: 12561, cityName: 'PODKAMENNAYA TUNGUSKA', countryName: 'RUSSIA' },\r\n { placeId: 2573, cityName: 'POLIARNY', countryName: 'RUSSIA' },\r\n { placeId: 12661, cityName: 'PROVIDENIYA BAY', countryName: 'RUSSIA' },\r\n { placeId: 2609, cityName: 'PSKOV', countryName: 'RUSSIA' },\r\n { placeId: 2632, cityName: 'ROSTOV-NA-DONU', countryName: 'RUSSIA' },\r\n { placeId: 9232, cityName: 'RYBINSK', countryName: 'RUSSIA' },\r\n { placeId: 2639, cityName: 'SALEKHARD', countryName: 'RUSSIA' },\r\n { placeId: 2673, cityName: 'SAMARA', countryName: 'RUSSIA' },\r\n { placeId: 9171, cityName: 'SARANSK', countryName: 'RUSSIA' },\r\n { placeId: 2671, cityName: 'SARATOV', countryName: 'RUSSIA' },\r\n { placeId: 13024, cityName: 'SEYMCHAN', countryName: 'RUSSIA' },\r\n { placeId: 13110, cityName: 'SLEPTSOVSKAYA', countryName: 'RUSSIA' },\r\n { placeId: 2633, cityName: 'SOCHI', countryName: 'RUSSIA' },\r\n { placeId: 13914, cityName: 'SOLTSY', countryName: 'RUSSIA' },\r\n { placeId: 13911, cityName: 'SOVETSKAYA GAVAN', countryName: 'RUSSIA' },\r\n { placeId: 9206, cityName: 'SOVETSKIY', countryName: 'RUSSIA' },\r\n { placeId: 2607, cityName: 'ST PETERSBURG', countryName: 'RUSSIA' },\r\n { placeId: 13243, cityName: 'STARAYA RUSSA', countryName: 'RUSSIA' },\r\n { placeId: 9205, cityName: 'STARY OSKOL', countryName: 'RUSSIA' },\r\n { placeId: 2631, cityName: 'STAVROPOL', countryName: 'RUSSIA' },\r\n { placeId: 13283, cityName: 'STREZHEVOY', countryName: 'RUSSIA' },\r\n { placeId: 2645, cityName: 'SURGUT', countryName: 'RUSSIA' },\r\n { placeId: 2663, cityName: 'SYKTYVKAR', countryName: 'RUSSIA' },\r\n { placeId: 9208, cityName: 'TAGANROG', countryName: 'RUSSIA' },\r\n { placeId: 9169, cityName: 'TAMBOV', countryName: 'RUSSIA' },\r\n { placeId: 9212, cityName: 'TIKSI', countryName: 'RUSSIA' },\r\n { placeId: 9149, cityName: 'TOMSK', countryName: 'RUSSIA' },\r\n { placeId: 9481, cityName: 'TYNDA', countryName: 'RUSSIA' },\r\n { placeId: 13528, cityName: 'TYOPLY KLYUCH', countryName: 'RUSSIA' },\r\n { placeId: 2647, cityName: 'TYUMEN', countryName: 'RUSSIA' },\r\n { placeId: 2672, cityName: 'UFA', countryName: 'RUSSIA' },\r\n { placeId: 9164, cityName: 'UKHTA', countryName: 'RUSSIA' },\r\n { placeId: 2588, cityName: 'ULAN-UDE', countryName: 'RUSSIA' },\r\n { placeId: 2667, cityName: 'ULYANOVSK', countryName: 'RUSSIA' },\r\n { placeId: 9478, cityName: 'URAY', countryName: 'RUSSIA' },\r\n { placeId: 9175, cityName: 'USINSK', countryName: 'RUSSIA' },\r\n { placeId: 9168, cityName: 'UST-KUT', countryName: 'RUSSIA' },\r\n { placeId: 13555, cityName: 'UST-MAYA', countryName: 'RUSSIA' },\r\n { placeId: 2851, cityName: 'VLADIKAVKAZ', countryName: 'RUSSIA' },\r\n { placeId: 2584, cityName: 'VLADIVOSTOK', countryName: 'RUSSIA' },\r\n { placeId: 2636, cityName: 'VOLGOGRAD', countryName: 'RUSSIA' },\r\n { placeId: 9211, cityName: 'VOLOGDA', countryName: 'RUSSIA' },\r\n { placeId: 9210, cityName: 'VORKUTA', countryName: 'RUSSIA' },\r\n { placeId: 2662, cityName: 'VORONEZH', countryName: 'RUSSIA' },\r\n { placeId: 2572, cityName: 'YAKUTSK', countryName: 'RUSSIA' },\r\n { placeId: 13845, cityName: 'YAMBURG', countryName: 'RUSSIA' },\r\n { placeId: 2832, cityName: 'YAROSLAVL', countryName: 'RUSSIA' },\r\n { placeId: 2646, cityName: 'YEKATERINBURG', countryName: 'RUSSIA' },\r\n { placeId: 13859, cityName: 'YENISEYSK', countryName: 'RUSSIA' },\r\n { placeId: 13861, cityName: 'YEYSK', countryName: 'RUSSIA' },\r\n { placeId: 9209, cityName: 'YOSHKAR-OLA', countryName: 'RUSSIA' },\r\n { placeId: 2583, cityName: 'YUZHNO-SAKHALINSK', countryName: 'RUSSIA' },\r\n { placeId: 13893, cityName: 'ZHIGANSK', countryName: 'RUSSIA' },\r\n { placeId: 13899, cityName: 'ZYRYANKA', countryName: 'RUSSIA' },\r\n { placeId: 4657, cityName: 'BUTARE', countryName: 'RWANDA' },\r\n { placeId: 5569, cityName: 'GISENYI', countryName: 'RWANDA' },\r\n { placeId: 5629, cityName: 'KAMEMBE', countryName: 'RWANDA' },\r\n { placeId: 1217, cityName: 'KIGALI', countryName: 'RWANDA' },\r\n { placeId: 7222, cityName: 'NEMBA', countryName: 'RWANDA' },\r\n { placeId: 7979, cityName: 'RUHENGERI', countryName: 'RWANDA' },\r\n { placeId: 2332, cityName: 'APIA', countryName: 'SAMOA' },\r\n { placeId: 5350, cityName: 'FAGALI', countryName: 'SAMOA' },\r\n { placeId: 7768, cityName: 'PRINCIPE', countryName: 'SAO TOME AND PRINCIPE' },\r\n { placeId: 8112, cityName: 'SAO TOME', countryName: 'SAO TOME AND PRINCIPE' },\r\n { placeId: 2343, cityName: 'ABHA', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7824, cityName: 'ABQAIQ', countryName: 'SAUDI ARABIA' },\r\n { placeId: 4042, cityName: 'AL AHSA', countryName: 'SAUDI ARABIA' },\r\n { placeId: 4045, cityName: 'AL BAHA', countryName: 'SAUDI ARABIA' },\r\n { placeId: 4046, cityName: 'AL DAWADMI', countryName: 'SAUDI ARABIA' },\r\n { placeId: 4048, cityName: 'AL JOUF', countryName: 'SAUDI ARABIA' },\r\n { placeId: 4049, cityName: 'AL KHARJ', countryName: 'SAUDI ARABIA' },\r\n { placeId: 9520, cityName: 'AL ULA', countryName: 'SAUDI ARABIA' },\r\n { placeId: 4175, cityName: 'ARADAH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 4200, cityName: 'ARAR', countryName: 'SAUDI ARABIA' },\r\n { placeId: 9748, cityName: 'BATHA', countryName: 'SAUDI ARABIA' },\r\n { placeId: 4489, cityName: 'BISHA', countryName: 'SAUDI ARABIA' },\r\n { placeId: 2344, cityName: 'DAMMAM', countryName: 'SAUDI ARABIA' },\r\n { placeId: 2345, cityName: 'DHAHRAN', countryName: 'SAUDI ARABIA' },\r\n { placeId: 5538, cityName: 'GASSIM', countryName: 'SAUDI ARABIA' },\r\n { placeId: 5747, cityName: 'GURIAT', countryName: 'SAUDI ARABIA' },\r\n { placeId: 5768, cityName: 'HAIL', countryName: 'SAUDI ARABIA' },\r\n { placeId: 5797, cityName: 'HARAD', countryName: 'SAUDI ARABIA' },\r\n { placeId: 5624, cityName: 'HAWTAH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 2346, cityName: 'JAZAN', countryName: 'SAUDI ARABIA' },\r\n { placeId: 2347, cityName: 'JEDDAH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 6083, cityName: 'JUBAIL', countryName: 'SAUDI ARABIA' },\r\n { placeId: 2348, cityName: 'KHAMIS MUSHAIT', countryName: 'SAUDI ARABIA' },\r\n { placeId: 11452, cityName: 'KHURAIS', countryName: 'SAUDI ARABIA' },\r\n { placeId: 6244, cityName: 'KING KHALID MILITARY CITY', countryName: 'SAUDI ARABIA' },\r\n { placeId: 2349, cityName: 'MADINAH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7190, cityName: 'NARIYA', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7216, cityName: 'NEJRAN', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7802, cityName: 'PUMP STATION 10', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7803, cityName: 'PUMP STATION 3', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7804, cityName: 'PUMP STATION 6', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7805, cityName: 'PUMP STATION 9', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7816, cityName: 'QAISUMAH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7838, cityName: 'RABIGH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7503, cityName: 'RAFHA', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7857, cityName: 'RAS AL MISHAB', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7859, cityName: 'RAS TANAJIB', countryName: 'SAUDI ARABIA' },\r\n { placeId: 7860, cityName: 'RAS TANURA', countryName: 'SAUDI ARABIA' },\r\n { placeId: 2350, cityName: 'RIYADH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 13026, cityName: 'SHABITAH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 8214, cityName: 'SHARURAH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 8217, cityName: 'SHAYBAH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 2351, cityName: 'TABUK', countryName: 'SAUDI ARABIA' },\r\n { placeId: 2352, cityName: 'TAIF', countryName: 'SAUDI ARABIA' },\r\n { placeId: 13405, cityName: 'THABLOTIN', countryName: 'SAUDI ARABIA' },\r\n { placeId: 8750, cityName: 'TURAIF', countryName: 'SAUDI ARABIA' },\r\n { placeId: 8775, cityName: 'UDHAILIYAH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 8788, cityName: 'UMM LEJJ', countryName: 'SAUDI ARABIA' },\r\n { placeId: 8887, cityName: 'WADI AL DAWASIR', countryName: 'SAUDI ARABIA' },\r\n { placeId: 8961, cityName: 'WEJH', countryName: 'SAUDI ARABIA' },\r\n { placeId: 2353, cityName: 'YENBO', countryName: 'SAUDI ARABIA' },\r\n { placeId: 9129, cityName: 'ZULFI', countryName: 'SAUDI ARABIA' },\r\n { placeId: 4306, cityName: 'BAKEL', countryName: 'SENEGAL' },\r\n { placeId: 1193, cityName: 'CAP SKIRING', countryName: 'SENEGAL' },\r\n { placeId: 1194, cityName: 'DAKAR', countryName: 'SENEGAL' },\r\n { placeId: 6133, cityName: 'KAOLACK', countryName: 'SENEGAL' },\r\n { placeId: 6180, cityName: 'KEDOUGOU', countryName: 'SENEGAL' },\r\n { placeId: 6306, cityName: 'KOLDA', countryName: 'SENEGAL' },\r\n { placeId: 6864, cityName: 'MATAM', countryName: 'SENEGAL' },\r\n { placeId: 7684, cityName: 'PODOR', countryName: 'SENEGAL' },\r\n { placeId: 7909, cityName: 'RICHARD TOLL', countryName: 'SENEGAL' },\r\n { placeId: 8267, cityName: 'SIMENTI', countryName: 'SENEGAL' },\r\n { placeId: 1195, cityName: 'ST LOUIS', countryName: 'SENEGAL' },\r\n { placeId: 8566, cityName: 'TAMBACOUNDA', countryName: 'SENEGAL' },\r\n { placeId: 9123, cityName: 'ZIGUINCHOR', countryName: 'SENEGAL' },\r\n { placeId: 2272, cityName: 'BELGRADE', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 3159, cityName: 'BEOGRAD', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 9817, cityName: 'BERANE', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 9888, cityName: 'BOR', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 3160, cityName: 'DAKOVICA', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 9196, cityName: 'KIKINDA', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 3162, cityName: 'KOSTOLAC', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 3161, cityName: 'KRALJEVO', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 9195, cityName: 'KRUSEVAC', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 11670, cityName: 'LESKOVAC', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 12229, cityName: 'NIKSIC', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 2273, cityName: 'NIS', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 3163, cityName: 'NOVI SAD', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 12427, cityName: 'PANCEVO', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 9192, cityName: 'PARACIN', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 2274, cityName: 'PODGORICA', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 25, cityName: 'PRISTINA', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 9193, cityName: 'SMEDEREVO', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 3165, cityName: 'SMEDEREVSKA PALANKA', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 3164, cityName: 'SREMSKA MITROVICA', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 3166, cityName: 'SUBOTICA', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 9191, cityName: 'TRSTENIK', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 13563, cityName: 'UZICE', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 9194, cityName: 'VALJEVO', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 2276, cityName: 'VRSAC', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 9197, cityName: 'ZRENJANIN', countryName: 'SERBIA-MONTENEGRO' },\r\n { placeId: 4091, cityName: 'ALPHONSE', countryName: 'SEYCHELLES' },\r\n { placeId: 4249, cityName: 'ASSUMPTION ISLAND', countryName: 'SEYCHELLES' },\r\n { placeId: 4485, cityName: 'BIRD', countryName: 'SEYCHELLES' },\r\n { placeId: 4916, cityName: 'COETIVY', countryName: 'SEYCHELLES' },\r\n { placeId: 5068, cityName: 'DARROS ISLAND', countryName: 'SEYCHELLES' },\r\n { placeId: 5152, cityName: 'DENIS', countryName: 'SEYCHELLES' },\r\n { placeId: 5158, cityName: 'DESROCHES', countryName: 'SEYCHELLES' },\r\n { placeId: 5377, cityName: 'FARQUHAR', countryName: 'SEYCHELLES' },\r\n { placeId: 5119, cityName: 'FREGATE', countryName: 'SEYCHELLES' },\r\n { placeId: 6811, cityName: 'MARIE-LOUISE', countryName: 'SEYCHELLES' },\r\n { placeId: 7674, cityName: 'PLATTE', countryName: 'SEYCHELLES' },\r\n { placeId: 7756, cityName: 'PRASLIN', countryName: 'SEYCHELLES' },\r\n { placeId: 7894, cityName: 'REMIRE', countryName: 'SEYCHELLES' },\r\n { placeId: 1155, cityName: 'SEYCHELLES', countryName: 'SEYCHELLES' },\r\n { placeId: 4512, cityName: 'BO', countryName: 'SIERRA LEONE' },\r\n { placeId: 4541, cityName: 'BONTHE', countryName: 'SIERRA LEONE' },\r\n { placeId: 2868, cityName: 'FREETOWN', countryName: 'SIERRA LEONE' },\r\n { placeId: 5545, cityName: 'GBANGBATOKE', countryName: 'SIERRA LEONE' },\r\n { placeId: 5613, cityName: 'HASTINGS', countryName: 'SIERRA LEONE' },\r\n { placeId: 6090, cityName: 'KABALA', countryName: 'SIERRA LEONE' },\r\n { placeId: 6194, cityName: 'KENEMA', countryName: 'SIERRA LEONE' },\r\n { placeId: 9087, cityName: 'YENGEMA', countryName: 'SIERRA LEONE' },\r\n { placeId: 2757, cityName: 'SINGAPORE', countryName: 'SINGAPORE' },\r\n { placeId: 2278, cityName: 'BRATISLAVA', countryName: 'SLOVAKIA' },\r\n { placeId: 2277, cityName: 'DUBNICA', countryName: 'SLOVAKIA' },\r\n { placeId: 11314, cityName: 'JASNA', countryName: 'SLOVAKIA' },\r\n { placeId: 2279, cityName: 'KOSICE', countryName: 'SLOVAKIA' },\r\n { placeId: 6332, cityName: 'KRALOVA PRI SENCI', countryName: 'SLOVAKIA' },\r\n { placeId: 2281, cityName: 'MALACKY', countryName: 'SLOVAKIA' },\r\n { placeId: 2285, cityName: 'MALE BIELICE', countryName: 'SLOVAKIA' },\r\n { placeId: 2280, cityName: 'MARTIN', countryName: 'SLOVAKIA' },\r\n { placeId: 2282, cityName: 'NITRA', countryName: 'SLOVAKIA' },\r\n { placeId: 12272, cityName: 'NOVE ZAMKY', countryName: 'SLOVAKIA' },\r\n { placeId: 2284, cityName: 'PIESTANY', countryName: 'SLOVAKIA' },\r\n { placeId: 2290, cityName: 'POPRAD', countryName: 'SLOVAKIA' },\r\n { placeId: 2286, cityName: 'PRESOV', countryName: 'SLOVAKIA' },\r\n { placeId: 2283, cityName: 'PRIEVIDZA', countryName: 'SLOVAKIA' },\r\n { placeId: 2287, cityName: 'SLIAC', countryName: 'SLOVAKIA' },\r\n { placeId: 2288, cityName: 'SPISSKA NOVA VES', countryName: 'SLOVAKIA' },\r\n { placeId: 8331, cityName: 'SVIDNIK', countryName: 'SLOVAKIA' },\r\n { placeId: 2289, cityName: 'TRENCIN', countryName: 'SLOVAKIA' },\r\n { placeId: 2291, cityName: 'VAJNORY', countryName: 'SLOVAKIA' },\r\n { placeId: 2292, cityName: 'ZILINA', countryName: 'SLOVAKIA' },\r\n { placeId: 1972, cityName: 'AJDOVSCINA', countryName: 'SLOVENIA' },\r\n { placeId: 1974, cityName: 'BOVEC', countryName: 'SLOVENIA' },\r\n { placeId: 1975, cityName: 'CELJE', countryName: 'SLOVENIA' },\r\n { placeId: 10496, cityName: 'DIVACA', countryName: 'SLOVENIA' },\r\n { placeId: 1973, cityName: 'LESCE', countryName: 'SLOVENIA' },\r\n { placeId: 1976, cityName: 'LJUBLJANA', countryName: 'SLOVENIA' },\r\n { placeId: 1977, cityName: 'MARIBOR', countryName: 'SLOVENIA' },\r\n { placeId: 1978, cityName: 'MURSKA SOBOTA', countryName: 'SLOVENIA' },\r\n { placeId: 12273, cityName: 'NOVO MESTO', countryName: 'SLOVENIA' },\r\n { placeId: 1979, cityName: 'PORTOROZ', countryName: 'SLOVENIA' },\r\n { placeId: 12623, cityName: 'POSTOJNA', countryName: 'SLOVENIA' },\r\n { placeId: 1980, cityName: 'SLOVENJ GRADEC', countryName: 'SLOVENIA' },\r\n { placeId: 4268, cityName: 'ATOIFI', countryName: 'SOLOMON IS' },\r\n { placeId: 3971, cityName: 'AUKI', countryName: 'SOLOMON IS' },\r\n { placeId: 3979, cityName: 'AVU AVU', countryName: 'SOLOMON IS' },\r\n { placeId: 4281, cityName: 'BABANAKIRA', countryName: 'SOLOMON IS' },\r\n { placeId: 4315, cityName: 'BALLALAE', countryName: 'SOLOMON IS' },\r\n { placeId: 4416, cityName: 'BELLONA', countryName: 'SOLOMON IS' },\r\n { placeId: 4851, cityName: 'CHOISEUL', countryName: 'SOLOMON IS' },\r\n { placeId: 5386, cityName: 'FERA', countryName: 'SOLOMON IS' },\r\n { placeId: 5571, cityName: 'GIZO', countryName: 'SOLOMON IS' },\r\n { placeId: 1, cityName: 'HONIARA', countryName: 'SOLOMON IS' },\r\n { placeId: 6101, cityName: 'KAGHAU', countryName: 'SOLOMON IS' },\r\n { placeId: 6254, cityName: 'KIRAKIRA', countryName: 'SOLOMON IS' },\r\n { placeId: 7031, cityName: 'MONO', countryName: 'SOLOMON IS' },\r\n { placeId: 7133, cityName: 'MUNDA', countryName: 'SOLOMON IS' },\r\n { placeId: 7394, cityName: 'ONTONG JAVA', countryName: 'SOLOMON IS' },\r\n { placeId: 7305, cityName: 'PARASI', countryName: 'SOLOMON IS' },\r\n { placeId: 7895, cityName: 'RENNELL', countryName: 'SOLOMON IS' },\r\n { placeId: 8085, cityName: 'SANTA ANNA', countryName: 'SOLOMON IS' },\r\n { placeId: 8093, cityName: 'SANTA CRUZ, SOLOMON IS', countryName: 'SOLOMON IS' },\r\n { placeId: 7534, cityName: 'SEGHE', countryName: 'SOLOMON IS' },\r\n { placeId: 8502, cityName: 'SUAVANAO', countryName: 'SOLOMON IS' },\r\n { placeId: 9070, cityName: 'YANDINA', countryName: 'SOLOMON IS' },\r\n { placeId: 4099, cityName: 'ALULA', countryName: 'SOMALIA' },\r\n { placeId: 4406, cityName: 'BELET UEN', countryName: 'SOMALIA' },\r\n { placeId: 4436, cityName: 'BERBERA', countryName: 'SOMALIA' },\r\n { placeId: 4551, cityName: 'BOSASO', countryName: 'SOMALIA' },\r\n { placeId: 4639, cityName: 'BURAO', countryName: 'SOMALIA' },\r\n { placeId: 4713, cityName: 'CANDALA', countryName: 'SOMALIA' },\r\n { placeId: 5271, cityName: 'EGAL', countryName: 'SOMALIA' },\r\n { placeId: 5273, cityName: 'EIL', countryName: 'SOMALIA' },\r\n { placeId: 5025, cityName: 'ERIGAVO', countryName: 'SOMALIA' },\r\n { placeId: 5516, cityName: 'GALCAIO', countryName: 'SOMALIA' },\r\n { placeId: 5532, cityName: 'GARDO', countryName: 'SOMALIA' },\r\n { placeId: 6267, cityName: 'KISIMAYU', countryName: 'SOMALIA' },\r\n { placeId: 7004, cityName: 'MOGADISHU', countryName: 'SOMALIA' },\r\n { placeId: 7342, cityName: 'OBBIA', countryName: 'SOMALIA' },\r\n { placeId: 7523, cityName: 'SCUSCIUBAN', countryName: 'SOMALIA' },\r\n { placeId: 1096, cityName: 'ALEXANDER BAY', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4081, cityName: 'ALIWAL NORTH', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4082, cityName: 'ALKANTPAN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4385, cityName: 'BEAUFORT WEST', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4449, cityName: 'BETHLEHEM', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4455, cityName: 'BHISHO', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1097, cityName: 'BLOEMFONTEIN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4552, cityName: 'BOSCHKOP', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4560, cityName: 'BOTHAVILLE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4585, cityName: 'BRAKPAN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4601, cityName: 'BRITS', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4641, cityName: 'BURGERSDORP', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4688, cityName: 'CALVINIA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1098, cityName: 'CAPE TOWN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4742, cityName: 'CARNARVON', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 4744, cityName: 'CAROLINA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5075, cityName: 'DE AAR', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5100, cityName: 'DELAREYVILLE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5151, cityName: 'DENDRON', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1099, cityName: 'DURBAN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5229, cityName: 'DWAALBOOM', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1100, cityName: 'EAST LONDON', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5317, cityName: 'EMPANGENI', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5333, cityName: 'ESTCOURT', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5393, cityName: 'FICKSBURG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5401, cityName: 'FISANTEKRAAL', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5429, cityName: 'FORT BEAUFORT', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5118, cityName: 'FREEWAY', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5533, cityName: 'GARIEP DAM', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1101, cityName: 'GEORGE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5608, cityName: 'GRAAFF-REINET', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5663, cityName: 'GRAHAMSTOWN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5669, cityName: 'GRAND CENTRAL', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5713, cityName: 'GREYTOWN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5720, cityName: 'GROBLERSDAL', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5758, cityName: 'H.M.S.BASTARD MEMORIAL', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5775, cityName: 'HALFWEG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5800, cityName: 'HARDING', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5804, cityName: 'HARMONY', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5807, cityName: 'HARRISMITH', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5854, cityName: 'HLUHLUWE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1102, cityName: 'HOEDSPRUIT', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5892, cityName: 'HOWICK', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1103, cityName: 'JOHANNESBURG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1104, cityName: 'KIMBERLEY', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6282, cityName: 'KLEINSEE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6283, cityName: 'KLERKSDORP', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6336, cityName: 'KROONSTAD', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1105, cityName: 'KRUGER MPUMALANGA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6337, cityName: 'KRUGERSDORP', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6348, cityName: 'KURUMAN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6400, cityName: 'LADYSMITH', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1107, cityName: 'LANGEBAANWEG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1106, cityName: 'LANSERIA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6546, cityName: 'LICHTENBURG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6560, cityName: 'LIME ACRES', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6627, cityName: 'LOUIS TRICHARDT', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6681, cityName: 'LYDENBURG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1108, cityName: 'MAFIKENG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6720, cityName: 'MAJUBA POWER STATION', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6723, cityName: 'MAKHADO', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6732, cityName: 'MALAMALA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 5657, cityName: 'MALELANE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6800, cityName: 'MARBLE HALL', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6809, cityName: 'MARGATE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6965, cityName: 'MIDDELBURG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 6483, cityName: 'MKUZI', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7083, cityName: 'MOSSEL BAY', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1115, cityName: 'MTHATHA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7220, cityName: 'NELSPRUIT', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7238, cityName: 'NEW TEMPE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7244, cityName: 'NEWCASTLE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7326, cityName: 'NYLSTROOM', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7413, cityName: 'ORIENT', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7442, cityName: 'OUDTSHOORN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1109, cityName: 'OVERBERG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7567, cityName: 'PARYS', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7621, cityName: 'PHALABORWA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7637, cityName: 'PIET RETIEF', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7638, cityName: 'PIETERMARITZBURG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7639, cityName: 'PIETERSBURG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1111, cityName: 'PILANESBERG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7643, cityName: 'PILGRIMS REST', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7309, cityName: 'PLETTENBERG BAY', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1112, cityName: 'POLOKWANE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7494, cityName: 'PONGOLA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7697, cityName: 'PORT ALFRED', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1110, cityName: 'PORT ELIZABETH', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7744, cityName: 'POSTMASBURG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7745, cityName: 'POTCHEFSTROOM', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1116, cityName: 'PRETORIA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7763, cityName: 'PRIESKA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7770, cityName: 'PROGRESS', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7825, cityName: 'QUEENSTOWN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7892, cityName: 'REIVILO', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1113, cityName: 'RICHARDS BAY', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7927, cityName: 'ROBERTSON', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7736, cityName: 'RUSTENBURG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7995, cityName: 'SACE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7520, cityName: 'SALDANHA-VREDENBURG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8144, cityName: 'SCHWEIZER RENEKE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 7528, cityName: 'SECUNDA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8280, cityName: 'SISHEN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8287, cityName: 'SKUKUZA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8293, cityName: 'SLURRY', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8388, cityName: 'SPRINGBOK', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8396, cityName: 'SPRINGS', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8476, cityName: 'STELLENBOSCH', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8337, cityName: 'SWELLENDAM', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8358, cityName: 'TOMMY\\'S FIELD', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8732, cityName: 'TSWALU GAME RESERVE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8757, cityName: 'TUTUKA POWER STATION', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8768, cityName: 'TZANEEN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8778, cityName: 'UITENHAGE', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8783, cityName: 'ULUNDI', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1114, cityName: 'UPINGTON', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8363, cityName: 'VENETIA', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8367, cityName: 'VERBORGENFONTEIN', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8369, cityName: 'VEREENIGING', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8846, cityName: 'VICTORIA WEST', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8877, cityName: 'VREDENDAL', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8878, cityName: 'VRYBURG', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8916, cityName: 'WARMBATHS', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1117, cityName: 'WATERKLOOF', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 8963, cityName: 'WELKOM', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 9013, cityName: 'WILLISTON', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 9040, cityName: 'WITBANK', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 9049, cityName: 'WORCESTER', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 9096, cityName: 'YSTERPLAAT', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 9113, cityName: 'ZEERUST', countryName: 'SOUTH AFRICAN REP' },\r\n { placeId: 1221, cityName: 'JUBA', countryName: 'SOUTH SUDAN' },\r\n { placeId: 1222, cityName: 'MALAKAL', countryName: 'SOUTH SUDAN' },\r\n { placeId: 8944, cityName: 'WAU', countryName: 'SOUTH SUDAN' },\r\n { placeId: 1430, cityName: 'A CORUNA', countryName: 'SPAIN' },\r\n { placeId: 1421, cityName: 'ALBACETE', countryName: 'SPAIN' },\r\n { placeId: 1422, cityName: 'ALICANTE', countryName: 'SPAIN' },\r\n { placeId: 1423, cityName: 'ALMERIA', countryName: 'SPAIN' },\r\n { placeId: 1453, cityName: 'ALT URGELL', countryName: 'SPAIN' },\r\n { placeId: 4123, cityName: 'AMPURIABRAVA', countryName: 'SPAIN' },\r\n { placeId: 1424, cityName: 'ASTURIAS', countryName: 'SPAIN' },\r\n { placeId: 1429, cityName: 'BADAJOZ', countryName: 'SPAIN' },\r\n { placeId: 1428, cityName: 'BARCELONA', countryName: 'SPAIN' },\r\n { placeId: 1426, cityName: 'BILBAO', countryName: 'SPAIN' },\r\n { placeId: 1427, cityName: 'BURGOS', countryName: 'SPAIN' },\r\n { placeId: 1448, cityName: 'CADIZ', countryName: 'SPAIN' },\r\n { placeId: 10093, cityName: 'CASARRUBIOS DEL MONTE', countryName: 'SPAIN' },\r\n { placeId: 4753, cityName: 'CASTELLON DE LA PLANA', countryName: 'SPAIN' },\r\n { placeId: 9157, cityName: 'CIUDAD REAL', countryName: 'SPAIN' },\r\n { placeId: 1425, cityName: 'CORDOBA', countryName: 'SPAIN' },\r\n { placeId: 1433, cityName: 'GIRONA', countryName: 'SPAIN' },\r\n { placeId: 1432, cityName: 'GRANADA', countryName: 'SPAIN' },\r\n { placeId: 1434, cityName: 'HUESCA', countryName: 'SPAIN' },\r\n { placeId: 1435, cityName: 'IBIZA', countryName: 'SPAIN' },\r\n { placeId: 1436, cityName: 'JEREZ', countryName: 'SPAIN' },\r\n { placeId: 6357, cityName: 'LA AXARQUIA', countryName: 'SPAIN' },\r\n { placeId: 6362, cityName: 'LA CERDANYA', countryName: 'SPAIN' },\r\n { placeId: 2830, cityName: 'LA PERDIZ', countryName: 'SPAIN' },\r\n { placeId: 1439, cityName: 'LEON', countryName: 'SPAIN' },\r\n { placeId: 9178, cityName: 'LLEIDA', countryName: 'SPAIN' },\r\n { placeId: 1440, cityName: 'LOGRONO', countryName: 'SPAIN' },\r\n { placeId: 1431, cityName: 'MADRID', countryName: 'SPAIN' },\r\n { placeId: 1441, cityName: 'MALAGA', countryName: 'SPAIN' },\r\n { placeId: 1450, cityName: 'MALLORCA', countryName: 'SPAIN' },\r\n { placeId: 1442, cityName: 'MENORCA', countryName: 'SPAIN' },\r\n { placeId: 7117, cityName: 'MUCHAMIEL', countryName: 'SPAIN' },\r\n { placeId: 1437, cityName: 'MURCIA', countryName: 'SPAIN' },\r\n { placeId: 1444, cityName: 'OCANA', countryName: 'SPAIN' },\r\n { placeId: 1445, cityName: 'PALMA DE MALLORCA', countryName: 'SPAIN' },\r\n { placeId: 1446, cityName: 'PAMPLONA', countryName: 'SPAIN' },\r\n { placeId: 1447, cityName: 'REUS', countryName: 'SPAIN' },\r\n { placeId: 12811, cityName: 'ROBLEDILLO DE MOHERNANDO', countryName: 'SPAIN' },\r\n { placeId: 7973, cityName: 'ROZAS', countryName: 'SPAIN' },\r\n { placeId: 1438, cityName: 'SABADELL', countryName: 'SPAIN' },\r\n { placeId: 1449, cityName: 'SALAMANCA', countryName: 'SPAIN' },\r\n { placeId: 12926, cityName: 'SAN LUIS', countryName: 'SPAIN' },\r\n { placeId: 1451, cityName: 'SAN SEBASTIAN', countryName: 'SPAIN' },\r\n { placeId: 8089, cityName: 'SANTA CILIA DE JACA', countryName: 'SPAIN' },\r\n { placeId: 1458, cityName: 'SANTANDER', countryName: 'SPAIN' },\r\n { placeId: 1452, cityName: 'SANTIAGO', countryName: 'SPAIN' },\r\n { placeId: 8110, cityName: 'SANTO TOME DEL PUERTO', countryName: 'SPAIN' },\r\n { placeId: 1443, cityName: 'SEVILLE', countryName: 'SPAIN' },\r\n { placeId: 13477, cityName: 'TREBUJENA', countryName: 'SPAIN' },\r\n { placeId: 1454, cityName: 'VALENCIA', countryName: 'SPAIN' },\r\n { placeId: 1455, cityName: 'VALLADOLID', countryName: 'SPAIN' },\r\n { placeId: 1457, cityName: 'VIGO', countryName: 'SPAIN' },\r\n { placeId: 13614, cityName: 'VILLAMARTIN', countryName: 'SPAIN' },\r\n { placeId: 1456, cityName: 'VITORIA', countryName: 'SPAIN' },\r\n { placeId: 1459, cityName: 'ZARAGOZA', countryName: 'SPAIN' },\r\n { placeId: 4167, cityName: 'ANURADHAPURA', countryName: 'SRI LANKA' },\r\n { placeId: 4177, cityName: 'BATTICALOA', countryName: 'SRI LANKA' },\r\n { placeId: 2677, cityName: 'COLOMBO', countryName: 'SRI LANKA' },\r\n { placeId: 5514, cityName: 'GAL OYA', countryName: 'SRI LANKA' },\r\n { placeId: 5851, cityName: 'HINGURAKGODA', countryName: 'SRI LANKA' },\r\n { placeId: 5645, cityName: 'KANKESANTURAI', countryName: 'SRI LANKA' },\r\n { placeId: 6169, cityName: 'KATUKURUNDA', countryName: 'SRI LANKA' },\r\n { placeId: 6294, cityName: 'KOGGALA', countryName: 'SRI LANKA' },\r\n { placeId: 13920, cityName: 'MATTALA', countryName: 'SRI LANKA' },\r\n { placeId: 7864, cityName: 'RATMALANA', countryName: 'SRI LANKA' },\r\n { placeId: 8252, cityName: 'SIGIRIYA', countryName: 'SRI LANKA' },\r\n { placeId: 8703, cityName: 'TRINCOMALEE', countryName: 'SRI LANKA' },\r\n { placeId: 8832, cityName: 'VAVUNIYA', countryName: 'SRI LANKA' },\r\n { placeId: 9038, cityName: 'WIRAWILA', countryName: 'SRI LANKA' },\r\n { placeId: 3722, cityName: 'ST KITTS I.', countryName: 'ST KITTS' },\r\n { placeId: 2546, cityName: 'CASTRIES', countryName: 'ST LUCIA' },\r\n { placeId: 2547, cityName: 'VIEUXFORT', countryName: 'ST LUCIA' },\r\n { placeId: 1835, cityName: 'ST PIERRE I', countryName: 'ST PIERRE I' },\r\n { placeId: 4435, cityName: 'BEQUIA', countryName: 'ST VINCENT' },\r\n { placeId: 4717, cityName: 'CANOUAN', countryName: 'ST VINCENT' },\r\n { placeId: 6246, cityName: 'KINGSTOWN', countryName: 'ST VINCENT' },\r\n { placeId: 7145, cityName: 'MUSTIQUE', countryName: 'ST VINCENT' },\r\n { placeId: 8792, cityName: 'UNION I.', countryName: 'ST VINCENT' },\r\n { placeId: 4256, cityName: 'ATBARA', countryName: 'SUDAN' },\r\n { placeId: 5056, cityName: 'DAMAZIN', countryName: 'SUDAN' },\r\n { placeId: 5197, cityName: 'DONGOLA', countryName: 'SUDAN' },\r\n { placeId: 5285, cityName: 'EL FASHIR', countryName: 'SUDAN' },\r\n { placeId: 1219, cityName: 'EL OBEID', countryName: 'SUDAN' },\r\n { placeId: 5548, cityName: 'GENEINA', countryName: 'SUDAN' },\r\n { placeId: 6098, cityName: 'KADUGLI', countryName: 'SUDAN' },\r\n { placeId: 1218, cityName: 'KASSALA', countryName: 'SUDAN' },\r\n { placeId: 1223, cityName: 'KHARTOUM', countryName: 'SUDAN' },\r\n { placeId: 6947, cityName: 'MEROWE', countryName: 'SUDAN' },\r\n { placeId: 7323, cityName: 'NYALA', countryName: 'SUDAN' },\r\n { placeId: 1220, cityName: 'PORT SUDAN', countryName: 'SUDAN' },\r\n { placeId: 12992, cityName: 'SEBERA GENEINA', countryName: 'SUDAN' },\r\n { placeId: 8888, cityName: 'WADI HALFA', countryName: 'SUDAN' },\r\n { placeId: 4915, cityName: 'COEROENIE', countryName: 'SURINAME' },\r\n { placeId: 6177, cityName: 'KAYSERBERG', countryName: 'SURINAME' },\r\n { placeId: 6300, cityName: 'NEW NICKERIE', countryName: 'SURINAME' },\r\n { placeId: 7539, cityName: 'PALOEMEU', countryName: 'SURINAME' },\r\n { placeId: 7555, cityName: 'PARAMARIBO', countryName: 'SURINAME' },\r\n { placeId: 8274, cityName: 'SIPALIWINI', countryName: 'SURINAME' },\r\n { placeId: 8544, cityName: 'TAFELBERG', countryName: 'SURINAME' },\r\n { placeId: 2523, cityName: 'ZANDERY', countryName: 'SURINAME' },\r\n { placeId: 4463, cityName: 'BIG BEND', countryName: 'SWAZILAND' },\r\n { placeId: 1126, cityName: 'MANZINI', countryName: 'SWAZILAND' },\r\n { placeId: 6962, cityName: 'MHLUME', countryName: 'SWAZILAND' },\r\n { placeId: 7255, cityName: 'NHLANGANO', countryName: 'SWAZILAND' },\r\n { placeId: 7640, cityName: 'PIGGS PEAK', countryName: 'SWAZILAND' },\r\n { placeId: 8269, cityName: 'SIMUNYE', countryName: 'SWAZILAND' },\r\n { placeId: 8567, cityName: 'TAMBANKULU', countryName: 'SWAZILAND' },\r\n { placeId: 8722, cityName: 'TSHANENI', countryName: 'SWAZILAND' },\r\n { placeId: 957, cityName: 'ALINGSAS', countryName: 'SWEDEN' },\r\n { placeId: 954, cityName: 'ALLEBERG', countryName: 'SWEDEN' },\r\n { placeId: 4090, cityName: 'ALMHULT', countryName: 'SWEDEN' },\r\n { placeId: 1049, cityName: 'ALVSBYN', countryName: 'SWEDEN' },\r\n { placeId: 991, cityName: 'ANDERSTORP', countryName: 'SWEDEN' },\r\n { placeId: 1043, cityName: 'ANGE', countryName: 'SWEDEN' },\r\n { placeId: 4141, cityName: 'ANGELHOLM', countryName: 'SWEDEN' },\r\n { placeId: 1023, cityName: 'ARBOGA', countryName: 'SWEDEN' },\r\n { placeId: 1038, cityName: 'ARBRA', countryName: 'SWEDEN' },\r\n { placeId: 4212, cityName: 'ARE OSTERSUND', countryName: 'SWEDEN' },\r\n { placeId: 1017, cityName: 'ARVIDSJAUR', countryName: 'SWEDEN' },\r\n { placeId: 978, cityName: 'ARVIKA', countryName: 'SWEDEN' },\r\n { placeId: 1047, cityName: 'ASELE', countryName: 'SWEDEN' },\r\n { placeId: 1051, cityName: 'AVESTA', countryName: 'SWEDEN' },\r\n { placeId: 953, cityName: 'BACKAMO', countryName: 'SWEDEN' },\r\n { placeId: 4545, cityName: 'BORAS', countryName: 'SWEDEN' },\r\n { placeId: 980, cityName: 'BORGLANDA', countryName: 'SWEDEN' },\r\n { placeId: 1025, cityName: 'BORLANGE', countryName: 'SWEDEN' },\r\n { placeId: 1031, cityName: 'BRATTFORSHEDEN', countryName: 'SWEDEN' },\r\n { placeId: 4632, cityName: 'BUNGE', countryName: 'SWEDEN' },\r\n { placeId: 970, cityName: 'DALA-JARNA', countryName: 'SWEDEN' },\r\n { placeId: 1050, cityName: 'EDSBYN', countryName: 'SWEDEN' },\r\n { placeId: 972, cityName: 'EKSHARAD', countryName: 'SWEDEN' },\r\n { placeId: 5275, cityName: 'EKSJO', countryName: 'SWEDEN' },\r\n { placeId: 979, cityName: 'EMMABODA', countryName: 'SWEDEN' },\r\n { placeId: 1024, cityName: 'ESKILSTUNA', countryName: 'SWEDEN' },\r\n { placeId: 981, cityName: 'ESLOV', countryName: 'SWEDEN' },\r\n { placeId: 982, cityName: 'FAGERHULT', countryName: 'SWEDEN' },\r\n { placeId: 5363, cityName: 'FALKENBERG', countryName: 'SWEDEN' },\r\n { placeId: 959, cityName: 'FALKOPING', countryName: 'SWEDEN' },\r\n { placeId: 5405, cityName: 'FJALLBACKA', countryName: 'SWEDEN' },\r\n { placeId: 1052, cityName: 'GAGNEF', countryName: 'SWEDEN' },\r\n { placeId: 1003, cityName: 'GALLIVARE', countryName: 'SWEDEN' },\r\n { placeId: 1041, cityName: 'GARGNAS', countryName: 'SWEDEN' },\r\n { placeId: 1030, cityName: 'GAVLE', countryName: 'SWEDEN' },\r\n { placeId: 955, cityName: 'GOTEBORG', countryName: 'SWEDEN' },\r\n { placeId: 5145, cityName: 'GOTENE', countryName: 'SWEDEN' },\r\n { placeId: 5721, cityName: 'GRONHOGEN', countryName: 'SWEDEN' },\r\n { placeId: 971, cityName: 'GRYTTJOM', countryName: 'SWEDEN' },\r\n { placeId: 1019, cityName: 'HAGFORS', countryName: 'SWEDEN' },\r\n { placeId: 995, cityName: 'HAGSHULT', countryName: 'SWEDEN' },\r\n { placeId: 1053, cityName: 'HALLEFORS', countryName: 'SWEDEN' },\r\n { placeId: 999, cityName: 'HALLVIKEN', countryName: 'SWEDEN' },\r\n { placeId: 994, cityName: 'HALMSTAD', countryName: 'SWEDEN' },\r\n { placeId: 1042, cityName: 'HARNOSAND', countryName: 'SWEDEN' },\r\n { placeId: 5611, cityName: 'HASSLEHOLM', countryName: 'SWEDEN' },\r\n { placeId: 1001, cityName: 'HEDE', countryName: 'SWEDEN' },\r\n { placeId: 1048, cityName: 'HEMAVAN TARNABY', countryName: 'SWEDEN' },\r\n { placeId: 956, cityName: 'HERRLJUNGA', countryName: 'SWEDEN' },\r\n { placeId: 984, cityName: 'HOGANAS', countryName: 'SWEDEN' },\r\n { placeId: 1004, cityName: 'HUDIKSVALL', countryName: 'SWEDEN' },\r\n { placeId: 1026, cityName: 'HULTSFRED-VIMMERBY', countryName: 'SWEDEN' },\r\n { placeId: 1040, cityName: 'IDRE', countryName: 'SWEDEN' },\r\n { placeId: 1005, cityName: 'JOKKMOKK', countryName: 'SWEDEN' },\r\n { placeId: 958, cityName: 'JONKOPING', countryName: 'SWEDEN' },\r\n { placeId: 986, cityName: 'KAGEROD', countryName: 'SWEDEN' },\r\n { placeId: 1044, cityName: 'KALIXFORS', countryName: 'SWEDEN' },\r\n { placeId: 992, cityName: 'KALMAR', countryName: 'SWEDEN' },\r\n { placeId: 966, cityName: 'KARLSBORG', countryName: 'SWEDEN' },\r\n { placeId: 973, cityName: 'KARLSKOGA', countryName: 'SWEDEN' },\r\n { placeId: 1020, cityName: 'KARLSTAD', countryName: 'SWEDEN' },\r\n { placeId: 1054, cityName: 'KATRINEHOLM', countryName: 'SWEDEN' },\r\n { placeId: 1012, cityName: 'KIRUNA', countryName: 'SWEDEN' },\r\n { placeId: 1056, cityName: 'KOPING', countryName: 'SWEDEN' },\r\n { placeId: 1006, cityName: 'KRAMFORS-SOLLEFTEA', countryName: 'SWEDEN' },\r\n { placeId: 987, cityName: 'KRISTIANSTAD', countryName: 'SWEDEN' },\r\n { placeId: 988, cityName: 'LANDSKRONA', countryName: 'SWEDEN' },\r\n { placeId: 1028, cityName: 'LAXA', countryName: 'SWEDEN' },\r\n { placeId: 960, cityName: 'LIDKOPING', countryName: 'SWEDEN' },\r\n { placeId: 948, cityName: 'LINKOPING', countryName: 'SWEDEN' },\r\n { placeId: 983, cityName: 'LJUNGBY', countryName: 'SWEDEN' },\r\n { placeId: 6589, cityName: 'LJUNGBYHED', countryName: 'SWEDEN' },\r\n { placeId: 1045, cityName: 'LJUSDAL', countryName: 'SWEDEN' },\r\n { placeId: 1027, cityName: 'LUDVIKA', countryName: 'SWEDEN' },\r\n { placeId: 1021, cityName: 'LULEA', countryName: 'SWEDEN' },\r\n { placeId: 989, cityName: 'LUND', countryName: 'SWEDEN' },\r\n { placeId: 1007, cityName: 'LYCKSELE', countryName: 'SWEDEN' },\r\n { placeId: 993, cityName: 'MALMO', countryName: 'SWEDEN' },\r\n { placeId: 1055, cityName: 'MALUNG', countryName: 'SWEDEN' },\r\n { placeId: 6929, cityName: 'MELLANSEL', countryName: 'SWEDEN' },\r\n { placeId: 7007, cityName: 'MOHED', countryName: 'SWEDEN' },\r\n { placeId: 974, cityName: 'MORA', countryName: 'SWEDEN' },\r\n { placeId: 975, cityName: 'MUNKFORS', countryName: 'SWEDEN' },\r\n { placeId: 1032, cityName: 'NORRKOPING', countryName: 'SWEDEN' },\r\n { placeId: 7279, cityName: 'NORRTALJE', countryName: 'SWEDEN' },\r\n { placeId: 998, cityName: 'OLANDA', countryName: 'SWEDEN' },\r\n { placeId: 1008, cityName: 'OPTAND', countryName: 'SWEDEN' },\r\n { placeId: 1018, cityName: 'OREBRO', countryName: 'SWEDEN' },\r\n { placeId: 7412, cityName: 'ORESTEN', countryName: 'SWEDEN' },\r\n { placeId: 1010, cityName: 'ORNSKOLDSVIK', countryName: 'SWEDEN' },\r\n { placeId: 1013, cityName: 'ORSA', countryName: 'SWEDEN' },\r\n { placeId: 990, cityName: 'OSKARSHAMN', countryName: 'SWEDEN' },\r\n { placeId: 7447, cityName: 'OVERKALIX', countryName: 'SWEDEN' },\r\n { placeId: 7448, cityName: 'OVIKEN', countryName: 'SWEDEN' },\r\n { placeId: 7474, cityName: 'PAJALA-YLLAS', countryName: 'SWEDEN' },\r\n { placeId: 1011, cityName: 'PITEA', countryName: 'SWEDEN' },\r\n { placeId: 952, cityName: 'RADA', countryName: 'SWEDEN' },\r\n { placeId: 1046, cityName: 'RAMSELE', countryName: 'SWEDEN' },\r\n { placeId: 951, cityName: 'RONNEBY', countryName: 'SWEDEN' },\r\n { placeId: 965, cityName: 'SAFFLE', countryName: 'SWEDEN' },\r\n { placeId: 8077, cityName: 'SANDVIK', countryName: 'SWEDEN' },\r\n { placeId: 967, cityName: 'SATENAS', countryName: 'SWEDEN' },\r\n { placeId: 1057, cityName: 'SILJANSNAS', countryName: 'SWEDEN' },\r\n { placeId: 985, cityName: 'SJOBO', countryName: 'SWEDEN' },\r\n { placeId: 1014, cityName: 'SKELLEFTEA', countryName: 'SWEDEN' },\r\n { placeId: 961, cityName: 'SKOVDE', countryName: 'SWEDEN' },\r\n { placeId: 997, cityName: 'SMALANDSSTENAR', countryName: 'SWEDEN' },\r\n { placeId: 8303, cityName: 'SODERHAMN', countryName: 'SWEDEN' },\r\n { placeId: 1000, cityName: 'SOLLEFTEA', countryName: 'SWEDEN' },\r\n { placeId: 13257, cityName: 'STEGEBORG', countryName: 'SWEDEN' },\r\n { placeId: 968, cityName: 'STOCKHOLM', countryName: 'SWEDEN' },\r\n { placeId: 1039, cityName: 'STORUMAN', countryName: 'SWEDEN' },\r\n { placeId: 8489, cityName: 'STORVIK', countryName: 'SWEDEN' },\r\n { placeId: 962, cityName: 'STROMSTAD', countryName: 'SWEDEN' },\r\n { placeId: 969, cityName: 'SUNDBRO', countryName: 'SWEDEN' },\r\n { placeId: 1009, cityName: 'SUNDSVALL-HARNOSAND', countryName: 'SWEDEN' },\r\n { placeId: 977, cityName: 'SUNNE', countryName: 'SWEDEN' },\r\n { placeId: 1002, cityName: 'SVEG', countryName: 'SWEDEN' },\r\n { placeId: 8659, cityName: 'TIDAHOLM', countryName: 'SWEDEN' },\r\n { placeId: 976, cityName: 'TIERP', countryName: 'SWEDEN' },\r\n { placeId: 8357, cityName: 'TOMELILLA', countryName: 'SWEDEN' },\r\n { placeId: 1033, cityName: 'TORSBY', countryName: 'SWEDEN' },\r\n { placeId: 963, cityName: 'TROLLHATTAN-VANERSBORG', countryName: 'SWEDEN' },\r\n { placeId: 8774, cityName: 'UDDEVALLA', countryName: 'SWEDEN' },\r\n { placeId: 1015, cityName: 'UMEA', countryName: 'SWEDEN' },\r\n { placeId: 950, cityName: 'UPPSALA', countryName: 'SWEDEN' },\r\n { placeId: 1037, cityName: 'VANGSO', countryName: 'SWEDEN' },\r\n { placeId: 964, cityName: 'VARBERG', countryName: 'SWEDEN' },\r\n { placeId: 13586, cityName: 'VARGARDA', countryName: 'SWEDEN' },\r\n { placeId: 1036, cityName: 'VASTERAS', countryName: 'SWEDEN' },\r\n { placeId: 1035, cityName: 'VASTERVIK', countryName: 'SWEDEN' },\r\n { placeId: 996, cityName: 'VAXJO', countryName: 'SWEDEN' },\r\n { placeId: 8834, cityName: 'VELLINGE', countryName: 'SWEDEN' },\r\n { placeId: 1022, cityName: 'VIDSEL', countryName: 'SWEDEN' },\r\n { placeId: 1016, cityName: 'VILHELMINA', countryName: 'SWEDEN' },\r\n { placeId: 1034, cityName: 'VISBY', countryName: 'SWEDEN' },\r\n { placeId: 1029, cityName: 'VISINGSO', countryName: 'SWEDEN' },\r\n { placeId: 4115, cityName: 'AMBRI', countryName: 'SWITZERLAND' },\r\n { placeId: 2191, cityName: 'AMLIKON', countryName: 'SWITZERLAND' },\r\n { placeId: 2200, cityName: 'BAD RAGAZ', countryName: 'SWITZERLAND' },\r\n { placeId: 2208, cityName: 'BASEL', countryName: 'SWITZERLAND' },\r\n { placeId: 2199, cityName: 'BERN', countryName: 'SWITZERLAND' },\r\n { placeId: 2177, cityName: 'BEX', countryName: 'SWITZERLAND' },\r\n { placeId: 2211, cityName: 'BIEL-KAPPELEN', countryName: 'SWITZERLAND' },\r\n { placeId: 2201, cityName: 'BIRRFELD', countryName: 'SWITZERLAND' },\r\n { placeId: 9928, cityName: 'BRESSAUCOURT', countryName: 'SWITZERLAND' },\r\n { placeId: 4636, cityName: 'BUOCHS', countryName: 'SWITZERLAND' },\r\n { placeId: 2215, cityName: 'BUTTWIL', countryName: 'SWITZERLAND' },\r\n { placeId: 2205, cityName: 'COURTELARY', countryName: 'SWITZERLAND' },\r\n { placeId: 2188, cityName: 'DUBENDORF', countryName: 'SWITZERLAND' },\r\n { placeId: 2179, cityName: 'ECUVILLENS', countryName: 'SWITZERLAND' },\r\n { placeId: 2189, cityName: 'EMMEN', countryName: 'SWITZERLAND' },\r\n { placeId: 2204, cityName: 'FRICKTAL-SCHUPFART', countryName: 'SWITZERLAND' },\r\n { placeId: 2180, cityName: 'GENEVA', countryName: 'SWITZERLAND' },\r\n { placeId: 2202, cityName: 'GRENCHEN', countryName: 'SWITZERLAND' },\r\n { placeId: 2186, cityName: 'GRUYERES', countryName: 'SWITZERLAND' },\r\n { placeId: 2209, cityName: 'HAUSEN AM ALBIS', countryName: 'SWITZERLAND' },\r\n { placeId: 2184, cityName: 'LA COTE', countryName: 'SWITZERLAND' },\r\n { placeId: 2193, cityName: 'LANGENTHAL', countryName: 'SWITZERLAND' },\r\n { placeId: 2182, cityName: 'LAUSANNE', countryName: 'SWITZERLAND' },\r\n { placeId: 2178, cityName: 'LES EPLATURES', countryName: 'SWITZERLAND' },\r\n { placeId: 2207, cityName: 'LOCARNO', countryName: 'SWITZERLAND' },\r\n { placeId: 2214, cityName: 'LOMMIS', countryName: 'SWITZERLAND' },\r\n { placeId: 2198, cityName: 'LUGANO', countryName: 'SWITZERLAND' },\r\n { placeId: 2210, cityName: 'LUZERN-BEROMUNSTER', countryName: 'SWITZERLAND' },\r\n { placeId: 2197, cityName: 'MONTRICHER', countryName: 'SWITZERLAND' },\r\n { placeId: 2196, cityName: 'MOTIERS', countryName: 'SWITZERLAND' },\r\n { placeId: 2183, cityName: 'NEUCHATEL', countryName: 'SWITZERLAND' },\r\n { placeId: 2190, cityName: 'PAYERNE', countryName: 'SWITZERLAND' },\r\n { placeId: 2218, cityName: 'PORRENTRUY', countryName: 'SWITZERLAND' },\r\n { placeId: 7888, cityName: 'REICHENBACH', countryName: 'SWITZERLAND' },\r\n { placeId: 2181, cityName: 'SAANEN', countryName: 'SWITZERLAND' },\r\n { placeId: 2213, cityName: 'SAMEDAN', countryName: 'SWITZERLAND' },\r\n { placeId: 2192, cityName: 'SCHAFFHAUSEN', countryName: 'SWITZERLAND' },\r\n { placeId: 2185, cityName: 'SION', countryName: 'SWITZERLAND' },\r\n { placeId: 2216, cityName: 'SITTERDORF', countryName: 'SWITZERLAND' },\r\n { placeId: 2206, cityName: 'SPECK-FEHRALTORF', countryName: 'SWITZERLAND' },\r\n { placeId: 2212, cityName: 'ST GALLEN', countryName: 'SWITZERLAND' },\r\n { placeId: 13234, cityName: 'ST. STEPHAN', countryName: 'SWITZERLAND' },\r\n { placeId: 2217, cityName: 'THUN', countryName: 'SWITZERLAND' },\r\n { placeId: 2194, cityName: 'TRIENGEN', countryName: 'SWITZERLAND' },\r\n { placeId: 2195, cityName: 'WANGEN-LACHEN', countryName: 'SWITZERLAND' },\r\n { placeId: 2187, cityName: 'YVERDON-LES-BAINS', countryName: 'SWITZERLAND' },\r\n { placeId: 2203, cityName: 'ZURICH', countryName: 'SWITZERLAND' },\r\n { placeId: 2380, cityName: 'ALEPPO', countryName: 'SYRIA' },\r\n { placeId: 2381, cityName: 'DAMASCUS', countryName: 'SYRIA' },\r\n { placeId: 5096, cityName: 'DEIR ZZOR', countryName: 'SYRIA' },\r\n { placeId: 5632, cityName: 'KAMISHLY', countryName: 'SYRIA' },\r\n { placeId: 6450, cityName: 'LATAKIA', countryName: 'SYRIA' },\r\n { placeId: 7484, cityName: 'PALMYRA', countryName: 'SYRIA' },\r\n { placeId: 4812, cityName: 'CHIAYI', countryName: 'TAIWAN' },\r\n { placeId: 5525, cityName: 'GANGSHAN', countryName: 'TAIWAN' },\r\n { placeId: 5828, cityName: 'HENGCHUN', countryName: 'TAIWAN' },\r\n { placeId: 5895, cityName: 'HSINCHU', countryName: 'TAIWAN' },\r\n { placeId: 5896, cityName: 'HUALIEN', countryName: 'TAIWAN' },\r\n { placeId: 2412, cityName: 'KAOHSIUNG', countryName: 'TAIWAN' },\r\n { placeId: 6250, cityName: 'KINMEN', countryName: 'TAIWAN' },\r\n { placeId: 6438, cityName: 'LANYU', countryName: 'TAIWAN' },\r\n { placeId: 6612, cityName: 'LONGTAN', countryName: 'TAIWAN' },\r\n { placeId: 6684, cityName: 'LUDAO', countryName: 'TAIWAN' },\r\n { placeId: 6709, cityName: 'MAGONG', countryName: 'TAIWAN' },\r\n { placeId: 6871, cityName: 'MATSU', countryName: 'TAIWAN' },\r\n { placeId: 7659, cityName: 'PINGTUNG', countryName: 'TAIWAN' },\r\n { placeId: 8548, cityName: 'TAICHUNG', countryName: 'TAIWAN' },\r\n { placeId: 8550, cityName: 'TAINAN', countryName: 'TAIWAN' },\r\n { placeId: 2413, cityName: 'TAIPEI', countryName: 'TAIWAN' },\r\n { placeId: 8553, cityName: 'TAITUNG', countryName: 'TAIWAN' },\r\n { placeId: 8580, cityName: 'TAOYUAN', countryName: 'TAIWAN' },\r\n { placeId: 8910, cityName: 'WANG-AN', countryName: 'TAIWAN' },\r\n { placeId: 2653, cityName: 'DUSHANBE', countryName: 'TAJIKISTAN' },\r\n { placeId: 2654, cityName: 'KHUDZHAND', countryName: 'TAJIKISTAN' },\r\n { placeId: 6342, cityName: 'KULYAB', countryName: 'TAJIKISTAN' },\r\n { placeId: 6346, cityName: 'KURGAN-TYUBE', countryName: 'TAJIKISTAN' },\r\n { placeId: 4230, cityName: 'ARUSHA', countryName: 'TANZANIA' },\r\n { placeId: 4628, cityName: 'BUKOBA', countryName: 'TANZANIA' },\r\n { placeId: 4860, cityName: 'CHUNYA', countryName: 'TANZANIA' },\r\n { placeId: 1224, cityName: 'DAR-ES-SALAAM', countryName: 'TANZANIA' },\r\n { placeId: 5189, cityName: 'DODOMA', countryName: 'TANZANIA' },\r\n { placeId: 5980, cityName: 'INYONGA', countryName: 'TANZANIA' },\r\n { placeId: 5988, cityName: 'IRINGA', countryName: 'TANZANIA' },\r\n { placeId: 6157, cityName: 'KASULU', countryName: 'TANZANIA' },\r\n { placeId: 6217, cityName: 'KIBONDO', countryName: 'TANZANIA' },\r\n { placeId: 6221, cityName: 'KIGOMA', countryName: 'TANZANIA' },\r\n { placeId: 1225, cityName: 'KILIMANJARO', countryName: 'TANZANIA' },\r\n { placeId: 6228, cityName: 'KILIMATINDE', countryName: 'TANZANIA' },\r\n { placeId: 6235, cityName: 'KILOSA', countryName: 'TANZANIA' },\r\n { placeId: 6237, cityName: 'KILWA', countryName: 'TANZANIA' },\r\n { placeId: 6260, cityName: 'KIRONDATAL', countryName: 'TANZANIA' },\r\n { placeId: 6313, cityName: 'KONDOA', countryName: 'TANZANIA' },\r\n { placeId: 6317, cityName: 'KONGWA', countryName: 'TANZANIA' },\r\n { placeId: 6410, cityName: 'LAKE MANYARA', countryName: 'TANZANIA' },\r\n { placeId: 6571, cityName: 'LINDI', countryName: 'TANZANIA' },\r\n { placeId: 6585, cityName: 'LIULI', countryName: 'TANZANIA' },\r\n { placeId: 6603, cityName: 'LOLIONDO', countryName: 'TANZANIA' },\r\n { placeId: 6703, cityName: 'MAFIA', countryName: 'TANZANIA' },\r\n { placeId: 6704, cityName: 'MAFINGA', countryName: 'TANZANIA' },\r\n { placeId: 6847, cityName: 'MASASI', countryName: 'TANZANIA' },\r\n { placeId: 6860, cityName: 'MASWA', countryName: 'TANZANIA' },\r\n { placeId: 6894, cityName: 'MBEYA', countryName: 'TANZANIA' },\r\n { placeId: 7018, cityName: 'MOMBO', countryName: 'TANZANIA' },\r\n { placeId: 7073, cityName: 'MOROGORO', countryName: 'TANZANIA' },\r\n { placeId: 7081, cityName: 'MOSHI', countryName: 'TANZANIA' },\r\n { placeId: 7102, cityName: 'MPANDA', countryName: 'TANZANIA' },\r\n { placeId: 7105, cityName: 'MPWAPWA', countryName: 'TANZANIA' },\r\n { placeId: 7113, cityName: 'MTWARA', countryName: 'TANZANIA' },\r\n { placeId: 7119, cityName: 'MUFINDI', countryName: 'TANZANIA' },\r\n { placeId: 7144, cityName: 'MUSOMA', countryName: 'TANZANIA' },\r\n { placeId: 7151, cityName: 'MVUMI', countryName: 'TANZANIA' },\r\n { placeId: 7153, cityName: 'MWADUI', countryName: 'TANZANIA' },\r\n { placeId: 7154, cityName: 'MWANZA', countryName: 'TANZANIA' },\r\n { placeId: 6498, cityName: 'NACHINGWEA', countryName: 'TANZANIA' },\r\n { placeId: 7250, cityName: 'NGARA', countryName: 'TANZANIA' },\r\n { placeId: 7269, cityName: 'NJOMBE', countryName: 'TANZANIA' },\r\n { placeId: 7603, cityName: 'PEMBA', countryName: 'TANZANIA' },\r\n { placeId: 8024, cityName: 'SAME', countryName: 'TANZANIA' },\r\n { placeId: 8192, cityName: 'SERONERA', countryName: 'TANZANIA' },\r\n { placeId: 8237, cityName: 'SHINYANGA', countryName: 'TANZANIA' },\r\n { placeId: 8270, cityName: 'SINGIDA', countryName: 'TANZANIA' },\r\n { placeId: 8316, cityName: 'SONGEA', countryName: 'TANZANIA' },\r\n { placeId: 8510, cityName: 'SUMBAWANGA', countryName: 'TANZANIA' },\r\n { placeId: 8531, cityName: 'TABORA', countryName: 'TANZANIA' },\r\n { placeId: 8578, cityName: 'TANGA', countryName: 'TANZANIA' },\r\n { placeId: 8747, cityName: 'TUNDURU', countryName: 'TANZANIA' },\r\n { placeId: 8779, cityName: 'UKEREWE', countryName: 'TANZANIA' },\r\n { placeId: 8799, cityName: 'URAMBO', countryName: 'TANZANIA' },\r\n { placeId: 8805, cityName: 'UTETE', countryName: 'TANZANIA' },\r\n { placeId: 8810, cityName: 'UVINZA', countryName: 'TANZANIA' },\r\n { placeId: 8978, cityName: 'WEST KILIMANJARO', countryName: 'TANZANIA' },\r\n { placeId: 1226, cityName: 'ZANZIBAR', countryName: 'TANZANIA' },\r\n { placeId: 2699, cityName: 'BANGKOK', countryName: 'THAILAND' },\r\n { placeId: 2719, cityName: 'BURI RAM', countryName: 'THAILAND' },\r\n { placeId: 2701, cityName: 'CHIANG MAI', countryName: 'THAILAND' },\r\n { placeId: 2702, cityName: 'CHIANG RAI', countryName: 'THAILAND' },\r\n { placeId: 4853, cityName: 'CHON BURI', countryName: 'THAILAND' },\r\n { placeId: 2706, cityName: 'CHUMPHON', countryName: 'THAILAND' },\r\n { placeId: 2717, cityName: 'KHON KAEN', countryName: 'THAILAND' },\r\n { placeId: 2708, cityName: 'KRABI', countryName: 'THAILAND' },\r\n { placeId: 6421, cityName: 'LAMPANG', countryName: 'THAILAND' },\r\n { placeId: 2718, cityName: 'LOEI', countryName: 'THAILAND' },\r\n { placeId: 6617, cityName: 'LOP BURI', countryName: 'THAILAND' },\r\n { placeId: 6701, cityName: 'MAE HONG SON', countryName: 'THAILAND' },\r\n { placeId: 11794, cityName: 'MAEHONGSON', countryName: 'THAILAND' },\r\n { placeId: 7170, cityName: 'NAKHON PATHOM', countryName: 'THAILAND' },\r\n { placeId: 2723, cityName: 'NAKHON PHANOM', countryName: 'THAILAND' },\r\n { placeId: 2720, cityName: 'NAKHON RATCHASIMA', countryName: 'THAILAND' },\r\n { placeId: 7171, cityName: 'NAKHON SAWAN', countryName: 'THAILAND' },\r\n { placeId: 2707, cityName: 'NAKHON SI THAMMARAT', countryName: 'THAILAND' },\r\n { placeId: 7179, cityName: 'NAN', countryName: 'THAILAND' },\r\n { placeId: 2705, cityName: 'NARATHIWAT', countryName: 'THAILAND' },\r\n { placeId: 2710, cityName: 'PATTANI', countryName: 'THAILAND' },\r\n { placeId: 7622, cityName: 'PHETCHABUN', countryName: 'THAILAND' },\r\n { placeId: 7628, cityName: 'PHITSANULOK', countryName: 'THAILAND' },\r\n { placeId: 7629, cityName: 'PHRAE', countryName: 'THAILAND' },\r\n { placeId: 2711, cityName: 'PHUKET', countryName: 'THAILAND' },\r\n { placeId: 7753, cityName: 'PRACHIN BURI', countryName: 'THAILAND' },\r\n { placeId: 2703, cityName: 'PRACHUAP KHIRI KHAN', countryName: 'THAILAND' },\r\n { placeId: 2712, cityName: 'RANONG', countryName: 'THAILAND' },\r\n { placeId: 7863, cityName: 'RATCHABURI', countryName: 'THAILAND' },\r\n { placeId: 2700, cityName: 'RAYONG', countryName: 'THAILAND' },\r\n { placeId: 2722, cityName: 'ROI ET', countryName: 'THAILAND' },\r\n { placeId: 2715, cityName: 'SAKON NAKHON', countryName: 'THAILAND' },\r\n { placeId: 2709, cityName: 'SONGKHLA', countryName: 'THAILAND' },\r\n { placeId: 8166, cityName: 'SUKHOTHAI', countryName: 'THAILAND' },\r\n { placeId: 2704, cityName: 'SURAT THANI', countryName: 'THAILAND' },\r\n { placeId: 2716, cityName: 'SURIN', countryName: 'THAILAND' },\r\n { placeId: 8555, cityName: 'TAK', countryName: 'THAILAND' },\r\n { placeId: 2713, cityName: 'TRANG', countryName: 'THAILAND' },\r\n { placeId: 13475, cityName: 'TRAT', countryName: 'THAILAND' },\r\n { placeId: 2721, cityName: 'UBON RATCHATHANI', countryName: 'THAILAND' },\r\n { placeId: 2714, cityName: 'UDON THANI', countryName: 'THAILAND' },\r\n { placeId: 8943, cityName: 'WATTHANA NAKHON', countryName: 'THAILAND' },\r\n { placeId: 4148, cityName: 'ANIE', countryName: 'TOGO' },\r\n { placeId: 4252, cityName: 'ATAKPAME', countryName: 'TOGO' },\r\n { placeId: 5063, cityName: 'DAPAONG', countryName: 'TOGO' },\r\n { placeId: 158, cityName: 'LOME', countryName: 'TOGO' },\r\n { placeId: 157, cityName: 'NIAMTOUGOU', countryName: 'TOGO' },\r\n { placeId: 8082, cityName: 'SANSANNE-MANGO', countryName: 'TOGO' },\r\n { placeId: 8305, cityName: 'SOKODE', countryName: 'TOGO' },\r\n { placeId: 5759, cityName: 'HA\\'APAI-LIFUKA ISLAND', countryName: 'TONGA' },\r\n { placeId: 7266, cityName: 'NIUAFO\\'OU', countryName: 'TONGA' },\r\n { placeId: 7267, cityName: 'NIUATOPUTAPU', countryName: 'TONGA' },\r\n { placeId: 2330, cityName: 'NUKU\\'ALOFA', countryName: 'TONGA' },\r\n { placeId: 8831, cityName: 'VAVA\\'U', countryName: 'TONGA' },\r\n { placeId: 7707, cityName: 'PORT OF SPAIN', countryName: 'TRINIDAD' },\r\n { placeId: 8140, cityName: 'SCARBOROUGH', countryName: 'TRINIDAD' },\r\n { placeId: 9502, cityName: 'AHE I', countryName: 'TUAMOTU IS' },\r\n { placeId: 4548, cityName: 'BORJ EL AMRI', countryName: 'TUNISIA' },\r\n { placeId: 156, cityName: 'DJERBA', countryName: 'TUNISIA' },\r\n { placeId: 5280, cityName: 'EL BORMA', countryName: 'TUNISIA' },\r\n { placeId: 10625, cityName: 'ENFIDHA', countryName: 'TUNISIA' },\r\n { placeId: 10840, cityName: 'GABES', countryName: 'TUNISIA' },\r\n { placeId: 5508, cityName: 'GAFSA', countryName: 'TUNISIA' },\r\n { placeId: 154, cityName: 'MONASTIR', countryName: 'TUNISIA' },\r\n { placeId: 8203, cityName: 'SFAX', countryName: 'TUNISIA' },\r\n { placeId: 8343, cityName: 'TABARKA', countryName: 'TUNISIA' },\r\n { placeId: 2847, cityName: 'TOZEUR', countryName: 'TUNISIA' },\r\n { placeId: 155, cityName: 'TUNIS', countryName: 'TUNISIA' },\r\n { placeId: 2220, cityName: 'ADANA', countryName: 'TURKEY' },\r\n { placeId: 4015, cityName: 'ADIYAMAN', countryName: 'TURKEY' },\r\n { placeId: 2221, cityName: 'AFYON', countryName: 'TURKEY' },\r\n { placeId: 4022, cityName: 'AGRI', countryName: 'TURKEY' },\r\n { placeId: 2227, cityName: 'AMASYA', countryName: 'TURKEY' },\r\n { placeId: 2219, cityName: 'ANKARA', countryName: 'TURKEY' },\r\n { placeId: 2222, cityName: 'ANTALYA', countryName: 'TURKEY' },\r\n { placeId: 2237, cityName: 'AYDIN', countryName: 'TURKEY' },\r\n { placeId: 2238, cityName: 'BALIKESIR', countryName: 'TURKEY' },\r\n { placeId: 2259, cityName: 'BATMAN', countryName: 'TURKEY' },\r\n { placeId: 2250, cityName: 'BODRUM', countryName: 'TURKEY' },\r\n { placeId: 2246, cityName: 'BURSA', countryName: 'TURKEY' },\r\n { placeId: 2239, cityName: 'CANAKKALE', countryName: 'TURKEY' },\r\n { placeId: 2234, cityName: 'DENIZLI', countryName: 'TURKEY' },\r\n { placeId: 2252, cityName: 'DIYARBAKIR', countryName: 'TURKEY' },\r\n { placeId: 2251, cityName: 'ELAZIG', countryName: 'TURKEY' },\r\n { placeId: 2233, cityName: 'EREGLI', countryName: 'TURKEY' },\r\n { placeId: 2253, cityName: 'ERZINCAN', countryName: 'TURKEY' },\r\n { placeId: 2254, cityName: 'ERZURUM', countryName: 'TURKEY' },\r\n { placeId: 2240, cityName: 'ESKISEHIR', countryName: 'TURKEY' },\r\n { placeId: 2223, cityName: 'GAZIANTEP', countryName: 'TURKEY' },\r\n { placeId: 5615, cityName: 'HATAY', countryName: 'TURKEY' },\r\n { placeId: 2224, cityName: 'ISKENDERUN', countryName: 'TURKEY' },\r\n { placeId: 2263, cityName: 'ISPARTA', countryName: 'TURKEY' },\r\n { placeId: 2236, cityName: 'ISTANBUL', countryName: 'TURKEY' },\r\n { placeId: 2241, cityName: 'IZMIR', countryName: 'TURKEY' },\r\n { placeId: 2245, cityName: 'IZMIT', countryName: 'TURKEY' },\r\n { placeId: 6103, cityName: 'KAHRAMANMARAS', countryName: 'TURKEY' },\r\n { placeId: 2255, cityName: 'KARS', countryName: 'TURKEY' },\r\n { placeId: 2225, cityName: 'KASTAMONU', countryName: 'TURKEY' },\r\n { placeId: 2231, cityName: 'KAYSERI', countryName: 'TURKEY' },\r\n { placeId: 2226, cityName: 'KONYA', countryName: 'TURKEY' },\r\n { placeId: 2242, cityName: 'KUTAHYA', countryName: 'TURKEY' },\r\n { placeId: 2230, cityName: 'MALATYA', countryName: 'TURKEY' },\r\n { placeId: 2248, cityName: 'MANISA', countryName: 'TURKEY' },\r\n { placeId: 6801, cityName: 'MARDIN', countryName: 'TURKEY' },\r\n { placeId: 2264, cityName: 'MILAS', countryName: 'TURKEY' },\r\n { placeId: 2247, cityName: 'MUGLA', countryName: 'TURKEY' },\r\n { placeId: 2260, cityName: 'MUS', countryName: 'TURKEY' },\r\n { placeId: 2235, cityName: 'NEVSEHIR', countryName: 'TURKEY' },\r\n { placeId: 2265, cityName: 'SAMSUN', countryName: 'TURKEY' },\r\n { placeId: 2257, cityName: 'SANLIURFA', countryName: 'TURKEY' },\r\n { placeId: 2261, cityName: 'SIIRT', countryName: 'TURKEY' },\r\n { placeId: 2262, cityName: 'SINOP', countryName: 'TURKEY' },\r\n { placeId: 2228, cityName: 'SIVAS', countryName: 'TURKEY' },\r\n { placeId: 2249, cityName: 'TEKIRDAG', countryName: 'TURKEY' },\r\n { placeId: 2232, cityName: 'TOKAT', countryName: 'TURKEY' },\r\n { placeId: 2256, cityName: 'TRABZON', countryName: 'TURKEY' },\r\n { placeId: 2243, cityName: 'USAK', countryName: 'TURKEY' },\r\n { placeId: 2258, cityName: 'VAN', countryName: 'TURKEY' },\r\n { placeId: 2244, cityName: 'YALOVA', countryName: 'TURKEY' },\r\n { placeId: 2229, cityName: 'ZONGULDAK', countryName: 'TURKEY' },\r\n { placeId: 2648, cityName: 'ASHGABAT', countryName: 'TURKMENISTAN' },\r\n { placeId: 2651, cityName: 'DASHOGUZ', countryName: 'TURKMENISTAN' },\r\n { placeId: 2650, cityName: 'MARY', countryName: 'TURKMENISTAN' },\r\n { placeId: 2652, cityName: 'TURKMENABAT', countryName: 'TURKMENISTAN' },\r\n { placeId: 2649, cityName: 'TURKMENBASHI', countryName: 'TURKMENISTAN' },\r\n { placeId: 5679, cityName: 'GRAND TURK I.', countryName: 'TURKS IS' },\r\n { placeId: 12906, cityName: 'SALT CAY', countryName: 'TURKS IS' },\r\n { placeId: 5499, cityName: 'FUNAFUTI', countryName: 'TUVALU' },\r\n { placeId: 4229, cityName: 'ARUA', countryName: 'UGANDA' },\r\n { placeId: 2860, cityName: 'ENTEBBE', countryName: 'UGANDA' },\r\n { placeId: 5742, cityName: 'GULU', countryName: 'UGANDA' },\r\n { placeId: 6114, cityName: 'KAKIRA', countryName: 'UGANDA' },\r\n { placeId: 6151, cityName: 'KASESE', countryName: 'UGANDA' },\r\n { placeId: 6326, cityName: 'KOTIDO', countryName: 'UGANDA' },\r\n { placeId: 6575, cityName: 'LIRA', countryName: 'UGANDA' },\r\n { placeId: 6851, cityName: 'MASINDI', countryName: 'UGANDA' },\r\n { placeId: 6893, cityName: 'MBARARA', countryName: 'UGANDA' },\r\n { placeId: 7076, cityName: 'MOROTO', countryName: 'UGANDA' },\r\n { placeId: 7476, cityName: 'PAKUBA', countryName: 'UGANDA' },\r\n { placeId: 8322, cityName: 'SOROTI', countryName: 'UGANDA' },\r\n { placeId: 4805, cityName: 'CHERKASY', countryName: 'UKRAINE' },\r\n { placeId: 2599, cityName: 'CHERNIVTSI', countryName: 'UKRAINE' },\r\n { placeId: 2592, cityName: 'DNIPROPETROVS\\'K', countryName: 'UKRAINE' },\r\n { placeId: 2590, cityName: 'DONETS\\'K', countryName: 'UKRAINE' },\r\n { placeId: 2597, cityName: 'IVANO-FRANKIVS\\'K', countryName: 'UKRAINE' },\r\n { placeId: 6202, cityName: 'KERCH', countryName: 'UKRAINE' },\r\n { placeId: 2596, cityName: 'KHARKIV', countryName: 'UKRAINE' },\r\n { placeId: 13912, cityName: 'Kherson', countryName: 'UKRAINE' },\r\n { placeId: 9174, cityName: 'KHMEL\\'NYTS\\'KYI', countryName: 'UKRAINE' },\r\n { placeId: 11495, cityName: 'KIROVOHRAD', countryName: 'UKRAINE' },\r\n { placeId: 2594, cityName: 'KRYVYI RIH', countryName: 'UKRAINE' },\r\n { placeId: 2589, cityName: 'KYIV', countryName: 'UKRAINE' },\r\n { placeId: 2598, cityName: 'L\\'VIV', countryName: 'UKRAINE' },\r\n { placeId: 2591, cityName: 'LUHANS\\'K', countryName: 'UKRAINE' },\r\n { placeId: 2820, cityName: 'MARIUPOL\\'', countryName: 'UKRAINE' },\r\n { placeId: 2602, cityName: 'MYKOLAIV', countryName: 'UKRAINE' },\r\n { placeId: 2603, cityName: 'ODESA', countryName: 'UKRAINE' },\r\n { placeId: 9233, cityName: 'POLTAVA', countryName: 'UKRAINE' },\r\n { placeId: 2600, cityName: 'RIVNE', countryName: 'UKRAINE' },\r\n { placeId: 13017, cityName: 'SEVASTOPOL\\'', countryName: 'UKRAINE' },\r\n { placeId: 2595, cityName: 'SIMFEROPOL\\'', countryName: 'UKRAINE' },\r\n { placeId: 9161, cityName: 'SUMY UKRAINE', countryName: 'UKRAINE' },\r\n { placeId: 2824, cityName: 'TERNOPIL\\'', countryName: 'UKRAINE' },\r\n { placeId: 2601, cityName: 'UZHHOROD', countryName: 'UKRAINE' },\r\n { placeId: 2604, cityName: 'VINNYTSIA', countryName: 'UKRAINE' },\r\n { placeId: 2593, cityName: 'ZAPORIZHZHIA', countryName: 'UKRAINE' },\r\n { placeId: 9489, cityName: 'ABU ALABYAD', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 2368, cityName: 'ABU DHABI', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 2369, cityName: 'AL AIN', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 4047, cityName: 'AL DHAFRA', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 9518, cityName: 'AL HAMRA', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 9519, cityName: 'AL QAFFY', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 4051, cityName: 'AL SAQR FIELD', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 4231, cityName: 'ARZANAH', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 4624, cityName: 'BUHASA', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 5070, cityName: 'DAS ISLAND', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 10465, cityName: 'DELMA', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 2370, cityName: 'DUBAI', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 2855, cityName: 'FUJAIRAH', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 5504, cityName: 'FUTAYSI', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 6051, cityName: 'JEBEL DHANA', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 11715, cityName: 'LIWA', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 7817, cityName: 'QARNAYN', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 12687, cityName: 'QSEEWRAH', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 2371, cityName: 'RAS AL KHAIMAH', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 2372, cityName: 'SHARJAH', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 13093, cityName: 'SIR BANI YAS', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 8787, cityName: 'UMM AL QUWAIN', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 13854, cityName: 'YASET ALI', countryName: 'UNITED ARAB EMIRATES' },\r\n { placeId: 9124, cityName: 'ZIRKU', countryName: 'UNITED ARAB EMIRATES' },\r\n // { placeId: 9276, cityName: '', countryName: 'UNITED KINGDOM' },\r\n { placeId: 715, cityName: 'ABERDEEN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 675, cityName: 'ALDERNEY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 737, cityName: 'ANDREWSFIELD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 9628, cityName: 'ASHCROFT', countryName: 'UNITED KINGDOM' },\r\n { placeId: 696, cityName: 'BAGBY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 774, cityName: 'BARKSTON HEATH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 727, cityName: 'BARRA', countryName: 'UNITED KINGDOM' },\r\n { placeId: 699, cityName: 'BARROW', countryName: 'UNITED KINGDOM' },\r\n { placeId: 738, cityName: 'BECCLES', countryName: 'UNITED KINGDOM' },\r\n { placeId: 9779, cityName: 'BEDFORD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 623, cityName: 'BELFAST', countryName: 'UNITED KINGDOM' },\r\n { placeId: 669, cityName: 'BEMBRIDGE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 723, cityName: 'BENBECULA', countryName: 'UNITED KINGDOM' },\r\n { placeId: 750, cityName: 'BENSON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 4451, cityName: 'BEVERLEY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 627, cityName: 'BIRMINGHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 686, cityName: 'BLACKBUSHE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 697, cityName: 'BLACKPOOL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 681, cityName: 'BODMIN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 649, cityName: 'BOSCOMBE DOWN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 739, cityName: 'BOURN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 667, cityName: 'BOURNEMOUTH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 9937, cityName: 'BRIMPTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 658, cityName: 'BRISTOL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 756, cityName: 'BRIZE NORTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 4671, cityName: 'CAERNARFON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 733, cityName: 'CAMBRIDGE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 654, cityName: 'CAMPBELTOWN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 656, cityName: 'CARDIFF', countryName: 'UNITED KINGDOM' },\r\n { placeId: 693, cityName: 'CARLISLE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 685, cityName: 'CHALGROVE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 673, cityName: 'CHICHESTER', countryName: 'UNITED KINGDOM' },\r\n { placeId: 10206, cityName: 'CHIVENOR', countryName: 'UNITED KINGDOM' },\r\n { placeId: 766, cityName: 'CHURCH FENTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 4870, cityName: 'CLACTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 4922, cityName: 'COLERNE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 10298, cityName: 'COLL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 4931, cityName: 'COLONSAY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 662, cityName: 'COMPTON-ABBAS', countryName: 'UNITED KINGDOM' },\r\n { placeId: 763, cityName: 'CONINGSBY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 759, cityName: 'COSFORD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 767, cityName: 'COTTESMORE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 629, cityName: 'COVENTRY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 745, cityName: 'CRANFIELD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 773, cityName: 'CRANWELL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 4999, cityName: 'CROWFIELD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 651, cityName: 'CULDROSE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 718, cityName: 'CUMBERNAULD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 5057, cityName: 'DAMYNS HALL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 5081, cityName: 'DEANLAND', countryName: 'UNITED KINGDOM' },\r\n { placeId: 682, cityName: 'DENHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 628, cityName: 'DERBY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 764, cityName: 'DISHFORTH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 644, cityName: 'DONCASTER SHEFFIELD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 725, cityName: 'DUNDEE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 5223, cityName: 'DUNKESWELL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 10535, cityName: 'DUNSFOLD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 705, cityName: 'DURHAM TEES VALLEY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 5228, cityName: 'DUXFORD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 5238, cityName: 'EAGLESCOTT', countryName: 'UNITED KINGDOM' },\r\n { placeId: 740, cityName: 'EARLS COLNE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 707, cityName: 'EAST MIDLANDS', countryName: 'UNITED KINGDOM' },\r\n { placeId: 5263, cityName: 'EDAY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 719, cityName: 'EDINBURGH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 741, cityName: 'ELMSETT', countryName: 'UNITED KINGDOM' },\r\n { placeId: 749, cityName: 'ELSTREE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 624, cityName: 'ENNISKILLEN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 10631, cityName: 'ENSTONE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 746, cityName: 'EXETER', countryName: 'UNITED KINGDOM' },\r\n { placeId: 5352, cityName: 'FAIR ISLE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 755, cityName: 'FAIRFORD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 747, cityName: 'FAIROAKS', countryName: 'UNITED KINGDOM' },\r\n { placeId: 5378, cityName: 'FARTHING CORNER', countryName: 'UNITED KINGDOM' },\r\n { placeId: 643, cityName: 'FENLAND', countryName: 'UNITED KINGDOM' },\r\n { placeId: 721, cityName: 'FIFE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 5442, cityName: 'FOWLMERE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 5495, cityName: 'FULL SUTTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 717, cityName: 'GLASGOW', countryName: 'UNITED KINGDOM' },\r\n { placeId: 631, cityName: 'GLOUCESTERSHIRE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 676, cityName: 'GUERNSEY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 761, cityName: 'HALTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 655, cityName: 'HAVERFORDWEST', countryName: 'UNITED KINGDOM' },\r\n { placeId: 702, cityName: 'HAWARDEN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 760, cityName: 'HENLOW', countryName: 'UNITED KINGDOM' },\r\n { placeId: 674, cityName: 'HENSTRIDGE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 692, cityName: 'HUCKNALL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 698, cityName: 'HUMBERSIDE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 716, cityName: 'INVERNESS', countryName: 'UNITED KINGDOM' },\r\n { placeId: 720, cityName: 'ISLAY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 703, cityName: 'ISLE OF MAN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 671, cityName: 'ISLE OF WIGHT', countryName: 'UNITED KINGDOM' },\r\n { placeId: 677, cityName: 'JERSEY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 636, cityName: 'KEMBLE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 6249, cityName: 'KINLOSS', countryName: 'UNITED KINGDOM' },\r\n { placeId: 712, cityName: 'KIRKWALL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 751, cityName: 'LAKENHEATH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 663, cityName: 'LANDS END', countryName: 'UNITED KINGDOM' },\r\n { placeId: 670, cityName: 'LASHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 6446, cityName: 'LASHENDEN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 6517, cityName: 'LEE-ON-SOLENT', countryName: 'UNITED KINGDOM' },\r\n { placeId: 700, cityName: 'LEEDS BRADFORD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 765, cityName: 'LEEMING', countryName: 'UNITED KINGDOM' },\r\n { placeId: 630, cityName: 'LEICESTER', countryName: 'UNITED KINGDOM' },\r\n { placeId: 6532, cityName: 'LERWICK', countryName: 'UNITED KINGDOM' },\r\n { placeId: 730, cityName: 'LEUCHARS', countryName: 'UNITED KINGDOM' },\r\n { placeId: 770, cityName: 'LINTON-ON-OUSE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 6582, cityName: 'LITTLE GRANSDEN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 660, cityName: 'LIVERPOOL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 661, cityName: 'LONDON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 626, cityName: 'LONDONDERRY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 731, cityName: 'LOSSIEMOUTH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 690, cityName: 'LYDD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 648, cityName: 'LYNEHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 640, cityName: 'MANCHESTER', countryName: 'UNITED KINGDOM' },\r\n { placeId: 691, cityName: 'MANSTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 775, cityName: 'MARHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 6888, cityName: 'MAYPOLE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 6950, cityName: 'MERRYFIELD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 758, cityName: 'MIDDLE WALLOP', countryName: 'UNITED KINGDOM' },\r\n { placeId: 752, cityName: 'MILDENHALL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 650, cityName: 'NETHERAVON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 695, cityName: 'NETHERTHORPE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 704, cityName: 'NEWCASTLE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 646, cityName: 'NEWQUAY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 625, cityName: 'NEWTOWNARDS', countryName: 'UNITED KINGDOM' },\r\n { placeId: 7285, cityName: 'NORTH RONALDSAY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 743, cityName: 'NORTH WEALD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 632, cityName: 'NORTHAMPTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 736, cityName: 'NORWICH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 634, cityName: 'NOTTINGHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 7337, cityName: 'OAKSEY PARK', countryName: 'UNITED KINGDOM' },\r\n { placeId: 7340, cityName: 'OBAN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 757, cityName: 'ODIHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 742, cityName: 'OLD BUCKENHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 688, cityName: 'OLD SARUM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 748, cityName: 'OXFORD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 684, cityName: 'PANSHANGER', countryName: 'UNITED KINGDOM' },\r\n { placeId: 7550, cityName: 'PAPA WESTRAY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 7605, cityName: 'PEMBREY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 7612, cityName: 'PERRANPORTH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 728, cityName: 'PERTH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 734, cityName: 'PETERBOROUGH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 664, cityName: 'PLYMOUTH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 7689, cityName: 'POPHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 722, cityName: 'PRESTWICK', countryName: 'UNITED KINGDOM' },\r\n { placeId: 680, cityName: 'REDHILL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 694, cityName: 'RETFORD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 7934, cityName: 'ROCHESTER', countryName: 'UNITED KINGDOM' },\r\n { placeId: 8073, cityName: 'SANDAY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 641, cityName: 'SANDTOFT', countryName: 'UNITED KINGDOM' },\r\n { placeId: 768, cityName: 'SCAMPTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 724, cityName: 'SCATSTA', countryName: 'UNITED KINGDOM' },\r\n { placeId: 665, cityName: 'SCILLY ISLES', countryName: 'UNITED KINGDOM' },\r\n { placeId: 7532, cityName: 'SEETHING', countryName: 'UNITED KINGDOM' },\r\n { placeId: 709, cityName: 'SHAWBURY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 642, cityName: 'SHERBURN-IN-ELMET', countryName: 'UNITED KINGDOM' },\r\n { placeId: 732, cityName: 'SHIPDHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 637, cityName: 'SHOBDON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 678, cityName: 'SHOREHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 8290, cityName: 'SLEAP', countryName: 'UNITED KINGDOM' },\r\n { placeId: 668, cityName: 'SOUTHAMPTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 689, cityName: 'SOUTHEND', countryName: 'UNITED KINGDOM' },\r\n { placeId: 652, cityName: 'ST ATHAN', countryName: 'UNITED KINGDOM' },\r\n { placeId: 735, cityName: 'STAPLEFORD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 726, cityName: 'STORNOWAY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 8496, cityName: 'STRONSAY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 645, cityName: 'STURGATE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 713, cityName: 'SUMBURGH', countryName: 'UNITED KINGDOM' },\r\n { placeId: 657, cityName: 'SWANSEA', countryName: 'UNITED KINGDOM' },\r\n { placeId: 633, cityName: 'TATENHILL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 708, cityName: 'TERN HILL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 672, cityName: 'THRUXTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 729, cityName: 'TIREE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 772, cityName: 'TOPCLIFFE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 8713, cityName: 'TRURO', countryName: 'UNITED KINGDOM' },\r\n { placeId: 638, cityName: 'TURWESTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 647, cityName: 'UPAVON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 710, cityName: 'VALLEY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 771, cityName: 'WADDINGTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 701, cityName: 'WARTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 753, cityName: 'WATTISHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 639, cityName: 'WELLESBOURNE MOUNTFORD', countryName: 'UNITED KINGDOM' },\r\n { placeId: 8967, cityName: 'WELSHPOOL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 8988, cityName: 'WEST WALES', countryName: 'UNITED KINGDOM' },\r\n { placeId: 8178, cityName: 'WESTRAY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 687, cityName: 'WHITE WALTHAM', countryName: 'UNITED KINGDOM' },\r\n { placeId: 714, cityName: 'WICK', countryName: 'UNITED KINGDOM' },\r\n { placeId: 706, cityName: 'WICKENBY', countryName: 'UNITED KINGDOM' },\r\n { placeId: 769, cityName: 'WITTERING', countryName: 'UNITED KINGDOM' },\r\n { placeId: 635, cityName: 'WOLVERHAMPTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 711, cityName: 'WOODVALE', countryName: 'UNITED KINGDOM' },\r\n { placeId: 744, cityName: 'WYCOMBE AIR PARK', countryName: 'UNITED KINGDOM' },\r\n { placeId: 754, cityName: 'WYTON', countryName: 'UNITED KINGDOM' },\r\n { placeId: 666, cityName: 'YEOVIL', countryName: 'UNITED KINGDOM' },\r\n { placeId: 653, cityName: 'YEOVILTON', countryName: 'UNITED KINGDOM' },\r\n // { placeId: 9371, cityName: '', countryName: 'UNITED STATES' },\r\n { placeId: 9483, cityName: 'ABBEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4735, cityName: 'ABERDEEN PROVING GROUNDS', countryName: 'UNITED STATES' },\r\n { placeId: 6716, cityName: 'ABERDEEN', countryName: 'UNITED STATES' },\r\n { placeId: 9143, cityName: 'ABILENE', countryName: 'UNITED STATES' },\r\n { placeId: 3147, cityName: 'ABINGDON', countryName: 'UNITED STATES' },\r\n { placeId: 4014, cityName: 'ADA', countryName: 'UNITED STATES' },\r\n { placeId: 9493, cityName: 'ADAK I', countryName: 'UNITED STATES' },\r\n { placeId: 2937, cityName: 'ADRIAN', countryName: 'UNITED STATES' },\r\n { placeId: 4017, cityName: 'AFTON', countryName: 'UNITED STATES' },\r\n { placeId: 4025, cityName: 'AHOSKIE', countryName: 'UNITED STATES' },\r\n { placeId: 4026, cityName: 'AIKEN', countryName: 'UNITED STATES' },\r\n { placeId: 4027, cityName: 'AINSWORTH', countryName: 'UNITED STATES' },\r\n { placeId: 4031, cityName: 'AITKIN', countryName: 'UNITED STATES' },\r\n { placeId: 9512, cityName: 'AKHIOK', countryName: 'UNITED STATES' },\r\n { placeId: 9513, cityName: 'AKIAK', countryName: 'UNITED STATES' },\r\n { placeId: 1254, cityName: 'AKRON', countryName: 'UNITED STATES' },\r\n { placeId: 4040, cityName: 'AKRON', countryName: 'UNITED STATES' },\r\n { placeId: 4059, cityName: 'ALABASTER', countryName: 'UNITED STATES' },\r\n { placeId: 9523, cityName: 'ALAKANUK', countryName: 'UNITED STATES' },\r\n { placeId: 4061, cityName: 'ALAMOGORDO', countryName: 'UNITED STATES' },\r\n { placeId: 4062, cityName: 'ALAMOSA', countryName: 'UNITED STATES' },\r\n { placeId: 4063, cityName: 'ALBANY', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1230, cityName: 'ALBANY', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4064, cityName: 'ALBEMARLE', countryName: 'UNITED STATES' },\r\n { placeId: 2938, cityName: 'ALBERT LEA', countryName: 'UNITED STATES' },\r\n { placeId: 4065, cityName: 'ALBION', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1228, cityName: 'ALBUQUERQUE', state: 'NM', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4069, cityName: 'ALEXANDER CITY', countryName: 'UNITED STATES' },\r\n { placeId: 4073, cityName: 'ALEXANDRIA', countryName: 'UNITED STATES' },\r\n { placeId: 4072, cityName: 'ALEXANDRIA', countryName: 'UNITED STATES' },\r\n { placeId: 4076, cityName: 'ALGONA', countryName: 'UNITED STATES' },\r\n { placeId: 4078, cityName: 'ALICE', countryName: 'UNITED STATES' },\r\n { placeId: 4079, cityName: 'ALICEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 9545, cityName: 'ALLAKAKET', countryName: 'UNITED STATES' },\r\n { placeId: 9546, cityName: 'ALLENTOWN', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1227, cityName: 'ALLENTOWN', state: 'PA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 2941, cityName: 'ALLIANCE', countryName: 'UNITED STATES' },\r\n { placeId: 4087, cityName: 'ALMA', countryName: 'UNITED STATES' },\r\n { placeId: 4088, cityName: 'ALMA', countryName: 'UNITED STATES' },\r\n { placeId: 1232, cityName: 'ALPENA', countryName: 'UNITED STATES' },\r\n { placeId: 4094, cityName: 'ALTON-ST LOUIS', countryName: 'UNITED STATES' },\r\n { placeId: 4096, cityName: 'ALTOONA', countryName: 'UNITED STATES' },\r\n { placeId: 4097, cityName: 'ALTURAS', countryName: 'UNITED STATES' },\r\n { placeId: 4098, cityName: 'ALTUS', countryName: 'UNITED STATES' },\r\n { placeId: 4100, cityName: 'ALVA', countryName: 'UNITED STATES' },\r\n { placeId: 1231, cityName: 'AMARILLO', countryName: 'UNITED STATES' },\r\n { placeId: 4113, cityName: 'AMBLER', countryName: 'UNITED STATES' },\r\n { placeId: 4117, cityName: 'AMERICUS', countryName: 'UNITED STATES' },\r\n { placeId: 4118, cityName: 'AMERY', countryName: 'UNITED STATES' },\r\n { placeId: 4119, cityName: 'AMES', countryName: 'UNITED STATES' },\r\n { placeId: 4126, cityName: 'ANAKTUVUK PASS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2393, cityName: 'ANCHORAGE', state: 'AK', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4132, cityName: 'ANDERSON', countryName: 'UNITED STATES' },\r\n { placeId: 4131, cityName: 'ANDERSON', countryName: 'UNITED STATES' },\r\n { placeId: 4135, cityName: 'ANDREWS', countryName: 'UNITED STATES' },\r\n { placeId: 4136, cityName: 'ANDREWS', countryName: 'UNITED STATES' },\r\n { placeId: 4140, cityName: 'ANGEL FIRE', countryName: 'UNITED STATES' },\r\n { placeId: 4144, cityName: 'ANGLETON/LAKE JACKSON', countryName: 'UNITED STATES' },\r\n { placeId: 4146, cityName: 'ANGOLA', countryName: 'UNITED STATES' },\r\n { placeId: 4147, cityName: 'ANIAK', countryName: 'UNITED STATES' },\r\n { placeId: 4153, cityName: 'ANKENY', countryName: 'UNITED STATES' },\r\n { placeId: 4154, cityName: 'ANN ARBOR', countryName: 'UNITED STATES' },\r\n { placeId: 9588, cityName: 'ANNAPOLIS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4157, cityName: 'ANNISTON', state: 'AL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4161, cityName: 'ANTHONY', countryName: 'UNITED STATES' },\r\n { placeId: 4162, cityName: 'ANTIGO', countryName: 'UNITED STATES' },\r\n { placeId: 4168, cityName: 'ANVIK', countryName: 'UNITED STATES' },\r\n { placeId: 9593, cityName: 'APALACHICOLA', countryName: 'UNITED STATES' },\r\n { placeId: 4171, cityName: 'APPLE VALLEY', countryName: 'UNITED STATES' },\r\n { placeId: 4172, cityName: 'APPLETON', countryName: 'UNITED STATES' },\r\n { placeId: 4173, cityName: 'APPLETON', countryName: 'UNITED STATES' },\r\n { placeId: 4206, cityName: 'ARCATA-EUREKA', countryName: 'UNITED STATES' },\r\n { placeId: 4207, cityName: 'ARCO', countryName: 'UNITED STATES' },\r\n { placeId: 4209, cityName: 'ARCTIC VILLAGE', countryName: 'UNITED STATES' },\r\n { placeId: 4211, cityName: 'ARDMORE', countryName: 'UNITED STATES' },\r\n { placeId: 4216, cityName: 'ARLINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 4217, cityName: 'ARLINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 4226, cityName: 'ARTESIA', countryName: 'UNITED STATES' },\r\n { placeId: 4235, cityName: 'ASH FLAT', countryName: 'UNITED STATES' },\r\n { placeId: 4237, cityName: 'ASHEBORO', countryName: 'UNITED STATES' },\r\n { placeId: 4239, cityName: 'ASHEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4241, cityName: 'ASHLAND', countryName: 'UNITED STATES' },\r\n { placeId: 2985, cityName: 'ASHLAND', countryName: 'UNITED STATES' },\r\n { placeId: 4242, cityName: 'ASHLEY', countryName: 'UNITED STATES' },\r\n { placeId: 3038, cityName: 'ASHTABULA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2815, cityName: 'ASPEN', state: 'CO', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 2948, cityName: 'ASTORIA', countryName: 'UNITED STATES' },\r\n { placeId: 4259, cityName: 'ATHENS', countryName: 'UNITED STATES' },\r\n { placeId: 3071, cityName: 'ATHENS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4258, cityName: 'ATHENS', state: 'GA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4260, cityName: 'ATHENS/ALBANY', countryName: 'UNITED STATES' },\r\n { placeId: 3171, cityName: 'ATKA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1234, cityName: 'ATLANTA', state: 'GA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4265, cityName: 'ATLANTA', countryName: 'UNITED STATES' },\r\n { placeId: 9650, cityName: 'ATLANTA', countryName: 'UNITED STATES' },\r\n { placeId: 9653, cityName: 'ATLANTIC CITY', countryName: 'UNITED STATES' },\r\n { placeId: 4266, cityName: 'ATLANTIC', countryName: 'UNITED STATES' },\r\n { placeId: 4269, cityName: 'ATOKA', countryName: 'UNITED STATES' },\r\n { placeId: 4270, cityName: 'ATQASUK', countryName: 'UNITED STATES' },\r\n { placeId: 4275, cityName: 'ATWOOD', countryName: 'UNITED STATES' },\r\n { placeId: 4280, cityName: 'AUBURN-LEWISTON', countryName: 'UNITED STATES' },\r\n { placeId: 4278, cityName: 'AUBURN', countryName: 'UNITED STATES' },\r\n { placeId: 4279, cityName: 'AUBURN', countryName: 'UNITED STATES' },\r\n { placeId: 4277, cityName: 'AUBURN', countryName: 'UNITED STATES' },\r\n { placeId: 3969, cityName: 'AUDUBON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2849, cityName: 'AUGUSTA', state: 'GA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3970, cityName: 'AUGUSTA', countryName: 'UNITED STATES' },\r\n { placeId: 3975, cityName: 'AURORA', countryName: 'UNITED STATES' },\r\n { placeId: 3144, cityName: 'AURORA', countryName: 'UNITED STATES' },\r\n { placeId: 3974, cityName: 'AURORA', countryName: 'UNITED STATES' },\r\n { placeId: 9676, cityName: 'AUSTIN', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1235, cityName: 'AUSTIN', state: 'TX', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 9675, cityName: 'AUSTIN', countryName: 'UNITED STATES' },\r\n { placeId: 2949, cityName: 'AUSTIN', countryName: 'UNITED STATES' },\r\n { placeId: 3976, cityName: 'AVA', countryName: 'UNITED STATES' },\r\n { placeId: 9679, cityName: 'AVALON', countryName: 'UNITED STATES' },\r\n { placeId: 3978, cityName: 'AVON PARK', countryName: 'UNITED STATES' },\r\n { placeId: 9680, cityName: 'AVON PARK', countryName: 'UNITED STATES' },\r\n { placeId: 4285, cityName: 'BAD AXE', countryName: 'UNITED STATES' },\r\n { placeId: 2954, cityName: 'BAINBRIDGE', countryName: 'UNITED STATES' },\r\n { placeId: 2956, cityName: 'BAKER CITY', countryName: 'UNITED STATES' },\r\n { placeId: 4307, cityName: 'BAKER', countryName: 'UNITED STATES' },\r\n { placeId: 4308, cityName: 'BAKERSFIELD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1252, cityName: 'BALTIMORE', state: 'MD', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 9703, cityName: 'BALTIMORE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1241, cityName: 'BANGOR', state: 'ME', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4335, cityName: 'BANNING', countryName: 'UNITED STATES' },\r\n { placeId: 9719, cityName: 'BAR HARBOR', countryName: 'UNITED STATES' },\r\n { placeId: 4339, cityName: 'BARABOO', countryName: 'UNITED STATES' },\r\n { placeId: 4345, cityName: 'BARDSTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 4351, cityName: 'BARNWELL', countryName: 'UNITED STATES' },\r\n { placeId: 4355, cityName: 'BARRE-MONTPELIER', countryName: 'UNITED STATES' },\r\n { placeId: 2390, cityName: 'BARROW', countryName: 'UNITED STATES' },\r\n { placeId: 4359, cityName: 'BARTER I LRRS', countryName: 'UNITED STATES' },\r\n { placeId: 4361, cityName: 'BARTLESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4362, cityName: 'BARTOW', countryName: 'UNITED STATES' },\r\n { placeId: 4370, cityName: 'BASSETT', countryName: 'UNITED STATES' },\r\n { placeId: 4371, cityName: 'BASTROP', countryName: 'UNITED STATES' },\r\n { placeId: 4373, cityName: 'BATAVIA', countryName: 'UNITED STATES' },\r\n { placeId: 4374, cityName: 'BATESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4375, cityName: 'BATESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4376, cityName: 'BATESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 1249, cityName: 'BATON ROUGE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4178, cityName: 'BATTLE CREEK', state: 'MI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4179, cityName: 'BATTLE MOUNTAIN', countryName: 'UNITED STATES' },\r\n { placeId: 4379, cityName: 'BAUDETTE', countryName: 'UNITED STATES' },\r\n { placeId: 4381, cityName: 'BAXLEY', countryName: 'UNITED STATES' },\r\n { placeId: 9758, cityName: 'BAY CITY', countryName: 'UNITED STATES' },\r\n { placeId: 9759, cityName: 'BAY ST LOUIS', countryName: 'UNITED STATES' },\r\n { placeId: 9761, cityName: 'BAYTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 4383, cityName: 'BEATRICE', countryName: 'UNITED STATES' },\r\n { placeId: 4384, cityName: 'BEATTY', countryName: 'UNITED STATES' },\r\n { placeId: 9765, cityName: 'BEAUFORT', countryName: 'UNITED STATES' },\r\n { placeId: 9766, cityName: 'BEAUFORT', countryName: 'UNITED STATES' },\r\n { placeId: 4386, cityName: 'BEAUMONT', countryName: 'UNITED STATES' },\r\n { placeId: 9768, cityName: 'BEAUMONT/PORT ARTHUR', countryName: 'UNITED STATES' },\r\n { placeId: 4390, cityName: 'BEAVER FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 9773, cityName: 'BEAVER I', countryName: 'UNITED STATES' },\r\n { placeId: 4388, cityName: 'BEAVER', countryName: 'UNITED STATES' },\r\n { placeId: 4393, cityName: 'BECKLEY', countryName: 'UNITED STATES' },\r\n { placeId: 4396, cityName: 'BEDFORD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4397, cityName: 'BEDFORD', state: 'MA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4395, cityName: 'BEDFORD', countryName: 'UNITED STATES' },\r\n { placeId: 4399, cityName: 'BEEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 9788, cityName: 'BELFAST', countryName: 'UNITED STATES' },\r\n { placeId: 4410, cityName: 'BELLAIRE', countryName: 'UNITED STATES' },\r\n { placeId: 2987, cityName: 'BELLE FOURCHE', countryName: 'UNITED STATES' },\r\n { placeId: 4411, cityName: 'BELLE PLAINE', countryName: 'UNITED STATES' },\r\n { placeId: 4412, cityName: 'BELLEFONTAINE', countryName: 'UNITED STATES' },\r\n { placeId: 4415, cityName: 'BELLEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4414, cityName: 'BELLEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 1244, cityName: 'BELLINGHAM', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4418, cityName: 'BELMAR-FARMINGDALE', state: 'NJ', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4420, cityName: 'BELUGA', countryName: 'UNITED STATES' },\r\n { placeId: 4421, cityName: 'BEMIDJI', countryName: 'UNITED STATES' },\r\n { placeId: 2952, cityName: 'BEND', countryName: 'UNITED STATES' },\r\n { placeId: 4427, cityName: 'BENNETTSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 2978, cityName: 'BENNINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 4430, cityName: 'BENSON', countryName: 'UNITED STATES' },\r\n { placeId: 4432, cityName: 'BENTON HARBOR', countryName: 'UNITED STATES' },\r\n { placeId: 4431, cityName: 'BENTON', countryName: 'UNITED STATES' },\r\n { placeId: 4433, cityName: 'BENTONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4440, cityName: 'BERLIN', countryName: 'UNITED STATES' },\r\n { placeId: 4446, cityName: 'BESSEMER', countryName: 'UNITED STATES' },\r\n { placeId: 4448, cityName: 'BETHEL', countryName: 'UNITED STATES' },\r\n { placeId: 4450, cityName: 'BETTLES', countryName: 'UNITED STATES' },\r\n { placeId: 9824, cityName: 'BEVERLY', countryName: 'UNITED STATES' },\r\n { placeId: 9826, cityName: 'BIG LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 4464, cityName: 'BIG PINEY', countryName: 'UNITED STATES' },\r\n { placeId: 4465, cityName: 'BIG RAPIDS', countryName: 'UNITED STATES' },\r\n { placeId: 4467, cityName: 'BIG SPRING', countryName: 'UNITED STATES' },\r\n { placeId: 4468, cityName: 'BIGFORK', countryName: 'UNITED STATES' },\r\n { placeId: 1243, cityName: 'BILLINGS', countryName: 'UNITED STATES' },\r\n { placeId: 9835, cityName: 'BILOXI', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4478, cityName: 'BINGHAMTON', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4484, cityName: 'BIRCHWOOD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1242, cityName: 'BIRMINGHAM', state: 'AL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4491, cityName: 'BISHOP', countryName: 'UNITED STATES' },\r\n { placeId: 4493, cityName: 'BISMARCK', countryName: 'UNITED STATES' },\r\n { placeId: 4500, cityName: 'BLACK RIVER FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 13949, cityName: 'Black Rock City', countryName: 'UNITED STATES' },\r\n { placeId: 4181, cityName: 'BLACKSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 4182, cityName: 'BLACKSTONE', countryName: 'UNITED STATES' },\r\n { placeId: 9859, cityName: 'BLACKWELL', countryName: 'UNITED STATES' },\r\n { placeId: 4183, cityName: 'BLAIR', countryName: 'UNITED STATES' },\r\n { placeId: 4502, cityName: 'BLAIR', countryName: 'UNITED STATES' },\r\n { placeId: 9862, cityName: 'BLAIRSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4503, cityName: 'BLAKELY', countryName: 'UNITED STATES' },\r\n { placeId: 4504, cityName: 'BLANDING', countryName: 'UNITED STATES' },\r\n { placeId: 9866, cityName: 'BLOCK ISLAND', countryName: 'UNITED STATES' },\r\n { placeId: 1245, cityName: 'BLOOMINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 4509, cityName: 'BLOOMINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 3124, cityName: 'BLUE EARTH', countryName: 'UNITED STATES' },\r\n { placeId: 2957, cityName: 'BLUEFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 2958, cityName: 'BLYTHE', countryName: 'UNITED STATES' },\r\n { placeId: 2967, cityName: 'BLYTHEVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 9876, cityName: 'BOCA RATON', state: 'FLORIDA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 2966, cityName: 'BOGALUSA', countryName: 'UNITED STATES' },\r\n { placeId: 4520, cityName: 'BOISE', countryName: 'UNITED STATES' },\r\n { placeId: 4542, cityName: 'BOONE', countryName: 'UNITED STATES' },\r\n { placeId: 4543, cityName: 'BOONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4547, cityName: 'BORGER', countryName: 'UNITED STATES' },\r\n { placeId: 4553, cityName: 'BOSCOBEL', countryName: 'UNITED STATES' },\r\n { placeId: 4557, cityName: 'BOSSIER CITY', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1247, cityName: 'BOSTON', state: 'MA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 9898, cityName: 'BOULDER CITY', countryName: 'UNITED STATES' },\r\n { placeId: 4567, cityName: 'BOULDER JUNCTION', countryName: 'UNITED STATES' },\r\n { placeId: 4566, cityName: 'BOULDER', countryName: 'UNITED STATES' },\r\n { placeId: 4571, cityName: 'BOUNTIFUL', countryName: 'UNITED STATES' },\r\n { placeId: 2964, cityName: 'BOWLING GREEN', countryName: 'UNITED STATES' },\r\n { placeId: 2961, cityName: 'BOWMAN', countryName: 'UNITED STATES' },\r\n { placeId: 4577, cityName: 'BOYNE FALLS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4578, cityName: 'BOZEMAN', state: 'MT', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4581, cityName: 'BRADFORD', countryName: 'UNITED STATES' },\r\n { placeId: 4582, cityName: 'BRADY', countryName: 'UNITED STATES' },\r\n { placeId: 4584, cityName: 'BRAINERD', countryName: 'UNITED STATES' },\r\n { placeId: 9920, cityName: 'BRANSON WEST', countryName: 'UNITED STATES' },\r\n { placeId: 9919, cityName: 'BRANSON', countryName: 'UNITED STATES' },\r\n { placeId: 9923, cityName: 'BRAWLEY', countryName: 'UNITED STATES' },\r\n { placeId: 4590, cityName: 'BREAUX BRIDGE', countryName: 'UNITED STATES' },\r\n { placeId: 4591, cityName: 'BRECKENRIDGE', countryName: 'UNITED STATES' },\r\n { placeId: 4593, cityName: 'BREMERTON', countryName: 'UNITED STATES' },\r\n { placeId: 9929, cityName: 'BREVIG MISSION', countryName: 'UNITED STATES' },\r\n { placeId: 9932, cityName: 'BRIDGEPORT', countryName: 'UNITED STATES' },\r\n { placeId: 4596, cityName: 'BRIDGEPORT', countryName: 'UNITED STATES' },\r\n { placeId: 4597, cityName: 'BRIDGEWATER', countryName: 'UNITED STATES' },\r\n { placeId: 4599, cityName: 'BRIGHAM CITY', countryName: 'UNITED STATES' },\r\n { placeId: 3138, cityName: 'BRISTOL-JOHNSON-KINGSPORT', countryName: 'UNITED STATES' },\r\n { placeId: 4602, cityName: 'BRITTON', countryName: 'UNITED STATES' },\r\n { placeId: 4605, cityName: 'BROKEN BOW', countryName: 'UNITED STATES' },\r\n { placeId: 4608, cityName: 'BROOKINGS', countryName: 'UNITED STATES' },\r\n { placeId: 2960, cityName: 'BROOKINGS', countryName: 'UNITED STATES' },\r\n { placeId: 4610, cityName: 'BROOKSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4611, cityName: 'BROWNFIELD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 9954, cityName: 'BROWNSVILLE', state: 'TEXAS', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4612, cityName: 'BROWNWOOD', countryName: 'UNITED STATES' },\r\n { placeId: 9957, cityName: 'BRUNSWICK', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1381, cityName: 'BRUNSWICK', state: 'GA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 9956, cityName: 'BRUNSWICK', countryName: 'UNITED STATES' },\r\n { placeId: 4614, cityName: 'BRYAN', countryName: 'UNITED STATES' },\r\n { placeId: 4615, cityName: 'BRYCE CANYON', countryName: 'UNITED STATES' },\r\n { placeId: 4186, cityName: 'BUCKEYE', countryName: 'UNITED STATES' },\r\n { placeId: 4187, cityName: 'BUCKLAND', countryName: 'UNITED STATES' },\r\n { placeId: 4618, cityName: 'BUENA VISTA', countryName: 'UNITED STATES' },\r\n { placeId: 4623, cityName: 'BUFFALO', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1251, cityName: 'BUFFALO', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4621, cityName: 'BUFFALO', countryName: 'UNITED STATES' },\r\n { placeId: 4622, cityName: 'BUFFALO', countryName: 'UNITED STATES' },\r\n { placeId: 4630, cityName: 'BULLHEAD CITY', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4640, cityName: 'BURBANK', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4642, cityName: 'BURLEY', countryName: 'UNITED STATES' },\r\n { placeId: 4644, cityName: 'BURLINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 4646, cityName: 'BURLINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 2962, cityName: 'BURLINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 2963, cityName: 'BURLINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 4645, cityName: 'BURLINGTON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1250, cityName: 'BURLINGTON', state: 'VT', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4647, cityName: 'BURLINGTON/MT VERNON', countryName: 'UNITED STATES' },\r\n { placeId: 4648, cityName: 'BURNET', countryName: 'UNITED STATES' },\r\n { placeId: 2959, cityName: 'BURNS', countryName: 'UNITED STATES' },\r\n { placeId: 4650, cityName: 'BURWELL', countryName: 'UNITED STATES' },\r\n { placeId: 4658, cityName: 'BUTLER', countryName: 'UNITED STATES' },\r\n { placeId: 4659, cityName: 'BUTLER', countryName: 'UNITED STATES' },\r\n { placeId: 1248, cityName: 'BUTTE', countryName: 'UNITED STATES' },\r\n { placeId: 4666, cityName: 'CABOOL', countryName: 'UNITED STATES' },\r\n { placeId: 4669, cityName: 'CADILLAC', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2816, cityName: 'CAHOKIA/ST LOUIS', state: 'IL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3903, cityName: 'CAIRO', countryName: 'UNITED STATES' },\r\n { placeId: 4683, cityName: 'CALDWELL', countryName: 'UNITED STATES' },\r\n { placeId: 10014, cityName: 'CALDWELL', countryName: 'UNITED STATES' },\r\n { placeId: 4684, cityName: 'CALDWELL', countryName: 'UNITED STATES' },\r\n { placeId: 3902, cityName: 'CALEDONIA', countryName: 'UNITED STATES' },\r\n { placeId: 10016, cityName: 'CALEXICO', countryName: 'UNITED STATES' },\r\n { placeId: 4685, cityName: 'CALHOUN', countryName: 'UNITED STATES' },\r\n { placeId: 4686, cityName: 'CALIPATRIA', countryName: 'UNITED STATES' },\r\n { placeId: 4689, cityName: 'CAMARILLO', countryName: 'UNITED STATES' },\r\n { placeId: 4691, cityName: 'CAMBRIDGE', countryName: 'UNITED STATES' },\r\n { placeId: 4694, cityName: 'CAMBRIDGE', countryName: 'UNITED STATES' },\r\n { placeId: 4693, cityName: 'CAMBRIDGE', countryName: 'UNITED STATES' },\r\n { placeId: 4692, cityName: 'CAMBRIDGE', countryName: 'UNITED STATES' },\r\n { placeId: 4696, cityName: 'CAMDEN', countryName: 'UNITED STATES' },\r\n { placeId: 4697, cityName: 'CAMDEN', countryName: 'UNITED STATES' },\r\n { placeId: 4698, cityName: 'CAMERON', countryName: 'UNITED STATES' },\r\n { placeId: 4699, cityName: 'CAMILLA', countryName: 'UNITED STATES' },\r\n { placeId: 4703, cityName: 'CAMP DOUGLAS', countryName: 'UNITED STATES' },\r\n { placeId: 4704, cityName: 'CAMP MACKALL', countryName: 'UNITED STATES' },\r\n { placeId: 4705, cityName: 'CAMP RIPLEY', countryName: 'UNITED STATES' },\r\n { placeId: 4706, cityName: 'CAMP ROBINSON', countryName: 'UNITED STATES' },\r\n { placeId: 4707, cityName: 'CAMP SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 2935, cityName: 'CAMPBELLSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4710, cityName: 'CANADIAN', countryName: 'UNITED STATES' },\r\n { placeId: 4712, cityName: 'CANBY', countryName: 'UNITED STATES' },\r\n { placeId: 4714, cityName: 'CANDLE', countryName: 'UNITED STATES' },\r\n { placeId: 10055, cityName: 'CANTON', countryName: 'UNITED STATES' },\r\n { placeId: 4719, cityName: 'CANTON', countryName: 'UNITED STATES' },\r\n { placeId: 4720, cityName: 'CANTWELL', countryName: 'UNITED STATES' },\r\n { placeId: 3900, cityName: 'CAPE GIRARDEAU', countryName: 'UNITED STATES' },\r\n { placeId: 4722, cityName: 'CAPE LISBURNE', countryName: 'UNITED STATES' },\r\n { placeId: 10063, cityName: 'CAPE NEWENHAM', countryName: 'UNITED STATES' },\r\n { placeId: 10064, cityName: 'CAPE ROMANZOF', countryName: 'UNITED STATES' },\r\n { placeId: 4723, cityName: 'CAPE SARICHEF', countryName: 'UNITED STATES' },\r\n { placeId: 4724, cityName: 'CAPE SIMPSON', countryName: 'UNITED STATES' },\r\n { placeId: 4728, cityName: 'CARBONDALE-MURPHYSBORO', countryName: 'UNITED STATES' },\r\n { placeId: 4733, cityName: 'CARIBOU', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1265, cityName: 'CARLSBAD', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 2865, cityName: 'CARLSBAD', countryName: 'UNITED STATES' },\r\n { placeId: 4741, cityName: 'CARMI', countryName: 'UNITED STATES' },\r\n { placeId: 4743, cityName: 'CARO', countryName: 'UNITED STATES' },\r\n { placeId: 10084, cityName: 'CARRIZO SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 4189, cityName: 'CARRIZO SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 4190, cityName: 'CARROLL', countryName: 'UNITED STATES' },\r\n { placeId: 4191, cityName: 'CARROLLTON', countryName: 'UNITED STATES' },\r\n { placeId: 4192, cityName: 'CARROLLTON', countryName: 'UNITED STATES' },\r\n { placeId: 4193, cityName: 'CARSON CITY', countryName: 'UNITED STATES' },\r\n { placeId: 4196, cityName: 'CARTERSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4751, cityName: 'CASA GRANDE', countryName: 'UNITED STATES' },\r\n { placeId: 2974, cityName: 'CASCADE LOCKS', countryName: 'UNITED STATES' },\r\n { placeId: 1263, cityName: 'CASPER', countryName: 'UNITED STATES' },\r\n { placeId: 10098, cityName: 'CASTROVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4770, cityName: 'CEDAR CITY', countryName: 'UNITED STATES' },\r\n { placeId: 10106, cityName: 'CEDAR KEY', countryName: 'UNITED STATES' },\r\n { placeId: 4771, cityName: 'CEDAR RAPIDS', countryName: 'UNITED STATES' },\r\n { placeId: 4772, cityName: 'CELINA', countryName: 'UNITED STATES' },\r\n { placeId: 4774, cityName: 'CENTERVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 3140, cityName: 'CENTERVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 10114, cityName: 'CENTRAL', countryName: 'UNITED STATES' },\r\n { placeId: 4776, cityName: 'CENTRALIA', countryName: 'UNITED STATES' },\r\n { placeId: 3107, cityName: 'CENTRE', countryName: 'UNITED STATES' },\r\n { placeId: 3898, cityName: 'CHADRON', countryName: 'UNITED STATES' },\r\n { placeId: 10125, cityName: 'CHALKYITSIK', countryName: 'UNITED STATES' },\r\n { placeId: 3985, cityName: 'CHALLIS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 3986, cityName: 'CHAMPAIGN-URBANA', state: 'IL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3989, cityName: 'CHANDALAR LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 3991, cityName: 'CHANDLER', countryName: 'UNITED STATES' },\r\n { placeId: 3992, cityName: 'CHANDLER', countryName: 'UNITED STATES' },\r\n { placeId: 3995, cityName: 'CHANUTE', countryName: 'UNITED STATES' },\r\n { placeId: 3997, cityName: 'CHAPEL HILL', countryName: 'UNITED STATES' },\r\n { placeId: 3904, cityName: 'CHAPPELL', countryName: 'UNITED STATES' },\r\n { placeId: 4789, cityName: 'CHARITON', countryName: 'UNITED STATES' },\r\n { placeId: 4790, cityName: 'CHARLES CITY', countryName: 'UNITED STATES' },\r\n { placeId: 1266, cityName: 'CHARLESTON', countryName: 'UNITED STATES' },\r\n { placeId: 3901, cityName: 'CHARLESTON', countryName: 'UNITED STATES' },\r\n { placeId: 10141, cityName: 'CHARLESTON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1257, cityName: 'CHARLESTON', state: 'SC', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 4791, cityName: 'CHARLEVOIX', state: 'MI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 1260, cityName: 'CHARLOTTE', countryName: 'UNITED STATES' },\r\n { placeId: 4793, cityName: 'CHARLOTTE', countryName: 'UNITED STATES' },\r\n { placeId: 4794, cityName: 'CHARLOTTESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 2973, cityName: 'CHASE CITY', countryName: 'UNITED STATES' },\r\n { placeId: 10154, cityName: 'CHATHAM', countryName: 'UNITED STATES' },\r\n { placeId: 1256, cityName: 'CHATTANOOGA', countryName: 'UNITED STATES' },\r\n { placeId: 4800, cityName: 'CHEBOYGAN', countryName: 'UNITED STATES' },\r\n { placeId: 4801, cityName: 'CHEFORNAK', countryName: 'UNITED STATES' },\r\n { placeId: 4802, cityName: 'CHEHALIS', countryName: 'UNITED STATES' },\r\n { placeId: 10162, cityName: 'CHENEGA', countryName: 'UNITED STATES' },\r\n { placeId: 4804, cityName: 'CHERAW', countryName: 'UNITED STATES' },\r\n { placeId: 4806, cityName: 'CHEROKEE', countryName: 'UNITED STATES' },\r\n { placeId: 4807, cityName: 'CHEROKEE', countryName: 'UNITED STATES' },\r\n { placeId: 10168, cityName: 'CHERRY POINT', countryName: 'UNITED STATES' },\r\n { placeId: 3036, cityName: 'CHESAPEAKE', countryName: 'UNITED STATES' },\r\n { placeId: 10172, cityName: 'CHESTER', countryName: 'UNITED STATES' },\r\n { placeId: 4808, cityName: 'CHESTER', countryName: 'UNITED STATES' },\r\n { placeId: 10171, cityName: 'CHESTER', countryName: 'UNITED STATES' },\r\n { placeId: 4810, cityName: 'CHEVAK', countryName: 'UNITED STATES' },\r\n { placeId: 4811, cityName: 'CHEYENNE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1326, cityName: 'CHICAGO', state: 'IL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4814, cityName: 'CHICAGO/AURORA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4815,\r\n cityName: 'CHICAGO/PROSPECT HGTS/WHEELING',\r\n state: 'IL',\r\n countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4816, cityName: 'CHICAGO/ROCKFORD', countryName: 'UNITED STATES' },\r\n { placeId: 4817, cityName: 'CHICAGO/ROMEOVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4818, cityName: 'CHICAGO/WAUKEGAN', state: 'IL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4819, cityName: 'CHICKASHA', countryName: 'UNITED STATES' },\r\n { placeId: 4820, cityName: 'CHICO', countryName: 'UNITED STATES' },\r\n { placeId: 10190, cityName: 'CHICO', countryName: 'UNITED STATES' },\r\n { placeId: 10191, cityName: 'CHIGNIK', countryName: 'UNITED STATES' },\r\n { placeId: 4822, cityName: 'CHILDRESS', countryName: 'UNITED STATES' },\r\n { placeId: 4827, cityName: 'CHILLICOTHE', countryName: 'UNITED STATES' },\r\n { placeId: 4826, cityName: 'CHILLICOTHE', countryName: 'UNITED STATES' },\r\n { placeId: 4838, cityName: 'CHINO', countryName: 'UNITED STATES' },\r\n { placeId: 10205, cityName: 'CHITTENANGO', countryName: 'UNITED STATES' },\r\n { placeId: 4856, cityName: 'CHOTEAU', countryName: 'UNITED STATES' },\r\n { placeId: 10218, cityName: 'CHUATHBALUK', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1268, cityName: 'CINCINNATI', state: 'OH', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4865, cityName: 'CIRCLE', countryName: 'UNITED STATES' },\r\n { placeId: 4866, cityName: 'CIRCLEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4872, cityName: 'CLAREMONT', countryName: 'UNITED STATES' },\r\n { placeId: 4873, cityName: 'CLAREMORE', countryName: 'UNITED STATES' },\r\n { placeId: 4874, cityName: 'CLARENCE CENTER', countryName: 'UNITED STATES' },\r\n { placeId: 3040, cityName: 'CLARINDA', countryName: 'UNITED STATES' },\r\n { placeId: 4876, cityName: 'CLARION', countryName: 'UNITED STATES' },\r\n { placeId: 4877, cityName: 'CLARION', countryName: 'UNITED STATES' },\r\n { placeId: 10245, cityName: 'CLARKS POINT', countryName: 'UNITED STATES' },\r\n { placeId: 4878, cityName: 'CLARKSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 4879, cityName: 'CLARKSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 4880, cityName: 'CLARKSDALE', countryName: 'UNITED STATES' },\r\n { placeId: 4882, cityName: 'CLARKSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4881, cityName: 'CLARKSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4883, cityName: 'CLAXTON', countryName: 'UNITED STATES' },\r\n { placeId: 4884, cityName: 'CLAY CENTER', countryName: 'UNITED STATES' },\r\n { placeId: 4885, cityName: 'CLAYTON', countryName: 'UNITED STATES' },\r\n { placeId: 4886, cityName: 'CLAYTON', countryName: 'UNITED STATES' },\r\n { placeId: 4887, cityName: 'CLEAR', countryName: 'UNITED STATES' },\r\n { placeId: 4888, cityName: 'CLEARFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 4890, cityName: 'CLEARWATER', countryName: 'UNITED STATES' },\r\n { placeId: 4892, cityName: 'CLEBURNE', countryName: 'UNITED STATES' },\r\n { placeId: 4894, cityName: 'CLEMSON', countryName: 'UNITED STATES' },\r\n { placeId: 4895, cityName: 'CLEVELAND', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1258, cityName: 'CLEVELAND', state: 'OH', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3025, cityName: 'CLEVELAND', countryName: 'UNITED STATES' },\r\n { placeId: 4896, cityName: 'CLIFTON-MORENCI', countryName: 'UNITED STATES' },\r\n { placeId: 4897, cityName: 'CLINTON', countryName: 'UNITED STATES' },\r\n { placeId: 4899, cityName: 'CLINTON', countryName: 'UNITED STATES' },\r\n { placeId: 4898, cityName: 'CLINTON', countryName: 'UNITED STATES' },\r\n { placeId: 4900, cityName: 'CLINTON', countryName: 'UNITED STATES' },\r\n { placeId: 2972, cityName: 'CLINTON', countryName: 'UNITED STATES' },\r\n { placeId: 4901, cityName: 'CLINTONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4903, cityName: 'CLOQUET', countryName: 'UNITED STATES' },\r\n { placeId: 4904, cityName: 'CLOVIS', countryName: 'UNITED STATES' },\r\n { placeId: 3078, cityName: 'COATESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 10284, cityName: 'COCOA BEACH', countryName: 'UNITED STATES' },\r\n { placeId: 2840, cityName: 'CODY', countryName: 'UNITED STATES' },\r\n { placeId: 3905, cityName: 'COEUR D\\'ALENE', countryName: 'UNITED STATES' },\r\n { placeId: 4918, cityName: 'COFFEYVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4920, cityName: 'COLBY', countryName: 'UNITED STATES' },\r\n { placeId: 2391, cityName: 'COLD BAY', countryName: 'UNITED STATES' },\r\n { placeId: 10294, cityName: 'COLDFOOT', countryName: 'UNITED STATES' },\r\n { placeId: 3082, cityName: 'COLDWATER', countryName: 'UNITED STATES' },\r\n { placeId: 4921, cityName: 'COLEMAN', countryName: 'UNITED STATES' },\r\n { placeId: 4923, cityName: 'COLLEGE PARK', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4924, cityName: 'COLLEGE STATION', state: 'TX', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 10301, cityName: 'COLLEGEDALE', countryName: 'UNITED STATES' },\r\n { placeId: 4932, cityName: 'COLORADO CITY', countryName: 'UNITED STATES' },\r\n { placeId: 10305, cityName: 'COLORADO SPRINGS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1262, cityName: 'COLORADO SPRINGS', state: 'CO', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3998, cityName: 'COLUMBIA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1253, cityName: 'COLUMBIA', state: 'SC', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3999, cityName: 'COLUMBIA/MT PLEASANT', countryName: 'UNITED STATES' },\r\n { placeId: 4003, cityName: 'COLUMBUS-W POINT-STARKVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1261, cityName: 'COLUMBUS', state: 'OH', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4002, cityName: 'COLUMBUS', countryName: 'UNITED STATES' },\r\n { placeId: 3145, cityName: 'COLUMBUS', countryName: 'UNITED STATES' },\r\n { placeId: 4001, cityName: 'COLUMBUS', countryName: 'UNITED STATES' },\r\n { placeId: 4000, cityName: 'COLUMBUS', countryName: 'UNITED STATES' },\r\n { placeId: 4005, cityName: 'COMANCHE', countryName: 'UNITED STATES' },\r\n { placeId: 10319, cityName: 'COMPTON', countryName: 'UNITED STATES' },\r\n { placeId: 4937, cityName: 'CONCORD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 4936, cityName: 'CONCORD', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 4938, cityName: 'CONCORD', countryName: 'UNITED STATES' },\r\n { placeId: 4939, cityName: 'CONCORDIA', countryName: 'UNITED STATES' },\r\n { placeId: 3153, cityName: 'CONNELLSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4943, cityName: 'CONNERSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4950, cityName: 'CONWAY', countryName: 'UNITED STATES' },\r\n { placeId: 4949, cityName: 'CONWAY', countryName: 'UNITED STATES' },\r\n { placeId: 4952, cityName: 'COOK', countryName: 'UNITED STATES' },\r\n { placeId: 4956, cityName: 'CORCORAN', countryName: 'UNITED STATES' },\r\n { placeId: 4957, cityName: 'CORDELE', countryName: 'UNITED STATES' },\r\n { placeId: 10339, cityName: 'CORDOVA', countryName: 'UNITED STATES' },\r\n { placeId: 4958, cityName: 'CORINTH', countryName: 'UNITED STATES' },\r\n { placeId: 4961, cityName: 'CORNELIA', countryName: 'UNITED STATES' },\r\n { placeId: 4962, cityName: 'CORNING', countryName: 'UNITED STATES' },\r\n { placeId: 4965, cityName: 'CORONA', countryName: 'UNITED STATES' },\r\n { placeId: 10347, cityName: 'CORPUS CHRISTI', countryName: 'UNITED STATES' },\r\n { placeId: 1264, cityName: 'CORPUS CHRISTI', countryName: 'UNITED STATES' },\r\n { placeId: 4968, cityName: 'CORSICANA', countryName: 'UNITED STATES' },\r\n { placeId: 4970, cityName: 'CORTEZ', countryName: 'UNITED STATES' },\r\n { placeId: 2971, cityName: 'CORVALLIS', countryName: 'UNITED STATES' },\r\n { placeId: 4976, cityName: 'COTULLA', countryName: 'UNITED STATES' },\r\n { placeId: 4977, cityName: 'COUNCIL BLUFFS', countryName: 'UNITED STATES' },\r\n { placeId: 10356, cityName: 'COUPEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 4984, cityName: 'COZAD', countryName: 'UNITED STATES' },\r\n { placeId: 4985, cityName: 'CRAIG', countryName: 'UNITED STATES' },\r\n { placeId: 4988, cityName: 'CRAWFORDSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 10369, cityName: 'CRESCENT CITY', countryName: 'UNITED STATES' },\r\n { placeId: 4990, cityName: 'CRESCO', countryName: 'UNITED STATES' },\r\n { placeId: 4991, cityName: 'CRESTON', countryName: 'UNITED STATES' },\r\n { placeId: 2989, cityName: 'CRESTVIEW', countryName: 'UNITED STATES' },\r\n { placeId: 4992, cityName: 'CRETE', countryName: 'UNITED STATES' },\r\n { placeId: 4993, cityName: 'CROCKETT', countryName: 'UNITED STATES' },\r\n { placeId: 4995, cityName: 'CROOKSTON', countryName: 'UNITED STATES' },\r\n { placeId: 4996, cityName: 'CROSS CITY', countryName: 'UNITED STATES' },\r\n { placeId: 4998, cityName: 'CROSSETT', countryName: 'UNITED STATES' },\r\n { placeId: 2969, cityName: 'CROSSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5001, cityName: 'CRYSTAL RIVER', countryName: 'UNITED STATES' },\r\n { placeId: 5003, cityName: 'CUBA', countryName: 'UNITED STATES' },\r\n { placeId: 5006, cityName: 'CULPEPER', countryName: 'UNITED STATES' },\r\n { placeId: 2968, cityName: 'CUMBERLAND', countryName: 'UNITED STATES' },\r\n { placeId: 5009, cityName: 'CUMBERLAND', countryName: 'UNITED STATES' },\r\n { placeId: 5011, cityName: 'CUMMING', countryName: 'UNITED STATES' },\r\n { placeId: 5013, cityName: 'CURRITUCK', countryName: 'UNITED STATES' },\r\n { placeId: 5014, cityName: 'CUSHING', countryName: 'UNITED STATES' },\r\n { placeId: 2970, cityName: 'CUSTER', countryName: 'UNITED STATES' },\r\n { placeId: 1267, cityName: 'CUT BANK', countryName: 'UNITED STATES' },\r\n { placeId: 5017, cityName: 'CYPRESS', countryName: 'UNITED STATES' },\r\n { placeId: 5046, cityName: 'DAGGETT', countryName: 'UNITED STATES' },\r\n { placeId: 5047, cityName: 'DAHLGREN', countryName: 'UNITED STATES' },\r\n { placeId: 5053, cityName: 'DALHART', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1272, cityName: 'DALLAS-FT WORTH', state: 'TX', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 1269, cityName: 'DALLAS', state: 'TX', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5055, cityName: 'DALTON', countryName: 'UNITED STATES' },\r\n { placeId: 5058, cityName: 'DANBURY', countryName: 'UNITED STATES' },\r\n { placeId: 10417, cityName: 'DANIELSON', countryName: 'UNITED STATES' },\r\n { placeId: 5061, cityName: 'DANSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 2981, cityName: 'DANVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5062, cityName: 'DANVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 2976, cityName: 'DANVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5066, cityName: 'DARLINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 2984, cityName: 'DAVENPORT', countryName: 'UNITED STATES' },\r\n { placeId: 5073, cityName: 'DAVIS', countryName: 'UNITED STATES' },\r\n { placeId: 10431, cityName: 'DAVIS/WOODLAND/WINTERS', countryName: 'UNITED STATES' },\r\n { placeId: 1270, cityName: 'DAYTON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2846, cityName: 'DAYTONA BEACH', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5076, cityName: 'DE KALB', countryName: 'UNITED STATES' },\r\n { placeId: 5077, cityName: 'DE LAND', countryName: 'UNITED STATES' },\r\n { placeId: 5078, cityName: 'DE QUEEN', countryName: 'UNITED STATES' },\r\n { placeId: 5079, cityName: 'DE RIDDER', countryName: 'UNITED STATES' },\r\n { placeId: 2401, cityName: 'DEADHORSE', countryName: 'UNITED STATES' },\r\n { placeId: 10441, cityName: 'DEADHORSE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 5087, cityName: 'DECATUR', state: 'IL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5088, cityName: 'DECATUR', countryName: 'UNITED STATES' },\r\n { placeId: 5089, cityName: 'DECATUR', countryName: 'UNITED STATES' },\r\n { placeId: 5090, cityName: 'DECORAH', countryName: 'UNITED STATES' },\r\n { placeId: 5092, cityName: 'DEER PARK', countryName: 'UNITED STATES' },\r\n { placeId: 10454, cityName: 'DEERING', countryName: 'UNITED STATES' },\r\n { placeId: 5094, cityName: 'DEFIANCE', countryName: 'UNITED STATES' },\r\n { placeId: 1274, cityName: 'DEL RIO', countryName: 'UNITED STATES' },\r\n { placeId: 10459, cityName: 'DEL RIO', countryName: 'UNITED STATES' },\r\n { placeId: 5099, cityName: 'DELANO', countryName: 'UNITED STATES' },\r\n { placeId: 5101, cityName: 'DELAWARE', countryName: 'UNITED STATES' },\r\n { placeId: 2389, cityName: 'DELTA JUNCTION/FT GREELY', countryName: 'UNITED STATES' },\r\n { placeId: 5147, cityName: 'DELTA', countryName: 'UNITED STATES' },\r\n { placeId: 5148, cityName: 'DELTA', countryName: 'UNITED STATES' },\r\n { placeId: 5150, cityName: 'DEMING', countryName: 'UNITED STATES' },\r\n { placeId: 10472, cityName: 'DEMOPOLIS', countryName: 'UNITED STATES' },\r\n { placeId: 5153, cityName: 'DENISON', countryName: 'UNITED STATES' },\r\n { placeId: 5154, cityName: 'DENTON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1271, cityName: 'DENVER', state: 'CO', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 1275, cityName: 'DES MOINES', state: 'IA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 10478, cityName: 'DESERT CENTER', countryName: 'UNITED STATES' },\r\n { placeId: 10479, cityName: 'DESTIN', countryName: 'UNITED STATES' },\r\n { placeId: 5160, cityName: 'DETROIT LAKES', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1276, cityName: 'DETROIT', state: 'MI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 10480, cityName: 'DETROIT', countryName: 'UNITED STATES' },\r\n { placeId: 10482, cityName: 'DETROIT/GROSSE ILE', countryName: 'UNITED STATES' },\r\n { placeId: 5161, cityName: 'DEVILS LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 5162, cityName: 'DEXTER', countryName: 'UNITED STATES' },\r\n { placeId: 2979, cityName: 'DICKINSON', countryName: 'UNITED STATES' },\r\n { placeId: 2392, cityName: 'DILLINGHAM', countryName: 'UNITED STATES' },\r\n { placeId: 5175, cityName: 'DILLON', countryName: 'UNITED STATES' },\r\n { placeId: 5176, cityName: 'DILLON', countryName: 'UNITED STATES' },\r\n { placeId: 10497, cityName: 'DIXON', countryName: 'UNITED STATES' },\r\n { placeId: 5187, cityName: 'DODGE CENTER', countryName: 'UNITED STATES' },\r\n { placeId: 5188, cityName: 'DODGE CITY', countryName: 'UNITED STATES' },\r\n { placeId: 5203, cityName: 'DOTHAN', countryName: 'UNITED STATES' },\r\n { placeId: 10511, cityName: 'DOUGLAS BISBEE', countryName: 'UNITED STATES' },\r\n { placeId: 10510, cityName: 'DOUGLAS', countryName: 'UNITED STATES' },\r\n { placeId: 5206, cityName: 'DOUGLAS', countryName: 'UNITED STATES' },\r\n { placeId: 5207, cityName: 'DOUGLAS', countryName: 'UNITED STATES' },\r\n { placeId: 10513, cityName: 'DOVER', countryName: 'UNITED STATES' },\r\n { placeId: 5209, cityName: 'DOWNERS GROVE', countryName: 'UNITED STATES' },\r\n { placeId: 5210, cityName: 'DOYLESTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 10517, cityName: 'DRESDEN', countryName: 'UNITED STATES' },\r\n { placeId: 5021, cityName: 'DRIGGS', countryName: 'UNITED STATES' },\r\n { placeId: 10520, cityName: 'DRUMMOND I', countryName: 'UNITED STATES' },\r\n { placeId: 5213, cityName: 'DUBLIN', countryName: 'UNITED STATES' },\r\n { placeId: 5214, cityName: 'DUBLIN', countryName: 'UNITED STATES' },\r\n { placeId: 5215, cityName: 'DUBOIS', countryName: 'UNITED STATES' },\r\n { placeId: 5216, cityName: 'DUBUQUE', countryName: 'UNITED STATES' },\r\n { placeId: 10526, cityName: 'DUGWAY PROVING GROUND', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1273, cityName: 'DULUTH', state: 'MN', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 10527, cityName: 'DULUTH', state: 'MINNESOTA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5218, cityName: 'DUMAS', countryName: 'UNITED STATES' },\r\n { placeId: 5220, cityName: 'DUNCAN', countryName: 'UNITED STATES' },\r\n { placeId: 5224, cityName: 'DUNKIRK', countryName: 'UNITED STATES' },\r\n { placeId: 5225, cityName: 'DURANGO', countryName: 'UNITED STATES' },\r\n { placeId: 2982, cityName: 'DURANT', countryName: 'UNITED STATES' },\r\n { placeId: 5231, cityName: 'DWIGHT', countryName: 'UNITED STATES' },\r\n { placeId: 5232, cityName: 'DYERSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5235, cityName: 'EAGLE GROVE', countryName: 'UNITED STATES' },\r\n { placeId: 5236, cityName: 'EAGLE LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 5237, cityName: 'EAGLE RIVER', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 5234, cityName: 'EAGLE', state: 'CO', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5233, cityName: 'EAGLE', countryName: 'UNITED STATES' },\r\n { placeId: 3035, cityName: 'EAST HAMPTON', countryName: 'UNITED STATES' },\r\n { placeId: 5249, cityName: 'EASTLAND', countryName: 'UNITED STATES' },\r\n { placeId: 5251, cityName: 'EASTMAN', countryName: 'UNITED STATES' },\r\n { placeId: 5253, cityName: 'EASTON', countryName: 'UNITED STATES' },\r\n { placeId: 5252, cityName: 'EASTON', countryName: 'UNITED STATES' },\r\n { placeId: 5254, cityName: 'EASTOVER', countryName: 'UNITED STATES' },\r\n { placeId: 10561, cityName: 'EASTPORT', countryName: 'UNITED STATES' },\r\n { placeId: 5255, cityName: 'EASTSOUND', countryName: 'UNITED STATES' },\r\n { placeId: 5257, cityName: 'EAU CLAIRE', countryName: 'UNITED STATES' },\r\n { placeId: 10569, cityName: 'EDENTON', countryName: 'UNITED STATES' },\r\n { placeId: 5267, cityName: 'EDINBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5270, cityName: 'EDWARDS', countryName: 'UNITED STATES' },\r\n { placeId: 10578, cityName: 'EEK', countryName: 'UNITED STATES' },\r\n { placeId: 5272, cityName: 'EGEGIK', countryName: 'UNITED STATES' },\r\n { placeId: 10583, cityName: 'EL CENTRO', countryName: 'UNITED STATES' },\r\n { placeId: 5282, cityName: 'EL DORADO', countryName: 'UNITED STATES' },\r\n { placeId: 5284, cityName: 'EL DORADO', countryName: 'UNITED STATES' },\r\n { placeId: 5292, cityName: 'EL MONTE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 10588, cityName: 'EL PASO', state: 'TEXAS', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5295, cityName: 'EL RENO', countryName: 'UNITED STATES' },\r\n { placeId: 10593, cityName: 'ELIM', countryName: 'UNITED STATES' },\r\n { placeId: 5105, cityName: 'ELIZABETH CITY', countryName: 'UNITED STATES' },\r\n { placeId: 5106, cityName: 'ELIZABETHTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 2993, cityName: 'ELIZABETHTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 5107, cityName: 'ELK CITY', countryName: 'UNITED STATES' },\r\n { placeId: 5111, cityName: 'ELKHART', countryName: 'UNITED STATES' },\r\n { placeId: 5112, cityName: 'ELKHART', countryName: 'UNITED STATES' },\r\n { placeId: 5113, cityName: 'ELKIN', countryName: 'UNITED STATES' },\r\n { placeId: 5115, cityName: 'ELKINS', countryName: 'UNITED STATES' },\r\n { placeId: 5116, cityName: 'ELKO', countryName: 'UNITED STATES' },\r\n { placeId: 5117, cityName: 'ELLENSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5306, cityName: 'ELMIRA', countryName: 'UNITED STATES' },\r\n { placeId: 5309, cityName: 'ELY', countryName: 'UNITED STATES' },\r\n { placeId: 5308, cityName: 'ELY', countryName: 'UNITED STATES' },\r\n { placeId: 5314, cityName: 'EMIGRANT GAP', countryName: 'UNITED STATES' },\r\n { placeId: 5315, cityName: 'EMMETSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5316, cityName: 'EMMONAK', countryName: 'UNITED STATES' },\r\n { placeId: 2994, cityName: 'EMPORIA', countryName: 'UNITED STATES' },\r\n { placeId: 5318, cityName: 'EMPORIA', countryName: 'UNITED STATES' },\r\n { placeId: 5323, cityName: 'ENDICOTT', countryName: 'UNITED STATES' },\r\n { placeId: 5325, cityName: 'ENID', countryName: 'UNITED STATES' },\r\n { placeId: 5326, cityName: 'ENNIS', countryName: 'UNITED STATES' },\r\n { placeId: 5327, cityName: 'ENTERPRISE', countryName: 'UNITED STATES' },\r\n { placeId: 5329, cityName: 'EPHRATA', countryName: 'UNITED STATES' },\r\n { placeId: 5024, cityName: 'ERIE', countryName: 'UNITED STATES' },\r\n { placeId: 1277, cityName: 'ERIE', countryName: 'UNITED STATES' },\r\n { placeId: 5028, cityName: 'ERROL', countryName: 'UNITED STATES' },\r\n { placeId: 5029, cityName: 'ERWIN', countryName: 'UNITED STATES' },\r\n { placeId: 10642, cityName: 'ESCANABA', countryName: 'UNITED STATES' },\r\n { placeId: 5336, cityName: 'ESTHERVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5339, cityName: 'EUFAULA', countryName: 'UNITED STATES' },\r\n { placeId: 2998, cityName: 'EUGENE', countryName: 'UNITED STATES' },\r\n { placeId: 5340, cityName: 'EUREKA', countryName: 'UNITED STATES' },\r\n { placeId: 5341, cityName: 'EVANSTON', countryName: 'UNITED STATES' },\r\n { placeId: 2999, cityName: 'EVANSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5342, cityName: 'EVELETH', countryName: 'UNITED STATES' },\r\n { placeId: 1348, cityName: 'EVERETT', countryName: 'UNITED STATES' },\r\n { placeId: 5343, cityName: 'EVERGREEN', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2394, cityName: 'FAIRBANKS', state: 'AK', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5353, cityName: 'FAIRBURY', countryName: 'UNITED STATES' },\r\n { placeId: 5354, cityName: 'FAIRFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 5356, cityName: 'FAIRFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 5355, cityName: 'FAIRFIELD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 10668, cityName: 'FAIRHOPE', state: 'ALABAMA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5357, cityName: 'FAIRMONT', countryName: 'UNITED STATES' },\r\n { placeId: 3007, cityName: 'FAIRMONT', countryName: 'UNITED STATES' },\r\n { placeId: 5361, cityName: 'FALFURRIAS', countryName: 'UNITED STATES' },\r\n { placeId: 5364, cityName: 'FALLON', countryName: 'UNITED STATES' },\r\n { placeId: 3005, cityName: 'FALLS CITY', countryName: 'UNITED STATES' },\r\n { placeId: 10679, cityName: 'FALMOUTH', countryName: 'UNITED STATES' },\r\n { placeId: 10680, cityName: 'FALSE PASS', countryName: 'UNITED STATES' },\r\n { placeId: 5370, cityName: 'FAREWELL LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 5369, cityName: 'FAREWELL', countryName: 'UNITED STATES' },\r\n { placeId: 1279, cityName: 'FARGO', countryName: 'UNITED STATES' },\r\n { placeId: 5371, cityName: 'FARIBAULT', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 3006, cityName: 'FARMINGDALE', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5372, cityName: 'FARMINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 5373, cityName: 'FARMINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 5374, cityName: 'FARMVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5381, cityName: 'FAYETTEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5382, cityName: 'FAYETTEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5383, cityName: 'FAYETTEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5384, cityName: 'FAYETTEVILLE/SPRINGDALE/ROGERS', countryName: 'UNITED STATES' },\r\n { placeId: 3081, cityName: 'FENTRESS', countryName: 'UNITED STATES' },\r\n { placeId: 5388, cityName: 'FERGUS FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 10702, cityName: 'FERNANDINA BEACH', countryName: 'UNITED STATES' },\r\n { placeId: 3001, cityName: 'FESTUS', countryName: 'UNITED STATES' },\r\n { placeId: 5396, cityName: 'FILLMORE', countryName: 'UNITED STATES' },\r\n { placeId: 5398, cityName: 'FINDLAY', countryName: 'UNITED STATES' },\r\n { placeId: 5403, cityName: 'FITCHBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5404, cityName: 'FITZGERALD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 5406, cityName: 'FLAGSTAFF', state: 'AZ', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5408, cityName: 'FLEMINGSBURG', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1282, cityName: 'FLINT', state: 'MI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5410, cityName: 'FLIPPIN', countryName: 'UNITED STATES' },\r\n { placeId: 5411, cityName: 'FLORA', countryName: 'UNITED STATES' },\r\n { placeId: 5412, cityName: 'FLORENCE', countryName: 'UNITED STATES' },\r\n { placeId: 5420, cityName: 'FOND DU LAC', countryName: 'UNITED STATES' },\r\n { placeId: 5427, cityName: 'FOREST CITY', countryName: 'UNITED STATES' },\r\n { placeId: 10733, cityName: 'FOREST HILL', countryName: 'UNITED STATES' },\r\n { placeId: 3000, cityName: 'FORREST CITY', countryName: 'UNITED STATES' },\r\n { placeId: 10737, cityName: 'FORT A. P. HILL', countryName: 'UNITED STATES' },\r\n { placeId: 5435, cityName: 'FORT MEADE', countryName: 'UNITED STATES' },\r\n { placeId: 5437, cityName: 'FORTUNA', countryName: 'UNITED STATES' },\r\n { placeId: 5438, cityName: 'FOSSTON', countryName: 'UNITED STATES' },\r\n { placeId: 5439, cityName: 'FOSTORIA', countryName: 'UNITED STATES' },\r\n { placeId: 3158, cityName: 'FRANKFORT', countryName: 'UNITED STATES' },\r\n { placeId: 5449, cityName: 'FRANKFORT', countryName: 'UNITED STATES' },\r\n { placeId: 5447, cityName: 'FRANKFORT', countryName: 'UNITED STATES' },\r\n { placeId: 5448, cityName: 'FRANKFORT', countryName: 'UNITED STATES' },\r\n { placeId: 3003, cityName: 'FRANKLIN', countryName: 'UNITED STATES' },\r\n { placeId: 5450, cityName: 'FRANKLIN', countryName: 'UNITED STATES' },\r\n { placeId: 5453, cityName: 'FREDERICK', countryName: 'UNITED STATES' },\r\n { placeId: 5452, cityName: 'FREDERICK', countryName: 'UNITED STATES' },\r\n { placeId: 5454, cityName: 'FREDERICKSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5455, cityName: 'FREEPORT', countryName: 'UNITED STATES' },\r\n { placeId: 5120, cityName: 'FREMONT', countryName: 'UNITED STATES' },\r\n { placeId: 10766, cityName: 'FREMONT', countryName: 'UNITED STATES' },\r\n { placeId: 5121, cityName: 'FRENCH LICK', countryName: 'UNITED STATES' },\r\n { placeId: 5122, cityName: 'FRENCHVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1280, cityName: 'FRESNO', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 10770, cityName: 'FRIDAY HARBOR', countryName: 'UNITED STATES' },\r\n { placeId: 5124, cityName: 'FRIENDLY', countryName: 'UNITED STATES' },\r\n { placeId: 5125, cityName: 'FRONT ROYAL', countryName: 'UNITED STATES' },\r\n { placeId: 5128, cityName: 'FRYEBURG', countryName: 'UNITED STATES' },\r\n { placeId: 2975, cityName: 'FT BELVOIR', countryName: 'UNITED STATES' },\r\n { placeId: 5130, cityName: 'FT BENNING', countryName: 'UNITED STATES' },\r\n { placeId: 2955, cityName: 'FT BLISS', countryName: 'UNITED STATES' },\r\n { placeId: 5131, cityName: 'FT BRAGG', countryName: 'UNITED STATES' },\r\n { placeId: 5456, cityName: 'FT BRIDGER', countryName: 'UNITED STATES' },\r\n { placeId: 3032, cityName: 'FT CAMPBELL/HOPKINSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5457, cityName: 'FT CARSON', countryName: 'UNITED STATES' },\r\n { placeId: 5459, cityName: 'FT COLLINS-LOVELAND', countryName: 'UNITED STATES' },\r\n { placeId: 1283, cityName: 'FT DODGE', countryName: 'UNITED STATES' },\r\n { placeId: 5460, cityName: 'FT DRUM', countryName: 'UNITED STATES' },\r\n { placeId: 5461, cityName: 'FT EUSTIS', countryName: 'UNITED STATES' },\r\n { placeId: 5463, cityName: 'FT HOOD', countryName: 'UNITED STATES' },\r\n { placeId: 5465, cityName: 'FT HUACHUCA', countryName: 'UNITED STATES' },\r\n { placeId: 5466, cityName: 'FT INDIANTOWN GAP', countryName: 'UNITED STATES' },\r\n { placeId: 5467, cityName: 'FT KNOX', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 10796, cityName: 'FT LAUDERDALE', state: 'FLORIDA', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 1281, cityName: 'FT LAUDERDALE', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3004, cityName: 'FT LEAVENWORTH', countryName: 'UNITED STATES' },\r\n { placeId: 5468, cityName: 'FT LEONARD WOOD', countryName: 'UNITED STATES' },\r\n { placeId: 5469, cityName: 'FT LEWIS', countryName: 'UNITED STATES' },\r\n { placeId: 3010, cityName: 'FT MADISON', countryName: 'UNITED STATES' },\r\n { placeId: 5473, cityName: 'FT MORGAN', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1368, cityName: 'FT MYERS', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5474, cityName: 'FT PIERCE', countryName: 'UNITED STATES' },\r\n { placeId: 5475, cityName: 'FT POLK', countryName: 'UNITED STATES' },\r\n { placeId: 5478, cityName: 'FT RILEY', countryName: 'UNITED STATES' },\r\n { placeId: 5479, cityName: 'FT RUCKER', countryName: 'UNITED STATES' },\r\n { placeId: 3009, cityName: 'FT SCOTT', countryName: 'UNITED STATES' },\r\n { placeId: 5481, cityName: 'FT SILL', countryName: 'UNITED STATES' },\r\n { placeId: 5483, cityName: 'FT SMITH', countryName: 'UNITED STATES' },\r\n { placeId: 5485, cityName: 'FT STEWART', countryName: 'UNITED STATES' },\r\n { placeId: 5486, cityName: 'FT STOCKTON', countryName: 'UNITED STATES' },\r\n { placeId: 5487, cityName: 'FT SUMNER', countryName: 'UNITED STATES' },\r\n { placeId: 2396, cityName: 'FT WAINWRIGHT', countryName: 'UNITED STATES' },\r\n { placeId: 5490, cityName: 'FT WAYNE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1284, cityName: 'FT WORTH', state: 'TX', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5491, cityName: 'FT YUKON', countryName: 'UNITED STATES' },\r\n { placeId: 5496, cityName: 'FULLERTON', countryName: 'UNITED STATES' },\r\n { placeId: 5497, cityName: 'FULTON', countryName: 'UNITED STATES' },\r\n { placeId: 5498, cityName: 'FULTON', countryName: 'UNITED STATES' },\r\n { placeId: 5505, cityName: 'GABBS', countryName: 'UNITED STATES' },\r\n { placeId: 5507, cityName: 'GADSDEN', countryName: 'UNITED STATES' },\r\n { placeId: 5509, cityName: 'GAGE', countryName: 'UNITED STATES' },\r\n { placeId: 5511, cityName: 'GAINESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5512, cityName: 'GAINESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5510, cityName: 'GAINESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5513, cityName: 'GAITHERSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 3030, cityName: 'GALAX-HILLSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5515, cityName: 'GALBRAITH LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 2397, cityName: 'GALENA', countryName: 'UNITED STATES' },\r\n { placeId: 5517, cityName: 'GALESBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5518, cityName: 'GALION', countryName: 'UNITED STATES' },\r\n { placeId: 5031, cityName: 'GALLIANO', countryName: 'UNITED STATES' },\r\n { placeId: 3011, cityName: 'GALLIPOLIS', countryName: 'UNITED STATES' },\r\n { placeId: 5032, cityName: 'GALLUP', countryName: 'UNITED STATES' },\r\n { placeId: 10857, cityName: 'GALVESTON', countryName: 'UNITED STATES' },\r\n { placeId: 5519, cityName: 'GAMBELL', countryName: 'UNITED STATES' },\r\n { placeId: 5529, cityName: 'GARDEN CITY', countryName: 'UNITED STATES' },\r\n { placeId: 5531, cityName: 'GARDNER', countryName: 'UNITED STATES' },\r\n { placeId: 3023, cityName: 'GARY', countryName: 'UNITED STATES' },\r\n { placeId: 2943, cityName: 'GASTONIA', countryName: 'UNITED STATES' },\r\n { placeId: 5539, cityName: 'GATESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5542, cityName: 'GAYLORD', countryName: 'UNITED STATES' },\r\n { placeId: 3015, cityName: 'GEORGETOWN', countryName: 'UNITED STATES' },\r\n { placeId: 3014, cityName: 'GEORGETOWN', countryName: 'UNITED STATES' },\r\n { placeId: 5550, cityName: 'GEORGETOWN', countryName: 'UNITED STATES' },\r\n { placeId: 10879, cityName: 'GEORGETOWN', countryName: 'UNITED STATES' },\r\n { placeId: 5560, cityName: 'GIDDINGS', countryName: 'UNITED STATES' },\r\n { placeId: 5564, cityName: 'GILLETTE', countryName: 'UNITED STATES' },\r\n { placeId: 5565, cityName: 'GILMER', countryName: 'UNITED STATES' },\r\n { placeId: 5574, cityName: 'GLADWIN', countryName: 'UNITED STATES' },\r\n { placeId: 1287, cityName: 'GLASGOW', countryName: 'UNITED STATES' },\r\n { placeId: 3019, cityName: 'GLASGOW', countryName: 'UNITED STATES' },\r\n { placeId: 5577, cityName: 'GLENCOE', countryName: 'UNITED STATES' },\r\n { placeId: 5578, cityName: 'GLENDALE', countryName: 'UNITED STATES' },\r\n { placeId: 5579, cityName: 'GLENDIVE', countryName: 'UNITED STATES' },\r\n { placeId: 5582, cityName: 'GLENS FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 5585, cityName: 'GLENWOOD SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 5584, cityName: 'GLENWOOD', countryName: 'UNITED STATES' },\r\n { placeId: 5590, cityName: 'GODDARD', countryName: 'UNITED STATES' },\r\n { placeId: 5597, cityName: 'GOLDSBORO', countryName: 'UNITED STATES' },\r\n { placeId: 10922, cityName: 'GOLOVIN', countryName: 'UNITED STATES' },\r\n { placeId: 5132, cityName: 'GOODING', countryName: 'UNITED STATES' },\r\n { placeId: 3018, cityName: 'GOODLAND', countryName: 'UNITED STATES' },\r\n { placeId: 5134, cityName: 'GOODYEAR', countryName: 'UNITED STATES' },\r\n { placeId: 3021, cityName: 'GORDON', countryName: 'UNITED STATES' },\r\n { placeId: 5137, cityName: 'GORDONSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5144, cityName: 'GOSHEN', countryName: 'UNITED STATES' },\r\n { placeId: 5603, cityName: 'GOTHENBURG', countryName: 'UNITED STATES' },\r\n { placeId: 10940, cityName: 'GOUVERNEUR', countryName: 'UNITED STATES' },\r\n { placeId: 5610, cityName: 'GRAFTON', countryName: 'UNITED STATES' },\r\n { placeId: 5662, cityName: 'GRAHAM', countryName: 'UNITED STATES' },\r\n { placeId: 5664, cityName: 'GRANBURY', countryName: 'UNITED STATES' },\r\n { placeId: 5665, cityName: 'GRANBY', countryName: 'UNITED STATES' },\r\n { placeId: 5668, cityName: 'GRAND CANYON', countryName: 'UNITED STATES' },\r\n { placeId: 1286, cityName: 'GRAND FORKS', countryName: 'UNITED STATES' },\r\n { placeId: 5672, cityName: 'GRAND ISLAND', countryName: 'UNITED STATES' },\r\n { placeId: 5673, cityName: 'GRAND JUNCTION', countryName: 'UNITED STATES' },\r\n { placeId: 5674, cityName: 'GRAND MARAIS', countryName: 'UNITED STATES' },\r\n { placeId: 5675, cityName: 'GRAND PRAIRIE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1290, cityName: 'GRAND RAPIDS', state: 'MI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5677, cityName: 'GRAND RAPIDS', countryName: 'UNITED STATES' },\r\n { placeId: 10965, cityName: 'GRANGEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5684, cityName: 'GRANITE FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 3016, cityName: 'GRANT', countryName: 'UNITED STATES' },\r\n { placeId: 5686, cityName: 'GRANTS', countryName: 'UNITED STATES' },\r\n { placeId: 5687, cityName: 'GRANTSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5688, cityName: 'GRASS VALLEY', countryName: 'UNITED STATES' },\r\n { placeId: 5691, cityName: 'GRAYLING', countryName: 'UNITED STATES' },\r\n { placeId: 5693, cityName: 'GREAT BARRINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 5695, cityName: 'GREAT BEND', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1293, cityName: 'GREAT FALLS', state: 'MT', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5033, cityName: 'GREELEY', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1289, cityName: 'GREEN BAY', state: 'WI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 10981, cityName: 'GREEN COVE SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 3013, cityName: 'GREENEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5700, cityName: 'GREENFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 5699, cityName: 'GREENFIELD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1291, cityName: 'GREENSBORO', state: 'NC', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5701, cityName: 'GREENVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5705, cityName: 'GREENVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5702, cityName: 'GREENVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 1353, cityName: 'GREENVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5703, cityName: 'GREENVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5704, cityName: 'GREENVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5707, cityName: 'GREENWOOD', countryName: 'UNITED STATES' },\r\n { placeId: 5708, cityName: 'GREENWOOD', countryName: 'UNITED STATES' },\r\n { placeId: 1292, cityName: 'GREER', countryName: 'UNITED STATES' },\r\n { placeId: 5710, cityName: 'GRENADA', countryName: 'UNITED STATES' },\r\n { placeId: 2839, cityName: 'GREYBULL', countryName: 'UNITED STATES' },\r\n { placeId: 5714, cityName: 'GRIFFIN', countryName: 'UNITED STATES' },\r\n { placeId: 5718, cityName: 'GRINNELL', countryName: 'UNITED STATES' },\r\n { placeId: 11008, cityName: 'GROTON/NEW LONDON', countryName: 'UNITED STATES' },\r\n { placeId: 3020, cityName: 'GROVE', countryName: 'UNITED STATES' },\r\n { placeId: 5722, cityName: 'GRUNDY', countryName: 'UNITED STATES' },\r\n { placeId: 11023, cityName: 'GULF SHORES', countryName: 'UNITED STATES' },\r\n { placeId: 11024, cityName: 'GULFPORT', countryName: 'UNITED STATES' },\r\n { placeId: 5739, cityName: 'GULKANA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 5745, cityName: 'GUNNISON', state: 'CO', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 11031, cityName: 'GUSTAVUS', countryName: 'UNITED STATES' },\r\n { placeId: 5749, cityName: 'GUTHRIE CENTER', countryName: 'UNITED STATES' },\r\n { placeId: 5748, cityName: 'GUTHRIE', countryName: 'UNITED STATES' },\r\n { placeId: 3022, cityName: 'GUYMON', countryName: 'UNITED STATES' },\r\n { placeId: 5756, cityName: 'GWINNER', countryName: 'UNITED STATES' },\r\n { placeId: 5767, cityName: 'HAGERSTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 5770, cityName: 'HAILEY', countryName: 'UNITED STATES' },\r\n { placeId: 11041, cityName: 'HAINES', countryName: 'UNITED STATES' },\r\n { placeId: 5774, cityName: 'HALF MOON BAY', countryName: 'UNITED STATES' },\r\n { placeId: 5777, cityName: 'HALLOCK', countryName: 'UNITED STATES' },\r\n { placeId: 5782, cityName: 'HAMILTON', countryName: 'UNITED STATES' },\r\n { placeId: 5785, cityName: 'HAMILTON', countryName: 'UNITED STATES' },\r\n { placeId: 5784, cityName: 'HAMILTON', countryName: 'UNITED STATES' },\r\n { placeId: 11054, cityName: 'HAMILTON', countryName: 'UNITED STATES' },\r\n { placeId: 11057, cityName: 'HAMMOND', countryName: 'UNITED STATES' },\r\n { placeId: 11059, cityName: 'HAMPTON', countryName: 'UNITED STATES' },\r\n { placeId: 5786, cityName: 'HAMPTON', countryName: 'UNITED STATES' },\r\n { placeId: 11060, cityName: 'HANA', countryName: 'UNITED STATES' },\r\n { placeId: 11061, cityName: 'HANALEI', countryName: 'UNITED STATES' },\r\n { placeId: 11062, cityName: 'HANAPEPE', countryName: 'UNITED STATES' },\r\n { placeId: 11063, cityName: 'HANCOCK', countryName: 'UNITED STATES' },\r\n { placeId: 5788, cityName: 'HANCOCK', countryName: 'UNITED STATES' },\r\n { placeId: 5789, cityName: 'HANFORD', countryName: 'UNITED STATES' },\r\n { placeId: 5791, cityName: 'HANKSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5795, cityName: 'HANNIBAL', countryName: 'UNITED STATES' },\r\n { placeId: 5798, cityName: 'HARBOR SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 5802, cityName: 'HARLAN', countryName: 'UNITED STATES' },\r\n { placeId: 1298, cityName: 'HARLINGEN', countryName: 'UNITED STATES' },\r\n { placeId: 5803, cityName: 'HARLOWTON', countryName: 'UNITED STATES' },\r\n { placeId: 1325, cityName: 'HARRISBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5806, cityName: 'HARRISBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5808, cityName: 'HARRISON', countryName: 'UNITED STATES' },\r\n { placeId: 5809, cityName: 'HARRISONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 11084, cityName: 'HARROLD', countryName: 'UNITED STATES' },\r\n { placeId: 2827, cityName: 'HARTFORD', countryName: 'UNITED STATES' },\r\n { placeId: 2826, cityName: 'HARTFORD', countryName: 'UNITED STATES' },\r\n { placeId: 5811, cityName: 'HARTSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5614, cityName: 'HASTINGS', countryName: 'UNITED STATES' },\r\n { placeId: 11091, cityName: 'HATTERAS', countryName: 'UNITED STATES' },\r\n { placeId: 5621, cityName: 'HATTIESBURG-LAUREL', countryName: 'UNITED STATES' },\r\n { placeId: 5620, cityName: 'HATTIESBURG', countryName: 'UNITED STATES' },\r\n { placeId: 1301, cityName: 'HAVRE', countryName: 'UNITED STATES' },\r\n { placeId: 11098, cityName: 'HAWI', countryName: 'UNITED STATES' },\r\n { placeId: 5812, cityName: 'HAWTHORNE', countryName: 'UNITED STATES' },\r\n { placeId: 11101, cityName: 'HAWTHORNE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 5813, cityName: 'HAYDEN', state: 'CO', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5814, cityName: 'HAYS', countryName: 'UNITED STATES' },\r\n { placeId: 5815, cityName: 'HAYWARD', countryName: 'UNITED STATES' },\r\n { placeId: 5816, cityName: 'HAYWARD', countryName: 'UNITED STATES' },\r\n { placeId: 11107, cityName: 'HAZARD', countryName: 'UNITED STATES' },\r\n { placeId: 5817, cityName: 'HAZEN', countryName: 'UNITED STATES' },\r\n { placeId: 5818, cityName: 'HAZLEHURST', countryName: 'UNITED STATES' },\r\n { placeId: 5819, cityName: 'HAZLETON', countryName: 'UNITED STATES' },\r\n { placeId: 11111, cityName: 'HEALDSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5820, cityName: 'HEARNE', countryName: 'UNITED STATES' },\r\n { placeId: 5822, cityName: 'HEBBRONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5823, cityName: 'HEBER SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 5824, cityName: 'HEBRON', countryName: 'UNITED STATES' },\r\n { placeId: 3026, cityName: 'HELENA-WEST HELENA', countryName: 'UNITED STATES' },\r\n { placeId: 1294, cityName: 'HELENA', countryName: 'UNITED STATES' },\r\n { placeId: 5827, cityName: 'HEMET', countryName: 'UNITED STATES' },\r\n { placeId: 11124, cityName: 'HENDERSON', countryName: 'UNITED STATES' },\r\n { placeId: 2991, cityName: 'HENDERSON', countryName: 'UNITED STATES' },\r\n { placeId: 5831, cityName: 'HEREFORD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 5832, cityName: 'HERENDEEN BAY', state: 'AK', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5833, cityName: 'HERINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 8251, cityName: 'HERLONG', countryName: 'UNITED STATES' },\r\n { placeId: 3033, cityName: 'HERMISTON', countryName: 'UNITED STATES' },\r\n { placeId: 11131, cityName: 'HERTFORD', countryName: 'UNITED STATES' },\r\n { placeId: 3027, cityName: 'HETTINGER', countryName: 'UNITED STATES' },\r\n { placeId: 5837, cityName: 'HIBBING', countryName: 'UNITED STATES' },\r\n { placeId: 5838, cityName: 'HICKORY', countryName: 'UNITED STATES' },\r\n { placeId: 5839, cityName: 'HIGGINSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5842, cityName: 'HIGHGATE', countryName: 'UNITED STATES' },\r\n { placeId: 5846, cityName: 'HILL CITY', countryName: 'UNITED STATES' },\r\n { placeId: 5848, cityName: 'HILLSBORO', countryName: 'UNITED STATES' },\r\n { placeId: 5847, cityName: 'HILLSBORO', countryName: 'UNITED STATES' },\r\n { placeId: 5849, cityName: 'HILLSBORO', countryName: 'UNITED STATES' },\r\n { placeId: 3053, cityName: 'HILLSDALE', countryName: 'UNITED STATES' },\r\n { placeId: 2408, cityName: 'HILO', countryName: 'UNITED STATES' },\r\n { placeId: 11150, cityName: 'HILTON HEAD I', countryName: 'UNITED STATES' },\r\n { placeId: 5856, cityName: 'HOBART', countryName: 'UNITED STATES' },\r\n { placeId: 5857, cityName: 'HOBBS', countryName: 'UNITED STATES' },\r\n { placeId: 5862, cityName: 'HOLDREGE', countryName: 'UNITED STATES' },\r\n { placeId: 5863, cityName: 'HOLLAND', countryName: 'UNITED STATES' },\r\n { placeId: 5865, cityName: 'HOLLISTER', countryName: 'UNITED STATES' },\r\n { placeId: 5866, cityName: 'HOLLYWOOD', countryName: 'UNITED STATES' },\r\n { placeId: 5868, cityName: 'HOLY CROSS', countryName: 'UNITED STATES' },\r\n { placeId: 5869, cityName: 'HOLYOKE', countryName: 'UNITED STATES' },\r\n { placeId: 5871, cityName: 'HOMER', countryName: 'UNITED STATES' },\r\n { placeId: 5872, cityName: 'HOMERVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 11166, cityName: 'HOMESTEAD', countryName: 'UNITED STATES' },\r\n { placeId: 5874, cityName: 'HOMEY', countryName: 'UNITED STATES' },\r\n { placeId: 5877, cityName: 'HONDO', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2406, cityName: 'HONOLULU', state: 'HI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5878, cityName: 'HOONAH', countryName: 'UNITED STATES' },\r\n { placeId: 11174, cityName: 'HOOPER BAY', countryName: 'UNITED STATES' },\r\n { placeId: 3037, cityName: 'HOPKINSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 1297, cityName: 'HOQUIAM', countryName: 'UNITED STATES' },\r\n { placeId: 11184, cityName: 'HORNELL', countryName: 'UNITED STATES' },\r\n { placeId: 11187, cityName: 'HORSESHOE BAY', countryName: 'UNITED STATES' },\r\n { placeId: 3034, cityName: 'HOT SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 5883, cityName: 'HOT SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 5884, cityName: 'HOT SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 5887, cityName: 'HOUGHTON LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 11194, cityName: 'HOULTON', countryName: 'UNITED STATES' },\r\n { placeId: 5888, cityName: 'HOUMA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1295, cityName: 'HOUSTON', state: 'TX', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5891, cityName: 'HOWELL', countryName: 'UNITED STATES' },\r\n { placeId: 11208, cityName: 'HUGHES', countryName: 'UNITED STATES' },\r\n { placeId: 5903, cityName: 'HUGO', countryName: 'UNITED STATES' },\r\n { placeId: 5904, cityName: 'HUGOTON', countryName: 'UNITED STATES' },\r\n { placeId: 3031, cityName: 'HUNTINGBURG', countryName: 'UNITED STATES' },\r\n { placeId: 5906, cityName: 'HUNTINGDON', countryName: 'UNITED STATES' },\r\n { placeId: 5907, cityName: 'HUNTINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 1300, cityName: 'HUNTINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 1299, cityName: 'HUNTSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5909, cityName: 'HUNTSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 5910, cityName: 'HURON', countryName: 'UNITED STATES' },\r\n { placeId: 11221, cityName: 'HURTSBORO', countryName: 'UNITED STATES' },\r\n { placeId: 5912, cityName: 'HUSLIA', countryName: 'UNITED STATES' },\r\n { placeId: 5914, cityName: 'HUTCHINSON', countryName: 'UNITED STATES' },\r\n { placeId: 5915, cityName: 'HUTCHINSON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 11225, cityName: 'HYANNIS', state: 'MASSACHUSETTS', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5925, cityName: 'IDA GROVE', countryName: 'UNITED STATES' },\r\n { placeId: 5926, cityName: 'IDAHO FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 5933, cityName: 'IGIUGIG', countryName: 'UNITED STATES' },\r\n { placeId: 5947, cityName: 'ILIAMNA', countryName: 'UNITED STATES' },\r\n { placeId: 5954, cityName: 'IMMOKALEE', countryName: 'UNITED STATES' },\r\n { placeId: 11249, cityName: 'IMPERIAL BEACH', countryName: 'UNITED STATES' },\r\n { placeId: 3043, cityName: 'IMPERIAL', countryName: 'UNITED STATES' },\r\n { placeId: 11247, cityName: 'IMPERIAL', countryName: 'UNITED STATES' },\r\n { placeId: 5962, cityName: 'INDEPENDENCE', countryName: 'UNITED STATES' },\r\n { placeId: 5961, cityName: 'INDEPENDENCE', countryName: 'UNITED STATES' },\r\n { placeId: 5963, cityName: 'INDIAN SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 5964, cityName: 'INDIANA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1307, cityName: 'INDIANAPOLIS', state: 'IN', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 5965, cityName: 'INDIANOLA', countryName: 'UNITED STATES' },\r\n { placeId: 11258, cityName: 'INGLESIDE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1308, cityName: 'INTERNATIONAL FALLS', state: 'MN', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 11265, cityName: 'INVERNESS', countryName: 'UNITED STATES' },\r\n { placeId: 5979, cityName: 'INYOKERN', countryName: 'UNITED STATES' },\r\n { placeId: 5981, cityName: 'IOWA CITY', countryName: 'UNITED STATES' },\r\n { placeId: 5982, cityName: 'IOWA FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 3045, cityName: 'IRON MT-KINGSFORD', countryName: 'UNITED STATES' },\r\n { placeId: 3048, cityName: 'IRONWOOD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 3047, cityName: 'ISLIP', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 6012, cityName: 'ITHACA', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3050, cityName: 'JACKSBORO', countryName: 'UNITED STATES' },\r\n { placeId: 6024, cityName: 'JACKSON', countryName: 'UNITED STATES' },\r\n { placeId: 6028, cityName: 'JACKSON', countryName: 'UNITED STATES' },\r\n { placeId: 11297, cityName: 'JACKSON', countryName: 'UNITED STATES' },\r\n { placeId: 3070, cityName: 'JACKSON', countryName: 'UNITED STATES' },\r\n { placeId: 6026, cityName: 'JACKSON', countryName: 'UNITED STATES' },\r\n { placeId: 6025, cityName: 'JACKSON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 6027, cityName: 'JACKSON', state: 'WY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 11298, cityName: 'JACKSONVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1312, cityName: 'JACKSONVILLE', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6029, cityName: 'JACKSONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6030, cityName: 'JACKSONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6031, cityName: 'JACKSONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 11300, cityName: 'JACKSONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 2940, cityName: 'JAFFREY', countryName: 'UNITED STATES' },\r\n { placeId: 6037, cityName: 'JAMESTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 6038, cityName: 'JAMESTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 3051, cityName: 'JANESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6046, cityName: 'JASPER', countryName: 'UNITED STATES' },\r\n { placeId: 6048, cityName: 'JASPER', countryName: 'UNITED STATES' },\r\n { placeId: 2945, cityName: 'JASPER', countryName: 'UNITED STATES' },\r\n { placeId: 6047, cityName: 'JASPER', countryName: 'UNITED STATES' },\r\n { placeId: 6054, cityName: 'JEFFERSON CITY', countryName: 'UNITED STATES' },\r\n { placeId: 6053, cityName: 'JEFFERSON', countryName: 'UNITED STATES' },\r\n { placeId: 6052, cityName: 'JEFFERSON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 3052, cityName: 'JEFFERSONVILLE', state: 'IN', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6057, cityName: 'JEROME', countryName: 'UNITED STATES' },\r\n { placeId: 6059, cityName: 'JESUP', countryName: 'UNITED STATES' },\r\n { placeId: 3012, cityName: 'JOHN DAY', countryName: 'UNITED STATES' },\r\n { placeId: 6070, cityName: 'JOHNSTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 6071, cityName: 'JOLIET', countryName: 'UNITED STATES' },\r\n { placeId: 6076, cityName: 'JONESBORO', countryName: 'UNITED STATES' },\r\n { placeId: 6077, cityName: 'JOPLIN', countryName: 'UNITED STATES' },\r\n { placeId: 6078, cityName: 'JORDAN', countryName: 'UNITED STATES' },\r\n { placeId: 6079, cityName: 'JORDAN', countryName: 'UNITED STATES' },\r\n { placeId: 11351, cityName: 'JOSEPH', countryName: 'UNITED STATES' },\r\n { placeId: 6085, cityName: 'JUNCTION', countryName: 'UNITED STATES' },\r\n { placeId: 6086, cityName: 'JUNEAU', countryName: 'UNITED STATES' },\r\n { placeId: 11355, cityName: 'JUNEAU', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2407, cityName: 'KAHULUI', state: 'HI', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 2405, cityName: 'KAILUA-KONA', state: 'HI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6108, cityName: 'KAISER/LAKE OZARK', countryName: 'UNITED STATES' },\r\n { placeId: 6113, cityName: 'KAKE', countryName: 'UNITED STATES' },\r\n { placeId: 1237, cityName: 'KALAMAZOO', countryName: 'UNITED STATES' },\r\n { placeId: 11367, cityName: 'KALAUPAPA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1288, cityName: 'KALISPELL', state: 'MT', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6126, cityName: 'KALSKAG', countryName: 'UNITED STATES' },\r\n { placeId: 5625, cityName: 'KALTAG', countryName: 'UNITED STATES' },\r\n { placeId: 5636, cityName: 'KAMUELA', countryName: 'UNITED STATES' },\r\n { placeId: 5637, cityName: 'KANAB', countryName: 'UNITED STATES' },\r\n { placeId: 3042, cityName: 'KANKAKEE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1323, cityName: 'KANSAS CITY', state: 'MO', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 11386, cityName: 'KAPOLEI', countryName: 'UNITED STATES' },\r\n { placeId: 6140, cityName: 'KARLUK', countryName: 'UNITED STATES' },\r\n { placeId: 11403, cityName: 'KASIGLUK', countryName: 'UNITED STATES' },\r\n { placeId: 11410, cityName: 'KAUNAKAKAI', countryName: 'UNITED STATES' },\r\n { placeId: 6178, cityName: 'KEARNEY', countryName: 'UNITED STATES' },\r\n { placeId: 2986, cityName: 'KEENE', countryName: 'UNITED STATES' },\r\n { placeId: 6183, cityName: 'KEKAHA', countryName: 'UNITED STATES' },\r\n { placeId: 6186, cityName: 'KELSO', countryName: 'UNITED STATES' },\r\n { placeId: 6189, cityName: 'KEMMERER', countryName: 'UNITED STATES' },\r\n { placeId: 2395, cityName: 'KENAI', countryName: 'UNITED STATES' },\r\n { placeId: 6192, cityName: 'KENANSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6200, cityName: 'KENNETT', countryName: 'UNITED STATES' },\r\n { placeId: 2995, cityName: 'KENOSHA', countryName: 'UNITED STATES' },\r\n { placeId: 2996, cityName: 'KEOKUK', countryName: 'UNITED STATES' },\r\n { placeId: 5045, cityName: 'KERRVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2399, cityName: 'KETCHIKAN', state: 'AK', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6206, cityName: 'KEWANEE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 11441, cityName: 'KEY WEST', state: 'FLORIDA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 11453, cityName: 'KIANA', countryName: 'UNITED STATES' },\r\n { placeId: 6219, cityName: 'KIDRON', countryName: 'UNITED STATES' },\r\n { placeId: 11460, cityName: 'KILL DEVIL HILLS', countryName: 'UNITED STATES' },\r\n { placeId: 6233, cityName: 'KILLEEN', countryName: 'UNITED STATES' },\r\n { placeId: 3039, cityName: 'KIMBALL', countryName: 'UNITED STATES' },\r\n { placeId: 11469, cityName: 'KIMBERLY', countryName: 'UNITED STATES' },\r\n { placeId: 6243, cityName: 'KING CITY', countryName: 'UNITED STATES' },\r\n { placeId: 11475, cityName: 'KING COVE', countryName: 'UNITED STATES' },\r\n { placeId: 2398, cityName: 'KING SALMON', countryName: 'UNITED STATES' },\r\n { placeId: 6245, cityName: 'KINGMAN', countryName: 'UNITED STATES' },\r\n { placeId: 6247, cityName: 'KINGSTREE', countryName: 'UNITED STATES' },\r\n { placeId: 6248, cityName: 'KINGSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 1311, cityName: 'KINSTON', countryName: 'UNITED STATES' },\r\n { placeId: 11488, cityName: 'KIPNUK', countryName: 'UNITED STATES' },\r\n { placeId: 6258, cityName: 'KIRKSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 11500, cityName: 'KIVALINA', countryName: 'UNITED STATES' },\r\n { placeId: 3057, cityName: 'KLAMATH FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 6279, cityName: 'KLAWOCK', countryName: 'UNITED STATES' },\r\n { placeId: 6287, cityName: 'KNOB NOSTER', countryName: 'UNITED STATES' },\r\n { placeId: 6288, cityName: 'KNOX', countryName: 'UNITED STATES' },\r\n { placeId: 6289, cityName: 'KNOXVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1390, cityName: 'KNOXVILLE', state: 'IN', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6291, cityName: 'KOBUK', countryName: 'UNITED STATES' },\r\n { placeId: 6292, cityName: 'KODIAK', countryName: 'UNITED STATES' },\r\n { placeId: 11514, cityName: 'KOKHANOK', countryName: 'UNITED STATES' },\r\n { placeId: 6305, cityName: 'KOKOMO', countryName: 'UNITED STATES' },\r\n { placeId: 6309, cityName: 'KOLIGANEK', countryName: 'UNITED STATES' },\r\n { placeId: 11521, cityName: 'KONGIGANAK', countryName: 'UNITED STATES' },\r\n { placeId: 6322, cityName: 'KOSCIUSKO', countryName: 'UNITED STATES' },\r\n { placeId: 11527, cityName: 'KOTLIK', countryName: 'UNITED STATES' },\r\n { placeId: 11528, cityName: 'KOTZEBUE', countryName: 'UNITED STATES' },\r\n { placeId: 11530, cityName: 'KOYUK', countryName: 'UNITED STATES' },\r\n { placeId: 11531, cityName: 'KOYUKUK', countryName: 'UNITED STATES' },\r\n { placeId: 6340, cityName: 'KULIK LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 11550, cityName: 'KWETHLUK', countryName: 'UNITED STATES' },\r\n { placeId: 11551, cityName: 'KWIGILLINGOK', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 6364, cityName: 'LA CROSSE', state: 'WI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3055, cityName: 'LA GRANDE', countryName: 'UNITED STATES' },\r\n { placeId: 6372, cityName: 'LA JUNTA', countryName: 'UNITED STATES' },\r\n { placeId: 6379, cityName: 'LA PORTE', countryName: 'UNITED STATES' },\r\n { placeId: 6385, cityName: 'LA VERNE', countryName: 'UNITED STATES' },\r\n { placeId: 6399, cityName: 'LACONIA', countryName: 'UNITED STATES' },\r\n { placeId: 6401, cityName: 'LADYSMITH', countryName: 'UNITED STATES' },\r\n { placeId: 6402, cityName: 'LAFAYETTE', countryName: 'UNITED STATES' },\r\n { placeId: 6403, cityName: 'LAFAYETTE', countryName: 'UNITED STATES' },\r\n { placeId: 6404, cityName: 'LAGO VISTA', countryName: 'UNITED STATES' },\r\n { placeId: 6405, cityName: 'LAGRANGE', countryName: 'UNITED STATES' },\r\n { placeId: 11591, cityName: 'LAHAINA', countryName: 'UNITED STATES' },\r\n { placeId: 1317, cityName: 'LAKE CHARLES', countryName: 'UNITED STATES' },\r\n { placeId: 6409, cityName: 'LAKE CITY', countryName: 'UNITED STATES' },\r\n { placeId: 3028, cityName: 'LAKE HAVASU CITY', countryName: 'UNITED STATES' },\r\n { placeId: 6411, cityName: 'LAKE PLACID', countryName: 'UNITED STATES' },\r\n { placeId: 6413, cityName: 'LAKEHURST', countryName: 'UNITED STATES' },\r\n { placeId: 6414, cityName: 'LAKELAND', countryName: 'UNITED STATES' },\r\n { placeId: 3056, cityName: 'LAKEVIEW', countryName: 'UNITED STATES' },\r\n { placeId: 6417, cityName: 'LAMAR', countryName: 'UNITED STATES' },\r\n { placeId: 6416, cityName: 'LAMAR', countryName: 'UNITED STATES' },\r\n { placeId: 2983, cityName: 'LAMBERTVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 3061, cityName: 'LAMONI', countryName: 'UNITED STATES' },\r\n { placeId: 6422, cityName: 'LAMPASAS', countryName: 'UNITED STATES' },\r\n { placeId: 11609, cityName: 'LANAI CITY', countryName: 'UNITED STATES' },\r\n { placeId: 6426, cityName: 'LANCASTER', countryName: 'UNITED STATES' },\r\n { placeId: 6430, cityName: 'LANCASTER', countryName: 'UNITED STATES' },\r\n { placeId: 6427, cityName: 'LANCASTER', countryName: 'UNITED STATES' },\r\n { placeId: 6429, cityName: 'LANCASTER', countryName: 'UNITED STATES' },\r\n { placeId: 6428, cityName: 'LANCASTER', countryName: 'UNITED STATES' },\r\n { placeId: 6425, cityName: 'LANCASTER', countryName: 'UNITED STATES' },\r\n { placeId: 6431, cityName: 'LAND O\\'LAKES', countryName: 'UNITED STATES' },\r\n { placeId: 6432, cityName: 'LANDER', countryName: 'UNITED STATES' },\r\n { placeId: 6437, cityName: 'LANSING', countryName: 'UNITED STATES' },\r\n { placeId: 6441, cityName: 'LARAMIE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1320, cityName: 'LAREDO', state: 'TX', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6442, cityName: 'LARNED', countryName: 'UNITED STATES' },\r\n { placeId: 11627, cityName: 'LARSEN BAY', countryName: 'UNITED STATES' },\r\n { placeId: 6443, cityName: 'LAS CRUCES', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1314, cityName: 'LAS VEGAS', state: 'NV', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6445, cityName: 'LAS VEGAS', countryName: 'UNITED STATES' },\r\n { placeId: 6451, cityName: 'LATROBE', countryName: 'UNITED STATES' },\r\n { placeId: 6452, cityName: 'LAUREL', countryName: 'UNITED STATES' },\r\n { placeId: 11636, cityName: 'LAURENS', countryName: 'UNITED STATES' },\r\n { placeId: 6457, cityName: 'LAWRENCE', countryName: 'UNITED STATES' },\r\n { placeId: 6458, cityName: 'LAWRENCE', countryName: 'UNITED STATES' },\r\n { placeId: 6459, cityName: 'LAWRENCEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 3059, cityName: 'LAWRENCEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 3063, cityName: 'LAWRENCEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6460, cityName: 'LAWTON', countryName: 'UNITED STATES' },\r\n { placeId: 6461, cityName: 'LE MARS', countryName: 'UNITED STATES' },\r\n { placeId: 6463, cityName: 'LEADVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6467, cityName: 'LEBANON', countryName: 'UNITED STATES' },\r\n { placeId: 6468, cityName: 'LEBANON', countryName: 'UNITED STATES' },\r\n { placeId: 6516, cityName: 'LEE\\'S SUMMIT', countryName: 'UNITED STATES' },\r\n { placeId: 6519, cityName: 'LEESBURG', countryName: 'UNITED STATES' },\r\n { placeId: 6518, cityName: 'LEESBURG', countryName: 'UNITED STATES' },\r\n { placeId: 3054, cityName: 'LEMMON', countryName: 'UNITED STATES' },\r\n { placeId: 5648, cityName: 'LEMOORE', countryName: 'UNITED STATES' },\r\n { placeId: 6526, cityName: 'LENORA', countryName: 'UNITED STATES' },\r\n { placeId: 6536, cityName: 'LEVELLAND', countryName: 'UNITED STATES' },\r\n { placeId: 6537, cityName: 'LEWISBURG', countryName: 'UNITED STATES' },\r\n { placeId: 3060, cityName: 'LEWISBURG', countryName: 'UNITED STATES' },\r\n { placeId: 3062, cityName: 'LEWISTON', countryName: 'UNITED STATES' },\r\n { placeId: 6538, cityName: 'LEWISTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 6542, cityName: 'LEXINGTON-PARSONS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1318, cityName: 'LEXINGTON', state: 'KY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6540, cityName: 'LEXINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 6541, cityName: 'LEXINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 6545, cityName: 'LIBERAL', countryName: 'UNITED STATES' },\r\n { placeId: 11689, cityName: 'LIHUE', countryName: 'UNITED STATES' },\r\n { placeId: 6558, cityName: 'LIMA', countryName: 'UNITED STATES' },\r\n { placeId: 6561, cityName: 'LIMON', countryName: 'UNITED STATES' },\r\n { placeId: 6564, cityName: 'LINCOLN', countryName: 'UNITED STATES' },\r\n { placeId: 6565, cityName: 'LINCOLN', countryName: 'UNITED STATES' },\r\n { placeId: 6566, cityName: 'LINCOLN', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 6567, cityName: 'LINCOLN', state: 'IL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6568, cityName: 'LINCOLNTON', countryName: 'UNITED STATES' },\r\n { placeId: 6570, cityName: 'LINDEN', countryName: 'UNITED STATES' },\r\n { placeId: 6578, cityName: 'LITCHFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 6580, cityName: 'LITTLE FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 6583, cityName: 'LITTLE RIVER', countryName: 'UNITED STATES' },\r\n { placeId: 1319, cityName: 'LITTLE ROCK', countryName: 'UNITED STATES' },\r\n { placeId: 6584, cityName: 'LITTLEFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 6586, cityName: 'LIVERMORE', countryName: 'UNITED STATES' },\r\n { placeId: 6587, cityName: 'LIVINGSTON', countryName: 'UNITED STATES' },\r\n { placeId: 6591, cityName: 'LLANO', countryName: 'UNITED STATES' },\r\n { placeId: 6593, cityName: 'LOCK HAVEN', countryName: 'UNITED STATES' },\r\n { placeId: 11720, cityName: 'LOCUST GROVE', countryName: 'UNITED STATES' },\r\n { placeId: 6596, cityName: 'LOGAN', countryName: 'UNITED STATES' },\r\n { placeId: 6597, cityName: 'LOGANSPORT', countryName: 'UNITED STATES' },\r\n { placeId: 11724, cityName: 'LOMPOC', countryName: 'UNITED STATES' },\r\n { placeId: 6607, cityName: 'LONDON', countryName: 'UNITED STATES' },\r\n { placeId: 6606, cityName: 'LONDON', countryName: 'UNITED STATES' },\r\n { placeId: 6608, cityName: 'LONE ROCK', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2831, cityName: 'LONG BEACH', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6611, cityName: 'LONGMONT', countryName: 'UNITED STATES' },\r\n { placeId: 6613, cityName: 'LONGVIEW', countryName: 'UNITED STATES' },\r\n { placeId: 6614, cityName: 'LONGVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 6618, cityName: 'LORAIN/ELYRIA', state: 'OH', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6619, cityName: 'LORDSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 11740, cityName: 'LOS ALAMITOS', countryName: 'UNITED STATES' },\r\n { placeId: 6620, cityName: 'LOS ALAMOS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1315, cityName: 'LOS ANGELES', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6623, cityName: 'LOS BANOS', countryName: 'UNITED STATES' },\r\n { placeId: 11745, cityName: 'LOST RIVER', countryName: 'UNITED STATES' },\r\n { placeId: 6628, cityName: 'LOUISA', countryName: 'UNITED STATES' },\r\n { placeId: 6629, cityName: 'LOUISBURG', countryName: 'UNITED STATES' },\r\n { placeId: 6631, cityName: 'LOUISVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1375, cityName: 'LOUISVILLE', state: 'KY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6634, cityName: 'LOVELOCK', countryName: 'UNITED STATES' },\r\n { placeId: 1316, cityName: 'LUBBOCK', countryName: 'UNITED STATES' },\r\n { placeId: 6654, cityName: 'LUDINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 6659, cityName: 'LUFKIN', countryName: 'UNITED STATES' },\r\n { placeId: 6670, cityName: 'LUMBERTON', countryName: 'UNITED STATES' },\r\n { placeId: 6677, cityName: 'LUSK', countryName: 'UNITED STATES' },\r\n { placeId: 3064, cityName: 'LUVERNE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 6682, cityName: 'LYNCHBURG', state: 'VA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 11770, cityName: 'LYNDONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6683, cityName: 'LYONS', countryName: 'UNITED STATES' },\r\n { placeId: 11778, cityName: 'MACHIAS', countryName: 'UNITED STATES' },\r\n { placeId: 6478, cityName: 'MACKINAC ISLAND', countryName: 'UNITED STATES' },\r\n { placeId: 6691, cityName: 'MACOMB', countryName: 'UNITED STATES' },\r\n { placeId: 11784, cityName: 'MACOMB', countryName: 'UNITED STATES' },\r\n { placeId: 6692, cityName: 'MACON', countryName: 'UNITED STATES' },\r\n { placeId: 6694, cityName: 'MADERA', countryName: 'UNITED STATES' },\r\n { placeId: 3044, cityName: 'MADISON', countryName: 'UNITED STATES' },\r\n { placeId: 6697, cityName: 'MADISON', countryName: 'UNITED STATES' },\r\n { placeId: 6698, cityName: 'MADISON', countryName: 'UNITED STATES' },\r\n { placeId: 6695, cityName: 'MADISON', countryName: 'UNITED STATES' },\r\n { placeId: 6696, cityName: 'MADISON', countryName: 'UNITED STATES' },\r\n { placeId: 3075, cityName: 'MADISONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6708, cityName: 'MAGNOLIA', countryName: 'UNITED STATES' },\r\n { placeId: 6729, cityName: 'MALAD CITY', countryName: 'UNITED STATES' },\r\n { placeId: 6738, cityName: 'MALDEN', countryName: 'UNITED STATES' },\r\n { placeId: 5658, cityName: 'MALONE', countryName: 'UNITED STATES' },\r\n { placeId: 6744, cityName: 'MAMMOTH LAKES', countryName: 'UNITED STATES' },\r\n { placeId: 11809, cityName: 'MANASSAS', countryName: 'UNITED STATES' },\r\n { placeId: 6751, cityName: 'MANASSAS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 3069, cityName: 'MANCHESTER', state: 'NH', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6760, cityName: 'MANHATTAN', countryName: 'UNITED STATES' },\r\n { placeId: 6764, cityName: 'MANILA', countryName: 'UNITED STATES' },\r\n { placeId: 6765, cityName: 'MANISTEE', countryName: 'UNITED STATES' },\r\n { placeId: 11821, cityName: 'MANISTIQUE', countryName: 'UNITED STATES' },\r\n { placeId: 11825, cityName: 'MANITOWOC', countryName: 'UNITED STATES' },\r\n { placeId: 6772, cityName: 'MANKATO', countryName: 'UNITED STATES' },\r\n { placeId: 6773, cityName: 'MANKATO', countryName: 'UNITED STATES' },\r\n { placeId: 6774, cityName: 'MANLEY HOT SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 6776, cityName: 'MANNING', countryName: 'UNITED STATES' },\r\n { placeId: 6777, cityName: 'MANOKOTAK', countryName: 'UNITED STATES' },\r\n { placeId: 6782, cityName: 'MANSFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 11837, cityName: 'MANTEO', countryName: 'UNITED STATES' },\r\n { placeId: 6789, cityName: 'MAPLE LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 6790, cityName: 'MAPLETON', countryName: 'UNITED STATES' },\r\n { placeId: 6792, cityName: 'MAQUOKETA', countryName: 'UNITED STATES' },\r\n { placeId: 6798, cityName: 'MARANA', countryName: 'UNITED STATES' },\r\n { placeId: 11846, cityName: 'MARATHON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 11848, cityName: 'MARCO I', state: 'FLORIDA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6805, cityName: 'MARFA', countryName: 'UNITED STATES' },\r\n { placeId: 3065, cityName: 'MARIANNA', countryName: 'UNITED STATES' },\r\n { placeId: 6813, cityName: 'MARIETTA', countryName: 'UNITED STATES' },\r\n { placeId: 6814, cityName: 'MARINA', countryName: 'UNITED STATES' },\r\n { placeId: 6820, cityName: 'MARION-WYTHEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6819, cityName: 'MARION', countryName: 'UNITED STATES' },\r\n { placeId: 6817, cityName: 'MARION', countryName: 'UNITED STATES' },\r\n { placeId: 6816, cityName: 'MARION', countryName: 'UNITED STATES' },\r\n { placeId: 6818, cityName: 'MARION', countryName: 'UNITED STATES' },\r\n { placeId: 6821, cityName: 'MARIPOSA', countryName: 'UNITED STATES' },\r\n { placeId: 6825, cityName: 'MARKS', countryName: 'UNITED STATES' },\r\n { placeId: 6826, cityName: 'MARKSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 1373, cityName: 'MARQUETTE', countryName: 'UNITED STATES' },\r\n { placeId: 6834, cityName: 'MARSHALL', countryName: 'UNITED STATES' },\r\n { placeId: 6837, cityName: 'MARSHALL', countryName: 'UNITED STATES' },\r\n { placeId: 6835, cityName: 'MARSHALL', countryName: 'UNITED STATES' },\r\n { placeId: 6833, cityName: 'MARSHALL', countryName: 'UNITED STATES' },\r\n { placeId: 6836, cityName: 'MARSHALL', countryName: 'UNITED STATES' },\r\n { placeId: 6838, cityName: 'MARSHALLTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 11878, cityName: 'MARSHFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 6839, cityName: 'MARSHFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 6840, cityName: 'MARTINSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 6841, cityName: 'MARTINSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 11881, cityName: 'MARY ESTHER', countryName: 'UNITED STATES' },\r\n { placeId: 6844, cityName: 'MARYSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6843, cityName: 'MARYSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6845, cityName: 'MARYSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6846, cityName: 'MARYVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6855, cityName: 'MASON CITY', countryName: 'UNITED STATES' },\r\n { placeId: 6854, cityName: 'MASON', countryName: 'UNITED STATES' },\r\n { placeId: 1337, cityName: 'MASSENA', countryName: 'UNITED STATES' },\r\n { placeId: 6875, cityName: 'MATTOON-CHARLESTON', countryName: 'UNITED STATES' },\r\n { placeId: 6884, cityName: 'MAXTON', countryName: 'UNITED STATES' },\r\n { placeId: 11909, cityName: 'MAYPORT', countryName: 'UNITED STATES' },\r\n { placeId: 6898, cityName: 'MC ALESTER', countryName: 'UNITED STATES' },\r\n { placeId: 1328, cityName: 'MC ALLEN', countryName: 'UNITED STATES' },\r\n { placeId: 6899, cityName: 'MC CALL', countryName: 'UNITED STATES' },\r\n { placeId: 6900, cityName: 'MC COMB', countryName: 'UNITED STATES' },\r\n { placeId: 6901, cityName: 'MC COOK', countryName: 'UNITED STATES' },\r\n { placeId: 6902, cityName: 'MC GREGOR', countryName: 'UNITED STATES' },\r\n { placeId: 6903, cityName: 'MC MINNVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 3073, cityName: 'MC MINNVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6904, cityName: 'MC PHERSON', countryName: 'UNITED STATES' },\r\n { placeId: 6906, cityName: 'MC RAE', countryName: 'UNITED STATES' },\r\n { placeId: 6910, cityName: 'MCGRATH', countryName: 'UNITED STATES' },\r\n { placeId: 6912, cityName: 'MCKINLEY PARK', countryName: 'UNITED STATES' },\r\n { placeId: 6915, cityName: 'MEADE', countryName: 'UNITED STATES' },\r\n { placeId: 6917, cityName: 'MEADVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 3066, cityName: 'MEDFORD', countryName: 'UNITED STATES' },\r\n { placeId: 11934, cityName: 'MEDFORD', countryName: 'UNITED STATES' },\r\n { placeId: 6919, cityName: 'MEEKER', countryName: 'UNITED STATES' },\r\n { placeId: 6925, cityName: 'MEKORYUK', countryName: 'UNITED STATES' },\r\n { placeId: 11940, cityName: 'MELBOURNE', countryName: 'UNITED STATES' },\r\n { placeId: 11941, cityName: 'MELFA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1327, cityName: 'MEMPHIS', state: 'TN', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6934, cityName: 'MENA', countryName: 'UNITED STATES' },\r\n { placeId: 3074, cityName: 'MENOMINEE', countryName: 'UNITED STATES' },\r\n { placeId: 6937, cityName: 'MENOMONIE', countryName: 'UNITED STATES' },\r\n { placeId: 6941, cityName: 'MERCED', countryName: 'UNITED STATES' },\r\n { placeId: 6945, cityName: 'MERIDEN', countryName: 'UNITED STATES' },\r\n { placeId: 6946, cityName: 'MERIDIAN', countryName: 'UNITED STATES' },\r\n { placeId: 6948, cityName: 'MERRILL', countryName: 'UNITED STATES' },\r\n { placeId: 11960, cityName: 'MERRITT ISLAND', countryName: 'UNITED STATES' },\r\n { placeId: 6953, cityName: 'MESA', countryName: 'UNITED STATES' },\r\n { placeId: 6954, cityName: 'MESQUITE', countryName: 'UNITED STATES' },\r\n { placeId: 6957, cityName: 'METTER', countryName: 'UNITED STATES' },\r\n { placeId: 6958, cityName: 'MEXIA', countryName: 'UNITED STATES' },\r\n { placeId: 6959, cityName: 'MEXICO', countryName: 'UNITED STATES' },\r\n { placeId: 6963, cityName: 'MIAMI', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 11968, cityName: 'MIAMI', state: 'FLORIDA', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 1330, cityName: 'MIAMI', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3067, cityName: 'MICHIGAN CITY', countryName: 'UNITED STATES' },\r\n { placeId: 11971, cityName: 'MIDDLETON I', countryName: 'UNITED STATES' },\r\n { placeId: 6967, cityName: 'MIDDLETOWN', countryName: 'UNITED STATES' },\r\n { placeId: 11973, cityName: 'MIDDLETOWN', countryName: 'UNITED STATES' },\r\n { placeId: 1321, cityName: 'MIDLAND', countryName: 'UNITED STATES' },\r\n { placeId: 11974, cityName: 'MIDLAND', countryName: 'UNITED STATES' },\r\n { placeId: 6969, cityName: 'MIDLOTHIAN/WAXAHACHIE', countryName: 'UNITED STATES' },\r\n { placeId: 6972, cityName: 'MILES CITY', countryName: 'UNITED STATES' },\r\n { placeId: 6973, cityName: 'MILFORD', countryName: 'UNITED STATES' },\r\n { placeId: 6976, cityName: 'MILLEDGEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6977, cityName: 'MILLER', countryName: 'UNITED STATES' },\r\n { placeId: 6978, cityName: 'MILLINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 6979, cityName: 'MILLINOCKET', countryName: 'UNITED STATES' },\r\n { placeId: 6980, cityName: 'MILLVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 11991, cityName: 'MILTON', countryName: 'UNITED STATES' },\r\n { placeId: 3080, cityName: 'MILTON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1331, cityName: 'MILWAUKEE', state: 'WI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6984, cityName: 'MINCHUMINA', countryName: 'UNITED STATES' },\r\n { placeId: 6985, cityName: 'MINDEN', countryName: 'UNITED STATES' },\r\n { placeId: 11996, cityName: 'MINDEN', countryName: 'UNITED STATES' },\r\n { placeId: 6986, cityName: 'MINEOLA/QUITMAN', countryName: 'UNITED STATES' },\r\n { placeId: 6987, cityName: 'MINERAL POINT', countryName: 'UNITED STATES' },\r\n { placeId: 6988, cityName: 'MINERAL WELLS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1336, cityName: 'MINNEAPOLIS', state: 'MN', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6991, cityName: 'MINOCQUA-WOODRUFF', countryName: 'UNITED STATES' },\r\n { placeId: 1334, cityName: 'MINOT', countryName: 'UNITED STATES' },\r\n { placeId: 1335, cityName: 'MISSOULA', countryName: 'UNITED STATES' },\r\n { placeId: 6998, cityName: 'MITCHELL', countryName: 'UNITED STATES' },\r\n { placeId: 6485, cityName: 'MOAB', countryName: 'UNITED STATES' },\r\n { placeId: 6490, cityName: 'MOBERLY', countryName: 'UNITED STATES' },\r\n { placeId: 1333, cityName: 'MOBILE', countryName: 'UNITED STATES' },\r\n { placeId: 12018, cityName: 'MOBILE', countryName: 'UNITED STATES' },\r\n { placeId: 6492, cityName: 'MOBRIDGE', countryName: 'UNITED STATES' },\r\n { placeId: 6494, cityName: 'MODESTO', countryName: 'UNITED STATES' },\r\n { placeId: 7006, cityName: 'MOHALL', countryName: 'UNITED STATES' },\r\n { placeId: 7009, cityName: 'MOJAVE', countryName: 'UNITED STATES' },\r\n { placeId: 12023, cityName: 'MOKAPU', countryName: 'UNITED STATES' },\r\n { placeId: 1332, cityName: 'MOLINE', countryName: 'UNITED STATES' },\r\n { placeId: 12028, cityName: 'MONCKS CORNER', countryName: 'UNITED STATES' },\r\n { placeId: 12031, cityName: 'MONETT', countryName: 'UNITED STATES' },\r\n { placeId: 7032, cityName: 'MONONGAHELA', countryName: 'UNITED STATES' },\r\n { placeId: 7033, cityName: 'MONROE', countryName: 'UNITED STATES' },\r\n { placeId: 7034, cityName: 'MONROE', countryName: 'UNITED STATES' },\r\n { placeId: 7035, cityName: 'MONROE', countryName: 'UNITED STATES' },\r\n { placeId: 2988, cityName: 'MONROE', countryName: 'UNITED STATES' },\r\n { placeId: 7036, cityName: 'MONROEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7037, cityName: 'MONTAGUE', countryName: 'UNITED STATES' },\r\n { placeId: 12042, cityName: 'MONTAUK', countryName: 'UNITED STATES' },\r\n { placeId: 7041, cityName: 'MONTE VISTA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 7045, cityName: 'MONTEREY', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7047, cityName: 'MONTEVIDEO', countryName: 'UNITED STATES' },\r\n { placeId: 1329, cityName: 'MONTGOMERY', countryName: 'UNITED STATES' },\r\n { placeId: 7048, cityName: 'MONTGOMERY', countryName: 'UNITED STATES' },\r\n { placeId: 7051, cityName: 'MONTICELLO', countryName: 'UNITED STATES' },\r\n { placeId: 7050, cityName: 'MONTICELLO', countryName: 'UNITED STATES' },\r\n { placeId: 7049, cityName: 'MONTICELLO', countryName: 'UNITED STATES' },\r\n { placeId: 7052, cityName: 'MONTICELLO', countryName: 'UNITED STATES' },\r\n { placeId: 7053, cityName: 'MONTICELLO', countryName: 'UNITED STATES' },\r\n { placeId: 7055, cityName: 'MONTROSE', countryName: 'UNITED STATES' },\r\n { placeId: 7058, cityName: 'MOORELAND', countryName: 'UNITED STATES' },\r\n { placeId: 7059, cityName: 'MOORHEAD', countryName: 'UNITED STATES' },\r\n { placeId: 7062, cityName: 'MOOSE LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 7066, cityName: 'MORA', countryName: 'UNITED STATES' },\r\n { placeId: 7069, cityName: 'MORGANTON', countryName: 'UNITED STATES' },\r\n { placeId: 7070, cityName: 'MORGANTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 7077, cityName: 'MORRILTON', countryName: 'UNITED STATES' },\r\n { placeId: 7078, cityName: 'MORRIS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 3072, cityName: 'MORRISTOWN', state: 'NJ', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3076, cityName: 'MORRISTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 7079, cityName: 'MORRISVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7080, cityName: 'MOSBY', countryName: 'UNITED STATES' },\r\n { placeId: 1339, cityName: 'MOSES LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 7082, cityName: 'MOSINEE', countryName: 'UNITED STATES' },\r\n { placeId: 7090, cityName: 'MOULTRIE', countryName: 'UNITED STATES' },\r\n { placeId: 5660, cityName: 'MOUNDSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 12090, cityName: 'MOUNDVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 6298, cityName: 'MOUNT PLEASANT', countryName: 'UNITED STATES' },\r\n { placeId: 7093, cityName: 'MOUNTAIN HOME', countryName: 'UNITED STATES' },\r\n { placeId: 7092, cityName: 'MOUNTAIN HOME', countryName: 'UNITED STATES' },\r\n { placeId: 7097, cityName: 'MOUNTAIN VIEW', countryName: 'UNITED STATES' },\r\n { placeId: 7096, cityName: 'MOUNTAIN VIEW', countryName: 'UNITED STATES' },\r\n { placeId: 7098, cityName: 'MOUNTAIN VILLAGE', countryName: 'UNITED STATES' },\r\n { placeId: 7106, cityName: 'MT AIRY', countryName: 'UNITED STATES' },\r\n { placeId: 2942, cityName: 'MT CARMEL', countryName: 'UNITED STATES' },\r\n { placeId: 12104, cityName: 'MT CLEMENS', countryName: 'UNITED STATES' },\r\n { placeId: 7107, cityName: 'MT HOLLY', countryName: 'UNITED STATES' },\r\n { placeId: 12109, cityName: 'MT PLEASANT', countryName: 'UNITED STATES' },\r\n { placeId: 7108, cityName: 'MT PLEASANT', countryName: 'UNITED STATES' },\r\n { placeId: 3077, cityName: 'MT PLEASANT', countryName: 'UNITED STATES' },\r\n { placeId: 7109, cityName: 'MT POCONO', countryName: 'UNITED STATES' },\r\n { placeId: 7110, cityName: 'MT STERLING', countryName: 'UNITED STATES' },\r\n { placeId: 7111, cityName: 'MT VERNON', countryName: 'UNITED STATES' },\r\n { placeId: 3068, cityName: 'MULLEN', countryName: 'UNITED STATES' },\r\n { placeId: 7132, cityName: 'MUNCIE', countryName: 'UNITED STATES' },\r\n { placeId: 7136, cityName: 'MURFREESBORO', countryName: 'UNITED STATES' },\r\n { placeId: 3899, cityName: 'MURRAY', countryName: 'UNITED STATES' },\r\n { placeId: 3079, cityName: 'MUSCATINE', countryName: 'UNITED STATES' },\r\n { placeId: 7137, cityName: 'MUSCLE SHOALS', countryName: 'UNITED STATES' },\r\n { placeId: 7141, cityName: 'MUSKEGON', countryName: 'UNITED STATES' },\r\n { placeId: 7142, cityName: 'MUSKOGEE', countryName: 'UNITED STATES' },\r\n { placeId: 12139, cityName: 'MYRTLE BEACH', countryName: 'UNITED STATES' },\r\n { placeId: 6499, cityName: 'NACOGDOCHES', countryName: 'UNITED STATES' },\r\n { placeId: 12151, cityName: 'NAMPA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2936, cityName: 'NANTUCKET', state: 'MA', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 7185, cityName: 'NAPA', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 12160, cityName: 'NAPAKIAK', countryName: 'UNITED STATES' },\r\n { placeId: 12161, cityName: 'NAPASKIAK', countryName: 'UNITED STATES' },\r\n { placeId: 7186, cityName: 'NAPERVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 7188, cityName: 'NAPLES', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 2947, cityName: 'NASHUA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1246, cityName: 'NASHVILLE', state: 'TN', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7195, cityName: 'NATCHEZ', countryName: 'UNITED STATES' },\r\n { placeId: 7196, cityName: 'NATCHITOCHES', countryName: 'UNITED STATES' },\r\n { placeId: 2939, cityName: 'NEBRASKA CITY', countryName: 'UNITED STATES' },\r\n { placeId: 7207, cityName: 'NECEDAH', countryName: 'UNITED STATES' },\r\n { placeId: 7209, cityName: 'NEEDLES', countryName: 'UNITED STATES' },\r\n { placeId: 7214, cityName: 'NEILLSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 12182, cityName: 'NELSON LAGOON', countryName: 'UNITED STATES' },\r\n { placeId: 7224, cityName: 'NENANA', countryName: 'UNITED STATES' },\r\n { placeId: 2997, cityName: 'NEOSHO', countryName: 'UNITED STATES' },\r\n { placeId: 7228, cityName: 'NEVADA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 7229, cityName: 'NEW BEDFORD', state: 'MA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7230, cityName: 'NEW BERLIN', countryName: 'UNITED STATES' },\r\n { placeId: 7231, cityName: 'NEW BERN', countryName: 'UNITED STATES' },\r\n { placeId: 7232, cityName: 'NEW BRAUNFELS', countryName: 'UNITED STATES' },\r\n { placeId: 7233, cityName: 'NEW CASTLE', countryName: 'UNITED STATES' },\r\n { placeId: 7234, cityName: 'NEW CASTLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 9479, cityName: 'NEW HAVEN', state: 'CT', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6299, cityName: 'NEW IBERIA', countryName: 'UNITED STATES' },\r\n { placeId: 2992, cityName: 'NEW MADRID', countryName: 'UNITED STATES' },\r\n { placeId: 12197, cityName: 'NEW ORLEANS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1338, cityName: 'NEW ORLEANS', state: 'LA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 6301, cityName: 'NEW PALTZ', countryName: 'UNITED STATES' },\r\n { placeId: 6302, cityName: 'NEW PHILADELPHIA', countryName: 'UNITED STATES' },\r\n { placeId: 6304, cityName: 'NEW PORT RICHEY', countryName: 'UNITED STATES' },\r\n { placeId: 7235, cityName: 'NEW RICHMOND', countryName: 'UNITED STATES' },\r\n { placeId: 7236, cityName: 'NEW ROADS', countryName: 'UNITED STATES' },\r\n { placeId: 12203, cityName: 'NEW SMYRNA BEACH', countryName: 'UNITED STATES' },\r\n { placeId: 7237, cityName: 'NEW STUYAHOK', countryName: 'UNITED STATES' },\r\n { placeId: 7239, cityName: 'NEW ULM', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1313, cityName: 'NEW YORK', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 1278, cityName: 'NEWARK', state: 'NJ', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 7240, cityName: 'NEWARK', state: 'OH', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7241, cityName: 'NEWBERRY', countryName: 'UNITED STATES' },\r\n { placeId: 12210, cityName: 'NEWBERRY', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1383, cityName: 'NEWBURGH', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7242, cityName: 'NEWCASTLE', countryName: 'UNITED STATES' },\r\n { placeId: 7245, cityName: 'NEWELLTON', countryName: 'UNITED STATES' },\r\n { placeId: 1354, cityName: 'NEWPORT NEWS', countryName: 'UNITED STATES' },\r\n { placeId: 3086, cityName: 'NEWPORT', countryName: 'UNITED STATES' },\r\n { placeId: 12215, cityName: 'NEWPORT', countryName: 'UNITED STATES' },\r\n { placeId: 7246, cityName: 'NEWPORT', countryName: 'UNITED STATES' },\r\n { placeId: 7247, cityName: 'NEWTOK', countryName: 'UNITED STATES' },\r\n { placeId: 7249, cityName: 'NEWTON', countryName: 'UNITED STATES' },\r\n { placeId: 7248, cityName: 'NEWTON', countryName: 'UNITED STATES' },\r\n { placeId: 1303, cityName: 'NIAGARA FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 7259, cityName: 'NIKOLAI', countryName: 'UNITED STATES' },\r\n { placeId: 12228, cityName: 'NIKOLSKI', countryName: 'UNITED STATES' },\r\n { placeId: 7272, cityName: 'NOATAK', countryName: 'UNITED STATES' },\r\n { placeId: 1343, cityName: 'NOGALES', countryName: 'UNITED STATES' },\r\n { placeId: 12238, cityName: 'NOME', countryName: 'UNITED STATES' },\r\n { placeId: 12239, cityName: 'NONDALTON', countryName: 'UNITED STATES' },\r\n { placeId: 12240, cityName: 'NOORVIK', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1346, cityName: 'NORFOLK', state: 'VA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7276, cityName: 'NORFOLK', countryName: 'UNITED STATES' },\r\n { placeId: 7277, cityName: 'NORMAN', countryName: 'UNITED STATES' },\r\n { placeId: 7278, cityName: 'NORRIDGEWOCK', countryName: 'UNITED STATES' },\r\n { placeId: 7281, cityName: 'NORTH ADAMS', countryName: 'UNITED STATES' },\r\n { placeId: 3090, cityName: 'NORTH BEND', countryName: 'UNITED STATES' },\r\n { placeId: 3173, cityName: 'NORTH EAST', countryName: 'UNITED STATES' },\r\n { placeId: 12255, cityName: 'NORTH KINGSTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 7283, cityName: 'NORTH LITTLE ROCK', countryName: 'UNITED STATES' },\r\n { placeId: 12257, cityName: 'NORTH MYRTLE BEACH', countryName: 'UNITED STATES' },\r\n { placeId: 7284, cityName: 'NORTH PLATTE', countryName: 'UNITED STATES' },\r\n { placeId: 7288, cityName: 'NORTH VERNON', countryName: 'UNITED STATES' },\r\n { placeId: 7289, cityName: 'NORTH WILKESBORO', countryName: 'UNITED STATES' },\r\n { placeId: 7280, cityName: 'NORTH', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 13929, cityName: 'NORTHAMPTON', state: 'MASSACHUSETTS', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 2400, cityName: 'NORTHWAY', countryName: 'UNITED STATES' },\r\n { placeId: 7290, cityName: 'NORTON', countryName: 'UNITED STATES' },\r\n { placeId: 7291, cityName: 'NORWICH', countryName: 'UNITED STATES' },\r\n { placeId: 7313, cityName: 'NORWOOD', countryName: 'UNITED STATES' },\r\n { placeId: 12270, cityName: 'NOVATO', countryName: 'UNITED STATES' },\r\n { placeId: 6507, cityName: 'NUCLA', countryName: 'UNITED STATES' },\r\n { placeId: 7320, cityName: 'NUIQSUT', countryName: 'UNITED STATES' },\r\n { placeId: 7321, cityName: 'NULATO', countryName: 'UNITED STATES' },\r\n { placeId: 7332, cityName: 'O\\'NEILL', countryName: 'UNITED STATES' },\r\n { placeId: 7333, cityName: 'OAHU', countryName: 'UNITED STATES' },\r\n { placeId: 12288, cityName: 'OAK HARBOR', countryName: 'UNITED STATES' },\r\n { placeId: 12289, cityName: 'OAK ISLAND', countryName: 'UNITED STATES' },\r\n { placeId: 7335, cityName: 'OAKDALE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1340, cityName: 'OAKLAND', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7336, cityName: 'OAKLEY', countryName: 'UNITED STATES' },\r\n { placeId: 7343, cityName: 'OBERLIN', countryName: 'UNITED STATES' },\r\n { placeId: 7352, cityName: 'OCALA', countryName: 'UNITED STATES' },\r\n { placeId: 7353, cityName: 'OCALA/BELLEVIEW', countryName: 'UNITED STATES' },\r\n { placeId: 12300, cityName: 'OCEAN CITY', countryName: 'UNITED STATES' },\r\n { placeId: 12301, cityName: 'OCEANA', countryName: 'UNITED STATES' },\r\n { placeId: 7355, cityName: 'OCEANSIDE', countryName: 'UNITED STATES' },\r\n { placeId: 7357, cityName: 'OCONTO', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 7359, cityName: 'ODESSA', state: 'TX', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7362, cityName: 'OELWEIN', countryName: 'UNITED STATES' },\r\n { placeId: 3083, cityName: 'OGALLALA', countryName: 'UNITED STATES' },\r\n { placeId: 7363, cityName: 'OGDEN', countryName: 'UNITED STATES' },\r\n { placeId: 7364, cityName: 'OGDENSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 7369, cityName: 'OKEECHOBEE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1341, cityName: 'OKLAHOMA CITY', state: 'OK', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 12315, cityName: 'OKLAHOMA CITY', countryName: 'UNITED STATES' },\r\n { placeId: 7294, cityName: 'OKMULGEE', countryName: 'UNITED STATES' },\r\n { placeId: 3049, cityName: 'OLATHE', countryName: 'UNITED STATES' },\r\n { placeId: 7376, cityName: 'OLD TOWN', countryName: 'UNITED STATES' },\r\n { placeId: 7379, cityName: 'OLEAN', countryName: 'UNITED STATES' },\r\n { placeId: 7380, cityName: 'OLIVE BRANCH', countryName: 'UNITED STATES' },\r\n { placeId: 7382, cityName: 'OLIVIA', countryName: 'UNITED STATES' },\r\n { placeId: 7384, cityName: 'OLNEY-NOBLE', countryName: 'UNITED STATES' },\r\n { placeId: 7383, cityName: 'OLNEY', countryName: 'UNITED STATES' },\r\n { placeId: 1342, cityName: 'OLYMPIA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1344, cityName: 'OMAHA', state: 'NE', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7385, cityName: 'OMAK', countryName: 'UNITED STATES' },\r\n { placeId: 3125, cityName: 'ONEIDA', countryName: 'UNITED STATES' },\r\n { placeId: 3167, cityName: 'ONSTED', countryName: 'UNITED STATES' },\r\n { placeId: 7392, cityName: 'ONTARIO', countryName: 'UNITED STATES' },\r\n { placeId: 1345, cityName: 'ONTARIO', countryName: 'UNITED STATES' },\r\n { placeId: 7393, cityName: 'ONTONAGON', countryName: 'UNITED STATES' },\r\n { placeId: 7395, cityName: 'OPELOUSAS', countryName: 'UNITED STATES' },\r\n { placeId: 7403, cityName: 'ORANGE CITY', countryName: 'UNITED STATES' },\r\n { placeId: 7404, cityName: 'ORANGE GROVE', countryName: 'UNITED STATES' },\r\n { placeId: 7402, cityName: 'ORANGE', countryName: 'UNITED STATES' },\r\n { placeId: 3088, cityName: 'ORANGE', countryName: 'UNITED STATES' },\r\n { placeId: 7401, cityName: 'ORANGE', countryName: 'UNITED STATES' },\r\n { placeId: 7405, cityName: 'ORANGEBURG', countryName: 'UNITED STATES' },\r\n { placeId: 7410, cityName: 'ORD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1324, cityName: 'ORLANDO', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7421, cityName: 'ORMOND BEACH', countryName: 'UNITED STATES' },\r\n { placeId: 7424, cityName: 'OROVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7425, cityName: 'ORR', countryName: 'UNITED STATES' },\r\n { placeId: 7427, cityName: 'ORTONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7431, cityName: 'OSCEOLA', countryName: 'UNITED STATES' },\r\n { placeId: 12368, cityName: 'OSCODA', countryName: 'UNITED STATES' },\r\n { placeId: 3084, cityName: 'OSHKOSH', countryName: 'UNITED STATES' },\r\n { placeId: 7433, cityName: 'OSHKOSH', countryName: 'UNITED STATES' },\r\n { placeId: 7435, cityName: 'OSKALOOSA', countryName: 'UNITED STATES' },\r\n { placeId: 7296, cityName: 'OTTAWA', countryName: 'UNITED STATES' },\r\n { placeId: 7297, cityName: 'OTTAWA', countryName: 'UNITED STATES' },\r\n { placeId: 7299, cityName: 'OTTUMWA', countryName: 'UNITED STATES' },\r\n { placeId: 7450, cityName: 'OWATONNA', countryName: 'UNITED STATES' },\r\n { placeId: 3091, cityName: 'OWENSBORO', countryName: 'UNITED STATES' },\r\n { placeId: 7453, cityName: 'OWOSSO', countryName: 'UNITED STATES' },\r\n { placeId: 7455, cityName: 'OXFORD-HENDERSON', countryName: 'UNITED STATES' },\r\n { placeId: 7457, cityName: 'OXFORD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 7458, cityName: 'OXFORD', state: 'CT', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7456, cityName: 'OXFORD', countryName: 'UNITED STATES' },\r\n { placeId: 7460, cityName: 'OXNARD', countryName: 'UNITED STATES' },\r\n { placeId: 7466, cityName: 'OZONA', countryName: 'UNITED STATES' },\r\n { placeId: 3095, cityName: 'PACIFIC CITY', countryName: 'UNITED STATES' },\r\n { placeId: 3092, cityName: 'PADUCAH', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1352, cityName: 'PAGE', state: 'AZ', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7469, cityName: 'PAGELAND', countryName: 'UNITED STATES' },\r\n { placeId: 7470, cityName: 'PAGOSA SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 7471, cityName: 'PAHOKEE', countryName: 'UNITED STATES' },\r\n { placeId: 7472, cityName: 'PAINESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 12411, cityName: 'PALACIOS', countryName: 'UNITED STATES' },\r\n { placeId: 6513, cityName: 'PALESTINE', countryName: 'UNITED STATES' },\r\n { placeId: 4635, cityName: 'PALM COAST', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 6514, cityName: 'PALM SPRINGS', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 1359, cityName: 'PALMDALE', countryName: 'UNITED STATES' },\r\n { placeId: 7481, cityName: 'PALMER', countryName: 'UNITED STATES' },\r\n { placeId: 7537, cityName: 'PALO ALTO', countryName: 'UNITED STATES' },\r\n { placeId: 7542, cityName: 'PAMPA', state: 'TX',countryName: 'UNITED STATES' },\r\n { placeId: 1351, cityName: 'PANAMA CITY', state: 'FL',countryName: 'UNITED STATES' },\r\n { placeId: 7552, cityName: 'PARADISE', countryName: 'UNITED STATES' },\r\n { placeId: 3096, cityName: 'PARAGOULD', countryName: 'UNITED STATES' },\r\n { placeId: 7558, cityName: 'PARIS', state: 'TX',countryName: 'UNITED STATES' },\r\n { placeId: 3104, cityName: 'PARIS', state: 'IL',countryName: 'UNITED STATES' },\r\n { placeId: 7559, cityName: 'PARIS', state: 'TN',countryName: 'UNITED STATES' },\r\n { placeId: 7560, cityName: 'PARK FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 7561, cityName: 'PARK RAPIDS', countryName: 'UNITED STATES' },\r\n { placeId: 7562, cityName: 'PARKERSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 7566, cityName: 'PARSONS', countryName: 'UNITED STATES' },\r\n { placeId: 12452, cityName: 'PASCAGOULA', countryName: 'UNITED STATES' },\r\n { placeId: 7568, cityName: 'PASCO', countryName: 'UNITED STATES' },\r\n { placeId: 7571, cityName: 'PASO ROBLES', countryName: 'UNITED STATES' },\r\n { placeId: 7577, cityName: 'PATTERSON', countryName: 'UNITED STATES' },\r\n { placeId: 12457, cityName: 'PATUXENT RIVER', countryName: 'UNITED STATES' },\r\n { placeId: 7582, cityName: 'PAULS VALLEY', countryName: 'UNITED STATES' },\r\n { placeId: 7584, cityName: 'PAWTUCKET', countryName: 'UNITED STATES' },\r\n { placeId: 7585, cityName: 'PAXSON', countryName: 'UNITED STATES' },\r\n { placeId: 7586, cityName: 'PAYNESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7588, cityName: 'PAYSON', countryName: 'UNITED STATES' },\r\n { placeId: 7591, cityName: 'PECOS', countryName: 'UNITED STATES' },\r\n { placeId: 7599, cityName: 'PELL CITY', countryName: 'UNITED STATES' },\r\n { placeId: 7600, cityName: 'PELLA', countryName: 'UNITED STATES' },\r\n { placeId: 7601, cityName: 'PELLSTON', countryName: 'UNITED STATES' },\r\n { placeId: 3100, cityName: 'PEMBINA', countryName: 'UNITED STATES' },\r\n { placeId: 3744, cityName: 'PENCE SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 3094, cityName: 'PENDLETON', countryName: 'UNITED STATES' },\r\n { placeId: 7608, cityName: 'PENN YAN', countryName: 'UNITED STATES' },\r\n { placeId: 12486, cityName: 'PENSACOLA', countryName: 'UNITED STATES' },\r\n { placeId: 1357, cityName: 'PEORIA', countryName: 'UNITED STATES' },\r\n { placeId: 12490, cityName: 'PERKASIE', countryName: 'UNITED STATES' },\r\n { placeId: 7613, cityName: 'PERRY', countryName: 'UNITED STATES' },\r\n { placeId: 7614, cityName: 'PERRY', countryName: 'UNITED STATES' },\r\n { placeId: 7615, cityName: 'PERRYTON', countryName: 'UNITED STATES' },\r\n { placeId: 12494, cityName: 'PERRYVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7307, cityName: 'PERU', countryName: 'UNITED STATES' },\r\n { placeId: 7308, cityName: 'PERU', countryName: 'UNITED STATES' },\r\n { placeId: 7619, cityName: 'PETERSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 12501, cityName: 'PETERSBURG', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1355, cityName: 'PHILADELPHIA', state: 'PA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7624, cityName: 'PHILADELPHIA', countryName: 'UNITED STATES' },\r\n { placeId: 3097, cityName: 'PHILIP', countryName: 'UNITED STATES' },\r\n { placeId: 7625, cityName: 'PHILIPSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 7626, cityName: 'PHILLIPS', countryName: 'UNITED STATES' },\r\n { placeId: 7627, cityName: 'PHILLIPSBURG', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1356, cityName: 'PHOENIX', state: 'AZ', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 12512, cityName: 'PICABO', countryName: 'UNITED STATES' },\r\n { placeId: 7632, cityName: 'PICAYUNE', countryName: 'UNITED STATES' },\r\n { placeId: 7633, cityName: 'PICKENS', countryName: 'UNITED STATES' },\r\n { placeId: 7635, cityName: 'PIEDMONT', countryName: 'UNITED STATES' },\r\n { placeId: 7636, cityName: 'PIERRE', countryName: 'UNITED STATES' },\r\n { placeId: 7641, cityName: 'PIKEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7645, cityName: 'PILOT POINT', countryName: 'UNITED STATES' },\r\n { placeId: 7648, cityName: 'PINCKNEYVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7650, cityName: 'PINE BLUFF', countryName: 'UNITED STATES' },\r\n { placeId: 7654, cityName: 'PINE MOUNTAIN', countryName: 'UNITED STATES' },\r\n { placeId: 3041, cityName: 'PINE RIDGE', countryName: 'UNITED STATES' },\r\n { placeId: 7655, cityName: 'PINE RIVER', countryName: 'UNITED STATES' },\r\n { placeId: 7656, cityName: 'PINEDALE', countryName: 'UNITED STATES' },\r\n { placeId: 7658, cityName: 'PINEHURST/SOUTHERN PINES', countryName: 'UNITED STATES' },\r\n { placeId: 7660, cityName: 'PIPESTONE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 3105, cityName: 'PITTSBURG', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 1229, cityName: 'PITTSBURGH', state: 'PA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7664, cityName: 'PITTSFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 7665, cityName: 'PITTSFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 7668, cityName: 'PLACERVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7669, cityName: 'PLACIDA', countryName: 'UNITED STATES' },\r\n { placeId: 7670, cityName: 'PLAINVIEW', countryName: 'UNITED STATES' },\r\n { placeId: 7671, cityName: 'PLANT CITY', countryName: 'UNITED STATES' },\r\n { placeId: 7673, cityName: 'PLATINUM', countryName: 'UNITED STATES' },\r\n { placeId: 3106, cityName: 'PLATTEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 3093, cityName: 'PLATTSBURGH', countryName: 'UNITED STATES' },\r\n { placeId: 3101, cityName: 'PLATTSMOUTH', countryName: 'UNITED STATES' },\r\n { placeId: 9235, cityName: 'PLEASANT HARBOR', countryName: 'UNITED STATES' },\r\n { placeId: 7675, cityName: 'PLEASANTON', countryName: 'UNITED STATES' },\r\n { placeId: 7677, cityName: 'PLENTYWOOD', countryName: 'UNITED STATES' },\r\n { placeId: 12555, cityName: 'PLYMOUTH', countryName: 'UNITED STATES' },\r\n { placeId: 7678, cityName: 'PLYMOUTH', countryName: 'UNITED STATES' },\r\n { placeId: 7680, cityName: 'POCAHONTAS', countryName: 'UNITED STATES' },\r\n { placeId: 7681, cityName: 'POCATELLO', countryName: 'UNITED STATES' },\r\n { placeId: 7685, cityName: 'POHAKULOA', countryName: 'UNITED STATES' },\r\n { placeId: 12565, cityName: 'POINT HOPE', countryName: 'UNITED STATES' },\r\n { placeId: 7486, cityName: 'POINT LAY', countryName: 'UNITED STATES' },\r\n { placeId: 3099, cityName: 'POINT LOOKOUT', countryName: 'UNITED STATES' },\r\n { placeId: 7487, cityName: 'POINT MC INTYRE', countryName: 'UNITED STATES' },\r\n { placeId: 12568, cityName: 'POINT MUGU', countryName: 'UNITED STATES' },\r\n { placeId: 12574, cityName: 'POMPANO BEACH', countryName: 'UNITED STATES' },\r\n { placeId: 7492, cityName: 'PONCA CITY', countryName: 'UNITED STATES' },\r\n { placeId: 7498, cityName: 'PONTIAC', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 7497, cityName: 'PONTIAC', state: 'MI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3102, cityName: 'POPLAR BLUFF', countryName: 'UNITED STATES' },\r\n { placeId: 1259, cityName: 'PORT ANGELES', countryName: 'UNITED STATES' },\r\n { placeId: 12589, cityName: 'PORT ARANSAS', countryName: 'UNITED STATES' },\r\n { placeId: 12592, cityName: 'PORT CLARENCE', countryName: 'UNITED STATES' },\r\n { placeId: 7702, cityName: 'PORT CLINTON', countryName: 'UNITED STATES' },\r\n { placeId: 7705, cityName: 'PORT HEIDEN', countryName: 'UNITED STATES' },\r\n { placeId: 12601, cityName: 'PORT HURON', countryName: 'UNITED STATES' },\r\n { placeId: 12602, cityName: 'PORT ISABEL', countryName: 'UNITED STATES' },\r\n { placeId: 12604, cityName: 'PORT LAVACA', countryName: 'UNITED STATES' },\r\n { placeId: 12610, cityName: 'PORTAGE CREEK', countryName: 'UNITED STATES' },\r\n { placeId: 7711, cityName: 'PORTALES', countryName: 'UNITED STATES' },\r\n { placeId: 7712, cityName: 'PORTERVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1350, cityName: 'PORTLAND', state: 'OR', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 1363, cityName: 'PORTLAND', countryName: 'UNITED STATES' },\r\n { placeId: 3098, cityName: 'PORTLAND', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 7741, cityName: 'PORTSMOUTH', state: 'OH', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 12619, cityName: 'PORTSMOUTH', countryName: 'UNITED STATES' },\r\n { placeId: 12620, cityName: 'POSEYVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 3117, cityName: 'POTEAU', countryName: 'UNITED STATES' },\r\n { placeId: 7747, cityName: 'POTSDAM', countryName: 'UNITED STATES' },\r\n { placeId: 7748, cityName: 'POTTSTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 7749, cityName: 'POTTSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 3103, cityName: 'POUGHKEEPSIE', countryName: 'UNITED STATES' },\r\n { placeId: 7750, cityName: 'POWELL', countryName: 'UNITED STATES' },\r\n { placeId: 7755, cityName: 'PRAIRIE DU CHIEN', countryName: 'UNITED STATES' },\r\n { placeId: 7758, cityName: 'PRATT', countryName: 'UNITED STATES' },\r\n { placeId: 7761, cityName: 'PRESCOTT', countryName: 'UNITED STATES' },\r\n { placeId: 1360, cityName: 'PRESQUE ISLE', countryName: 'UNITED STATES' },\r\n { placeId: 3002, cityName: 'PRESTON', countryName: 'UNITED STATES' },\r\n { placeId: 7762, cityName: 'PRICE', countryName: 'UNITED STATES' },\r\n { placeId: 7766, cityName: 'PRINCETON', countryName: 'UNITED STATES' },\r\n { placeId: 7767, cityName: 'PRINCETON', countryName: 'UNITED STATES' },\r\n { placeId: 7771, cityName: 'PROSPECT CREEK', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1362, cityName: 'PROVIDENCE', state: 'RI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 12662, cityName: 'PROVINCETOWN', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 7773, cityName: 'PROVO', state: 'UT', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 1361, cityName: 'PUEBLO', countryName: 'UNITED STATES' },\r\n { placeId: 7799, cityName: 'PULASKI', countryName: 'UNITED STATES' },\r\n { placeId: 7801, cityName: 'PULLMAN/MOSCOW', countryName: 'UNITED STATES' },\r\n { placeId: 7719, cityName: 'PUNTA GORDA', countryName: 'UNITED STATES' },\r\n { placeId: 7809, cityName: 'PUYALLUP', countryName: 'UNITED STATES' },\r\n { placeId: 7821, cityName: 'QUAKERTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 7823, cityName: 'QUANTICO', countryName: 'UNITED STATES' },\r\n { placeId: 7832, cityName: 'QUILLAYUTE', countryName: 'UNITED STATES' },\r\n { placeId: 7834, cityName: 'QUINCY', countryName: 'UNITED STATES' },\r\n { placeId: 7835, cityName: 'QUINHAGAK', countryName: 'UNITED STATES' },\r\n { placeId: 3108, cityName: 'RACINE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1364, cityName: 'RALEIGH/DURHAM', state: 'NC', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7846, cityName: 'RAMONA', countryName: 'UNITED STATES' },\r\n { placeId: 7850, cityName: 'RANCHO MURIETA', countryName: 'UNITED STATES' },\r\n { placeId: 12729, cityName: 'RANGER', countryName: 'UNITED STATES' },\r\n { placeId: 7852, cityName: 'RANTOUL', countryName: 'UNITED STATES' },\r\n { placeId: 3109, cityName: 'RAPID CITY', countryName: 'UNITED STATES' },\r\n { placeId: 7866, cityName: 'RATON', countryName: 'UNITED STATES' },\r\n { placeId: 12740, cityName: 'RAVENNA', countryName: 'UNITED STATES' },\r\n { placeId: 7870, cityName: 'RAWLINS', countryName: 'UNITED STATES' },\r\n { placeId: 12742, cityName: 'RAYMOND', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 7720, cityName: 'READING', state: 'PA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7722, cityName: 'RED BLUFF', countryName: 'UNITED STATES' },\r\n { placeId: 7873, cityName: 'RED DOG', countryName: 'UNITED STATES' },\r\n { placeId: 7875, cityName: 'RED LODGE', countryName: 'UNITED STATES' },\r\n { placeId: 7876, cityName: 'RED OAK', countryName: 'UNITED STATES' },\r\n { placeId: 7878, cityName: 'RED WING', countryName: 'UNITED STATES' },\r\n { placeId: 7879, cityName: 'REDDING', countryName: 'UNITED STATES' },\r\n { placeId: 7880, cityName: 'REDLANDS', countryName: 'UNITED STATES' },\r\n { placeId: 3112, cityName: 'REDMOND', countryName: 'UNITED STATES' },\r\n { placeId: 7881, cityName: 'REDSTONE ARSENAL', countryName: 'UNITED STATES' },\r\n { placeId: 7882, cityName: 'REDWOOD FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 7883, cityName: 'REED CITY', countryName: 'UNITED STATES' },\r\n { placeId: 7884, cityName: 'REEDSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7885, cityName: 'REFUGIO', countryName: 'UNITED STATES' },\r\n { placeId: 7889, cityName: 'REIDSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7890, cityName: 'REIDSVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1366, cityName: 'RENO', state: 'NV', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 12771, cityName: 'RENO', countryName: 'UNITED STATES' },\r\n { placeId: 7897, cityName: 'RENSSELAER', countryName: 'UNITED STATES' },\r\n { placeId: 7898, cityName: 'RENTON', countryName: 'UNITED STATES' },\r\n { placeId: 7903, cityName: 'REXBURG', countryName: 'UNITED STATES' },\r\n { placeId: 7906, cityName: 'RHINELANDER', countryName: 'UNITED STATES' },\r\n { placeId: 7908, cityName: 'RICE LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 7910, cityName: 'RICHFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 7911, cityName: 'RICHLAND', countryName: 'UNITED STATES' },\r\n { placeId: 12784, cityName: 'RICHLANDS', countryName: 'UNITED STATES' },\r\n { placeId: 3114, cityName: 'RICHMOND', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1365, cityName: 'RICHMOND', state: 'VA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7912, cityName: 'RICHMOND/ASHLAND', countryName: 'UNITED STATES' },\r\n { placeId: 4833, cityName: 'RIDGECREST', countryName: 'UNITED STATES' },\r\n { placeId: 3115, cityName: 'RIDGELY', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2817, cityName: 'RIFLE', state: 'CO', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7725, cityName: 'RIVERSIDE', countryName: 'UNITED STATES' },\r\n { placeId: 7726, cityName: 'RIVERSIDE/RUBIDOUX', countryName: 'UNITED STATES' },\r\n { placeId: 7728, cityName: 'RIVERTON', countryName: 'UNITED STATES' },\r\n { placeId: 12808, cityName: 'ROANOKE RAPIDS', countryName: 'UNITED STATES' },\r\n { placeId: 7925, cityName: 'ROANOKE RAPIDS', countryName: 'UNITED STATES' },\r\n { placeId: 7924, cityName: 'ROANOKE', countryName: 'UNITED STATES' },\r\n { placeId: 3121, cityName: 'ROBINSON', countryName: 'UNITED STATES' },\r\n { placeId: 7931, cityName: 'ROBSTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 12815, cityName: 'ROCHE HARBOR', countryName: 'UNITED STATES' },\r\n { placeId: 7932, cityName: 'ROCHELLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 7935, cityName: 'ROCHESTER', state: 'MN', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 12820, cityName: 'ROCHESTER', countryName: 'UNITED STATES' },\r\n { placeId: 7933, cityName: 'ROCHESTER', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1367, cityName: 'ROCHESTER', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7936, cityName: 'ROCK HILL', countryName: 'UNITED STATES' },\r\n { placeId: 7937, cityName: 'ROCK RAPIDS', countryName: 'UNITED STATES' },\r\n { placeId: 7938, cityName: 'ROCK SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 7939, cityName: 'ROCKDALE', countryName: 'UNITED STATES' },\r\n { placeId: 3111, cityName: 'ROCKINGHAM', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 3116, cityName: 'ROCKLAND', state: 'ME', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 12830, cityName: 'ROCKPORT', countryName: 'UNITED STATES' },\r\n { placeId: 7941, cityName: 'ROCKSPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 3118, cityName: 'ROCKWOOD', countryName: 'UNITED STATES' },\r\n { placeId: 7943, cityName: 'ROCKY MOUNT', countryName: 'UNITED STATES' },\r\n { placeId: 7948, cityName: 'ROGERS CITY', countryName: 'UNITED STATES' },\r\n { placeId: 7947, cityName: 'ROGERS', countryName: 'UNITED STATES' },\r\n { placeId: 3122, cityName: 'ROGERSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7954, cityName: 'ROLLA/VICHY', countryName: 'UNITED STATES' },\r\n { placeId: 7956, cityName: 'ROME', countryName: 'UNITED STATES' },\r\n { placeId: 7955, cityName: 'ROME', countryName: 'UNITED STATES' },\r\n { placeId: 3113, cityName: 'ROME', countryName: 'UNITED STATES' },\r\n { placeId: 7961, cityName: 'ROSEAU', countryName: 'UNITED STATES' },\r\n { placeId: 12850, cityName: 'ROSEBUD', countryName: 'UNITED STATES' },\r\n { placeId: 3110, cityName: 'ROSEBURG', countryName: 'UNITED STATES' },\r\n { placeId: 7966, cityName: 'ROSWELL', countryName: 'UNITED STATES' },\r\n { placeId: 12861, cityName: 'ROUND MOUNTAIN', countryName: 'UNITED STATES' },\r\n { placeId: 7970, cityName: 'ROUNDUP', countryName: 'UNITED STATES' },\r\n { placeId: 7972, cityName: 'ROXBORO', countryName: 'UNITED STATES' },\r\n { placeId: 7974, cityName: 'RUBY', countryName: 'UNITED STATES' },\r\n { placeId: 7978, cityName: 'RUGBY', countryName: 'UNITED STATES' },\r\n { placeId: 7981, cityName: 'RUIDOSO', countryName: 'UNITED STATES' },\r\n { placeId: 3119, cityName: 'RUSH CITY', countryName: 'UNITED STATES' },\r\n { placeId: 7988, cityName: 'RUSSELL', countryName: 'UNITED STATES' },\r\n { placeId: 7733, cityName: 'RUSSELLVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 7735, cityName: 'RUSSIAN MISSION', countryName: 'UNITED STATES' },\r\n { placeId: 7737, cityName: 'RUSTON', countryName: 'UNITED STATES' },\r\n { placeId: 7738, cityName: 'RUTHERFORDTON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 7739, cityName: 'RUTLAND', state: 'VT', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7994, cityName: 'SAC CITY', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1369, cityName: 'SACRAMENTO', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8000, cityName: 'SAFFORD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1322, cityName: 'SAGINAW', state: 'MI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3129, cityName: 'SALEM', countryName: 'UNITED STATES' },\r\n { placeId: 8005, cityName: 'SALEM', countryName: 'UNITED STATES' },\r\n { placeId: 8007, cityName: 'SALIDA', countryName: 'UNITED STATES' },\r\n { placeId: 8009, cityName: 'SALINA', countryName: 'UNITED STATES' },\r\n { placeId: 8011, cityName: 'SALINAS', countryName: 'UNITED STATES' },\r\n { placeId: 8013, cityName: 'SALISBURY', countryName: 'UNITED STATES' },\r\n { placeId: 8012, cityName: 'SALISBURY', countryName: 'UNITED STATES' },\r\n { placeId: 8014, cityName: 'SALLISAW', countryName: 'UNITED STATES' },\r\n { placeId: 8016, cityName: 'SALMON', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1380, cityName: 'SALT LAKE CITY', state: 'UT', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8019, cityName: 'SALTON CITY', countryName: 'UNITED STATES' },\r\n { placeId: 8027, cityName: 'SAN ANDREAS', countryName: 'UNITED STATES' },\r\n { placeId: 8028, cityName: 'SAN ANGELO', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1371, cityName: 'SAN ANTONIO', state: 'TX', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8030, cityName: 'SAN ARDO', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8031, cityName: 'SAN BERNARDINO', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8035, cityName: 'SAN CARLOS', countryName: 'UNITED STATES' },\r\n { placeId: 12918, cityName: 'SAN CLEMENTE ISLAND', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 12919, cityName: 'SAN DIEGO', state: 'CALIFORNIA', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 1370, cityName: 'SAN DIEGO', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 1376, cityName: 'SAN FRANCISCO', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 1379, cityName: 'SAN JOSE', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8054, cityName: 'SAN LUIS OBISPO', countryName: 'UNITED STATES' },\r\n { placeId: 8055, cityName: 'SAN MARCOS', countryName: 'UNITED STATES' },\r\n { placeId: 12930, cityName: 'SAN NICOLAS I', countryName: 'UNITED STATES' },\r\n { placeId: 12932, cityName: 'SAND POINT', countryName: 'UNITED STATES' },\r\n { placeId: 8072, cityName: 'SAND SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 8074, cityName: 'SANDERSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 3134, cityName: 'SANDPOINT', countryName: 'UNITED STATES' },\r\n { placeId: 8076, cityName: 'SANDUSKY', countryName: 'UNITED STATES' },\r\n { placeId: 12941, cityName: 'SANFORD', countryName: 'UNITED STATES' },\r\n { placeId: 8080, cityName: 'SANFORD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8083, cityName: 'SANTA ANA', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 3123, cityName: 'SANTA BARBARA', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 8095, cityName: 'SANTA FE', state: 'NM', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8097, cityName: 'SANTA MARIA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2818, cityName: 'SANTA MONICA', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8100, cityName: 'SANTA PAULA', countryName: 'UNITED STATES' },\r\n { placeId: 8101, cityName: 'SANTA ROSA', countryName: 'UNITED STATES' },\r\n { placeId: 12953, cityName: 'SANTA ROSA', countryName: 'UNITED STATES' },\r\n { placeId: 12955, cityName: 'SANTA YNEZ', countryName: 'UNITED STATES' },\r\n { placeId: 8114, cityName: 'SARANAC LAKE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2863, cityName: 'SARASOTA/BRADENTON', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 8115, cityName: 'SARATOGA', state: 'WY', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 8130, cityName: 'SAULT STE MARIE', state: 'MI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8132, cityName: 'SAVANNA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1372, cityName: 'SAVANNAH', state: 'GA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8133, cityName: 'SAVANNAH', countryName: 'UNITED STATES' },\r\n { placeId: 8137, cityName: 'SAVOONGA', countryName: 'UNITED STATES' },\r\n { placeId: 8139, cityName: 'SCAMMON BAY', countryName: 'UNITED STATES' },\r\n { placeId: 3131, cityName: 'SCAPPOOSE', countryName: 'UNITED STATES' },\r\n { placeId: 8141, cityName: 'SCHENECTADY', countryName: 'UNITED STATES' },\r\n { placeId: 8145, cityName: 'SCOTT CITY', countryName: 'UNITED STATES' },\r\n { placeId: 2953, cityName: 'SCOTTSBLUFF', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8146, cityName: 'SCOTTSDALE', state: 'AZ', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7521, cityName: 'SCRIBNER', countryName: 'UNITED STATES' },\r\n { placeId: 7524, cityName: 'SEARCY', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1240, cityName: 'SEATTLE', state: 'WA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 7527, cityName: 'SEBRING', countryName: 'UNITED STATES' },\r\n { placeId: 7529, cityName: 'SEDALIA', countryName: 'UNITED STATES' },\r\n { placeId: 7530, cityName: 'SEDONA', countryName: 'UNITED STATES' },\r\n { placeId: 8148, cityName: 'SELAWIK', countryName: 'UNITED STATES' },\r\n { placeId: 8149, cityName: 'SELDOVIA', countryName: 'UNITED STATES' },\r\n { placeId: 8152, cityName: 'SELINSGROVE', countryName: 'UNITED STATES' },\r\n { placeId: 8154, cityName: 'SELMA', countryName: 'UNITED STATES' },\r\n { placeId: 8155, cityName: 'SELMER', countryName: 'UNITED STATES' },\r\n { placeId: 8157, cityName: 'SEMINOLE', countryName: 'UNITED STATES' },\r\n { placeId: 8158, cityName: 'SEMINOLE', countryName: 'UNITED STATES' },\r\n { placeId: 3017, cityName: 'SEVIERVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8198, cityName: 'SEWANEE', countryName: 'UNITED STATES' },\r\n { placeId: 8200, cityName: 'SEWARD', countryName: 'UNITED STATES' },\r\n { placeId: 8199, cityName: 'SEWARD', countryName: 'UNITED STATES' },\r\n { placeId: 8202, cityName: 'SEYMOUR', countryName: 'UNITED STATES' },\r\n { placeId: 8205, cityName: 'SHAFTER', countryName: 'UNITED STATES' },\r\n { placeId: 8206, cityName: 'SHAGELUK', countryName: 'UNITED STATES' },\r\n { placeId: 13031, cityName: 'SHAKTOOLIK', countryName: 'UNITED STATES' },\r\n { placeId: 13039, cityName: 'SHAWANO', countryName: 'UNITED STATES' },\r\n { placeId: 8216, cityName: 'SHAWNEE', countryName: 'UNITED STATES' },\r\n { placeId: 13041, cityName: 'SHEBOYGAN', countryName: 'UNITED STATES' },\r\n { placeId: 8219, cityName: 'SHEEP MOUNTAIN', countryName: 'UNITED STATES' },\r\n { placeId: 2990, cityName: 'SHELBY', countryName: 'UNITED STATES' },\r\n { placeId: 8221, cityName: 'SHELBY', countryName: 'UNITED STATES' },\r\n { placeId: 8222, cityName: 'SHELBYVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8223, cityName: 'SHELBYVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8224, cityName: 'SHELDON', countryName: 'UNITED STATES' },\r\n { placeId: 8227, cityName: 'SHELL LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 8229, cityName: 'SHELTON', countryName: 'UNITED STATES' },\r\n { placeId: 13053, cityName: 'SHEMYA', countryName: 'UNITED STATES' },\r\n { placeId: 3126, cityName: 'SHENANDOAH', countryName: 'UNITED STATES' },\r\n { placeId: 8231, cityName: 'SHERIDAN', countryName: 'UNITED STATES' },\r\n { placeId: 8233, cityName: 'SHERMAN-DENISON', countryName: 'UNITED STATES' },\r\n { placeId: 8232, cityName: 'SHERMAN', countryName: 'UNITED STATES' },\r\n { placeId: 13065, cityName: 'SHIRLEY', countryName: 'UNITED STATES' },\r\n { placeId: 13066, cityName: 'SHISHMAREF', countryName: 'UNITED STATES' },\r\n { placeId: 8243, cityName: 'SHOW LOW', countryName: 'UNITED STATES' },\r\n { placeId: 1378, cityName: 'SHREVEPORT', countryName: 'UNITED STATES' },\r\n { placeId: 8244, cityName: 'SHUNGNAK', countryName: 'UNITED STATES' },\r\n { placeId: 8248, cityName: 'SIBLEY', countryName: 'UNITED STATES' },\r\n { placeId: 8249, cityName: 'SIDNEY', countryName: 'UNITED STATES' },\r\n { placeId: 3130, cityName: 'SIDNEY', countryName: 'UNITED STATES' },\r\n { placeId: 3128, cityName: 'SIKESTON', countryName: 'UNITED STATES' },\r\n { placeId: 8258, cityName: 'SILOAM SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 8260, cityName: 'SILVER BAY', countryName: 'UNITED STATES' },\r\n { placeId: 8261, cityName: 'SILVER CITY', countryName: 'UNITED STATES' },\r\n { placeId: 8264, cityName: 'SILVER SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 8272, cityName: 'SIOUX CENTER', countryName: 'UNITED STATES' },\r\n { placeId: 8273, cityName: 'SIOUX CITY', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 3008, cityName: 'SIOUX FALLS', state: 'SD', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8276, cityName: 'SIREN', countryName: 'UNITED STATES' },\r\n { placeId: 2402, cityName: 'SITKA', countryName: 'UNITED STATES' },\r\n { placeId: 8284, cityName: 'SKAGWAY', countryName: 'UNITED STATES' },\r\n { placeId: 8288, cityName: 'SKWENTNA', countryName: 'UNITED STATES' },\r\n { placeId: 8289, cityName: 'SLAYTON', countryName: 'UNITED STATES' },\r\n { placeId: 8291, cityName: 'SLEETMUTE', countryName: 'UNITED STATES' },\r\n { placeId: 2946, cityName: 'SLIDELL', countryName: 'UNITED STATES' },\r\n { placeId: 8295, cityName: 'SMITHFIELD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8296, cityName: 'SMYRNA', state: 'TN', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8300, cityName: 'SNYDER', countryName: 'UNITED STATES' },\r\n { placeId: 8302, cityName: 'SOCORRO', countryName: 'UNITED STATES' },\r\n { placeId: 8307, cityName: 'SOLDIERS GROVE', countryName: 'UNITED STATES' },\r\n { placeId: 8308, cityName: 'SOLDOTNA', countryName: 'UNITED STATES' },\r\n { placeId: 8309, cityName: 'SOLON SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 8311, cityName: 'SOMERSET', countryName: 'UNITED STATES' },\r\n { placeId: 8313, cityName: 'SOMERVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8314, cityName: 'SOMERVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8318, cityName: 'SONORA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8325, cityName: 'SOUTH BEND', state: 'IN', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8327, cityName: 'SOUTH HAVEN', countryName: 'UNITED STATES' },\r\n { placeId: 2950, cityName: 'SOUTH HILL', countryName: 'UNITED STATES' },\r\n { placeId: 8371, cityName: 'SOUTH LAKE TAHOE', countryName: 'UNITED STATES' },\r\n { placeId: 13144, cityName: 'SOUTH NAKNEK', countryName: 'UNITED STATES' },\r\n { placeId: 8373, cityName: 'SOUTH ST PAUL', countryName: 'UNITED STATES' },\r\n { placeId: 8378, cityName: 'SPARREVOHN', countryName: 'UNITED STATES' },\r\n { placeId: 8379, cityName: 'SPARTA', countryName: 'UNITED STATES' },\r\n { placeId: 8380, cityName: 'SPARTA', countryName: 'UNITED STATES' },\r\n { placeId: 8381, cityName: 'SPARTA', countryName: 'UNITED STATES' },\r\n { placeId: 8382, cityName: 'SPARTANBURG', countryName: 'UNITED STATES' },\r\n { placeId: 3132, cityName: 'SPEARFISH', countryName: 'UNITED STATES' },\r\n { placeId: 13156, cityName: 'SPENCER', countryName: 'UNITED STATES' },\r\n { placeId: 8383, cityName: 'SPENCER', countryName: 'UNITED STATES' },\r\n { placeId: 1285, cityName: 'SPOKANE', countryName: 'UNITED STATES' },\r\n { placeId: 8390, cityName: 'SPRINGDALE', countryName: 'UNITED STATES' },\r\n { placeId: 3151, cityName: 'SPRINGFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 8392, cityName: 'SPRINGFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 1377, cityName: 'SPRINGFIELD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8391, cityName: 'SPRINGFIELD', state: 'IL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 1255, cityName: 'SPRINGFIELD/CHICOPEE', countryName: 'UNITED STATES' },\r\n { placeId: 8394, cityName: 'SPRINGHILL', countryName: 'UNITED STATES' },\r\n { placeId: 8404, cityName: 'ST AUGUSTINE', countryName: 'UNITED STATES' },\r\n { placeId: 8409, cityName: 'ST CHARLES', countryName: 'UNITED STATES' },\r\n { placeId: 8410, cityName: 'ST CLOUD', countryName: 'UNITED STATES' },\r\n { placeId: 3133, cityName: 'ST FRANCIS', countryName: 'UNITED STATES' },\r\n { placeId: 13185, cityName: 'ST GEORGE', countryName: 'UNITED STATES' },\r\n { placeId: 8414, cityName: 'ST GEORGE', countryName: 'UNITED STATES' },\r\n { placeId: 13189, cityName: 'ST INIGOES', countryName: 'UNITED STATES' },\r\n { placeId: 8418, cityName: 'ST JAMES', countryName: 'UNITED STATES' },\r\n { placeId: 8419, cityName: 'ST JOHNS', countryName: 'UNITED STATES' },\r\n { placeId: 8420, cityName: 'ST JOSEPH', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1382, cityName: 'ST LOUIS', state: 'MO', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8422, cityName: 'ST MARY\\'S', countryName: 'UNITED STATES' },\r\n { placeId: 8423, cityName: 'ST MARYS', countryName: 'UNITED STATES' },\r\n { placeId: 13200, cityName: 'ST PAUL I', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8425, cityName: 'ST PAUL', state: 'MN', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 1358,\r\n cityName: 'ST PETERSBURG-CLEARWATER',\r\n state: 'FL',\r\n countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8426, cityName: 'ST PETERSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 8451, cityName: 'ST. MICHAEL', countryName: 'UNITED STATES' },\r\n { placeId: 8453, cityName: 'STAFFORD', countryName: 'UNITED STATES' },\r\n { placeId: 8458, cityName: 'STANTON', countryName: 'UNITED STATES' },\r\n { placeId: 8459, cityName: 'STAPLES', countryName: 'UNITED STATES' },\r\n { placeId: 8461, cityName: 'STARKVILLE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8462, cityName: 'STATE COLLEGE', state: 'PA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8463, cityName: 'STATESBORO', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8464, cityName: 'STATESVILLE', state: 'NC', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8466, cityName: 'STAUNTON/WAYNESBORO/HARRISONBU', countryName: 'UNITED STATES' },\r\n { placeId: 8471, cityName: 'STEAMBOAT SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 8477, cityName: 'STEPHENVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8478, cityName: 'STERLING', countryName: 'UNITED STATES' },\r\n { placeId: 8479, cityName: 'STERLING/ROCKFALLS', countryName: 'UNITED STATES' },\r\n { placeId: 8481, cityName: 'STEVENS POINT', countryName: 'UNITED STATES' },\r\n { placeId: 13267, cityName: 'STIGLER', countryName: 'UNITED STATES' },\r\n { placeId: 8484, cityName: 'STILLWATER', countryName: 'UNITED STATES' },\r\n { placeId: 1374, cityName: 'STOCKTON', countryName: 'UNITED STATES' },\r\n { placeId: 8488, cityName: 'STORM LAKE', countryName: 'UNITED STATES' },\r\n { placeId: 8497, cityName: 'STROUD', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 13286, cityName: 'STUART', state: 'FLORIDA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 13287, cityName: 'STURGEON BAY', countryName: 'UNITED STATES' },\r\n { placeId: 3142, cityName: 'STURGIS', countryName: 'UNITED STATES' },\r\n { placeId: 3046, cityName: 'STURGIS', countryName: 'UNITED STATES' },\r\n { placeId: 8499, cityName: 'STUTTGART', countryName: 'UNITED STATES' },\r\n { placeId: 3127, cityName: 'SUFFOLK', countryName: 'UNITED STATES' },\r\n { placeId: 8506, cityName: 'SULLIVAN', countryName: 'UNITED STATES' },\r\n { placeId: 8507, cityName: 'SULLIVAN', countryName: 'UNITED STATES' },\r\n { placeId: 8509, cityName: 'SULPHUR SPRINGS', countryName: 'UNITED STATES' },\r\n { placeId: 8508, cityName: 'SULPHUR', countryName: 'UNITED STATES' },\r\n { placeId: 8514, cityName: 'SUMMERSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8515, cityName: 'SUMMERVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8516, cityName: 'SUMTER', countryName: 'UNITED STATES' },\r\n { placeId: 8521, cityName: 'SUPERIOR', countryName: 'UNITED STATES' },\r\n { placeId: 8527, cityName: 'SUSANVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8528, cityName: 'SUSSEX', countryName: 'UNITED STATES' },\r\n { placeId: 8332, cityName: 'SWAINSBORO', countryName: 'UNITED STATES' },\r\n { placeId: 13321, cityName: 'SWANSBORO', countryName: 'UNITED STATES' },\r\n { placeId: 8336, cityName: 'SWEETWATER', countryName: 'UNITED STATES' },\r\n { placeId: 8338, cityName: 'SYLACAUGA', countryName: 'UNITED STATES' },\r\n { placeId: 8340, cityName: 'SYLVANIA', countryName: 'UNITED STATES' },\r\n { placeId: 8341, cityName: 'SYLVESTER', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1384, cityName: 'SYRACUSE', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8540, cityName: 'TACOMA', countryName: 'UNITED STATES' },\r\n { placeId: 8546, cityName: 'TAHLEQUAH', countryName: 'UNITED STATES' },\r\n { placeId: 8559, cityName: 'TALKEETNA', countryName: 'UNITED STATES' },\r\n { placeId: 8560, cityName: 'TALLADEGA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8561, cityName: 'TALLAHASSEE', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 3141, cityName: 'TALLULAH/VICKSBURG', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1387, cityName: 'TAMPA', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8572, cityName: 'TANANA', countryName: 'UNITED STATES' },\r\n { placeId: 13358, cityName: 'TANGIER', countryName: 'UNITED STATES' },\r\n { placeId: 2866, cityName: 'TAOS', countryName: 'UNITED STATES' },\r\n { placeId: 8581, cityName: 'TAPPAHANNOCK', countryName: 'UNITED STATES' },\r\n { placeId: 8585, cityName: 'TARBORO', countryName: 'UNITED STATES' },\r\n { placeId: 13371, cityName: 'TATITLEK', countryName: 'UNITED STATES' },\r\n { placeId: 13372, cityName: 'TATUM', countryName: 'UNITED STATES' },\r\n { placeId: 13373, cityName: 'TAUNTON', countryName: 'UNITED STATES' },\r\n { placeId: 8595, cityName: 'TAYLOR', countryName: 'UNITED STATES' },\r\n { placeId: 8596, cityName: 'TAYLORVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8607, cityName: 'TEHACHAPI', countryName: 'UNITED STATES' },\r\n { placeId: 8608, cityName: 'TEKAMAH', countryName: 'UNITED STATES' },\r\n { placeId: 3135, cityName: 'TELL CITY', countryName: 'UNITED STATES' },\r\n { placeId: 8611, cityName: 'TELLER', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8612, cityName: 'TELLURIDE', state: 'CO', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8615, cityName: 'TEMPLE', countryName: 'UNITED STATES' },\r\n { placeId: 8617, cityName: 'TEN SLEEP', countryName: 'UNITED STATES' },\r\n { placeId: 13394, cityName: 'TERN I.', countryName: 'UNITED STATES' },\r\n { placeId: 8624, cityName: 'TERRE HAUTE', countryName: 'UNITED STATES' },\r\n { placeId: 8625, cityName: 'TERRELL', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1385, cityName: 'TETERBORO', state: 'NJ', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8631, cityName: 'TEXARKANA', countryName: 'UNITED STATES' },\r\n { placeId: 2980, cityName: 'THE DALLES', countryName: 'UNITED STATES' },\r\n { placeId: 8637, cityName: 'THEDFORD', countryName: 'UNITED STATES' },\r\n { placeId: 8638, cityName: 'THERMOPOLIS', countryName: 'UNITED STATES' },\r\n { placeId: 8642, cityName: 'THIEF RIVER FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 8646, cityName: 'THOMASTON', countryName: 'UNITED STATES' },\r\n { placeId: 3139, cityName: 'THOMASVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8647, cityName: 'THOMPSON FALLS', countryName: 'UNITED STATES' },\r\n { placeId: 8648, cityName: 'THOMSON', countryName: 'UNITED STATES' },\r\n { placeId: 8650, cityName: 'THORNWELL', countryName: 'UNITED STATES' },\r\n { placeId: 3024, cityName: 'THREE RIVERS', countryName: 'UNITED STATES' },\r\n { placeId: 8661, cityName: 'TIFTON', countryName: 'UNITED STATES' },\r\n { placeId: 3137, cityName: 'TILLAMOOK', countryName: 'UNITED STATES' },\r\n { placeId: 13438, cityName: 'TIN CITY', countryName: 'UNITED STATES' },\r\n { placeId: 13444, cityName: 'TITUSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8680, cityName: 'TOCCOA', countryName: 'UNITED STATES' },\r\n { placeId: 8346, cityName: 'TOGIAK VILLAGE', countryName: 'UNITED STATES' },\r\n { placeId: 13452, cityName: 'TOK', countryName: 'UNITED STATES' },\r\n { placeId: 8349, cityName: 'TOKSOOK BAY', countryName: 'UNITED STATES' },\r\n { placeId: 8352, cityName: 'TOLEDO', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1386, cityName: 'TOLEDO', state: 'OH', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8354, cityName: 'TOMAHAWK', countryName: 'UNITED STATES' },\r\n { placeId: 3143, cityName: 'TOMPKINSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 13458, cityName: 'TOMS RIVER', countryName: 'UNITED STATES' },\r\n { placeId: 8360, cityName: 'TONOPAH', countryName: 'UNITED STATES' },\r\n { placeId: 8361, cityName: 'TOOELE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8362, cityName: 'TOPEKA', state: 'KS', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 13464, cityName: 'TORRANCE', countryName: 'UNITED STATES' },\r\n { placeId: 8683, cityName: 'TORRINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 8693, cityName: 'TRACY', countryName: 'UNITED STATES' },\r\n { placeId: 8692, cityName: 'TRACY', countryName: 'UNITED STATES' },\r\n { placeId: 8695, cityName: 'TRAVERSE CITY', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8701, cityName: 'TRENTON', state: 'NJ', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8699, cityName: 'TRENTON', countryName: 'UNITED STATES' },\r\n { placeId: 8702, cityName: 'TRENTON', countryName: 'UNITED STATES' },\r\n { placeId: 8705, cityName: 'TRINIDAD', countryName: 'UNITED STATES' },\r\n { placeId: 8711, cityName: 'TROY', countryName: 'UNITED STATES' },\r\n { placeId: 8710, cityName: 'TROY', countryName: 'UNITED STATES' },\r\n { placeId: 8712, cityName: 'TRUCKEE', countryName: 'UNITED STATES' },\r\n { placeId: 8714, cityName: 'TRUTH OR CONSEQUENCES', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1389, cityName: 'TUCSON', state: 'AZ', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8733, cityName: 'TUCUMCARI', countryName: 'UNITED STATES' },\r\n { placeId: 8737, cityName: 'TULARE', countryName: 'UNITED STATES' },\r\n { placeId: 8740, cityName: 'TULLAHOMA', countryName: 'UNITED STATES' },\r\n { placeId: 1388, cityName: 'TULSA', countryName: 'UNITED STATES' },\r\n { placeId: 8748, cityName: 'TUNICA', countryName: 'UNITED STATES' },\r\n { placeId: 9234, cityName: 'TUNUNAK', countryName: 'UNITED STATES' },\r\n { placeId: 8749, cityName: 'TUPELO', countryName: 'UNITED STATES' },\r\n { placeId: 8755, cityName: 'TUSCALOOSA', countryName: 'UNITED STATES' },\r\n { placeId: 8760, cityName: 'TWENTYNINE PALMS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8762, cityName: 'TWIN FALLS', state: 'ID', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8763, cityName: 'TWO HARBORS', countryName: 'UNITED STATES' },\r\n { placeId: 8766, cityName: 'TYLER', countryName: 'UNITED STATES' },\r\n { placeId: 8776, cityName: 'UGNU KUPARUK', countryName: 'UNITED STATES' },\r\n { placeId: 8780, cityName: 'UKIAH', countryName: 'UNITED STATES' },\r\n { placeId: 8784, cityName: 'ULYSSES', countryName: 'UNITED STATES' },\r\n { placeId: 8785, cityName: 'UMIAT', countryName: 'UNITED STATES' },\r\n { placeId: 8789, cityName: 'UNALAKLEET', countryName: 'UNITED STATES' },\r\n { placeId: 13542, cityName: 'UNALASKA', countryName: 'UNITED STATES' },\r\n { placeId: 8791, cityName: 'UNION CITY', countryName: 'UNITED STATES' },\r\n { placeId: 8794, cityName: 'UNIVERSAL CITY', countryName: 'UNITED STATES' },\r\n { placeId: 8798, cityName: 'UPLAND', countryName: 'UNITED STATES' },\r\n { placeId: 8806, cityName: 'UTOPIA CREEK', countryName: 'UNITED STATES' },\r\n { placeId: 8809, cityName: 'UVALDE', countryName: 'UNITED STATES' },\r\n { placeId: 8811, cityName: 'VACAVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 2403, cityName: 'VALDEZ', countryName: 'UNITED STATES' },\r\n { placeId: 3146, cityName: 'VALDOSTA', countryName: 'UNITED STATES' },\r\n { placeId: 8817, cityName: 'VALENTINE', countryName: 'UNITED STATES' },\r\n { placeId: 13574, cityName: 'VALLEY CITY', countryName: 'UNITED STATES' },\r\n { placeId: 3149, cityName: 'VALPARAISO', countryName: 'UNITED STATES' },\r\n { placeId: 13577, cityName: 'VALPARAISO', countryName: 'UNITED STATES' },\r\n { placeId: 8822, cityName: 'VAN HORN', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 2844, cityName: 'VAN NUYS', state: 'CA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8823, cityName: 'VAN WERT', countryName: 'UNITED STATES' },\r\n { placeId: 3152, cityName: 'VANCOUVER', countryName: 'UNITED STATES' },\r\n { placeId: 8824, cityName: 'VANDALIA', countryName: 'UNITED STATES' },\r\n { placeId: 8364, cityName: 'VENETIE', countryName: 'UNITED STATES' },\r\n { placeId: 8365, cityName: 'VENICE', countryName: 'UNITED STATES' },\r\n { placeId: 3148, cityName: 'VERMILLION', countryName: 'UNITED STATES' },\r\n { placeId: 8837, cityName: 'VERNAL', countryName: 'UNITED STATES' },\r\n { placeId: 3150, cityName: 'VERO BEACH', countryName: 'UNITED STATES' },\r\n { placeId: 8839, cityName: 'VERSAILLES', countryName: 'UNITED STATES' },\r\n { placeId: 8842, cityName: 'VICKSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 8845, cityName: 'VICTORIA', countryName: 'UNITED STATES' },\r\n { placeId: 8848, cityName: 'VICTORVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8849, cityName: 'VIDALIA', countryName: 'UNITED STATES' },\r\n { placeId: 13615, cityName: 'VINALHAVEN', countryName: 'UNITED STATES' },\r\n { placeId: 8861, cityName: 'VINCENNES', countryName: 'UNITED STATES' },\r\n { placeId: 8864, cityName: 'VINTON', countryName: 'UNITED STATES' },\r\n { placeId: 8867, cityName: 'VISALIA', countryName: 'UNITED STATES' },\r\n { placeId: 8882, cityName: 'WABASH', countryName: 'UNITED STATES' },\r\n { placeId: 8883, cityName: 'WACO', countryName: 'UNITED STATES' },\r\n { placeId: 8885, cityName: 'WADENA', countryName: 'UNITED STATES' },\r\n { placeId: 8886, cityName: 'WADESBORO', countryName: 'UNITED STATES' },\r\n { placeId: 8889, cityName: 'WAGNER', countryName: 'UNITED STATES' },\r\n { placeId: 13638, cityName: 'WAHIAWA', countryName: 'UNITED STATES' },\r\n { placeId: 8891, cityName: 'WAHOO', countryName: 'UNITED STATES' },\r\n { placeId: 2965, cityName: 'WAHPETON', countryName: 'UNITED STATES' },\r\n { placeId: 8895, cityName: 'WAINWRIGHT', countryName: 'UNITED STATES' },\r\n { placeId: 8902, cityName: 'WAKEFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 13648, cityName: 'WALES', countryName: 'UNITED STATES' },\r\n { placeId: 8905, cityName: 'WALLA WALLA', countryName: 'UNITED STATES' },\r\n { placeId: 8906, cityName: 'WALLACE', countryName: 'UNITED STATES' },\r\n { placeId: 13651, cityName: 'WALLOPS I', countryName: 'UNITED STATES' },\r\n { placeId: 8907, cityName: 'WALNUT RIDGE', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8908, cityName: 'WALTERBORO', state: 'SC', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8913, cityName: 'WAPAKONETA', countryName: 'UNITED STATES' },\r\n { placeId: 8918, cityName: 'WARNER ROBINS', countryName: 'UNITED STATES' },\r\n { placeId: 8920, cityName: 'WARRENSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 8921, cityName: 'WARRENTON', countryName: 'UNITED STATES' },\r\n { placeId: 8922, cityName: 'WARROAD', countryName: 'UNITED STATES' },\r\n { placeId: 8924, cityName: 'WARSAW', countryName: 'UNITED STATES' },\r\n { placeId: 8923, cityName: 'WARSAW', countryName: 'UNITED STATES' },\r\n { placeId: 8925, cityName: 'WASECA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1302, cityName: 'WASHINGTON', state: 'VA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8174, cityName: 'WASHINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 8175, cityName: 'WASHINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 13677, cityName: 'WASHINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 8177, cityName: 'WASHINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 8926, cityName: 'WASHINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 2977, cityName: 'WASHINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 8176, cityName: 'WASHINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 8927, cityName: 'WASILLA', countryName: 'UNITED STATES' },\r\n { placeId: 8929, cityName: 'WASKISH', countryName: 'UNITED STATES' },\r\n { placeId: 8933, cityName: 'WATERLOO', countryName: 'UNITED STATES' },\r\n { placeId: 8934, cityName: 'WATERTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 1233, cityName: 'WATERTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 8935, cityName: 'WATERTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 8937, cityName: 'WATERVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8938, cityName: 'WATONGA', countryName: 'UNITED STATES' },\r\n { placeId: 8942, cityName: 'WATSONVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8945, cityName: 'WAUCHULA', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 8946, cityName: 'WAUKESHA', state: 'WI', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8947, cityName: 'WAUPACA', countryName: 'UNITED STATES' },\r\n { placeId: 8948, cityName: 'WAUSAU', countryName: 'UNITED STATES' },\r\n { placeId: 8949, cityName: 'WAUSEON', countryName: 'UNITED STATES' },\r\n { placeId: 8950, cityName: 'WAVERLY', countryName: 'UNITED STATES' },\r\n { placeId: 8953, cityName: 'WAYCROSS', countryName: 'UNITED STATES' },\r\n { placeId: 8954, cityName: 'WAYNE', countryName: 'UNITED STATES' },\r\n { placeId: 8955, cityName: 'WAYNESBORO', countryName: 'UNITED STATES' },\r\n { placeId: 3154, cityName: 'WAYNESBURG', countryName: 'UNITED STATES' },\r\n { placeId: 8956, cityName: 'WEATHERFORD', countryName: 'UNITED STATES' },\r\n { placeId: 8957, cityName: 'WEATHERFORD', countryName: 'UNITED STATES' },\r\n { placeId: 8959, cityName: 'WEBSTER CITY', countryName: 'UNITED STATES' },\r\n { placeId: 13711, cityName: 'WEIRWOOD', countryName: 'UNITED STATES' },\r\n { placeId: 8964, cityName: 'WELLINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 8965, cityName: 'WELLS', countryName: 'UNITED STATES' },\r\n { placeId: 8966, cityName: 'WELLSVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 8971, cityName: 'WENATCHEE', countryName: 'UNITED STATES' },\r\n { placeId: 8972, cityName: 'WENDOVER', countryName: 'UNITED STATES' },\r\n { placeId: 8975, cityName: 'WEST BEND', countryName: 'UNITED STATES' },\r\n { placeId: 3087, cityName: 'WEST CHESTER', countryName: 'UNITED STATES' },\r\n { placeId: 2951, cityName: 'WEST MEMPHIS', countryName: 'UNITED STATES' },\r\n { placeId: 13725, cityName: 'WEST OSSIPEE', countryName: 'UNITED STATES' },\r\n { placeId: 13726, cityName: 'WEST PALM BEACH', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1349, cityName: 'WEST PALM BEACH', state: 'FL', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8981, cityName: 'WEST PLAINS', countryName: 'UNITED STATES' },\r\n { placeId: 8982, cityName: 'WEST POINT', countryName: 'UNITED STATES' },\r\n { placeId: 2944, cityName: 'WEST UNION', countryName: 'UNITED STATES' },\r\n { placeId: 3155, cityName: 'WEST YELLOWSTONE', countryName: 'UNITED STATES' },\r\n { placeId: 13732, cityName: 'WESTERLY', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1238, cityName: 'WESTFIELD/SPRINGFIELD', state: 'MA', countryName: 'UNITED STATES',\r\n },\r\n {\r\n placeId: 2869, cityName: 'WESTHAMPTON BEACH', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8990, cityName: 'WESTMINSTER', countryName: 'UNITED STATES' },\r\n { placeId: 8991, cityName: 'WESTON', countryName: 'UNITED STATES' },\r\n { placeId: 8995, cityName: 'WHARTON', countryName: 'UNITED STATES' },\r\n { placeId: 8996, cityName: 'WHEATLAND', countryName: 'UNITED STATES' },\r\n { placeId: 8997, cityName: 'WHEATON', countryName: 'UNITED STATES' },\r\n { placeId: 3029, cityName: 'WHEELING', countryName: 'UNITED STATES' },\r\n { placeId: 13748, cityName: 'WHITE MOUNTAIN', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1296, cityName: 'WHITE PLAINS', state: 'NY', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 8999, cityName: 'WHITEFIELD', countryName: 'UNITED STATES' },\r\n { placeId: 9000, cityName: 'WHITEVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 9003, cityName: 'WHITTIER', countryName: 'UNITED STATES' },\r\n { placeId: 9005, cityName: 'WICHITA FALLS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1304, cityName: 'WICHITA', state: 'KS', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 13760, cityName: 'WILDWOOD', countryName: 'UNITED STATES' },\r\n { placeId: 1236, cityName: 'WILKES-BARRE', countryName: 'UNITED STATES' },\r\n { placeId: 9007, cityName: 'WILLIAMS', countryName: 'UNITED STATES' },\r\n { placeId: 9008, cityName: 'WILLIAMSBURG', countryName: 'UNITED STATES' },\r\n { placeId: 13769, cityName: 'WILLIAMSON', countryName: 'UNITED STATES' },\r\n { placeId: 9009, cityName: 'WILLIAMSON/SODUS', countryName: 'UNITED STATES' },\r\n { placeId: 9010, cityName: 'WILLIAMSPORT', countryName: 'UNITED STATES' },\r\n { placeId: 9011, cityName: 'WILLIAMSTON', countryName: 'UNITED STATES' },\r\n { placeId: 9012, cityName: 'WILLIMANTIC', countryName: 'UNITED STATES' },\r\n { placeId: 1310, cityName: 'WILLISTON', countryName: 'UNITED STATES' },\r\n { placeId: 9014, cityName: 'WILLMAR', countryName: 'UNITED STATES' },\r\n { placeId: 9015, cityName: 'WILLOUGHBY', countryName: 'UNITED STATES' },\r\n { placeId: 9018, cityName: 'WILLOW GROVE', countryName: 'UNITED STATES' },\r\n { placeId: 9016, cityName: 'WILLOW', countryName: 'UNITED STATES' },\r\n { placeId: 9019, cityName: 'WILLOWS', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1306, cityName: 'WILMINGTON', state: 'NC', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 9020, cityName: 'WILMINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 1305, cityName: 'WILMINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 9021, cityName: 'WINAMAC', countryName: 'UNITED STATES' },\r\n { placeId: 9023, cityName: 'WINCHESTER', countryName: 'UNITED STATES' },\r\n { placeId: 9024, cityName: 'WINCHESTER', countryName: 'UNITED STATES' },\r\n { placeId: 9025, cityName: 'WINDER', countryName: 'UNITED STATES' },\r\n { placeId: 9027, cityName: 'WINDOM', countryName: 'UNITED STATES' },\r\n { placeId: 3120, cityName: 'WINDOW ROCK', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1239, cityName: 'WINDSOR LOCKS', state: 'CT', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 9028, cityName: 'WINFIELD-ARKANSAS CITY', countryName: 'UNITED STATES' },\r\n { placeId: 9030, cityName: 'WINK', countryName: 'UNITED STATES' },\r\n { placeId: 9032, cityName: 'WINNEMUCCA', countryName: 'UNITED STATES' },\r\n { placeId: 9033, cityName: 'WINNER', countryName: 'UNITED STATES' },\r\n { placeId: 9034, cityName: 'WINNSBORO', countryName: 'UNITED STATES' },\r\n { placeId: 3085, cityName: 'WINONA', countryName: 'UNITED STATES' },\r\n { placeId: 9035, cityName: 'WINSLOW', countryName: 'UNITED STATES' },\r\n { placeId: 1309, cityName: 'WINSTON-SALEM', countryName: 'UNITED STATES' },\r\n { placeId: 9036, cityName: 'WINTER HAVEN', countryName: 'UNITED STATES' },\r\n { placeId: 13807, cityName: 'WISCASSET', countryName: 'UNITED STATES' },\r\n { placeId: 9039, cityName: 'WISCONSIN RAPIDS', countryName: 'UNITED STATES' },\r\n { placeId: 3058, cityName: 'WISE', countryName: 'UNITED STATES' },\r\n { placeId: 9043, cityName: 'WOLF POINT', countryName: 'UNITED STATES' },\r\n { placeId: 13814, cityName: 'WOODBINE', countryName: 'UNITED STATES' },\r\n { placeId: 8185, cityName: 'WOODRUFF', countryName: 'UNITED STATES' },\r\n { placeId: 1391, cityName: 'WOODWARD', countryName: 'UNITED STATES' },\r\n { placeId: 9048, cityName: 'WOOSTER', countryName: 'UNITED STATES' },\r\n {\r\n placeId: 1347, cityName: 'WORCESTER', state: 'MA', countryName: 'UNITED STATES',\r\n },\r\n { placeId: 9050, cityName: 'WORLAND', countryName: 'UNITED STATES' },\r\n { placeId: 3089, cityName: 'WORTHINGTON', countryName: 'UNITED STATES' },\r\n { placeId: 9051, cityName: 'WRANGELL', countryName: 'UNITED STATES' },\r\n { placeId: 9052, cityName: 'WRIGHTSTOWN', countryName: 'UNITED STATES' },\r\n { placeId: 13840, cityName: 'YAKATAGA', countryName: 'UNITED STATES' },\r\n { placeId: 9064, cityName: 'YAKIMA', countryName: 'UNITED STATES' },\r\n { placeId: 13842, cityName: 'YAKUTAT', countryName: 'UNITED STATES' },\r\n { placeId: 3156, cityName: 'YANKTON', countryName: 'UNITED STATES' },\r\n { placeId: 3136, cityName: 'YORK', countryName: 'UNITED STATES' },\r\n { placeId: 9093, cityName: 'YORK', countryName: 'UNITED STATES' },\r\n { placeId: 3157, cityName: 'YOUNGSTOWN-WARREN', countryName: 'UNITED STATES' },\r\n { placeId: 9098, cityName: 'YUMA PROVING GROUND', countryName: 'UNITED STATES' },\r\n { placeId: 13870, cityName: 'YUMA', countryName: 'UNITED STATES' },\r\n { placeId: 9107, cityName: 'ZANESVILLE', countryName: 'UNITED STATES' },\r\n { placeId: 13883, cityName: 'ZAPATA', countryName: 'UNITED STATES' },\r\n { placeId: 9114, cityName: 'ZELIENOPLE', countryName: 'UNITED STATES' },\r\n { placeId: 9119, cityName: 'ZEPHYRHILLS', countryName: 'UNITED STATES' },\r\n { placeId: 9130, cityName: 'ZUNI PUEBLO', countryName: 'UNITED STATES' },\r\n { placeId: 4228, cityName: 'ARTIGAS', countryName: 'URUGUAY' },\r\n { placeId: 4739, cityName: 'CARMELO', countryName: 'URUGUAY' },\r\n { placeId: 4929, cityName: 'COLONIA', countryName: 'URUGUAY' },\r\n { placeId: 5226, cityName: 'DURAZNO', countryName: 'URUGUAY' },\r\n { placeId: 6739, cityName: 'MALDONADO', countryName: 'URUGUAY' },\r\n { placeId: 6931, cityName: 'MELO', countryName: 'URUGUAY' },\r\n { placeId: 6942, cityName: 'MERCEDES', countryName: 'URUGUAY' },\r\n { placeId: 2862, cityName: 'MONTEVIDEO', countryName: 'URUGUAY' },\r\n { placeId: 7587, cityName: 'PAYSANDU', countryName: 'URUGUAY' },\r\n { placeId: 7718, cityName: 'PUNTA DEL ESTE', countryName: 'URUGUAY' },\r\n { placeId: 7918, cityName: 'RIO BRANCO', countryName: 'URUGUAY' },\r\n { placeId: 7724, cityName: 'RIVERA', countryName: 'URUGUAY' },\r\n { placeId: 8018, cityName: 'SALTO', countryName: 'URUGUAY' },\r\n { placeId: 8320, cityName: 'SORIANO', countryName: 'URUGUAY' },\r\n { placeId: 8541, cityName: 'TACUAREMBO', countryName: 'URUGUAY' },\r\n { placeId: 8697, cityName: 'TREINTA Y TRES', countryName: 'URUGUAY' },\r\n { placeId: 8841, cityName: 'VICHADERO', countryName: 'URUGUAY' },\r\n { placeId: 9198, cityName: 'ANDIZHAN', countryName: 'UZBEKISTAN' },\r\n { placeId: 2656, cityName: 'BUKHARA', countryName: 'UZBEKISTAN' },\r\n { placeId: 9200, cityName: 'FERGANA', countryName: 'UZBEKISTAN' },\r\n { placeId: 9199, cityName: 'KARSHI', countryName: 'UZBEKISTAN' },\r\n { placeId: 9151, cityName: 'NAMANGAN', countryName: 'UZBEKISTAN' },\r\n { placeId: 7199, cityName: 'NAVOI', countryName: 'UZBEKISTAN' },\r\n { placeId: 12280, cityName: 'NUKUS', countryName: 'UZBEKISTAN' },\r\n { placeId: 2657, cityName: 'SAMARKAND', countryName: 'UZBEKISTAN' },\r\n { placeId: 2659, cityName: 'TASHKENT', countryName: 'UZBEKISTAN' },\r\n { placeId: 2658, cityName: 'TERMEZ', countryName: 'UZBEKISTAN' },\r\n { placeId: 2655, cityName: 'URGENCH', countryName: 'UZBEKISTAN' },\r\n { placeId: 5310, cityName: 'EMAE', countryName: 'VANUATU' },\r\n { placeId: 2335, cityName: 'PORT VILA', countryName: 'VANUATU' },\r\n { placeId: 2334, cityName: 'SANTO', countryName: 'VANUATU' },\r\n { placeId: 8579, cityName: 'TANNA', countryName: 'VANUATU' },\r\n { placeId: 4011, cityName: 'ACARIGUA', countryName: 'VENEZUELA' },\r\n { placeId: 4107, cityName: 'AMAZONAS', countryName: 'VENEZUELA' },\r\n { placeId: 4124, cityName: 'ANACO', countryName: 'VENEZUELA' },\r\n { placeId: 4219, cityName: 'ARMANDO SCHWARCK', countryName: 'VENEZUELA' },\r\n { placeId: 4283, cityName: 'BACHAQUERO', countryName: 'VENEZUELA' },\r\n { placeId: 4343, cityName: 'BARCELONA', countryName: 'VENEZUELA' },\r\n { placeId: 4347, cityName: 'BARINAS', countryName: 'VENEZUELA' },\r\n { placeId: 4352, cityName: 'BARQUISIMETO', countryName: 'VENEZUELA' },\r\n { placeId: 4516, cityName: 'BOCONO', countryName: 'VENEZUELA' },\r\n { placeId: 4663, cityName: 'CABIMAS', countryName: 'VENEZUELA' },\r\n { placeId: 4674, cityName: 'CAICARA', countryName: 'VENEZUELA' },\r\n { placeId: 4677, cityName: 'CALABOZO', countryName: 'VENEZUELA' },\r\n { placeId: 4711, cityName: 'CANAIMA', countryName: 'VENEZUELA' },\r\n { placeId: 4727, cityName: 'CARACAS', countryName: 'VENEZUELA' },\r\n { placeId: 4745, cityName: 'CARORA', countryName: 'VENEZUELA' },\r\n { placeId: 4749, cityName: 'CARUPANO', countryName: 'VENEZUELA' },\r\n { placeId: 4867, cityName: 'CIUDAD BOLIVAR', countryName: 'VENEZUELA' },\r\n { placeId: 4868, cityName: 'CIUDAD GUAYANA', countryName: 'VENEZUELA' },\r\n { placeId: 4869, cityName: 'CIUDAD PIAR', countryName: 'VENEZUELA' },\r\n { placeId: 4963, cityName: 'CORO', countryName: 'VENEZUELA' },\r\n { placeId: 5007, cityName: 'CUMANA', countryName: 'VENEZUELA' },\r\n { placeId: 5008, cityName: 'CUMAREBO', countryName: 'VENEZUELA' },\r\n { placeId: 5283, cityName: 'EL DORADO', countryName: 'VENEZUELA' },\r\n { placeId: 5289, cityName: 'EL GUAYABO', countryName: 'VENEZUELA' },\r\n { placeId: 5291, cityName: 'EL MANTECO', countryName: 'VENEZUELA' },\r\n { placeId: 5298, cityName: 'EL VIGIA', countryName: 'VENEZUELA' },\r\n { placeId: 5307, cityName: 'ELORZA', countryName: 'VENEZUELA' },\r\n { placeId: 5321, cityName: 'ENCONTRADOS', countryName: 'VENEZUELA' },\r\n { placeId: 5724, cityName: 'GUANARE', countryName: 'VENEZUELA' },\r\n { placeId: 5730, cityName: 'GUASDUALITO', countryName: 'VENEZUELA' },\r\n { placeId: 5731, cityName: 'GUASIPATI', countryName: 'VENEZUELA' },\r\n { placeId: 5737, cityName: 'GUIRIA', countryName: 'VENEZUELA' },\r\n { placeId: 5763, cityName: 'HACIENDA EL CALVARIO', countryName: 'VENEZUELA' },\r\n { placeId: 5764, cityName: 'HACIENDA RIO YAZA', countryName: 'VENEZUELA' },\r\n { placeId: 5845, cityName: 'HIGUEROTE', countryName: 'VENEZUELA' },\r\n { placeId: 5923, cityName: 'ICABARU', countryName: 'VENEZUELA' },\r\n { placeId: 6000, cityName: 'ISLA DE COCHE', countryName: 'VENEZUELA' },\r\n { placeId: 6173, cityName: 'KAVANAYEN', countryName: 'VENEZUELA' },\r\n { placeId: 6358, cityName: 'LA BANANERA', countryName: 'VENEZUELA' },\r\n { placeId: 6360, cityName: 'LA BLANQUILLA', countryName: 'VENEZUELA' },\r\n { placeId: 6365, cityName: 'LA DIVINA PASTORA', countryName: 'VENEZUELA' },\r\n { placeId: 6368, cityName: 'LA FRIA', countryName: 'VENEZUELA' },\r\n { placeId: 6369, cityName: 'LA GRAN CHINA', countryName: 'VENEZUELA' },\r\n { placeId: 6377, cityName: 'LA ORCHILA', countryName: 'VENEZUELA' },\r\n { placeId: 6383, cityName: 'LA TRINIDAD DE ARICHUNA', countryName: 'VENEZUELA' },\r\n { placeId: 6626, cityName: 'LOS SIETE SAMANES', countryName: 'VENEZUELA' },\r\n { placeId: 6658, cityName: 'LUEPA', countryName: 'VENEZUELA' },\r\n { placeId: 2822, cityName: 'MAIQUETIA', countryName: 'VENEZUELA' },\r\n { placeId: 6793, cityName: 'MARACAIBO', countryName: 'VENEZUELA' },\r\n { placeId: 6794, cityName: 'MARACAY', countryName: 'VENEZUELA' },\r\n { placeId: 6808, cityName: 'MARGARITA', countryName: 'VENEZUELA' },\r\n { placeId: 6861, cityName: 'MATA DE JUAJUA', countryName: 'VENEZUELA' },\r\n { placeId: 6876, cityName: 'MATURIN', countryName: 'VENEZUELA' },\r\n { placeId: 6944, cityName: 'MERIDA', countryName: 'VENEZUELA' },\r\n { placeId: 7071, cityName: 'MORICHAL', countryName: 'VENEZUELA' },\r\n { placeId: 7418, cityName: 'ORITUPANO', countryName: 'VENEZUELA' },\r\n { placeId: 7479, cityName: 'PALMARITO', countryName: 'VENEZUELA' },\r\n { placeId: 7553, cityName: 'PARAGUANA', countryName: 'VENEZUELA' },\r\n { placeId: 7592, cityName: 'PEDERNALES', countryName: 'VENEZUELA' },\r\n { placeId: 7779, cityName: 'PUERTO AYACUCHO', countryName: 'VENEZUELA' },\r\n { placeId: 7783, cityName: 'PUERTO CABELLO', countryName: 'VENEZUELA' },\r\n { placeId: 7992, cityName: 'SABANETA', countryName: 'VENEZUELA' },\r\n { placeId: 8029, cityName: 'SAN ANTONIO DEL TACHIRA', countryName: 'VENEZUELA' },\r\n { placeId: 8033, cityName: 'SAN CARLOS', countryName: 'VENEZUELA' },\r\n { placeId: 8036, cityName: 'SAN CRISTOBAL', countryName: 'VENEZUELA' },\r\n { placeId: 8038, cityName: 'SAN FELIPE', countryName: 'VENEZUELA' },\r\n { placeId: 8042, cityName: 'SAN FERNANDO DE APURE', countryName: 'VENEZUELA' },\r\n { placeId: 8052, cityName: 'SAN JUAN DE LOS MORROS', countryName: 'VENEZUELA' },\r\n { placeId: 8067, cityName: 'SAN TOME', countryName: 'VENEZUELA' },\r\n { placeId: 8086, cityName: 'SANTA BARBARA DE BARINSA', countryName: 'VENEZUELA' },\r\n { placeId: 8087, cityName: 'SANTA BARBARA DE MONAGAS', countryName: 'VENEZUELA' },\r\n { placeId: 8088, cityName: 'SANTA BARBARA DEL ZULIA', countryName: 'VENEZUELA' },\r\n { placeId: 8094, cityName: 'SANTA ELENA DE UAIREN', countryName: 'VENEZUELA' },\r\n { placeId: 8103, cityName: 'SANTA ROSA DE GUANARE', countryName: 'VENEZUELA' },\r\n { placeId: 8108, cityName: 'SANTO DOMINGO', countryName: 'VENEZUELA' },\r\n { placeId: 8614, cityName: 'TEMBLADOR', countryName: 'VENEZUELA' },\r\n { placeId: 8734, cityName: 'TUCUPITA', countryName: 'VENEZUELA' },\r\n { placeId: 8744, cityName: 'TUMEREMO', countryName: 'VENEZUELA' },\r\n { placeId: 8795, cityName: 'UON-QUEN', countryName: 'VENEZUELA' },\r\n { placeId: 8797, cityName: 'UPATA', countryName: 'VENEZUELA' },\r\n { placeId: 8801, cityName: 'URIMAN', countryName: 'VENEZUELA' },\r\n { placeId: 2535, cityName: 'VALENCIA', countryName: 'VENEZUELA' },\r\n { placeId: 8818, cityName: 'VALERA', countryName: 'VENEZUELA' },\r\n { placeId: 8169, cityName: 'VALLE DE LA PASCUA', countryName: 'VENEZUELA' },\r\n { placeId: 8835, cityName: 'VENELAC', countryName: 'VENEZUELA' },\r\n { placeId: 4637, cityName: 'BUON ME THUOT', countryName: 'VIETNAM' },\r\n {\r\n placeId: 13909, cityName: 'CAM RANH', state: 'Khanh Hoa', countryName: 'VIETNAM',\r\n },\r\n { placeId: 4690, cityName: 'CAMAU, VIETNAM', countryName: 'VIETNAM' },\r\n { placeId: 4701, cityName: 'CAMLY, VIETNAM', countryName: 'VIETNAM' },\r\n { placeId: 4718, cityName: 'CAN THO', countryName: 'VIETNAM' },\r\n { placeId: 9172, cityName: 'CHU LAI', countryName: 'VIETNAM' },\r\n { placeId: 4944, cityName: 'CONSON', countryName: 'VIETNAM' },\r\n { placeId: 2724, cityName: 'DA NANG', countryName: 'VIETNAM' },\r\n { placeId: 5051, cityName: 'DALAT', countryName: 'VIETNAM' },\r\n { placeId: 5170, cityName: 'DIENBIEN', countryName: 'VIETNAM' },\r\n { placeId: 5773, cityName: 'HAIPHONG', countryName: 'VIETNAM' },\r\n { placeId: 2725, cityName: 'HANOI', countryName: 'VIETNAM' },\r\n { placeId: 2726, cityName: 'HOCHIMINH', countryName: 'VIETNAM' },\r\n { placeId: 5902, cityName: 'HUE', countryName: 'VIETNAM' },\r\n { placeId: 7193, cityName: 'NASAN', countryName: 'VIETNAM' },\r\n { placeId: 7254, cityName: 'NHATRANG', countryName: 'VIETNAM' },\r\n { placeId: 7630, cityName: 'PHUCAT', countryName: 'VIETNAM' },\r\n { placeId: 7631, cityName: 'PHUQUOC', countryName: 'VIETNAM' },\r\n { placeId: 7676, cityName: 'PLEIKU', countryName: 'VIETNAM' },\r\n { placeId: 12690, cityName: 'QUANGBINH', countryName: 'VIETNAM' },\r\n { placeId: 7840, cityName: 'RACHGIA', countryName: 'VIETNAM' },\r\n { placeId: 8758, cityName: 'TUYHOA, VIETNAM', countryName: 'VIETNAM' },\r\n { placeId: 8862, cityName: 'VINH', countryName: 'VIETNAM' },\r\n { placeId: 2542, cityName: 'ST CROIX I', countryName: 'VIRGIN ISLANDS' },\r\n { placeId: 2541, cityName: 'ST THOMAS I/CHARLOTTE AMALIE', countryName: 'VIRGIN ISLANDS' },\r\n { placeId: 13646, cityName: 'WAKE I', countryName: 'WAKE I' },\r\n { placeId: 10836, cityName: 'FUTUNA I', countryName: 'WALLIS IS' },\r\n { placeId: 13561, cityName: 'UVEA I', countryName: 'WALLIS IS' },\r\n { placeId: 9140, cityName: 'ABBS', countryName: 'YEMEN' },\r\n { placeId: 2383, cityName: 'ADEN', countryName: 'YEMEN' },\r\n { placeId: 4054, cityName: 'AL-BAYDA', countryName: 'YEMEN' },\r\n { placeId: 4055, cityName: 'AL-BOUGH', countryName: 'YEMEN' },\r\n { placeId: 4056, cityName: 'AL-GHAIDAH', countryName: 'YEMEN' },\r\n { placeId: 4057, cityName: 'AL-HAZM', countryName: 'YEMEN' },\r\n { placeId: 4254, cityName: 'ATAQ', countryName: 'YEMEN' },\r\n { placeId: 4402, cityName: 'BEIHAN', countryName: 'YEMEN' },\r\n { placeId: 2384, cityName: 'HODEIDAH', countryName: 'YEMEN' },\r\n { placeId: 5627, cityName: 'KAMARAN', countryName: 'YEMEN' },\r\n { placeId: 6810, cityName: 'MARIB', countryName: 'YEMEN' },\r\n { placeId: 7060, cityName: 'MOORI', countryName: 'YEMEN' },\r\n { placeId: 2385, cityName: 'MUKALLA', countryName: 'YEMEN' },\r\n { placeId: 7124, cityName: 'MUKEIRAS', countryName: 'YEMEN' },\r\n { placeId: 7820, cityName: 'QISHN', countryName: 'YEMEN' },\r\n { placeId: 7991, cityName: 'SAADAH', countryName: 'YEMEN' },\r\n { placeId: 2386, cityName: 'SANAA', countryName: 'YEMEN' },\r\n { placeId: 2387, cityName: 'SAYUN', countryName: 'YEMEN' },\r\n { placeId: 2388, cityName: 'TAIZ', countryName: 'YEMEN' },\r\n { placeId: 4839, cityName: 'CHINSALI', countryName: 'ZAMBIA' },\r\n { placeId: 4840, cityName: 'CHIPATA', countryName: 'ZAMBIA' },\r\n { placeId: 4849, cityName: 'CHOCHA', countryName: 'ZAMBIA' },\r\n { placeId: 4852, cityName: 'CHOMA', countryName: 'ZAMBIA' },\r\n { placeId: 5239, cityName: 'EAST EIGHT', countryName: 'ZAMBIA' },\r\n { placeId: 5240, cityName: 'EAST FIVE', countryName: 'ZAMBIA' },\r\n { placeId: 5241, cityName: 'EAST FOUR', countryName: 'ZAMBIA' },\r\n { placeId: 5242, cityName: 'EAST ONE', countryName: 'ZAMBIA' },\r\n { placeId: 5243, cityName: 'EAST SEVEN', countryName: 'ZAMBIA' },\r\n { placeId: 5244, cityName: 'EAST SIX', countryName: 'ZAMBIA' },\r\n { placeId: 5245, cityName: 'EAST THREE', countryName: 'ZAMBIA' },\r\n { placeId: 5246, cityName: 'EAST TWO', countryName: 'ZAMBIA' },\r\n { placeId: 6009, cityName: 'ISOKA', countryName: 'ZAMBIA' },\r\n { placeId: 6094, cityName: 'KABOMPO', countryName: 'ZAMBIA' },\r\n { placeId: 6095, cityName: 'KABWE', countryName: 'ZAMBIA' },\r\n { placeId: 6116, cityName: 'KALABO', countryName: 'ZAMBIA' },\r\n { placeId: 6124, cityName: 'KALOMO', countryName: 'ZAMBIA' },\r\n { placeId: 5039, cityName: 'KANJA', countryName: 'ZAMBIA' },\r\n { placeId: 6131, cityName: 'KANYAU', countryName: 'ZAMBIA' },\r\n { placeId: 6134, cityName: 'KAOMA', countryName: 'ZAMBIA' },\r\n { placeId: 6144, cityName: 'KASABA BAY', countryName: 'ZAMBIA' },\r\n { placeId: 6147, cityName: 'KASAMA', countryName: 'ZAMBIA' },\r\n { placeId: 6154, cityName: 'KASOMPE', countryName: 'ZAMBIA' },\r\n { placeId: 6162, cityName: 'KATETE', countryName: 'ZAMBIA' },\r\n { placeId: 6174, cityName: 'KAWAMBWA', countryName: 'ZAMBIA' },\r\n { placeId: 6276, cityName: 'KITWE', countryName: 'ZAMBIA' },\r\n { placeId: 6533, cityName: 'LESA', countryName: 'ZAMBIA' },\r\n { placeId: 2854, cityName: 'LIVINGSTONE', countryName: 'ZAMBIA' },\r\n { placeId: 6639, cityName: 'LUANSHYA', countryName: 'ZAMBIA' },\r\n { placeId: 6667, cityName: 'LUKULU', countryName: 'ZAMBIA' },\r\n { placeId: 6668, cityName: 'LUKUZI', countryName: 'ZAMBIA' },\r\n { placeId: 5651, cityName: 'LUNDAZI', countryName: 'ZAMBIA' },\r\n { placeId: 1133, cityName: 'LUSAKA', countryName: 'ZAMBIA' },\r\n { placeId: 6680, cityName: 'LUWINGU', countryName: 'ZAMBIA' },\r\n { placeId: 6686, cityName: 'MAAMBA', countryName: 'ZAMBIA' },\r\n { placeId: 6779, cityName: 'MANSA', countryName: 'ZAMBIA' },\r\n { placeId: 6890, cityName: 'MAZABUKA', countryName: 'ZAMBIA' },\r\n { placeId: 6960, cityName: 'MFUWE', countryName: 'ZAMBIA' },\r\n { placeId: 6482, cityName: 'MKUSHI', countryName: 'ZAMBIA' },\r\n { placeId: 7028, cityName: 'MONGU', countryName: 'ZAMBIA' },\r\n { placeId: 7057, cityName: 'MONZE', countryName: 'ZAMBIA' },\r\n { placeId: 7103, cityName: 'MPIKA', countryName: 'ZAMBIA' },\r\n { placeId: 7104, cityName: 'MPOROKOSO', countryName: 'ZAMBIA' },\r\n { placeId: 7120, cityName: 'MUFULIRA', countryName: 'ZAMBIA' },\r\n { placeId: 7128, cityName: 'MULOBEZI', countryName: 'ZAMBIA' },\r\n { placeId: 7157, cityName: 'MWINILUNGA', countryName: 'ZAMBIA' },\r\n { placeId: 7178, cityName: 'NAMWALA', countryName: 'ZAMBIA' },\r\n { placeId: 7206, cityName: 'NDOLA', countryName: 'ZAMBIA' },\r\n { placeId: 7252, cityName: 'NGOMA', countryName: 'ZAMBIA' },\r\n { placeId: 7325, cityName: 'NYIMBA', countryName: 'ZAMBIA' },\r\n { placeId: 7616, cityName: 'PETAUKE', countryName: 'ZAMBIA' },\r\n { placeId: 7958, cityName: 'ROSA', countryName: 'ZAMBIA' },\r\n { placeId: 7977, cityName: 'RUFUNSA', countryName: 'ZAMBIA' },\r\n { placeId: 7518, cityName: 'SAKEJI', countryName: 'ZAMBIA' },\r\n { placeId: 8025, cityName: 'SAMFYA', countryName: 'ZAMBIA' },\r\n { placeId: 8160, cityName: 'SENANGA', countryName: 'ZAMBIA' },\r\n { placeId: 8191, cityName: 'SERENJE', countryName: 'ZAMBIA' },\r\n { placeId: 8238, cityName: 'SHIWA NGANDU', countryName: 'ZAMBIA' },\r\n { placeId: 8310, cityName: 'SOLWEZI', countryName: 'ZAMBIA' },\r\n { placeId: 8901, cityName: 'WAKAWAKA', countryName: 'ZAMBIA' },\r\n { placeId: 8976, cityName: 'WEST FIVE', countryName: 'ZAMBIA' },\r\n { placeId: 8977, cityName: 'WEST FOUR', countryName: 'ZAMBIA' },\r\n { placeId: 8980, cityName: 'WEST ONE', countryName: 'ZAMBIA' },\r\n { placeId: 8984, cityName: 'WEST SEVEN', countryName: 'ZAMBIA' },\r\n { placeId: 8985, cityName: 'WEST SIX', countryName: 'ZAMBIA' },\r\n { placeId: 8986, cityName: 'WEST THREE', countryName: 'ZAMBIA' },\r\n { placeId: 8987, cityName: 'WEST TWO', countryName: 'ZAMBIA' },\r\n { placeId: 1157, cityName: 'BULAWAYO', countryName: 'ZIMBABWE' },\r\n { placeId: 4837, cityName: 'CHINHOYI', countryName: 'ZIMBABWE' },\r\n { placeId: 1158, cityName: 'CHIREDZI', countryName: 'ZIMBABWE' },\r\n { placeId: 5596, cityName: 'GOKWE', countryName: 'ZIMBABWE' },\r\n { placeId: 1160, cityName: 'HARARE', countryName: 'ZIMBABWE' },\r\n { placeId: 1163, cityName: 'HWANGE', countryName: 'ZIMBABWE' },\r\n { placeId: 1161, cityName: 'KARIBA', countryName: 'ZIMBABWE' },\r\n { placeId: 1162, cityName: 'MASVINGO', countryName: 'ZIMBABWE' },\r\n { placeId: 6961, cityName: 'MHANGURA', countryName: 'ZIMBABWE' },\r\n { placeId: 1159, cityName: 'VICTORIA FALLS', countryName: 'ZIMBABWE' },\r\n];\r\n\r\nexport default cities;\r\n","import React from \"react\";\r\nimport * as types from '../actionTypes';\r\nimport cities from '../../constants/CityConstants';\r\n\r\nconst initialState = {\r\n isLoading: false,\r\n offers: [],\r\n totalOffers: 0,\r\n error: '',\r\n cities: cities.slice(),\r\n isOfferFetched: false,\r\n regionId: false,\r\n};\r\n\r\nexport default function offersReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.FETCH_OFFERS_INIT: {\r\n return Object.assign({}, state, {\r\n isLoading: true,\r\n error: '',\r\n isOfferFetched: false,\r\n });\r\n }\r\n case types.FETCH_OFFERS_SUCCESS: {\r\n const shouldUpdate = state.offers.length <= state.totalOffers\r\n && action.data.offers.length > state.offers.length \r\n || action.data.regionId != state.regionId\r\n if (!shouldUpdate) {\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n error: '',\r\n });\r\n }\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n offers: action.data.offers,\r\n totalOffers: action.data.totalOffers,\r\n error: '',\r\n isOfferFetched: action.data.isFetched || false,\r\n regionId: action.data.regionId,\r\n \r\n });\r\n }\r\n case types.FETCH_OFFERS_FAIL: {\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n offers: [],\r\n totalOffers: 0,\r\n error: action.data,\r\n isOfferFetched: true,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","const countryData = [\r\n {\r\n COUNTRY_NAME: 'ARUBA',\r\n THREE_LETTER_CODE: 'ABW',\r\n TWO_LETTER_CODE: 'AW',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'AFGHANISTAN',\r\n THREE_LETTER_CODE: 'AFG',\r\n TWO_LETTER_CODE: 'AF',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'ANGOLA',\r\n THREE_LETTER_CODE: 'AGO',\r\n TWO_LETTER_CODE: 'AO',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n {\r\n COUNTRY_NAME: 'ANGUILLA',\r\n THREE_LETTER_CODE: 'AIA',\r\n TWO_LETTER_CODE: 'AI',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'ÅLAND ISLANDS',\r\n THREE_LETTER_CODE: 'ALA',\r\n TWO_LETTER_CODE: 'AX',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'ALBANIA',\r\n THREE_LETTER_CODE: 'ALB',\r\n TWO_LETTER_CODE: 'AL',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'ANDORRA',\r\n THREE_LETTER_CODE: 'AND',\r\n TWO_LETTER_CODE: 'AD',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'UNITED ARAB EMIRATES',\r\n THREE_LETTER_CODE: 'ARE',\r\n TWO_LETTER_CODE: 'AE',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'ARGENTINA',\r\n THREE_LETTER_CODE: 'ARG',\r\n TWO_LETTER_CODE: 'AR',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'ARMENIA',\r\n THREE_LETTER_CODE: 'ARM',\r\n TWO_LETTER_CODE: 'AM',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'AMERICAN SAMOA',\r\n THREE_LETTER_CODE: 'ASM',\r\n TWO_LETTER_CODE: 'AS',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'ANTARCTICA',\r\n THREE_LETTER_CODE: 'ATA',\r\n TWO_LETTER_CODE: 'AQ',\r\n REGION_NAME: 'Antarctica',\r\n REGION_ID: 17,\r\n },\r\n {\r\n COUNTRY_NAME: 'FRENCH SOUTHERN TERRITORIES',\r\n THREE_LETTER_CODE: 'ATF',\r\n TWO_LETTER_CODE: 'TF',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'ANTIGUA AND BARBUDA',\r\n THREE_LETTER_CODE: 'ATG',\r\n TWO_LETTER_CODE: 'AG',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'AUSTRALIA',\r\n THREE_LETTER_CODE: 'AUS',\r\n TWO_LETTER_CODE: 'AU',\r\n REGION_NAME: 'Australia + New Zealand',\r\n REGION_ID: 8,\r\n },\r\n {\r\n COUNTRY_NAME: 'AUSTRIA',\r\n THREE_LETTER_CODE: 'AUT',\r\n TWO_LETTER_CODE: 'AT',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'AZERBAIJAN',\r\n THREE_LETTER_CODE: 'AZE',\r\n TWO_LETTER_CODE: 'AZ',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'BURUNDI',\r\n THREE_LETTER_CODE: 'BDI',\r\n TWO_LETTER_CODE: 'BI',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'BELGIUM',\r\n THREE_LETTER_CODE: 'BEL',\r\n TWO_LETTER_CODE: 'BE',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'BENIN',\r\n THREE_LETTER_CODE: 'BEN',\r\n TWO_LETTER_CODE: 'BJ',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'BONAIRE, SINT EUSTATIUS AND SABA',\r\n THREE_LETTER_CODE: 'BES',\r\n TWO_LETTER_CODE: 'BQ',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'BURKINA FASO',\r\n THREE_LETTER_CODE: 'BFA',\r\n TWO_LETTER_CODE: 'BF',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'BANGLADESH',\r\n THREE_LETTER_CODE: 'BGD',\r\n TWO_LETTER_CODE: 'BD',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'BULGARIA',\r\n THREE_LETTER_CODE: 'BGR',\r\n TWO_LETTER_CODE: 'BG',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'BAHRAIN',\r\n THREE_LETTER_CODE: 'BHR',\r\n TWO_LETTER_CODE: 'BH',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'BAHAMAS',\r\n THREE_LETTER_CODE: 'BHS',\r\n TWO_LETTER_CODE: 'BS',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'BOSNIA AND HERZEGOVINA',\r\n THREE_LETTER_CODE: 'BIH',\r\n TWO_LETTER_CODE: 'BA',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'SAINT BARTHÉLEMY',\r\n THREE_LETTER_CODE: 'BLM',\r\n TWO_LETTER_CODE: 'BL',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'BELARUS',\r\n THREE_LETTER_CODE: 'BLR',\r\n TWO_LETTER_CODE: 'BY',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'BELIZE',\r\n THREE_LETTER_CODE: 'BLZ',\r\n TWO_LETTER_CODE: 'BZ',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'BERMUDA',\r\n THREE_LETTER_CODE: 'BMU',\r\n TWO_LETTER_CODE: 'BM',\r\n REGION_NAME: 'North America',\r\n REGION_ID: 11,\r\n },\r\n {\r\n COUNTRY_NAME: 'PLURINATIONAL STATE OF BOLIVIA',\r\n THREE_LETTER_CODE: 'BOL',\r\n TWO_LETTER_CODE: 'BO',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'BRAZIL',\r\n THREE_LETTER_CODE: 'BRA',\r\n TWO_LETTER_CODE: 'BR',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'BARBADOS',\r\n THREE_LETTER_CODE: 'BRB',\r\n TWO_LETTER_CODE: 'BB',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'BRUNEI DARUSSALAM',\r\n THREE_LETTER_CODE: 'BRN',\r\n TWO_LETTER_CODE: 'BN',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'BHUTAN',\r\n THREE_LETTER_CODE: 'BTN',\r\n TWO_LETTER_CODE: 'BT',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'BOUVET ISLAND',\r\n THREE_LETTER_CODE: 'BVT',\r\n TWO_LETTER_CODE: 'BV',\r\n REGION_NAME: 'Antarctica',\r\n REGION_ID: 17,\r\n },\r\n {\r\n COUNTRY_NAME: 'BOTSWANA',\r\n THREE_LETTER_CODE: 'BWA',\r\n TWO_LETTER_CODE: 'BW',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n {\r\n COUNTRY_NAME: 'CENTRAL AFRICAN REPUBLIC',\r\n THREE_LETTER_CODE: 'CAF',\r\n TWO_LETTER_CODE: 'CF',\r\n REGION_NAME: 'Central Africa',\r\n REGION_ID: 13,\r\n },\r\n {\r\n COUNTRY_NAME: 'CANADA',\r\n THREE_LETTER_CODE: 'CAN',\r\n TWO_LETTER_CODE: 'CA',\r\n REGION_NAME: 'North America',\r\n REGION_ID: 11,\r\n },\r\n {\r\n COUNTRY_NAME: 'COCOS (KEELING) ISLANDS',\r\n THREE_LETTER_CODE: 'CCK',\r\n TWO_LETTER_CODE: 'CC',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'SWITZERLAND',\r\n THREE_LETTER_CODE: 'CHE',\r\n TWO_LETTER_CODE: 'CH',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'CHILE',\r\n THREE_LETTER_CODE: 'CHL',\r\n TWO_LETTER_CODE: 'CL',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'CHINA',\r\n THREE_LETTER_CODE: 'CHN',\r\n TWO_LETTER_CODE: 'CN',\r\n REGION_NAME: 'China',\r\n REGION_ID: 14,\r\n },\r\n {\r\n COUNTRY_NAME: \"CÔTE D'IVOIRE\",\r\n THREE_LETTER_CODE: 'CIV',\r\n TWO_LETTER_CODE: 'CI',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'CAMEROON',\r\n THREE_LETTER_CODE: 'CMR',\r\n TWO_LETTER_CODE: 'CM',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'THE DEMOCRATIC REPUBLIC OF THE CONGO',\r\n THREE_LETTER_CODE: 'COD',\r\n TWO_LETTER_CODE: 'CD',\r\n REGION_NAME: 'Central Africa',\r\n REGION_ID: 13,\r\n },\r\n {\r\n COUNTRY_NAME: 'CONGO',\r\n THREE_LETTER_CODE: 'COG',\r\n TWO_LETTER_CODE: 'CG',\r\n REGION_NAME: 'Central Africa',\r\n REGION_ID: 13,\r\n },\r\n {\r\n COUNTRY_NAME: 'COOK ISLANDS',\r\n THREE_LETTER_CODE: 'COK',\r\n TWO_LETTER_CODE: 'CK',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'COLOMBIA',\r\n THREE_LETTER_CODE: 'COL',\r\n TWO_LETTER_CODE: 'CO',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'COMOROS',\r\n THREE_LETTER_CODE: 'COM',\r\n TWO_LETTER_CODE: 'KM',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'CAPE VERDE',\r\n THREE_LETTER_CODE: 'CPV',\r\n TWO_LETTER_CODE: 'CV',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'COSTA RICA',\r\n THREE_LETTER_CODE: 'CRI',\r\n TWO_LETTER_CODE: 'CR',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'CUBA',\r\n THREE_LETTER_CODE: 'CUB',\r\n TWO_LETTER_CODE: 'CU',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'CURAÇAO',\r\n THREE_LETTER_CODE: 'CUW',\r\n TWO_LETTER_CODE: 'CW',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'CHRISTMAS ISLAND',\r\n THREE_LETTER_CODE: 'CXR',\r\n TWO_LETTER_CODE: 'CX',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'CAYMAN ISLANDS',\r\n THREE_LETTER_CODE: 'CYM',\r\n TWO_LETTER_CODE: 'KY',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'CYPRUS',\r\n THREE_LETTER_CODE: 'CYP',\r\n TWO_LETTER_CODE: 'CY',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'CZECH REPUBLIC',\r\n THREE_LETTER_CODE: 'CZE',\r\n TWO_LETTER_CODE: 'CZ',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'GERMANY',\r\n THREE_LETTER_CODE: 'DEU',\r\n TWO_LETTER_CODE: 'DE',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'DJIBOUTI',\r\n THREE_LETTER_CODE: 'DJI',\r\n TWO_LETTER_CODE: 'DJ',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'DOMINICA',\r\n THREE_LETTER_CODE: 'DMA',\r\n TWO_LETTER_CODE: 'DM',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'DENMARK',\r\n THREE_LETTER_CODE: 'DNK',\r\n TWO_LETTER_CODE: 'DK',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'DOMINICAN REPUBLIC',\r\n THREE_LETTER_CODE: 'DOM',\r\n TWO_LETTER_CODE: 'DO',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'ALGERIA',\r\n THREE_LETTER_CODE: 'DZA',\r\n TWO_LETTER_CODE: 'DZ',\r\n REGION_NAME: 'North Africa',\r\n REGION_ID: 2,\r\n },\r\n {\r\n COUNTRY_NAME: 'ECUADOR',\r\n THREE_LETTER_CODE: 'ECU',\r\n TWO_LETTER_CODE: 'EC',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'EGYPT',\r\n THREE_LETTER_CODE: 'EGY',\r\n TWO_LETTER_CODE: 'EG',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'ERITREA',\r\n THREE_LETTER_CODE: 'ERI',\r\n TWO_LETTER_CODE: 'ER',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'WESTERN SAHARA',\r\n THREE_LETTER_CODE: 'ESH',\r\n TWO_LETTER_CODE: 'EH',\r\n REGION_NAME: 'North Africa',\r\n REGION_ID: 2,\r\n },\r\n {\r\n COUNTRY_NAME: 'SPAIN',\r\n THREE_LETTER_CODE: 'ESP',\r\n TWO_LETTER_CODE: 'ES',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'ESTONIA',\r\n THREE_LETTER_CODE: 'EST',\r\n TWO_LETTER_CODE: 'EE',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'ETHIOPIA',\r\n THREE_LETTER_CODE: 'ETH',\r\n TWO_LETTER_CODE: 'ET',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'FINLAND',\r\n THREE_LETTER_CODE: 'FIN',\r\n TWO_LETTER_CODE: 'FI',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'FIJI',\r\n THREE_LETTER_CODE: 'FJI',\r\n TWO_LETTER_CODE: 'FJ',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'FALKLAND ISLANDS (MALVINAS)',\r\n THREE_LETTER_CODE: 'FLK',\r\n TWO_LETTER_CODE: 'FK',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'FRANCE',\r\n THREE_LETTER_CODE: 'FRA',\r\n TWO_LETTER_CODE: 'FR',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'FAROE ISLANDS',\r\n THREE_LETTER_CODE: 'FRO',\r\n TWO_LETTER_CODE: 'FO',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'FEDERATED STATES OF MICRONESIA',\r\n THREE_LETTER_CODE: 'FSM',\r\n TWO_LETTER_CODE: 'FM',\r\n REGION_NAME: 'North Asia/North Pacific',\r\n REGION_ID: 15,\r\n },\r\n {\r\n COUNTRY_NAME: 'GABON',\r\n THREE_LETTER_CODE: 'GAB',\r\n TWO_LETTER_CODE: 'GA',\r\n REGION_NAME: 'Central Africa',\r\n REGION_ID: 13,\r\n },\r\n {\r\n COUNTRY_NAME: 'UNITED KINGDOM',\r\n THREE_LETTER_CODE: 'GBR',\r\n TWO_LETTER_CODE: 'GB',\r\n REGION_NAME: 'United Kingdom',\r\n REGION_ID: 16,\r\n },\r\n {\r\n COUNTRY_NAME: 'GEORGIA',\r\n THREE_LETTER_CODE: 'GEO',\r\n TWO_LETTER_CODE: 'GE',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'GUERNSEY',\r\n THREE_LETTER_CODE: 'GGY',\r\n TWO_LETTER_CODE: 'GG',\r\n REGION_NAME: 'United Kingdom',\r\n REGION_ID: 16,\r\n },\r\n {\r\n COUNTRY_NAME: 'GHANA',\r\n THREE_LETTER_CODE: 'GHA',\r\n TWO_LETTER_CODE: 'GH',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'GIBRALTAR',\r\n THREE_LETTER_CODE: 'GIB',\r\n TWO_LETTER_CODE: 'GI',\r\n REGION_NAME: 'North Africa',\r\n REGION_ID: 2,\r\n },\r\n {\r\n COUNTRY_NAME: 'GUINEA',\r\n THREE_LETTER_CODE: 'GIN',\r\n TWO_LETTER_CODE: 'GN',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'GUADELOUPE',\r\n THREE_LETTER_CODE: 'GLP',\r\n TWO_LETTER_CODE: 'GP',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'GAMBIA',\r\n THREE_LETTER_CODE: 'GMB',\r\n TWO_LETTER_CODE: 'GM',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'GUINEA-BISSAU',\r\n THREE_LETTER_CODE: 'GNB',\r\n TWO_LETTER_CODE: 'GW',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'EQUATORIAL GUINEA',\r\n THREE_LETTER_CODE: 'GNQ',\r\n TWO_LETTER_CODE: 'GQ',\r\n REGION_NAME: 'Central Africa',\r\n REGION_ID: 13,\r\n },\r\n {\r\n COUNTRY_NAME: 'GREECE',\r\n THREE_LETTER_CODE: 'GRC',\r\n TWO_LETTER_CODE: 'GR',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'GRENADA',\r\n THREE_LETTER_CODE: 'GRD',\r\n TWO_LETTER_CODE: 'GD',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'GREENLAND',\r\n THREE_LETTER_CODE: 'GRL',\r\n TWO_LETTER_CODE: 'GL',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'GUATEMALA',\r\n THREE_LETTER_CODE: 'GTM',\r\n TWO_LETTER_CODE: 'GT',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'FRENCH GUIANA',\r\n THREE_LETTER_CODE: 'GUF',\r\n TWO_LETTER_CODE: 'GF',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'GUAM',\r\n THREE_LETTER_CODE: 'GUM',\r\n TWO_LETTER_CODE: 'GU',\r\n REGION_NAME: 'North Asia/North Pacific',\r\n REGION_ID: 15,\r\n },\r\n {\r\n COUNTRY_NAME: 'GUYANA',\r\n THREE_LETTER_CODE: 'GUY',\r\n TWO_LETTER_CODE: 'GY',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'HONG KONG',\r\n THREE_LETTER_CODE: 'HKG',\r\n TWO_LETTER_CODE: 'HK',\r\n REGION_NAME: 'China',\r\n REGION_ID: 14,\r\n },\r\n {\r\n COUNTRY_NAME: 'HEARD ISLAND AND MCDONALD ISLANDS',\r\n THREE_LETTER_CODE: 'HMD',\r\n TWO_LETTER_CODE: 'HM',\r\n REGION_NAME: 'Antarctica',\r\n REGION_ID: 17,\r\n },\r\n {\r\n COUNTRY_NAME: 'HONDURAS',\r\n THREE_LETTER_CODE: 'HND',\r\n TWO_LETTER_CODE: 'HN',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'CROATIA',\r\n THREE_LETTER_CODE: 'HRV',\r\n TWO_LETTER_CODE: 'HR',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'HAITI',\r\n THREE_LETTER_CODE: 'HTI',\r\n TWO_LETTER_CODE: 'HT',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'HUNGARY',\r\n THREE_LETTER_CODE: 'HUN',\r\n TWO_LETTER_CODE: 'HU',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'INDONESIA',\r\n THREE_LETTER_CODE: 'IDN',\r\n TWO_LETTER_CODE: 'ID',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'ISLE OF MAN',\r\n THREE_LETTER_CODE: 'IMN',\r\n TWO_LETTER_CODE: 'IM',\r\n REGION_NAME: 'United Kingdom',\r\n REGION_ID: 16,\r\n },\r\n {\r\n COUNTRY_NAME: 'INDIA',\r\n THREE_LETTER_CODE: 'IND',\r\n TWO_LETTER_CODE: 'IN',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'BRITISH INDIAN OCEAN TERRITORY',\r\n THREE_LETTER_CODE: 'IOT',\r\n TWO_LETTER_CODE: 'IO',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'IRELAND',\r\n THREE_LETTER_CODE: 'IRL',\r\n TWO_LETTER_CODE: 'IE',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'ISLAMIC REPUBLIC OF IRAN',\r\n THREE_LETTER_CODE: 'IRN',\r\n TWO_LETTER_CODE: 'IR',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'IRAQ',\r\n THREE_LETTER_CODE: 'IRQ',\r\n TWO_LETTER_CODE: 'IQ',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'ICELAND',\r\n THREE_LETTER_CODE: 'ISL',\r\n TWO_LETTER_CODE: 'IS',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'ISRAEL',\r\n THREE_LETTER_CODE: 'ISR',\r\n TWO_LETTER_CODE: 'IL',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'ITALY',\r\n THREE_LETTER_CODE: 'ITA',\r\n TWO_LETTER_CODE: 'IT',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'JAMAICA',\r\n THREE_LETTER_CODE: 'JAM',\r\n TWO_LETTER_CODE: 'JM',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'JERSEY',\r\n THREE_LETTER_CODE: 'JEY',\r\n TWO_LETTER_CODE: 'JE',\r\n REGION_NAME: 'United Kingdom',\r\n REGION_ID: 16,\r\n },\r\n {\r\n COUNTRY_NAME: 'JORDAN',\r\n THREE_LETTER_CODE: 'JOR',\r\n TWO_LETTER_CODE: 'JO',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'JAPAN',\r\n THREE_LETTER_CODE: 'JPN',\r\n TWO_LETTER_CODE: 'JP',\r\n REGION_NAME: 'North Asia/North Pacific',\r\n REGION_ID: 15,\r\n },\r\n {\r\n COUNTRY_NAME: 'KAZAKHSTAN',\r\n THREE_LETTER_CODE: 'KAZ',\r\n TWO_LETTER_CODE: 'KZ',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'KENYA',\r\n THREE_LETTER_CODE: 'KEN',\r\n TWO_LETTER_CODE: 'KE',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'KYRGYZSTAN',\r\n THREE_LETTER_CODE: 'KGZ',\r\n TWO_LETTER_CODE: 'KG',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'CAMBODIA',\r\n THREE_LETTER_CODE: 'KHM',\r\n TWO_LETTER_CODE: 'KH',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'KIRIBATI',\r\n THREE_LETTER_CODE: 'KIR',\r\n TWO_LETTER_CODE: 'KI',\r\n REGION_NAME: 'North Asia/North Pacific',\r\n REGION_ID: 15,\r\n },\r\n {\r\n COUNTRY_NAME: 'SAINT KITTS AND NEVIS',\r\n THREE_LETTER_CODE: 'KNA',\r\n TWO_LETTER_CODE: 'KN',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'REPUBLIC OF KOREA',\r\n THREE_LETTER_CODE: 'KOR',\r\n TWO_LETTER_CODE: 'KR',\r\n REGION_NAME: 'North Asia/North Pacific',\r\n REGION_ID: 15,\r\n },\r\n {\r\n COUNTRY_NAME: 'KUWAIT',\r\n THREE_LETTER_CODE: 'KWT',\r\n TWO_LETTER_CODE: 'KW',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: \"LAO PEOPLE'S DEMOCRATIC REPUBLIC\",\r\n THREE_LETTER_CODE: 'LAO',\r\n TWO_LETTER_CODE: 'LA',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'LEBANON',\r\n THREE_LETTER_CODE: 'LBN',\r\n TWO_LETTER_CODE: 'LB',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'LIBERIA',\r\n THREE_LETTER_CODE: 'LBR',\r\n TWO_LETTER_CODE: 'LR',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'LIBYA',\r\n THREE_LETTER_CODE: 'LBY',\r\n TWO_LETTER_CODE: 'LY',\r\n REGION_NAME: 'North Africa',\r\n REGION_ID: 2,\r\n },\r\n {\r\n COUNTRY_NAME: 'SAINT LUCIA',\r\n THREE_LETTER_CODE: 'LCA',\r\n TWO_LETTER_CODE: 'LC',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'LIECHTENSTEIN',\r\n THREE_LETTER_CODE: 'LIE',\r\n TWO_LETTER_CODE: 'LI',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'SRI LANKA',\r\n THREE_LETTER_CODE: 'LKA',\r\n TWO_LETTER_CODE: 'LK',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'LESOTHO',\r\n THREE_LETTER_CODE: 'LSO',\r\n TWO_LETTER_CODE: 'LS',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n {\r\n COUNTRY_NAME: 'LITHUANIA',\r\n THREE_LETTER_CODE: 'LTU',\r\n TWO_LETTER_CODE: 'LT',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'LUXEMBOURG',\r\n THREE_LETTER_CODE: 'LUX',\r\n TWO_LETTER_CODE: 'LU',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'LATVIA',\r\n THREE_LETTER_CODE: 'LVA',\r\n TWO_LETTER_CODE: 'LV',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'MACAO',\r\n THREE_LETTER_CODE: 'MAC',\r\n TWO_LETTER_CODE: 'MO',\r\n REGION_NAME: 'China',\r\n REGION_ID: 14,\r\n },\r\n {\r\n COUNTRY_NAME: 'SAINT MARTIN (FRENCH PART)',\r\n THREE_LETTER_CODE: 'MAF',\r\n TWO_LETTER_CODE: 'MF',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'MOROCCO',\r\n THREE_LETTER_CODE: 'MAR',\r\n TWO_LETTER_CODE: 'MA',\r\n REGION_NAME: 'North Africa',\r\n REGION_ID: 2,\r\n },\r\n {\r\n COUNTRY_NAME: 'MONACO',\r\n THREE_LETTER_CODE: 'MCO',\r\n TWO_LETTER_CODE: 'MC',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'REPUBLIC OF MOLDOVA',\r\n THREE_LETTER_CODE: 'MDA',\r\n TWO_LETTER_CODE: 'MD',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'MADAGASCAR',\r\n THREE_LETTER_CODE: 'MDG',\r\n TWO_LETTER_CODE: 'MG',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'MALDIVES',\r\n THREE_LETTER_CODE: 'MDV',\r\n TWO_LETTER_CODE: 'MV',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'MEXICO',\r\n THREE_LETTER_CODE: 'MEX',\r\n TWO_LETTER_CODE: 'MX',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'MARSHALL ISLANDS',\r\n THREE_LETTER_CODE: 'MHL',\r\n TWO_LETTER_CODE: 'MH',\r\n REGION_NAME: 'North Asia/North Pacific',\r\n REGION_ID: 15,\r\n },\r\n {\r\n COUNTRY_NAME: 'THE FORMER YUGOSLAV REPUBLIC OF MACEDONIA',\r\n THREE_LETTER_CODE: 'MKD',\r\n TWO_LETTER_CODE: 'MK',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'MALI',\r\n THREE_LETTER_CODE: 'MLI',\r\n TWO_LETTER_CODE: 'ML',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'MALTA',\r\n THREE_LETTER_CODE: 'MLT',\r\n TWO_LETTER_CODE: 'MT',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'MYANMAR',\r\n THREE_LETTER_CODE: 'MMR',\r\n TWO_LETTER_CODE: 'MM',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'MONTENEGRO',\r\n THREE_LETTER_CODE: 'MNE',\r\n TWO_LETTER_CODE: 'ME',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'MONGOLIA',\r\n THREE_LETTER_CODE: 'MNG',\r\n TWO_LETTER_CODE: 'MN',\r\n REGION_NAME: 'North Asia/North Pacific',\r\n REGION_ID: 15,\r\n },\r\n {\r\n COUNTRY_NAME: 'NORTHERN MARIANA ISLANDS',\r\n THREE_LETTER_CODE: 'MNP',\r\n TWO_LETTER_CODE: 'MP',\r\n REGION_NAME: 'North Asia/North Pacific',\r\n REGION_ID: 15,\r\n },\r\n {\r\n COUNTRY_NAME: 'MOZAMBIQUE',\r\n THREE_LETTER_CODE: 'MOZ',\r\n TWO_LETTER_CODE: 'MZ',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n {\r\n COUNTRY_NAME: 'MAURITANIA',\r\n THREE_LETTER_CODE: 'MRT',\r\n TWO_LETTER_CODE: 'MR',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'MONTSERRAT',\r\n THREE_LETTER_CODE: 'MSR',\r\n TWO_LETTER_CODE: 'MS',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'MARTINIQUE',\r\n THREE_LETTER_CODE: 'MTQ',\r\n TWO_LETTER_CODE: 'MQ',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'MAURITIUS',\r\n THREE_LETTER_CODE: 'MUS',\r\n TWO_LETTER_CODE: 'MU',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n {\r\n COUNTRY_NAME: 'MALAWI',\r\n THREE_LETTER_CODE: 'MWI',\r\n TWO_LETTER_CODE: 'MW',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'MALAYSIA',\r\n THREE_LETTER_CODE: 'MYS',\r\n TWO_LETTER_CODE: 'MY',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'MAYOTTE',\r\n THREE_LETTER_CODE: 'MYT',\r\n TWO_LETTER_CODE: 'YT',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n {\r\n COUNTRY_NAME: 'NAMIBIA',\r\n THREE_LETTER_CODE: 'NAM',\r\n TWO_LETTER_CODE: 'NA',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n {\r\n COUNTRY_NAME: 'NEW CALEDONIA',\r\n THREE_LETTER_CODE: 'NCL',\r\n TWO_LETTER_CODE: 'NC',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'NIGER',\r\n THREE_LETTER_CODE: 'NER',\r\n TWO_LETTER_CODE: 'NE',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'NORFOLK ISLAND',\r\n THREE_LETTER_CODE: 'NFK',\r\n TWO_LETTER_CODE: 'NF',\r\n REGION_NAME: 'Australia + New Zealand',\r\n REGION_ID: 8,\r\n },\r\n {\r\n COUNTRY_NAME: 'NIGERIA',\r\n THREE_LETTER_CODE: 'NGA',\r\n TWO_LETTER_CODE: 'NG',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'NICARAGUA',\r\n THREE_LETTER_CODE: 'NIC',\r\n TWO_LETTER_CODE: 'NI',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'NIUE',\r\n THREE_LETTER_CODE: 'NIU',\r\n TWO_LETTER_CODE: 'NU',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'NETHERLANDS',\r\n THREE_LETTER_CODE: 'NLD',\r\n TWO_LETTER_CODE: 'NL',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'NORWAY',\r\n THREE_LETTER_CODE: 'NOR',\r\n TWO_LETTER_CODE: 'NO',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'NEPAL',\r\n THREE_LETTER_CODE: 'NPL',\r\n TWO_LETTER_CODE: 'NP',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'NAURU',\r\n THREE_LETTER_CODE: 'NRU',\r\n TWO_LETTER_CODE: 'NR',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'NEW ZEALAND',\r\n THREE_LETTER_CODE: 'NZL',\r\n TWO_LETTER_CODE: 'NZ',\r\n REGION_NAME: 'Australia + New Zealand',\r\n REGION_ID: 8,\r\n },\r\n {\r\n COUNTRY_NAME: 'OMAN',\r\n THREE_LETTER_CODE: 'OMN',\r\n TWO_LETTER_CODE: 'OM',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'PAKISTAN',\r\n THREE_LETTER_CODE: 'PAK',\r\n TWO_LETTER_CODE: 'PK',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'PANAMA',\r\n THREE_LETTER_CODE: 'PAN',\r\n TWO_LETTER_CODE: 'PA',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'PITCAIRN',\r\n THREE_LETTER_CODE: 'PCN',\r\n TWO_LETTER_CODE: 'PN',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'PERU',\r\n THREE_LETTER_CODE: 'PER',\r\n TWO_LETTER_CODE: 'PE',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'PHILIPPINES',\r\n THREE_LETTER_CODE: 'PHL',\r\n TWO_LETTER_CODE: 'PH',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'PALAU',\r\n THREE_LETTER_CODE: 'PLW',\r\n TWO_LETTER_CODE: 'PW',\r\n REGION_NAME: 'North Asia/North Pacific',\r\n REGION_ID: 15,\r\n },\r\n {\r\n COUNTRY_NAME: 'PAPUA NEW GUINEA',\r\n THREE_LETTER_CODE: 'PNG',\r\n TWO_LETTER_CODE: 'PG',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'POLAND',\r\n THREE_LETTER_CODE: 'POL',\r\n TWO_LETTER_CODE: 'PL',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'PUERTO RICO',\r\n THREE_LETTER_CODE: 'PRI',\r\n TWO_LETTER_CODE: 'PR',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: \"DEMOCRATIC PEOPLE'S REPUBLIC OF KOREA\",\r\n THREE_LETTER_CODE: 'PRK',\r\n TWO_LETTER_CODE: 'KP',\r\n REGION_NAME: 'North Asia/North Pacific',\r\n REGION_ID: 15,\r\n },\r\n {\r\n COUNTRY_NAME: 'PORTUGAL',\r\n THREE_LETTER_CODE: 'PRT',\r\n TWO_LETTER_CODE: 'PT',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'PARAGUAY',\r\n THREE_LETTER_CODE: 'PRY',\r\n TWO_LETTER_CODE: 'PY',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'PALESTINIAN TERRITORY, OCCUPIED',\r\n THREE_LETTER_CODE: 'PSE',\r\n TWO_LETTER_CODE: 'PS',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'FRENCH POLYNESIA',\r\n THREE_LETTER_CODE: 'PYF',\r\n TWO_LETTER_CODE: 'PF',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'QATAR',\r\n THREE_LETTER_CODE: 'QAT',\r\n TWO_LETTER_CODE: 'QA',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'RÉUNION',\r\n THREE_LETTER_CODE: 'REU',\r\n TWO_LETTER_CODE: 'RE',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n {\r\n COUNTRY_NAME: 'ROMANIA',\r\n THREE_LETTER_CODE: 'ROU',\r\n TWO_LETTER_CODE: 'RO',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'RUSSIAN FEDERATION',\r\n THREE_LETTER_CODE: 'RUS',\r\n TWO_LETTER_CODE: 'RU',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'RWANDA',\r\n THREE_LETTER_CODE: 'RWA',\r\n TWO_LETTER_CODE: 'RW',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'SAUDI ARABIA',\r\n THREE_LETTER_CODE: 'SAU',\r\n TWO_LETTER_CODE: 'SA',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'SUDAN',\r\n THREE_LETTER_CODE: 'SDN',\r\n TWO_LETTER_CODE: 'SD',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'SENEGAL',\r\n THREE_LETTER_CODE: 'SEN',\r\n TWO_LETTER_CODE: 'SN',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'SINGAPORE',\r\n THREE_LETTER_CODE: 'SGP',\r\n TWO_LETTER_CODE: 'SG',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS',\r\n THREE_LETTER_CODE: 'SGS',\r\n TWO_LETTER_CODE: 'GS',\r\n REGION_NAME: 'Antarctica',\r\n REGION_ID: 17,\r\n },\r\n {\r\n COUNTRY_NAME: 'SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA',\r\n THREE_LETTER_CODE: 'SHN',\r\n TWO_LETTER_CODE: 'SH',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'SVALBARD AND JAN MAYEN',\r\n THREE_LETTER_CODE: 'SJM',\r\n TWO_LETTER_CODE: 'SJ',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'SOLOMON ISLANDS',\r\n THREE_LETTER_CODE: 'SLB',\r\n TWO_LETTER_CODE: 'SB',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'SIERRA LEONE',\r\n THREE_LETTER_CODE: 'SLE',\r\n TWO_LETTER_CODE: 'SL',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'EL SALVADOR',\r\n THREE_LETTER_CODE: 'SLV',\r\n TWO_LETTER_CODE: 'SV',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'SAN MARINO',\r\n THREE_LETTER_CODE: 'SMR',\r\n TWO_LETTER_CODE: 'SM',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'SOMALIA',\r\n THREE_LETTER_CODE: 'SOM',\r\n TWO_LETTER_CODE: 'SO',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'SAINT PIERRE AND MIQUELON',\r\n THREE_LETTER_CODE: 'SPM',\r\n TWO_LETTER_CODE: 'PM',\r\n REGION_NAME: 'North America',\r\n REGION_ID: 11,\r\n },\r\n {\r\n COUNTRY_NAME: 'SERBIA',\r\n THREE_LETTER_CODE: 'SRB',\r\n TWO_LETTER_CODE: 'RS',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'SOUTH SUDAN',\r\n THREE_LETTER_CODE: 'SSD',\r\n TWO_LETTER_CODE: 'SS',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'SAO TOME AND PRINCIPE',\r\n THREE_LETTER_CODE: 'STP',\r\n TWO_LETTER_CODE: 'ST',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'SURINAME',\r\n THREE_LETTER_CODE: 'SUR',\r\n TWO_LETTER_CODE: 'SR',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'SLOVAKIA',\r\n THREE_LETTER_CODE: 'SVK',\r\n TWO_LETTER_CODE: 'SK',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'SLOVENIA',\r\n THREE_LETTER_CODE: 'SVN',\r\n TWO_LETTER_CODE: 'SI',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'SWEDEN',\r\n THREE_LETTER_CODE: 'SWE',\r\n TWO_LETTER_CODE: 'SE',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'SWAZILAND',\r\n THREE_LETTER_CODE: 'SWZ',\r\n TWO_LETTER_CODE: 'SZ',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n {\r\n COUNTRY_NAME: 'SINT MAARTEN (DUTCH PART)',\r\n THREE_LETTER_CODE: 'SXM',\r\n TWO_LETTER_CODE: 'SX',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'SEYCHELLES',\r\n THREE_LETTER_CODE: 'SYC',\r\n TWO_LETTER_CODE: 'SC',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'SYRIAN ARAB REPUBLIC',\r\n THREE_LETTER_CODE: 'SYR',\r\n TWO_LETTER_CODE: 'SY',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'TURKS AND CAICOS ISLANDS',\r\n THREE_LETTER_CODE: 'TCA',\r\n TWO_LETTER_CODE: 'TC',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'CHAD',\r\n THREE_LETTER_CODE: 'TCD',\r\n TWO_LETTER_CODE: 'TD',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'TOGO',\r\n THREE_LETTER_CODE: 'TGO',\r\n TWO_LETTER_CODE: 'TG',\r\n REGION_NAME: 'West Africa',\r\n REGION_ID: 10,\r\n },\r\n {\r\n COUNTRY_NAME: 'THAILAND',\r\n THREE_LETTER_CODE: 'THA',\r\n TWO_LETTER_CODE: 'TH',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'TAJIKISTAN',\r\n THREE_LETTER_CODE: 'TJK',\r\n TWO_LETTER_CODE: 'TJ',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'TOKELAU',\r\n THREE_LETTER_CODE: 'TKL',\r\n TWO_LETTER_CODE: 'TK',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'TURKMENISTAN',\r\n THREE_LETTER_CODE: 'TKM',\r\n TWO_LETTER_CODE: 'TM',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'TIMOR-LESTE',\r\n THREE_LETTER_CODE: 'TLS',\r\n TWO_LETTER_CODE: 'TL',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'TONGA',\r\n THREE_LETTER_CODE: 'TON',\r\n TWO_LETTER_CODE: 'TO',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'TRINIDAD AND TOBAGO',\r\n THREE_LETTER_CODE: 'TTO',\r\n TWO_LETTER_CODE: 'TT',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'TUNISIA',\r\n THREE_LETTER_CODE: 'TUN',\r\n TWO_LETTER_CODE: 'TN',\r\n REGION_NAME: 'North Africa',\r\n REGION_ID: 2,\r\n },\r\n {\r\n COUNTRY_NAME: 'TURKEY',\r\n THREE_LETTER_CODE: 'TUR',\r\n TWO_LETTER_CODE: 'TR',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'TUVALU',\r\n THREE_LETTER_CODE: 'TUV',\r\n TWO_LETTER_CODE: 'TV',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'TAIWAN',\r\n THREE_LETTER_CODE: 'TWN',\r\n TWO_LETTER_CODE: 'TW',\r\n REGION_NAME: 'China',\r\n REGION_ID: 14,\r\n },\r\n {\r\n COUNTRY_NAME: 'UNITED REPUBLIC OF TANZANIA',\r\n THREE_LETTER_CODE: 'TZA',\r\n TWO_LETTER_CODE: 'TZ',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'UGANDA',\r\n THREE_LETTER_CODE: 'UGA',\r\n TWO_LETTER_CODE: 'UG',\r\n REGION_NAME: 'East Africa',\r\n REGION_ID: 12,\r\n },\r\n {\r\n COUNTRY_NAME: 'UKRAINE',\r\n THREE_LETTER_CODE: 'UKR',\r\n TWO_LETTER_CODE: 'UA',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'UNITED STATES MINOR OUTLYING ISLANDS',\r\n THREE_LETTER_CODE: 'UMI',\r\n TWO_LETTER_CODE: 'UM',\r\n REGION_NAME: 'North Asia/North Pacific',\r\n REGION_ID: 15,\r\n },\r\n {\r\n COUNTRY_NAME: 'URUGUAY',\r\n THREE_LETTER_CODE: 'URY',\r\n TWO_LETTER_CODE: 'UY',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'UNITED STATES',\r\n THREE_LETTER_CODE: 'USA',\r\n TWO_LETTER_CODE: 'US',\r\n REGION_NAME: 'North America',\r\n REGION_ID: 11,\r\n },\r\n {\r\n COUNTRY_NAME: 'UZBEKISTAN',\r\n THREE_LETTER_CODE: 'UZB',\r\n TWO_LETTER_CODE: 'UZ',\r\n REGION_NAME: 'Russia + CIS',\r\n REGION_ID: 7,\r\n },\r\n {\r\n COUNTRY_NAME: 'HOLY SEE (VATICAN CITY STATE)',\r\n THREE_LETTER_CODE: 'VAT',\r\n TWO_LETTER_CODE: 'VA',\r\n REGION_NAME: 'Europe',\r\n REGION_ID: 1,\r\n },\r\n {\r\n COUNTRY_NAME: 'SAINT VINCENT AND THE GRENADINES',\r\n THREE_LETTER_CODE: 'VCT',\r\n TWO_LETTER_CODE: 'VC',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'BOLIVARIAN REPUBLIC OF VENEZUELA',\r\n THREE_LETTER_CODE: 'VEN',\r\n TWO_LETTER_CODE: 'VE',\r\n REGION_NAME: 'South America',\r\n REGION_ID: 6,\r\n },\r\n {\r\n COUNTRY_NAME: 'VIRGIN ISLANDS, BRITISH',\r\n THREE_LETTER_CODE: 'VGB',\r\n TWO_LETTER_CODE: 'VG',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'VIRGIN ISLANDS, U.S.',\r\n THREE_LETTER_CODE: 'VIR',\r\n TWO_LETTER_CODE: 'VI',\r\n REGION_NAME: 'Central America + Caribbean',\r\n REGION_ID: 5,\r\n },\r\n {\r\n COUNTRY_NAME: 'VIETNAM',\r\n THREE_LETTER_CODE: 'VNM',\r\n TWO_LETTER_CODE: 'VN',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'VANUATU',\r\n THREE_LETTER_CODE: 'VUT',\r\n TWO_LETTER_CODE: 'VU',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'WALLIS AND FUTUNA',\r\n THREE_LETTER_CODE: 'WLF',\r\n TWO_LETTER_CODE: 'WF',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'SAMOA',\r\n THREE_LETTER_CODE: 'WSM',\r\n TWO_LETTER_CODE: 'WS',\r\n REGION_NAME: 'South Asia/South Pacific',\r\n REGION_ID: 3,\r\n },\r\n {\r\n COUNTRY_NAME: 'YEMEN',\r\n THREE_LETTER_CODE: 'YEM',\r\n TWO_LETTER_CODE: 'YE',\r\n REGION_NAME: 'Middle East',\r\n REGION_ID: 9,\r\n },\r\n {\r\n COUNTRY_NAME: 'SOUTH AFRICA',\r\n THREE_LETTER_CODE: 'ZAF',\r\n TWO_LETTER_CODE: 'ZA',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n {\r\n COUNTRY_NAME: 'ZAMBIA',\r\n THREE_LETTER_CODE: 'ZMB',\r\n TWO_LETTER_CODE: 'ZM',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n {\r\n COUNTRY_NAME: 'ZIMBABWE',\r\n THREE_LETTER_CODE: 'ZWE',\r\n TWO_LETTER_CODE: 'ZW',\r\n REGION_NAME: 'South Africa',\r\n REGION_ID: 4,\r\n },\r\n];\r\n\r\nexport const COUNTRY_CODE_TAIWAN_ISO2 = 'TW';\r\nexport const COUNTRY_CODE_CHINA_ISO2 = 'CN';\r\n\r\nexport default countryData;\r\n","import * as types from '../actionTypes';\r\nimport countryData from 'constants/CountryConstants';\r\n\r\nconst initialState = {\r\n country: '',\r\n regionId: null,\r\n error: '',\r\n isLoading: false,\r\n locationDisabled: false,\r\n};\r\n\r\nexport default function geolocationReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.FETCH_GEOCODE_INIT: {\r\n return Object.assign({}, state, {\r\n country: '',\r\n regionId: null,\r\n error: '',\r\n isLoading: true,\r\n locationDisabled: false,\r\n });\r\n }\r\n case types.FETCH_GEOCODE_SUCCESS: {\r\n const countryName = action.data.country.toUpperCase();\r\n const region = countryData.find(country => country.COUNTRY_NAME === countryName);\r\n const regionId = region ? +region.REGION_ID : null;\r\n return Object.assign({}, state, {\r\n country: countryName,\r\n regionId,\r\n error: '',\r\n isLoading: false,\r\n locationDisabled: false,\r\n });\r\n }\r\n case types.FETCH_GEOCODE_FAIL: {\r\n return Object.assign({}, state, {\r\n country: '',\r\n regionId: null,\r\n error: 'Geocode not available',\r\n isLoading: false,\r\n locationDisabled: true,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nconst initialState = {\r\n isGoogleMapsApiLoaded: false,\r\n isGooglePlacesAutocompleteBinded: false,\r\n};\r\n\r\nexport default function googleMapReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.GOOGLE_MAPS_API_LOADED: {\r\n return Object.assign({}, state, {\r\n isGoogleMapsApiLoaded: true,\r\n });\r\n }\r\n case types.PLACES_AUTOCOMPLETE_BINDED: {\r\n return Object.assign({}, state, {\r\n isGooglePlacesAutocompleteBinded: true,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nconst initialState = {\r\n isAirportsLoading: false,\r\n isAirportByIdLoading: false,\r\n visitedAirports: [],\r\n visitedAirportsFinder: {},\r\n error: '',\r\n isAirportsFetched: false,\r\n};\r\n\r\nexport default function visitedAirportsReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.FETCH_VISITED_AIRPORTS_INIT: {\r\n return Object.assign({}, state, {\r\n isAirportsLoading: true,\r\n error: '',\r\n });\r\n }\r\n case types.FETCH_VISITED_AIRPORTS_SUCCESS: {\r\n const visitedAirportsFinder = { ...state.visitedAirportsFinder, ...action.data };\r\n const visitedAirports = Object.values(visitedAirportsFinder);\r\n return Object.assign({}, state, {\r\n isAirportsLoading: false,\r\n visitedAirports,\r\n visitedAirportsFinder,\r\n error: '',\r\n isAirportsFetched: true,\r\n });\r\n }\r\n case types.FETCH_VISITED_AIRPORTS_FAIL: {\r\n return Object.assign({}, state, {\r\n isAirportsLoading: false,\r\n visitedAirports: [],\r\n error: action.data,\r\n isAirportsFetched: false,\r\n });\r\n }\r\n case types.FETCH_AIRPORT_BY_ID_INIT: {\r\n return Object.assign({}, state, {\r\n isAirportByIdLoading: true,\r\n error: '',\r\n });\r\n }\r\n case types.FETCH_AIRPORT_BY_ID_SUCCESS: {\r\n const visitedAirportsFinder = { ...state.visitedAirportsFinder, ...action.data };\r\n const visitedAirports = Object.values(visitedAirportsFinder);\r\n return Object.assign({}, state, {\r\n isAirportByIdLoading: false,\r\n visitedAirports,\r\n visitedAirportsFinder,\r\n error: '',\r\n });\r\n }\r\n case types.FETCH_AIRPORT_BY_ID_FAIL: {\r\n return Object.assign({}, state, {\r\n isAirportByIdLoading: false,\r\n error: action.data,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from \"../actionTypes\";\r\n\r\nconst initialState = {\r\n isValidateFlightLoading: false,\r\n validateFlightMessages: [],\r\n isProposalOrRestriction: false\r\n};\r\n\r\nexport default function validateFlightReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.VALIDATE_FLIGHT_INIT: {\r\n return Object.assign({}, state, {\r\n isValidateFlightLoading: true,\r\n validateFlightMessages: [],\r\n isProposalOrRestriction: false\r\n });\r\n }\r\n case types.VALIDATE_FLIGHT_SUCCESS: {\r\n return Object.assign({}, state, {\r\n isValidateFlightLoading: false,\r\n validateFlightMessages: [],\r\n isProposalOrRestriction: false\r\n });\r\n }\r\n case types.VALIDATE_FLIGHT_FAIL: {\r\n return Object.assign({}, state, {\r\n isValidateFlightLoading: false,\r\n validateFlightMessages: action.data,\r\n isProposalOrRestriction: !!Array.isArray(action.data)\r\n });\r\n }\r\n case types.RESET_FLIGHT_ERROR_MESSAGES: {\r\n return Object.assign({}, state, {\r\n validateFlightMessages: [],\r\n isProposalOrRestriction: false\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from \"../actionTypes\";\r\n\r\nconst initialState = {\r\n legArray: [],\r\n isContractSelected: false,\r\n allowAircraftSelect: true,\r\n allowAircraftErrMessage: null,\r\n accountId: null,\r\n isRequestFlightLoading: false,\r\n isCreateCompanyLoading: false,\r\n error: \"\",\r\n orderIdentifiers: [],\r\n quoteContent: {},\r\n requestFlightSuccess: false,\r\n requestQuoteSuccess: false,\r\n buyOfferSuccess: false,\r\n orderId: \"\",\r\n orderStatus: \"\",\r\n confirmationMessage: \"\"\r\n};\r\n\r\nexport default function PAFReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.REQUEST_FLIGHT_INIT: {\r\n return Object.assign({}, state, {\r\n isRequestFlightLoading: true,\r\n error: \"\",\r\n orderIdentifiers: [],\r\n orderId: \"\",\r\n orderStatus: \"\",\r\n confirmationMessage: \"\"\r\n });\r\n }\r\n case types.REQUEST_FLIGHT_SUCCESS: {\r\n return Object.assign({}, state, {\r\n requestFlightSuccess: true,\r\n isRequestFlightLoading: false,\r\n orderIdentifiers: action.data.flightDetails,\r\n legArray: action.data.legArray,\r\n error: \"\",\r\n confirmationMessage: \"\",\r\n orderStatus: action.data.status\r\n });\r\n }\r\n case types.REQUEST_FLIGHT_FAIL: {\r\n return Object.assign({}, state, {\r\n isRequestFlightLoading: false,\r\n error: action.data,\r\n legArray: [],\r\n orderIdentifiers: []\r\n });\r\n }\r\n case types.REQUEST_QUOTE_INIT: {\r\n return Object.assign({}, state, {\r\n isRequestFlightLoading: true,\r\n legArray: [],\r\n error: \"\",\r\n orderId: \"\",\r\n orderStatus: \"\",\r\n confirmationMessage: \"\",\r\n });\r\n }\r\n case types.REQUEST_QUOTE_SUCCESS: {\r\n return Object.assign({}, state, {\r\n isRequestFlightLoading: false,\r\n legArray: action.data.legs,\r\n requestQuoteSuccess: true,\r\n error: \"\",\r\n orderStatus: action.data.status,\r\n confirmationMessage: \"\",\r\n });\r\n }\r\n case types.REQUEST_QUOTE_FAIL: {\r\n return Object.assign({}, state, {\r\n isRequestFlightLoading: false,\r\n error: action.data,\r\n legArray: [],\r\n orderStatus: \"\"\r\n });\r\n }\r\n case types.CREATE_COMPANY_INIT: {\r\n return Object.assign({}, state, {\r\n isCreateCompanyLoading: true,\r\n error: \"\"\r\n });\r\n }\r\n case types.CREATE_COMPANY_SUCCESS: {\r\n return Object.assign({}, state, {\r\n isCreateCompanyLoading: false,\r\n error: \"\"\r\n });\r\n }\r\n case types.CREATE_COMPANY_FAIL: {\r\n return Object.assign({}, state, {\r\n isCreateCompanyLoading: false,\r\n error: action.data\r\n });\r\n }\r\n case types.AVAIL_OFFER_INIT: {\r\n return Object.assign({}, state, {\r\n isRequestFlightLoading: true,\r\n quoteContent: {},\r\n legArray: [],\r\n error: '',\r\n confirmationMessage:''\r\n });\r\n }\r\n case types.AVAIL_OFFER_SUCCESS: {\r\n return Object.assign({}, state, {\r\n quoteContent: action.data.quoteContent,\r\n legArray: action.data.legs,\r\n isRequestFlightLoading: false,\r\n error: '',\r\n confirmationMessage:''\r\n });\r\n }\r\n case types.AVAIL_OFFER_FAIL: {\r\n return Object.assign({}, state, {\r\n error: action.data,\r\n isRequestFlightLoading: false\r\n });\r\n }\r\n case types.AVAIL_OFFER_QUOTING_NOT_AVAILABLE:{\r\n return Object.assign({},state,{\r\n confirmationMessage: action.data,\r\n isRequestFlightLoading: false\r\n })\r\n }\r\n case types.BUY_OFFER_INIT: {\r\n return Object.assign({}, state, {\r\n isRequestFlightLoading: true,\r\n buyOfferSuccess: false,\r\n orderId: \"\",\r\n orderIdentifiers: \"\",\r\n orderStatus: \"\",\r\n error: '',\r\n });\r\n }\r\n case types.BUY_OFFER_SUCCESS: {\r\n return Object.assign({}, state, {\r\n orderIdentifiers: action.data.identifiers,\r\n orderId: action.data.orderId,\r\n isRequestFlightLoading: false,\r\n buyOfferSuccess: true,\r\n orderStatus: action.data.status,\r\n legArray: action.data.legArray,\r\n quoteContent: {},\r\n });\r\n }\r\n case types.BUY_OFFER_FAIL: {\r\n return Object.assign({}, state, {\r\n error: action.data,\r\n isRequestFlightLoading: false,\r\n requestFlightSuccess: false\r\n });\r\n }\r\n case types.UPDATE_QUOTE_CONSTANT: {\r\n return Object.assign({}, state, {\r\n quoteContent: {}\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nexport const initialState = {\r\n token: null,\r\n isTokenLoading: false,\r\n isTokenError: false,\r\n tokenError: '',\r\n isRegistrationTokenLoading: false,\r\n adminToken: null,\r\n isadminTokenLoading: false,\r\n isadminTokenError: false,\r\n adminTokenError: '',\r\n isTokenValid: false,\r\n isPasswordChange: false,\r\n isTokenAuthLoading: false,\r\n isTokenAuthError: false,\r\n tokenAuthError: '',\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.FETCH_TOKEN_INIT: {\r\n return Object.assign({}, state, {\r\n token: null,\r\n isTokenLoading: true,\r\n isTokenError: false,\r\n tokenError: '',\r\n });\r\n }\r\n case types.FETCH_TOKEN_SUCCESS: {\r\n return Object.assign({}, state, {\r\n token: action.data,\r\n isTokenLoading: false,\r\n isTokenError: false,\r\n tokenError: '',\r\n });\r\n }\r\n case types.FETCH_TOKEN_FAIL: {\r\n return Object.assign({}, state, {\r\n token: null,\r\n isTokenLoading: false,\r\n isTokenError: true,\r\n tokenError: action.data,\r\n });\r\n }\r\n case types.FETCH_REGISTRATION_TOKEN_INIT: {\r\n return Object.assign({}, state, {\r\n token: null,\r\n isRegistrationTokenLoading: true,\r\n isTokenError: false,\r\n tokenError: '',\r\n });\r\n }\r\n case types.FETCH_REGISTRATION_TOKEN_SUCCESS: {\r\n return Object.assign({}, state, {\r\n token: action.data,\r\n isRegistrationTokenLoading: false,\r\n isTokenError: false,\r\n tokenError: '',\r\n });\r\n }\r\n case types.FETCH_REGISTRATION_TOKEN_FAIL: {\r\n return Object.assign({}, state, {\r\n token: null,\r\n isRegistrationTokenLoading: false,\r\n isTokenError: true,\r\n tokenError: action.data,\r\n });\r\n }\r\n case types.ADMIN_FETCH_TOKEN_INIT: {\r\n return Object.assign({}, state, {\r\n adminToken: null,\r\n isadminTokenLoading: true,\r\n isadminTokenError: false,\r\n adminTokenError: '',\r\n });\r\n }\r\n case types.ADMIN_FETCH_TOKEN_SUCCESS: {\r\n return Object.assign({}, state, {\r\n adminToken: action.data,\r\n isadminTokenLoading: false,\r\n isadminTokenError: false,\r\n adminTokenError: '',\r\n });\r\n }\r\n case types.ADMIN_FETCH_TOKEN_FAIL: {\r\n return Object.assign({}, state, {\r\n adminToken: null,\r\n isadminTokenLoading: false,\r\n isadminTokenError: true,\r\n adminTokenError: action.data,\r\n });\r\n }\r\n case types.AUTHENTICATE_TOKEN_INIT: {\r\n return Object.assign({}, state, {\r\n isTokenValid: false,\r\n isPasswordChange: false,\r\n isTokenAuthLoading: true,\r\n isTokenAuthError: false,\r\n tokenAuthError: '',\r\n });\r\n }\r\n case types.AUTHENTICATE_TOKEN_SUCCESS: {\r\n return Object.assign({}, state, {\r\n isTokenLoading: false,\r\n isadminTokenLoading: false,\r\n isTokenValid: action.data.isTokenValid,\r\n isPasswordChange: action.data.mustChangePassword,\r\n isTokenAuthLoading: false,\r\n isTokenAuthError: false,\r\n tokenAuthError: '',\r\n });\r\n }\r\n case types.AUTHENTICATE_TOKEN_FAIL: {\r\n return Object.assign({}, state, {\r\n isTokenValid: false,\r\n isPasswordChange: false,\r\n isTokenAuthLoading: false,\r\n isTokenAuthError: true,\r\n tokenAuthError: action.data,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nexport const initialState = {\r\n user: {},\r\n isUserRegistered: false,\r\n isLoading: false,\r\n isError: false,\r\n error: '',\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.REGISTRATION_INIT: {\r\n return Object.assign({}, state, {\r\n user: {},\r\n isUserRegistered: false,\r\n isLoading: true,\r\n isError: false,\r\n error: '',\r\n });\r\n }\r\n case types.REGISTRATION_SUCCESS: {\r\n return Object.assign({}, state, {\r\n user: action.data.user,\r\n isUserRegistered: action.data.isUserRegistered,\r\n isLoading: false,\r\n isError: false,\r\n error: '',\r\n });\r\n }\r\n case types.REGISTRATION_FAIL: {\r\n return Object.assign({}, state, {\r\n user: {},\r\n isUserRegistered: false,\r\n isLoading: false,\r\n isError: true,\r\n error: action.data,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nconst initialState = {\r\n message: '',\r\n isMessageSent: false,\r\n isLoading: false,\r\n isError: false,\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.FETCH_REGISTER_CODE_INIT: {\r\n return Object.assign({}, state, {\r\n message: '',\r\n isMessageSent: false,\r\n isLoading: true,\r\n isError: false,\r\n });\r\n }\r\n case types.FETCH_REGISTER_CODE_SUCCESS: {\r\n return Object.assign({}, state, {\r\n message: action.data.message,\r\n isMessageSent: action.data.success,\r\n isLoading: false,\r\n isError: false,\r\n });\r\n }\r\n case types.FETCH_REGISTER_CODE_FAIL: {\r\n return Object.assign({}, state, {\r\n message: action.data,\r\n isMessageSent: false,\r\n isLoading: false,\r\n isError: true,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nconst initialState = {\r\n memberPlans: {},\r\n isLoading: false,\r\n isError: false,\r\n error: '',\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.FETCH_MEMBERSHIP_INIT: {\r\n return Object.assign({}, state, {\r\n memberPlans: {},\r\n isLoading: true,\r\n isError: false,\r\n error: '',\r\n });\r\n }\r\n case types.FETCH_MEMBERSHIP_SUCCESS: {\r\n return Object.assign({}, state, {\r\n memberPlans: action.data,\r\n isLoading: false,\r\n isError: false,\r\n error: '',\r\n });\r\n }\r\n case types.FETCH_MEMBERSHIP_FAIL: {\r\n return Object.assign({}, state, {\r\n memberPlans: {},\r\n isLoading: false,\r\n isError: true,\r\n error: action.data,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nconst initialState = {\r\n creditCards: {},\r\n isLoading: false,\r\n isDeleted: false,\r\n isAdded: false,\r\n isError: false,\r\n error: '',\r\n message: '',\r\n};\r\n\r\nexport const appendCreditCard = (creditCards = {}, newCard) => {\r\n let allCards = Object.assign({}, creditCards);\r\n if (Object.keys(allCards).length === 0) {\r\n allCards = {\r\n content: {},\r\n ids: [],\r\n defaultId: newCard && newCard.alias,\r\n };\r\n } else if (allCards.ids && allCards.ids.length === 0) {\r\n allCards.defaultId = newCard && newCard.alias;\r\n }\r\n if (newCard.isDefault && allCards.ids.length > 0) {\r\n allCards.defaultId = newCard.alias;\r\n allCards.ids.map((cardId) => {\r\n allCards.content[cardId].isDefault = false;\r\n });\r\n }\r\n allCards.content[newCard.alias] = newCard;\r\n allCards.ids.push(newCard.alias);\r\n return allCards;\r\n};\r\n\r\nconst updateCreditCard = (creditCards = {}, updatedCard) => {\r\n const allCards = Object.assign({}, creditCards);\r\n const updatedCardAlias = updatedCard.alias;\r\n Object.assign(allCards.content[updatedCardAlias], updatedCard);\r\n if (updatedCard.isDefault) {\r\n allCards.defaultId = updatedCardAlias;\r\n }\r\n return allCards;\r\n};\r\n\r\nconst removeCreditCard = (creditCards = {}, deletedCardAlias) => {\r\n const allCards = Object.assign({}, creditCards);\r\n delete allCards.content[deletedCardAlias];\r\n const index = allCards.ids.indexOf(deletedCardAlias);\r\n if (index > -1) {\r\n allCards.ids.splice(index, 1);\r\n }\r\n return allCards;\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.ADD_CREDIT_CARD_INIT: {\r\n return Object.assign({}, state, {\r\n creditCards: state.creditCards,\r\n isLoading: true,\r\n isDeleted: false,\r\n isAdded: false,\r\n isError: false,\r\n error: '',\r\n message: '',\r\n });\r\n }\r\n case types.ADD_CREDIT_CARD_SUCCESS: {\r\n return Object.assign({}, state, {\r\n creditCards: appendCreditCard(state.creditCards, action.data.response),\r\n isLoading: false,\r\n isDeleted: false,\r\n isAdded: true,\r\n isError: false,\r\n error: '',\r\n message: action.data.message,\r\n });\r\n }\r\n case types.UPDATE_CREDIT_CARD_SUCCESS: {\r\n return Object.assign({}, state, {\r\n creditCards: updateCreditCard(state.creditCards, action.data.response),\r\n isLoading: false,\r\n isDeleted: false,\r\n isAdded: true,\r\n isError: false,\r\n error: '',\r\n message: action.data.message,\r\n });\r\n }\r\n case types.ADD_CREDIT_CARD_FAIL: {\r\n return Object.assign({}, state, {\r\n creditCards: state.creditCards,\r\n isLoading: false,\r\n isDeleted: false,\r\n isAdded: false,\r\n isError: true,\r\n error: action.data,\r\n });\r\n }\r\n case types.GET_CREDIT_CARD_LIST_INIT: {\r\n return Object.assign({}, state, {\r\n isLoading: true,\r\n isError: false,\r\n isDeleted: false,\r\n isAdded: false,\r\n error: '',\r\n });\r\n }\r\n case types.GET_CREDIT_CARD_LIST_SUCCESS: {\r\n return Object.assign({}, state, {\r\n creditCards: action.data,\r\n isLoading: false,\r\n });\r\n }\r\n case types.GET_CREDIT_CARD_LIST_FAIL: {\r\n return Object.assign({}, state, {\r\n isError: true,\r\n error: action.data,\r\n });\r\n }\r\n case types.DELETE_CREDIT_CARD_INIT: {\r\n return Object.assign({}, state, {\r\n isLoading: true,\r\n isDeleted: false,\r\n isAdded: false,\r\n isError: false,\r\n error: '',\r\n message: '',\r\n });\r\n }\r\n case types.DELETE_CREDIT_CARD_SUCCESS: {\r\n return Object.assign({}, state, {\r\n creditCards: removeCreditCard(state.creditCards, action.data.response),\r\n isLoading: false,\r\n isDeleted: true,\r\n isError: false,\r\n error: '',\r\n message: action.data.message,\r\n });\r\n }\r\n case types.DELETE_CREDIT_CARD_FAILURE: {\r\n return Object.assign({}, state, {\r\n creditCards: state.creditCards,\r\n isLoading: false,\r\n isDeleted: false,\r\n isError: false,\r\n error: '',\r\n message: '',\r\n });\r\n }\r\n case types.CLEAR_CREDIT_CARD_STATE: {\r\n return Object.assign({}, state, initialState);\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nconst initialState = {\r\n paymentDetails: {},\r\n accountId: null,\r\n isSuccess: false,\r\n isLoading: false,\r\n isError: false,\r\n isDirectSignup: true,\r\n error: '',\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.DIRECT_SIGNUP_INIT: {\r\n return Object.assign({}, state, {\r\n paymentDetails: {},\r\n accountId: null,\r\n isLoading: true,\r\n isSuccess: false,\r\n isError: false,\r\n isDirectSignup: true,\r\n error: '',\r\n });\r\n }\r\n case types.DIRECT_SIGNUP_SUCCESS: {\r\n return Object.assign({}, state, {\r\n paymentDetails: action.data.paymentMethodDetails,\r\n accountId: action.data.accountId,\r\n isLoading: false,\r\n isSuccess: true,\r\n isError: false,\r\n isDirectSignup: true,\r\n error: '',\r\n });\r\n }\r\n case types.DIRECT_SIGNUP_FAIL: {\r\n return Object.assign({}, state, {\r\n paymentDetails: {},\r\n accountId: null,\r\n isLoading: false,\r\n isSuccess: false,\r\n isError: true,\r\n isDirectSignup: true,\r\n error: action.data,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nconst initialState = {\r\n isLoading: false,\r\n isSuccess: false\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.POST_CONTACTUS_INIT: {\r\n return Object.assign({}, state, {\r\n isSuccess: false,\r\n isLoading: true\r\n });\r\n }\r\n case types.POST_CONTACTUS_SUCCESS: {\r\n return Object.assign({}, state, {\r\n isSuccess: action.data,\r\n isLoading: false\r\n });\r\n }\r\n case types.POST_CONTACTUS_FAIL: {\r\n return Object.assign({}, state, {\r\n isSuccess: false,\r\n isLoading: false\r\n });\r\n }\r\n case types.POST_CONTACTUS_REFRESH: {\r\n return Object.assign({}, state, {\r\n isSuccess: false,\r\n isLoading: false\r\n });\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","export const USER_ACCESS_TYPES = {\r\n GUEST: 0,\r\n FSP: 1,\r\n ON_DEMAND: 2,\r\n MEMBER: 9,\r\n};\r\n","export const getPreferredAccount = (accounts = []) => (\r\n accounts.find(account => (\r\n account.isPreferred === true\r\n ))\r\n);\r\n\r\nexport default getPreferredAccount;\r\n","export const MEMBERSHIP_STATUS = {\r\n NEW: 1, // The user has signup for the membership but didn't yet paid for it.\r\n ACTIVE: 2, // The user membership is paid for the membership and is in active state.\r\n EXPIRED: 3,\r\n SUSPENDED: 4,\r\n EXITED: 5,\r\n NOT_FULFILLED: 6,\r\n ADHOC: -1,\r\n};\r\n","export const TIMEOUT_CODE = {\r\n status: 'ECONNABORTED',\r\n code: 408,\r\n time: 120000, // two minutes\r\n};\r\n\r\nexport const SERVER_UNRESOLVED = {\r\n code: 1002,\r\n};\r\n\r\nexport const EMAIL_EXISTS = {\r\n code: 1009,\r\n};\r\n\r\nexport const INVALID_ACCOUNT = {\r\n code: 5,\r\n};\r\n\r\nexport const ACCOUNT_NOT_FOUND_CODE = {\r\n code: 13,\r\n};\r\n\r\nexport const UNAUTHORIZED = {\r\n code: 401,\r\n};\r\n\r\nexport const BAD_REQUEST = {\r\n code: 400,\r\n};\r\n\r\nexport const INTERNAL_SERVER_ERROR = {\r\n code: 500,\r\n};\r\n\r\nexport const LEG_IN_PAST_CODE = {\r\n code: 11,\r\n};\r\n\r\nexport const PERMISSION_DENIED_CODE = {\r\n code: 37,\r\n};\r\n\r\nexport const UPDATE_FIRST_CODE = {\r\n code: 38,\r\n};\r\n\r\nexport const MEMBERSHIP_EXPIRED_CODE = {\r\n code: 32,\r\n};\r\n\r\nexport const PHONE_NUMBER_EXISTS = {\r\n code: 3,\r\n};\r\n\r\nexport const USER_EXISTS = {\r\n code: 2,\r\n};\r\n\r\nexport const GENERIC_EXCEPTION_CODE = {\r\n code: 39,\r\n};\r\n\r\nexport const INVALID_FEEDBACK_CODE = {\r\n code: 40,\r\n};\r\n\r\nexport const USER_UNAUTHENTICATED_CODE = {\r\n code: 17,\r\n};\r\n\r\nexport const LOGIN_FAILED_CODE = {\r\n code: 7,\r\n};\r\n\r\nexport const PAYMENT_NOT_DEFINED_CODE = {\r\n code: -1,\r\n};\r\n\r\nexport const INVALID_DETAILS_CODE = {\r\n code: 34,\r\n};\r\n\r\nexport const INVALID_CARD_TYPE_CODE = {\r\n code: 1,\r\n};\r\nexport const FEEDBACK_EXIST = {\r\n code: 41,\r\n};\r\nexport const MULTI_LEG_OFFER_QOUTING_NA = {\r\n code: 56,\r\n}\r\nexport const ALREADY_LINKED_WITH_COMPANY = {\r\n code: 54,\r\n};\r\n\r\nexport const INVOICES_NOT_FOUND = {\r\n code: 60,\r\n}\r\nexport const RECORD_NOT_FOUND = {\r\n code: 61,\r\n}\r\nexport const PHONE_NUMBER_NOT_FOUND = {\r\n code: 62,\r\n}\r\nexport const USER_NOT_FOUND = {\r\n code: 63,\r\n}\r\nexport const DEVICE_ID_NULL = {\r\n code: 64,\r\n}\r\nexport const PHONE_NUMBER_NULL = {\r\n code: 65,\r\n}\r\nexport const USERNAME_NULL = {\r\n code: 66,\r\n}\r\nexport const RECORD_NOT_UPDATE = {\r\n code: 67,\r\n}\r\nexport const ACCOUNT_BLOCKED = {\r\n code: 68,\r\n}\r\nexport const INVALID_SIGNATURE = {\r\n code: 69,\r\n}\r\nexport const TIME_MISMATCH = {\r\n code: 70,\r\n}\r\nexport const MISSING_PARAMETER = {\r\n code: 71,\r\n}\r\nexport const USER_ALREADY_REGISTERED = {\r\n code: 72,\r\n}\r\nexport const INVALID_SOURCE = {\r\n code: 73,\r\n}\r\nexport const INVALID_TIME = {\r\n code: 74, \r\n}\r\nexport const CANNOT_ACCESS_STATEMENTS_CODE = {\r\n code: [57, 59],\r\n};\r\n","\r\nimport { USER_ACCESS_TYPES } from '../constants/UserAccessTypes';\r\nimport { MEMBERSHIP_STATUS } from '../constants/MembershipConstants';\r\nimport { existInLocal, getFromLocal } from '../utils/cache';\r\nimport store from '../store/store';\r\n\r\nexport const getUserAccessType = user => {\r\n return user && user.accessType;\r\n};\r\n\r\nexport const getToken = user => {\r\n if (user) {\r\n return user.userToken;\r\n }\r\n return ((store.getState().user || {}).user || {}).userToken || '';\r\n};\r\n\r\nexport const getUser = () => (\r\n (store.getState().user || {}).user || {}\r\n)\r\n\r\nexport const getMembershipStatus = user => {\r\n return user && user.membershipStatus;\r\n};\r\n\r\n// only used for topup vj direct user\r\nexport const getAccountId = user => {\r\n return user && getVJAccountId(user);\r\n};\r\n\r\nexport const getVJAccountId = user => {\r\n if (user && user.accounts) {\r\n const vjAccount = user.accounts.filter(\r\n account => account.typeId === USER_ACCESS_TYPES.MEMBER\r\n && account.membershipStatus === MEMBERSHIP_STATUS.ACTIVE,\r\n );\r\n\r\n return user && vjAccount && vjAccount[0] && vjAccount[0].id;\r\n }\r\n\r\n return user.accountId;\r\n};\r\n\r\nexport const getAdhocAccountId = user => {\r\n if (user && user.accounts) {\r\n const adhocAccount = user.accounts.filter(\r\n account => account.typeId === USER_ACCESS_TYPES.MEMBER\r\n && account.membershipStatus === MEMBERSHIP_STATUS.ADHOC,\r\n );\r\n\r\n if (adhocAccount && adhocAccount.length) {\r\n return adhocAccount[0].id;\r\n }\r\n }\r\n\r\n return user.accountId;\r\n};\r\n\r\nexport const isLoggedIn = user => {\r\n return !!getToken(user);\r\n};\r\n\r\nexport const isVJ2 = user => {\r\n return isLoggedIn(user) && isMembershipActive(user);\r\n};\r\n\r\n/**\r\n An FSP Direct user is:\r\n 1. an FSP user i.e. has accessType = 1\r\n 2. also has a VJ Direct account\r\n* */\r\nexport const isFspDirect = user => {\r\n return isFSP(user) && user.hasVjDirectAccount;\r\n};\r\n/**\r\n * A simulate user could be:\r\n * 1 - visitor, not logged\r\n * 2 - guest, logged and access type equals to 0\r\n * 3 - a member user (access type equals to 9) but with no actived membership status\r\n */\r\nexport const isSimulateUser = user => {\r\n return (\r\n (!isLoggedIn(user)\r\n || getUserAccessType(user) === USER_ACCESS_TYPES.GUEST\r\n || (isMembershipUser(user)\r\n && getMembershipStatus(user) !== MEMBERSHIP_STATUS.ACTIVE))\r\n && !isAdhoc(user)\r\n );\r\n};\r\n\r\nexport const isMembershipUser = user => {\r\n return getUserAccessType(user) === USER_ACCESS_TYPES.MEMBER;\r\n};\r\n\r\nexport const isMembershipActive = user => {\r\n return (\r\n isMembershipUser(user)\r\n && getMembershipStatus(user) === MEMBERSHIP_STATUS.ACTIVE\r\n );\r\n};\r\n\r\nexport const isMembershipWithoutConfirmation = user => {\r\n return (\r\n isLoggedIn(user)\r\n && !isGuest(user)\r\n && !isMembershipActive(user)\r\n && !isAdhoc(user)\r\n && !isFspDirect(user)\r\n && !isFSP(user)\r\n );\r\n};\r\n\r\nexport const isMembershipPaymentInProcess = user => {\r\n return (\r\n isLoggedIn(user)\r\n && isGuest(user)\r\n && getMembershipStatus(user) === MEMBERSHIP_STATUS.NEW\r\n );\r\n};\r\n\r\nexport const isFSP = user => {\r\n return isLoggedIn(user) && getUserAccessType(user) === USER_ACCESS_TYPES.FSP;\r\n};\r\n\r\nexport const isAdhoc = user => {\r\n return (\r\n isLoggedIn(user)\r\n && isMembershipUser(user)\r\n && getMembershipStatus(user) === MEMBERSHIP_STATUS.ADHOC\r\n );\r\n};\r\n\r\nexport const isBroker = user => {\r\n return (\r\n isLoggedIn(user)\r\n && getUserAccessType(user) === USER_ACCESS_TYPES.ON_DEMAND\r\n );\r\n};\r\n\r\nexport const isGuest = user => {\r\n return (\r\n isLoggedIn(user)\r\n && getUserAccessType(user) === USER_ACCESS_TYPES.GUEST\r\n );\r\n};\r\n\r\n// TODO provide constants for user verification status code\r\nexport const isVerified = user => {\r\n if (isLoggedIn() && user) {\r\n return (\r\n user.verificationStatusCode !== 2 && user.verificationStatusCode !== 4\r\n );\r\n }\r\n return false;\r\n};\r\n\r\nexport const mustChangePassword = user => {\r\n return isLoggedIn(user) && user && user.isChangedPassword;\r\n};\r\n\r\nexport const getUserName = user => {\r\n return user && user.email;\r\n};\r\n\r\nexport const getMembershipTypeId = user => {\r\n return user && user.membershipTypeId;\r\n};\r\n\r\nexport const getUserId = user => {\r\n return user && user.id;\r\n};\r\n\r\nexport const getPersonId = user => {\r\n return user && user.personId;\r\n};\r\n\r\nexport const getUserHasAssociateAccount = user => {\r\n return user.accessType !== USER_ACCESS_TYPES.GUEST;\r\n};\r\n\r\nexport const getUserInfo = (value) => {\r\n const userInfo = {\r\n firstName: value.firstName,\r\n lastName: value.lastName,\r\n email: value.username,\r\n personPhoneNumbers: value.personPhoneNumbers,\r\n accounts: value.accounts,\r\n };\r\n return userInfo;\r\n};\r\n\r\n/*FIXME:: Please! This shouldn't be done in this way! have to give a demo*/\r\nexport const removeOffersForFSP = () => {\r\n if (getFromLocal('user', true, true)) {\r\n const user = getFromLocal('user', true, true);\r\n if (isFSP(user.user) && !isFspDirect(user.user)) {\r\n if (window.jQuery) {\r\n window.jQuery('a[href$=\"/offers/\"]').remove();\r\n window.jQuery('a[href$=\"/direct-registration/\"]').remove();\r\n window.jQuery(\"#spa-offers-with-map-container\").parent().parent().prev().remove();\r\n window.jQuery(\"#spa-offers-with-map-container\").parent().parent().remove();\r\n }\r\n }\r\n /* For VJ Direct and FSP Direct Join Direct button will be hidden*/\r\n if (getUserAccessType(user.user) === USER_ACCESS_TYPES.MEMBER && !isAdhoc(user.user) || isFspDirect(user.user)) {\r\n if (window.jQuery) {\r\n window.jQuery('a[href$=\"/direct-registration/\"]').remove();\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const isFSPAccountExpire = (user, localStorageKey) => {\r\n\r\n const isFSPAccountExpireTrue =\r\n user && user.accounts && !(user.customerId === undefined || user.customerId.length == 0)\r\n && !isAdhoc(user)\r\n && !existInLocal(localStorageKey)\r\n && (user.accounts.length === 0 || (user.accounts.length === 1 && !user.accounts[0].isPreferred));\r\n if (isFSPAccountExpireTrue) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const isVJDirectAccountExpire = (user, localStorageKey) => {\r\n if (user\r\n && (user.accounts && user.accounts.length === 1)\r\n && !isFspDirect(user)\r\n && !isFSP(user)\r\n && !existInLocal(localStorageKey)\r\n && (user.accounts[0].membershipStatus === MEMBERSHIP_STATUS.SUSPENDED ||\r\n user.accounts[0].membershipStatus === MEMBERSHIP_STATUS.EXPIRED)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n\r\n}\r\n\r\nexport const canAccessStatement = (user = {}) =>\r\n user.canAccessStatement;\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from 'react';\r\nimport {\r\n PAF_PAGE_URL, UPCOMING_ITINERARIES_PAGE_URL,\r\n PAST_ITINERARIES_PAGE_URL,\r\n CANCELLED_ITINERARIES_PAGE_URL,\r\n PAS_PAGE_URL,\r\n DIRECT_ACCOUNT_BALANCE_PAGE_URL,\r\n TOPUP_ACCOUNT_PAGE_URL,\r\n TOPUP_HISTORY_PAGE_URL,\r\n USER_PROFILE_PAGE,\r\n} from '../configs/constants';\r\nimport { isFSP, isFspDirect, isAdhoc, isGuest, isVJ2, canAccessStatement } from '../utils/userUtils';\r\n\r\nexport const redirect = (URL) => {\r\n window.open(URL, \"_self\");\r\n}\r\n\r\nclass Drawer extends React.Component {\r\n render() {\r\n let props = this.props;\r\n return (\r\n \r\n
  • \r\n \r\n My Account\r\n \r\n \r\n \r\n
  • \r\n
  • \r\n {\r\n
    \r\n \r\n
    \r\n }\r\n
  • \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Drawer;\r\n","import React from 'react';\r\nimport { CONTACT_US_PAGE_URL } from '../configs/constants';\r\nimport { redirect } from '../components/Drawer';\r\n\r\n// eslint-disable max-len\r\nexport const NO_OFFERS_FOUND = 'No Offers Found';\r\nexport const NO_ONE_WAY_OFFERS_FOUND = 'No One Way Offers Found';\r\nexport const NO_EMPTY_LEG_OFFERS_FOUND = 'No Empty Legs Offers Found';\r\nexport const NO_SEARCH_OFFERS_FOUND = 'Sorry, we couldn\\'t find any availability to match your search. Try different criteria or speak to one of our experts on +44 (0) 203 617 3106.';\r\nexport const NO_OFFER_SELECTED = 'Please select an offer from the list to view it on the map';\r\n\r\nexport const SOMETHING_UNEXPECTED = Something unexpected happened. Please try again or redirect(CONTACT_US_PAGE_URL)}>contact us.;\r\nexport const SOMETHING_UNEXPECTED_CONTACT = 'Something unexpected happened. Please try again or contact our team directly.';\r\nexport const SESSION_EXPIRED = 'Your session has expired, please login again.';\r\nexport const MEMBERSHIP_EXPIRED = 'No VJ direct account exist against given FSP customer.';\r\nexport const NETWORK_OFFLINE = 'Please reconnect to the internet and retry.';\r\nexport const ACCOUNT_NOT_FOUND = 'The account was not found.';\r\nexport const LEG_IN_PAST = 'One or more Flight Legs is in the past.';\r\nexport const PERMISSION_DENIED = 'The current requester don\\'t have permission to request flights.';\r\nexport const UPDATE_FIRST = 'Please take update before submitting the change request. Some other user might have changed this itinerary as well.';\r\nexport const GENERIC_EXCEPTION = 'Generic Customer Web Application Exception.';\r\nexport const INVALID_FEEDBACK = 'The feedback identifier is expired.';\r\nexport const FEEDBACK_EXIT = 'Feedback already exist.';\r\nexport const CANNOT_ACCESS_STATEMENTS = 'You do not have access to the Statement PDF.';\r\nexport const NO_RELATED_INVOICES = 'The request has no related invoices.';\r\n\r\nexport const GROUND_TRANSPORT_NOT_FOUND = `No ground transportation arrangements have been requested at this time. Should you require a\r\n driver to greet you on arrival, or wish to bring your own vehicle into the terminal, we will\r\n happily organise this for you where available.`;\r\n\r\nexport const OTHER_SERVICES_NOT_FOUND = 'No additional services have been requested at this time.';\r\nexport const NO_SERVICES = 'No services are currently available in this location';\r\nexport const CATERING_NOT_FOUND = 'We would be delighted to accommodate any menu preferences you may have. In case no specific requirements are requested, menu suitable to the time of day will be provided.';\r\nexport const CATERING_NOT_AVAILABLE = 'Catering information is not available at this time.';\r\n\r\nexport const FBO_NOT_FOUND = 'The FBO address cannot be found at this time. Would you like directions to the airport instead?';\r\nexport const FBO_NOT_AVAILABLE = 'No FBO information available at this time.';\r\n\r\nexport const CREW_NOT_FOUND = 'Crew information will be made available 24 hours before the flight.';\r\nexport const CREW_NOT_AVAILABLE = 'Crew information is not currently available.';\r\nexport const CREW_WILL_BE_AVAILABLE = 'Crew information will be made available before the flight';\r\n\r\nexport const PASSENGER_NOT_FOUND = 'No passenger found.';\r\nexport const PASSENGER_EXCEED = '{Aircraft} can carry up to {newLimit} passengers. Please reduce the number passengers or change aircraft type.';\r\nexport const PASSENGER_EXCEED_IN_OFFERS = '{Aircraft} can carry up to {newLimit} passengers. Please reduce the number of passengers.';\r\nexport const PASSENGER_FUEL_STOP = 'Please be advised that this trip may require a fuel stop';\r\nexport const PASSENGER_EXCEED_AIRCRAFT_CHANGE = 'Passenger count can not be less than the number of added passengers. Please consider removing passengers from the list.'\r\nexport const PASSENGER_CANT_BE_REDUCED = 'Passenger count cannot be less than the number of added passengers. Please consider removing passengers from the list below.';\r\nexport const MOVEMENT_MESSAGE_NOT_FOUND = 'Latest flight information will be available on departure.';\r\n\r\nexport const TIMEOUT = 'Server not responding.';\r\nexport const UNAUTHORIZED_FLIGHT_REQUEST = 'You are not authorized to request a flight. Please contact us for further assistance';\r\n\r\nexport const ADD_LEG_OFFER = 'Adding an extra leg will require sending the request to VistaJet\\'s sales team for quoting. Do you wish to continue?'; // eslint-disable-line max-len\r\nexport const MAP_ERROR = 'Map service is currently unavailable in your country';\r\nexport const noAirportAvailableMessage = 'The airport searched for cannot be found, please modify your search and try again'; // eslint-disable-line max-len\r\nexport const enableLocationMessage = 'No airports available, Please enable location services to view nearby airports'; // eslint-disable-line max-len\r\nexport const RESEND_EMAIL_CONFIRM = 'Thank you, the email has been sent.';\r\n\r\nexport const USER_ALREADY_EXISTS = 'User already exists';\r\nexport const PHONE_NUMBER_ALREADY_EXISTS = 'Phone Number already exists';\r\nexport const USER_NOT_AUTHENTICATED = 'User not authenticated';\r\nexport const LOGIN_FAILED = 'We could not log you in. Please check your username and password and try again';\r\nexport const PAYMENT_NOT_DEFINED = 'Payment Method not defined';\r\n\r\nexport const DEPARTURE_AIRPORT_EXCEPTION = \"Please select departure airport\";\r\nexport const ARRIVAL_AIRPORT_EXCEPTION = \"Please select arrival airport\";\r\nexport const DEPARTURE_ARRIVAL_AIRPORT_EXCEPTION = \"Please select departure and arrival airport\";\r\nexport const SAME_ARRIVAL_DEPARTURE_EXCEPTION = `The departure and arrival airport cannot be the same. Please try again`;\r\nexport const MIN_HOUR_EXPECPTION = `Please allow a minimum of four hours between booking time and flight departure. Alternatively, please call us for more information on this flight request`;\r\nexport const OUTSIDE_TIMEZONE_EXCEPTION = `Your flight date and time falls outside allowable timezone of airport. Please select a different date`;\r\nexport const FILL_FIELDS_EXCEPTION = \"Please fill out all the fields in red to continue\";\r\nexport const TIME_CLASH_EXCEPTION = \"The selected date or time clashes with another of your flight requests\";\r\n\r\nexport const AIRCRAFT_NOT_IN_CONTRACT = \"Selecting a non-contract aircraft will have interchange rate\";\r\nexport const FILL_AIRCRAFT_EXCEPTION = \"Please select aircraft to continue\";\r\nexport const FILL_TIME_EXCEPTION = \"Please select time to continue\";\r\nexport const FILL_DATE_EXCEPTION = \"Please select date to continue\";\r\nexport const FILL_CONTRACT_EXCEPTION = \"Please select contract to continue\";\r\nexport const USER_PROFILE_SUCCESSFULLY_UPDATED = 'Your account details have been updated';\r\nexport const EMAIL_ALREADY_EXISTS = 'Email already exists';\r\nexport const PASSWORD_UPDATE_SUCCESS = 'Thank You. Your password has been changed.';\r\nexport const PASSPORT_ADDED = 'Passport added successfully';\r\nexport const PASSPORT_UPDATED = 'Passport updated successfully';\r\nexport const PASSPORT_DELETED = 'Passport deleted successfully';\r\nexport const DEFAULT_PASSPORT_UPDATED = 'Default passport updated successfully';\r\nexport const PASSPORT_UPDATE_MESSAGES = [\r\n USER_PROFILE_SUCCESSFULLY_UPDATED,\r\n PASSPORT_ADDED,\r\n PASSPORT_UPDATED,\r\n PASSPORT_DELETED,\r\n DEFAULT_PASSPORT_UPDATED,\r\n];\r\nexport const CREDIT_CARD_MESSAGE = {\r\n 1: 'Your credit card AMERICAN EXPRESS-',\r\n 4: 'Your credit card MASTER-',\r\n 5: 'Your credit card VISA-',\r\n};\r\nexport const CARD_TYPE_NOT_SUPPORTED = \"Card type not supported\";\r\n\r\nexport const BACK_TO_OFFER = \"You are back to your offer.\"\r\nexport const OFFER_NOT_APPLIED = \"Please be aware that the {offerType} offer will not be applied.\";\r\nexport const FUEL_STOP_WARNING = \"Please be advised that this trip may require a fuel stop.\";\r\nexport const UPDATE_SAVED = 'Update Saved';\r\nexport const CITY_ALREADY_ADDED = 'City already added';\r\n\r\nexport const INVALID_DETAILS_EXCEPTION = \"Invalid details provided\";\r\nexport const THANK_YOU_PLAN_A_FLIGHT = \"We have received your flight request, which is under review by our operations team. Our team is working on it and will contact you shortly.\"\r\nexport const THANK_YOU_REQUEST_QUOTE_ADHOC = You will shortly receive a notification with your quotation details.
    Please note that all quotes are subject to availability at the time of request.
    \r\nexport const THANK_YOU_REQUEST_QUOTE_VJ = We have received your flight request which is under review by our operations team. Our team is working on it and will contact you shortly.\r\nexport const THANK_YOU_OFFER = You will shortly receive a notification with your booking arrangement.
    Please note that flight confirmation requires receipt of funds. We are now verifying funds on your card, and we will only request the due amount when your flight is confirmed by the operator.
    \r\nexport const NO_FLIGHT_LEG_ORDER_FOUND = 'No Leg Details Found Against Given Order Id.';\r\nexport const NO_LEG_MESSAGE = 'No flight order and legs found against the given order id. ';\r\n\r\nexport const THANK_YOU_PASSWORD_CHANGED = 'Thankyou. Your password has been reset successfully.';\r\n\r\nexport const GROUNDTIME_VALIDATION_MESSAGE = 'There are restrictions on the departure time for this flight. The latest you can depart and stay within the offer terms is {time}. Please amend your departure time.';\r\n\r\nexport const ACCOUNT_EXPIRY_MESSAGE = 'Your program account has expired. Please contact your VistaJet sales VP to renew.';\r\n\r\nexport const OFFER_QUOTING_NOT_AVAILABLE = \"Offer conditions not matched. Would you like to proceed with this request?\";\r\nexport const MEMBERSHIP_EXPIRY_MESSAGE_VJDIRECT = 'Your direct membership is pending';\r\nexport const FSP_VJDIRECT_EXPIRY_MESSAGE = 'Your direct membership is pending and your program account has expired. Please contact your VistaJet sales VP to renew.';\r\n\r\nexport const ACCOUNT_EXPIRY_MESSAGE_RAF = 'Your Program Account has Expired. Please contact a VistaJet Program Executive';\r\n\r\nexport const OFFERS_VALIDATION_MESSAGE = 'One Way or Empty Leg flights can only be booked with a valid VistaJet' +\r\n 'Direct Membership. Would you like to sign up for VistaJet Direct?'\r\nexport const MEMBERSHIP_EXPIRY_MESSAGE_VJDIRECT_OFFERS = 'Please wait until your membership is activated before purchasing an offer.';\r\n\r\nexport const INVOICES_NOT_FOUND_MESSAGE = `The request has no related invoices.`;\r\n\r\nexport const RECORD_NOT_FOUND_MESSAGE = `Record not found`;\r\n\r\nexport const PHONE_NUMBER_NOT_FOUND_MESSAGE = `Phone number not found.`;\r\n\r\nexport const USER_NOT_FOUND_MESSAGE = `User not found.`;\r\n\r\nexport const DEVICE_ID_NULL_MESSAGE = `Device id can't be null.`;\r\n\r\nexport const PHONE_NUMBER_NULL_MESSAGE = `Phone number can't be null.`;\r\n\r\nexport const USERNAME_NULL_MESSAGE = `Username can't be null.`;\r\n\r\nexport const RECORD_NOT_UPDATE_MESSAGE = `Record failed to update.`;\r\n\r\nexport const ACCOUNT_BLOCKED_MESSAGE = `An error occurred accessing the app on this device. Please contact VistaJet.`;\r\n\r\nexport const INVALID_SIGNATURE_MESSAGE = `Invalid signature.`\r\n\r\nexport const TIME_MISMATCH_MESSAGE = `Time mismatch.`;\r\n\r\nexport const MISSING_PARAMETER_MESSAGE = `Missing parameter.`;\r\n\r\nexport const USER_ALREADY_REGISTERED_MESSAGE = `User account details already exists. Please login or select forgotten password`;\r\n\r\nexport const INVALID_SOURCE_MESSAGE = `Invalid source`;\r\n\r\nexport const INVALID_TIME_MESSAGE = `Invalid time`;\r\n\r\nexport const REQUIRE_FUELSTOP = 'This flight may require a fuel stop.';\r\n\r\nexport const EMAIL_NUMBER = '+44 (0) 207 060 5700';\r\n","\r\nimport xml2js from \"xml2js\";\r\nimport CryptoJS from \"crypto-js\";\r\nimport { SALT } from \"../configs/constants\";\r\n\r\nimport { USER_ACCESS_TYPES } from \"../constants/UserAccessTypes\";\r\nimport { getPreferredAccount } from \"utils/requestFlightUtils\";\r\nimport { MEMBERSHIP_STATUS } from \"../constants/MembershipConstants\";\r\nimport {\r\n MEMBERSHIP_EXPIRED_CODE,\r\n USER_EXISTS,\r\n PHONE_NUMBER_EXISTS,\r\n LOGIN_FAILED_CODE,\r\n PAYMENT_NOT_DEFINED_CODE,\r\n ACCOUNT_NOT_FOUND_CODE,\r\n INVALID_ACCOUNT,\r\n UNAUTHORIZED,\r\n SERVER_UNRESOLVED,\r\n BAD_REQUEST,\r\n LEG_IN_PAST_CODE,\r\n UPDATE_FIRST_CODE,\r\n TIMEOUT_CODE,\r\n INTERNAL_SERVER_ERROR,\r\n PERMISSION_DENIED_CODE,\r\n GENERIC_EXCEPTION_CODE,\r\n INVALID_FEEDBACK_CODE,\r\n USER_UNAUTHENTICATED_CODE,\r\n EMAIL_EXISTS,\r\n FEEDBACK_EXIST,\r\n MULTI_LEG_OFFER_QOUTING_NA,\r\n ALREADY_LINKED_WITH_COMPANY,\r\n INVOICES_NOT_FOUND,\r\n RECORD_NOT_FOUND,\r\n PHONE_NUMBER_NOT_FOUND,\r\n USER_NOT_FOUND,\r\n DEVICE_ID_NULL,\r\n PHONE_NUMBER_NULL,\r\n USERNAME_NULL,\r\n RECORD_NOT_UPDATE,\r\n ACCOUNT_BLOCKED,\r\n INVALID_SIGNATURE,\r\n TIME_MISMATCH,\r\n MISSING_PARAMETER,\r\n USER_ALREADY_REGISTERED,\r\n INVALID_SOURCE,\r\n INVALID_TIME,\r\n CANNOT_ACCESS_STATEMENTS_CODE,\r\n} from \"../constants/ServerCodeConstants\";\r\nimport {\r\n NETWORK_OFFLINE,\r\n ACCOUNT_NOT_FOUND,\r\n SESSION_EXPIRED,\r\n TIMEOUT,\r\n LEG_IN_PAST,\r\n PERMISSION_DENIED,\r\n UPDATE_FIRST,\r\n SOMETHING_UNEXPECTED,\r\n MEMBERSHIP_EXPIRED,\r\n PHONE_NUMBER_ALREADY_EXISTS,\r\n USER_ALREADY_EXISTS,\r\n GENERIC_EXCEPTION,\r\n INVALID_FEEDBACK,\r\n USER_NOT_AUTHENTICATED,\r\n LOGIN_FAILED,\r\n PAYMENT_NOT_DEFINED,\r\n EMAIL_ALREADY_EXISTS,\r\n CARD_TYPE_NOT_SUPPORTED,\r\n OFFER_QUOTING_NOT_AVAILABLE,\r\n ACCOUNT_EXPIRY_MESSAGE_RAF,\r\n INVOICES_NOT_FOUND_MESSAGE,\r\n RECORD_NOT_FOUND_MESSAGE,\r\n PHONE_NUMBER_NOT_FOUND_MESSAGE,\r\n USER_NOT_FOUND_MESSAGE,\r\n DEVICE_ID_NULL_MESSAGE,\r\n PHONE_NUMBER_NULL_MESSAGE,\r\n USERNAME_NULL_MESSAGE,\r\n RECORD_NOT_UPDATE_MESSAGE,\r\n ACCOUNT_BLOCKED_MESSAGE,\r\n INVALID_SIGNATURE_MESSAGE,\r\n TIME_MISMATCH_MESSAGE,\r\n MISSING_PARAMETER_MESSAGE,\r\n USER_ALREADY_REGISTERED_MESSAGE,\r\n INVALID_SOURCE_MESSAGE,\r\n INVALID_TIME_MESSAGE,\r\n CANNOT_ACCESS_STATEMENTS,\r\n} from \"../constants/MessageConstants\";\r\n\r\nexport function parseBoolean(value) {\r\n return value === true || value === \"true\";\r\n}\r\n\r\nexport function encryptData(token, plainTextParam) {\r\n const key = CryptoJS.MD5(token + SALT); // eslint-disable-line\r\n\r\n const plainText = CryptoJS.enc.Utf8.parse(plainTextParam);\r\n\r\n const iv = CryptoJS.lib.WordArray.random(16);\r\n const encrypted = CryptoJS.AES.encrypt(plainText, key, {\r\n iv\r\n });\r\n return iv.concat(encrypted.ciphertext).toString(CryptoJS.enc.Base64);\r\n}\r\n\r\nexport const handleServerErrors = statusCode => {\r\n if (!statusCode) {\r\n return NETWORK_OFFLINE;\r\n }\r\n if (statusCode == ACCOUNT_NOT_FOUND_CODE.code || statusCode == INVALID_ACCOUNT.code) {\r\n return ACCOUNT_NOT_FOUND;\r\n }\r\n if (statusCode == UNAUTHORIZED.code) {\r\n return SESSION_EXPIRED;\r\n }\r\n\r\n if (statusCode == TIMEOUT_CODE.code || statusCode == SERVER_UNRESOLVED.code) {\r\n return TIMEOUT;\r\n }\r\n\r\n if (statusCode == EMAIL_EXISTS.code) {\r\n return EMAIL_ALREADY_EXISTS;\r\n }\r\n\r\n if (statusCode >= BAD_REQUEST.code && statusCode <= INTERNAL_SERVER_ERROR.code) {\r\n return SOMETHING_UNEXPECTED;\r\n }\r\n\r\n if (statusCode == LEG_IN_PAST_CODE.code) {\r\n return LEG_IN_PAST;\r\n }\r\n\r\n if (statusCode == PERMISSION_DENIED_CODE.code) {\r\n return PERMISSION_DENIED;\r\n }\r\n\r\n if (statusCode == UPDATE_FIRST_CODE.code) {\r\n return UPDATE_FIRST;\r\n }\r\n\r\n if (statusCode >= INTERNAL_SERVER_ERROR.code) {\r\n return SOMETHING_UNEXPECTED;\r\n }\r\n\r\n if (statusCode == MEMBERSHIP_EXPIRED_CODE.code) {\r\n return MEMBERSHIP_EXPIRED;\r\n }\r\n\r\n if (statusCode == PHONE_NUMBER_EXISTS.code) {\r\n return PHONE_NUMBER_ALREADY_EXISTS;\r\n }\r\n\r\n if (statusCode == USER_EXISTS.code) {\r\n return USER_ALREADY_EXISTS;\r\n }\r\n\r\n if (statusCode == GENERIC_EXCEPTION_CODE.code) {\r\n return GENERIC_EXCEPTION;\r\n }\r\n\r\n if (statusCode == INVALID_FEEDBACK_CODE.code) {\r\n return INVALID_FEEDBACK;\r\n }\r\n if (statusCode == FEEDBACK_EXIST.code) {\r\n return FEEDBACK_EXIST;\r\n }\r\n\r\n if (statusCode == USER_UNAUTHENTICATED_CODE.code) {\r\n return USER_NOT_AUTHENTICATED;\r\n }\r\n\r\n if (statusCode == LOGIN_FAILED_CODE.code) {\r\n return LOGIN_FAILED;\r\n }\r\n\r\n if (statusCode == PAYMENT_NOT_DEFINED_CODE.code) {\r\n return PAYMENT_NOT_DEFINED;\r\n }\r\n\r\n // if (statusCode == INVALID_CARD_TYPE_CODE.code) {\r\n // return CARD_TYPE_NOT_SUPPORTED;\r\n // }\r\n\r\n if (statusCode == ALREADY_LINKED_WITH_COMPANY.code) {\r\n return ACCOUNT_EXPIRY_MESSAGE_RAF;\r\n }\r\n\r\n if (statusCode == INVOICES_NOT_FOUND.code) {\r\n return INVOICES_NOT_FOUND_MESSAGE;\r\n }\r\n\r\n if (statusCode == RECORD_NOT_FOUND.code) {\r\n return RECORD_NOT_FOUND_MESSAGE;\r\n }\r\n\r\n if (statusCode == PHONE_NUMBER_NOT_FOUND.code) {\r\n return PHONE_NUMBER_NOT_FOUND_MESSAGE;\r\n }\r\n\r\n if (statusCode == USER_NOT_FOUND.code) {\r\n return USER_NOT_FOUND_MESSAGE;\r\n }\r\n\r\n if (statusCode == DEVICE_ID_NULL.code) {\r\n return DEVICE_ID_NULL_MESSAGE;\r\n }\r\n\r\n if (statusCode == PHONE_NUMBER_NULL.code) {\r\n return PHONE_NUMBER_NULL_MESSAGE;\r\n }\r\n\r\n if (statusCode == USERNAME_NULL.code) {\r\n return USERNAME_NULL_MESSAGE;\r\n }\r\n\r\n if (statusCode == RECORD_NOT_UPDATE.code) {\r\n return RECORD_NOT_UPDATE_MESSAGE;\r\n }\r\n\r\n if (statusCode == ACCOUNT_BLOCKED.code) {\r\n return ACCOUNT_BLOCKED_MESSAGE;\r\n }\r\n\r\n if (statusCode == INVALID_SIGNATURE.code) {\r\n return INVALID_SIGNATURE_MESSAGE;\r\n }\r\n\r\n if (statusCode == TIME_MISMATCH.code) {\r\n return TIME_MISMATCH_MESSAGE;\r\n }\r\n\r\n if (statusCode == MISSING_PARAMETER.code) {\r\n return MISSING_PARAMETER_MESSAGE;\r\n }\r\n\r\n if (statusCode == USER_ALREADY_REGISTERED.code) {\r\n return USER_ALREADY_REGISTERED_MESSAGE;\r\n }\r\n\r\n if (statusCode == INVALID_SOURCE.code) {\r\n return INVALID_SOURCE_MESSAGE;\r\n }\r\n\r\n if (statusCode == INVALID_TIME.code) {\r\n return INVALID_TIME_MESSAGE;\r\n }\r\n if (statusCode == MULTI_LEG_OFFER_QOUTING_NA.code) {\r\n return OFFER_QUOTING_NOT_AVAILABLE;\r\n }\r\n if (statusCode === CANNOT_ACCESS_STATEMENTS_CODE.code[0] ||\r\n statusCode === CANNOT_ACCESS_STATEMENTS_CODE.code[1]) {\r\n return CANNOT_ACCESS_STATEMENTS;\r\n }\r\n\r\n\r\n return SOMETHING_UNEXPECTED;\r\n};\r\n\r\n// function parseNumbers(str) {\r\n// if (typeof +str === \"number\") {\r\n// const number = str % 1 === 0 ? parseInt(str, 10) : parseFloat(str);\r\n// // garantee that left zeros or space remain as string\r\n// if (`${number}`.length === str.length) {\r\n// return number;\r\n// }\r\n// }\r\n// return str;\r\n// }\r\n\r\nconst parser = new xml2js.Parser({\r\n explicitArray: false,\r\n trim: true,\r\n valueProcessors: [\r\n parseNumbers, // parse numbers must always be set before parse booleans\r\n xml2js.processors.parseBooleans\r\n ]\r\n});\r\n\r\nconst parserPascalCase = new xml2js.Parser({\r\n explicitArray: false,\r\n trim: true,\r\n valueProcessors: [\r\n parseNumbers, // parse numbers must always be set before parse booleans\r\n xml2js.processors.parseBooleans\r\n ],\r\n tagNameProcessors: [xml2js.processors.firstCharLowerCase]\r\n});\r\n\r\nexport function parseString(...args) {\r\n parser.parseString.apply(this, args);\r\n}\r\n\r\n// export function parsePascalCaseString(...args) {\r\n// parserPascalCase.parseString.apply(this, args);\r\n// }\r\n\r\nconst parserIgnoreNumber = new xml2js.Parser({\r\n explicitArray: false,\r\n trim: true,\r\n valueProcessors: [xml2js.processors.parseBooleans],\r\n tagNameProcessors: [xml2js.processors.firstCharLowerCase]\r\n});\r\n\r\nexport function parserPascalCaseIgnoreNumber(...args) {\r\n parserIgnoreNumber.parseString.apply(this, args);\r\n}\r\n\r\nconst builder = new xml2js.Builder({\r\n xmldec: {\r\n version: \"1.0\",\r\n encoding: \"UTF-8\",\r\n standalone: undefined\r\n }\r\n});\r\n\r\nexport function builderXmlRequest(obj) {\r\n return builder.buildObject(obj);\r\n}\r\n\r\nexport function isArray(obj) {\r\n return obj.constructor === Array;\r\n}\r\n\r\nexport function garanteeArray(obj) {\r\n if (obj) {\r\n return isArray(obj) ? obj : [obj];\r\n }\r\n return [];\r\n}\r\n\r\nexport function encodeData(data) {\r\n return Object.keys(data).map((key) => (\r\n [key, data[key]].map(encodeURIComponent).join('=')\r\n )).join('&');\r\n}\r\nexport function normalizePhoneNumber(phoneNumber) {\r\n return {\r\n id: (phoneNumber && phoneNumber.id) || \"\",\r\n phoneNumber: (phoneNumber && `${phoneNumber.phoneNumber}`) || \"\"\r\n };\r\n}\r\n\r\nexport function accessType(accounts = []) {\r\n const ids = [];\r\n accounts.forEach((account) => {\r\n if ((account.typeId === USER_ACCESS_TYPES.MEMBER &&\r\n account.membershipStatus === MEMBERSHIP_STATUS.ACTIVE) ||\r\n (account.typeId === USER_ACCESS_TYPES.MEMBER &&\r\n account.membershipStatus === MEMBERSHIP_STATUS.ADHOC) ||\r\n account.typeId === USER_ACCESS_TYPES.FSP\r\n ) {\r\n ids.push(account.typeId);\r\n }\r\n });\r\n\r\n const preferredContract = getPreferredAccount(accounts);\r\n\r\n if (\r\n preferredContract &&\r\n preferredContract.typeId === USER_ACCESS_TYPES.MEMBER &&\r\n (preferredContract.membershipStatus === MEMBERSHIP_STATUS.ACTIVE ||\r\n preferredContract.membershipStatus === MEMBERSHIP_STATUS.ADHOC)\r\n ) {\r\n return USER_ACCESS_TYPES.MEMBER;\r\n }\r\n if (\r\n (ids.includes(USER_ACCESS_TYPES.FSP) &&\r\n ids.includes(USER_ACCESS_TYPES.MEMBER)) ||\r\n ids.includes(USER_ACCESS_TYPES.FSP)\r\n ) {\r\n return USER_ACCESS_TYPES.FSP;\r\n }\r\n if (ids.includes(USER_ACCESS_TYPES.MEMBER)) {\r\n return USER_ACCESS_TYPES.MEMBER;\r\n }\r\n return USER_ACCESS_TYPES.GUEST;\r\n}\r\n\r\nexport function membershipType(accounts = []) {\r\n const membershipAccount =\r\n accounts.find(\r\n account =>\r\n account.typeId === USER_ACCESS_TYPES.MEMBER &&\r\n account.membershipStatus === MEMBERSHIP_STATUS.ACTIVE\r\n ) || {};\r\n return membershipAccount.membershipTypeId || \"\";\r\n}\r\n\r\nexport function findMembershiptAccountByStatus(accounts = [], status = \"\") {\r\n return (\r\n accounts.find(\r\n account =>\r\n account.typeId === USER_ACCESS_TYPES.MEMBER &&\r\n account.membershipStatus === status\r\n ) || {}\r\n );\r\n}\r\n\r\nexport function findActiveMembershipAccount(accounts) {\r\n return findMembershiptAccountByStatus(accounts, MEMBERSHIP_STATUS.ACTIVE);\r\n}\r\n\r\nexport function findPendingMembershipAccount(accounts) {\r\n return findMembershiptAccountByStatus(accounts, MEMBERSHIP_STATUS.NEW);\r\n}\r\n\r\nexport function findAdhocMembershipAccount(accounts) {\r\n return findMembershiptAccountByStatus(accounts, MEMBERSHIP_STATUS.ADHOC);\r\n}\r\n\r\nexport function accountMembershipStatus(accounts = []) {\r\n return (\r\n findActiveMembershipAccount(accounts).membershipStatus ||\r\n findPendingMembershipAccount(accounts).membershipStatus ||\r\n findAdhocMembershipAccount(accounts).membershipStatus ||\r\n \"\"\r\n );\r\n}\r\n\r\nexport function hasVjDirectAccount(accounts = []) {\r\n const ids = [];\r\n let vjAccount = {};\r\n accounts.forEach(account => {\r\n ids.push(account.typeId);\r\n if (\r\n account.typeId === USER_ACCESS_TYPES.MEMBER &&\r\n account.membershipStatus === MEMBERSHIP_STATUS.ACTIVE\r\n ) {\r\n vjAccount = account;\r\n }\r\n });\r\n if (vjAccount.isPreferred) {\r\n return false;\r\n }\r\n if (\r\n ids.includes(USER_ACCESS_TYPES.FSP) &&\r\n ids.includes(USER_ACCESS_TYPES.MEMBER) &&\r\n vjAccount.membershipStatus === MEMBERSHIP_STATUS.ACTIVE &&\r\n !vjAccount.isPreferred\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport function accountsAircraftList(accounts = []) {\r\n const aircrafts = [];\r\n accounts.forEach(account => {\r\n (account.aircraftTypeDtos || []).forEach(aircraft => {\r\n aircrafts.push({\r\n name: aircraft.name,\r\n displayName: aircraft.displayName,\r\n code: aircraft.code,\r\n aircraftTypeId: aircraft.id,\r\n id: aircraft.id\r\n });\r\n });\r\n });\r\n return aircrafts;\r\n}\r\n\r\nfunction parseNumbers(str) {\r\n if (!isNaN(str)) {\r\n const number = str % 1 === 0 ? parseInt(str, 10) : parseFloat(str);\r\n // garantee that left zeros or space remain as string\r\n if (`${number}`.length === str.length) {\r\n return number;\r\n }\r\n }\r\n return str;\r\n}\r\n\r\n// const parserPascalCase = new xml2js.Parser({\r\n// explicitArray: false,\r\n// trim: true,\r\n// valueProcessors: [\r\n// parseNumbers, // parse numbers must always be set before parse booleans\r\n// xml2js.processors.parseBooleans,\r\n// ],\r\n// tagNameProcessors: [\r\n// xml2js.processors.firstCharLowerCase,\r\n// ],\r\n// });\r\n\r\nexport function parsePascalCaseString(...args) {\r\n parserPascalCase.parseString.apply(this, args);\r\n}\r\n\r\n// export function filterAccounts(accounts = []) {\r\n// const filteredAccounts = accounts.filter(account =>\r\n// account.typeId === USER_ACCESS_TYPES.MEMBER\r\n// && account.membershipStatus === MEMBERSHIP_STATUS.ACTIVE\r\n// || account.typeId === USER_ACCESS_TYPES.FSP\r\n// );\r\n// return filteredAccounts || [];\r\n// }\r\n","export const legStatus = {\r\n QUOTED: 'Quoted',\r\n OPTION: 'Option',\r\n CONFIRMED: 'Confirmed',\r\n READY: 'Ready',\r\n FLYING: 'Flying',\r\n LANDED: 'Landed',\r\n COMPLETED: 'Completed',\r\n CANCELLED: 'Cancelled',\r\n CANCELLATION_PENDING: 'Cancellation Pending',\r\n NOSHOW: 'No Show',\r\n UNCONFIRMED: 'Unconfirmed',\r\n REQUESTED: 'Requested',\r\n};\r\n\r\nexport const ITINERARY_TYPES = {\r\n PAST_ITINERARIES: 'pastItineraries',\r\n UPCOMING_ITINERARIES: 'upcomingItineraries',\r\n CANCELLED_ITINERARIES: 'cancelledItineraries',\r\n};\r\n\r\nexport const EMPTY_MESSAGE = {\r\n UPCOMING_PAST_ITINERARIES: 'No Itineraries available',\r\n CANCELLED_ITINERARIES: 'There are no Cancelled flights',\r\n};\r\nexport const SINGLE_LEG = 'SINGLE_LEG';\r\nexport const MULTI_LEG = 'MULTI_LEG';\r\nexport const RETURN_LEG = 'RETURN_LEG';\r\n\r\nexport const CABIN_HOSTESS = '103';\r\n\r\nexport const TIME_TO_SHOW_CREW = 24; // 24 Hours\r\n\r\nexport const SERVICE_AVAILED_MESSAGE = 'This service already exists';\r\n\r\nexport const SERVICE_DETAIL_PLACEHOLDER = 'We would be delighted to organise ground transportation for your flight. If you require this service, please advise the following details:\\nPick-up/Drop off location:\\nTime:\\nNumber of passengers:\\nPreferred vehicle type:';\r\nexport const AS_DETAIL_PLACEHOLDER = 'In order for us to apply for {service} at {airport}, please specify instructions';\r\nexport const AS_DETAIL_PLACEHOLDER_EMPTY = 'Services are currently unavailable';\r\n\r\nexport const GT_EMPTY_MESSAGE = 'No ground transportation arrangements have been requested at this time. Should you require a driver to greet you on arrival, or wish to bring your own vehicle into the terminal, we will happily organise this for you where available.';\r\nexport const AS_EMPTY_MESSAGE = 'No additional services have been requested at this time.';\r\n\r\nexport const GT_QUESTION_HEADING = 'Where do you need Ground Transportation service?';\r\nexport const AS_QUESTION_HEADING = 'Where do you need Additional service?';\r\n\r\nexport const GROUND_TRANSPORT_SERVICE = 'GROUND_TRANSPORT_SERVICE';\r\nexport const ADDITIONAL_SERVICE = 'ADDITIONAL_SERVICE';\r\n","import xml2js from 'xml2js';\r\n/*\r\nconverts xml string data from server to json object\r\n*/\r\nexport function parseXmlStringToJson(xmlString) {\r\n let jsonData;\r\n parseString(xmlString, (err, result) => {\r\n jsonData = result;\r\n });\r\n return jsonData;\r\n}\r\n\r\nconst parseNumbers = (str) => {\r\n if (!isNaN(str)) {\r\n const number = str % 1 === 0 ? parseInt(str, 10) : parseFloat(str);\r\n // garantee that left zeros or space remain as string\r\n if (`${number}`.length === str.length) {\r\n return number;\r\n }\r\n }\r\n return str;\r\n};\r\n\r\nconst parser = new xml2js.Parser({\r\n explicitArray: false,\r\n trim: true,\r\n valueProcessors: [\r\n parseNumbers, // parse numbers must always be set before parse booleans\r\n xml2js.processors.parseBooleans,\r\n ],\r\n});\r\n\r\nexport const parseString = (...args) => {\r\n return parser.parseString.apply(this, args);\r\n};\r\n\r\nconst parserIgnoreNumber = new xml2js.Parser({\r\n explicitArray: false,\r\n trim: true,\r\n valueProcessors: [\r\n xml2js.processors.parseBooleans,\r\n ],\r\n tagNameProcessors: [\r\n xml2js.processors.firstCharLowerCase,\r\n ],\r\n});\r\n\r\nexport const parserPascalCaseIgnoreNumber = (...args) => {\r\n parserIgnoreNumber.parseString.apply(this, args);\r\n}\r\n\r\nconst builder = new xml2js.Builder({\r\n xmldec: {\r\n version: '1.0',\r\n encoding: 'UTF-8',\r\n standalone: undefined,\r\n },\r\n});\r\n\r\nexport const builderXmlRequest = (obj) => {\r\n return builder.buildObject(obj);\r\n}\r\n/*\r\nconverts json object to xml\r\n*/\r\nexport const jsonToXml = (jsonData) => {\r\n const builder = new xml2js.Builder();\r\n return builder.buildObject(jsonData);\r\n}\r\n\r\nexport const numberWithCommas = (x) => {\r\n if (!x)\r\n return x;\r\n let num = x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n if (num.includes('.')) {\r\n return num.split('.')[0];\r\n }\r\n return `${num}`;\r\n}\r\n","import { AIRCRAFT_URLS } from \"../configs/constants\";\r\nconst AircraftsList = [\r\n {\r\n \"id\": 1,\r\n \"manufacturer\": \"Bombardier Aerospace\",\r\n \"displayName\": \"Learjet 40XR\",\r\n \"code\": \"LJ40XR\",\r\n \"range\": 3687,\r\n \"speed\": 860,\r\n \"maxNumberOfPassengers\": 0,\r\n \"maxNumberOfPassengersSleeping\": 0,\r\n \"maxFlightTime\": 0,\r\n \"turnaroundTimeMinutes\": 120,\r\n \"speedFirst30minBlock\": 1,\r\n \"speedSecond30minBlock\": 1,\r\n \"taxiTimeMinutes\": 1,\r\n \"cruisingAltitude\": 0,\r\n \"maxAltitudeFt\": 0,\r\n \"maxAltitudeMetres\": 0,\r\n \"maxRangeKm\": 3687,\r\n \"maxRangeNm\": 1,\r\n \"rank\": 1,\r\n \"lastUpdated\": 1723658946448,\r\n \"availableOnCustomerApp\": \"false\",\r\n \"tourURL\": \"0\"\r\n },\r\n {\r\n \"id\": 2,\r\n \"manufacturer\": \"Bombardier Aerospace\",\r\n \"displayName\": \"Learjet 60XR\",\r\n \"code\": \"LJ60XR\",\r\n \"range\": 4454,\r\n \"speed\": 833,\r\n \"maxNumberOfPassengers\": 0,\r\n \"maxNumberOfPassengersSleeping\": 0,\r\n \"maxFlightTime\": 0,\r\n \"turnaroundTimeMinutes\": 30,\r\n \"speedFirst30minBlock\": 667,\r\n \"speedSecond30minBlock\": 741,\r\n \"taxiTimeMinutes\": 10,\r\n \"cruisingAltitude\": 0,\r\n \"maxAltitudeFt\": 0,\r\n \"maxAltitudeMetres\": \"0\",\r\n \"maxRangeKm\": 4454,\r\n \"maxRangeNm\": 0,\r\n \"rank\": 2,\r\n \"lastUpdated\": 1713514922091,\r\n \"availableOnCustomerApp\": \"false\",\r\n \"tourURL\": \"0\"\r\n },\r\n {\r\n \"id\": 3,\r\n \"manufacturer\": \"Bombardier Aerospace\",\r\n \"displayName\": \"Challenger 300\",\r\n \"code\": \"CL300N\",\r\n \"range\": 5185,\r\n \"speed\": 827,\r\n \"maxNumberOfPassengers\": 9,\r\n \"maxNumberOfPassengersSleeping\": 0,\r\n \"maxFlightTime\": 0,\r\n \"turnaroundTimeMinutes\": 120,\r\n \"speedFirst30minBlock\": 763,\r\n \"speedSecond30minBlock\": 797,\r\n \"taxiTimeMinutes\": 10,\r\n \"cruisingAltitude\": 0,\r\n \"maxAltitudeFt\": 0,\r\n \"maxAltitudeMetres\": 0,\r\n \"maxRangeKm\": 5185,\r\n \"maxRangeNm\": 2800,\r\n \"rank\": 110,\r\n \"lastUpdated\": 1725003532345,\r\n \"availableOnCustomerApp\": \"false\",\r\n \"tourURL\": \"https://www.vistajet.com/360-tour/challenger-350/\"\r\n },\r\n {\r\n images: [\r\n {\r\n classification: [\"5\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/8/baggage.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"4\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/9/sketch.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"1\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/101/Challenger-605-1-1.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"6\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/102/Challenger-605-2-1.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"7\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/103/Challenger-605-3-1.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"20\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/161/360-tour-icon.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"8\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/162/Challenger605-Carousel_1.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"9\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/163/Challenger605-Carousel_2.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"10\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/164/Challenger605-Carousel_3.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"11\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/165/Challenger605-Carousel_4.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"12\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/166/Challenger605-Carousel_5.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"13\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/167/Challenger605-Carousel_6.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"19\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/168/challenger-605-floorplan-day.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"18\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/169/challenger-605-floorplan-night.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"3\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/5/252/icon_605-new.jpg\"\r\n ]\r\n }\r\n ],\r\n \"id\": 5,\r\n \"manufacturer\": \"Bombardier Aerospace\",\r\n \"displayName\": \"Challenger 605\",\r\n \"code\": \"CL605\",\r\n \"range\": 6852,\r\n \"speed\": 833,\r\n \"maxNumberOfPassengers\": 12,\r\n \"maxNumberOfPassengersSleeping\": 5,\r\n \"maxFlightTime\": 480,\r\n \"turnaroundTimeMinutes\": 30,\r\n \"speedFirst30minBlock\": 727,\r\n \"speedSecond30minBlock\": 827,\r\n \"taxiTimeMinutes\": 10,\r\n \"cruisingAltitude\": 541,\r\n \"maxAltitudeFt\": 41000,\r\n \"maxAltitudeMetres\": 12497,\r\n \"maxRangeKm\": 6852,\r\n \"maxRangeNm\": 3700,\r\n \"rank\": 140,\r\n \"lastUpdated\": 1725787026512,\r\n \"availableOnCustomerApp\": \"true\",\r\n \"tourURL\": AIRCRAFT_URLS.LINK_TO_CHALLENGER_605\r\n },\r\n {\r\n images: [\r\n {\r\n classification: [\"5\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/13/baggage.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"4\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/15/sketch.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"1\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/16/internal_1.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"6\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/17/internal_2.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"7\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/18/internal_3.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"20\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/170/360-tour-icon.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"8\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/171/Challenger850-Carousel_1.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"9\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/172/Challenger850-Carousel_2.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"10\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/173/Challenger850-Carousel_3.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"11\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/174/Challenger850-Carousel_4.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"12\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/175/Challenger850-Carousel_5.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"19\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/176/challenger-850-floorplan-day.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"18\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/177/challenger-850-floorplan-night.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"3\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/6/253/icon_850-new.jpg\"\r\n ]\r\n }\r\n ],\r\n \"id\": 5,\r\n \"manufacturer\": \"Bombardier Aerospace\",\r\n \"displayName\": \"Challenger 605\",\r\n \"code\": \"CL605\",\r\n \"range\": 6852,\r\n \"speed\": 833,\r\n \"maxNumberOfPassengers\": 12,\r\n \"maxNumberOfPassengersSleeping\": 5,\r\n \"maxFlightTime\": 480,\r\n \"turnaroundTimeMinutes\": 30,\r\n \"speedFirst30minBlock\": 727,\r\n \"speedSecond30minBlock\": 827,\r\n \"taxiTimeMinutes\": 10,\r\n \"cruisingAltitude\": 541,\r\n \"maxAltitudeFt\": 41000,\r\n \"maxAltitudeMetres\": 12497,\r\n \"maxRangeKm\": 6852,\r\n \"maxRangeNm\": 3700,\r\n \"rank\": 140,\r\n \"lastUpdated\": 1725787026512,\r\n \"availableOnCustomerApp\": \"true\",\r\n \"tourURL\": AIRCRAFT_URLS.LINK_TO_CHALLENGER_850\r\n },\r\n {\r\n images: [\r\n {\r\n classification: [\"5\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/25/baggage.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"1\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/27/internal_1.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"6\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/28/internal_2.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"7\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/29/internal_3.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"4\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/30/sketch.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"20\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/191/360-tour-icon.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"19\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/192/global-6000-floorplan-day.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"18\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/193/global-6000-floorplan-night.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"8\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/194/GlobalXRS6000-Carousel_1.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"9\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/195/GlobalXRS6000-Carousel_2.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"10\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/196/GlobalXRS6000-Carousel_3.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"11\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/197/GlobalXRS6000-Carousel_4.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"12\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/198/GlobalXRS6000-Carousel_5.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"13\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/199/GlobalXRS6000-Carousel_6.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"14\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/200/GlobalXRS6000-Carousel_7.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"15\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/201/GlobalXRS6000-Carousel_8.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"3\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/255/icon_6000-new.jpg\"\r\n ]\r\n }\r\n ],\r\n \"id\": 7,\r\n \"manufacturer\": \"Bombardier Aerospace\",\r\n \"displayName\": \"Global 6000\",\r\n \"code\": \"GLEX\",\r\n \"range\": 10371,\r\n \"speed\": 838.96,\r\n \"maxNumberOfPassengers\": 14,\r\n \"maxNumberOfPassengersSleeping\": 7,\r\n \"maxFlightTime\": 780,\r\n \"turnaroundTimeMinutes\": 30,\r\n \"speedFirst30minBlock\": 668.576,\r\n \"speedSecond30minBlock\": 838.96,\r\n \"taxiTimeMinutes\": 10,\r\n \"cruisingAltitude\": 590,\r\n \"maxAltitudeFt\": 51000,\r\n \"maxAltitudeMetres\": 15545,\r\n \"maxRangeKm\": 10371,\r\n \"maxRangeNm\": 5600,\r\n \"rank\": 260,\r\n \"lastUpdated\": 1721325549654,\r\n \"availableOnCustomerApp\": \"true\",\r\n \"tourURL\": AIRCRAFT_URLS.LINK_TO_GLOBAL_XRS_6000\r\n },\r\n {\r\n \"id\": 8,\r\n \"manufacturer\": \"0\",\r\n \"displayName\": \"Dispo Aircraft Type\",\r\n \"code\": \"DISPO\",\r\n \"range\": 0,\r\n \"speed\": 0,\r\n \"maxNumberOfPassengers\": \"0\",\r\n \"maxNumberOfPassengersSleeping\": \"0\",\r\n \"maxFlightTime\": \"0\",\r\n \"turnaroundTimeMinutes\": 0,\r\n \"speedFirst30minBlock\": 0,\r\n \"speedSecond30minBlock\": 0,\r\n \"taxiTimeMinutes\": 0,\r\n \"cruisingAltitude\": \"0\",\r\n \"maxAltitudeFt\": \"0\",\r\n \"maxAltitudeMetres\": \"0\",\r\n \"maxRangeKm\": 0,\r\n \"maxRangeNm\": \"0\",\r\n \"rank\": \"0\",\r\n \"lastUpdated\": 1713514049835,\r\n \"availableOnCustomerApp\": \"false\",\r\n \"tourURL\": \"0\"\r\n }, \r\n {\r\n images: [\r\n {\r\n classification: [\"5\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/2/baggage.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"4\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/3/sketch.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"1\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/4/Internal_1.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"6\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/5/internal_2.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"7\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/6/internal_3.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"20\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/151/360-tour-icon.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"8\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/152/Challenger350-Carousel_1.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"9\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/153/Challenger350-Carousel_2.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"10\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/154/Challenger350-Carousel_3.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"11\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/155/Challenger350-Carousel_4.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"12\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/156/Challenger350-Carousel_5.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"13\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/157/Challenger350-Carousel_6.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"14\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/158/Challenger350-Carousel_7.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"19\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/159/challenger-350-floorplan-day.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"18\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/160/challenger-350-floorplan-night.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"3\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/10/251/icon_350-new.jpg\"\r\n ]\r\n }\r\n ],\r\n \"id\": 10,\r\n \"manufacturer\": \"Bombardier Aerospace\",\r\n \"displayName\": \"Challenger 350\",\r\n \"code\": \"CL350\",\r\n \"range\": 5185,\r\n \"speed\": 827,\r\n \"maxNumberOfPassengers\": 8,\r\n \"maxNumberOfPassengersSleeping\": 3,\r\n \"maxFlightTime\": 435,\r\n \"turnaroundTimeMinutes\": 120,\r\n \"speedFirst30minBlock\": 763,\r\n \"speedSecond30minBlock\": 797,\r\n \"taxiTimeMinutes\": 10,\r\n \"cruisingAltitude\": 541,\r\n \"maxAltitudeFt\": 45000,\r\n \"maxAltitudeMetres\": 13716,\r\n \"maxRangeKm\": 5185,\r\n \"maxRangeNm\": 2800,\r\n \"rank\": 120,\r\n \"lastUpdated\": 1717659987871,\r\n \"availableOnCustomerApp\": \"true\",\r\n \"tourURL\": AIRCRAFT_URLS.LINK_TO_CHALLENGER_350\r\n },\r\n {\r\n images: [\r\n {\r\n classification: [\"5\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/19/baggage.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"4\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/20/Global-5000-sketch.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"1\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/22/internal_1.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"6\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/23/internal_2.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"7\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/24/internal_3.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"20\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/178/360-tour-icon.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"8\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/179/Global5000-Carousel_1.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"9\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/180/Global5000-Carousel_2.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"10\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/181/Global5000-Carousel_3.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"11\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/182/Global5000-Carousel_4.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"12\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/183/Global5000-Carousel_5.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"13\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/184/Global5000-Carousel_6.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"14\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/185/Global5000-Carousel_7.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"15\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/186/Global5000-Carousel_8.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"16\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/187/Global5000-Carousel_9.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"17\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/188/Global5000-Carousel_10.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"19\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/189/global-5000-floorplan-day.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"18\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/190/global-5000-floorplan-night.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"3\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/16/254/icon_5000-new.jpg\"\r\n ]\r\n }\r\n ],\r\n \"id\": 16,\r\n \"manufacturer\": \"Bombardier Aerospace\",\r\n \"displayName\": \"Global 5000\",\r\n \"code\": \"GL5T\",\r\n \"range\": 9260,\r\n \"speed\": 838.96,\r\n \"maxNumberOfPassengers\": 13,\r\n \"maxNumberOfPassengersSleeping\": 7,\r\n \"maxFlightTime\": 660,\r\n \"turnaroundTimeMinutes\": 30,\r\n \"speedFirst30minBlock\": 668.576,\r\n \"speedSecond30minBlock\": 838.96,\r\n \"taxiTimeMinutes\": 12,\r\n \"cruisingAltitude\": 590,\r\n \"maxAltitudeFt\": 51000,\r\n \"maxAltitudeMetres\": 15545,\r\n \"maxRangeKm\": 9260,\r\n \"maxRangeNm\": 5000,\r\n \"rank\": 245,\r\n \"lastUpdated\": 1718378963899,\r\n \"availableOnCustomerApp\": \"true\",\r\n \"tourURL\": AIRCRAFT_URLS.LINK_TO_GLOBAL_5000\r\n },\r\n {\r\n \"id\": 36,\r\n \"manufacturer\": \"Cessna\",\r\n \"displayName\": \"Citation XLS\",\r\n \"code\": \"C56X\",\r\n \"range\": 3150,\r\n \"speed\": 695,\r\n \"maxNumberOfPassengers\": 7,\r\n \"maxNumberOfPassengersSleeping\": \"0\",\r\n \"maxFlightTime\": \"0\",\r\n \"turnaroundTimeMinutes\": 60,\r\n \"speedFirst30minBlock\": 695,\r\n \"speedSecond30minBlock\": 695,\r\n \"taxiTimeMinutes\": 10,\r\n \"cruisingAltitude\": \"0\",\r\n \"maxAltitudeFt\": \"0\",\r\n \"maxAltitudeMetres\": \"0\",\r\n \"maxRangeKm\": 3150,\r\n \"maxRangeNm\": 0,\r\n \"rank\": 60,\r\n \"lastUpdated\": 1713514049835,\r\n \"availableOnCustomerApp\": \"false\",\r\n \"tourURL\": \"0\"\r\n }, \r\n {\r\n \"id\": 118,\r\n \"manufacturer\": \"Agusta Westland\",\r\n \"displayName\": \"Agusta A109SP\",\r\n \"code\": \"A109SP\",\r\n \"range\": 800,\r\n \"speed\": 222,\r\n \"maxNumberOfPassengers\": 0,\r\n \"maxNumberOfPassengersSleeping\": 0,\r\n \"maxFlightTime\": 0,\r\n \"turnaroundTimeMinutes\": 45,\r\n \"speedFirst30minBlock\": 222,\r\n \"speedSecond30minBlock\": 222,\r\n \"taxiTimeMinutes\": 6,\r\n \"cruisingAltitude\": 0,\r\n \"maxAltitudeFt\": 0,\r\n \"maxAltitudeMetres\": 0,\r\n \"maxRangeKm\": 800,\r\n \"maxRangeNm\": 432,\r\n \"rank\": 2,\r\n \"lastUpdated\": 1721483765187,\r\n \"availableOnCustomerApp\": \"false\",\r\n \"tourURL\": \"https://www.vistajet.com/360-tour/global-6000/\"\r\n },\r\n {\r\n images: [\r\n {\r\n classification: [\"5\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/25/baggage.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"1\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/27/internal_1.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"6\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/28/internal_2.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"7\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/29/internal_3.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"4\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/30/sketch.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"20\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/191/360-tour-icon.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"19\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/192/global-6000-floorplan-day.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"18\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/193/global-6000-floorplan-night.png\"\r\n ]\r\n },\r\n {\r\n classification: [\"8\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/194/GlobalXRS6000-Carousel_1.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"9\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/195/GlobalXRS6000-Carousel_2.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"10\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/196/GlobalXRS6000-Carousel_3.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"11\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/197/GlobalXRS6000-Carousel_4.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"12\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/198/GlobalXRS6000-Carousel_5.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"13\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/199/GlobalXRS6000-Carousel_6.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"14\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/200/GlobalXRS6000-Carousel_7.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"15\"],\r\n largeUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/201/GlobalXRS6000-Carousel_8.jpg\"\r\n ]\r\n },\r\n {\r\n classification: [\"3\"],\r\n smallUrl: [\r\n \"http://webserviceuat.vistajet.com/extranetServices/1.1/files/getfile?fileKey=aircraft_types/images/7/255/icon_6000-new.jpg\"\r\n ]\r\n }\r\n ],\r\n \"id\": 1718,\r\n \"manufacturer\": \"Bombardier Aerospace\",\r\n \"displayName\": \"Global 7500\",\r\n \"code\": \"GL7T\",\r\n \"range\": 13890,\r\n \"speed\": 838.96,\r\n \"maxNumberOfPassengers\": 14,\r\n \"maxNumberOfPassengersSleeping\": 0,\r\n \"maxFlightTime\": 0,\r\n \"turnaroundTimeMinutes\": 60,\r\n \"speedFirst30minBlock\": 668.576,\r\n \"speedSecond30minBlock\": 838.96,\r\n \"taxiTimeMinutes\": 10,\r\n \"cruisingAltitude\": 0,\r\n \"maxAltitudeFt\": 0,\r\n \"maxAltitudeMetres\": 0,\r\n \"maxRangeKm\": 13890,\r\n \"maxRangeNm\": 7500,\r\n \"rank\": 270,\r\n \"lastUpdated\": 1716017722235,\r\n \"availableOnCustomerApp\": \"true\",\r\n \"tourURL\": AIRCRAFT_URLS.LINK_TO_GLOBAL_XRS_7500\r\n },\r\n {\r\n \"id\": 4218,\r\n \"manufacturer\": \"VistaJet Limited B2B\",\r\n \"displayName\": \"Hybrid CL350\",\r\n \"code\": \"H-CL350\",\r\n \"range\": 5185,\r\n \"speed\": 827,\r\n \"maxNumberOfPassengers\": \"0\",\r\n \"maxNumberOfPassengersSleeping\": \"0\",\r\n \"maxFlightTime\": \"0\",\r\n \"turnaroundTimeMinutes\": 120,\r\n \"speedFirst30minBlock\": 763,\r\n \"speedSecond30minBlock\": 797,\r\n \"taxiTimeMinutes\": 10,\r\n \"cruisingAltitude\": \"0\",\r\n \"maxAltitudeFt\": \"0\",\r\n \"maxAltitudeMetres\": \"0\",\r\n \"maxRangeKm\": 5185,\r\n \"maxRangeNm\": 2799,\r\n \"rank\": 120,\r\n \"lastUpdated\": 1691567382096,\r\n \"availableOnCustomerApp\": \"false\",\r\n \"tourURL\": \"0\"\r\n } \r\n];\r\nexport default AircraftsList;\r\n","import aircraftsList from \"./Aircrafts\";\r\n\r\nexport const getAircraftByField = (\r\n searchText,\r\n aircraftsArray = [],\r\n field = \"id\",\r\n) => {\r\n let result = {};\r\n if (!searchText) {\r\n return result;\r\n }\r\n const aircrafts = aircraftsArray.length > 0 ? aircraftsArray : aircraftsList;\r\n aircrafts.some(aircraft => {\r\n if (aircraft[field] === searchText) {\r\n result = aircraft;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n};\r\n\r\nexport function getAircraftByAllFields(searchText) {\r\n let result = {};\r\n if (!searchText) {\r\n return result;\r\n }\r\n const fields = [\"id\", \"name\", \"code\", \"displayName\"];\r\n aircraftsList.some(aircraft =>\r\n fields.some(field => {\r\n if (aircraft[field] === searchText) {\r\n result = aircraft;\r\n return true;\r\n }\r\n return false;\r\n })\r\n );\r\n return result;\r\n}\r\n\r\nexport const zeroPad = (num, places) => {\r\n const zero = places - num.toString().length + 1;\r\n};\r\n\r\nexport const getAvailableAircrafts = availableAircrafts => {\r\n const availableAircraftIds = [];\r\n (availableAircrafts || []).forEach(availableAircraft => {\r\n aircraftsList.forEach(aircraft => {\r\n if (aircraft.id === availableAircraft.id) {\r\n availableAircraftIds.push(aircraft.id);\r\n }\r\n });\r\n });\r\n return availableAircraftIds;\r\n};\r\n","import moment from 'moment';\r\nimport { garanteeArray } from './sourceUtils';\r\nimport {\r\n legStatus,\r\n SINGLE_LEG,\r\n MULTI_LEG,\r\n RETURN_LEG,\r\n} from '../constants/ItineraryConstants';\r\nimport { jsonToXml } from './parserUtils';\r\nimport { getAircraftByAllFields } from './aircraftUtils';\r\n\r\nconst PAST_FLIGHT_MIN_HOURS_CRITERIA = 3;\r\n\r\nexport function getItineraryLegDates(firstLeg, lastLeg, item) {\r\n const dateFormat = 'DD MMM YYYY';\r\n let dates = `${moment\r\n .utc(firstLeg.departureAirportTimeLocal)\r\n .format(dateFormat)}`;\r\n if (item && item.legs && item.legs.length > 1) {\r\n dates = `${dates} | ${moment\r\n .utc(lastLeg.arrivalAirportTimeLocal)\r\n .format(dateFormat)}`;\r\n }\r\n return dates;\r\n}\r\n\r\nexport function getItineryPathIcon(firstLeg, lastLeg, isMultileg) {\r\n return !isMultileg ? SINGLE_LEG :\r\n (firstLeg.departureAirportId === lastLeg.arrivalAirportId\r\n ? RETURN_LEG : MULTI_LEG)\r\n}\r\n\r\nexport function populateLegsForMap(item, visitedAirportsFinder) {\r\n const temp = [];\r\n if (item && item.legs) {\r\n item.legs.forEach((itinerary) => {\r\n const { arrivalAirportId, departureAirportId } = itinerary;\r\n const arrivalAirport = visitedAirportsFinder[arrivalAirportId];\r\n const departureAirport = visitedAirportsFinder[departureAirportId];\r\n const singleLegs = {\r\n id: '',\r\n departureAirport: {},\r\n arrivalAirport: {},\r\n };\r\n\r\n singleLegs.departureAirport = departureAirport;\r\n singleLegs.arrivalAirport = arrivalAirport;\r\n singleLegs.id = itinerary.legId ? itinerary.legId.toString() : itinerary.flightLegExtIdentifier.toString();\r\n temp.push(singleLegs);\r\n });\r\n }\r\n return temp;\r\n}\r\n\r\nexport function getLegLocalTime(time) {\r\n let localTime = '';\r\n if (time) {\r\n localTime = moment.utc(time).format('HH:mm');\r\n }\r\n return localTime;\r\n}\r\nexport function getLegDuration(mins) {\r\n const h = Math.floor(mins / 60);\r\n const m = mins % 60;\r\n return `${h}h ${m}m`;\r\n}\r\n\r\nexport function normalizeAircraft(aircraft) {\r\n return {\r\n images: aircraft.images,\r\n\r\n id: +garanteeArray(aircraft.id)[0],\r\n manufacturer: garanteeArray(aircraft.manufacturer)[0],\r\n name: garanteeArray(aircraft.name)[0],\r\n displayName: garanteeArray(aircraft.displayName)[0],\r\n code: garanteeArray(aircraft.code)[0],\r\n range: garanteeArray(aircraft.range)[0],\r\n speed: garanteeArray(aircraft.speed)[0],\r\n maxNumberOfPassengers: garanteeArray(aircraft.maxNumberOfPassengers)[0],\r\n maxNumberOfPassengersSleeping: garanteeArray(\r\n aircraft.maxNumberOfPassengersSleeping\r\n )[0],\r\n maxFlightTime: garanteeArray(aircraft.maxFlightTime)[0],\r\n turnaroundTimeMinutes: garanteeArray(aircraft.turnaroundTimeMinutes)[0],\r\n speedFirst30minBlock: garanteeArray(aircraft.speedFirst30minBlock)[0],\r\n speedSecond30minBlock: garanteeArray(aircraft.speedSecond30minBlock)[0],\r\n taxiTimeMinutes: garanteeArray(aircraft.taxiTimeMinutes)[0],\r\n cruisingAltitude: garanteeArray(aircraft.cruisingAltitude)[0],\r\n maxAltitudeFt: garanteeArray(aircraft.maxAltitudeFt)[0],\r\n maxAltitudeMetres: garanteeArray(aircraft.maxAltitudeMetres)[0],\r\n maxRangeKm: garanteeArray(aircraft.maxRangeKm)[0],\r\n maxRangeNm: garanteeArray(aircraft.maxRangeNm)[0],\r\n rank: garanteeArray(aircraft.rank)[0],\r\n lastUpdated: garanteeArray(aircraft.lastUpdated)[0],\r\n availableOnCustomerApp: garanteeArray(aircraft.availableOnCustomerApp)[0],\r\n tourURL: garanteeArray(aircraft.tourURL)[0]\r\n };\r\n}\r\n\r\nexport function normalizeAirport(airport) {\r\n return {\r\n timezones: airport.timezones,\r\n\r\n id: +garanteeArray(airport.id)[0],\r\n icao: garanteeArray(airport.icao)[0],\r\n iata: garanteeArray(airport.iata)[0],\r\n iso3: garanteeArray(airport.iso3)[0],\r\n name: garanteeArray(airport.name)[0],\r\n iso2: garanteeArray(airport.iso2)[0],\r\n city: garanteeArray(airport.city)[0],\r\n country: garanteeArray(airport.country)[0],\r\n latitude: garanteeArray(airport.latitude)[0],\r\n longitude: garanteeArray(airport.longitude)[0],\r\n itineraryAirportName: garanteeArray(airport.itineraryAirportName)[0],\r\n airportCount: garanteeArray(airport.airportCount)[0],\r\n lastUpdatedTime: garanteeArray(airport.lastUpdatedTime)[0]\r\n };\r\n}\r\n\r\nexport function normalizeLeg(legs) {\r\n return legs.map(leg => ({\r\n aircraft: normalizeAircraft(garanteeArray(leg.aircraft)[0]),\r\n arrivalAirport: normalizeAirport(garanteeArray(leg.arrivalAirport)[0]),\r\n departureAirport: normalizeAirport(garanteeArray(leg.departureAirport)[0]),\r\n\r\n duration: leg.duration,\r\n isEditable: leg.isEditable,\r\n isPast: leg.isPast,\r\n uniqueIdentifier: leg.uniqueIdentifier,\r\n\r\n leadPassengerName: garanteeArray(leg.leadPassengerName)[0],\r\n aircraftTailNumber: garanteeArray(leg.aircraftTailNumber)[0],\r\n aircraftTypeName: garanteeArray(leg.aircraftTypeName)[0],\r\n arrivalAirportId: garanteeArray(leg.arrivalAirportId)[0],\r\n arrivalAirportTimeLocal: garanteeArray(leg.arrivalAirportTimeLocal)[0],\r\n arrivalAirportTimeUTC: garanteeArray(leg.arrivalAirportTimeUTC)[0],\r\n defaultDurationMinutes: garanteeArray(leg.defaultDurationMinutes)[0],\r\n departureAirportId: garanteeArray(leg.departureAirportId)[0],\r\n departureAirportTimeLocal: garanteeArray(leg.departureAirportTimeLocal)[0],\r\n departureAirportTimeUTC: garanteeArray(leg.departureAirportTimeUTC)[0],\r\n legId: garanteeArray(leg.legId)[0],\r\n legStatus: garanteeArray(leg.legStatus)[0],\r\n numberOfPassenger: garanteeArray(leg.numberOfPassenger)[0],\r\n requestedAircraftTypeName: garanteeArray(leg.requestedAircraftTypeName)[0],\r\n version: garanteeArray(leg.version)[0]\r\n }));\r\n}\r\n\r\nexport function normalizeOrder(quote) {\r\n return {\r\n arrivalAirport: normalizeAirport(quote.arrivalAirport),\r\n departureAirport: normalizeAirport(quote.departureAirport),\r\n arrivalTime: quote.arrivalTime,\r\n departureTime: quote.departureTime,\r\n leadPassenger: quote.leadPassenger,\r\n mobilePreviewCssClass: quote.mobilePreviewCssClass,\r\n orderIdentifier: quote.orderIdentifier,\r\n orderKey: quote.orderKey,\r\n orderStatus: quote.orderStatus,\r\n legs: normalizeLeg(garanteeArray(quote.legs))\r\n };\r\n}\r\n\r\nexport function getLegKey(legId) {\r\n return isNaN(legId) ? \"flightLegExtIdentifier\" : \"flightLegId\";\r\n}\r\nexport const getFlightId = (leg) => (\r\n leg.legId || leg.flightLegExtIdentifier\r\n)\r\nexport function isLegId(legId) {\r\n return !isNaN(legId) && legId !== \"\";\r\n}\r\n\r\nexport function isCancelledLeg(leg) {\r\n return leg.legStatus === legStatus.CANCELLED;\r\n}\r\n\r\nexport function isPastLeg(leg) {\r\n const arrivalTimeUTC = moment(leg.arrivalAirportTimeUTC)\r\n .add(PAST_FLIGHT_MIN_HOURS_CRITERIA, \"hours\")\r\n .utc();\r\n const currentTimeUTC = moment().utc();\r\n\r\n return !isCancelledLeg(leg) && arrivalTimeUTC.isBefore(currentTimeUTC);\r\n}\r\n\r\nexport function getOrderStatus(legs) {\r\n return legs[0].legStatus;\r\n}\r\n\r\nexport function sepratePastUpcomingLegs(\r\n itineraries,\r\n currentUpcoming,\r\n currentPast,\r\n currentCancelled,\r\n) {\r\n const pastOrders = [];\r\n const upcomingOrders = [];\r\n const cancelledOrders = [];\r\n itineraries.forEach((item = {}) => {\r\n const pastLegs = [];\r\n const upcomingLegs = [];\r\n const cancelledLegs = [];\r\n let pastLeadPassenger = \"\";\r\n let upcomingLeadPassenger = \"\";\r\n let cancelledLeadPassenger = \"\";\r\n let orderKey = \"\";\r\n let orderIdentifier = \"\";\r\n let accountId = \"\";\r\n orderIdentifier = item.orderLegId || item.orderExtIdentifier;\r\n orderKey = item.orderLegId ? \"orderId\" : \"orderExtIdentifier\";\r\n accountId = item.accountId;\r\n item.legs.leg.sort((a, b) => {\r\n const compare = moment(b.departureAirportTimeUTC).isAfter(\r\n a.departureAirportTimeUTC\r\n );\r\n return compare ? -1 : 1;\r\n });\r\n item.legs.leg.forEach(legObj => {\r\n const leg = legObj;\r\n if (isCancelledLeg(leg)) {\r\n if (!cancelledLeadPassenger) {\r\n cancelledLeadPassenger = leg.leadPassengerName || \"\";\r\n }\r\n leg.isCancelled = true;\r\n cancelledLegs.push(leg);\r\n } else if (isPastLeg(leg)) {\r\n if (!pastLeadPassenger) {\r\n pastLeadPassenger = leg.leadPassengerName || \"\";\r\n }\r\n leg.isPast = true;\r\n pastLegs.push(leg);\r\n } else {\r\n // upcoming leg\r\n if (!upcomingLeadPassenger) {\r\n upcomingLeadPassenger = leg.leadPassengerName || \"\";\r\n }\r\n leg.isPast = false;\r\n upcomingLegs.push(leg);\r\n }\r\n });\r\n let orderExist = false;\r\n if (pastLegs.length > 0) {\r\n orderExist = (currentPast || []).some(\r\n order => order.orderIdentifier === orderIdentifier\r\n );\r\n if (!orderExist) {\r\n pastOrders.push({\r\n orderKey,\r\n orderIdentifier,\r\n accountId,\r\n orderStatus: getOrderStatus(pastLegs),\r\n legs: pastLegs,\r\n // departure time of first leg\r\n departureTime: pastLegs[0].departureAirportTimeLocal,\r\n departureAirportTimeUTC: pastLegs[0].departureAirportTimeUTC,\r\n // arrival time of last leg\r\n arrivalTime: pastLegs[pastLegs.length - 1].arrivalAirportTimeLocal,\r\n // departure airport of first leg\r\n departureAirport: pastLegs[0].departureAirport,\r\n // arrival airport of last leg\r\n arrivalAirport: pastLegs[pastLegs.length - 1].arrivalAirportId,\r\n leadPassenger: pastLeadPassenger || \"No Lead Passenger\",\r\n mobilePreviewCssClass: \"position-absolute hide\"\r\n });\r\n }\r\n }\r\n if (cancelledLegs.length > 0) {\r\n orderExist = (currentCancelled || []).some(\r\n order => order.orderIdentifier === orderIdentifier\r\n );\r\n if (!orderExist) {\r\n cancelledOrders.push({\r\n orderKey,\r\n orderIdentifier,\r\n accountId,\r\n orderStatus: legStatus.CANCELLED,\r\n legs: cancelledLegs,\r\n // departure time of first leg\r\n departureTime: cancelledLegs[0].departureAirportTimeLocal,\r\n departureAirportTimeUTC: cancelledLegs[0].departureAirportTimeUTC,\r\n // arrival time of last leg\r\n arrivalTime:\r\n cancelledLegs[cancelledLegs.length - 1].arrivalAirportTimeLocal,\r\n // departure airport of first leg\r\n departureAirport: cancelledLegs[0].departureAirport,\r\n // arrival airport of last leg\r\n arrivalAirport:\r\n cancelledLegs[cancelledLegs.length - 1].arrivalAirportId,\r\n leadPassenger: cancelledLeadPassenger || \"No Lead Passenger\",\r\n mobilePreviewCssClass: \"position-absolute hide\"\r\n });\r\n }\r\n }\r\n if (upcomingLegs.length > 0) {\r\n orderExist = (currentUpcoming || []).find(\r\n order => order.orderIdentifier === orderIdentifier\r\n );\r\n if (!orderExist) {\r\n upcomingOrders.push({\r\n orderKey,\r\n orderIdentifier,\r\n accountId,\r\n orderStatus: getOrderStatus(upcomingLegs),\r\n legs: upcomingLegs,\r\n // departure time of first leg\r\n departureTime: upcomingLegs[0].departureAirportTimeLocal,\r\n departureAirportTimeUTC: upcomingLegs[0].departureAirportTimeUTC,\r\n // arrival time of last leg\r\n arrivalTime:\r\n upcomingLegs[upcomingLegs.length - 1].arrivalAirportTimeLocal,\r\n // departure airport of first leg\r\n departureAirport: upcomingLegs[0].departureAirport,\r\n // arrival airport of last leg\r\n arrivalAirport:\r\n upcomingLegs[upcomingLegs.length - 1].arrivalAirportId,\r\n leadPassenger: upcomingLeadPassenger || \"No Lead Passenger\",\r\n mobilePreviewCssClass: \"position-absolute hide\"\r\n });\r\n } else {\r\n if (item.isUpdate) {\r\n orderExist.legs = upcomingLegs;\r\n orderExist.accountId = accountId;\r\n orderExist.orderStatus = item.orderStatus;\r\n orderExist.departureTime = upcomingLegs[0].departureAirportTimeLocal;\r\n orderExist.departureAirportTimeUTC =\r\n upcomingLegs[0].departureAirportTimeUTC;\r\n // arrival time of last leg\r\n orderExist.arrivalTime =\r\n upcomingLegs[upcomingLegs.length - 1].arrivalAirportTimeLocal[0];\r\n // departure airport of first leg\r\n orderExist.departureAirport = upcomingLegs[0].departureAirport;\r\n // arrival airport of last leg\r\n orderExist.arrivalAirport =\r\n upcomingLegs[upcomingLegs.length - 1].arrivalAirportId;\r\n orderExist.leadPassenger =\r\n upcomingLeadPassenger || \"No Lead Passenger\";\r\n }\r\n }\r\n }\r\n });\r\n return { upcomingOrders, pastOrders, cancelledOrders };\r\n}\r\n\r\nexport function isDialogScreen(path) {\r\n const paths = [\"catering\", \"passengers\"];\r\n return paths.some(p => path.includes(p));\r\n}\r\n\r\nexport function sortUpcomingItinerariesLegs(a, b) {\r\n if (a.departureAirportTimeUTC > b.departureAirportTimeUTC) return 1;\r\n if (a.departureAirportTimeUTC < b.departureAirportTimeUTC) return -1;\r\n return 0;\r\n}\r\n\r\nexport function sortPastItineraries(a, b) {\r\n const valueA = a.legs[0].arrivalAirportTimeUTC;\r\n const valueB = b.legs[0].arrivalAirportTimeUTC;\r\n if (valueA < valueB) return 1;\r\n if (valueA > valueB) return -1;\r\n return 0;\r\n}\r\n\r\nexport function isLegCancelled(status) {\r\n return status === legStatus.CANCELLED ||\r\n status === legStatus.CANCELLATION_PENDING;\r\n}\r\n\r\nexport function flightPayload(userType, leg, orderId, accountId) {\r\n const legAircraft = getAircraftByAllFields(leg.aircraftTypeName);\r\n let reqPayLoad = {};\r\n const account = accountId;\r\n const flightLegId = leg.legId;\r\n const activeLeg = leg;\r\n if (userType.isVJ2 || userType.isAdhoc) {\r\n reqPayLoad = {\r\n flightRequestForCustomer: {\r\n referenceOrderId: orderId,\r\n account,\r\n flightLegs: {\r\n flightLeg: {\r\n flightLegId,\r\n departureAirportId: activeLeg.departureAirportId,\r\n arrivalAirportId: activeLeg.arrivalAirportId,\r\n numberOfPassenger: activeLeg.numberOfPassenger,\r\n departureTime: activeLeg.departureAirportTimeUTC,\r\n arrivalTime: activeLeg.arrivalAirportTimeUTC,\r\n aircraftType: legAircraft.code,\r\n requestedAircraftTypeId: legAircraft.id,\r\n isCancelled: true,\r\n },\r\n },\r\n mode: 'cancel',\r\n },\r\n };\r\n } else if (userType.isFSP) {\r\n if (activeLeg.legStatus === 'Unconfirmed') {\r\n reqPayLoad = {\r\n flightRequestForCustomer: {\r\n quoteId: orderId || '',\r\n referenceOrderId: orderId || '',\r\n account,\r\n flightLegs: {\r\n flightLeg: {\r\n flightLegId: activeLeg.legId || '',\r\n flightLegExtIdentifier: activeLeg.flightLegExtIdentifier || '',\r\n departureAirportId: activeLeg.departureAirportId,\r\n arrivalAirportId: activeLeg.arrivalAirportId,\r\n numberOfPassenger: activeLeg.numberOfPassenger,\r\n departureTime: activeLeg.departureAirportTimeUTC,\r\n arrivalTime: activeLeg.arrivalAirportTimeUTC,\r\n aircraftType: legAircraft.code,\r\n requestedAircraftTypeId: legAircraft.id,\r\n isCancelled: true,\r\n },\r\n },\r\n mode: 'cancel',\r\n },\r\n };\r\n } else if (activeLeg.legStatus === 'Confirmed') {\r\n reqPayLoad = {\r\n flightRequestForCustomer: {\r\n referenceOrderId: orderId,\r\n account,\r\n flightLegs: {\r\n flightLeg: {\r\n flightLegId,\r\n departureAirportId: activeLeg.departureAirportId,\r\n arrivalAirportId: activeLeg.arrivalAirportId,\r\n numberOfPassenger: activeLeg.numberOfPassenger,\r\n departureTime: activeLeg.departureAirportTimeUTC,\r\n arrivalTime: activeLeg.arrivalAirportTimeUTC,\r\n aircraftType: legAircraft.code,\r\n requestedAircraftTypeId: legAircraft.id,\r\n isCancelled: true,\r\n },\r\n },\r\n mode: 'cancel',\r\n },\r\n };\r\n }\r\n }\r\n reqPayLoad = jsonToXml(reqPayLoad);\r\n return reqPayLoad;\r\n}\r\n\r\nexport function getItineraryStatus(status, flag) {\r\n if (flag === \"pastItineraries\") {\r\n return status === legStatus.CANCELLATION_PENDING\r\n ? legStatus.CANCELLATION_PENDING\r\n : legStatus.CONFIRMED;\r\n } else if (flag === \"upcomingItineraries\") {\r\n if (status === legStatus.UNCONFIRMED) return \"On Request\";\r\n if (status === legStatus.CANCELLATION_PENDING)\r\n return legStatus.CANCELLATION_PENDING;\r\n }\r\n return flag === \"cancelledItineraries\" ? status : legStatus.CONFIRMED;\r\n}\r\n\r\nexport function getItineraryLegStatus(currentLeg, itineraryType) {\r\n let status = '';\r\n if (itineraryType === 'cancelledItineraries') {\r\n status = 'Cancelled';\r\n }\r\n else if (itineraryType === 'pastItineraries') {\r\n if (currentLeg.legStatus !== 'Cancellation Pending') {\r\n status = 'Confirmed';\r\n }\r\n else {\r\n status = 'Cancellation Pending';\r\n }\r\n }\r\n else if (itineraryType === 'upcomingItineraries') {\r\n if (currentLeg.legStatus === 'Unconfirmed') {\r\n status = 'On Request';\r\n }\r\n else if (currentLeg.legStatus === 'Landed') {\r\n status = 'Confirmed';\r\n }\r\n else {\r\n status = currentLeg.legStatus;\r\n }\r\n }\r\n return status;\r\n}\r\n\r\nexport function seprateDetailPastUpcomingLegs(legs, type) {\r\n let pastItinerary = [];\r\n let upcomingItinerary = [];\r\n let cancelledItinerary = [];\r\n if (type !== 'cancelledItineraries') {\r\n legs.forEach(leg => {\r\n if (isPastLeg(leg) === false && leg.legStatus !== \"Cancelled\") {\r\n upcomingItinerary.push(leg);\r\n }\r\n else if (isPastLeg(leg) === true && leg.legStatus !== \"Cancelled\") {\r\n pastItinerary.push(leg);\r\n }\r\n });\r\n if (type === 'upcomingItineraries') {\r\n return upcomingItinerary;\r\n }\r\n else if (type === 'pastItineraries') {\r\n return pastItinerary;\r\n }\r\n return legs;\r\n }\r\n else {\r\n legs.forEach(leg => {\r\n if (leg.legStatus === \"Cancelled\") {\r\n cancelledItinerary.push(leg);\r\n }\r\n })\r\n return cancelledItinerary;\r\n }\r\n}","import * as type from '../actionTypes';\r\nimport {\r\n sortPastItineraries,\r\n sepratePastUpcomingLegs,\r\n sortUpcomingItinerariesLegs,\r\n} from '../../utils/itinerariesUtils';\r\nimport { ITINERARY_TYPES } from '../../constants/ItineraryConstants';\r\n\r\n\r\nconst initialState = {\r\n errorsItineraries: '',\r\n\r\n pastItineraries: [],\r\n cancelItineraries: [],\r\n upcomingItineraries: [],\r\n\r\n isLoadMorePast: false,\r\n isLoadMoreUpcoming: false,\r\n isLoadMoreCancelled: false,\r\n\r\n isLoadingMorePastItineraries: false,\r\n isLoadingMoreUpcomingItineraries: false,\r\n isLoadingMoreCancelledItineraries: false,\r\n\r\n isLoadingPastItineraries: false,\r\n isLoadingUpcomingItineraries: false,\r\n isLoadingCancelledItineraries: false,\r\n\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case type.FETCH_ITINERARIES_INIT: {\r\n let {\r\n isLoadingPastItineraries,\r\n isLoadingUpcomingItineraries,\r\n isLoadingCancelledItineraries,\r\n isLoadingMorePastItineraries,\r\n isLoadingMoreUpcomingItineraries,\r\n isLoadingMoreCancelledItineraries,\r\n } = state;\r\n if (action.itineraryType === ITINERARY_TYPES.PAST_ITINERARIES) {\r\n action.isLoadMore ? isLoadingMorePastItineraries = true : isLoadingPastItineraries = true;\r\n } else if (action.itineraryType === ITINERARY_TYPES.UPCOMING_ITINERARIES) {\r\n action.isLoadMore ? isLoadingMoreUpcomingItineraries = true : isLoadingUpcomingItineraries = true;\r\n } else if (action.itineraryType === ITINERARY_TYPES.CANCELLED_ITINERARIES) {\r\n action.isLoadMore ? isLoadingMoreCancelledItineraries = true : isLoadingCancelledItineraries = true;\r\n }\r\n return Object.assign({}, state, {\r\n isLoadingPastItineraries,\r\n isLoadingUpcomingItineraries,\r\n isLoadingCancelledItineraries,\r\n isLoadingMorePastItineraries,\r\n isLoadingMoreUpcomingItineraries,\r\n isLoadingMoreCancelledItineraries,\r\n errorsItineraries: '',\r\n });\r\n }\r\n\r\n case type.FETCH_ITINERARIES_SUCCESS: {\r\n let { upcomingItineraries, pastItineraries, cancelItineraries } = state;\r\n const {\r\n upcomingOrders,\r\n pastOrders,\r\n cancelledOrders,\r\n } = sepratePastUpcomingLegs(\r\n action.data,\r\n upcomingItineraries,\r\n pastItineraries,\r\n cancelItineraries,\r\n );\r\n upcomingItineraries = upcomingItineraries.concat(upcomingOrders);\r\n pastItineraries = pastItineraries.concat(pastOrders);\r\n cancelItineraries = cancelItineraries.concat(cancelledOrders);\r\n\r\n upcomingItineraries.sort(sortUpcomingItinerariesLegs);\r\n pastItineraries.sort(sortPastItineraries);\r\n\r\n const LoadingKeys = {\r\n isLoadingPastItineraries: state.isLoadingPastItineraries,\r\n isLoadMorePast: state.isLoadMorePast,\r\n isLoadingUpcomingItineraries: state.isLoadingUpcomingItineraries,\r\n isLoadMoreUpcoming: state.isLoadMoreUpcoming,\r\n isLoadingCancelledItineraries: state.isLoadingCancelledItineraries,\r\n isLoadMoreCancelled: state.isLoadMoreCancelled,\r\n isLoadingMorePastItineraries: state.isLoadingMorePastItineraries,\r\n isLoadingMoreUpcomingItineraries: state.isLoadingMoreUpcomingItineraries,\r\n isLoadingMoreCancelledItineraries: state.isLoadingMoreCancelledItineraries,\r\n };\r\n if (action.itineraryType === ITINERARY_TYPES.PAST_ITINERARIES) {\r\n action.isLoadMore ? LoadingKeys.isLoadingMorePastItineraries = false : LoadingKeys.isLoadingPastItineraries = false;\r\n LoadingKeys.isLoadMorePast = action.data.length ? true : false;\r\n } else if (action.itineraryType === ITINERARY_TYPES.UPCOMING_ITINERARIES) {\r\n action.isLoadMore ? LoadingKeys.isLoadingMoreUpcomingItineraries = false : LoadingKeys.isLoadingUpcomingItineraries = false;\r\n LoadingKeys.isLoadMoreUpcoming = action.data.length ? true : false;\r\n } else if (action.itineraryType === ITINERARY_TYPES.CANCELLED_ITINERARIES) {\r\n action.isLoadMore ? LoadingKeys.isLoadingMoreCancelledItineraries = false : LoadingKeys.isLoadingCancelledItineraries = false;\r\n LoadingKeys.isLoadMoreCancelled = action.data.length ? true : false;\r\n }\r\n\r\n return Object.assign({}, state, {\r\n ...LoadingKeys,\r\n upcomingItineraries,\r\n pastItineraries,\r\n cancelItineraries,\r\n errorsItineraries: '',\r\n });\r\n }\r\n\r\n case type.FETCH_ITINERARIES_FAIL: {\r\n const LoadingKeys = {\r\n isLoadingPastItineraries: false,\r\n isLoadingUpcomingItineraries: false,\r\n isLoadingCancelledItineraries: false,\r\n };\r\n if (action.itineraryType === ITINERARY_TYPES.PAST_ITINERARIES) {\r\n action.isLoadMore ? LoadingKeys.isLoadingMorePastItineraries = false : LoadingKeys.isLoadingPastItineraries = false;\r\n } else if (action.itineraryType === ITINERARY_TYPES.UPCOMING_ITINERARIES) {\r\n action.isLoadMore ? LoadingKeys.isLoadingMoreUpcomingItineraries = false : LoadingKeys.isLoadingUpcomingItineraries = false;\r\n } else if (action.itineraryType === ITINERARY_TYPES.CANCELLED_ITINERARIES) {\r\n action.isLoadMore ? LoadingKeys.isLoadingMoreCancelledItineraries = false : LoadingKeys.isLoadingCancelledItineraries = false;\r\n }\r\n return Object.assign({}, state, {\r\n ...LoadingKeys,\r\n upcomingItineraries: [],\r\n pastItineraries: [],\r\n cancelItineraries: [],\r\n errorsItineraries: action.data,\r\n });\r\n }\r\n \r\n case type.CLEAR_ERROR_FETCH_ITINERARY: {\r\n return Object.assign({}, state, {\r\n errorsItineraries: '',\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as type from '../../actionTypes';\r\nimport { getFlightId } from '../../../utils/itinerariesUtils';\r\n\r\nconst initialState = {\r\n isLoading: false,\r\n legs: {},\r\n accountId: null,\r\n allLegs: [],\r\n orderType: '',\r\n itineraryDetailsError: '',\r\n orderExtIdentifier: '',\r\n orderStatus: '',\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case type.ITINERARY_DETAILS_INIT: {\r\n return Object.assign({}, state, {\r\n isLoading: true,\r\n itineraryDetails: {},\r\n allLegs: [],\r\n orderType: '',\r\n itineraryDetailsError: '',\r\n orderStatus: '',\r\n });\r\n }\r\n\r\n case type.ITINERARY_DETAILS_SUCCESS: {\r\n const {\r\n legs,\r\n orderExtIdentifier,\r\n orderLegId,\r\n orderStatus,\r\n accountId,\r\n orderType\r\n } = action.data;\r\n const legsData = {};\r\n legs.forEach(leg => {\r\n legsData[getFlightId(leg)] = leg;\r\n })\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n legs: legsData,\r\n orderExtIdentifier,\r\n orderId: orderLegId,\r\n orderStatus,\r\n accountId,\r\n allLegs: legs,\r\n orderType: orderType ? orderType : '',\r\n itineraryDetailsError: '',\r\n });\r\n }\r\n\r\n case type.ITINERARY_DETAILS_FAIL: {\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n itineraryDetailsError: action.data,\r\n });\r\n }\r\n\r\n case type.FETCH_ORDER_ID_BY_LEG_INIT: {\r\n return Object.assign({}, state, {\r\n isLoading: true,\r\n orderExtIdentifier: '',\r\n itineraryDetailsError: '',\r\n });\r\n }\r\n case type.FETCH_ORDER_ID_BY_LEG_SUCCESS: {\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n orderExtIdentifier: action.data,\r\n itineraryDetailsError: '',\r\n });\r\n }\r\n case type.FETCH_ORDER_ID_BY_LEG_FAIL: {\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n itineraryDetailsError: action.data,\r\n });\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","const dateFormat = {\r\n DATE: 'DD MMM YYYY',\r\n MONTH_YEAR: 'MMM YYYY',\r\n SHORT_MONTH_YEAR: 'MM YYYY',\r\n YEAR: 'YYYY',\r\n SHORT_MONTH: 'MM',\r\n};\r\n\r\nexport default dateFormat;\r\n","/* global google:false */\r\nimport moment from \"moment\";\r\nimport { add } from \"date-fns\";\r\nimport GreatCircle from \"great-circle\";\r\nimport { garanteeArray } from \"../utils/sourceUtils\";\r\nimport CateringConstants from 'constants/CateringConstants';\r\nimport { TIME_TO_SHOW_CREW } from \"../constants/ItineraryConstants\";\r\nimport CountriesList from \"../constants/CountryConstants\";\r\nimport store from '../store/store';\r\nimport dateFormat from '../constants/DateConstants';\r\n\r\nconst LEG_STATUS_CONFIRMED = 'confirmed';\r\nlet instance = null;\r\nconst EARTH_RADIUS = 6372.8;\r\nclass Helpers {\r\n refs = {};\r\n static lastFocused = \"\";\r\n\r\n constructor() {\r\n if (!instance) {\r\n instance = this;\r\n }\r\n return instance;\r\n }\r\n\r\n guid() {\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n\r\n return `${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`.toUpperCase();\r\n }\r\n\r\n getValue(data) {\r\n return typeof data === \"object\" ? (data || [])[0] : data;\r\n }\r\n\r\n getFlightDuration(deptAirport, arriveAirport, aircraftObj) {\r\n if (!aircraftObj) {\r\n return null;\r\n }\r\n const cruiseSpeed = parseFloat(this.getValue(aircraftObj.speed));\r\n const speedBlock30KPH = parseFloat(\r\n this.getValue(aircraftObj.speedFirst30minBlock)\r\n );\r\n const speedBlock60KPH = parseFloat(\r\n this.getValue(aircraftObj.speedSecond30minBlock)\r\n );\r\n const taxiTimeInMinutes = parseFloat(\r\n this.getValue(aircraftObj.taxiTimeMinutes)\r\n );\r\n const totalDistance = this.getAirportDistance(deptAirport, arriveAirport);\r\n\r\n const minutesInHalfAnHour = 30;\r\n const minutesInHour = 60;\r\n const sb30Distance = 0.5 * speedBlock30KPH;\r\n const sb60Distance = 0.5 * speedBlock60KPH;\r\n const sb30Distance2 = 2 * sb30Distance;\r\n let time = 2 * taxiTimeInMinutes;\r\n let distanceToGo = totalDistance;\r\n if (distanceToGo - sb30Distance2 > 0) {\r\n time += minutesInHour;\r\n distanceToGo -= sb30Distance2;\r\n\r\n if (distanceToGo - sb60Distance > 0) {\r\n time += minutesInHalfAnHour;\r\n distanceToGo -= sb60Distance;\r\n\r\n if (distanceToGo > 0) {\r\n time += (distanceToGo / cruiseSpeed) * minutesInHour;\r\n }\r\n } else {\r\n time += (distanceToGo / speedBlock60KPH) * minutesInHour;\r\n }\r\n } else {\r\n time += (distanceToGo / speedBlock30KPH) * minutesInHour;\r\n }\r\n\r\n return this.roundTo5Minutes(time); // in minutes\r\n }\r\n\r\n getAirportDistance(deptAirport, arriveAirport) {\r\n if (!deptAirport || !arriveAirport) return 0;\r\n return GreatCircle.distance(\r\n parseFloat(deptAirport.latitude),\r\n parseFloat(deptAirport.longitude),\r\n parseFloat(arriveAirport.latitude),\r\n parseFloat(arriveAirport.longitude),\r\n EARTH_RADIUS\r\n );\r\n }\r\n\r\n getCurrentTimestamp() {\r\n const now = new Date;\r\n return Date.UTC(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(),\r\n now.getMinutes(), now.getSeconds(), now.getMilliseconds());\r\n }\r\n\r\n roundTo5Minutes(minutes) {\r\n return this.zeroPad(5 * Math.round(minutes / 5), 2);\r\n }\r\n\r\n roundUp5(x) {\r\n return this.zeroPad(Math.ceil(x / 5) * 5, 2);\r\n }\r\n\r\n roundUpTo(x,roundUpto) {\r\n return Math.ceil(x / roundUpto) * roundUpto;\r\n }\r\n\r\n zeroPad(num, places) {\r\n const zero = places - num.toString().length + 1;\r\n return Array(+(zero > 0 && zero)).join(\"0\") + num;\r\n }\r\n\r\n findAndRemove(array, property, value) {\r\n array.forEach((result, index) => {\r\n if (result[property] === value) {\r\n // Remove from array\r\n array.splice(index, 1);\r\n }\r\n });\r\n return array;\r\n }\r\n\r\n getFlagClass(airport) {\r\n let countryCode = airport ? this.getValue(airport.iso2) : '';\r\n let flagClass = '';\r\n\r\n if (countryCode) {\r\n countryCode = countryCode.split('-');\r\n flagClass = `flag-icon-${countryCode[0].toLowerCase()}`;\r\n }\r\n return flagClass;\r\n }\r\n\r\n clone(obj) {\r\n if (!obj || typeof obj !== 'object' || !!obj.size) {\r\n return obj;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(obj));\r\n }\r\n\r\n getFutureDateOffset() {\r\n const date = new Date();\r\n if ((date.getMonth() + 1) >= 6) {\r\n return 12;\r\n }\r\n return 12 - date.getMonth();\r\n }\r\n\r\n getMonthName(MonthIndex) {\r\n const month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov',\r\n 'Dec'];\r\n let mIndex = MonthIndex;\r\n if (MonthIndex >= month.length) {\r\n mIndex = 0;\r\n }\r\n return month[mIndex + 1];\r\n }\r\n\r\n roundUp5MinutesMoment(date) {\r\n if (!date || !moment(date).isValid()) {\r\n return null;\r\n }\r\n const aux = moment(date);\r\n // Checks if there are any seconds or milliseconds on the date\r\n if (+aux.format('ssSSS') !== 0) {\r\n // If yes, adds a minute so when rounds down doesn't ignore the seconds\r\n aux.add(1, 'minute');\r\n }\r\n aux.startOf('minute'); // Rounds seconds dows\r\n const timeDiff = Math.ceil(aux.minutes() / 5) * 5 - aux.minutes(); // Minute difference\r\n return aux.add(timeDiff, 'minute'); // Rouds to 5 minutes\r\n }\r\n\r\n getLatestTimeOfAirport(airportObj) {\r\n let time = moment();\r\n const utcoffset = time.utcOffset();\r\n const offset = this.findOffset(time, airportObj);\r\n time = time.add(-1 * (utcoffset - offset), 'minutes');\r\n // As per VSHADOW-2279 - Removed in compliance with CMA/CMX\r\n // time = time.add(10, 'minutes'); // adding 10 mins more for takeoff\r\n return time;\r\n }\r\n\r\n generateRandomKey() {\r\n return Math.floor((Math.random() * 100) + 1);\r\n }\r\n\r\n redirectTo(hash) {\r\n window.location.hash = hash;\r\n }\r\n\r\n capitalizeFirstLetter(str) {\r\n if (!str) {\r\n return '';\r\n }\r\n return str.replace(/\\w\\S*/g,\r\n (txt) => (txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()));\r\n }\r\n\r\n getAirportDisplayText(airport) {\r\n // text: capitalizeFirstLetter(airport.name[0])+' '+airport.icao[0],\r\n return (!!airport && Object.keys(airport).length > 0) ?\r\n `${this.capitalizeFirstLetter(this.getValue(airport.city))}, ` +\r\n `${this.capitalizeFirstLetter(this.getValue(airport.name))} ` +\r\n `(${this.getValue(airport.icao)}), ${this.getValue(airport.iso2) ?\r\n this.getValue(airport.iso2).substring(0, 2) : ''}` : '';\r\n }\r\n \r\n getLegStatusString(statusStr) {\r\n let status = statusStr;\r\n if (status.toLowerCase() !== LEG_STATUS_CONFIRMED) {\r\n status = 'On Request';\r\n }\r\n return status;\r\n }\r\n\r\n getAirportSelectedText(airport) {\r\n return (!!airport && Object.keys(airport).length > 0) ?\r\n `${this.capitalizeFirstLetter(\r\n this.getValue(airport.name))} ${this.getValue(airport.icao)}` : '';\r\n }\r\n\r\n isGuid(id) {\r\n let isGuid = true;\r\n const regex = /[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}/i;\r\n const match = regex.exec(id);\r\n\r\n if (!match) {\r\n // its a id generated from GV\r\n isGuid = false;\r\n }\r\n\r\n return isGuid;\r\n }\r\n getArrivalTime(departTime, duration, deptAirport, arriveAirport) {\r\n const time = moment.utc(departTime);\r\n // finding offset difference\r\n const deptOffset = this.findOffset(time, deptAirport);\r\n const arriveOffset = this.findOffset(time, arriveAirport);\r\n const offsetDiff = arriveOffset - deptOffset;\r\n const arrivalTime = time\r\n .add(duration, \"minutes\")\r\n .add(offsetDiff, \"minutes\")\r\n .format();\r\n return arrivalTime;\r\n }\r\n\r\n // finds the correct offset for the given timeObj and airportObj\r\n findOffset(time, airport) {\r\n let offset;\r\n if (airport && airport.timezones && airport.timezones.length) {\r\n const arrayOffset = this.getzoneOffset(time, airport.timezones);\r\n const zone = this.guaranteeArray(airport.timezones)[arrayOffset];\r\n if (\r\n zone.hasOwnProperty(\"dstFromTimeUtc\") &&\r\n (time.isBetween(\r\n this.getValue(zone.dstFromTimeUtc),\r\n this.getValue(zone.dstToTimeUtc)\r\n ) ||\r\n time.isSame(this.getValue(zone.dstFromTimeUtc)))\r\n ) {\r\n offset = parseFloat(this.getValue(zone.dstUtcOffset) || 0);\r\n } else {\r\n offset = parseFloat(this.getValue(zone.standardUtcOffsetMinutes) || 0);\r\n }\r\n }\r\n\r\n return offset;\r\n }\r\n\r\n guaranteeArray(obj) {\r\n if (obj) {\r\n return this.isArray(obj) ? obj : [obj];\r\n }\r\n return [];\r\n }\r\n\r\n isArray(obj) {\r\n return obj.constructor === Array;\r\n }\r\n\r\n getzoneOffset(time, timezones) {\r\n let offset = 0;\r\n timezones.forEach((data, index) => {\r\n if (\r\n data.hasOwnProperty(\"dstFromTimeUtc\") &&\r\n (time.isBetween(\r\n this.getValue(data.effectiveFromTimeUtc),\r\n this.getValue(data.effectiveToTimeUtc)\r\n ) ||\r\n time.isSame(this.getValue(data.effectiveFromTimeUtc)))\r\n ) {\r\n offset = index;\r\n }\r\n });\r\n return offset;\r\n }\r\n\r\n capitalizeWord(str) {\r\n return str.toLowerCase().split(' ').map(word => {\r\n return word.charAt(0).toUpperCase() + word.slice(1)\r\n }).join(' ')\r\n }\r\n\r\n // get utc string dates and returns (+1) or (+2)\r\n getDaysDiff(depart, arrival) {\r\n let result = \"\";\r\n const date1 = this.getUtcDateObj(depart);\r\n const date2 = this.getUtcDateObj(arrival);\r\n let dayDiff = date2.getDate() - date1.getDate();\r\n // const monthDiff = date2.getMonth() - date1.getMonth();\r\n // const yearDiff = date2.getYear() - date1.getYear();\r\n // if(monthDiff>1){\r\n // monthDiff = Math.abs(date2.getMonth() - date1.getMonth())-12;\r\n // }else{\r\n // if(monthDiff < -1){\r\n // monthDiff = Math.abs(Math.abs(date1.getMonth() - date2.getMonth())-12);\r\n // }\r\n // }\r\n if (dayDiff > 10) {\r\n dayDiff =\r\n Math.abs(date2.getDate() - date1.getDate()) -\r\n this.daysInMonth(date2.getMonth() + 1, date2.getYear());\r\n } else {\r\n if (dayDiff < -10) {\r\n dayDiff = Math.abs(\r\n Math.abs(date2.getDate() - date1.getDate()) -\r\n this.daysInMonth(date1.getMonth() + 1, date1.getYear())\r\n );\r\n }\r\n }\r\n let diff = 0;\r\n diff = dayDiff;\r\n // if(yearDiff>0 || yearDiff < 0){\r\n // diff=diff*yearDiff;\r\n // }\r\n // if(monthDiff>0 || monthDiff < 0){\r\n // diff=diff*monthDiff;\r\n // }\r\n if (diff > 0) {\r\n result = `(+${diff})`;\r\n } else if (diff < 0) {\r\n result = `(${diff})`;\r\n }\r\n\r\n return result;\r\n }\r\n // gets 2016-03-30T17:30:00+00:00 and returns js Obj with 0 offset\r\n\r\n truncateStr(text, len, useWordBoundary) {\r\n if (!text || !len) {\r\n return '';\r\n }\r\n let result = text.toString().trim();\r\n const isTooLong = result.length > len;\r\n result = isTooLong ? result.substr(0, len).trim() : result;\r\n result = (useWordBoundary && isTooLong) ? result.substr(0, result.lastIndexOf(' ')) : result;\r\n return isTooLong ? `${result}...` : result;\r\n }\r\n\r\n daysInMonth(month, year) {\r\n return new Date(year, month, 0).getDate();\r\n }\r\n\r\n getValue(data) {\r\n return typeof data === \"object\" ? (data || [])[0] : data;\r\n }\r\n\r\n /* To deep copy an Object in tempArray */\r\n copy = (o) => {\r\n let output; let v; let\r\n key;\r\n output = Array.isArray(o) ? [] : {};\r\n for (key in o) {\r\n v = o[key];\r\n output[key] = (typeof v === 'object') ? this.copy(v) : v;\r\n }\r\n return output;\r\n };\r\n\r\n // finds the correct offset for the given timeObj and airportObj\r\n findOffset(time, airport) {\r\n let offset;\r\n if (airport && airport.timezones && airport.timezones.length) {\r\n const arrayOffset = this.getzoneOffset(time, airport.timezones);\r\n const zone = garanteeArray(airport.timezones)[arrayOffset];\r\n if (\r\n zone.hasOwnProperty(\"dstFromTimeUtc\") &&\r\n (time.isBetween(\r\n this.getValue(zone.dstFromTimeUtc),\r\n this.getValue(zone.dstToTimeUtc)\r\n ) ||\r\n time.isSame(this.getValue(zone.dstFromTimeUtc)))\r\n ) {\r\n offset = parseFloat(this.getValue(zone.dstUtcOffset) || 0);\r\n } else {\r\n offset = parseFloat(this.getValue(zone.standardUtcOffsetMinutes) || 0);\r\n }\r\n }\r\n\r\n return offset;\r\n }\r\n // gets 2016-03-30T17:30:00+00:00 and returns js Obj with 0 offset\r\n getUtcDateObj(isoString) {\r\n if (!isoString) {\r\n return \"\";\r\n }\r\n const d = new Date(isoString);\r\n const mom = moment(d);\r\n return new Date(d.getTime() + -1 * mom.utcOffset() * 60000); // subtracting utc offset\r\n }\r\n isEditableLeg(leg, departureAirportDetail) {\r\n if (!leg || !leg.departureAirportTimeLocal || !departureAirportDetail) {\r\n return true;\r\n }\r\n let isEditable = true;\r\n // finding offset difference\r\n const time = moment.utc(this.getValue(leg.departureAirportTimeLocal));\r\n const timeZoneOffset = this.findOffset(time, departureAirportDetail);\r\n\r\n // for example time was 21:54+01:00\r\n // after below call, it will become 20:54\r\n const deptUtcObj = this.getUtcDateObj(\r\n this.getValue(leg.departureAirportTimeLocal)\r\n );\r\n\r\n // now adjust airport timezone in above time\r\n deptUtcObj.setTime(deptUtcObj.getTime() - timeZoneOffset * 60 * 1000);\r\n\r\n // get current utc time of the user\r\n const current = this.getUtcDateObj(new Date().toISOString());\r\n\r\n if (current.getTime() > deptUtcObj.getTime()) {\r\n isEditable = false;\r\n }\r\n\r\n return isEditable;\r\n }\r\n\r\n satisfy24HoursCheck(leg, departureAirport) {\r\n let satisfy24HoursCheck = false;\r\n\r\n // finding offset difference\r\n const time = moment.utc(this.getValue(leg.departureAirportTimeLocal));\r\n const timeZoneOffset = this.findOffset(time, departureAirport);\r\n\r\n // for example time was 21:54+01:00\r\n // after below call, it will become 20:54\r\n const deptUtcObj = this.getUtcDateObj(\r\n this.getValue(leg.departureAirportTimeLocal)\r\n );\r\n\r\n // now adjust airport timezone in above time\r\n deptUtcObj.setTime(deptUtcObj.getTime() - timeZoneOffset * 60 * 1000);\r\n const current = this.getUtcDateObj(new Date().toISOString());\r\n\r\n if (current.getTime() > deptUtcObj.getTime()) {\r\n // departure time is in past i.e. flight has already taken off\r\n satisfy24HoursCheck = true;\r\n } else {\r\n // departure time is in future\r\n deptUtcObj.setTime(\r\n deptUtcObj.getTime() - TIME_TO_SHOW_CREW * 60 * 60 * 1000\r\n ); // subtracting 24 hours\r\n\r\n if (current.getTime() > deptUtcObj.getTime()) {\r\n satisfy24HoursCheck = true;\r\n }\r\n }\r\n\r\n return satisfy24HoursCheck;\r\n }\r\n\r\n getCountryFromCode(code) {\r\n let countryObj = {};\r\n CountriesList.some((c) => {\r\n if (c.THREE_LETTER_CODE === code.toUpperCase()) {\r\n countryObj = c;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return countryObj;\r\n }\r\n // get js date object and returns the formated string \"02 Sep, 2016\"\r\n getStandardDateFormat(dateObj) {\r\n // expect a moment date object\r\n return dateObj.format(dateFormat.DATE);\r\n }\r\n \r\n getLatestTimeOfAirport(airportObj) {\r\n let time = moment();\r\n const utcoffset = time.utcOffset();\r\n const offset = this.findOffset(time, airportObj);\r\n time = time.add(-1 * (utcoffset - offset), 'minutes');\r\n // As per VSHADOW-2279 - Removed in compliance with CMA/CMX\r\n // time = time.add(10, 'minutes'); // adding 10 mins more for takeoff\r\n return time;\r\n }\r\n\r\n // finds the correct offset for the given timeObj and airportObj\r\n findOffset(time, airport) {\r\n let offset;\r\n if (airport && airport.timezones && airport.timezones.length) {\r\n const arrayOffset = this.getzoneOffset(time, airport.timezones);\r\n const zone = garanteeArray(airport.timezones)[arrayOffset];\r\n if (zone.hasOwnProperty('dstFromTimeUtc') &&\r\n (time.isBetween(this.getValue(zone.dstFromTimeUtc),\r\n this.getValue(zone.dstToTimeUtc)) ||\r\n time.isSame(this.getValue(zone.dstFromTimeUtc)))) {\r\n offset = parseFloat(this.getValue(zone.dstUtcOffset) || 0);\r\n } else {\r\n offset = parseFloat(this.getValue(zone.standardUtcOffsetMinutes) || 0);\r\n }\r\n }\r\n return offset;\r\n }\r\n\r\n /*\r\n * find which timezone selected time lies\r\n * */\r\n getzoneOffset(time, timezones) {\r\n let offset = 0;\r\n timezones.forEach((data, index) => {\r\n if (data.hasOwnProperty('dstFromTimeUtc') &&\r\n (time.isBetween(this.getValue(data.effectiveFromTimeUtc),\r\n this.getValue(data.effectiveToTimeUtc)) ||\r\n time.isSame(this.getValue(data.effectiveFromTimeUtc)))) {\r\n offset = index;\r\n }\r\n });\r\n return offset;\r\n }\r\n\r\n addRealMonth = (d) => {\r\n d.setDate(1);\r\n return add(d, { years: 1, months: 1, days: -1 });\r\n }\r\n}\r\nexport const clone = (obj) => {\r\n if (!obj || typeof obj !== 'object' || !!obj.size) {\r\n return obj;\r\n }\r\n return JSON.parse(JSON.stringify(obj));\r\n};\r\n\r\nconst $ = window.$;\r\nexport const scrollFunctionForTable = () => {\r\n $('.vistajet_table_wrapper').scroll(function(element) {\r\n var target = element.target;\r\n var maxHorizontalScroll = target.scrollWidth - target.clientWidth;\r\n var scrollPosition = target.scrollLeft;\r\n if (scrollPosition === 0) {\r\n $(target).addClass('vistajet_scroll_right')\r\n .removeClass('vistajet_scroll_center')\r\n .removeClass('vistajet_scroll_left');\r\n } else if (scrollPosition === maxHorizontalScroll) {\r\n $(target).addClass('vistajet_scroll_left')\r\n .removeClass('vistajet_scroll_center')\r\n .removeClass('vistajet_scroll_right');\r\n } else {\r\n $(target).addClass('vistajet_scroll_center')\r\n .removeClass('vistajet_scroll_left')\r\n .removeClass('vistajet_scroll_right');\r\n }\r\n });\r\n}\r\n\r\nexport default (Helpers = new Helpers()); // singleton\r\n","export function isArray(obj) {\r\n return obj.constructor === Array;\r\n}\r\n\r\nconst onlyUnique = (value, index, self) => (\r\n self.indexOf(value) === index\r\n);\r\n\r\nexport const filterUnique = (array) => (\r\n array.filter(onlyUnique)\r\n);\r\n\r\nexport function guaranteeArray(obj) {\r\n if (obj) {\r\n return isArray(obj) ? obj : [obj];\r\n }\r\n return [];\r\n}\r\n\r\nexport const isObject = obj => obj && obj.constructor === Object;\r\n\r\n/**\r\n * Returns bool that tells if the array/object is empty\r\n * @param {Array, Object} obj\r\n * @returns {bool}\r\n * handle special cases:\r\n * no argument, null, string\r\n **/\r\nexport const isEmpty = obj => {\r\n // null and undefined are \"empty\"\r\n\r\n if (obj) {\r\n if (isObject(obj)) {\r\n return !Object.keys(obj).length;\r\n } else if (obj.constructor === Array) {\r\n return !obj.length;\r\n }\r\n }\r\n return true;\r\n};\r\n\r\n/**\r\n * Function to sort alphabetically an array of objects by some specific key.\r\n *\r\n * @param {String} property Key of the object to sort.\r\n */\r\nexport const dynamicSort = property => {\r\n var sortOrder = 1;\r\n\r\n if (property[0] === \"-\") {\r\n sortOrder = -1;\r\n property = property.substr(1);\r\n }\r\n\r\n return function(a, b) {\r\n if(a[property] !== undefined || a[property] !== undefined)\r\n if (sortOrder == -1) {\r\n return b[property].localeCompare(a[property]);\r\n } else {\r\n return a[property].localeCompare(b[property]);\r\n }\r\n };\r\n};\r\n","import Helpers, { clone } from 'utils/Helpers';\r\nimport { comparePassengers } from '../utils/passengerUtils';\r\nimport { dateInFuture } from '../utils/Validators/Validators';\r\nimport { isArray, isObject } from '../utils/arrayUtils';\r\nimport moment from 'moment';\r\n\r\nexport const passportActiveFilter = passport => passport.isActive;\r\n\r\nexport function normalizePassport(passport) {\r\n const {\r\n // identifiers\r\n id, passportId,\r\n\r\n // expere data\r\n expiresOnDate, expiry,\r\n\r\n // flags\r\n isActive,\r\n isDefault,\r\n isInvalid,\r\n isOnHands,\r\n\r\n // country and issued by country iso\r\n isoPassportCountry,\r\n isoIssuedByCountry, isoPassportIssuedByCountry,\r\n\r\n // country and issued by country labels\r\n passportCountry,\r\n issuedByCountry, passportIssuedByCountry,\r\n\r\n // others\r\n displayName,\r\n passportNumber,\r\n ...other\r\n } = passport;\r\n\r\n return {\r\n // identifiers\r\n id: id || passportId,\r\n\r\n // expire data\r\n expiresOnDate: expiresOnDate || expiry,\r\n\r\n // flags\r\n isActive,\r\n isDefault,\r\n isInvalid,\r\n isOnHands,\r\n\r\n // country and issued by country iso\r\n isoPassportCountry: isoPassportCountry || '',\r\n isoIssuedByCountry: isoIssuedByCountry || isoPassportIssuedByCountry || '',\r\n\r\n // country and issued by country labels\r\n passportCountry,\r\n issuedByCountry: issuedByCountry || passportIssuedByCountry || '',\r\n\r\n // others\r\n displayName: displayName || '',\r\n passportNumber: `${(passportNumber === 0 || passportNumber) ? passportNumber : ''}`,\r\n\r\n // front-end control flags\r\n isAdded: false,\r\n isUpdated: true,\r\n isDeleted: false,\r\n\r\n ...other,\r\n };\r\n}\r\n\r\nexport function normalizePassports(passports) {\r\n const init = {\r\n content: {},\r\n ids: [],\r\n defaultId: undefined,\r\n };\r\n\r\n if (passports) {\r\n return passports.filter(passportActiveFilter).reduce((previous, current) => {\r\n const prev = previous;\r\n const passport = normalizePassport(current);\r\n\r\n prev.content[passport.id] = passport;\r\n prev.ids.push(passport.id);\r\n if (!prev.defaultId && passport.isDefault) {\r\n prev.defaultId = passport.id;\r\n }\r\n return prev;\r\n }, init);\r\n }\r\n return init;\r\n}\r\n\r\nexport function buildPassportRequest(passport) {\r\n return {\r\n id: passport.id,\r\n isDefault: passport.isDefault,\r\n isActive: passport.isActive,\r\n passportNumber: passport.passportNumber,\r\n isoPassportCountry: passport.isoPassportCountry,\r\n isoIssuedByCountry: passport.isoIssuedByCountry,\r\n expiresOnDate: passport.expiresOnDate,\r\n displayName: passport.displayName,\r\n isAdded: passport.isAdded,\r\n isUpdated: passport.isUpdated,\r\n isDeleted: passport.isDeleted,\r\n };\r\n}\r\n\r\nexport function uniquePassports(paxPass) {\r\n const uniquePass = [];\r\n const uniqueIds = [];\r\n\r\n if (paxPass && !!paxPass.length && isArray(paxPass)) {\r\n paxPass.forEach((passport) => {\r\n const current = passport;\r\n const id = (Helpers.getValue(current.passportNumber || '')).toString();\r\n const existingPassInd = uniqueIds.indexOf(id);\r\n if (existingPassInd < 0) {\r\n uniquePass.push(current);\r\n uniqueIds.push(id);\r\n } else {\r\n uniquePass[existingPassInd] = // eslint-disable-line no-param-reassign\r\n Object.assign({}, current, uniquePass[existingPassInd]);\r\n }\r\n });\r\n return uniquePass;\r\n }\r\n\r\n return uniquePass;\r\n}\r\n\r\nexport function mergePassports(oldPassArray, newPassArray) {\r\n let arr3 = [];\r\n if (!!oldPassArray) {\r\n arr3 = (newPassArray || []).concat(oldPassArray);\r\n } else {\r\n if (!!newPassArray) {\r\n arr3 = newPassArray;\r\n } else {\r\n arr3 = [];\r\n }\r\n }\r\n return uniquePassports(arr3);\r\n}\r\n\r\n/**\r\n * Returns bool in string\r\n * @param {boolean}\r\n * @returns {bool string}\r\n **/\r\nexport function stringifyBool(bool) {\r\n return (!!bool).toString();\r\n}\r\n\r\nexport function transformPassportData(passport) {\r\n if (!passport || !passport.length || !isArray(passport)) {\r\n return false;\r\n }\r\n\r\n const passports = [];\r\n passport.forEach((current) => {\r\n const pid = [(current.id || '').toString()];\r\n const expiresOnDate = [(current.expiresOnDate || '').toString()];\r\n passports.push({\r\n id: pid,\r\n passportId: pid,\r\n isDefault: [stringifyBool(current.isDefault)],\r\n isActive: [stringifyBool(current.isActive)],\r\n passportNumber: [current.passportNumber.toString()],\r\n isoPassportCountry: [current.isoPassportCountry.toString()],\r\n isoIssuedByCountry: [current.isoIssuedByCountry.toString()],\r\n expiresOnDate,\r\n expiry: expiresOnDate,\r\n displayName: [current.displayName.toString()],\r\n isAdded: [stringifyBool(current.isAdded)],\r\n isUpdated: [stringifyBool(current.isUpdated)],\r\n isDeleted: [stringifyBool(current.isDeleted)],\r\n passportIssuedByCountry: [current.issuedByCountry.toString()],\r\n passportCountry: [(current.passportCountry || '').toString()],\r\n isInvalid: [stringifyBool(current.isInvalid)],\r\n });\r\n });\r\n\r\n return passports;\r\n}\r\n\r\nexport function mergePassportbyPax(paxinfoDev, freqPaxCache) {\r\n const activeLegPax = clone(paxinfoDev);\r\n const cachePax = clone(freqPaxCache);\r\n activeLegPax.forEach((activePaxCurrent) => {\r\n let exists = false;\r\n cachePax.forEach((cachePaxCurrent) => {\r\n if (comparePassengers(activePaxCurrent, cachePaxCurrent)) {\r\n cachePaxCurrent.passports = // eslint-disable-line no-param-reassign\r\n mergePassports(cachePaxCurrent.passports, activePaxCurrent.passports);\r\n exists = true;\r\n }\r\n });\r\n if (!exists) {\r\n cachePax.push(activePaxCurrent);\r\n }\r\n });\r\n\r\n return cachePax;\r\n}\r\n\r\nexport function isPassportExpired(passport) {\r\n const dateToExpire = passport.expiresOnDate;\r\n return !(\r\n passport.isActive &&\r\n +(passport.isInvalid) !== 1 &&\r\n (!dateToExpire || dateInFuture(dateToExpire))\r\n );\r\n}\r\n\r\n/**\r\n * Determines if passport expired before departure date.\r\n *\r\n * @param {object} passport The passport\r\n * @param {moment} deptDate The dept date\r\n * @return {boolean} True if passport expired before dept, False otherwise.\r\n */\r\nexport function isPassportExpiredBeforeDept(passport, deptDate) {\r\n const isPassExp = isPassportExpired(passport);\r\n if (!isPassExp) {\r\n const passExpire = moment(passport.expiresOnDate).utc();\r\n return passExpire.isBefore(deptDate);\r\n }\r\n return false;\r\n}\r\n\r\n// Please handle from calling function that passport1 and passport2 exist\r\n// It will return false if provided both passports undefined\r\nexport function comparePassports(passport1, passport2) {\r\n if (!isObject(passport1) || !isObject(passport2)) {\r\n return false;\r\n }\r\n return (\r\n passport1.displayName === passport2.displayName &&\r\n passport1.isoIssuedByCountry === passport2.isoIssuedByCountry &&\r\n passport1.expiresOnDate === passport2.expiresOnDate &&\r\n passport1.isoPassportCountry === passport2.isoPassportCountry &&\r\n passport1.passportNumber === passport2.passportNumber &&\r\n passport1.isActive === passport2.isActive &&\r\n passport1.isDefault === passport2.isDefault\r\n );\r\n}\r\n","import moment from 'moment';\r\n\r\nconst DATE_FORMAT = 'MM/DD/YYYY';\r\nconst DATE_WITHOUT_UTC = 'YYYY-MM-DDT[00:00:00Z]';\r\n\r\n/**\r\n * Finds the active timezone\r\n */\r\nexport function getCurrentTimezone(timezones = [], time = moment()) {\r\n const timezone = timezones.find(({ effectiveFromTimeUtc, effectiveToTimeUtc }) =>\r\n time.isBetween(moment(effectiveFromTimeUtc), moment(effectiveToTimeUtc)) ||\r\n time.isSame(moment(effectiveFromTimeUtc))\r\n );\r\n if (!timezone) {\r\n return timezones[0];\r\n }\r\n\r\n return timezone;\r\n}\r\n\r\nexport function getUtcOffsetMinutes(timezones = [], time = moment()) {\r\n const timezone = getCurrentTimezone(timezones, time);\r\n if (!timezone) {\r\n return 0;\r\n }\r\n\r\n if (timezone.dstFromTimeUtc\r\n && timezone.dstToTimeUtc\r\n && (time.isBetween(moment(timezone.dstFromTimeUtc), moment(timezone.dstToTimeUtc))\r\n || time.isSame(moment(timezone.dstFromTimeUtc)))) {\r\n return timezone.dstUtcOffset;\r\n }\r\n\r\n return timezone.standardUtcOffsetMinutes;\r\n}\r\n\r\nexport function removeOffsetMinutes(offsetMinutes = 0, time = moment()) {\r\n return offsetMinutes > 0 ? time.utcOffset(0).subtract(offsetMinutes, 'minutes')\r\n : time.utcOffset(0).add(offsetMinutes, 'minutes');\r\n}\r\n\r\nexport function getDateWithoutTimeZone(date) {\r\n let dateFormated = date;\r\n if (!(dateFormated instanceof moment)) {\r\n dateFormated = moment(date, DATE_FORMAT);\r\n if (!moment(dateFormated).isValid()) {\r\n return date;\r\n }\r\n }\r\n return dateFormated.format(DATE_WITHOUT_UTC);\r\n}\r\n\r\nexport function getUTCDate(airport, localTime = moment()) {\r\n const timezone = getCurrentTimezone(airport.timezones);\r\n if (localTime instanceof moment) {\r\n return localTime.utc().add(timezone.dstUtcOffset, 'minutes');\r\n }\r\n return moment(localTime).utc().add(timezone.dstUtcOffset, 'minutes');\r\n}\r\n","import moment from 'moment';\r\nimport Helpers, { clone } from 'utils/Helpers';\r\nimport { guaranteeArray } from './arrayUtils';\r\nimport { mergePassports, mergePassportbyPax, isPassportExpired, isPassportExpiredBeforeDept } from './passportUtils';\r\nimport { getDateWithoutTimeZone } from './timezoneUtils';\r\nimport {\r\n existInLocal,\r\n getFromLocal,\r\n} from './cache';\r\n\r\nexport function isCurrentUser(passenger, user) {\r\n const currentUser = user.personId;\r\n return (+currentUser === +(Helpers.getValue(passenger.passengerId)));\r\n}\r\n\r\nexport const getGender = (id) => {\r\n if (id > 0 && id < 5) {\r\n const genders = ['Male', 'Female', 'Unknown', 'Neither'];\r\n return genders[id - 1];\r\n }\r\n return '';\r\n};\r\n\r\nexport function comparePassengers(pax1, pax2) {\r\n const p1 = {\r\n id: pax1.passengerId,\r\n extId: pax1.passengerExtIdentifier,\r\n };\r\n const p2 = {\r\n id: pax2.passengerId,\r\n extId: pax2.passengerExtIdentifier,\r\n };\r\n return (+p1.id && +p2.id && +p1.id === +p2.id) || (p1.extId && p2.extId && p1.extId === p2.extId);\r\n}\r\n\r\nexport function getLeadPax(arr) {\r\n let lbl = 'No Lead Passenger';\r\n if (!arr || !arr.length) {\r\n return lbl;\r\n }\r\n const leadPax = arr.find(pax => pax.leadPassenger);\r\n\r\n if (!leadPax) {\r\n return lbl;\r\n }\r\n // handles first name key\r\n if (leadPax.passengerFirstName) {\r\n leadPax.firstName = leadPax.passengerFirstName; // eslint-disable-line no-param-reassign\r\n }\r\n // handles last name key\r\n if (leadPax.passengerLastName) {\r\n leadPax.lastName = leadPax.passengerLastName; // eslint-disable-line no-param-reassign\r\n }\r\n lbl = `${leadPax.firstName} ${leadPax.lastName}`;\r\n return lbl;\r\n}\r\n\r\nexport function getAnnouncedPax(activeLeg, flightPax = null) {\r\n const flightPassengers = flightPax || activeLeg.passengers;\r\n const remainingPax = activeLeg.numberOfPassenger || activeLeg.passengerCount;\r\n const announcedPax = {\r\n remainingPax,\r\n paxLabel: (+remainingPax === 1 ? 'Passenger' : 'Passengers'),\r\n };\r\n\r\n if (flightPassengers && flightPassengers.length) {\r\n const paxCount = (+announcedPax.remainingPax) - (+flightPassengers.length);\r\n\r\n // count for additional pax\r\n // ei: Please provide details for 1 additional passenger\r\n if (paxCount < 1) {\r\n announcedPax.remainingPax = '';\r\n announcedPax.paxLabel = '';\r\n } else {\r\n announcedPax.remainingPax = paxCount;\r\n announcedPax.paxLabel = +announcedPax.remainingPax === 1 ? 'Passenger' : 'Passengers';\r\n }\r\n }\r\n return announcedPax;\r\n}\r\n\r\nexport const getPaxToBeAnnounced = (count, addedPax) => {\r\n const remaining = count - (addedPax || []).length;\r\n const paxlabel = remaining === 1 ? 'Passenger' : 'Passengers';\r\n const announcedText = remaining > 0 ? `Please provide details for ${String(remaining).padStart(1,0)} ${paxlabel}` : '';\r\n return announcedText;\r\n};\r\n\r\nexport function normalizePaxForCateringData(pax) {\r\n if (!!pax) {\r\n return {\r\n leadPassenger: pax.leadPassenger,\r\n isApproved: pax.isApproved,\r\n passengerId: pax.passengerId,\r\n passengerFirstName: pax.passengerFirstName,\r\n passengerLastName: pax.passengerLastName,\r\n };\r\n }\r\n return [];\r\n}\r\n\r\n// merge Passenger\r\nexport function mergePassenger(oldPaxObj, newPaxObj) {\r\n const pax = oldPaxObj || {};\r\n pax.firstName = newPaxObj.firstName || '';\r\n pax.lastName = newPaxObj.lastName || '';\r\n pax.profilePicture = newPaxObj.profilePicture || '';\r\n pax.genderId = newPaxObj.genderId || '';\r\n pax.gender = getGender(+newPaxObj.genderId || '');\r\n pax.emailAddresses = newPaxObj.emailAddresses || '';\r\n pax.dateOfBirth = newPaxObj.dateOfBirth || '';\r\n\r\n if (pax.hasOwnProperty('passports') && newPaxObj.hasOwnProperty('passports')) {\r\n pax.passports = mergePassports(\r\n guaranteeArray(pax.passports),\r\n guaranteeArray(newPaxObj.passports)\r\n );\r\n } else {\r\n pax.passports = guaranteeArray(pax.passports || newPaxObj.passports);\r\n }\r\n return pax;\r\n}\r\n\r\n// get passengerId\r\nexport function getPassengerId(passenger) {\r\n return passenger.passengerId || passenger.passengerExtIdentifier || '';\r\n}\r\n\r\nexport function mergePassengersList(added, freq) {\r\n const newAdded = added.filter(pax => pax.isNewlyAdded);\r\n const Search = added.filter(pax => pax.isSearched);\r\n const cacheAdded = newAdded.concat(Search);\r\n const cacheMerged = mergePassportbyPax(added, freq);\r\n const finalMerge = cacheMerged.concat(cacheAdded);\r\n const temp = {};\r\n // removing repeated ids\r\n finalMerge.forEach(pax => {\r\n temp[getPassengerId(pax)] = pax;\r\n });\r\n const paxList = Object.keys(temp).map((id) => (temp[id]));\r\n return clone(paxList);\r\n}\r\n\r\nexport function generateFrequentPaxList(addedPax) {\r\n const cachedfreqPax = existInLocal('frequentPax') ?\r\n guaranteeArray(getFromLocal('frequentPax', true)) : [];\r\n let frequentPaxList = [];\r\n cachedfreqPax.forEach((passenger) => {\r\n frequentPaxList.push(getPassengerId(passenger));\r\n });\r\n\r\n addedPax.forEach((passenger) => {\r\n frequentPaxList.push(getPassengerId(passenger));\r\n });\r\n\r\n // removing repeated ids\r\n frequentPaxList = frequentPaxList.filter((elem, pos) => (\r\n frequentPaxList.indexOf(elem) === pos)\r\n );\r\n return frequentPaxList;\r\n}\r\n\r\nexport const formatDetailPax = (paxObj) => {\r\n const passengerObj = {\r\n dateOfBirth: '-',\r\n genderId: '-',\r\n email: '-',\r\n phoneNumber: '-',\r\n truncatedName: '-',\r\n fullName: '-',\r\n };\r\n passengerObj.leadPassenger = paxObj.leadPassenger;\r\n\r\n passengerObj.fullName =\r\n paxObj.firstName.concat(' ', paxObj.lastName).toLowerCase();\r\n\r\n // truncate fullname for summary row\r\n passengerObj.truncatedName =\r\n Helpers.truncateStr(passengerObj.fullName, 35).toLowerCase();\r\n\r\n if (paxObj.dateOfBirth) {\r\n passengerObj.dateOfBirth = moment(paxObj.dateOfBirth).format('DD-MMM-YYYY');\r\n }\r\n const genderMap = {\r\n 1: 'Male',\r\n 2: 'Female',\r\n 3: 'Neither',\r\n 4: 'Unknown',\r\n };\r\n // only show male/female\r\n if (+paxObj.genderId > 0 && +paxObj.genderId < 3) {\r\n passengerObj.gender = genderMap[paxObj.genderId];\r\n }\r\n if (paxObj.email) {\r\n passengerObj.email = paxObj.emailAddresses &&\r\n paxObj.emailAddresses[0] &&\r\n paxObj.emailAddresses[0].email || '-';\r\n }\r\n\r\n if (paxObj.phoneNumber) {\r\n passengerObj.phoneNumber = paxObj.phoneNumbers &&\r\n paxObj.phoneNumbers[0] &&\r\n paxObj.phoneNumbers[0].phoneNumber || '-';\r\n }\r\n\r\n passengerObj.emailAddresses = paxObj.emailAddresses;\r\n passengerObj.phoneNumbers = paxObj.phoneNumbers;\r\n return passengerObj;\r\n};\r\n\r\nexport const setLegPassport = (passengers, activeLeg) => {\r\n if (!passengers || !passengers.length) { return []; }\r\n\r\n passengers.forEach((pax) => {\r\n // filter leg passport\r\n const passports = pax.passports || [];\r\n const legPassport = clone(passports.find(passport => passport.isLegPassport)) || null;\r\n const tempDetailPax = formatDetailPax(pax);\r\n\r\n if (legPassport) {\r\n if ((legPassport.isoPassportCountry || []).length === 3) {\r\n legPassport.isoPassportCountry = Helpers.getCountryFromCode(\r\n legPassport.isoPassportCountry\r\n ).name || '-';\r\n }\r\n\r\n if ((legPassport.isoIssuedByCountry || []).length === 3) {\r\n legPassport.isoIssuedByCountry = Helpers.getCountryFromCode(\r\n legPassport.isoIssuedByCountry\r\n ).name || '-';\r\n }\r\n\r\n\r\n legPassport.isExpired = isPassportExpired(legPassport);\r\n legPassport.isPassExpiredBeforeDept =\r\n isPassportExpiredBeforeDept(legPassport, moment(activeLeg.deptAirportTimeUTC).utc());\r\n legPassport.expiresOnDate =\r\n legPassport.expiresOnDate ?\r\n moment(getDateWithoutTimeZone(legPassport.expiresOnDate)).utc().format('DD-MMM-YY') :\r\n '-';\r\n const paxName = (legPassport.displayName ||\r\n (pax.formattedPaxObj || {}).truncatedName ||\r\n `${pax.firstName} ${pax.lastName}`);\r\n legPassport.displayName = paxName.toString().toLowerCase();\r\n\r\n tempDetailPax.legPassport = legPassport;\r\n }\r\n pax.formattedPaxObj = tempDetailPax; // eslint-disable-line no-param-reassign\r\n });\r\n return passengers;\r\n};\r\n\r\nexport const sortPassengers = (passengers) => {\r\n let sortedPassengers = [];\r\n passengers.forEach((pax) => {\r\n if (pax.leadPassenger) {\r\n sortedPassengers.unshift(pax);\r\n } else {\r\n sortedPassengers.push(pax);\r\n }\r\n });\r\n return sortedPassengers;\r\n};\r\n\r\nexport const setPaxLegPassport = (passports) => {\r\n const pass = passports;\r\n const filterPassports = pass.filter(passport => !passport.isDeleted && passport.isActive);\r\n if (filterPassports.length > 0) {\r\n let isLeg = filterPassports.find(passport => (\r\n passport.isLegPassport\r\n ));\r\n if (!isLeg) {\r\n isLeg = filterPassports.find(passport => (\r\n passport.isDefault\r\n ));\r\n }\r\n if (!isLeg) {\r\n filterPassports[0].isLegPassport = true;\r\n } else {\r\n isLeg.isLegPassport = true;\r\n }\r\n }\r\n return filterPassports;\r\n};\r\n\r\nexport const setPaxDefaultPassport = (passports) => {\r\n const pass = passports;\r\n const filterPassports = pass.filter(passport => !passport.isDeleted && passport.isActive);\r\n if (filterPassports.length > 0) {\r\n const isLeg = filterPassports.find(passport => (\r\n passport.isDefault\r\n ));\r\n if (!isLeg) {\r\n filterPassports[0].isDefault = true;\r\n }\r\n }\r\n return filterPassports;\r\n};\r\n\r\nexport const setLeadPax = (addedPax) => {\r\n if (addedPax.length > 0) {\r\n const leadPax = addedPax.find(pax => (pax.leadPassenger));\r\n if (!leadPax) {\r\n addedPax[0].leadPassenger = true;\r\n }\r\n }\r\n}\r\n","import * as type from '../../actionTypes';\r\nimport { getFlightId } from '../../../utils/itinerariesUtils';\r\nimport { getAnnouncedPax, setLegPassport, sortPassengers } from '../../../utils/passengerUtils';\r\nimport store from '../../store';\r\n\r\nconst initialState = {\r\n isChanged: 0,\r\n isLoadingPassenger: false,\r\n passengers: {},\r\n updatePassenger: false,\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case type.ITINERARY_DETAILS_SUCCESS: {\r\n const {\r\n legs,\r\n } = action.data;\r\n const passengerData = {};\r\n legs.forEach(leg => {\r\n passengerData[getFlightId(leg)] = {};\r\n passengerData[getFlightId(leg)].isLoadingPassenger = false;\r\n });\r\n return Object.assign({}, state, {\r\n passengers: passengerData,\r\n });\r\n }\r\n case type.FETCH_PASSENGER_INIT: {\r\n state.passengers[action.flightLegId].isLoadingPassenger = true;\r\n return Object.assign({}, state, {\r\n isChanged: state.isChanged + 1,\r\n isLoadingPassenger: true,\r\n passengers: state.passengers,\r\n });\r\n }\r\n\r\n case type.FETCH_PASSENGER_SUCCESS: {\r\n const leg = store.getState().itineraryDetails.legs[action.flightLegId];\r\n state.passengers[action.flightLegId].passengers = sortPassengers(setLegPassport(action.data.normalizedData.passengers, leg));\r\n state.passengers[action.flightLegId].announcedPax = getAnnouncedPax(leg, state.passengers[action.flightLegId].passengers);\r\n state.passengers[action.flightLegId].isLoadingPassenger = false;\r\n return Object.assign({}, state, {\r\n isChanged: state.isChanged - 1,\r\n isLoadingPassenger: false,\r\n passengers: { ...state.passengers },\r\n });\r\n }\r\n\r\n case type.FETCH_PASSENGER_FAIL: {\r\n state.passengers[action.flightLegId].isLoadingPassenger = false;\r\n return Object.assign({}, state, {\r\n isChanged: state.isChanged - 1,\r\n isLoadingPassenger: false,\r\n passengers: state.passengers,\r\n });\r\n }\r\n\r\n case type.UPDATE_PASSENGER: {\r\n const { legId, passengers } = action.data;\r\n let statePassengers = { ...state.passengers };\r\n // update active leg's passengers list\r\n statePassengers[legId].passengers = passengers;\r\n // get announce passengers\r\n const leg = store.getState().itineraryDetails.legs[legId];\r\n // format passports\r\n statePassengers[legId].passengers = sortPassengers(setLegPassport(statePassengers[legId].passengers, leg));\r\n statePassengers[legId].announcedPax = getAnnouncedPax(leg, statePassengers[legId].passengers);\r\n return Object.assign({}, state, {\r\n isChanged: state.isChanged - 1,\r\n passengers: statePassengers,\r\n });\r\n }\r\n\r\n case type.STARTED_UPDATING_PASSENGER: {\r\n return Object.assign({}, state, {\r\n updatePassenger: true,\r\n });\r\n }\r\n\r\n case type.FINISHED_UPDATING_PASSENGER: {\r\n return Object.assign({}, state, {\r\n updatePassenger: false,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { getAircraftByAllFields } from '../utils/aircraftUtils';\r\nimport Helpers from '../utils/Helpers';\r\nimport {\r\n garanteeArray,\r\n} from '../utils/sourceUtils';\r\nimport {\r\n existInLocal,\r\n saveToLocal,\r\n getFromLocal,\r\n} from '../utils/cache';\r\nimport { comparePassengers, getGender, mergePassenger } from '../utils/passengerUtils';\r\nimport { mergePassportbyPax } from '../utils/passportUtils';\r\nimport { getUser } from '../utils/userUtils';\r\nimport { clone } from '../utils/Helpers';\r\n\r\nconst emailAddressesNormalizer = (email) => (\r\n {\r\n email: email.emailAddress || email.email || '',\r\n id: email.id || '',\r\n }\r\n);\r\n\r\nconst phoneNumbersNormalizer = (phone) => (\r\n {\r\n id: phone.id || '',\r\n phoneNumber: phone.phoneNumber || '',\r\n }\r\n);\r\nconst passportFilesNormalizer = (file) => (\r\n {\r\n fileLocation: file.fileLocation || '',\r\n fileName: file.fileName || '',\r\n fileUrl: file.fileUrl || '',\r\n id: file.id || '',\r\n isActive: file.isActive || false,\r\n }\r\n);\r\nconst passportsNormalizer = (passport) => (\r\n {\r\n displayName: passport.displayName || '',\r\n expiresOnDate: passport.expiry || passport.expiresOnDate || '',\r\n expiry: passport.expiry || passport.expiresOnDate || '',\r\n isActive: passport.isActive || false,\r\n isAdded: passport.isAdded || false,\r\n isDefault: passport.isDefault || false,\r\n isInvalid: passport.isInvalid || 0,\r\n isOnHands: passport.isOnHands || false,\r\n isUpdated: passport.isUpdated || false,\r\n isDeleted: passport.isDeleted || false,\r\n isoPassportCountry: passport.isoPassportCountry || '',\r\n isoPassportIssuedByCountry:\r\n passport.isoPassportIssuedByCountry || passport.isoIssuedByCountry || '',\r\n issuedOnDate: passport.issuedOnDate || '',\r\n passportCountry: passport.passportCountry || '',\r\n passportFiles: garanteeArray(passport.passportFiles || []).map(passportFilesNormalizer),\r\n passportId: passport.passportId || passport.id || '',\r\n imageUrl: passport.imageUrl || '',\r\n passportIssuedByCountry: passport.passportIssuedByCountry || passport.issuedByCountry || '',\r\n passportNumber: (passport.passportNumber || '').toString(),\r\n visa: passport.visa || '',\r\n }\r\n);\r\n\r\nexport const currentPaxNormalizer = (passenger) => {\r\n const email = passenger.email || passenger.username || '';\r\n let emailAddresses = garanteeArray(passenger.emailAddresses || []).map(emailAddressesNormalizer);\r\n if (!emailAddresses.length) {\r\n emailAddresses = garanteeArray({ email, id: '' });\r\n }\r\n return ({\r\n isApproved: passenger.isApproved,\r\n dateOfBirth: passenger.dateOfBirth || '',\r\n email,\r\n emailAddresses,\r\n firstName: passenger.firstName || passenger.passengerFirstName || '',\r\n genderId: passenger.genderId || '',\r\n gender: getGender(passenger.genderId || ''),\r\n lastName: passenger.lastName || passenger.passengerLastName || '',\r\n passengerExtIdentifier: passenger.passengerExtIdentifier || '',\r\n passengerId: passenger.passengerId || passenger.personId || '',\r\n passengerNationality: passenger.passengerNationality || '',\r\n passports: garanteeArray(passenger.passports || []).map(passportsNormalizer),\r\n phoneNumbers: garanteeArray(passenger.personPhoneNumbers || []).map(phoneNumbersNormalizer),\r\n profilePicture: passenger.profilePicture || (passenger.imageURL && passenger.imageURL.length &&\r\n passenger.imageURL[0]) ||\r\n passenger.passengerPictureUrl || '',\r\n truncatedName:\r\n Helpers.truncateStr(`${passenger.firstName\r\n || passenger.passengerFirstName} ${passenger.lastName\r\n || passenger.passengerLastName}`, 35).toLowerCase(),\r\n });\r\n};\r\n\r\nconst legPassportsNormalizer = (passport) => (\r\n {\r\n ...passportsNormalizer(passport),\r\n passportFiles: garanteeArray(passport.passportFileDtos || []).map(passportFilesNormalizer),\r\n isLegPassport: passport.isLegPassport || false,\r\n }\r\n);\r\n\r\nconst sourcePaxNormalizer = (passenger) => {\r\n const email = passenger.email || passenger.username || '';\r\n let emailAddresses = garanteeArray(passenger.emailAddresses || []).map(emailAddressesNormalizer);\r\n if (!emailAddresses.length) {\r\n emailAddresses = garanteeArray({ email, id: '' });\r\n }\r\n return ({\r\n ...currentPaxNormalizer(passenger),\r\n email,\r\n emailAddresses,\r\n genderId: passenger.genderId || passenger.gender || '',\r\n gender: getGender(passenger.genderId || passenger.gender || ''),\r\n phoneNumbers: garanteeArray(passenger.phoneNumbers || []).map(phoneNumbersNormalizer),\r\n });\r\n};\r\n\r\nexport const frequentPaxNormalizer = (passengers) => {\r\n const cached = existInLocal('frequentPax') ?\r\n garanteeArray(getFromLocal('frequentPax', true)) : [];\r\n const cachedFrequentPax =\r\n garanteeArray(cached || []).map((passenger) => (\r\n sourcePaxNormalizer(passenger)\r\n ));\r\n const frequentPax = garanteeArray(passengers || []).map((passenger) => (\r\n sourcePaxNormalizer(passenger)\r\n ));\r\n const currentUser = clone(getUser());\r\n currentUser.passports = Object.values(currentUser.passports.content);\r\n const currentUserPax = currentPaxNormalizer(currentUser);\r\n if (!cachedFrequentPax.find(pax => (comparePassengers(pax, currentUserPax)))) {\r\n cachedFrequentPax.push(currentUserPax);\r\n }\r\n const mergedPax = mergePassportbyPax(frequentPax, cachedFrequentPax);\r\n const currentInMerged = mergedPax.find(pax => comparePassengers(pax, currentUserPax));\r\n mergePassenger(currentInMerged, currentUserPax);\r\n saveToLocal(mergedPax, 'frequentPax', true);\r\n return mergedPax;\r\n};\r\n\r\nexport const legPaxNormalizer = (passengers) => (\r\n garanteeArray(passengers || []).map((passenger) => (\r\n {\r\n ...currentPaxNormalizer(passenger),\r\n passports: garanteeArray(passenger.passports || []).map(legPassportsNormalizer),\r\n leadPassenger: passenger.leadPassenger || false,\r\n isInformationUpdated: passenger.isInformationUpdateds || false,\r\n phoneNumbers: garanteeArray(passenger.phoneNumber || []).map((phoneNumber) => ({\r\n phoneNumber,\r\n id: '',\r\n })) || '',\r\n }\r\n ))\r\n);\r\n\r\nexport const searchPaxNormalizer = (passengers) => (\r\n garanteeArray(passengers || []).map((passenger) => (\r\n {\r\n ...sourcePaxNormalizer(passenger),\r\n isSearched: true,\r\n }\r\n ))\r\n);\r\n\r\nexport const normalizePassengerUtil = (passengers, routeParams, leg) => {\r\n const maxPax = parseInt(getAircraftByAllFields((leg.aircraft || {}).name || leg.aircraftTypeName)\r\n .maxNumberOfPassengers, 10);\r\n return ({\r\n passengers: passengers ? legPaxNormalizer(passengers) : [],\r\n legId: (leg.legId || ''),\r\n flightLegExtIdentifier: (leg.flightLegExtIdentifier || ''),\r\n numberOfPassenger: leg.passengerCount || leg.numberOfPassenger,\r\n maxNumberOfPassengers: maxPax,\r\n isEditable: Helpers.isEditableLeg(leg),\r\n key: routeParams.key,\r\n uniqueIdentifier: routeParams.uniqueIdentifier,\r\n deptAirportTimeUTC: leg.departureAirportTimeLocal,\r\n });\r\n};\r\n","import * as types from '../actionTypes';\r\nimport {\r\n existInLocal,\r\n getFromLocal,\r\n} from '../../utils/cache';\r\nimport { garanteeArray } from '../../utils/sourceUtils';\r\nimport {\r\n getPassengerId,\r\n comparePassengers,\r\n mergePassenger,\r\n setPaxDefaultPassport,\r\n setPaxLegPassport,\r\n setLeadPax,\r\n} from '../../utils/passengerUtils';\r\nimport { currentPaxNormalizer } from '../../normalizers/PassengerNormalizer';\r\nimport { getUser } from '../../utils/userUtils';\r\nimport { clone } from '../../utils/Helpers';\r\n\r\nconst initialState = {\r\n frequentPax: existInLocal('frequentPax')\r\n ? garanteeArray(getFromLocal('frequentPax', true)) : [],\r\n addedPax: [],\r\n paxDetail: {},\r\n deletedPax: [],\r\n selectedPassengerId: null,\r\n count: 0,\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.INITIALIZE_POPUP: {\r\n const { passengers, deletedPassengers } = action.data;\r\n const frequentPax = existInLocal('frequentPax')\r\n ? garanteeArray(getFromLocal('frequentPax', true)) : [];\r\n const currentUser = clone(getUser());\r\n currentUser.passports = Object.values(currentUser.passports.content);\r\n const currentUserPax = currentPaxNormalizer(currentUser);\r\n const currentInCache = frequentPax.find(pax => (comparePassengers(pax, currentUserPax)));\r\n if (!currentInCache) {\r\n frequentPax.push(currentUserPax);\r\n } else {\r\n mergePassenger(currentInCache, currentUserPax);\r\n currentInCache.passports = currentUserPax.passports;\r\n }\r\n const passengerIds = passengers.map(pax => getPassengerId(pax));\r\n state.frequentPax = frequentPax.filter(pax => (\r\n !passengerIds.includes(getPassengerId(pax))\r\n ));\r\n state.addedPax = passengers;\r\n state.deletedPax = deletedPassengers;\r\n\r\n return Object.assign({}, state);\r\n }\r\n case types.UPDATE_FREQUENT_PAX: {\r\n state.frequentPax = action.data;\r\n return Object.assign({}, state);\r\n }\r\n case types.UPDATE_PASSPORT: {\r\n const { data, passengerId } = action.data;\r\n state.addedPax.forEach(pax => {\r\n const id = getPassengerId(pax);\r\n if (id === passengerId) {\r\n if (data.isNew) {\r\n pax.passports.push(data);\r\n }\r\n if (data.isUpdated) {\r\n pax.passports.forEach(passport => {\r\n const pass = passport;\r\n if (passport.passportNumber === data.passportNumber) {\r\n pass.displayName = data.displayName;\r\n pass.expiry = data.expiry;\r\n pass.isUpdated = data.isUpdated;\r\n pass.isoPassportCountry = data.isoPassportCountry;\r\n pass.isoPassportIssuedByCountry = data.isoPassportIssuedByCountry;\r\n pass.passportCountry = data.passportCountry;\r\n pass.passportIssuedByCountry = data.passportIssuedByCountry;\r\n }\r\n });\r\n }\r\n setPaxLegPassport(pax.passports);\r\n setPaxDefaultPassport(pax.passports);\r\n }\r\n });\r\n return Object.assign({}, state, {\r\n count: state.count + 1,\r\n });\r\n }\r\n case types.UPDATE_ADDED_PASSENGERS: {\r\n const { passenger } = action.data;\r\n const id = getPassengerId(passenger);\r\n let isFrequent = false;\r\n const selectedpax = passenger;\r\n selectedpax.passports = setPaxLegPassport(selectedpax.passports);\r\n selectedpax.passports = setPaxDefaultPassport(selectedpax.passports);\r\n state.frequentPax.forEach((pax, index) => {\r\n const paxid = getPassengerId(pax);\r\n if (paxid === id) {\r\n isFrequent = true;\r\n pax.isSoftlyAdded = true; // eslint-disable-line\r\n pax.passports = setPaxLegPassport(pax.passports); // eslint-disable-line\r\n pax.passports = setPaxDefaultPassport(pax.passports); // eslint-disable-line\r\n state.addedPax.push(pax);\r\n state.frequentPax.splice(index, 1);\r\n }\r\n });\r\n if (!isFrequent) {\r\n selectedpax.isSoftlyAdded = true; // eslint-disable-line\r\n state.addedPax.push(selectedpax);\r\n }\r\n setLeadPax(state.addedPax);\r\n return Object.assign({}, state, {\r\n count: state.count + 1,\r\n });\r\n }\r\n case types.CLOSE_POPUP: {\r\n state = initialState;\r\n return Object.assign({}, state, {\r\n count: state.count - 1,\r\n });\r\n }\r\n case types.SET_LEG_PASSPORT: {\r\n const { passengerId, passportNumber } = action.data;\r\n state.addedPax.forEach(pax => {\r\n const id = getPassengerId(pax);\r\n if (id === passengerId) {\r\n pax.passports.forEach(passport => {\r\n const paxPass = passport;\r\n if (paxPass.passportNumber === passportNumber) {\r\n paxPass.isLegPassport = true;\r\n } else {\r\n paxPass.isLegPassport = false;\r\n }\r\n });\r\n }\r\n });\r\n return Object.assign({}, state, {\r\n count: state.count + 1,\r\n });\r\n }\r\n case types.SET_LEAD_PASSENGER: {\r\n const { paxId } = action.data;\r\n state.addedPax.forEach(pax => {\r\n const passenger = pax;\r\n const id = getPassengerId(passenger);\r\n if (paxId === id) {\r\n passenger.leadPassenger = true;\r\n } else {\r\n passenger.leadPassenger = false;\r\n }\r\n });\r\n return Object.assign({}, state, {\r\n count: state.count + 1,\r\n });\r\n }\r\n case types.UPDATE_SELECTED_PASSENGER: {\r\n state.selectedPassengerId = action.data.paxId;\r\n return Object.assign({}, state, {\r\n });\r\n }\r\n case types.CLEAR_SELECTED_PASSENGER: {\r\n state.selectedPassengerId = null;\r\n return Object.assign({}, state, {\r\n count: state.count + 1,\r\n });\r\n }\r\n case types.REMOVE_PASSPORT: {\r\n const { passportNumber, passengerId } = action.data;\r\n state.addedPax.forEach(pax => {\r\n const id = getPassengerId(pax);\r\n if (id === passengerId) {\r\n pax.passports.forEach((passport, index) => {\r\n const paxPass = passport;\r\n if (paxPass.passportNumber === passportNumber) {\r\n if (paxPass.isNew) {\r\n pax.passports.splice(index, 1);\r\n } else {\r\n paxPass.isDeleted = true;\r\n }\r\n }\r\n });\r\n setPaxLegPassport(pax.passports);\r\n setPaxDefaultPassport(pax.passports);\r\n }\r\n });\r\n return Object.assign({}, state, {\r\n count: state.count + 1, \r\n });\r\n }\r\n case types.REMOVE_USER: {\r\n const { paxId } = action.data;\r\n state.addedPax.forEach((pax, index) => {\r\n const passengerId = getPassengerId(pax);\r\n if (passengerId === paxId) {\r\n if (!pax.isNewlyAdded && !pax.isSearched) {\r\n const leadPax = pax;\r\n leadPax.leadPassenger = false;\r\n pax.passports.forEach((passport) => {\r\n const paxPassport = passport;\r\n paxPassport.isLegPassport = false;\r\n });\r\n state.frequentPax.push(pax);\r\n }\r\n if (!pax.isSoftlyAdded) {\r\n state.deletedPax.push(pax);\r\n }\r\n state.addedPax.splice(index, 1);\r\n }\r\n });\r\n setLeadPax(state.addedPax);\r\n return Object.assign({}, state, { count: state.count + 1\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nexport const initialState = {\r\n swift: '',\r\n bankName: '',\r\n currency: '',\r\n topUpAmount: '',\r\n to: '',\r\n iban: '',\r\n referenceCode: '',\r\n topUpId: 0,\r\n paymentMethod: '',\r\n topUpStatusDesc: '',\r\n openPopUpMessage: 0, // 1 for success, 2 for cancel\r\n topUpReferenceLoader: false,\r\n topUpSubmittedLoader: false,\r\n topUpCancelLoader: false,\r\n disableAmountField: false,\r\n topUpError:'',\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.TOPUP_REFERENCE_INIT: {\r\n return Object.assign({}, state, {\r\n topUpReferenceLoader: true,\r\n disableAmountField: false,\r\n topUpError: '',\r\n });\r\n }\r\n case types.TOPUP_REFERENCE_SUCCESS: {\r\n return Object.assign({}, state, {\r\n swift: action.data.swift,\r\n bankName: action.data.bankName,\r\n currency: action.data.currency,\r\n topUpAmount: action.data.topUpAmount,\r\n to: action.data.to,\r\n iban: action.data.iban,\r\n referenceCode: action.data.referenceCode,\r\n topUpId: action.data.topUpId,\r\n paymentMethod: action.data.paymentMethod,\r\n topUpStatusDesc: action.data.topUpStatusDesc,\r\n topUpReferenceLoader: false,\r\n disableAmountField: true,\r\n });\r\n }\r\n case types.TOPUP_REFERENCE_FAIL: {\r\n return Object.assign({}, state, {\r\n topUpReferenceLoader: false,\r\n disableAmountField: true,\r\n topUpError: action.data,\r\n });\r\n }\r\n case types.TOPUP_INIT : {\r\n return Object.assign({}, state, {\r\n topUpSubmittedLoader: true,\r\n topUpError: '',\r\n });\r\n }\r\n case types.TOPUP_SUCCESS : {\r\n return Object.assign({}, state, {\r\n openPopUpMessage: action.data,\r\n });\r\n }\r\n case types.TOPUP_FAIL : {\r\n return Object.assign({}, state, {\r\n topUpSubmittedLoader: false,\r\n topUpError: action.data,\r\n });\r\n }\r\n\r\n case types.CANCEL_REFERENCE_CODE_INIT : {\r\n return Object.assign({}, state, {\r\n topUpCancelLoader: true,\r\n topUpError: '',\r\n });\r\n }\r\n case types.CANCEL_REFERENCE_CODE_SUCCESS : {\r\n return Object.assign({}, state, {\r\n openPopUpMessage: action.data,\r\n });\r\n }\r\n case types.CANCEL_REFERENCE_CODE_FAIL : {\r\n return Object.assign({}, state, {\r\n topUpCancelLoader: false,\r\n topUpError: action.data,\r\n });\r\n }\r\n case types.TOPUP_VIEW_ACTION : {\r\n return Object.assign({}, state, {\r\n openPopUpMessage: 0,\r\n topUpCancelLoader: false,\r\n topUpSubmittedLoader: false,\r\n });\r\n }\r\n case types.CLEAR_TOPUP_ERROR : {\r\n return Object.assign({}, state, {\r\n topUpError: '',\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nexport const initialState = {\r\n topUpIds: [],\r\n topUpContent: {},\r\n membershipAccount: {},\r\n topUpHistoryLoader: false,\r\n topUpHistoryError:'',\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.TOPUP_HISTORY_INIT : {\r\n return Object.assign({}, state, {\r\n topUpHistoryLoader: true,\r\n topUpHistoryError: '',\r\n });\r\n }\r\n case types.TOPUP_HISTORY_SUCCESS : {\r\n const { data } = action;\r\n const descSortArray = data.topUps.ids.sort(function(a, b){ return b-a });\r\n return Object.assign({}, state, {\r\n topUpIds: descSortArray,\r\n topUpContent: data.topUps.content,\r\n membershipAccount: data.membershipAccount,\r\n topUpHistoryLoader: false,\r\n });\r\n }\r\n case types.TOPUP_HISTORY_FAIL : {\r\n return Object.assign({}, state, {\r\n topUpHistoryLoader: false,\r\n topUpHistoryError: action.data,\r\n });\r\n }\r\n case types.CLEAR_TOPUP_ERROR : {\r\n return Object.assign({}, state, {\r\n topUpHistoryError: '',\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\nimport { \r\n TRANSACTIONS_QUANTITY,\r\n} from \"configs/constants\";\r\n\r\nexport const initialState = {\r\n membershipAccountLoading: false,\r\n accountData: null,\r\n moreTransactions: true,\r\n loadingMoreTransactions: false,\r\n directAccoutBalanceError: '',\r\n isDirectAccountBalanceError: false,\r\n isMemebershipAccountFetched: false,\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.MEMBERSHIP_ACCOUNT_STATEMENT_INIT : {\r\n return Object.assign({}, state, {\r\n membershipAccountLoading: !action.isLoadMore,\r\n loadingMoreTransactions: action.isLoadMore,\r\n directAccoutBalanceError:'',\r\n isMemebershipAccountFetched: false,\r\n isDirectAccountBalanceError: false,\r\n });\r\n }\r\n case types.MEMBERSHIP_ACCOUNT_STATEMENT_SUCCESS : {\r\n const { data, isLoadMore } = action;\r\n let { accountData } = state;\r\n let moreTransactions = true\r\n if (isLoadMore && data && data.lineItems) {\r\n accountData.lineItems = accountData.lineItems.concat(data.lineItems);\r\n } else {\r\n accountData = data;\r\n }\r\n if (action.data.lineItems.length < TRANSACTIONS_QUANTITY) {\r\n moreTransactions = false;\r\n }\r\n return Object.assign({}, state, {\r\n membershipAccountLoading: false,\r\n accountData,\r\n moreTransactions,\r\n loadingMoreTransactions: false,\r\n isMemebershipAccountFetched: true,\r\n isDirectAccountBalanceError: false,\r\n });\r\n }\r\n case types.MEMBERSHIP_ACCOUNT_STATEMENT_FAIL : {\r\n return Object.assign({}, state, {\r\n membershipAccountLoading: false,\r\n loadingMoreTransactions: false,\r\n directAccoutBalanceError: action.data,\r\n isDirectAccountBalanceError: true,\r\n });\r\n }\r\n case types.CLEAR_TOPUP_ERROR : {\r\n return Object.assign({}, state, {\r\n directAccoutBalanceError: '',\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as type from '../../actionTypes';\r\nimport { getFlightId } from '../../../utils/itinerariesUtils';\r\n\r\nconst initialState = {\r\n isLoadingCrew: 0,\r\n isErrorCrew: '',\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case type.ITINERARY_DETAILS_SUCCESS: {\r\n const {\r\n legs,\r\n } = action.data;\r\n const crewData = {};\r\n legs.forEach(leg => {\r\n crewData[getFlightId(leg)] = {};\r\n crewData[getFlightId(leg)].isLoadingCrew = false;\r\n })\r\n return Object.assign({}, state, {\r\n crew: crewData,\r\n });\r\n }\r\n case type.FETCH_CREW_INIT: {\r\n state.crew[action.flightLegId].isLoadingCrew = true;\r\n state.crew[action.flightLegId].crewSuccess = false;\r\n return Object.assign({}, state, {\r\n isLoadingCrew: state.isLoadingCrew + 1,\r\n crew: state.crew,\r\n isErrorCrew: '',\r\n });\r\n }\r\n\r\n case type.FETCH_CREW_SUCCESS: {\r\n state.crew[action.flightLegId].crew = action.data || '';\r\n state.crew[action.flightLegId].crewSuccess = true;\r\n state.crew[action.flightLegId].isLoadingCrew = false;\r\n return Object.assign({}, state, {\r\n isLoadingCrew: state.isLoadingCrew - 1,\r\n crew: state.crew,\r\n isErrorCrew: '',\r\n });\r\n }\r\n\r\n case type.FETCH_CREW_FAIL: {\r\n state.crew[action.flightLegId].isLoadingCrew = false;\r\n state.crew[action.flightLegId].crewSuccess = false;\r\n return Object.assign({}, state, {\r\n isLoadingCrew: state.isLoadingCrew - 1,\r\n crew: state.crew,\r\n isErrorCrew: action.data,\r\n });\r\n }\r\n\r\n case type.CLEAR_ERROR_FETCH_ITINERARY: {\r\n return Object.assign({}, state, {\r\n isErrorCrew: '',\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as type from '../../actionTypes';\r\n\r\nconst initialState = {\r\n isLoadingEntertainment: 0,\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case type.FETCH_ENTERTAINMENT_ISSUE_INIT: {\r\n const entertainmentData = {};\r\n entertainmentData[action.flightLegId] = {};\r\n entertainmentData[action.flightLegId].isLoadingEntertainment = true;\r\n \r\n return Object.assign({}, state, {\r\n isLoadingEntertainment: state.isLoadingEntertainment + 1,\r\n entertainment: entertainmentData,\r\n });\r\n }\r\n \r\n case type.FETCH_ENTERTAINMENT_ISSUE_SUCCESS: {\r\n state.entertainment[action.flightLegId].entertainmentIssue = action.data;\r\n state.entertainment[action.flightLegId].isLoadingEntertainment = false;\r\n return Object.assign({}, state, {\r\n isLoadingEntertainment: state.isLoadingEntertainment - 1,\r\n entertainment: state.entertainment,\r\n });\r\n }\r\n \r\n case type.FETCH_ENTERTAINMENT_ISSUE_FAIL: {\r\n state.entertainment[action.flightLegId].isLoadingEntertainment = false;\r\n return Object.assign({}, state, {\r\n isLoadingEntertainment: state.isLoadingEntertainment - 1,\r\n entertainment: state.entertainment,\r\n });\r\n }\r\n case type.FETCH_ENTERTAINMENT_INIT: {\r\n state.entertainment[action.flightLegId].isLoadingEntertainment = true;\r\n return Object.assign({}, state, {\r\n isLoadingEntertainment: state.isLoadingEntertainment + 1,\r\n entertainment: state.entertainment,\r\n });\r\n }\r\n\r\n case type.FETCH_ENTERTAINMENT_SUCCESS: {\r\n state.entertainment[action.flightLegId].entertainment = action.data;\r\n state.entertainment[action.flightLegId].isLoadingEntertainment = false;\r\n return Object.assign({}, state, {\r\n isLoadingEntertainment: state.isLoadingEntertainment - 1,\r\n entertainment: state.entertainment,\r\n });\r\n }\r\n\r\n case type.FETCH_ENTERTAINMENT_FAIL: {\r\n state.entertainment[action.flightLegId].isLoadingEntertainment = false;\r\n return Object.assign({}, state, {\r\n isLoadingEntertainment: state.isLoadingEntertainment - 1,\r\n entertainment: state.entertainment,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as type from '../../actionTypes';\r\nimport { getFlightId } from '../../../utils/itinerariesUtils';\r\n\r\nconst initialState = {\r\n itineraryPdfLoading: 0,\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case type.ITINERARY_DETAILS_SUCCESS: {\r\n const {\r\n legs,\r\n } = action.data;\r\n const itineraryPdfUrl = {};\r\n legs.forEach(leg => {\r\n itineraryPdfUrl[getFlightId(leg)] = {};\r\n itineraryPdfUrl[getFlightId(leg)].itineraryPdfLoading = false;\r\n })\r\n return Object.assign({}, state, {\r\n itineraryPdf: itineraryPdfUrl,\r\n });\r\n }\r\n case type.ITINERARY_PDF_INIT: {\r\n state.itineraryPdf[action.flightLegId].itineraryPdfLoading = true;\r\n return Object.assign({}, state, {\r\n itineraryPdfLoading: state.itineraryPdfLoading + 1,\r\n itineraryPdf: state.itineraryPdf,\r\n });\r\n }\r\n\r\n case type.ITINERARY_PDF_SUCCESS: {\r\n state.itineraryPdf[action.flightLegId].itineraryPdf = action.data || {};\r\n state.itineraryPdf[action.flightLegId].itineraryPdfLoading = false;\r\n return Object.assign({}, state, {\r\n itineraryPdfLoading: state.itineraryPdfLoading - 1,\r\n itineraryPdf: state.itineraryPdf,\r\n });\r\n }\r\n\r\n case type.ITINERARY_PDF_FAIL: {\r\n state.itineraryPdf[action.flightLegId].itineraryPdfLoading = false;\r\n return Object.assign({}, state, {\r\n itineraryPdfLoading: state.itineraryPdfLoading - 1,\r\n itineraryPdf: state.itineraryPdf,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../../actionTypes';\r\n\r\nconst initialState = {\r\n\titineraryCancellationIsLoading: false,\r\n\titineraryCancellationMessage: '',\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n\tswitch (action.type) {\r\n\t\tcase types.FLIGHT_CANCEL_INIT: {\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\titineraryCancellationIsLoading: true\r\n\t\t\t});\r\n\t\t}\r\n\t\tcase types.FLIGHT_CANCEL_SUCCESS: {\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\titineraryCancellationMessage: action.data,\r\n\t\t\t\titineraryCancellationIsLoading: false\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcase types.FLIGHT_CANCEL_AFTER_SUCCESS: {\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\titineraryCancellationMessage: '',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcase types.FLIGHT_CANCEL_FAILURE: {\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\titineraryCancellationMessage: action.data,\r\n\t\t\t\titineraryCancellationIsLoading: false\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nexport const initialState = {\r\n isQuoteLoading: false,\r\n isQuoteLoadMoreLoading: false,\r\n activeQuotes: {},\r\n expiredQuotes: {},\r\n quoteError: '',\r\n};\r\n\r\nconst addQuotes = (oldQuotes, newQuotes) => {\r\n const _oldQuotes = { ...oldQuotes };\r\n newQuotes.forEach(quote => {\r\n _oldQuotes[quote.id] = quote;\r\n });\r\n return _oldQuotes;\r\n};\r\n\r\nexport default function quotesReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.FETCH_QUOTES_INIT: {\r\n return Object.assign({}, state, {\r\n isQuoteLoading: action.data > 1 ? false : true,\r\n isQuoteLoadMoreLoading: action.data === 1 ? false : true,\r\n quoteError: '',\r\n });\r\n }\r\n case types.FETCH_QUOTES_SUCCESS: {\r\n return Object.assign({}, state, {\r\n isQuoteLoading: false,\r\n isQuoteLoadMoreLoading: false,\r\n activeQuotes: action.data.quoteType === 'QUOTED'\r\n ? addQuotes(state.activeQuotes, action.data.quotes)\r\n : state.activeQuotes,\r\n expiredQuotes: action.data.quoteType === 'EXPIRED'\r\n ? addQuotes(state.expiredQuotes, action.data.quotes)\r\n : state.expiredQuotes,\r\n });\r\n }\r\n case types.FETCH_QUOTES_FAIL: {\r\n return Object.assign({}, state, {\r\n isQuoteLoading: false,\r\n isQuoteLoadMoreLoading: false,\r\n quoteError: action.data\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import moment from 'moment';\r\n\r\n// export const getLastStatementYear = (accountStatements = []) => (\r\n// accountStatements.length ?\r\n// moment(findLatest(accountStatements.map(statement =>\r\n// statement.createdDate))) : ''\r\n// );\r\n\r\n// export const mergeMoreInvoices = (data = {}) => {\r\n// const { res = {}, currentAccount = '' } = data;\r\n// const currentAccountId = currentAccount ||\r\n// (res.billed && res.billed[0] ? res.billed[0].accountId : '');\r\n// const currentFlight = this.billedFlights.find(({ aircraftTypeId, accountId }) =>\r\n// aircraftTypeId === data.aircraftTypeId &&\r\n// accountId === currentAccountId);\r\n// const invoices = res.billed && res.billed[0] ? res.billed[0].invoice : [];\r\n// currentFlight.noMoreInvoices =\r\n// !invoices.length || invoices.length < INVOICES_PER_PAGE;\r\n// const availableInvoices = currentFlight.invoice;\r\n// const newInvoices = availableInvoices.concat(invoices);\r\n// currentFlight.invoice = newInvoices;\r\n// }\r\n\r\nexport const currentDate = moment().format('DD MMM YYYY');\r\n\r\nexport const mergeInvoices = (currentFlights, { accountId, aircraftTypeId, billedFlights }) => {\r\n const clonedFlights = [ ...currentFlights ];\r\n const currentFlight = clonedFlights.find(flight => (\r\n flight.accountId === accountId && flight.aircraftTypeId === aircraftTypeId\r\n ));\r\n if (!currentFlight) return currentFlights;\r\n currentFlight.invoice = [\r\n ...currentFlight.invoice,\r\n ...billedFlights[0].invoice,\r\n ];\r\n currentFlight.noMoreInvoices = billedFlights[0].noMoreInvoices;\r\n return currentFlights;\r\n}\r\n\r\nexport const isActiveContract = year => {\r\n const { contractPeriodStart, contractPeriodEnd } = year;\r\n const periodStart = moment(contractPeriodStart);\r\n const periodEnd = moment(contractPeriodEnd);\r\n return moment(currentDate).isBetween(periodStart, periodEnd, 'date', '[]');\r\n};","import * as types from \"../actionTypes\";\r\nimport { mergeInvoices } from '../../utils/PASUtils';\r\n\r\nconst initialState = {\r\n unbilledFlights: [],\r\n loadingUnbilledFlights: false,\r\n unbilledFlightsError: '',\r\n billedFlights: [],\r\n loadingBilledFlights: false,\r\n billedFlightsError: '',\r\n loadingMoreBilledFlights: [],\r\n moreBilledFlightsError: '',\r\n accountStatementInfo: [],\r\n accountStatements: [],\r\n accountStatementsError: '',\r\n loadingAccountStatements: 0,\r\n statementInvoices: [],\r\n statementInvoicesLastPage: false,\r\n loadingStatementInvoices: false,\r\n loadingMoreStatementInvoices: false,\r\n statemenetInvoicesError: '',\r\n loadingZipUrl: false,\r\n zipUrlError: '',\r\n loadingPdf: false,\r\n pdfError: '',\r\n};\r\n\r\nexport default function PASReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.FETCH_UNBILLED_INIT:\r\n return {\r\n ...state,\r\n unbilledFlights: [],\r\n loadingUnbilledFlights: true,\r\n unbilledFlightsError: '',\r\n };\r\n case types.FETCH_UNBILLED_SUCCESS:\r\n return {\r\n ...state,\r\n unbilledFlights: action.data.unbilledFlights || [],\r\n loadingUnbilledFlights: false,\r\n unbilledFlightsError: '',\r\n };\r\n case types.FETCH_UNBILLED_FAIL:\r\n return {\r\n ...state,\r\n unbilledFlights: null,\r\n loadingUnbilledFlights: false,\r\n unbilledFlightsError: action.data.error || '',\r\n };\r\n case types.FETCH_RECENT_INVOICES_INIT:\r\n return {\r\n ...state,\r\n billedFlights: [],\r\n loadingBilledFlights: true,\r\n billedFlightsError: '',\r\n };\r\n case types.FETCH_RECENT_INVOICES_SUCCESS:\r\n return {\r\n ...state,\r\n billedFlights: action.data.billedFlights || [],\r\n loadingBilledFlights: false,\r\n billedFlightsError: '',\r\n };\r\n case types.FETCH_RECENT_INVOICES_FAIL:\r\n return {\r\n ...state,\r\n billedFlights: null,\r\n loadingBilledFlights: false,\r\n billedFlightsError: action.data.error || '',\r\n };\r\n case types.FETCH_MORE_INVOICES_INIT:\r\n return {\r\n ...state,\r\n loadingMoreBilledFlights: [\r\n ...state.loadingMoreBilledFlights, {\r\n accountId: action.data.accountId,\r\n aircraftTypeId: action.data.aircraftTypeId,\r\n },\r\n ]\r\n };\r\n case types.FETCH_MORE_INVOICES_SUCCESS:\r\n return {\r\n ...state,\r\n loadingMoreBilledFlights:\r\n state.loadingMoreBilledFlights\r\n .filter(({ aircraftTypeId, accountId }) =>\r\n !(aircraftTypeId === action.data.aircraftTypeId &&\r\n accountId === action.data.accountId)\r\n ),\r\n moreBilledFlightsError: '',\r\n billedFlights: mergeInvoices(\r\n state.billedFlights,\r\n action.data\r\n ),\r\n };\r\n case types.FETCH_MORE_INVOICES_FAIL:\r\n return {\r\n ...state,\r\n loadingMoreBilledFlights:\r\n state.loadingMoreBilledFlights\r\n .filter(({ aircraftTypeId, accountId }) =>\r\n !(aircraftTypeId === action.data.aircraftTypeId &&\r\n accountId === action.data.accountId)\r\n ),\r\n moreBilledFlightsError: action.data.error || '',\r\n };\r\n case types.FETCH_ACCOUNT_STATEMENTS_INIT:\r\n return {\r\n ...state,\r\n loadingAccountStatements: state.loadingAccountStatements + 1,\r\n accountStatementsError: '',\r\n accountStatementInfo: [],\r\n accountStatements: [],\r\n };\r\n case types.FETCH_ACCOUNT_STATEMENTS_SUCCESS:\r\n return {\r\n ...state,\r\n loadingAccountStatements: state.loadingAccountStatements - 1,\r\n accountStatementsError: '',\r\n accountStatementInfo: action.data.accountStatementInfo || [],\r\n accountStatements: action.data.accountStatements || [],\r\n };\r\n case types.FETCH_ACCOUNT_STATEMENTS_FAIL:\r\n return {\r\n ...state,\r\n loadingAccountStatements: 0,\r\n accountStatementsError: action.data.error || '',\r\n accountStatementInfo: null,\r\n accountStatements: null,\r\n };\r\n case types.FETCH_STATEMENT_INVOICES_INIT:\r\n return {\r\n ...state,\r\n statementInvoices: action.data ? state.statementInvoices : [],\r\n statementInvoicesLastPage: false,\r\n loadingStatementInvoices: action.data ? false : true,\r\n loadingMoreStatementInvoices: action.data ? true : false,\r\n statementInvoicesError: '',\r\n };\r\n case types.FETCH_STATEMENT_INVOICES_SUCCESS:\r\n return {\r\n ...state,\r\n statementInvoices: action.data.loadMore ? [\r\n ...state.statementInvoices,\r\n ...action.data.statementInvoicesData.invoices\r\n ] : action.data.statementInvoicesData.invoices,\r\n statementInvoicesLastPage: action.data.statementInvoicesData.lastPage || false,\r\n loadingStatementInvoices: false,\r\n loadingMoreStatementInvoices: false,\r\n statementInvoicesError: '',\r\n };\r\n case types.FETCH_STATEMENT_INVOICES_FAIL:\r\n return {\r\n ...state,\r\n statementInvoices: null,\r\n statementInvoicesLastPage: false,\r\n loadingStatementInvoices: false,\r\n loadingMoreStatementInvoices: false,\r\n statementInvoicesError: action.data.error || '',\r\n };\r\n case types.CLEAR_INVOICE_FILTER:\r\n return {\r\n ...state,\r\n statementInvoicesLastPage: state.statementInvoices.length < 6,\r\n statementInvoices: state.statementInvoices.slice(0, 5) || [],\r\n }\r\n case types.FETCH_ZIP_URL_INIT:\r\n return {\r\n ...state,\r\n loadingZipUrl: true,\r\n zipUrlError: '',\r\n };\r\n case types.FETCH_ZIP_URL_SUCCESS:\r\n return {\r\n ...state,\r\n loadingZipUrl: false,\r\n zipUrlError: '',\r\n };\r\n case types.FETCH_ZIP_URL_FAIL:\r\n return {\r\n ...state,\r\n loadingZipUrl: false,\r\n zipUrlError: action.data.error || '',\r\n };\r\n case types.CLEAR_PAS_ERROR:\r\n return {\r\n ...state,\r\n [action.data.errorField]: '',\r\n }\r\n case types.FETCH_ACCOUNT_STATEMENT_PDF_INIT:\r\n return {\r\n ...state,\r\n loadingPdf: true,\r\n pdfError: '',\r\n }\r\n case types.FETCH_ACCOUNT_STATEMENT_PDF_SUCCESS:\r\n return {\r\n ...state,\r\n loadingPdf: false,\r\n pdfError: '',\r\n }\r\n case types.FETCH_ACCOUNT_STATEMENT_PDF_FAIL:\r\n return {\r\n ...state,\r\n loadingPdf: false,\r\n pdfError: action.data,\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as type from '../../actionTypes';\r\nimport { getFlightId } from '../../../utils/itinerariesUtils';\r\n\r\nconst initialState = {\r\n isLoadingMovementMessages: 0,\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case type.ITINERARY_DETAILS_SUCCESS: {\r\n const {\r\n legs,\r\n } = action.data;\r\n const movementMessagesData = {};\r\n legs.forEach(leg => {\r\n movementMessagesData[getFlightId(leg)] = {};\r\n movementMessagesData[getFlightId(leg)].isLoadingMovementMessages = false;\r\n })\r\n return Object.assign({}, state, {\r\n movementMessages: movementMessagesData,\r\n });\r\n }\r\n case type.FETCH_MOVEMENT_MESSAGES_INIT: {\r\n state.movementMessages[action.flightLegId].isLoadingMovementMessages = true;\r\n state.movementMessages[action.flightLegId].movementMessagesFetched = false;\r\n return Object.assign({}, state, {\r\n isLoadingMovementMessages: state.isLoadingMovementMessages + 1,\r\n movementMessages: state.movementMessages,\r\n });\r\n }\r\n\r\n case type.FETCH_MOVEMENT_MESSAGES_SUCCESS: {\r\n state.movementMessages[action.flightLegId].movementMessages = action.data;\r\n state.movementMessages[action.flightLegId].movementMessagesFetched = true;\r\n state.movementMessages[action.flightLegId].isLoadingMovementMessages = false;\r\n return Object.assign({}, state, {\r\n isLoadingMovementMessages: state.isLoadingMovementMessages - 1,\r\n movementMessages: state.movementMessages,\r\n });\r\n }\r\n\r\n case type.FETCH_MOVEMENT_MESSAGES_FAIL: {\r\n state.movementMessages[action.flightLegId].isLoadingMovementMessages = false;\r\n state.movementMessages[action.flightLegId].movementMessagesFetched = true;\r\n return Object.assign({}, state, {\r\n isLoadingMovementMessages: state.isLoadingMovementMessages - 1,\r\n movementMessages: state.movementMessages,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as type from '../../actionTypes';\r\nimport { getFlightId } from '../../../utils/itinerariesUtils';\r\n\r\nconst initialState = {\r\n\tisLoadingAvailedServices: 0,\r\n\tisLoadingAdditionalServices: 0,\r\n\tisErrorAvailedServices: '',\r\n\tisErrorAdditionalServices: '',\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n\tswitch (action.type) {\r\n\t\tcase type.ITINERARY_DETAILS_SUCCESS: {\r\n\t\t\tconst {\r\n\t\t\t\tlegs,\r\n\t\t\t} = action.data;\r\n\t\t\tconst availedServiceData = {};\r\n\t\t\tconst availedAdditionalServicesData = {};\r\n\t\t\tlegs.forEach(leg => {\r\n\t\t\t\tavailedServiceData[getFlightId(leg)] = {};\r\n\t\t\t\tavailedAdditionalServicesData[getFlightId(leg)] = {};\r\n\r\n\t\t\t\tavailedAdditionalServicesData[getFlightId(leg)].isLoadingAdditionalServices = false;\r\n\t\t\t\tavailedServiceData[getFlightId(leg)].isLoadingAvailedServices = false;\r\n\t\t\t})\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tavailedService: availedServiceData,\r\n\t\t\t\tavailedASData: availedAdditionalServicesData\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//----------FETCH_AVAILED_SERVICES------\r\n\r\n\t\tcase type.FETCH_AVAILED_SERVICES_INIT: {\r\n\t\t\tstate.availedService[action.flightLegId].isLoadingAvailedServices = true;\r\n\t\t\tstate.availedASData[action.flightLegId].isLoadingAdditionalServices = true;\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tavailedService: state.availedService,\r\n\t\t\t\tavailedASData: state.availedASData,\r\n\t\t\t\tisLoadingAvailedServices: state.isLoadingAvailedServices + 1,\r\n\t\t\t\tisLoadingAdditionalServices: state.isLoadingAdditionalServices + 1,\r\n\t\t\t\tisErrorAvailedServices: '',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcase type.FETCH_AVAILED_SERVICES_SUCCESS: {\r\n\t\t\tstate.availedService[action.flightLegId].availedService = action.availedGTData || [];\r\n\t\t\tstate.availedASData[action.flightLegId].availedASData = action.availedASData || [];\r\n\t\t\tstate.availedService[action.flightLegId].isLoadingAvailedServices = false\r\n\t\t\tstate.availedASData[action.flightLegId].isLoadingAdditionalServices = false;\r\n\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tisLoadingAvailedServices: state.isLoadingAvailedServices - 1,\r\n\t\t\t\tisLoadingAdditionalServices: state.isLoadingAdditionalServices - 1,\r\n\t\t\t\tavailedService: state.availedService,\r\n\t\t\t\tavailedASData: state.availedASData,\r\n\t\t\t\tisErrorAvailedServices: '',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcase type.FETCH_AVAILED_SERVICES_FAIL: {\r\n\t\t\tstate.availedService[action.flightLegId].isLoadingAvailedServices = false;\r\n\t\t\tstate.availedASData[action.flightLegId].isLoadingAdditionalServices = false;\r\n\t\t\tstate.availedService[action.flightLegId].availedService = [];\r\n\t\t\tstate.availedASData[action.flightLegId].availedASData = [];\r\n\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tisLoadingAvailedServices: state.isLoadingAvailedServices - 1,\r\n\t\t\t\tisLoadingAdditionalServices: state.isLoadingAdditionalServices - 1,\r\n\t\t\t\tavailedService: state.availedService,\r\n\t\t\t\tavailedASData: state.availedASData,\r\n\t\t\t\tisErrorAvailedServices: action.error,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//----------------ADD_TRANSPORT_SERVICES---------------\r\n\r\n\t\tcase type.ADD_TRANSPORT_SERVICES_INIT: {\r\n\t\t\tstate.availedService[action.flightLegId].isLoadingAvailedServices = true;\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tavailedService: state.availedService,\r\n\t\t\t\tisLoadingAvailedServices: state.isLoadingAvailedServices + 1,\r\n\t\t\t\tisErrorAvailedServices: '',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcase type.ADD_TRANSPORT_SERVICES_SUCCESS: {\r\n\t\t\tstate.availedService[action.flightLegId].availedService.push(action.data)\r\n\t\t\tstate.availedService[action.flightLegId].isLoadingAvailedServices = false\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tisLoadingAvailedServices: state.isLoadingAvailedServices - 1,\r\n\t\t\t\tavailedService: state.availedService,\r\n\t\t\t\tisErrorAvailedServices: ''\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcase type.ADD_TRANSPORT_SERVICES_FAIL: {\r\n\t\t\tstate.availedService[action.flightLegId].isLoadingAvailedServices = false;\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tisLoadingAvailedServices: state.isLoadingAvailedServices - 1,\r\n\t\t\t\tavailedService: state.availedService,\r\n\t\t\t\tisErrorAvailedServices: action.error,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//---------------ADD_ADDITIONAL_SERVICES----------------\r\n\r\n\t\tcase type.ADD_ADDITIONAL_SERVICES_INIT: {\r\n\t\t\tstate.availedASData[action.flightLegId].isLoadingAdditionalServices = true;\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tavailedASData: state.availedASData,\r\n\t\t\t\tisLoadingAdditionalServices: state.isLoadingAdditionalServices + 1,\r\n\t\t\t\tisErrorAdditionalServices: '',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcase type.ADD_ADDITIONAL_SERVICES_SUCCESS: {\r\n\t\t\tstate.availedASData[action.flightLegId].availedASData.push(action.data);\r\n\t\t\tstate.availedASData[action.flightLegId].isLoadingAdditionalServices = false\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tisLoadingAdditionalServices: state.isLoadingAdditionalServices - 1,\r\n\t\t\t\tavailedASData: state.availedASData,\r\n\t\t\t\tisErrorAdditionalServices: ''\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcase type.ADD_ADDITIONAL_SERVICES_FAIL: {\r\n\t\t\tstate.availedASData[action.flightLegId].isLoadingAdditionalServices = false;\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tisLoadingAdditionalServices: state.isLoadingAdditionalServices - 1,\r\n\t\t\t\tavailedASData: state.availedASData,\r\n\t\t\t\tisErrorAdditionalServices: action.error,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcase type.CLEAR_ERROR_FETCH_ITINERARY: {\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tisErrorAvailedServices: '',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n","import * as type from '../actionTypes';\r\n\r\nconst initialState = {\r\n\tgroundServices: [],\r\n\tgroundServicesAdd: {},\r\n\tisLoadingGroundServices: false,\r\n\tisLoadingAddGroundServices: false,\r\n\tisErrorGroundTransport: '',\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n\tswitch (action.type) {\r\n\t\tcase type.FETCH_GROUND_SERVICES_INIT: {\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tisLoadingGroundServices: true,\r\n\t\t\t\tgroundServices: {},\r\n\t\t\t\tisErrorGroundTransport: '',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcase type.FETCH_GROUND_SERVICES_SUCCESS: {\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tisLoadingGroundServices: false,\r\n\t\t\t\tgroundServices: action.data,\r\n\t\t\t\tisErrorGroundTransport: ''\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tcase type.FETCH_GROUND_SERVICES_FAIL: {\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tisLoadingGroundServices: false,\r\n\t\t\t\tisErrorGroundTransport: action.data,\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\tcase type.CLEAR_ERROR_FETCH_ITINERARY: {\r\n\t\t\treturn Object.assign({}, state, {\r\n\t\t\t\tisErrorGroundTransport: '',\r\n\t\t\t});\r\n\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state;\r\n\t}\r\n}\r\n","import * as types from \"../actionTypes\";\r\n\r\nconst initialState = {\r\n isAircraftsLoading: false,\r\n aircraftsList: [],\r\n error: \"\"\r\n};\r\n\r\nexport default function aircraftsReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.GET_AIRCRAFTS_INIT: {\r\n return Object.assign({}, state, {\r\n isAircraftsLoading: true,\r\n aircraftsList: [],\r\n error: \"\"\r\n });\r\n }\r\n case types.GET_AIRCRAFTS_SUCCESS: {\r\n return Object.assign({}, state, {\r\n isAircraftsLoading: false,\r\n aircraftsList: action.data,\r\n error: \"\"\r\n });\r\n }\r\n case types.GET_AIRCRAFTS_FAILURE: {\r\n return Object.assign({}, state, {\r\n isAircraftsLoading: false,\r\n aircraftsList: [],\r\n error: action.data\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from \"../actionTypes\";\r\nimport { getFlightId } from \"../../utils/itinerariesUtils\";\r\n\r\nconst initialState = {\r\n feedback: {},\r\n isFeedbackLoading: 0,\r\n feedbackError: \"\",\r\n isSavingFeedback : false,\r\n};\r\nexport default function customerFeedbackReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.ITINERARY_DETAILS_SUCCESS: {\r\n const { legs } = action.data;\r\n let feedbackData = {};\r\n legs.forEach(leg => {\r\n feedbackData[getFlightId(leg)] = {};\r\n feedbackData[getFlightId(leg)].isFeedbackLoading = false;\r\n });\r\n const result = Object.assign({}, state, {\r\n feedback: feedbackData\r\n });\r\n return result;\r\n }\r\n case types.FETCH_LEG_FEEDBACK_INIT: {\r\n state.feedback[action.flightLegId].isFeedbackLoading = true;\r\n state.feedback[action.flightLegId].feedbackSuccess = false;\r\n return Object.assign({}, state, {\r\n isFeedbackLoading: state.isFeedbackLoading + 1,\r\n feedback: state.feedback,\r\n feedbackError: \"\"\r\n });\r\n }\r\n case types.FETCH_LEG_FEEDBACK_SUCCESS: {\r\n state.feedback[action.flightLegId].feedback = action.data || \"\";\r\n state.feedback[action.flightLegId].feedbackSuccess = true;\r\n state.feedback[action.flightLegId].isFeedbackLoading = false;\r\n return Object.assign({}, state, {\r\n isFeedbackLoading: state.isFeedbackLoading - 1,\r\n feedback: state.feedback,\r\n feedbackError: \"\"\r\n });\r\n }\r\n case types.FETCH_LEG_FEEDBACK_FAIL: {\r\n state.feedback[action.flightLegId].isFeedbackLoading = false;\r\n state.feedback[action.flightLegId].feedbackSuccess = false;\r\n return Object.assign({}, state, {\r\n isFeedbackLoading: state.isFeedbackLoading - 1,\r\n feedback: state.feedback,\r\n feedbackError: action.data\r\n });\r\n }\r\n case types.SAVE_LEG_FEEDBACK_INIT: {\r\n state.feedback[action.flightLegId].isSavingFeedback = true;\r\n state.feedback[action.flightLegId].feedbackSuccess = false;\r\n return Object.assign({}, state, {\r\n isFeedbackLoading: state.isFeedbackLoading + 1,\r\n feedback: state.feedback,\r\n feedbackError: \"\"\r\n });\r\n }\r\n case types.SAVE_LEG_FEEDBACK_SUCCESS: {\r\n state.feedback[action.flightLegId].feedback = action.data || \"\";\r\n state.feedback[action.flightLegId].feedbackSuccess = true;\r\n state.feedback[action.flightLegId].isSavingFeedback = false;\r\n return Object.assign({}, state, {\r\n isFeedbackLoading: state.isFeedbackLoading - 1,\r\n feedback: state.feedback,\r\n feedbackError: \"\"\r\n });\r\n }\r\n case types.SAVE_LEG_FEEDBACK_FAIL: {\r\n state.feedback[action.flightLegId].isSavingFeedback = false;\r\n state.feedback[action.flightLegId].feedbackSuccess = false;\r\n state.feedback[action.flightLegId].feedbackError = 'The feedback identifier is expired.';\r\n return Object.assign({}, state, {\r\n isFeedbackLoading: state.isFeedbackLoading - 1,\r\n feedback: state.feedback,\r\n });\r\n }\r\n case types.CLEAR_FEEDBACK: {\r\n state.feedback[action.flightLegId].feedbackError = \"\";\r\n return Object.assign({}, state, {\r\n feedback: state.feedback,\r\n feedbackError: \"\"\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nconst initialState = {\r\n};\r\n\r\nconst getCateringCounter = (currentCount = 1, increment) => {\r\n currentCount += increment;\r\n if (currentCount < 0) currentCount = 0;\r\n return currentCount;\r\n}\r\n\r\nexport default function cateringReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.GET_CATERING_STATE_INIT: {\r\n const newState = {\r\n ...state,\r\n };\r\n newState[action.data] = {\r\n ...newState[action.data],\r\n isCateringLoading: getCateringCounter((newState[action.data] || {}).isCateringLoading, 1)\r\n }\r\n return newState;\r\n }\r\n case types.GET_CATERING_STATE_SUCCESS: {\r\n const newState = {\r\n ...state,\r\n };\r\n newState[action.data.legId] = {\r\n ...newState[action.data.legId],\r\n ...action.data,\r\n isCateringLoading: getCateringCounter((newState[action.data.legId] || {}).isCateringLoading, -1),\r\n }\r\n return newState;\r\n }\r\n case types.GET_CATERING_STATE_FAIL: {\r\n const newState = {\r\n ...state,\r\n };\r\n newState[action.data] = {\r\n ...newState[action.data],\r\n isCateringLoading: getCateringCounter((newState[action.data]||{}).isCateringLoading, -1),\r\n }\r\n return newState;\r\n }\r\n case types.GET_CATERING_PROPOSAL_INIT: {\r\n const newState = {\r\n ...state\r\n }\r\n newState[action.data] = {\r\n ...newState[action.data],\r\n isCateringLoading: getCateringCounter((newState[action.data] || {}).isCateringLoading, 1)\r\n }\r\n return newState;\r\n }\r\n case types.GET_CATERING_PROPOSAL_SUCCESS: {\r\n const newState = {\r\n ...state\r\n }\r\n newState[action.data.legId] = {\r\n ...newState[action.data.legId],\r\n cateringProposal: [\r\n ...action.data,\r\n ],\r\n isCateringLoading: getCateringCounter((newState[action.data.legId] || {}).isCateringLoading, -1)\r\n }\r\n return newState;\r\n }\r\n case types.GET_CATERING_PROPOSAL_FAIL: {\r\n const newState = {\r\n ...state\r\n }\r\n newState[action.data] = {\r\n ...newState[action.data],\r\n isCateringLoading: getCateringCounter((newState[action.data] || {}).isCateringLoading, -1)\r\n }\r\n return newState;\r\n }\r\n case types.CHANGE_CATERING_PROPOSAL_INIT: {\r\n const newState = {\r\n ...state\r\n }\r\n newState[action.data] = {\r\n ...newState[action.data],\r\n isCateringLoading: getCateringCounter((newState[action.data] || {}).isCateringLoading, 1)\r\n }\r\n return newState;\r\n }\r\n case types.CHANGE_CATERING_PROPOSAL_SUCCESS: {\r\n const newState = {\r\n ...state\r\n }\r\n newState[action.data] = {\r\n ...newState[action.data],\r\n isCateringLoading: getCateringCounter((newState[action.data] || {}).isCateringLoading, -1)\r\n }\r\n return newState;\r\n }\r\n case types.CHANGE_CATERING_PROPOSAL_FAIL: {\r\n const newState = {\r\n ...state\r\n }\r\n newState[action.data] = {\r\n ...newState[action.data],\r\n isCateringLoading: getCateringCounter((newState[action.data] || {}).isCateringLoading, -1)\r\n }\r\n return newState;\r\n }\r\n case types.GET_CATERING_PDF_INIT: {\r\n const newState = {\r\n ...state\r\n }\r\n newState[action.data] = {\r\n ...newState[action.data],\r\n isCateringLoading: getCateringCounter((newState[action.data] || {}).isCateringLoading, 1)\r\n }\r\n return newState;\r\n }\r\n case types.GET_CATERING_PDF_SUCCESS: {\r\n const newState = {\r\n ...state\r\n }\r\n newState[action.data.legId] = {\r\n ...newState[action.data.legId],\r\n ...action.data,\r\n isCateringLoading: getCateringCounter((newState[action.data.legId] || {}).isCateringLoading, -1)\r\n }\r\n return newState;\r\n }\r\n case types.GET_CATERING_PDF_FAIL: {\r\n const newState = {\r\n ...state\r\n }\r\n newState[action.data.legId] = {\r\n ...newState[action.data.legId],\r\n error: action.data,\r\n isCateringLoading: getCateringCounter((newState[action.data.legId] || {}).isCateringLoading, -1)\r\n }\r\n return newState;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nexport const initialState = {\r\n notifications: {},\r\n cities: {},\r\n isLoading: false,\r\n isError: false,\r\n error: '',\r\n isUpdated: false,\r\n isFetched: false,\r\n};\r\n\r\nconst updateNotification = (updatedNotification) => {\r\n return Object.assign({}, updatedNotification);\r\n};\r\n\r\nconst updateCities = (updatedCities) => {\r\n return Object.assign({}, updatedCities);\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.GET_PUSH_NOTIFICATION_INIT: {\r\n return Object.assign({}, state, {\r\n notifications: {},\r\n cities: {},\r\n isLoading: true,\r\n isError: false,\r\n error: '',\r\n isUpdated: false,\r\n isFetched: false,\r\n });\r\n }\r\n case types.GET_PUSH_NOTIFICATION_SUCCESS: {\r\n return Object.assign({}, state, {\r\n notifications: action.data.notifications,\r\n cities: action.data.cities,\r\n isLoading: false,\r\n isError: false,\r\n error: '',\r\n isUpdated: false,\r\n isFetched: true,\r\n });\r\n }\r\n case types.GET_PUSH_NOTIFICATION_FAILURE: {\r\n return Object.assign({}, state, {\r\n notifications: {},\r\n cities: {},\r\n isLoading: false,\r\n isError: true,\r\n error: action.data,\r\n isUpdated: false,\r\n isFetched: false,\r\n });\r\n }\r\n case types.UPDATE_PUSH_NOTIFICATION_INIT: {\r\n return Object.assign({}, state, {\r\n notifications: state.notifications,\r\n cities: state.cities,\r\n isLoading: true,\r\n isError: false,\r\n error: '',\r\n isUpdated: false,\r\n isFetched: false,\r\n });\r\n }\r\n case types.UPDATE_PUSH_NOTIFICATION_SUCCESS: {\r\n return Object.assign({}, state, {\r\n notifications: updateNotification(action.data.notifications),\r\n cities: updateCities(action.data.cities),\r\n isLoading: false,\r\n isError: false,\r\n error: '',\r\n isUpdated: true,\r\n isFetched: false,\r\n });\r\n }\r\n case types.UPDATE_PUSH_NOTIFICATION_FAILURE: {\r\n return Object.assign({}, state, {\r\n notifications: state.notifications,\r\n cities: state.cities,\r\n isLoading: false,\r\n isError: true,\r\n error: action.data,\r\n isUpdated: false,\r\n isFetched: false,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as type from '../../actionTypes';\r\nimport { getFlightId } from '../../../utils/itinerariesUtils';\r\n\r\nconst initialState = {\r\n isLoadingWeather: 0,\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case type.ITINERARY_DETAILS_SUCCESS: {\r\n const {\r\n legs,\r\n } = action.data;\r\n const weatherData = {};\r\n legs.forEach(leg => {\r\n weatherData[getFlightId(leg)] = {};\r\n weatherData[getFlightId(leg)].isLoadingWeather = false;\r\n })\r\n return Object.assign({}, state, {\r\n weather: weatherData,\r\n });\r\n }\r\n case type.FETCH_WEATHER_INIT: {\r\n action.key === 'arrival' ?\r\n state.weather[action.flightLegId].isLoadingArrivalWeather = true :\r\n state.weather[action.flightLegId].isLoadingDepartureWeather = true;\r\n\r\n action.key === 'arrival' ?\r\n state.weather[action.flightLegId].arrivalWeather = '' :\r\n state.weather[action.flightLegId].departureWeather = '';\r\n\r\n action.key === 'arrival' ?\r\n state.weather[action.flightLegId].arrivalWeatherFetched = false :\r\n state.weather[action.flightLegId].departureWeatherFetched = false;\r\n\r\n return Object.assign({}, state, {\r\n isLoadingWeather: state.isLoadingWeather + 1,\r\n weather: state.weather,\r\n });\r\n }\r\n\r\n case type.FETCH_WEATHER_SUCCESS: {\r\n action.key === 'arrival' ?\r\n state.weather[action.flightLegId].arrivalWeather = action.data || '' : \r\n state.weather[action.flightLegId].departureWeather = action.data || '';\r\n\r\n action.key === 'arrival' ?\r\n state.weather[action.flightLegId].isLoadingArrivalWeather = false : \r\n state.weather[action.flightLegId].isLoadingDepartureWeather = false;\r\n\r\n action.key === 'arrival' ?\r\n state.weather[action.flightLegId].arrivalWeatherFetched = true :\r\n state.weather[action.flightLegId].departureWeatherFetched = true;\r\n\r\n return Object.assign({}, state, {\r\n isLoadingWeather: state.isLoadingWeather - 1,\r\n weather: state.weather,\r\n });\r\n }\r\n\r\n case type.FETCH_WEATHER_FAIL: {\r\n action.key === 'arrival' ?\r\n state.weather[action.flightLegId].isLoadingArrivalWeather = false : \r\n state.weather[action.flightLegId].isLoadingDepartureWeather = false;\r\n\r\n action.key === 'arrival' ?\r\n state.weather[action.flightLegId].arrivalWeather = '' : \r\n state.weather[action.flightLegId].departureWeather = '';\r\n\r\n action.key === 'arrival' ?\r\n state.weather[action.flightLegId].arrivalWeatherFetched = true :\r\n state.weather[action.flightLegId].departureWeatherFetched = true;\r\n \r\n return Object.assign({}, state, {\r\n isLoadingWeather: state.isLoadingWeather - 1,\r\n weather: state.weather,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as type from '../../actionTypes';\r\nimport { getFlightId } from '../../../utils/itinerariesUtils';\r\n\r\nconst initialState = {\r\n isLoadingFbo: 0,\r\n};\r\n\r\nexport default function launchReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case type.ITINERARY_DETAILS_SUCCESS: {\r\n const {\r\n legs,\r\n } = action.data;\r\n const fboData = {};\r\n legs.forEach(leg => {\r\n fboData[getFlightId(leg)] = {};\r\n fboData[getFlightId(leg)].isLoadingFbo = false;\r\n })\r\n return Object.assign({}, state, {\r\n fbo: fboData,\r\n });\r\n }\r\n case type.FETCH_FBO_INIT: {\r\n state.fbo[action.flightLegId].isLoadingFbo = true;\r\n state.fbo[action.flightLegId].fboFetched = false;\r\n return Object.assign({}, state, {\r\n isLoadingFbo: state.isLoadingFbo + 1,\r\n fbo: state.fbo,\r\n });\r\n }\r\n\r\n case type.FETCH_FBO_SUCCESS: {\r\n state.fbo[action.flightLegId].fbo = action.data;\r\n state.fbo[action.flightLegId].fboFetched = true;\r\n state.fbo[action.flightLegId].isLoadingFbo = false;\r\n return Object.assign({}, state, {\r\n isLoadingFbo: state.isLoadingFbo - 1,\r\n fbo: state.fbo,\r\n });\r\n }\r\n\r\n case type.FETCH_FBO_FAIL: {\r\n state.fbo[action.flightLegId].isLoadingFbo = false;\r\n state.fbo[action.flightLegId].fboFetched = true;\r\n return Object.assign({}, state, {\r\n isLoadingFbo: state.isLoadingFbo - 1,\r\n fbo: state.fbo,\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { combineReducers } from 'redux';\r\nimport termsPolicyReducer from './termsAndPolicyReducer';\r\nimport userReducer from './userReducer';\r\nimport offersReducer from './offersReducer';\r\nimport geocodeReducer from './geocodeReducer';\r\nimport googleMapReducer from './googleMapReducer';\r\nimport visitedAirportsReducer from './visitedAirportsReducer';\r\nimport validateFlightReducer from './validateFlightReducer';\r\nimport PAFReducer from './PAFReducer';\r\nimport tokenReducer from './tokenReducer';\r\nimport registrationReducer from './registrationReducer';\r\nimport resendRegisterCodeReducer from './resendRegisterCodeReducer';\r\nimport membershipPlansReducer from './membershipPlanReducer';\r\nimport creditCardReducer from './creditCardReducer';\r\nimport directSignupReducer from './directSignupReducer';\r\nimport contactusReducer from './contactusReducer';\r\nimport itineraryListingReducer from './itineraryListingReducer';\r\nimport itineraryDetailsReducer from './itineraryDetails/itineraryDetailsReducer';\r\n\r\nimport passengerReducer from './itineraryDetails/passengerReducer';\r\nimport passengerPopupReducer from './passengerPopupReducer';\r\nimport topUpReducer from './topUpReducer';\r\nimport topUpHistoryReducer from './topUpHistoryReducer';\r\nimport directAccountBalanceReducer from './directAccountBalanceReducer';\r\nimport crewReducer from \"./itineraryDetails/crewReducer\";\r\nimport entertainmentReducer from \"./itineraryDetails/entertainmentReducer\";\r\nimport itineraryPdfReducer from \"./itineraryDetails/itineraryPdfReducer\";\r\nimport itineraryCancelReducer from \"./itineraryDetails/flightCancelReducer\";\r\nimport quotesReducer from './quotesReducer';\r\nimport PASReducer from './PASReducer';\r\nimport movementMessagesReducer from './itineraryDetails/movementMessagesReducer';\r\nimport availedServicesReducer from \"./itineraryDetails/availedServicesReducer\";\r\nimport groundServicesReducer from \"./groundServicesReducer\";\r\n\r\nimport aircraftsReducer from \"./aircraftsReducer\";\r\nimport customerFeedbackReducer from \"./customerFeedbackReducer\";\r\nimport cateringReducer from './cateringReducer';\r\n\r\nimport pushNotificationReduer from './pushNotificationReducer';\r\nimport weatherReducer from './itineraryDetails/weatherReducer';\r\nimport fboReducer from './itineraryDetails/fboReducer';\r\n\r\n// new\r\nimport airportLookupReducer from 'features/slices/airportLookupSlice'\r\n\r\nconst rootReducer = combineReducers({\r\n user: userReducer,\r\n offers: offersReducer,\r\n geocode: geocodeReducer,\r\n visitedAirports: visitedAirportsReducer,\r\n googleMap: googleMapReducer,\r\n itineraries: itineraryListingReducer,\r\n termsPolicy: termsPolicyReducer,\r\n validateFlight: validateFlightReducer,\r\n PAFData: PAFReducer,\r\n token: tokenReducer,\r\n registration: registrationReducer,\r\n resendCode: resendRegisterCodeReducer,\r\n contactus: contactusReducer,\r\n membersPlanReducer: membershipPlansReducer,\r\n creditCardReducer,\r\n directSignupReducer,\r\n pushNotificationReduer,\r\n groundServicesReducer,\r\n itineraryDetails: itineraryDetailsReducer,\r\n PASData: PASReducer,\r\n topUp: topUpReducer,\r\n topUpHistory: topUpHistoryReducer,\r\n directAccountBalance: directAccountBalanceReducer,\r\n crewDetails: crewReducer,\r\n weather: weatherReducer,\r\n movementMessages: movementMessagesReducer,\r\n itineraryPdf: itineraryPdfReducer,\r\n availedServices: availedServicesReducer,\r\n cateringDetails: cateringReducer,\r\n passengers: passengerReducer,\r\n passengerPopup: passengerPopupReducer,\r\n fbo: fboReducer,\r\n aircrafts: aircraftsReducer,\r\n cancelItinerary: itineraryCancelReducer,\r\n customerFeedback: customerFeedbackReducer,\r\n quotes: quotesReducer,\r\n entertainment: entertainmentReducer,\r\n // new\r\n airportLookup: airportLookupReducer,\r\n});\r\n\r\nexport default rootReducer;\r\n","import { applyMiddleware, createStore } from 'redux';\r\nimport thunkMiddleware from 'redux-thunk';\r\nimport { createLogger } from 'redux-logger';\r\nimport { composeWithDevTools } from 'redux-devtools-extension'\r\n\r\nimport rootReducer from 'store/reducers/rootReducer';\r\nimport { existInLocal, getFromLocal } from '../utils/cache';\r\n// import { saveState, loadState } from 'utils/storageUtils';\r\nimport * as userState from './reducers/userReducer';\r\nimport * as tokenState from './reducers/tokenReducer';\r\nimport * as registrationState from './reducers/registrationReducer';\r\n\r\nfunction checkAndRestoreFromLocal() {\r\n // Name should be same as those of the reducers\r\n let user = userState.initialState;\r\n let token = tokenState.initialState;\r\n let registration = registrationState.initialState;\r\n if (existInLocal('user')) {\r\n user = Object.assign({}, user, getFromLocal('user', true, true));\r\n }\r\n if (existInLocal('adminToken')) {\r\n token = Object.assign({}, token, getFromLocal('adminToken'));\r\n }\r\n if (existInLocal('token')) {\r\n token = Object.assign({}, token, getFromLocal('token'));\r\n }\r\n if (existInLocal('register')) {\r\n registration = Object.assign({}, registration, getFromLocal('register', true, true));\r\n }\r\n return {\r\n user,\r\n token,\r\n registration,\r\n };\r\n}\r\n\r\nconst persistedState = checkAndRestoreFromLocal();\r\n\r\nlet middlewareEnhancer;\r\nif (process.env.NODE_ENV === \"production\") {\r\n middlewareEnhancer = applyMiddleware(thunkMiddleware)\r\n} else {\r\n middlewareEnhancer = applyMiddleware(thunkMiddleware, createLogger());\r\n}\r\n\r\nconst composedEnhancer = composeWithDevTools(middlewareEnhancer);\r\n\r\nconst store = createStore(\r\n rootReducer,\r\n persistedState,\r\n composedEnhancer,\r\n);\r\n\r\nexport default store;\r\n","import React from 'react';\r\nimport { Provider } from 'react-redux';\r\n\r\nimport store from 'store/store';\r\n\r\nconst withStore = (WrappedComponent) => {\r\n const HOC = props => (\r\n \r\n \r\n \r\n );\r\n\r\n return HOC;\r\n};\r\n\r\nexport default withStore;\r\n","\r\nconst IsAuthenticated = (props) => {\r\n const { user, children } = props\r\n if (user && user.isLoggedIn) {\r\n return children;\r\n }\r\n if (user && !user.userHasLoggedOut) {\r\n const { pathname, search } = window.location;\r\n const route = pathname + search;\r\n window.location = `/?notAuthenticated=true&from=${route}`;\r\n return null;\r\n }\r\n return null;\r\n}\r\n\r\nexport default IsAuthenticated;","import { connect } from \"react-redux\";\r\n\r\nimport withStore from \"../components/withStore\";\r\nimport IsAuthenticated from \"../components/shared/IsAuthenticated\";\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state;\r\n return {\r\n user,\r\n };\r\n}\r\n\r\nconst IsAuthenticatedContainer = connect(mapStateToProps)(IsAuthenticated);\r\n\r\nexport default withStore(IsAuthenticatedContainer);\r\n","export default function normalizeParsedToken(token) {\r\n return {\r\n token: token.vjResponse.token,\r\n };\r\n}\r\n","import CryptoJS from 'crypto-js';\r\nimport { DEFAULT_FLAG, SIGNUP_CONTEXT, SIGNUP_CONTEXT_PASSWORD } from '../configs/constants.js';\r\n\r\nconst decryptSingupKeys = () => {\r\n const signUpContextBytes = CryptoJS.AES.decrypt(SIGNUP_CONTEXT.toString(), DEFAULT_FLAG);\r\n const DECRYPTED_SIGNUP_CONTEXT = signUpContextBytes.toString(CryptoJS.enc.Utf8);\r\n\r\n const signUpContextPassworBytes = CryptoJS.AES.decrypt(SIGNUP_CONTEXT_PASSWORD.toString(), DEFAULT_FLAG);\r\n const DECRYPTED_SIGNUP_CONTEXT_PASSWORD = signUpContextPassworBytes.toString(CryptoJS.enc.Utf8);\r\n\r\n return {\r\n DECRYPTED_SIGNUP_CONTEXT,\r\n DECRYPTED_SIGNUP_CONTEXT_PASSWORD\r\n }\r\n}\r\n\r\nexport default decryptSingupKeys;","import axios from 'axios';\r\nimport { GET_TOKEN_URL } from '../../configs/constants';\r\nimport {\r\n fetchAdminTokenInit,\r\n fetchAdminTokenSuccess,\r\n fetchAdminTokenFail,\r\n} from '../actions';\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\nimport normalizeParsedToken from '../../normalizers/tokenNormalizer';\r\nimport { parseXmlStringToJson } from '../../utils/parserUtils';\r\nimport { saveToLocal } from '../../utils/cache';\r\nimport decryptSingupKeys from '../../utils/decrypt';\r\n\r\nconst status = {\r\n OK: 200,\r\n};\r\n\r\nconst adminTokenPromiseInprogress = {};\r\n\r\nconst { DECRYPTED_SIGNUP_CONTEXT } = decryptSingupKeys();\r\n\r\nconst adminTokenSource = (username = DECRYPTED_SIGNUP_CONTEXT, context = DECRYPTED_SIGNUP_CONTEXT) => (dispatch) => {\r\n const uniqueKey = username;\r\n if (adminTokenPromiseInprogress[uniqueKey]) {\r\n return adminTokenPromiseInprogress[uniqueKey];\r\n }\r\n const adminTokenPromise = new Promise((resolve, reject) => {\r\n const url = GET_TOKEN_URL.replace('{context}', context)\r\n .replace('{username}', username);\r\n dispatch(fetchAdminTokenInit());\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n const parsedTokenResponse = parseXmlStringToJson(response.data);\r\n const normalizedToken = normalizeParsedToken(parsedTokenResponse);\r\n dispatch(fetchAdminTokenSuccess(normalizedToken.token));\r\n saveToLocal({ adminToken: normalizedToken.token }, 'adminToken');\r\n resolve(normalizedToken);\r\n } else {\r\n const error = handleServerErrors(response.status);\r\n dispatch(fetchAdminTokenFail());\r\n saveToLocal({ adminToken: null }, 'adminToken');\r\n reject(error);\r\n }\r\n delete adminTokenPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(fetchAdminTokenFail(errors));\r\n saveToLocal({ adminToken: null }, 'adminToken');\r\n reject(errors);\r\n delete adminTokenPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n adminTokenPromiseInprogress[uniqueKey] = adminTokenPromise;\r\n return adminTokenPromise;\r\n};\r\n\r\nexport default adminTokenSource;\r\n","import adminTokenSource from '../sources/AdminTokenSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const fetchAdminTokenInit = () => ({\r\n type: types.ADMIN_FETCH_TOKEN_INIT,\r\n});\r\n\r\nexport const fetchAdminTokenSuccess = data => ({\r\n type: types.ADMIN_FETCH_TOKEN_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchAdminTokenFail = data => ({\r\n type: types.ADMIN_FETCH_TOKEN_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchAdminToken = () => adminTokenSource();\r\n","import axios from 'axios';\r\n\r\nimport {\r\n AUTHENTICATE_URL,\r\n APP_VERSION,\r\n} from '../../configs/constants';\r\nimport decryptSingupKeys from '../../utils/decrypt';\r\n\r\nimport {\r\n authenticateTokenInit,\r\n authenticateTokenSuccess,\r\n authenticateTokenFail,\r\n} from '../actions';\r\n\r\nimport {\r\n HTTP_HEADERS_JSON,\r\n} from '../../constants/ApiConstants';\r\n\r\nimport {\r\n handleServerErrors,\r\n encryptData,\r\n} from '../../utils/sourceUtils';\r\nimport normalizeAuthenticationResponse from '../../normalizers/authenticateTokenNormalizer';\r\n\r\nconst status = {\r\n OK: 200,\r\n};\r\n\r\nconst authenticateTokenPromiseInprogress = {};\r\nconst {DECRYPTED_SIGNUP_CONTEXT, DECRYPTED_SIGNUP_CONTEXT_PASSWORD} = decryptSingupKeys();\r\nconst authenticateTokenSource = token => (dispatch) => {\r\n const uniqueKey = token;\r\n if (authenticateTokenPromiseInprogress[uniqueKey]) {\r\n return authenticateTokenPromiseInprogress[uniqueKey];\r\n }\r\n const authenticateTokenPromise = new Promise((resolve, reject) => {\r\n const url = AUTHENTICATE_URL\r\n .replace('{context}', DECRYPTED_SIGNUP_CONTEXT)\r\n .replace('{username}', DECRYPTED_SIGNUP_CONTEXT);\r\n\r\n const data = `${DECRYPTED_SIGNUP_CONTEXT}\\\\+${DECRYPTED_SIGNUP_CONTEXT_PASSWORD}`;\r\n\r\n const key = encryptData(token, data);\r\n\r\n const reqPayload = {\r\n credentials: token + key,\r\n attributes: {\r\n deviceInfo: 'WEB',\r\n appBuildNr: APP_VERSION,\r\n phoneNumber: '',\r\n devicePushId: '',\r\n },\r\n };\r\n\r\n\r\n dispatch(authenticateTokenInit());\r\n\r\n axios\r\n .put(\r\n url,\r\n reqPayload,\r\n HTTP_HEADERS_JSON,\r\n )\r\n // .timeout(TIMEOUT)\r\n // .set(HTTP_HEADERS_JSON)\r\n .then((res) => {\r\n // Helpers.showLoader(false);\r\n if (res.status === status.OK) {\r\n if (res.data.responseHeader.isError) {\r\n const errors = handleServerErrors(res.data.responseHeader.statusCode);\r\n dispatch(authenticateTokenFail(errors));\r\n reject(errors);\r\n } else {\r\n const normalizedAuthenticateResponse = normalizeAuthenticationResponse(\r\n res.data.responseBody,\r\n token,\r\n );\r\n dispatch(authenticateTokenSuccess(normalizedAuthenticateResponse));\r\n resolve({ token, success: true });\r\n }\r\n } else {\r\n const errors = handleServerErrors(res.status);\r\n dispatch(authenticateTokenFail(errors));\r\n reject(errors);\r\n }\r\n delete authenticateTokenPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(authenticateTokenFail(errors));\r\n reject(errors);\r\n delete authenticateTokenPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n authenticateTokenPromiseInprogress[uniqueKey] = authenticateTokenPromise;\r\n return authenticateTokenPromise;\r\n};\r\n\r\nexport default authenticateTokenSource;\r\n","export default function normalizeAuthenticationResponse(res, token) {\r\n return {\r\n mustChangePassword: res.mustChangePassword,\r\n isTokenValid: res.success,\r\n token,\r\n };\r\n}\r\n","import authenticateTokenSource from '../sources/AuthenticateTokenSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const authenticateTokenInit = () => ({\r\n type: types.AUTHENTICATE_TOKEN_INIT,\r\n});\r\n\r\nexport const authenticateTokenSuccess = data => ({\r\n type: types.AUTHENTICATE_TOKEN_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const authenticateTokenFail = data => ({\r\n type: types.AUTHENTICATE_TOKEN_FAIL,\r\n data,\r\n});\r\n\r\nexport const authenticateTokenAction = token => authenticateTokenSource(token);\r\n","import axios from 'axios';\r\nimport {\r\n postContactUsInit,\r\n postContactUsSuccess,\r\n postContactUsFail,\r\n} from '../actions';\r\n\r\nconst status = {\r\n OK: 200,\r\n};\r\nconst contactUsPromiseInprogress = {};\r\nexport const postContactUsForm = payload => (dispatch) => {\r\n const param = payload;\r\n const uniqueKey = 'contactUs';\r\n if (contactUsPromiseInprogress[uniqueKey]) {\r\n return contactUsPromiseInprogress[uniqueKey];\r\n }\r\n const contactUsPromise = new Promise((resolve, reject) => {\r\n dispatch(postContactUsInit());\r\n const CONTACTUS_URL = param.url;\r\n delete param.url;\r\n const formData = new FormData();\r\n Object.keys(param).forEach(key => {\r\n if (typeof param[key] === 'object') {\r\n formData.append(key, JSON.stringify(param[key]));\r\n } else {\r\n formData.append(key, param[key]);\r\n }\r\n });\r\n let contactUsSuccess;\r\n axios\r\n .post(`${CONTACTUS_URL}`, formData)\r\n .then((response) => {\r\n if (response && response.status === status.OK) {\r\n contactUsSuccess = true;\r\n dispatch(postContactUsSuccess(contactUsSuccess));\r\n resolve(contactUsSuccess);\r\n } else {\r\n contactUsSuccess = false;\r\n dispatch(postContactUsFail());\r\n reject(contactUsSuccess);\r\n }\r\n delete contactUsPromiseInprogress[uniqueKey];\r\n })\r\n .catch(() => {\r\n contactUsSuccess = true;\r\n dispatch(postContactUsSuccess(contactUsSuccess));\r\n resolve(contactUsSuccess);\r\n // dispatch(postContactUsFail());\r\n // reject(contactUsSuccess);\r\n delete contactUsPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n contactUsPromiseInprogress[uniqueKey] = contactUsPromise;\r\n return contactUsPromise;\r\n};\r\n\r\nexport default postContactUsForm;\r\n","import { postContactUsForm } from \"../sources/ContactUsSource\";\r\nimport * as types from '../actionTypes';\r\n\r\nexport const postContactUsInit = () => ({\r\n type: types.POST_CONTACTUS_INIT\r\n});\r\n\r\nexport const postContactUsSuccess = data => ({\r\n type: types.POST_CONTACTUS_SUCCESS,\r\n data\r\n});\r\n\r\nexport const postContactUsFail = data => ({\r\n type: types.POST_CONTACTUS_FAIL,\r\n data\r\n});\r\n\r\nexport const clearReducer = () => ({\r\n type: types.POST_CONTACTUS_REFRESH\r\n});\r\n\r\nexport const postContactUs = payload => postContactUsForm(payload);\r\n","import { fetchGeocode } from '../sources/GeocoderSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const fetchGeocodeInit = () => ({\r\n type: types.FETCH_GEOCODE_INIT,\r\n});\r\n\r\nexport const fetchGeocodeSuccess = data => ({\r\n type: types.FETCH_GEOCODE_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchGeocodeFail = data => ({\r\n type: types.FETCH_GEOCODE_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchCountryGeocode = () => fetchGeocode();\r\n","\r\nimport {\r\n fetchGeocodeInit,\r\n} from '../actions';\r\n\r\nexport const RESULT_TYPES = {\r\n COUNTRY: 'country',\r\n LOCALITY: 'locality',\r\n SUBLOCALITY: 'sublocality',\r\n ROUTE: 'route',\r\n STREET_NUMBER: 'street_number',\r\n};\r\n\r\nconst RESULT_TYPES_CONTENT = {\r\n street_number: {\r\n to: 'streetNumber',\r\n },\r\n street_address: {\r\n to: 'street',\r\n },\r\n sublocality: {\r\n to: 'neighborhood',\r\n },\r\n locality: {\r\n to: 'city',\r\n },\r\n country: {\r\n to: 'country',\r\n },\r\n postal_code: {\r\n to: 'postalCode',\r\n },\r\n route: {\r\n to: 'street',\r\n },\r\n};\r\n\r\nconst normalizeResultsByTypes = (results, resultTypes) => {\r\n const types = resultTypes.slice();\r\n let normalizedAddress = {};\r\n let addressComponents = [];\r\n let formattedAddress = null;\r\n if (results && results.length && types.length) {\r\n let i = results.length - 1;\r\n while (i >= 0 && types.length) {\r\n const result = results[i];\r\n\r\n if (result.formatted_address) {\r\n formattedAddress = result.formatted_address;\r\n }\r\n\r\n if (result.address_components) {\r\n addressComponents = addressComponents.concat(result.address_components);\r\n const filteredTypes = [];\r\n for (let x = result.types.length - 1; x >= 0; x -= 1) {\r\n const indexOf = types.indexOf(result.types[x]);\r\n if (indexOf >= 0) {\r\n filteredTypes.push(types.splice(indexOf, 1)[0]);\r\n }\r\n }\r\n\r\n if (filteredTypes.length) {\r\n const normalizedResult = normalizeResultsByTypes(\r\n result.address_components,\r\n filteredTypes,\r\n );\r\n normalizedAddress = Object.assign(normalizedResult, normalizedAddress);\r\n }\r\n } else {\r\n const { length } = result.types;\r\n let foundType;\r\n let x = 0;\r\n while (x < length && !foundType) {\r\n const indexOf = types.indexOf(result.types[x]);\r\n if (indexOf >= 0) {\r\n [foundType] = types.splice(indexOf, 1);\r\n }\r\n x += 1;\r\n }\r\n if (foundType) {\r\n const {\r\n to, short,\r\n } = RESULT_TYPES_CONTENT[foundType];\r\n normalizedAddress = Object.assign({\r\n [to]: short ? result.short_name : result.long_name,\r\n }, normalizedAddress);\r\n }\r\n }\r\n\r\n i -= 1;\r\n }\r\n }\r\n normalizedAddress.formattedAddress = formattedAddress;\r\n if (addressComponents.length && types.length) {\r\n return Object.assign(normalizeResultsByTypes(addressComponents, types), normalizedAddress);\r\n }\r\n return normalizedAddress;\r\n};\r\n\r\nexport const fetchGeocode = () => async (dispatch) => {\r\n dispatch(fetchGeocodeInit());\r\n};\r\n","import * as types from '../actionTypes';\r\n\r\nexport const onGoogleMapsApiLoaded = () => ({\r\n type: types.GOOGLE_MAPS_API_LOADED,\r\n});\r\n\r\nexport const onPlacesAutocompleteBinded = () => ({\r\n type: types.PLACES_AUTOCOMPLETE_BINDED,\r\n});\r\n","import { guaranteeArray } from \"../utils/arrayUtils\";\r\n\r\nexport const normalizeOffer = offer => {\r\n if (offer.isOneWay && offer.isOneWay === true) {\r\n // one way\r\n return {\r\n aircraftId: +offer.aircraftId,\r\n aircraftTypeId: +offer.aircraftTypeId,\r\n availableIn: +offer.availableIn,\r\n departureAirportId: +offer.departureAirportId,\r\n departureAirportPlaceId: +offer.departureAirportPlaceId,\r\n id: +offer.id,\r\n isOneWay: offer.isOneWay === true,\r\n maxGroundTimeInHours: +offer.maxGroundTimeInHours,\r\n maxLegs: +offer.maxLegs,\r\n operatingCompanyId: +offer.operatingCompanyId,\r\n operatingCompanyName: offer.operatingCompanyName,\r\n segmentEnd: offer.segmentEnd, //moment.utc(offer.segmentEnd).format('DD MMM YYYY'),\r\n segmentStart: offer.segmentStart, //moment.utc(offer.segmentStart).format('DD MMM YYYY'),\r\n sortDate: offer.sortDate, //moment.utc(offer.sortDate).format('DD MMM YYYY'),\r\n tailNumber: offer.tailNumber,\r\n validFrom: offer.validFrom, //moment.utc(offer.validFrom).format('DD MMM YYYY'),\r\n validTo: offer.validTo //moment.utc(offer.validTo).format('DD MMM YYYY'),\r\n };\r\n }\r\n // empty leg\r\n return {\r\n aircraftId: +offer.aircraftId,\r\n aircraftTypeId: +offer.aircraftTypeId,\r\n amount: +offer.amount,\r\n arrivalAirportId: +offer.arrivalAirportId,\r\n brokerValidFrom: (offer.brokerValidFrom && offer.brokerValidFrom) || null,\r\n brokerValidTo: (offer.brokerValidTo && offer.brokerValidTo) || null,\r\n currency: offer.currency,\r\n departureAirportId: +offer.departureAirportId,\r\n departureAirportPlaceId: +offer.departureAirportPlaceId,\r\n emptyLegId: +offer.emptyLegId,\r\n flightTimeMinutes: +offer.flightTimeMinutes,\r\n fspValidFrom: offer.fspValidFrom,\r\n fspValidTo: offer.fspValidTo,\r\n id: +offer.id,\r\n isEmptyLeg: offer.isEmptyLeg === true,\r\n maxArrivalTime: offer.maxArrivalTime,\r\n maxDepartureTime: offer.maxDepartureTime,\r\n minArrivalTime: offer.minArrivalTime,\r\n minDepartureTime: offer.minDepartureTime,\r\n operatingCompanyId: +offer.operatingCompanyId,\r\n operatingCompanyName: offer.operatingCompanyName,\r\n sortDate: offer.sortDate,\r\n tailNumber: offer.tailNumber,\r\n validFrom: offer.validFrom,\r\n validTo: offer.validTo\r\n };\r\n};\r\n\r\nexport function normalizeOffers(data = {},regionId = false) {\r\n const offersList = guaranteeArray(data.offers.offer) || [];\r\n const offers = offersList.map(offer => normalizeOffer(offer));\r\n return {\r\n offers,\r\n totalOffers: +data.totalCount || 0,\r\n regionId\r\n };\r\n}\r\n","export default {\r\n OK: 200,\r\n};\r\n","/* eslint-disable import/prefer-default-export */\r\nimport axios from \"axios\";\r\nimport { parseXmlStringToJson } from \"../../utils/parserUtils\";\r\n\r\nimport {\r\n fetchOffersInit,\r\n fetchOffersSuccess,\r\n fetchOffersFail\r\n} from \"../actions\";\r\n\r\nimport { FETCH_OFFERS_URL } from \"../../configs/constants\";\r\nimport { normalizeOffers } from \"../../normalizers/offerNormalizer\";\r\nimport status from \"../../configs/status\";\r\nimport { handleServerErrors } from \"utils/sourceUtils\";\r\nimport { BAD_REQUEST, TIMEOUT_CODE } from \"constants/ServerCodeConstants\";\r\n\r\nconst fetchOffersPromiseInprogress = {};\r\n\r\nexport const fetchOffers = (pageNum, pageSize, regionId) => dispatch => {\r\n const uniqueKey = `${pageNum}-${pageSize}-${regionId}`;\r\n if (fetchOffersPromiseInprogress[uniqueKey]) {\r\n return fetchOffersPromiseInprogress[uniqueKey];\r\n }\r\n const fetchOffersPromise = new Promise((resolve, reject) => {\r\n dispatch(fetchOffersInit());\r\n\r\n const offersPayload = regionId\r\n ? `\r\n ${pageNum}\r\n ${pageSize}\r\n ${regionId}\r\n `\r\n : `\r\n ${pageNum}\r\n ${pageSize}\r\n `;\r\n\r\n const options = {\r\n headers: {\r\n \"Content-Type\": \"application/xml\"\r\n }\r\n };\r\n\r\n axios\r\n .post(FETCH_OFFERS_URL, offersPayload, options)\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n const parsedData = parseXmlStringToJson(response.data);\r\n if (parsedData.responseDto.responseHeader.isError === true) {\r\n const error = parsedData.responseDto.responseHeader.statusCode;\r\n dispatch(fetchOffersFail(handleServerErrors(error)));\r\n reject();\r\n } else if (!parsedData.responseDto.responseBody) {\r\n const normalizedOffers = {\r\n offers: [],\r\n totalOffers: 0,\r\n isFetched: true,\r\n };\r\n dispatch(fetchOffersSuccess(normalizedOffers));\r\n resolve(normalizedOffers);\r\n } else {\r\n const data = parsedData.responseDto.responseBody;\r\n const normalizedOffers = regionId ? normalizeOffers(data,regionId) : normalizeOffers(data);\r\n dispatch(fetchOffersSuccess(normalizedOffers));\r\n resolve(normalizedOffers);\r\n }\r\n } else {\r\n dispatch(fetchOffersFail(handleServerErrors(BAD_REQUEST)));\r\n reject();\r\n }\r\n delete fetchOffersPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(fetchOffersFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else if (!err.code) {\r\n dispatch(fetchOffersFail(handleServerErrors()));\r\n } else { \r\n dispatch(fetchOffersFail(handleServerErrors(BAD_REQUEST)))\r\n };\r\n reject();\r\n delete fetchOffersPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n fetchOffersPromiseInprogress[uniqueKey] = fetchOffersPromise;\r\n return fetchOffersPromise;\r\n};\r\n\r\nexport default fetchOffers;\r\n","import { fetchOffers } from '../sources/OffersSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const fetchOffersInit = () => ({\r\n type: types.FETCH_OFFERS_INIT,\r\n});\r\n\r\nexport const fetchOffersSuccess = data => ({\r\n type: types.FETCH_OFFERS_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchOffersFail = data => ({\r\n type: types.FETCH_OFFERS_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchAllOffers = (pageNum, pageSize, regionId) => fetchOffers(\r\n pageNum,\r\n pageSize,\r\n regionId,\r\n);\r\n","import axios from 'axios';\r\nimport adminTokenSource from './AdminTokenSource';\r\nimport {\r\n registrationInit,\r\n registrationSuccess,\r\n registrationFail,\r\n verifyUserFail,\r\n verifyUserInit,\r\n verifyUserSuccess,\r\n} from '../actions';\r\n\r\nimport {\r\n REGISTER_URL,\r\n CONTEXT,\r\n APP_SOURCE,\r\n} from '../../configs/constants';\r\n\r\nimport {\r\n HTTP_HEADERS_JSON,\r\n} from '../../constants/ApiConstants';\r\n\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\n\r\nimport {\r\n normalizeRegisterResponse,\r\n normalizeRegisterRequestPayload,\r\n} from '../../normalizers/registerNormalizer';\r\nimport authenticateTokenSource from './AuthenticateTokenSource';\r\nimport { saveToLocal, existInLocal, getFromLocal } from '../../utils/cache';\r\n\r\nexport const registrationSource = (token, payload) => (dispatch) => {\r\n return new Promise((resolve, reject) => {\r\n const url = REGISTER_URL.replace('{context}', CONTEXT)\r\n .replace('{token}', token)\r\n .replace('{mode}', 'REGISTER');\r\n\r\n dispatch(registrationInit());\r\n\r\n const reqPayload = normalizeRegisterRequestPayload(payload, token);\r\n axios\r\n .post(\r\n url,\r\n reqPayload,\r\n HTTP_HEADERS_JSON,\r\n )\r\n .then((res) => {\r\n const responseHeader = res.data.responseHeaderDto;\r\n if (!responseHeader.isError) {\r\n const responseBody = res.data.responseBodyDto;\r\n const normalizedResponse = normalizeRegisterResponse(responseBody);\r\n dispatch(registrationSuccess({\r\n user: normalizedResponse,\r\n isUserRegistered: true,\r\n }));\r\n saveToLocal({ user: normalizedResponse }, 'register', true, true);\r\n resolve({\r\n user: normalizedResponse,\r\n isUserRegistered: true,\r\n requestPayload: payload,\r\n });\r\n } else {\r\n if (responseHeader.statusCode) {\r\n const errors = handleServerErrors(responseHeader.statusCode);\r\n dispatch(registrationFail(errors));\r\n saveToLocal({ user: null }, 'register', true, true);\r\n reject(errors);\r\n } else {\r\n dispatch(registrationFail(responseHeader.message));\r\n saveToLocal({ user: null }, 'register', true, true);\r\n reject(responseHeader.message);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(registrationFail(errors));\r\n saveToLocal({ user: null }, 'register', true, true);\r\n reject(errors);\r\n });\r\n });\r\n};\r\n\r\nconst verifyUser = verifyData => (dispatch) => {\r\n const reqPayload = {\r\n verificationCode: verifyData.verificationCode,\r\n source: APP_SOURCE,\r\n };\r\n\r\n const url = REGISTER_URL.replace('{context}', CONTEXT)\r\n .replace('{token}', verifyData.token.token)\r\n .replace('{mode}', 'VERIFY');\r\n axios\r\n .post(\r\n url,\r\n reqPayload,\r\n HTTP_HEADERS_JSON,\r\n )\r\n .then((res) => {\r\n const response = res.data;\r\n let user = null;\r\n if (existInLocal('user')) {\r\n user = getFromLocal('user', true, true);\r\n }\r\n if (response.responseHeaderDto.isError) {\r\n // reject(handleServerErrors(response.responseHeaderDto, response.responseHeaderDto));\r\n const error = handleServerErrors(response.responseHeaderDto.statusCode);\r\n saveToLocal({\r\n isUserVerified: false,\r\n user: user.user,\r\n }, 'user', true, true);\r\n dispatch(verifyUserFail({ error }));\r\n } else {\r\n // resolve({\r\n // message: response.responseHeaderDto.message,\r\n // success: !response.responseHeaderDto.isError,\r\n // token: response.responseBodyDto.token,\r\n // });\r\n console.log(\"TEST 1\");\r\n console.log(user);\r\n if (user !== null) {\r\n if (user.user !== null)\r\n {\r\n user.user.userNotVerified = false;\r\n }\r\n saveToLocal({\r\n isUserVerified: true,\r\n user: user.user,\r\n }, 'user', true, true);\r\n }\r\n dispatch(verifyUserSuccess(response.responseBodyDto));\r\n }\r\n })\r\n .catch((err) => { \r\n console.log(\"TEST 2\");\r\n console.log(err);\r\n let user = null;\r\n if (existInLocal('user')) {\r\n user = getFromLocal('user', true, true);\r\n }\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n if (user !== null) {\r\n saveToLocal({\r\n isUserVerified: false,\r\n user: user.user,\r\n }, 'user', true, true);\r\n }\r\n dispatch(verifyUserFail({ error: errors }));\r\n });\r\n};\r\n\r\nexport const verifyUserSource = verificationCode => (dispatch) => {\r\n dispatch(verifyUserInit());\r\n dispatch(adminTokenSource()).then(\r\n (token) => {\r\n dispatch(authenticateTokenSource(token.token)).then(\r\n () => {\r\n dispatch(verifyUser({ token, verificationCode }));\r\n },\r\n );\r\n },\r\n );\r\n};\r\n","import { registrationSource, verifyUserSource } from '../sources/RegistrationSource'; // eslint-disable-line\r\nimport * as types from '../actionTypes';\r\n\r\nexport const registrationInit = () => ({\r\n type: types.REGISTRATION_INIT,\r\n});\r\n\r\nexport const registrationSuccess = data => ({\r\n type: types.REGISTRATION_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const registrationFail = data => ({\r\n type: types.REGISTRATION_FAIL,\r\n data,\r\n});\r\n\r\nexport const registrationAction = (token, payload) => registrationSource(token, payload);\r\n\r\n\r\nexport const verifyUserInit = () => ({\r\n type: types.VERIFY_USER_INIT,\r\n});\r\n\r\nexport const verifyUserSuccess = data => ({\r\n type: types.VERIFY_USER_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const verifyUserFail = data => ({\r\n type: types.VERIFY_USER_FAIL,\r\n data,\r\n});\r\n\r\n\r\nexport const verifyUserAction = (verificationCode) => verifyUserSource(verificationCode);\r\n","export function normalizeRegisterResponse(fleet) {\r\n const {\r\n personId,\r\n externalAppUserId,\r\n phoneNumber,\r\n token,\r\n username,\r\n salutation,\r\n firstName,\r\n lastName,\r\n gender,\r\n address,\r\n city,\r\n state,\r\n countryName,\r\n } = fleet;\r\n return {\r\n personId,\r\n externalAppUserId,\r\n phoneNumber,\r\n token,\r\n username,\r\n salutation,\r\n firstName,\r\n lastName,\r\n gender,\r\n address,\r\n city,\r\n state,\r\n countryName,\r\n };\r\n}\r\n\r\nexport function normalizeRegisterRequestPayload(req, token) {\r\n return {\r\n deviceType: 'web',\r\n firstName: req.firstName,\r\n gender: req.gender || 'default',\r\n lastName: req.lastName,\r\n osVersion: 'windows',\r\n password: req.password,\r\n phoneNumber: req.phoneNumber,\r\n privacyConsent: req.agreementCheckbox,\r\n salutation: req.salutation.label,\r\n source: 'CUSTOMERWEB',\r\n subscription: req.marketingCheckbox || true,\r\n username: req.email,\r\n token,\r\n countryName: req.countryName || '',\r\n };\r\n}\r\n","import axios from 'axios';\r\nimport { REGISTER_URL, CONTEXT, APP_SOURCE } from 'configs/constants';\r\nimport {\r\n HTTP_HEADERS_JSON,\r\n} from '../../constants/ApiConstants';\r\n\r\nimport {\r\n resendRegisterCodeInit,\r\n resendRegisterCodeSuccess,\r\n resendRegisterCodeFail,\r\n} from '../actions';\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\n\r\nconst resendRegisterCode = object => (dispatch) => {\r\n return new Promise((resolve, reject) => {\r\n dispatch(resendRegisterCodeInit());\r\n\r\n const reqPayload = {\r\n username: object.username,\r\n externalAppUserId: object.externalAppUserId,\r\n source: APP_SOURCE,\r\n };\r\n\r\n\r\n const url = REGISTER_URL\r\n .replace('{context}', CONTEXT)\r\n .replace('{token}', object.token)\r\n .replace('{mode}', 'RESEND');\r\n\r\n axios\r\n .post(\r\n url,\r\n reqPayload,\r\n HTTP_HEADERS_JSON,\r\n )\r\n .then((res) => {\r\n const response = res.data;\r\n if (response.responseHeaderDto.isError) {\r\n const error = handleServerErrors(response.responseHeaderDto.statusCode);\r\n dispatch(resendRegisterCodeFail(error));\r\n reject(error);\r\n } else {\r\n dispatch(resendRegisterCodeSuccess({\r\n message: response.responseHeaderDto.message,\r\n success: !response.responseHeaderDto.isError,\r\n }));\r\n resolve({\r\n message: response.responseHeaderDto.message,\r\n success: !response.responseHeaderDto.isError,\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(resendRegisterCodeFail(errors));\r\n reject(errors);\r\n });\r\n });\r\n};\r\n\r\nexport default resendRegisterCode;\r\n","import * as types from '../actionTypes';\r\nimport resendRegisterCode from '../sources/ResendRegisterCodeSource';\r\n\r\nexport const resendRegisterCodeInit = () => ({\r\n type: types.FETCH_REGISTER_CODE_INIT,\r\n});\r\n\r\nexport const resendRegisterCodeSuccess = data => ({\r\n type: types.FETCH_REGISTER_CODE_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const resendRegisterCodeFail = data => ({\r\n type: types.FETCH_REGISTER_CODE_FAIL,\r\n data,\r\n});\r\n\r\nexport const resendRegisterCodeAction = obj => resendRegisterCode(obj);\r\n","import fetchTerms from '../sources/TermsSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const fetchTermsInit = () => ({\r\n type: types.FETCH_TERMS_INIT,\r\n});\r\n\r\nexport const fetchTermsSuccess = data => ({\r\n type: types.FETCH_TERMS_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchTermsFail = () => ({\r\n type: types.FETCH_TERMS_FAILURE,\r\n});\r\n\r\nexport const fetchTermsAction = () => fetchTerms();\r\n","import axios from 'axios';\r\nimport { GET_TOKEN_URL } from '../../configs/constants';\r\nimport decryptSingupKeys from '../../utils/decrypt';\r\nimport {\r\n fetchTokenInit,\r\n fetchTokenSuccess,\r\n fetchTokenFail,\r\n fetchRegistrationTokenInit,\r\n fetchRegistrationTokenSuccess,\r\n fetchRegistrationTokenFail,\r\n} from '../actions';\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\nimport normalizeParsedToken from '../../normalizers/tokenNormalizer';\r\nimport { parseXmlStringToJson } from '../../utils/parserUtils';\r\nimport { saveToLocal } from '../../utils/cache';\r\n\r\nconst status = {\r\n OK: 200,\r\n};\r\n\r\nconst { DECRYPTED_SIGNUP_CONTEXT} = decryptSingupKeys();\r\nconst tokenPromiseInprogress = {};\r\n\r\nconst tokenSource = (username = DECRYPTED_SIGNUP_CONTEXT, context = DECRYPTED_SIGNUP_CONTEXT, isRegistrationFlow = false) => (dispatch) => {\r\n const uniqueKey = username;\r\n if (tokenPromiseInprogress[uniqueKey]) {\r\n return tokenPromiseInprogress[uniqueKey];\r\n }\r\n const tokenPromise = new Promise((resolve, reject) => {\r\n const url = GET_TOKEN_URL.replace('{context}', context)\r\n .replace('{username}', username);\r\n isRegistrationFlow ? dispatch(fetchRegistrationTokenInit()) : dispatch(fetchTokenInit());\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n const parsedTokenResponse = parseXmlStringToJson(response.data);\r\n const normalizedToken = normalizeParsedToken(parsedTokenResponse);\r\n isRegistrationFlow ? dispatch(fetchRegistrationTokenSuccess(normalizedToken.token)) : dispatch(fetchTokenSuccess(normalizedToken.token));\r\n saveToLocal({ token: normalizedToken.token }, 'token');\r\n resolve(normalizedToken);\r\n } else {\r\n const errors = handleServerErrors(response.status);\r\n isRegistrationFlow ? dispatch(fetchRegistrationTokenFail(errors)) : dispatch(fetchTokenFail(errors));\r\n saveToLocal({ token: null }, 'token');\r\n reject(errors);\r\n }\r\n delete tokenPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n isRegistrationFlow ? dispatch(fetchRegistrationTokenFail(errors)) : dispatch(fetchTokenFail(errors));\r\n saveToLocal({ token: null }, 'token');\r\n reject(errors);\r\n delete tokenPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n tokenPromiseInprogress[uniqueKey] = tokenPromise;\r\n return tokenPromise;\r\n};\r\n\r\nexport default tokenSource;\r\n","import tokenSource from '../sources/TokenSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const fetchTokenInit = () => ({\r\n type: types.FETCH_TOKEN_INIT,\r\n});\r\n\r\nexport const fetchTokenSuccess = data => ({\r\n type: types.FETCH_TOKEN_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchTokenFail = data => ({\r\n type: types.FETCH_TOKEN_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchRegistrationTokenInit = () => ({\r\n type: types.FETCH_REGISTRATION_TOKEN_INIT,\r\n});\r\n\r\nexport const fetchRegistrationTokenSuccess = data => ({\r\n type: types.FETCH_REGISTRATION_TOKEN_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchRegistrationTokenFail = data => ({\r\n type: types.FETCH_REGISTRATION_TOKEN_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchToken = (firstValue, secondValue, isRegistrationFlow) => tokenSource(firstValue, secondValue, isRegistrationFlow);\r\n","export const LEG_ARRAY = \"legArray\";\r\nexport const USER_REDUCER = \"user\";\r\nexport const REGISTER_VIA_PAF = \"REGISTER_VIA_PAF\";\r\nexport const LOGIN_VIA_PAF = \"LOGIN_VIA_PAF\";\r\nexport const TOP_UP_STATUS = 'TOP_UP_STATUS'\r\nexport const IS_OFFER_FLOW = \"isOfferFlow\";\r\nexport const CREDIT_CARDS = \"creditCards\";\r\nexport const IS_FSP_VALIDATED = 'IS_FSP_VALIDATED';\r\nexport const IS_VJ_VALIDATED = 'IS_VJ_VALIDATED';\r\nexport const QUOTE_OBJECT = \"QuoteObject-{username}\";\r\nexport const IS_DATA_ENCRYPTED = \"IS_DATA_ENCRYPTED\";\r\n","import {\r\n hasVjDirectAccount,\r\n accountMembershipStatus,\r\n membershipType,\r\n accessType,\r\n accountsAircraftList,\r\n} from '../utils/sourceUtils';\r\nimport { capitalize } from '../utils/stringUtils';\r\nimport { guaranteeArray } from '../utils/arrayUtils';\r\n\r\nexport function normalizeUser(user) {\r\n return {\r\n ...user,\r\n };\r\n}\r\n\r\nexport const passportActiveFilter = passport => passport.isActive;\r\n// export const passportInvalidFilter = passport => passport.isInvalid;\r\n\r\nexport function normalizePassport(passport) {\r\n const {\r\n // identifiers\r\n id, passportId,\r\n\r\n // expere data\r\n expiresOnDate, expiry,\r\n\r\n // flags\r\n isActive,\r\n isDefault,\r\n isInvalid,\r\n isOnHands,\r\n\r\n // country and issued by country iso\r\n isoPassportCountry,\r\n isoIssuedByCountry, isoPassportIssuedByCountry,\r\n\r\n // country and issued by country labels\r\n passportCountry,\r\n issuedByCountry, passportIssuedByCountry,\r\n\r\n // others\r\n displayName,\r\n passportNumber,\r\n ...other\r\n } = passport;\r\n\r\n return {\r\n // identifiers\r\n id: id || passportId,\r\n\r\n // expire data\r\n expiresOnDate: expiresOnDate || expiry,\r\n\r\n // flags\r\n isActive,\r\n isDefault,\r\n isInvalid,\r\n isOnHands,\r\n\r\n // country and issued by country iso\r\n isoPassportCountry: isoPassportCountry || '',\r\n isoIssuedByCountry: isoIssuedByCountry || isoPassportIssuedByCountry || '',\r\n\r\n // country and issued by country labels\r\n passportCountry,\r\n issuedByCountry: issuedByCountry || passportIssuedByCountry || '',\r\n\r\n // others\r\n displayName: displayName || '',\r\n passportNumber: `${(passportNumber === 0 || passportNumber) ? passportNumber : ''}`,\r\n\r\n // front-end control flags\r\n isAdded: false,\r\n isUpdated: true,\r\n isDeleted: false,\r\n\r\n ...other,\r\n };\r\n}\r\n\r\nexport function normalizePassports(passports) {\r\n const init = {\r\n content: {},\r\n ids: [],\r\n defaultId: undefined,\r\n };\r\n\r\n if (passports) {\r\n return passports.filter(passportActiveFilter).reduce((previous, current) => {\r\n const prev = previous;\r\n const passport = normalizePassport(current);\r\n\r\n prev.content[passport.id] = passport;\r\n prev.ids.push(passport.id);\r\n if (!prev.defaultId && passport.isDefault) {\r\n prev.defaultId = passport.id;\r\n }\r\n return prev;\r\n }, init);\r\n }\r\n return init;\r\n}\r\n\r\nfunction getSalutation(salutation) {\r\n const str = salutation.split(' ');\r\n return str[0];\r\n}\r\n\r\nexport const normalizePersonalData = (authenticatedUser, passportDataNormalized) => ({\r\n accountId: authenticatedUser.accountId || [],\r\n accessType: accessType(authenticatedUser.accounts),\r\n customerId: authenticatedUser.customerId || [],\r\n dateOfBirth: authenticatedUser.dateOfBirth || [],\r\n firstName: authenticatedUser.firstName || [],\r\n gender: authenticatedUser.gender || [],\r\n genderId: authenticatedUser.genderId || [],\r\n id: authenticatedUser.id || [],\r\n imageURL: authenticatedUser.imageURL ? authenticatedUser.imageURL : [],\r\n isChangedPassword: authenticatedUser.isChangedPassword,\r\n lastName: authenticatedUser.lastName || [],\r\n passports: passportDataNormalized,\r\n personId: authenticatedUser.personId || [],\r\n userPreferences: authenticatedUser.userPreferences || [],\r\n membershipTypeId: membershipType(authenticatedUser.accounts),\r\n membershipStatus: accountMembershipStatus(authenticatedUser.accounts),\r\n userVerificationStatusCode: authenticatedUser.verificationStatusCode || [],\r\n phoneNumber: authenticatedUser.personPhoneNumbers\r\n && authenticatedUser.personPhoneNumbers.length\r\n ? authenticatedUser.personPhoneNumbers[0].phoneNumber : '',\r\n userToken: authenticatedUser.token,\r\n hasVjDirectAccount: hasVjDirectAccount(authenticatedUser.accounts),\r\n companyBaseEmail: authenticatedUser.companyBaseEmail || [],\r\n companyBaseNumber: authenticatedUser.companyBaseNumber || [],\r\n accounts: authenticatedUser.accounts || [],\r\n username: authenticatedUser.username || '',\r\n preferredAircraft: accountsAircraftList(authenticatedUser.accounts),\r\n salutation: authenticatedUser.salutation\r\n ? getSalutation(authenticatedUser.salutation)\r\n : null,\r\n});\r\n\r\nexport const normalizeBillingAddressResponse = (billingAddresses) => {\r\n if (billingAddresses && billingAddresses.length) {\r\n const preferredBillingAddress =\r\n billingAddresses.find(a => a.isPreferred && a.isPreferred.toUpperCase() === 'TRUE');\r\n\r\n const {\r\n billingAddress = '',\r\n city = '',\r\n state = '',\r\n countryName = '',\r\n addressableName = '',\r\n postCode = '',\r\n countryCode = '',\r\n } = preferredBillingAddress || billingAddresses[0];\r\n\r\n return {\r\n address: billingAddress,\r\n country: capitalize(countryName),\r\n postalCode: postCode,\r\n city, state, addressableName, countryCode,\r\n };\r\n }\r\n return {};\r\n};\r\n\r\nexport function normalizePassenger(passenger, currentEmail) {\r\n const {\r\n firstName,\r\n lastName,\r\n gender,\r\n dateOfBirth,\r\n } = passenger;\r\n\r\n const passports = normalizePassports(guaranteeArray(passenger.passports));\r\n const phoneNumbers = guaranteeArray(passenger.phoneNumbers);\r\n\r\n const user = {\r\n firstName: `${firstName}`,\r\n lastName: `${lastName}`,\r\n gender,\r\n dateOfBirth,\r\n };\r\n\r\n const emails = guaranteeArray(passenger.emailAddresses);\r\n const emailObj = emails.find(email =>\r\n email.email === currentEmail || email.emailAddress === currentEmail) || {};\r\n user.email = emailObj.email || emailObj.emailAddress;\r\n\r\n // if (picture) {\r\n // user.imageURL = picture;\r\n // }\r\n\r\n return { user, phoneNumbers, passports };\r\n}\r\n\r\nexport function buildPassportRequest(passport) {\r\n return {\r\n id: passport.id,\r\n isDefault: passport.isDefault,\r\n isActive: passport.isActive,\r\n passportNumber: passport.passportNumber,\r\n isoPassportCountry: passport.isoPassportCountry,\r\n isoIssuedByCountry: passport.isoIssuedByCountry,\r\n expiresOnDate: passport.expiresOnDate,\r\n displayName: passport.displayName,\r\n isAdded: passport.isAdded,\r\n isUpdated: passport.isUpdated,\r\n isDeleted: passport.isDeleted,\r\n };\r\n}\r\n","import axios from \"axios\";\r\nimport moment from 'moment';\r\nimport * as HttpStatus from \"http-status-codes\";\r\nimport {\r\n loginInit,\r\n loginSuccess,\r\n loginFailure,\r\n forgotInit,\r\n forgotSuccess,\r\n forgotFailure,\r\n logoutInit,\r\n logoutSuccess,\r\n logoutFail,\r\n changePasswordInit,\r\n changePasswordFailure,\r\n changePasswordSuccess,\r\n changePasswordRequired,\r\n resendForgotEmail,\r\n loginNotVerifiedSuccess,\r\n updateUserProfileDataInit,\r\n updateUserProfileDataSuccess,\r\n updateUserProfileDataFail,\r\n getAccountStatusAction,\r\n saveBillingAddressInit,\r\n saveBillingAddressFailure,\r\n saveBillingAddressSuccess,\r\n getAircraftsAction,\r\n getBillingAddressFailure,\r\n getBillingAddressSuccess,\r\n getBillingAddressInit,\r\n} from \"../actions\";\r\n\r\nimport {\r\n CONTEXT,\r\n AUTHENTICATE_URL,\r\n APP_VERSION,\r\n FORGET_PASSWORD_URL,\r\n CHANGE_PASSWORD_URL,\r\n LOGOUT_URL,\r\n SAVE_BILLING_ADDRESS_URL,\r\n GET_BILLING_ADDRESS_URL,\r\n MANAGE_USER_PROFILE,\r\n} from '../../configs/constants';\r\n\r\nimport tokenSource from './TokenSource';\r\nimport {\r\n handleServerErrors,\r\n encryptData,\r\n encodeData,\r\n parsePascalCaseString,\r\n} from '../../utils/sourceUtils';\r\nimport { getDateWithoutTimeZone } from '../../utils/dateUtils';\r\n\r\nimport {\r\n HTTP_HEADERS,\r\n HTTP_HEADERS_JSON,\r\n HTTP_HEADERS_XML,\r\n} from '../../constants/ApiConstants';\r\nimport { PASSPORT_UPDATE_MESSAGES, LOGIN_FAILED } from '../../constants/MessageConstants';\r\nimport { getFromLocal, saveToLocal, removeFromLocal, existInLocal } from '../../utils/cache';\r\nimport { USER_REDUCER } from \"../../constants/localStorageKeys\";\r\nimport {\r\n normalizePassports,\r\n normalizePersonalData,\r\n normalizeBillingAddressResponse,\r\n normalizePassenger,\r\n buildPassportRequest,\r\n} from '../../normalizers/userNormalizer';\r\nimport { parseXmlStringToJson, builderXmlRequest } from '../../utils/parserUtils';\r\nimport status from '../../configs/status';\r\nimport { TIMEOUT_CODE, INTERNAL_SERVER_ERROR, BAD_REQUEST } from '../../constants/ServerCodeConstants';\r\nimport { removeOffersForFSP } from \"../../utils/userUtils\";\r\n\r\nconst DATE_FORMAT = 'DD MMM YYYY';\r\n\r\nfunction handleError() { }\r\n\r\nconst authenticateLogin = (payload, token) => dispatch => {\r\n return new Promise((resolve, reject) => {\r\n const url = AUTHENTICATE_URL.replace(\"{context}\", CONTEXT).replace(\r\n \"{username}\",\r\n payload.email\r\n );\r\n\r\n const dataEncripted = `${payload.email}\\\\+${payload.password}`;\r\n\r\n const key = encryptData(token, dataEncripted);\r\n\r\n const reqPayload = {\r\n credentials: token + key,\r\n attributes: {\r\n deviceInfo: \"WEB\",\r\n appBuildNr: APP_VERSION,\r\n phoneNumber: \"\",\r\n devicePushId: \"\"\r\n },\r\n };\r\n\r\n axios\r\n .put(url, reqPayload, HTTP_HEADERS_JSON)\r\n .then((res) => {\r\n const response = res.data;\r\n if (\r\n response &&\r\n response.responseHeader &&\r\n response.responseHeader.isError\r\n ) {\r\n // reject({ text: ERROR_MESSAGES.loginFailed });\r\n const errors = response.responseHeader.statusCode == -1 ? LOGIN_FAILED : handleServerErrors(response.responseHeader.statusCode);\r\n dispatch(loginFailure({ error: errors }));\r\n saveToLocal({ user: null, isLoggedIn: false }, 'user', true, true);\r\n reject(errors);\r\n } else {\r\n const authenticatedUser =\r\n response.responseBody && response.responseBody.authenticatedUser;\r\n authenticatedUser.email = payload.username;\r\n // authenticatedUser.token = payload.token;\r\n\r\n const { passport, isChangedPassword } = authenticatedUser;\r\n\r\n let passportDataNormalized = [];\r\n const isChangePasswordRequired = (isChangedPassword || response.mustChangePassword);\r\n passportDataNormalized = normalizePassports(passport);\r\n if (isChangedPassword || response.mustChangePassword) {\r\n dispatch(changePasswordRequired());\r\n }\r\n const personalData = normalizePersonalData(\r\n authenticatedUser,\r\n passportDataNormalized,\r\n );\r\n if (personalData.userVerificationStatusCode === 2\r\n || personalData.userVerificationStatusCode === 4) {\r\n personalData.userNotVerified = true;\r\n personalData.user_email = payload.email;\r\n setTimeout(() => {\r\n dispatch(loginNotVerifiedSuccess(personalData));\r\n }, 100);\r\n personalData.externalAppUserId = authenticatedUser.id;\r\n saveToLocal({\r\n user: personalData,\r\n userNotVerified: true,\r\n isLoggingIn: false,\r\n isLoggedIn: false,\r\n changePasswordRequired: isChangePasswordRequired,\r\n }, 'user', true, true);\r\n resolve(personalData);\r\n } else {\r\n personalData.isUserVerifiedAfterLogin = true;\r\n saveToLocal({\r\n user: personalData,\r\n isLoggedIn: true,\r\n isLoggingIn: false,\r\n userNotVerified: false,\r\n changePasswordRequired: isChangePasswordRequired,\r\n }, 'user', true, true);\r\n removeOffersForFSP(personalData);\r\n dispatch(loginSuccess(personalData));\r\n dispatch(getAccountStatusAction(token));\r\n dispatch(getAircraftsAction())\r\n resolve(personalData);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n const errors = err.response && err.response.status == -1 ? LOGIN_FAILED : handleServerErrors(\r\n err.response ? err.response.status : err.response,\r\n );\r\n dispatch(loginFailure({ error: errors }));\r\n saveToLocal({\r\n user: null,\r\n isLoggedIn: false,\r\n isLoggingIn: false,\r\n }, 'user', true, true);\r\n reject(errors);\r\n });\r\n });\r\n};\r\n\r\nexport const login = payload => dispatch => {\r\n dispatch(loginInit());\r\n dispatch(tokenSource(payload.email, CONTEXT)).then(token => {\r\n dispatch(authenticateLogin(payload, token.token)).then(() => { },\r\n handleError);\r\n });\r\n};\r\n\r\nexport const forgotPassword = payload => dispatch => {\r\n dispatch(forgotInit());\r\n const url = FORGET_PASSWORD_URL.replace(\"{context}\", CONTEXT).replace(\r\n '{email}',\r\n payload.email,\r\n );\r\n\r\n const reqPayload = `${\r\n payload.email\r\n }`;\r\n if (payload.isResending) {\r\n dispatch(resendForgotEmail());\r\n }\r\n\r\n return axios\r\n .post(url, reqPayload, {\r\n headers: HTTP_HEADERS,\r\n })\r\n .then(() => {\r\n dispatch(forgotSuccess(true));\r\n })\r\n .catch(err => {\r\n const errJson = parseXmlStringToJson(err.response.data);\r\n dispatch(forgotFailure(errJson));\r\n });\r\n};\r\n\r\nexport const logout = token => dispatch => {\r\n return new Promise((resolve, reject) => {\r\n const url = LOGOUT_URL.replace(\"{token}\", token);\r\n dispatch(logoutInit());\r\n axios\r\n .get(url, HTTP_HEADERS)\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n const jsonData = parseXmlStringToJson(response.data);\r\n if (jsonData.vjResponse.success === true) {\r\n setTimeout(function () {\r\n dispatch(logoutSuccess());\r\n }, 200)\r\n }\r\n // saveToLocal({ user: null, isLoggedIn: false }, 'user');\r\n removeFromLocal(\"user\");\r\n removeFromLocal(\"token\");\r\n resolve(jsonData.vjResponse.success);\r\n } else {\r\n const errors = handleServerErrors(response.status);\r\n dispatch(logoutFail(errors));\r\n saveToLocal({ isLoggedIn: true }, 'user', true, true);\r\n reject(errors);\r\n }\r\n })\r\n .catch(err => {\r\n const errors = handleServerErrors(\r\n err.response ? err.response.status : err.response,\r\n );\r\n dispatch(logoutFail(errors));\r\n saveToLocal({ isLoggedIn: true }, 'user', true, true);\r\n reject(errors);\r\n });\r\n });\r\n};\r\n\r\nconst resetPassword = (payload, token) => dispatch => {\r\n return new Promise((resolve, reject) => {\r\n const url = CHANGE_PASSWORD_URL.replace(\"{context}\", CONTEXT).replace(\r\n \"{username}\",\r\n payload.username,\r\n );\r\n\r\n const dataEncripted = `${payload.username}\\\\+${payload.oldPassword}`;\r\n\r\n const key = encryptData(token, dataEncripted);\r\n const newPassword = encryptData(token, payload.newPassword);\r\n const reqPayload = `${token +\r\n key}${newPassword}`;\r\n axios\r\n .put(url, reqPayload, {\r\n headers: HTTP_HEADERS,\r\n })\r\n .then(res => {\r\n let user = null;\r\n if (existInLocal('user')) {\r\n user = getFromLocal('user', true, true);\r\n }\r\n if (res.status === HttpStatus.OK) {\r\n const jsonResponse = parseXmlStringToJson(res.data);\r\n if (!jsonResponse.vjResponse.success) {\r\n dispatch(changePasswordFailure({\r\n error: jsonResponse,\r\n isProfile: payload.isProfile || false,\r\n }));\r\n } else {\r\n const newUserObject = Object.assign({}, user, {\r\n changePasswordRequired: false,\r\n });\r\n saveToLocal(newUserObject, 'user', true, true);\r\n dispatch(changePasswordSuccess({\r\n isProfile: payload.isProfile || false,\r\n }));\r\n }\r\n }\r\n resolve();\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n const jsonResponse = parseXmlStringToJson(err.response.data);\r\n if (jsonResponse && jsonResponse.error && jsonResponse.error.message) {\r\n dispatch(changePasswordFailure({\r\n error: 'Old Password Is Invalid', // 1009 Old password does not match\r\n isProfile: payload.isProfile || false,\r\n }));\r\n reject(jsonResponse.error.message);\r\n }\r\n }\r\n const errors = handleServerErrors(\r\n err.response ? err.response.status : err.response,\r\n );\r\n dispatch(changePasswordFailure({\r\n error: errors,\r\n isProfile: payload.isProfile || false,\r\n }));\r\n reject(errors);\r\n });\r\n });\r\n};\r\n\r\nexport const changePassword = payload => dispatch => {\r\n dispatch(changePasswordInit());\r\n dispatch(resetPassword(payload, payload.userToken)).then(() => { },\r\n handleError);\r\n};\r\n\r\nexport const updateUserProfileData = (\r\n payload,\r\n user,\r\n passports,\r\n flightLegId = -1,\r\n paxOperationId = 0,\r\n) => dispatch => {\r\n return new Promise((resolve, reject) => {\r\n if (user.personId && user.userToken) {\r\n dispatch(updateUserProfileDataInit());\r\n // Success Message\r\n const successMessage = PASSPORT_UPDATE_MESSAGES[paxOperationId];\r\n // params\r\n const params = encodeData({ flightLegId });\r\n const url = MANAGE_USER_PROFILE.replace('{CONTEXT}', CONTEXT)\r\n .replace('{token}', user.userToken)\r\n .replace('{params}', params);\r\n\r\n const updatedPassengersList = {\r\n passengerId: user.personId,\r\n };\r\n\r\n const {\r\n firstName,\r\n lastName,\r\n dateOfBirth,\r\n phoneNumber,\r\n email,\r\n } = payload;\r\n\r\n // details block\r\n if (firstName) updatedPassengersList.passengerFirstName = firstName;\r\n if (lastName) updatedPassengersList.passengerLastName = lastName;\r\n if (email) updatedPassengersList.passengerEmail = email;\r\n if (dateOfBirth && dateOfBirth.length !== 0) {\r\n const mDateOfBirth = dateOfBirth instanceof moment ?\r\n dateOfBirth : moment(dateOfBirth, DATE_FORMAT);\r\n updatedPassengersList.passengerDob = getDateWithoutTimeZone(mDateOfBirth);\r\n }\r\n\r\n updatedPassengersList.changedPhoneNumbers = {\r\n changedPhoneNumber: {\r\n oldPhoneNumber: user.phoneNumber,\r\n newPhoneNumber: phoneNumber,\r\n },\r\n };\r\n\r\n // passport block\r\n if (passports && passports.length) {\r\n updatedPassengersList.passports = {\r\n passport: passports.map(buildPassportRequest),\r\n };\r\n }\r\n\r\n\r\n // build xml payload\r\n const reqPayload = builderXmlRequest({\r\n passengerManageRequest: {\r\n passengers: {\r\n updated: {\r\n updatedPassengersList,\r\n },\r\n },\r\n },\r\n });\r\n\r\n axios\r\n .post(url, reqPayload, {\r\n headers: HTTP_HEADERS_XML,\r\n })\r\n .then((res) => {\r\n let user = null;\r\n if (existInLocal('user')) {\r\n user = getFromLocal('user', true, true);\r\n }\r\n if (res && res.status === 400) {\r\n parsePascalCaseString(res.data, (parseErr, result) => {\r\n if (result && result.error && result.error.code === 1009) {\r\n const errors = handleServerErrors(result.error.code);\r\n dispatch(updateUserProfileDataFail({\r\n errorCode: result.error.code,\r\n error: errors,\r\n }));\r\n reject(errors);\r\n } else {\r\n const errors = handleServerErrors(400);\r\n dispatch(updateUserProfileDataFail({ error: errors }));\r\n reject(errors);\r\n }\r\n });\r\n } else {\r\n parsePascalCaseString(res.data, (parseErr, { passenger }) => {\r\n if (parseErr) {\r\n const errors = handleServerErrors(400);\r\n dispatch(updateUserProfileDataFail({ error: errors }));\r\n reject(errors);\r\n } else {\r\n const response = normalizePassenger(passenger, email);\r\n const passport = {\r\n passports: response.passports,\r\n };\r\n const userObject = Object.assign({}, user.user, response.user, passport, {\r\n personPhoneNumber: response.phoneNumbers,\r\n phoneNumber: response.phoneNumbers[0].phoneNumber,\r\n });\r\n user.user = userObject;\r\n saveToLocal(user, 'user', true, true);\r\n dispatch(updateUserProfileDataSuccess({\r\n response,\r\n message: successMessage,\r\n }));\r\n resolve(response);\r\n }\r\n });\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response.status === 400) {\r\n // case of email or phone number already exists\r\n const res = parseXmlStringToJson(err.response.data);\r\n const errors = handleServerErrors(res.error.code);\r\n dispatch(updateUserProfileDataFail({\r\n error: errors,\r\n }));\r\n reject(errors);\r\n } else {\r\n const errors = handleServerErrors(\r\n err.response ? err.response.status : err.response,\r\n );\r\n dispatch(updateUserProfileDataFail({ error: errors }));\r\n reject(errors);\r\n }\r\n });\r\n } else {\r\n const errors = handleServerErrors(400);\r\n dispatch(updateUserProfileDataFail({ error: errors }));\r\n reject(errors);\r\n }\r\n });\r\n};\r\nexport const saveBillingAddress = (address) => (dispatch) => {\r\n dispatch(saveBillingAddressInit());\r\n const { user } = getFromLocal(USER_REDUCER, true, true);\r\n const token = user.userToken;\r\n const url = SAVE_BILLING_ADDRESS_URL.replace('{token}', token);\r\n\r\n const options = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n timeout: TIMEOUT_CODE.time,\r\n };\r\n\r\n axios\r\n .post(url, address, options)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n if (response && response.responseHeaderDto && response.responseHeaderDto.isError) {\r\n dispatch(saveBillingAddressFailure(response.responseHeaderDto.message));\r\n }\r\n else {\r\n dispatch(saveBillingAddressSuccess(normalizeBillingAddressResponse([address])));\r\n dispatch(getAccountStatusAction(token));\r\n }\r\n }\r\n else {\r\n dispatch(saveBillingAddressFailure(handleServerErrors(INTERNAL_SERVER_ERROR)));\r\n }\r\n\r\n })\r\n .catch((err) => {\r\n if (TIMEOUT_CODE.status === err.code) {\r\n dispatch(saveBillingAddressFailure(handleServerErrors(TIMEOUT_CODE.code)))\r\n } else if (!err.status) {\r\n dispatch(saveBillingAddressFailure(handleServerErrors()));\r\n } else {\r\n dispatch(saveBillingAddressFailure(handleServerErrors(+err.status)));\r\n }\r\n })\r\n}\r\n\r\nconst getBillingAddressPromiseInprogress = {};\r\nexport const getBillingAddressSource = () => (dispatch) => {\r\n const uniqueKey = 'getBillingAddress';\r\n if (getBillingAddressPromiseInprogress[uniqueKey]) {\r\n return getBillingAddressPromiseInprogress[uniqueKey];\r\n }\r\n const { user } = getFromLocal(USER_REDUCER, true, true);\r\n const token = user.userToken;\r\n\r\n const getBillingAddressPromise = new Promise((resolve, reject) => {\r\n const url = GET_BILLING_ADDRESS_URL.replace('{token}', token);\r\n dispatch(getBillingAddressInit());\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n const responseHeader = response.data.responseHeaderDto;\r\n if (responseHeader.isError === true) {\r\n dispatch(getBillingAddressFailure(handleServerErrors(responseHeader.statusCode)));\r\n reject(handleServerErrors(BAD_REQUEST));\r\n } else {\r\n const responseData = response.data.companyAddressDtos;\r\n const normalizedResponse = normalizeBillingAddressResponse(responseData);\r\n dispatch(getBillingAddressSuccess(normalizedResponse));\r\n resolve(normalizedResponse);\r\n }\r\n } else {\r\n dispatch(getBillingAddressFailure(handleServerErrors(BAD_REQUEST)));\r\n reject(handleServerErrors(BAD_REQUEST));\r\n }\r\n delete getBillingAddressPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n if (!err.status) {\r\n dispatch(getBillingAddressFailure(handleServerErrors()));\r\n reject(handleServerErrors());\r\n } else {\r\n dispatch(getBillingAddressFailure(handleServerErrors(BAD_REQUEST)));\r\n reject(handleServerErrors(BAD_REQUEST));\r\n }\r\n delete getBillingAddressPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n getBillingAddressPromiseInprogress[uniqueKey] = getBillingAddressPromise;\r\n return getBillingAddressPromise;\r\n};\r\n","import {\r\n login,\r\n forgotPassword,\r\n logout,\r\n changePassword,\r\n updateUserProfileData,\r\n saveBillingAddress,\r\n getBillingAddressSource,\r\n} from '../sources/UserSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const loginInit = () => ({\r\n type: types.LOGIN_INIT,\r\n});\r\n\r\nexport const loginSuccess = data => ({\r\n type: types.LOGIN_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const loginNotVerifiedSuccess = data => ({\r\n type: types.LOGIN_NOT_VERIFIED_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const clearNotVerifiedUser = data => ({\r\n type: types.CLEAR_NOT_VERIFIED_USER,\r\n data,\r\n});\r\n\r\nexport const loginFailure = data => ({\r\n type: types.LOGIN_FAILURE,\r\n data,\r\n});\r\n\r\n\r\nexport const forgotInit = () => ({\r\n type: types.FORGOT_INIT,\r\n});\r\n\r\nexport const forgotSuccess = data => ({\r\n type: types.FORGOT_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const forgotFailure = data => ({\r\n type: types.FORGOT_FAILURE,\r\n data,\r\n});\r\n\r\nexport const forgotAction = payload => forgotPassword(payload);\r\n\r\nexport const changePasswordInit = () => ({\r\n type: types.CHANGE_PASSWORD_INIT,\r\n});\r\n\r\nexport const changePasswordSuccess = data => ({\r\n type: types.CHANGE_PASSWORD_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const updateUserCreateCompany = data => ({\r\n type: types.UPDATE_USER_CREATE_COMPANY,\r\n data,\r\n});\r\n\r\nexport const changePasswordFailure = data => ({\r\n type: types.CHANGE_PASSWORD_FAILURE,\r\n data,\r\n});\r\n\r\nexport const changePasswordRequired = data => ({\r\n type: types.CHANGE_PASSWORD_REQUIRED,\r\n data,\r\n});\r\n\r\nexport const clearForgotErrorMessage = () => ({\r\n type: types.CLEAR_FORGOT_ERROR_MESSAGE,\r\n});\r\n\r\nexport const clearForgotPasswordResentMessageModal = () => ({\r\n type: types.CLEAR_FORGOT_PASSWORD_RESENT_EMAIL_MESSAGE,\r\n});\r\n\r\nexport const changePasswordAction = payload => changePassword(payload);\r\n\r\nexport const logoutInit = () => ({\r\n type: types.LOGOUT_INIT,\r\n});\r\n\r\nexport const logoutSuccess = data => ({\r\n type: types.LOGOUT_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const logoutFail = data => ({\r\n type: types.LOGOUT_FAIL,\r\n data,\r\n});\r\n\r\nexport const resendForgotEmail = data => ({\r\n type: types.RESEND_FORGOT_EMAIL,\r\n data,\r\n});\r\nexport const updateUserReducer = data => ({\r\n type: types.UPDATE_USER_REDUCER,\r\n data,\r\n});\r\n\r\n// Update user profile actions\r\nexport const updateUserProfileDataInit = () => ({\r\n type: types.UPDATE_USER_PROFILE_INIT,\r\n});\r\n\r\nexport const updateUserProfileDataSuccess = data => ({\r\n type: types.UPDATE_USER_PROFILE_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const updateUserProfileDataFail = data => ({\r\n type: types.UPDATE_USER_PROFILE_FAILURE,\r\n data,\r\n});\r\n\r\nexport const saveBillingAddressInit = () => ({\r\n type: types.SAVE_BILLING_ADDRESS_INIT,\r\n});\r\n\r\nexport const saveBillingAddressSuccess = (data) => ({\r\n type: types.SAVE_BILLING_ADDRESS_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const saveBillingAddressFailure = data => ({\r\n type: types.SAVE_BILLING_ADDRESS_FAILURE,\r\n data,\r\n});\r\n\r\nexport const getBillingAddressInit = () => ({\r\n type: types.GET_BILLING_ADDRESS_INIT,\r\n});\r\n\r\nexport const getBillingAddressSuccess = (data) => ({\r\n type: types.GET_BILLING_ADDRESS_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const getBillingAddressFailure = data => ({\r\n type: types.GET_BILLING_ADDRESS_FAILURE,\r\n data,\r\n});\r\n\r\nexport const saveBillingAddressAction = (address) => saveBillingAddress(address);\r\n\r\nexport const loginAction = (email, password) => login(email, password);\r\n\r\nexport const logoutAction = token => logout(token);\r\n\r\nexport const updateUserProfileAction = (\r\n payload,\r\n user,\r\n passports,\r\n flightLegId,\r\n paxOperationId,\r\n) => updateUserProfileData(payload, user, passports, flightLegId, paxOperationId);\r\n// export const registerAction = (userToRegister) => register(userToRegister);\r\nexport const getBillingAddress = () => getBillingAddressSource();\r\n","export function normalizeAirportSearchTerm(city, country) {\r\n return `${city}, ${country}`;\r\n}\r\n\r\nexport function normalizeAirports(airports = []) {\r\n const airportList = airports;\r\n const result = {};\r\n for (let i = 0; i < airportList.length; i += 1) {\r\n result[airportList[i].id] = airportList[i];\r\n result[airportList[i].id].cityAndCountry = normalizeAirportSearchTerm(\r\n airportList[i].city !== undefined\r\n ? airportList[i].city\r\n : airportList[i].country,\r\n airportList[i].country\r\n );\r\n }\r\n return result;\r\n}\r\n\r\nconst sortByWeight = (a1, a2) => ((a2.weight || 0) - (a1.weight || 0))\r\n\r\nexport function normalizeFlyxoAirports(airportsData) {\r\n const { ap: airports, ma: metropolitanAreas } = airportsData\r\n\r\n const airportsByAreas = airports.sort(sortByWeight).reduce((result, airport) => {\r\n if (!result.rest) result.rest = []\r\n\r\n const parentMA = metropolitanAreas.find(({ metropolitan_area_id }) =>\r\n metropolitan_area_id === airport.metropolitan_area_id\r\n )\r\n if (parentMA) {\r\n if (!result[airport.metropolitan_area_id]) {\r\n result[airport.metropolitan_area_id] = [];\r\n }\r\n\r\n result[airport.metropolitan_area_id].push({\r\n ...airport,\r\n ma_name: parentMA.name,\r\n type: \"airport-nested\"\r\n });\r\n\r\n return result;\r\n }\r\n\r\n result.rest.push({ ...airport, type: \"airport\" });\r\n\r\n return result;\r\n }, {})\r\n\r\n const flattenDestionations = metropolitanAreas.reduce((acc, ma) => {\r\n if (airportsByAreas[ma.metropolitan_area_id]) {\r\n acc.push({ ...ma, type: \"metropolitan-area-with-airports\" });\r\n acc = [...acc, ...airportsByAreas[ma.metropolitan_area_id]];\r\n } else {\r\n acc.push({ ...ma, type: \"metropolitan-area\" });\r\n }\r\n\r\n return acc;\r\n }, []);\r\n\r\n\r\n\r\n return airportsByAreas.rest\r\n ? [...flattenDestionations, ...airportsByAreas.rest]\r\n : flattenDestionations;\r\n}\r\n","import axios from 'axios';\r\nimport { normalizeAirports } from '../../normalizers/airportNomalizer';\r\n\r\nimport {\r\n fetchVisitedAirportsInit,\r\n fetchVisitedAirportsSuccess,\r\n fetchVisitedAirportsFail,\r\n fetchAirportByIdInit,\r\n fetchAirportByIdSuccess,\r\n fetchAirportByIdFail,\r\n} from '../actions';\r\n\r\nimport {\r\n FETCH_VISITED_AIRPORTS_URL,\r\n FETCH_AIRPORT_BY_ID,\r\n} from '../../configs/constants';\r\n\r\nconst status = {\r\n OK: 200,\r\n};\r\n\r\nconst visitedAirportsPromiseInprogress = {};\r\nconst airportByIdPromiseInprogress = {};\r\nexport const fetchVisitedAirports = () => (dispatch) => {\r\n const uniqueKey = 'visitedAiports';\r\n if (visitedAirportsPromiseInprogress[uniqueKey]) {\r\n return visitedAirportsPromiseInprogress[uniqueKey];\r\n }\r\n const visitedAirportsPromise = new Promise((resolve, reject) => {\r\n dispatch(fetchVisitedAirportsInit());\r\n axios\r\n .get(FETCH_VISITED_AIRPORTS_URL)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n const { data } = response;\r\n if (data.responseHeaderDto.isError === 'true') {\r\n const error = data.responseHeaderDto.message;\r\n dispatch(fetchVisitedAirportsFail(error));\r\n } else {\r\n const visitedAirports = data.airports;\r\n const normalizedAirports = normalizeAirports(visitedAirports);\r\n dispatch(fetchVisitedAirportsSuccess(normalizedAirports));\r\n resolve(normalizedAirports);\r\n }\r\n } else {\r\n dispatch(fetchVisitedAirportsFail());\r\n reject();\r\n }\r\n delete visitedAirportsPromiseInprogress[uniqueKey];\r\n })\r\n .catch(() => {\r\n dispatch(fetchVisitedAirportsFail());\r\n reject();\r\n delete visitedAirportsPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n visitedAirportsPromiseInprogress[uniqueKey] = visitedAirportsPromise;\r\n return visitedAirportsPromise;\r\n};\r\n\r\nexport const fetchAirportById = airportIds => (dispatch) => {\r\n const uniqueKey = 'airportById';\r\n if (airportByIdPromiseInprogress[uniqueKey]) {\r\n return airportByIdPromiseInprogress[uniqueKey];\r\n }\r\n const airportByIdPromise = new Promise((resolve, reject) => {\r\n dispatch(fetchAirportByIdInit());\r\n const payLoad = {\r\n airportIdList: airportIds,\r\n };\r\n axios\r\n .post(FETCH_AIRPORT_BY_ID, payLoad)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n const { data } = response;\r\n if (data.responseHeaderDto.isError === 'true') {\r\n const error = data.responseHeaderDto.message;\r\n dispatch(fetchAirportByIdFail(error));\r\n } else {\r\n const { airports } = data;\r\n const normalizedAirport = normalizeAirports(airports);\r\n dispatch(fetchAirportByIdSuccess(normalizedAirport));\r\n resolve(normalizedAirport);\r\n }\r\n } else {\r\n dispatch(fetchAirportByIdFail());\r\n reject();\r\n }\r\n delete airportByIdPromiseInprogress[uniqueKey];\r\n })\r\n .catch(() => {\r\n dispatch(fetchAirportByIdFail());\r\n reject();\r\n delete airportByIdPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n airportByIdPromiseInprogress[uniqueKey] = airportByIdPromise;\r\n return airportByIdPromise;\r\n};\r\n","import { fetchVisitedAirports, fetchAirportById } from '../sources/VisitedAirportsSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const fetchVisitedAirportsInit = () => ({\r\n type: types.FETCH_VISITED_AIRPORTS_INIT,\r\n});\r\n\r\nexport const fetchVisitedAirportsSuccess = data => ({\r\n type: types.FETCH_VISITED_AIRPORTS_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchVisitedAirportsFail = data => ({\r\n type: types.FETCH_VISITED_AIRPORTS_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchAirportByIdInit = () => ({\r\n type: types.FETCH_AIRPORT_BY_ID_INIT,\r\n});\r\n\r\nexport const fetchAirportByIdSuccess = data => ({\r\n type: types.FETCH_AIRPORT_BY_ID_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchAirportByIdFail = data => ({\r\n type: types.FETCH_AIRPORT_BY_ID_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchAllVisitedAirports = data => fetchVisitedAirports(data);\r\nexport const getAirportById = id => fetchAirportById(id);\r\n","import { getAircraftByAllFields } from '../utils/aircraftUtils';\r\n// import { getAirportById } from '../utils/airportUtils';\r\nimport { garanteeArray } from '../utils/sourceUtils';\r\nimport Helpers from '../utils/Helpers';\r\nimport { isPastLeg } from '../utils/itinerariesUtils';\r\n\r\nconst normalizeLegData = (legs, accountId) => {\r\n let legArray = [];\r\n legArray = garanteeArray(legs);\r\n const newLegArray = { leg: [] };\r\n newLegArray.leg = legArray.map(legItem => {\r\n let singleLeg = {};\r\n singleLeg.legId = legItem.legId || '';\r\n singleLeg.accountId = accountId;\r\n singleLeg.arrivalAirportId = legItem.arrivalAirportId || '';\r\n singleLeg.departureAirportId = legItem.departureAirportId || '';\r\n singleLeg.departureAirport = legItem.departureAirportId;\r\n singleLeg.departureAirportTimeLocal =\r\n legItem.departureAirportTimeLocal || '';\r\n singleLeg.departureAirportTimeUTC = legItem.departureAirportTimeUTC || '';\r\n singleLeg.arrivalAirportTimeLocal = legItem.arrivalAirportTimeLocal || '';\r\n singleLeg.arrivalAirportTimeUTC = legItem.arrivalAirportTimeUTC || '';\r\n singleLeg.defaultDurationMinutes = legItem.defaultDurationMinutes || '';\r\n singleLeg.aircraftTypeName = legItem.aircraftTypeName || '';\r\n singleLeg.aircraftTypeId = legItem.aircraftTypeId || '';\r\n singleLeg.requestedAircraftTypeName =\r\n legItem.requestedAircraftTypeName || '';\r\n singleLeg.aircraftTailNumber = legItem.aircraftTailNumber || '';\r\n singleLeg.aircraftId = legItem.aircraftId || '';\r\n singleLeg.numberOfPassenger = legItem.numberOfPassenger || '';\r\n singleLeg.legStatus = legItem.legStatus || '';\r\n singleLeg.version = legItem.version || '';\r\n singleLeg.operatorTailId = legItem.operatorTailId || '';\r\n singleLeg.operatorTailName = legItem.operatorTailName || '';\r\n singleLeg.operatingCompanyName = legItem.operatingCompanyName || '';\r\n singleLeg.flightLegExtIdentifier = legItem.flightLegExtIdentifier || '';\r\n singleLeg.isEditable = Helpers.isEditableLeg(singleLeg);\r\n singleLeg.isPast = isPastLeg(singleLeg);\r\n singleLeg.isCancelled = legItem.isCancelled || false;\r\n singleLeg.within24Hours = Helpers.satisfy24HoursCheck(singleLeg) && !isPastLeg(singleLeg);\r\n const aircraftCode =\r\n singleLeg.aircraftTypeName &&\r\n singleLeg.aircraftTypeName !== '' &&\r\n (singleLeg.within24Hours ||\r\n !singleLeg.requestedAircraftTypeName ||\r\n singleLeg.requestedAircraftTypeName === 'N/A')\r\n ? singleLeg.aircraftTypeName\r\n : singleLeg.requestedAircraftTypeName;\r\n singleLeg.aircraft = getAircraftByAllFields(aircraftCode);\r\n if (!!singleLeg.aircraft && !singleLeg.aircraft.displayName) {\r\n singleLeg.aircraft.displayName = singleLeg.aircraftTypeName;\r\n }\r\n singleLeg.duration =\r\n singleLeg.defaultDurationMinutes ||\r\n Helpers.getFlightDuration(\r\n singleLeg.departureAirport,\r\n singleLeg.arrivalAirport,\r\n singleLeg.aircraft,\r\n );\r\n singleLeg.uniqueIdentifier =\r\n singleLeg.legId || singleLeg.flightLegExtIdentifier;\r\n return singleLeg;\r\n });\r\n return newLegArray;\r\n};\r\nconst normalizeItineraryListingData = itinerary => {\r\n return {\r\n legs: normalizeLegData(itinerary.legs, itinerary.accountId) || {},\r\n orderLegId: itinerary.orderLegId || '',\r\n orderExtIdentifier: itinerary.orderExtIdentifier || '',\r\n orderStatus: itinerary.orderStatus || '',\r\n orderType: itinerary.orderType || '',\r\n accountId: itinerary.accountId || ''\r\n };\r\n};\r\n\r\nexport default normalizeItineraryListingData;\r\n","/* eslint-disable import/prefer-default-export */\r\nimport axios from 'axios';\r\nimport {\r\n fetchItinerariesInit,\r\n fetchItinerariesSuccess,\r\n fetchItinerariesFail,\r\n} from '../actions/ItineraryListingActions';\r\nimport { garanteeArray } from '../../utils/sourceUtils';\r\nimport {\r\n FETCH_ITINERARIES_URL,\r\n FETCH_CANCEL_ITINERARIES_URL,\r\n} from '../../configs/constants';\r\nimport { ITINERARY_TYPES } from '../../constants/ItineraryConstants';\r\nimport normalizeItineraryListingData from '../../normalizers/itineraryListingNormalizer';\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\nimport { BAD_REQUEST, TIMEOUT_CODE, UNAUTHORIZED } from '../../constants/ServerCodeConstants';\r\nimport { SOMETHING_UNEXPECTED } from '../../constants/MessageConstants';\r\n// import { itineraries } from '../../mocks/itineraries';\r\n\r\nexport const fetchItineraryListing = (token, itineraryType, pageNum, isLoadMore) => (dispatch) => {\r\n let url;\r\n if (itineraryType === ITINERARY_TYPES.UPCOMING_ITINERARIES) {\r\n url = FETCH_ITINERARIES_URL.replace('{isUpcoming}', true).replace(\r\n '{pageNum}',\r\n pageNum,\r\n ).replace('{token}', token);\r\n } else if (itineraryType === ITINERARY_TYPES.PAST_ITINERARIES) {\r\n url = FETCH_ITINERARIES_URL.replace('{isUpcoming}', false).replace(\r\n '{pageNum}',\r\n pageNum,\r\n ).replace('{token}', token);\r\n } else if (itineraryType === ITINERARY_TYPES.CANCELLED_ITINERARIES) {\r\n url = FETCH_CANCEL_ITINERARIES_URL.replace('{pageNum}', pageNum).replace('{token}', token);\r\n }\r\n const options = {\r\n timeout: TIMEOUT_CODE.time\r\n };\r\n\r\n dispatch(fetchItinerariesInit(itineraryType, isLoadMore));\r\n let myItineraries = {};\r\n axios\r\n .get(url, options)\r\n .then((response) => {\r\n if (response && response.data && response.data.responseHeaderDto\r\n && !response.data.responseHeaderDto.isError) {\r\n const itinerary = garanteeArray(response.data.itineraryDtos);\r\n // const itinerary = garanteeArray(itineraries.itineraryDtos);// mock data\r\n myItineraries = itinerary.map((itineraryLeg) => {\r\n const itinererylegs = normalizeItineraryListingData(itineraryLeg);\r\n return itinererylegs;\r\n });\r\n dispatch(fetchItinerariesSuccess(myItineraries, itineraryType, isLoadMore));\r\n } else if (response && response.data && response.data.responseHeaderDto\r\n && response.data.responseHeaderDto.isError && response.data.responseHeaderDto.statusCode){\r\n const errors = handleServerErrors(response.data.responseHeaderDto.statusCode);\r\n dispatch(fetchItinerariesFail(itineraryType, errors, isLoadMore));\r\n }\r\n else {\r\n dispatch(fetchItinerariesFail(itineraryType, SOMETHING_UNEXPECTED, isLoadMore));\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(fetchItinerariesFail(itineraryType, handleServerErrors(TIMEOUT_CODE.code), isLoadMore));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(fetchItinerariesFail(itineraryType, handleServerErrors(UNAUTHORIZED), isLoadMore));\r\n }\r\n else dispatch(fetchItinerariesFail(itineraryType, handleServerErrors(BAD_REQUEST), isLoadMore));\r\n });\r\n};\r\n","import { fetchItineraryListing } from '../sources/ItineraryListingSource';\r\nimport {\r\n FETCH_ITINERARIES_INIT,\r\n FETCH_ITINERARIES_SUCCESS,\r\n FETCH_ITINERARIES_FAIL,\r\n CLEAR_ERROR_FETCH_ITINERARY,\r\n} from '../actionTypes';\r\n\r\nexport const fetchItinerariesInit = (itineraryType, isLoadMore) => ({\r\n type: FETCH_ITINERARIES_INIT,\r\n itineraryType,\r\n isLoadMore,\r\n});\r\n\r\nexport const fetchItinerariesSuccess = (itineraries, itineraryType, isLoadMore) => ({\r\n type: FETCH_ITINERARIES_SUCCESS,\r\n data: itineraries,\r\n itineraryType,\r\n isLoadMore,\r\n});\r\n\r\nexport const fetchItinerariesFail = (itineraryType, data, isLoadMore) => ({\r\n type: FETCH_ITINERARIES_FAIL,\r\n itineraryType,\r\n data,\r\n isLoadMore,\r\n});\r\n\r\nexport const clearErrorFetchItinerary = () => ({\r\n type: CLEAR_ERROR_FETCH_ITINERARY,\r\n})\r\nexport const fetchAllItineraryListing = (token, itineraryType, pageNum, isLoadMore) => fetchItineraryListing(token, itineraryType, pageNum, isLoadMore);\r\n","import axios from 'axios';\r\nimport { FETCH_ITINERARY_DETAILS_URL, CONTEXT, FETCH_ORDER_ID_BY_LEG } from '../../configs/constants';\r\nimport {\r\n itineraryDetailsInit,\r\n itineraryDetailsSuccess,\r\n itineraryDetailsFail,\r\n fetchOrderIdByLegInit,\r\n fetchOrderIdByLegSuccess,\r\n fetchOrderIdByLegFail,\r\n} from '../actions';\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\nimport { seprateDetailPastUpcomingLegs } from '../../utils/itinerariesUtils';\r\nimport { BAD_REQUEST } from '../../constants/ServerCodeConstants';\r\nimport { USER_REDUCER } from '../../constants/localStorageKeys';\r\nimport { getFromLocal } from '../../utils/cache';\r\nimport { SOMETHING_UNEXPECTED, NO_FLIGHT_LEG_ORDER_FOUND, NO_LEG_MESSAGE } from '../../constants/MessageConstants';\r\n\r\nconst status = {\r\n OK: 200,\r\n};\r\n\r\nconst itinerarydetailsPromiseInprogress = {};\r\n\r\nexport const fetchItineraryDetailsSource = (token, key, params, type) => (dispatch) => {\r\n const uniqueKey = 'itineraryDetails';\r\n if (itinerarydetailsPromiseInprogress[uniqueKey]) {\r\n return itinerarydetailsPromiseInprogress[uniqueKey];\r\n }\r\n const itineraryDetailsPromise = new Promise((resolve, reject) => {\r\n const url = FETCH_ITINERARY_DETAILS_URL.replace('{context}', CONTEXT).replace('{token}', token)\r\n .replace('{key}', key).replace('{uniqueIdentifier}', params);\r\n dispatch(itineraryDetailsInit());\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response && response.data) {\r\n const responseHeader = response.data.responseHeaderDto;\r\n if (responseHeader && responseHeader.isError) {\r\n if (responseHeader.statusCode === 1 &&\r\n responseHeader.message === NO_LEG_MESSAGE) {\r\n dispatch(itineraryDetailsFail(NO_FLIGHT_LEG_ORDER_FOUND));\r\n reject(NO_FLIGHT_LEG_ORDER_FOUND);\r\n } else {\r\n const errors = handleServerErrors(responseHeader.statusCode);\r\n dispatch(itineraryDetailsFail(errors));\r\n reject(errors);\r\n }\r\n } else {\r\n const responseData = response.data.itineraryDtos[0];\r\n const sepratedData = seprateDetailPastUpcomingLegs(responseData.legs, type)\r\n responseData.legs = sepratedData;\r\n dispatch(itineraryDetailsSuccess(responseData));\r\n resolve(responseData);\r\n }\r\n }\r\n else {\r\n dispatch(itineraryDetailsFail(SOMETHING_UNEXPECTED));\r\n }\r\n\r\n delete itinerarydetailsPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(itineraryDetailsFail(errors));\r\n reject(errors);\r\n delete itinerarydetailsPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n itinerarydetailsPromiseInprogress[uniqueKey] = itineraryDetailsPromise;\r\n return itineraryDetailsPromise;\r\n};\r\n\r\nconst fetchOrderIdByLegPromiseInprogress = {};\r\nexport const fetchOrderIdByLegDetails = (key, identifier) => (dispatch) => {\r\n const uniqueKey = 'fetchOrderIdByLeg';\r\n if (fetchOrderIdByLegPromiseInprogress[uniqueKey]) {\r\n return fetchOrderIdByLegPromiseInprogress[uniqueKey];\r\n }\r\n const { user } = getFromLocal(USER_REDUCER, true, true);\r\n const token = user.userToken;\r\n\r\n const fechOrderIdByLegPromise = new Promise((resolve, reject) => {\r\n const url = FETCH_ORDER_ID_BY_LEG.replace('{token}', token)\r\n .replace('{key}', key).replace('{legId}', identifier);\r\n dispatch(fetchOrderIdByLegInit());\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n const responseHeader = response.data.responseHeaderDto;\r\n if (responseHeader.isError === true) {\r\n dispatch(fetchOrderIdByLegFail(handleServerErrors(responseHeader.statusCode)));\r\n } else {\r\n const responseData = response.data.itineraryDtos[0];\r\n dispatch(fetchOrderIdByLegSuccess(responseData.orderExtIdentifier));\r\n resolve(responseData.orderExtIdentifier);\r\n }\r\n } else {\r\n dispatch(fetchOrderIdByLegFail(handleServerErrors(BAD_REQUEST)));\r\n reject(handleServerErrors(BAD_REQUEST));\r\n }\r\n delete fetchOrderIdByLegPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n if (!err.status) {\r\n dispatch(fetchOrderIdByLegFail(handleServerErrors()));\r\n reject(handleServerErrors());\r\n } else {\r\n dispatch(fetchOrderIdByLegFail(handleServerErrors(BAD_REQUEST)));\r\n reject(handleServerErrors(BAD_REQUEST));\r\n }\r\n delete fetchOrderIdByLegPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n fetchOrderIdByLegPromiseInprogress[uniqueKey] = fechOrderIdByLegPromise;\r\n return fechOrderIdByLegPromise;\r\n};\r\n","import axios from 'axios';\r\nimport { ITINERARY_DETAIL_PDF } from '../../configs/constants';\r\nimport {\r\n itineraryPdfInit,\r\n itineraryPdfSuccess,\r\n itineraryPdfFail,\r\n} from '../actions';\r\nimport {\r\n handleServerErrors,\r\n parseString,\r\n} from '../../utils/sourceUtils';\r\nimport { SOMETHING_UNEXPECTED } from '../../constants/MessageConstants';\r\n\r\nconst status = {\r\n OK: 200,\r\n};\r\n\r\nconst itineraryPdfPromiseInprogress = {};\r\n\r\nconst fetchItineraryPdfSource = (token, flightLegId) => (dispatch) => {\r\n const uniqueKey = flightLegId;\r\n if (itineraryPdfPromiseInprogress[uniqueKey]) {\r\n return itineraryPdfPromiseInprogress[uniqueKey];\r\n }\r\n const itineraryPdfPromise = new Promise((resolve, reject) => {\r\n const url = ITINERARY_DETAIL_PDF.replace('{token}', token).replace('{flightLegId}', flightLegId);\r\n dispatch(itineraryPdfInit(flightLegId));\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n parseString(response.data, (parseErr, response) => {\r\n if (parseErr) {\r\n reject({ text: SOMETHING_UNEXPECTED });\r\n }\r\n dispatch(itineraryPdfSuccess(response.itineraryPdf.fileUrl, flightLegId))\r\n resolve(response.itineraryPdf.fileUrl, flightLegId);\r\n });\r\n } else {\r\n const errors = handleServerErrors(response.status);\r\n dispatch(itineraryPdfFail(errors, flightLegId));\r\n reject(errors);\r\n }\r\n delete itineraryPdfPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(itineraryPdfFail(errors, flightLegId));\r\n reject(errors);\r\n delete itineraryPdfPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n itineraryPdfPromiseInprogress[uniqueKey] = itineraryPdfPromise;\r\n return itineraryPdfPromise;\r\n};\r\n\r\nexport default fetchItineraryPdfSource;\r\n","import { fetchItineraryDetailsSource, fetchOrderIdByLegDetails } from '../sources/ItineraryDetailsSource';\r\nimport fetchItineraryPdfSource from '../sources/ItineraryPDFSource';\r\nimport {\r\n ITINERARY_DETAILS_INIT,\r\n ITINERARY_DETAILS_SUCCESS,\r\n ITINERARY_DETAILS_FAIL,\r\n ITINERARY_PDF_INIT,\r\n ITINERARY_PDF_SUCCESS,\r\n ITINERARY_PDF_FAIL,\r\n FETCH_ORDER_ID_BY_LEG_INIT,\r\n FETCH_ORDER_ID_BY_LEG_SUCCESS,\r\n FETCH_ORDER_ID_BY_LEG_FAIL,\r\n} from '../actionTypes';\r\n\r\nexport const itineraryDetailsInit = () => ({\r\n type: ITINERARY_DETAILS_INIT,\r\n});\r\n\r\nexport const itineraryDetailsSuccess = data => ({\r\n type: ITINERARY_DETAILS_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const itineraryDetailsFail = data => ({\r\n type: ITINERARY_DETAILS_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchItineraryDetails = (token, key, params, type) => fetchItineraryDetailsSource(token, key, params, type);\r\n\r\n\r\nexport const itineraryPdfInit = (flightLegId) => ({\r\n type: ITINERARY_PDF_INIT,\r\n flightLegId\r\n});\r\n\r\nexport const itineraryPdfSuccess = (data, flightLegId) => ({\r\n type: ITINERARY_PDF_SUCCESS,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const itineraryPdfFail = (data, flightLegId) => ({\r\n type: ITINERARY_PDF_FAIL,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchitineraryPdf = (token, flightLegId) => fetchItineraryPdfSource(token, flightLegId);\r\n\r\nexport const fetchOrderIdByLegInit = () => ({\r\n type: FETCH_ORDER_ID_BY_LEG_INIT,\r\n});\r\n\r\nexport const fetchOrderIdByLegSuccess = data => ({\r\n type: FETCH_ORDER_ID_BY_LEG_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchOrderIdByLegFail = data => ({\r\n type: FETCH_ORDER_ID_BY_LEG_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchOrderIdByLeg = (key, identifier) => fetchOrderIdByLegDetails(key, identifier);\r\n","import axios from 'axios';\r\nimport { CREW_INFO_URL } from '../../configs/constants';\r\nimport {\r\n fetchCrewInit,\r\n fetchCrewSuccess,\r\n fetchCrewFail,\r\n} from '../actions';\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\nimport { SOMETHING_UNEXPECTED } from '../../constants/MessageConstants';\r\nimport { BAD_REQUEST, TIMEOUT_CODE, UNAUTHORIZED } from '../../constants/ServerCodeConstants';\r\n\r\nconst crewPromiseInprogress = {};\r\n\r\nconst fetchCrewSource = (token, flightLegId) => (dispatch) => {\r\n const uniqueKey = flightLegId;\r\n if (crewPromiseInprogress[uniqueKey]) {\r\n return crewPromiseInprogress[uniqueKey];\r\n }\r\n const crewPromise = new Promise((resolve, reject) => {\r\n const url = CREW_INFO_URL.replace('{token}', token).replace('{flightLegId}', flightLegId);\r\n\r\n dispatch(fetchCrewInit(flightLegId));\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response && response.data) {\r\n if ((response.data.responseHeaderDto &&\r\n response.data.responseHeaderDto.isError && response.data.responseHeaderDto.status)) {\r\n const errors = handleServerErrors(response.data.responseHeaderDto.status);\r\n dispatch(fetchCrewFail(errors, flightLegId));\r\n reject(fetchCrewFail(errors, flightLegId));\r\n }\r\n else {\r\n dispatch(fetchCrewSuccess(response.data.crewInfos, flightLegId));\r\n resolve(response.data.crewInfos);\r\n }\r\n }\r\n else {\r\n dispatch(fetchCrewFail(SOMETHING_UNEXPECTED, flightLegId));\r\n reject(fetchCrewFail(SOMETHING_UNEXPECTED, flightLegId));\r\n }\r\n delete crewPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(fetchCrewFail(handleServerErrors(TIMEOUT_CODE.code), flightLegId));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(fetchCrewFail(handleServerErrors(UNAUTHORIZED), flightLegId));\r\n }\r\n else dispatch(fetchCrewFail(handleServerErrors(BAD_REQUEST), flightLegId));\r\n delete crewPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n crewPromiseInprogress[uniqueKey] = crewPromise;\r\n return crewPromise;\r\n};\r\n\r\nexport default fetchCrewSource;\r\n","import fetchCrewSource from '../sources/CrewSource';\r\nimport {\r\n FETCH_CREW_INIT,\r\n FETCH_CREW_SUCCESS,\r\n FETCH_CREW_FAIL,\r\n} from '../actionTypes';\r\n\r\nexport const fetchCrewInit = (flightLegId) => ({\r\n type: FETCH_CREW_INIT,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchCrewSuccess = (data, flightLegId) => ({\r\n type: FETCH_CREW_SUCCESS,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchCrewFail = (data, flightLegId) => ({\r\n type: FETCH_CREW_FAIL,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchCrew = (token, flightLegId) => fetchCrewSource(token, flightLegId);\r\n","\r\nimport { normalizePaymentAdditionalCharges } from 'utils/creditCardUtils.js';\r\nimport { guaranteeArray } from '../utils/arrayUtils';\r\n\r\nconst findVAT = (costsBreakdown) => (\r\n costsBreakdown.find(costBreakdown => (costBreakdown.description === 'VAT'))\r\n);\r\n\r\nconst normalizeLegs = (legs) => (\r\n legs.map((leg, index) => ({\r\n aircraftId: leg.requestedAircraftTypeId,\r\n arrivalTime: leg.arrivalTime,\r\n arrivalAirportId: leg.arrivalAirportId,\r\n departureTime: leg.departureTime,\r\n departureAirportId: leg.departureAirportId,\r\n duration: leg.flightTimeMinutes,\r\n flightLegId: index,\r\n opportunityId: leg.opportunityId ? leg.opportunityId : '',\r\n emptyLegId: leg.emptyLegId ? leg.emptyLegId : '',\r\n passengers: leg.numberOfPassenger,\r\n }))\r\n);\r\n\r\nconst normalizeQuote = (price) => ({\r\n id: price.quoteOfferId,\r\n amount: parseInt(price.amount, 0),\r\n currency: price.currency,\r\n costsBreakdown: guaranteeArray(price.costsBreakdown.costBreakdown),\r\n vatPrice: findVAT(guaranteeArray(price.costsBreakdown.costBreakdown)) || null,\r\n legs: normalizeLegs(guaranteeArray(price.flightLegs.flightLeg)),\r\n paymentAdditionalCharges: normalizePaymentAdditionalCharges(\r\n guaranteeArray(price.paymentAdditionalCharges.paymentAdditionalCharge)\r\n ),\r\n});\r\n\r\nexport const normalizeQuoteResponse = (quotes, isSingleLeg) => {\r\n const priceList = guaranteeArray(quotes.prices.price);\r\n return priceList.reduce(\r\n (prev, price) => {\r\n const previous = prev;\r\n previous.refrenceIds.push(price.quoteOfferId);\r\n previous.content[price.quoteOfferId] = normalizeQuote(price);\r\n return previous;\r\n }, {\r\n refrenceIds: [],\r\n content: {},\r\n id: quotes.quoteId,\r\n isSingleLeg,\r\n }\r\n );\r\n};","const createGuid = () => {\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n\r\n return (`${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`).toUpperCase();\r\n};\r\n\r\nexport default createGuid;\r\n","export const PAYMENT_METHODS_FOR_BOOKING = {\r\n MEMBERSHIP: '1',\r\n CREDIT_CARD: '2',\r\n};\r\n\r\nexport const MEMBERSHIP_FLIGHT_REQUEST = {\r\n SUCCESS: 0,\r\n UNEXPECTED: 1,\r\n NO_FUNDS: 2,\r\n};","import moment from \"moment\";\r\n// import { EMAIL_REGEX, NAME_REGEX } from 'constants/SignupConstants';\r\n\r\nlet instance = null;\r\nclass Validator {\r\n constructor() {\r\n if (!instance) {\r\n instance = this;\r\n }\r\n return instance;\r\n }\r\n // validEmail(email) {\r\n // return (!EMAIL_REGEX.test(email));\r\n // }\r\n validPhoneNo(phoneno) {\r\n const rePhone = /^[\\+]?[(]?[0-9-]{8,14}$/;\r\n return !rePhone.test(phoneno);\r\n }\r\n\r\n onlyAlphaNumeric(stringToTest) {\r\n const rePhone = /^[a-z0-9]+$/i;\r\n return !rePhone.test(stringToTest);\r\n }\r\n\r\n // validName(name) {\r\n // return (!NAME_REGEX.test(name));\r\n // }\r\n\r\n validRequired(value) {\r\n return !value || !value.toString().trim();\r\n }\r\n\r\n isInvalidDate(value) {\r\n return !value || value === \"Invalid date\";\r\n }\r\n\r\n validPax(value) {\r\n return +value === 0;\r\n }\r\n\r\n validAircraft(value) {\r\n return !(value || {}).displayName;\r\n }\r\n\r\n validTimeZone(date, airport) {\r\n let isValid = true;\r\n if (!!airport && !!date && date !== \"Invalid date\") {\r\n const time = moment.utc(date);\r\n airport.timezones.forEach(data => {\r\n if (\r\n time.isBetween(data.effectiveFromTimeUtc, data.effectiveToTimeUtc) ||\r\n time.isSame(data.effectiveFromTimeUtc)\r\n ) {\r\n isValid = false;\r\n }\r\n });\r\n return isValid;\r\n }\r\n return false;\r\n }\r\n\r\n validAgreement(check) {\r\n return !check;\r\n }\r\n\r\n matchPassword(pass1, pass2) {\r\n return pass1 !== pass2;\r\n }\r\n\r\n checkCharacterLimit(value, maxLimit, minLimit = 0) {\r\n return value.length >= minLimit && value.length <= maxLimit;\r\n }\r\n\r\n validateDuration(duration, aircraftTime) {\r\n return !isNaN(+duration) && +duration > +aircraftTime;\r\n }\r\n\r\n // is given date string is after current date\r\n dateInFuture(dateString, res) {\r\n const resolution = res || \"day\";\r\n const momentObj = moment(dateString).utc();\r\n return momentObj.isAfter(moment(), resolution);\r\n }\r\n\r\n // is given date string is before current date\r\n dateInPast(dateString, res) {\r\n const resolution = res || \"day\";\r\n const momentObj = moment(dateString);\r\n return momentObj.isBefore(moment(), resolution);\r\n }\r\n\r\n isSameMinDate(date1, date2) {\r\n let dateOne = date1;\r\n let dateTwo = date2;\r\n if (!moment.isMoment(date1)) {\r\n dateOne = moment(date1);\r\n }\r\n if (!moment.isMoment(date2)) {\r\n dateTwo = moment(date2);\r\n }\r\n return dateOne.isSame(dateTwo, \"day\");\r\n }\r\n\r\n /* @akram\r\n * Check if given dates are same\r\n *\r\n * @param date1: string OR Object\r\n * @param date2: string OR Object\r\n * @returns bool\r\n */\r\n isSameDate(date1, date2) {\r\n const d1 =\r\n date1 !== null && typeof date1 === \"object\" ? date1.format() : date1;\r\n const d2 =\r\n date2 !== null && typeof date2 === \"object\" ? date2.format() : date2;\r\n return d1 === d2;\r\n }\r\n\r\n isDateValid(val, state) {\r\n return (\r\n !this.isSameDate(val, state) &&\r\n (moment(val, [\"DD/MM/YYYY\", \"DD MMM YYYY\"], true).isValid() || val === \"\")\r\n );\r\n }\r\n}\r\n\r\nexport default Validator = new Validator(); // singleton\r\n","export const legStatus = {\r\n QUOTED: 'Quoted',\r\n OPTION: 'Option',\r\n CONFIRMED: 'Confirmed',\r\n READY: 'Ready',\r\n FLYING: 'Flying',\r\n LANDED: 'Landed',\r\n COMPLETED: 'Completed',\r\n CANCELLED: 'Cancelled',\r\n CANCELLATION_PENDING: 'Cancellation Pending',\r\n NOSHOW: 'No Show',\r\n UNCONFIRMED: 'Unconfirmed',\r\n REQUESTED: 'Requested',\r\n};\r\n\r\nexport const quoteQueryEmail = 'sales@vistajet.com';\r\n\r\nexport const quoteQueryEmailSubject = 'Quote query';\r\n","import moment from \"moment\";\r\nimport Validator from \"./Validators/PAFValidators\";\r\nimport { isLoggedIn, isFSP, isFspDirect } from \"./userUtils\";\r\nimport Helpers from \"./Helpers\";\r\nimport {\r\n DEPARTURE_AIRPORT_EXCEPTION,\r\n ARRIVAL_AIRPORT_EXCEPTION,\r\n DEPARTURE_ARRIVAL_AIRPORT_EXCEPTION,\r\n SAME_ARRIVAL_DEPARTURE_EXCEPTION,\r\n MIN_HOUR_EXPECPTION,\r\n OUTSIDE_TIMEZONE_EXCEPTION,\r\n FILL_FIELDS_EXCEPTION,\r\n TIME_CLASH_EXCEPTION,\r\n FILL_AIRCRAFT_EXCEPTION,\r\n FILL_TIME_EXCEPTION,\r\n FILL_DATE_EXCEPTION,\r\n FUEL_STOP_WARNING\r\n} from \"../constants/MessageConstants\";\r\nimport { dateFormats } from \"../utils/dateUtils\";\r\nimport {\r\n getUtcOffsetMinutes,\r\n removeOffsetMinutes\r\n} from \"./timezoneUtils\";\r\nimport { legStatus } from \"../constants/PAFConstants\";\r\nexport const validateLegs = (rawLegs, isEditFlow=false) => {\r\n const { MMDDYYYY, MM_DD_YYYY_HHmm, YYYY_MM_DD_HHmm } = dateFormats;\r\n const legs = rawLegs;\r\n let isError = false;\r\n let isModalError = false;\r\n let modalMessage = [];\r\n\r\n const validLegs = legs.map((leg, index) => {\r\n\r\n if (isEditFlow && (leg.isCanceled || !leg.isEditableLeg)) {\r\n return;\r\n }\r\n\r\n const fuelStop = leg.validation.errorOn.fuelStop;\r\n leg.validation = {};\r\n leg.validation.errorOn = {\r\n departure: null,\r\n arrival: null,\r\n departureArrival: null,\r\n departureArrivalSame: null,\r\n time: null,\r\n passenger: null,\r\n aircraft: null,\r\n date: null,\r\n contract: null,\r\n minHoursException: null,\r\n fuelStop\r\n };\r\n leg.validation.isError = false;\r\n\r\n if (leg.departureAirport == null) {\r\n leg.validation.isError = true;\r\n leg.validation.errorOn.departure = DEPARTURE_AIRPORT_EXCEPTION;\r\n isError = true;\r\n }\r\n if (leg.arrivalAirport == null) {\r\n leg.validation.isError = true;\r\n leg.validation.errorOn.arrival = ARRIVAL_AIRPORT_EXCEPTION;\r\n isError = true;\r\n }\r\n if (leg.arrivalAirport == null && leg.departureAirport == null) {\r\n leg.validation.isError = true;\r\n leg.validation.errorOn.departureArrival = DEPARTURE_ARRIVAL_AIRPORT_EXCEPTION;\r\n isError = true;\r\n }\r\n if (\r\n !!leg.departureAirport &&\r\n !!leg.arrivalAirport &&\r\n leg.arrivalAirport.id === leg.departureAirport.id\r\n ) {\r\n leg.validation.isError = true;\r\n leg.validation.errorOn.departureArrivalSame = SAME_ARRIVAL_DEPARTURE_EXCEPTION;\r\n isError = true;\r\n }\r\n if (\r\n !Validator.isInvalidDate(leg.date) &&\r\n !Validator.validRequired(leg.time) &&\r\n !!leg.departureAirport\r\n ) {\r\n const datetime = `${moment(leg.date).format(MMDDYYYY)} ${leg.time}`;\r\n\r\n // local time input by user\r\n const userDepartTime = moment(datetime, MM_DD_YYYY_HHmm).utc();\r\n const offset = Helpers.findOffset(userDepartTime, leg.departureAirport);\r\n\r\n const actualCurrentLocalTimeString = moment()\r\n .utc()\r\n .utcOffset(offset)\r\n .format(YYYY_MM_DD_HHmm);\r\n\r\n // local time at the moment actually\r\n const actualCurrentLocalTime = moment(\r\n actualCurrentLocalTimeString,\r\n YYYY_MM_DD_HHmm\r\n ).utc();\r\n\r\n const afterFourHoursTime = moment(actualCurrentLocalTime).add(4, 'hours');\r\n\r\n if (userDepartTime.isBefore(afterFourHoursTime)) {\r\n leg.validation.isError = true;\r\n leg.validation.errorMsg = MIN_HOUR_EXPECPTION;\r\n leg.validation.errorOn.minHoursException = MIN_HOUR_EXPECPTION;\r\n isError = true;\r\n }\r\n }\r\n if (\r\n Validator.validTimeZone(leg.date, leg.departureAirport) ||\r\n Validator.validTimeZone(leg.date, leg.arrivalAirport)\r\n ) {\r\n leg.validation.isError = true;\r\n leg.validation.errorOn.date = OUTSIDE_TIMEZONE_EXCEPTION;\r\n isError = true;\r\n }\r\n if (Validator.isInvalidDate(leg.date)) {\r\n leg.date = undefined;\r\n leg.validation.isError = true;\r\n leg.validation.errorOn.date = FILL_DATE_EXCEPTION;\r\n isError = true;\r\n }\r\n if (Validator.validRequired(leg.time)) {\r\n leg.time = \"\";\r\n leg.validation.isError = true;\r\n leg.validation.errorOn.time = FILL_TIME_EXCEPTION;\r\n leg.isTimeValid = true;\r\n isError = true;\r\n }\r\n if (Validator.validPax(leg.passengersCount)) {\r\n leg.validation.isError = true;\r\n leg.validation.errorOn.passenger = FILL_FIELDS_EXCEPTION;\r\n isError = true;\r\n }\r\n if (Validator.validAircraft(leg.selectedAircraft)) {\r\n leg.validation.isError = true;\r\n leg.validation.errorOn.aircraft = FILL_AIRCRAFT_EXCEPTION;\r\n isError = true;\r\n }\r\n if (index > 0) {\r\n const prevLeg = legs[index - 1];\r\n const curDepartDate = moment(leg.departTime, 'YYYY-MM-DDTHH:mm:ss');\r\n const prevArrivalDate = moment(prevLeg.arrivalTime, 'YYYY-MM-DDTHH:mm:ss');\r\n const timeDiff = Math.abs(moment(curDepartDate).utc().diff(moment(prevArrivalDate).utc(), \"hour\"));\r\n if (curDepartDate && prevArrivalDate && (timeDiff < 4) && leg.time) {\r\n modalMessage.push(`Please allow for a minimum of at least 4 hours between the arrival at ${prevLeg.arrivalAirport.name}, ${prevLeg.arrivalAirport.city} and the departure at ${leg.departureAirport.name}, ${leg.departureAirport.city}`);\r\n isModalError = true;\r\n }\r\n }\r\n return leg;\r\n });\r\n return { isError, validLegs, isModalError, modalMessage };\r\n};\r\n\r\nexport const validateMultiLeg = multiLegs => {\r\n const legs = multiLegs.filter(leg => !leg.isCanceled);\r\n const popupErrors = [];\r\n if (legs.length > 1) {\r\n const firstleg = legs[0];\r\n const lastLeg = legs[legs.length - 1];\r\n\r\n if (\r\n !firstleg.departureAirport ||\r\n !lastLeg.arrivalAirport ||\r\n firstleg.departureAirport.id !== lastLeg.arrivalAirport.id\r\n ) {\r\n return false;\r\n }\r\n let arrivalDatetimeFirstLeg = moment(firstleg.arrivalTime).utc();\r\n let departureDatetimeLastLeg = moment(lastLeg.departTime).utc();\r\n\r\n const offsetMinutesArrival = getUtcOffsetMinutes(\r\n firstleg.arrivalAirport.timezones,\r\n arrivalDatetimeFirstLeg\r\n );\r\n const offsetMinutesDeparture = getUtcOffsetMinutes(\r\n lastLeg.departureAirport.timezones,\r\n departureDatetimeLastLeg\r\n );\r\n\r\n arrivalDatetimeFirstLeg = removeOffsetMinutes(\r\n offsetMinutesArrival,\r\n arrivalDatetimeFirstLeg\r\n );\r\n departureDatetimeLastLeg = removeOffsetMinutes(\r\n offsetMinutesDeparture,\r\n departureDatetimeLastLeg\r\n );\r\n\r\n if (arrivalDatetimeFirstLeg.isSameOrAfter(departureDatetimeLastLeg)) {\r\n lastLeg.validation.isError = true;\r\n lastLeg.validation.errorMsg =\r\n \"The selected date or time clashes with another of your flight requests\";\r\n popupErrors.push(TIME_CLASH_EXCEPTION);\r\n }\r\n }\r\n return popupErrors;\r\n};\r\n\r\nexport function mapLegStatus(status) {\r\n if (status === legStatus.REQUESTED || status === legStatus.UNCONFIRMED)\r\n return \"On Request\";\r\n return status;\r\n}\r\n\r\nexport const calcDepartAndArrivalTime = leg => {\r\n const legToUpdate = leg;\r\n const tmpObj = {\r\n departTime: \"Invalid date\",\r\n arrivalTime: \"Invalid date\"\r\n };\r\n let departTime = \"etd\";\r\n let arrivalTime = \"eta\";\r\n if (!!legToUpdate.time && !!legToUpdate.date) {\r\n const datetimeString =\r\n `${moment.utc(legToUpdate.date).format(\"DD/MM/YYYY\")} ` +\r\n `${legToUpdate.time}`;\r\n if (legToUpdate.departureAirport !== null) {\r\n departTime = moment(`${datetimeString} +0000`, \"DD/MM/YYYY HH:mm Z\")\r\n .utc()\r\n .format();\r\n\r\n tmpObj.departTime = departTime;\r\n }\r\n\r\n if (\r\n legToUpdate.departureAirport &&\r\n legToUpdate.arrivalAirport &&\r\n departTime &&\r\n legToUpdate.selectedAircraft\r\n ) {\r\n arrivalTime = Helpers.getArrivalTime(\r\n departTime,\r\n legToUpdate.duration,\r\n legToUpdate.departureAirport,\r\n legToUpdate.arrivalAirport\r\n );\r\n tmpObj.arrivalTime = arrivalTime;\r\n // legArray;\r\n }\r\n legToUpdate.departTime = tmpObj.departTime;\r\n legToUpdate.arrivalTime = tmpObj.arrivalTime;\r\n legToUpdate.validation.errorOn.minHoursException = null;\r\n }\r\n return legToUpdate;\r\n};\r\n\r\nexport const calcFlightDuration = (leg, isNotComingFromOffer = true) => {\r\n const legToUpdate = leg;\r\n if (\r\n legToUpdate.departureAirport !== null &&\r\n legToUpdate.arrivalAirport !== null &&\r\n legToUpdate.selectedAircraft !== null\r\n ) {\r\n legToUpdate.duration = Helpers.getFlightDuration(\r\n legToUpdate.departureAirport,\r\n legToUpdate.arrivalAirport,\r\n legToUpdate.selectedAircraft\r\n );\r\n if (isNotComingFromOffer) {\r\n const fuelStopErr = validateDuration(\r\n legToUpdate.duration,\r\n Helpers.getValue(legToUpdate.selectedAircraft.maxFlightTime)\r\n );\r\n if (fuelStopErr) {\r\n legToUpdate.validation.errorOn.fuelStop = FUEL_STOP_WARNING;\r\n } else {\r\n legToUpdate.validation.errorOn.fuelStop = null;\r\n }\r\n }\r\n }\r\n return legToUpdate;\r\n};\r\n\r\nexport const validateAircraftinContract = (user, availableAircraftIds, id) => {\r\n if (isLoggedIn(user) && (isFSP(user) || isFspDirect(user))) {\r\n return availableAircraftIds.includes(id);\r\n }\r\n return true;\r\n};\r\n\r\nexport const validateDuration = (duration, aircraftTime) => {\r\n return !isNaN(+duration) && +duration > +aircraftTime;\r\n};\r\n\r\nexport const sortLegs = legs =>\r\n legs.sort((leg1, leg2) => {\r\n if (moment(leg1.departTime).isBefore(moment(leg2.departTime))) return -1;\r\n else if (moment(leg1.departTime).isAfter(moment(leg2.departTime))) return 1;\r\n return 0;\r\n });","import { guaranteeArray } from \"../utils/arrayUtils\";\r\nimport { mapLegStatus } from \"../utils/PAFUtils\";\r\nexport const normalizeFlightLegIdentifiers = (flightLegs) => {\r\n const flightLeg = guaranteeArray(flightLegs.flightLeg);\r\n const ids = [];\r\n flightLeg.forEach((leg) => {\r\n ids.push(leg.flightLegExtIdentifier);\r\n });\r\n return ids;\r\n};\r\n\r\nexport const normalizeLegStatus = (flightLegs) => {\r\n const flightLeg = guaranteeArray(flightLegs.flightLeg);\r\n const status = mapLegStatus(flightLeg[0].legStatus);\r\n return status;\r\n};\r\n","import axios from 'axios';\r\nimport moment from 'moment';\r\nimport {\r\n availOfferInit,\r\n availOfferFail,\r\n availOfferSuccess,\r\n availOfferQuotingNotAvailable,\r\n buyOfferInit,\r\n buyOfferFail,\r\n buyOfferSuccess,\r\n} from '../actions';\r\nimport { TIMEOUT_CODE, BAD_REQUEST, MULTI_LEG_OFFER_QOUTING_NA } from '../../constants/ServerCodeConstants';\r\nimport { QUOTE_URL, REQUEST_FLIGHT_2_0_URL } from '../../configs/constants';\r\nimport status from '../../configs/status';\r\nimport { handleServerErrors } from '../../utils/sourceUtils';\r\nimport { normalizeQuoteResponse } from '../../normalizers/AvailOfferNormailizer';\r\nimport { parseString } from '../../utils/parserUtils';\r\nimport createGuid from '../../utils/guidUtils';\r\nimport { PAYMENT_METHODS_FOR_BOOKING, MEMBERSHIP_FLIGHT_REQUEST } from '../../constants/BookingFlightConstants';\r\nimport { normalizeFlightLegIdentifiers, normalizeLegStatus } from '../../normalizers/PAFNormalizer';\r\nimport { getFromLocal } from '../../utils/cache';\r\nimport { USER_REDUCER } from '../../constants/localStorageKeys';\r\nimport { REQUIRE_FUELSTOP, SOMETHING_UNEXPECTED } from \"../../constants/MessageConstants\";\r\n\r\n\r\nconst legsReqAvailOfferPayload = (legs) => {\r\n const emptyLegId = legs[0].isEmptyLeg ? `${legs[0].emptyLegId}` : '';\r\n const opportunityId = legs[0].isOneWay ?\r\n `${legs[0].id}` : '';\r\n return (legs.map((leg) => {\r\n const {\r\n departureAirport, arrivalAirport, departTime,\r\n selectedAircraft, passengersCount,\r\n } = leg;\r\n return `\r\n \r\n ${emptyLegId}\r\n ${opportunityId}\r\n ${departureAirport.id}\r\n ${arrivalAirport.id}\r\n ${moment(departTime).utc().toJSON()}\r\n ${selectedAircraft.id}\r\n ${passengersCount}\r\n false\r\n \r\n `;\r\n }).join(''))\r\n};\r\n\r\nconst createAvailOfferPayload = (legs, user) => {\r\n const { accounts } = user;\r\n const account = accounts.filter(acc => (acc.membershipStatus === 2));\r\n const { id, typeId, membershipTypeId } = account[0];\r\n\r\n return (\r\n `\r\n ${id}\r\n ${typeId}\r\n ${membershipTypeId}\r\n \r\n ${legsReqAvailOfferPayload(legs)}\r\n \r\n `);\r\n};\r\n\r\nconst legBuyOfferPayload = (legs) => {\r\n return legs.map((leg) => {\r\n const {\r\n departureAirport,\r\n arrivalAirport,\r\n departTime,\r\n passengersCount,\r\n arrivalTime,\r\n selectedAircraft,\r\n version,\r\n } = leg;\r\n const emptyLegId = leg.isEmptyLeg ? leg.id : '';\r\n const opportunityId = leg.isOneWay ? leg.id : '';\r\n\r\n return `\r\n \r\n ${createGuid()}\r\n ${arrivalAirport.id}\r\n ${moment(arrivalTime).utc().format()}\r\n ${departureAirport.id}\r\n ${moment(departTime).utc().format()}\r\n ${passengersCount}\r\n ${selectedAircraft.id}\r\n false\r\n ${opportunityId}\r\n ${emptyLegId}\r\n ${version || '1'}\r\n `\r\n });\r\n};\r\n\r\nconst createBuyOfferPayload = (legs, quoteDetails, paymentOptionId, creditCard, accountId, isQuote) => {\r\n const { quoteId, quoteOfferId, totalAmount, mode } = quoteDetails;\r\n const { ccAlias, ccCode } = creditCard;\r\n return (\r\n `\r\n ${quoteId}\r\n ${isQuote ? '' : quoteId}\r\n ${isQuote ? '' : quoteOfferId}\r\n ${accountId}\r\n ${totalAmount}\r\n ${isQuote ? '' : quoteId}\r\n \r\n ${legBuyOfferPayload(legs)}\r\n \r\n ${paymentOptionId}\r\n ${PAYMENT_METHODS_FOR_BOOKING.CREDIT_CARD === paymentOptionId && ccAlias ?\r\n `${ccAlias}` : ''}\r\n ${PAYMENT_METHODS_FOR_BOOKING.CREDIT_CARD === paymentOptionId && ccCode ?\r\n `${ccCode}` : ''}\r\n ${mode}\r\n `\r\n );\r\n\r\n}\r\n\r\nexport const availOffer = (legs, user) => (dispatch) => {\r\n dispatch(availOfferInit());\r\n const options = {\r\n headers: {\r\n 'Content-Type': 'application/xml'\r\n },\r\n timeout: TIMEOUT_CODE.time,\r\n };\r\n const token = user.userToken;\r\n const payload = createAvailOfferPayload(legs, user);\r\n\r\n axios\r\n .post(QUOTE_URL.replace('{token}', token), payload, options)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n parseString(response.data, (parseErr, result) => {\r\n if (parseErr) {\r\n dispatch(\r\n availOfferFail('We were not able to book your flight, please try again later.')\r\n );\r\n } else if (result.responseDto.responseHeader.isError){\r\n const error = result.responseDto.responseHeader;\r\n if(error.statusCode === MULTI_LEG_OFFER_QOUTING_NA.code )\r\n {\r\n dispatch(availOfferQuotingNotAvailable(handleServerErrors(error.statusCode)));}\r\n else{\r\n if (error.statusCode === 5) {\r\n dispatch(availOfferFail(REQUIRE_FUELSTOP));\r\n } else {\r\n dispatch(availOfferFail(error.message));\r\n }\r\n }\r\n } else {\r\n dispatch(availOfferSuccess({\r\n quoteContent: normalizeQuoteResponse(result.responseDto.responseBody, legs.length === 1),\r\n legs,\r\n }));\r\n }\r\n });\r\n }\r\n else {\r\n dispatch(availOfferFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(availOfferFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else dispatch(availOfferFail(handleServerErrors(BAD_REQUEST)));\r\n });\r\n};\r\n\r\nexport const buyOffer = (legs, quoteDetails, paymentOption, creditCard, isQuote = false) => (dispatch) => {\r\n dispatch(buyOfferInit());\r\n const options = {\r\n headers: {\r\n 'Content-Type': 'application/xml'\r\n },\r\n };\r\n const { user } = getFromLocal(USER_REDUCER, true, true);\r\n const token = user.userToken;\r\n const { accounts } = user;\r\n const account = isQuote ? accounts : accounts.filter(acc => (acc.membershipStatus === 2));\r\n const { id } = account[0];\r\n const payload = createBuyOfferPayload(legs, quoteDetails, paymentOption, creditCard, id, isQuote);\r\n\r\n axios\r\n .post(REQUEST_FLIGHT_2_0_URL.replace('{token}', token), payload, options)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n parseString(response.data, (parseErr, result) => {\r\n if (parseErr) {\r\n dispatch(\r\n buyOfferFail('We were not able to book your flight, please try again later.')\r\n );\r\n } else if (result.ResponseBody.responseHeader.isError) {\r\n const header = result.ResponseBody.responseHeader;\r\n let textToReturn = header.message;\r\n if (header.statusCode !== MEMBERSHIP_FLIGHT_REQUEST.NO_FUNDS) {\r\n textToReturn = SOMETHING_UNEXPECTED;\r\n }\r\n dispatch(buyOfferFail(textToReturn));\r\n } else {\r\n dispatch(buyOfferSuccess(\r\n {\r\n orderId: result.ResponseBody.flightOrderId ? result.ResponseBody.flightOrderId : '',\r\n identifiers: normalizeFlightLegIdentifiers(\r\n result.ResponseBody.flightLegs\r\n ),\r\n legArray: legs,\r\n status: normalizeLegStatus(result.ResponseBody.flightLegs),\r\n }\r\n ));\r\n }\r\n });\r\n }\r\n else {\r\n dispatch(buyOfferFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(buyOfferFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else dispatch(buyOfferFail(handleServerErrors(BAD_REQUEST)));\r\n });\r\n};\r\n","import { availOffer, buyOffer } from \"../sources/AvailOfferSource\";\r\nimport * as types from \"../actionTypes\";\r\n\r\nexport const availOfferInit = () => ({\r\n type: types.AVAIL_OFFER_INIT\r\n});\r\n\r\nexport const availOfferSuccess = data => ({\r\n type: types.AVAIL_OFFER_SUCCESS,\r\n data\r\n});\r\n\r\nexport const availOfferFail = data => ({\r\n type: types.AVAIL_OFFER_FAIL,\r\n data\r\n});\r\n\r\nexport const availOfferQuotingNotAvailable = data =>({\r\n type: types.AVAIL_OFFER_QUOTING_NOT_AVAILABLE,\r\n data\r\n});\r\n\r\nexport const buyOfferInit = () => ({\r\n type: types.BUY_OFFER_INIT\r\n});\r\n\r\nexport const buyOfferSuccess = data => ({\r\n type: types.BUY_OFFER_SUCCESS,\r\n data\r\n});\r\n\r\nexport const buyOfferFail = data => ({\r\n type: types.BUY_OFFER_FAIL,\r\n data\r\n});\r\n\r\nexport const availOfferQuote = (legs, user) => availOffer(legs, user);\r\nexport const updateQuoteContent = () => ({ type: types.UPDATE_QUOTE_CONSTANT });\r\nexport const buyOfferQuote = (\r\n legs,\r\n quoteDetails,\r\n paymentOptionId,\r\n creditCard,\r\n isQuote,\r\n) => buyOffer(legs, quoteDetails, paymentOptionId, creditCard, isQuote);\r\n","import {\r\n GET_PUBLIC_FILE_URL,\r\n GET_PRIVATE_FILE_URL,\r\n DOWNLOAD_PRIVATE_FILE_URL,\r\n POST_FILE_URL,\r\n} from '../configs/constants';\r\nimport { getToken } from './userUtils';\r\nexport function getFiles(fileName, userToken = '', isPublic = true, shouldDownload = false) {\r\n if (!fileName) {\r\n return '';\r\n }\r\n let fileURL;\r\n if (isPublic) {\r\n fileURL = GET_PUBLIC_FILE_URL.replace('{key}', fileName);\r\n } else {\r\n if (shouldDownload) {\r\n fileURL = DOWNLOAD_PRIVATE_FILE_URL\r\n .replace('{token}', userToken)\r\n .replace('{key}', fileName);\r\n } else {\r\n fileURL = GET_PRIVATE_FILE_URL\r\n .replace('{token}', userToken)\r\n .replace('{key}', fileName);\r\n }\r\n }\r\n return fileURL;\r\n}\r\nexport function fileKeyFromURL(url, userToken, isPublic) {\r\n const fileName = url.split('fileKey=');\r\n return getFiles(fileName[fileName.length - 1], userToken, isPublic);\r\n}\r\n\r\nfunction isOldURL(url) {\r\n const val = url.match(/1.1|getfile/g);\r\n return (val[0] === '1.1' && val[1] === 'getfile');\r\n}\r\n\r\nexport function getfileURL(currentURL, userToken, isPublic) {\r\n const fileName = currentURL.split('=');\r\n if (isOldURL(currentURL)) {\r\n return getFiles(fileName[fileName.length - 1], userToken, isPublic);\r\n }\r\n return currentURL;\r\n}\r\n\r\nexport function postFiles(fileName, userToken = '') {\r\n const token = userToken || getToken();\r\n const fileURL = POST_FILE_URL\r\n .replace('{token}', token)\r\n .replace('{key}', fileName);\r\n return fileURL;\r\n}\r\n\r\n","import axios from 'axios';\r\nimport { SEARCH_PAX_URL, MANAGE_PAX_URL, POST_FILE_URL } from '../../configs/constants';\r\nimport {\r\n HTTP_HEADERS_XML,\r\n} from '../../constants/ApiConstants';\r\n\r\nimport {\r\n handleServerErrors,\r\n garanteeArray,\r\n} from '../../utils/sourceUtils';\r\nimport { parseString, parseXmlStringToJson } from \"../../utils/parserUtils\";\r\nimport { postFiles } from '../../utils/fileUtils';\r\nimport { TIMEOUT_CODE } from '../../constants/ServerCodeConstants';\r\nimport moment from 'moment';\r\nimport { getToken, getUser } from '../../utils/userUtils';\r\n\r\nconst options = {\r\n timeout: TIMEOUT_CODE.time,\r\n headers: HTTP_HEADERS_XML,\r\n};\r\nconst status = {\r\n OK: 200,\r\n};\r\nconst ItineraryPassengerSource = {\r\n\r\n transformPassport(passport) {\r\n const displayName = passport.displayName;\r\n const isoIssuedByCountry = passport.isoIssuedByCountry;\r\n const isoPassportIssuedByCountry = passport.isoPassportIssuedByCountry;\r\n const passportNumber = passport.passportNumber;\r\n const expiresOnDate = passport.expiresOnDate;\r\n const isoPassportCountry = passport.isoPassportCountry;\r\n const isLegPassport = passport.isLegPassport || false;\r\n\r\n return {\r\n displayName,\r\n isoIssuedByCountry,\r\n isoPassportIssuedByCountry,\r\n passportNumber,\r\n expiresOnDate,\r\n isoPassportCountry,\r\n isLegPassport,\r\n };\r\n },\r\n\r\n searchPax(term) {\r\n const token = getToken();\r\n return new Promise((resolve, reject) => {\r\n const url = SEARCH_PAX_URL\r\n .replace('{token}', token)\r\n .replace('{term}', term);\r\n\r\n axios\r\n .get(url, options)\r\n .then((response) => {\r\n if (response.status !== status.OK) {\r\n reject(handleServerErrors(response.status));\r\n } else {\r\n parseString(response.data, (parseErr, response) => {\r\n if (parseErr) {\r\n reject({ text: 'Something went wrong', duration: 2000 });\r\n return false;\r\n }\r\n const passengers =\r\n garanteeArray((((response || {}).passengerRestDtoes || {}).passenger || []));\r\n passengers.forEach((pax) => {\r\n pax.passports = // eslint-disable-line no-param-reassign\r\n garanteeArray(pax.passports);\r\n });\r\n resolve({ searchPax: passengers });\r\n return true;\r\n });\r\n }\r\n });\r\n });\r\n },\r\n\r\n managePassengers(params, flightPassengers, deleted = []) {\r\n // Making all the structures - start\r\n // deleted passengers structure\r\n const deletedXmlStructure = '{id}' +\r\n '{identifier}' +\r\n '';\r\n\r\n // main xml structure\r\n const passengersXmlStructure = '' +\r\n '' +\r\n '{deleted}' +\r\n '{new}' +\r\n '{existingUpdated}' +\r\n '' +\r\n '' +\r\n '';\r\n\r\n // new passengers\r\n const newXmlStructure = '' +\r\n '{identifier}' +\r\n '{firstName}' +\r\n '{lastName}' +\r\n '{imageUrl}' +\r\n '{email}' +\r\n '{phoneNumber}' +\r\n '{dob}' +\r\n '{gender}' +\r\n '{leadPassenger}' +\r\n '{passports}' +\r\n '';\r\n\r\n // new passengers\r\n const existingUpdateXmlStructure = '' +\r\n '{id}' +\r\n '{firstName}' +\r\n '{lastName}' +\r\n '{imageUrl}' +\r\n '{email}' +\r\n '{phoneNumber}' +\r\n '{dob}' +\r\n '{gender}' +\r\n '{leadPassenger}' +\r\n 'true' +\r\n '{isApproved}' +\r\n '{passports}' +\r\n '';\r\n\r\n const passportXmlStructure = '' +\r\n '{id}' +\r\n '{isDefault}' +\r\n '{isActive}' +\r\n '{passportNumber}' +\r\n '{expiry}' +\r\n '{isoPassportCountry}' +\r\n '{isoIssuingCountry}' +\r\n '{passportName}' +\r\n '{isAdded}' +\r\n '{isUpdated}' +\r\n '{isDeleted}' +\r\n '{isLegPassport}' +\r\n '' +\r\n '{passportImageUrl}' +\r\n '' +\r\n '';\r\n\r\n\r\n // Making all the structures - end\r\n const token = getToken();\r\n const url = MANAGE_PAX_URL\r\n .replace('{token}', token)\r\n .replace('{key}', params.key)\r\n .replace('{uniqueIdentifier}', params.uniqueIdentifier);\r\n\r\n let deletedXml = '';\r\n let newXml = '';\r\n let existingUpdateXml = '';\r\n let passportsXml = '';\r\n let finalXml = '';\r\n\r\n // making deleted payload - start\r\n deleted.forEach((id) => {\r\n // check if id is a guid or an id generated from GV\r\n // Using regex to identify GUID\r\n const regex = /[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}/i;\r\n const match = regex.exec(id);\r\n if (!match) { // its a id generated from GV\r\n deletedXml += deletedXmlStructure\r\n .replace('{id}', id)\r\n // this second replace is a patch required to cater API flow,\r\n // I totally disagree with this btw!\r\n .replace('{identifier}', '');\r\n } else {\r\n // its a guid\r\n deletedXml += deletedXmlStructure\r\n .replace('{identifier}', id)\r\n // this second replace is a patch required to cater API flow,\r\n // I totally disagree with this btw!\r\n .replace('{id}', '0');\r\n }\r\n });\r\n // making deleted payload - end\r\n\r\n // iterating over flight passengers - start\r\n flightPassengers.forEach((passenger) => {\r\n passportsXml = '';\r\n const email =\r\n passenger.emailAddresses.length > 0 ? passenger.emailAddresses[0].email : '';\r\n const phoneNumber =\r\n passenger.phoneNumbers.length > 0 ? passenger.phoneNumbers[0].phoneNumber : '';\r\n\r\n if ((passenger && passenger.isNew) || !passenger.passengerId) {\r\n // new passenger\r\n if (passenger.passports) {\r\n passenger.passports.forEach((passport) => {\r\n const pas = passport;\r\n passportsXml += passportXmlStructure.replace('{isDefault}', passport.isDefault || false)\r\n .replace('{isActive}', true)\r\n .replace('{passportNumber}', pas.passportNumber)\r\n .replace('{expiry}', (pas.expiry) || '')\r\n .replace('{isoPassportCountry}', pas.isoPassportCountry)\r\n .replace('{isoIssuingCountry}', pas.isoPassportIssuedByCountry)\r\n .replace('{passportName}', pas.displayName)\r\n .replace('{isAdded}', passport.isAdded)\r\n .replace('{isUpdated}', passport.isUpdated)\r\n .replace('{isDeleted}', passport.isDeleted)\r\n .replace('{isLegPassport}', pas.isLegPassport || false)\r\n .replace('{passportImageUrl}', passport.imageUrl || '')\r\n .replace('{id}', '');\r\n });\r\n }\r\n\r\n newXml += newXmlStructure\r\n .replace('{firstName}', passenger.firstName)\r\n .replace('{lastName}', passenger.lastName)\r\n .replace('{imageUrl}', passenger.profilePicture ? passenger.profilePicture : '')\r\n .replace('{email}', email)\r\n .replace('{phoneNumber}', phoneNumber)\r\n .replace('{dob}', passenger.dateOfBirth ?\r\n moment(passenger.dateOfBirth).utc().format() : '')\r\n .replace('{gender}', passenger.genderId >= 0 ? passenger.genderId : '')\r\n .replace('{identifier}', passenger.passengerExtIdentifier)\r\n .replace('{leadPassenger}', passenger.leadPassenger || false)\r\n .replace('{passports}', passportsXml);\r\n } else {\r\n // existing passenger\r\n if (passenger.passports) {\r\n passenger.passports.forEach((passport) => {\r\n let temp = '';\r\n const pas = passport;\r\n if (passport && passport.passportId) {\r\n // old passport already added\r\n temp = passportXmlStructure.replace('{id}', passport.passportId);\r\n } else {\r\n // new passport added to existing passenger\r\n temp = passportXmlStructure.replace('{id}', '');\r\n }\r\n\r\n passportsXml += temp.replace('{isDefault}', passport.isDefault || false)\r\n .replace('{isActive}', passport.isActive)\r\n .replace('{passportNumber}', pas.passportNumber)\r\n .replace('{expiry}', (pas.expiry) || '')\r\n .replace(\r\n '{isoPassportCountry}',\r\n (pas.isoPassportCountry) || ''\r\n )\r\n .replace('{isoIssuingCountry}', pas.isoPassportIssuedByCountry || '')\r\n .replace('{passportName}', pas.displayName || '')\r\n .replace('{passportImageUrl}', passport.imageUrl || '')\r\n .replace('{isAdded}', passport.isAdded || false)\r\n .replace('{isUpdated}', passport.isUpdated || false)\r\n .replace('{isDeleted}', passport.isDeleted || false)\r\n .replace('{isLegPassport}', pas.isLegPassport || false);\r\n });\r\n }\r\n\r\n existingUpdateXml += existingUpdateXmlStructure\r\n .replace('{firstName}', passenger.firstName)\r\n .replace('{id}', passenger.passengerId)\r\n .replace('{lastName}', passenger.lastName)\r\n .replace('{imageUrl}', passenger.profilePicture || '')\r\n .replace('{email}', email || '')\r\n .replace('{phoneNumber}', phoneNumber || '')\r\n .replace('{dob}', passenger.dateOfBirth || '')\r\n .replace('{gender}', passenger.genderId >= 0 ? passenger.genderId : '')\r\n .replace('{leadPassenger}', passenger.leadPassenger || false)\r\n .replace('{isApproved}', passenger.isApproved || false)\r\n .replace('{passports}', passportsXml);\r\n }\r\n });\r\n\r\n // iterating over flight passengers - end\r\n\r\n\r\n // replacing all the partial xmls in main xml\r\n finalXml = passengersXmlStructure.replace('{deleted}', deletedXml)\r\n .replace('{new}', newXml)\r\n .replace('{existingUpdated}', existingUpdateXml);\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post(url, finalXml, options)\r\n .then((response) => {\r\n if (response.status !== status.OK) { // error occured\r\n reject(handleServerErrors(response.status));\r\n } else {\r\n const jsonData = parseXmlStringToJson(response.data);\r\n resolve({ success: jsonData.vjResponse });\r\n }\r\n });\r\n });\r\n },\r\n\r\n uploadImage(file) {\r\n const form = new FormData();\r\n form.append('Filedata', file);\r\n\r\n const ext = `.${file.name.split('.').pop()}`;\r\n const userId = getUser().id || '';\r\n const timestamp = new Date().getTime().toString();\r\n const fileName = `${userId}_profile_image_${timestamp}${ext}`;\r\n const key = `persons/${userId}/${fileName}`;\r\n const token = getToken();\r\n const url = POST_FILE_URL\r\n .replace('{token}', token)\r\n .replace('{key}', key);\r\n return new Promise((resolve) => {\r\n axios\r\n .post(url, form)\r\n .then(() => {\r\n resolve({\r\n imageUrl: postFiles(key, token),\r\n relativeUrl: key,\r\n });\r\n });\r\n });\r\n },\r\n};\r\n\r\nexport default ItineraryPassengerSource;\r\n","import axios from 'axios';\r\nimport { parseXmlStringToJson } from \"../../utils/parserUtils\";\r\nimport { WRITE_USER_SETTINGS } from '../../configs/constants';\r\nimport { getToken } from '../../utils/userUtils';\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\nimport {\r\n HTTP_HEADERS_XML,\r\n} from '../../constants/ApiConstants';\r\nimport { TIMEOUT_CODE } from '../../constants/ServerCodeConstants';\r\n\r\nconst options = {\r\n timeout: TIMEOUT_CODE.time,\r\n headers: HTTP_HEADERS_XML,\r\n};\r\nconst status = {\r\n OK: 200,\r\n};\r\nconst UserSettingsSource = {\r\n\r\n writeUserSettings(data) {\r\n return new Promise((resolve, reject) => {\r\n let payload = '' +\r\n '{allsettings}' +\r\n '';\r\n\r\n const basicXml = '' +\r\n '{key}' +\r\n '{values}' +\r\n '';\r\n\r\n let allSettings = '';\r\n\r\n Object.keys(data).forEach((key) => {\r\n allSettings += basicXml.replace('{key}', key).replace('{values}', data[key].join(','));\r\n });\r\n\r\n payload = payload.replace('{allsettings}', allSettings);\r\n\r\n\r\n const url = WRITE_USER_SETTINGS.replace('{token}', getToken());\r\n\r\n axios\r\n .put(url, payload, options)\r\n .then((response) => {\r\n if (response.status !== status.OK) { // error occured\r\n reject(handleServerErrors(response.status));\r\n } else {\r\n const jsonData = parseXmlStringToJson(response.data);\r\n resolve({ searchPax: jsonData.passengerRestDtoes });\r\n }\r\n });\r\n });\r\n },\r\n};\r\n\r\nexport default UserSettingsSource;\r\n","import axios from \"axios\";\r\nimport { USER_REDUCER } from \"../../constants/localStorageKeys\";\r\nimport {\r\n requestFlightInit,\r\n requestFlightSuccess,\r\n requestFlightFail\r\n} from \"../../store/actions/PAFActions\";\r\nimport { REQUEST_FLIGHT_2_0_URL } from \"../../configs/constants\";\r\nimport status from \"../../configs/status\";\r\nimport createGuid from \"../../utils/guidUtils\";\r\nimport { handleServerErrors } from \"../../utils/sourceUtils\";\r\nimport { parseString } from \"../../utils/parserUtils\";\r\nimport {\r\n BAD_REQUEST,\r\n TIMEOUT_CODE,\r\n UNAUTHORIZED,\r\n} from \"../../constants/ServerCodeConstants\";\r\nimport {\r\n normalizeLegStatus,\r\n normalizeFlightLegIdentifiers,\r\n} from \"../../normalizers/PAFNormalizer\";\r\nimport { isBroker, isSimulateUser } from \"../../utils/userUtils\";\r\nimport { fetchOrderIdByLeg, startedUpdatingPassenger, finishedUpdatingPassenger } from \"../actions\";\r\nimport Source from './ItineraryPassengerSource';\r\nimport SettingsSource from './UserSettingsSource';\r\nimport { getFromLocal, saveToLocal } from \"../../utils/cache\";\r\nimport { guaranteeArray } from \"../../utils/arrayUtils\";\r\nimport { mergePassportbyPax } from '../../utils/passportUtils';\r\nimport { clone } from '../../utils/Helpers';\r\nimport { generateFrequentPaxList } from '../../utils/passengerUtils';\r\n\r\nconst dispatchPassengerEdit = (passengerInfo) => dispatch => {\r\n dispatch(startedUpdatingPassenger());\r\n (Object.keys(passengerInfo) || {}).forEach(id => {\r\n const { params, addedPax, passengerId } = passengerInfo[id];\r\n Source.managePassengers(params, addedPax, passengerId)\r\n .then(() => {\r\n const settingsInfo = { frequentPax: generateFrequentPaxList(addedPax) };\r\n SettingsSource.writeUserSettings(settingsInfo).then(() => {\r\n const paxToCache = addedPax.map((passengerParam) => {\r\n const passenger = clone(passengerParam);\r\n passenger.leadPassenger = false;\r\n (passenger.passports || []).forEach((passport) => {\r\n passport.isLegPassport = false; // eslint-disable-line no-param-reassign\r\n passport.isUpdated = false; // eslint-disable-line no-param-reassign\r\n });\r\n return passenger;\r\n });\r\n let freqPax = getFromLocal('frequentPax', true);\r\n freqPax = guaranteeArray(freqPax);\r\n const mergePax = mergePassportbyPax(freqPax, paxToCache);\r\n saveToLocal('frequentPax', mergePax, true);\r\n dispatch(finishedUpdatingPassenger());\r\n });\r\n })\r\n .catch(() => { });\r\n });\r\n}\r\n\r\n\r\nconst planFSPFlights = (legs, accountId, isEdit = false, order = {}, passengers = {}) => dispatch => {\r\n dispatch(requestFlightInit());\r\n\r\n const { user } = getFromLocal(USER_REDUCER, true, true);\r\n const token = user.userToken;\r\n const orderExtIdentifier = createGuid();\r\n const broker = isBroker(user) || isSimulateUser(user);\r\n let contactXml = '';\r\n\r\n if (broker) {\r\n const {\r\n firstName,\r\n lastName,\r\n username,\r\n personPhoneNumbers,\r\n phoneNumber\r\n } = user;\r\n const number = personPhoneNumbers\r\n ? personPhoneNumbers.phoneNumber\r\n : phoneNumber;\r\n contactXml = '' +\r\n `${firstName}` +\r\n `${lastName}` +\r\n `${username}` +\r\n `${number || ''}` +\r\n '';\r\n }\r\n\r\n const orderXml =\r\n \"\" +\r\n (isEdit ? ('{orderId}'\r\n + `{orderExtIdentifier}`)\r\n : `${orderExtIdentifier}`) +\r\n (broker ? contactXml : '') +\r\n `${accountId}` +\r\n \"\" +\r\n \"{flightLegs}\" +\r\n \"\" +\r\n \"\";\r\n\r\n const legsXml =\r\n \"\" +\r\n \"{isCancelled}\" +\r\n (isEdit ? '{legId}' : '') +\r\n \"{flightLegExtIdentifier}\" +\r\n \"\" +\r\n \"{departureAirportId}\" +\r\n \"{arrivalAirportId}\" +\r\n \"{numberOfPassenger}\" +\r\n \"{requestedAircraftTypeId}\" +\r\n \"\" +\r\n \"{aircraftType}\" +\r\n \"{requestedAircraftTypeName}\" +\r\n \"\" +\r\n \"{departureTime}\" +\r\n \"{version}\" +\r\n \"{arrivalTime}\" +\r\n \"\";\r\n\r\n const options = {\r\n headers: {\r\n \"Content-Type\": \"application/xml\"\r\n }\r\n };\r\n\r\n let totalLegs = \"\";\r\n let flightLeg = \"\";\r\n legs.forEach(leg => {\r\n const {\r\n guid,\r\n departureAirport,\r\n arrivalAirport,\r\n passengersCount,\r\n selectedAircraft,\r\n departTime,\r\n arrivalTime,\r\n legId,\r\n flightLegExtIdentifier,\r\n version\r\n } = leg;\r\n const { id, displayName, code } = selectedAircraft;\r\n flightLeg = legsXml\r\n .replace(\"{isCancelled}\", \"false\")\r\n .replace(\"{departureAirportId}\", departureAirport.id)\r\n .replace(\"{arrivalAirportId}\", arrivalAirport.id)\r\n .replace(\"{numberOfPassenger}\", passengersCount)\r\n .replace(\"{aircraftType}\", code)\r\n .replace(\"{requestedAircraftTypeId}\", id)\r\n .replace(\"{departureTime}\", departTime)\r\n .replace(\"{arrivalTime}\", arrivalTime);\r\n\r\n if (isEdit) {\r\n flightLeg = flightLeg\r\n .replace('{flightLegExtIdentifier}', flightLegExtIdentifier || guid)\r\n .replace(\"{requestedAircraftTypeName}\", code)\r\n .replace('{legId}', legId || '')\r\n .replace('{version}', version);\r\n }\r\n else {\r\n flightLeg = flightLeg\r\n .replace(\"{requestedAircraftTypeName}\", displayName)\r\n .replace(\"{flightLegExtIdentifier}\", guid)\r\n .replace('{version}', '0'); //0 for insertion\r\n }\r\n totalLegs += flightLeg;\r\n });\r\n\r\n let payload = orderXml.replace(\"{flightLegs}\", totalLegs);\r\n if (isEdit) {\r\n payload = payload\r\n .replace('{orderExtIdentifier}', order.orderExtIdentifier || '')\r\n .replace('{orderId}', order.orderId || '')\r\n }\r\n\r\n axios\r\n .post(REQUEST_FLIGHT_2_0_URL.replace(\"{token}\", token), payload, options)\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n parseString(response.data, (parseErr, result) => {\r\n if (parseErr) {\r\n dispatch(requestFlightFail(handleServerErrors(BAD_REQUEST)));\r\n } else if (result.ResponseBody.responseHeader.isError) {\r\n const error = result.ResponseBody.responseHeader;\r\n dispatch(requestFlightFail(handleServerErrors(error.statusCode)));\r\n } else {\r\n const flightDetails = normalizeFlightLegIdentifiers(\r\n result.ResponseBody.flightLegs\r\n );\r\n if (!isEdit) {\r\n dispatch(fetchOrderIdByLeg('flightLegExtIdentifier', flightDetails[0]));\r\n }\r\n if (Object.keys(passengers).length) {\r\n dispatch(dispatchPassengerEdit(passengers));\r\n }\r\n dispatch(\r\n requestFlightSuccess({\r\n flightDetails,\r\n legArray: legs,\r\n status: normalizeLegStatus(result.ResponseBody.flightLegs),\r\n })\r\n );\r\n }\r\n });\r\n } else {\r\n dispatch(requestFlightFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(requestFlightFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else if (!err.status) {\r\n dispatch(requestFlightFail(handleServerErrors()));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(requestFlightFail(handleServerErrors(UNAUTHORIZED)));\r\n } else {\r\n parseString(err.response.text, (error, result) => {\r\n if (error) {\r\n dispatch(requestFlightFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n else if (result.error.code) {\r\n dispatch(requestFlightFail(handleServerErrors(result.error.code)));\r\n } else {\r\n dispatch(requestFlightFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n });\r\n }\r\n });\r\n};\r\n\r\nexport default planFSPFlights;\r\n","import requestFSPFlights from \"../sources/PAFSource\";\r\nimport {\r\n CHECK_CONTRACT_SELECTED,\r\n UPDATE_CONTRACT_SELECTED,\r\n UPDATE_DEPARTURE_AIRPORT,\r\n UPDATE_ARRIVAL_AIRPORT,\r\n UPDATE_DATE,\r\n UPDATE_AIRCRAFT,\r\n UPDATE_PASSENGERS_COUNT,\r\n UPDATE_DURATION,\r\n UPDATE_TIME,\r\n ADD_LEG,\r\n UPDATE_ESTIMATE_TIME,\r\n REQUEST_FLIGHT_INIT,\r\n REQUEST_FLIGHT_SUCCESS,\r\n REQUEST_FLIGHT_FAIL\r\n} from \"../actionTypes\";\r\n\r\nexport const requestFlightInit = () => ({\r\n type: REQUEST_FLIGHT_INIT\r\n});\r\n\r\nexport const requestFlightSuccess = data => ({\r\n type: REQUEST_FLIGHT_SUCCESS,\r\n data\r\n});\r\n\r\nexport const requestFlightFail = data => ({\r\n type: REQUEST_FLIGHT_FAIL,\r\n data\r\n});\r\n\r\nexport const requestAllFSPFlights = (flightLegs, accountId, isEdit, order,passengers) =>\r\n requestFSPFlights(flightLegs, accountId, isEdit, order, passengers);\r\n\r\nexport const checkContractSelected = data => ({\r\n type: CHECK_CONTRACT_SELECTED,\r\n data\r\n});\r\n\r\nexport const updateContractSelected = accountId => ({\r\n type: UPDATE_CONTRACT_SELECTED,\r\n data: accountId\r\n});\r\n\r\nexport const updateDepartureAirport = departure => ({\r\n type: UPDATE_DEPARTURE_AIRPORT,\r\n data: departure\r\n});\r\n\r\nexport const updateArrivalAirport = arrival => ({\r\n type: UPDATE_ARRIVAL_AIRPORT,\r\n data: arrival\r\n});\r\n\r\nexport const updateDate = dateDetails => {\r\n return { type: UPDATE_DATE, data: dateDetails };\r\n};\r\n\r\nexport const updateSelectedAircraft = selectedAircraftDetails => {\r\n return { type: UPDATE_AIRCRAFT, data: selectedAircraftDetails };\r\n};\r\n\r\nexport const updatePassengersCounter = updatePassengersCount => {\r\n return { type: UPDATE_PASSENGERS_COUNT, data: updatePassengersCount };\r\n};\r\n\r\nexport const updateDuration = legIndex => {\r\n return {\r\n type: UPDATE_DURATION,\r\n data: legIndex\r\n };\r\n};\r\n\r\nexport const updateTime = updateTime => {\r\n return {\r\n type: UPDATE_TIME,\r\n data: updateTime\r\n };\r\n};\r\nexport const updateEstimateTime = timeObject => {\r\n return {\r\n type: UPDATE_ESTIMATE_TIME,\r\n data: timeObject\r\n };\r\n};\r\nexport const addLeg = () => {\r\n return {\r\n type: ADD_LEG\r\n };\r\n};\r\n","import { guaranteeArray } from \"../utils/arrayUtils\";\r\n\r\nexport function normalizeRestrictions(restrictions) {\r\n const data = [];\r\n const restriction = guaranteeArray(restrictions.restriction);\r\n restriction.forEach((rest) => {\r\n data.push(rest.description);\r\n });\r\n return data;\r\n}\r\n\r\nexport function normalizeProposals(proposals) {\r\n const changes = [];\r\n const proposal = guaranteeArray(proposals.proposal);\r\n proposal.forEach((prop) => {\r\n changes.push(prop.description);\r\n });\r\n return changes;\r\n}\r\n\r\nexport function normalizeValidateFlightResponse(response) {\r\n const data = [];\r\n const legs = guaranteeArray(response.flightLegs.flightLeg);\r\n legs.forEach((leg) => {\r\n const {\r\n flightLegId, introductionToSuggestion, restrictions, proposals,\r\n } = leg;\r\n const errors = {\r\n flightLegId: +flightLegId,\r\n introductionToSuggestion: introductionToSuggestion ? introductionToSuggestion : '',\r\n restrictions: restrictions ? normalizeRestrictions(restrictions) : [],\r\n proposals: proposals ? normalizeProposals(proposals) : [],\r\n };\r\n data.push(errors);\r\n });\r\n return data;\r\n}\r\n","import axios from \"axios\";\r\nimport { jsonToXml, parseString } from \"utils/parserUtils\";\r\nimport { getFromLocal } from '../../utils/cache';\r\nimport { USER_REDUCER } from \"../../constants/localStorageKeys\";\r\nimport { VALIDATE_FLIGHT_URL } from \"../../configs/constants\";\r\nimport {\r\n validateFlightInit,\r\n validateFlightSuccess,\r\n validateFlightFail,\r\n availOfferQuote,\r\n} from \"../actions\";\r\nimport moment from \"moment\";\r\nimport status from \"configs/status\";\r\nimport { normalizeValidateFlightResponse } from \"normalizers/validateFlightNormalizer\";\r\nimport { requestAllFSPFlights } from \"store/actions/PAFActions\";\r\nimport { handleServerErrors } from \"utils/sourceUtils\";\r\nimport { BAD_REQUEST, TIMEOUT_CODE } from \"constants/ServerCodeConstants\";\r\nimport { dateFormats } from \"utils/dateUtils\";\r\n\r\nconst payloadFSP = (legs, offer) =>\r\n legs.map((leg, key) => {\r\n const {\r\n departureAirport,\r\n arrivalAirport,\r\n departTime,\r\n arrivalTime,\r\n selectedAircraft,\r\n passengersCount\r\n } = leg;\r\n const flightLeg = {\r\n flightLegId: key + 1,\r\n departureAirportId: departureAirport.id,\r\n arrivalAirportId: arrivalAirport.id,\r\n departureTime: moment(departTime)\r\n .utc()\r\n .format(dateFormats.YYYY_MM_DD_WITH_TIME),\r\n arrivalTime: moment(arrivalTime)\r\n .utc()\r\n .format(dateFormats.YYYY_MM_DD_WITH_TIME),\r\n requestedAircraftTypeId: selectedAircraft.id,\r\n numberOfPassenger: passengersCount\r\n };\r\n if (offer) {\r\n flightLeg.requestedAircraftId = leg.aircraftId;\r\n flightLeg.requestedAircraftTailNumber = leg.tailNumber;\r\n }\r\n return flightLeg;\r\n });\r\n\r\nconst validateFlights = (flightLegs, accountId, offer = false, isEdit = false, order = {}, passengers = {}) => dispatch => {\r\n dispatch(validateFlightInit());\r\n\r\n const { user } = getFromLocal(USER_REDUCER, true, true);\r\n const token = user.userToken;\r\n\r\n const options = {\r\n headers: {\r\n \"Content-Type\": \"application/xml\"\r\n },\r\n timeout: 40000,\r\n };\r\n const requestPayload = jsonToXml({\r\n flightValidationRequestDto: {\r\n flightLegs: {\r\n flightLeg: flightLegs && payloadFSP(flightLegs, offer)\r\n }\r\n }\r\n });\r\n\r\n axios\r\n .post(\r\n VALIDATE_FLIGHT_URL.replace(\"{token}\", token),\r\n requestPayload,\r\n options\r\n )\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n parseString(response.data, (parseErr, result) => {\r\n if (parseErr) {\r\n dispatch(validateFlightFail(handleServerErrors(BAD_REQUEST)));\r\n } else if (result.validateFlightResponseDto.responseHeader.isError) {\r\n const error = result.validateFlightResponseDto.responseHeader;\r\n dispatch(validateFlightFail(handleServerErrors(error.statusCode)));\r\n } else if (result.validateFlightResponseDto.responseHeader.statusCode === 0) {\r\n dispatch(validateFlightSuccess());\r\n offer ? dispatch(availOfferQuote(flightLegs, user))\r\n : dispatch(requestAllFSPFlights(flightLegs, accountId, isEdit, order, passengers));\r\n } else {\r\n const responseBody = result.validateFlightResponseDto.responseBody;\r\n dispatch(validateFlightFail(normalizeValidateFlightResponse(responseBody)));\r\n }\r\n });\r\n } else {\r\n dispatch(validateFlightFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(validateFlightFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else dispatch(validateFlightFail(handleServerErrors(BAD_REQUEST)));\r\n });\r\n};\r\n\r\nexport default validateFlights;\r\n","import validateFlights from '../sources/ValidateFlightSource';\r\nimport {\r\n VALIDATE_FLIGHT_INIT,\r\n VALIDATE_FLIGHT_SUCCESS,\r\n VALIDATE_FLIGHT_FAIL,\r\n RESET_FLIGHT_ERROR_MESSAGES\r\n} from '../actionTypes';\r\n\r\nexport const validateFlightInit = () => ({\r\n type: VALIDATE_FLIGHT_INIT,\r\n});\r\n\r\nexport const validateFlightSuccess = () => ({\r\n type: VALIDATE_FLIGHT_SUCCESS,\r\n});\r\n\r\nexport const validateFlightFail = data => ({\r\n type: VALIDATE_FLIGHT_FAIL,\r\n data,\r\n});\r\n\r\nexport const resetFlightErrorMessages = () => ({\r\n type:RESET_FLIGHT_ERROR_MESSAGES\r\n})\r\n\r\nexport const validateAllFlights = (flightLegs, accountId, offer, isEdit, order, passengers) =>\r\n validateFlights(flightLegs, accountId, offer, isEdit, order, passengers);\r\n","import axios from 'axios';\r\nimport normalizeAccountStatus from '../../normalizers/AccountStatusNormalizer';\r\nimport { // eslint-disable-line\r\n getAccountStatusInit,\r\n getAccountStatusSuccess,\r\n getAccountStatusFail,\r\n} from '../actions/AccountStatusActions';\r\nimport {\r\n logoutAction,\r\n} from '../actions';\r\n\r\nimport {\r\n REGISTER_URL,\r\n CONTEXT,\r\n APP_SOURCE,\r\n ACCOUNT_MEMBERSHIP_STATUS,\r\n} from '../../configs/constants';\r\n\r\n// import {\r\n// HTTP_HEADERS_JSON,\r\n// } from '../constants/ApiConstants';\r\n\r\nimport {\r\n handleServerErrors,\r\n parseString,\r\n} from '../../utils/sourceUtils';\r\n\r\nimport {\r\n guaranteeArray,\r\n} from '../../utils/arrayUtils';\r\nimport { saveToLocal, existInLocal, getFromLocal } from '../../utils/cache';\r\n\r\nconst accountStatusInProgress = {};\r\n\r\nconst getAccountStatusSource = (token = 'undefined') => (dispatch) => {\r\n const uniqueKey = `${token}-${CONTEXT}`;\r\n if (accountStatusInProgress[uniqueKey]) {\r\n return accountStatusInProgress[uniqueKey];\r\n }\r\n\r\n const getAccountStatusPromise = new Promise((resolve, reject) => {\r\n const url = ACCOUNT_MEMBERSHIP_STATUS\r\n .replace('{context}', CONTEXT)\r\n .replace('{token}', token);\r\n dispatch(getAccountStatusInit());\r\n axios\r\n .get(url)\r\n .then((res) => {\r\n let user;\r\n if (existInLocal('user')) {\r\n user = getFromLocal('user', true, true);\r\n }\r\n if (\r\n res\r\n && res.data.responseHeaderDto\r\n && res.data.responseHeaderDto.isError) {\r\n const errors = handleServerErrors(res.data.responseHeaderDto.statusCode);\r\n dispatch(getAccountStatusFail(errors));\r\n user.isAccountDataFetched = false;\r\n saveToLocal(user, 'user', true, true);\r\n if (\r\n user &&\r\n user.isLoggedIn &&\r\n res.data.responseHeaderDto.statusCode &&\r\n res.data.responseHeaderDto.statusCode === 17\r\n ) {\r\n dispatch(logoutAction(token));\r\n }\r\n reject(errors);\r\n } else {\r\n const normalizedAccountStatus = normalizeAccountStatus(\r\n res.data.accountStatusDto\r\n && res.data.accountStatusDto.user || {},\r\n );\r\n dispatch(getAccountStatusSuccess(normalizedAccountStatus));\r\n const userObj = { ...user.user, ...normalizedAccountStatus };\r\n user.user = userObj;\r\n user.isAccountDataFetched = true;\r\n saveToLocal(user, 'user', true, true);\r\n resolve(normalizedAccountStatus);\r\n }\r\n delete accountStatusInProgress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n let user;\r\n if (existInLocal('user')) {\r\n user = getFromLocal('user', true, true);\r\n }\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(getAccountStatusFail(errors));\r\n user.isAccountDataFetched = false;\r\n saveToLocal(user, 'user', true, true);\r\n reject(errors);\r\n delete accountStatusInProgress[uniqueKey];\r\n });\r\n });\r\n accountStatusInProgress[uniqueKey] = getAccountStatusPromise;\r\n return getAccountStatusPromise;\r\n};\r\n\r\nexport default getAccountStatusSource;\r\n","import {\r\n hasVjDirectAccount,\r\n accountMembershipStatus,\r\n membershipType,\r\n accessType,\r\n normalizePhoneNumber,\r\n} from '../utils/sourceUtils';\r\nimport { normalizePassports } from '../utils/passportUtils';\r\n\r\nexport default function normalizeAccountStatus(user) {\r\n const {\r\n addressSaved,\r\n baseCompanyEmail,\r\n baseCompanyNumber,\r\n customerId,\r\n enabled,\r\n firstName,\r\n gender,\r\n genderId,\r\n id,\r\n isChangedPassword,\r\n lastName,\r\n personId,\r\n username,\r\n salutation,\r\n verificationStatusCode,\r\n verificationStatusDescription,\r\n accounts,\r\n personPhoneNumbers,\r\n userPreferences,\r\n imageURL,\r\n dateOfBirth,\r\n passport,\r\n canAccessStatement,\r\n } = user;\r\n return {\r\n addressSaved,\r\n baseCompanyEmail,\r\n baseCompanyNumber,\r\n customerId,\r\n enabled,\r\n firstName,\r\n gender,\r\n genderId,\r\n id,\r\n isChangedPassword,\r\n lastName,\r\n personId,\r\n username,\r\n salutation,\r\n verificationStatusCode,\r\n verificationStatusDescription,\r\n accounts,\r\n canAccessStatement,\r\n accessType: accounts && accessType(accounts) || 0,\r\n membershipTypeId: accounts && membershipType(accounts) || '',\r\n membershipStatus: accounts && accountMembershipStatus(accounts) || '',\r\n hasVjDirectAccount: accounts && hasVjDirectAccount(accounts) || '',\r\n personPhoneNumbers: personPhoneNumbers && personPhoneNumbers.length &&\r\n normalizePhoneNumber(personPhoneNumbers[0]),\r\n userPreferences,\r\n imageURL,\r\n dateOfBirth,\r\n passports: normalizePassports(passport),\r\n };\r\n};\r\n","import getAccountStatusSource from '../sources/AccountStatusSource'; // eslint-disable-line\r\nimport * as types from '../actionTypes';\r\n\r\nexport const getAccountStatusInit = () => ({\r\n type: types.GET_ACCOUNT_STATUS_INIT,\r\n});\r\n\r\nexport const getAccountStatusSuccess = data => ({\r\n type: types.GET_ACCOUNT_STATUS_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const getAccountStatusFail = data => ({\r\n type: types.GET_ACCOUNT_STATUS_FAILURE,\r\n data,\r\n});\r\n\r\nexport const getAccountStatusAction = token => getAccountStatusSource(token);\r\n","export function normalizeCreditCard({\r\n alias,\r\n cardBrandId,\r\n cardNumberLastFour,\r\n isDefault,\r\n type,\r\n ...other\r\n}) {\r\n return {\r\n alias,\r\n cardBrandId,\r\n cardNumberLastFour,\r\n isDefault: isDefault == '1',\r\n type,\r\n ...other,\r\n };\r\n}\r\n\r\nexport function normalizeMultipleCreditCards(creditCards) {\r\n return creditCards.reduce((previous, current) => {\r\n const prev = previous;\r\n const creditCard = normalizeCreditCard(current);\r\n prev.ids.push(creditCard.alias);\r\n prev.content[creditCard.alias] = creditCard;\r\n if (!prev.defaultId && creditCard.isDefault) {\r\n prev.defaultId = creditCard.alias;\r\n }\r\n return prev;\r\n }, {\r\n ids: [],\r\n content: {},\r\n defaultId: undefined,\r\n });\r\n}\r\n","import axios from 'axios';\r\nimport {\r\n addCreditCardInit,\r\n addCreditCardSuccess,\r\n addCreditCardFail,\r\n getCreditCardListInit,\r\n getCreditCardListSuccess,\r\n getCreditCardListFail,\r\n updateCreditCardSuccess,\r\n deleteCreditCardInit,\r\n deleteCreditCardSuccess,\r\n deleteCreditCardFailure,\r\n} from '../actions';\r\nimport {\r\n ADD_CREDIT_CARD_URL, GET_CREDIT_CARD_LIST_URL, DELETE_CREDIT_CARD_URL,\r\n} from '../../configs/constants';\r\nimport { CREDIT_CARD_MESSAGE } from '../../constants/MessageConstants';\r\nimport { HTTP_HEADERS_XML } from '../../constants/ApiConstants';\r\nimport { handleServerErrors } from '../../utils/sourceUtils';\r\nimport { normalizeMultipleCreditCards, normalizeCreditCard } from '../../normalizers/creditCardNormalizer';\r\nimport { builderXmlRequest, parserPascalCaseIgnoreNumber, parseString } from '../../utils/parserUtils';\r\nimport status from '../../configs/status';\r\nimport { guaranteeArray } from '../../utils/arrayUtils';\r\nimport { BAD_REQUEST, TIMEOUT_CODE } from '../../constants/ServerCodeConstants';\r\nimport { getFromLocal } from '../../utils/cache';\r\nimport { USER_REDUCER } from '../../constants/localStorageKeys';\r\n\r\nexport const AddCreditCardSource = (token, creditCardPayload) => (dispatch) => {\r\n return new Promise((resolve, reject) => {\r\n dispatch(addCreditCardInit());\r\n const {\r\n alias,\r\n creditCardNumber,\r\n expiryDate,\r\n cvv,\r\n defaultChecked,\r\n type,\r\n } = creditCardPayload;\r\n\r\n const creditCardRequestDto = {\r\n type,\r\n isDefault: defaultChecked ? 1 : 0,\r\n };\r\n\r\n if (alias) creditCardRequestDto.alias = alias;\r\n if (creditCardNumber) creditCardRequestDto.creditCardNumber = creditCardNumber;\r\n // if (nameOnTheCard) creditCardRequestDto.nameOnTheCard = nameOnTheCard;\r\n if (expiryDate) creditCardRequestDto.expiryDate = expiryDate;\r\n if (cvv) creditCardRequestDto.cvv = cvv;\r\n\r\n const payload = builderXmlRequest({\r\n creditCardRequestDto,\r\n });\r\n\r\n axios\r\n .post(\r\n ADD_CREDIT_CARD_URL.replace('{token}', token),\r\n payload,\r\n {\r\n headers: HTTP_HEADERS_XML,\r\n },\r\n )\r\n .then((res) => {\r\n parserPascalCaseIgnoreNumber(res.data, (error, result) => {\r\n if (error) {\r\n const errors = handleServerErrors(null);\r\n dispatch(addCreditCardFail(errors));\r\n reject(errors);\r\n } else {\r\n const {\r\n responseHeader,\r\n ...creditCard\r\n } = result.creditCardResponseDto;\r\n if (responseHeader && responseHeader.isError) {\r\n const {\r\n statusCode,\r\n message,\r\n } = responseHeader;\r\n if (statusCode == 1) { // API sends same code with different message\r\n dispatch(addCreditCardFail(message));\r\n reject(message);\r\n } else {\r\n const errors = handleServerErrors(statusCode);\r\n dispatch(addCreditCardFail(errors));\r\n reject(errors);\r\n }\r\n } else {\r\n const normalizedCreditCardResponse = normalizeCreditCard(creditCard);\r\n let message = CREDIT_CARD_MESSAGE[normalizedCreditCardResponse.cardBrandId];\r\n if (creditCardPayload.isEdit) {\r\n if (creditCardPayload.isSetDefault) {\r\n message = `${message}${normalizedCreditCardResponse.cardNumberLastFour} is now your default credit card`;\r\n } else {\r\n message = `${message}${normalizedCreditCardResponse.cardNumberLastFour} has been updated`;\r\n }\r\n dispatch(updateCreditCardSuccess({\r\n response: normalizedCreditCardResponse,\r\n message,\r\n }));\r\n } else {\r\n message = `${message}${normalizedCreditCardResponse.cardNumberLastFour} has been created`;\r\n dispatch(addCreditCardSuccess({\r\n response: normalizedCreditCardResponse,\r\n message,\r\n }));\r\n }\r\n resolve(normalizedCreditCardResponse);\r\n }\r\n }\r\n });\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(addCreditCardFail(errors));\r\n reject(errors);\r\n });\r\n });\r\n};\r\n\r\nexport const getCreditCardList = () => (dispatch) => {\r\n return new Promise((resolve, reject) => {\r\n dispatch(getCreditCardListInit());\r\n const { user } = getFromLocal(USER_REDUCER, true, true);\r\n const token = user.userToken;\r\n const options = {\r\n headers: {\r\n \"Content-Type\": \"application/xml\"\r\n },\r\n timeout: TIMEOUT_CODE.time\r\n };\r\n axios\r\n .get(GET_CREDIT_CARD_LIST_URL.replace('{token}', token), options)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n parseString(response.data, (parseErr, result) => {\r\n if (parseErr) {\r\n dispatch(getCreditCardListFail(handleServerErrors(BAD_REQUEST)));\r\n reject(handleServerErrors(BAD_REQUEST));\r\n } else if (result.CreditCardsList.responseHeader.isError) {\r\n const error = result.CreditCardsList.responseHeader;\r\n dispatch(getCreditCardListFail(error.message));\r\n reject(error.message);\r\n } else {\r\n const response = result.CreditCardsList.ResponseBody\r\n ? result.CreditCardsList.ResponseBody.creditCards : {};\r\n const normalizedCreditCards = normalizeMultipleCreditCards(\r\n guaranteeArray(response.creditCard)\r\n );\r\n dispatch(getCreditCardListSuccess(normalizedCreditCards));\r\n resolve(normalizedCreditCards);\r\n }\r\n })\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(getCreditCardListFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n reject(handleServerErrors(TIMEOUT_CODE.code))\r\n } else {\r\n dispatch(getCreditCardListFail(handleServerErrors(BAD_REQUEST)));\r\n reject(handleServerErrors(BAD_REQUEST))\r\n }\r\n });\r\n });\r\n};\r\n\r\nexport const deleteCreditCardSource = (token, creditCardPayload) => (dispatch) => {\r\n return new Promise((resolve, reject) => {\r\n dispatch(deleteCreditCardInit());\r\n const url = DELETE_CREDIT_CARD_URL.replace('{token}', token);\r\n const {\r\n alias,\r\n } = creditCardPayload;\r\n const payload = builderXmlRequest({\r\n creditCardRequestDto: {\r\n alias,\r\n },\r\n });\r\n\r\n axios\r\n .post(\r\n url,\r\n payload,\r\n {\r\n headers: HTTP_HEADERS_XML,\r\n },\r\n )\r\n .then((res) => {\r\n parserPascalCaseIgnoreNumber(res.data, (error, result) => {\r\n if (error) {\r\n const errors = handleServerErrors(null);\r\n dispatch(deleteCreditCardFailure(errors));\r\n reject(errors);\r\n } else {\r\n const {\r\n responseHeaderDto,\r\n } = result.creditCardResponseDto;\r\n\r\n if (responseHeaderDto && responseHeaderDto.isError === true) {\r\n const {\r\n statusCode,\r\n } = responseHeaderDto;\r\n const errors = handleServerErrors(statusCode);\r\n dispatch(deleteCreditCardFailure(errors));\r\n reject(errors);\r\n } else {\r\n let message = CREDIT_CARD_MESSAGE[creditCardPayload.cardBrandId];\r\n message = `${message}${creditCardPayload.cardNumberLastFour} deleted`;\r\n dispatch(deleteCreditCardSuccess({\r\n response: creditCardPayload.alias,\r\n message,\r\n }));\r\n resolve(creditCardPayload.alias);\r\n }\r\n }\r\n });\r\n })\r\n .catch(err => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(addCreditCardFail(errors));\r\n reject(errors);\r\n });\r\n });\r\n};\r\n","import {\r\n AddCreditCardSource,\r\n getCreditCardList,\r\n deleteCreditCardSource,\r\n} from '../sources/CreditCardSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const addCreditCardInit = () => ({\r\n type: types.ADD_CREDIT_CARD_INIT,\r\n});\r\n\r\nexport const addCreditCardSuccess = data => ({\r\n type: types.ADD_CREDIT_CARD_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const updateCreditCardSuccess = data => ({\r\n type: types.UPDATE_CREDIT_CARD_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const addCreditCardFail = data => ({\r\n type: types.ADD_CREDIT_CARD_FAIL,\r\n data,\r\n});\r\n\r\nexport const getCreditCardListInit = () => ({\r\n type: types.GET_CREDIT_CARD_LIST_INIT,\r\n});\r\n\r\nexport const getCreditCardListSuccess = data => ({\r\n type: types.GET_CREDIT_CARD_LIST_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const getCreditCardListFail = data => ({\r\n type: types.GET_CREDIT_CARD_LIST_FAIL,\r\n data,\r\n});\r\n\r\nexport const deleteCreditCardInit = () => ({\r\n type: types.DELETE_CREDIT_CARD_INIT,\r\n});\r\n\r\nexport const deleteCreditCardSuccess = data => ({\r\n type: types.DELETE_CREDIT_CARD_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const deleteCreditCardFailure = data => ({\r\n type: types.DELETE_CREDIT_CARD_FAILURE,\r\n data,\r\n});\r\n\r\nexport const clearCreditCardState = () => ({\r\n type: types.CLEAR_CREDIT_CARD_STATE,\r\n});\r\n\r\nexport const addCreditCardAction = (token, payload) => AddCreditCardSource(token, payload);\r\nexport const getAllCreditCards = () => getCreditCardList();\r\nexport const deleteCreditCardAction = (token, payload) => deleteCreditCardSource(token, payload);\r\n","import axios from 'axios';\r\nimport { // eslint-disable-line\r\n directSignupInit,\r\n directSignupSuccess,\r\n directSignupFail,\r\n} from '../actions';\r\n\r\nimport {\r\n MEMBERSHIP_WITHOUT_CARD_SIGN_UP\r\n} from '../../configs/constants';\r\n\r\nimport {\r\n HTTP_HEADERS_XML,\r\n} from '../../constants/ApiConstants';\r\n\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\n\r\nimport {\r\n directSignupRequestWithoutPaymentNormalizer,\r\n normalizeSignupWithoutCardResponse,\r\n} from '../../normalizers/MemberShipPlansNormalizer';\r\nimport { parseString } from '../../utils/parserUtils';\r\n\r\nconst DirectSignupSource = (\r\n token,\r\n payload,\r\n) => (dispatch) => {\r\n return new Promise((resolve, reject) => {\r\n dispatch(directSignupInit());\r\n const url = MEMBERSHIP_WITHOUT_CARD_SIGN_UP.replace('{token}', token);\r\n const normalizedRequestPayload = directSignupRequestWithoutPaymentNormalizer(payload);\r\n axios\r\n .post(\r\n url,\r\n normalizedRequestPayload,\r\n {\r\n headers: HTTP_HEADERS_XML,\r\n },\r\n )\r\n .then((res) => {\r\n parseString(res.data, (parseErr, result) => {\r\n if (parseErr) {\r\n const errors = handleServerErrors(1);\r\n dispatch(directSignupFail(errors));\r\n reject(errors);\r\n } else if (result.signUpResponseBody) {\r\n const { responseHeader } = result.signUpResponseBody;\r\n if (!responseHeader) {\r\n const errors = handleServerErrors(1);\r\n dispatch(directSignupFail(errors));\r\n reject(errors);\r\n } else if (responseHeader.isError) {\r\n const errors = handleServerErrors(responseHeader.statusCode);\r\n dispatch(directSignupFail(errors));\r\n reject(errors);\r\n } else {\r\n const signUpResponse = result.signUpResponseBody;\r\n const normalizedResponse = normalizeSignupWithoutCardResponse(signUpResponse);\r\n dispatch(directSignupSuccess({\r\n paymentMethodDetails: normalizedResponse,\r\n accountId: signUpResponse.accountId,\r\n }));\r\n resolve(normalizedResponse);\r\n }\r\n }\r\n });\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(directSignupFail(errors));\r\n reject(errors);\r\n });\r\n });\r\n};\r\n\r\nexport default DirectSignupSource;\r\n","import {\r\n guaranteeArray,\r\n} from '../utils/arrayUtils';\r\nimport { normalizePaymentAdditionalCharges } from '../utils/creditCardUtils';\r\nimport { builderXmlRequest } from '../utils/parserUtils';\r\n\r\nexport function normalizeFees(fees) {\r\n return fees && fees.fee;\r\n}\r\n\r\nfunction normalizeMembership(membership) {\r\n return {\r\n additionalCharges: normalizePaymentAdditionalCharges(\r\n guaranteeArray(membership.paymentAdditionalCharges\r\n && membership.paymentAdditionalCharges.paymentAdditionalCharge),\r\n ),\r\n description: membership.description,\r\n id: membership.planId,\r\n name: membership.title,\r\n price: {\r\n amount: membership.price,\r\n currency: membership.currency,\r\n details: normalizeFees(membership.fees),\r\n },\r\n termsAndConditionsId: membership.termsAndConditionsId,\r\n };\r\n}\r\n\r\nexport function normalizeMemberships(membershipList) {\r\n return membershipList && membershipList.map(normalizeMembership).reduce((prev, membership) => {\r\n const previous = prev;\r\n previous.ids.push(membership.id);\r\n previous.content[membership.id] = membership;\r\n return previous;\r\n }, {\r\n ids: [],\r\n content: {},\r\n });\r\n}\r\n\r\nexport function normalizeBankDetails(btResponse) {\r\n return {\r\n to: btResponse.bankDetails.to,\r\n iban: btResponse.bankDetails.iban,\r\n referenceNumber: btResponse.bankDetails.referenceNumber,\r\n bankCode: btResponse.bankDetails.swiftCode || btResponse.bankDetails.bankCode,\r\n bankName: btResponse.bankDetails.bankName,\r\n accountId: btResponse.accountId,\r\n accessType: btResponse.accessTypeId,\r\n statusMembership: btResponse.statusMembership,\r\n membershipTypeId: btResponse.membershipTypeId,\r\n };\r\n}\r\n\r\nexport function normalizeCreditCardDetails(ccResponse) {\r\n const ccDetails = ccResponse.creditCardDetails;\r\n return {\r\n referenceNumber: ccDetails && ccDetails.referenceNumber,\r\n phoneNumber: ccDetails && ccDetails.phoneNumber,\r\n statusMembership: ccResponse.statusMembership,\r\n membershipTypeId: ccResponse.membershipTypeId,\r\n accessType: ccResponse.accessTypeId,\r\n accountId: ccResponse.accountId,\r\n };\r\n}\r\nexport function normalizeSignupWithoutCardResponse(SignUpDto) {\r\n return {\r\n statusMembership: SignUpDto.statusMembership,\r\n accessType: SignUpDto.accessTypeId,\r\n accountId: SignUpDto.accountId,\r\n membershipTypeId: SignUpDto.membershipTypeId,\r\n }\r\n}\r\nexport function directSignupRequestWithoutPaymentNormalizer(SignUpDto) {\r\n return builderXmlRequest({\r\n SignUpDto,\r\n })\r\n}\r\nexport function directSignupRequestNormalizer(\r\n billingAddress,\r\n membershipTypeId,\r\n paymentOptionId,\r\n creditCard,\r\n) {\r\n const {\r\n firstName,\r\n lastName,\r\n country,\r\n city,\r\n state,\r\n postalCode,\r\n address,\r\n vat,\r\n } = billingAddress;\r\n const {\r\n alias,\r\n cvv,\r\n } = creditCard || {};\r\n\r\n return builderXmlRequest({\r\n SignUpDto: {\r\n addressableName: `${firstName} ${lastName}`,\r\n countryCode: country.code,\r\n city,\r\n state,\r\n postCode: postalCode,\r\n vatNumber: vat,\r\n billingAddress: address,\r\n paymentOptionId,\r\n memberShipTypeId: membershipTypeId,\r\n creditCardAlias: alias,\r\n cvvCode: cvv,\r\n },\r\n });\r\n}\r\n","import DirectSignupSource from '../sources/DirectSignupSource'; // eslint-disable-line\r\nimport * as types from '../actionTypes';\r\n\r\nexport const directSignupInit = () => ({\r\n type: types.DIRECT_SIGNUP_INIT,\r\n});\r\n\r\nexport const directSignupSuccess = data => ({\r\n type: types.DIRECT_SIGNUP_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const directSignupFail = data => ({\r\n type: types.DIRECT_SIGNUP_FAIL,\r\n data,\r\n});\r\n\r\nexport const directSignupSourceAction = (token, payload) => DirectSignupSource(token, payload); // eslint-disable-line\r\n","import FetchMembershipSource from '../sources/MembershipPlanSource'; // eslint-disable-line\r\nimport * as types from '../actionTypes';\r\n\r\nexport const fetchMemberShipInit = () => ({\r\n type: types.FETCH_MEMBERSHIP_INIT,\r\n});\r\n\r\nexport const fetchMemberShipSuccess = data => ({\r\n type: types.FETCH_MEMBERSHIP_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchMemberShipFail = data => ({\r\n type: types.FETCH_MEMBERSHIP_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchMembershipPlansAction = token => FetchMembershipSource(token);\r\n","import axios from \"axios\";\r\nimport { parseXmlStringToJson } from \"../../utils/parserUtils\";\r\nimport { getFromLocal, saveToLocal } from \"../../utils/cache\";\r\nimport { USER_REDUCER } from \"../../constants/localStorageKeys\";\r\nimport { USER_ACCESS_TYPES } from \"../../constants/UserAccessTypes\";\r\nimport { MEMBERSHIP_STATUS } from \"../../constants/MembershipConstants\";\r\nimport {\r\n requestQuoteInit,\r\n requestQuoteSuccess,\r\n requestQuoteFail,\r\n createCompanyInit,\r\n createCompanySuccess,\r\n createCompanyFail,\r\n updateUserCreateCompany,\r\n logoutAction\r\n} from \"../actions\";\r\nimport { REQUEST_QUOTE_URL, CREATE_COMPANY_URL } from \"../../configs/constants\";\r\nimport status from \"../../configs/status\";\r\nimport createGuid from \"../../utils/guidUtils\";\r\nimport { handleServerErrors } from \"../../utils/sourceUtils\";\r\nimport {\r\n UNAUTHORIZED,\r\n BAD_REQUEST,\r\n TIMEOUT_CODE,\r\n INTERNAL_SERVER_ERROR\r\n} from \"../../constants/ServerCodeConstants\";\r\nimport { parseString } from \"../../utils/parserUtils\";\r\nimport { guaranteeArray } from \"../../utils/arrayUtils\";\r\nimport { mapLegStatus } from \"../../utils/PAFUtils\";\r\n\r\nexport const requestQuote = (legs = [], userInfo) => dispatch => {\r\n dispatch(requestQuoteInit());\r\n\r\n const { user } = getFromLocal(USER_REDUCER, true, true);\r\n const token = user.userToken;\r\n\r\n let orderExtIdentifier = \"\";\r\n if (legs && legs[0] && legs[0].orderExtIdentifier) {\r\n let { orderExtIdentifier: orderId } = legs[0];\r\n orderExtIdentifier = orderId;\r\n } else {\r\n orderExtIdentifier = createGuid();\r\n }\r\n const accountId = userInfo.accounts && userInfo.accounts[0].id;\r\n const { parentQuoteId } = legs[0];\r\n\r\n let orderXml =\r\n \"\" +\r\n `${orderExtIdentifier}` +\r\n (parentQuoteId ? `${parentQuoteId}` : '') +\r\n `${accountId}` +\r\n \"{contactInfo}\" +\r\n \"\" +\r\n \"{flightLegs}\" +\r\n \"\" +\r\n \"\";\r\n\r\n const legsXml =\r\n \"\" +\r\n \"{isCancelled}\" +\r\n \"{flightLegExtIdentifier}\" +\r\n \"\" +\r\n \"{departureAirportId}\" +\r\n \"{arrivalAirportId}\" +\r\n \"{numberOfPassenger}\" +\r\n \"{requestedAircraftTypeId}\" +\r\n \"\" +\r\n \"{aircraftType}\" +\r\n \"{requestedAircraftTypeName}\" +\r\n \"\" +\r\n \"{departureTime}\" +\r\n \"{version}\" +\r\n \"{arrivalTime}\" +\r\n \"\";\r\n\r\n let contactXml =\r\n \"\" +\r\n \"{userFirstName}\" +\r\n \"{userLastName}\" +\r\n \"{userEmail}\" +\r\n \"{userPhoneNumber}\" +\r\n \"\";\r\n\r\n const {\r\n firstName,\r\n lastName,\r\n username,\r\n personPhoneNumbers,\r\n phoneNumber\r\n } = userInfo;\r\n const number = personPhoneNumbers\r\n ? personPhoneNumbers.phoneNumber\r\n : phoneNumber;\r\n contactXml = contactXml\r\n .replace(\"{userFirstName}\", firstName)\r\n .replace(\"{userLastName}\", lastName)\r\n .replace(\"{userEmail}\", username)\r\n .replace(\"{userPhoneNumber}\", number || \"\");\r\n\r\n orderXml = orderXml.replace(\"{contactInfo}\", contactXml);\r\n\r\n const options = {\r\n headers: {\r\n \"Content-Type\": \"application/xml\"\r\n },\r\n };\r\n\r\n let totalLegs = \"\";\r\n let flightLeg = \"\";\r\n legs.forEach(leg => {\r\n const {\r\n guid,\r\n departureAirport,\r\n arrivalAirport,\r\n passengersCount,\r\n selectedAircraft,\r\n departTime,\r\n arrivalTime\r\n } = leg;\r\n const { id, displayName, code } = selectedAircraft;\r\n flightLeg = legsXml\r\n .replace(\"{isCancelled}\", \"false\")\r\n .replace(\"{flightLegExtIdentifier}\", guid)\r\n .replace(\"{departureAirportId}\", departureAirport.id)\r\n .replace(\"{arrivalAirportId}\", arrivalAirport.id)\r\n .replace(\"{numberOfPassenger}\", passengersCount)\r\n .replace(\"{aircraftType}\", code)\r\n .replace(\"{requestedAircraftTypeId}\", id)\r\n .replace(\"{requestedAircraftTypeName}\", displayName)\r\n .replace(\"{departureTime}\", departTime)\r\n .replace(\"{arrivalTime}\", arrivalTime)\r\n .replace(\"{version}\", \"0\"); // 0 for insertion\r\n\r\n totalLegs += flightLeg;\r\n });\r\n\r\n const payload = orderXml.replace(\"{flightLegs}\", totalLegs);\r\n\r\n axios\r\n .post(REQUEST_QUOTE_URL.replace(\"{token}\", token), payload, options)\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n parseString(response.data, (parseErr, result) => {\r\n if (parseErr) {\r\n dispatch(requestQuoteFail(handleServerErrors(BAD_REQUEST)));\r\n } else if (result.responseBody.responseHeader.isError) {\r\n const error = result.responseBody.responseHeader;\r\n dispatch(requestQuoteFail(handleServerErrors(error.statusCode)));\r\n } else {\r\n const flightLeg = guaranteeArray(\r\n result.responseBody.flightLegs.flightLeg\r\n );\r\n const status = mapLegStatus(flightLeg[0].legStatus);\r\n dispatch(requestQuoteSuccess({ status, legs }));\r\n }\r\n });\r\n } else {\r\n dispatch(requestQuoteFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n })\r\n .catch(err => {\r\n if (!err.status) {\r\n dispatch(requestQuoteFail(handleServerErrors()));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(requestQuoteFail(handleServerErrors(UNAUTHORIZED)));\r\n dispatch(logoutAction(token));\r\n } else {\r\n const jsonData = parseXmlStringToJson(err.response.text);\r\n if (!!jsonData && +jsonData.error.code[0]) {\r\n dispatch(\r\n requestQuoteFail(handleServerErrors(+jsonData.error.code[0]))\r\n );\r\n } else {\r\n dispatch(requestQuoteFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n }\r\n });\r\n};\r\n\r\nexport const createCompany = legs => dispatch => {\r\n dispatch(createCompanyInit());\r\n\r\n const { user } = getFromLocal(USER_REDUCER, true, true);\r\n const token = user.userToken;\r\n\r\n const options = {\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n }\r\n };\r\n\r\n axios\r\n .post(CREATE_COMPANY_URL.replace(\"{token}\", token), options)\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n const { data } = response;\r\n if (data && data.responseHeaderDto && data.responseHeaderDto.isError) {\r\n const error = handleServerErrors(data.responseHeaderDto.statusCode);\r\n dispatch(createCompanyFail(error));\r\n } else {\r\n const { user } = data.accountStatusDto;\r\n dispatch(createCompanySuccess());\r\n let userInfo = getFromLocal(USER_REDUCER, true, true);\r\n let updatedUser = { ...userInfo.user, ...user };\r\n updatedUser.accessType = USER_ACCESS_TYPES.MEMBER;\r\n updatedUser.membershipStatus = MEMBERSHIP_STATUS.ADHOC\r\n updatedUser.membershipTypeId = MEMBERSHIP_STATUS.ADHOC\r\n userInfo.user = updatedUser;\r\n saveToLocal(userInfo, USER_REDUCER, true, true);\r\n dispatch(updateUserCreateCompany(userInfo.user));\r\n dispatch(requestQuote(legs, user));\r\n }\r\n } else {\r\n dispatch(createCompanyFail(handleServerErrors(INTERNAL_SERVER_ERROR)));\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(createCompanyFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else if (!err.status) {\r\n dispatch(createCompanyFail(handleServerErrors()));\r\n } else {\r\n dispatch(createCompanyFail(handleServerErrors(+err.status)));\r\n }\r\n });\r\n};\r\n\r\n\r\n","import { requestQuote, createCompany } from \"../sources/RequestQuoteSource\";\r\nimport {\r\n REQUEST_QUOTE_INIT,\r\n REQUEST_QUOTE_SUCCESS,\r\n REQUEST_QUOTE_FAIL,\r\n CREATE_COMPANY_INIT,\r\n CREATE_COMPANY_SUCCESS,\r\n CREATE_COMPANY_FAIL\r\n} from \"../actionTypes\";\r\n\r\nexport const requestQuoteInit = () => ({\r\n type: REQUEST_QUOTE_INIT\r\n});\r\n\r\nexport const requestQuoteSuccess = legs => ({\r\n type: REQUEST_QUOTE_SUCCESS,\r\n data: legs\r\n});\r\n\r\nexport const requestQuoteFail = data => ({\r\n type: REQUEST_QUOTE_FAIL,\r\n data\r\n});\r\n\r\nexport const createCompanyInit = () => ({\r\n type: CREATE_COMPANY_INIT\r\n});\r\n\r\nexport const createCompanySuccess = data => ({\r\n type: CREATE_COMPANY_SUCCESS,\r\n data\r\n});\r\n\r\nexport const createCompanyFail = data => ({\r\n type: CREATE_COMPANY_FAIL,\r\n data\r\n});\r\n\r\nexport const requestAllQuote = (flightLegs, accountId) =>\r\n requestQuote(flightLegs, accountId);\r\nexport const createCompanies = legs => createCompany(legs);\r\n","import moment from 'moment';\r\nimport { garanteeArray } from '../utils/sourceUtils';\r\nimport { getAircraftByField } from '../utils/aircraftUtils';\r\nimport { INVOICES_PER_PAGE } from '../configs/constants';\r\n\r\nfunction getAirportData(id) {\r\n return '';\r\n}\r\n\r\nfunction normalizeInvoice(invoices) {\r\n return {\r\n currency: invoices.currency,\r\n depTimeLocal: invoices.depTimeLocal,\r\n deptUtc: moment.utc(invoices.deptUtc),\r\n description: invoices.description,\r\n fileKey: invoices.fileKey,\r\n invoiceId: invoices.invoiceId,\r\n invoicePk: invoices.invoicePk,\r\n invoicedLineType: invoices.invoicedLineType,\r\n legHoursDeducted: (+invoices.legHoursDeducted).toFixed(2),\r\n totalAmount: invoices.totalAmount,\r\n totalInvoiceHours: (+invoices.totalInvoiceHours).toFixed(2),\r\n departureAirportId: invoices.departureAirportId,\r\n arrivalAirportId: invoices.arrivalAirportId,\r\n departureAirport: getAirportData(invoices.departureAirportId),\r\n arrivalAirport: getAirportData(invoices.arrivalAirportId),\r\n };\r\n}\r\n\r\nconst sortInvoices = (a, b) => (b.deptUtc - a.deptUtc);\r\n\r\nfunction normalizeFleet(fleet) {\r\n const aircraft = getAircraftByField(fleet.aircraftTypeId);\r\n return {\r\n accountId: fleet.accountId,\r\n accountName: fleet.accountName,\r\n aircraftTypeId: fleet.aircraftTypeId,\r\n contractEndDate: moment.utc(fleet.contractEndDate),\r\n contractPeriodId: fleet.contractPeriodId,\r\n contractStartDate: moment.utc(fleet.contractStartDate),\r\n hoursFlown: (+fleet.hoursFlown).toFixed(2),\r\n hoursForYear: (+fleet.hoursForYear).toFixed(2),\r\n invoice: garanteeArray(fleet.invoice).map(normalizeInvoice).sort(sortInvoices),\r\n remainingHours: (+fleet.remainingHours).toFixed(2),\r\n aircraftName: aircraft.displayName,\r\n aircraftRank: aircraft.rank,\r\n };\r\n}\r\n\r\nfunction normalizefleets(fleets) {\r\n return fleets\r\n .map(fleet => normalizeFleet(fleet))\r\n .sort((a, b) => (\r\n a.aircraftRank -\r\n b.aircraftRank\r\n ));\r\n}\r\n\r\nexport function pasNormalizer(invoiceHoursResult, fetchMore = false) {\r\n const billedFlights = normalizefleets(garanteeArray(invoiceHoursResult.invoiceHoursResponse.fleet));\r\n return billedFlights.map(fleet => ({\r\n ...fleet,\r\n noMoreInvoices: !fleet.invoice.length || fleet.invoice.length < INVOICES_PER_PAGE,\r\n }));\r\n\r\n}\r\n\r\nfunction normalizeUnbilledFlights(fleet) {\r\n return fleet.flights.map(flight => (\r\n {\r\n aircraftTypeId: flight.airTypeId || '',\r\n arrivalAirportId: flight.arrAirId,\r\n arrivalAirport: getAirportData(flight.arrAirId),\r\n arrivalAirportTimeLocal: flight.arrAirTimeLocal,\r\n arrivalAirportTimeUTC: flight.arrAirTimeLocal,\r\n departureAirportId: flight.depAirId,\r\n departureAirport: getAirportData(flight.depAirId),\r\n departureAirportTimeLocal: flight.depAirTimeLocal,\r\n departureAirportTimeUTC: flight.depAirTimeUTC,\r\n legId: flight.legId || '',\r\n orderId: flight.orderId || '',\r\n }\r\n ));\r\n}\r\n\r\nfunction normalizeUnbilledAircrafts(data) {\r\n const aircrafts = {};\r\n let flights = [];\r\n data.forEach(account => {\r\n account.contractAircrafts.forEach(fleet => {\r\n const aircraft = getAircraftByField(fleet.typeId);\r\n flights = normalizeUnbilledFlights(fleet);\r\n if (!!aircrafts[fleet.typeId]) {\r\n aircrafts[fleet.typeId].concat(flights);\r\n aircrafts[fleet.typeId].aircraftName = aircraft.displayName;\r\n aircrafts[fleet.typeId].aircraftRank = aircraft.aircraftRank;\r\n } else {\r\n aircrafts[fleet.typeId] = flights || [];\r\n aircrafts[fleet.typeId].aircraftName = aircraft.displayName;\r\n aircrafts[fleet.typeId].aircraftRank = aircraft.aircraftRank;\r\n }\r\n });\r\n });\r\n return aircrafts;\r\n}\r\n\r\nexport function normalizeUnbilled(data) {\r\n return normalizeUnbilledAircrafts(data);\r\n // return {\r\n // unbilled: normalizeUnbilledAircrafts(data),\r\n // };\r\n}\r\n\r\n const normalizeAccountStatmentInfo = infoList => infoList.map(({\r\n contractPeriodStart = '',\r\n contractPeriodEnd = '',\r\n periodNumber = '',\r\n }) => ({\r\n contractPeriodStart: contractPeriodStart && moment(contractPeriodStart).format('DD MMM YYYY'),\r\n contractPeriodEnd: contractPeriodEnd && moment(contractPeriodEnd).format('DD MMM YYYY'),\r\n periodNumber,\r\n }));\r\n\r\n const normalizeAccountStatementsList = statementsList => statementsList.map(({\r\n id = '',\r\n createdDate = '',\r\n periodStart = '',\r\n periodEnd = '',\r\n totalBilledHours = '',\r\n accountStatementPDFFile = '',\r\n title = '',\r\n periodNumber = '',\r\n }) => ({\r\n createdDate: createdDate && moment(createdDate).format('DD MMM YYYY'),\r\n periodStart: periodStart && moment(periodStart).format('DD MMM YYYY'),\r\n periodEnd: periodEnd && moment(periodEnd).format('DD MMM YYYY'),\r\n id,\r\n totalBilledHours,\r\n accountStatementPDFFile,\r\n title,\r\n periodNumber,\r\n }));\r\n\r\n export const normalizeAccountStatements = ({\r\n accountStatementInfoDtoList = [],\r\n accountStatementDtoList = [],\r\n }) => ({\r\n accountStatementInfo: normalizeAccountStatmentInfo(accountStatementInfoDtoList),\r\n accountStatements: normalizeAccountStatementsList(accountStatementDtoList),\r\n });\r\n\r\n export const normalizeStatementInvoices = (invoices) => invoices.map(({\r\n invoiceId = '',\r\n invoiceDate = '',\r\n description = '',\r\n billedHours = '',\r\n fileKey = '',\r\n }) => ({\r\n invoiceDate: invoiceDate && moment(invoiceDate).format('DD MMM YYYY'),\r\n invoiceId, description, billedHours, fileKey,\r\n })\r\n);\r\n","import axios from 'axios';\r\nimport {\r\n fetchUnbilledFlightsInit,\r\n fetchUnbilledFlightsSuccess,\r\n fetchUnbilledFlightsFail,\r\n fetchRecentInvoicesInit,\r\n fetchRecentInvoicesSuccess,\r\n fetchRecentInvoicesFail,\r\n fetchMoreInvoicesInit,\r\n fetchMoreInvoicesSuccess,\r\n fetchMoreInvoicesFail,\r\n fetchAccountStatementsInit,\r\n fetchAccountStatementsSuccess,\r\n fetchAccountStatementsFail,\r\n fetchStatementInvoicesInit,\r\n fetchStatementInvoicesSuccess,\r\n fetchStatementInvoicesFail,\r\n fetchZipUrlInit,\r\n fetchZipUrlSuccess,\r\n fetchZipUrlFail,\r\n fetchAccountStatementPdfInit,\r\n fetchAccountStatementPdfFail,\r\n fetchAccountStatementPdfSuccess,\r\n} from '../actions';\r\nimport {\r\n FETCH_UNBILLED_ACCOUNT_BALANCE,\r\n FETCH_PROGRAM_ACCOUNT_BALANCE,\r\n FETCH_ACCOUNT_STATEMENTS,\r\n FETCH_STATEMENT_INVOICES,\r\n DOWNLOAD_ZIP_URL,\r\n GET_PDF_FILE_URL,\r\n} from '../../configs/constants';\r\nimport { HTTP_HEADERS_JSON, TIMEOUT, HTTP_HEADERS, HTTP_HEADERS_JSON_PAS } from '../../constants/ApiConstants';\r\nimport { handleServerErrors } from '../../utils/sourceUtils';\r\nimport { parseXmlStringToJson } from '../../utils/parserUtils';\r\nimport {\r\n normalizeUnbilled,\r\n pasNormalizer,\r\n normalizeAccountStatements,\r\n normalizeStatementInvoices,\r\n} from '../../normalizers/PASNormalizer';\r\nimport { errorMessages } from '../../constants/ErrorMessageConstants';\r\n\r\nconst fetchUnbilledPromiseInProgress = {};\r\nconst fetchBilledPromiseInProgress = {};\r\nconst fetchAccountStatementsInProgress = {};\r\nconst fetchStatementInvoicesInProgress = {};\r\nconst zipDownloadInProgress = {};\r\nconst fetchPdfInProgress = {};\r\n\r\nexport const fetchUnbilledFlights = token => dispatch => {\r\n const uniqueKey = 'fetchUnbilled';\r\n if (fetchUnbilledPromiseInProgress[uniqueKey]) {\r\n return fetchUnbilledPromiseInProgress[uniqueKey];\r\n }\r\n\r\n dispatch(fetchUnbilledFlightsInit());\r\n const url = FETCH_UNBILLED_ACCOUNT_BALANCE.replace('{token}', token);\r\n const fetchUnbilledPromise = axios\r\n .get(url, {\r\n headers: HTTP_HEADERS_JSON,\r\n timeout: TIMEOUT,\r\n })\r\n .then(res => {\r\n delete fetchUnbilledPromiseInProgress[uniqueKey];\r\n if (res && res.data.responseHeader && res.data.responseHeader.isError) {\r\n const error = handleServerErrors(res.data.responseHeader.statusCode);\r\n dispatch(fetchUnbilledFlightsFail({ error }));\r\n } else {\r\n const response = res.data.fleetListResponseDto;\r\n const unbilledFlights = normalizeUnbilled((response && response.fleetDto) || []);\r\n dispatch(fetchUnbilledFlightsSuccess({ unbilledFlights }))\r\n }\r\n })\r\n .catch(err => {\r\n delete fetchUnbilledPromiseInProgress[uniqueKey];\r\n const error = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(fetchUnbilledFlightsFail({ error }));\r\n });\r\n\r\n fetchUnbilledFlights[uniqueKey] = fetchUnbilledPromise;\r\n return fetchUnbilledPromise;\r\n};\r\n\r\nexport const fetchBilledFlights = (token, currentCount = 0, aircraftTypeId = '', accountId = '') => dispatch => {\r\n const isLoadMore = accountId && aircraftTypeId;\r\n const uniqueKey = accountId ?\r\n `moreInvoices-${aircraftTypeId}` :\r\n `recentInvoices-${aircraftTypeId}`;\r\n\r\n if (fetchBilledPromiseInProgress[uniqueKey]) {\r\n return fetchBilledPromiseInProgress[uniqueKey];\r\n }\r\n\r\n if (isLoadMore)\r\n dispatch(fetchMoreInvoicesInit({ accountId, aircraftTypeId }));\r\n else\r\n dispatch(fetchRecentInvoicesInit());\r\n\r\n const url = FETCH_PROGRAM_ACCOUNT_BALANCE\r\n .replace('{token}', token)\r\n .replace('{currentCount}', currentCount)\r\n .replace('{aircraftTypeId}', aircraftTypeId);\r\n\r\n const fetchRecentInvoicesPromise = axios\r\n .get(url, {\r\n headers: HTTP_HEADERS,\r\n timeout: TIMEOUT,\r\n })\r\n .then(res => {\r\n delete fetchBilledPromiseInProgress[uniqueKey];\r\n const jsonData = parseXmlStringToJson(res.data);\r\n const billedFlights = pasNormalizer(jsonData);\r\n\r\n if (isLoadMore)\r\n dispatch(fetchMoreInvoicesSuccess({ billedFlights, accountId, aircraftTypeId }))\r\n else\r\n dispatch(fetchRecentInvoicesSuccess({ billedFlights }));\r\n })\r\n .catch(err => {\r\n delete fetchBilledPromiseInProgress[uniqueKey];\r\n const error = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n if (isLoadMore)\r\n dispatch(fetchMoreInvoicesFail({ error, accountId, aircraftTypeId }));\r\n else\r\n dispatch(fetchRecentInvoicesFail({ error }));\r\n });\r\n fetchBilledPromiseInProgress[uniqueKey] = fetchRecentInvoicesPromise;\r\n return fetchRecentInvoicesPromise;\r\n}\r\n\r\nexport const fetchAccountStatements = (token, accountId, aircraftTypeId) => dispatch => {\r\n const uniqueKey = `accountStatements${accountId + aircraftTypeId}`;\r\n\r\n if (fetchAccountStatementsInProgress[uniqueKey]) {\r\n return fetchAccountStatementsInProgress[uniqueKey];\r\n }\r\n\r\n dispatch(fetchAccountStatementsInit());\r\n\r\n const url = FETCH_ACCOUNT_STATEMENTS\r\n .replace('{token}', token)\r\n .replace('{accountId}', accountId)\r\n .replace('{aircraftTypeId}', aircraftTypeId);\r\n\r\n const fetchAccountStatementsPromise = axios\r\n .get(url, {\r\n headers: HTTP_HEADERS_JSON,\r\n timeout: TIMEOUT,\r\n })\r\n .then(res => {\r\n delete fetchAccountStatementsInProgress[uniqueKey];\r\n const {\r\n accountStatementInfoDtoList,\r\n accountStatementDtoList,\r\n responseHeaderDto: {\r\n isError = false,\r\n statusCode,\r\n }\r\n } = res.data;\r\n if (isError) {\r\n const error = handleServerErrors(statusCode);\r\n dispatch(fetchAccountStatementsFail({ error }));\r\n } else {\r\n const accountStatementsData = normalizeAccountStatements({\r\n accountStatementInfoDtoList,\r\n accountStatementDtoList,\r\n });\r\n dispatch(fetchAccountStatementsSuccess(accountStatementsData));\r\n }\r\n })\r\n .catch(err => {\r\n delete fetchAccountStatementsInProgress[uniqueKey];\r\n const error = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(fetchAccountStatementsFail({ error }));\r\n })\r\n\r\n fetchAccountStatementsInProgress[uniqueKey] = fetchAccountStatementsPromise;\r\n return fetchAccountStatementsPromise;\r\n}\r\n\r\nexport const fetchStatementInvoices = (token, accountStatementId, pageNumber = 1, pageSize = 5) => dispatch => {\r\n const uniqueKey = 'accountStatementInvoices';\r\n\r\n if (fetchStatementInvoicesInProgress[uniqueKey]) {\r\n return fetchStatementInvoicesInProgress[uniqueKey];\r\n }\r\n\r\n dispatch(fetchStatementInvoicesInit(pageNumber > 1));\r\n\r\n const url = FETCH_STATEMENT_INVOICES\r\n .replace('{token}', token)\r\n .replace('{accountStatementId}', accountStatementId)\r\n .replace('{pageNumber}', pageNumber)\r\n .replace('{pageSize}', pageSize);\r\n\r\n const fetchStatementInvoicesPromise = axios\r\n .get(url, {\r\n headers: HTTP_HEADERS_JSON,\r\n timeout: TIMEOUT,\r\n })\r\n .then(res => {\r\n delete fetchStatementInvoicesInProgress[uniqueKey];\r\n const {\r\n accountStatementDetails = [],\r\n responseHeaderDto: {\r\n lastPage = false,\r\n isError = false,\r\n statusCode = '',\r\n },\r\n } = res.data;\r\n if (isError) {\r\n const error = handleServerErrors(statusCode)\r\n dispatch(fetchStatementInvoicesFail({ error }));\r\n } else {\r\n const invoices = normalizeStatementInvoices(accountStatementDetails);\r\n const statementInvoicesData = {\r\n invoices, lastPage,\r\n }\r\n dispatch(fetchStatementInvoicesSuccess({ statementInvoicesData, loadMore: pageNumber > 1 }));\r\n }\r\n })\r\n .catch(err => {\r\n delete fetchStatementInvoicesInProgress[uniqueKey];\r\n const error = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(fetchStatementInvoicesFail({ error }));\r\n })\r\n\r\n fetchStatementInvoicesInProgress[uniqueKey] = fetchStatementInvoicesPromise;\r\n return fetchStatementInvoicesPromise;\r\n}\r\n\r\nexport const fetchZipUrl = (key, token) => dispatch => {\r\n const uniqueKey = `downloadZip-${key}`;\r\n if (zipDownloadInProgress[uniqueKey]) {\r\n return zipDownloadInProgress[uniqueKey];\r\n }\r\n\r\n dispatch(fetchZipUrlInit());\r\n const url = DOWNLOAD_ZIP_URL\r\n .replace('{token}', token)\r\n .replace('{key}', Object.entries(key).reduce((acc, curr, i, data) =>\r\n `${acc}${curr[0]}=${curr[1]}${(i === data.length - 1 ? '' : '&')}`, ''));\r\n\r\n const fetchZipUrlPromise = axios\r\n .get(url, {\r\n headers: HTTP_HEADERS_JSON,\r\n timeout: TIMEOUT,\r\n })\r\n .then(res => {\r\n delete zipDownloadInProgress[uniqueKey];\r\n if (res.data && res.data.responseHeader && res.data.responseHeader.isError) {\r\n // const error = '';\r\n const error = res.data.responseHeader.statusCode === 1 ?\r\n errorMessages.NO_RELATED_INVOICES : handleServerErrors(res.data.responseHeader.statusCode);\r\n dispatch(fetchUnbilledFlightsFail({ error }));\r\n } else {\r\n const { fileKey = '' } = res.data;\r\n window.open(fileKey);\r\n dispatch(fetchZipUrlSuccess());\r\n }\r\n })\r\n .catch(err => {\r\n delete zipDownloadInProgress[uniqueKey];\r\n const error = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(fetchZipUrlFail({ error }));\r\n });\r\n\r\n zipDownloadInProgress[uniqueKey] = fetchZipUrlPromise;\r\n return fetchZipUrlPromise;\r\n};\r\n\r\nexport const fetchAccountStatementPdf = (id, token) => dispatch => {\r\n const uniqueKey = `fetchPdf-${id}`;\r\n if (fetchPdfInProgress[uniqueKey]) {\r\n return fetchPdfInProgress[uniqueKey];\r\n }\r\n const fetchPdfPromise = new Promise((resolve, reject) => {\r\n dispatch(fetchAccountStatementPdfInit());\r\n const url = GET_PDF_FILE_URL\r\n .replace('{token}', token)\r\n .replace('{id}', id)\r\n\r\n axios\r\n .get(url, {\r\n headers: HTTP_HEADERS_JSON_PAS,\r\n timeout: TIMEOUT,\r\n })\r\n .then((res) => {\r\n delete fetchPdfInProgress[uniqueKey];\r\n if (res && res.header\r\n && res.header['content-type'] === 'application/xml'\r\n && res.body.error) {\r\n reject(handleServerErrors(res.body.error.code));\r\n dispatch(fetchAccountStatementPdfFail(handleServerErrors(res.body.error.code)));\r\n } else {\r\n window.open(url, \"_self\");\r\n resolve(url);\r\n dispatch(fetchAccountStatementPdfSuccess());\r\n }\r\n })\r\n .catch(error => {\r\n delete fetchPdfInProgress[uniqueKey];\r\n const jsonData = parseXmlStringToJson(error && error.response.data || '') || {};\r\n const statusCode = +(jsonData.error && jsonData.error.code) || ''\r\n reject(handleServerErrors(statusCode));\r\n dispatch(fetchAccountStatementPdfFail(handleServerErrors(statusCode)));\r\n });\r\n });\r\n fetchPdfInProgress[uniqueKey] = fetchPdfPromise;\r\n return fetchPdfPromise;\r\n};\r\n\r\n","import {\r\n fetchUnbilledFlights,\r\n fetchBilledFlights,\r\n fetchAccountStatements,\r\n fetchStatementInvoices,\r\n fetchZipUrl,\r\n fetchAccountStatementPdf,\r\n} from '../sources/PASSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const fetchUnbilledFlightsInit = () => ({\r\n type: types.FETCH_UNBILLED_INIT,\r\n});\r\n\r\nexport const fetchUnbilledFlightsSuccess = data => ({\r\n type: types.FETCH_UNBILLED_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchUnbilledFlightsFail = data => ({\r\n type: types.FETCH_UNBILLED_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchUnbilledFlightsAction = token => fetchUnbilledFlights(token);\r\n\r\nexport const fetchRecentInvoicesInit = () => ({\r\n type: types.FETCH_RECENT_INVOICES_INIT,\r\n});\r\n\r\nexport const fetchRecentInvoicesSuccess = data => ({\r\n type: types.FETCH_RECENT_INVOICES_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchRecentInvoicesFail = data => ({\r\n type: types.FETCH_RECENT_INVOICES_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchRecentInvoicesAction = (token, currentCount, aircraftTypeId) =>\r\n fetchBilledFlights(token, currentCount, aircraftTypeId);\r\n\r\nexport const fetchMoreInvoicesInit = data => ({\r\n type: types.FETCH_MORE_INVOICES_INIT,\r\n data,\r\n});\r\n\r\nexport const fetchMoreInvoicesSuccess = data => ({\r\n type: types.FETCH_MORE_INVOICES_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchMoreInvoicesFail = data => ({\r\n type: types.FETCH_MORE_INVOICES_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchMoreInvoicesAction = (token, currentCount, aircraftTypeId, accountId) =>\r\n fetchBilledFlights(token, currentCount, aircraftTypeId, accountId);\r\n\r\nexport const fetchAccountStatementsInit = data => ({\r\n type: types.FETCH_ACCOUNT_STATEMENTS_INIT,\r\n data,\r\n});\r\n\r\nexport const fetchAccountStatementsSuccess = data => ({\r\n type: types.FETCH_ACCOUNT_STATEMENTS_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchAccountStatementsFail = data => ({\r\n type: types.FETCH_ACCOUNT_STATEMENTS_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchAccountStatementsAction = (token, aircraftTypeId, accountId) =>\r\n fetchAccountStatements(token, aircraftTypeId, accountId);\r\n\r\nexport const fetchStatementInvoicesInit = (data) => ({\r\n type: types.FETCH_STATEMENT_INVOICES_INIT,\r\n data,\r\n});\r\n\r\nexport const fetchStatementInvoicesSuccess = data => ({\r\n type: types.FETCH_STATEMENT_INVOICES_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchStatementInvoicesFail = data => ({\r\n type: types.FETCH_STATEMENT_INVOICES_FAIL,\r\n data,\r\n});\r\n\r\nexport const clearInvoiceFilter = () => ({\r\n type: types.CLEAR_INVOICE_FILTER,\r\n})\r\n\r\nexport const fetchStatementInvoicesAction = (token, accountStatementId, pageNumber, pageSize) =>\r\n fetchStatementInvoices(token, accountStatementId, pageNumber, pageSize);\r\n\r\nexport const fetchZipUrlInit = () => ({\r\n type: types.FETCH_ZIP_URL_INIT,\r\n});\r\n\r\nexport const fetchZipUrlSuccess = () => ({\r\n type: types.FETCH_ZIP_URL_SUCCESS,\r\n});\r\n\r\nexport const fetchZipUrlFail = data => ({\r\n type: types.FETCH_ZIP_URL_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchZipUrlAction = (key, token) =>\r\n fetchZipUrl(key, token);\r\n\r\nexport const clearPasError = data => ({\r\n type: types.CLEAR_PAS_ERROR,\r\n data,\r\n});\r\n\r\nexport const fetchAccountStatementPdfInit = () => ({\r\n type: types.FETCH_ACCOUNT_STATEMENT_PDF_INIT,\r\n});\r\n\r\nexport const fetchAccountStatementPdfSuccess = () => ({\r\n type: types.FETCH_ACCOUNT_STATEMENT_PDF_SUCCESS,\r\n});\r\n\r\nexport const fetchAccountStatementPdfFail = (data) => ({\r\n type: types.FETCH_ACCOUNT_STATEMENT_PDF_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchAccountStatementPdfAction = (id, token) => fetchAccountStatementPdf(id, token);\r\n","import axios from 'axios';\r\nimport { FETCH_ENTERTAINMENT_ISSUE_NUMBER, FETCH_ENTERTAINMENT } from '../../configs/constants';\r\nimport {\r\n fetchEntertainmentIssueInit,\r\n fetchEntertainmentIssueSuccess,\r\n fetchEntertainmentIssueFail,\r\n fetchEntertainmentInit,\r\n fetchEntertainmentSuccess,\r\n fetchEntertainmentFail,\r\n} from '../actions';\r\nimport store from '../store';\r\nimport { getFromLocal } from '../../utils/cache';\r\nimport { USER_REDUCER } from '../../constants/localStorageKeys';\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\n\r\nconst status = {\r\n OK: 200,\r\n};\r\nconst { user } = getFromLocal(USER_REDUCER, true, true) || {};\r\nconst token = (user || {}).userToken;\r\n\r\nconst fetchEntertainmentPromiseInprogress = {};\r\nexport const fetchEntertainment = (issueNumber, tailNumber = '_', legId) => (dispatch) => {\r\n const uniqueKey = `entertainment-${legId}`;\r\n if (fetchEntertainmentPromiseInprogress[uniqueKey]) {\r\n return fetchEntertainmentPromiseInprogress[uniqueKey];\r\n }\r\n const fetchEntertainmentPromise = new Promise((resolve, reject) => {\r\n const url = FETCH_ENTERTAINMENT.replace('{token}', token).replace('{issueNumber}', issueNumber)\r\n .replace('{tailNumber}', tailNumber);\r\n dispatch(fetchEntertainmentInit(legId));\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n dispatch(fetchEntertainmentSuccess(response.data, legId));\r\n resolve(response.data);\r\n } else {\r\n const errors = handleServerErrors(response.status);\r\n dispatch(fetchEntertainmentFail(errors, legId));\r\n reject(errors);\r\n }\r\n delete fetchEntertainmentPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(fetchEntertainmentFail(errors, legId));\r\n reject(errors);\r\n delete fetchEntertainmentPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n fetchEntertainmentPromiseInprogress[uniqueKey] = fetchEntertainmentPromise;\r\n return fetchEntertainmentPromise;\r\n};\r\n\r\nexport const fetchEntertainmentIssue = (tailNumber = '_', legId) => (dispatch) => {\r\n return new Promise((resolve, reject) => {\r\n const url = FETCH_ENTERTAINMENT_ISSUE_NUMBER.replace('{token}', token).replace('{tailNumber}', tailNumber);\r\n dispatch(fetchEntertainmentIssueInit(legId));\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n dispatch(fetchEntertainmentIssueSuccess(response.data, legId));\r\n resolve(response.data);\r\n } else {\r\n const errors = handleServerErrors(response.status);\r\n dispatch(fetchEntertainmentIssueFail(errors, legId));\r\n reject(errors);\r\n }\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(fetchEntertainmentIssueFail(errors, legId));\r\n reject(errors);\r\n });\r\n });\r\n};\r\n","import { fetchEntertainment, fetchEntertainmentIssue } from '../sources/EntertainmentSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const fetchEntertainmentIssueInit = (flightLegId) => ({\r\n type: types.FETCH_ENTERTAINMENT_ISSUE_INIT,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchEntertainmentIssueSuccess = (data, flightLegId) => ({\r\n type: types.FETCH_ENTERTAINMENT_ISSUE_SUCCESS,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchEntertainmentIssueFail = (data, flightLegId) => ({\r\n type: types.FETCH_ENTERTAINMENT_ISSUE_FAIL,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchEntertainmentInit = (flightLegId) => ({\r\n type: types.FETCH_ENTERTAINMENT_INIT,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchEntertainmentSuccess = (data, flightLegId) => ({\r\n type: types.FETCH_ENTERTAINMENT_SUCCESS,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchEntertainmentFail = (data, flightLegId) => ({\r\n type: types.FETCH_ENTERTAINMENT_FAIL,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchEntertainmentIssueNumber = (tailNumber, legId) => fetchEntertainmentIssue(tailNumber, legId);\r\n\r\nexport const fetchEntertainmentDetails = (issueNumber, tailNumber, legId) => fetchEntertainment(issueNumber, tailNumber, legId);","import axios from 'axios';\r\nimport {\r\n getPushNotificationInit,\r\n getPushNotificationSuccess,\r\n getPushNotificationFailure,\r\n updatePushNotificationInit,\r\n updatePushNotificationSuccess,\r\n updatePushNotificationFailure,\r\n updateDisableCitiesCheck,\r\n} from '../actions';\r\nimport {\r\n GET_NOTIFICATION_OPTIONS, UPDATE_NOTIFICATION_OPTIONS,\r\n} from '../../configs/constants';\r\n// import { CREDIT_CARD_MESSAGE } from '../../constants/MessageConstants';\r\nimport { HTTP_HEADERS_XML } from '../../constants/ApiConstants';\r\nimport { handleServerErrors, parsePascalCaseString } from '../../utils/sourceUtils';\r\nimport { existInLocal, getFromLocal, saveToLocal } from '../../utils/cache';\r\nimport { normalizePushNotifications, normalizeRequestUpdateNotifications } from '../../normalizers/pushNotificationNormalizer';\r\nimport status from '../../configs/status';\r\n\r\nexport const updatePushNotifications = (\r\n token,\r\n notifications,\r\n cities,\r\n isCitiesDisable = false,\r\n) => (dispatch) => {\r\n return new Promise((resolve, reject) => {\r\n dispatch(updatePushNotificationInit());\r\n const requestPayload = normalizeRequestUpdateNotifications(notifications, cities);\r\n const url = UPDATE_NOTIFICATION_OPTIONS.replace('{token}', token);\r\n\r\n axios\r\n .post(\r\n url,\r\n requestPayload,\r\n {\r\n headers: HTTP_HEADERS_XML,\r\n },\r\n )\r\n .then((res) => {\r\n let user = null;\r\n if (existInLocal('user')) {\r\n user = getFromLocal('user', true, true);\r\n }\r\n if (res.status === status.OK) {\r\n parsePascalCaseString(res.data, (parseErr, result) => {\r\n if (parseErr) {\r\n const error = handleServerErrors(null);\r\n dispatch(getPushNotificationFailure(error));\r\n reject(error);\r\n } else {\r\n if (result.response.responseHeader.isError) {\r\n const error = handleServerErrors(result.response.responseHeader.statusCode);\r\n dispatch(updatePushNotificationFailure(error));\r\n reject(error);\r\n } else {\r\n dispatch(updatePushNotificationSuccess({\r\n notifications,\r\n cities,\r\n }));\r\n dispatch(updateDisableCitiesCheck(isCitiesDisable));\r\n const userObject = Object.assign({}, user, {\r\n disablePushNotificationCities: isCitiesDisable,\r\n });\r\n saveToLocal(userObject, 'user', true, true);\r\n resolve();\r\n }\r\n }\r\n });\r\n } else {\r\n const errors = handleServerErrors(null);\r\n dispatch(getPushNotificationFailure(errors));\r\n reject(errors);\r\n }\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(updatePushNotificationFailure(errors));\r\n reject(errors);\r\n });\r\n });\r\n};\r\n\r\nexport const fetchPushNotification = (token) => (dispatch) => {\r\n return new Promise((resolve, reject) => {\r\n dispatch(getPushNotificationInit());\r\n const url = GET_NOTIFICATION_OPTIONS.replace('{token}', token);\r\n axios\r\n .get(\r\n url,\r\n {\r\n headers: HTTP_HEADERS_XML,\r\n },\r\n )\r\n .then((res) => {\r\n if (res.status === status.OK) {\r\n parsePascalCaseString(res.data, (parseErr, result) => {\r\n if (parseErr) {\r\n const error = handleServerErrors(null);\r\n dispatch(getPushNotificationFailure(error));\r\n reject(error);\r\n } else {\r\n if (result.response.responseHeader.isError) {\r\n const error = handleServerErrors(result.response.responseHeader.statusCode);\r\n dispatch(getPushNotificationFailure(error));\r\n reject(error);\r\n } else {\r\n const normalizedPushNotification = normalizePushNotifications(\r\n result,\r\n );\r\n dispatch(getPushNotificationSuccess(normalizedPushNotification));\r\n resolve(normalizedPushNotification);\r\n }\r\n }\r\n });\r\n } else {\r\n const errors = handleServerErrors(null);\r\n dispatch(getPushNotificationFailure(errors));\r\n reject(errors);\r\n }\r\n })\r\n .catch(err => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(getPushNotificationFailure(errors));\r\n reject(errors);\r\n });\r\n });\r\n};\r\n\r\n// export const deleteCreditCardSource = (token, creditCardPayload) => (dispatch) => {\r\n// return new Promise((resolve, reject) => {\r\n// dispatch(deleteCreditCardInit());\r\n// const url = DELETE_CREDIT_CARD_URL.replace('{token}', token);\r\n// const {\r\n// alias,\r\n// } = creditCardPayload;\r\n// const payload = builderXmlRequest({\r\n// creditCardRequestDto: {\r\n// alias,\r\n// },\r\n// });\r\n\r\n// axios\r\n// .post(\r\n// url,\r\n// payload,\r\n// {\r\n// headers: HTTP_HEADERS_XML,\r\n// },\r\n// )\r\n// .then((res) => {\r\n// parserPascalCaseIgnoreNumber(res.data, (error, result) => {\r\n// if (error) {\r\n// const errors = handleServerErrors(null);\r\n// dispatch(deleteCreditCardFailure(errors));\r\n// reject(errors);\r\n// } else {\r\n// const {\r\n// responseHeaderDto,\r\n// } = result.creditCardResponseDto;\r\n\r\n// if (responseHeaderDto && responseHeaderDto.isError === true) {\r\n// const {\r\n// statusCode,\r\n// } = responseHeaderDto;\r\n// const errors = handleServerErrors(statusCode);\r\n// dispatch(deleteCreditCardFailure(errors));\r\n// reject(errors);\r\n// } else {\r\n// let message = CREDIT_CARD_MESSAGE[creditCardPayload.cardBrandId];\r\n// message = `${message}${creditCardPayload.cardNumberLastFour} deleted`;\r\n// dispatch(deleteCreditCardSuccess({\r\n// response: creditCardPayload.alias,\r\n// message,\r\n// }));\r\n// resolve(creditCardPayload.alias);\r\n// }\r\n// }\r\n// });\r\n// })\r\n// .catch(err => {\r\n// const errors = handleServerErrors(\r\n// err.response\r\n// ? err.response.status\r\n// : err.response,\r\n// );\r\n// dispatch(addCreditCardFail(errors));\r\n// reject(errors);\r\n// });\r\n// });\r\n// };\r\n","import { guaranteeArray } from '../utils/arrayUtils';\r\n\r\nexport const normalizePushNotifications = (notifications) => ({\r\n cities: ((notifications.response.responseBody || {}).cities || {}).city\r\n && guaranteeArray(((notifications.response.responseBody || {}).cities || {}).city).reduce(\r\n ((current, city) => {\r\n const curr = current;\r\n curr.ids.push(city.cityId);\r\n curr.content[city.cityId] = {\r\n cityId: city.cityId,\r\n enabled: true,\r\n };\r\n return curr;\r\n }), { ids: [], content: {} },\r\n ),\r\n notifications: ((notifications.response.responseBody || {}).notifications || {}).notification\r\n && ((notifications.response.responseBody || {}).notifications || {}).notification.reduce(\r\n ((current, notification) => {\r\n const curr = current;\r\n curr.ids.push(notification.notificationId);\r\n curr.content[notification.notificationId] = notification;\r\n return curr;\r\n }), { ids: [], content: {} }),\r\n});\r\n\r\nexport const normalizeRequestUpdateNotifications = (notifications, cities) => {\r\n const notificationPayload = notifications.ids.map(id => (\r\n `\r\n ${notifications.content[id].notificationId}\r\n ${notifications.content[id].enabled}\r\n `\r\n ));\r\n const cityPayload = cities.ids.map(id => (\r\n `\r\n ${cities.content[id].cityId}\r\n ${cities.content[id].enabled}\r\n `\r\n ));\r\n return (\r\n `\r\n \r\n ${notificationPayload.join('')}\r\n \r\n \r\n ${cityPayload.join('')}\r\n \r\n `\r\n );\r\n};\r\n","import * as types from '../actionTypes';\r\nimport {\r\n fetchPushNotification,\r\n updatePushNotifications,\r\n} from '../sources/PushNotificationSource';\r\n\r\nexport const getPushNotificationInit = () => ({\r\n type: types.GET_PUSH_NOTIFICATION_INIT,\r\n});\r\n\r\nexport const getPushNotificationSuccess = data => ({\r\n type: types.GET_PUSH_NOTIFICATION_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const getPushNotificationFailure = data => ({\r\n type: types.GET_PUSH_NOTIFICATION_FAILURE,\r\n data,\r\n});\r\n\r\nexport const updatePushNotificationInit = () => ({\r\n type: types.UPDATE_PUSH_NOTIFICATION_INIT,\r\n});\r\n\r\nexport const updatePushNotificationSuccess = data => ({\r\n type: types.UPDATE_PUSH_NOTIFICATION_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const updatePushNotificationFailure = data => ({\r\n type: types.UPDATE_PUSH_NOTIFICATION_FAILURE,\r\n data,\r\n});\r\n\r\nexport const updateDisableCitiesCheck = data => ({\r\n type: types.UPDATE_PUSH_NOTIFICATION_DISABLE_CITY_CHECK,\r\n data,\r\n});\r\n\r\nexport const fetchPushNotificationAction = (token) => fetchPushNotification(token);\r\nexport const updatePushNotificationAction = (\r\n token,\r\n notifications,\r\n cities,\r\n disableToggle,\r\n) => updatePushNotifications(\r\n token,\r\n notifications,\r\n cities,\r\n disableToggle,\r\n);\r\n","import { garanteeArray } from '../utils/sourceUtils';\r\n\r\nfunction normalizeLeg(leg) {\r\n return {\r\n arrivalAirportIcao:\r\n leg.arrivalAirportIcao,\r\n arrivalAirportName:\r\n leg.arrivalAirportName,\r\n departureAirportIcao:\r\n leg.departureAirportIcao,\r\n departureAirportName:\r\n leg.departureAirportName,\r\n };\r\n}\r\n\r\nfunction normalizeFlightLegs(legs) {\r\n const newLegs = [];\r\n\r\n if (legs && legs.length > 0) {\r\n legs.forEach((leg) => {\r\n newLegs.push({ flightLeg: normalizeLeg(leg.flightLeg) });\r\n });\r\n }\r\n\r\n return newLegs;\r\n}\r\n\r\nfunction normalizeLineItems(lineItem) {\r\n const l = lineItem;\r\n l.amount = lineItem.amount;\r\n l.currency = lineItem.currency;\r\n l.description = lineItem.description;\r\n l.documentDate = lineItem.documentDate;\r\n l.documentNumber = lineItem.documentNumber;\r\n l.fileKey = lineItem.fileKey ? lineItem.fileKey : null;\r\n l.invoiceNumber = lineItem.invoiceNumber ? lineItem.invoiceNumber : null;\r\n l.flightLegs = normalizeFlightLegs(lineItem.flightLegs);\r\n // flightLegs\r\n return lineItem;\r\n}\r\n\r\nexport const normalizeAccount = (account) => {\r\n if (account && account.ResponseDto.ResponseBody) {\r\n const c = account.invoiceAndBalanceResponse ?\r\n account.invoiceAndBalanceResponse\r\n : account.ResponseDto.ResponseBody.membershipAccount;\r\n const newAccount = {};\r\n if (c.lineItem) {\r\n newAccount.lineItems = c.lineItem;\r\n newAccount.lineItems = garanteeArray(newAccount.lineItems);\r\n newAccount.lineItems = newAccount.lineItems.map(normalizeLineItems);\r\n } else {\r\n newAccount.lineItems = [];\r\n }\r\n\r\n newAccount.accountTypeId = c.accountTypeId;\r\n if (c.accountDisplayName) {\r\n newAccount.accountDisplayName = c.accountDisplayName;\r\n } else {\r\n newAccount.accountDisplayName = 'VistaJet Direct (Non Member)';\r\n }\r\n\r\n if (c.currency) {\r\n newAccount.currency = c.currency;\r\n } else {\r\n newAccount.currency = '';\r\n }\r\n\r\n if (c.currentBalance) {\r\n newAccount.currentBalance = c.currentBalance;\r\n } else {\r\n newAccount.currentBalance = 0;\r\n }\r\n return newAccount;\r\n }\r\n\r\n return { lineItems: [] };\r\n}\r\n","import axios from \"axios\";\r\nimport { parseXmlStringToJson } from \"utils/parserUtils\";\r\nimport {\r\n MembershipAccountStatementInit,\r\n MembershipAccountStatementSuccess,\r\n MembershipAccountStatementFail,\r\n} from \"store/actions/DirectAccountBalanceActions\";\r\n\r\nimport {\r\n SOMETHING_UNEXPECTED_CONTACT,\r\n} from \"../../constants/MessageConstants\";\r\n\r\nimport { \r\n ON_DEMAND_ACCOUNT_BALANCE_URL,\r\n TRANSACTIONS_QUANTITY,\r\n} from \"configs/constants\";\r\nimport status from \"configs/status\";\r\nimport { handleServerErrors } from \"utils/sourceUtils\";\r\nimport { BAD_REQUEST, TIMEOUT_CODE, UNAUTHORIZED } from \"constants/ServerCodeConstants\";\r\nimport { normalizeAccount } from \"normalizers/DirectAccountBalanceNormalizer\";\r\n\r\nexport const MembershipAccountStatementSource = (token, currentLength = 0, isLoadMore) => dispatch => {\r\n dispatch(MembershipAccountStatementInit(isLoadMore));\r\n const options = {\r\n headers: {\r\n \"Content-Type\": \"application/xml\"\r\n },\r\n timeout: TIMEOUT_CODE.time\r\n }; \r\n const url = ON_DEMAND_ACCOUNT_BALANCE_URL\r\n .replace('{token}', token)\r\n .replace('{lineItemsPerpage}', TRANSACTIONS_QUANTITY)\r\n .replace('{currentCount}', currentLength);\r\n\r\n axios\r\n .get(\r\n url,\r\n options\r\n )\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n const parsedData = parseXmlStringToJson(response.data);\r\n const responseHeader =\r\n parsedData.ResponseDto.responseHeader;\r\n if (responseHeader.isError) {\r\n const error = responseHeader.statusCode;\r\n if (error === 1 &&\r\n responseHeader.message !== SOMETHING_UNEXPECTED_CONTACT) {\r\n dispatch(MembershipAccountStatementFail());\r\n } else {\r\n dispatch(MembershipAccountStatementFail(handleServerErrors(error)));\r\n }\r\n } else {\r\n dispatch(MembershipAccountStatementSuccess(normalizeAccount(parsedData), isLoadMore));\r\n } \r\n } else {\r\n dispatch(MembershipAccountStatementFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(MembershipAccountStatementFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(MembershipAccountStatementFail(handleServerErrors(UNAUTHORIZED)));\r\n }\r\n else dispatch(MembershipAccountStatementFail(handleServerErrors(BAD_REQUEST)));\r\n });\r\n};\r\n","import { \r\n MembershipAccountStatementSource,\r\n } from '../sources/DirectAccountBalanceSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const MembershipAccountStatementInit = (isLoadMore) => ({\r\n type: types.MEMBERSHIP_ACCOUNT_STATEMENT_INIT,\r\n isLoadMore,\r\n});\r\n\r\nexport const MembershipAccountStatementSuccess = (data, isLoadMore) => ({\r\n type: types.MEMBERSHIP_ACCOUNT_STATEMENT_SUCCESS,\r\n data,\r\n isLoadMore,\r\n});\r\n\r\nexport const MembershipAccountStatementFail = data => ({\r\n type: types.MEMBERSHIP_ACCOUNT_STATEMENT_FAIL,\r\n data,\r\n});\r\n\r\nexport const MembershipAccountStatement = (token, currentLength, isLoadMore) =>\r\n MembershipAccountStatementSource(token, currentLength, isLoadMore);\r\n","import axios from 'axios';\r\nimport { FETCH_FBO_URL } from '../../configs/constants';\r\nimport {\r\n fetchFboInit,\r\n fetchFboSuccess,\r\n fetchFboFail,\r\n} from '../actions';\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\nimport { getFromLocal } from '../../utils/cache';\r\n\r\nconst status = {\r\n OK: 200,\r\n};\r\n\r\nconst fetchFboPromiseInprogress = {};\r\n\r\nexport const fetchFbo = (token, legId) => (dispatch) => {\r\n const uniqueKey = `${legId}`;\r\n if (fetchFboPromiseInprogress[uniqueKey]) {\r\n return fetchFboPromiseInprogress[uniqueKey];\r\n }\r\n const fetchFboPromise = new Promise((resolve, reject) => {\r\n const url = FETCH_FBO_URL.replace('{token}', token).replace('{flightLegId}', legId);\r\n dispatch(fetchFboInit(legId));\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n dispatch(fetchFboSuccess(response.data, legId));\r\n resolve(response.data);\r\n } else {\r\n const errors = handleServerErrors(response.status);\r\n dispatch(fetchFboFail(errors, legId));\r\n reject(errors);\r\n }\r\n delete fetchFboPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(fetchFboFail(errors, legId));\r\n reject(errors);\r\n delete fetchFboPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n fetchFboPromiseInprogress[uniqueKey] = fetchFboPromise;\r\n return fetchFboPromise;\r\n};\r\n\r\n","import { fetchFbo } from '../sources/FboSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const fetchFboInit = (flightLegId) => ({\r\n type: types.FETCH_FBO_INIT,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchFboSuccess = (data, flightLegId) => ({\r\n type: types.FETCH_FBO_SUCCESS,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchFboFail = (data, flightLegId) => ({\r\n type: types.FETCH_FBO_FAIL,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchFboDetails = (token, legId) => fetchFbo(token, legId);\r\n","import { addGroundServices, serviceAvailed } from '../sources/GroundServicesSource';\r\nimport {\r\n\tADD_TRANSPORT_SERVICES_INIT,\r\n\tADD_TRANSPORT_SERVICES_SUCCESS,\r\n\tADD_TRANSPORT_SERVICES_FAIL,\r\n\r\n\tADD_ADDITIONAL_SERVICES_INIT,\r\n\tADD_ADDITIONAL_SERVICES_SUCCESS,\r\n\tADD_ADDITIONAL_SERVICES_FAIL,\r\n\r\n\tFETCH_AVAILED_SERVICES_INIT,\r\n\tFETCH_AVAILED_SERVICES_SUCCESS,\r\n\tFETCH_AVAILED_SERVICES_FAIL,\r\n} from '../actionTypes';\r\n\r\n//---------------Add--Transport Services-----------------\r\n\r\nexport const addTransportServicesInit = (uniqueIdentifier) => ({\r\n\ttype: ADD_TRANSPORT_SERVICES_INIT,\r\n\tflightLegId: uniqueIdentifier,\r\n});\r\n\r\nexport const addTransportServicesSuccess = (uniqueIdentifier, payload, serviceType) => ({\r\n\ttype: ADD_TRANSPORT_SERVICES_SUCCESS,\r\n\tdata: payload,\r\n\tserviceType: serviceType,\r\n\tflightLegId: uniqueIdentifier,\r\n});\r\n\r\nexport const addTransportServicesFail = (uniqueIdentifier, error) => ({\r\n\ttype: ADD_TRANSPORT_SERVICES_FAIL,\r\n\tflightLegId: uniqueIdentifier,\r\n\terror,\r\n});\r\n\r\n//----------------Add-Additional Services-----------------\r\n\r\nexport const addAdditionalServicesInit = (uniqueIdentifier) => ({\r\n\ttype: ADD_ADDITIONAL_SERVICES_INIT,\r\n\tflightLegId: uniqueIdentifier,\r\n});\r\n\r\nexport const addAdditionalServicesSuccess = (uniqueIdentifier, payload, serviceType) => ({\r\n\ttype: ADD_ADDITIONAL_SERVICES_SUCCESS,\r\n\tdata: payload,\r\n\tserviceType: serviceType,\r\n\tflightLegId: uniqueIdentifier,\r\n});\r\n\r\nexport const addAdditionalServicesFail = (uniqueIdentifier, error) => ({\r\n\ttype: ADD_ADDITIONAL_SERVICES_FAIL,\r\n\tflightLegId: uniqueIdentifier,\r\n\terror,\r\n});\r\n\r\n//-------------------------Fetch Availed Services------------\r\n\r\nexport const servicesAvailedInit = (flightLegId) => ({\r\n\ttype: FETCH_AVAILED_SERVICES_INIT,\r\n\tflightLegId,\r\n});\r\n\r\nexport const servicesAvailedSuccess = (availedGTData, availedASData, flightLegId) => ({\r\n\ttype: FETCH_AVAILED_SERVICES_SUCCESS,\r\n\tavailedGTData: availedGTData,\r\n\tavailedASData: availedASData,\r\n\tflightLegId,\r\n});\r\n\r\nexport const servicesAvailedFail = (flightLegId, error) => ({\r\n\ttype: FETCH_AVAILED_SERVICES_FAIL,\r\n\tflightLegId,\r\n\terror,\r\n});\r\n\r\nexport const fetchAvailedServices = (token, key, flightLegId) => serviceAvailed(token, key, flightLegId);\r\n\r\nexport const addGroundTransportService = (token, key, uniqueIdentifier, payload) => addGroundServices(token, key, uniqueIdentifier, payload);\r\n","import axios from 'axios';\r\nimport {\r\n fetchGroundServicesInit,\r\n fetchGroundServicesFail,\r\n fetchGroundServicesSuccess,\r\n} from '../actions/GroundServicesActions';\r\nimport {\r\n servicesAvailedInit,\r\n servicesAvailedSuccess,\r\n servicesAvailedFail,\r\n\r\n addTransportServicesInit,\r\n addTransportServicesFail,\r\n addTransportServicesSuccess,\r\n\r\n addAdditionalServicesSuccess,\r\n addAdditionalServicesFail,\r\n addAdditionalServicesInit,\r\n\r\n} from '../actions/AvailedServicesActions';\r\n\r\nimport { garanteeArray } from '../../utils/sourceUtils';\r\nimport { HTTP_HEADERS_JSON } from '../../constants/ApiConstants';\r\nimport { FETCH_GROUND_SERVICES_URL, ADD_GROUND_SERVICES_URL, SERVICES_AVAILED_URL } from '../../configs/constants';\r\nimport { SOMETHING_UNEXPECTED } from '../../constants/MessageConstants';\r\nimport { BAD_REQUEST, TIMEOUT_CODE, UNAUTHORIZED } from '../../constants/ServerCodeConstants';\r\nimport { handleServerErrors, } from '../../utils/sourceUtils';\r\nimport { GROUND_TRANSPORT_SERVICE } from '../../constants/ItineraryConstants';\r\n\r\n//----fetch all services options\r\nexport const fetchGroundServices = (token, payload) => (dispatch) => {\r\n let url;\r\n url = FETCH_GROUND_SERVICES_URL.replace('{token}', token);\r\n\r\n const reqPayload = {\r\n airportIds: payload,\r\n };\r\n\r\n dispatch(fetchGroundServicesInit());\r\n axios\r\n .post(url, reqPayload, HTTP_HEADERS_JSON)\r\n .then((response) => {\r\n if (response && response.data) {\r\n const responseHeader = response.data.responseHeaderDto;\r\n if (responseHeader && responseHeader.isError) {\r\n const errors = handleServerErrors(responseHeader.statusCode);\r\n dispatch(fetchGroundServicesFail(errors));\r\n }\r\n else {\r\n const groundServices = garanteeArray(response.data.serviceTypes);\r\n dispatch(fetchGroundServicesSuccess(groundServices));\r\n }\r\n } else {\r\n dispatch(fetchGroundServicesFail(SOMETHING_UNEXPECTED));\r\n }\r\n })\r\n .catch((err) => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(fetchGroundServicesFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(fetchGroundServicesFail(handleServerErrors(UNAUTHORIZED)));\r\n }\r\n else dispatch(fetchGroundServicesFail(handleServerErrors(BAD_REQUEST)));\r\n });\r\n};\r\n\r\nexport const addGroundServices = (token, key, uniqueIdentifier, payload) => (dispatch) => {\r\n\r\n const url = ADD_GROUND_SERVICES_URL.replace('{token}', token).replace('{key}', key).replace('{uniqueIdentifier}', uniqueIdentifier);\r\n\r\n let serviceXml = '' +\r\n '' +\r\n '{serviceTypeId}' +\r\n '{serviceTypeName}' +\r\n '{onDeparture}' +\r\n '{instructions}' +\r\n '' +\r\n '';\r\n\r\n serviceXml = serviceXml\r\n .replace('{serviceTypeId}', payload.transportServiceId)\r\n .replace('{onDeparture}', payload.onDeparture)\r\n .replace('{instructions}', payload.notes)\r\n .replace('{serviceTypeName}', payload.transportServiceTitle);\r\n\r\n const AdditionalServicesPayload = {\r\n notes: payload.notes,\r\n onDeparture: payload.onDeparture,\r\n serviceId: payload.transportServiceId,\r\n title: payload.transportServiceTitle,\r\n };\r\n\r\n const serviceType = payload.serviceType;\r\n const options = {\r\n headers: {\r\n \"Accept\": \"application/xml\",\r\n \"Content-Type\": \"application/xml\",\r\n }\r\n };\r\n\r\n dispatch(serviceType === GROUND_TRANSPORT_SERVICE ?\r\n addTransportServicesInit(uniqueIdentifier)\r\n : addAdditionalServicesInit(uniqueIdentifier));\r\n axios\r\n .post(url, serviceXml, options)\r\n .then((response) => {\r\n if (response && response.data) {\r\n const responseHeader = response.data.responseHeaderDto;\r\n if (responseHeader && responseHeader.isError) {\r\n const errors = handleServerErrors(responseHeader.statusCode);\r\n dispatch(serviceType === GROUND_TRANSPORT_SERVICE\r\n ? addTransportServicesFail(uniqueIdentifier, errors)\r\n : addAdditionalServicesFail);\r\n } else {\r\n dispatch(serviceType === GROUND_TRANSPORT_SERVICE\r\n ? addTransportServicesSuccess(uniqueIdentifier, payload, serviceType)\r\n : addAdditionalServicesSuccess(uniqueIdentifier, AdditionalServicesPayload, serviceType));\r\n }\r\n } else {\r\n dispatch(serviceType === GROUND_TRANSPORT_SERVICE\r\n ? addTransportServicesFail(uniqueIdentifier, SOMETHING_UNEXPECTED)\r\n : addAdditionalServicesFail);\r\n }\r\n })\r\n .catch((err) => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(serviceType === GROUND_TRANSPORT_SERVICE\r\n ? addTransportServicesFail(uniqueIdentifier, handleServerErrors(TIMEOUT_CODE.code))\r\n : addAdditionalServicesFail(uniqueIdentifier, handleServerErrors(TIMEOUT_CODE.code)));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(serviceType === GROUND_TRANSPORT_SERVICE\r\n ? addTransportServicesFail(uniqueIdentifier, handleServerErrors(UNAUTHORIZED))\r\n : addAdditionalServicesFail(uniqueIdentifier, handleServerErrors(UNAUTHORIZED)));\r\n }\r\n else dispatch(serviceType === GROUND_TRANSPORT_SERVICE\r\n ? addTransportServicesFail(uniqueIdentifier, handleServerErrors(BAD_REQUEST))\r\n : addAdditionalServicesFail(uniqueIdentifier, handleServerErrors(BAD_REQUEST)));\r\n });\r\n};\r\n\r\n//------fetch availed service ------\r\nexport const serviceAvailed = (token, key, flightLegId) => (dispatch) => {\r\n\r\n const url = SERVICES_AVAILED_URL\r\n .replace('{token}', token)\r\n .replace('{key}', key)\r\n .replace('{flightLegId}', flightLegId);\r\n\r\n dispatch(servicesAvailedInit(flightLegId));\r\n\r\n axios\r\n .get(url, HTTP_HEADERS_JSON)\r\n .then((response) => {\r\n if (response && response.data) {\r\n const responseHeader = response.data.responseHeaderDto;\r\n if (!responseHeader.isError) {\r\n const availedGTData = response.data.transportSummaryDtos;\r\n const availedASData = response.data.otherServiceDtos;\r\n dispatch(servicesAvailedSuccess(availedGTData, availedASData, flightLegId));\r\n } else {\r\n const errors = handleServerErrors(response.data.responseHeaderDto.statusCode);\r\n dispatch(servicesAvailedFail(flightLegId, errors));\r\n }\r\n } else {\r\n dispatch(servicesAvailedFail(flightLegId, SOMETHING_UNEXPECTED));\r\n }\r\n })\r\n .catch((err) => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(servicesAvailedFail(flightLegId, handleServerErrors(TIMEOUT_CODE.code)));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(servicesAvailedFail(flightLegId, handleServerErrors(UNAUTHORIZED)));\r\n }\r\n else dispatch(servicesAvailedFail(flightLegId, handleServerErrors(BAD_REQUEST)));\r\n });\r\n};\r\n\r\n","import { fetchGroundServices, } from '../sources/GroundServicesSource';\r\nimport {\r\n FETCH_GROUND_SERVICES_FAIL,\r\n FETCH_GROUND_SERVICES_INIT,\r\n FETCH_GROUND_SERVICES_SUCCESS,\r\n} from '../actionTypes';\r\n\r\nexport const fetchGroundServicesInit = () => ({\r\n type: FETCH_GROUND_SERVICES_INIT,\r\n});\r\n\r\nexport const fetchGroundServicesSuccess = servicesOptions => ({\r\n type: FETCH_GROUND_SERVICES_SUCCESS,\r\n data: servicesOptions,\r\n});\r\n\r\nexport const fetchGroundServicesFail = (data) => ({\r\n type: FETCH_GROUND_SERVICES_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchAllGroundServices = (token, itineraryType, pageNum) => fetchGroundServices(token, itineraryType, pageNum);\r\n","import axios from 'axios';\r\nimport { FLIGHT_CANCEL_URL } from '../../configs/constants';\r\nimport {\r\n flightCancelInit,\r\n flightCancelSuccess,\r\n flightCancelFail,\r\n} from '../actions';\r\nimport { flightPayload } from '../../utils/itinerariesUtils';\r\nimport { parseXmlStringToJson } from '../../utils/parserUtils';\r\nimport {\r\n isAdhoc,\r\n isFSP,\r\n isVJ2,\r\n} from '../../utils/userUtils';\r\n\r\nconst status = {\r\n OK: 200,\r\n};\r\n\r\nexport const flightCancelSource = (token, accountId, leg, user, orderId) => (dispatch) => {\r\n let url;\r\n url = FLIGHT_CANCEL_URL.replace('{token}', token);\r\n const userType = {\r\n isVJ2: isVJ2(user),\r\n isAdhoc: isAdhoc(user),\r\n isFSP: isFSP(user),\r\n };\r\n const reqPayload = flightPayload(userType, leg, orderId, accountId);\r\n const options = {\r\n headers: {\r\n \"Accept\": \"application/xml\",\r\n \"Content-Type\": \"application/xml\",\r\n }\r\n };\r\n dispatch(flightCancelInit());\r\n axios\r\n .post(url, reqPayload, options)\r\n .then((response) => {\r\n if (response && response.status === status.OK) {\r\n const jsonData = parseXmlStringToJson(response.data);\r\n const jsonResponse = jsonData.ResponseBody.responseHeader.message\r\n dispatch(flightCancelSuccess(jsonResponse));\r\n } else {\r\n dispatch(flightCancelFail());\r\n }\r\n })\r\n .catch(() => {\r\n dispatch(flightCancelFail());\r\n });\r\n};\r\n\r\nexport default flightCancelSource;\r\n","import flightCancelSource from '../sources/FlightCancelSource';\r\nimport {\r\n FLIGHT_CANCEL_INIT,\r\n FLIGHT_CANCEL_SUCCESS,\r\n FLIGHT_CANCEL_FAILURE,\r\n FLIGHT_CANCEL_AFTER_SUCCESS,\r\n} from '../actionTypes';\r\n\r\nexport const flightCancelInit = () => ({\r\n type: FLIGHT_CANCEL_INIT,\r\n});\r\n\r\nexport const flightCancelSuccess = (data) => ({\r\n type: FLIGHT_CANCEL_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const flightCancelFail = (data) => ({\r\n type: FLIGHT_CANCEL_FAILURE,\r\n data,\r\n});\r\n\r\nexport const flightCancelAfterSuccess = () => ({\r\n type: FLIGHT_CANCEL_AFTER_SUCCESS,\r\n});\r\n\r\nexport const flightCancel = (token, accountId, leg, user, orderId) => flightCancelSource(token, accountId, leg, user, orderId);\r\n","import axios from 'axios';\r\nimport { FETCH_MOVEMENT_MESSAGES } from '../../configs/constants';\r\nimport { parseXmlStringToJson } from \"../../utils/parserUtils\";\r\nimport {\r\n fetchMovementMessagesInit,\r\n fetchMovementMessagesSuccess,\r\n fetchMovementMessagesFail,\r\n} from '../actions';\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\n\r\nconst status = {\r\n OK: 200,\r\n};\r\n\r\nconst movementMessagesPromiseInprogress = {};\r\n\r\nconst fetchMovementMessagesSource = (token, flightLegId) => (dispatch) => {\r\n const uniqueKey = flightLegId;\r\n if (movementMessagesPromiseInprogress[uniqueKey]) {\r\n return movementMessagesPromiseInprogress[uniqueKey];\r\n }\r\n const movementMessagesPromise = new Promise((resolve, reject) => {\r\n const url = FETCH_MOVEMENT_MESSAGES.replace('{token}', token).replace('{flightId}', flightLegId);\r\n dispatch(fetchMovementMessagesInit(flightLegId));\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n const parsedData = parseXmlStringToJson(response.data);\r\n dispatch(fetchMovementMessagesSuccess(parsedData, flightLegId));\r\n resolve(parsedData);\r\n } else {\r\n const parsedData = parseXmlStringToJson(response.data);\r\n const errors = handleServerErrors(parsedData.status);\r\n dispatch(fetchMovementMessagesFail(errors, flightLegId));\r\n reject(errors);\r\n }\r\n delete movementMessagesPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(fetchMovementMessagesFail(errors, flightLegId));\r\n reject(errors);\r\n delete movementMessagesPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n movementMessagesPromiseInprogress[uniqueKey] = movementMessagesPromise;\r\n return movementMessagesPromise;\r\n};\r\n\r\nexport default fetchMovementMessagesSource;\r\n","import fetchMovementMessagesSource from '../sources/MovementMessagesSource';\r\nimport {\r\n FETCH_MOVEMENT_MESSAGES_INIT,\r\n FETCH_MOVEMENT_MESSAGES_SUCCESS,\r\n FETCH_MOVEMENT_MESSAGES_FAIL,\r\n} from '../actionTypes';\r\n\r\nexport const fetchMovementMessagesInit = (flightLegId) => ({\r\n type: FETCH_MOVEMENT_MESSAGES_INIT,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchMovementMessagesSuccess = (data, flightLegId) => ({\r\n type: FETCH_MOVEMENT_MESSAGES_SUCCESS,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchMovementMessagesFail = (data, flightLegId) => ({\r\n type: FETCH_MOVEMENT_MESSAGES_FAIL,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchMovementMessages = (token, flightLegId) => fetchMovementMessagesSource(token, flightLegId);\r\n","import axios from \"axios\";\r\nimport { FORECAST_URL } from \"../../configs/constants\";\r\nimport {\r\n fetchWeatherInit,\r\n fetchWeatherSuccess,\r\n fetchWeatherFail\r\n } from \"../actions\";\r\n import {\r\n handleServerErrors,\r\n } from '../../utils/sourceUtils';\r\n \r\n const status = {\r\n OK: 200,\r\n };\r\n \r\nconst toCentigrade = (temperature) => ((temperature - 32) * 5 / 9);\r\n\r\nconst normalizeForecast = (data) => {\r\n const {\r\n currently,\r\n } = data;\r\n if (currently.icon && currently.summary && currently.temperature) {\r\n return {\r\n icon: currently.icon,\r\n summary: currently.summary,\r\n temperature: currently.temperature,\r\n centigrade: Math.round(toCentigrade(currently.temperature)),\r\n };\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst weatherPromiseInprogress = {};\r\n\r\nconst fetchWeather = (lat, long, time, key, flightLegId) => (dispatch) => {\r\n const uniqueKey = `${flightLegId}-${lat}-${long}-${time}-${key}`;\r\n if (weatherPromiseInprogress[uniqueKey]) {\r\n return weatherPromiseInprogress[uniqueKey];\r\n }\r\n const weatherPromise = new Promise((resolve, reject) => {\r\n const url = FORECAST_URL\r\n .replace('{lat}', lat)\r\n .replace('{long}', long)\r\n .replace('{time}', time);\r\n dispatch(fetchWeatherInit(flightLegId, key));\r\n axios\r\n .get('https://cors-anywhere.herokuapp.com/' + url)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n const weatherDetail = normalizeForecast(response.data);\r\n dispatch(fetchWeatherSuccess(weatherDetail, key, flightLegId));\r\n resolve(weatherDetail);\r\n } else {\r\n const errors = handleServerErrors(response.status);\r\n dispatch(fetchWeatherFail(errors, key, flightLegId));\r\n reject(errors);\r\n }\r\n delete weatherPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n const errors = handleServerErrors(\r\n err.response\r\n ? err.response.status\r\n : err.response,\r\n );\r\n dispatch(fetchWeatherFail(errors, key, flightLegId));\r\n reject(errors);\r\n delete weatherPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n weatherPromiseInprogress[uniqueKey] = weatherPromise;\r\n return weatherPromise;\r\n};\r\n\r\nexport default fetchWeather;\r\n","import fetchWeather from '../sources/WeatherSource';\r\nimport {\r\n FETCH_WEATHER_INIT,\r\n FETCH_WEATHER_SUCCESS,\r\n FETCH_WEATHER_FAIL,\r\n} from '../actionTypes';\r\n\r\nexport const fetchWeatherInit = (flightLegId, key) => ({\r\n type: FETCH_WEATHER_INIT,\r\n flightLegId,\r\n key\r\n});\r\n\r\nexport const fetchWeatherSuccess = (data, key, flightLegId) => ({\r\n type: FETCH_WEATHER_SUCCESS,\r\n data,\r\n flightLegId,\r\n key\r\n});\r\n\r\nexport const fetchWeatherFail = (data, key, flightLegId) => ({\r\n type: FETCH_WEATHER_FAIL,\r\n data,\r\n flightLegId,\r\n key\r\n});\r\n\r\nexport const fetchWeatherDetails = (lat, long, time, key, flightLegId) => fetchWeather(lat, long, time, key, flightLegId);","import { garanteeArray } from '../utils/sourceUtils';\r\nimport { CATERING_SERVICE_GENERAL } from '../constants/CateringConstants';\r\n\r\nconst normalizeSelectionList = (selection) => ({\r\n id: +selection.id,\r\n quantity: +selection.quantity,\r\n customerNotes: selection.customerNotes,\r\n toShare: !!selection.toShare,\r\n // default values below for 'toShare'\r\n personId: +selection.personId || 0,\r\n paxName: selection.paxName || 'To Share',\r\n});\r\n\r\nconst normalizeItemList = (item, category) => ({\r\n id: +item.id,\r\n cateringType: category,\r\n description: item.description,\r\n rank: +item.rank,\r\n title: item.title,\r\n unit: item.unit,\r\n service: item.service || CATERING_SERVICE_GENERAL,\r\n selectionList: garanteeArray((item.orSelectionList || {}).orderRequestSelection)\r\n .map(normalizeSelectionList),\r\n});\r\n\r\nconst normalizeServices = (categories) => {\r\n const services = {};\r\n categories.forEach((category) => {\r\n category.itemList.forEach((item) => {\r\n let service = CATERING_SERVICE_GENERAL;\r\n if (item.service) service = item.service;\r\n if (!services[service]) {\r\n services[service] = {};\r\n }\r\n if (!services[service][category.cateringCategory]) {\r\n services[service][category.cateringCategory] = [];\r\n }\r\n services[service][category.cateringCategory].push(item);\r\n });\r\n });\r\n return services;\r\n};\r\n\r\nconst normalizeCategories = (category) => ({\r\n cateringCategory: category.cateringCategory,\r\n id: +category.id,\r\n rank: +category.rank,\r\n itemList: garanteeArray((category.orList || {}).orderRequest)\r\n .map(i => normalizeItemList(i, category.cateringCategory)),\r\n});\r\n\r\nconst normalizeSupplier = (supplier) => {\r\n const categories = garanteeArray((supplier.orCategoryList || {}).orderRequestCategory)\r\n .map(normalizeCategories);\r\n const services = normalizeServices(categories);\r\n return {\r\n serviceProviderId: +supplier.serviceProviderId,\r\n supplierDisplayName: supplier.supplierDisplayName,\r\n supplierName: supplier.supplierName,\r\n categories,\r\n services,\r\n };\r\n};\r\n\r\nconst normalizeCateringOrderUtil = (cateringObj) => {\r\n const suppliers = garanteeArray(((((cateringObj || {}).cateringModuleDetail || {})\r\n .orSupplierList) || {}).orderRequestSupplier);\r\n return suppliers.map(normalizeSupplier);\r\n};\r\n\r\nexport default normalizeCateringOrderUtil;\r\n","import { normalizePaxForCateringData } from 'utils/passengerUtils';\r\nimport { garanteeArray } from 'utils/sourceUtils';\r\n\r\nfunction normalizeData(leg, routeParams) {\r\n return {\r\n cateringStatus: (leg.cateringModuleState || {}).stateName,\r\n stateId: (leg.cateringModuleState || {}).stateId,\r\n isPast: leg.isPast,\r\n arrivalAirportTimeLocal: leg.arrivalAirportTimeLocal,\r\n arrivalAirportId: leg.arrivalAirportId,\r\n departureAirportTimeLocal: leg.departureAirportTimeLocal,\r\n departureAirportTimeUTC: leg.departureAirportTimeUTC,\r\n departureAirportId: leg.departureAirportId,\r\n passengersInfo: (garanteeArray(leg.passengersInfo) || []).map(normalizePaxForCateringData),\r\n legId: (leg.legId || ''),\r\n flightLegExtIdentifier: (leg.flightLegExtIdentifier || ''),\r\n key: routeParams.key,\r\n within24Hours: leg.within24Hours,\r\n };\r\n}\r\n\r\nfunction normalizeCateringUtil(leg, params) {\r\n return normalizeData(leg, params);\r\n}\r\n\r\nexport default normalizeCateringUtil;\r\n","import {\r\n parseString,\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\nimport {\r\n HTTP_HEADERS,\r\n} from '../../constants/ApiConstants';\r\nimport {\r\n CATERING_STATE_URL,\r\n CATERING_SELECTION_PDF,\r\n CATERING_PROPOSAL_URL,\r\n CUSTOMER_SELECTION_URL\r\n} from '../../configs/constants';\r\n\r\nimport { LEGACY_ERROR_MESSAGES } from '../../constants/ErrorMessageConstants';\r\nimport { parseXmlStringToJson, jsonToXml } from '../../utils/parserUtils';\r\nimport * as actions from '../actions';\r\nimport * as HttpStatus from \"http-status-codes\";\r\nimport axios from 'axios';\r\nimport normalizeCateringOrderUtil from '../../normalizers/normalizeCateringOrder';\r\nimport normalizeCateringUtil from '../../normalizers/normalizeCatering'\r\nimport { changeCateringPropsalInit, changeCateringPropsalSuccess } from '../actions';\r\nimport { SOMETHING_UNEXPECTED } from \"../../constants/MessageConstants\";\r\n\r\nconst inProgressProposals = {};\r\nconst inProgressState = {};\r\n\r\nexport const getCateringState = (token, leg) => (dispatch) => {\r\n const flightId = leg.legId;\r\n const uniqueKey = `${flightId}-${token}`;\r\n\r\n if (inProgressState[uniqueKey]) {\r\n return inProgressState[uniqueKey];\r\n }\r\n\r\n const cateringStatePromise = new Promise((resolve, reject) => {\r\n if (!leg.legId) {\r\n reject({ text: LEGACY_ERROR_MESSAGES['400'] });\r\n return;\r\n }\r\n const url = CATERING_STATE_URL\r\n .replace('{token}', token)\r\n .replace('{flightId}', flightId);\r\n\r\n dispatch(actions.getCateringState(flightId));\r\n axios\r\n .get(url)\r\n .then((res) => {\r\n delete inProgressState[uniqueKey];\r\n if (res.status === HttpStatus.OK) {\r\n parseString(res.data, (parseErr, response) => {\r\n if (parseErr) {\r\n dispatch(actions.getCateringStateFail('Something went wrong'))\r\n reject();\r\n } else {\r\n const combineResponse = Object.assign({}, leg, response);\r\n const responseObj = normalizeCateringUtil(combineResponse, leg);\r\n delete inProgressState[uniqueKey];\r\n dispatch(actions.getCateringStateSuccess(responseObj));\r\n resolve(responseObj);\r\n }\r\n });\r\n }\r\n else {\r\n dispatch(actions.getCateringStateFail((handleServerErrors(res.status))));\r\n }\r\n })\r\n .catch(err => {\r\n dispatch(actions.getCateringStateFail((handleServerErrors(err))));\r\n });\r\n });\r\n inProgressState[uniqueKey] = cateringStatePromise;\r\n return cateringStatePromise;\r\n}\r\n\r\nexport const getCateringProposal = (token, flightId) => (dispatch) => {\r\n\r\n if (inProgressProposals[flightId]) {\r\n return inProgressProposals[flightId];\r\n }\r\n\r\n const proposalPromise = new Promise((resolve, reject) => {\r\n if (!flightId) {\r\n dispatch(actions.getCateringProposalFail('Something went wrong'));\r\n return;\r\n }\r\n\r\n const url = CATERING_PROPOSAL_URL.replace('{token}', token).replace('{flightId}', flightId);\r\n dispatch(actions.getCateringProposalInit(flightId));\r\n axios\r\n .get(url)\r\n .then((res) => {\r\n delete inProgressProposals[flightId];\r\n parseString(res.data, (parseErr, response) => {\r\n if (parseErr) {\r\n dispatch(actions.getCateringProposalFail(handleServerErrors(parseErr)));\r\n reject();\r\n } else {\r\n const responseObj = normalizeCateringOrderUtil(response);\r\n delete inProgressProposals[flightId];\r\n responseObj.legId = flightId;\r\n dispatch(actions.getCateringProposalSuccess(responseObj));\r\n }\r\n });\r\n }).catch(err => {\r\n dispatch(actions.getCateringProposalFail(handleServerErrors(err)));\r\n reject();\r\n });\r\n });\r\n\r\n inProgressProposals[flightId] = proposalPromise;\r\n return proposalPromise;\r\n}\r\n\r\nexport const changeCateringSelection = (token, flightId, cateringSelection, leg) => (dispatch) => {\r\n \r\n return new Promise((resolve, reject) => {\r\n if (!flightId || !cateringSelection) {\r\n reject({ text: LEGACY_ERROR_MESSAGES['400'] });\r\n return;\r\n }\r\n\r\n if (inProgressProposals[flightId]) {\r\n delete inProgressProposals[flightId];\r\n }\r\n\r\n let reqPayload = {\r\n customerSelections: {\r\n flightLegId: flightId,\r\n customerSelectionEntries: {\r\n customerSelectionEntry: cateringSelection,\r\n },\r\n },\r\n };\r\n\r\n reqPayload = jsonToXml(reqPayload);\r\n\r\n const url = CUSTOMER_SELECTION_URL.replace('{token}', token);\r\n dispatch(changeCateringPropsalInit(flightId));\r\n axios\r\n .put(url, reqPayload, {\r\n headers: HTTP_HEADERS,\r\n }).then((res) => {\r\n if (inProgressProposals[flightId]) {\r\n delete inProgressProposals[flightId];\r\n }\r\n dispatch(changeCateringPropsalSuccess(flightId))\r\n dispatch(getCateringState(token, leg));\r\n dispatch(getCateringProposal(token, flightId));\r\n dispatch(fetchCateringSelectionPDF(token, flightId));\r\n \r\n resolve();\r\n }).catch(err => {\r\n dispatch(actions.changeCateringPropsalFail(handleServerErrors(err)));\r\n reject();\r\n });\r\n });\r\n}\r\n\r\nexport const fetchCateringSelectionPDF = (token, params) => dispatch => {\r\n return new Promise((resolve, reject) => {\r\n const url = CATERING_SELECTION_PDF.replace('{token}', token)\r\n .replace('{flightLegId}', params);\r\n dispatch(actions.getCateringPDFInit(params))\r\n axios\r\n .get(url)\r\n .then((res) => {\r\n parseString(res.data, (parseErr, res) => {\r\n if (parseErr) {\r\n dispatch(actions.getCateringPDFFail({ text: SOMETHING_UNEXPECTED, legId: params } ))\r\n reject({ text: SOMETHING_UNEXPECTED });\r\n }else{\r\n resolve({ fileUrl: res.fileUrlResponse.fileUrl, legId: params });\r\n dispatch(actions.getCateringPDFSuccess({ fileUrl: res.fileUrlResponse.fileUrl, legId: params }))\r\n }\r\n });\r\n })\r\n .catch(err => {\r\n reject(handleServerErrors(err));\r\n dispatch(actions.getCateringPDFFail({ text: handleServerErrors(err), legId: params }))\r\n });\r\n });\r\n}\r\n","import * as cateringSources from '../sources/CateringSource';\r\nimport * as types from \"../actionTypes\";\r\n\r\nexport const getCateringState = data => ({\r\n type: types.GET_CATERING_STATE_INIT,\r\n data\r\n});\r\n\r\nexport const getCateringStateFail = data => ({\r\n type: types.GET_CATERING_STATE_FAIL,\r\n data\r\n});\r\n\r\nexport const getCateringStateSuccess = data => ({\r\n type: types.GET_CATERING_STATE_SUCCESS,\r\n data\r\n});\r\n\r\nexport const getCateringProposalInit = (data) => ({\r\n type: types.GET_CATERING_PROPOSAL_INIT,\r\n data\r\n})\r\n\r\nexport const getCateringProposalFail = data => ({\r\n type: types.GET_CATERING_PROPOSAL_FAIL,\r\n data\r\n})\r\n\r\nexport const getCateringProposalSuccess = data => ({\r\n type: types.GET_CATERING_PROPOSAL_SUCCESS,\r\n data\r\n})\r\n\r\nexport const changeCateringPropsalInit = (data) => ({\r\n type: types.CHANGE_CATERING_PROPOSAL_INIT,\r\n data\r\n})\r\n\r\nexport const changeCateringPropsalFail = data => ({\r\n type: types.CHANGE_CATERING_PROPOSAL_FAIL,\r\n data\r\n})\r\n\r\nexport const changeCateringPropsalSuccess = data => ({\r\n type: types.CHANGE_CATERING_PROPOSAL_SUCCESS,\r\n data\r\n})\r\n\r\nexport const getCateringPDFInit = (data) => ({\r\n type: types.GET_CATERING_PDF_FAIL,\r\n data\r\n})\r\n\r\nexport const getCateringPDFFail = data => ({\r\n type: types.GET_CATERING_PDF_FAIL,\r\n data\r\n})\r\n\r\nexport const getCateringPDFSuccess = data => ({\r\n type: types.GET_CATERING_PDF_SUCCESS,\r\n data\r\n})\r\n\r\n\r\nexport const getCateringStateAction = (token, leg) => cateringSources.getCateringState(token, leg);\r\nexport const getCateringProposalAction = (token, flightId) => cateringSources.getCateringProposal(token, flightId);\r\nexport const changeCateringProposalAction = (token, flightId, cateringSelection, leg) => cateringSources.changeCateringSelection(token, flightId, cateringSelection, leg);\r\nexport const getCateringPDFAction = (token, flightId) => cateringSources.fetchCateringSelectionPDF(token, flightId);","import axios from 'axios';\r\nimport { FETCH_SINGLE_LEG_PAX } from '../../configs/constants';\r\nimport {\r\n HTTP_HEADERS_JSON,\r\n} from '../../constants/ApiConstants';\r\nimport {\r\n handleServerErrors,\r\n} from '../../utils/sourceUtils';\r\nimport { clone } from '../../utils/Helpers';\r\nimport { getLegKey } from '../../utils/itinerariesUtils';\r\nimport { normalizePassengerUtil } from '../../normalizers/PassengerNormalizer';\r\nimport * as actions from '../actions';\r\n\r\nconst inprogressLegPaxPromise = {};\r\nconst isError = (obj) => (obj.isError);\r\n\r\nexport const fetchSingleLegPax = (token, data) => (dispatch) => {\r\n const { legId } = data.params;\r\n const uniqueKey = `${legId}-${token}`;\r\n\r\n if (inprogressLegPaxPromise[uniqueKey]) {\r\n return inprogressLegPaxPromise[uniqueKey];\r\n }\r\n\r\n const legKey = getLegKey(legId);\r\n const url = FETCH_SINGLE_LEG_PAX\r\n .replace('{token}', token)\r\n .replace('{flightLegKey}', legKey)\r\n .replace('{flightLegId}', legId);\r\n const legPaxPromise = new Promise((resolve, reject) => {\r\n dispatch(actions.fetchPassengerInit(legId));\r\n axios\r\n .get(url, HTTP_HEADERS_JSON)\r\n .then((res) => {\r\n try {\r\n const response = res.data;\r\n // on error\r\n if (isError(response.responseHeaderDto)) {\r\n reject(handleServerErrors(response.status));\r\n }\r\n const leg = clone(data.leg);\r\n // leg.departureAirport = getAirportById(leg.departureAirportId);\r\n const normalizedData = normalizePassengerUtil(response.passengersInfoResponseDtoList,\r\n { ...data.params }, leg);\r\n delete inprogressLegPaxPromise[uniqueKey];\r\n const responseData = {\r\n normalizedData,\r\n leg,\r\n };\r\n dispatch(actions.fetchPassengerSuccess(responseData, legId));\r\n resolve(responseData);\r\n } catch (error) {\r\n dispatch(actions.fetchPassengerFail(legId));\r\n reject(new Error('Something went wrong'));\r\n delete inprogressLegPaxPromise[uniqueKey];\r\n }\r\n }).catch(err => {\r\n if (err) {\r\n reject(handleServerErrors(err));\r\n }\r\n dispatch(actions.fetchPassengerFail(legId));\r\n delete inprogressLegPaxPromise[uniqueKey];\r\n });\r\n });\r\n inprogressLegPaxPromise[uniqueKey] = legPaxPromise;\r\n return legPaxPromise;\r\n};\r\n\r\nexport default fetchSingleLegPax;\r\n","import { fetchSingleLegPax } from '../sources/PassengerSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const updatePassengers = (data) => ({\r\n type: types.UPDATE_PASSENGER,\r\n data,\r\n});\r\nexport const fetchPassengerInit = (flightLegId) => ({\r\n type: types.FETCH_PASSENGER_INIT,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchPassengerSuccess = (data, flightLegId) => ({\r\n type: types.FETCH_PASSENGER_SUCCESS,\r\n data,\r\n flightLegId,\r\n});\r\n\r\nexport const fetchPassengerFail = (flightLegId) => ({\r\n type: types.FETCH_PASSENGER_FAIL,\r\n flightLegId,\r\n});\r\n\r\nexport const startedUpdatingPassenger = () => ({\r\n type: types.STARTED_UPDATING_PASSENGER,\r\n});\r\n\r\nexport const finishedUpdatingPassenger = () => ({\r\n type: types.FINISHED_UPDATING_PASSENGER,\r\n});\r\n\r\nexport const fetchPassengers = (token, data) => fetchSingleLegPax(token, data);\r\n","import axios from \"axios\";\r\nimport { GET_AIRCRAFTS_URL } from \"../../configs/constants\";\r\nimport { parseString } from \"../../utils/parserUtils\";\r\nimport status from \"../../configs/status\";\r\nimport {\r\n getAircraftsInit,\r\n getAircraftsSuccess,\r\n getAircraftsFailure,\r\n} from \"../actions\";\r\nimport noramlizeAircrafts from \"../../normalizers/AircraftNormalizer\";\r\n\r\nexport const getAircraftsList = () => dispatch => {\r\n dispatch(getAircraftsInit());\r\n dispatch(getAircraftsFailure());\r\n\r\n// API call always fails due to issue in API. So, commenting out the API call and using the mock data.\r\n/* axios\r\n .get(GET_AIRCRAFTS_URL)\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n parseString(response.data, (parseErr, result) => {\r\n if (parseErr) {\r\n dispatch(getAircraftsFailure());\r\n } else {\r\n const normalizedAircrafts = noramlizeAircrafts(result);\r\n //console.log(normalizedAircrafts);\r\n dispatch(getAircraftsSuccess(normalizedAircrafts));\r\n }\r\n });\r\n }\r\n })\r\n .catch(err => {\r\n dispatch(getAircraftsFailure(err));\r\n }); */\r\n};\r\n","import * as types from \"../actionTypes\";\r\nimport { getAircraftsList } from \"../sources/AircraftSource\";\r\n\r\nexport const getAircraftsInit = () => ({\r\n type: types.GET_AIRCRAFTS_INIT\r\n});\r\n\r\nexport const getAircraftsSuccess = (data) => ({\r\n type: types.GET_AIRCRAFTS_SUCCESS,\r\n data\r\n});\r\n\r\nexport const getAircraftsFailure = (data) => ({\r\n type: types.GET_AIRCRAFTS_FAILURE,\r\n data\r\n});\r\n\r\nexport const getAircraftsAction = () => getAircraftsList();\r\n","export const CUSTOMER_FEEDBACK_SUBMITTED = 'Thank you for submitting your feedback.';\r\nexport const FEEDBACK_ALREADY_EXIST = 'Feedback already exist. Please refresh the page to know the rating.';\r\nexport const FEEDBACK_CONFIRMATION = 'Are you sure you would like to submit your feedback?' +\r\n ' Please note that feedback cannot be changed once submitted.';\r\nexport const UPCOMING_FEEDBACK_MSG =\r\n 'You will be able to submit your flight feedback after arrival.';\r\nexport const SUBMIT_CUSTOMER_FEEDBACK = 'We are committed to improving your flight experience.' +\r\n ' How would you rate your flight?';\r\nexport const UPCOMING_FLIGHT_FEEDBACK = 'Sorry you cannot submit your feedback before your flight.';\r\nexport const RATING_LABEL = [null, 'Poor', 'Fair', 'Good', 'Very Good', 'Excellent'];\r\n\r\nexport const GLITCH_TYPE = {\r\n catering: 4,\r\n 'cabin-comfort': 5,\r\n 'on-board': 20,\r\n transportation: 21,\r\n overall: 22,\r\n};\r\n\r\nexport const FEEDBACK_TYPE = {\r\n 1: 'Bad',\r\n 2: 'Unsatisfactory',\r\n 3: 'Good',\r\n 4: 'Very Good',\r\n 5: 'Excellent',\r\n};\r\n","import { CUSTOMER_APP_ID } from \"../configs/constants\";\r\nimport { GLITCH_TYPE } from \"../constants/feedbackConstants\";\r\nimport { isEmpty } from \"../utils/arrayUtils\";\r\n\r\nexport const normalizeFeedback = params => {\r\n let feedbackObject = {\r\n legId: \"\",\r\n feedbackRating: \"\",\r\n categoryRatingTypeId: \"\",\r\n comments: \"\"\r\n };\r\n const feedbackResponse = (params && params.feedbacksResponse) || [];\r\n feedbackResponse.forEach(item => {\r\n feedbackObject.legId = item.flightLegId;\r\n if (item.glitchTypeId && item.glitchTypeId === 22) {\r\n feedbackObject.feedbackRating = item.feedbackTypeId;\r\n feedbackObject.categoryRatingTypeId = item.glitchTypeId;\r\n feedbackObject.comments = item.feedbackDescription || \"\";\r\n }\r\n });\r\n return feedbackObject;\r\n};\r\n\r\nexport const noramlizeSaveFeedbackParams = ({\r\n servicesFeedbacks,\r\n legId,\r\n feedbackIdentifier,\r\n personId\r\n}) => {\r\n const feedbacks = [];\r\n Object.keys(servicesFeedbacks).forEach(key => {\r\n if (!isEmpty(servicesFeedbacks[key])) {\r\n feedbacks.push({\r\n flightLegId: legId,\r\n feedbackTypeId: servicesFeedbacks[key].rating,\r\n glitchOriginId: CUSTOMER_APP_ID,\r\n glitchTypeId: GLITCH_TYPE[servicesFeedbacks[key].category],\r\n feedbackDescription: servicesFeedbacks[key].desc\r\n });\r\n }\r\n });\r\n const params = {\r\n feedbacks,\r\n flightLegId: legId,\r\n feedbackIdentifier,\r\n userId: personId,\r\n feedbackReporterId: personId,\r\n immediateAttention: 1\r\n };\r\n return params;\r\n};\r\n\r\nexport const normalizeSaveFeedback = (params) => {\r\n const saveFeedbackResponse = params && params.feedbacksResponse || [];\r\n return saveFeedbackResponse.map((item) => ({\r\n feedbackId: item.feedbackId,\r\n feedbackRating: true,\r\n }));\r\n}\r\n","import axios from \"axios\";\r\nimport {\r\n FETCH_SINGLE_LEG_FEEDBACK,\r\n SAVE_LEG_FEEDBACK,\r\n} from \"../../configs/constants\";\r\nimport { USER_REDUCER } from \"../../constants/localStorageKeys\";\r\nimport {\r\n normalizeFeedback,\r\n noramlizeSaveFeedbackParams\r\n} from \"../../normalizers/customerFeedbackNoramlizer\";\r\nimport {\r\n fetchLegFeedbackInit,\r\n fetchLegFeedbackSuccess,\r\n fetchLegFeedbackFail,\r\n saveLegFeedbackInit,\r\n saveLegFeedbackSuccess,\r\n saveLegFeedbackFail\r\n} from \"../actions\";\r\nimport { existInLocal, getFromLocal } from \"../../utils/cache\";\r\nimport { handleServerErrors } from \"../../utils/sourceUtils\";\r\nimport {\r\n INVALID_FEEDBACK_CODE,\r\n TIMEOUT_CODE,\r\n BAD_REQUEST\r\n} from \"../../constants/ServerCodeConstants\";\r\nimport status from \"../../configs/status\";\r\n\r\nexport const fetchLegFeedbackSource = params => dispatch => {\r\n dispatch(fetchLegFeedbackInit(params.legId));\r\n let token = \"\";\r\n if (existInLocal(USER_REDUCER)) {\r\n const { user } = getFromLocal(USER_REDUCER, true, true);\r\n token = user.userToken;\r\n }\r\n const options = {\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n },\r\n timeout: 120000\r\n };\r\n const paramsObj = {\r\n flightLegIds: [params.legId]\r\n };\r\n const url = FETCH_SINGLE_LEG_FEEDBACK.replace(\"{token}\", token);\r\n axios\r\n .post(url, paramsObj, options)\r\n .then(response => {\r\n const noramalizedFeedback = normalizeFeedback(response.data);\r\n dispatch(fetchLegFeedbackSuccess(noramalizedFeedback, params.legId));\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(\r\n fetchLegFeedbackFail(\r\n handleServerErrors(TIMEOUT_CODE.code),\r\n params.legId\r\n )\r\n );\r\n } else if (err.code === INVALID_FEEDBACK_CODE.code) {\r\n dispatch(\r\n fetchLegFeedbackFail(\r\n handleServerErrors(INVALID_FEEDBACK_CODE.code),\r\n params.legId\r\n )\r\n );\r\n } else\r\n dispatch(\r\n fetchLegFeedbackFail(\r\n handleServerErrors(BAD_REQUEST, params.legId),\r\n params.legId\r\n )\r\n );\r\n });\r\n};\r\nexport const saveLegFeedbackSource = params => dispatch => {\r\n dispatch(saveLegFeedbackInit(params.legId));\r\n const constructParamsForCall = noramlizeSaveFeedbackParams(params);\r\n\r\n const options = {\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n },\r\n timeout: 120000\r\n };\r\n const url = SAVE_LEG_FEEDBACK.replace(\"{token}\", params.token);\r\n axios\r\n .post(url, constructParamsForCall, options)\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n if (response.data.responseHeader.isError) {\r\n dispatch(saveLegFeedbackFail(params.legId));\r\n } else {\r\n const noramalizedFeedback = normalizeFeedback({\r\n feedbacksResponse: constructParamsForCall.feedbacks\r\n });\r\n dispatch(saveLegFeedbackSuccess(noramalizedFeedback, params.legId));\r\n }\r\n }\r\n })\r\n .catch(err => {\r\n dispatch(saveLegFeedbackFail(params.legId));\r\n });\r\n};\r\n","import {\r\n fetchLegFeedbackSource,\r\n saveLegFeedbackSource\r\n} from \"../sources/CustomerFeedbackSource\";\r\n\r\nimport {\r\n FETCH_LEG_FEEDBACK_INIT,\r\n FETCH_LEG_FEEDBACK_SUCCESS,\r\n FETCH_LEG_FEEDBACK_FAIL,\r\n SAVE_LEG_FEEDBACK_INIT,\r\n SAVE_LEG_FEEDBACK_SUCCESS,\r\n SAVE_LEG_FEEDBACK_FAIL,\r\n CLEAR_FEEDBACK\r\n} from \"../actionTypes\";\r\n\r\nexport const fetchLegFeedbackInit = flightLegId => ({\r\n type: FETCH_LEG_FEEDBACK_INIT,\r\n flightLegId\r\n});\r\n\r\nexport const fetchLegFeedbackSuccess = (data, flightLegId) => ({\r\n type: FETCH_LEG_FEEDBACK_SUCCESS,\r\n data,\r\n flightLegId\r\n});\r\n\r\nexport const fetchLegFeedbackFail = (data, flightLegId) => ({\r\n type: FETCH_LEG_FEEDBACK_FAIL,\r\n data,\r\n flightLegId\r\n});\r\n\r\nexport const saveLegFeedbackInit = flightLegId => ({\r\n type: SAVE_LEG_FEEDBACK_INIT,\r\n flightLegId\r\n});\r\n\r\nexport const saveLegFeedbackSuccess = (data, flightLegId) => ({\r\n type: SAVE_LEG_FEEDBACK_SUCCESS,\r\n data,\r\n flightLegId\r\n});\r\n\r\nexport const saveLegFeedbackFail = flightLegId => ({\r\n type: SAVE_LEG_FEEDBACK_FAIL,\r\n flightLegId\r\n});\r\n\r\nexport const clearFeedbackError = flightLegId => ({\r\n type: CLEAR_FEEDBACK,\r\n flightLegId\r\n});\r\n\r\nexport const fetchLegFeedback = params => fetchLegFeedbackSource(params);\r\nexport const saveLegFeedback = params => saveLegFeedbackSource(params);\r\n","import { dateFormats } from \"utils/dateUtils\";\r\nimport moment from 'moment';\r\n\r\nexport const normalizeLeg = (leg) => {\r\n return {\r\n legId: leg.legId || '',\r\n arrivalAirportId: leg.arrivalAirportId || '',\r\n departureAirportId: leg.departureAirportId || '',\r\n departureAirportTimeLocal: leg.departureAirportTimeLocal || '',\r\n departureAirportTimeUTC: leg.departureAirportTimeUTC || '',\r\n arrivalAirportTimeLocal: leg.arrivalAirportTimeLocal || '',\r\n arrivalAirportTimeUTC: leg.arrivalAirportTimeUTC || '',\r\n duration: leg.defaultDurationMinutes || moment.duration(moment(leg.arrivalAirportTimeUTC)\r\n .diff(moment(leg.departureAirportTimeUTC))).asMinutes(),\r\n aircraftTypeName: leg.aircraftTypeName || '',\r\n requestedAircraftTypeName: leg.requestedAircraftTypeName || '',\r\n aircraftTailNumber: leg.aircraftTailNumber || null,\r\n aircraftId: leg.aircraftTypeId || null,\r\n passengers: leg.numberOfPassenger || '',\r\n legStatus: leg.legStatus || '',\r\n version: leg.version || 0,\r\n currencyCode: leg.currencyCode || '',\r\n operatingCompanyName: leg.operatingCompanyName || '',\r\n };\r\n}\r\n\r\nconst getExpiryDate = (expiryDate, legsList) => {\r\n const _b = expiryDate.split(\" \");\r\n const newExpiryDate = moment(`${moment(_b[0], \"DD-MM-YYYY\").format('YYYY-MM-DD')}T${_b[1]}`);\r\n const expiryDateViaDepartureDate = moment(legsList.length &&\r\n legsList[0].departureAirportTimeUTC.split('T')[0]);\r\n if (newExpiryDate.isBefore(expiryDateViaDepartureDate)) {\r\n return newExpiryDate;\r\n }\r\n return expiryDateViaDepartureDate;\r\n}\r\n\r\nexport const normalizeMyQuotes = (itineraries) => {\r\n const normalizedItineraries = [];\r\n\r\n itineraries.forEach((itinerary) => {\r\n const { legs } = itinerary;\r\n const legsList = [];\r\n\r\n if (legs && legs.length) {\r\n legs.forEach((leg) => {\r\n legsList.push(normalizeLeg(leg));\r\n });\r\n }\r\n const { orderLegId, orderStatus, currencyCode,\r\n price, requestedDate, expiryDate, quotedDate } = itinerary;\r\n normalizedItineraries.push({\r\n id: orderLegId || '',\r\n orderStatus: orderStatus || '',\r\n currency: currencyCode || '',\r\n amount: +price || 0,\r\n legs: legsList,\r\n requestedDate: requestedDate || quotedDate,\r\n expiryDate: expiryDate ?\r\n getExpiryDate(expiryDate, legsList) : '',\r\n quotedDate: quotedDate || '',\r\n });\r\n });\r\n return normalizedItineraries;\r\n}\r\n","import axios from \"axios\";\r\nimport { getFromLocal } from '../../utils/cache';\r\nimport { USER_REDUCER } from \"../../constants/localStorageKeys\";\r\nimport {\r\n fetchQuotesInit,\r\n fetchQuotesSuccess,\r\n fetchQuotesFail,\r\n} from \"../actions\";\r\nimport status from \"configs/status\";\r\nimport { FETCH_MY_QUOTES } from \"../../configs/constants\";\r\nimport { handleServerErrors } from \"../../utils/sourceUtils\";\r\nimport { normalizeMyQuotes } from \"../../normalizers/quoteNormalizer\";\r\nimport { BAD_REQUEST } from \"../../constants/ServerCodeConstants\";\r\n\r\nconst fetchQuotesPromiseInprogress = {};\r\n\r\nconst fetchQuotesSource = (quoteType, pageNum = 1) => (dispatch) => {\r\n const uniqueKey = `fetch${quoteType}Quotes`;\r\n if (fetchQuotesPromiseInprogress[uniqueKey]) {\r\n return fetchQuotesPromiseInprogress[uniqueKey];\r\n }\r\n const { user } = getFromLocal(USER_REDUCER, true, true);\r\n const token = user.userToken;\r\n\r\n const fetchQuotesPromise = new Promise((resolve, reject) => {\r\n const url = FETCH_MY_QUOTES.replace('{token}', token)\r\n .replace('{quoteStatus}', quoteType).replace('{pageNum}', pageNum);\r\n dispatch(fetchQuotesInit(pageNum));\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n if (response.status === status.OK) {\r\n const responseHeader = response.data.responseHeaderDto;\r\n if (responseHeader.isError === true) {\r\n dispatch(fetchQuotesFail(handleServerErrors(responseHeader.statusCode)));\r\n reject(handleServerErrors(responseHeader.statusCode));\r\n } else {\r\n const responseData = normalizeMyQuotes(response.data.quoteDtos);\r\n dispatch(fetchQuotesSuccess({ quoteType, quotes: responseData, pageNum }));\r\n resolve(responseData);\r\n }\r\n } else {\r\n dispatch(fetchQuotesFail(handleServerErrors(BAD_REQUEST)));\r\n reject(handleServerErrors(BAD_REQUEST));\r\n }\r\n delete fetchQuotesPromiseInprogress[uniqueKey];\r\n })\r\n .catch((err) => {\r\n if (!err.status) {\r\n dispatch(fetchQuotesFail(handleServerErrors()));\r\n reject(handleServerErrors());\r\n } else {\r\n dispatch(fetchQuotesFail(handleServerErrors(BAD_REQUEST)));\r\n reject(handleServerErrors(BAD_REQUEST));\r\n }\r\n delete fetchQuotesPromiseInprogress[uniqueKey];\r\n });\r\n });\r\n fetchQuotesPromiseInprogress[uniqueKey] = fetchQuotesPromise;\r\n return fetchQuotesPromise;\r\n};\r\n\r\nexport default fetchQuotesSource;","import fetchQuotesSource from '../sources/QuoteSource';\r\nimport {\r\n FETCH_QUOTES_INIT,\r\n FETCH_QUOTES_SUCCESS,\r\n FETCH_QUOTES_FAIL,\r\n} from '../actionTypes';\r\n\r\nexport const fetchQuotesInit = (data) => ({\r\n type: FETCH_QUOTES_INIT,\r\n data,\r\n});\r\n\r\nexport const fetchQuotesSuccess = (data) => ({\r\n type: FETCH_QUOTES_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const fetchQuotesFail = (data) => ({\r\n type: FETCH_QUOTES_FAIL,\r\n data,\r\n});\r\n\r\nexport const fetchQuotes = (quoteType, pageNum) => fetchQuotesSource(quoteType, pageNum);\r\n","import * as types from '../actionTypes';\r\n\r\nexport const updateFrequentPax = (data) => ({\r\n type: types.UPDATE_FREQUENT_PAX,\r\n data,\r\n});\r\n\r\nexport const updateAddedPassengers = (data) => ({\r\n type: types.UPDATE_ADDED_PASSENGERS,\r\n data,\r\n});\r\n\r\nexport const updatePassport = (data) => ({\r\n type: types.UPDATE_PASSPORT,\r\n data,\r\n});\r\n\r\nexport const closePopup = (data) => ({\r\n type: types.CLOSE_POPUP,\r\n data,\r\n});\r\n\r\nexport const setLegPassport = (data) => ({\r\n type: types.SET_LEG_PASSPORT,\r\n data,\r\n});\r\n\r\nexport const setLeadPassenger = (data) => ({\r\n type: types.SET_LEAD_PASSENGER,\r\n data,\r\n});\r\n\r\nexport const updateSelectedPassenger = (data) => ({\r\n type: types.UPDATE_SELECTED_PASSENGER,\r\n data,\r\n});\r\n\r\nexport const clearSelectedPassenger = (data) => ({\r\n type: types.CLEAR_SELECTED_PASSENGER,\r\n data,\r\n});\r\n\r\nexport const removePassport = (data) => ({\r\n type: types.REMOVE_PASSPORT,\r\n data,\r\n});\r\n\r\nexport const removeUser = (data) => ({\r\n type: types.REMOVE_USER,\r\n data,\r\n});\r\n\r\nexport const initializePopup = (data) => ({\r\n type: types.INITIALIZE_POPUP,\r\n data,\r\n});\r\n","import { connect } from 'react-redux';\r\n\r\nimport withStore from '../components/withStore';\r\nimport Drawer from '../components/Drawer';\r\n\r\nimport * as actions from '../store/actions';\r\n\r\nfunction mapStateToProps(state) {\r\n const { isLoggedIn, user, isLoggingOut } = state.user;\r\n const { token } = state.token;\r\n return {\r\n isLoggedIn,\r\n user,\r\n token,\r\n isLoggingOut,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n login: (email, password) => dispatch(actions.loginAction(email, password)),\r\n logout: token => dispatch(actions.logoutAction(token)),\r\n };\r\n}\r\n\r\nconst DrawerContainer = connect(mapStateToProps, mapDispatchToProps)(Drawer);\r\n\r\nexport default withStore(DrawerContainer);\r\n","import React, { Component } from \"react\";\r\nimport DrawerContainer from \"../containers/DrawerContainer\";\r\n\r\nexport default class Header extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n error: '',\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
      \r\n {!this.props.user.isLoggedIn && (\r\n
    • \r\n Log In {/* / Register */}\r\n
    • \r\n )}\r\n {this.props.user.isLoggedIn && (\r\n \r\n )}\r\n
    \r\n {this.props.user.isLoggedIn && (\r\n
    \r\n Logged in as: {this.props.user.user.firstName} {this.props.user.user.lastName}\r\n
    \r\n )}\r\n
    \r\n );\r\n }\r\n}\r\n","import { connect } from \"react-redux\";\r\n\r\nimport withStore from \"../components/withStore\";\r\nimport Header from \"../components/Header\";\r\nimport {\r\n loginAction,\r\n logoutAction,\r\n} from \"../store/actions\";\r\nfunction mapStateToProps(state) {\r\n const { user } = state;\r\n return {\r\n user,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n login: (email, password) => dispatch(loginAction(email, password)),\r\n logout: () => dispatch(logoutAction()),\r\n };\r\n}\r\n\r\nconst HeaderContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Header);\r\n\r\nexport default withStore(HeaderContainer);\r\n","import React from 'react';\r\n\r\nconst spinnerLoader = () =>
    ;\r\n\r\nexport default spinnerLoader;\r\n","import React, { Component } from 'react';\r\nimport SpinnerLoader from './spinnerLoader';\r\n\r\nclass ModalWithHeaderFooter extends Component {\r\n render() {\r\n const {\r\n id,\r\n container,\r\n headerContent,\r\n content,\r\n isLoggingIn,\r\n isSendingForgotEmail,\r\n isPasswordChangeLoading,\r\n subHeadingInHeader,\r\n noCross\r\n } = this.props;\r\n\r\n return (\r\n
    \r\n
    \r\n {(!noCross && !(isLoggingIn || isSendingForgotEmail || isPasswordChangeLoading)) &&
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ModalWithHeaderFooter;\r\n","import React from \"react\";\r\nimport SpinnerLoader from './spinnerLoader';\r\n\r\nconst ConfirmationPopUp = props => {\r\n const {\r\n id,\r\n leftButtonContent,\r\n rightButtonContent,\r\n content,\r\n title,\r\n onLeftButtonClick,\r\n onClosePopup,\r\n isSendingForgotEmail,\r\n } = props;\r\n let { leftRef, rightRef, rightTarget, leftTarget } = props;\r\n\r\n rightRef = rightRef || \"#\";\r\n rightTarget = rightTarget ? `target: #${rightTarget}` : \"false\";\r\n\r\n leftRef = leftRef || \"#\";\r\n leftTarget = leftTarget ? `target: #${leftTarget}` : \"false\";\r\n\r\n const onRightButtonClick = props.onRightButtonClick ? (\r\n \r\n {rightButtonContent}\r\n \r\n ) : (\r\n \r\n {rightButtonContent}\r\n \r\n );\r\n\r\n const onClose = () => {\r\n if (onClosePopup) onClosePopup(false);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {isSendingForgotEmail ? (\r\n
    \r\n \r\n
    \r\n ) :\r\n (\r\n \r\n )}\r\n {title && (\r\n
    \r\n

    {title}

    \r\n
    \r\n )}\r\n\r\n
    {content}
    \r\n\r\n
    \r\n {onLeftButtonClick ? (\r\n \r\n ) : leftTarget !== \"false\" ? (\r\n \r\n {leftButtonContent}\r\n \r\n ) : (\r\n \r\n {leftButtonContent}\r\n \r\n )}\r\n {onRightButtonClick}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ConfirmationPopUp;\r\n","import { validateEmail } from './Validators';\r\n\r\nexport default function validateForgotPasswordForm(obj) {\r\n const emailResponse = validateEmail(obj.email);\r\n const res = {\r\n errors: {},\r\n };\r\n if (emailResponse.isError) {\r\n res.isError = emailResponse.isError;\r\n res.errors.email = emailResponse.message;\r\n }\r\n return res;\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nclass MessagePopUp extends Component {\r\n render() {\r\n const {\r\n id, content\r\n } = this.props;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default MessagePopUp;\r\n","import React, { Component } from 'react';\r\nimport ModalWithHeaderFooter from '../shared/ModalWithHeaderFooter';\r\nimport ConfirmationPopUp from '../shared/ConfirmationPopUp';\r\nimport validateForgotPasswordForm from '../../utils/Validators/ForgotPasswordValidator';\r\nimport MessagePopUp from '../shared/MessagePopUp';\r\n\r\nexport default class ForgotPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n email: '',\r\n errors: {},\r\n popupMessage: '',\r\n stack: '',\r\n };\r\n }\r\n\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n if (!this.props.isForgotEmailSent && nextProps.isForgotEmailSent) {\r\n window.UIkit.modal('#forgotConfirmationModal').show();\r\n }\r\n if (\r\n nextProps.user.forgotPasswordErrors\r\n ) {\r\n this.setState({\r\n popupMessage: nextProps.user.forgotPasswordErrors.message,\r\n }, () => {\r\n window.UIkit.modal('#ErrorPopUp').show();\r\n });\r\n nextProps.clearForgotErrorMessage();\r\n }\r\n if (nextProps.user.resentForgotPassword && !nextProps.isSendingForgotEmail) {\r\n this.setState({\r\n popupMessage: 'The email has been sent, thank you!',\r\n stack: 'true',\r\n });\r\n window.UIkit.modal('#ErrorPopUp').show();\r\n nextProps.clearForgotPasswordResentMessageModal();\r\n }\r\n }\r\n\r\n handleEmailChange = (e) => {\r\n this.setState({ email: e.target.value });\r\n };\r\n\r\n handleSubmit = (e) => {\r\n e.preventDefault();\r\n const { email } = this.state;\r\n const res = validateForgotPasswordForm({\r\n email: email.toLowerCase(),\r\n });\r\n if (res.isError) {\r\n this.setState({\r\n errors: res,\r\n });\r\n } else {\r\n const payload = {\r\n email: email.toLowerCase(),\r\n };\r\n this.props.forgotAction(payload);\r\n }\r\n };\r\n\r\n removeErrors = (e) => {\r\n e.preventDefault();\r\n if (this.state.errors && this.state.errors.isError) { // eslint-disable-line\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors[e.target.id] = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n };\r\n\r\n renderForm = () => {\r\n const {\r\n email,\r\n errors,\r\n } = this.state;\r\n const { isSendingForgotEmail } = this.props;\r\n const sendingEmailButtonText = isSendingForgotEmail\r\n ? 'Loading...'\r\n : 'Send Email';\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.email && (\r\n

    \r\n {errors.errors.email}\r\n

    \r\n )\r\n }\r\n
    \r\n\r\n

    \r\n Go back to login\r\n

    \r\n
    \r\n \r\n {sendingEmailButtonText}\r\n \r\n
    \r\n
    \r\n {/* (isSendingForgotEmail)\r\n && (\r\n
    \r\n \r\n
    \r\n )\r\n */\r\n }\r\n
    \r\n );\r\n };\r\n\r\n resendConfirmationCode = () => {\r\n const { email } = this.state;\r\n const res = validateForgotPasswordForm({\r\n email,\r\n });\r\n if (res.isError) {\r\n this.setState({\r\n errors: res,\r\n });\r\n } else {\r\n const payload = {\r\n email,\r\n isResending: true,\r\n };\r\n this.props.forgotAction(payload);\r\n }\r\n };\r\n\r\n render() {\r\n const modalId = 'ForgotPasswordModal';\r\n const { isSendingForgotEmail } = this.props;\r\n return (\r\n
    \r\n \r\n window.location.replace(window.epiSettings.loginUrl)}\r\n content=\"Your Password has been reset, please check your email.\"\r\n isSendingForgotEmail={isSendingForgotEmail}\r\n />\r\n \r\n
    \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport 'react-responsive-modal/styles.css';\r\nimport Modal from 'react-responsive-modal';\r\n\r\nclass MessagePopUp extends Component {\r\n state = {\r\n open: false,\r\n };\r\n\r\n show = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n hide = () => {\r\n const { onClose } = this.props;\r\n this.setState({ open: false });\r\n onClose();\r\n };\r\n\r\n render() {\r\n const {\r\n className,\r\n isCenter,\r\n closeOnEsc,\r\n closeOnOverlayClick,\r\n onExited,\r\n styles,\r\n showCloseIcon,\r\n closeIconSize,\r\n closeIconSvgPath,\r\n focusTrapped,\r\n id,\r\n content,\r\n } = this.props;\r\n const { open } = this.state;\r\n\r\n return (\r\n '\r\n }}\r\n closeOnOverlayClick={closeOnOverlayClick}\r\n onClose={this.hide}\r\n center={isCenter}\r\n closeOnEsc={closeOnEsc}\r\n onExited={onExited}\r\n styles={styles}\r\n showCloseIcon={showCloseIcon}\r\n closeIconSize={closeIconSize}\r\n closeIconSvgPath={closeIconSvgPath}\r\n focusTrapped={focusTrapped}\r\n >\r\n
    \r\n

    \r\n {content}\r\n

    \r\n
    \r\n \r\n );\r\n }\r\n}\r\nMessagePopUp.defaultProps = {\r\n isCenter: true,\r\n closeOnEsc: false,\r\n closeOnOverlayClick: true,\r\n showCloseIcon: true,\r\n focusTrapped: true,\r\n closeIconSize: 28,\r\n onExited: () => {},\r\n onClose: () => {},\r\n closeIconSvgPath: ,\r\n};\r\nexport default MessagePopUp;\r\n","import {\r\n validateNotEmpty,\r\n validatePassword, validateRepeatPassword, validateSamePassword,\r\n} from './Validators';\r\n\r\nexport default function ValidateChangePasswordForm(obj) {\r\n const oldpasswordResponse = validateNotEmpty(obj.oldPassword);\r\n const newpasswordResponse = validatePassword(obj.newPassword);\r\n const newpasswordRetypeResponse = validateRepeatPassword(obj.retypeNewPassword, obj.newPassword);\r\n const samePasswordResponse = validateSamePassword(obj.oldPassword, obj.newPassword);\r\n const res = {\r\n errors: {},\r\n };\r\n if (oldpasswordResponse.isError) {\r\n res.isError = oldpasswordResponse.isError;\r\n res.errors.oldPassword = oldpasswordResponse.message;\r\n }\r\n if (samePasswordResponse.isError) {\r\n res.isError = samePasswordResponse.isError;\r\n res.errors.newPassword = samePasswordResponse.message;\r\n }\r\n if (newpasswordResponse.isError) {\r\n res.isError = newpasswordResponse.isError;\r\n res.errors.newPassword = newpasswordResponse.message;\r\n }\r\n if (newpasswordRetypeResponse.isError) {\r\n res.isError = newpasswordRetypeResponse.isError;\r\n res.errors.retypeNewPassword = newpasswordRetypeResponse.message;\r\n }\r\n return res;\r\n}\r\n","/* eslint-disable react/button-has-type,react/prop-types */\r\nimport React, { Component } from 'react';\r\nimport { isMobile } from 'react-device-detect';\r\nimport ModalWithHeaderFooter from '../shared/ModalWithHeaderFooter';\r\nimport ValidateChangePasswordForm from '../../utils/Validators/ChangePasswordValidator';\r\nimport MessagePopUp from '../shared/MessagePopUp';\r\nimport { THANK_YOU_PASSWORD_CHANGED } from '../../constants/MessageConstants';\r\nimport { errorMessages } from '../../constants/ErrorMessageConstants';\r\nimport { RAF_PAGE_URL, PAF_PAGE_URL } from '../../configs/constants';\r\nimport { isFspDirect, isFSP } from '../../utils/userUtils';\r\n\r\nconst modalId = 'ChangePassword';\r\nexport default class ResetPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n oldPassword: '',\r\n oldPasswordType: 'password',\r\n newPassword: '',\r\n newPasswordType: 'password',\r\n retypeNewPassword: '',\r\n retypeNewPasswordType: 'password',\r\n errors: {},\r\n oldPasswordIconClass: 'vistajet_password_hide',\r\n newPasswordIconClass: 'vistajet_password_hide',\r\n retypePasswordIconClass: 'vistajet_password_hide',\r\n popupMessage: 'Your Request cannot be processed this time',\r\n };\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n if (!nextProps.changePasswordRequired && nextProps.user.changePasswordSuccess\r\n && this.props.user.changePasswordSuccess !== nextProps.user.changePasswordSuccess\r\n && !nextProps.user.isDirectFromProfile) {\r\n const id = (new URLSearchParams(window.location.search)).get('accountStatementId');\r\n const route = (new URLSearchParams(window.location.search)).get('from');\r\n let location = '';\r\n const { user: userObj } = nextProps.user;\r\n if (route === 'request-a-flight') {\r\n if (isFspDirect(userObj) || isFSP(userObj))\r\n location = PAF_PAGE_URL;\r\n else {\r\n location = RAF_PAGE_URL\r\n }\r\n } else if (route && route !== 'login' && route !== 'forgotPassword') {\r\n location = route;\r\n } else if (id) {\r\n location = `/?accountStatementId=${id}`;\r\n } else {\r\n location = '/'\r\n };\r\n window.setTimeout(() => {\r\n window.location = location;\r\n }, 2000);\r\n window.UIkit.modal('#ThankyouPasswordChanged').show();\r\n }\r\n if (this.props.user.changePasswordErrors !== nextProps.user.changePasswordErrors\r\n && nextProps.user.changePasswordErrors\r\n && !nextProps.user.isDirectFromProfile) {\r\n this.setState({\r\n popupMessage: nextProps.user.changePasswordErrorText\r\n ? nextProps.user.changePasswordErrorText\r\n : 'Your Request cannot be processed this time',\r\n }, () => {\r\n window.UIkit.modal('#ChangeErrorPopUp').show();\r\n });\r\n }\r\n }\r\n\r\n handleOldPasswordChange = (e) => {\r\n this.setState({ oldPassword: e.target.value });\r\n };\r\n\r\n handleNewPasswordChange = (e) => {\r\n this.setState({ newPassword: e.target.value });\r\n };\r\n\r\n handleRetypePasswordChange = (e) => {\r\n this.setState({ retypeNewPassword: e.target.value });\r\n };\r\n\r\n handleChangePassword = (e) => {\r\n e.preventDefault();\r\n const { oldPassword, newPassword, retypeNewPassword } = this.state;\r\n const { changePasswordAction } = this.props;\r\n const { username, userToken } = this.props.user.user;\r\n const res = ValidateChangePasswordForm({\r\n oldPassword,\r\n newPassword,\r\n retypeNewPassword,\r\n });\r\n if (res.isError) {\r\n this.setState({\r\n errors: res,\r\n });\r\n } else {\r\n const payload = {\r\n oldPassword,\r\n newPassword,\r\n retypeNewPassword,\r\n username,\r\n userToken,\r\n isProfile: false,\r\n };\r\n changePasswordAction(payload);\r\n }\r\n };\r\n\r\n removeErrors = (e) => {\r\n e.preventDefault();\r\n if (this.state.errors && this.state.errors.isError) { // eslint-disable-line\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors[e.target.id] = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n };\r\n\r\n toggleOldPasswordType = () => {\r\n this.setState(\r\n {\r\n oldPasswordType: (this.state.oldPasswordType === 'password') ? 'text' : 'password',\r\n oldPasswordIconClass: (this.state.oldPasswordType === 'password') ? 'vistajet_password_show' : 'vistajet_password_hide',\r\n },\r\n );\r\n };\r\n\r\n toggleNewPasswordType = () => {\r\n this.setState(\r\n {\r\n newPasswordType: (this.state.newPasswordType === 'password') ? 'text' : 'password',\r\n newPasswordIconClass: (this.state.newPasswordType === 'password') ? 'vistajet_password_show' : 'vistajet_password_hide',\r\n },\r\n );\r\n };\r\n\r\n toggleRetypePasswordType = () => {\r\n this.setState(\r\n {\r\n retypeNewPasswordType: (this.state.retypeNewPasswordType === 'password') ? 'text' : 'password',\r\n retypePasswordIconClass: (this.state.retypeNewPasswordType === 'password') ? 'vistajet_password_show' : 'vistajet_password_hide',\r\n },\r\n );\r\n };\r\n\r\n renderForm = () => {\r\n const {\r\n oldPassword,\r\n newPassword,\r\n retypeNewPassword,\r\n errors,\r\n } = this.state;\r\n\r\n const { isPasswordChangeLoading } = this.props;\r\n const changePasswordButtonText = isPasswordChangeLoading\r\n ? 'Loading...'\r\n : 'Change Password';\r\n\r\n let mobileErrorTextMarginStyle = {};\r\n if (\r\n isMobile\r\n && errors.errors\r\n && errors.errors.newPassword\r\n && (errorMessages.PASS_MAX_LENGTH == errors.errors.newPassword\r\n || errors.errors.newPassword == errorMessages.INVALID_PASS)) {\r\n mobileErrorTextMarginStyle = { marginBottom: 35 };\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.oldPassword && (\r\n

    \r\n {errors.errors.oldPassword}\r\n

    \r\n )\r\n }\r\n \r\n
    \r\n\r\n \r\n \r\n \r\n {\r\n errors.errors && errors.errors.newPassword && (\r\n

    \r\n {errors.errors.newPassword}\r\n

    \r\n )\r\n }\r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.retypeNewPassword && (\r\n

    \r\n {errors.errors.retypeNewPassword}\r\n

    \r\n )\r\n }\r\n \r\n
    \r\n
    \r\n \r\n {changePasswordButtonText}\r\n \r\n
    \r\n \r\n \r\n );\r\n };\r\n\r\n render() {\r\n const { isPasswordChangeLoading } = this.props;\r\n const headerContent = 'Change Password';\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n","const dirtyStatefn = () => {\r\n let dirtystate = {};\r\n return {\r\n getDirty: key => dirtystate[key],\r\n setDirty: (key, value) => (dirtystate[key] = value),\r\n getAllDirty: () => dirtystate,\r\n setAllDirty: () => {\r\n for (let key in dirtystate) {\r\n dirtystate[key] = false;\r\n }\r\n },\r\n isDirtyTrue: () => {\r\n for (let key in dirtystate) {\r\n if (dirtystate[key]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n };\r\n};\r\nconst dirtystateSingleTon = dirtyStatefn();\r\nexport const onBeforeUnload = () => {\r\n if (dirtystateSingleTon.isDirtyTrue()) {\r\n return true;\r\n }\r\n return null;\r\n};\r\nexport const blockRoute = () => {\r\n window.onbeforeunload = onBeforeUnload;\r\n};\r\nexport default dirtystateSingleTon;\r\n","const SPAConstants = {\r\n PAFContainer: \"PAFContainer\",\r\n RegisterPAFContainer: \"RegisterPAFContainer\",\r\n GroundTransportation: \"GroundTransportation\",\r\n AdditionalServices: \"AdditionalServices\",\r\n ItineraryCatering: \"ItineraryCatering\",\r\n ItineraryPassengers : 'ItineraryPassengers',\r\n ItineraryPassengersPassport : 'ItineraryPassengersPassport',\r\n ItineraryNewPassengers : 'ItineraryNewPassengers',\r\n TopUpAccount: 'TopUpAccount',\r\n AddCreditCard: 'AddCreditCard',\r\n MyQuotes: 'MyQuotes',\r\n BillingAddress: 'BillingAddress',\r\n UserProfile : 'UserProfile',\r\n CustomerFeedback : 'CustomerFeedback'\r\n};\r\nexport default SPAConstants;\r\n","/* eslint-disable operator-linebreak */\r\n/* eslint-disable jsx-a11y/anchor-is-valid */\r\n/* eslint-disable react/button-has-type */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable jsx-a11y/no-static-element-interactions */\r\nimport React, { Component } from 'react';\r\nimport ForgotPassword from '../ForgotPassword/ForgotPassword';\r\nimport MessagePopUpNew from '../shared/MessagePopUpNew';\r\nimport MessagePopUp from '../shared/MessagePopUp';\r\nimport validateLoginForm from '../../utils/Validators/LoginFormValidator';\r\nimport ResetPassword from '../ForgotPassword/ResetPassword';\r\nimport { saveToLocal } from \"../../utils/cache\";\r\nimport {\r\n CONFIRM_REGISTER_PAGE_URL,\r\n DIRECT_CONFIRM_REGISTER_PAGE_URL,\r\n PAF_PAGE_URL,\r\n RAF_PAGE_URL,\r\n} from '../../configs/constants';\r\nimport {\r\n ACCOUNT_EXPIRY_MESSAGE,\r\n MEMBERSHIP_EXPIRY_MESSAGE_VJDIRECT,\r\n FSP_VJDIRECT_EXPIRY_MESSAGE\r\n} from '../../constants/MessageConstants';\r\nimport { getFromLocal, existInLocal, removeFromLocal } from '../../utils/cache';\r\nimport { isFSPAccountExpire, isFSP, isFspDirect, isVJ2, isVJDirectAccountExpire } from \"../../utils/userUtils\";\r\nimport {\r\n LOGIN_VIA_PAF,\r\n REGISTER_VIA_PAF,\r\n IS_OFFER_FLOW,\r\n LEG_ARRAY,\r\n IS_FSP_VALIDATED,\r\n IS_VJ_VALIDATED,\r\n} from '../../constants/localStorageKeys';\r\nimport dirtystateSingleTon from '../../validators/validateDirty';\r\nimport SPAConstants from '../../constants/SPAConstants';\r\n\r\nconst resetPasswordModalId = 'ChangePassword';\r\nexport default class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n email: '',\r\n errors: {},\r\n password: '',\r\n popupMessage: '',\r\n isFSPValidated: false,\r\n isVJValidated: false,\r\n passwordType: 'password',\r\n AccountExpiryPopupMessage: '',\r\n passwordIconClass: 'vistajet_password_hide',\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const params = new URLSearchParams(window.location.search);\r\n const isUserVerified = params.get('verified');\r\n const isUserAuthenticated = params.get('notAuthenticated');\r\n if ((isUserVerified === 'true' || isUserAuthenticated === 'true') && (this.props.user && !this.props.user.isLoggedIn)) {\r\n this.setState({\r\n isUserVerified: true,\r\n }, () => {\r\n window.location.replace(window.epiSettings.loginUrl);\r\n });\r\n }\r\n this.checkUserAccountExpiry();\r\n this.checkUserVerification(this.props);\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n if (nextProps.user.isLoggedIn\r\n && (getFromLocal(LOGIN_VIA_PAF) || getFromLocal(REGISTER_VIA_PAF))) {\r\n // Clear dirty state before of ModalPAF redirecting\r\n dirtystateSingleTon.setDirty(SPAConstants.RegisterPAFContainer, false);\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, false);\r\n if (isFSP(nextProps.user.user) || isFspDirect(nextProps.user.user)) {\r\n window.open(PAF_PAGE_URL, \"_self\");\r\n }\r\n else {\r\n window.open(RAF_PAGE_URL, \"_self\");\r\n }\r\n }\r\n\r\n this.checkUserVerification(nextProps);\r\n this.checkUserAccountExpiry();\r\n\r\n if (\r\n this.props.user.isLoggedIn !== nextProps.user.isLoggedIn\r\n && nextProps.user.isLoggedIn\r\n ) {\r\n this.setState({\r\n isUserVerified: false,\r\n });\r\n if (\r\n window.location.href.indexOf(CONFIRM_REGISTER_PAGE_URL.url) === 0\r\n || window.location.href.indexOf(DIRECT_CONFIRM_REGISTER_PAGE_URL.url) === 0\r\n ) {\r\n if (existInLocal(IS_OFFER_FLOW)) {\r\n if (isVJ2(nextProps.user.user) || isFspDirect(nextProps.user.user)) {\r\n window.open(RAF_PAGE_URL, \"_self\");\r\n } else {\r\n removeFromLocal(IS_OFFER_FLOW);\r\n removeFromLocal(LEG_ARRAY);\r\n window.location = '/';\r\n }\r\n } else {\r\n window.location = '/';\r\n }\r\n } else {\r\n if (existInLocal(IS_OFFER_FLOW)) {\r\n if (isVJ2(nextProps.user.user) || isFspDirect(nextProps.user.user)) {\r\n window.open(RAF_PAGE_URL, \"_self\");\r\n } else {\r\n removeFromLocal(IS_OFFER_FLOW);\r\n removeFromLocal(LEG_ARRAY);\r\n }\r\n }\r\n }\r\n }\r\n if (\r\n this.props.user.error !== nextProps.user.error\r\n && nextProps.user.isError\r\n ) {\r\n this.setState({\r\n popupMessage: nextProps.user.error,\r\n });\r\n window.UIkit.modal('#loginErrorPopUp').show();\r\n }\r\n if (\r\n this.props.tokenError !== nextProps.tokenError\r\n && nextProps.isTokenError\r\n ) {\r\n this.setState({\r\n popupMessage: nextProps.tokenError,\r\n });\r\n window.UIkit.modal('#loginErrorPopUp').show();\r\n }\r\n if (\r\n this.props.authError !== nextProps.authError\r\n && nextProps.isAuthError\r\n ) {\r\n this.setState({\r\n popupMessage: nextProps.authError,\r\n });\r\n window.UIkit.modal('#loginErrorPopUp').show();\r\n }\r\n /* Open ChangePassword Modal when changePassRequired is True */\r\n if (nextProps.changePasswordRequired) {\r\n window.UIkit.modal(`#${resetPasswordModalId}`).show();\r\n }\r\n }\r\n\r\n handleEmailChange = (e) => {\r\n this.setState({ email: e.target.value });\r\n };\r\n\r\n handlePasswordChange = (e) => {\r\n this.setState({ password: e.target.value });\r\n };\r\n\r\n handleLogin = (e) => {\r\n e.preventDefault();\r\n const { email, password } = this.state;\r\n const { loginAction } = this.props;\r\n const res = validateLoginForm({\r\n email: email.toLowerCase(),\r\n password,\r\n });\r\n if (res.isError) {\r\n this.setState({\r\n errors: res,\r\n });\r\n } else {\r\n const payload = {\r\n email: email.toLowerCase(),\r\n password,\r\n };\r\n loginAction(payload);\r\n }\r\n };\r\n\r\n togglePassView = () => {\r\n if (this.state.passwordType === 'password') {\r\n this.setState({\r\n passwordType: 'text',\r\n passwordIconClass: 'vistajet_password_show',\r\n });\r\n } else {\r\n this.setState({\r\n passwordType: 'password',\r\n passwordIconClass: 'vistajet_password_hide',\r\n });\r\n }\r\n };\r\n\r\n removeErrors = (e) => {\r\n e.preventDefault();\r\n if (this.state.errors && this.state.errors.isError) { // eslint-disable-line\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors[e.target.id] = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n };\r\n\r\n renderForm = () => {\r\n return (\r\n
    \r\n Not used.\r\n
    \r\n );\r\n };\r\n\r\n getHeaderContent = () => {\r\n const params = new URLSearchParams(window.location.search);\r\n const isUserVerified = params.get('verified');\r\n return (\r\n isUserVerified ? (\r\n
    \r\n Thank you\r\n
    \r\n your account is ready\r\n
    \r\n ) : 'Enter your details'\r\n );\r\n };\r\n\r\n checkUserAccountExpiry = () => {\r\n const { user, isLoggingOut, userHasLoggedOut, } = this.props;\r\n if (!(this.state.isFSPValidated || this.state.isVJValidated) && !(isLoggingOut || userHasLoggedOut)) {\r\n if (isFSPAccountExpire(user.user, IS_FSP_VALIDATED) && isVJDirectAccountExpire(user.user, IS_VJ_VALIDATED)) {\r\n this.setState({\r\n AccountExpiryPopupMessage: FSP_VJDIRECT_EXPIRY_MESSAGE,\r\n isFSPValidated: true,\r\n isVJValidated: true,\r\n });\r\n this.accountExpiryErrorPopUp.show()\r\n saveToLocal(true, IS_FSP_VALIDATED);\r\n saveToLocal(true, IS_VJ_VALIDATED);\r\n }\r\n\r\n else if (isVJDirectAccountExpire(user.user, IS_VJ_VALIDATED)) {\r\n this.setState({\r\n AccountExpiryPopupMessage: MEMBERSHIP_EXPIRY_MESSAGE_VJDIRECT,\r\n isVJValidated: true,\r\n });\r\n this.accountExpiryErrorPopUp.show()\r\n saveToLocal(true, IS_VJ_VALIDATED);\r\n }\r\n\r\n else if (isFSPAccountExpire(user.user, IS_FSP_VALIDATED)) {\r\n this.setState({\r\n AccountExpiryPopupMessage: ACCOUNT_EXPIRY_MESSAGE,\r\n isFSPValidated: true,\r\n });\r\n this.accountExpiryErrorPopUp.show()\r\n saveToLocal(true, IS_FSP_VALIDATED);\r\n }\r\n }\r\n }\r\n\r\n checkUserVerification(props) {\r\n if (props.user && props.user.isLoggingIn) return; // If IsLoggingIN status we don't need to check all\r\n if (props.isForgotEmailSent) return; // Forgot flow also sends prop to Login :'(\r\n const params = new URLSearchParams(window.location.search);\r\n const shouldVerifyUser = params.get('shouldVerifyUser');\r\n const { user } = props;\r\n if (\r\n window.location.href.indexOf(CONFIRM_REGISTER_PAGE_URL.url) === -1\r\n && window.location.href.indexOf(DIRECT_CONFIRM_REGISTER_PAGE_URL.url) === -1\r\n ) {\r\n if (user.user && user.user.userVerificationStatusCode === 2) {\r\n if (shouldVerifyUser !== 'true' && props.user.user && props.user.user.userNotVerified) {\r\n props.clearNotVerifiedFlag();\r\n window.location = `${CONFIRM_REGISTER_PAGE_URL.url}?shouldVerifyUser=true&email=${this.state.email || user.user.user_email}`;\r\n }\r\n } else {\r\n if (shouldVerifyUser !== 'true' && props.user.user && props.user.user.userNotVerified) {\r\n props.clearNotVerifiedFlag();\r\n window.location = `${CONFIRM_REGISTER_PAGE_URL.url}?shouldVerifyUser=true&email=${this.state.email || user.user.user_email}`;\r\n }\r\n }\r\n }\r\n if (user && user.changePasswordRequired) {\r\n window.UIkit.modal(`#${resetPasswordModalId}`).show();\r\n return;\r\n }\r\n }\r\n\r\n render() {\r\n const { popupMessage, AccountExpiryPopupMessage } = this.state;\r\n\r\n return (\r\n
    \r\n \r\n \r\n {\r\n this.accountExpiryErrorPopUp = accountExpiryErrorPopUp;\r\n }}\r\n id=\"accountExpiryErrorPopUp\"\r\n content={AccountExpiryPopupMessage}\r\n />\r\n \r\n
    \r\n );\r\n }\r\n}\r\n","import {\r\n validateEmail,\r\n validateNotEmpty,\r\n} from './Validators';\r\n\r\nexport default function validateLoginForm(obj) {\r\n const emailResponse = validateEmail(obj.email);\r\n const passwordResponse = validateNotEmpty(obj.password);\r\n const res = {\r\n errors: {},\r\n };\r\n if (emailResponse.isError) {\r\n res.isError = emailResponse.isError;\r\n res.errors.email = emailResponse.message;\r\n }\r\n if (passwordResponse.isError) {\r\n res.isError = passwordResponse.isError;\r\n res.errors.password = passwordResponse.message;\r\n }\r\n return res;\r\n}\r\n ","import { connect } from 'react-redux';\r\nimport withStore from '../components/withStore';\r\nimport Login from '../components/Login/Login';\r\nimport * as actions from '../store/actions';\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n isLoggedIn,\r\n isLoggingOut,\r\n userHasLoggedOut,\r\n isForgotEmailSent,\r\n isSendingForgotEmail,\r\n isUserVerified,\r\n changePasswordRequired,\r\n isPasswordChangeLoading,\r\n } = state.user;\r\n const { user } = state;\r\n return {\r\n isForgotEmailSent,\r\n isSendingForgotEmail,\r\n user,\r\n isLoggedIn,\r\n isLoggingOut,\r\n isUserVerified,\r\n userHasLoggedOut,\r\n isTokenError: state.token.isTokenError,\r\n tokenError: state.token.tokenError,\r\n isAuthError: state.token.isTokenAuthError,\r\n authError: state.token.tokenAuthError,\r\n changePasswordRequired,\r\n isPasswordChangeLoading\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n loginAction: payload => dispatch(actions.loginAction(payload)),\r\n forgotAction: payload => dispatch(actions.forgotAction(payload)),\r\n changePasswordAction: payload =>\r\n dispatch(actions.changePasswordAction(payload)),\r\n clearForgotErrorMessage: () => dispatch(actions.clearForgotErrorMessage()),\r\n clearForgotPasswordResentMessageModal: () => dispatch(actions.clearForgotPasswordResentMessageModal()),\r\n clearNotVerifiedFlag: () => dispatch(actions.clearNotVerifiedUser()),\r\n };\r\n}\r\n\r\nconst UserContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Login);\r\n\r\nexport default withStore(UserContainer);\r\n","import React, { Component } from \"react\";\r\nimport DrawerContainer from \"../containers/DrawerContainer\";\r\nimport UserContainer from \"../containers/UserContainer\";\r\nimport { HOME_PAGE_URL, RAF_PAGE_URL, PAF_PAGE_URL } from \"../configs/constants\";\r\nimport { blockRoute } from \"../validators/validateDirty\";\r\nimport MessagePopUpNew from './shared/MessagePopUpNew';\r\nimport { isFspDirect, isFSP } from \"../utils/userUtils\";\r\n\r\nexport default class Header extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n error: '',\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n blockRoute();\r\n const { user, getAircrafts, getAccountStatusAction, fetchAccountStatementPdfAction } = this.props;\r\n getAircrafts();\r\n\r\n if (user && user.user) {\r\n getAccountStatusAction(user.user.userToken).then(() => { }, this.handleApiErrors);\r\n }\r\n\r\n const { isLoggedIn, user: userObj } = user;\r\n const id = (new URLSearchParams(window.location.search)).get('accountStatementId');\r\n if (id) {\r\n if (isLoggedIn) {\r\n fetchAccountStatementPdfAction(id, userObj.userToken);\r\n } else {\r\n window.location.replace(window.epiSettings.loginUrl)\r\n }\r\n }\r\n\r\n const route = (new URLSearchParams(window.location.search)).get('from') || '';\r\n if (route === 'request-a-flight') {\r\n if (isLoggedIn) {\r\n if (isFspDirect(userObj) || isFSP(userObj))\r\n window.open(PAF_PAGE_URL, \"_self\");\r\n else {\r\n window.open(RAF_PAGE_URL, \"_self\");\r\n }\r\n } else {\r\n window.location.replace(window.epiSettings.loginUrl)\r\n }\r\n } else if ((route === 'login' || route === 'forgotPassword')) {\r\n if (isLoggedIn) {\r\n window.open('/', \"_self\");\r\n } else {\r\n window.location.replace(window.epiSettings.loginUrl)\r\n }\r\n } else if (route) {\r\n if (isLoggedIn) {\r\n window.open(route, \"_self\");\r\n } else {\r\n window.location.replace(window.epiSettings.loginUrl)\r\n }\r\n }\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n const {\r\n pdfError,\r\n fetchAccountStatementPdfAction,\r\n user: propUser,\r\n loadingPdf: oldLoadingPdf\r\n } = this.props;\r\n const { pdfError: error, user, loadingPdf } = nextProps;\r\n const { isLoggedIn, user: userObj } = user;\r\n if (propUser.isLoggedIn !== user.isLoggedIn && !user.changePasswordRequired) {\r\n const id = (new URLSearchParams(window.location.search)).get('accountStatementId');\r\n if (isLoggedIn && id) {\r\n fetchAccountStatementPdfAction(id, userObj.userToken);\r\n }\r\n const route = (new URLSearchParams(window.location.search)).get('from');\r\n if (route === 'request-a-flight') {\r\n if (isFSP(userObj) || isFSP(userObj))\r\n window.open(PAF_PAGE_URL, \"_self\");\r\n else {\r\n window.open(RAF_PAGE_URL, \"_self\");\r\n }\r\n } else if (route === 'login' || route === 'forgotPassword') {\r\n window.open('/', \"_self\");\r\n } else if (route) {\r\n window.open(route, \"_self\");\r\n }\r\n }\r\n if (!loadingPdf && loadingPdf !== oldLoadingPdf) {\r\n document.getElementById(\"full-screen-loader\").remove();\r\n }\r\n if (error && error !== pdfError) {\r\n this.setState({ error });\r\n this.messagePopup.show();\r\n }\r\n }\r\n\r\n render() {\r\n const { error } = this.state;\r\n const { loadingPdf } = this.props;\r\n\r\n return (\r\n \r\n {loadingPdf ? this.removePointerEvent() : null}\r\n \r\n { this.messagePopup = messagePopup; }}\r\n content={error}\r\n onClose={() => window.open(HOME_PAGE_URL, '_self')}\r\n />\r\n \r\n );\r\n }\r\n}\r\n","import { connect } from \"react-redux\";\r\n\r\nimport withStore from \"../components/withStore\";\r\nimport Header from \"../components/Core\";\r\nimport {\r\n loginAction,\r\n logoutAction,\r\n getAircraftsAction,\r\n getAccountStatusAction,\r\n fetchAccountStatementPdfAction,\r\n} from \"../store/actions\";\r\nfunction mapStateToProps(state) {\r\n const { user, aircrafts, PASData } = state;\r\n const { pdfError, loadingPdf } = PASData;\r\n return {\r\n user,\r\n aircrafts,\r\n pdfError,\r\n loadingPdf,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n login: (email, password) => dispatch(loginAction(email, password)),\r\n logout: () => dispatch(logoutAction()),\r\n getAircrafts: () => dispatch(getAircraftsAction()),\r\n getAccountStatusAction: token => dispatch(getAccountStatusAction(token)),\r\n fetchAccountStatementPdfAction: (id, token) => dispatch(fetchAccountStatementPdfAction(id, token)),\r\n };\r\n}\r\n\r\nconst HeaderContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Header);\r\n\r\nexport default withStore(HeaderContainer);\r\n","const K_WIDTH = 15;\r\nconst K_HEIGHT = 30;\r\n\r\nconst greatPlaceStyle = {\r\n // initially any map object has left top corner at lat lng coordinates\r\n // it's on you to set object origin to 0,0 coordinates\r\n position: 'absolute',\r\n left: -K_WIDTH,\r\n top: -K_HEIGHT,\r\n textAlign: 'center',\r\n};\r\n\r\nconst googleMapStyles = [\r\n {\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n color: '#f5f5f5',\r\n },\r\n ],\r\n },\r\n {\r\n elementType: 'labels',\r\n stylers: [\r\n {\r\n visibility: 'on',\r\n },\r\n ],\r\n },\r\n {\r\n elementType: 'labels.icon',\r\n stylers: [\r\n {\r\n visibility: 'on',\r\n },\r\n ],\r\n },\r\n {\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n color: '#616161',\r\n },\r\n ],\r\n },\r\n {\r\n elementType: 'labels.text.stroke',\r\n stylers: [\r\n {\r\n color: '#f5f5f5',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'administrative',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'administrative.country',\r\n elementType: 'geometry.stroke',\r\n stylers: [\r\n {\r\n color: '#c9c9c9',\r\n },\r\n {\r\n visibility: 'on',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'administrative.land_parcel',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'administrative.land_parcel',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n color: '#bdbdbd',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'administrative.neighborhood',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n // {\r\n // featureType: 'administrative.province',\r\n // stylers: [\r\n // {\r\n // saturation: -95,\r\n // },\r\n // {\r\n // lightness: -80,\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // featureType: 'administrative.province',\r\n // elementType: 'labels.text.stroke',\r\n // stylers: [\r\n // {\r\n // lightness: -100,\r\n // },\r\n // ],\r\n // },\r\n {\r\n featureType: 'landscape',\r\n elementType: 'geometry.fill',\r\n stylers: [\r\n {\r\n color: '#ffffff',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'poi',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'poi',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n color: '#eeeeee',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'poi',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n color: '#757575',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'poi.park',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n color: '#e5e5e5',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'poi.park',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n color: '#9e9e9e',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'road',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'road',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n color: '#ffffff',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'road',\r\n elementType: 'labels.icon',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'road.arterial',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n color: '#757575',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'road.highway',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n color: '#dadada',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'road.highway',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n color: '#616161',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'road.local',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n color: '#9e9e9e',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'transit',\r\n stylers: [\r\n {\r\n visibility: 'off',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'transit.line',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n color: '#e5e5e5',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'transit.station',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n color: '#eeeeee',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'water',\r\n elementType: 'geometry',\r\n stylers: [\r\n {\r\n color: '#c9c9c9',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'water',\r\n elementType: 'geometry.fill',\r\n stylers: [\r\n {\r\n color: '#e1e1e1',\r\n },\r\n ],\r\n },\r\n {\r\n featureType: 'water',\r\n elementType: 'labels.text.fill',\r\n stylers: [\r\n {\r\n color: '#9e9e9e',\r\n },\r\n ],\r\n },\r\n];\r\n\r\n\r\nexport { greatPlaceStyle, googleMapStyles };\r\n","import React from 'react';\r\nimport GoogleMapReact from 'google-map-react';\r\n\r\nimport { googleMapStyles } from 'components/MapStyle';\r\nimport { GOOGLE_MAP_API_KEY } from 'configs/constants';\r\n\r\nconst GoogleMap = props => ;\r\n\r\nGoogleMap.defaultProps = {\r\n bootstrapURLKeys: { key: GOOGLE_MAP_API_KEY, libraries: 'places', language: 'en' },\r\n defaultCenter: { lat: 48.0686419, lng: 74.320299 },\r\n defaultZoom: 12,\r\n // resetBoundsOnResize:true,\r\n options: {\r\n fullscreenControl: false,\r\n mapTypeId: 'roadmap',\r\n styles: googleMapStyles,\r\n },\r\n\r\n};\r\n\r\nexport default GoogleMap;\r\n","import React, { Component } from 'react';\r\nimport { greatPlaceStyle } from './MapStyle';\r\n\r\nconst PinArrival = '/legacy/Static/img/icons/vistajet_marker.svg';\r\nconst PinDepLeft = '/legacy/Static/img/icons/pin-dep-left.svg';\r\nconst PinDepRight = '/legacy/Static/img/icons/vistajet_map_marker.svg';\r\n\r\nconst PinReturn = '/legacy/Static/img/icons/return-leg-pin.svg';\r\nexport default class MapMarker extends Component {\r\n getMarkerImg = () => {\r\n let img = '';\r\n if (this.props.type === 'to') {\r\n if (this.props.side === 'return') {\r\n img = PinReturn;\r\n } else {\r\n img = PinArrival;\r\n }\r\n } else if (this.props.side === 'return') {\r\n img = PinReturn;\r\n } else if (this.props.side === 'right') {\r\n img = PinDepRight;\r\n } else {\r\n img = PinDepLeft;\r\n }\r\n if (this.props.isListing) {\r\n img = PinArrival;\r\n }\r\n return img;\r\n };\r\n\r\n render() {\r\n const markerURL = this.getMarkerImg();\r\n let arrivalStyle = {};\r\n if (markerURL === PinArrival) {\r\n arrivalStyle = {\r\n left: -6,\r\n top: -6,\r\n }\r\n }\r\n return (\r\n
    \r\n \"\"\r\n
    \r\n );\r\n }\r\n}\r\n","import axios from 'axios'\r\n\r\nconst IPINFO_API_KEY = '255a3f1017fbb6'\r\nconst SESSION_STORAGE_KEY = 'geolocation'\r\n\r\n// var promise1 = new Promise(function(resolve, reject) {\r\n// navigator.geolocation.getCurrentPosition(function(pos){\r\n// lat = pos.coords.latitude\r\n// lon = pos.coords.longitude\r\n// resolve({lat,lon});\r\n// })\r\n// })\r\n\r\nconst getCurrentPosition = async () =>\r\n new Promise((resolve, reject) => {\r\n navigator.geolocation.getCurrentPosition(\r\n position => {\r\n if (position.coords) {\r\n resolve(position)\r\n }\r\n reject()\r\n },\r\n error => { reject(error) },\r\n { timeout: 10000 }\r\n )\r\n })\r\n\r\n\r\nconst transformResponseToBrowserLikeFormat = data => {\r\n if (!data || !data.loc) return null\r\n const [latitude, longitude] = data.loc.split(',')\r\n if (!latitude || !longitude) return null\r\n return {\r\n coords: {\r\n latitude: Number(latitude),\r\n longitude: Number(longitude),\r\n },\r\n ...data,\r\n }\r\n}\r\n\r\nexport default async function GeoLocation() {\r\n const cache = window.sessionStorage.getItem(SESSION_STORAGE_KEY)\r\n if (cache) { \r\n return JSON.parse(cache) \r\n }\r\n\r\n // Step 1 - use external geoip api\r\n try {\r\n const response = await axios.get(`https://ipinfo.io?token=${IPINFO_API_KEY}`)\r\n if (!response) {\r\n throw new Error('didnt find user coordinates')\r\n }\r\n const location = transformResponseToBrowserLikeFormat(response.data)\r\n if (!location) {\r\n throw new Error('didnt find lat/long')\r\n }\r\n window.sessionStorage.setItem(SESSION_STORAGE_KEY, JSON.stringify(location))\r\n return location\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n\r\n // Step 2, fallback - use native navigator.geolocation\r\n try {\r\n const location = await getCurrentPosition()\r\n return location\r\n }\r\n catch (e) {\r\n console.error(e)\r\n }\r\n\r\n return null\r\n}\r\n","/* eslint-disable no-undef */\r\nimport React from 'react';\r\nimport GoogleMap from './GoogleMap';\r\nimport MapMarker from './MapMarker';\r\nimport GeoLocation from '../utils/geolocation';\r\nimport { googleMapStyles } from 'components/MapStyle';\r\n\r\nlet INDEX = 0;\r\nclass OffersMap extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n markers: {},\r\n routes: [],\r\n center: [37.2583353, -104.6531616],\r\n zoom: 1,\r\n map: '',\r\n mapHeight: this.mapSmallHeight,\r\n buttonText: 'keyboard_arrow_down',\r\n };\r\n this.getCenterLocation();\r\n }\r\n\r\n mapSmallHeight = 'auto';\r\n\r\n mapLargeHeight = 'auto';\r\n\r\n getCenterLocation = () => {\r\n GeoLocation().then((pos) => {\r\n const crd = pos.coords;\r\n this.setState({ center: [crd.latitude, crd.longitude] })\r\n }, () => { })\r\n }\r\n\r\n createMarkers(legs) {\r\n /**\r\n * Data Structure of marker will be\r\n * markers = {legIdentifier:\r\n {from: {lat: '', lng: '', airportId: ''},\r\n to: {lat: '', lng: '', airportId: }}\r\n */\r\n const markers = {};\r\n\r\n const bound = new google.maps.LatLngBounds();\r\n\r\n legs.forEach((leg) => {\r\n const legIdentifier = leg.id || leg.tempId || INDEX++;\r\n markers[legIdentifier] = {};\r\n\r\n if (leg.arrivalAirport) {\r\n // if arrival airport object is present in leg then set key in marker object\r\n markers[legIdentifier].to = {\r\n lat: leg.arrivalAirport.latitude,\r\n lng: leg.arrivalAirport.longitude,\r\n airportId: leg.arrivalAirport.id,\r\n };\r\n bound.extend(\r\n new google.maps.LatLng(\r\n leg.arrivalAirport.latitude,\r\n leg.arrivalAirport.longitude,\r\n ),\r\n );\r\n }\r\n\r\n if (leg.departureAirport) {\r\n // if departure airport object is present in leg then set key in marker object\r\n markers[legIdentifier].from = {\r\n lat: leg.departureAirport.latitude,\r\n lng: leg.departureAirport.longitude,\r\n airportId: leg.departureAirport.id,\r\n };\r\n bound.extend(\r\n new google.maps.LatLng(\r\n leg.departureAirport.latitude,\r\n leg.departureAirport.longitude,\r\n ),\r\n );\r\n }\r\n });\r\n\r\n const center = (bound && bound.getCenter && bound.getCenter()) || {};\r\n if (Object.keys(markers).length > 0 && this.map) {\r\n const worldCoordinateCenter = this.map.getProjection().fromLatLngToPoint(center);\r\n let mapWidth = document.getElementById(\"vistajet_offer_map_default\");\r\n mapWidth = (mapWidth || {}).clientWidth;\r\n let offsetX = 270;\r\n if (mapWidth <= 510) {\r\n offsetX = 285;\r\n }\r\n let pixelOffset = new google.maps.Point(offsetX, 0);\r\n let worldCoordinateNewCenter = new google.maps.Point(\r\n worldCoordinateCenter.x - pixelOffset.x,\r\n worldCoordinateCenter.y + pixelOffset.y\r\n )\r\n let newCenter = this.map.getProjection().fromPointToLatLng(worldCoordinateNewCenter);\r\n const centerArray = [\r\n newCenter.lat && newCenter.lat(),\r\n newCenter.lng && newCenter.lng(),\r\n ];\r\n this.state.center = centerArray;\r\n }\r\n this.drawRoutes(markers);\r\n this.state.markers = markers;\r\n // this.setState({ markers });\r\n }\r\n\r\n drawRoutes(markers, map = this.map) {\r\n this.removeRoutes();\r\n const routes = {};\r\n\r\n Object.keys(markers).forEach((key) => {\r\n const marker = markers[key];\r\n\r\n if (marker.hasOwnProperty('from') && marker.hasOwnProperty('to')) {\r\n // only draw route when both locations are selected for this leg\r\n routes[key] = new google.maps.Polyline({\r\n strokeColor: '#c60c30',\r\n strokeOpacity: 0.8,\r\n strokeWeight: 2.5,\r\n icons: [\r\n {\r\n offset: '40%',\r\n },\r\n ],\r\n geodesic: true,\r\n map,\r\n path: [\r\n new google.maps.LatLng(marker.from.lat, marker.from.lng),\r\n new google.maps.LatLng(marker.to.lat, marker.to.lng),\r\n ],\r\n });\r\n }\r\n });\r\n\r\n // I need routes in state because whenever an airport is updated,\r\n // I create all the markers and their routes again\r\n // So previously created routes need to be removed from map\r\n this.state.routes = routes;\r\n }\r\n\r\n removeRoutes() {\r\n Object.keys(this.state.routes).forEach((key) => {\r\n this.state.routes[key].setMap(null);\r\n });\r\n }\r\n\r\n isReturnItinerary(marker, legId, type, legs) {\r\n const currentLeg = legs.find(leg => leg.id.toString() === legId) || {};\r\n return legs.some(\r\n leg => (((leg.departureAirport || {}).id || '')\r\n === ((currentLeg.arrivalAirport || {}).id || '')\r\n && type === 'to')\r\n || (((leg.arrivalAirport || {}).id || '')\r\n === ((currentLeg.departureAirport || {}).id || '')\r\n && type === 'from'),\r\n );\r\n }\r\n\r\n render() {\r\n const { isGoogleMapsApiLoaded, onGoogleMapsApiLoaded, legs } = this.props;\r\n const markersHtml = [];\r\n const self = this;\r\n if (isGoogleMapsApiLoaded) {\r\n this.createMarkers(legs);\r\n // Iterating over the markers and generating their html as required by the map plugin\r\n const markerKeys = Object.keys(this.state.markers);\r\n markerKeys.forEach((key) => {\r\n const marker = this.state.markers[key];\r\n\r\n if (marker.hasOwnProperty('from')) {\r\n const side = parseFloat((marker.from || {}).lng, 10)\r\n > parseFloat((marker.to || {}).lng, 10)\r\n ? 'left'\r\n : 'right';\r\n\r\n markersHtml.push(\r\n ,\r\n );\r\n }\r\n\r\n if (marker.hasOwnProperty('to')) {\r\n const side = parseFloat((marker.from || {}).lng, 10)\r\n > parseFloat((marker.to || {}).lng, 10)\r\n ? 'left'\r\n : 'right';\r\n\r\n markersHtml.push(\r\n ,\r\n );\r\n }\r\n });\r\n\r\n self.drawRoutes(this.state.markers);\r\n }\r\n\r\n function createMapOptions(maps) {\r\n return {\r\n zoomControlOptions: {\r\n position: maps.ControlPosition.RIGHT_BOTTOM,\r\n style: maps.ZoomControlStyle.SMALL,\r\n },\r\n mapTypeControlOptions: {\r\n position: maps.ControlPosition.TOP_RIGHT,\r\n },\r\n mapTypeControl: false,\r\n fullscreenControl: false,\r\n styles: googleMapStyles,\r\n };\r\n }\r\n return (\r\n {\r\n this.map = map;\r\n this.drawRoutes(this.state.markers);\r\n onGoogleMapsApiLoaded();\r\n }}\r\n center={this.state.center}\r\n zoom={this.state.zoom}\r\n >\r\n {markersHtml}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default OffersMap;\r\n","import { format, isWithinInterval, parseISO } from 'date-fns';\r\nimport React, { Component } from 'react';\r\nimport { dateFnsFormats } from 'utils/dateUtils';\r\n\r\nclass CardWithButton extends Component {\r\n handleSendRequest = () => {\r\n this.props.handleSendRequest();\r\n this.props.isSendRequest(true);\r\n };\r\n\r\n routeToDirectRegistration = (leftRef) => {\r\n window.open(leftRef, '_self');\r\n };\r\n\r\n render() {\r\n const { offerDetails, aircraftDetails } = this.props;\r\n const {\r\n aircraftName,\r\n flyingHours,\r\n range,\r\n maximumSpeed,\r\n passengerCapacity,\r\n imgUrl,\r\n pageUrl,\r\n } = aircraftDetails;\r\n const { from, to } = offerDetails;\r\n const availability = isWithinInterval(new Date(), { start: parseISO(from), end: parseISO(to) })\r\n ? 'Now'\r\n : 'From';\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {offerDetails.departureCity}\r\n {' '}\r\n \r\n {offerDetails.departureAirportName}\r\n \r\n
    \r\n
    \r\n {offerDetails.arrivalCity ? (\r\n
    \r\n {offerDetails.arrivalCity}\r\n \r\n {offerDetails.arrivalAirportName}\r\n \r\n
    \r\n ) : (\r\n \r\n Anywhere\r\n \r\n )}\r\n
    \r\n\r\n
    \r\n \"\"\r\n \r\n
    \r\n \r\n \r\n \r\n Flying hours:\r\n {' '}\r\n \r\n {flyingHours}\r\n \r\n \r\n \r\n Range:\r\n {' '}\r\n \r\n {range}\r\n \r\n \r\n \r\n Maximum speed:\r\n {' '}\r\n \r\n {maximumSpeed}\r\n \r\n \r\n \r\n Passenger capacity:\r\n {' '}\r\n \r\n {passengerCapacity}\r\n \r\n \r\n
    \r\n
    \r\n Available\r\n {' '}\r\n {availability}\r\n :\r\n {' '}\r\n \r\n {format(parseISO(from), dateFnsFormats.DDMMMYYYY)}\r\n {' '}\r\n -\r\n {' '}\r\n {format(parseISO(to), dateFnsFormats.DDMMMYYYY)}\r\n \r\n
    \r\n
    \r\n \r\n View Offer\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CardWithButton;\r\n","import React from \"react\";\r\nimport OfferMap from \"components/OfferMap\";\r\nimport OfferDetailsCard from \"./CardWithButton\";\r\n\r\nconst OfferDetails = props => {\r\n const {\r\n departureAirportDetails,\r\n arrivalAirportDetails,\r\n aircraftDetails,\r\n from,\r\n to,\r\n isGoogleMapsApiLoaded,\r\n onGoogleMapsApiLoaded,\r\n offerId,\r\n isLoggedIn\r\n } = props;\r\n\r\n const offerDetailsObject = {\r\n departureCity: departureAirportDetails.city,\r\n departureAirportName: departureAirportDetails.name,\r\n from,\r\n to\r\n };\r\n if (arrivalAirportDetails) {\r\n offerDetailsObject.arrivalCity = arrivalAirportDetails.city;\r\n offerDetailsObject.arrivalAirportName = arrivalAirportDetails.name;\r\n }\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\nexport default OfferDetails;\r\n","import { AIRCRAFT_URLS } from 'configs/constants';\r\n\r\nconst {\r\n LINK_TO_CHALLENGER_350,\r\n LINK_TO_CHALLENGER_605,\r\n LINK_TO_CHALLENGER_850,\r\n LINK_TO_GLOBAL_5000,\r\n LINK_TO_GLOBAL_XRS_6000,\r\n LINK_TO_GLOBAL_XRS_7500,\r\n} = AIRCRAFT_URLS;\r\n\r\nexport const aircraftIds = [7, 16, 6, 5, 10];\r\n\r\nexport const AIRCRAFT_IDS = {\r\n CHALLENGER_350: 10,\r\n CHALLENGER_605: 5,\r\n CHALLENGER_850: 6,\r\n GLOBAL_5000: 16,\r\n GLOBAL_6000: 7,\r\n};\r\n\r\nexport const AIRCRAFT_DETAILS = {\r\n 1718: {\r\n id: 1718,\r\n aircraftName: 'Global 7500',\r\n flyingHours: '16:00',\r\n range: '7,700nm | 14,260km',\r\n maximumSpeed: '593mph | 955km/h',\r\n passengerCapacity: '14',\r\n passengerCapacitySleeping: '8',\r\n imgUrl: require('images/jet/7500/1.svg'),\r\n icon: '/legacy/Static/img/icons/GL7T-icon.svg',\r\n pageUrl: LINK_TO_GLOBAL_XRS_7500,\r\n code: 'GL7T',\r\n aircraftTypeName: 'GL7T',\r\n }, \r\n 7: {\r\n id: 7,\r\n aircraftName: 'Global 6000',\r\n flyingHours: '13:00',\r\n range: '5,998nm | 11,110km',\r\n maximumSpeed: '590mph | 950km/h',\r\n passengerCapacity: '14',\r\n passengerCapacitySleeping: '7',\r\n imgUrl: require('images/jet/6000/1.svg'),\r\n //imgUrl: require('images/jet/350/1_small.jpg'),\r\n icon: '/legacy/Static/img/icons/GLEX-icon.svg',\r\n pageUrl: LINK_TO_GLOBAL_XRS_6000,\r\n code: 'GLEX',\r\n aircraftTypeName: 'GLEX',\r\n },\r\n 16: {\r\n id: 16,\r\n aircraftName: 'Global 5000',\r\n flyingHours: '11:00',\r\n range: '5,200nm | 9,630km',\r\n maximumSpeed: '590mph | 950km/h',\r\n passengerCapacity: '13',\r\n passengerCapacitySleeping: '7',\r\n //imgUrl: require('images/jet/605/1.svg'),\r\n imgUrl: require('images/jet/5000/1.svg'),\r\n icon: '/legacy/Static/img/icons/GL5T-icon.svg',\r\n pageUrl: LINK_TO_GLOBAL_5000,\r\n code: 'GL5T',\r\n aircraftTypeName: 'GL5T',\r\n },\r\n 6: {\r\n id: 6,\r\n aircraftName: 'Challenger 850',\r\n flyingHours: '6:30',\r\n range: '2,807nm | 5,200km',\r\n maximumSpeed: '528mph | 850km/h',\r\n passengerCapacity: '14',\r\n passengerCapacitySleeping: '7',\r\n imgUrl: require('images/jet/850/1.svg'),\r\n icon: '/legacy/Static/img/icons/CL850-icon.svg',\r\n pageUrl: LINK_TO_CHALLENGER_850,\r\n code: 'CL850',\r\n aircraftTypeName: 'CL850',\r\n },\r\n 5: {\r\n id: 5,\r\n aircraftName: 'Challenger 605',\r\n flyingHours: '8:00',\r\n range: '3,995nm | 7,400km',\r\n maximumSpeed: ' 541mph | 870km/h',\r\n passengerCapacity: '12',\r\n passengerCapacitySleeping: '5',\r\n imgUrl: require('images/jet/605/1.svg'),\r\n //imgUrl: require('images/jet/5000/1.svg'),\r\n icon: '/legacy/Static/img/icons/CL605-icon.svg',\r\n pageUrl: LINK_TO_CHALLENGER_605,\r\n code: 'CL605',\r\n aircraftTypeName: 'CL605',\r\n },\r\n 10: {\r\n id: 10,\r\n aircraftName: 'Challenger 350',\r\n flyingHours: '7:15',\r\n range: '3,200nm | 5,926km',\r\n maximumSpeed: '541mph | 870km/h',\r\n passengerCapacity: '9',\r\n passengerCapacitySleeping: '3',\r\n //imgUrl: require('images/jet/6000/1.svg'),\r\n imgUrl: require('images/jet/350/1.svg'),\r\n icon: '/legacy/Static/img/icons/CL350-icon.svg',\r\n pageUrl: LINK_TO_CHALLENGER_350,\r\n code: 'Challenger 350',\r\n aircraftTypeName: 'CL350',\r\n },\r\n};\r\n\r\nexport const VJ_AIRCRAFTS = {\r\n GLOBAL_6000: {\r\n title: \"Global 6000\",\r\n rate: 17230,\r\n range: 5998,\r\n speed: 590,\r\n cabinlength: 48.4,\r\n cabinwidth: 8.17,\r\n cabinheight: 6.29,\r\n baggage: 195,\r\n pax: \"15 passengers\",\r\n image: require('images/jet/6000/1.svg'),\r\n aircrafturl: LINK_TO_GLOBAL_XRS_6000\r\n },\r\n GLOBAL_5000: {\r\n title: \"Global 5000\",\r\n rate: 17230,\r\n range: 5200,\r\n speed: 590,\r\n cabinlength: 45.7,\r\n cabinwidth: 8.17,\r\n cabinheight: 6.29,\r\n baggage: 195,\r\n pax: \"15 passengers\",\r\n image: require('images/jet/5000/1.svg'),\r\n aircrafturl: LINK_TO_GLOBAL_5000\r\n },\r\n CHALLENGER_850: {\r\n title: \"Challenger 850\",\r\n rate: 14730,\r\n range: 2807,\r\n speed: 528,\r\n cabinlength: 48.42,\r\n cabinwidth: 8.17,\r\n cabinheight: 6.08,\r\n baggage: 202,\r\n pax: \"14 passengers\",\r\n image: require('images/jet/850/1.svg'),\r\n aircrafturl: LINK_TO_CHALLENGER_850\r\n },\r\n CHALLENGER_605: {\r\n title: \"Challenger 605\",\r\n rate: 13730,\r\n range: 3995,\r\n speed: 541,\r\n cabinlength: 28.3,\r\n cabinwidth: 8.2,\r\n cabinheight: 6.2,\r\n baggage: 114,\r\n pax: \"12 passengers\",\r\n image: require('images/jet/605/1.svg'),\r\n aircrafturl: LINK_TO_CHALLENGER_605\r\n },\r\n CHALLENGER_350: {\r\n title: \"Challenger 350\",\r\n rate: 12265,\r\n range: 3200,\r\n speed: 541,\r\n cabinlength: 28.6,\r\n cabinwidth: 7.2,\r\n cabinheight: 6.1,\r\n baggage: 106,\r\n pax: \"9 passengers\",\r\n image: require('images/jet/350/1.svg'),\r\n aircrafturl: LINK_TO_CHALLENGER_350\r\n },\r\n};\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { capitalize } from 'utils/stringUtils';\r\n\r\nimport { Link } from 'react-scroll'\r\nimport { format, isAfter, isSameDay, isWithinInterval, parseISO } from 'date-fns';\r\nimport { dateFnsFormats } from 'utils/dateUtils';\r\n\r\n\r\nexport default class OfferCard extends Component {\r\n handlerOfferClick = () => {\r\n const { onCardClick, offer } = this.props;\r\n onCardClick(offer.id);\r\n };\r\n\r\n handleAvailability = (offer) => {\r\n let availableFrom = '';\r\n let availableTo = '';\r\n availableFrom = offer.isOneWay\r\n ? offer.segmentStart\r\n : offer.minDepartureTime;\r\n availableTo = offer.isOneWay ? offer.segmentEnd : offer.maxDepartureTime;\r\n\r\n return {\r\n availableFrom,\r\n availableTo,\r\n };\r\n };\r\n\r\n render() {\r\n const {\r\n arrivalAirport,\r\n departureAirport,\r\n activeCardId,\r\n offer,\r\n shouldScroll,\r\n } = this.props;\r\n const activeClass = activeCardId && activeCardId === offer.id ? 'vistajet_card_active' : '';\r\n\r\n const { availableFrom } = this.handleAvailability(offer);\r\n\r\n const today = new Date();\r\n const sameDay = isSameDay(today, parseISO(availableFrom)) || isAfter(today, parseISO(availableFrom)) ;\r\n\r\n const departureAirportCity = departureAirport && capitalize(departureAirport.city);\r\n const departureAirportName = departureAirport && capitalize(departureAirport.name);\r\n const arrivalAirportCity = arrivalAirport && capitalize(arrivalAirport.city);\r\n const arrivalAirportName = arrivalAirport && capitalize(arrivalAirport.name);\r\n\r\n const child = (\r\n \r\n
    \r\n {departureAirportCity}\r\n {' '}\r\n \r\n {departureAirportName}\r\n \r\n
    \r\n
    \r\n {arrivalAirport ? (\r\n
    \r\n {arrivalAirportCity}\r\n {' '}\r\n \r\n {arrivalAirportName}\r\n \r\n
    \r\n ) : (\r\n \r\n Anywhere\r\n \r\n )}\r\n
    \r\n {sameDay ? (\r\n
    \r\n Available NOW\r\n
    \r\n ) : (\r\n
    \r\n Available from:\r\n {' '}\r\n \r\n {format(parseISO(availableFrom), dateFnsFormats.DDMMMYYYY)}\r\n \r\n
    \r\n )}\r\n \r\n );\r\n if (shouldScroll) {\r\n return (\r\n \r\n \r\n {child}\r\n \r\n \r\n )\r\n }\r\n return (\r\n \r\n {child}\r\n \r\n );\r\n }\r\n}\r\nOfferCard.defaultProps = {\r\n arrivalAirport: null,\r\n activeCardId: null,\r\n};\r\n\r\nOfferCard.propTypes = {\r\n onCardClick: PropTypes.func.isRequired,\r\n offer: PropTypes.instanceOf(Object).isRequired,\r\n departureAirport: PropTypes.instanceOf(Object).isRequired,\r\n arrivalAirport: PropTypes.instanceOf(Object),\r\n activeCardId: PropTypes.number,\r\n shouldScroll: PropTypes.bool.isRequired,\r\n};\r\n","import React from 'react';\r\n\r\nconst SkeletonLoaderCards = () =>\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ; \r\n
    \r\n\r\nexport default SkeletonLoaderCards;\r\n","import React from 'react';\r\n\r\nconst SkeletonLoaderCardsWithoutMap = () =>\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\nexport default SkeletonLoaderCardsWithoutMap;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst LEFT_PAGE = 'LEFT';\r\nconst RIGHT_PAGE = 'RIGHT';\r\nconst MORE_PAGE = '...';\r\n\r\n/**\r\n * Helper method for creating a range of numbers\r\n * range(1, 5) => [1, 2, 3, 4, 5]\r\n */\r\nconst range = (from, to, step = 1) => {\r\n let i = from;\r\n const range = [];\r\n\r\n while (i <= to) {\r\n range.push(i);\r\n i += step;\r\n }\r\n\r\n return range;\r\n};\r\n\r\nclass Pagination extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.updatePaginationOnPropRecieve(props);\r\n }\r\n\r\n componentDidMount() {\r\n this.gotoPage(1);\r\n }\r\n\r\n updatePaginationOnPropRecieve(props) {\r\n const {\r\n totalRecords = null, pageLimit = 30, pageNeighbours = 0, currentPage = 1,\r\n } = props;\r\n\r\n this.pageLimit = typeof pageLimit === 'number' ? pageLimit : 30;\r\n this.totalRecords = typeof totalRecords === 'number' ? totalRecords : 0;\r\n\r\n // pageNeighbours can be: 0, 1 or 2\r\n this.pageNeighbours = typeof pageNeighbours === 'number'\r\n ? Math.max(0, Math.min(pageNeighbours, 2))\r\n : 0;\r\n\r\n this.totalPages = Math.ceil(this.totalRecords / this.pageLimit);\r\n\r\n this.state = { currentPage };\r\n }\r\n\r\n componentWillReceiveProps(props) {\r\n this.updatePaginationOnPropRecieve(props);\r\n }\r\n\r\n gotoPage = (page) => {\r\n const { onPageChanged } = this.props;\r\n\r\n const currentPage = Math.max(0, Math.min(page, this.totalPages));\r\n\r\n const paginationData = {\r\n currentPage,\r\n totalPages: this.totalPages,\r\n pageLimit: this.pageLimit,\r\n totalRecords: this.totalRecords,\r\n };\r\n\r\n this.setState({ currentPage }, () => onPageChanged(paginationData));\r\n }\r\n\r\n handleClick = page => (evt) => {\r\n evt.preventDefault();\r\n this.gotoPage(page);\r\n }\r\n\r\n handleMoveLeft = (evt) => {\r\n evt.preventDefault();\r\n this.gotoPage(this.state.currentPage - 1);\r\n }\r\n\r\n handleMoveRight = (evt) => {\r\n evt.preventDefault();\r\n this.gotoPage(this.state.currentPage + 1);\r\n }\r\n\r\n /**\r\n * Let's say we have 10 pages and we set pageNeighbours to 2\r\n * Given that the current page is 6\r\n * The pagination control will look like the following:\r\n *\r\n * (1) < {4 5} [6] {7 8} > (10)\r\n *\r\n * (x) => terminal pages: first and last page(always visible)\r\n * [x] => represents current page\r\n * {...x} => represents page neighbours\r\n */\r\n fetchPageNumbers = () => {\r\n const totalPages = this.totalPages;\r\n const currentPage = this.state.currentPage;\r\n const pageNeighbours = this.pageNeighbours;\r\n\r\n /**\r\n * totalNumbers: the total page numbers to show on the control\r\n * totalBlocks: totalNumbers + 2 to cover for the left(<) and right(>) controls\r\n */\r\n const totalNumbers = (this.pageNeighbours * 2) + 3;\r\n const totalBlocks = totalNumbers + 2;\r\n \r\n if (totalPages > totalBlocks) {\r\n const startPage = Math.max(2, currentPage - pageNeighbours);\r\n const endPage = Math.min(totalPages - 1, currentPage + pageNeighbours);\r\n\r\n let pages = range(startPage, endPage);\r\n\r\n /**\r\n * hasLeftSpill: has hidden pages to the left\r\n * hasRightSpill: has hidden pages to the right\r\n * spillOffset: number of hidden pages either to the left or to the right\r\n */\r\n const hasLeftSpill = startPage > 2;\r\n const hasRightSpill = (totalPages - endPage) > 1;\r\n const spillOffset = totalNumbers - (pages.length + 1);\r\n\r\n switch (true) {\r\n // handle: (1) < {5 6} [7] {8 9} (10)\r\n case (hasLeftSpill && !hasRightSpill): {\r\n const extraPages = range(startPage - spillOffset, startPage - 1);\r\n pages = [...extraPages, ...pages];\r\n return [LEFT_PAGE, 1, MORE_PAGE, ...pages, totalPages];\r\n }\r\n\r\n // handle: (1) {2 3} [4] {5 6} > (10)\r\n case (!hasLeftSpill && hasRightSpill): {\r\n const extraPages = range(endPage + 1, endPage + spillOffset);\r\n pages = [...pages, ...extraPages];\r\n return [1, ...pages, MORE_PAGE, totalPages, RIGHT_PAGE];\r\n }\r\n\r\n // handle: (1) < {4 5} [6] {7 8} > (10)\r\n case (hasLeftSpill && hasRightSpill):\r\n default: {\r\n // pages = [LEFT_PAGE, ...pages, RIGHT_PAGE];\r\n return [LEFT_PAGE, 1, MORE_PAGE, ...pages, MORE_PAGE, totalPages, RIGHT_PAGE];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return range(1, totalPages);\r\n }\r\n\r\n render() {\r\n if (!this.totalRecords || this.totalPages === 1) return null;\r\n\r\n const { currentPage } = this.state;\r\n const pages = this.fetchPageNumbers();\r\n\r\n return (\r\n
      \r\n {pages.map((page) => {\r\n if (page === LEFT_PAGE) {\r\n return (\r\n
    • \r\n \r\n \r\n \r\n
    • \r\n );\r\n }\r\n\r\n if (page === RIGHT_PAGE) {\r\n return (\r\n
    • \r\n \r\n \r\n \r\n
    • \r\n );\r\n }\r\n\r\n if (page === MORE_PAGE) {\r\n return (\r\n
    • \r\n \r\n ...\r\n \r\n
    • \r\n );\r\n }\r\n\r\n return (\r\n
    • \r\n \r\n {page}\r\n \r\n
    • \r\n );\r\n })}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nPagination.propTypes = {\r\n totalRecords: PropTypes.number.isRequired,\r\n currentPage: PropTypes.number.isRequired,\r\n pageLimit: PropTypes.number,\r\n pageNeighbours: PropTypes.number,\r\n onPageChanged: PropTypes.func,\r\n};\r\n\r\nexport default Pagination;\r\n","import React, { PropTypes } from \"react\";\r\nimport { zeroPad } from \"../../utils/aircraftUtils\";\r\n\r\nimport { AIRCRAFT_ICONS } from \"./AircraftDropDown/AircraftDropdown\";\r\n\r\n// const contentStyle = {\r\n// display: \"flex\",\r\n// flexDirection: \"column\",\r\n// flexGrow: 2,\r\n// padding: \"4px 0px\"\r\n// };\r\nclass AircraftDropList extends React.Component {\r\n // static propTypes = {\r\n // onAirCraftSelection: PropTypes.func,\r\n // handleHideList: PropTypes.func,\r\n // aircrafts: PropTypes.array,\r\n // listDisplay: PropTypes.any,\r\n // selectedAircraftObj: PropTypes.any,\r\n // anchorEl: PropTypes.any,\r\n // availableAircraftIds: PropTypes.array,\r\n // enableAircraftSelection: PropTypes.bool,\r\n // isOfferFlow: PropTypes.bool,\r\n // isOfferValid: PropTypes.bool\r\n // };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedAircraftObj: this.props.selectedAircraftObj // selected aircraft object as state\r\n };\r\n }\r\n\r\n /* on change event when aircraft got changed\r\n * it will stop default behaviour and call AircraftSelector change function\r\n */\r\n onAirCraftSelection = e => {\r\n // e.preventDefault();\r\n const newAir = e.currentTarget.attributes[\"data-code\"].nodeValue;\r\n const selectedAircraft = this.props.aircrafts.find(\r\n el => el.code === newAir\r\n );\r\n if (this.props.passengersCount > selectedAircraft.maxNumberOfPassengers) {\r\n return;\r\n }\r\n this.props.onAirCraftSelection(e);\r\n const list = document.getElementsByClassName('airCraftdropDownClass');\r\n Array.from(list).forEach(element => {\r\n element.classList.remove('uk-open');\r\n window.UIkit.dropdown(element).hide();\r\n });\r\n \r\n\r\n };\r\n render() {\r\n\r\n const compThis = this;\r\n let flyingTime = \"\";\r\n const clientWidth = (document.getElementById(\"aircraft-dropdown\") || [])\r\n .clientWidth;\r\n const aircraftsData = compThis.props.aircrafts.map((a, i) => {\r\n let shouldShowAvailable = false;\r\n if (this.props.availableAircraftIds.length > 0) {\r\n if (this.props.availableAircraftIds.includes(a.id)) {\r\n shouldShowAvailable = true;\r\n }\r\n }\r\n flyingTime =\r\n `${parseInt(a.maxFlightTime / 60, 10)}:` +\r\n `${zeroPad(parseInt(a.maxFlightTime % 60, 10), 2)}`;\r\n const isDisable = this.props.passengersCount > a.maxNumberOfPassengers;\r\n let liClassName = \"aircraft_selector--action putTabIndex\";\r\n liClassName = `${liClassName} ${isDisable ? \"disable_aircraft\" : \"\"} ${!!compThis.props.selectedAircraftObj &&\r\n a.code === compThis.props.selectedAircraftObj.code ? \"active\" : \"\"}`\r\n return (\r\n \r\n \r\n \r\n \r\n {a.displayName} \r\n \r\n {/* */}\r\n {/* timer */}\r\n {/* {flyingTime} */}\r\n Max capacity {\" \"} \r\n \r\n {a.maxNumberOfPassengers} \r\n {shouldShowAvailable ? (\r\n \r\n \r\n {\" passengers\"}\r\n \r\n Available in Contract\r\n \r\n \r\n ) : (\r\n \" passengers\"\r\n )} \r\n \r\n\r\n \r\n {/*
    \r\n \r\n
    */}\r\n {/*
    \r\n \r\n \r\n
    */}\r\n \r\n );\r\n });\r\n return (\r\n
    \r\n
      {aircraftsData}
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default AircraftDropList;\r\n","import React, { Component } from \"react\";\r\nimport aircraftsList from \"../../../utils/Aircrafts\";\r\nimport AircraftDropList from \"../AircraftDropList\";\r\n\r\nconst cl350 = \"/legacy/static/img/icons/CL350-icon.svg\";\r\nconst cl605 = \"/legacy/static/img/icons/CL605-icon.svg\";\r\nconst cl850 = \"/legacy/static/img/icons/CL850-icon.svg\";\r\nconst gl5T = \"/legacy/static/img/icons/GL5T-icon.svg\";\r\nconst glex = \"/legacy/static/img/icons/GLEX-icon.svg\";\r\n\r\nexport const AIRCRAFT_ICONS = {\r\n CL350: cl350,\r\n CL605: cl605,\r\n CL850: cl850,\r\n GL5T: gl5T,\r\n GLEX: glex\r\n};\r\nconst aircraftAlignment = {\r\n position: \"relative\",\r\n top: \"3px\"\r\n};\r\nclass AircraftDropdown extends Component {\r\n constructor(props) {\r\n super(props);\r\n // this.aircrafts = aircraftsList;\r\n this.state = {\r\n selectedAircraft: null,\r\n openContractPopup: true,\r\n aircrafts: aircraftsList\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.leg && this.props.leg.selectedAircraft) {\r\n this.setState({ selectedAircraft: this.props.leg.selectedAircraft });\r\n this.props.handleAircraftChange(this.props.leg.selectedAircraft);\r\n }\r\n if (this.props.aircraftsList.length > 0)\r\n this.setState({\r\n aircrafts: this.props.aircraftsList\r\n });\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.aircraftsList.length > this.props.aircraftsList.length) {\r\n this.setState({\r\n aircrafts: nextProps.aircraftsList\r\n });\r\n }\r\n if (\r\n nextProps.leg &&\r\n (nextProps.leg.selectedAircraft !== this.state.selectedAircraft ||\r\n nextProps.leg.selectedAircraft !== this.props.leg.selectedAircraft)\r\n // && !nextProps.isWidgetFlow\r\n ) {\r\n this.setState({\r\n selectedAircraft: nextProps.leg.selectedAircraft,\r\n openContractPopup: false\r\n });\r\n // window.UIkit.dropdown('#airCraftdropDown').hide();\r\n this.props.handleAircraftChange(nextProps.leg.selectedAircraft);\r\n }\r\n }\r\n\r\n onAirCraftSelection = e => {\r\n const newAir = e.currentTarget.attributes[\"data-code\"].nodeValue;\r\n const selectedAircraft = this.state.aircrafts.find(\r\n el => el.code === newAir\r\n );\r\n const { isEditFlow, passengers } = this.props;\r\n if (!(isEditFlow && selectedAircraft.maxNumberOfPassengers < passengers.length)) {\r\n // on aircraft change it will send call back to LegCard\r\n this.setState({\r\n selectedAircraft,\r\n openContractPopup: false\r\n });\r\n }\r\n // window.UIkit.dropdown('#airCraftdropDown').hide();\r\n this.props.handleAircraftChange(selectedAircraft);\r\n };\r\n\r\n getAircraftName = selectedAircraft => (\r\n \r\n {selectedAircraft ? selectedAircraft.displayName : \"Select Aircraft\"}\r\n \r\n );\r\n\r\n getAircraftImage = selectedAircraft =>\r\n selectedAircraft ? (\r\n \r\n ) : (\r\n \r\n );\r\n checkContractSelected = () => {\r\n // if (this.props.allowAircraftSelect || this.props.isWidgetFlow) {\r\n // this.setState({\r\n // openContractPopup: true\r\n // });\r\n // } else {\r\n // this.setState({\r\n // openContractPopup: false\r\n // });\r\n // }\r\n if (!this.props.isWidgetFlow) {\r\n this.props.validateContract();\r\n }\r\n };\r\n renderAircraftDropList = () => {\r\n const shouldOpenDropDown = (this.props.allowAircraftSelect || this.props.isWidgetFlow);\r\n if (shouldOpenDropDown) {\r\n return (\r\n \r\n );\r\n // window.UIkit.dropdown('#airCraftdropDown').show();\r\n }\r\n };\r\n\r\n render() {\r\n const { validation } = this.props;\r\n const { openContractPopup } = this.state;\r\n let aircraftClass = \"aircraft_selector--dropdown putTabIndex\";\r\n if (((validation || {}).errorOn || []).indexOf(\"aircraft\") !== -1) {\r\n aircraftClass += \" validation_error--field\";\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.getAircraftImage(this.state.selectedAircraft)}\r\n {this.getAircraftName(this.state.selectedAircraft)}\r\n
    \r\n {this.renderAircraftDropList()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default AircraftDropdown;\r\n","import Helpers from \"./Helpers\";\r\nimport moment from \"moment\";\r\n\r\nimport { calcFlightDuration } from \"./PAFUtils\";\r\n\r\nexport const legObject = {\r\n prevLeg: null,\r\n guid: Helpers.guid(),\r\n orderExtIdentifier: null,\r\n date: null,\r\n selectedAircraft: null,\r\n time: \"\",\r\n duration: null,\r\n departureAirport: null,\r\n arrivalAirport: null,\r\n departTime: \"Invalid date\",\r\n arrivalTime: \"Invalid date\",\r\n minutes: \"00\",\r\n hour: \"00\",\r\n bookedFlightId: 0,\r\n passengersCount: 1,\r\n version: 0,\r\n isCanceled: false,\r\n isEditableLeg: true,\r\n isRequestFailed: false,\r\n isReturn: false,\r\n isWidgetFlow: false,\r\n validation: {\r\n isError: false,\r\n errorMsg: \"\",\r\n errorOn: {\r\n departure: null,\r\n arrival: null,\r\n departureArrival: null,\r\n departureArrivalSame: null,\r\n time: null,\r\n passenger: null,\r\n aircraft: null,\r\n date: null,\r\n minHoursException: null,\r\n fuelStop: null\r\n }\r\n }\r\n};\r\n\r\nexport const leg = () => {\r\n return {\r\n prevLeg: null,\r\n guid: Helpers.guid(),\r\n orderExtIdentifier: null,\r\n date: null,\r\n selectedAircraft: null,\r\n time: \"\",\r\n duration: null,\r\n departureAirport: null,\r\n arrivalAirport: null,\r\n departTime: \"Invalid date\",\r\n arrivalTime: \"Invalid date\",\r\n minutes: \"00\",\r\n hour: \"00\",\r\n bookedFlightId: 0,\r\n passengersCount: 1,\r\n version: 0,\r\n isCanceled: false,\r\n isEditableLeg: true,\r\n isRequestFailed: false,\r\n isReturn: false,\r\n isWidgetFlow: false,\r\n validation: {\r\n isError: false,\r\n errorMsg: \"\",\r\n errorOn: {\r\n departure: null,\r\n arrival: null,\r\n departureArrival: null,\r\n departureArrivalSame: null,\r\n time: null,\r\n passenger: null,\r\n aircraft: null,\r\n date: null,\r\n minHoursException: null,\r\n fuelStop: null\r\n }\r\n }\r\n };\r\n};\r\n\r\nexport const calcDepartTime = (date, time) => {\r\n const datetimeString =\r\n `${moment.utc(date).format(\"DD/MM/YYYY\")} ${time}`;\r\n const departTime = moment(`${datetimeString} +0000`, \"DD/MM/YYYY HH:mm Z\")\r\n .utc()\r\n .format();\r\n return departTime;\r\n};\r\n\r\nexport const formatDate = date => {\r\n const splitDate = date.split(\"T\");\r\n const day = splitDate[0];\r\n const splitTime = splitDate[1].split(\":\");\r\n const hour = splitTime[0];\r\n const minutes = Helpers.roundUp5(parseInt(splitTime[1]));\r\n\r\n const time = `${hour}:${minutes}`;\r\n return {\r\n day,\r\n hour,\r\n minutes,\r\n time\r\n };\r\n};\r\n\r\n\r\nexport const formatOfferObject = objectFromOffer => {\r\n let dateObject;\r\n if (objectFromOffer.isOneWay) {\r\n if ((moment(objectFromOffer.segmentStart)).isBefore(moment())) {\r\n dateObject = Helpers.getLatestTimeOfAirport(objectFromOffer.departureAirport).format('YYYY-MM-DDTHH:mm:SSS')\r\n }\r\n else {\r\n dateObject = objectFromOffer.segmentStart;\r\n }\r\n const { day, hour, minutes, time } = formatDate(\r\n dateObject)\r\n const departTime = calcDepartTime(day, time);\r\n objectFromOffer.date = day;\r\n objectFromOffer.hour = hour;\r\n objectFromOffer.minutes = minutes;\r\n objectFromOffer.time = time;\r\n objectFromOffer.departTime = departTime;\r\n } else if (objectFromOffer.isEmptyLeg) {\r\n if ((moment(objectFromOffer.minDepartureTime)).isBefore(moment())) {\r\n dateObject = Helpers.getLatestTimeOfAirport(objectFromOffer.departureAirport).format('YYYY-MM-DDTHH:mm:SSS')\r\n }\r\n else {\r\n dateObject = objectFromOffer.minDepartureTime;\r\n }\r\n const { day, hour, minutes, time } = formatDate(\r\n dateObject\r\n );\r\n const departTime = calcDepartTime(day, time);\r\n const { duration } = calcFlightDuration(objectFromOffer, false);\r\n const arrivalTime = Helpers.getArrivalTime(\r\n departTime,\r\n duration,\r\n objectFromOffer.departureAirport,\r\n objectFromOffer.arrivalAirport\r\n );\r\n objectFromOffer.duration = duration;\r\n objectFromOffer.date = day;\r\n objectFromOffer.hour = hour;\r\n objectFromOffer.minutes = minutes;\r\n objectFromOffer.time = time;\r\n objectFromOffer.departTime = departTime;\r\n objectFromOffer.arrivalTime = arrivalTime;\r\n }\r\n return { ...legObject, ...objectFromOffer };\r\n};\r\n\r\n\r\n","import React from 'react';\r\nimport 'react-responsive-modal/styles.css';\r\nimport Modal from 'react-responsive-modal';\r\nexport default class ConfirmationPopup extends React.Component {\r\n state = {\r\n open: false,\r\n };\r\n\r\n show = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n hide = () => {\r\n const { onClose } = this.props;\r\n this.setState({ open: false });\r\n if (onClose) {\r\n onClose();\r\n }\r\n };\r\n\r\n render() {\r\n const {\r\n title,\r\n isCenter,\r\n closeOnEsc,\r\n closeOnOverlayClick,\r\n onExited,\r\n styles,\r\n showCloseIcon,\r\n closeIconSize,\r\n closeIconSvgPath,\r\n focusTrapped,\r\n id,\r\n onLeftButtonClick,\r\n leftButtonContent,\r\n rightButtonContent,\r\n onRightButtonClick,\r\n content,\r\n } = this.props;\r\n const { open } = this.state;\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {title && (\r\n

    {title}

    \r\n )}\r\n

    {content}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {onLeftButtonClick ? (\r\n \r\n ) : null\r\n }\r\n {onRightButtonClick ? (\r\n \r\n ) : null\r\n }\r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nConfirmationPopup.defaultProps = {\r\n isCenter: true,\r\n closeOnEsc: false,\r\n closeOnOverlayClick: true,\r\n showCloseIcon: false,\r\n focusTrapped: false,\r\n closeIconSize: 28,\r\n onExited: () => { },\r\n onClose: () => { }\r\n};\r\n","\r\nimport React, { Component } from \"react\";\r\nimport Select from \"react-select\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport OfferMap from \"components/OfferMap\";\r\nimport OfferDetails from \"./OfferDetails\";\r\nimport { AIRCRAFT_IDS, AIRCRAFT_DETAILS } from \"mocks/aircraftDetails\";\r\nimport OfferCard from \"components/OfferCard\";\r\nimport SkeletonLoaderCards from \"./shared/SkeletonLoaderCards\";\r\nimport SkeletonLoaderCardsWithoutMap from \"./shared/SkeletonLoaderCardsWithoutMap\";\r\nimport Pagination from \"./shared/Pagination\";\r\nimport MessagePopUpNew from './shared/MessagePopUpNew';\r\nimport AircraftDropdown from \"./shared/AircraftDropDown/AircraftDropdown\";\r\nimport { getAircraftByField } from \"../utils/aircraftUtils\";\r\nimport { SHOW_AIRPPORTS_TO } from '../utils/airportUtils';\r\nimport { formatOfferObject } from \"../utils/offerUtils\";\r\nimport { saveToLocal } from \"../utils/cache\";\r\nimport { LEG_ARRAY, IS_OFFER_FLOW } from \"../constants/localStorageKeys\";\r\nimport { RAF_PAGE_URL, PAF_PAGE_URL, HOME_PAGE_URL } from \"../configs/constants\";\r\nimport { Element } from 'react-scroll';\r\nimport { isFSP, isFspDirect, isAdhoc, isGuest, isVJ2 } from '../utils/userUtils';\r\nimport { redirect } from './Drawer';\r\n\r\n\r\nimport { MEMBERSHIP_STATUS } from '../constants/MembershipConstants';\r\n\r\nimport {\r\n NO_OFFERS_FOUND,\r\n NO_ONE_WAY_OFFERS_FOUND,\r\n NO_EMPTY_LEG_OFFERS_FOUND,\r\n NO_SEARCH_OFFERS_FOUND,\r\n NO_OFFER_SELECTED,\r\n OFFERS_VALIDATION_MESSAGE,\r\n MEMBERSHIP_EXPIRY_MESSAGE_VJDIRECT_OFFERS,\r\n} from \"../constants/MessageConstants\";\r\nimport { convertToTitleCase } from \"../utils/stringUtils\";\r\nimport ConfirmationPopUp from \"./shared/ConfirmationPopUp\";\r\nimport ConfirmationPopUpNew from \"./shared/ConfirmationPopUpNew\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { isMobileOnly } from \"react-device-detect\";\r\nimport { dateFnsFormats } from '../utils/dateUtils';\r\nimport { format, parseISO } from \"date-fns\";\r\n\r\nconst PAGE_SIZE = isMobileOnly ? 3 : 9;\r\nconst LoaderComponenent = isMobileOnly ? : \r\nconst TABS = {\r\n All: 0,\r\n ONE_WAY: 1,\r\n EMPTY: 2\r\n};\r\n\r\nclass OfferListing extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedDate: \"\",\r\n selectedAircraft: null,\r\n tempFromAirport: '',\r\n fromAirport: null,\r\n tempToAirport: '',\r\n toAirport: null,\r\n activeTab: TABS.All,\r\n offers: props.offers,\r\n currentPage: 1,\r\n toggleState: true,\r\n isFound: false,\r\n isUndefinedIds: false,\r\n cardClicked: false,\r\n activeCard: null,\r\n isSendRequest: false,\r\n membershipExpiry: false,\r\n messageContent: '',\r\n };\r\n this.offerMessages = [\r\n NO_OFFERS_FOUND,\r\n NO_ONE_WAY_OFFERS_FOUND,\r\n NO_EMPTY_LEG_OFFERS_FOUND\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n this.isVJDirectMembershipExpire();\r\n const { offers, fetchVisitedAirports } = this.props;\r\n fetchVisitedAirports();\r\n if (!offers.length) {\r\n this.loadOffersWithLocation(this.props);\r\n }\r\n\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (!nextProps.offers.length && !nextProps.isOfferFetched) {\r\n this.loadOffersWithLocation(nextProps);\r\n }\r\n if (nextProps.isAirportsFetched && nextProps.offers.length) {\r\n this.findAllAirports(nextProps.offers);\r\n this.setState({\r\n offers: nextProps.offers,\r\n activeCard: null\r\n });\r\n }\r\n if (nextProps.visitedAirports.length > this.props.visitedAirports.length) {\r\n this.setState({\r\n isUndefinedIds: nextProps.isAirportByIdLoading\r\n });\r\n }\r\n if (\r\n this.props.isLoggedIn !== nextProps.isLoggedIn &&\r\n nextProps.isLoggedIn === true &&\r\n this.state.activeCard !== null &&\r\n this.state.isSendRequest\r\n ) {\r\n const { user } = nextProps;\r\n const formattedOfferObject = [formatOfferObject(this.state.activeCard)];\r\n if (isFSP(user) && !isFspDirect(user)) {\r\n this.noConfirmPopup.show();\r\n } else if (isGuest(user) || isAdhoc(user)) {\r\n this.addPopup.show();\r\n } else {\r\n saveToLocal(formattedOfferObject, LEG_ARRAY);\r\n saveToLocal(true, IS_OFFER_FLOW);\r\n window.open(RAF_PAGE_URL, \"_self\");\r\n }\r\n }\r\n if (\r\n nextProps.user &&\r\n this.state.activeCard !== null &&\r\n this.state.isSendRequest &&\r\n (nextProps.user.userVerificationStatusCode === 4 ||\r\n nextProps.user.userVerificationStatusCode === 2)\r\n ) {\r\n const formattedOfferObject = [formatOfferObject(this.state.activeCard)];\r\n saveToLocal(formattedOfferObject, LEG_ARRAY);\r\n saveToLocal(true, IS_OFFER_FLOW);\r\n }\r\n if (!this.props.regionId && nextProps.regionId) {\r\n this.loadOffersWithLocation(nextProps);\r\n }\r\n if (this.props.error) {\r\n this.offerApiErrors.show();\r\n }\r\n }\r\n\r\n toggleIsSendRequest = (value) => {\r\n this.setState({\r\n isSendRequest: value,\r\n });\r\n }\r\n\r\n findAllAirports = offers => {\r\n const { visitedAirportsFinder, getAirportById } = this.props;\r\n const undefinedIds = [];\r\n offers.forEach(offer => {\r\n if (visitedAirportsFinder[offer.departureAirportId] === undefined) {\r\n undefinedIds.push(offer.departureAirportId);\r\n }\r\n if (\r\n offer.arrivalAirportId &&\r\n visitedAirportsFinder[offer.arrivalAirportId] === undefined\r\n ) {\r\n undefinedIds.push(offer.arrivalAirportId);\r\n }\r\n });\r\n if (undefinedIds && undefinedIds.length) {\r\n this.setState({\r\n isUndefinedIds: true\r\n });\r\n getAirportById([...new Set(undefinedIds)]);\r\n }\r\n };\r\n\r\n loadOffersWithLocation = options => {\r\n const {\r\n fetchOffers\r\n } = options;\r\n fetchOffers(1, 100000);\r\n };\r\n\r\n handleDateChange = date => {\r\n this.setState({\r\n selectedDate: date\r\n });\r\n };\r\n\r\n handleAircraftChange = value => {\r\n // let stateValue = null;\r\n // if (!Array.isArray(value)) {\r\n // stateValue = value;\r\n // }\r\n // this.setState({\r\n // selectedAircraft: stateValue\r\n // });\r\n this.setState({\r\n selectedAircraft: value\r\n });\r\n };\r\n\r\n handleFromAirportChange = value => {\r\n let stateValue = null;\r\n if (!Array.isArray(value)) {\r\n stateValue = value;\r\n }\r\n this.setState({\r\n fromAirport: stateValue\r\n });\r\n };\r\n\r\n handleTempFromAirportChange = value => {\r\n let stateValue = null;\r\n if (!Array.isArray(value)) {\r\n stateValue = value;\r\n }\r\n this.setState({\r\n tempFromAirport: stateValue\r\n });\r\n };\r\n\r\n handleToAirportChange = value => {\r\n let stateValue = null;\r\n if (!Array.isArray(value)) {\r\n stateValue = value;\r\n }\r\n this.setState({\r\n toAirport: stateValue\r\n });\r\n };\r\n\r\n handleTempToAirportChange = value => {\r\n let stateValue = null;\r\n if (!Array.isArray(value)) {\r\n stateValue = value;\r\n }\r\n this.setState({\r\n tempToAirport: stateValue\r\n });\r\n };\r\n\r\n onCardClick = offerId => {\r\n const offerObject = this.state.offers.find(offer => offer.id === offerId);\r\n const departureAirportDetails = this.props.visitedAirportsFinder[\r\n offerObject.departureAirportId\r\n ];\r\n let arrivalAirportDetails = null;\r\n const aircraftDetails = getAircraftByField(offerObject.aircraftTypeId, this.props.aircraftsList);\r\n offerObject.selectedAircraft = aircraftDetails;\r\n offerObject.departureAirport = departureAirportDetails;\r\n if (offerObject.isEmptyLeg) {\r\n arrivalAirportDetails = this.props.visitedAirportsFinder[\r\n offerObject.arrivalAirportId\r\n ];\r\n offerObject.arrivalAirport = arrivalAirportDetails;\r\n }\r\n if (Object.values(AIRCRAFT_IDS).includes(offerObject.aircraftTypeId)) {\r\n this.setState({\r\n activeCard: offerObject,\r\n aircraftDetails: AIRCRAFT_DETAILS[offerObject.aircraftTypeId],\r\n departureAirportDetails,\r\n arrivalAirportDetails,\r\n toggleState: !this.state.toggleState\r\n });\r\n } else {\r\n console.warn(`Offer contains an aircraft not in the app: ${offerObject.aircraftTypeId}`);\r\n }\r\n this.setState({\r\n cardClicked: true\r\n });\r\n };\r\n\r\n handleTabChange = tabIndex => {\r\n if (!this.props.isLoading) {\r\n this.setState({\r\n activeTab: tabIndex,\r\n currentPage: 1,\r\n activeCard: null\r\n });\r\n }\r\n };\r\n\r\n resetFilters = e => {\r\n e.preventDefault();\r\n this.setState({\r\n selectedDate: \"\",\r\n selectedAircraft: \"\",\r\n tempFromAirport: '',\r\n fromAirport: null,\r\n tempToAirport: '',\r\n toAirport: null,\r\n offers: this.props.offers,\r\n isFound: false\r\n });\r\n };\r\n\r\n handleSearch = event => {\r\n event.preventDefault();\r\n const {\r\n selectedAircraft,\r\n fromAirport,\r\n toAirport,\r\n activeTab\r\n } = this.state;\r\n let { selectedDate } = this.state;\r\n const { offers } = this.props;\r\n const { YYYY_MM_DD_WITH_TIME, DDMMMYYYY } = dateFnsFormats;\r\n let filteredOffers = offers.slice();\r\n let arrivalAirports = [];\r\n if (selectedDate) {\r\n selectedDate = format(selectedDate, DDMMMYYYY);\r\n filteredOffers = filteredOffers.filter(offer => {\r\n if (offer.isEmptyLeg) {\r\n const offerDate = parseISO(offer.minDepartureTime, YYYY_MM_DD_WITH_TIME);\r\n const offerDateFormat = format(offerDate, DDMMMYYYY);\r\n return selectedDate === offerDateFormat;\r\n }\r\n const offerDate = parseISO(offer.segmentStart, YYYY_MM_DD_WITH_TIME);\r\n const offerDateFormat = format(offerDate, DDMMMYYYY);\r\n return selectedDate === offerDateFormat;\r\n });\r\n }\r\n\r\n if (selectedAircraft) {\r\n filteredOffers = filteredOffers.filter(\r\n offer => offer.aircraftTypeId === selectedAircraft.id\r\n );\r\n\r\n }\r\n if (fromAirport) {\r\n filteredOffers = filteredOffers.filter(\r\n offer => offer.departureAirportPlaceId === fromAirport.value\r\n );\r\n }\r\n if (toAirport && activeTab !== TABS.ONE_WAY) {\r\n arrivalAirports = this.findAirportsWithCityAndCountry(toAirport.label);\r\n filteredOffers = filteredOffers.filter(offer =>\r\n offer.isEmptyLeg\r\n ? this.isArrivalAirportFound(offer.arrivalAirportId, arrivalAirports)\r\n : false\r\n );\r\n }\r\n this.setState({\r\n offers: filteredOffers,\r\n activeCard: null,\r\n currentPage: 1,\r\n isFound: true\r\n });\r\n };\r\n\r\n handlePageChange = data => {\r\n const { currentPage } = data;\r\n this.setState({ currentPage });\r\n };\r\n\r\n isArrivalAirportFound = (arrivalAirportId, arrivalAirports) =>\r\n arrivalAirports.some(airport => airport.id === arrivalAirportId);\r\n\r\n findAirportsWithCityAndCountry = toCityCountry =>\r\n this.props.visitedAirports.filter(airport => {\r\n const cityWithCountry = airport.cityAndCountry.toLowerCase();\r\n return cityWithCountry === toCityCountry.toLowerCase();\r\n });\r\n\r\n handleSendRequest = () => {\r\n const { user } = this.props;\r\n this.isVJDirectMembershipExpire();\r\n if (this.props.isLoggedIn) {\r\n if (isFSP(user) && !isFspDirect(user)) {\r\n this.noConfirmPopup.show();\r\n } else if (isGuest(user) || isAdhoc(user)) {\r\n this.state.membershipExpiry ?\r\n this.accountExpiryErrorPopUp.show() :\r\n this.addPopup.show();\r\n } else {\r\n const formattedOfferObject = [formatOfferObject(this.state.activeCard)];\r\n saveToLocal(formattedOfferObject, LEG_ARRAY);\r\n saveToLocal(true, IS_OFFER_FLOW);\r\n window.open(RAF_PAGE_URL, \"_self\");\r\n }\r\n } else {\r\n window.UIkit.modal(\"#registerLoginRedirectModal\").show();\r\n }\r\n };\r\n\r\n filterAirports = (value, array) =>\r\n array\r\n .filter(element => {\r\n const city = element.cityName.toLowerCase();\r\n const country = element.countryName.toLowerCase();\r\n return (\r\n city.indexOf(value.toLowerCase()) !== -1 ||\r\n country.indexOf(value.toLowerCase()) !== -1\r\n );\r\n })\r\n .map(city => ({\r\n value: city.placeId,\r\n label: convertToTitleCase(`${city.cityName}, ${city.countryName}`)\r\n }));\r\n\r\n isVJDirectMembershipExpire = () => {\r\n const { user } = this.props;\r\n const isMembershipExpire = (user\r\n && user.accounts.length === 1\r\n && (user.accounts[0].membershipStatus === MEMBERSHIP_STATUS.SUSPENDED ||\r\n user.accounts[0].membershipStatus === MEMBERSHIP_STATUS.EXPIRED));\r\n\r\n if (isMembershipExpire) {\r\n this.setState({ membershipExpiry: true });\r\n }\r\n }\r\n onGoogleMapsApiLoaded = () => {\r\n this.props.onGoogleMapsApiLoaded();\r\n this.forceUpdate();\r\n }\r\n render() {\r\n const activeTabStyle = \"uk-link-reset visatjet_flight_active\";\r\n const unActiveTabStyle = \"uk-link-reset\";\r\n const leg = {\r\n selectedAircraft: this.state.selectedAircraft\r\n };\r\n\r\n const {\r\n visitedAirports,\r\n visitedAirportsFinder,\r\n isLoading,\r\n isAirportsLoading,\r\n cities,\r\n isAirportByIdLoading,\r\n loadingGeolocation,\r\n isLoggedIn,\r\n error,\r\n user,\r\n } = this.props;\r\n const {\r\n selectedDate,\r\n selectedAircraft,\r\n tempFromAirport,\r\n fromAirport,\r\n toAirport,\r\n tempToAirport,\r\n offers,\r\n activeTab,\r\n currentPage,\r\n isFound,\r\n activeCard,\r\n cardClicked,\r\n membershipExpiry\r\n } = this.state;\r\n\r\n let filteredOffers = offers;\r\n let fromAirportsList = [];\r\n let toAirportsList = [];\r\n const offerMessages = this.offerMessages;\r\n\r\n if (activeTab === TABS.EMPTY) {\r\n filteredOffers = offers.filter(offer => offer.isEmptyLeg === true);\r\n } else if (activeTab === TABS.ONE_WAY) {\r\n filteredOffers = offers.filter(offer => offer.isOneWay === true);\r\n }\r\n const offersCount = filteredOffers.length;\r\n filteredOffers = filteredOffers.slice(\r\n (currentPage - 1) * PAGE_SIZE,\r\n PAGE_SIZE * currentPage\r\n );\r\n\r\n // if (tempFromAirport && tempFromAirport.length > 2) {\r\n // fromAirportsList = this.filterAirports(tempFromAirport, cities);\r\n // }\r\n if (tempFromAirport.length === 0 || tempFromAirport.length < 2) {\r\n fromAirportsList = this.filterAirports(tempFromAirport, cities.slice(1, SHOW_AIRPPORTS_TO));\r\n } else {\r\n fromAirportsList = this.filterAirports(tempFromAirport, cities);\r\n }\r\n\r\n if (tempToAirport.length === 0 || tempToAirport.length < 2) {\r\n toAirportsList = this.filterAirports(tempToAirport, cities.slice(1, SHOW_AIRPPORTS_TO));\r\n } else {\r\n toAirportsList = this.filterAirports(tempToAirport, cities);\r\n }\r\n // if (tempToAirport && tempToAirport.length > 2) {\r\n // toAirportsList = this.filterAirports(tempToAirport, cities);\r\n // }\r\n let availableFrom = \"\";\r\n let availableTo = \"\";\r\n if (activeCard) {\r\n availableFrom = activeCard.isOneWay\r\n ? activeCard.segmentStart\r\n : activeCard.minDepartureTime;\r\n availableTo = activeCard.isOneWay\r\n ? activeCard.segmentEnd\r\n : activeCard.maxDepartureTime;\r\n }\r\n let mapStyle = \"\";\r\n if (isMobileOnly && !cardClicked) mapStyle = \"vistajet_map_hidden\";\r\n else if (isMobileOnly && cardClicked) mapStyle = \"\";\r\n\r\n let messageContent = membershipExpiry ? MEMBERSHIP_EXPIRY_MESSAGE_VJDIRECT_OFFERS : OFFERS_VALIDATION_MESSAGE;\r\n let paf_link = \"\";\r\n let paf_btn_text = \"\"\r\n if (isFSP(user) || isFspDirect(user)) {\r\n paf_link = PAF_PAGE_URL;\r\n paf_btn_text = \"Plan A Flight\"\r\n }\r\n if (isAdhoc(user) || isGuest(user) || isVJ2(user)) {\r\n paf_link = RAF_PAGE_URL;\r\n paf_btn_text = \"Request Quote\"\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.handleTabChange(TABS.All)}\r\n >\r\n All\r\n \r\n this.handleTabChange(TABS.ONE_WAY)}\r\n >\r\n One Way\r\n \r\n this.handleTabChange(TABS.EMPTY)}\r\n >\r\n Empty Leg\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n 2}\r\n onChange={this.handleFromAirportChange}\r\n placeholder={\"From\"}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n 2}\r\n onChange={this.handleToAirportChange}\r\n placeholder={\"To\"}\r\n //className=\"vistajet_input vistajet_to_icon\"\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n {selectedDate ? selectedDate.format('DD MMM YYYY') : 'Departure Date'}
    \r\n )\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n SEARCH\r\n \r\n
    \r\n {(selectedDate || selectedAircraft || toAirport || fromAirport) && (\r\n \r\n Reset Filter\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n {isLoading || isAirportsLoading || isAirportByIdLoading || isAirportByIdLoading || loadingGeolocation ? (\r\n LoaderComponenent\r\n ) : (\r\n
    \r\n \r\n {filteredOffers.length !== 0 ? (\r\n filteredOffers.map(offer => {\r\n const arrivalAirport = offer.isEmptyLeg\r\n ? visitedAirportsFinder[offer.arrivalAirportId]\r\n : null;\r\n return (\r\n \r\n );\r\n })\r\n ) : isFound ? (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {NO_SEARCH_OFFERS_FOUND}\r\n \r\n
    \r\n {paf_link &&\r\n
    \r\n redirect(paf_link)}\r\n >{paf_btn_text}\r\n
    \r\n }\r\n
    \r\n
    \r\n ) : (\r\n \r\n
    \r\n
    \r\n \r\n {offerMessages[activeTab]}.\r\n \r\n
    \r\n
    \r\n \r\n )}\r\n \r\n
    \r\n {visitedAirports.length > 0 ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n {this.state.activeCard ? (\r\n \r\n ) : !isFound ? (\r\n
    \r\n \r\n {\" \"}\r\n \r\n \r\n {NO_OFFER_SELECTED}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ) : null}\r\n {/*
    */}\r\n \r\n
    \r\n window.location.replace(window.epiSettings.loginUrl)}\r\n content=\"Please Register or Login to request this flight.\"\r\n onClosePopup={this.toggleIsSendRequest}\r\n />\r\n {\r\n this.noConfirmPopup = noConfirmPopup;\r\n }}\r\n leftButtonContent=\"Okay\"\r\n onLeftButtonClick={() => window.open(HOME_PAGE_URL, \"_self\")}\r\n content={\r\n \"You need to have a VJ direct Account in order to avail offers.\"\r\n }\r\n />\r\n {\r\n this.addPopup = addPopup;\r\n }}\r\n leftButtonContent=\"No\"\r\n rightButtonContent=\"Yes\"\r\n onLeftButtonClick={() => window.open(HOME_PAGE_URL, \"_self\")}\r\n onRightButtonClick={() =>\r\n window.open(window.epiSettings.registerUrl, \"_self\")\r\n }\r\n content={messageContent}\r\n />\r\n {\r\n this.accountExpiryErrorPopUp = accountExpiryErrorPopUp;\r\n }}\r\n id=\"accountExpiryErrorPopUp\"\r\n content={messageContent}\r\n />\r\n \r\n )}\r\n {\r\n this.offerApiErrors = offerApiErrors;\r\n }}\r\n id=\"offerApiErrorstopUp\"\r\n content={error}\r\n />\r\n \r\n );\r\n }\r\n}\r\nexport default OfferListing;\r\n","import { connect } from 'react-redux';\r\n\r\nimport withStore from '../components/withStore';\r\nimport Offers from '../components/Offers';\r\nimport * as actions from '../store/actions';\r\n\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n isLoading, offers, error, totalOffers, cities, isOfferFetched\r\n } = state.offers;\r\n const { regionId } = state.geocode;\r\n const locationNotDisabled = !state.geocode.locationDisabled;\r\n const loadingGeolocation = state.geocode.isLoading;\r\n const { isLoggedIn, user } = state.user;\r\n const {\r\n visitedAirports,\r\n visitedAirportsFinder,\r\n isAirportsLoading,\r\n isAirportByIdLoading,\r\n isAirportsFetched\r\n } = state.visitedAirports;\r\n const {\r\n isGoogleMapsApiLoaded,\r\n isGooglePlacesAutocompleteBinded,\r\n } = state.googleMap;\r\n const { aircraftsList } = state.aircrafts;\r\n return {\r\n isLoggedIn,\r\n isLoading,\r\n offers,\r\n error,\r\n totalOffers,\r\n regionId,\r\n locationNotDisabled,\r\n loadingGeolocation,\r\n visitedAirports,\r\n visitedAirportsFinder,\r\n isGoogleMapsApiLoaded,\r\n isGooglePlacesAutocompleteBinded,\r\n isAirportsLoading,\r\n cities,\r\n isAirportByIdLoading,\r\n isAirportsFetched,\r\n user,\r\n isOfferFetched,\r\n aircraftsList\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n fetchOffers: (pageNum, pageSize, regionId) => dispatch(\r\n actions.fetchAllOffers(pageNum, pageSize, regionId),\r\n ),\r\n onGoogleMapsApiLoaded: () => dispatch(actions.onGoogleMapsApiLoaded()),\r\n onPlacesAutocompleteBinded: () => dispatch(actions.onPlacesAutocompleteBinded()),\r\n fetchVisitedAirports: () => dispatch(actions.fetchAllVisitedAirports()),\r\n fetchGeocode: () => dispatch(actions.fetchCountryGeocode()),\r\n getAirportById: id => dispatch(actions.getAirportById(id)),\r\n };\r\n}\r\n\r\nconst OffersContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(Offers);\r\n\r\nexport default withStore(OffersContainer);\r\n","import React, { PropTypes } from \"react\";\r\nimport Helpers from \"../../utils/Helpers\";\r\n\r\nconst getDurationString = duration => {\r\n const hr = Math.floor(duration / 60);\r\n const min = Math.floor(duration % 60);\r\n const hrString = hr > 1 ? `${hr}h` : `${hr}h`;\r\n return `${hrString} ${Helpers.roundTo5Minutes(min)}m`;\r\n};\r\n\r\nconst FlightTime = props => {\r\n\r\n const duration = !!props.duration ? (\r\n
    \r\n {/* timer */}\r\n {getDurationString(props.duration)}\r\n
    \r\n ) : (\r\n
    \r\n {/* timerFlight Time */}\r\n
    \r\n );\r\n let iconDivStyle = { display: \"flex\" };\r\n iconDivStyle = Object.assign(iconDivStyle, { justifyContent: \"center\" });\r\n return (\r\n
    \r\n {duration}\r\n
    \r\n );\r\n};\r\n\r\n\r\nexport default FlightTime;\r\n","import React from \"react\";\r\nimport Helpers from \"utils/Helpers\";\r\n\r\nconst EstimateTime = props => {\r\n let timeToRender = \"\"; \r\n let timeSelected = false;\r\n const leg = props.leg;\r\n if (props.eTime === \"etd\") {\r\n if (\r\n leg &&\r\n leg.departTime &&\r\n leg.departureAirport &&\r\n leg.departTime !== \"Invalid date\" &&\r\n !!leg.time\r\n ) {\r\n const departTime = leg.departTime.split(\"T\")[1].split(\":\");\r\n timeToRender = `etd ${departTime[0]}:${departTime[1]} loc`;\r\n } else {\r\n timeToRender = \"ETD\";\r\n }\r\n } else {\r\n if (\r\n leg &&\r\n leg.arrivalTime &&\r\n leg.arrivalTime !== \"Invalid date\" &&\r\n !!leg.time\r\n ) {\r\n const arrivalTime = leg.arrivalTime.split(\"T\")[1].split(\":\");\r\n\r\n const daysDiff = Helpers.getDaysDiff(leg.departTime, leg.arrivalTime);\r\n timeToRender =\r\n `${arrivalTime[0]}:` +\r\n `${Helpers.roundTo5Minutes(arrivalTime[1])} loc ${daysDiff}`;\r\n timeSelected = true;\r\n } else {\r\n timeToRender = \"\"; \r\n }\r\n }\r\n let toBeAnnounced = timeSelected? \"vistajet_announced_select\": \"vistajet_not_announced\";\r\n return {timeToRender};\r\n};\r\n\r\n\r\nexport default EstimateTime;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass Stepper extends React.Component {\r\n\r\n OPERATOR = {\r\n SUB: 'sub',\r\n ADD: 'add'\r\n }\r\n static propTypes = {\r\n onClick: PropTypes.func,\r\n index: PropTypes.number,\r\n value: PropTypes.number,\r\n };\r\n\r\n static defaultProps = {\r\n onClick: undefined,\r\n index: 0,\r\n value: 1,\r\n minValue: 1,\r\n showPassengerLabel: true,\r\n };\r\n\r\n onClick = (operator) => {\r\n let { value, maxValue, minValue } = this.props;\r\n if (operator === this.OPERATOR.ADD && value < maxValue) {\r\n // value += 1;\r\n this.props.onChange(value + 1);\r\n }\r\n else if (operator === this.OPERATOR.SUB && value > minValue) {\r\n // value -= 1;\r\n this.props.onChange(value - 1);\r\n }\r\n // this.props.onChange(value);\r\n };\r\n\r\n render() {\r\n const { value, showPassengerLabel, maxValue, minValue } = this.props;\r\n const isDisableAdd = !(value < maxValue);\r\n const isDisableSub = !(value > minValue);\r\n return (\r\n
    \r\n {/* */}\r\n {showPassengerLabel && Passengers}\r\n
    \r\n \r\n {value}\r\n \r\n
    \r\n {/* this.onClick('add')}\r\n >\r\n {'+'}\r\n */}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Stepper;\r\n","import React from \"react\";\r\nimport Stepper from \"../../Stepper\";\r\n\r\nexport default function StepperWrapper(props) {\r\n return (\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport AircraftDropdown from \"../../shared/AircraftDropDown/AircraftDropdown\";\r\n\r\nexport default function AircraftDropdownWrapper(props) {\r\n return (\r\n \r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nexport default class TimeElement extends Component {\r\n handleClick = () => {\r\n const { onClick, value } = this.props;\r\n return onClick(value);\r\n };\r\n\r\n render = () => {\r\n const { value } = this.props;\r\n return (\r\n
  • \r\n {value}\r\n
  • \r\n );\r\n };\r\n}\r\n\r\nTimeElement.propTypes = {\r\n onClick: PropTypes.func.isRequired,\r\n value: PropTypes.string\r\n};\r\n\r\nTimeElement.defaultProps = {\r\n value: \"\"\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport TimeElement from \"./TimeElement\";\r\nimport moment from 'moment';\r\n\r\n\r\n\r\nconst FIRST_TWO = /^(.){2}/;\r\nconst LAST_TWO = /(.){2}$/;\r\nconst HOUR_VALID_REGEX = /^([01]\\d|2[0-3])/;\r\nconst TIME_VALID_REGEX = /^([01]\\d|2[0-3]):([0-5]\\d$)/;\r\n\r\nconst HOUR_MINUTE_FORMAT = '__:__';\r\nconst buildArray = length => Array.apply(null, { length });\r\n\r\nconst fillArray = (multiplier = 1) => (v, i) => `${i * multiplier < 10 ? 0 : ''}${i * multiplier}`;\r\n\r\nexport const HOURS = buildArray(24).map(fillArray());\r\n\r\nexport const MINUTES = buildArray(60 / 5).map(fillArray(5));\r\n\r\nexport const validateTime = time => TIME_VALID_REGEX.test(time);\r\n\r\nexport const roundUpToMultipleOfFive = num => {\r\n const mod = num % 5;\r\n return mod > 0 ? num + (5 - num % 5) : num;\r\n};\r\n\r\nexport const roundMinutesUpToMultipleOfFive = minute => {\r\n const min = parseInt(minute, 10);\r\n return `${min > 55 ? 0 : roundUpToMultipleOfFive(min)}`.padStart(2, '0');\r\n};\r\nclass TimePicker extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n openTimePicker: false,\r\n selectHour: false,\r\n selectMin: false,\r\n val: props.time || ''\r\n };\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.time !== this.state.val) {\r\n this.setState({\r\n val: nextProps.time,\r\n });\r\n }\r\n }\r\n buildArray = length => Array(...{ length });\r\n\r\n fillArray = (multiplier = 1) => (v, i) =>\r\n `${i * multiplier < 10 ? 0 : \"\"}${i * multiplier}`;\r\n\r\n closeTimePicker = (hour, minutes) => {\r\n if (hour && minutes) {\r\n this.setState({\r\n openTimePicker: false\r\n });\r\n }\r\n };\r\n\r\n \r\n handleHoursSelect = (hours, event) => {\r\n const time = this.state.val || HOUR_MINUTE_FORMAT;\r\n this.handleChange(time.replace(FIRST_TWO, hours), event);\r\n };\r\n\r\n handleMinutesSelect = (minutes, event) => {\r\n let time = this.state.val || HOUR_MINUTE_FORMAT;\r\n // whether hour is not valid\r\n if (!HOUR_VALID_REGEX.test(time)) {\r\n // set current hours\r\n time = time.replace(FIRST_TWO, moment().format('HH'));\r\n }\r\n time = time.replace(LAST_TWO, minutes);\r\n const list = document.getElementsByClassName('timePickerClass');\r\n Array.from(list).forEach(element => {\r\n element.classList.remove('uk-open');\r\n window.UIkit.dropdown(element).hide();\r\n });\r\n this.handleChange(time, event);\r\n };\r\n\r\n handleChange = (time, event) => {\r\n this.setState({ val: time });\r\n this.props.handleOnChange(time);\r\n // this.props.onChange(time, validateTime(time), event);\r\n };\r\n\r\n\r\n handleDepartureTimeHour = value => {\r\n const { handleHour } = this.props;\r\n if (handleHour) {\r\n handleHour(value);\r\n }\r\n this.setState({\r\n selectHour: !this.state.selectHour\r\n });\r\n // this.closeTimePicker(!this.state.selectHour, this.state.selectMin);\r\n };\r\n\r\n handleDepartureTimeMinutes = value => {\r\n const { handleMinutes } = this.props;\r\n if (handleMinutes) {\r\n handleMinutes(value);\r\n }\r\n this.setState({\r\n selectMin: !this.state.selectMin\r\n });\r\n // this.closeTimePicker(this.state.selectHour, !this.state.selectMin);\r\n };\r\n handleInputClick = () => {\r\n this.setState({\r\n openTimePicker: true\r\n });\r\n };\r\n\r\n render() {\r\n const { hintText} = this.props;\r\n let selectedFlightTime = this.state.val;\r\n let loc = this.state.val ? 'vistajet_timepicker vistajet_loc' : 'vistajet_timepicker';\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n HH\r\n
    \r\n \r\n
  • \r\n {HOURS.map((hour, index) => (\r\n \r\n ))}\r\n
  • \r\n \r\n
    \r\n
    \r\n
    \r\n MM\r\n
    \r\n \r\n
  • \r\n {MINUTES.map(minutes => (\r\n \r\n ))}\r\n
  • \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* )} */}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default TimePicker;\r\n\r\nTimePicker.propTypes = {\r\n hour: PropTypes.string,\r\n minutes: PropTypes.string,\r\n selectedTime: PropTypes.string,\r\n handleHour: PropTypes.string,\r\n handleMinutes: PropTypes.string\r\n};\r\n\r\nTimePicker.defaultProps = {\r\n hour: \"\",\r\n minutes: \"\",\r\n selectedTime: \"\",\r\n handleHour: \"\",\r\n handleMinutes: \"\"\r\n};\r\n","import React from \"react\";\r\nimport TimePicker from \"../../TimePicker\";\r\n\r\nexport default function TimePickerWrapper(props) {\r\n return ;\r\n}\r\n","import React from 'react';\r\nimport { isMobile } from 'react-device-detect';\r\nimport DatePicker from 'react-datepicker';\r\nimport Helpers from '../../../utils/Helpers';\r\nimport { format, parse } from 'date-fns';\r\n\r\n\r\n\r\nexport default function DatePickerWrapper(props) {\r\n var highlightedDates = props.highlightDates.map(date => parse(date, \"yyyy-MM-dd\", new Date()))\r\n\r\n return (\r\n {props.selected ? format(parse(props.selected, \"yyyy-MM-dd\", new Date()), props.dateFormat) : 'Select Date'}\r\n )\r\n }\r\n />)\r\n}","import React from \"react\";\r\nimport Select from \"react-select\";\r\nimport {\r\n handleFormatAirport,\r\n SHOW_AIRPPORTS_TO,\r\n MAX_AIRPORT_SEARCH,\r\n debounceIt,\r\n} from \"../../utils/airportUtils\";\r\nclass AirportSelector extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectValue: null,\r\n showLabel: true,\r\n displayText: \"Departure Airport\",\r\n searchedAirport: \"\",\r\n airports: [],\r\n filteredAirports: [],\r\n shouldChangeSelection: true\r\n };\r\n }\r\n componentDidMount() {\r\n if (this.props.isAirportsFetched) {\r\n this.setState({\r\n airports: this.airportsSortByCity(this.props.visitedAirports)\r\n });\r\n } else {\r\n this.props.fetchVisitedAirports();\r\n }\r\n if (this.props.prePopulatedData) {\r\n const label = handleFormatAirport(this.props.prePopulatedData);\r\n this.setState({\r\n selectValue: {\r\n value: this.props.preSelectedDeparture,\r\n label\r\n },\r\n displayText: label,\r\n showLabel: true\r\n });\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.visitedAirports !== this.props.visitedAirports) {\r\n const sortedAirport = this.airportsSortByCity(nextProps.visitedAirports);\r\n const { searchedAirport } = this.state;\r\n this.setState({\r\n airports: sortedAirport,\r\n });\r\n if (searchedAirport) {\r\n this.searchAirports(searchedAirport, sortedAirport);\r\n }\r\n }\r\n\r\n if (nextProps.prePopulatedData !== this.props.prePopulatedData) {\r\n const label = nextProps.prePopulatedData\r\n ? handleFormatAirport(nextProps.prePopulatedData)\r\n : \"\";\r\n this.setState({\r\n selectValue: {\r\n value: nextProps.preSelectedDeparture,\r\n label\r\n },\r\n displayText: label,\r\n shouldChangeSelection: false,\r\n showLabel: true\r\n });\r\n }\r\n }\r\n compareCity = (a, b) => {\r\n\r\n if (a.city && b.city) {\r\n const city1 = a.city.toLowerCase()\r\n const city2 = b.city.toLowerCase()\r\n if (city1 < city2) {\r\n return -1;\r\n }\r\n if (city1 > city2) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n };\r\n\r\n airportsSortByCity = (airports) => {\r\n return airports.sort(this.compareCity)\r\n }\r\n searchAirportList = () => {\r\n const { searchedAirport, airports} = this.state;\r\n this.searchAirports(searchedAirport, airports);\r\n }\r\n handleInputChange = value => {\r\n this.setState({\r\n searchedAirport: value\r\n },() => debounceIt(this.searchAirportList, 200));\r\n }; \r\n handleSelectChange = value => {\r\n if (Array.isArray(value) === false) {\r\n value.label = handleFormatAirport(value.value)\r\n this.setState({\r\n selectValue: value,\r\n displayText: value.label,\r\n showLabel: true\r\n });\r\n this.props.onAirportSelect(value.value, this.props.source);\r\n }\r\n };\r\n hideLabel = () => {\r\n this.setState({\r\n showLabel: false\r\n });\r\n };\r\n searchAirports = (value, airports) => {\r\n const result = airports.filter(element => {\r\n const airportCity = element.city ? element.city.toLowerCase() : \"\";\r\n const airportCountry = element.country.toLowerCase();\r\n const airportName = element.name.toLowerCase();\r\n const airpotCode = element.icao.toLowerCase();\r\n return (\r\n airportCity.indexOf(value.toLowerCase()) !== -1 ||\r\n airportCountry.indexOf(value.toLowerCase()) !== -1 ||\r\n airportName.indexOf(value.toLowerCase()) !== -1 ||\r\n airpotCode.indexOf(value.toLowerCase()) !== -1\r\n );\r\n });\r\n const filtered = value.length > 0 && value.length < 3 ? result.slice(0, MAX_AIRPORT_SEARCH) : result\r\n this.setState({\r\n\r\n filteredAirports: filtered\r\n });\r\n };\r\n formatAirportData = airports => {\r\n const airportOptions = airports.map(airport => ({\r\n value: airport,\r\n label: handleFormatAirport(airport)\r\n }));\r\n return airportOptions;\r\n };\r\n\r\n render() {\r\n const { airports, searchedAirport, filteredAirports } = this.state;\r\n const { source } = this.props;\r\n const placeholder = source === \"departure\" ? \"From\" : \"To\";\r\n let options = [];\r\n if (searchedAirport.length >= 1 && filteredAirports.length > 0) {\r\n options = this.formatAirportData(filteredAirports);\r\n } \r\n\r\n else if (airports && airports.length > 0 ) {\r\n options = this.formatAirportData(airports.slice(0, SHOW_AIRPPORTS_TO))\r\n }\r\n\r\n const AirportsList = (\r\n
    \r\n \r\n (searchedAirport.length > 0 && airports.length > 0)\r\n ? \"Searched airport is not found\"\r\n : \"Loading Airports\"\r\n }\r\n />\r\n
    \r\n );\r\n return
    {AirportsList}
    ;\r\n }\r\n}\r\nexport default AirportSelector;\r\n","import React from \"react\";\r\nimport AirportSelector from \"../../shared/AirportSelector\";\r\n\r\nconst determinigData = (source, leg) => {\r\n let data = null;\r\n // if (leg.prevLeg) {\r\n // if (source === \"departure\") data = leg.prevLeg.arrivalAirport;\r\n // else if (source === \"arrival\" && leg.isReturn) data = leg.prevLeg.departureAirport;\r\n // else if (source === \"arrival\" && leg.isWidgetFlow) data = leg.arrivalAirport;\r\n // } else {\r\n data = source === \"departure\" ? leg.departureAirport : leg.arrivalAirport;\r\n // }\r\n return data;\r\n};\r\n\r\nexport default function AirportSelectorWrapper(props) {\r\n const prePopulatedData = determinigData(props.source, props.leg);\r\n return (\r\n \r\n );\r\n}\r\n","import 'react-responsive-modal/styles.css';\r\nimport ReactModal from 'react-responsive-modal';\r\nimport React, { Component } from 'react';\r\n\r\nclass Modal extends Component {\r\n static defaultProps = {\r\n isCenter: true,\r\n closeOnEsc: false,\r\n closeOnOverlayClick: false,\r\n showCloseIcon: true,\r\n focusTrapped: true,\r\n closeIconSize: 28,\r\n onExited: () => {},\r\n onClose: () => {},\r\n closeIconSvgPath: ,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n };\r\n }\r\n\r\n show = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n hide = () => {\r\n const { onClose } = this.props;\r\n this.setState({ open: false });\r\n onClose();\r\n };\r\n \r\n\r\n render() {\r\n const {\r\n classNames,\r\n isCenter,\r\n closeOnEsc,\r\n closeOnOverlayClick,\r\n onExited,\r\n styles,\r\n showCloseIcon,\r\n closeIconSize,\r\n closeIconSvgPath,\r\n focusTrapped,\r\n children,\r\n } = this.props;\r\n const { open } = this.state;\r\n const classes = {\r\n overlay: `overlay-background ${(classNames || {}).overlay || ''}`,\r\n ...classNames,\r\n };\r\n return (\r\n \r\n { children }\r\n \r\n );\r\n }\r\n}\r\nexport default Modal;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { convertToTitleCase } from '../../utils/stringUtils';\r\n\r\nconst ExistingPax = (props) => {\r\n const {\r\n heading,\r\n frequentPax,\r\n search,\r\n paxList,\r\n handleAddPaxClick,\r\n submitting,\r\n searchTerm,\r\n searchClicked,\r\n } = props;\r\n\r\n const paxRows = (searchClicked ? paxList : frequentPax) || [];\r\n if (searchClicked && ((searchTerm && searchTerm.length < 3) || !searchTerm)) {\r\n return (\r\n
    \r\n \r\n Search should be at least 3 characters long.\r\n \r\n
    \r\n );\r\n }\r\n if (!paxRows.length) {\r\n if (search && !submitting) {\r\n return (\r\n
    \r\n No results found. \r\n
    \r\n );\r\n }\r\n if (!search) {\r\n return null;\r\n }\r\n }\r\n\r\n const paxNameRows = paxRows.map((pax, index) => (\r\n
  • { handleAddPaxClick(pax); }} key={pax.passengerId+index}>\r\n {convertToTitleCase(`${pax.firstName} ${pax.lastName}`)}\r\n \r\n \"add\r\n \r\n
  • )\r\n );\r\n\r\n return (\r\n
    \r\n
    {heading}
    \r\n
      \r\n {paxNameRows}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nExistingPax.propTypes = {\r\n heading: PropTypes.string,\r\n marginClass: PropTypes.string,\r\n frequentPax: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\r\n search: PropTypes.bool,\r\n paxList: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\r\n handleAddPaxClick: PropTypes.func,\r\n submitting: PropTypes.bool,\r\n searchTerm: PropTypes.string,\r\n searchClicked: PropTypes.bool,\r\n};\r\n\r\nexport default ExistingPax;\r\n","export const [\r\n PassengerList,\r\n PassengerSearch,\r\n PassengerForm,\r\n PassportForm,\r\n PassengerDetails,\r\n] = [1, 2, 3, 4, 5];\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ExistingPax from './ExistingPax';\r\nimport Source from '../../store/sources/ItineraryPassengerSource';\r\nimport { searchPaxNormalizer } from '../../normalizers/PassengerNormalizer';\r\nimport {\r\n PassengerList,\r\n PassengerForm,\r\n PassengerSearch,\r\n} from 'constants/passengerConstants';\r\nimport { getPassengerId } from 'utils/passengerUtils';\r\nimport SpinnerLoader from '../../components/shared/spinnerLoader';\r\n\r\nclass AddPassengers extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n heading: 'Recent Passengers',\r\n marginClass: 'my-pax-section',\r\n searchTerm: '',\r\n search: false,\r\n submitting: false,\r\n paxList: null,\r\n searchClicked: false,\r\n };\r\n this.props.isSearch(false);\r\n }\r\n\r\n handleSearchInput = (e) => {\r\n this.setState({\r\n searchTerm: e.target.value,\r\n });\r\n }\r\n\r\n searchPax = () => {\r\n this.setState({ searchClicked: true });\r\n if (this.state.searchTerm && this.state.searchTerm.length >= 3) {\r\n this.setState({\r\n heading: '',\r\n paxList: [],\r\n marginClass: '',\r\n search: true,\r\n submitting: true,\r\n });\r\n this.props.isSearch(true);\r\n if (!this.refs.searchInput.checkValidity()) {\r\n this.setState({\r\n submitting: false,\r\n search: false,\r\n });\r\n }\r\n }\r\n const term = this.state.searchTerm.trim();\r\n if (!this.state.submitting && term.length >= 3) {\r\n // prevent multiple submit\r\n Source.searchPax(term)\r\n .then((data) => {\r\n let paxList = searchPaxNormalizer(data.searchPax);\r\n const addedPaxIds = [];\r\n (this.props.addedPax || []).forEach(pax => {\r\n addedPaxIds.push(getPassengerId(pax));\r\n });\r\n paxList = paxList.filter(pax => (!addedPaxIds.includes(getPassengerId(pax))));\r\n this.setState({\r\n heading: 'Search Results',\r\n submitting: false,\r\n paxList,\r\n });\r\n })\r\n .catch(() => {\r\n this.handleReset();\r\n });\r\n }\r\n }\r\n\r\n handleReset = () => {\r\n this.setState({\r\n heading: 'Recent Passengers',\r\n marginClass: 'my-pax-section',\r\n search: false,\r\n searchTerm: '',\r\n paxList: null,\r\n submitting: false,\r\n searchClicked: false,\r\n });\r\n this.props.isSearch(false);\r\n }\r\n handleAddNewPaxClick = () => {\r\n this.props.handleRenderingChange(PassengerForm, PassengerSearch);\r\n };\r\n\r\n handleAddPaxClick = (passenger) => {\r\n this.props.handleDirtyChange(true);\r\n this.props.updateAddedPassengers(passenger);\r\n this.props.handleRenderingChange(PassengerList);\r\n };\r\n\r\n formSubmit = (e) => {\r\n e.preventDefault();\r\n }\r\n\r\n render() {\r\n const {\r\n searchTerm,\r\n search,\r\n submitting,\r\n searchClicked,\r\n } = this.state;\r\n\r\n return (\r\n
    \r\n {\r\n !(submitting || searchClicked) &&\r\n

    Select a passenger from the team OR Add a new\r\n passenger\r\n \r\n

    \r\n }\r\n
    \r\n
    \r\n
    \r\n {\r\n if (event.key === 'Enter') {\r\n this.searchPax();\r\n }\r\n }}\r\n className=\"vistajet_passenger_search_input\"\r\n />\r\n \r\n {(searchTerm.length >= 3 && search === true) &&\r\n \r\n \"\"\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n {!submitting ?\r\n :\r\n (
    \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nAddPassengers.propTypes = {\r\n frequentPax: PropTypes.array,\r\n addedPax: PropTypes.array,\r\n handleRenderingChange: PropTypes.func,\r\n handleDirtyChange: PropTypes.func,\r\n isSearch: PropTypes.func,\r\n};\r\n\r\nexport default AddPassengers;\r\n","import { connect } from 'react-redux';\r\nimport * as actions from '../../store/actions';\r\nimport AddPassengers from 'components/passengersPopup/AddPassengers';\r\nimport withStore from '../../components/withStore';\r\n\r\nfunction mapStateToProps(state, props) {\r\n return {\r\n ...state.passengerPopup,\r\n ...props,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n updateFrequentPax: (frequentPax) => dispatch(actions.updateFrequentPax(frequentPax)),\r\n updateAddedPassengers: (passenger) => dispatch(actions.updateAddedPassengers({ passenger })),\r\n updatePassport: (data, passengerId) => dispatch(actions.updatePassport({ data, passengerId })),\r\n closePopup: () => dispatch(actions.closePopup()),\r\n setLegPassport: (passengerId, passportNumber) => dispatch(actions.setLegPassport({ passengerId, passportNumber })),\r\n setLeadPassenger: (paxId) => dispatch(actions.setLeadPassenger({ paxId })),\r\n updateSelectedPassenger: (paxId) => dispatch(actions.updateSelectedPassenger({ paxId })),\r\n clearSelectedPassenger: () => dispatch(actions.clearSelectedPassenger()),\r\n removePassport: (passportNumber, passengerId) => dispatch(actions.removePassport({ passportNumber, passengerId })),\r\n removeUser: (paxId) => dispatch(actions.removeUser({ paxId })),\r\n initializePopup: (passengers, deletedPassengers) => dispatch(actions.initializePopup({ passengers, deletedPassengers })),\r\n };\r\n}\r\n\r\nconst PassengersAddContainer = connect(mapStateToProps, mapDispatchToProps)(AddPassengers);\r\n\r\nexport default withStore(PassengersAddContainer);\r\n","import CountriesList from '../constants/CountryConstants';\r\nimport Helpers from 'utils/Helpers';\r\nimport { convertToTitleCase } from 'utils/stringUtils';\r\nimport React from 'react'\r\n\r\nexport const getCountry = (key, value) => {\r\n const countryObj = CountriesList.find((c) => (\r\n (c[key].toUpperCase() === value.toUpperCase())\r\n ));\r\n return countryObj;\r\n};\r\n\r\nexport const getTruncatedCountryName = (name, code, value) => {\r\n const countryLabel = Helpers.truncateStr(convertToTitleCase(name), getNameLengthToDisplay(value));\r\n const countryObj = getCountry('THREE_LETTER_CODE', code) || {};\r\n const flagIcon = `flag-icon-style flag-icon-${countryObj.TWO_LETTER_CODE.toLowerCase()}`\r\n return (
    {countryLabel}
    ); // eslint-disable-line\r\n};\r\n\r\nexport const getNameLengthToDisplay = (value) => {\r\n const toBeReduced = value ? value : 0;\r\n const width = window.outerWidth;\r\n if (width < 350) {\r\n return 32-toBeReduced;\r\n } else if ( width < 400) {\r\n return 40-toBeReduced;\r\n } else if (width < 430) {\r\n return 44-toBeReduced;\r\n } else if (width < 800) {\r\n return 22+2*(toBeReduced+1);\r\n } else if ( width <= 1024) {\r\n return 32-2*(toBeReduced);\r\n } else {\r\n return 32-toBeReduced;\r\n }\r\n};\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { getCountry } from '../../utils/countryUtils';\r\nimport moment from 'moment';\r\nimport { getPassengerId } from 'utils/passengerUtils';\r\nimport { convertToTitleCase } from 'utils/stringUtils';\r\nimport {\r\n PassengerList,\r\n} from 'constants/passengerConstants';\r\nimport ConfirmationPopUp from '../shared/ConfirmationPopUpNew';\r\n\r\nclass PassengerRow extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showPassport: false,\r\n showIcons: false,\r\n changePassportNumber: 0,\r\n removeBorder: true,\r\n };\r\n }\r\n\r\n setLegPassport = (passportNumber) => {\r\n this.props.handleDirtyChange(true);\r\n this.setState({\r\n changePassportNumber: passportNumber,\r\n });\r\n const paxId = getPassengerId(this.props.passenger);\r\n this.props.setLegPassport(paxId, passportNumber);\r\n }\r\n\r\n setToLeadPassenger = () => {\r\n this.props.handleDirtyChange(true);\r\n const paxId = getPassengerId(this.props.passenger);\r\n this.props.setLeadPassenger(paxId);\r\n }\r\n\r\n handleIconsHover = () => {\r\n this.setState({\r\n showIcons: true,\r\n });\r\n }\r\n\r\n handleIconsOut = () => {\r\n this.setState({\r\n showIcons: false,\r\n });\r\n }\r\n\r\n viewPassengerDetail = () => {\r\n const paxId = getPassengerId(this.props.passenger);\r\n this.props.handleViewDetail(paxId);\r\n }\r\n\r\n handlePassportShow = (dropdownId) => {\r\n if (dropdownId && window.UIkit.dropdown(`#${dropdownId}`)) {\r\n window.UIkit.dropdown(`#${dropdownId}`).hide();\r\n }\r\n this.setState((PrevState) => ({\r\n showPassport: !PrevState.showPassport,\r\n removeBorder: !this.state.removeBorder,\r\n }));\r\n }\r\n\r\n handleRemoveUser = (dropdownId) => {\r\n if (dropdownId && window.UIkit.dropdown(`#${dropdownId}`)) {\r\n window.UIkit.dropdown(`#${dropdownId}`).hide();\r\n }\r\n this.deletePopup.show();\r\n }\r\n removeUser = () => {\r\n this.props.handleDirtyChange(true);\r\n const paxId = getPassengerId(this.props.passenger);\r\n this.props.removeUser(paxId);\r\n this.closeDeletePopup()\r\n }\r\n closeDeletePopup = () => {\r\n this.deletePopup.hide();\r\n }\r\n getDefaultPassportChecked = (isDefault, passportNumber) => {\r\n const { changePassportNumber } = this.state;\r\n if (changePassportNumber === passportNumber) {\r\n return true;\r\n } else if (!changePassportNumber && isDefault) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n renderPassport = (passports) => (\r\n !passports.length ? (\r\n
    \r\n No passport added\r\n
    \r\n )\r\n :\r\n passports.map((passport, index) => {\r\n if (passport.isDeleted || (!passport.isActive && !passport.isLegPassport)) {\r\n return null;\r\n }\r\n const passportCountry = getCountry('THREE_LETTER_CODE', passport.isoPassportCountry) || {};\r\n const countryFlagCode = passportCountry && passportCountry.TWO_LETTER_CODE;\r\n const dateToExpire = passport.expiry ?\r\n `Expires ${moment(passport.expiry).format('DD MMM YYYY')}` : '';\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n {passport && passport.passportNumber.toUpperCase()}\r\n \r\n {dateToExpire}\r\n \r\n \r\n \r\n \"\"\r\n {\r\n const paxId = getPassengerId(this.props.passenger);\r\n this.props.handleRemovePassport(passport.passportNumber, paxId);\r\n }}\r\n />\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n })\r\n );\r\n render() {\r\n const {\r\n passenger,\r\n passengerCount,\r\n uniqueId,\r\n } = this.props;\r\n const passengerName = convertToTitleCase(`${passenger.firstName} ${passenger.lastName}`);\r\n const {\r\n showPassport,\r\n removeBorder,\r\n } = this.state;\r\n const dropdownId = uniqueId;\r\n const paxStatus = passenger.isApproved ? 'Confirmed' : 'On Request';\r\n let removeBorderClass = 'vistajet_remove_border_bottom'\r\n if (!removeBorder) {\r\n removeBorderClass = '';\r\n }\r\n const activePassportClass = showPassport ? `passport_active_class` : ``;\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n const id = getPassengerId(passenger);\r\n this.viewPassengerDetail(id);\r\n }}\r\n >\r\n {passengerName}\r\n \r\n {passenger.leadPassenger && \r\n \"\"\r\n }\r\n \r\n {paxStatus}\r\n {\r\n const id = getPassengerId(passenger);\r\n this.viewPassengerDetail(id);\r\n }}>\r\n \"\"\r\n \r\n {!passenger.leadPassenger &&\r\n \r\n \"\"\r\n }\r\n {\r\n showPassport ?\r\n \r\n \"\"\r\n :\r\n \r\n \"\"\r\n \r\n }\r\n \r\n \"\"\r\n \r\n \r\n \r\n
    \r\n {showPassport && \r\n {this.renderPassport(passenger.passports)}\r\n \r\n }\r\n
    \r\n { this.deletePopup = deletePopup; }}\r\n id=\"deletePopup\"\r\n leftButtonContent=\"No\"\r\n rightButtonContent=\"Yes\"\r\n onLeftButtonClick={this.closeDeletePopup}\r\n onRightButtonClick={this.removeUser}\r\n content={`Are you sure you want to remove this passenger?`}\r\n closeOnOverlayClick={false}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\nPassengerRow.propTypes = {\r\n passenger: PropTypes.object,\r\n passengerCount: PropTypes.number,\r\n handleViewDetail: PropTypes.func,\r\n handleAddNewPassport: PropTypes.func,\r\n handleRemovePassport: PropTypes.func,\r\n handleDirtyChange: PropTypes.func,\r\n};\r\nexport default PassengerRow;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n PassengerList,\r\n PassengerSearch,\r\n} from 'constants/passengerConstants';\r\nimport PassengerRow from './PassengerRow';\r\nimport Helpers from 'utils/Helpers';\r\n\r\nclass ListPassengerRows extends Component {\r\n\r\n handlePassengerClick = () => {\r\n this.props.handleRenderingChange(PassengerSearch, PassengerList);\r\n };\r\n\r\n renderPassengers = (count, addedPax) => {\r\n const list = addedPax.map((pax, i) => (\r\n )\r\n );\r\n const listLength = list.length > 0 ? list.length : 0;\r\n for (let i = 1; i <= count - listLength; i++) {\r\n list.push(\r\n
    \r\n
    \r\n
    \r\n Select Passenger\r\n \r\n \"\"/\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n return list;\r\n }\r\n render() {\r\n const {\r\n count,\r\n addedPax,\r\n showLoaderPassenger,\r\n } = this.props;\r\n return (\r\n
    \r\n {!showLoaderPassenger ?\r\n this.renderPassengers(count, addedPax) :\r\n (\r\n
    \r\n )\r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nListPassengerRows.propTypes = {\r\n count: PropTypes.number,\r\n handleRenderingChange: PropTypes.func,\r\n addedPax: PropTypes.array,\r\n handleViewDetail: PropTypes.func,\r\n handleRemovePassport: PropTypes.func,\r\n handleAddNewPassport: PropTypes.func,\r\n handleDirtyChange: PropTypes.func,\r\n};\r\n\r\nexport default ListPassengerRows;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ListPassengerRows from './ListPassengerRows';\r\nimport { getPaxToBeAnnounced } from '../../utils/passengerUtils';\r\n\r\nclass ListPassengers extends Component {\r\n static propTypes = {\r\n handleRenderingChange: PropTypes.func,\r\n handlePaxCount: PropTypes.func,\r\n paxCount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n showCounter: PropTypes.bool,\r\n disableConfirmBtn: PropTypes.bool,\r\n disableAddPassengerBtn: PropTypes.bool,\r\n isError: PropTypes.bool,\r\n maxNumberOfPassengers: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n addedPax: PropTypes.array,\r\n deletedPax: PropTypes.array,\r\n handleViewDetail: PropTypes.func,\r\n handleRemovePassport: PropTypes.func,\r\n handleAddNewPassport: PropTypes.func,\r\n removeUser: PropTypes.func,\r\n handleConfirm: PropTypes.func,\r\n setError: PropTypes.func,\r\n handleDirtyChange: PropTypes.func,\r\n onItineraryDetail: PropTypes.bool,\r\n };\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n };\r\n }\r\n render() {\r\n const {\r\n paxCount,\r\n addedPax,\r\n handleRenderingChange,\r\n handleViewDetail,\r\n handleRemovePassport,\r\n handleAddNewPassport,\r\n handleDirtyChange,\r\n removeUser,\r\n setLeadPassenger,\r\n setLegPassport,\r\n showLoaderPassenger,\r\n } = this.props;\r\n const paxToBeAnnounced = getPaxToBeAnnounced(paxCount, addedPax);\r\n return (\r\n
    \r\n
    {paxToBeAnnounced}
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\nexport default ListPassengers;\r\n","import { connect } from 'react-redux';\r\nimport * as actions from '../../store/actions';\r\nimport ListPassengers from '../../components/passengersPopup/ListPassengers';\r\nimport withStore from '../../components/withStore';\r\n\r\nfunction mapStateToProps(state, props) {\r\n return {\r\n ...state.passengerPopup,\r\n ...props,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n updateFrequentPax: (frequentPax) => dispatch(actions.updateFrequentPax(frequentPax)),\r\n updateAddedPassengers: (passenger) => dispatch(actions.updateAddedPassengers({ passenger })),\r\n updatePassport: (data, passengerId) => dispatch(actions.updatePassport({ data, passengerId })),\r\n closePopup: () => dispatch(actions.closePopup()),\r\n setLegPassport: (passengerId, passportNumber) => dispatch(actions.setLegPassport({ passengerId, passportNumber })),\r\n setLeadPassenger: (paxId) => dispatch(actions.setLeadPassenger({ paxId })),\r\n updateSelectedPassenger: (paxId) => dispatch(actions.updateSelectedPassenger({ paxId })),\r\n clearSelectedPassenger: () => dispatch(actions.clearSelectedPassenger()),\r\n removePassport: (passportNumber, passengerId) => dispatch(actions.removePassport({ passportNumber, passengerId })),\r\n removeUser: (paxId) => dispatch(actions.removeUser({ paxId })),\r\n initializePopup: (passengers, deletedPassengers) => dispatch(actions.initializePopup({ passengers, deletedPassengers })),\r\n };\r\n}\r\n\r\nconst PassengersListContainer = connect(mapStateToProps, mapDispatchToProps)(ListPassengers);\r\n\r\nexport default withStore(PassengersListContainer);\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n PassengerDetails,\r\n} from 'constants/passengerConstants';\r\nimport { getPassengerId } from 'utils/passengerUtils';\r\nimport { getCountry } from 'utils/countryUtils';\r\nimport moment from 'moment';\r\nimport { convertToTitleCase } from '../../utils/stringUtils';\r\n\r\nclass PassengerDetail extends Component {\r\n static propTypes = {\r\n addedPax: PropTypes.array,\r\n handleAddNewPassport: PropTypes.func,\r\n handleRemovePassport: PropTypes.func,\r\n selectedPassengerId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n setLegPassport: PropTypes.func,\r\n handleDirtyChange: PropTypes.func,\r\n };\r\n constructor(props) {\r\n super(props);\r\n const {\r\n selectedPassengerId,\r\n addedPax,\r\n } = props;\r\n\r\n const paxDetail = addedPax.find((pax) => {\r\n const passengerId = pax.passengerId || pax.passengerExtIdentifier;\r\n return (passengerId === selectedPassengerId);\r\n });\r\n this.state = {\r\n paxDetail,\r\n changePassportNumber: 0,\r\n };\r\n }\r\n setLegPassport = (passportNumber) => {\r\n this.props.handleDirtyChange(true);\r\n this.setState({\r\n changePassportNumber: passportNumber,\r\n });\r\n\r\n const paxId = getPassengerId(this.state.paxDetail);\r\n this.props.setLegPassport(paxId, passportNumber);\r\n }\r\n getDefaultPassportChecked = (isDefault, passportNumber) => {\r\n const { changePassportNumber } = this.state;\r\n if (changePassportNumber === passportNumber) {\r\n return true;\r\n } else if (!changePassportNumber && isDefault) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n renderPassport = (passports) => (\r\n !passports.length ? (\r\n
    \r\n No passport added\r\n
    \r\n )\r\n :\r\n passports.map((passport, index) => {\r\n if (passport.isDeleted || (!passport.isActive && !passport.isLegPassport)) {\r\n return null;\r\n }\r\n const passportCountry = getCountry('THREE_LETTER_CODE', passport.isoPassportCountry) || {};\r\n const countryFlagCode = passportCountry && passportCountry.TWO_LETTER_CODE;\r\n const dateToExpire = passport.expiry ?\r\n `Expires ${moment(passport.expiry).format('DD MMM YYYY')}` : '';\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {passport && passport.passportNumber.toUpperCase()}\r\n \r\n {dateToExpire}\r\n \r\n \r\n \r\n \"\"\r\n {\r\n this.props.handleRemovePassport(passport.passportNumber,\r\n this.props.selectedPassengerId);\r\n }}\r\n />\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n })\r\n );\r\n render() {\r\n const {\r\n paxDetail,\r\n } = this.state;\r\n\r\n const dateOfBirth = paxDetail.dateOfBirth ?\r\n moment(paxDetail.dateOfBirth).format('DD-MMM-YYYY') : '-';\r\n\r\n const email = paxDetail.emailAddresses &&\r\n paxDetail.emailAddresses.length && paxDetail.emailAddresses[0].email || '-';\r\n\r\n const phoneNumber = paxDetail.phoneNumbers &&\r\n paxDetail.phoneNumbers.length && paxDetail.phoneNumbers[0].phoneNumber || '-';\r\n\r\n const gender = paxDetail.gender || '-';\r\n\r\n const passengerName = convertToTitleCase(`${paxDetail.firstName} ${paxDetail.lastName}`);\r\n\r\n return (\r\n \r\n \r\n
    Passenger Passports
    \r\n \r\n {this.renderPassport(paxDetail.passports)}\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default PassengerDetail;\r\n","import { connect } from 'react-redux';\r\nimport * as actions from '../../store/actions';\r\nimport PassengerDetail from '../../components/passengersPopup/PassengerDetail';\r\nimport withStore from '../../components/withStore';\r\n\r\nfunction mapStateToProps(state, props) {\r\n return {\r\n ...state.passengerPopup,\r\n ...props,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n updateFrequentPax: (frequentPax) => dispatch(actions.updateFrequentPax(frequentPax)),\r\n updateAddedPassengers: (passenger) => dispatch(actions.updateAddedPassengers({ passenger })),\r\n updatePassport: (data, passengerId) => dispatch(actions.updatePassport({ data, passengerId })),\r\n closePopup: () => dispatch(actions.closePopup()),\r\n setLegPassport: (passengerId, passportNumber) => dispatch(actions.setLegPassport({ passengerId, passportNumber })),\r\n setLeadPassenger: (paxId) => dispatch(actions.setLeadPassenger({ paxId })),\r\n updateSelectedPassenger: (paxId) => dispatch(actions.updateSelectedPassenger({ paxId })),\r\n clearSelectedPassenger: () => dispatch(actions.clearSelectedPassenger()),\r\n removePassport: (passportNumber, passengerId) => dispatch(actions.removePassport({ passportNumber, passengerId })),\r\n removeUser: (paxId) => dispatch(actions.removeUser({ paxId })),\r\n initializePopup: (passengers, deletedPassengers) => dispatch(actions.initializePopup({ passengers, deletedPassengers })),\r\n };\r\n}\r\n\r\nconst PassengersDetailContainer = connect(mapStateToProps, mapDispatchToProps)(PassengerDetail);\r\n\r\nexport default withStore(PassengersDetailContainer);\r\n","import moment from 'moment';\r\nimport { EMAIL_REGEX, NAME_REGEX } from 'constants/SignupConstants';\r\n\r\nlet instance = null;\r\nclass Validator {\r\n\r\n\r\n constructor() {\r\n if (!instance) {\r\n instance = this;\r\n }\r\n return instance;\r\n }\r\n validEmail(email) {\r\n return (!EMAIL_REGEX.test(email));\r\n }\r\n validPhoneNo(phoneno) {\r\n const rePhone = /^[\\+]?[(]?[0-9-]{8,14}$/;\r\n return !(rePhone.test(phoneno));\r\n }\r\n\r\n onlyAlphaNumeric(stringToTest) {\r\n const rePhone = /^[a-z0-9]+$/i;\r\n return !(rePhone.test(stringToTest));\r\n }\r\n\r\n validName(name) {\r\n return (!NAME_REGEX.test(name));\r\n }\r\n\r\n validRequired(value) {\r\n return !value || !value.toString().trim();\r\n }\r\n\r\n isInvalidDate(value) {\r\n return !value || value === 'Invalid date';\r\n }\r\n\r\n validPax(value) {\r\n return +value === 0;\r\n }\r\n\r\n validAircraft(value) {\r\n return !(value || {}).displayName;\r\n }\r\n\r\n validTimeZone(date, airport) {\r\n let isValid = true;\r\n if (!!airport && !!date && date !== 'Invalid date') {\r\n const time = moment.utc(date);\r\n airport.timezones.forEach((data) => {\r\n if (time.isBetween(data.effectiveFromTimeUtc, data.effectiveToTimeUtc) ||\r\n time.isSame(data.effectiveFromTimeUtc)) {\r\n isValid = false;\r\n }\r\n });\r\n return isValid;\r\n }\r\n return false;\r\n }\r\n\r\n validAgreement(check) {\r\n return !check;\r\n }\r\n\r\n matchPassword(pass1, pass2) {\r\n return pass1 !== pass2;\r\n }\r\n\r\n checkCharacterLimit(value, maxLimit, minLimit = 0) {\r\n return value.length >= minLimit && value.length <= maxLimit;\r\n }\r\n\r\n validateDuration(duration, aircraftTime) {\r\n return (!isNaN(+duration) && (+duration > +aircraftTime));\r\n }\r\n\r\n // is given date string is after current date\r\n dateInFuture(dateString, res) {\r\n const resolution = res || 'day';\r\n const momentObj = moment(dateString).utc();\r\n return momentObj.isAfter(moment(), resolution);\r\n }\r\n\r\n // is given date string is before current date\r\n dateInPast(dateString, res) {\r\n const resolution = res || 'day';\r\n const momentObj = moment(dateString);\r\n return momentObj.isBefore(moment(), resolution);\r\n }\r\n\r\n isSameMinDate(date1, date2) {\r\n let dateOne = date1;\r\n let dateTwo = date2;\r\n if (!moment.isMoment(date1)) {\r\n dateOne = moment(date1);\r\n }\r\n if (!moment.isMoment(date2)) {\r\n dateTwo = moment(date2);\r\n }\r\n return dateOne.isSame(dateTwo, 'day');\r\n }\r\n\r\n /* @akram\r\n * Check if given dates are same\r\n *\r\n * @param date1: string OR Object\r\n * @param date2: string OR Object\r\n * @returns bool\r\n */\r\n isSameDate(date1, date2) {\r\n const d1 = (date1 !== null && typeof date1 === 'object') ? date1.format() : date1;\r\n const d2 = (date2 !== null && typeof date2 === 'object') ? date2.format() : date2;\r\n return (d1 === d2);\r\n }\r\n\r\n isDateValid(val, state) {\r\n return !this.isSameDate(val, state) &&\r\n (moment(val, ['DD/MM/YYYY', 'DD MMM YYYY'], true).isValid() || val === '');\r\n }\r\n\r\n isValidDate(date) {\r\n return (moment(date, ['DD/MM/YYYY', 'DD MMM YYYY', 'YYYY MM DD',\r\n 'MM DD YYYY'], true).isValid() || date === '');\r\n }\r\n}\r\n\r\nconst ValidatorObj = new Validator(); // singleton\r\n\r\nexport default ValidatorObj;\r\n","import React, { Component } from 'react';\r\nimport DateTime from 'react-datetime';\r\nimport moment from 'moment'\r\nimport { convertToZulu } from '../../utils/dateUtils';\r\nimport { isValid } from 'ipaddr.js';\r\n\r\nclass ReactCalendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n validDates = (current) => {\r\n if (current) {\r\n const currentIsAfter = current.isAfter(moment(this.props.minDate).subtract(1, 'day').toDate());\r\n const currentIsBefore = current.isBefore(moment(this.props.maxDate).toDate())\r\n return currentIsAfter && currentIsBefore;\r\n }\r\n return false;\r\n }\r\n handleOnChange = (selectedDate) => {\r\n const date = convertToZulu(moment(selectedDate, ['DD/MM/YYYY', 'DD MMM YYYY'], true));\r\n let dateInput = isValid && this.validDates(date) ? date.utc().format('DD MMM YYYY') : selectedDate;\r\n this.props.onDateChange(dateInput);\r\n }\r\n render() {\r\n const inputProps = {\r\n placeholder: this.props.placeholder,\r\n readOnly: this.props.readOnly,\r\n autoComplete: 'off',\r\n };\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default ReactCalendar;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CountriesList from '../../constants/CountryConstants';\r\nimport moment from 'moment';\r\nimport ConfirmationPopUpNew from '../shared/ConfirmationPopUpNew';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport Validate from '../../utils/Validator';\r\nimport { getPassengerId } from '../../utils/passengerUtils';\r\nimport MessagePopUpNew from '../shared/MessagePopUpNew';\r\nimport Select from 'react-select';\r\nimport Calendar from '../shared/ReactCalendar'\r\nimport { convertToTitleCase } from '../../utils/stringUtils';\r\nimport { NAME_REGEX } from '../../constants/SignupConstants';\r\nimport { getTruncatedCountryName } from 'utils/countryUtils';\r\n\r\nclass AddPassport extends React.Component {\r\n\r\n static propTypes = {\r\n addPassportToPassenger: PropTypes.func,\r\n updateFlightPassengers: PropTypes.func,\r\n setStateDirty: PropTypes.func,\r\n showToastMesg: PropTypes.func,\r\n updateHeading: PropTypes.func,\r\n handleAddPassportToPax: PropTypes.func,\r\n handleDirtyChange: PropTypes.func,\r\n newPassenger: PropTypes.object,\r\n addedPax: PropTypes.array,\r\n selectedPassengerId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLegPassport: false,\r\n isAdded: true,\r\n isActive: true,\r\n imageUrl: null,\r\n imageFile: null,\r\n passportNumber: '',\r\n displayName: '',\r\n isoPassportCountry: '',\r\n expiresOnDate: '',\r\n isoIssuedByCountry: '',\r\n validationErrors: {\r\n passportNumber: '',\r\n expiresOnDate: '',\r\n displayName: '',\r\n nationality: '',\r\n issuingCountry: '',\r\n },\r\n showLoader: false,\r\n openPassportExistsDialog: false,\r\n };\r\n this.styles = {\r\n selectBox: { borderRadius: 0 },\r\n };\r\n this.updatePaxFlag = false;\r\n }\r\n\r\n onHandleClose = () => {\r\n this.setState({ duplicatePassportErr: '' });\r\n }\r\n\r\n onPassportNumberChange = (e) => {\r\n this.props.handleDirtyChange(true);\r\n this.setState({\r\n passportNumber: e.target.value,\r\n });\r\n }\r\n\r\n onPassportNameChange = (e) => {\r\n this.props.handleDirtyChange(true);\r\n const input = e.target.value;\r\n if (input && NAME_REGEX.test(input)) {\r\n this.setState({\r\n displayName: input,\r\n });\r\n } else if (!input) {\r\n this.setState({\r\n displayName: input,\r\n });\r\n }\r\n }\r\n\r\n onPassportNationalityChange = (obj) => {\r\n let newValue = obj;\r\n newValue.label = getTruncatedCountryName(obj.value, obj.code);\r\n this.props.handleDirtyChange(true);\r\n this.setState({\r\n isoPassportCountry: newValue,\r\n });\r\n }\r\n\r\n onPassportIssueCountryChange = (obj) => {\r\n let newValue = obj;\r\n newValue.label = getTruncatedCountryName(obj.value, obj.code);\r\n this.props.handleDirtyChange(true);\r\n this.setState({\r\n isoIssuedByCountry: newValue,\r\n });\r\n }\r\n\r\n handleDateChange = (jsDate) => {\r\n let dateFormated = jsDate;\r\n if (jsDate) {\r\n // dateFormated = formatDate(jsDate, dateFormats.DDMMMYYYY);\r\n this.props.handleDirtyChange(true);\r\n this.validatePassportExpiry(dateFormated);\r\n }\r\n\r\n }\r\n\r\n handlePassportOverride = () => {\r\n const data = this.createData({ isUpdate: true });\r\n this.props.handleDirtyChange(false);\r\n this.props.handleAddPassportToPax(data, this.props.selectedPassengerId);\r\n this.passportChangesOverride.show();\r\n }\r\n\r\n isDuplicatePassport = (targetPassportNumber) => {\r\n // checking for a duplicate passport.\r\n let isDuplicate = false;\r\n // iterate over all passengers\r\n this.props.addedPax.forEach((passenger) => {\r\n // iterate over all passports\r\n if (passenger.passports && passenger.passports.length > 0 && !isDuplicate) {\r\n isDuplicate = passenger.passports\r\n .some((passport) => (passport.passportNumber.toUpperCase() === targetPassportNumber.toUpperCase()));\r\n }\r\n });\r\n return isDuplicate;\r\n }\r\n\r\n handleSubmit = (e) => {\r\n e.preventDefault();\r\n // const that = this;\r\n let isFormValid = true;\r\n const validationErrors = {\r\n passportNumber: '',\r\n expiresOnDate: '',\r\n displayName: '',\r\n nationality: '',\r\n issuingCountry: '',\r\n };\r\n\r\n // form validations\r\n if (Validate.onlyAlphaNumeric(this.state.passportNumber)) {\r\n isFormValid = false;\r\n validationErrors.passportNumber = 'Passport Number should contain ' +\r\n 'only alpha numeric characters';\r\n }\r\n\r\n // form validations\r\n if (Validate.validRequired(this.state.passportNumber)) {\r\n isFormValid = false;\r\n validationErrors.passportNumber = 'Passport Number is required';\r\n }\r\n\r\n if (!Validate.checkCharacterLimit(this.state.passportNumber, 10)) {\r\n isFormValid = false;\r\n validationErrors.passportNumber = 'Passport Number should not ' +\r\n 'exceed 10 characters';\r\n }\r\n\r\n // passport name\r\n if (Validate.validRequired(this.state.displayName)) {\r\n isFormValid = false;\r\n validationErrors.displayName = 'Passport Name is required';\r\n }\r\n\r\n // passport country\r\n if (Validate.validRequired(this.state.isoPassportCountry)) {\r\n isFormValid = false;\r\n validationErrors.nationality = 'Please enter valid nationality';\r\n }\r\n\r\n // passport issue country\r\n if (Validate.validRequired(this.state.isoIssuedByCountry)) {\r\n isFormValid = false;\r\n validationErrors.issuingCountry = 'Please enter valid issuing country';\r\n }\r\n\r\n const formattedExpiration = this.state.expiresOnDate ?\r\n this.state.expiresOnDate.format() : '';\r\n\r\n if (Validate.validRequired(formattedExpiration)) {\r\n isFormValid = false;\r\n validationErrors.expiresOnDate = 'Expiry date is required';\r\n }\r\n\r\n if (Validate.dateInPast(formattedExpiration)) {\r\n isFormValid = false;\r\n validationErrors.expiresOnDate =\r\n 'Date should be in future';\r\n }\r\n if (isFormValid) {\r\n if (this.isDuplicatePassport(this.state.passportNumber)) {\r\n this.setState({\r\n duplicatePassportErr: 'This passport is already saved',\r\n });\r\n this.duplicatePassportErrRef.show();\r\n return false;\r\n }\r\n if (this.isPassportExist(this.state.passportNumber, this.props.selectedPassengerId)) {\r\n this.passportChangesOverride.show();\r\n } else {\r\n const data = this.createData({ isUpdate: false, isNew: true });\r\n this.props.handleDirtyChange(false);\r\n this.props.handleAddPassportToPax(data, this.props.selectedPassengerId);\r\n return true;\r\n }\r\n } else {\r\n this.setState({\r\n validationErrors,\r\n });\r\n }\r\n return false;\r\n }\r\n createData = ({ isUpdate, isNew }) => {\r\n const expiry = this.state.expiresOnDate ?\r\n this.state.expiresOnDate.utc().format() : '';\r\n return {\r\n displayName: this.state.displayName,\r\n expiry,\r\n isActive: true,\r\n isAdded: true,\r\n isDefault: false,\r\n isInvalid: false,\r\n isOnHands: false,\r\n isUpdated: !!isUpdate,\r\n isDeleted: false,\r\n isNew: !!isNew,\r\n isoPassportCountry: this.state.isoPassportCountry.code,\r\n isoPassportIssuedByCountry: this.state.isoIssuedByCountry.code,\r\n issuedOnDate: '',\r\n passportCountry: this.state.isoPassportCountry.value || '',\r\n passportFiles: [],\r\n passportId: '',\r\n passportIssuedByCountry: this.state.isoIssuedByCountry.value || '',\r\n passportNumber: this.state.passportNumber,\r\n visa: '',\r\n isLegPassport: false,\r\n };\r\n }\r\n makePassportNumberCapital = () => {\r\n let { passportNumber } = this.state;\r\n if (passportNumber) {\r\n passportNumber = passportNumber.trim();\r\n passportNumber = passportNumber.toUpperCase();\r\n this.setState({\r\n passportNumber,\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n validatePassportExpiry = (value) => {\r\n if (Validate.isDateValid(value, this.state.expiresOnDate) && value) {\r\n const validationErrors = this.state.validationErrors;\r\n const expiresOnDate = moment(value) || '';\r\n if (Validate.validRequired(expiresOnDate)) {\r\n validationErrors.expiresOnDate = 'Expiry date is required';\r\n } else if (Validate.dateInPast(expiresOnDate)) {\r\n validationErrors.expiresOnDate = 'Date should be in future';\r\n } else {\r\n validationErrors.expiresOnDate = '';\r\n }\r\n\r\n this.setState({\r\n validationErrors,\r\n expiresOnDate,\r\n });\r\n }\r\n }\r\n isPassportExist = (passportNumber, paxId) => {\r\n let isExistPassport = false;\r\n const passenger = !!paxId ?\r\n this.props.addedPax.find(pax => {\r\n const id = getPassengerId(pax);\r\n return (id === paxId);\r\n }) :\r\n this.props.newPassenger;\r\n isExistPassport = ((passenger || {}).passports || []).some(passport =>\r\n passport.passportNumber.toUpperCase() === passportNumber.toUpperCase());\r\n return !!isExistPassport;\r\n }\r\n onCancel = () => {\r\n this.passportChangesOverride.hide();\r\n }\r\n generateCountries = () => {\r\n return CountriesList.map((country) => {\r\n const flagIcon = `flag-icon-style flag-icon-${country.TWO_LETTER_CODE.toLowerCase()}`;\r\n const countryLabel = convertToTitleCase(country.COUNTRY_NAME);\r\n return {\r\n value: country.COUNTRY_NAME,\r\n label:
    {countryLabel}
    , // eslint-disable-line\r\n code: country.THREE_LETTER_CODE,\r\n };\r\n });\r\n };\r\n disableButton = () => {\r\n const {\r\n passportNumber,\r\n displayName,\r\n isoPassportCountry,\r\n expiresOnDate,\r\n isoIssuedByCountry,\r\n } = this.state;\r\n if (passportNumber && displayName && isoPassportCountry && expiresOnDate && isoIssuedByCountry) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n handleDateChangeRaw = (e) => {\r\n e.preventDefault();\r\n };\r\n render() {\r\n const countryOptions = this.generateCountries();\r\n const isDisableButton = this.disableButton();\r\n const buttonClass = isDisableButton ?\r\n `uk-button vistajet_disabled uk-width-1-1 uk-text-center` :\r\n `uk-button uk-button-default uk-width-1-1 uk-text-center`;\r\n const { validationErrors = {} } = this.state;\r\n const isPassportError = validationErrors && validationErrors.passportNumber;\r\n let classMargin = ''\r\n if (isPassportError) {\r\n classMargin = 'vistajet_passenger_passport_passportname';\r\n }\r\n return (\r\n
    \r\n { this.passportChangesOverride = passportChangesOverride; }}\r\n content=\"This passport is already saved, Do you want to overwrite it?\"\r\n leftButtonContent=\"No\"\r\n rightButtonContent=\"Yes\"\r\n onLeftButtonClick={this.onCancel}\r\n onRightButtonClick={this.handlePassportOverride}\r\n />\r\n
    Please add passport details
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Passport Number\r\n \r\n {\r\n validationErrors &&\r\n validationErrors.passportNumber ?\r\n

    {validationErrors.passportNumber}

    :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n validationErrors &&\r\n validationErrors.expiresOnDate ?\r\n

    {validationErrors.expiresOnDate}

    :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Passport Name\r\n \r\n {\r\n validationErrors &&\r\n validationErrors.displayName ?\r\n

    {validationErrors.displayName}

    :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n validationErrors &&\r\n validationErrors.nationality ?\r\n

    {validationErrors.nationality}

    \r\n :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n validationErrors &&\r\n validationErrors.issuingCountry ?\r\n

    {validationErrors.issuingCountry}

    :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n { this.duplicatePassportErrRef = duplicatePassportErrRef; }}\r\n onClose={this.onHandleClose}\r\n content={this.state.duplicatePassportErr}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default AddPassport;\r\n","import { connect } from 'react-redux';\r\nimport * as actions from '../../store/actions';\r\nimport AddPassport from '../../components/passengersPopup/AddPassport';\r\nimport withStore from '../../components/withStore';\r\n\r\nfunction mapStateToProps(state, props) {\r\n return {\r\n ...state.passengerPopup,\r\n ...props,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n updateFrequentPax: (frequentPax) => dispatch(actions.updateFrequentPax(frequentPax)),\r\n updateAddedPassengers: (passenger) => dispatch(actions.updateAddedPassengers({ passenger })),\r\n updatePassport: (data, passengerId) => dispatch(actions.updatePassport({ data, passengerId })),\r\n closePopup: () => dispatch(actions.closePopup()),\r\n setLegPassport: (passengerId, passportNumber) => dispatch(actions.setLegPassport({ passengerId, passportNumber })),\r\n setLeadPassenger: (paxId) => dispatch(actions.setLeadPassenger({ paxId })),\r\n updateSelectedPassenger: (paxId) => dispatch(actions.updateSelectedPassenger({ paxId })),\r\n clearSelectedPassenger: () => dispatch(actions.clearSelectedPassenger()),\r\n removePassport: (passportNumber, passengerId) => dispatch(actions.removePassport({ passportNumber, passengerId })),\r\n removeUser: (paxId) => dispatch(actions.removeUser({ paxId })),\r\n initializePopup: (passengers, deletedPassengers) => dispatch(actions.initializePopup({ passengers, deletedPassengers })),\r\n };\r\n}\r\n\r\nconst AddPassportContainer = connect(mapStateToProps, mapDispatchToProps)(AddPassport);\r\n\r\nexport default withStore(AddPassportContainer);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport moment from 'moment';\r\nimport Validate from '../../utils/Validator';\r\nimport { LEGACY_ERROR_MESSAGES, INVALID_DATE_MSG } from '../../constants/ErrorMessageConstants';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport Calendar from '../shared/ReactCalendar'\r\nimport { isValidDateInFuture } from '../../utils/dateUtils';\r\nimport { getCountry } from 'utils/countryUtils';\r\nimport Helpers from '../../utils/Helpers';\r\nimport {\r\n PassengerForm,\r\n PassportForm,\r\n} from '../../constants/passengerConstants';\r\nimport {\r\n NAME_REGEX,\r\n INVALID_NAME,\r\n} from '../../constants/SignupConstants';\r\nimport Source from '../../store/sources/ItineraryPassengerSource';\r\nimport { getGender } from '../../utils/passengerUtils';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport Select from 'react-select';\r\n\r\nclass AddNewPassenger extends React.Component {\r\n\r\n static propTypes = {\r\n showToastMesg: PropTypes.func,\r\n handleRenderingChange: PropTypes.func,\r\n handleAddPassportFromPax: PropTypes.func,\r\n newPassenger: PropTypes.object,\r\n submitNewPassenger: PropTypes.func,\r\n handleDirtyChange: PropTypes.func,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n const dob = props.newPassenger.dateOfBirth ? moment(props.newPassenger.dateOfBirth) : '';\r\n const email = ((props.newPassenger.emailAddresses || [])[0] || {}).email || '';\r\n const phoneNumber = ((props.newPassenger.phoneNumbers || [])[0] || {}).phoneNumber || '';\r\n this.state = {\r\n changePassportNumber: 0,\r\n dateOfBirth: dob,\r\n email,\r\n firstName: props.newPassenger.firstName || '',\r\n genderId: this.getGenderObj(props.newPassenger.genderId, props.newPassenger.gender),\r\n lastName: props.newPassenger.lastName || '',\r\n phoneNumber,\r\n imageFile: props.newPassenger.profilePicture || '',\r\n passports: props.newPassenger.passports || [],\r\n passengerExtIdentifier: Helpers.guid(),\r\n validationErrors: {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n phoneNumber: '',\r\n dob: '',\r\n },\r\n showLoader: false,\r\n };\r\n this.styles = {\r\n selectBox: { borderRadius: 0 },\r\n };\r\n }\r\n componentWillMount() {\r\n const { firstName, lastName, genderId, phoneNumber, email, dateOfBirth, passports } = this.state;\r\n if (firstName || lastName || genderId || phoneNumber || email || dateOfBirth) {\r\n this.props.handleDirtyChange(true);\r\n }\r\n if (passports.length === 1) this.setDefaultFirst();\r\n }\r\n getGenderObj = (genderId, genderName) => {\r\n if (genderId && genderName) {\r\n return {\r\n value: genderId,\r\n label: genderName,\r\n }\r\n }\r\n return '';\r\n }\r\n onFirstNameChange = (e) => {\r\n this.props.handleDirtyChange(true);\r\n const input = e.target.value;\r\n if (input && NAME_REGEX.test(input)) {\r\n this.setState({\r\n firstName: input,\r\n });\r\n } else if (!input) {\r\n this.setState({\r\n firstName: input,\r\n });\r\n }\r\n }\r\n\r\n onLastNameChange = (e) => {\r\n this.props.handleDirtyChange(true);\r\n const input = e.target.value;\r\n if (input && NAME_REGEX.test(input)) {\r\n this.setState({\r\n lastName: input,\r\n });\r\n } else if (!input) {\r\n this.setState({\r\n lastName: input,\r\n });\r\n }\r\n }\r\n\r\n onGenderChange = (obj) => {\r\n this.props.handleDirtyChange(true);\r\n this.setState({\r\n genderId: obj,\r\n });\r\n }\r\n onEmailChange = (e) => {\r\n this.props.handleDirtyChange(true);\r\n this.setState({\r\n email: e.target.value,\r\n });\r\n }\r\n validatePhoneNumberField(phoneno) {\r\n const rePhone = /^[\\+]?[0-9]{0,14}$/;\r\n return !rePhone.test(phoneno);\r\n }\r\n onPhoneChange = (e) => {\r\n const value = e.target.value.toString();\r\n const isNotValid = this.validatePhoneNumberField(value);\r\n if (!isNotValid || !value) {\r\n this.props.handleDirtyChange(true);\r\n this.setState({\r\n phoneNumber: e.target.value,\r\n });\r\n }\r\n }\r\n\r\n handleDateChange = (jsDate) => {\r\n this.props.handleDirtyChange(true);\r\n if (Validate.isValidDate(jsDate) &&\r\n !Validate.isSameDate(jsDate, this.state.dateOfBirth)) {\r\n const isDobInvalid = jsDate !== '' && !moment(jsDate).isValid();\r\n const dateOfBirth = !isDobInvalid && jsDate &&\r\n moment(jsDate).format('DD MMM YYYY');\r\n const validationErrors = this.state.validationErrors;\r\n validationErrors.dob = isDobInvalid ? INVALID_DATE_MSG : '';\r\n this.setState({\r\n dateOfBirth,\r\n validationErrors,\r\n });\r\n } else {\r\n this.setState({\r\n dateOfBirth: jsDate,\r\n });\r\n }\r\n }\r\n handleDateInputBlur = () => {\r\n if (!Validate.isValidDate(this.state.dateOfBirth)) {\r\n const validationErrors = this.state.validationErrors;\r\n validationErrors.dob = INVALID_DATE_MSG;\r\n this.setState({\r\n ...this.state,\r\n validationErrors,\r\n });\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n validateForm = () => {\r\n let isFormValid = true;\r\n const validationErrors = {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n phoneNumber: '',\r\n dob: '',\r\n };\r\n let focusField;\r\n // form validations\r\n if (Validate.validRequired(this.state.firstName)) {\r\n isFormValid = false;\r\n focusField = focusField || 'firstName';\r\n validationErrors.firstName = 'First name is required';\r\n } else if (Validate.validName(this.state.firstName)) {\r\n isFormValid = false;\r\n focusField = focusField || 'firstName';\r\n validationErrors.firstName = INVALID_NAME;\r\n }\r\n\r\n if (Validate.validRequired(this.state.lastName)) {\r\n isFormValid = false;\r\n focusField = focusField || 'lastName';\r\n validationErrors.lastName = 'Last name is required';\r\n } else if (Validate.validName(this.state.lastName)) {\r\n isFormValid = false;\r\n focusField = focusField || 'lastName';\r\n validationErrors.lastName = INVALID_NAME;\r\n }\r\n\r\n if (this.state.email &&\r\n Validate.validEmail(this.state.email.toLowerCase())) {\r\n isFormValid = false;\r\n focusField = focusField || 'email';\r\n validationErrors.email = LEGACY_ERROR_MESSAGES.emailIncorrect;\r\n }\r\n\r\n if (this.state.phoneNumber &&\r\n Validate.validPhoneNo(this.state.phoneNumber)) {\r\n isFormValid = false;\r\n focusField = focusField || 'phoneNumber';\r\n validationErrors.phoneNumber = LEGACY_ERROR_MESSAGES.phoneIncorrect;\r\n }\r\n const dob = this.state.dateOfBirth ?\r\n this.state.dateOfBirth : '';\r\n const isDobInvalid = isValidDateInFuture(dob) || this.handleDateInputBlur();\r\n validationErrors.dob = isDobInvalid ? INVALID_DATE_MSG : '';\r\n if (isDobInvalid) {\r\n isFormValid = false;\r\n focusField = focusField || 'dateOfBirth';\r\n }\r\n\r\n if (!isFormValid) {\r\n this.setState({ validationErrors });\r\n if (focusField) {\r\n if (focusField === 'dateOfBirth') {\r\n const datePicker = this.refs[focusField].refs.datePicker;\r\n if (datePicker && datePicker.getDOMNode) {\r\n datePicker.getDOMNode().focus();\r\n }\r\n } else {\r\n this.refs[focusField].focus();\r\n }\r\n }\r\n }\r\n return isFormValid;\r\n }\r\n\r\n handleSubmit = () => {\r\n const isFormValid = this.validateForm();\r\n // if form is valid, then do further action\r\n if (isFormValid) {\r\n const data = this.createData();\r\n if (data.profilePicture) {\r\n this.setState({ showLoader: true });\r\n Source.uploadImage(data.profilePicture).then((resp) => {\r\n data.profilePicture = resp.relativeUrl;\r\n this.props.submitNewPassenger(data);\r\n this.setState({ showLoader: false });\r\n });\r\n } else {\r\n this.props.submitNewPassenger(data);\r\n }\r\n }\r\n }\r\n handleAddPassportClick = () => {\r\n if (this.validateForm()) {\r\n this.props.handleDirtyChange(false);\r\n const data = this.createData();\r\n this.props.handleAddPassportFromPax(data);\r\n this.props.handleRenderingChange(PassportForm, PassengerForm);\r\n }\r\n }\r\n\r\n createData = () => {\r\n const { email } = this.state;\r\n const emailAddresses = email ? [{\r\n email: email.toLowerCase(),\r\n id: '',\r\n }] : [];\r\n const phoneNumbers = this.state.phoneNumber ? [{\r\n phoneNumber: this.state.phoneNumber,\r\n id: '',\r\n }] : [];\r\n const dateOfBirth = this.state.dateOfBirth || '';\r\n return {\r\n dateOfBirth,\r\n emailAddresses,\r\n firstName: this.state.firstName,\r\n genderId: +this.state.genderId.value || -1,\r\n gender: getGender(+this.state.genderId.value || ''),\r\n lastName: this.state.lastName,\r\n phoneNumbers,\r\n profilePicture: this.state.imageFile || '',\r\n passengerNationality: '',\r\n passengerId: '',\r\n passengerExtIdentifier: this.state.passengerExtIdentifier || Helpers.guid(),\r\n isNewlyAdded: true,\r\n isSoftlyAdded: true,\r\n passports: this.state.passports,\r\n };\r\n }\r\n handlePicUpload = (file) => {\r\n this.props.handleDirtyChange(true);\r\n const imageFile = file;\r\n this.setState({ imageFile });\r\n }\r\n setLegPassport = (passportNumber) => {\r\n this.props.handleDirtyChange(true);\r\n let { passports } = this.state;\r\n passports = passports.map(value => {\r\n if (value.passportNumber === passportNumber) {\r\n value.isLegPassport = true;\r\n } else {\r\n value.isLegPassport = false;\r\n }\r\n return value;\r\n });\r\n this.setState({\r\n passports,\r\n })\r\n this.setState({\r\n changePassportNumber: passportNumber,\r\n });\r\n this.props.setLegPassport(this.state.passengerExtIdentifier, passportNumber);\r\n }\r\n getDefaultPassportChecked = (isLegPassport, passportNumber) => {\r\n const { changePassportNumber } = this.state;\r\n if (changePassportNumber === passportNumber) {\r\n return true;\r\n } else if (isLegPassport) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n setDefaultFirst = () => {\r\n const { passports } = this.state;\r\n if (passports && passports.length) {\r\n const filteredPassport = passports.filter(value => value.isLegPassport);\r\n if (!filteredPassport.length) {\r\n passports[0].isLegPassport = true;\r\n this.setState({\r\n passports,\r\n })\r\n }\r\n }\r\n }\r\n handleRemovePassport = (passportNumber, paxId) => {\r\n const { passports } = this.state;\r\n let filteredPassport = passports.filter(value => value.passportNumber !== passportNumber);\r\n if (filteredPassport.length) {\r\n const legPassport = filteredPassport.find(value => value.isLegPassport);\r\n if (!legPassport) {\r\n filteredPassport[0].isLegPassport = true;\r\n }\r\n }\r\n this.setState({\r\n passports: filteredPassport,\r\n })\r\n this.props.handleRemovePassport(passportNumber, paxId);\r\n }\r\n renderPassport = (passports) => (\r\n passports.map((passport, index) => {\r\n if (passport.isDeleted || (!passport.isActive && !passport.isLegPassport)) {\r\n return (null);\r\n }\r\n const passportCountry = getCountry('THREE_LETTER_CODE', passport.isoPassportCountry) || {};\r\n const countryFlagCode = passportCountry && passportCountry.TWO_LETTER_CODE;\r\n const dateToExpire = passport.expiry ?\r\n `Expires ${moment(passport.expiry).format('DD MMM YYYY')}` : '';\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {passport && passport.passportNumber.toUpperCase()}\r\n \r\n {dateToExpire}\r\n \r\n \r\n \r\n \"\"\r\n {\r\n this.handleRemovePassport(passport.passportNumber,\r\n this.state.passengerExtIdentifier)\r\n }}\r\n />\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n })\r\n );\r\n disableButton = () => {\r\n const {\r\n firstName,\r\n lastName,\r\n } = this.state;\r\n if (firstName && lastName) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n handleDateChangeRaw = (e) => {\r\n e.preventDefault();\r\n };\r\n render() {\r\n const genderOptions = [];\r\n genderOptions.push({\r\n value: 1,\r\n label: 'Male',\r\n },\r\n {\r\n value: 2,\r\n label: 'Female',\r\n });\r\n const { validationErrors = {} } = this.state;\r\n const {\r\n firstName,\r\n lastName,\r\n dateOfBirth,\r\n genderId,\r\n email,\r\n phoneNumber,\r\n showLoader,\r\n passports,\r\n } = this.state;\r\n const isButtonDisable = this.disableButton();\r\n const disableButtonClass = isButtonDisable ?\r\n `uk-button vistajet_disabled uk-width-1-1 uk-text-center` :\r\n `uk-button uk-button-default uk-width-1-1 uk-text-center`;\r\n return (\r\n
    \r\n
    \r\n
    Please provide passenger details
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n First Name\r\n {\r\n validationErrors &&\r\n validationErrors.firstName ?\r\n

    {validationErrors.firstName}

    :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Name\r\n {\r\n validationErrors &&\r\n validationErrors.lastName ?\r\n

    {validationErrors.lastName}

    :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n validationErrors &&\r\n validationErrors.dob ?\r\n

    {validationErrors.dob}

    :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Email\r\n \r\n {\r\n validationErrors &&\r\n validationErrors.email ?\r\n

    {validationErrors.email}

    :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n Phone Number\r\n {\r\n validationErrors &&\r\n validationErrors.phoneNumber ?\r\n

    {validationErrors.phoneNumber}

    :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {(passports && passports.length) ?\r\n `Manage Passports` :\r\n `Please add passport details`\r\n }\r\n
    \r\n {this.renderPassport(passports)}\r\n
    \r\n \r\n
    \r\n
    \r\n { this.refs.firstName.focus(); }}\r\n >\r\n Confirm\r\n \r\n
    \r\n {(() => (showLoader ?\r\n () : null\r\n ))}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default AddNewPassenger;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PassengersAddContainer from '../../containers/passengers/PassengersAddContainer';\r\nimport PassengersListContainer from '../../containers/passengers/PassengersListContainer';\r\nimport PassengersDetailContainer from '../../containers/passengers/PassengersDetailContainer';\r\nimport AddPassportContainer from '../../containers/passengers/AddPassportContainer';\r\nimport AddNewPassenger from './AddNewPassenger';\r\nimport Counter from '../../components/Stepper';\r\nimport ConfirmationPopUp from '../shared/ConfirmationPopUpNew';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport MessagePopUpNew from '../shared/MessagePopUpNew';\r\n\r\nimport {\r\n existInLocal,\r\n getFromLocal,\r\n saveToLocal,\r\n} from '../../utils/cache';\r\nimport { clone } from '../../utils/Helpers';\r\nimport { mergePassengersList } from '../../utils/passengerUtils';\r\nimport {\r\n PassengerList,\r\n PassengerSearch,\r\n PassengerForm,\r\n PassportForm,\r\n PassengerDetails,\r\n} from '../../constants/passengerConstants';\r\nimport { garanteeArray } from '../../utils/sourceUtils';\r\nimport { PASSENGER_CANT_BE_REDUCED } from '../../constants/MessageConstants';\r\nimport dirtystateSingleTon from '../../validators/validateDirty';\r\nimport SPAConstants from '../../constants/SPAConstants';\r\nconst headings = {\r\n ADD_PAX: 'Passengers',\r\n ADD_DETAIL: 'Select Passenger',\r\n ADD_NEW: 'Add New Passenger',\r\n ADD_PASSPORT: 'Add New Passport',\r\n PAX_DETAIL: 'Passenger Details',\r\n};\r\n\r\nclass PassengerPopup extends Component {\r\n static propTypes = {\r\n closePopup: PropTypes.func,\r\n paxCount: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n maxNumberOfPassengers: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n showCounter: PropTypes.bool,\r\n disableConfirmBtn: PropTypes.bool,\r\n isError: PropTypes.bool,\r\n passengers: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\r\n deletedPax: PropTypes.array,\r\n handlePassengerConfirm: PropTypes.func,\r\n setError: PropTypes.func,\r\n dirtyChange: PropTypes.func,\r\n onItineraryDetail: PropTypes.bool,\r\n paxPopup: PropTypes.func,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n welcome: false,\r\n backBtnFlag: false,\r\n componentsToRender: PassengerList,\r\n referenceScreen: 0,\r\n passengerDirtyChange: false,\r\n passportDirtyChange: false,\r\n showLoaderPassenger: false,\r\n isSearch: false,\r\n newPassenger: {},\r\n paxCount: props.paxCount,\r\n heading: headings.ADD_PAX,\r\n };\r\n this.props.initializePopup(\r\n clone(props.passengers || []),\r\n clone(props.deletedPax || []),\r\n );\r\n this.referrerManager = {};\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.isError) {\r\n this.setState({ showLoader: false });\r\n this.props.setError(false);\r\n }\r\n }\r\n // add/update state when user navigate to next state\r\n setReferrer(nextCmp, ref) {\r\n this.referrerManager[nextCmp] = ref;\r\n }\r\n\r\n // get the parent state of current component\r\n getReferrer(currentCmp) {\r\n return this.referrerManager[currentCmp] || null;\r\n }\r\n\r\n isShowBackBtn = (cmps) => (\r\n !!this.referrerManager[cmps]\r\n );\r\n\r\n //paxPopup\r\n handleBackButton = () => {\r\n const {\r\n passportDirtyChange,\r\n passengerDirtyChange,\r\n backBtnFlag,\r\n componentsToRender,\r\n } = this.state;\r\n\r\n const {\r\n showConfirmationPopup\r\n } = this.props;\r\n\r\n if (passportDirtyChange || passengerDirtyChange ||\r\n (showConfirmationPopup && componentsToRender === PassengerList )) {\r\n this.changesLostPopup.show();\r\n } \r\n else {\r\n if (!backBtnFlag) {\r\n this.closeMainPopup();\r\n } else {\r\n const referrerCmps = this.getReferrer(this.state.componentsToRender);\r\n this.setState({\r\n backBtnFlag: this.isShowBackBtn(referrerCmps),\r\n referenceScreen: referrerCmps,\r\n });\r\n this.handleRenderingChange(referrerCmps);\r\n }\r\n }\r\n }\r\n\r\n handleRemovePassport = (passportNumber, passengerId) => {\r\n this.handleDirtyChange(true);\r\n this.props.removePassport(passportNumber, passengerId);\r\n }\r\n\r\n handleRenderingChange = (to, ref) => {\r\n let heading = headings.ADD_PAX;\r\n if (!!ref) {\r\n this.setReferrer(to, ref);\r\n }\r\n switch (to) {\r\n case PassengerForm: {\r\n heading = headings.ADD_NEW;\r\n this.props.clearSelectedPassenger();\r\n break;\r\n }\r\n case PassportForm: {\r\n heading = headings.ADD_PASSPORT;\r\n break;\r\n }\r\n case PassengerSearch: {\r\n heading = headings.ADD_DETAIL;\r\n break;\r\n }\r\n case PassengerDetails: {\r\n heading = headings.PAX_DETAIL;\r\n break;\r\n }\r\n default: {\r\n heading = headings.ADD_PAX;\r\n }\r\n }\r\n this.setState({\r\n componentsToRender: to,\r\n referenceScreen: ref,\r\n backBtnFlag: this.isShowBackBtn(to),\r\n heading,\r\n isSearch: false,\r\n });\r\n }\r\n\r\n handlePaxCount = (count) => {\r\n this.handleDirtyChange(true);\r\n this.setState({\r\n paxCount: count,\r\n });\r\n }\r\n\r\n handleAddPassportFromPax = (data) => {\r\n this.handleDirtyChange(true);\r\n this.setState({\r\n newPassenger: data,\r\n });\r\n }\r\n\r\n // add new passport click to existing passenger\r\n handleAddNewPassport = (from, currentPaxSelectedId) => {\r\n this.handleDirtyChange(true);\r\n this.props.updateSelectedPassenger(currentPaxSelectedId);\r\n this.handleRenderingChange(PassportForm, from);\r\n }\r\n\r\n // add new passport to passenger\r\n handleAddPassportToPax = (data, passengerId = null) => {\r\n this.handleDirtyChange(true);\r\n this.handlePassportDirtyChange(false);\r\n this.state.passportDirtyChange = false;\r\n if (passengerId) {\r\n this.props.updatePassport(data, passengerId);\r\n this.handleBackButton();\r\n return;\r\n }\r\n const newPassenger = this.state.newPassenger;\r\n this.handlePassengerDirtyChange(true);\r\n if (!newPassenger.passports) {\r\n newPassenger.passports = [];\r\n }\r\n if (data.isUpdated) {\r\n newPassenger.passports.forEach((passport) => {\r\n const pass = passport;\r\n if (passport.passportNumber === data.passportNumber) {\r\n pass.displayName = data.displayName;\r\n pass.expiry = data.expiry;\r\n pass.isUpdated = data.isUpdated;\r\n pass.isoPassportCountry = data.isoPassportCountry;\r\n pass.isoPassportIssuedByCountry = data.isoPassportIssuedByCountry;\r\n pass.passportCountry = data.passportCountry;\r\n pass.passportIssuedByCountry = data.passportIssuedByCountry;\r\n }\r\n });\r\n } else {\r\n newPassenger.passports.push(data);\r\n }\r\n this.setState({\r\n newPassenger,\r\n });\r\n this.handleBackButton();\r\n }\r\n\r\n handleConfirm = (addedPax, deletedPax) => {\r\n const { paxCount } = this.state;\r\n if (this.props.handlePassengerConfirm) {\r\n this.props.handlePassengerConfirm(addedPax, deletedPax, paxCount);\r\n }\r\n const frequentPax = existInLocal('frequentPax') ?\r\n garanteeArray(getFromLocal('frequentPax', true)) : [];\r\n const cacheFrequent = mergePassengersList(addedPax, frequentPax);\r\n cacheFrequent.forEach(pax => {\r\n const tempPax = pax;\r\n tempPax.isUpdated = false;\r\n tempPax.isAdded = false;\r\n tempPax.isApproved = false;\r\n tempPax.leadPassenger = false;\r\n tempPax.passports.forEach(pass => {\r\n const tempPass = pass;\r\n tempPass.isLegPassport = false;\r\n });\r\n });\r\n saveToLocal(cacheFrequent, 'frequentPax', true);\r\n }\r\n handleConfirmClick = () => {\r\n this.handleConfirm(this.props.addedPax, this.props.deletedPax);\r\n this.setState({ showLoaderPassenger: true });\r\n }\r\n // added new passenger from form\r\n handleSubmitNewPassenger = (data) => {\r\n this.handleDirtyChange(true);\r\n this.setState({\r\n newPassenger: {},\r\n });\r\n this.handlePassengerDirtyChange(false);\r\n this.props.updateAddedPassengers(data);\r\n this.handleRenderingChange(PassengerList);\r\n }\r\n\r\n handleViewDetail = (paxId) => {\r\n this.props.updateSelectedPassenger(paxId);\r\n this.handleRenderingChange(PassengerDetails, PassengerList);\r\n }\r\n\r\n handleClosePopup = () => {\r\n this.props.closePopup();\r\n }\r\n\r\n handlePassportDirtyChange = (bool) => {\r\n dirtystateSingleTon.setDirty(SPAConstants.ItineraryPassengersPassport, bool);\r\n this.setState({\r\n passportDirtyChange: bool,\r\n });\r\n }\r\n\r\n handlePassengerDirtyChange = (bool) => {\r\n dirtystateSingleTon.setDirty(SPAConstants.ItineraryNewPassengers, bool);\r\n this.setState({\r\n passengerDirtyChange: bool,\r\n });\r\n }\r\n\r\n handleDirtyChange = (bool) => {\r\n this.props.dirtyChange(bool);\r\n }\r\n\r\n isSearch = (bool) => {\r\n this.setState({ isSearch: bool });\r\n }\r\n\r\n handleCounterChange = (count) => {\r\n const {\r\n paxCount,\r\n addedPax\r\n } = this.props;\r\n if (addedPax && (count < addedPax.length)) {\r\n // const removePaxId = addedPax[addedPax.length-1].passengerId;\r\n // this.props.removeUser(removePaxId);\r\n this.setState({\r\n passengerRemoveLimitError: PASSENGER_CANT_BE_REDUCED,\r\n });\r\n this.removePaxFromCounter.show();\r\n } else {\r\n this.handlePaxCount(count);\r\n }\r\n }\r\n\r\n handleconfirmNavigation = () => {\r\n this.changesLostPopup.hide();\r\n const currentComp = this.state.componentsToRender;\r\n if (currentComp === PassengerForm) {\r\n dirtystateSingleTon.setDirty(SPAConstants.ItineraryNewPassengers, false);\r\n this.setState({\r\n newPassenger: {},\r\n passengerDirtyChange: false,\r\n });\r\n }\r\n if (currentComp === PassportForm) {\r\n this.handlePassportDirtyChange(false);\r\n }\r\n const ref = this.getReferrer(currentComp);\r\n this.handleRenderingChange(ref);\r\n }\r\n closeChangesLostPopup = () => {\r\n this.changesLostPopup.hide();\r\n }\r\n closeMainPopup = () => {\r\n this.props.paxPopup();\r\n }\r\n handleAddPassenger = () => {\r\n this.handleRenderingChange(PassengerSearch, PassengerList);\r\n }\r\n onHandleCloseMessage = () => {\r\n this.setState({\r\n passengerRemoveLimitError: ''\r\n })\r\n }\r\n onMoveAway = () => {\r\n const {\r\n passportDirtyChange,\r\n passengerDirtyChange,\r\n componentsToRender,\r\n } = this.state;\r\n const {\r\n showConfirmationPopup,\r\n } = this.props;\r\n\r\n if (showConfirmationPopup && componentsToRender === PassengerList) {\r\n this.handleClosePopup();\r\n this.changesLostPopup.hide();\r\n this.props.paxPopup();\r\n } else if (passportDirtyChange || passengerDirtyChange) {\r\n this.handleconfirmNavigation()\r\n }\r\n }\r\n disableAddPassengerButton = () => {\r\n const { addedPax, maxNumberOfPassengers } = this.props\r\n if (addedPax.length < maxNumberOfPassengers) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n render() {\r\n const {\r\n componentsToRender,\r\n backBtnFlag,\r\n paxCount,\r\n newPassenger,\r\n isSearch,\r\n heading,\r\n showLoaderPassenger,\r\n } = this.state;\r\n const {\r\n maxNumberOfPassengers,\r\n showCounter,\r\n onItineraryDetail,\r\n disableConfirmBtn,\r\n isError,\r\n setError,\r\n showStepper,\r\n } = this.props;\r\n const currentScreen = [];\r\n switch (componentsToRender) {\r\n case PassengerList: {\r\n currentScreen.push();\r\n break;\r\n }\r\n case PassengerSearch: {\r\n currentScreen.push();\r\n break;\r\n }\r\n case PassengerForm: {\r\n currentScreen.push();\r\n break;\r\n }\r\n case PassportForm: {\r\n currentScreen.push();\r\n break;\r\n }\r\n case PassengerDetails: {\r\n currentScreen.push();\r\n break;\r\n }\r\n default: {\r\n currentScreen.push();\r\n }\r\n }\r\n let heading1 = '';\r\n if (isSearch) {\r\n heading1 = headings.ADD_PAX;\r\n }\r\n const zeroPax = paxCount === 0;\r\n const topClass = (componentsToRender !== PassportForm) ?\r\n `vistajet_modal_height`: ``;\r\n const buttonClass = (showLoaderPassenger || disableConfirmBtn || zeroPax) ?\r\n `vistajet_passenger_modal_button uk-button vistajet_disabled uk-width-1-1 uk-text-center`:\r\n `vistajet_passenger_modal_button uk-button uk-button-default uk-width-1-1 uk-text-center`;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n Back\r\n

    {heading1 || heading}

    \r\n {(componentsToRender === PassengerList && !showStepper) ?\r\n \r\n : '' }\r\n {(componentsToRender === PassengerList && showStepper) ? \r\n
    \r\n \r\n
    : ''}\r\n
    \r\n
    \r\n {showLoaderPassenger &&\r\n
    \r\n \r\n
    }\r\n {currentScreen}\r\n
    \r\n {componentsToRender === PassengerList &&\r\n
    \r\n \r\n
    }\r\n
    \r\n { this.changesLostPopup = changesLostPopup; }}\r\n id=\"changesLost\"\r\n leftButtonContent=\"Stay on this page\"\r\n rightButtonContent=\"Move away\"\r\n onLeftButtonClick={this.closeChangesLostPopup}\r\n onRightButtonClick={this.onMoveAway}\r\n content={`Your changes will be lost if you move away from this page.\r\n Do you wish to move away from this page?`}\r\n />\r\n { this.removePaxFromCounter = removePaxFromCounter; }}\r\n onClose={this.onHandleCloseMessage}\r\n content={this.state.passengerRemoveLimitError}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\nPassengerPopup.defaultProps = {\r\n paxCount: 0,\r\n maxNumberOfPassengers: 14,\r\n};\r\nexport default PassengerPopup;\r\n","import { connect } from 'react-redux';\r\nimport * as actions from '../../store/actions';\r\nimport withStore from '../../components/withStore';\r\nimport PassengerPopup from '../../components/passengersPopup/PassengerPopup';\r\n\r\nfunction mapStateToProps(state, props) {\r\n return {\r\n ...state.passengerPopup,\r\n ...props,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n updateFrequentPax: (frequentPax) => dispatch(actions.updateFrequentPax(frequentPax)),\r\n updateAddedPassengers: (passenger) => dispatch(actions.updateAddedPassengers({ passenger })),\r\n updatePassport: (data, passengerId) => dispatch(actions.updatePassport({ data, passengerId })),\r\n setLegPassport: (passengerId, passportNumber) => dispatch(actions.setLegPassport({ passengerId, passportNumber })),\r\n setLeadPassenger: (paxId) => dispatch(actions.setLeadPassenger({ paxId })),\r\n updateSelectedPassenger: (paxId) => dispatch(actions.updateSelectedPassenger({ paxId })),\r\n clearSelectedPassenger: () => dispatch(actions.clearSelectedPassenger()),\r\n removePassport: (passportNumber, passengerId) => dispatch(actions.removePassport({ passportNumber, passengerId })),\r\n removeUser: (paxId) => dispatch(actions.removeUser({ paxId })),\r\n initializePopup: (passengers, deletedPassengers) => dispatch(actions.initializePopup({ passengers, deletedPassengers })),\r\n };\r\n}\r\n\r\nconst PassengerPopupContainer = connect(mapStateToProps, mapDispatchToProps)(PassengerPopup);\r\n\r\nexport default withStore(PassengerPopupContainer);\r\n","import React, { Component } from 'react';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport Modal from '../shared/Modal';\r\nimport PassengerPopupContainer from '../../containers/passengers/passengerPopupContainer';\r\nimport { getPassengerId, generateFrequentPaxList } from '../../utils/passengerUtils';\r\nimport Source from '../../store/sources/ItineraryPassengerSource';\r\nimport SettingsSource from '../../store/sources/UserSettingsSource';\r\nimport { clone } from '../../utils/Helpers';\r\nimport { getFromLocal, saveToLocal } from '../../utils/cache';\r\nimport { garanteeArray } from '../../utils/sourceUtils';\r\nimport { convertToTitleCase } from '../../utils/stringUtils';\r\nimport {\r\n mergePassportbyPax,\r\n} from '../../utils/passportUtils';\r\nimport { isPastLeg, isLegCancelled } from \"../../utils/itinerariesUtils\";\r\nimport * as actions from '../../store/actions';\r\nimport store from '../../store/store';\r\nimport { getAircraftByField } from \"../../utils/aircraftUtils\";\r\nimport dirtystateSingleTon from '../../validators/validateDirty';\r\nimport SPAConstants from '../../constants/SPAConstants';\r\n\r\nclass PassengerCard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.popupRefs = {};\r\n this.state = {\r\n dirtyChange: false,\r\n isError: false,\r\n disableConfirmBtn: false,\r\n isEditable: true,\r\n };\r\n }\r\n\r\n handleconfirmNavigation = () => {\r\n dirtystateSingleTon.setDirty(SPAConstants.ItineraryPassengers, false);\r\n this.setState({\r\n dirtyChange: false\r\n });\r\n this.paxPopup.hide();\r\n }\r\n getTotalPassengerCount = (passengers) => {\r\n let classNameTobe = '';\r\n if (passengers && passengers.length) {\r\n classNameTobe = 'uk-margin-bottom';\r\n }\r\n const announcedPax = this.props.announcedPax;\r\n let passengerCount = null;\r\n if (announcedPax && announcedPax.remainingPax > 0) {\r\n passengerCount = (\r\n
    \r\n
    \r\n Please provide details for {String(announcedPax.remainingPax).padStart(1, 0)} {announcedPax.paxLabel}\r\n
    \r\n
    \r\n );\r\n }\r\n return passengerCount;\r\n }\r\n handlePassengerConfirm = (addedPax, deletedPax, paxCount) => {\r\n const params = (this.props.activeLeg.flightLegExtIdentifier && !this.props.activeLeg.legId) ? {\r\n uniqueIdentifier: this.props.activeLeg.flightLegExtIdentifier,\r\n key: 'flightLegExtIdentifier',\r\n } : {\r\n uniqueIdentifier: this.props.activeLeg.legId,\r\n key: 'flightLegId',\r\n };\r\n const passengerId = [];\r\n deletedPax.forEach(deletedPassenger => {\r\n const identifier = getPassengerId(deletedPassenger);\r\n if (identifier) {\r\n passengerId.push(getPassengerId(deletedPassenger));\r\n }\r\n });\r\n if (!this.props.isLegCard) {\r\n Source.managePassengers(params, addedPax, passengerId)\r\n .then(() => {\r\n const settingsInfo = { frequentPax: generateFrequentPaxList(addedPax) };\r\n SettingsSource.writeUserSettings(settingsInfo).then(() => {\r\n // shallow copy of flightPassengers array\r\n const paxToCache = addedPax.map((passengerParam) => {\r\n const passenger = clone(passengerParam);\r\n passenger.leadPassenger = false;\r\n (passenger.passports || []).forEach((passport) => {\r\n passport.isLegPassport = false; // eslint-disable-line no-param-reassign\r\n passport.isUpdated = false; // eslint-disable-line no-param-reassign\r\n });\r\n return passenger;\r\n });\r\n let freqPax = getFromLocal('frequentPax', true);\r\n freqPax = garanteeArray(freqPax);\r\n const mergePax = mergePassportbyPax(freqPax, paxToCache);\r\n saveToLocal('frequentPax', mergePax, true);\r\n this.handleconfirmNavigation();\r\n const legId = this.props.activeLeg.legId || this.props.activeLeg.flightLegExtIdentifier;\r\n store.dispatch(actions.updatePassengers({\r\n legId,\r\n passengers: addedPax.map(pax => {\r\n delete pax.isSoftlyAdded; // eslint-disable-line no-param-reassign\r\n delete pax.isAdded; // eslint-disable-line no-param-reassign\r\n return pax;\r\n }),\r\n }));\r\n });\r\n })\r\n .catch(() => {\r\n this.setState({ isError: true });\r\n });\r\n } else {\r\n this.handleconfirmNavigation();\r\n const legId = this.props.activeLeg.legId || this.props.activeLeg.flightLegExtIdentifier;\r\n store.dispatch(actions.updatePassengers({\r\n legId,\r\n passengers: addedPax.map(pax => {\r\n delete pax.isSoftlyAdded; // eslint-disable-line no-param-reassign\r\n delete pax.isAdded; // eslint-disable-line no-param-reassign\r\n return pax;\r\n }),\r\n }));\r\n this.props.gatherPassengerInfo({ params, addedPax, passengerId });\r\n this.props.handleStepperChange(paxCount);\r\n }\r\n }\r\n\r\n renderPassenger = (passenger, index) => {\r\n const legPassport = (((passenger || {}).formattedPaxObj || {}).legPassport || {});\r\n const { isExpired, isPassExpiredBeforeDept } = legPassport;\r\n const expireLbl = (isExpired ? ' (Passport Expired)' : '');\r\n const passExpiredBeforeDeptLbl = (!isExpired && isPassExpiredBeforeDept) ?\r\n ' (Selected passport will be expired on departure date)' :\r\n expireLbl;\r\n const passengerName = convertToTitleCase(`${passenger.firstName} ${passenger.lastName}`);\r\n const status = passenger.isApproved ? 'Confirmed' : 'On Request';\r\n return (\r\n
    \r\n \r\n {passengerName}\r\n {passenger.leadPassenger &&\r\n \"\"}\r\n {passExpiredBeforeDeptLbl}\r\n \r\n \r\n {status}\r\n \r\n
    \r\n );\r\n }\r\n\r\n handlePassengerClose = () => {\r\n dirtystateSingleTon.setDirty(SPAConstants.ItineraryPassengers, false);\r\n this.setState({\r\n dirtyChange: false,\r\n });\r\n }\r\n\r\n setStateDirty = () => {\r\n dirtystateSingleTon.setDirty(SPAConstants.ItineraryPassengers, true);\r\n this.setState({\r\n dirtyChange: true,\r\n });\r\n }\r\n\r\n openPassengerPopup = () => {\r\n if (this.paxPopup) {\r\n this.paxPopup.show();\r\n }\r\n }\r\n\r\n closeMainPopup = () => {\r\n this.paxPopup.hide();\r\n }\r\n\r\n getMaxPassengers = (activeLeg, aircraftsList) => {\r\n let value = '';\r\n if (activeLeg.aircraftTypeName) {\r\n value = getAircraftByField(activeLeg.aircraftTypeName, aircraftsList, 'code');\r\n }\r\n if (!Object.keys(value).length) {\r\n value = getAircraftByField(activeLeg.aircraftTypeId, aircraftsList);\r\n }\r\n return value.maxNumberOfPassengers;\r\n }\r\n render() {\r\n const {\r\n isError,\r\n dirtyChange,\r\n } = this.state;\r\n\r\n const {\r\n passengers,\r\n isLoading,\r\n isLoadingPassenger,\r\n isEditable,\r\n showToastMesg,\r\n activeLeg,\r\n isLegCard,\r\n maxValue,\r\n aircraftsList,\r\n } = this.props;\r\n const disableDialog = activeLeg ? isPastLeg(activeLeg) : true;\r\n const isCancelLeg = activeLeg ? isLegCancelled(activeLeg.legStatus) : true;\r\n const numOfPax = (activeLeg && aircraftsList) ? this.getMaxPassengers(activeLeg, aircraftsList): 14;\r\n return (\r\n
    \r\n {!isLegCard ?\r\n
    \r\n
    \r\n
    Passengers
    \r\n {(!disableDialog && !isCancelLeg && isEditable) &&\r\n View}\r\n
    \r\n
    \r\n {!isLoadingPassenger && !isLoading ? (\r\n
    \r\n {this.getTotalPassengerCount(passengers)}\r\n {(passengers && passengers.length) ?\r\n
    \r\n {passengers.map(this.renderPassenger)}\r\n
    : null\r\n }\r\n \r\n (this.paxPopup = paxPopup)\r\n }\r\n showCloseIcon={false}\r\n classNames={{\r\n overlay: 'vistajet_modal vistajet_modal_large',\r\n modal: 'vistajet_react_modal vistajet_modal_body',\r\n }}\r\n >\r\n \r\n \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.paxPopup = paxPopup)\r\n }\r\n showCloseIcon={false}\r\n classNames={{\r\n overlay: 'vistajet_modal vistajet_modal_large',\r\n modal: 'vistajet_react_modal vistajet_modal_body',\r\n }}\r\n >\r\n \r\n \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default PassengerCard;\r\n","import React, { Component } from \"react\";\r\n\r\nimport { dateFnsFormats } from \"../../utils/dateUtils\";\r\n\r\nimport FlightTime from \"./FlightTime\";\r\nimport EstimateTime from \"./EstimateTime\";\r\nimport StepperWrapper from \"./Wrappers/StepperWrapper\";\r\nimport AircraftDropdownWrapper from \"./Wrappers/AircraftDropdownWrapper\";\r\nimport TimePickerWrapper from \"./Wrappers/TimePickerWrapper\";\r\nimport DatePickerWrapper from \"./Wrappers/DatePickerWrapper\";\r\nimport AirportSelectorWrapper from \"./Wrappers/AirportSelectorWrapper\";\r\nimport ConfirmationPopUp from \"../shared/ConfirmationPopUpNew\";\r\nimport PassengerCard from \"../ItineraryDetails/PassengerCard\";\r\nexport default class LegCard extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.popupRefs = {};\r\n this.handlePassengerChange = this.handlePassengerChange.bind(this);\r\n }\r\n\r\n handleDate = date => {\r\n const { handleDateChange } = this.props;\r\n if (handleDateChange) handleDateChange(date);\r\n };\r\n\r\n handleAirportSelected = (value, source) => {\r\n const { handleAirportSelect } = this.props;\r\n if (handleAirportSelect) handleAirportSelect(value, source);\r\n };\r\n handleRemoveLeg = () => {\r\n this.removePopup.hide();\r\n this.props.handleRemoveFlight();\r\n }\r\n\r\n handlePassengerChange = (value) => {\r\n const { isEditFlow, handleStepperChange } = this.props;\r\n if (isEditFlow) {\r\n this.popupRefs.openPassengerPopup();\r\n }\r\n else {\r\n handleStepperChange(value);\r\n }\r\n }\r\n render() {\r\n const {\r\n guid,\r\n hour,\r\n minutes,\r\n time,\r\n date,\r\n selectedAircraft,\r\n duration,\r\n validation\r\n } = this.props.leg;\r\n\r\n const { passengers } = this.props;\r\n const { errorOn } = validation;\r\n const modalId = `#removeLegPopup_${guid}`;\r\n const addedPaxCount = passengers && passengers.passengers ? passengers.passengers.length : 1;\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.props.shouldRemoveButton ? (\r\n { this.removePopup.show() }}\r\n >\r\n REMOVE\r\n \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n \r\n this.handleDate(date)}\r\n highlightDates={this.props.allHighlightedDates}\r\n isClearable={date}\r\n />\r\n \r\n

    {errorOn.date}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n this.handleAirportSelected(value, source)\r\n }\r\n isAirportsFetched={this.props.isAirportsFetched}\r\n visitedAirports={this.props.visitedAirports}\r\n fetchVisitedAirports={this.props.fetchVisitedAirports}\r\n />\r\n

    {errorOn.departure}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n this.handleAirportSelected(value, source)\r\n }\r\n isAirportsFetched={this.props.isAirportsFetched}\r\n visitedAirports={this.props.visitedAirports}\r\n fetchVisitedAirports={this.props.fetchVisitedAirports}\r\n />\r\n

    {errorOn.arrival}

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

    \r\n {errorOn.fuelStop}\r\n

    \r\n

    \r\n {errorOn.departureArrivalSame}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.props.handleOnChange(value)}\r\n handleHour={value =>\r\n this.props.handleDepartureHourChange(value)\r\n }\r\n handleMinutes={value =>\r\n this.props.handleDepartureMinuteChange(value)\r\n }\r\n />\r\n

    {errorOn.time}

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

    \r\n {errorOn.passengersCount}\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {!(this.props.isOfferFlow && this.props.isOffer) ? (\r\n

    {errorOn.aircraft}

    \r\n ) : null}\r\n
    \r\n

    {errorOn.minHoursException}

    \r\n
    \r\n \r\n (\r\n this.popupRefs = abc\r\n )\r\n }\r\n passengers={(passengers || {}).passengers || []}\r\n activeLeg={this.props.leg}\r\n isLoadingPassenger={this.props.isLoadingPassenger}\r\n isLoading={this.props.isLoading}\r\n announcedPax={passengers && passengers.announcedPax}\r\n isEditable={this.props.isEditFlow}\r\n legId={guid}\r\n isLegCard\r\n gatherPassengerInfo={this.props.gatherPassengerInfo}\r\n handleStepperChange={this.props.handleStepperChange}\r\n paxNumber={addedPaxCount <= this.props.leg.passengersCount ?\r\n this.props.leg.passengersCount : addedPaxCount}\r\n maxValue={\r\n selectedAircraft\r\n ? selectedAircraft.maxNumberOfPassengers\r\n : 14\r\n }\r\n />\r\n { this.removePopup = removePopup; }}\r\n id={modalId}\r\n leftButtonContent=\"No\"\r\n rightButtonContent=\"Yes\"\r\n onLeftButtonClick={() => this.removePopup.hide()}\r\n onRightButtonClick={() => this.handleRemoveLeg()}\r\n content={\"Do you wish to remove this flight request?\"}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport Select from \"react-select\";\r\nimport { USER_ACCESS_TYPES } from '../../constants/UserAccessTypes';\r\nimport dirtystateSingleTon from \"../../validators/validateDirty\";\r\nimport SPAConstants from \"../../constants/SPAConstants\";\r\nclass ContractSelector extends React.Component {\r\n\r\n componentDidMount() {\r\n const options = this.renderAccountName() || [];\r\n let initialSelection;\r\n\r\n if (this.props.itineraryAccountId) {\r\n initialSelection = options.filter(account => account.value.id === this.props.itineraryAccountId);\r\n this.props.handleContractChange(initialSelection[0]);\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, false);\r\n }\r\n\r\n if (!this.props.selectedContract && options && !this.props.isOfferFlow && options.length === 1) {\r\n initialSelection = options[0];\r\n this.props.handleContractChange(initialSelection);\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, false);\r\n }\r\n else if (!this.props.selectedContract && options && this.props.isOfferFlow && !this.props.isOffer) {\r\n initialSelection = this.getPreferredAccountOption(options);\r\n this.props.handleContractChange(initialSelection);\r\n }\r\n }\r\n renderAccountName() {\r\n if (!this.props.user) return false;\r\n const { accounts } = this.props.user || {};\r\n let options = [];\r\n if (accounts && accounts.length >= 1) {\r\n accounts.forEach(account => {\r\n if (account.typeId == USER_ACCESS_TYPES.FSP) {\r\n options.push({ value: account, label: account.name });\r\n }\r\n });\r\n }\r\n return options;\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps != this.props) {\r\n this.props = nextProps\r\n }\r\n\r\n }\r\n getPreferredAccountOption = accounts => {\r\n const preferredAccount = accounts.filter(\r\n account => account.value.typeId === USER_ACCESS_TYPES.FSP && account.value.isPreferred\r\n );\r\n return preferredAccount[0];\r\n };\r\n\r\n render() {\r\n const options = this.renderAccountName() || [];\r\n let initialSelection;\r\n return (\r\n
    \r\n {!this.props.itineraryAccountId ?\r\n : (this.props.selectedContract && this.props.selectedContract.label)}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ContractSelector;\r\n","import React, { Component } from \"react\";\r\nimport MessagePopup from \"../components/shared/MessagePopUp\";\r\n\r\nclass DialogWrapper extends Component {\r\n render() {\r\n const { id, content } = this.props;\r\n return ;\r\n }\r\n}\r\nexport default DialogWrapper;\r\n","import React from \"react\";\r\n\r\nconst Button = props => {\r\n const { classNames, onClickHandler, label, disabled } = props;\r\n const styles = disabled ? `${classNames} vistajet_button_disable` : classNames;\r\n return (\r\n \r\n {label}\r\n \r\n );\r\n};\r\n\r\nexport default Button;\r\n","import React from 'react';\r\nimport Proptypes from 'prop-types';\r\nimport { convertToTitleCase } from 'utils/stringUtils';\r\n\r\nconst ValidateFlightMessage = (props) => {\r\n const { messages, legs, isProposalOrRestriction } = props;\r\n return (\r\n
    \r\n {\r\n isProposalOrRestriction ? messages.map((message) => {\r\n const {\r\n flightLegId, restrictions, introductionToSuggestion, proposals,\r\n } = message;\r\n const departureCity = flightLegId ? legs[flightLegId - 1].departureAirport.city : '';\r\n const arrivalCity = flightLegId ? legs[flightLegId - 1].arrivalAirport.city : '';\r\n return (\r\n
    \r\n
    \r\n {`The flight from ${convertToTitleCase(departureCity)}`\r\n + ` to ${convertToTitleCase(arrivalCity)} has restrictions.`}\r\n
    \r\n
    \r\n {\r\n restrictions.map((restriction, index) => (\r\n
    \r\n {restriction}\r\n
    \r\n ))\r\n }\r\n
    \r\n {proposals.length > 0 && (\r\n
    \r\n
    \r\n {`${introductionToSuggestion}:`}\r\n
    \r\n
      \r\n {\r\n proposals.map(proposal => (\r\n
    1. \r\n {proposal}\r\n
    2. \r\n ))\r\n }\r\n
    \r\n
    \r\n )}\r\n
    );\r\n }) : messages\r\n }\r\n
    \r\n );\r\n};\r\n\r\nexport default ValidateFlightMessage;\r\n\r\nValidateFlightMessage.propTypes = {\r\n legs: Proptypes.instanceOf(Array),\r\n messages: Proptypes.instanceOf(Array),\r\n isProposalOrRestriction: Proptypes.bool,\r\n};\r\n\r\nValidateFlightMessage.defaultProps = {\r\n legs: [],\r\n messages: [],\r\n isProposalOrRestriction: false,\r\n};\r\n","import React, { Component } from \"react\";\r\nimport ValidateFlightMessage from \"../ValidateFlightMessage\";\r\n\r\nconst MessagePopUp = props => {\r\n const { id } = props;\r\n let contentError = '';\r\n if (props.content && props.content.length > 1) {\r\n contentError = props.content.map(err =>
  • {err}
  • );\r\n } else if (props.content) {\r\n contentError = props.content[0];\r\n }\r\n const errors = props.messages ? (\r\n \r\n ) : (\r\n contentError\r\n );\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
      {errors}
    \r\n
    \r\n props.handleClose(id)}\r\n >\r\n OK\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MessagePopUp;\r\n","import moment from \"moment\";\r\nimport { GROUNDTIME_VALIDATION_MESSAGE } from \"../constants/MessageConstants\"\r\n\r\nexport const GROUND_TIME = \"groundTime\";\r\n\r\nexport const sortOneWays = oneWayContent => (previous, next) => {\r\n if (oneWayContent[previous] && oneWayContent[next]) {\r\n const availableInPrevious = moment(\r\n oneWayContent[previous].availableIn\r\n ).utc();\r\n const availableInNext = moment(oneWayContent[next].availableIn).utc();\r\n if (availableInPrevious === availableInNext) {\r\n return 0;\r\n }\r\n if (availableInPrevious > availableInNext) {\r\n return 1;\r\n }\r\n return -1;\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const maxArrivalDateTime = (arrivalTime, groundTime) =>{\r\n return moment(arrivalTime).utc().add(groundTime, 'hours');}\r\n\r\nexport const notValidOfferMessage = (reason, legArray, legIndex, offerObject) =>{\r\n let message = \"\";\r\n if (reason === GROUND_TIME) {\r\n if(legArray[legIndex].arrivalTime){\r\n message = GROUNDTIME_VALIDATION_MESSAGE\r\n .replace(\"{time}\", maxArrivalDateTime(legArray[legIndex].arrivalTime, offerObject.maxGroundTimeInHours).format('Do MMM, YYYY HH:mm'))\r\n }\r\n }\r\n return message\r\n};\r\nexport const getAvailableTime = availableIn => {\r\n const availableInHours = Math.floor(moment.duration(availableIn).asHours());\r\n let ending = \"Now\";\r\n let timeDiff = 0;\r\n if (availableInHours < 1) {\r\n return {\r\n value: timeDiff,\r\n unit: ending\r\n };\r\n }\r\n\r\n if (availableInHours <= 24) {\r\n ending = \"hours\";\r\n timeDiff = availableInHours;\r\n\r\n if (timeDiff === 1) {\r\n ending = \"hour\";\r\n }\r\n return {\r\n value: timeDiff,\r\n unit: ending\r\n };\r\n }\r\n\r\n ending = \"days\";\r\n timeDiff = Math.floor(moment.duration(availableIn).asDays());\r\n\r\n if (timeDiff === 1) {\r\n ending = \"day\";\r\n }\r\n\r\n return {\r\n value: timeDiff,\r\n unit: ending\r\n };\r\n};\r\n\r\nexport function isLegInOfferRange(currentLeg, offerObject) {\r\n const departTime = moment(currentLeg.departTime).utc()\r\n const validFrom = moment(offerObject.segmentStart).utc()\r\n const validTo = moment(offerObject.segmentEnd).utc()\r\n\r\n if (\r\n currentLeg.departTime !== \"Invalid date\" && !(departTime.isSameOrAfter(validFrom) && departTime.isSameOrBefore(validTo))\r\n ) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport function areLegsConnected(currentLeg, prevLeg) {\r\n if (!prevLeg) {\r\n return true;\r\n }\r\n\r\n if (currentLeg.departureAirport === null || prevLeg.arrivalAirport === null) {\r\n return true;\r\n }\r\n\r\n return currentLeg.departureAirport.id === prevLeg.arrivalAirport.id;\r\n}\r\n\r\nexport function sortLegsByDepartTime(legs) {\r\n return legs.sort((a, b) =>\r\n moment(a.departTime)\r\n .utc()\r\n .isAfter(moment(b.departTime).utc())\r\n );\r\n}\r\n\r\nexport function areLegsInGroundTime(groundTime, currentLeg, prevLeg) {\r\n if (\r\n !prevLeg ||\r\n !moment(currentLeg.departTime)\r\n .utc()\r\n .isValid()\r\n ) {\r\n return true;\r\n }\r\n\r\n const { arrivalTime } = prevLeg;\r\n const { departTime } = currentLeg;\r\n\r\n const legsInterval = moment(departTime)\r\n .utc()\r\n .diff(moment(arrivalTime).utc(), \"minutes\");\r\n\r\n return !(legsInterval > 60 * groundTime);\r\n}\r\n\r\nexport function isAircraftEqualToOffer(currentLeg, oneWay) {\r\n return currentLeg.selectedAircraft.id === oneWay.aircraftTypeId;\r\n}\r\n\r\nexport function isExtendedOneWayValid(isValid, legs, oneWay = {}) {\r\n let validation = {\r\n valid: true,\r\n reason: \"\",\r\n legIndex: null\r\n };\r\n\r\n const groundTime = oneWay.maxGroundTimeInHours;\r\n if (legs.length === 0) {\r\n validation.valid = false;\r\n return validation;\r\n }\r\n\r\n if (legs.length > oneWay.maxLegs) {\r\n validation.valid = false;\r\n return validation;\r\n }\r\n\r\n if (!isLegInOfferRange(legs[0], oneWay)) {\r\n validation.valid = false;\r\n return validation;\r\n\r\n }\r\n if (legs[0].departureAirport.id !== oneWay.departureAirport.id) {\r\n validation.valid = false;\r\n return validation;\r\n }\r\n\r\n if (legs[0].selectedAircraft.id !== oneWay.aircraftTypeId) {\r\n validation.valid = false;\r\n return validation;\r\n }\r\n\r\n legs.forEach((leg, index) => {\r\n if (index > 0) {\r\n const prevLeg = legs[index - 1];\r\n const connected = areLegsConnected(leg, prevLeg);\r\n const isAircraftValid = isAircraftEqualToOffer(leg, oneWay);\r\n let isInRage = true;\r\n let isInGroundTime = true;\r\n\r\n if (leg.departTime) {\r\n isInRage = isLegInOfferRange(leg, oneWay);\r\n isInGroundTime = areLegsInGroundTime(groundTime, leg, prevLeg);\r\n }\r\n\r\n if (!connected && validation.valid) {\r\n validation.valid = false;\r\n }\r\n\r\n if (!isInRage && validation.valid) {\r\n validation.valid = false;\r\n }\r\n\r\n if (!isInGroundTime && validation.valid) {\r\n validation = {\r\n valid: false,\r\n reason: GROUND_TIME,\r\n legIndex: index - 1\r\n };\r\n }\r\n\r\n if (!isAircraftValid && validation.valid) {\r\n validation.valid = false;\r\n }\r\n }\r\n });\r\n return validation;\r\n}\r\n","import React, { Component } from \"react\";\r\n//import moment from \"moment\";\r\nimport Helpers from \"../../utils/Helpers\";\r\nimport ConfirmationPopUp from '../shared/ConfirmationPopUpNew';\r\nimport { dateFnsFormats } from \"../../utils/dateUtils\";\r\nimport LegCard from \"./LegCard\";\r\nimport ContractSelector from \"../shared/ContractSelector\";\r\nimport DialogWrapper from \"../DialogWrapper\";\r\nimport {\r\n validateLegs,\r\n validateMultiLeg,\r\n calcDepartAndArrivalTime,\r\n calcFlightDuration,\r\n sortLegs\r\n} from \"../../utils/PAFUtils\";\r\nimport Button from \"../shared/Button\";\r\nimport BulletPopup from \"../shared/BulletPopup\";\r\nimport {\r\n isFSP,\r\n isFspDirect,\r\n isLoggedIn,\r\n isGuest,\r\n isVJ2,\r\n getVJAccountId\r\n} from \"../../utils/userUtils\";\r\nimport { getAvailableAircrafts } from \"../../utils/aircraftUtils\";\r\nimport aircraftsList from \"../../utils/Aircrafts\";\r\nimport SpinnerLoader from \"../shared/spinnerLoader\";\r\nimport { legObject, leg } from \"../../utils/offerUtils\";\r\nimport { isExtendedOneWayValid, notValidOfferMessage } from \"../../utils/oneWayOfferUtils\";\r\nimport {\r\n AIRCRAFT_NOT_IN_CONTRACT,\r\n FILL_CONTRACT_EXCEPTION,\r\n BACK_TO_OFFER,\r\n OFFER_NOT_APPLIED,\r\n PASSENGER_EXCEED_AIRCRAFT_CHANGE\r\n} from \"../../constants/MessageConstants\";\r\nimport { USER_ACCESS_TYPES } from \"../../constants/UserAccessTypes\";\r\nimport dirtystateSingleTon from '../../validators/validateDirty';\r\nimport SPAConstants from '../../constants/SPAConstants'\r\nimport { scrollToTop } from \"../../utils/browserUtils\";\r\nimport { format, isWithinInterval, parse } from \"date-fns\";\r\n\r\nclass LegListing extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.orderExtIdentifier = Helpers.guid();\r\n this.initialLegStruct = {\r\n ...legObject,\r\n orderExtIdentifier: this.orderExtIdentifier\r\n };\r\n this.aircrafts = aircraftsList;\r\n this.state = {\r\n legArray:\r\n props.legArray.length > 0\r\n ? props.legArray\r\n : [{ ...this.initialLegStruct }],\r\n disableReturn: true,\r\n popupErrorMessages: [],\r\n availableAircraftIds: [],\r\n selectedContract: null,\r\n accountId: null,\r\n contractValidation: null,\r\n isOkPressed: false,\r\n isOffer: true,\r\n message: \"\",\r\n showAircraftInContract: false,\r\n passengerInfo: {},\r\n };\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.legArray !== this.props.legArray) {\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, true);\r\n this.setState({\r\n legArray: nextProps.legArray\r\n });\r\n this.setEnabledAddReturn(nextProps.legArray);\r\n }\r\n if (\r\n nextProps.validateFlightMessages.length > 0 &&\r\n !this.state.isOkPressed\r\n ) {\r\n window.UIkit.modal(\"#validationPopUp\").show();\r\n }\r\n const actualData =\r\n nextProps.legArray.length > 0 ? nextProps.legArray : this.state.legArray;\r\n this.setEnabledAddReturn(actualData);\r\n }\r\n handleAddFlight = isReturnAdded => {\r\n this.refreshFormFields(isReturnAdded);\r\n };\r\n\r\n setEnabledAddReturn = legArray => {\r\n this.setState({ disableReturn: true });\r\n const legs = legArray.filter(leg => !leg.isCanceled);\r\n const lastLeg = legs ? legs[legs.length - 1] : {};\r\n const firstLeg = legs ? legs[0] : {};\r\n if (\r\n firstLeg.departureAirport !== null &&\r\n lastLeg.arrivalAirport !== null &&\r\n firstLeg.departureAirport !== lastLeg.arrivalAirport\r\n ) {\r\n this.setState({ disableReturn: false });\r\n }\r\n };\r\n\r\n refreshFormFields = (isReturnAdded = false) => {\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, true);\r\n const legArray = [...this.state.legArray];\r\n const lastLeg = legArray[legArray.length - 1];\r\n const type = legArray[0].isEmptyLeg ? \"Empty Leg\" : \"One Way\";\r\n let duration = null;\r\n if (isReturnAdded) {\r\n duration = Helpers.getFlightDuration(\r\n lastLeg.arrivalAirport,\r\n lastLeg.departureAirport,\r\n lastLeg.selectedAircraft\r\n );\r\n }\r\n const initialLeg = leg();\r\n initialLeg.orderExtIdentifier = this.orderExtIdentifier;\r\n legArray.push({\r\n ...initialLeg,\r\n isReturn: isReturnAdded,\r\n prevLeg: lastLeg,\r\n departureAirport: lastLeg.arrivalAirport,\r\n arrivalAirport: isReturnAdded ? legArray[0].departureAirport : null,\r\n selectedAircraft: lastLeg.selectedAircraft,\r\n passengersCount: lastLeg.passengersCount,\r\n duration\r\n //validation: legArray[legArray.length - 1].validation\r\n });\r\n if (this.props.isOfferFlow) {\r\n const { isValidOffer } = this.validateOffer(legArray);\r\n if (isValidOffer && this.state.isOffer === false) {\r\n this.setState({\r\n isOffer: true,\r\n message: BACK_TO_OFFER,\r\n legArray\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else if (!isValidOffer && this.state.isOffer === true) {\r\n this.setState({\r\n isOffer: isValidOffer,\r\n message: OFFER_NOT_APPLIED.replace(\"{offerType}\", type),\r\n legArray\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else {\r\n this.setState({\r\n legArray\r\n });\r\n }\r\n } else {\r\n this.setState({\r\n legArray\r\n });\r\n }\r\n this.setEnabledAddReturn(legArray);\r\n };\r\n popUpContent = () => {\r\n const list = this.state.popupErrorMessages.map((error, index) => (\r\n
  • {error}
  • \r\n ));\r\n return
      {list}
    ;\r\n };\r\n\r\n isOfferValid(legs) {\r\n return (\r\n this.props.isOfferFlow &&\r\n (legs[0].opportunityId || !!(legs.length === 1 && legs[0].emptyLegId))\r\n );\r\n }\r\n\r\n validateAircraftinContract(value) {\r\n let validated = true;\r\n if (\r\n (isLoggedIn(this.props.user) &&\r\n (this.props.isOfferFlow &&\r\n !this.state.isOffer &&\r\n isFspDirect(this.props.user))) ||\r\n (!this.props.isOfferFlow &&\r\n (isFSP(this.props.user) || isFspDirect(this.props.user)))\r\n ) {\r\n validated = this.state.availableAircraftIds.includes(value.id);\r\n this.setState({ showAircraftInContract: true });\r\n } else {\r\n this.setState({ showAircraftInContract: false });\r\n }\r\n\r\n return validated;\r\n }\r\n\r\n gatherPassengerInfo = (info, id) => {\r\n let editiedInfo = this.state.passengerInfo;\r\n editiedInfo[id] = info;\r\n this.setState({ passengerInfo: editiedInfo });\r\n }\r\n\r\n validateContract = () => {\r\n let value = false;\r\n if (\r\n isLoggedIn(this.props.user) &&\r\n !this.props.isOfferFlow &&\r\n (isFSP(this.props.user) || isFspDirect(this.props.user)) &&\r\n !this.state.accountId\r\n ) {\r\n value = true;\r\n this.setState({ contractValidation: FILL_CONTRACT_EXCEPTION });\r\n }\r\n return value;\r\n };\r\n\r\n getAllDates = () => {\r\n const { legArray } = this.state;\r\n const dates = [];\r\n legArray.forEach(leg => {\r\n if (leg.date) {\r\n dates.push(leg.date);\r\n }\r\n })\r\n return dates;\r\n }\r\n\r\n checkAllowAircraftSelect = () => {\r\n let value = false;\r\n if (\r\n !isLoggedIn(this.props.user) ||\r\n this.props.isOfferFlow ||\r\n !(isFSP(this.props.user) || isFspDirect(this.props.user)) ||\r\n this.state.selectedContract\r\n ) {\r\n value = true;\r\n }\r\n return value;\r\n };\r\n\r\n handleOnChangeTimePicker = (time, guid) => {\r\n const { offerObject } = this.props\r\n const isTimeValid = true; //moment(time, 'HH:mm', true).isValid();\r\n const timeVal = isTimeValid ? time : '';\r\n const legArray = [...this.state.legArray];\r\n let legToUpdate = legArray.find(leg => leg.guid === guid);\r\n // legToUpdate.hour = value;\r\n // const { minutes } = legToUpdate;\r\n // const newSelectedTime = value.concat(\":\", minutes);\r\n // legToUpdate.time = newSelectedTime;\r\n legToUpdate.time = timeVal\r\n legToUpdate.validation.errorOn.time = null;\r\n legToUpdate = calcDepartAndArrivalTime(legToUpdate);\r\n if (this.props.isOfferFlow) {\r\n const type = legArray[0].isEmptyLeg ? \"Empty Leg\" : \"One Way\";\r\n const { isValidOffer, reason, legIndex } = this.validateOffer(legArray);\r\n if (isValidOffer && this.state.isOffer === false) {\r\n this.setState({\r\n isOffer: true,\r\n message: BACK_TO_OFFER,\r\n legArray,\r\n selectedContract: false\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else if (!isValidOffer && this.state.isOffer === true) {\r\n let notAnOfferMessage = notValidOfferMessage(reason, legArray, legIndex, offerObject);\r\n notAnOfferMessage = notAnOfferMessage ? notAnOfferMessage : OFFER_NOT_APPLIED.replace(\"{offerType}\", type);\r\n this.setState({\r\n isOffer: isValidOffer,\r\n message: notAnOfferMessage,\r\n legArray\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else {\r\n this.setState({\r\n legArray\r\n });\r\n }\r\n } else {\r\n this.setState({ legArray });\r\n }\r\n };\r\n\r\n renderLeg = () => {\r\n let legArray = [...this.state.legArray];\r\n if (!this.props.isOfferFlow) {\r\n legArray = sortLegs(legArray);\r\n }\r\n legArray[0].prevLeg = null;\r\n const { offerObject, passengers } = this.props;\r\n\r\n const allowAircraftSelect = this.checkAllowAircraftSelect();\r\n // !isLoggedIn(this.props.user) ||\r\n // this.props.isOfferFlow ||\r\n // !(isFSP(this.props.user) || isFspDirect(this.props.user)) ||\r\n // this.state.selectedContract;\r\n return legArray.map((leg, index) => {\r\n const guid = leg.guid;\r\n const legId = leg.legId || leg.flightLegExtIdentifier\r\n return (\r\n 1\r\n }\r\n handleRemoveFlight={() => this.handleRemoveFlight(guid)}\r\n isContractSelected={this.state.accountId}\r\n selectedContract={this.state.selectedContract}\r\n allowAircraftSelect={allowAircraftSelect}\r\n key={guid}\r\n handleAirportSelect={(value, source) =>\r\n this.handleAirportSelect(value, source, guid)\r\n }\r\n isAirportsFetched={this.props.isAirportsFetched}\r\n visitedAirports={this.props.visitedAirports}\r\n fetchVisitedAirports={this.props.fetchVisitedAirports}\r\n aircraftsList={this.props.aircraftsList}\r\n leg={leg}\r\n handleDateChange={value => this.handleDateChange(value, guid)}\r\n handleDepartureHourChange={value =>\r\n this.handleDepartureHourChange(value, guid)\r\n }\r\n handleDepartureMinuteChange={value =>\r\n this.handleDepartureMinuteChange(value, guid)\r\n }\r\n handleOnChange={value =>\r\n this.handleOnChangeTimePicker(value, guid)\r\n }\r\n handleAircraftChange={value => this.handleAircraftChange(value, guid)}\r\n handleStepperChange={value => this.handleStepperChange(value, guid)}\r\n offerObject={index == 0 && offerObject ? offerObject : {}}\r\n isOfferFlow={this.props.isOfferFlow}\r\n isOffer={this.state.isOffer}\r\n showAircraftInContract={this.state.showAircraftInContract}\r\n allHighlightedDates={this.getAllDates()}\r\n isEditFlow={this.props.isEditFlow}\r\n passengers={passengers ? passengers[legId] : {}}\r\n gatherPassengerInfo={value => this.gatherPassengerInfo(value, legId)}\r\n />\r\n );\r\n });\r\n };\r\n isEmptyLeg = (legs, emptyLeg) => {\r\n let validation = {\r\n valid: true,\r\n reason: \"\",\r\n legIndex: null\r\n\r\n };\r\n\r\n if (legs.length != 1) {\r\n validation.valid = false;\r\n return validation;\r\n }\r\n if (legs[0].departureAirport.id !== emptyLeg.departureAirport.id) {\r\n validation.valid = false;\r\n return validation;\r\n }\r\n\r\n if (legs[0].arrivalAirport.id !== emptyLeg.arrivalAirport.id) {\r\n validation.valid = false;\r\n return validation;\r\n }\r\n\r\n if (legs[0].selectedAircraft.id !== emptyLeg.aircraftTypeId) {\r\n validation.valid = false;\r\n return validation;\r\n }\r\n\r\n const validFrom = parse(emptyLeg.validFrom, \"yyy-MM-dd\", new Date());\r\n const validTo = parse(emptyLeg.validTo, \"yyy-MM-dd\", new Date());\r\n const departTime = parse(legs[0].departTime, \"yyy-MM-dd\", new Date());\r\n if (legs[0].departTime !== \"Invalid date\" && !isWithinInterval(departTime, { start: validFrom, end: validTo })) {\r\n validation.valid = false;\r\n return validation;\r\n }\r\n return validation;\r\n };\r\n checkAircraftInContract = (legArray, availableAircraftIds) => {\r\n let legArrayTemp = legArray.map(leg => {\r\n if (\r\n leg.selectedAircraft &&\r\n availableAircraftIds.length > 0 &&\r\n !availableAircraftIds.includes(leg.selectedAircraft.id)\r\n ) {\r\n leg.validation.errorOn.aircraft = AIRCRAFT_NOT_IN_CONTRACT;\r\n } else if (\r\n leg.selectedAircraft &&\r\n availableAircraftIds.includes(leg.selectedAircraft.id)\r\n ) {\r\n leg.validation.errorOn.aircraft = \"\";\r\n }\r\n return leg;\r\n });\r\n return legArrayTemp;\r\n };\r\n\r\n validateOffer = legArray => {\r\n const { offerObject } = this.props;\r\n const { valid, reason, legIndex } =\r\n offerObject.type === \"OneWay\"\r\n ? isExtendedOneWayValid(true, legArray, offerObject)\r\n : this.isEmptyLeg(legArray, offerObject);\r\n\r\n return { isValidOffer: valid, reason, legIndex }\r\n };\r\n\r\n // All the onChange handlers which are setting state will place down till render func.\r\n\r\n handleContractChange = value => {\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, true);\r\n let legArray = [...this.state.legArray];\r\n const contract = value;\r\n let availableAircraftIds = [];\r\n\r\n availableAircraftIds =\r\n contract && contract.value\r\n ? getAvailableAircrafts(contract.value.aircraftTypeDtos)\r\n : null;\r\n legArray = this.checkAircraftInContract(legArray, availableAircraftIds);\r\n\r\n this.setState({\r\n legArray,\r\n availableAircraftIds,\r\n selectedContract: value,\r\n accountId: value.value.id,\r\n isContractSelected: true,\r\n contractValidation: null,\r\n showAircraftInContract: true\r\n });\r\n };\r\n\r\n handleAirportSelect = (value, source, guid) => {\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, true);\r\n const legArray = [...this.state.legArray];\r\n let legToUpdate = legArray.find(leg => leg.guid === guid);\r\n const type = legArray[0].isEmptyLeg ? \"Empty Leg\" : \"One Way\";\r\n if (source === \"departure\") {\r\n legToUpdate.departureAirport = { ...value };\r\n legToUpdate = calcFlightDuration(legToUpdate);\r\n legToUpdate = calcDepartAndArrivalTime(legToUpdate);\r\n this.setEnabledAddReturn(legArray);\r\n legToUpdate.validation.errorOn.departure = null;\r\n } else {\r\n legToUpdate.arrivalAirport = { ...value };\r\n legToUpdate = calcFlightDuration(legToUpdate);\r\n\r\n legToUpdate = calcDepartAndArrivalTime(legToUpdate);\r\n this.setEnabledAddReturn(legArray);\r\n legToUpdate.validation.errorOn.arrival = null;\r\n }\r\n legToUpdate.validation.errorOn.departureArrivalSame = null;\r\n if (this.props.isOfferFlow) {\r\n const { isValidOffer } = this.validateOffer(legArray);\r\n if (isValidOffer && this.state.isOffer === false) {\r\n this.setState({\r\n isOffer: true,\r\n message: BACK_TO_OFFER,\r\n legArray\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else if (!isValidOffer && this.state.isOffer === true) {\r\n this.setState({\r\n isOffer: isValidOffer,\r\n message: OFFER_NOT_APPLIED.replace(\"{offerType}\", type),\r\n legArray\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else {\r\n this.setState({\r\n legArray\r\n });\r\n }\r\n } else {\r\n this.setState({ legArray });\r\n }\r\n this.setEnabledAddReturn(legArray);\r\n };\r\n\r\n handleDateChange = (date, guid) => {\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, true);\r\n const { offerObject } = this.props\r\n const legArray = [...this.state.legArray];\r\n let legToUpdate = legArray.find(leg => leg.guid === guid);\r\n legToUpdate.date = format(date, dateFnsFormats.YYYY_MM_DD);\r\n legToUpdate.validation.errorOn.date = null;\r\n legToUpdate.validation.errorOn.minHoursException = null;\r\n legToUpdate = calcDepartAndArrivalTime(legToUpdate);\r\n if (this.props.isOfferFlow) {\r\n const type = legArray[0].isEmptyLeg ? \"Empty Leg\" : \"One Way\";\r\n const { isValidOffer, reason, legIndex } = this.validateOffer(legArray);\r\n if (isValidOffer && this.state.isOffer === false) {\r\n this.setState({\r\n isOffer: true,\r\n message: BACK_TO_OFFER,\r\n legArray,\r\n selectedContract: false\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else if (!isValidOffer && this.state.isOffer === true) {\r\n let notAnOfferMessage = notValidOfferMessage(reason, legArray, legIndex, offerObject);\r\n notAnOfferMessage = notAnOfferMessage ? notAnOfferMessage : OFFER_NOT_APPLIED.replace(\"{offerType}\", type);\r\n\r\n this.setState({\r\n isOffer: isValidOffer,\r\n message: notAnOfferMessage,\r\n legArray\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else {\r\n this.setState({\r\n legArray\r\n });\r\n }\r\n } else {\r\n this.setState({ legArray });\r\n }\r\n };\r\n\r\n handleDepartureHourChange = (value, guid) => {\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, true);\r\n const legArray = [...this.state.legArray];\r\n let legToUpdate = legArray.find(leg => leg.guid === guid);\r\n legToUpdate.hour = value;\r\n const { minutes } = legToUpdate;\r\n const newSelectedTime = value.concat(\":\", minutes);\r\n legToUpdate.time = newSelectedTime;\r\n legToUpdate.validation.errorOn.time = null;\r\n legToUpdate = calcDepartAndArrivalTime(legToUpdate);\r\n if (this.props.isOfferFlow) {\r\n const type = legArray[0].isEmptyLeg ? \"Empty Leg\" : \"One Way\";\r\n const { isValidOffer } = this.validateOffer(legArray);\r\n if (isValidOffer && this.state.isOffer === false) {\r\n this.setState({\r\n isOffer: true,\r\n message: BACK_TO_OFFER,\r\n legArray,\r\n selectedContract: false\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else if (!isValidOffer && this.state.isOffer === true) {\r\n this.setState({\r\n isOffer: isValidOffer,\r\n message: OFFER_NOT_APPLIED.replace(\"{offerType}\", type),\r\n legArray\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else {\r\n this.setState({\r\n legArray\r\n });\r\n }\r\n } else {\r\n this.setState({ legArray });\r\n }\r\n };\r\n\r\n handleDepartureMinuteChange = (value, guid) => {\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, true);\r\n const legArray = [...this.state.legArray];\r\n let legToUpdate = legArray.find(leg => leg.guid === guid);\r\n legToUpdate.minutes = value;\r\n const { hour } = legToUpdate;\r\n const newSelectedTime = hour.concat(\":\", value);\r\n legToUpdate.time = newSelectedTime;\r\n legToUpdate.validation.errorOn.time = null;\r\n legToUpdate = calcDepartAndArrivalTime(legToUpdate);\r\n if (this.props.isOfferFlow) {\r\n const type = legArray[0].isEmptyLeg ? \"Empty Leg\" : \"One Way\";\r\n const { isValidOffer } = this.validateOffer(legArray);\r\n if (isValidOffer && this.state.isOffer === false) {\r\n this.setState({\r\n isOffer: true,\r\n message: BACK_TO_OFFER,\r\n legArray,\r\n selectedContract: false\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else if (!isValidOffer && this.state.isOffer === true) {\r\n this.setState({\r\n isOffer: isValidOffer,\r\n message: OFFER_NOT_APPLIED.replace(\"{offerType}\", type),\r\n legArray\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else {\r\n this.setState({\r\n legArray\r\n });\r\n }\r\n } else {\r\n this.setState({ legArray });\r\n }\r\n };\r\n\r\n handleAircraftChange = (value, guid) => {\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, true);\r\n const legArray = [...this.state.legArray];\r\n let legToUpdate = legArray.find(leg => leg.guid === guid);\r\n const type = legArray[0].isEmptyLeg ? \"Empty Leg\" : \"One Way\";\r\n\r\n const legId = legToUpdate.legId || legToUpdate.flightLegExtIdentifier\r\n\r\n if (this.props.isEditFlow) {\r\n const { passengers } = this.props;\r\n const passengerInfo = passengers[legId];\r\n if (passengerInfo && passengerInfo.passengers && value.maxNumberOfPassengers < passengerInfo.passengers.length) {\r\n this.setState({ message: PASSENGER_EXCEED_AIRCRAFT_CHANGE });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n return;\r\n }\r\n }\r\n if (!this.validateAircraftinContract(value) && this.state.accountId) {\r\n legToUpdate.validation.errorOn.aircraft = AIRCRAFT_NOT_IN_CONTRACT;\r\n } else if (legToUpdate.validation.errorOn.aircraft) {\r\n legToUpdate.validation.errorOn.aircraft = \"\";\r\n }\r\n legToUpdate.selectedAircraft = value;\r\n if (value.maxNumberOfPassengers < legToUpdate.passengersCount) {\r\n legToUpdate.passengersCount = parseInt(value.maxNumberOfPassengers);\r\n legToUpdate.numberOfPassenger = parseInt(value.maxNumberOfPassengers);\r\n }\r\n legToUpdate = calcFlightDuration(legToUpdate);\r\n\r\n legToUpdate = calcDepartAndArrivalTime(legToUpdate);\r\n\r\n if (this.props.isOfferFlow) {\r\n const { isValidOffer } = this.validateOffer(legArray);\r\n if (isValidOffer && this.state.isOffer === false) {\r\n this.setState({\r\n isOffer: true,\r\n message: BACK_TO_OFFER,\r\n legArray,\r\n selectedContract: false\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else if (!isValidOffer && this.state.isOffer === true) {\r\n this.setState({\r\n isOffer: isValidOffer,\r\n message: OFFER_NOT_APPLIED.replace(\"{offerType}\", type),\r\n legArray\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else {\r\n this.setState({\r\n legArray\r\n });\r\n }\r\n } else {\r\n this.setState({\r\n legArray\r\n });\r\n }\r\n this.setEnabledAddReturn(legArray);\r\n\r\n };\r\n handleStepperChange = (value, guid) => {\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, true);\r\n const legArray = [...this.state.legArray];\r\n let legToUpdate = legArray.find(leg => leg.guid === guid);\r\n legToUpdate.passengersCount = value;\r\n legToUpdate.validation.errorOn.passengersCount = null;\r\n this.setState({ legArray });\r\n };\r\n handleRemoveFlight = guid => {\r\n const tempArray = [...this.state.legArray];\r\n const type = tempArray[0].isEmptyLeg ? \"Empty Leg\" : \"One Way\";\r\n const index = tempArray\r\n .map(leg => {\r\n return leg.guid;\r\n })\r\n .indexOf(guid);\r\n tempArray.splice(index, 1);\r\n if (tempArray.length === 1) {\r\n tempArray[0].prevLeg = null;\r\n }\r\n if (this.props.isOfferFlow) {\r\n const { isValidOffer } = this.validateOffer(tempArray);\r\n if (isValidOffer && this.state.isOffer === false) {\r\n this.setState({\r\n isOffer: true,\r\n message: BACK_TO_OFFER,\r\n legArray: tempArray,\r\n selectedContract: false\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else if (!isValidOffer && this.state.isOffer === true) {\r\n this.setState({\r\n isOffer: isValidOffer,\r\n message: OFFER_NOT_APPLIED.replace(\"{offerType}\", type),\r\n legArray: tempArray\r\n });\r\n window.UIkit.modal(\"#OutFromOffer\").show();\r\n } else {\r\n this.setState({\r\n legArray: tempArray\r\n });\r\n }\r\n } else {\r\n this.setState({\r\n legArray: tempArray\r\n });\r\n }\r\n // window.UIkit.modal(\"#removeLegPopup\").hide();\r\n this.setEnabledAddReturn(tempArray);\r\n };\r\n\r\n getPreferredAccount = userProps => {\r\n const preferredAccount = userProps.accounts.filter(\r\n account => account.typeId === USER_ACCESS_TYPES.FSP && account.isPreferred\r\n );\r\n return preferredAccount[0];\r\n };\r\n getErrorArray = (validMultiLegs, modalMessage) => {\r\n let messages = [];\r\n if (modalMessage.length >= 1) {\r\n messages = modalMessage;\r\n }\r\n if (validMultiLegs.length >= 1) {\r\n messages = messages.concat(validMultiLegs);\r\n }\r\n return messages;\r\n };\r\n handleSend = () => {\r\n let legArray = [...this.state.legArray];\r\n if (!this.props.isOfferFlow) {\r\n legArray = sortLegs(legArray);\r\n }\r\n const { isError, validLegs, modalMessage } = validateLegs(legArray, this.props.isEditFlow);\r\n if (!this.validateContract()) {\r\n if (isError) {\r\n this.setState({\r\n legArray: validLegs\r\n });\r\n } else {\r\n const validMultiLegs = validateMultiLeg(legArray);\r\n const errorMessages = this.getErrorArray(validMultiLegs, modalMessage);\r\n if (errorMessages.length >= 1) {\r\n this.setState(\r\n {\r\n popupErrorMessages: errorMessages\r\n },\r\n () => {\r\n window.UIkit.modal(\"#multiLegError\").show();\r\n }\r\n );\r\n } else if (this.props.isOfferFlow) {\r\n this.sendFinalRequest();\r\n } else {\r\n this.quoteConfirmPopup.show();\r\n }\r\n }\r\n }\r\n };\r\n\r\n handleValidationModalClose = id => {\r\n window.UIkit.modal(\"#\" + id).hide();\r\n };\r\n handleOpsRestrictionsClose = id => {\r\n window.UIkit.modal(\"#\" + id).hide();\r\n this.props.resetFlightErrorMessages();\r\n };\r\n\r\n sendFinalRequest = () => {\r\n this.quoteConfirmPopup.hide();\r\n setTimeout(() => {\r\n // scrollToSection(500, 'top');\r\n scrollToTop();\r\n }, 1000)\r\n const userProps = this.props.user;\r\n let accountId = null;\r\n let legArray = [...this.state.legArray];\r\n if (!this.props.isOfferFlow) {\r\n legArray = sortLegs(legArray);\r\n }\r\n if (this.props.isOfferFlow) {\r\n if (this.state.isOffer && (isFspDirect(userProps) || isVJ2(userProps))) {\r\n accountId = getVJAccountId(userProps);\r\n this.props.validateAllFlights(this.state.legArray, accountId, true);\r\n } else if (!this.state.isOffer) {\r\n if (isFspDirect(userProps)) {\r\n accountId = this.getPreferredAccount(userProps).id;\r\n this.props.validateAllFlights(legArray, this.state.accountId, false);\r\n } else if (isVJ2(userProps)) {\r\n this.props.requestAllQuote(legArray, userProps);\r\n }\r\n }\r\n } else if (this.props.isEditFlow) {\r\n const { itineraryDetails } = this.props;\r\n const { passengerInfo } = this.state;\r\n if (isFSP(userProps) || isFspDirect(userProps)) {\r\n this.props.validateAllFlights(\r\n legArray,\r\n this.state.accountId,\r\n false,\r\n true,\r\n itineraryDetails,\r\n passengerInfo,\r\n );\r\n }\r\n } else if (isFSP(userProps) || isFspDirect(userProps)) {\r\n this.props.validateAllFlights(legArray, this.state.accountId);\r\n } else if (isGuest(userProps)) {\r\n this.props.createCompany(legArray);\r\n } else {\r\n this.props.requestAllQuote(legArray, userProps);\r\n }\r\n };\r\n\r\n render() {\r\n const { legArray } = this.state;\r\n const { offerObject, itineraryDetails, isEditFlow } = this.props;\r\n const { user } = this.props;\r\n let confirmationMessage = \"\";\r\n let BUTTON_TEXT = \"\";\r\n const classNames =\r\n legArray.length >= 1\r\n ? \"uk-button vistajet_button_default\"\r\n : `uk-button vistajet_button_default ${this.disableButtonClass}`;\r\n if (isFSP(user) || isFspDirect(user)) {\r\n BUTTON_TEXT = \"Request Flight\";\r\n confirmationMessage = \"Are you happy to confirm your purchase?\";\r\n } else {\r\n BUTTON_TEXT = \"Request Quote\";\r\n confirmationMessage =\r\n \"Are you sure you would like to proceed with this request?\";\r\n }\r\n if (this.props.isOfferFlow && this.state.isOffer) {\r\n BUTTON_TEXT = \"Request Quote\";\r\n } else if (this.props.isOfferFlow && !this.state.isOffer) {\r\n BUTTON_TEXT = isFspDirect(user) ? \"Request Flight\" : \"Request Quote\";\r\n } else if (isEditFlow) {\r\n BUTTON_TEXT = \"Update Request\";\r\n }\r\n return (\r\n
    \r\n
    \r\n {this.props.isValidateFlightLoading ||\r\n this.props.isRequestFlightLoading ? (\r\n
    \r\n \r\n
    \r\n ) : null}\r\n {itineraryDetails && itineraryDetails.orderId && (\r\n
    OrderId: {itineraryDetails.orderId}
    \r\n )}\r\n {!(this.props.isOfferFlow && this.state.isOffer) &&\r\n (isFSP(this.props.user) || isFspDirect(this.props.user)) ? (\r\n
    \r\n \r\n

    \r\n {this.state.contractValidation}\r\n

    \r\n
    \r\n ) : null}\r\n {this.props.isOfferFlow && this.state.isOffer ? (\r\n
    \r\n
    \r\n Operated by: {offerObject.operatingCompanyName}\r\n
    \r\n
    \r\n \r\n \r\n {this.props.offerToolTipInfo.map(element => (\r\n
    \r\n
    \r\n \r\n {element.name}: {element.value}\r\n \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n\r\n {this.renderLeg()}\r\n
    \r\n {!this.props.hideButtons && (\r\n
    \r\n
    \r\n this.handleAddFlight(true)}\r\n label={\"Add Return\"}\r\n />\r\n this.handleAddFlight(false)}\r\n label={\"Add Flight\"}\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.quoteConfirmPopup = quoteConfirmPopup; }}\r\n title=\"Confirmation\"\r\n id=\"quoteConfirmationPopup\"\r\n leftButtonContent=\"No\"\r\n rightButtonContent=\"Yes\"\r\n onLeftButtonClick={() =>\r\n this.quoteConfirmPopup.hide()\r\n }\r\n onRightButtonClick={this.sendFinalRequest}\r\n content={confirmationMessage}\r\n />\r\n \r\n
    \r\n );\r\n }\r\n}\r\nexport default LegListing;\r\n","import React from \"react\";\r\nimport Helpers from \"../../utils/Helpers\";\r\nimport moment from \"moment\";\r\nimport { dateFormats, formatDate } from \"../../utils/dateUtils\";\r\nimport { capitalize } from \"../../utils/stringUtils\";\r\nimport { ITINERARY_DETAILS_PAGE_URL } from \"../../configs/constants\";\r\nimport dirtystateSingleTon from \"../../validators/validateDirty\";\r\nimport SPAConstants from \"../../constants/SPAConstants\";\r\n\r\nconst glex = \"/legacy/static/img/icons/GLEX-icon.svg\";\r\n\r\nexport const formatDepartTime = departTime => {\r\n const depart = departTime.split(\"T\")[1].split(\":\");\r\n const formattedDepartTime = `${depart[0]}:${depart[1]} loc`;\r\n return formattedDepartTime;\r\n};\r\n\r\nexport const formatArrivalTime = (departTime, arrivalTime) => {\r\n const arrival = arrivalTime.split(\"T\")[1].split(\":\");\r\n const daysDiff = Helpers.getDaysDiff(departTime, arrivalTime);\r\n const formattedArrivalTime =\r\n `${arrival[0]}:${Helpers.roundTo5Minutes(arrival[1])} loc ${daysDiff}`;\r\n return formattedArrivalTime;\r\n};\r\nexport const makeData = legs => {\r\n let legCardObject = {\r\n date: null,\r\n departureAirport: {\r\n city: null,\r\n name: null\r\n },\r\n arrivalAirport: {\r\n city: null,\r\n name: null\r\n },\r\n time: null,\r\n arrivalTime: null,\r\n departTime: null\r\n };\r\n if (legs.length === 1) {\r\n const leg = legs[0];\r\n legCardObject = {\r\n date: leg.date,\r\n departureAirport: {\r\n city: leg.departureAirport.city,\r\n name: leg.departureAirport.name\r\n },\r\n arrivalAirport: {\r\n city: leg.arrivalAirport.city,\r\n name: leg.arrivalAirport.name\r\n },\r\n time: Number(leg.duration),\r\n aircraftName: leg.selectedAircraft.displayName,\r\n arrivalTime: formatArrivalTime(leg.departTime, leg.arrivalTime),\r\n departTime: formatDepartTime(leg.departTime),\r\n arrivalDate: leg.arrivalTime,\r\n departDate: leg.departTime,\r\n legsLength: legs.length\r\n };\r\n } else {\r\n const firstLeg = legs[0];\r\n const lastLeg = legs[legs.length - 1];\r\n legCardObject = {\r\n date: firstLeg.date,\r\n departureAirport: {\r\n city: firstLeg.departureAirport.city,\r\n name: firstLeg.departureAirport.name\r\n },\r\n arrivalAirport: {\r\n city: lastLeg.arrivalAirport.city,\r\n name: lastLeg.arrivalAirport.name\r\n },\r\n time: legs.reduce((sum, element) => sum + Number(element.duration), 0),\r\n arrivalTime: formatArrivalTime(lastLeg.departTime, lastLeg.arrivalTime),\r\n departTime: formatDepartTime(firstLeg.departTime),\r\n isReturn: firstLeg.departureAirport.id === lastLeg.arrivalAirport.id,\r\n arrivalDate: lastLeg.arrivalTime,\r\n departDate: firstLeg.departTime,\r\n legsLength: legs.length\r\n };\r\n }\r\n return legCardObject;\r\n};\r\n\r\nconst redirectToItinerary = props => {\r\n const { orderIdentifiers, itineraryDetails } = props;\r\n const key = Object.keys(itineraryDetails)[0];\r\n const Url = ITINERARY_DETAILS_PAGE_URL.url\r\n .replace(\"{key}\", key)\r\n .replace(\"{orderExtendifier}\", itineraryDetails[key])\r\n .replace(\"{flightLegExtendifier}\", orderIdentifiers[0])\r\n .replace(\"{itineraryType}\", \"upcomingItineraries\");\r\n window.open(Url, \"_self\");\r\n};\r\n\r\nconst shouldViewButton = (requestFlightSuccess, requestQuoteSuccess, buyOfferSuccess, isBuyQuote) => {\r\n let isShowViewItinerary = false;\r\n if (requestFlightSuccess === true || buyOfferSuccess === true || isBuyQuote) {\r\n isShowViewItinerary = true;\r\n }\r\n return isShowViewItinerary;\r\n}\r\n\r\nconst ThankYou = props => {\r\n dirtystateSingleTon.setDirty(SPAConstants.PAFContainer, false);\r\n dirtystateSingleTon.setDirty(SPAConstants.MyQuotes, false);\r\n const { requestFlightSuccess, requestQuoteSuccess, buyOfferSuccess, isBuyQuote } = props;\r\n const structuredData = makeData(props.legArray);\r\n const shouldButtonAppear = shouldViewButton(requestFlightSuccess, requestQuoteSuccess, buyOfferSuccess, isBuyQuote);\r\n const {\r\n departureAirport,\r\n arrivalAirport,\r\n time,\r\n aircraftName,\r\n arrivalTime,\r\n departTime,\r\n isReturn,\r\n arrivalDate,\r\n departDate,\r\n legsLength\r\n } = structuredData;\r\n let iconClass = \"vistajet_departure_center\";\r\n if (isReturn) {\r\n iconClass = \"vistajet_departure_center vistajet_return_icon\";\r\n } else if (legsLength > 1) {\r\n iconClass = \"vistajet_departure_center vistajet_multicities_icon\";\r\n }\r\n const formattedDepartDate = formatDate(\r\n moment(departDate).utc(),\r\n dateFormats.DDMMMYYYY\r\n );\r\n const formattedArrivalDate = formatDate(\r\n moment(arrivalDate),\r\n dateFormats.DDMMMYYYY\r\n );\r\n const formattedTime = `${Math.floor(time / 60)}h ${Helpers.roundTo5Minutes(\r\n Math.floor(time % 60)\r\n )}m`;\r\n const departureAirportCity = capitalize(departureAirport.city);\r\n const departureAirportName = capitalize(departureAirport.name);\r\n const arrivalAirportCity = capitalize(arrivalAirport.city);\r\n const arrivalAirportName = capitalize(arrivalAirport.name);\r\n return (\r\n
    \r\n
    \r\n

    Thank you

    \r\n

    {props.message}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {props.orderStatus}\r\n
    \r\n {props.orderId ? (
    \r\n Order # {props.orderId}\r\n
    ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {formattedArrivalDate}\r\n \r\n
    \r\n
    \r\n \r\n {formattedDepartDate}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {departureAirportCity}\r\n {departureAirportName}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {formattedTime}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {arrivalAirportCity}\r\n {arrivalAirportName}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {arrivalTime}
    \r\n
    {departTime}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {aircraftName ? (\r\n
    \r\n \"\"\r\n {aircraftName}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Request another flight?{\" \"}\r\n props.redirectToHome(true)}>Go to Home\r\n

    \r\n
    \r\n
    \r\n {shouldButtonAppear && (\r\n redirectToItinerary(props)}\r\n >\r\n View this Itinerary\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ThankYou;\r\n","import React, { Component } from 'react';\r\n\r\nfunction isValid(value) {\r\n return Boolean(value || value === 0);\r\n}\r\n\r\nclass TextField extends Component {\r\n\r\n static defaultProps = {\r\n className: '',\r\n fullWidth: true,\r\n underlineShow: false,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n hasValue: isValid(this.props.value) || isValid(this.props.defaultValue),\r\n isFocused: false,\r\n disabled: this.props.disabled || false,\r\n };\r\n }\r\n\r\n handleChange = (event, value) => {\r\n if (this.props.onChange) this.props.onChange(event, value);\r\n };\r\n\r\n handleFocus = (e) => {\r\n if (this.props.onFocus) this.props.onFocus(e);\r\n };\r\n\r\n handleBlur = (e) => {\r\n if (this.props.onBlur) this.props.onBlur(e);\r\n };\r\n\r\n render() {\r\n const {\r\n id,\r\n placeholder,\r\n type,\r\n className,\r\n value,\r\n disabled,\r\n } = this.props;\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default TextField;\r\n","import React from 'react';\r\n\r\nimport MaskedInput from 'react-text-mask';\r\n\r\nconst MaskedTextField = (props) => {\r\n const {\r\n mask,\r\n guide,\r\n placeholderChar,\r\n hintText,\r\n value,\r\n tabIndexing,\r\n inputClassName,\r\n onChange,\r\n onFocus,\r\n id,\r\n disabled = false,\r\n ...textField\r\n } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default MaskedTextField;\r\n","import React from 'react';\r\n\r\nconst getStyles = (props) => {\r\n const styles = {\r\n root: {\r\n width: 32,\r\n height: 21,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundSize: 'contain',\r\n backgroundImage: `url(${props.backgroundImage})`,\r\n },\r\n };\r\n return styles;\r\n};\r\n\r\nconst CreditCardFlagImage = (props) => {\r\n const {\r\n style,\r\n className,\r\n backgroundImage, // eslint-disable-line\r\n ...other\r\n } = props;\r\n\r\n const styles = getStyles(props);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nCreditCardFlagImage.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport default CreditCardFlagImage;\r\n","import React from 'react';\r\n\r\nimport visa from 'payment-icons/svg/single/visa.svg';\r\nimport american from 'payment-icons/svg/single/amex.svg';\r\nimport diners from 'payment-icons/svg/single/diners.svg';\r\nimport discover from 'payment-icons/svg/single/discover.svg';\r\nimport master from 'payment-icons/svg/single/mastercard.svg';\r\n\r\nimport CreditCardFlagImage from './CreditCardFlagImage';\r\n\r\nconst CREDIT_CARD_BRAND_IMAGE = {\r\n 1: american,\r\n 2: diners,\r\n 3: discover,\r\n 4: master,\r\n 5: visa,\r\n};\r\n\r\nconst CreditCardFlag = (props) => {\r\n const {\r\n brandId,\r\n ...other\r\n } = props;\r\n\r\n if (!brandId) {\r\n return
    \r\n );\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n

    Please select your desired items

    \r\n
    \r\n
    \r\n
      \r\n {this.renderServices()}\r\n
    \r\n
    \r\n \r\n
    \r\n //
    \r\n //
    \r\n // {this.props.selectedSupplier}\r\n //
    \r\n //
    \r\n // Please select an item\r\n //
    \r\n // {this.renderServices()}\r\n // {/*
    \r\n // Confirm Selection\r\n //
    */}\r\n //
    \r\n );\r\n }\r\n}\r\n\r\nexport default SupplierMenuList;\r\n","import React, { Component } from 'react';\r\n// import Counter from 'components/shared/Counter';\r\nimport {\r\n CATERING_SHARED_ORDER_KEY,\r\n CATERING_SHARED_ORDER_LABEL,\r\n} from '../../../constants/CateringConstants';\r\nimport { convertToTitleCase } from '../../../utils/stringUtils';\r\nimport dirtystateSingleTon from '../../../validators/validateDirty';\r\nimport SPAConstants from '../../../constants/SPAConstants';\r\n\r\nclass PassengerQuantityListItem extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showNotes: false,\r\n count: 0,\r\n value: props.customerNotes || '',\r\n isChanged: false,\r\n };\r\n }\r\n handleShowNotes = () => {\r\n const isShowingNotes = !this.state.showNotes;\r\n this.setState({ showNotes: isShowingNotes });\r\n if (isShowingNotes) this.props.onStartEditingNotes();\r\n else this.props.onStopEditingNotes();\r\n };\r\n\r\n handleCountChange = (count) => {\r\n if(count < 0) count = 0;\r\n if(count > 99) count = 99;\r\n let isChanged = false;\r\n if (count > 0) {\r\n isChanged = true;\r\n }\r\n this.setState({\r\n isChanged,\r\n count,\r\n });\r\n if (this.props.onQuantityChanged) {\r\n const passenger = { ...this.props.passenger };\r\n if (this.props.toShare) {\r\n passenger.passengerId = CATERING_SHARED_ORDER_KEY;\r\n }\r\n this.props.onQuantityChanged(passenger, count);\r\n }\r\n };\r\n\r\n handleNotesValue = (event) => {\r\n this.setState({\r\n value: event.target.value,\r\n isChanged: true,\r\n });\r\n }\r\n\r\n clearNotes = () => {\r\n if(this.state.value){\r\n this.setState({value: \"\", isChanged: true})\r\n }\r\n }\r\n\r\n handleSave = () => {\r\n dirtystateSingleTon.setDirty(SPAConstants.ItineraryCatering, true);\r\n this.setState({\r\n showNotes: false,\r\n isChanged: false,\r\n });\r\n this.props.onStopEditingNotes();\r\n const passenger = { ...this.props.passenger };\r\n if (this.props.toShare) {\r\n passenger.passengerId = CATERING_SHARED_ORDER_KEY;\r\n }\r\n this.props.onNotesSaved(passenger, this.state.value);\r\n };\r\n\r\n handelCancel = () => {\r\n this.setState({ showNotes: false, value: this.props.customerNotes, isChanged: false });\r\n this.props.onStopEditingNotes();\r\n };\r\n\r\n render() {\r\n const { passenger, toShare } = this.props;\r\n const key = toShare ? CATERING_SHARED_ORDER_LABEL : passenger.passengerId;\r\n const showNotesClass = (this.state.showNotes) ? 'open' : 'close';\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {toShare ? CATERING_SHARED_ORDER_LABEL : convertToTitleCase(passenger.formattedPaxObj.fullName)}

    \r\n \r\n
    \r\n
    \r\n \r\n {this.props.count || 0}\r\n \r\n
    \r\n
    \r\n\r\n {(this.state.showNotes) && \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n {this.state.value !== (this.props.customerNotes || '') && this.state.isChanged &&\r\n
    \r\n \r\n \r\n
    \r\n }\r\n
    }\r\n
    \r\n //
  • \r\n //
    \r\n //
    \r\n //
    {toShare ? CATERING_SHARED_ORDER_LABEL : passenger.formattedPaxObj.fullName}
    \r\n //
    \r\n // Special instructions\r\n // {this.state.showNotes ?\r\n // ' up'\r\n // : ' down'}\r\n //
    \r\n //
    \r\n //
    \r\n // \r\n //
    \r\n //
    \r\n //
    \r\n // {(this.state.showNotes) &&\r\n // (
    \r\n // \r\n // {this.state.value !== this.props.customerNotes && this.state.isChanged &&\r\n // (
    \r\n // Save\r\n // Cancel\r\n //
    )\r\n // }\r\n //
    )\r\n // }\r\n //
    \r\n //
  • \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default PassengerQuantityListItem;\r\n","import React, { Component } from 'react';\r\nimport CateringListActionItem from './CateringListActionItem';\r\nimport PassengerQuantityListItem from './PassengerQuantityListItem';\r\nimport {\r\n CATERING_SHARED_ORDER_KEY,\r\n CATERING_SHARED_ORDER_LABEL\r\n} from '../../../constants/CateringConstants';\r\nimport { isEmpty } from '../../../utils/arrayUtils';\r\nimport { convertToTitleCase } from '../../../utils/stringUtils';\r\nimport ConfirmationPopup from '../../shared/ConfirmationPopUpNew';\r\nimport CateringFooter from './CateringFooter';\r\nimport dirtystateSingleTon from '../../../validators/validateDirty';\r\nimport SPAConstants from '../../../constants/SPAConstants'\r\nimport Helpers from '../../../utils/Helpers';\r\nimport { LEFT_BUTTON_TEXT, RIGHT_BUTTON_TEXT, CONFIRMATION_TITLE } from '../../../constants/DirtyPopupConstant';\r\n\r\n\r\nclass PassengerQuantityList extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n \r\n let passengerQuantities = Helpers.copy(props.menuItem.quantities);\r\n if (!passengerQuantities) {\r\n const sharedOrderObj = {};\r\n sharedOrderObj[CATERING_SHARED_ORDER_KEY] = {};\r\n passengerQuantities = sharedOrderObj;\r\n } else if (passengerQuantities && !passengerQuantities[CATERING_SHARED_ORDER_KEY]) {\r\n passengerQuantities[CATERING_SHARED_ORDER_KEY] = {};\r\n }\r\n this.state = {\r\n passengerQuantities,\r\n showingNotesCount: 0,\r\n };\r\n }\r\n\r\n onStartEditingNotes = () => this.setState({ showingNotesCount: this.state.showingNotesCount + 1 })\r\n onStopEditingNotes = () => this.setState({ showingNotesCount: this.state.showingNotesCount - 1 })\r\n onNotesSaved = (pax, notes) => {\r\n const { passengerQuantities } = this.state;\r\n const passenger = passengerQuantities[pax.passengerId];\r\n passenger.customerNotes = notes;\r\n this.setState({\r\n passengerQuantities,\r\n });\r\n }\r\n\r\n handleAdd = () => {\r\n this.props.handleScreenChange(null);\r\n this.props.onQunatitiesAdded(this.state.passengerQuantities);\r\n }\r\n handleQuantityChanged = (passenger, count) => {\r\n dirtystateSingleTon.setDirty(SPAConstants.ItineraryCatering, true);\r\n const { passengerQuantities } = this.state;\r\n const key = passenger.passengerId || CATERING_SHARED_ORDER_KEY;\r\n const name = key !== CATERING_SHARED_ORDER_KEY ?\r\n convertToTitleCase(passenger.formattedPaxObj.fullName) : CATERING_SHARED_ORDER_LABEL;\r\n passengerQuantities[key] = {\r\n count,\r\n passengerName: name,\r\n passengerId: passenger.passengerId,\r\n };\r\n this.setState({\r\n passengerQuantities,\r\n });\r\n }\r\n shouldEnableAddButton = () => {\r\n if (this.state.showingNotesCount) return false;\r\n const { passengerQuantities } = this.state;\r\n if (passengerQuantities[CATERING_SHARED_ORDER_KEY].count >= 0) return true;\r\n const selectedPassengerCount = Object.keys(passengerQuantities).length - 1;\r\n return !!selectedPassengerCount;\r\n }\r\n\r\n renderSharedOrder = () => {\r\n const { passengerQuantities } = this.state;\r\n const sharedQuantity = passengerQuantities[CATERING_SHARED_ORDER_KEY];\r\n if (!isEmpty(sharedQuantity)) {\r\n return (\r\n );\r\n }\r\n const passenger = { passengerId: 0 };\r\n return ( this.handleQuantityChanged(passenger, 0)}\r\n />);\r\n }\r\n\r\n renderPassengers = () => {\r\n const passengersList = [];\r\n const { passengerQuantities } = this.state;\r\n this.props.passengers.forEach((passenger) => {\r\n if (passenger.isApproved) {\r\n const key = passenger.passengerId || CATERING_SHARED_ORDER_KEY;\r\n if (!passengerQuantities[key]) {\r\n passengersList.push((\r\n this.handleQuantityChanged(passenger, 0)}\r\n />)\r\n );\r\n } else {\r\n passengersList.push((\r\n )\r\n );\r\n }\r\n }\r\n });\r\n return passengersList;\r\n }\r\n handleConfirmCancel = () => {\r\n dirtystateSingleTon.setDirty(SPAConstants.ItineraryCatering, false);\r\n this.cateringItemCancel.hide();\r\n this.props.handleScreenChange(null);\r\n }\r\n\r\n onCrossClick = () => {\r\n const isCateringDirty = dirtystateSingleTon.getDirty(SPAConstants.ItineraryCatering);\r\n if(isCateringDirty) {\r\n this.cateringItemCancel.show();\r\n } else {\r\n this.props.handleScreenChange(null);\r\n }\r\n }\r\n\r\n\r\n render() {\r\n const { menuItem } = this.props;\r\n const isAddEnabled = this.shouldEnableAddButton();\r\n return (\r\n
    \r\n {this.cateringItemCancel = cateringItemCancel}}\r\n content={\"If you leave now, you will lose your current menu selection. Do you wish to leave anyway?\"}\r\n title = {CONFIRMATION_TITLE}\r\n leftButtonContent={LEFT_BUTTON_TEXT}\r\n rightButtonContent={RIGHT_BUTTON_TEXT}\r\n onLeftButtonClick={() => this.cateringItemCancel.hide()}\r\n onRightButtonClick={() => this.handleConfirmCancel()}\r\n />\r\n
    \r\n

    Choose quantity for every passenger

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

    {menuItem.title}

    \r\n

    {menuItem.title}

    \r\n
    \r\n \r\n
    \r\n {this.renderPassengers()}\r\n {this.renderSharedOrder()}\r\n
    \r\n \r\n
    \r\n //
    \r\n //
    \r\n //
    \r\n // {this.props.selectedSupplier}\r\n //
    \r\n //
    Choose quantity for every passenger
    \r\n //
    \r\n // {menuItem.title}\r\n // \r\n // this.refs.cateringItemCancel.show()}>Cross\r\n // \r\n //
    \r\n //
    \r\n // {menuItem.description}\r\n //
    \r\n //
      \r\n // {this.renderPassengers()}\r\n // {this.renderSharedOrder()}\r\n //
    \r\n //
    \r\n // Add \r\n //
    \r\n //
    \r\n // \r\n //
    \r\n );\r\n }\r\n}\r\n\r\nexport default PassengerQuantityList;\r\n","import React from 'react';\r\n\r\n\r\nimport {\r\n CATERING_SHARED_ORDER_KEY,\r\n CATERING_STATUS_CODE_2,\r\n CATERING_SCREENS\r\n} from '../../../constants/CateringConstants';\r\nimport {\r\n selectionCountdownString,\r\n shouldShowCountdownString, zeroFill,\r\n isSelectionMade\r\n} from '../../../utils/cateringUtils';\r\nimport { isEmpty } from '../../../utils/arrayUtils';\r\nimport { convertToTitleCase } from '../../../utils/stringUtils';\r\nimport CateringFooter from './CateringFooter';\r\nimport SpinnerLoader from '../../shared/spinnerLoader';\r\n\r\nconst FALLBACK_MSG = 'Menu will be available shortly';\r\n\r\nfunction getStyles() {\r\n const styles = {\r\n fallbackMsg: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '100%',\r\n },\r\n };\r\n\r\n return styles;\r\n}\r\nexport default class CateringSuppliers extends React.Component {\r\n\r\n getSupplierWiseCounts = (supplier) => {\r\n const passengerCounts = {};\r\n let totalCount = 0;\r\n Object.keys(supplier.services).forEach((serviceName) => {\r\n Object.keys(supplier.services[serviceName]).forEach((category) => {\r\n supplier.services[serviceName][category].forEach((item) => {\r\n if (item.quantities) {\r\n Object.keys(item.quantities).forEach((passengerId) => {\r\n const quantity = item.quantities[passengerId];\r\n if (passengerCounts[passengerId]) {\r\n passengerCounts[passengerId].push({ ...quantity, ...item });\r\n } else {\r\n passengerCounts[passengerId] = [{ ...quantity, ...item }];\r\n }\r\n totalCount += quantity.count || 0;\r\n });\r\n }\r\n });\r\n });\r\n });\r\n return { passengerCounts, totalCount };\r\n }\r\n handleConfirm = () => {\r\n const customerSelection = [];\r\n const { cateringProposal } = this.props;\r\n cateringProposal.forEach((proposal) => {\r\n Object.keys(proposal.services).forEach((service) => {\r\n const categories = proposal.services[service];\r\n Object.keys(categories).forEach((category) => {\r\n const items = categories[category];\r\n items.forEach(item => {\r\n if (item.quantities) {\r\n Object.keys(item.quantities).forEach((passengerId) => {\r\n const passengerSelection = item.quantities[passengerId];\r\n if (!isEmpty(passengerSelection)) {\r\n customerSelection.push({\r\n flightMenuPriceId: item.id,\r\n personId: passengerSelection.passengerId,\r\n quantity: passengerSelection.count,\r\n customerNotes: passengerSelection.customerNotes,\r\n });\r\n }\r\n });\r\n }\r\n });\r\n });\r\n });\r\n });\r\n // return customerSelection;\r\n this.props.onSelectionConfirmed(customerSelection);\r\n }\r\n\r\n handleClick = (supplier) => {\r\n const { catering, withIn24Hours, isPast, isFlightEditable, activeLeg } = this.props;\r\n const isEditable = activeLeg && activeLeg.legStatus !== \"Cancellation Pending\" &&\r\n (activeLeg && activeLeg.legStatus !== \"Cancelled\");\r\n if (!isEditable) return;\r\n if (catering && !withIn24Hours && !isPast) {\r\n this.props.handleScreenChange(CATERING_SCREENS.SUPPLIER_LIST_MENU);\r\n }\r\n if (this.props.onSupplierSelected) this.props.onSupplierSelected(supplier);\r\n }\r\n\r\n renderPassengerDetailItem(passengerCounts, passengerId) {\r\n const passengerDetails = passengerCounts[passengerId];\r\n const listOfCounts = [];\r\n passengerDetails.forEach((item) => {\r\n if (item.count) {\r\n listOfCounts.push(\r\n
    \r\n {item.title} x{item.count}\r\n
    \r\n );\r\n }\r\n });\r\n if (listOfCounts.length > 0) {\r\n return (\r\n
    \r\n
    \r\n {convertToTitleCase(passengerDetails[0].passengerName || \"\")}\r\n
    \r\n {listOfCounts}\r\n
    \r\n );\r\n }\r\n return false;\r\n }\r\n\r\n renderPassengerCounts = (passengerCounts) => {\r\n const list = [];\r\n Object.keys(passengerCounts).forEach((passengerId) => {\r\n if (passengerId !== CATERING_SHARED_ORDER_KEY) {\r\n list.push(this.renderPassengerDetailItem(passengerCounts, passengerId));\r\n }\r\n });\r\n if (passengerCounts[CATERING_SHARED_ORDER_KEY]) {\r\n list.push(\r\n this.renderPassengerDetailItem(\r\n passengerCounts,\r\n CATERING_SHARED_ORDER_KEY\r\n )\r\n );\r\n }\r\n return list;\r\n }\r\n\r\n renderCatering(catering) {\r\n const list = [];\r\n const { isPast, isEditable } = this.props;\r\n const removeCaret = (!isPast && isEditable) ? \"\" : \"vistajet_catering_menu_caret_remove\";\r\n let totalItemCount = 0;\r\n if (catering) {\r\n catering.forEach((supplier) => {\r\n const { totalCount, passengerCounts } = this.getSupplierWiseCounts(supplier);\r\n totalItemCount += totalCount;\r\n list.push(\r\n
    \r\n { this.handleClick(supplier); }}>\r\n {supplier.supplierDisplayName}\r\n \r\n {(totalCount > 0) && this.renderPassengerCounts(passengerCounts)}\r\n
    \r\n );\r\n });\r\n // if (isSelectionMade(this.props.catering) && totalItemCount > 0) {\r\n // list.push(\r\n //
    \r\n // \r\n //
    \r\n // Total Items: {zeroFill(totalItemCount)}\r\n //
    \r\n //
    \r\n //
    \r\n // );\r\n // }\r\n }\r\n return list;\r\n }\r\n\r\n renderHeading() {\r\n const { catering, withIn24Hours, legCountDown } = this.props;\r\n if (withIn24Hours) {\r\n return

    Menu

    ;\r\n }\r\n\r\n if (!shouldShowCountdownString(catering)) {\r\n return

    Please select a menu

    \r\n }\r\n\r\n return (
    \r\n

    Please select a menu

    \r\n

    Selection Countdown: {legCountDown}

    \r\n
    );\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n cateringProposal,\r\n catering,\r\n } = this.props;\r\n const styles = getStyles();\r\n if (loading) {\r\n return (\r\n < div className=\"vistajet_spinner\">\r\n \r\n \r\n );\r\n }\r\n\r\n if (catering && catering.stateId !== CATERING_STATUS_CODE_2 &&\r\n cateringProposal && cateringProposal.length) {\r\n return (\r\n
    \r\n
    \r\n {this.renderHeading()}\r\n
    \r\n
    \r\n {this.renderCatering(cateringProposal)}\r\n
    \r\n \r\n
    \r\n )\r\n } else {\r\n return (
    \r\n {FALLBACK_MSG}\r\n
    )\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport SpinnerLoader from '../../shared/spinnerLoader';\r\nimport {\r\n\tgetCateringStatus,\r\n\tshouldShowCountdownString,\r\n\tselectionCountdownString,\r\n\tisSelectionMade,\r\n\tisCateringEditable\r\n} from '../../../utils/cateringUtils';\r\nimport { isPastLeg } from '../../../utils/itinerariesUtils';\r\nimport CateringPopup from './CateringPopup';\r\n// import CateringDetail from '../CateringDetail';\r\nimport SupplierMenuList from './SupplierMenuList';\r\nimport PassengerQuantityList from './PassengerQuantityList';\r\nimport CateringSuppliers from './CateringSuppliers';\r\nimport {\r\n\tCATERING_SCREENS,\r\n\tCATERING_SHARED_ORDER_KEY,\r\n\tCATERING_SHARED_ORDER_LABEL,\r\n\tcateringStates,\r\n} from '../../../constants/CateringConstants';\r\nimport { convertToTitleCase } from '../../../utils/stringUtils';\r\nimport ConfirmationPopup from '../../shared/ConfirmationPopUpNew';\r\nimport dirtystateSingleTon from \"../../../validators/validateDirty\";\r\nimport { CONFIRMATION_TITLE, LEFT_BUTTON_TEXT, RIGHT_BUTTON_TEXT, CONFIRMATION_MESSAGE } from '../../../constants/DirtyPopupConstant';\r\nimport SPAConstants from '../../../constants/SPAConstants';\r\nconst FALLBACK_MSG = 'Menu will be available shortly';\r\n\r\n\r\nclass Catering extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tscreenHistory: [CATERING_SCREENS.SUPPLIERS_LIST],\r\n\t\t\tselectedSupplier: null,\r\n\t\t\tselectedMenuItem: null,\r\n\t\t\tselectedService: null,\r\n\t\t\tcateringProposal: [],\r\n\t\t\tisDirtyState: false,\r\n\t\t\tsupplierQuantities: [],\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentWillReceiveProps(nextProps) {\r\n\t\tif (nextProps.cateringDetails && (nextProps.cateringDetails !== this.props.cateringDetails)) {\r\n\t\t\tthis.setProposalQuantities(nextProps.cateringDetails.cateringProposal);\r\n\t\t}\r\n\t\t// if (nextProps.activeLegId !== this.props.activeLegId) {\r\n\t\t// CateringActions.fetchCateringSelectionPDF.defer(nextProps.activeLegId);\r\n\t\t// }\r\n\t\t// const { activeLeg } = LegCardStore.getState();\r\n\t\t// if (activeLeg) this.setState({ isEditable: !isLegCancelled(activeLeg.legStatus) });\r\n\t}\r\n\r\n\tgetTotalItemsCount = (catering) => {\r\n\t\tlet totalItemCount = 0;\r\n\t\tcatering.forEach((supplier) => {\r\n\t\t\tconst { totalCount } = this.getSupplierWiseCounts(supplier);\r\n\t\t\ttotalItemCount += totalCount;\r\n\t\t});\r\n\t\treturn totalItemCount;\r\n\t}\r\n\tgetSupplierWiseCounts = (supplier) => {\r\n\t\tconst passengerCounts = {};\r\n\t\tlet totalCount = 0;\r\n\t\tObject.keys(supplier.services).forEach((serviceName) => {\r\n\t\t\tObject.keys(supplier.services[serviceName]).forEach((category) => {\r\n\t\t\t\tsupplier.services[serviceName][category].forEach((item) => {\r\n\t\t\t\t\tif (item.quantities) {\r\n\t\t\t\t\t\tObject.keys(item.quantities).forEach((passengerId) => {\r\n\t\t\t\t\t\t\tconst quantity = item.quantities[passengerId];\r\n\t\t\t\t\t\t\tif (passengerCounts[passengerId]) {\r\n\t\t\t\t\t\t\t\tpassengerCounts[passengerId].push({ ...quantity, ...item });\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tpassengerCounts[passengerId] = [{ ...quantity, ...item }];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ttotalCount += quantity.count || 0;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn { passengerCounts, totalCount };\r\n\t}\r\n\r\n\tonSupplierSelected = (supplier) => {\r\n\t\tconst { withIn24Hours, isPast } = this.props;\r\n\t\tif (withIn24Hours && !isPast) {\r\n\t\t\tthis.setState({\r\n\t\t\t\terrorMessage: 'Menu selection cannot be modified within 24 hours.'\r\n\t\t\t}, () => {\r\n\t\t\t\tthis.errorPopup.show();\r\n\t\t\t})\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.setState({\r\n\t\t\tselectedSupplier: supplier,\r\n\t\t});\r\n\t}\r\n\r\n\tonServiceSelected = (service) => {\r\n\t\tthis.setState({\r\n\t\t\tselectedService: service,\r\n\t\t});\r\n\t}\r\n\r\n\tonServiceConfrimed = () => {\r\n\t\tthis.setState({\r\n\t\t\tshowTotalItems: true\r\n\t\t})\r\n\t}\r\n\r\n\tonMenuItemSelected = (item) => {\r\n\t\tthis.setState({\r\n\t\t\tselectedMenuItem: item,\r\n\t\t});\r\n\t}\r\n\r\n\tonQunatitiesAdded = (passengerQuantities) => {\r\n\t\tconst { selectedSupplier, selectedMenuItem } = this.state;\r\n\t\tlet item = selectedSupplier.services[selectedMenuItem.service][selectedMenuItem.cateringType];\r\n\t\titem = item.filter(i => i.title === selectedMenuItem.title)[0];\r\n\t\titem.quantities = { ...item.quantities, ...passengerQuantities };\r\n\t\tthis.setState({\r\n\t\t\tcateringProposal: this.state.cateringProposal, //sahi kar\r\n\t\t\tisDirtyState: true,\r\n\t\t});\r\n\t}\r\n\r\n\tonSelectionConfirmed = (confirmedSelection) => {\r\n\t\tthis.props.changeCateringProposal(this.props.token, this.props.currentLeg.legId, confirmedSelection, this.props.currentLeg);\r\n\t\tthis.handleExitPopUp();\r\n\t}\r\n\r\n\tsetProposalQuantities = (cateringProposal) => {\r\n\t\tlet passengers = [];\r\n\t\tpassengers = ((this.props.passengers || []).passengers) || [];\r\n\r\n\t\tif (cateringProposal && cateringProposal.length) {\r\n\t\t\tconst newProposal = [...cateringProposal];\r\n\t\t\tconst supplierQuantities = [];\r\n\t\t\tnewProposal.forEach((proposal) => {\r\n\t\t\t\tlet totalSupplierCount = 0;\r\n\t\t\t\tObject.keys(proposal.services).forEach((service) => {\r\n\t\t\t\t\tconst categories = proposal.services[service];\r\n\t\t\t\t\tObject.keys(categories).forEach((category) => {\r\n\t\t\t\t\t\tconst items = categories[category];\r\n\t\t\t\t\t\titems.forEach((item) => {\r\n\t\t\t\t\t\t\tconst newItem = item;\r\n\t\t\t\t\t\t\tnewItem.selectionList.forEach((person) => {\r\n\t\t\t\t\t\t\t\tif (!newItem.quantities) newItem.quantities = {};\r\n\t\t\t\t\t\t\t\tconst key = person.personId ? person.personId : CATERING_SHARED_ORDER_KEY;\r\n\t\t\t\t\t\t\t\tconst name = person.personId !== CATERING_SHARED_ORDER_KEY ? convertToTitleCase(person.paxName) :\r\n\t\t\t\t\t\t\t\t\tCATERING_SHARED_ORDER_LABEL;\r\n\t\t\t\t\t\t\t\tnewItem.quantities[key] = {\r\n\t\t\t\t\t\t\t\t\tcount: person.quantity,\r\n\t\t\t\t\t\t\t\t\tpassengerId: person.personId,\r\n\t\t\t\t\t\t\t\t\tpassengerName: name,\r\n\t\t\t\t\t\t\t\t\tcustomerNotes: person.customerNotes,\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\ttotalSupplierCount += person.quantity;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\tsupplierQuantities.push({\r\n\t\t\t\t\tname: proposal.supplierDisplayName,\r\n\t\t\t\t\tcount: totalSupplierCount,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tthis.setState({\r\n\t\t\t\tcateringProposal: newProposal,\r\n\t\t\t\tsupplierQuantities,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelectedSupplierProposal = (supplierId) => (\r\n\t\tthis.state.cateringProposal.filter((proposal) => supplierId === proposal.serviceProviderId)[0]\r\n\t);\r\n\r\n\tgetCurrentScreen = () => this.state.screenHistory[this.state.screenHistory.length - 1];\r\n\r\n\thandleConfirmCancel = () => {\r\n\r\n\t}\r\n\thandleClose = () => {\r\n\t\tif (this.state.isDirtyState) {\r\n\t\t\tthis.setState({\r\n\t\t\t\terrorMessage: \"If you leave now, you will lose your current menu selection. Do you wish to leave anyway?\"\r\n\t\t\t}, () => {\r\n\t\t\t\tthis.errorPopup.show();\r\n\t\t\t})\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tthis.handleExitPopUp();\r\n\t\t}\r\n\t}\r\n\r\n\thandleScreenChange = (screen, shouldClearAll) => {\r\n\t\tconst { screenHistory } = this.state;\r\n\t\tif (shouldClearAll && screen) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tscreenHistory: [screen],\r\n\t\t\t});\r\n\t\t} else if (screen == null) {\r\n\t\t\t// If no screen is given it pops up the current screen\r\n\t\t\tscreenHistory.pop();\r\n\t\t\tthis.setState({\r\n\t\t\t\tscreenHistory: [...screenHistory],\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.setState({\r\n\t\t\t\tscreenHistory: [...screenHistory, screen],\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\thandleExitPopUp = () => {\r\n\t\tthis.cateringModal.hide();\r\n\t\tthis.setState({\r\n\t\t\tselectedSupplier: null,\r\n\t\t\tselectedMenuItem: null,\r\n\t\t\tselectedService: null,\r\n\t\t\tscreenHistory: [CATERING_SCREENS.SUPPLIERS_LIST],\r\n\t\t\tisDirtyState: false,\r\n\t\t});\r\n\t\t// this.errorPopup.show();\r\n\t\tthis.handleConfirmCancel();\r\n\t}\r\n\r\n\thandleBackButton = () => {\r\n\t\tconst isCateringDirty = dirtystateSingleTon.getDirty(SPAConstants.ItineraryCatering);\r\n\t\tif (this.state.screenHistory.length === 1) {\r\n\t\t\tif (isCateringDirty) {\r\n\t\t\t\tthis.cateringConfirmPopup.show();\r\n\t\t\t} else {\r\n\t\t\t\tthis.handleExitPopUp();\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (this.getCurrentScreen() === CATERING_SCREENS.PASSENGER_QUANTITY_LIST) {\r\n\t\t\tif (isCateringDirty) {\r\n\t\t\t\tthis.cateringConfirmPopup.show();\r\n\t\t\t} else {\r\n\t\t\t\tthis.handleScreenChange(null);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (this.getCurrentScreen() === CATERING_SCREENS.SUPPLIER_LIST_MENU) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tselectedService: null,\r\n\t\t\t});\r\n\t\t\tthis.handleScreenChange(null);\r\n\t\t}\r\n\t}\r\n\r\n\tonMoveAway = () => {\r\n\t\tdirtystateSingleTon.setDirty(SPAConstants.ItineraryCatering, false);\r\n\t\tthis.cateringConfirmPopup.hide();\r\n\t\tif (this.state.screenHistory.length === 1) { this.handleExitPopUp() }\r\n\t\telse if (this.getCurrentScreen() === CATERING_SCREENS.PASSENGER_QUANTITY_LIST) {\r\n\t\t\tthis.handleScreenChange(null)\r\n\t\t}\r\n\t}\r\n\r\n\trenderCurrentScreen = () => {\r\n\t\tconst { isLoading, cateringDetails = {}, currentLeg, isPast, withIn24Hours } = this.props;\r\n\t\tconst { cateringProposal } = cateringDetails;\r\n\t\tconst departureTime = cateringDetails.departureAirportTimeUTC;\r\n\t\tconst cateringDuration = selectionCountdownString(departureTime);\r\n\t\tconst isCateringLoading = cateringDetails.isCateringLoading || isLoading;\r\n\t\tconst { selectedSupplier } = this.state;\r\n\t\tlet supplierProposal = {};\r\n\t\tif (selectedSupplier) {\r\n\t\t\tsupplierProposal = this.getSelectedSupplierProposal(selectedSupplier.serviceProviderId);\r\n\t\t}\r\n\t\tlet passengers = [];\r\n\t\tpassengers = ((this.props.passengers || []).passengers) || [];\r\n\t\tconst isEditable = isCateringEditable(currentLeg, withIn24Hours) &&\r\n\t\t\t(currentLeg && currentLeg.legStatus !== \"Cancellation Pending\") &&\r\n\t\t\t(currentLeg && currentLeg.legStatus !== \"Cancelled\");\r\n\t\tconst currentScreen = this.getCurrentScreen();\r\n\t\tswitch (currentScreen) {\r\n\t\t\tcase CATERING_SCREENS.PASSENGER_QUANTITY_LIST:\r\n\t\t\t\treturn (\r\n\t\t\t\t\t);\r\n\t\t\tcase CATERING_SCREENS.SUPPLIER_LIST_MENU:\r\n\t\t\t\treturn ();\r\n\t\t\tcase CATERING_SCREENS.SUPPLIERS_LIST:\r\n\t\t\t\treturn ( { this.supplierScreen = supplierScreen; }}\r\n\t\t\t\t\tisSummary={false}\r\n\t\t\t\t\tlegCountDown={cateringDuration}\r\n\t\t\t\t\thandleScreenChange={this.handleScreenChange}\r\n\t\t\t\t\tactiveLeg={currentLeg}\r\n\t\t\t\t\tonSupplierSelected={this.onSupplierSelected}\r\n\t\t\t\t\tloading={isCateringLoading}\r\n\t\t\t\t\tcateringProposal={cateringProposal}\r\n\t\t\t\t\tonSelectionConfirmed={this.onSelectionConfirmed}\r\n\t\t\t\t\tisDirtyState={this.state.isDirtyState}\r\n\t\t\t\t\tcatering={cateringDetails}\r\n\t\t\t\t\tisPast={isPast}\r\n\t\t\t\t\twithIn24Hours={this.props.withIn24Hours}\r\n\t\t\t\t\tisEditable={isEditable}\r\n\t\t\t\t\tisFlightEditable={this.props.isEditable}\r\n\t\t\t\t/>);\r\n\t\t\tdefault:\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tshowCateringModal = () => {\r\n\t\tconst { cateringDetails } = this.props;\r\n\r\n\t\tif (!cateringDetails) {\r\n\t\t\tthis.setState({\r\n\t\t\t\terrorMessage: FALLBACK_MSG\r\n\t\t\t}, () => {\r\n\t\t\t\tthis.errorPopup.show();\r\n\t\t\t})\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (cateringDetails && cateringDetails.cateringProposal) {\r\n\t\t\tif ((cateringDetails.cateringProposal && cateringStates.NOT_STARTED.includes(cateringDetails.stateId)) ||\r\n\t\t\t\tcateringDetails.cateringProposal.length === 0\r\n\t\t\t) {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\terrorMessage: FALLBACK_MSG\r\n\t\t\t\t}, () => {\r\n\t\t\t\t\tthis.errorPopup.show();\r\n\t\t\t\t})\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.cateringModal.show()\r\n\t}\r\n\r\n\trenderSelectionCountdown = () => {\r\n\t\tconst { cateringDetails = {}, isLoading } = this.props;\r\n\t\tif (!cateringDetails.isCateringLoading && !isLoading &&\r\n\t\t\t!shouldShowCountdownString(cateringDetails, this.props.withIn24Hours)) return null;\r\n\t\tconst departureTime = cateringDetails.departureAirportTimeUTC;\r\n\t\tconst cateringDuration = selectionCountdownString(departureTime);\r\n\t\treturn Selection Countdown: {cateringDuration};\r\n\t}\r\n\r\n\trenderSupplierQuantities = () => {\r\n\t\tconst quantities = [];\r\n\t\tthis.state.supplierQuantities.forEach((supplier) => {\r\n\t\t\tif (supplier.count > 0) {\r\n\t\t\t\tquantities.push((\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    {supplier.name}
    \r\n\t\t\t\t\t\t

    x{supplier.count}

    \r\n\t\t\t\t\t
    \r\n\t\t\t\t));\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn [quantities];\r\n\t}\r\n\r\n\tdisableCatering = () => {\r\n\t\tconst dontDisplayCateringStatus = [\r\n\t\t\t...cateringStates.NOT_REQUIRED,\r\n\t\t];\r\n\r\n\t\tconst { currentLeg, cateringDetails, withIn24Hours } = this.props;\r\n\t\tif (cateringDetails && cateringDetails.stateId &&\r\n\t\t\tdontDisplayCateringStatus.includes(cateringDetails.stateId)) {\r\n\t\t\treturn true\r\n\t\t};\r\n\t\tif (isCateringEditable(currentLeg, withIn24Hours)) return false;\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { isLoading, cateringDetails = {}, currentLeg, isPast, passengers, withIn24Hours } = this.props;\r\n\t\tconst isPassengerLoading = passengers && passengers.isLoadingPassenger\r\n\t\tconst isCateringLoading = (cateringDetails.isCateringLoading || isLoading ||\r\n\t\t\tcateringDetails.isCateringProposalLoading || isPassengerLoading\r\n\t\t);\r\n\r\n\t\tlet disableCateringDialog = this.disableCatering();\r\n\t\tlet popupHeading = (this.state.screenHistory.length > 1) ? this.state.selectedSupplier.supplierDisplayName : 'Private Dining'\r\n\t\tlet totalItems = 0;\r\n\t\tif (cateringDetails && cateringDetails.cateringProposal) {\r\n\t\t\ttotalItems = this.getTotalItemsCount(cateringDetails.cateringProposal)\r\n\t\t}\r\n\t\tlet countDownMargin = \"\"\r\n\t\tif (!isSelectionMade(cateringDetails, isPast) && !isCateringLoading && currentLeg && this.renderSelectionCountdown()) {\r\n\t\t\tcountDownMargin = \"uk-margin-small-top\";\r\n\t\t}\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t { this.cateringModal = cateringModal; }}\r\n\t\t\t\t\tcontent={this.renderCurrentScreen()}\r\n\t\t\t\t\tonExited={this.handleExitPopUp}\r\n\t\t\t\t\thandleBackButton={this.handleBackButton}\r\n\t\t\t\t\tshowBackButton={true}\r\n\t\t\t\t\tdisableConfirmButton={!this.props.isDirtyState}\r\n\t\t\t\t\tonConfirmClicked={this.onSelectionConfirmed}\r\n\t\t\t\t\tshowCloseIcon={false}\r\n\t\t\t\t\theading={popupHeading}\r\n\t\t\t\t\ttotalItems={totalItems}\r\n\t\t\t\t\tisSelectionMade={this.state.showTotalItems}\r\n\t\t\t\t\tcloseOnOverlayClick={false}\r\n\t\t\t\t/>\r\n\t\t\t\t { this.errorPopup = errorPopup; }}\r\n\t\t\t\t\tcontent={this.state.errorMessage}\r\n\t\t\t\t\tonClose={() => { }}\r\n\t\t\t\t\trightButtonContent=\"OK\"\r\n\t\t\t\t\tonRightButtonClick={() => this.errorPopup.hide()}\r\n\t\t\t\t/>\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    Private Dining
    \r\n\t\t\t\t\t\t{(!disableCateringDialog && !isCateringLoading) &&\r\n\t\t\t\t\t\t\tView\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{(!isSelectionMade(cateringDetails, isPast) && !isCateringLoading && currentLeg) &&\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t

    {getCateringStatus(cateringDetails, isPastLeg(currentLeg))}

    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t{this.renderSelectionCountdown()}\r\n\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{(isSelectionMade(cateringDetails, isPast) && !isCateringLoading && currentLeg) &&\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t{this.renderSelectionCountdown()}\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{(isSelectionMade(cateringDetails, isPast) && !isCateringLoading && currentLeg) &&\r\n\t\t\t\t\t\t\tthis.renderSupplierQuantities()\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{(isSelectionMade(cateringDetails, isPast) && cateringDetails.fileUrl && !isCateringLoading && currentLeg) &&\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tDownload Selection\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t

    {getCateringStatus(cateringDetails, isPastLeg(currentLeg))}

    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{(isCateringLoading) &&\r\n\t\t\t\t\t\t\t< div className=\"vistajet_spinner\">\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t { this.cateringConfirmPopup = cateringConfirmPopup }}\r\n\t\t\t\t\ttitle={CONFIRMATION_TITLE}\r\n\t\t\t\t\tcontent={CONFIRMATION_MESSAGE}\r\n\t\t\t\t\tleftButtonContent={LEFT_BUTTON_TEXT}\r\n\t\t\t\t\trightButtonContent={RIGHT_BUTTON_TEXT}\r\n\t\t\t\t\tonRightButtonClick={() => this.onMoveAway()}\r\n\t\t\t\t\tonLeftButtonClick={() => this.cateringConfirmPopup.hide()}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default Catering;\r\n","import moment from \"moment\";\r\nimport React, { Component } from \"react\";\r\n\r\nimport Crew from \"./Crew\";\r\nimport Helpers from \"../../utils/Helpers\";\r\nimport FlightCancel from \"./FlightCancel\";\r\nimport ItineraryCard from \"./ItineraryCard\";\r\nimport MessagePopUp from \"../shared/MessagePopUp\";\r\nimport SpinnerLoader from \"../shared/spinnerLoader\";\r\nimport PassengerCardContainer from \"../../containers/passengers/passengerCardContainer\";\r\nimport GroundServicesCard from \"./GroundServicesCard\";\r\nimport Fbo from \"./Fbo\";\r\nimport Weather from \"./Weather\";\r\nimport PassengerCard from \"./PassengerCard\";\r\nimport OperationalNotes from \"./OperationalNotes\";\r\nimport MovementMessages from \"./MovementMessages\";\r\nimport EntertainmentCard from \"./EntertainmentCard\";\r\nimport { isFSP, isFspDirect, isAdhoc, isVJ2 } from \"../../utils/userUtils\";\r\nimport { isPastLeg } from \"../../utils/itinerariesUtils\";\r\nimport { guaranteeArray } from \"../../utils/arrayUtils\";\r\nimport {\r\n PAF_PAGE_URL,\r\n RAF_PAGE_URL,\r\n MODIFY_ORDER_PAGE_URL\r\n} from \"../../configs/constants\";\r\nimport MessagePopUpNew from \"../../../src/components/shared/MessagePopUpNew\";\r\nimport CustomerFeedbackContainer from \"../../containers/Itinerary/CustomerFeedbackContainer\";\r\nimport {\r\n GT_EMPTY_MESSAGE,\r\n AS_EMPTY_MESSAGE,\r\n GROUND_TRANSPORT_SERVICE,\r\n ADDITIONAL_SERVICE\r\n} from \"../../constants/ItineraryConstants\";\r\nimport Catering from \"./Catering/Catering\";\r\n\r\nimport { NO_FLIGHT_LEG_ORDER_FOUND } from \"../../constants/MessageConstants\";\r\n\r\nclass ItineraryDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n index: 0,\r\n currentLegId: \"\",\r\n airportIds: \"\",\r\n orderkey: \"\",\r\n uniqueIdentifier: \"\",\r\n errorArray: [],\r\n removeCard: false\r\n };\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n token,\r\n legs = {},\r\n fetchGroundServices,\r\n isErrorCrew,\r\n isErrorGroundTransport,\r\n isErrorAvailedServices,\r\n isLoadingAvailedServices,\r\n isLoadingGroundServices,\r\n isLoadingCrew,\r\n isLoading,\r\n itineraryDetailsError\r\n } = nextProps;\r\n const { index, currentLegId, errorArray } = this.state;\r\n if (this.props.availedService !== nextProps.availedService) {\r\n this.setState({});\r\n }\r\n const legsArray = Object.keys(legs || {}).map(key => legs[key]);\r\n const legsSelected = legsArray[index] || {};\r\n const currentLegIdSelected =\r\n currentLegId || legsSelected.legId || legsSelected.flightLegExtIdentifier;\r\n this.setState({\r\n legsArray,\r\n currentLegId: currentLegIdSelected\r\n });\r\n let allAirports = [];\r\n const a = legsArray.map(e => e.arrivalAirportId);\r\n const b = legsArray.map(e => e.departureAirportId);\r\n allAirports = a.concat(b);\r\n let airports = [...new Set(allAirports)];\r\n this.setState({ airportIds: airports });\r\n if (isErrorCrew) {\r\n this.addNewError(isErrorCrew);\r\n }\r\n if (isErrorGroundTransport) {\r\n this.addNewError(isErrorGroundTransport);\r\n }\r\n if (isErrorAvailedServices) {\r\n this.addNewError(isErrorAvailedServices);\r\n }\r\n if (itineraryDetailsError) {\r\n this.addNewError(itineraryDetailsError);\r\n }\r\n if (\r\n errorArray.length > 0 &&\r\n !isLoadingAvailedServices &&\r\n !isLoadingGroundServices &&\r\n !isLoadingCrew &&\r\n !isLoading\r\n ) {\r\n this.showError();\r\n }\r\n if (currentLegIdSelected && legsSelected && legsSelected.arrivalAirportId) {\r\n if (this.props.legs !== nextProps.legs) {\r\n fetchGroundServices(token, airports);\r\n }\r\n }\r\n this.fetchDataOnChange(nextProps, this.state);\r\n }\r\n\r\n componentDidMount() {\r\n const { fetchItineraryDetails, fetchVisitedAirports, token } = this.props;\r\n\r\n fetchVisitedAirports();\r\n this.onFetchItineraryDetails();\r\n }\r\n\r\n onFetchItineraryDetails = () => {\r\n const { fetchItineraryDetails, token, fetchVisitedAirports } = this.props;\r\n const params = window.location.search;\r\n const itineraryDetailsParam = params.split(\"/\");\r\n const key = itineraryDetailsParam[itineraryDetailsParam.length - 4];\r\n const itineraryType =\r\n itineraryDetailsParam[itineraryDetailsParam.length - 1];\r\n const uniqueIdentifier =\r\n itineraryDetailsParam[itineraryDetailsParam.length - 3];\r\n\r\n // const key = 'orderId';\r\n // const uniqueIdentifier = '473911';\r\n // const itineraryType = 'upcomingItineraries';\r\n fetchItineraryDetails(token, key, uniqueIdentifier, itineraryType);\r\n this.setState({\r\n orderkey: key,\r\n uniqueIdentifier\r\n });\r\n };\r\n addNewError = error => {\r\n const { errorArray } = this.state;\r\n if (!errorArray.includes(error)) {\r\n this.setErrorArrayState(error);\r\n }\r\n };\r\n setErrorArrayState = error => {\r\n const { errorArray } = this.state;\r\n errorArray.push(error);\r\n this.setState({\r\n errorArray\r\n });\r\n };\r\n showError = () => {\r\n const { errorArray } = this.state;\r\n const errorMessage = errorArray.length && errorArray[errorArray.length - 1];\r\n if (NO_FLIGHT_LEG_ORDER_FOUND === errorMessage) {\r\n this.setState({\r\n removeCard: true\r\n });\r\n }\r\n this.errorValidationPopUp.show();\r\n };\r\n fetchDataOnChange = (props, state) => {\r\n const {\r\n legs,\r\n crew,\r\n token,\r\n fbo,\r\n fetchFbo,\r\n fetchCrew,\r\n weather,\r\n fetchWeather,\r\n itineraryPdf,\r\n availedService,\r\n getCateringState,\r\n getCateringProposal,\r\n fetchCateringPdf,\r\n fetchitineraryPdf,\r\n fetchAvailedServices,\r\n movementMessages,\r\n fetchMovementMessages,\r\n visitedAirportsFinder,\r\n fetchLegFeedback,\r\n feedback,\r\n isFeedbackLoading,\r\n cateringDetails,\r\n fetchPassengers,\r\n orderStatus,\r\n orderId,\r\n orderExtIdentifier,\r\n passengers\r\n } = props;\r\n const { currentLegId, orderkey } = state;\r\n const currentLeg = currentLegId && legs[currentLegId];\r\n const arrivalAirportTime = currentLeg && currentLeg.arrivalAirportTimeLocal;\r\n const departureAirportTime =\r\n currentLeg && currentLeg.departureAirportTimeLocal;\r\n const arrivalAirportDetail =\r\n visitedAirportsFinder[currentLeg && currentLeg.arrivalAirportId];\r\n const departureAirportDetail =\r\n visitedAirportsFinder[currentLeg && currentLeg.departureAirportId];\r\n const params = window.location.search;\r\n const itineraryDetailsParam = params.split(\"/\");\r\n const key =\r\n currentLeg && (currentLeg.legId || '') !== \"\" ? \"orderId\" : \"orderExtIdentifier\";\r\n const availedServicesKey =\r\n currentLeg && (currentLeg.legId || '') !== \"\"\r\n ? \"flightLegId\"\r\n : \"flightLegExtIdentifier\";\r\n const isLegId = !isNaN(currentLegId);\r\n const hasLegId = currentLeg && (currentLeg || {}).legId ? true : false;\r\n\r\n if (\r\n currentLegId &&\r\n !(itineraryPdf[currentLegId] || {}).itineraryPdf &&\r\n !(itineraryPdf[currentLegId] || {}).itineraryPdfLoading &&\r\n isLegId\r\n ) {\r\n fetchitineraryPdf(token, currentLegId);\r\n }\r\n if (\r\n currentLegId &&\r\n !(crew[currentLegId] || {}).crew &&\r\n !(crew[currentLegId] || {}).crewSuccess &&\r\n !(crew[currentLegId] || {}).isLoadingCrew &&\r\n isLegId\r\n ) {\r\n fetchCrew(token, currentLegId);\r\n }\r\n if (\r\n currentLegId &&\r\n !(availedService[currentLegId] || {}).availedService &&\r\n !(availedService[currentLegId] || {}).isLoadingAvailedServices\r\n ) {\r\n fetchAvailedServices(token, availedServicesKey, currentLegId);\r\n }\r\n if (\r\n currentLegId &&\r\n isLegId &&\r\n legs[currentLegId] &&\r\n !cateringDetails[currentLegId] &&\r\n !(cateringDetails[currentLegId] || {}).isCateringLoading\r\n ) {\r\n getCateringState(token, legs[currentLegId]);\r\n getCateringProposal(token, currentLegId);\r\n fetchCateringPdf(token, currentLegId);\r\n }\r\n if (\r\n currentLegId &&\r\n !(passengers[currentLegId] || {}).passengers &&\r\n !(passengers[currentLegId] || {}).isLoadingPassenger\r\n ) {\r\n const currentLeg = currentLegId && legs[currentLegId];\r\n fetchPassengers(token, {\r\n params: {\r\n legId: currentLegId,\r\n status: orderStatus,\r\n uniqueIdentifier: orderId || orderExtIdentifier,\r\n key: orderkey\r\n },\r\n leg: currentLeg\r\n });\r\n }\r\n if (\r\n hasLegId &&\r\n currentLegId &&\r\n !(fbo[currentLegId] || {}).fbo &&\r\n !(fbo[currentLegId] || {}).fboFetched &&\r\n !(fbo[currentLegId] || {}).isLoadingFbo\r\n ) {\r\n fetchFbo(token, currentLegId);\r\n }\r\n if (\r\n hasLegId &&\r\n currentLegId &&\r\n !(movementMessages[currentLegId] || {}).movementMessages &&\r\n !(movementMessages[currentLegId] || {}).movementMessagesFetched &&\r\n !(movementMessages[currentLegId] || {}).isLoadingMovementMessages\r\n ) {\r\n fetchMovementMessages(token, currentLegId);\r\n }\r\n if (\r\n currentLegId &&\r\n currentLeg &&\r\n arrivalAirportDetail &&\r\n !(weather[currentLegId] || {}).arrivalWeather &&\r\n (weather[currentLegId] || {}).arrivalWeather !== \"\" &&\r\n !(weather[currentLegId] || {}).isLoadingArrivalWeather &&\r\n !(weather[currentLegId] || {}).arrivalWeatherFetched\r\n ) {\r\n fetchWeather(\r\n arrivalAirportDetail.latitude,\r\n arrivalAirportDetail.longitude,\r\n arrivalAirportTime,\r\n \"arrival\",\r\n currentLegId\r\n );\r\n }\r\n\r\n if (\r\n currentLegId &&\r\n currentLeg &&\r\n departureAirportDetail &&\r\n !(weather[currentLegId] || {}).departureWeather &&\r\n (weather[currentLegId] || {}).departureWeather !== \"\" &&\r\n !(weather[currentLegId] || {}).isLoadingDepartureWeather &&\r\n !(weather[currentLegId] || {}).departureWeatherFetched\r\n ) {\r\n fetchWeather(\r\n departureAirportDetail.latitude,\r\n departureAirportDetail.longitude,\r\n departureAirportTime,\r\n \"departure\",\r\n currentLegId\r\n );\r\n }\r\n if (\r\n currentLegId &&\r\n !(feedback[currentLegId] || {}).feedback &&\r\n !(feedback[currentLegId] || {}).feedbackSuccess &&\r\n !(feedback[currentLegId] || {}).isFeedbackLoading &&\r\n isLegId\r\n ) {\r\n const legData = {\r\n orderKey: key,\r\n legId: currentLegId,\r\n isPast: isPastLeg(currentLeg),\r\n arrivalAirportTimeUTC: currentLeg.arrivalAirportTimeUTC\r\n };\r\n fetchLegFeedback(legData);\r\n }\r\n };\r\n\r\n flightDates = departureTime => {\r\n const dateFormat = \"DD MMM YYYY\";\r\n const dates = `${moment.utc(departureTime).format(dateFormat)}`;\r\n return dates;\r\n };\r\n\r\n fetchPreviousLeg = () => {\r\n this.setLegIndex(this.state.index - 1);\r\n };\r\n\r\n fetchNextLeg = () => {\r\n this.setLegIndex(this.state.index + 1);\r\n };\r\n\r\n setLegIndex = index => {\r\n const { legsArray } = this.state;\r\n const state = {\r\n index: index,\r\n currentLegId:\r\n (legsArray[index] || {}).legId ||\r\n (legsArray[index] || {}).flightLegExtIdentifier\r\n };\r\n if (index >= (legsArray || []).length) {\r\n state.index = 0;\r\n state.currentLegId =\r\n legsArray[0].legId || legsArray[0].flightLegExtIdentifier;\r\n } else if (index < 0) {\r\n state.index = (legsArray || []).length - 1;\r\n state.currentLegId =\r\n legsArray[state.index].legId ||\r\n legsArray[state.index].flightLegExtIdentifier;\r\n }\r\n this.setState(state, () => {\r\n this.fetchDataOnChange(this.props, state);\r\n });\r\n };\r\n\r\n renderDots = legs => {\r\n const isMultileg = Object.keys(legs || {}).length > 1;\r\n const { legsArray } = this.state;\r\n if (isMultileg && legs) {\r\n return Object.keys(legs).map((leg, index) => {\r\n let flightIndex =\r\n (legsArray[index] || {}).legId ||\r\n (legsArray[index] || {}).flightLegExtIdentifier;\r\n return (\r\n this.setLegIndex(index)}\r\n className={`vistajet_slider_dot ${\r\n index === this.state.index ? \"active\" : \"\"\r\n }`}\r\n />\r\n );\r\n });\r\n }\r\n return null;\r\n };\r\n\r\n renderArrows = legs => {\r\n const isMultileg = Object.keys(legs || {}).length > 1;\r\n return isMultileg ? (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n ) : null;\r\n };\r\n\r\n renderDownloadBtn = downloadItinerary => {\r\n const pdfUrl = downloadItinerary && downloadItinerary.itineraryPdf;\r\n return downloadItinerary && downloadItinerary.itineraryPdfLoading ? (\r\n \r\n Preparing Itinerary ...\r\n \r\n ) : (\r\n \r\n Download Itinerary\r\n \r\n );\r\n };\r\n\r\n isRenderCancelButton = () => {\r\n this.onFetchItineraryDetails();\r\n };\r\n\r\n renderEditBtn = () => {\r\n const { legs } = this.props;\r\n const params = window.location.search;\r\n const itineraryDetailsParam = params.split(\"/\");\r\n const key = itineraryDetailsParam[itineraryDetailsParam.length - 4];\r\n const uniqueIdentifier =\r\n itineraryDetailsParam[itineraryDetailsParam.length - 3];\r\n const flightLegExtIdentifier =\r\n itineraryDetailsParam[itineraryDetailsParam.length - 2];\r\n let isEditable = false;\r\n legs &&\r\n Object.keys(legs).forEach(leg => {\r\n if (moment(legs[leg].departureAirportTimeUTC).isAfter(moment.utc())) {\r\n isEditable = true;\r\n }\r\n });\r\n\r\n const redirectionURL =\r\n MODIFY_ORDER_PAGE_URL +\r\n `?${key}=${uniqueIdentifier}` +\r\n `&flightLegExtIdentifier=${flightLegExtIdentifier}`;\r\n return isEditable ? (\r\n this.renderEditContent(redirectionURL)}\r\n >\r\n Modify Order\r\n \r\n ) : null;\r\n };\r\n\r\n renderEditContent = redirectionURL => {\r\n const { orderType, user } = this.props;\r\n if (isFSP(user) || isFspDirect(user)) {\r\n if (orderType === \"\" || orderType === \"Program\") {\r\n window.open(redirectionURL, \"_self\");\r\n } else {\r\n window.UIkit.modal(\"#cannotEditError\").show();\r\n }\r\n } else {\r\n window.UIkit.modal(\"#cannotEditError\").show();\r\n }\r\n };\r\n clearErrorMessage = () => {\r\n const { errorArray } = this.state;\r\n errorArray.pop();\r\n this.setState({\r\n errorArray\r\n });\r\n if (errorArray.length > 0) {\r\n this.showError();\r\n } else {\r\n this.props.clearErrorFetchItinerary();\r\n }\r\n };\r\n\r\n render() {\r\n const {\r\n fbo,\r\n legs,\r\n user,\r\n crew,\r\n token,\r\n orderId,\r\n isLoading,\r\n weather,\r\n isLoadingWeather,\r\n groundServices,\r\n getAirportById,\r\n accountId,\r\n orderStatus,\r\n flightCancel,\r\n itineraryPdf,\r\n availedASData,\r\n availedService,\r\n cateringDetails,\r\n movementMessages,\r\n updateFlightCancel,\r\n orderExtIdentifier,\r\n onGoogleMapsApiLoaded,\r\n isGoogleMapsApiLoaded,\r\n visitedAirportsFinder,\r\n addGroundTransportService,\r\n passengers,\r\n itineraryCancellationMessage,\r\n itineraryCancellationIsLoading,\r\n feedback,\r\n isFeedbackLoading,\r\n changeCateringProposal,\r\n isLoadingPassenger,\r\n aircraftsList\r\n } = this.props;\r\n const { currentLegId, errorArray, removeCard } = this.state;\r\n const fboDetails = currentLegId && fbo[currentLegId];\r\n const fboInfo = fboDetails && (fbo[currentLegId].fbo || {}).fboDetails;\r\n const isLoadingFbo = fboDetails && (fbo[currentLegId] || {}).isLoadingFbo;\r\n const crewInfos = currentLegId && crew[currentLegId];\r\n const passengersInfo = currentLegId && passengers[currentLegId];\r\n const announcedPax = currentLegId && passengers[currentLegId].announcedPax;\r\n const downloadItinerary = currentLegId && itineraryPdf[currentLegId];\r\n const weatherDetails = currentLegId && weather[currentLegId];\r\n const feedbackInfo = currentLegId && feedback[currentLegId];\r\n // const isFeedbackInProgress = feedback[currentLegId].isFeedbackLoading;\r\n const currentLeg = currentLegId && legs[currentLegId];\r\n const tailNumber =\r\n (currentLegId &&\r\n legs[currentLegId] &&\r\n legs[currentLegId].aircraftTailNumber) ||\r\n \"_\";\r\n const arrivalAirportId = currentLeg && currentLeg.arrivalAirportId;\r\n const departureAirportId = currentLeg && currentLeg.departureAirportId;\r\n const departureDate =\r\n currentLeg &&\r\n moment\r\n .utc(currentLeg.departureAirportTimeLocal)\r\n .format(\"dddd, D MMMM YYYY\");\r\n const arrivalDate =\r\n currentLeg &&\r\n moment\r\n .utc(currentLeg.arrivalAirportTimeLocal)\r\n .format(\"dddd, D MMMM YYYY\");\r\n const arrivalTime =\r\n (currentLeg && currentLeg.arrivalAirportTimeLocal) || \"\";\r\n const departureTime =\r\n (currentLeg && currentLeg.departureAirportTimeLocal) || \"\";\r\n const flightLegId =\r\n currentLeg && currentLeg.legId\r\n ? currentLeg.legId\r\n : currentLeg && currentLeg.flightLegExtIdentifier;\r\n let withIn24Hours = true;\r\n const availedServiceInfo = currentLegId && availedService[currentLegId];\r\n const availedASDataInfo = currentLegId && availedASData[currentLegId];\r\n const isLoadingMovementMessages =\r\n currentLegId &&\r\n currentLeg &&\r\n (movementMessages[currentLegId] || {}).isLoadingMovementMessages;\r\n const movementMessagesResponse =\r\n currentLegId &&\r\n currentLeg &&\r\n ((movementMessages[currentLegId] || {}).movementMessages || {})\r\n .movementMessageResultDTOes;\r\n const movementMessagesInfo = movementMessagesResponse && guaranteeArray(movementMessagesResponse.movementMessageResult);\r\n let legStatus = \"\";\r\n let isEditable = true;\r\n let isPast = true;\r\n const operationalNotes = (currentLeg && currentLeg.operationalNotes) || \"\";\r\n const canBook = isVJ2(user) || isAdhoc(user) || isFSP(user);\r\n if (currentLeg) {\r\n const departureAirportDetail =\r\n visitedAirportsFinder[currentLeg && currentLeg.departureAirportId];\r\n legStatus = currentLeg.legStatus;\r\n withIn24Hours = Helpers.satisfy24HoursCheck(\r\n currentLeg,\r\n departureAirportDetail\r\n );\r\n isEditable = Helpers.isEditableLeg(currentLeg, departureAirportDetail);\r\n isPast = isPastLeg(currentLeg);\r\n }\r\n\r\n let allAirports = [];\r\n if (currentLeg && currentLeg.arrivalAirportId) {\r\n allAirports.push(currentLeg.departureAirportId);\r\n allAirports.push(currentLeg.arrivalAirportId);\r\n }\r\n\r\n const params = window.location.search;\r\n const itineraryDetailsParam = params.split(\"/\");\r\n const key = itineraryDetailsParam[itineraryDetailsParam.length - 4];\r\n const itineraryType =\r\n itineraryDetailsParam[itineraryDetailsParam.length - 1];\r\n const disableFeedback =\r\n itineraryType === \"cancelledItineraries\" ||\r\n ((itineraryType === \"pastItineraries\" ||\r\n itineraryType === \"upcomingItineraries\") &&\r\n (currentLeg && currentLeg.legStatus === \"Cancellation Pending\"));\r\n let legData = {};\r\n if (currentLeg) {\r\n legData = {\r\n orderKey: key,\r\n legId: currentLegId,\r\n isPast: isPastLeg(currentLeg),\r\n arrivalAirportTimeUTC: currentLeg.arrivalAirportTimeUTC\r\n };\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    Itinerary

    \r\n
    \r\n {\r\n this.errorValidationPopUp = errorValidationPopUp;\r\n }}\r\n onExited={this.clearErrorMessage}\r\n />\r\n
    \r\n {itineraryType !== \"cancelledItineraries\" &&\r\n (currentLeg && currentLeg.legStatus === \"Confirmed\") &&\r\n this.renderDownloadBtn(downloadItinerary)}\r\n\r\n {itineraryType === \"upcomingItineraries\" &&\r\n isEditable &&\r\n (currentLeg && currentLeg.legStatus !== \"Cancellation Pending\") &&\r\n (currentLeg && currentLeg.legStatus !== \"Cancelled\") &&\r\n this.renderEditBtn(legs)}\r\n
    \r\n
    \r\n {!removeCard && (\r\n
    \r\n
    \r\n {isLoading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n
    \r\n
    \r\n {currentLeg && currentLeg !== undefined && (\r\n \r\n )}\r\n
    \r\n {this.renderArrows(legs)}\r\n
    \r\n
      \r\n
    \r\n )}\r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!disableFeedback && (\r\n \r\n )}\r\n {itineraryType === \"upcomingItineraries\" &&\r\n (currentLeg && currentLeg.legStatus !== \"Cancellation Pending\") &&\r\n canBook &&\r\n isEditable &&\r\n !isPast && (\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ItineraryDetails;\r\n","import { connect } from 'react-redux';\r\nimport * as actions from '../../store/actions';\r\nimport withStore from '../../components/withStore';\r\nimport ItineraryDetails from '../../components/ItineraryDetails/ItineraryDetails';\r\nimport { clearErrorFetchItinerary } from '../../store/actions/ItineraryListingActions'\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n legs,\r\n orderId,\r\n accountId,\r\n orderType,\r\n isLoading,\r\n orderStatus,\r\n orderExtIdentifier,\r\n itineraryDetailsError,\r\n } = state.itineraryDetails;\r\n const {\r\n movementMessages,\r\n isLoadingMovementMessages,\r\n } = state.movementMessages;\r\n const { visitedAirportsFinder, visitedAirports } = state.visitedAirports;\r\n const { user } = state.user;\r\n const { token } = state.token;\r\n const { isGoogleMapsApiLoaded } = state.googleMap;\r\n const { crew, isLoadingCrew, isErrorCrew } = state.crewDetails;\r\n const { passengers, isLoadingPassenger } = state.passengers;\r\n const { itineraryPdf, itineraryPdfLoading } = state.itineraryPdf;\r\n const {\r\n availedService,\r\n availedASData,\r\n isLoadingAvailedServices,\r\n isLoadingAdditionalServices,\r\n isErrorAvailedServices,\r\n isErrorAdditionalServices\r\n } = state.availedServices;\r\n const { aircraftsList } = state.aircrafts;\r\n const { groundServices, isLoadingGroundServices, isErrorGroundTransport } = state.groundServicesReducer;\r\n const { itineraryCancellationMessage, itineraryCancellationIsLoading } = state.cancelItinerary;\r\n const { cateringDetails } = state;\r\n const { fbo, isLoadingFbo } = state.fbo;\r\n const { isLoadingWeather, weather } = state.weather;\r\n const {feedback, isFeedbackLoading} = state.customerFeedback;\r\n\r\n\r\n return {\r\n legs,\r\n crew,\r\n user,\r\n token : token,\r\n orderId,\r\n orderType,\r\n accountId,\r\n isLoading,\r\n isErrorCrew,\r\n orderStatus,\r\n itineraryPdf,\r\n availedASData,\r\n isLoadingCrew,\r\n availedService,\r\n groundServices,\r\n orderExtIdentifier,\r\n visitedAirportsFinder,\r\n visitedAirports,\r\n isLoadingWeather,\r\n weather,\r\n itineraryPdfLoading,\r\n itineraryDetailsError,\r\n isGoogleMapsApiLoaded,\r\n isErrorGroundTransport,\r\n isErrorAvailedServices,\r\n isErrorAdditionalServices,\r\n isLoadingGroundServices,\r\n isLoadingAvailedServices,\r\n cateringDetails,\r\n passengers,\r\n isLoadingPassenger,\r\n isLoadingAdditionalServices,\r\n fbo,\r\n isLoadingFbo,\r\n movementMessages,\r\n isLoadingMovementMessages,\r\n itineraryCancellationMessage,\r\n itineraryCancellationIsLoading,\r\n feedback,\r\n isFeedbackLoading,\r\n aircraftsList,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n getAirportById: id => dispatch(actions.getAirportById(id)),\r\n onGoogleMapsApiLoaded: () => dispatch(actions.onGoogleMapsApiLoaded()),\r\n fetchFbo: (token, legId) => dispatch(actions.fetchFboDetails(token, legId)),\r\n fetchWeather: (lat, long, time, key, flightLegId) => dispatch(actions.fetchWeatherDetails(lat, long, time, key, flightLegId)),\r\n fetchVisitedAirports: () => dispatch(actions.fetchAllVisitedAirports()),\r\n fetchCrew: (token, flightLegId) => dispatch(actions.fetchCrew(token, flightLegId)),\r\n fetchPassengers: (token, data) => dispatch(actions.fetchPassengers(token, data)),\r\n fetchGroundServices: (token, payload) => dispatch(actions.fetchAllGroundServices(token, payload)),\r\n fetchitineraryPdf: (token, flightLegId) => dispatch(actions.fetchitineraryPdf(token, flightLegId)),\r\n fetchCateringPdf: (token, flightLegId) => dispatch(actions.getCateringPDFAction(token, flightLegId)),\r\n fetchItineraryDetails: (token, key, params, type) => dispatch(actions.fetchItineraryDetails(token, key, params, type)),\r\n fetchAvailedServices: (token, key, flightLegId) => dispatch(actions.fetchAvailedServices(token, key, flightLegId)),\r\n flightCancel: (token, accountId, leg, user, orderId) => dispatch(actions.flightCancel(token, accountId, leg, user, orderId)),\r\n addGroundTransportService: (token, key, uniqueIdentifier, payload) => dispatch(actions.addGroundTransportService(token, key, uniqueIdentifier, payload)),\r\n getCateringState: (token, leg) => dispatch(actions.getCateringStateAction(token, leg)),\r\n getCateringProposal: (token, flightId) => dispatch(actions.getCateringProposalAction(token, flightId)),\r\n changeCateringProposal: (token, flightId, cateringSelection, leg) => dispatch(actions.changeCateringProposalAction(token, flightId, cateringSelection, leg)),\r\n fetchMovementMessages: (token, flightLegId) => dispatch(actions.fetchMovementMessages(token, flightLegId)),\r\n clearErrorFetchItinerary: () => dispatch(clearErrorFetchItinerary()),\r\n updateFlightCancel: () => dispatch(actions.flightCancelAfterSuccess()),\r\n fetchLegFeedback : (params) => dispatch(actions.fetchLegFeedback(params)),\r\n };\r\n}\r\n\r\nconst ItineraryDetailsContainer = connect(mapStateToProps, mapDispatchToProps)(ItineraryDetails);\r\n\r\nexport default withStore(ItineraryDetailsContainer);\r\n","import React, { Component } from 'react';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport ReactImageFallback from 'react-image-fallback';\r\n\r\nconst placeholderLarge = '/legacy/Static/img/thumbnails/placeholder-image-large.png';\r\nconst placeholderSmall = '/legacy/Static/img/thumbnails/placeholder-image-small.png';\r\n\r\nclass Entertainment extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n itemDetailView: false,\r\n item: {},\r\n type: '',\r\n legId: '',\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { fetchEntertainmentIssue } = this.props;\r\n const params = window.location.search;\r\n const entertainmentDetailsParam = params.split('/');\r\n const tailNumber = entertainmentDetailsParam[entertainmentDetailsParam.length - 1];\r\n const legId = entertainmentDetailsParam[entertainmentDetailsParam.length - 4];\r\n this.setState({ legId });\r\n fetchEntertainmentIssue(tailNumber, legId);\r\n \r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { fetchEntertainment, entertainment } = nextProps;\r\n const params = window.location.search;\r\n const entertainmentDetailsParam = params.split('/');\r\n const tailNumber = entertainmentDetailsParam[entertainmentDetailsParam.length - 1];\r\n const legId = entertainmentDetailsParam[entertainmentDetailsParam.length - 4];\r\n const issueNumber = entertainment[legId] && entertainment[legId].entertainmentIssue && entertainment[legId].entertainmentIssue.issue;\r\n if(issueNumber) {\r\n fetchEntertainment(issueNumber, tailNumber, legId);\r\n }\r\n }\r\n\r\n handleDetailsToggle = (item, type) => {\r\n this.setState({ itemDetailView: true,\r\n item,\r\n type \r\n });\r\n }\r\n\r\n handleBack = () => {\r\n this.setState({ itemDetailView: false });\r\n }\r\n\r\n renderItemDetails = (item, type) => {\r\n const trailerDetail = item && item.trailer && item.trailer.split('/');\r\n const trailerId = trailerDetail && trailerDetail[trailerDetail.length - 1];\r\n const trailer = trailerDetail && trailerId ? `https://youtube.com/embed/${trailerId}` : '';\r\n if (type === 'movie') {\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.handleBack()}>Back\r\n

    {item && item.title}

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

    Classification: {item.rated} | {item.runtime}| Genre: {item.genre} | {item.released}

    \r\n
    \r\n
    {item.imdbRating}/10
    \r\n
    \r\n
    \r\n

    {item.plot || ''}

    \r\n \r\n

    \r\n { item.director ? Director:{ item.director } : ''}\r\n { item.writer ? Writers:{ item.writer } : ''}\r\n { item.country ? Country:{ item.country } : ''}\r\n { item.awards ? Awards:{ item.awards } : ''}\r\n { item.actors ? Stars:{ item.actors } : ''}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n } else if (type === 'game') {\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.handleBack()}>Back\r\n

    {item && item.title}

    \r\n
    \r\n
    \r\n {\r\n trailer ? : null\r\n }\r\n \r\n
    \r\n
    \r\n

    Genre: {item.genre} | Age Rating: {item.ageRating} | No. of Players: {item.nOfPlayers}

    \r\n
    \r\n
    {item.rating}/10
    \r\n
    \r\n
    \r\n

    {item.description || ''}

    \r\n \r\n

    \r\n { item.developer ? Developer:{item.developer} : ''}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n } else if (type === 'tvshow') {\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.handleBack()}>Back\r\n

    {item && item.title}

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

    Classification: {item.rated} | {item.runtime}| Genre: {item.genre} | {item.released}

    \r\n
    \r\n
    {item.imdbRating}/10
    \r\n
    \r\n
    \r\n

    {item.plot || ''}

    \r\n

    \r\n { item.director ? Director:{ item.director } : ''}\r\n { item.writer ? Writers:{ item.writer } : ''}\r\n { item.country ? Country:{ item.country } : ''}\r\n { item.awards ? Awards:{ item.awards } : ''}\r\n { item.actors ? Stars:{ item.actors } : ''}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n\r\n renderEntertainmentDetails = (entertainmentDetails, isLoadingEntertainment, isLoading) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Entertainment

    \r\n
    \r\n {\r\n !isLoading && !isLoadingEntertainment ? \r\n (\r\n
    \r\n
    \r\n

    Movies

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

    TV Shows

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

    Games

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) :\r\n ( \r\n
    \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n render() {\r\n const { entertainment, isLoadingEntertainment, isLoading } = this.props;\r\n const { itemDetailView,\r\n item,\r\n type,\r\n legId\r\n } = this.state;\r\n const entertainmentDetails = entertainment && entertainment[legId] && entertainment[legId].entertainment || {};\r\n return (\r\n
    \r\n { \r\n !itemDetailView ?\r\n this.renderEntertainmentDetails(entertainmentDetails, isLoadingEntertainment, isLoading) :\r\n this.renderItemDetails(item, type) \r\n }\r\n
    \r\n ); \r\n }\r\n}\r\n\r\nexport default Entertainment;\r\n","import { connect } from 'react-redux';\r\nimport * as actions from '../../store/actions';\r\nimport withStore from '../../components/withStore';\r\nimport Entertainment from '../../components/ItineraryDetails/Entertainment';\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n isLoadingEntertainment,\r\n entertainment\r\n } = state.entertainment;\r\n const { token } = state.token;\r\n const { isLoading } = state.itineraryDetails;\r\n return {\r\n token,\r\n isLoadingEntertainment,\r\n entertainment,\r\n isLoading\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n fetchEntertainmentIssue: (tailNumber, legId) => dispatch(actions.fetchEntertainmentIssueNumber(tailNumber, legId)),\r\n fetchEntertainment: (issueNumber, tailNumber, legId) => dispatch(actions.fetchEntertainmentDetails(issueNumber, tailNumber, legId)),\r\n \r\n};\r\n}\r\n\r\nconst EntertainmentContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(Entertainment);\r\n\r\nexport default withStore(EntertainmentContainer);\r\n","import React, { Component } from 'react';\r\nimport { isMobile } from 'react-device-detect';\r\nimport Select from 'react-select';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport MessagePopUp from '../shared/MessagePopUpNew';\r\nimport { Salutation } from '../../constants/SignupConstants';\r\nimport {\r\n POLICY_URL_PAGE,\r\n CONFIRM_REGISTER_PAGE_URL,\r\n} from '../../configs/constants';\r\nimport IntlTelphoneInput from '../shared/PhoneNumberSelector';\r\nimport { getCountry } from 'utils/countryUtils';\r\nimport validateRegistrationForm from '../../utils/Validators/RegistrationFormValidator';\r\n\r\nimport {\r\n getFirstChars,\r\n} from '../../utils/stringUtils';\r\nimport { errorMessages } from '../../constants/ErrorMessageConstants';\r\n\r\nexport default class RegistrationForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n salutation: Salutation[0],\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n phoneNumber: '',\r\n password: '',\r\n confirmPassword: '',\r\n marketingCheckbox: false,\r\n agreementCheckbox: false,\r\n errors: {},\r\n defaultCountry: null,\r\n isPhoneNumberValid: false,\r\n disableCreateButton: false,\r\n popupMessage: '',\r\n passwordType: 'password',\r\n confirmPasswordType: 'password',\r\n passwordIconClass: 'vistajet_password_hide',\r\n confirmPasswordIconClass: 'vistajet_password_hide',\r\n countryCode: '',\r\n countryName: '',\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const {\r\n fetchAdminToken,\r\n authenticateTokenAction,\r\n isLoggedIn,\r\n changePasswordRequired,\r\n registrationState,\r\n } = this.props;\r\n fetchAdminToken().then(({ token }) => {\r\n authenticateTokenAction(token).then(() => {\r\n }, this.handleApiErrors);\r\n }, this.handleApiErrors);\r\n\r\n\r\n if (isLoggedIn && !changePasswordRequired) {\r\n this.redirectToHome();\r\n }\r\n\r\n if (registrationState && registrationState.hasOwnProperty('firstName')) { // eslint-disable-line\r\n this.populateValues();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n this.props.paymentDetails !== nextProps.paymentDetails\r\n && nextProps.isSuccess\r\n ) {\r\n window.open(CONFIRM_REGISTER_PAGE_URL.url, \"_self\");\r\n }\r\n if (nextProps.isLoggedIn && !nextProps.changePasswordRequired) {\r\n this.redirectToHome();\r\n }\r\n // Error Popup handling\r\n if (\r\n this.props.adminTokenError !== nextProps.adminTokenError\r\n && nextProps.isAdminTokenError\r\n ) {\r\n this.registrationErrorPopUp.show();\r\n }\r\n if (\r\n this.props.tokenError !== nextProps.tokenError\r\n && nextProps.isTokenError\r\n ) {\r\n this.registrationErrorPopUp.show();\r\n }\r\n if (\r\n this.props.authError !== nextProps.authError\r\n && nextProps.isAuthError\r\n ) {\r\n this.registrationErrorPopUp.show();\r\n }\r\n if (\r\n this.props.userRegistrationError !== nextProps.userRegistrationError\r\n && nextProps.isUserRegisterError\r\n ) {\r\n this.registrationErrorPopUp.show();\r\n }\r\n if (\r\n this.props.directSignupError !== nextProps.directSignupError\r\n && nextProps.isDirectSignupError\r\n ) {\r\n this.registrationErrorPopUp.show();\r\n }\r\n }\r\n\r\n populateValues = () => {\r\n const { registrationState } = this.props;\r\n this.setState(\r\n registrationState,\r\n );\r\n // call this handler to update state of phoneNumber\r\n this.handlePhoneNumberChange(true, registrationState.phoneNumber);\r\n };\r\n\r\n handleApiErrors = (err) => {\r\n this.setState({\r\n popupMessage: err,\r\n });\r\n };\r\n\r\n redirectToHome = () => {\r\n window.location = '/';\r\n };\r\n\r\n handleSalutationChange = (obj) => {\r\n this.setState({ salutation: obj });\r\n };\r\n\r\n handleFirstNameChange = (e) => {\r\n this.setState({ firstName: e.target.value });\r\n };\r\n\r\n handleLastNameChange = (e) => {\r\n this.setState({ lastName: e.target.value });\r\n };\r\n\r\n handleEmailChange = (e) => {\r\n this.setState({ email: e.target.value });\r\n };\r\n\r\n // handlePhoneNumberBlur = () => {\r\n // const { errors, phoneNumber, isPhoneNumberValid } = this.state;\r\n // this.setState({\r\n // errors: {\r\n // ...errors,\r\n // // phoneNumber: validatePhoneNumber(phoneNumber, isPhoneNumberValid),\r\n // },\r\n // });\r\n // }\r\n\r\n handlePhoneNumberChange = (status = true, phoneNumber, countryData) => {\r\n const country = getCountry('TWO_LETTER_CODE', countryData.iso2) || {};\r\n if (country && country.THREE_LETTER_CODE) {\r\n this.setState({\r\n phoneNumber: getFirstChars(phoneNumber, 15, status),\r\n isPhoneNumberValid: status,\r\n countryCode: country && country.THREE_LETTER_CODE,\r\n countryName: country && country.COUNTRY_NAME,\r\n });\r\n } else {\r\n this.setState({\r\n phoneNumber: getFirstChars(phoneNumber, 15, status),\r\n isPhoneNumberValid: status,\r\n countryName: country && country.COUNTRY_NAME,\r\n });\r\n }\r\n };\r\n\r\n handlePasswordChange = (e) => {\r\n this.setState({ password: e.target.value });\r\n }\r\n\r\n handleConfirmPasswordChange = (e) => {\r\n this.setState({ confirmPassword: e.target.value });\r\n }\r\n\r\n toggleConfirmPassView = () => {\r\n const { confirmPasswordType } = this.state;\r\n if (confirmPasswordType === 'password') {\r\n this.setState({\r\n confirmPasswordType: 'text',\r\n confirmPasswordIconClass: 'vistajet_password_show',\r\n });\r\n } else {\r\n this.setState({\r\n confirmPasswordType: 'password',\r\n confirmPasswordIconClass: 'vistajet_password_hide',\r\n });\r\n }\r\n }\r\n\r\n togglePassView = () => {\r\n const { passwordType } = this.state;\r\n if (passwordType === 'password') {\r\n this.setState({\r\n passwordType: 'text',\r\n passwordIconClass: 'vistajet_password_show',\r\n });\r\n } else {\r\n this.setState({\r\n passwordType: 'password',\r\n passwordIconClass: 'vistajet_password_hide',\r\n });\r\n }\r\n }\r\n makePayloadForDirectRegistration = () => {\r\n const {\r\n firstName,\r\n lastName,\r\n countryCode,\r\n email\r\n } = this.state;\r\n const SignUpDto = {\r\n addressableName: `${firstName} ${lastName}`,\r\n countryCode: countryCode,\r\n city: '-',\r\n billingAddress: '',\r\n membershipTypeId: 1,\r\n }\r\n return SignUpDto;\r\n }\r\n handleAgreementCheck = () => {\r\n const { agreementCheckbox } = this.state;\r\n this.setState({\r\n agreementCheckbox: !agreementCheckbox,\r\n });\r\n }\r\n\r\n handleMarketingCheck = () => {\r\n const { marketingCheckbox } = this.state;\r\n this.setState({\r\n marketingCheckbox: !marketingCheckbox,\r\n });\r\n }\r\n\r\n validateForm = (e) => {\r\n e.preventDefault();\r\n const {\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n phoneNumber,\r\n password,\r\n confirmPassword,\r\n // marketingCheckbox,\r\n agreementCheckbox,\r\n isPhoneNumberValid,\r\n } = this.state;\r\n const res = validateRegistrationForm({\r\n salutation,\r\n firstName,\r\n lastName,\r\n email: email.toLowerCase(),\r\n phoneNumber,\r\n password,\r\n confirmPassword,\r\n // marketingCheckbox,\r\n agreementCheckbox,\r\n isPhoneNumberValid,\r\n });\r\n if (res.isError) {\r\n // set state of errors\r\n this.setState({\r\n errors: res,\r\n });\r\n } else {\r\n // API call to create account\r\n this.setState({\r\n error: {},\r\n });\r\n try {\r\n window.dataLayer.push({ 'event': 'enquirySubmitted', 'enquiryType': 'Registration' });\r\n } catch (e) {\r\n console.warn(\"dataLayer push failed for 'Registration': \" + e)\r\n }\r\n this.createAccount();\r\n }\r\n }\r\n\r\n createAccount = () => {\r\n const {\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n phoneNumber,\r\n password,\r\n countryName,\r\n confirmPassword,\r\n marketingCheckbox,\r\n agreementCheckbox,\r\n } = this.state;\r\n const {\r\n getToken,\r\n authenticateTokenAction,\r\n directSignupSourceAction,\r\n registerMemeber,\r\n } = this.props;\r\n const requestPayload = {\r\n salutation,\r\n firstName,\r\n lastName,\r\n email: email.toLowerCase(),\r\n phoneNumber,\r\n password,\r\n countryName,\r\n confirmPassword,\r\n marketingCheckbox,\r\n agreementCheckbox,\r\n };\r\n const SignUpDto = this.makePayloadForDirectRegistration();\r\n getToken().then(({ token }) => {\r\n authenticateTokenAction(token).then((auth) => {\r\n registerMemeber(\r\n auth.token,\r\n requestPayload,\r\n ).then((user) => {\r\n directSignupSourceAction(user.user.token, SignUpDto).then(() => {\r\n }, this.handleApiErrors)\r\n }, this.handleApiErrors);\r\n }, this.handleApiErrors);\r\n }, this.handleApiErrors);\r\n }\r\n\r\n generateSalutationOptions = () => {\r\n return Salutation.map((salutation) => {\r\n return {\r\n value: salutation.value,\r\n label: salutation.label,\r\n };\r\n });\r\n };\r\n\r\n removeErrors = (e) => {\r\n e.preventDefault();\r\n if (this.state.errors && this.state.errors.isError) { // eslint-disable-line\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors[e.target.id] = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n };\r\n\r\n removePhoneError = () => {\r\n if (this.state.errors.isError) {\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors.phoneNumber = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n }\r\n\r\n handleNext = () => {\r\n const { progressIncrement, updateProgressInWizard } = this.props;\r\n const {\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n phoneNumber,\r\n password,\r\n confirmPassword,\r\n marketingCheckbox,\r\n agreementCheckbox,\r\n } = this.state;\r\n const stateObject = {\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n phoneNumber,\r\n password,\r\n confirmPassword,\r\n marketingCheckbox,\r\n agreementCheckbox,\r\n };\r\n if (progressIncrement <= 3) {\r\n const value = progressIncrement + 1;\r\n updateProgressInWizard(value, { registrationState: stateObject });\r\n }\r\n };\r\n\r\n handleGoBack = () => {\r\n const { progressIncrement, updateProgressInWizard } = this.props;\r\n if (progressIncrement > 1) {\r\n const value = progressIncrement - 1;\r\n updateProgressInWizard(value);\r\n }\r\n };\r\n\r\n renderForm = () => {\r\n const salutationOptions = this.generateSalutationOptions();\r\n const {\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n password,\r\n confirmPassword,\r\n phoneNumber,\r\n errors,\r\n defaultCountry,\r\n marketingCheckbox,\r\n agreementCheckbox,\r\n popupMessage,\r\n passwordType,\r\n confirmPasswordType,\r\n passwordIconClass,\r\n confirmPasswordIconClass,\r\n } = this.state;\r\n const {\r\n isWizard,\r\n tokenLoading,\r\n registerLoading,\r\n adminTokenLoading,\r\n isMemberPlanLoading,\r\n isAuthLoading,\r\n wizardStepper,\r\n progressIncrement,\r\n isDirectSignupLoading,\r\n } = this.props;\r\n const createAccountButtonText = registerLoading\r\n || tokenLoading\r\n || isAuthLoading\r\n || adminTokenLoading\r\n ? 'Loading...' : 'Create an Account';\r\n const countinueRegisterButtonText = registerLoading\r\n || tokenLoading\r\n || isAuthLoading\r\n || adminTokenLoading\r\n || isMemberPlanLoading\r\n ? 'Loading...' : 'Continue';\r\n let mobileErrorTextMarginStyle = {};\r\n if (\r\n isMobile\r\n && errors.errors\r\n && errors.errors.password\r\n && (errorMessages.PASS_MAX_LENGTH == errors.errors.password\r\n || errors.errors.password == errorMessages.INVALID_PASS)) {\r\n mobileErrorTextMarginStyle = { marginBottom: 40 };\r\n }\r\n return (\r\n
    \r\n

    \r\n Please enter your details\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n errors.errors && errors.errors.firstName && (\r\n

    \r\n {errors.errors.firstName}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.lastName && (\r\n

    \r\n {errors.errors.lastName}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.email && (\r\n

    \r\n {errors.errors.email}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.phoneNumber && (\r\n

    \r\n {errors.errors.phoneNumber}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n {\r\n errors.errors && errors.errors.password && (\r\n

    \r\n {errors.errors.password}\r\n

    \r\n )\r\n }\r\n
    \r\n \r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n errors.errors && errors.errors.confirmPassword && (\r\n

    \r\n {errors.errors.confirmPassword}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n \r\n {\r\n errors.errors && errors.errors.agreementCheckbox && (\r\n

    \r\n {errors.errors.agreementCheckbox}\r\n

    \r\n )\r\n }\r\n {\r\n !isWizard\r\n && (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n {\r\n isWizard\r\n && (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n \r\n { this.registrationErrorPopUp = registrationErrorPopUp; }}\r\n content={popupMessage}\r\n />\r\n \r\n {\r\n isWizard\r\n && (\r\n wizardStepper(\r\n progressIncrement,\r\n )\r\n )\r\n }\r\n \r\n );\r\n };\r\n\r\n render() {\r\n return this.renderForm();\r\n }\r\n}\r\n","import {\r\n validateSalutation,\r\n validateFirstName,\r\n validateLastName,\r\n validateEmail,\r\n validatePhone,\r\n validatePassword,\r\n validateRepeatPassword,\r\n validateCheckBox,\r\n} from './Validators';\r\n\r\nexport default function validateRegistrationForm(obj) {\r\n const salutationResponse = validateSalutation(obj.salutation.value);\r\n const firstNameResponse = validateFirstName(obj.firstName);\r\n const lastNameResponse = validateLastName(obj.lastName);\r\n const emailResponse = validateEmail(obj.email);\r\n const phoneNumberResponse = validatePhone(obj.phoneNumber, obj.isPhoneNumberValid);\r\n const passwordResponse = validatePassword(obj.password);\r\n const confirmPasswordResponse = validateRepeatPassword(obj.confirmPassword, obj.password);\r\n // const marketingCheckBoxResponse = validateCheckBox(obj.marketingCheckbox);\r\n const agreementCheckboxResponse = validateCheckBox(obj.agreementCheckbox);\r\n const res = {\r\n errors: {},\r\n };\r\n if (salutationResponse.isError) {\r\n res.isError = salutationResponse.isError;\r\n res.errors.salutation = salutationResponse.message;\r\n }\r\n if (firstNameResponse.isError) {\r\n res.isError = firstNameResponse.isError;\r\n res.errors.firstName = firstNameResponse.message;\r\n }\r\n if (lastNameResponse.isError) {\r\n res.isError = lastNameResponse.isError;\r\n res.errors.lastName = lastNameResponse.message;\r\n }\r\n if (emailResponse.isError) {\r\n res.isError = emailResponse.isError;\r\n res.errors.email = emailResponse.message;\r\n }\r\n if (phoneNumberResponse.isError) {\r\n res.isError = phoneNumberResponse.isError;\r\n res.errors.phoneNumber = phoneNumberResponse.message;\r\n }\r\n if (passwordResponse.isError) {\r\n res.isError = passwordResponse.isError;\r\n res.errors.password = passwordResponse.message;\r\n }\r\n if (confirmPasswordResponse.isError) {\r\n res.isError = confirmPasswordResponse.isError;\r\n res.errors.confirmPassword = confirmPasswordResponse.message;\r\n }\r\n // if (marketingCheckBoxResponse.isError) {\r\n // res.isError = marketingCheckBoxResponse.isError;\r\n // res.errors.marketingCheckbox = marketingCheckBoxResponse.message;\r\n // }\r\n if (agreementCheckboxResponse.isError) {\r\n res.isError = agreementCheckboxResponse.isError;\r\n res.errors.agreementCheckbox = agreementCheckboxResponse.message;\r\n }\r\n return res;\r\n}\r\n","import { connect } from 'react-redux';\r\n\r\nimport withStore from '../components/withStore';\r\nimport RegistrationForm from '../components/Registration/RegistrationForm';\r\n\r\nimport * as actions from '../store/actions';\r\n\r\nfunction mapStateToProps(state) {\r\n const { isTokenValid, isPasswordChange } = state.token;\r\n const { user, isUserRegistered } = state.registration;\r\n const { isLoggedIn, changePasswordRequired } = state.user;\r\n const { paymentDetails, isSuccess } = state.directSignupReducer;\r\n\r\n return {\r\n isWizard: false,\r\n // adminToken: state.token,\r\n isAdminTokenError: state.token.isadminTokenError,\r\n adminTokenError: state.token.adminTokenError,\r\n // token: state.token,\r\n isTokenError: state.token.isTokenError,\r\n tokenError: state.token.tokenError,\r\n isTokenValid,\r\n isPasswordChange,\r\n isAuthError: state.token.isTokenAuthError,\r\n authError: state.token.tokenAuthError,\r\n isAuthLoading: state.token.isTokenAuthLoading,\r\n user,\r\n isUserRegistered,\r\n isUserRegisterError: state.registration.isError,\r\n userRegistrationError: state.registration.error,\r\n adminTokenLoading: state.token.isadminTokenLoading,\r\n tokenLoading: state.token.isRegistrationTokenLoading,\r\n registerLoading: state.registration.isLoading,\r\n isLoggedIn,\r\n changePasswordRequired,\r\n //direct signup\r\n isDirectSignupLoading: state.directSignupReducer.isLoading,\r\n isDirectSignupError: state.directSignupReducer.isError,\r\n directSignupError: state.directSignupReducer.error,\r\n paymentDetails,\r\n isSuccess\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n fetchAdminToken: () => dispatch(actions.fetchAdminToken()),\r\n getToken: () => dispatch(actions.fetchToken(undefined, undefined, true)),\r\n authenticateTokenAction: token => dispatch(actions.authenticateTokenAction(token)),\r\n registerMemeber: (token, payload) => dispatch(actions.registrationAction(token, payload)),\r\n directSignupSourceAction:(token, payload) => dispatch(actions.directSignupSourceAction(\r\n token, payload)),\r\n };\r\n}\r\n\r\nconst SimpleRegistrationContainer = connect(mapStateToProps, mapDispatchToProps)(RegistrationForm);\r\n\r\nexport default withStore(SimpleRegistrationContainer);\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\nimport React, { Component } from 'react';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport { RESEND_EMAIL_CONFIRM, EMAIL_NUMBER } from '../../constants/MessageConstants';\r\nimport MessagePopUp from '../shared/MessagePopUp';\r\n\r\nexport default class RegistrationConfirm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popupMessage: RESEND_EMAIL_CONFIRM,\r\n };\r\n }\r\n\r\n\r\n componentDidMount() {\r\n const params = new URLSearchParams(window.location.search);\r\n const code = params.get('code');\r\n const shouldVerifyUser = params.get('shouldVerifyUser');\r\n if (code) {\r\n this.props.verifyUserAction(code);\r\n }\r\n if (shouldVerifyUser == 'true') {\r\n this.props.clearNotVerifiedFlag();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n this.props.message !== nextProps.message\r\n && !nextProps.isError\r\n && !nextProps.isLoading\r\n && nextProps.isMessageSent\r\n ) {\r\n window.UIkit.modal('#emailSentMessagePopUp').show();\r\n }\r\n if (nextProps.isUserVerified && (this.props.authenticatedUser !== nextProps.authenticatedUser)) {\r\n window.location = '/?verified=true';\r\n }\r\n\r\n if (\r\n this.props.message !== nextProps.message\r\n && nextProps.isError\r\n ) {\r\n window.UIkit.modal('#emailSentMessagePopUp').show();\r\n }\r\n if (\r\n nextProps.isVerifyUserError\r\n && this.props.verifyUserError !== nextProps.verifyUserError\r\n ) {\r\n this.setState({\r\n popupMessage: nextProps.verifyUserError,\r\n });\r\n window.UIkit.modal('#emailSentMessagePopUp').show();\r\n }\r\n if (\r\n nextProps.loggedInUser &&\r\n (nextProps.loggedInUser.userVerificationStatusCode === 4\r\n || nextProps.loggedInUser.userVerificationStatusCode === 2) &&\r\n nextProps.loggedInUser.userNotVerified\r\n ) {\r\n this.props.clearNotVerifiedFlag();\r\n }\r\n }\r\n\r\n resendCode = () => {\r\n const {\r\n user,\r\n resendRegisterCodeAction,\r\n adminToken,\r\n loggedInUser,\r\n isLoading,\r\n verifyLoading,\r\n token,\r\n } = this.props;\r\n if ((!isLoading) && (!verifyLoading)) {\r\n const params = new URLSearchParams(window.location.search);\r\n const shouldVerifyUser = params.get('shouldVerifyUser');\r\n if (shouldVerifyUser == 'true') {\r\n const email = params.get('email');\r\n this.props.fetchToken().then(({ token }) => {\r\n this.props.authenticateToken(token).then(() => {\r\n resendRegisterCodeAction({\r\n token,\r\n username: email,\r\n externalAppUserId: loggedInUser.id,\r\n }).then(() => { }, this.handleError);\r\n }).catch(this.handleError);\r\n }, this.handleError);\r\n return;\r\n }\r\n\r\n resendRegisterCodeAction({\r\n token: adminToken || token,\r\n username: user.username,\r\n externalAppUserId: user.externalAppUserId,\r\n }).then(() => { }, this.handleError);\r\n }\r\n }\r\n\r\n redirectToLogin = () => {\r\n window.open(window.epiSettings.loginUrl, \"_self\");\r\n };\r\n \r\n\r\n handleError = (err) => {\r\n this.setState({\r\n popupMessage: err,\r\n });\r\n }\r\n\r\n renderPage = (isDirect) => {\r\n if (isDirect) {\r\n return this.renderConfirmRegistrationPage();\r\n }\r\n return this.renderSimpleConfirmPage();\r\n }\r\n\r\n // Welcome sceen\r\n renderConfirmRegistrationPage = () => {\r\n const {\r\n isLoading,\r\n verifyLoading,\r\n isTokenLoading,\r\n isAuthLoading,\r\n } = this.props;\r\n const unActiveTabStyle = (\r\n isLoading\r\n || verifyLoading\r\n || isTokenLoading\r\n || isAuthLoading\r\n )\r\n ? 'vistajet_button_default uk-link-reset'\r\n : 'vistajet_button_default';\r\n const resendEmailText = (\r\n isLoading\r\n || verifyLoading\r\n || isTokenLoading\r\n || isAuthLoading\r\n )\r\n ? 'Loading...'\r\n : 'Resend Email';\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n (isLoading || verifyLoading || isTokenLoading || isAuthLoading) && (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n Welcome to VistaJet Direct!\r\n
    \r\n
    \r\n
    \r\n

    \r\n Confirm your email and login now to discover our offers. Enjoy faster booking and priority access to a fleet of over 70 silver and red business jets, available for you to fly to anywhere in the world.\r\n

    \r\n
    \r\n\r\n {\r\n !verifyLoading ? (\r\n
    \r\n \r\n {resendEmailText}\r\n \r\n \r\n Login\r\n \r\n
    \r\n )\r\n : (\r\n
    \r\n

    \r\n Please wait, verifying account.\r\n

    \r\n
    \r\n )\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n // Confirm sceen\r\n renderSimpleConfirmPage = () => {\r\n const {\r\n isLoading, verifyLoading, isTokenLoading, isAuthLoading,\r\n } = this.props;\r\n const unActiveTabStyle = (isLoading || verifyLoading || isTokenLoading || isAuthLoading)\r\n ? 'vistajet_button_default uk-link-reset'\r\n : 'vistajet_button_default';\r\n const resendEmailText = (isLoading || verifyLoading || isTokenLoading || isAuthLoading)\r\n ? 'Loading...'\r\n : 'Resend Email';\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n (isLoading || verifyLoading || isTokenLoading || isAuthLoading) && (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n REGISTER\r\n
    \r\n
    \r\n {`Thanks for your request`}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {`To start, please confirm your email. For support call ${EMAIL_NUMBER}`}\r\n

    \r\n {\r\n !verifyLoading ? (\r\n
    \r\n \r\n {resendEmailText}\r\n \r\n \r\n Login\r\n \r\n
    \r\n )\r\n : (\r\n
    \r\n

    \r\n Please wait, verifying account.\r\n

    \r\n
    \r\n\r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n render() {\r\n const { popupMessage } = this.state;\r\n const { isDirectConfirmContainer } = this.props;\r\n return (\r\n
    \r\n {\r\n this.renderPage(isDirectConfirmContainer)\r\n }\r\n { this.messagePopup = messagePopup; }}\r\n content={popupMessage}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n","import { connect } from 'react-redux';\r\n\r\nimport withStore from '../components/withStore';\r\nimport RegistrationConfirm from '../components/Registration/RegistrationConfirm';\r\nimport * as actions from '../store/actions';\r\n\r\n\r\nfunction mapStateToProps(state, props) {\r\n const { user } = state.registration;\r\n const {\r\n message,\r\n isMessageSent,\r\n isLoading,\r\n isError,\r\n } = state.resendCode;\r\n const { isUserVerified, authenticatedUser } = state.user;\r\n const { isDirectConfirmContainer } = props;\r\n return {\r\n adminToken: state.token.adminToken,\r\n token: state.token.token,\r\n user,\r\n message,\r\n isMessageSent,\r\n isLoading,\r\n isError,\r\n isUserVerified,\r\n authenticatedUser,\r\n verifyLoading: state.user.isVerifyUserLoading,\r\n isVerifyUserError: state.user.isVerifyUserError,\r\n verifyUserError: state.user.verifyUserError,\r\n isDirectConfirmContainer,\r\n isTokenLoading: state.token.isRegistrationTokenLoading,\r\n isAuthLoading: state.token.isTokenAuthLoading,\r\n loggedInUser: state.user.user,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n resendRegisterCodeAction: obj => dispatch(actions.resendRegisterCodeAction(obj)),\r\n verifyUserAction: verificationCode => dispatch(actions.verifyUserAction(verificationCode)),\r\n fetchToken: () => dispatch(actions.fetchToken(null, null, true)),\r\n authenticateToken: token => dispatch(actions.authenticateTokenAction(token)),\r\n clearNotVerifiedFlag: () => dispatch(actions.clearNotVerifiedUser()),\r\n };\r\n}\r\n\r\nconst RegistrationConfirmContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(RegistrationConfirm);\r\n\r\nexport default withStore(RegistrationConfirmContainer);\r\n","import moment from 'moment';\r\nimport React, { Component } from 'react';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport MessagePopUpNew from '../../../src/components/shared/MessagePopUpNew';\r\nimport { dateFormats } from '../../utils/dateUtils';\r\nimport { formatArrivalTime, formatDepartTime } from '../PlanAFlight/ThankyouScreen';\r\nimport Helpers from '../../utils/Helpers';\r\nimport { numberWithCommas } from '../../utils/parserUtils';\r\nimport { quoteQueryEmail, quoteQueryEmailSubject } from 'constants/PAFConstants';\r\nimport { RAF_PAGE_URL, QUOTE_SUMMARY_PAGE_URL } from '../../configs/constants';\r\nimport OffersMap from '../OfferMap';\r\nimport { saveToLocal } from '../../utils/cache';\r\nimport { QUOTE_OBJECT } from '../../constants/localStorageKeys';\r\nimport { getAircraftByField } from '../../utils/aircraftUtils';\r\nimport { Link, Element } from 'react-scroll';\r\nconst glex = \"/legacy/static/img/icons/GLEX-icon.svg\";\r\n\r\n\r\nclass ActiveQuotes extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageNumber: 1,\r\n quotes: true,\r\n loadMore: false,\r\n showMap: {},\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { fetchQuotes } = this.props;\r\n const { pageNumber } = this.state;\r\n fetchQuotes('QUOTED', pageNumber);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { quotes, isQuoteLoading, error, airportError, isQuoteLoadMoreLoading } = nextProps;\r\n if (!isQuoteLoading && (this.props.isQuoteLoading !== isQuoteLoading)) {\r\n if (!Object.keys(quotes).length) {\r\n this.setState({ quotes: false })\r\n } else if (Object.keys(quotes).length < 10) {\r\n this.setState({ loadMore: false })\r\n this.fetchAirports(quotes);\r\n } else {\r\n this.setState({ loadMore: true })\r\n this.fetchAirports(quotes);\r\n }\r\n }\r\n if (error || airportError) {\r\n this.messagePopup.show();\r\n }\r\n if (!isQuoteLoadMoreLoading && (this.props.isQuoteLoadMoreLoading !== isQuoteLoadMoreLoading)) {\r\n if (Object.keys(quotes).length < 10 || (Object.keys(quotes).length === Object.keys(this.props.quotes).length)) {\r\n this.setState({ loadMore: false })\r\n }\r\n else {\r\n this.fetchAirports(quotes);\r\n }\r\n }\r\n }\r\n\r\n fetchAirports = (quotes) => {\r\n const ids = [];\r\n Object.keys(quotes).forEach(quoteId => {\r\n const quote = quotes[quoteId];\r\n const { legs } = quote;\r\n legs.forEach(leg => {\r\n ids.push(leg.departureAirportId);\r\n ids.push(leg.arrivalAirportId);\r\n })\r\n })\r\n if (ids.length)\r\n this.props.getAirportById([...new Set(ids)]);\r\n }\r\n\r\n loadMore = () => {\r\n this.setState({ pageNumber: this.state.pageNumber + 1 }, () => {\r\n this.props.fetchQuotes('QUOTED', this.state.pageNumber);\r\n });\r\n }\r\n\r\n handleEmailUs = (id) => {\r\n const emailUsWindow =\r\n window.open(`mailto:${quoteQueryEmail}?Subject=${quoteQueryEmailSubject} ${id}`);\r\n setTimeout(() => {\r\n emailUsWindow.close();\r\n }, 3000);\r\n }\r\n\r\n showMap = (id) => {\r\n const map = { ...this.state.showMap }\r\n map[id] = true;\r\n this.setState({\r\n showMap: map\r\n });\r\n }\r\n\r\n closeMap = (id) => {\r\n const map = { ...this.state.showMap }\r\n map[id] = false;\r\n this.setState({\r\n showMap: map\r\n });\r\n }\r\n\r\n redirectToEditPage = (quoteId) => {\r\n const URL = RAF_PAGE_URL + `?quoteId=${quoteId}`;\r\n window.open(URL, '_self');\r\n }\r\n\r\n populateLegs = (legs) => {\r\n const { visitedAirportsFinder, aircraftsList } = this.props\r\n legs.forEach(leg => {\r\n leg.departureAirport = visitedAirportsFinder[leg.departureAirportId];\r\n leg.arrivalAirport = visitedAirportsFinder[leg.arrivalAirportId];\r\n leg.selectedAircraft = getAircraftByField(leg.aircraftId, aircraftsList);\r\n leg.arrivalTime = leg.arrivalAirportTimeLocal;\r\n leg.departTime = leg.departureAirportTimeLocal;\r\n leg.passengersCount = leg.passengers;\r\n });\r\n return legs;\r\n }\r\n\r\n sortQuotes = (quotes) => {\r\n const quoteArray = Object.values(quotes).sort(function (a, b) {\r\n const _a = a.requestedDate.split(\" \");\r\n const _b = b.requestedDate.split(\" \");\r\n const formattedDateA = moment(`${moment(_a[0], \"DD-MM-YYYY\").format('YYYY-MM-DD')}T${_a[1]}`);\r\n const formattedDateB = moment(`${moment(_b[0], \"DD-MM-YYYY\").format('YYYY-MM-DD')}T${_b[1]}`)\r\n return moment(formattedDateA).diff(moment(formattedDateB));\r\n }).reverse();\r\n return quoteArray.map((_quote, index) => {\r\n // if(index <=2) {\r\n return this.renderQuoteList(_quote)\r\n // }\r\n });\r\n }\r\n\r\n buyQuote = (quote) => {\r\n const { user } = this.props\r\n const { legs } = quote;\r\n const legArray = this.populateLegs(legs);\r\n quote.legs = legArray;\r\n saveToLocal(quote, QUOTE_OBJECT.replace('{username}', user.username));\r\n window.open(QUOTE_SUMMARY_PAGE_URL, '_self');\r\n }\r\n\r\n renderQuoteList = (quote) => {\r\n const { visitedAirportsFinder } = this.props;\r\n const { showMap } = this.state;\r\n const { legs } = quote;\r\n const firstLeg = legs[0];\r\n const lastLeg = legs[legs.length - 1];\r\n const formattedDate = moment(firstLeg.departureAirportTimeLocal.split('T')[0]).format(dateFormats.DDMMMYYYY);\r\n const departureAirport = visitedAirportsFinder[firstLeg.departureAirportId];\r\n const arrivalAirport = visitedAirportsFinder[lastLeg.arrivalAirportId];\r\n const time = legs.reduce((sum, element) => sum + Number(element.duration), 0);\r\n const arrivalTime = formatArrivalTime(lastLeg.departureAirportTimeLocal, lastLeg.arrivalAirportTimeLocal);\r\n const departTime = formatDepartTime(firstLeg.departureAirportTimeLocal);\r\n const isReturn = legs.length === 2 && firstLeg.departureAirportId === lastLeg.arrivalAirportId;\r\n const isMultiLeg = legs.length > 1 && isReturn === false;\r\n const formattedTime = `${Math.floor(time / 60)}h ${Helpers.roundTo5Minutes(\r\n Math.floor(time % 60)\r\n )}m`;\r\n const { orderStatus, requestedDate, quotedDate, expiryDate, currency, amount, id } = quote;\r\n const formattedRequestedDate = moment(moment(requestedDate.split(' ')[0], \"DD-MM-YYYY\")).format(dateFormats.DDMMMYYYY)\r\n const formattedQuotedDate = moment(moment(quotedDate.split(' ')[0], \"DD-MM-YYYY\")).format(dateFormats.DDMMMYYYY)\r\n const expireDiff = Math.floor(moment.duration(moment(expiryDate)\r\n .diff(moment())).asDays()) + 1;\r\n let expire = expireDiff > 0 ? `in ${expireDiff} Days` : 'Today';\r\n const passengersCount = firstLeg.passengers;\r\n const aircraftName = firstLeg.aircraftTypeName;\r\n const parsedAmount = numberWithCommas(amount);\r\n let iconClass = \"vistajet_departure_center\";\r\n if (isReturn) {\r\n iconClass = \"vistajet_departure_center vistajet_return_icon\";\r\n }\r\n else if (isMultiLeg) {\r\n iconClass = \"vistajet_departure_center vistajet_multicities_icon\";\r\n }\r\n\r\n return (
    \r\n\r\n div > .uk-card\">\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Subject to availability at the time of request\r\n
    \r\n
    \r\n
    \r\n {formattedDate}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {departureAirport ?\r\n
    \r\n {departureAirport.city}\r\n {departureAirport.name}\r\n
    :\r\n
    \r\n \r\n
    }\r\n
    \r\n
    \r\n
    \r\n {formattedTime}\r\n
    \r\n
    \r\n
    \r\n {arrivalAirport ?\r\n
    \r\n {arrivalAirport.city}\r\n {arrivalAirport.name}\r\n
    :\r\n
    \r\n \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {arrivalTime}\r\n
    \r\n
    \r\n {departTime}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {passengersCount}\r\n
    \r\n
    \r\n \"\"\r\n {aircraftName}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {orderStatus === 'Quoted' ?\r\n \r\n : null}\r\n \r\n
    \r\n {!showMap[id] &&\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Ref#{id}
    \r\n
    Requested: {formattedRequestedDate}
    \r\n {orderStatus === 'Quoted' ?
    \r\n
    Quoted: {formattedQuotedDate}
    \r\n
    Expires {expire}
    \r\n
    {currency} {parsedAmount}
    \r\n
    :
    {orderStatus}
    }\r\n this.buyQuote(quote)}\r\n >\r\n Buy Quote\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {showMap[id] &&\r\n
    \r\n \r\n this.closeMap(id)}\r\n className=\"vistajet_close_map_button\"\r\n >\r\n\r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n\r\n
    )\r\n }\r\n\r\n render() {\r\n const { isQuoteLoading, quotes, isQuoteLoadMoreLoading, error, airportError } = this.props;\r\n const { loadMore } = this.state;\r\n return (\r\n
    \r\n
    \r\n
    \r\n {isQuoteLoading\r\n ? (
    \r\n \r\n
    )\r\n : (
    \r\n {\r\n Object.keys(quotes).length ? this.sortQuotes(quotes)\r\n : (
    \r\n
    \r\n

    No quotes available

    \r\n \r\n
    \r\n
    )\r\n }\r\n
    \r\n {isQuoteLoadMoreLoading ?
    \r\n : loadMore &&\r\n \r\n }\r\n
    \r\n
    )}\r\n
    \r\n
    \r\n { this.messagePopup = messagePopup; }}\r\n content={error || airportError}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ActiveQuotes","import { connect } from 'react-redux';\r\nimport * as actions from '../../store/actions';\r\nimport withStore from '../../components/withStore';\r\nimport ActiveQuotes from '../../components/Quotes/ActiveQuotes';\r\n\r\nfunction mapStateToProps(state) {\r\n const { isGoogleMapsApiLoaded } = state.googleMap;\r\n const { isAirportByIdLoading, visitedAirportsFinder, error } = state.visitedAirports;\r\n const { isQuoteLoading, isQuoteLoadMoreLoading, activeQuotes, quoteError } = state.quotes;\r\n const { user } = state.user;\r\n const { aircraftsList } = state.aircrafts;\r\n return {\r\n user,\r\n isAirportByIdLoading,\r\n visitedAirportsFinder,\r\n isGoogleMapsApiLoaded,\r\n isQuoteLoading,\r\n isQuoteLoadMoreLoading,\r\n quotes: activeQuotes,\r\n error: quoteError,\r\n airportError: error,\r\n aircraftsList,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n getAirportById: id => dispatch(actions.getAirportById(id)),\r\n onGoogleMapsApiLoaded: () => dispatch(actions.onGoogleMapsApiLoaded()),\r\n fetchQuotes: (quoteType, pageNum) => dispatch(actions.fetchQuotes(quoteType, pageNum)),\r\n };\r\n}\r\n\r\nconst ActiveQuotesContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(ActiveQuotes);\r\n\r\nexport default withStore(ActiveQuotesContainer);\r\n","export const TAB_BALANCE = 'Balance';\r\nexport const TAB_STATEMENT = 'Statements';\r\nexport const TAB_UNBILLED = 'Unbilled Flights';","import React, { Component } from 'react';\r\nimport { convertToTitleCase } from '../utils/stringUtils';\r\nimport { scrollFunctionForTable } from '../utils/Helpers';\r\nimport moment from 'moment';\r\nimport { ITINERARY_DETAILS_PAGE_URL } from '../configs/constants';\r\nimport SkeletonLoaderAirport from '../components/shared/SkeletonLoaderAirport';\r\n\r\nexport default class UnbilledFlights extends Component {\r\n getAirportName = airport => {\r\n const { visitedAirportsFinder, isAirportByIdLoading, isAirportsLoading } = this.props;\r\n if (!visitedAirportsFinder) return '';\r\n const currentAirport = visitedAirportsFinder[airport];\r\n if (!currentAirport) {\r\n return (isAirportByIdLoading || isAirportsLoading) ?\r\n 'Loading...' : 'Unidentified Airports'\r\n }\r\n return `${convertToTitleCase((currentAirport || {}).name || '')} (${(currentAirport || '').icao || ''})`;\r\n }\r\n\r\n getItineraryDetailsRoute = ({ orderId = '', legId = '' }) =>\r\n ITINERARY_DETAILS_PAGE_URL.url\r\n .replace('{key}', 'orderId')\r\n .replace('{orderExtendifier}', orderId)\r\n .replace('{flightLegExtendifier}', legId)\r\n .replace('{itineraryType}', '')\r\n\r\n renderAirports = (dep, arr) => {\r\n const { visitedAirportsFinder, isAirportByIdLoading, isAirportsLoading } = this.props;\r\n if (!visitedAirportsFinder[dep] || !visitedAirportsFinder[arr]) {\r\n return (isAirportsLoading || isAirportByIdLoading) ?\r\n
    \r\n \r\n
    : 'Unidentified Airports';\r\n } return `${this.getAirportName(dep)} to ${this.getAirportName(arr)}`\r\n }\r\n\r\n renderUnbilledRow = ({\r\n departureAirportTimeLocal,\r\n arrivalAirportId,\r\n departureAirportId,\r\n orderId,\r\n legId,\r\n }) => (\r\n window.location = this.getItineraryDetailsRoute({ orderId, legId })}>\r\n \r\n {moment(departureAirportTimeLocal).utc().format('DD MMM YYYY')}\r\n \r\n \r\n {this.renderAirports(departureAirportId, arrivalAirportId)}\r\n \r\n \r\n
      \r\n
    • \r\n
    \r\n \r\n \r\n );\r\n\r\n render() {\r\n const { unbilledFlights = [] } = this.props;\r\n return (\r\n
    \r\n

    Unbilled Flights

    \r\n {\r\n !(unbilledFlights || []).length ?\r\n
    No Unbilled Flights Found.
    :\r\n
    \r\n { scrollFunctionForTable && scrollFunctionForTable() }\r\n \r\n \r\n {(unbilledFlights || []).map(this.renderUnbilledRow)}\r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport moment from 'moment';\r\nimport { getFiles } from '../utils/fileUtils';\r\nimport { convertToTitleCase } from '../utils/stringUtils';\r\nimport { scrollFunctionForTable } from '../utils/Helpers';\r\nimport SpinnerLoader from './shared/spinnerLoader';\r\nimport SkeletonLoaderAirport from '../components/shared/SkeletonLoaderAirport';\r\n\r\nexport default class CurrentBalance extends Component {\r\n isLoading = () => {\r\n const {\r\n isOtherFlight = false,\r\n contract: {\r\n accountId,\r\n aircraftTypeId,\r\n } = {},\r\n otherAircrafts = [],\r\n loadingMoreInvoices = [],\r\n } = this.props;\r\n if (isOtherFlight) {\r\n return loadingMoreInvoices\r\n .some(invoice => !!otherAircrafts.find(({ accountId, aircraftTypeId }) =>\r\n invoice.accountId === accountId &&\r\n invoice.aircraftTypeId === aircraftTypeId\r\n ));\r\n }\r\n return !!loadingMoreInvoices\r\n .find(invoice => (\r\n invoice.accountId === accountId &&\r\n invoice.aircraftTypeId === aircraftTypeId\r\n ));\r\n }\r\n\r\n shouldShowLoadMore = () => {\r\n const {\r\n isOtherFlight = false,\r\n otherContracts = [],\r\n contract = {},\r\n } = this.props;\r\n\r\n if (isOtherFlight) {\r\n return !!(otherContracts.filter(({ noMoreInvoices }) => !noMoreInvoices).length);\r\n } return !contract.noMoreInvoices;\r\n\r\n }\r\n\r\n getOtherFlights = contracts => contracts && contracts.filter(contract => !contract.aircraftName);\r\n\r\n getOtherInvoices = flights => {\r\n return flights.reduce((acc, curr) => {\r\n return [\r\n ...acc,\r\n ...curr.invoice,\r\n ]\r\n }, []);\r\n };\r\n\r\n fetchMoreInvoices = () => {\r\n const {\r\n token,\r\n contract: {\r\n accountId,\r\n aircraftTypeId,\r\n invoice,\r\n } = {},\r\n fetchMoreInvoices,\r\n isOtherFlight = false,\r\n otherContracts = [],\r\n } = this.props;\r\n if (isOtherFlight) {\r\n otherContracts.forEach((flight = {}) =>\r\n fetchMoreInvoices(token, (flight.invoice || []).length, flight.aircraftTypeId, flight.accountId))\r\n } else {\r\n fetchMoreInvoices(token, invoice.length, aircraftTypeId, accountId);\r\n }\r\n }\r\n\r\n getAirportName = airport => {\r\n const { visitedAirportsFinder } = this.props;\r\n if (!visitedAirportsFinder) return '';\r\n const currentAirport = visitedAirportsFinder[airport] || {};\r\n return `${convertToTitleCase(currentAirport.name || '')} (${currentAirport.icao || ''})`;\r\n }\r\n\r\n renderBalanceAsOf = ({ createdDate = '' }) => {\r\n return (\r\n createdDate ?\r\n

    \r\n Balance as of: {createdDate}\r\n

    \r\n :\r\n

    No Statements Found.

    \r\n )\r\n }\r\n\r\n\r\nrenderInvoiceRow = ({ deptUtc, description, legHoursDeducted, fileKey }, otherFlightSelected = false) => (\r\n \r\n \r\n {moment(deptUtc).format('DD MMM YYYY')}\r\n \r\n \r\n {description}\r\n \r\n {(+legHoursDeducted).toFixed(2)} Hrs\r\n \r\n
      \r\n
    • window.open(getFiles(fileKey, this.props.token || '', false), '_blank')}\r\n >
    • \r\n
    • window.open(getFiles(fileKey, this.props.token || '', false, true), '_blank')}\r\n >
    • \r\n
    \r\n
      \r\n
    • \r\n
      \r\n
        \r\n
      • window.open(getFiles(fileKey, this.props.token || '', false), '_blank')}\r\n >View
      • \r\n
      • window.open(getFiles(fileKey, this.props.token || '', false, true), '_blank')}\r\n >Download
      • \r\n
      \r\n
      \r\n
    \r\n \r\n \r\n)\r\n\r\nrender() {\r\n const {\r\n contract: {\r\n createdDate = '',\r\n contractStartDate,\r\n contractEndDate,\r\n hoursForYear = 0,\r\n hoursFlown = 0,\r\n remainingHours = 0,\r\n noMoreInvoices = true,\r\n invoice = [],\r\n } = {},\r\n lastStatement = {},\r\n loadingAccountStatements = false,\r\n isOtherFlight = false,\r\n otherContracts = [],\r\n otherFlightSelected = false,\r\n } = this.props;\r\n const invoices = isOtherFlight ? this.getOtherInvoices(otherContracts) : invoice;\r\n return (\r\n
    \r\n {!isOtherFlight && (\r\n
    \r\n
    \r\n

    Contract Date: \r\n {moment(contractStartDate).format('DD MMM YYYY')} - {moment(contractEndDate).format('DD MMM YYYY')}\r\n

    \r\n

    Contracted Hours: \r\n {hoursForYear}\r\n

    \r\n {\r\n loadingAccountStatements ?\r\n :\r\n this.renderBalanceAsOf(lastStatement)\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {hoursFlown}

    \r\n

    Hours Flown

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

    {remainingHours}

    \r\n

    Hours Remaining

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n\r\n
    \r\n

    Invoices

    \r\n {\r\n !invoices.length ?\r\n
    No Invoices Found
    :\r\n
    \r\n { scrollFunctionForTable && scrollFunctionForTable() }\r\n \r\n \r\n {invoices.map(invoice => this.renderInvoiceRow(invoice, otherFlightSelected))}\r\n \r\n
    \r\n
    \r\n }\r\n {this.shouldShowLoadMore() &&\r\n
    \r\n
    \r\n {\r\n this.isLoading() ?\r\n : 'Load More'\r\n }\r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n );\r\n}\r\n}\r\n","import { isBefore, parseISO } from 'date-fns';\r\nimport React, { Component } from 'react';\r\nimport { currentDate } from '../utils/PASUtils';\r\n\r\nexport default class StepperPagination extends Component {\r\n componentDidUpdate() {\r\n this.updateDisabled();\r\n }\r\n\r\n updateDisabled = () => {\r\n const left = document.getElementById('stepper-button-left');\r\n const right = document.getElementById('stepper-button-right');\r\n if (!left || !right) return;\r\n if (left.classList.contains('uk-invisible'))\r\n left.classList.add('disabled');\r\n else left.classList.remove('disabled');\r\n if (right.classList.contains('uk-invisible'))\r\n right.classList.add('disabled');\r\n else right.classList.remove('disabled');\r\n // const buttonToDisable = ((document.getElementsByClassName('uk-invisible') || [])[0] || null);\r\n // if (buttonToDisable) {\r\n // buttonToDisable.classList.add('disabled');\r\n // }\r\n }\r\n\r\n onClickYear = contract => {\r\n if (this.isFutureContract(contract || {}))\r\n return;\r\n this.props.updateCurrentYear((contract || {}));\r\n }\r\n\r\n isFutureContract = year => {\r\n const { contractPeriodStart } = year;\r\n const periodStart = parseISO(contractPeriodStart);\r\n return isBefore(currentDate, periodStart);\r\n }\r\n\r\n shouldArrowDisable = (contractualYear = [], selectedContractualYear = 0, direction) => {\r\n alert(`length:${contractualYear.length} selected:${selectedContractualYear}`);\r\n if (direction === 'left') {\r\n if (!selectedContractualYear) return true;\r\n if (selectedContractualYear === 1) return true;\r\n return false;\r\n }\r\n else {\r\n if (!selectedContractualYear) return false\r\n if ((Math.ceil(selectedContractualYear/5) - 1) === (Math.ceil(((contractualYear || []).length)/5) - 1))\r\n return true;\r\n return false;\r\n }\r\n }\r\n\r\n getTabClass = (contract) => {\r\n const { currentYear } = this.props;\r\n const stepperClass = 'vistajet_stepper_step'\r\n if (this.isFutureContract(contract || {}))\r\n return `${stepperClass} disabled`;\r\n if ((contract || {}) === currentYear) {\r\n return `${stepperClass} active`;\r\n } return stepperClass\r\n };\r\n\r\n renderTabContainer = () => {\r\n const {\r\n contractualYears = [],\r\n } = this.props;\r\n if (!(contractualYears || []).length) return null;\r\n const yearTabs = contractualYears.map(this.renderTab);\r\n return contractualYears.length > 5 ? (\r\n //
    \r\n // \r\n // {yearTabs}\r\n // \r\n //
    \r\n
    \r\n
    \r\n
      \r\n {yearTabs}\r\n
    \r\n
    \r\n\r\n \r\n \r\n\r\n
    \r\n ) : (\r\n
    \r\n
    \r\n
      \r\n {yearTabs}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderTab = (contract) => (\r\n
  • \r\n this.onClickYear(contract || {})}\r\n >\r\n {(contract || {}).periodNumber}\r\n \r\n
  • \r\n )\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n {this.renderTabContainer()}\r\n {/* \r\n 1\r\n 2\r\n 3\r\n 4\r\n 5\r\n */}\r\n
    \r\n
    \r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { getFiles } from '../utils/fileUtils';\r\nimport { scrollFunctionForTable } from '../utils/Helpers';\r\nimport SpinnerLoader from './shared/spinnerLoader';\r\nimport moment from 'moment';\r\n\r\nconst MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\r\n\r\nexport default class AccountStatementDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageNumber: 1,\r\n filter: {\r\n start: {\r\n month: '',\r\n year: '',\r\n },\r\n end: {\r\n month: '',\r\n year: '',\r\n },\r\n }\r\n }\r\n }\r\n\r\n isActiveMonth = (month, isStart = false) => {\r\n const { selectedStatement: { periodStart, periodEnd } } = this.props;\r\n if (isStart) {\r\n const { filter: {\r\n start,\r\n end,\r\n } } = this.state;\r\n if (start.year) {\r\n if (end.month && end.year) { \r\n return moment(`${month} ${start.year}`, 'MMM YYYY').isBetween(moment(periodStart), moment(`${end.month} ${end.year}`, 'MMM YYYY'), 'month', '[]');\r\n } \r\n return moment(`${month} ${start.year}`, 'MMM YYYY').isBetween(moment(periodStart), moment(periodEnd), 'month', '[]');\r\n } return true;\r\n } else {\r\n const { filter: {\r\n start,\r\n end,\r\n } } = this.state;\r\n if (end.year) {\r\n if (start.month && start.year) {\r\n return moment(`${month} ${end.year}`, 'MMM YYYY').isBetween(moment(`${start.month} ${start.year}`, 'MMM YYYY'), moment(periodEnd), 'month', '[]');\r\n } return moment(`${month} ${end.year}`, 'MMM YYYY').isBetween(moment(periodStart), moment(periodEnd), 'month', '[]');\r\n } return true;\r\n }\r\n }\r\n\r\n isActiveYear = (year, isStart = false) => {\r\n const { filter: { start, end } } = this.state;\r\n const { selectedStatement: { periodStart, periodEnd } } = this.props;\r\n if (isStart) {\r\n if (start.month) {\r\n if (end.month && end.year) {\r\n return moment(`${start.month} ${year}`, 'MMM YYYY').isBetween(moment(periodStart), moment(`${end.month} ${end.year}`, 'MMM YYYY'), 'month', '[]'); \r\n } return moment(`${start.month} ${year}`, 'MMM YYYY').isBetween(moment(periodStart), moment(periodEnd), 'month', '[]');\r\n } if (end.year === year && end.month === 'Jan') return false;\r\n return true;\r\n } else {\r\n if (end.month) {\r\n if (start.month && start.year) {\r\n return moment(`${end.month} ${year}`, 'MMM YYYY').isBetween(moment(`${start.month} ${start.year}`, 'MMM YYYY'), moment(periodEnd), 'month', '[]'); \r\n } return moment(`${end.month} ${year}`, 'MMM YYYY').isBetween(moment(periodStart), moment(periodEnd), 'month', '[]');\r\n } if (start.year === year && start.month === 'Dec') return false;\r\n return true;\r\n }\r\n }\r\n\r\n isDisabledMonth = (month, isStart = false) => {\r\n if (!month) return false;\r\n const {\r\n selectedStatement: {\r\n periodStart, periodEnd,\r\n }\r\n } = this.props;\r\n\r\n if (isStart) {\r\n const {\r\n filter: {\r\n start: {\r\n year = '',\r\n },\r\n }\r\n } = this.state;\r\n if (year)\r\n return !moment(`${month} ${year}`, 'MMM YYYY').isBetween(periodStart, periodEnd, 'date', '[]');\r\n return false;\r\n } else {\r\n const {\r\n filter: {\r\n end: {\r\n year = '',\r\n },\r\n }\r\n } = this.state;\r\n if (year)\r\n return !moment(`${month} ${year}`, 'MMM YYYY').isBetween(periodStart, periodEnd, 'date', '[]');\r\n return false;\r\n }\r\n }\r\n\r\n shouldDisbaleLoadMore = () => {\r\n const {\r\n filter: {\r\n start = {},\r\n end = {},\r\n } = {}\r\n } = this.state;\r\n\r\n return !(start.month && start.year && end.month && end.year);\r\n }\r\n\r\n getYears = () => {\r\n const { selectedStatement = {} } = this.props;\r\n const { periodStart, periodEnd } = selectedStatement;\r\n const startYear = +(moment(periodStart).format('YYYY'));\r\n const endYear = +(moment(periodEnd).format('YYYY'));\r\n if (!startYear || !endYear) return [];\r\n if (startYear === endYear) return [startYear];\r\n const years = [\r\n ...Array(endYear + 1).keys()\r\n ];\r\n return years.splice(startYear, (endYear + 1) - startYear);\r\n }\r\n\r\n getFilterValue = ({ month = '', year = '' }) => {\r\n if (month || year) {\r\n return `${month} ${year}`\r\n } return '';\r\n }\r\n\r\n handleClearFilter = () => {\r\n const shouldClear = !this.shouldDisbaleLoadMore();\r\n if (shouldClear) this.props.clearInvoiceFilter();\r\n this.setState({\r\n filter: {\r\n start: {\r\n month: '',\r\n year: '',\r\n },\r\n end: {\r\n month: '',\r\n year: '',\r\n },\r\n }\r\n });\r\n }\r\n\r\n handleFilterStart = (newFilter) => {\r\n const { start = {}, end = {} } = this.state.filter || {};\r\n const newStart = {\r\n month: newFilter.month || start.month || '',\r\n year: newFilter.year || start.year || '',\r\n };\r\n this.setState({\r\n filter: {\r\n ...(this.state.filter || {}),\r\n start: newStart,\r\n }\r\n }, () => {\r\n const { start = {}, end = {} } = this.state.filter || {};\r\n const shouldFilter = start.month && start.year && end.month && end.year;\r\n if (shouldFilter) {\r\n this.fetchAllInvoices();\r\n }\r\n });\r\n }\r\n\r\n handleFilterEnd = (newFilter) => {\r\n const { start = {}, end = {} } = this.state.filter || {};\r\n const newEnd = {\r\n month: newFilter.month || end.month || '',\r\n year: newFilter.year || end.year || '',\r\n };\r\n this.setState({\r\n filter: {\r\n ...(this.state.filter || {}),\r\n end: newEnd,\r\n }\r\n }, () => {\r\n const { start = {}, end = {} } = this.state.filter || {};\r\n const shouldFilter = start.month && start.year && end.month && end.year;\r\n if (shouldFilter) {\r\n this.fetchAllInvoices();\r\n }\r\n });\r\n }\r\n\r\n handleOnFilterChange = () => {\r\n const {\r\n token = '',\r\n fetchStatementInvoices,\r\n selectedStatement: {\r\n id = '',\r\n }\r\n } = this.props;\r\n const { filter: {\r\n start = {}, end = {},\r\n } } = this.state;\r\n const shouldFilter = start.month && start.year && end.month && end.month;\r\n if (shouldFilter) {\r\n this.fetchAllInvoices();\r\n }\r\n }\r\n\r\n getPlaceHolder = (isStart = false) => {\r\n const {\r\n selectedStatement: {\r\n periodStart, periodEnd,\r\n }\r\n } = this.props;\r\n return isStart ?\r\n moment(periodStart).format('MMM YYYY') :\r\n moment(periodEnd).format('MMM YYYY');\r\n }\r\n\r\n getFilteredInvoices = (invoices = []) => {\r\n if (!invoices) return;\r\n const { filter: {\r\n start = {}, end = {},\r\n } } = this.state;\r\n const shouldFilter = start.month && start.year && end.month && end.year;\r\n if (!shouldFilter) return invoices.sort(this.compareInvoiceDates);\r\n const filterDate = {\r\n periodStart: moment(`${start.month} ${start.year}`, 'MMM YYYY'),\r\n periodEnd: moment(`${end.month} ${end.year}`, 'MMM YYYY'),\r\n };\r\n return invoices.filter(invoice =>\r\n moment(invoice.invoiceDate).isBetween(\r\n filterDate.periodStart, filterDate.periodEnd, 'month', '[]'\r\n )\r\n ).sort(this.compareInvoiceDates);\r\n };\r\n\r\n fetchAllInvoices = () => {\r\n const {\r\n token = '',\r\n fetchStatementInvoices,\r\n selectedStatement: {\r\n id = '',\r\n }\r\n } = this.props;\r\n fetchStatementInvoices(token, id, 0, 0);\r\n }\r\n\r\n compareInvoiceDates = (prev, next) =>\r\n moment(prev.invoiceDate).diff(moment(next.invoiceDate));\r\n\r\n onClickLoadMore = () => {\r\n const {\r\n token = '',\r\n fetchStatementInvoices,\r\n selectedStatement: {\r\n id = '',\r\n },\r\n } = this.props;\r\n const { pageNumber } = this.state;\r\n const nextPage = pageNumber + 1;\r\n fetchStatementInvoices(token, id, nextPage);\r\n }\r\n\r\n onClickDownloadAll = () => {\r\n const {\r\n token = '',\r\n fetchZipUrl,\r\n selectedStatement: {\r\n id = ''\r\n },\r\n } = this.props;\r\n fetchZipUrl({\r\n accountStatementId: id,\r\n }, token);\r\n }\r\n\r\n componentDidMount() {\r\n const {\r\n token,\r\n fetchStatementInvoices,\r\n selectedStatement: {\r\n id = '',\r\n }\r\n } = this.props;\r\n fetchStatementInvoices(token, id);\r\n }\r\n\r\n componentWillReceiveProps = nextProps => {\r\n const { statementInvoices = [] } = this.props;\r\n if (statementInvoices && statementInvoices.length && nextProps.statementInvoices !== statementInvoices &&\r\n nextProps.statementInvoices.length > statementInvoices.length) {\r\n const { pageNumber } = this.state;\r\n this.setState({ pageNumber: pageNumber + 1 });\r\n }\r\n }\r\n\r\n renderInvoiceRow = ({ invoiceDate, description, billedHours, fileKey }) => (\r\n \r\n {invoiceDate}\r\n {description}\r\n {(+billedHours).toFixed(2)} Hrs\r\n \r\n
      \r\n
    • \r\n
    • \r\n
    \r\n
      \r\n
    • \r\n
      \r\n
        \r\n
      • View
      • \r\n
      • Download
      • \r\n
      \r\n
      \r\n
    \r\n \r\n \r\n );\r\n\r\n render() {\r\n const {\r\n onBackButtonClick,\r\n statementInvoices = [],\r\n statementInvoicesError = '',\r\n loadingStatementInvoices = false,\r\n loadingMoreStatementInvoices = false,\r\n statementInvoicesLastPage = false,\r\n loadingZipUrl = false,\r\n fetchZipUrl,\r\n } = this.props;\r\n const { filter: { start = {}, end = {} } } = this.state;\r\n const filteredInvoices = this.getFilteredInvoices(statementInvoices);\r\n if (loadingStatementInvoices) {\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n };\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n

    Invoices

    \r\n
    \r\n {statementInvoices &&
    \r\n
    \r\n

    From

    \r\n \r\n
    \r\n
    \r\n \r\n {this.getFilterValue(start) || this.getPlaceHolder(true)}\r\n
    \r\n
    \r\n
    \r\n Month\r\n \r\n {MONTHS.filter(m => this.isActiveMonth(m, true)).map((month, index) => (\r\n this.handleFilterStart({ month })}\r\n // value={month}\r\n >{month}\r\n ))}\r\n \r\n
    \r\n
    \r\n Year\r\n \r\n {this.getYears().filter(y => this.isActiveYear(y, true)).map((year, index) => (\r\n this.handleFilterStart({ year })}\r\n // value={year}\r\n >{year}\r\n ))}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    To

    \r\n \r\n
    \r\n
    \r\n \r\n {this.getFilterValue(end) || this.getPlaceHolder()}\r\n
    \r\n
    \r\n
    \r\n Month\r\n \r\n {MONTHS.filter(m => this.isActiveMonth(m)).map((month, index) => (\r\n this.handleFilterEnd({ month })}\r\n // value={month}\r\n >{month}\r\n ))}\r\n \r\n
    \r\n
    \r\n Year\r\n \r\n {this.getYears().filter(y => this.isActiveYear(y)).map((year, index) => (\r\n this.handleFilterEnd({ year })}\r\n // value={year}\r\n >{year}\r\n ))}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    }\r\n
    \r\n\r\n
    \r\n { scrollFunctionForTable && scrollFunctionForTable() }\r\n \r\n \r\n {(filteredInvoices || []).length ?\r\n filteredInvoices.map(this.renderInvoiceRow) :\r\n No Invoices Found.}\r\n \r\n
    \r\n
    \r\n {
    \r\n
    \r\n {!statementInvoicesLastPage && (\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n {(statementInvoices || []).length && {loadingZipUrl ? : 'Download All'}\r\n }\r\n
    \r\n
    }\r\n
    \r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport StepperPagination from './StepperPagination';\r\nimport AccountStatementDetails from './AccountStatementDetails';\r\nimport { isActiveContract } from '../utils/PASUtils';\r\nimport { getFiles } from '../utils/fileUtils';\r\nimport { scrollFunctionForTable } from '../utils/Helpers';\r\nimport SpinnerLoader from './shared/spinnerLoader';\r\nimport moment from 'moment';\r\n\r\nexport default class AccountStatement extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n currentYear: null,\r\n selectedStatement: null,\r\n }\r\n }\r\n\r\n onBackButtonClick = () => {\r\n const { selectedContractualYear } = this.props;\r\n this.setState({ selectedStatement: null }, () =>\r\n this.updateSelectedStatement(selectedContractualYear));\r\n }\r\n\r\n onStatementClick = selectedStatement =>\r\n this.setState({ selectedStatement });\r\n\r\n updateCurrentYear = currentYear => {\r\n this.setState({ currentYear });\r\n this.props.selectContractualYear(currentYear.periodNumber);\r\n }\r\n\r\n getCurrentStatements = statements =>\r\n (statements || []).filter(({ periodNumber }) =>\r\n periodNumber === (this.state.currentYear || {}).periodNumber);\r\n\r\n setCurrentTab = index => {\r\n const stepper = document.getElementById('contract-stepper');\r\n if (stepper) {\r\n const activeSlideTab = Math.ceil(index/5) - 1;\r\n window.UIkit.slider(stepper).show(activeSlideTab);\r\n }\r\n }\r\n\r\n updateSelectedStatement = index => {\r\n const stepper = document.getElementById('contract-stepper');\r\n if (stepper) {\r\n const activeSlideTab = Math.ceil(index/5) - 1;\r\n window.UIkit.slider(stepper).show(activeSlideTab);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const {\r\n contract: {\r\n accountId,\r\n aircraftTypeId,\r\n },\r\n token,\r\n fetchAccountStatements,\r\n } = this.props;\r\n \r\n if (accountId && aircraftTypeId && token)\r\n fetchAccountStatements(token, accountId, aircraftTypeId);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { accountStatementInfo, contract, fetchAccountStatements, selectContractualYear } = this.props;\r\n if (nextProps.contract && nextProps.contract !== contract) {\r\n this.setState({ selectedStatement: null });\r\n fetchAccountStatements(\r\n nextProps.token,\r\n (nextProps.contract || {}).accountId,\r\n (nextProps.contract || {}).aircraftTypeId\r\n );\r\n }\r\n if (\r\n nextProps.accountStatementInfo !== accountStatementInfo && \r\n (nextProps.accountStatementInfo || []).length\r\n ) {\r\n const currentYear = (nextProps.accountStatementInfo || []).find(isActiveContract);\r\n if (currentYear) {\r\n this.setState({ currentYear: currentYear || {} });\r\n selectContractualYear((currentYear || {}).periodNumber);\r\n \r\n } else {\r\n const firstYear = (nextProps.accountStatementInfo || [])[0] || {};\r\n this.setState({ currentYear: firstYear });\r\n selectContractualYear(1);\r\n }\r\n }\r\n }\r\n\r\n componentDidUpdate({ accountStatementInfo }) {\r\n if (this.props.accountStatementInfo !== accountStatementInfo) {\r\n const currentYear = (this.props.accountStatementInfo || []).find(isActiveContract);\r\n if (currentYear) {\r\n const currentYearIndex = (this.props.accountStatementInfo || []).indexOf(currentYear);\r\n this.setCurrentTab(currentYearIndex);\r\n }\r\n }\r\n }\r\n\r\n renderStatementRow = (statement = {}) => (\r\n \r\n \r\n {`${moment(statement.periodStart).format('DD MMM YYYY')} - ${moment(statement.periodEnd).format('DD MMM YYYY')}`}\r\n \r\n {+(statement.totalBilledHours).toFixed(2)} Hrs\r\n \r\n
      \r\n
    • \r\n
    • \r\n
    • this.onStatementClick(statement)}\r\n >
    • \r\n
    \r\n
      \r\n
    • \r\n
      \r\n
        \r\n
      • View
      • \r\n
      • Download
      • \r\n
      • this.onStatementClick(statement)}\r\n >Breakdown
      • \r\n
      \r\n
      \r\n
    \r\n \r\n \r\n );\r\n\r\n renderStatementRows = statements => (\r\n statements\r\n .map(this.renderStatementRow)\r\n )\r\n\r\n render() {\r\n const {\r\n accountStatementInfo,\r\n accountStatements,\r\n loadingAccountStatements,\r\n fetchStatementInvoices,\r\n loadingStatementInvoices,\r\n loadingMoreStatementInvoices,\r\n statementInvoices,\r\n statementInvoicesError = '',\r\n statementInvoicesLastPage,\r\n token,\r\n fetchZipUrl,\r\n clearInvoiceFilter,\r\n loadingZipUrl = false,\r\n selectedContractualYear = 0,\r\n } = this.props;\r\n const {\r\n currentYear,\r\n selectedStatement,\r\n } = this.state;\r\n const currentStatements = this.getCurrentStatements(accountStatements);\r\n if (selectedStatement)\r\n return (\r\n \r\n );\r\n return loadingAccountStatements ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n {accountStatementInfo && (\r\n
    \r\n
    \r\n

    Period: \r\n {`${(currentYear || {}).contractPeriodStart} - ${(currentYear || {}).contractPeriodEnd}`}\r\n

    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n

    Statements

    \r\n {(currentStatements || []).length ? (\r\n
    \r\n
    \r\n { scrollFunctionForTable && scrollFunctionForTable() }\r\n \r\n \r\n {this.renderStatementRows(currentStatements)}\r\n \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    No Statements Found.
    \r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { TAB_BALANCE, TAB_STATEMENT, TAB_UNBILLED } from '../constants/PASConstants';\r\nimport UnbilledFlights from './UnbilledFlights';\r\nimport CurrentBalance from './CurrentBalance';\r\nimport SpinnerLoader from './shared/spinnerLoader'\r\nimport AccountStatement from './AccountStatement';\r\nimport MessagePopup from './shared/MessagePopUpNew';\r\n\r\nexport default class ProgramAccountStatement extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n currentContract: 0,\r\n content: '',\r\n selectedContractualYear: 0,\r\n showDisclaimer: true,\r\n };\r\n }\r\n\r\n showError = (errorField = '') => {\r\n const errorPopup = this[errorField];\r\n if (errorPopup) errorPopup.show();\r\n }\r\n\r\n showUnbilledError = () => {\r\n this.unbilledErrorPopup.show();\r\n }\r\n\r\n showBilledError = () => {\r\n this.billedErrorPopup.show();\r\n }\r\n\r\n onSelectStatementTab = index => {\r\n const stepper = document.getElementById('contract-stepper');\r\n if (stepper) {\r\n const activeSlideTab = Math.ceil(index / 5) - 1;\r\n window.UIkit.slider(stepper).show(activeSlideTab);\r\n this.updateDisabled();\r\n }\r\n }\r\n\r\n updateDisabled = () => {\r\n const left = document.getElementById('stepper-button-left');\r\n const right = document.getElementById('stepper-button-right');\r\n if (!left || !right) return;\r\n if (left.classList.contains('uk-invisible'))\r\n left.classList.add('disabled');\r\n else left.classList.remove('disabled');\r\n if (right.classList.contains('uk-invisible'))\r\n right.classList.add('disabled');\r\n else right.classList.remove('disabled');\r\n }\r\n\r\n hasInvoices = flights => !!flights.reduce((acc, curr) => [\r\n ...acc, ...curr.invoice,\r\n ], []).length;\r\n\r\n selectContractualYear = selectedContractualYear =>\r\n this.setState({ selectedContractualYear }, this.updateDisabled);\r\n\r\n componentDidMount() {\r\n const { userToken = '' } = this.props;\r\n this.switchContent(TAB_BALANCE);\r\n this.props.fetchVisitedAirports();\r\n if (userToken) {\r\n this.props.fetchUnbilledFlights(userToken);\r\n this.props.fetchRecentInvoices(userToken);\r\n }\r\n }\r\n\r\n componentWillReceiveProps({\r\n billedFlights = [],\r\n unbilledFlights = [],\r\n visitedAirportsFinder = {},\r\n getAirportById,\r\n billedFlightsError = '',\r\n unbilledFlightsError = '',\r\n accountStatementsError = '',\r\n statementInvoicesError = '',\r\n zipUrlError = '',\r\n }) {\r\n if (!unbilledFlightsError && !billedFlightsError && (billedFlights || []).length && unbilledFlights)\r\n this.setState({ isError: false });\r\n if (unbilledFlightsError || billedFlightsError || (!(billedFlights || []).length) || !unbilledFlights)\r\n this.setState({ isError: true });\r\n if (unbilledFlightsError) return this.showError('unbilledErrorPopup');\r\n if (billedFlightsError) return this.showError('billedErrorPopup');\r\n\r\n if (accountStatementsError) this.showError('accountStatementsErrorPopup');\r\n if (statementInvoicesError) this.showError('statementInvoicesErrorPopup');\r\n if (zipUrlError) this.showError('zipUrlErrorPopup');\r\n\r\n if (Object.keys(visitedAirportsFinder).length && Object.keys(unbilledFlights || {}).length) {\r\n const missingAirports = [];\r\n Object.values(unbilledFlights).forEach(contract => {\r\n contract.forEach(flight => {\r\n const depId = (flight || {}).departureAirportId;\r\n const arrId = (flight || {}).arrivalAirportId;\r\n if (depId && !visitedAirportsFinder[depId])\r\n missingAirports.push(depId);\r\n if (arrId && !visitedAirportsFinder[arrId])\r\n missingAirports.push(arrId);\r\n });\r\n })\r\n if (missingAirports.length) {\r\n getAirportById(missingAirports);\r\n }\r\n }\r\n }\r\n\r\n getOtherAircrafts = () => {\r\n const { billedFlights = [] } = this.props;\r\n return billedFlights\r\n .filter(({ aircraftName = '' }) => !aircraftName)\r\n .map(({ accountId, aircraftTypeId }) => ({ accountId, aircraftTypeId }));\r\n }\r\n\r\n getOtherContracts = () => {\r\n const { billedFlights = [] } = this.props;\r\n return billedFlights.filter(({ aircraftName }) => !aircraftName);\r\n }\r\n\r\n getOtherFlights = contracts => contracts && contracts.filter(contract => !contract.aircraftName);\r\n\r\n getBilledFlights = contracts => contracts && contracts.filter(contract => contract.aircraftName);\r\n\r\n getUnbilledFlights = index => {\r\n const { billedFlights, unbilledFlights } = this.props;\r\n if (index === this.getBilledFlights(billedFlights).length) return [];\r\n return Object.keys(unbilledFlights).length ?\r\n unbilledFlights[\r\n this.getBilledFlights(billedFlights)[index].aircraftTypeId\r\n ] : [];\r\n }\r\n\r\n getActiveContract = index => {\r\n const { billedFlights } = this.props;\r\n const contractFlights = this.getBilledFlights(billedFlights);\r\n return contractFlights.length ? contractFlights[index] : {};\r\n }\r\n\r\n switchContent = content => {\r\n const { selectedContractualYear = 0 } = this.state;\r\n this.setState({ content }, () => {\r\n setTimeout(() => {\r\n if (content === TAB_STATEMENT && selectedContractualYear)\r\n this.onSelectStatementTab(selectedContractualYear);\r\n }, 400);\r\n });\r\n }\r\n\r\n switchContract = index => {\r\n const { billedFlights = [] } = this.props;\r\n const { currentContract } = this.state;\r\n const contractedFlights = this.getBilledFlights(billedFlights);\r\n if (index === contractedFlights.length) {\r\n if (currentContract === contractedFlights.length) return;\r\n this.setState({ content: TAB_BALANCE });\r\n window.UIkit.switcher('#component-nav').show(0);\r\n }\r\n this.setState({ currentContract: index }, () => {\r\n if (currentContract === contractedFlights.length) {\r\n document.getElementsByClassName('vistajet_side_tab_list')[0]\r\n .children[0]\r\n .classList.add('uk-active');\r\n }\r\n })\r\n };\r\n\r\n renderTabs = () => {\r\n const { billedFlights } = this.props;\r\n const { currentContract = 0 } = this.state;\r\n const otherFlights = this.getOtherFlights(billedFlights);\r\n const contractedFlights = this.getBilledFlights(billedFlights);\r\n return (\r\n
    \r\n {(contractedFlights || [])\r\n .map((contract, index) => (\r\n this.switchContract(index)}>\r\n {(contract && contract.aircraftName) || ''}\r\n \r\n ))}\r\n {(otherFlights || []).length && this.hasInvoices(otherFlights) ? (\r\n this.switchContract(contractedFlights.length)}\r\n >\r\n Other Flights\r\n \r\n ) : null}\r\n
    \r\n );\r\n }\r\n\r\n renderSideMenu = () => (\r\n
      :not(.uk-nav-header); swiping: false;\">\r\n
    • this.switchContent(TAB_BALANCE)}>\r\n {TAB_BALANCE}\r\n
    • \r\n
    • this.switchContent(TAB_STATEMENT)}>\r\n {TAB_STATEMENT}\r\n
    • \r\n
    • this.switchContent(TAB_UNBILLED)}>\r\n {TAB_UNBILLED}\r\n
    • \r\n
    \r\n );\r\n\r\n render() {\r\n const {\r\n currentContract = 0,\r\n isError = false,\r\n selectedContractualYear = 0,\r\n showDisclaimer = false,\r\n } = this.state;\r\n const {\r\n userToken = '',\r\n unbilledFlights = [],\r\n unbilledFlightsError = '',\r\n billedFlights = [],\r\n billedFlightsError = '',\r\n loadingUnbilledFlights = false,\r\n loadingBilledFlights = false,\r\n loadingMoreInvoices = [],\r\n loadingAccountStatements = false,\r\n loadingStatementInvoices = false,\r\n loadingMoreStatementInvoices = false,\r\n loadingZipUrl = false,\r\n statementInvoicesLastPage = false,\r\n visitedAirportsFinder,\r\n fetchMoreInvoices,\r\n fetchAccountStatements,\r\n fetchStatementInvoices,\r\n accountStatementInfo,\r\n accountStatements,\r\n accountStatementsError = '',\r\n statementInvoices,\r\n statementInvoicesError = '',\r\n fetchZipUrl,\r\n getAirportById,\r\n clearInvoiceFilter,\r\n clearError,\r\n isAirportByIdLoading = false,\r\n isAirportsLoading = false,\r\n zipUrlError = '',\r\n } = this.props;\r\n const otherFlightSelected = currentContract === (this.getBilledFlights(billedFlights) || []).length;\r\n return (\r\n
    \r\n
    \r\n

    Program Account Balance

    \r\n {(loadingUnbilledFlights || loadingBilledFlights) ?\r\n
    \r\n \r\n
    \r\n : (\r\n isError ? (\r\n
    div > ul; row: false\">\r\n
    \r\n

    No Invoices Available.

    \r\n
    \r\n
    \r\n ) : (\r\n
    div > ul; row: false\">\r\n
    \r\n {this.renderTabs()}\r\n
    \r\n {!otherFlightSelected &&
    \r\n {this.renderSideMenu()}\r\n
    }\r\n\r\n
    \r\n \r\n
  • \r\n \r\n
  • \r\n {!otherFlightSelected &&\r\n
  • \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.unbilledErrorPopup = e}\r\n content={unbilledFlightsError}\r\n onExited={() => clearError({ errorField: 'unbilledFlightsError' })}\r\n />\r\n this.billedErrorPopup = e}\r\n content={billedFlightsError}\r\n onExited={() => clearError({ errorField: 'billedFlightsError' })}\r\n />\r\n this.accountStatementsErrorPopup = e}\r\n content={accountStatementsError}\r\n onExited={() => clearError({ errorField: 'accountStatementsError' })}\r\n />\r\n this.statementInvoicesErrorPopup = e}\r\n content={statementInvoicesError}\r\n onExited={() => clearError({ errorField: 'statementInvoicesError' })}\r\n />\r\n this.zipUrlErrorPopup = e}\r\n content={zipUrlError}\r\n onExited={() => clearError({ errorField: 'zipUrlError' })}\r\n />\r\n {showDisclaimer &&
    \r\n this.setState({ showDisclaimer: false })}>\r\n \r\n \r\n \r\n \r\n \r\n

    This statement is provisional and subject to change. A formal statement will be made available to you periodically by VistaJet Finance department.

    \r\n
    }\r\n
    \r\n );\r\n }\r\n};\r\n","import { connect } from 'react-redux';\r\n\r\nimport withStore from 'components/withStore';\r\nimport ProgramAccountStatement from '../components/ProgramAccountStatement';\r\n\r\nimport * as actions from '../store/actions';\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchUnbilledFlights: token => dispatch(actions.fetchUnbilledFlightsAction(token)),\r\n fetchRecentInvoices: (token, currentCount, aircraftTypeId) =>\r\n dispatch(actions.fetchRecentInvoicesAction(token, currentCount, aircraftTypeId)),\r\n fetchVisitedAirports: () => dispatch(actions.fetchAllVisitedAirports()),\r\n fetchMoreInvoices: (token, currentCount, aircraftTypeId, accountId) =>\r\n dispatch(actions.fetchMoreInvoicesAction(token, currentCount, aircraftTypeId, accountId)),\r\n fetchAccountStatements: (token, aircraftTypeId, accountId) =>\r\n dispatch(actions.fetchAccountStatementsAction(token, aircraftTypeId, accountId)),\r\n fetchStatementInvoices: (token, accountStatementId, pageNumber, pageSize) =>\r\n dispatch(actions.fetchStatementInvoicesAction(token, accountStatementId, pageNumber, pageSize)),\r\n fetchZipUrl: (key, token ) => dispatch(actions.fetchZipUrlAction(key, token)),\r\n getAirportById: id => dispatch(actions.getAirportById(id)),\r\n clearInvoiceFilter: () => dispatch(actions.clearInvoiceFilter()),\r\n clearError: errorField => dispatch(actions.clearPasError(errorField)),\r\n})\r\n\r\nconst mapStateToProps = ({ PASData, visitedAirports, token }) => ({\r\n unbilledFlights: PASData.unbilledFlights,\r\n loadingUnbilledFlights: PASData.loadingUnbilledFlights,\r\n unbilledFlightsError: PASData.unbilledFlightsError,\r\n billedFlights: PASData.billedFlights,\r\n loadingBilledFlights: PASData.loadingBilledFlights,\r\n billedFlightsError: PASData.billedFlightsError,\r\n loadingMoreInvoices: PASData.loadingMoreBilledFlights,\r\n moreInvoicesError: PASData.moreBilledFlightsError,\r\n visitedAirports: visitedAirports.visitedAirports,\r\n isAirportsLoading: visitedAirports.isAirportsLoading,\r\n visitedAirportsFinder: visitedAirports.visitedAirportsFinder,\r\n accountStatementInfo: PASData.accountStatementInfo,\r\n accountStatements: PASData.accountStatements,\r\n accountStatementsError: PASData.accountStatementsError,\r\n loadingAccountStatements: PASData.loadingAccountStatements,\r\n statementInvoices: PASData.statementInvoices,\r\n statementInvoicesLastPage: PASData.statementInvoicesLastPage,\r\n loadingStatementInvoices: PASData.loadingStatementInvoices,\r\n loadingMoreStatementInvoices: PASData.loadingMoreStatementInvoices,\r\n statementInvoicesError: PASData.statementInvoicesError,\r\n loadingZipUrl: PASData.loadingZipUrl,\r\n zipUrlError: PASData.zipUrlError,\r\n isAirportByIdLoading: visitedAirports.isAirportByIdLoading,\r\n userToken: (token || {}).token || '',\r\n});\r\n\r\nconst PASContainer = connect(mapStateToProps, mapDispatchToProps)(ProgramAccountStatement);\r\n\r\nexport default withStore(PASContainer);\r\n","import React, { Component } from 'react';\r\nimport { concatenateStrings } from '../../../utils/stringUtils';\r\n\r\nexport default class UserDetailCard extends Component {\r\n\r\n renderUserDetailCard = () => {\r\n const { toggleIsUserEditDetails, user } = this.props;\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    My Details

    \r\n
    \r\n
    \r\n Edit Details\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Full Name\r\n
    \r\n {concatenateStrings(\r\n user.user && user.user.firstName,\r\n user.user && user.user.lastName,\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Email\r\n
    \r\n {user.user && user.user.username}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Number\r\n
    \r\n {user.user && user.user.phoneNumber}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n render() {\r\n return this.renderUserDetailCard();\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport moment from 'moment';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport Calendar from '../../shared/ReactCalendar';\r\nimport ConfirmationPopUp from '../../shared/ConfirmationPopUpNew';\r\nimport IntlTelphoneInput from '../../shared/PhoneNumberSelector';\r\nimport MessagePopUp from '../../shared/MessagePopUp';\r\nimport SpinnerLoader from '../../shared/spinnerLoader';\r\nimport {\r\n getFirstChars,\r\n} from '../../../utils/stringUtils';\r\nimport validateUserProfileForm from '../../../utils/Validators/AddEditUserProfileDetailValidator';\r\nimport { LEFT_BUTTON_TEXT, RIGHT_BUTTON_TEXT, CONFIRMATION_MESSAGE, CONFIRMATION_TITLE } from '../../../constants/DirtyPopupConstant';\r\nimport dirtystateSingleTon from '../../../validators/validateDirty';\r\nimport SPAConstants from '../../../constants/SPAConstants';\r\n\r\nexport default class UserDetailForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n firstName: '',\r\n lastName: '',\r\n dateOfBirth: '',\r\n phoneNumber: '',\r\n isPhoneNumberValid: false,\r\n email: '',\r\n errors: {},\r\n popupMessage: '',\r\n isFieldsChanged: false,\r\n };\r\n this.oldState = null;\r\n this.emailChanged = false;\r\n }\r\n\r\n componentDidMount() {\r\n this.populateValues();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.user.user !== nextProps.user.user\r\n && nextProps.user.isProfileUpdated\r\n && !this.emailChanged\r\n ) {\r\n this.emailChanged = false;\r\n this.oldState = null;\r\n this.props.toggleIsUserEditDetails();\r\n }\r\n if (this.props.user.user !== nextProps.user.user\r\n && nextProps.user.isProfileUpdated\r\n && this.emailChanged\r\n ) {\r\n if (nextProps.user.user) {\r\n this.props.logout(nextProps.user.user.userToken).then(() => {\r\n this.redirectToHome();\r\n }, this.handleApiErrors);\r\n }\r\n }\r\n if (nextProps.user.isProfileUpdateError) {\r\n window.UIkit.modal('#UserProfileUpdateErrorPopUp').show();\r\n }\r\n }\r\n\r\n populateValues = () => {\r\n const { user } = this.props.user;\r\n const forState = {\r\n firstName: user.firstName || '',\r\n lastName: user.lastName || '',\r\n email: user.username || '',\r\n dateOfBirth: (user.dateOfBirth && user.dateOfBirth.length !== 0) && moment(user.dateOfBirth) || '',\r\n };\r\n this.setState(forState);\r\n // Preserving user original state\r\n this.oldState = forState;\r\n this.oldState.phoneNumber = user.phoneNumber || '';\r\n // call this handler to update state of phoneNumber\r\n this.handlePhoneNumberChange(true, user.phoneNumber);\r\n };\r\n\r\n validateForm = () => {\r\n const {\r\n firstName,\r\n lastName,\r\n dateOfBirth,\r\n phoneNumber,\r\n isPhoneNumberValid,\r\n email,\r\n } = this.state;\r\n\r\n const res = validateUserProfileForm({\r\n firstName,\r\n lastName,\r\n dateOfBirth,\r\n phoneNumber,\r\n isPhoneNumberValid,\r\n email,\r\n });\r\n if (res.isError) {\r\n this.setState({\r\n errors: res,\r\n });\r\n } else {\r\n if (this.emailChanged) {\r\n this.emailPopUp.show();\r\n } else {\r\n this.updateProfile();\r\n }\r\n }\r\n }\r\n\r\n updateProfile = () => {\r\n const {\r\n updateUserProfileAction,\r\n } = this.props;\r\n const {\r\n firstName,\r\n lastName,\r\n dateOfBirth,\r\n phoneNumber,\r\n isPhoneNumberValid,\r\n email,\r\n } = this.state;\r\n const {\r\n user,\r\n } = this.props.user;\r\n const payload = {\r\n firstName,\r\n lastName,\r\n dateOfBirth: moment(dateOfBirth),\r\n phoneNumber,\r\n isPhoneNumberValid,\r\n email,\r\n };\r\n updateUserProfileAction(payload, user).then(() => { dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false) }, this.handleApiErrors);\r\n if (this.emailChanged) {\r\n // This function stops the notification from showing when\r\n // user has changed his/her email\r\n // toggleShowNotification();\r\n this.closePopup(this.emailPopUp);\r\n }\r\n }\r\n\r\n compareOldAndNewValues = () => {\r\n const {\r\n firstName,\r\n lastName,\r\n email,\r\n dateOfBirth,\r\n phoneNumber,\r\n isFieldsChanged,\r\n } = this.state;\r\n const newState = {\r\n firstName,\r\n lastName,\r\n email,\r\n dateOfBirth,\r\n phoneNumber,\r\n };\r\n if (\r\n (newState.firstName.toLowerCase() !== this.oldState.firstName.toLowerCase()\r\n || newState.lastName.toLowerCase() !== this.oldState.lastName.toLowerCase()\r\n || newState.email.toLowerCase() !== this.oldState.email.toLowerCase()\r\n || newState.dateOfBirth !== this.oldState.dateOfBirth\r\n || newState.phoneNumber !== this.oldState.phoneNumber\r\n )\r\n && !isFieldsChanged\r\n ) {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, true);\r\n this.setState({\r\n isFieldsChanged: true,\r\n });\r\n } else if (\r\n (newState.firstName.toLowerCase() === this.oldState.firstName.toLowerCase()\r\n && newState.lastName.toLowerCase() === this.oldState.lastName.toLowerCase()\r\n && newState.email.toLowerCase() === this.oldState.email.toLowerCase()\r\n && newState.dateOfBirth === this.oldState.dateOfBirth\r\n && newState.phoneNumber === this.oldState.phoneNumber\r\n )\r\n && isFieldsChanged\r\n ) {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false);\r\n this.setState({\r\n isFieldsChanged: false,\r\n });\r\n }\r\n // Check email change to log user out once profile updated\r\n if (newState.email !== this.oldState.email) {\r\n this.emailChanged = true;\r\n }\r\n if (newState.email === this.oldState.email) {\r\n this.emailChanged = false;\r\n }\r\n }\r\n\r\n handleApiErrors = (err) => {\r\n this.setState({\r\n popupMessage: err,\r\n });\r\n };\r\n\r\n redirectToHome = () => {\r\n window.location = '/';\r\n };\r\n\r\n handleFirstNameChange = (e) => {\r\n this.setState({ firstName: e.target.value }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleLastNameChange = (e) => {\r\n this.setState({ lastName: e.target.value }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleDobChange = (date) => {\r\n this.setState({ dateOfBirth: date }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handlePhoneNumberChange = (status = true, phoneNumber) => {\r\n this.setState({\r\n phoneNumber: getFirstChars(phoneNumber, 15, status),\r\n isPhoneNumberValid: status,\r\n }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleEmailChange = (e) => {\r\n this.setState({ email: e.target.value }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n removeErrors = (e) => {\r\n e.preventDefault();\r\n if (this.state.errors && this.state.errors.isError) { // eslint-disable-line\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors[e.target.id] = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n };\r\n\r\n removePhoneError = () => {\r\n if (this.state.errors.isError) {\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors.phoneNumber = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n }\r\n\r\n handleGoBack = () => {\r\n const { isFieldsChanged } = this.state;\r\n if (isFieldsChanged) {\r\n this.confirmPopup.show();\r\n } else {\r\n this.goBackToAccountDetails();\r\n }\r\n }\r\n\r\n closePopup = (ref) => {\r\n ref.hide();\r\n }\r\n\r\n goBackToAccountDetails = () => {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false);\r\n this.closePopup(this.confirmPopup);\r\n const { toggleIsUserEditDetails } = this.props;\r\n toggleIsUserEditDetails();\r\n }\r\n\r\n renderUserDetailsForm = () => {\r\n const {\r\n firstName,\r\n lastName,\r\n dateOfBirth,\r\n phoneNumber,\r\n email,\r\n popupMessage,\r\n errors,\r\n isFieldsChanged,\r\n } = this.state;\r\n const { isProfileUpdateLoading, isLoggingOut } = this.props.user;\r\n const buttonClass = isFieldsChanged\r\n ? 'uk-button change_password_button uk-width-1-1 uk-text-center vistajet_button_primary'\r\n : 'uk-button vistajet_button_primary vistajet_disabled change_password_button uk-width-1-1 uk-text-center';\r\n return (\r\n
    \r\n {\r\n (isProfileUpdateLoading || isLoggingOut) && (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n

    Edit Profile

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n errors.errors && errors.errors.firstName && (\r\n

    \r\n {errors.errors.firstName}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.lastName && (\r\n

    \r\n {errors.errors.lastName}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n errors.errors && errors.errors.dateOfBirth && (\r\n

    \r\n {errors.errors.dateOfBirth}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.phoneNumber && (\r\n

    \r\n {errors.errors.phoneNumber}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.email && (\r\n

    \r\n {errors.errors.email}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n \r\n Save Profile\r\n \r\n
    \r\n\r\n { this.confirmPopup = confirmPopup; }}\r\n title={CONFIRMATION_TITLE}\r\n leftButtonContent={LEFT_BUTTON_TEXT}\r\n rightButtonContent={RIGHT_BUTTON_TEXT}\r\n onLeftButtonClick={() => this.closePopup(this.confirmPopup)} // close form\r\n onRightButtonClick={this.goBackToAccountDetails}\r\n content={CONFIRMATION_MESSAGE}\r\n />\r\n { this.emailPopUp = emailPopUp; }}\r\n title=\"Attention\"\r\n id=\"emailChangedWillLogout\"\r\n leftButtonContent=\"Cancel\"\r\n onLeftButtonClick={() => this.closePopup(this.emailPopUp)}\r\n rightButtonContent=\"Continue\"\r\n onRightButtonClick={this.updateProfile}\r\n content=\"You are updating your email and you will need to login again. Do you wish to continue?\"\r\n />\r\n \r\n
    \r\n );\r\n };\r\n\r\n render() {\r\n return this.renderUserDetailsForm();\r\n }\r\n}\r\n","import {\r\n validateFirstName,\r\n validateLastName,\r\n validateEmail,\r\n validatePhone,\r\n validateDateOfBirth,\r\n} from './Validators';\r\n\r\nexport default function validateUserProfileForm(obj) {\r\n const firstNameResponse = validateFirstName(obj.firstName);\r\n const lastNameResponse = validateLastName(obj.lastName);\r\n const emailResponse = validateEmail(obj.email);\r\n const phoneNumberResponse = validatePhone(obj.phoneNumber, obj.isPhoneNumberValid);\r\n const dobResponse = validateDateOfBirth(obj.dateOfBirth);\r\n const res = {\r\n errors: {},\r\n };\r\n if (firstNameResponse.isError) {\r\n res.isError = firstNameResponse.isError;\r\n res.errors.firstName = firstNameResponse.message;\r\n }\r\n if (lastNameResponse.isError) {\r\n res.isError = lastNameResponse.isError;\r\n res.errors.lastName = lastNameResponse.message;\r\n }\r\n if (emailResponse.isError) {\r\n res.isError = emailResponse.isError;\r\n res.errors.email = emailResponse.message;\r\n }\r\n if (phoneNumberResponse.isError) {\r\n res.isError = phoneNumberResponse.isError;\r\n res.errors.phoneNumber = phoneNumberResponse.message;\r\n }\r\n if (dobResponse.isError) {\r\n res.isError = dobResponse.isError;\r\n res.errors.dateOfBirth = dobResponse.message;\r\n }\r\n return res;\r\n}\r\n","import React, { Component } from 'react';\r\nimport numeral from 'numeral';\r\nimport { DIRECT_ACCOUNT_BALANCE_PAGE_URL } from '../../../configs/constants';\r\nimport SpinnerLoader from '../../shared/spinnerLoader';\r\nimport {\r\n isGuest,\r\n isFSP,\r\n isFspDirect,\r\n} from '../../../utils/userUtils';\r\n\r\nexport default class MemberShipDetailCard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popupMessage: '',\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { user } = this.props;\r\n const { getDirectAccountStatement } = this.props;\r\n if (user && user.user) {\r\n if (!isGuest(user.user) && (!isFSP(user.user) || isFspDirect(user.user))) {\r\n getDirectAccountStatement(user.user.userToken);\r\n }\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n this.props.directAccoutBalanceError !== nextProps.directAccoutBalanceError\r\n && nextProps.isDirectAccountBalanceError\r\n ) {\r\n this.setState({\r\n popupMessage: nextProps.isDirectAccountBalanceError,\r\n }, () => {\r\n // window.UIkit.modal('#DirectAccountManagementErrorPopup').show();\r\n });\r\n }\r\n }\r\n\r\n handleApiErrors = (err) => {\r\n this.setState({\r\n popupMessage: err,\r\n });\r\n };\r\n\r\n redirectToDirectAccountBalance = () => {\r\n window.location = DIRECT_ACCOUNT_BALANCE_PAGE_URL.url;\r\n }\r\n\r\n renderMemberShipDetailCard = () => {\r\n const { accountData, isDirectAccountBalanceError } = this.props;\r\n let amount = 0;\r\n if (accountData && Object.keys(accountData).length > 0) {\r\n amount = numeral(accountData.currentBalance).format('0,0');\r\n amount = `${amount}`;\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Direct Membership

    \r\n
    \r\n
    \r\n Account Statement\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n accountData && Object.keys(accountData).length > 0\r\n ? (\r\n\r\n
    \r\n Balance\r\n
    \r\n USD {amount}\r\n
    \r\n
    \r\n )\r\n : isDirectAccountBalanceError ?\r\n
    \r\n Balance\r\n
    \r\n ----\r\n
    \r\n
    \r\n :
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n render() {\r\n return this.renderMemberShipDetailCard();\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport UserDetailCard from './UserDetailsCard';\r\nimport AddEditUserDetailForm from './AddEditUserDetailsForm';\r\nimport MemberShipDetailCard from './UserMembershipDetailsCard';\r\n\r\nexport default class UserDetailSection extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isUserDetailEdit: false,\r\n };\r\n }\r\n\r\n toggleIsUserEditDetails = () => {\r\n this.setState({\r\n isUserDetailEdit: !this.state.isUserDetailEdit,\r\n });\r\n }\r\n\r\n renderCards = () => {\r\n const { isUserDetailEdit } = this.state;\r\n const { user, getDirectAccountStatement, userType } = this.props;\r\n if (isUserDetailEdit) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n {\r\n !userType.isGuestUser && (!userType.isFsp || userType.isFspDirect) && (\r\n \r\n )\r\n }\r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n return this.renderCards();\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport moment from 'moment';\r\nimport\r\ncountryData,\r\n{\r\n COUNTRY_CODE_TAIWAN_ISO2,\r\n COUNTRY_CODE_CHINA_ISO2,\r\n} from '../../../constants/CountryConstants';\r\nimport { PaxOperationCode } from '../../../constants/ApiConstants';\r\nimport { dateFormats } from '../../../utils/dateUtils';\r\nimport MessagePopUp from '../../shared/MessagePopUp';\r\nimport ConfirmationPopUp from '../../shared/ConfirmationPopUpNew';\r\nimport SpinnerLoader from '../../shared/spinnerLoader';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nexport default class PassportListingCard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popupMessage: '',\r\n };\r\n this.selectedId = null;\r\n this.defaultId = null;\r\n }\r\n\r\n componentDidMount() {\r\n this.checkIfDefaultPassportExpired();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n nextProps.user.isProfileUpdateError\r\n && this.props.user.profileUpdateError !== nextProps.props.user.profileUpdateError\r\n ) {\r\n window.UIkit.modal('#PassportListingErrorPopUp').show();\r\n }\r\n }\r\n\r\n getPassportFlag = (passport, id = null) => {\r\n const paxId = id;\r\n const isoPassportCountry = ((passport || {}).content[paxId] || {}).isoPassportCountry;\r\n const flagData = (countryData || []).find(\r\n item => (item.THREE_LETTER_CODE || '').toUpperCase()\r\n === (isoPassportCountry || '').toUpperCase(),\r\n );\r\n let flagIso2 = flagData && flagData.TWO_LETTER_CODE;\r\n if ((flagIso2 || '').toUpperCase() === COUNTRY_CODE_TAIWAN_ISO2) flagIso2 = COUNTRY_CODE_CHINA_ISO2;\r\n return `flag-icon-style flag-icon-${(flagIso2 || '').toLowerCase()}`;\r\n }\r\n\r\n formatExpiryDate = (date) => {\r\n return moment(date).format(dateFormats.DDMMMYYYY);\r\n }\r\n\r\n closePopup = (ref) => {\r\n ref.hide();\r\n }\r\n\r\n handleApiErrors = (err) => {\r\n this.setState({\r\n popupMessage: err,\r\n });\r\n };\r\n\r\n updatePassportDetails = (id, isDefaultEdit) => {\r\n const { toggleIsPassportAddEditDetails } = this.props;\r\n toggleIsPassportAddEditDetails(\r\n false,\r\n true,\r\n id,\r\n isDefaultEdit,\r\n );\r\n }\r\n\r\n normalizeAndCombinePassportPayload = (\r\n newPayload,\r\n oldPayload,\r\n isDefaultDelete = false,\r\n isNewDefault = false,\r\n ) => {\r\n const passportPayload = [];\r\n let payloadOfDefault = null;\r\n if (oldPayload) {\r\n let defaultValue = oldPayload.isDefault;\r\n if (isDefaultDelete) {\r\n defaultValue = true;\r\n }\r\n if (isNewDefault) {\r\n defaultValue = false;\r\n }\r\n payloadOfDefault = {\r\n id: oldPayload.id,\r\n expiresOnDate: oldPayload.expiresOnDate,\r\n isoPassportCountry: oldPayload.isoPassportCountry,\r\n isoIssuedByCountry: oldPayload.isoIssuedByCountry,\r\n displayName: oldPayload.displayName,\r\n passportNumber: oldPayload.passportNumber,\r\n isDefault: defaultValue,\r\n isAdded: oldPayload.isAdded,\r\n isUpdated: oldPayload.isUpdated,\r\n isDeleted: oldPayload.isDeleted,\r\n isActive: oldPayload.isActive,\r\n isInvalid: oldPayload.isInvalid,\r\n isOnHands: oldPayload.isOnHands,\r\n };\r\n passportPayload.push(payloadOfDefault);\r\n }\r\n passportPayload.push(newPayload);\r\n return passportPayload;\r\n }\r\n\r\n deletePassport = (id) => {\r\n const {\r\n user,\r\n } = this.props.user;\r\n\r\n const {\r\n updateUserProfileAction,\r\n } = this.props;\r\n\r\n const userPayload = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n dateOfBirth: user.dateOfBirth,\r\n phoneNumber: user.phoneNumber,\r\n isPhoneNumberValid: true,\r\n email: user.username,\r\n };\r\n\r\n const passportPayload = {\r\n id,\r\n isAdded: false,\r\n isUpdated: false,\r\n isDeleted: true,\r\n };\r\n\r\n let defaultPaxId;\r\n let isDefaultDelete = false;\r\n if (user.passports.defaultId === id) { // deleting the default passport\r\n isDefaultDelete = true;\r\n if (user.passports.ids[0] !== id) {\r\n defaultPaxId = user.passports.ids[0];\r\n }\r\n else if (user.passports.ids.length > 1) {\r\n defaultPaxId = user.passports.ids[1];\r\n } else {\r\n defaultPaxId = user.passports.defaultId;\r\n }\r\n } else {\r\n defaultPaxId = user.passports.defaultId; // deleting non-default passport\r\n }\r\n const doPassportExist = user.passports.ids.length > 1;\r\n\r\n updateUserProfileAction(\r\n userPayload,\r\n user,\r\n this.normalizeAndCombinePassportPayload(\r\n passportPayload,\r\n doPassportExist\r\n ? user.passports.content[defaultPaxId]\r\n : null,\r\n isDefaultDelete,\r\n ),\r\n -1,\r\n PaxOperationCode.Delete, // Delete Op code\r\n )\r\n .then(() => { }, this.handleApiErrors);\r\n this.closePopup(this.deletePopUp);\r\n }\r\n\r\n checkIfDefaultPassportExpired = () => {\r\n const {\r\n user,\r\n } = this.props.user;\r\n if (user.passports.ids.length > 0) {\r\n const defaultId = user.passports.defaultId\r\n ? user.passports.defaultId\r\n : user.passports.ids[0];\r\n if (\r\n moment((user.passports.content[defaultId] || {}).expiresOnDate, dateFormats.YYYY_MM_DD_WITH_TIME)\r\n .isBefore(moment())) {\r\n window.UIkit.modal('#passportExpired').show();\r\n }\r\n }\r\n }\r\n\r\n checkSetAsDefault = (id,dropdownId) => {\r\n const {\r\n user,\r\n } = this.props.user;\r\n const expiresDate = (user.passports.content[id] || {}).expiresOnDate;\r\n const isExpired = moment(expiresDate, dateFormats.YYYY_MM_DD_WITH_TIME).isBefore(moment());\r\n if (isMobile) {\r\n window.UIkit.dropdown(`#${dropdownId}`).hide();\r\n }\r\n if (!isExpired) {\r\n this.setAsNewDefault(id);\r\n } else {\r\n this.defaultId = id;\r\n this.expiredPopup.show();\r\n }\r\n }\r\n\r\n setAsNewDefault = (id) => {\r\n const {\r\n user,\r\n } = this.props.user;\r\n\r\n const {\r\n updateUserProfileAction,\r\n } = this.props;\r\n\r\n const userPayload = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n dateOfBirth: user.dateOfBirth,\r\n phoneNumber: user.phoneNumber,\r\n isPhoneNumberValid: true,\r\n email: user.username,\r\n };\r\n\r\n const passportPayload = {\r\n id,\r\n isAdded: false,\r\n isUpdated: true,\r\n isDeleted: false,\r\n isDefault: true,\r\n expiresOnDate: (user.passports.content[id] || {}).expiresOnDate,\r\n isoPassportCountry: user.passports.content[id].isoPassportCountry,\r\n isoIssuedByCountry: user.passports.content[id].isoIssuedByCountry,\r\n displayName: user.passports.content[id].displayName,\r\n passportNumber: user.passports.content[id].passportNumber,\r\n isActive: user.passports.content[id].isActive,\r\n isInvalid: user.passports.content[id].isInvalid,\r\n isOnHands: user.passports.content[id].isOnHands,\r\n };\r\n\r\n const doPassportExist = user.passports.ids.length > 1;\r\n const defaultPaxId = user.passports.defaultId;\r\n\r\n const isNewDefault = true;\r\n updateUserProfileAction(\r\n userPayload,\r\n user,\r\n this.normalizeAndCombinePassportPayload(\r\n passportPayload,\r\n doPassportExist\r\n ? user.passports.content[defaultPaxId]\r\n : null,\r\n false,\r\n isNewDefault,\r\n ),\r\n -1,\r\n PaxOperationCode.ChangeDefault, // Change default Op code\r\n )\r\n .then(() => { }, this.handleApiErrors);\r\n this.closePopup(this.expiredPopup);\r\n }\r\n\r\n renderPassportListing = () => {\r\n const {\r\n toggleIsPassportAddEditDetails,\r\n } = this.props;\r\n const { user, isProfileUpdateLoading } = this.props.user;\r\n const { popupMessage } = this.state;\r\n return (\r\n
    \r\n {\r\n (isProfileUpdateLoading) && (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n

    Manage Passports

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {user && this.renderDefaultPassport()}\r\n
    \r\n
    \r\n {\r\n (user && user.passports.ids.length > 1) && (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Other Passports\r\n
    \r\n {this.renderOtherPassports()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n toggleIsPassportAddEditDetails(\r\n true,\r\n false,\r\n )}\r\n >\r\n Add Passport\r\n
    \r\n
    \r\n\r\n { this.deletePopUp = deletePopUp; }}\r\n leftButtonContent=\"Delete\"\r\n onLeftButtonClick={() => this.deletePassport(this.selectedId)}\r\n rightButtonContent=\"Cancel\"\r\n onRightButtonClick={() => this.closePopup(this.deletePopUp)}\r\n content=\"Do you want to delete the passport?\"\r\n title=\"Are you sure?\"\r\n />\r\n { this.expiredPopup = expiredPopup; }}\r\n leftButtonContent=\"Cancel\"\r\n onLeftButtonClick={() => this.closePopup(this.expiredPopup)}\r\n rightButtonContent=\"Continue\"\r\n onRightButtonClick={() => this.setAsNewDefault(this.defaultId)}\r\n content=\"This passport is expired. Do you want to proceed?\"\r\n title=\"Attention\"\r\n />\r\n \r\n \r\n
    \r\n );\r\n };\r\n\r\n showDeletePrompt = (id, dropdownId) => {\r\n if (isMobile) {\r\n window.UIkit.dropdown(`#${dropdownId}`).hide();\r\n }\r\n this.selectedId = id;\r\n this.deletePopUp.show();\r\n }\r\n\r\n renderDefaultPassport = () => {\r\n const { user } = this.props.user;\r\n const dropdownId = \"vistajet_card_dropdown_default\";\r\n if (user && user.passports.ids.length === 0) {\r\n return (\r\n
    No passports saved
    \r\n );\r\n }\r\n const defaultPassportId = user.passports.defaultId\r\n ? user.passports.defaultId\r\n : user.passports.ids[0];\r\n const defaultFlagIcon = this.getPassportFlag(user.passports, defaultPassportId);\r\n const defaultExpiryData = this.formatExpiryDate(\r\n (user.passports.content[defaultPassportId] || {}).expiresOnDate,\r\n );\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Default Passport\r\n
    \r\n
    \r\n \r\n \r\n {(user.passports.content[defaultPassportId] || {}).passportNumber}\r\n \r\n \r\n Expires {defaultExpiryData}\r\n \r\n
    \r\n
    \r\n this.updatePassportDetails(defaultPassportId, true)}\r\n data-index={defaultPassportId}\r\n >\r\n \"update\"\r\n \r\n this.showDeletePrompt(defaultPassportId)}\r\n data-index={defaultPassportId}\r\n >\r\n \"delete\"\r\n \r\n
    \r\n
      \r\n
    • \r\n
      \r\n
        \r\n
      • \r\n this.updatePassportDetails(defaultPassportId, true)}\r\n data-index={defaultPassportId}>\r\n \"update\"\r\n Edit\r\n \r\n
      • \r\n
      • \r\n this.showDeletePrompt(defaultPassportId, dropdownId)}\r\n data-index={defaultPassportId}>\r\n \"delete\"\r\n Delete\r\n \r\n
      • \r\n
      \r\n
      \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderOtherPassports = () => {\r\n const { user } = this.props.user;\r\n const defaultPassportId = user.passports.defaultId;\r\n return user.passports.ids.map((passportId, index) => {\r\n if (passportId != defaultPassportId) {\r\n const dropdownId = `vistajet_card_dropdown_${index}`;\r\n const flagIcon = this.getPassportFlag(user.passports, passportId);\r\n const expiryData = this.formatExpiryDate(\r\n (user.passports.content[passportId] || {}).expiresOnDate,\r\n );\r\n return (\r\n
    \r\n \r\n \r\n {user.passports.content[passportId].passportNumber}\r\n \r\n \r\n Expires {expiryData}\r\n \r\n
    \r\n
    \r\n \r\n this.checkSetAsDefault(passportId, dropdownId)}\r\n data-index={passportId}\r\n style={{ textDecoration: 'underline', color: '#C35C69', fontSize: 14, paddingRight: 8 }}\r\n >\r\n Set as Default\r\n \r\n \r\n this.updatePassportDetails(passportId, false)}\r\n data-index={passportId}\r\n >\r\n \"update\"\r\n \r\n this.showDeletePrompt(passportId)}\r\n data-index={passportId}\r\n >\r\n \"delete\"\r\n \r\n
    \r\n
      \r\n
    • \r\n
      \r\n \r\n
      \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return this.renderPassportListing();\r\n }\r\n }\r\n","import React, { Component } from 'react';\r\nimport moment from 'moment';\r\nimport Select from 'react-select';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport ConfirmationPopUp from '../../shared/ConfirmationPopUpNew';\r\nimport MessagePopUp from '../../shared/MessagePopUp';\r\nimport SpinnerLoader from '../../shared/spinnerLoader';\r\nimport { getTruncatedCountryName, getNameLengthToDisplay } from 'utils/countryUtils';\r\nimport Helpers from 'utils/Helpers';\r\n\r\nimport\r\ncountryData,\r\n{\r\n COUNTRY_CODE_TAIWAN_ISO2,\r\n COUNTRY_CODE_CHINA_ISO2,\r\n} from '../../../constants/CountryConstants';\r\nimport { PaxOperationCode } from '../../../constants/ApiConstants';\r\nimport validateAddEditPassportForm from '../../../utils/Validators/PassportValidator';\r\nimport { convertToTitleCase } from '../../../utils/stringUtils';\r\nimport { dateFormats } from '../../../utils/dateUtils';\r\nimport Calendar from '../../shared/ReactCalendar';\r\nimport { LEFT_BUTTON_TEXT, RIGHT_BUTTON_TEXT, CONFIRMATION_MESSAGE, CONFIRMATION_TITLE } from '../../../constants/DirtyPopupConstant';\r\nimport dirtystateSingleTon from '../../../validators/validateDirty';\r\nimport SPAConstants from '../../../constants/SPAConstants';\r\n\r\nexport default class PassportDetailForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n passportId: null,\r\n paxNumber: '',\r\n expiryDate: '',\r\n paxName: '',\r\n nationality: {},\r\n issuingCountry: {},\r\n isDefault: false,\r\n isAdded: false,\r\n isUpdated: false,\r\n isDeleted: false,\r\n isActive: true,\r\n isInvalid: 0,\r\n isOnHands: null,\r\n errors: {},\r\n popupMessage: '',\r\n isFieldsChanged: false,\r\n };\r\n const forState = {\r\n passportId: null,\r\n paxNumber: '',\r\n expiryDate: '',\r\n paxName: '',\r\n nationality: null,\r\n issuingCountry: null,\r\n isDefault: false,\r\n };\r\n this.oldState = Object.assign({}, forState);\r\n this.paxMapping = [];\r\n }\r\n\r\n componentDidMount() {\r\n this.populateValues();\r\n this.generatePaxNumberAndIdMapping(this.props.isEdit, this.props.editFieldId);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.user.user !== nextProps.user.user\r\n && nextProps.user.isProfileUpdated\r\n ) {\r\n const { toggleIsPassportAddEditDetails } = this.props;\r\n toggleIsPassportAddEditDetails();\r\n }\r\n if (nextProps.user.isProfileUpdateError) {\r\n window.UIkit.modal('#ManagePassportErrorPopUp').show();\r\n }\r\n }\r\n\r\n generatePaxNumberAndIdMapping = (isEdit, editFieldId) => {\r\n const { user } = this.props.user;\r\n if (user.passports.ids.length > 0) {\r\n return user.passports.ids.map((pax) => {\r\n if (editFieldId !== pax) {\r\n return this.paxMapping.push({\r\n paxNumber: user.passports.content[pax].passportNumber,\r\n id: pax,\r\n });\r\n }\r\n });\r\n }\r\n return null;\r\n }\r\n\r\n getTwoLetterIsoCode = (paxId, paxCountryType) => {\r\n const { passports } = this.props.user.user;\r\n const isoIssuedByCountry = passports.content[paxId][paxCountryType];\r\n const flagData = countryData.find(\r\n item => item.THREE_LETTER_CODE.toUpperCase()\r\n === isoIssuedByCountry.toUpperCase(),\r\n );\r\n let flagIso2 = flagData && flagData.TWO_LETTER_CODE;\r\n if (flagIso2.toUpperCase() === COUNTRY_CODE_TAIWAN_ISO2) flagIso2 = COUNTRY_CODE_CHINA_ISO2;\r\n return {\r\n iso2: flagIso2,\r\n COUNTRY_NAME: flagData.COUNTRY_NAME\r\n };\r\n }\r\n\r\n generateObjectOfCountry = (paxId, paxCountryType) => {\r\n const { passports } = this.props.user.user;\r\n const flagData = this.getTwoLetterIsoCode(paxId, paxCountryType);\r\n const flagIcon = `flag-icon-style flag-icon-${flagData.iso2.toLowerCase()}`;\r\n const countryLabel = Helpers.truncateStr(convertToTitleCase(flagData.COUNTRY_NAME), getNameLengthToDisplay());\r\n return {\r\n value: flagData.COUNTRY_NAME,\r\n label:
    {countryLabel}
    , // eslint-disable-line\r\n code: passports.content[paxId][paxCountryType],\r\n };\r\n }\r\n\r\n populateValues = () => {\r\n const { user } = this.props.user;\r\n const { isAdd, isEdit, editFieldId } = this.props;\r\n const forState = {};\r\n if (isEdit) {\r\n forState.passportId = editFieldId;\r\n forState.paxName = user.passports.content[editFieldId].displayName;\r\n forState.paxNumber = user.passports.content[editFieldId].passportNumber;\r\n forState.expiryDate = moment(user.passports.content[editFieldId].expiresOnDate);\r\n forState.nationality = this.generateObjectOfCountry(editFieldId, 'isoPassportCountry');\r\n forState.issuingCountry = this.generateObjectOfCountry(editFieldId, 'isoIssuedByCountry');\r\n forState.isDefault = user.passports.content[editFieldId].isDefault;\r\n forState.isActive = user.passports.content[editFieldId].isActive;\r\n forState.isInvalid = user.passports.content[editFieldId].isInvalid;\r\n forState.isDeleted = user.passports.content[editFieldId].isDeleted;\r\n this.oldState = Object.assign({}, forState);\r\n }\r\n forState.isAdded = isAdd;\r\n forState.isUpdated = isEdit;\r\n this.setState(forState);\r\n };\r\n\r\n generateCountries = () => {\r\n return countryData.map((country) => {\r\n const flagIcon = `flag-icon-style flag-icon-${country.TWO_LETTER_CODE.toLowerCase()}`;\r\n const countryLabel = convertToTitleCase(country.COUNTRY_NAME);\r\n return {\r\n value: country.COUNTRY_NAME,\r\n label:
    {countryLabel}
    , // eslint-disable-line\r\n code: country.THREE_LETTER_CODE,\r\n };\r\n });\r\n };\r\n\r\n checkIfPaxNumberExistsAndValidateForm = () => {\r\n const {\r\n paxNumber,\r\n expiryDate,\r\n paxName,\r\n nationality,\r\n issuingCountry,\r\n } = this.state;\r\n const {\r\n isAdd,\r\n } = this.props;\r\n const {\r\n user,\r\n } = this.props.user;\r\n const res = validateAddEditPassportForm({\r\n paxNumber,\r\n expiryDate,\r\n paxName,\r\n nationality,\r\n issuingCountry,\r\n });\r\n if (res.isError) {\r\n this.setState({\r\n errors: res,\r\n });\r\n } else {\r\n let paxExistsId = null;\r\n const exists = this.paxMapping.some((pax) => {\r\n if (paxNumber.toLowerCase() === pax.paxNumber) {\r\n paxExistsId = pax.id;\r\n return {\r\n id: pax.id,\r\n };\r\n }\r\n return null;\r\n });\r\n if (exists && isAdd) {\r\n this.setState({\r\n passportId: paxExistsId,\r\n isAdded: false,\r\n isUpdated: true,\r\n isDefault: user.passports.defaultId === paxExistsId,\r\n }, () => {\r\n this.overwritePopUp.show();\r\n });\r\n } else if (exists && !isAdd) {\r\n this.passportPopUp.show();\r\n } else {\r\n this.addOrUpdatePassport();\r\n }\r\n }\r\n }\r\n\r\n closeOverWritePopUp = () => {\r\n this.setState({\r\n passportId: null,\r\n isUpdated: false,\r\n isAdded: true,\r\n }, () => {\r\n this.closePopup(this.overwritePopUp);\r\n });\r\n }\r\n\r\n addOrUpdatePassport = () => {\r\n const {\r\n passportId,\r\n paxNumber,\r\n expiryDate,\r\n paxName,\r\n nationality,\r\n issuingCountry,\r\n isDefault,\r\n isAdded,\r\n isUpdated,\r\n isDeleted,\r\n isActive,\r\n isInvalid,\r\n isOnHands,\r\n } = this.state;\r\n\r\n const {\r\n user,\r\n } = this.props.user;\r\n\r\n const {\r\n isAdd,\r\n isEdit,\r\n updateUserProfileAction,\r\n } = this.props;\r\n\r\n const userPayload = {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n dateOfBirth: user.dateOfBirth,\r\n phoneNumber: user.phoneNumber,\r\n isPhoneNumberValid: true,\r\n email: user.username,\r\n };\r\n\r\n const defaultPaxId = user.passports.defaultId;\r\n const doPassportExist = user.passports.ids.length > 0;\r\n\r\n const passportPayload = {\r\n id: passportId,\r\n expiresOnDate: `${moment(expiryDate).format(dateFormats.YYYY_MM_DD_HHmmss)}Z`,\r\n isoPassportCountry: nationality && nationality.code,\r\n isoIssuedByCountry: issuingCountry && issuingCountry.code,\r\n displayName: paxName,\r\n passportNumber: paxNumber,\r\n isDefault,\r\n isAdded,\r\n isUpdated,\r\n isDeleted,\r\n isActive,\r\n isInvalid,\r\n isOnHands,\r\n };\r\n\r\n updateUserProfileAction(\r\n userPayload,\r\n user,\r\n this.normalizeAndCombinePassportPayload(\r\n passportPayload,\r\n doPassportExist\r\n ? user.passports.content[defaultPaxId]\r\n : null,\r\n defaultPaxId,\r\n isAdd,\r\n isEdit,\r\n ),\r\n -1,\r\n isAdd ? PaxOperationCode.Add : PaxOperationCode.Edit,\r\n )\r\n .then(() => { dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false) }, this.handleApiErrors);\r\n\r\n this.closePopup(this.overwritePopUp);\r\n }\r\n\r\n normalizeAndCombinePassportPayload = (\r\n newPayload,\r\n oldPayload,\r\n defaultId,\r\n isAdd = false,\r\n isEdit = false,\r\n ) => {\r\n const passportPayload = [];\r\n let payloadOfDefault = null;\r\n if (oldPayload) {\r\n payloadOfDefault = {\r\n id: oldPayload.id,\r\n expiresOnDate: oldPayload.expiresOnDate,\r\n isoPassportCountry: oldPayload.isoPassportCountry,\r\n isoIssuedByCountry: oldPayload.isoIssuedByCountry,\r\n displayName: oldPayload.displayName,\r\n passportNumber: oldPayload.passportNumber,\r\n isDefault: oldPayload.isDefault,\r\n isAdded: oldPayload.isAdded,\r\n isUpdated: oldPayload.isUpdated,\r\n isDeleted: oldPayload.isDeleted,\r\n isActive: oldPayload.isActive,\r\n isInvalid: oldPayload.isInvalid,\r\n isOnHands: oldPayload.isOnHands,\r\n };\r\n }\r\n if (isAdd) {\r\n if (newPayload.isDefault && oldPayload) {\r\n payloadOfDefault.isDefault = false;\r\n }\r\n if (oldPayload) {\r\n passportPayload.push(payloadOfDefault);\r\n }\r\n if (!oldPayload) {\r\n newPayload.isDefault = true;\r\n }\r\n passportPayload.push(newPayload);\r\n return passportPayload;\r\n }\r\n if (isEdit) {\r\n if (newPayload.isDefault && oldPayload) {\r\n payloadOfDefault.isDefault = false;\r\n }\r\n }\r\n if (newPayload.id === defaultId) {\r\n passportPayload.push(newPayload);\r\n return passportPayload;\r\n }\r\n passportPayload.push(payloadOfDefault);\r\n passportPayload.push(newPayload);\r\n return passportPayload;\r\n }\r\n\r\n handleApiErrors = (err) => {\r\n this.setState({\r\n popupMessage: err,\r\n });\r\n };\r\n\r\n handlePaxNameChange = (e) => {\r\n this.setState({ paxName: e.target.value }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handlePaxNumberChange = (e) => {\r\n this.setState({ paxNumber: e.target.value }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleExpiryChange = (date) => {\r\n this.setState({ expiryDate: date }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleNationalityCountryChange = (value) => {\r\n let newValue = value;\r\n newValue.label = getTruncatedCountryName(value.value, value.code);\r\n this.setState({\r\n nationality: newValue,\r\n }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleIssuingCountryChange = (value) => {\r\n let newValue = value;\r\n newValue.label = getTruncatedCountryName(value.value, value.code);\r\n this.setState({\r\n issuingCountry: newValue,\r\n }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleDefaultCheck = () => {\r\n const { isDefault } = this.state;\r\n this.setState({\r\n isDefault: !isDefault,\r\n }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n }\r\n\r\n removeErrors = (e) => {\r\n e.preventDefault();\r\n if (this.state.errors && this.state.errors.isError) { // eslint-disable-line\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors[e.target.id] = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n };\r\n\r\n removeNationalityCountryError = () => {\r\n if (this.state.errors.isError) {\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors.nationality = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n }\r\n\r\n removeIssuingCountryError = () => {\r\n if (this.state.errors.isError) {\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors.issuingCountry = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n }\r\n\r\n compareOldAndNewValues = () => {\r\n const {\r\n isAdd,\r\n } = this.props;\r\n const {\r\n passportId,\r\n paxNumber,\r\n expiryDate,\r\n paxName,\r\n nationality,\r\n issuingCountry,\r\n isDefault,\r\n isFieldsChanged,\r\n } = this.state;\r\n const newState = {\r\n passportId,\r\n paxNumber,\r\n expiryDate,\r\n paxName,\r\n nationality,\r\n issuingCountry,\r\n isDefault,\r\n };\r\n let nationalityCheck = null;\r\n let issuingCountryCheck = null;\r\n let oldNationalityCheck = null;\r\n let oldIssuingCountryCheck = null;\r\n if (isAdd) {\r\n oldNationalityCheck = this.oldState.nationality;\r\n oldIssuingCountryCheck = this.oldState.issuingCountry;\r\n if (Object.keys(newState.nationality).length > 0) {\r\n nationalityCheck = newState.nationality.value;\r\n }\r\n if (Object.keys(newState.issuingCountry).length > 0) {\r\n issuingCountryCheck = newState.issuingCountry.value;\r\n }\r\n }\r\n if (!isAdd) {\r\n oldNationalityCheck = this.oldState.nationality.value;\r\n oldIssuingCountryCheck = this.oldState.issuingCountry.value;\r\n if (Object.keys(newState.nationality).length > 0) {\r\n nationalityCheck = newState.nationality.value;\r\n }\r\n if (Object.keys(newState.issuingCountry).length > 0) {\r\n issuingCountryCheck = newState.issuingCountry.value;\r\n }\r\n }\r\n\r\n if (\r\n (newState.paxNumber.toLowerCase() !== this.oldState.paxNumber.toLowerCase()\r\n || newState.expiryDate !== this.oldState.expiryDate\r\n || newState.paxName.toLowerCase() !== this.oldState.paxName.toLowerCase()\r\n || nationalityCheck !== oldNationalityCheck\r\n || issuingCountryCheck !== oldIssuingCountryCheck\r\n || newState.isDefault !== this.oldState.isDefault\r\n )\r\n && !isFieldsChanged\r\n ) {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, true);\r\n this.setState({\r\n isFieldsChanged: true,\r\n });\r\n } else if (\r\n (newState.paxNumber.toLowerCase() === this.oldState.paxNumber.toLowerCase()\r\n && newState.expiryDate === this.oldState.expiryDate\r\n && newState.paxName.toLowerCase() === this.oldState.paxName.toLowerCase()\r\n && nationalityCheck === oldNationalityCheck\r\n && issuingCountryCheck === oldIssuingCountryCheck\r\n && newState.isDefault === this.oldState.isDefault\r\n )\r\n && isFieldsChanged\r\n ) {\r\n\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false);\r\n this.setState({\r\n isFieldsChanged: false,\r\n });\r\n }\r\n }\r\n\r\n handleGoBack = () => {\r\n const { isFieldsChanged } = this.state;\r\n const { toggleIsPassportAddEditDetails } = this.props;\r\n if (isFieldsChanged) {\r\n this.goBackPopUp.show();\r\n } else {\r\n toggleIsPassportAddEditDetails();\r\n }\r\n }\r\n\r\n closePopup = (ref) => {\r\n ref.hide();\r\n }\r\n\r\n goBackManagePassport = () => {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false);\r\n this.goBackPopUp.hide();\r\n const { toggleIsPassportAddEditDetails } = this.props;\r\n toggleIsPassportAddEditDetails();\r\n this.goBackPopUp.hide();\r\n }\r\n\r\n renderPassportDetailsForm = () => {\r\n const countries = this.generateCountries();\r\n const {\r\n paxNumber,\r\n paxName,\r\n expiryDate,\r\n nationality,\r\n issuingCountry,\r\n isDefault,\r\n errors,\r\n popupMessage,\r\n isFieldsChanged,\r\n } = this.state;\r\n const { isAdd, isDefaultEdit } = this.props;\r\n const { isProfileUpdateLoading } = this.props.user;\r\n const title = isAdd ? 'Add Passport' : 'Edit Passport';\r\n const buttonText = isAdd ? 'Add Passport' : 'Update Passport';\r\n const buttonClass = isFieldsChanged\r\n ? 'uk-button change_password_button uk-width-1-1 uk-text-center vistajet_button_primary'\r\n : 'uk-button vistajet_button_primary vistajet_disabled change_password_button uk-width-1-1 uk-text-center';\r\n return (\r\n
    \r\n {\r\n isProfileUpdateLoading && (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n

    {title}

    \r\n
    \r\n
    \r\n
    \r\n {/* \r\n
    \r\n \r\n
    \r\n
    \r\n

    \r\n {title}\r\n

    \r\n
    \r\n
    */}\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n errors.errors && errors.errors.paxNumber && (\r\n

    \r\n {errors.errors.paxNumber}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n errors.errors && errors.errors.expiryDate && (\r\n

    \r\n {errors.errors.expiryDate}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n {\r\n errors.errors && errors.errors.paxName && (\r\n

    \r\n {errors.errors.paxName}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.nationality && (\r\n

    \r\n {errors.errors.nationality}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.issuingCountry && (\r\n

    \r\n {errors.errors.issuingCountry}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n {buttonText}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n { this.goBackPopUp = goBackPopUp; }}\r\n title={CONFIRMATION_TITLE}\r\n leftButtonContent={LEFT_BUTTON_TEXT}\r\n onLeftButtonClick={() => this.closePopup(this.goBackPopUp)}\r\n rightButtonContent={RIGHT_BUTTON_TEXT}\r\n onRightButtonClick={this.goBackManagePassport}\r\n content={CONFIRMATION_MESSAGE}\r\n />\r\n { this.overwritePopUp = overwritePopUp; }}\r\n leftButtonContent=\"Cancel\"\r\n onLeftButtonClick={this.closeOverWritePopUp}\r\n rightButtonContent=\"Overwrite\"\r\n onRightButtonClick={this.addOrUpdatePassport}\r\n title=\"This passport is already saved\"\r\n content=\"Do you want to overwrite it?\"\r\n onOverlayClick={this.closeOverWritePopUp}\r\n />\r\n { this.passportPopUp = passportPopUp; }}\r\n rightButtonContent=\"Ok\"\r\n onRightButtonClick={() => this.closePopup(this.passportPopUp)}\r\n title=\"Passport number in use\"\r\n content=\"You are trying to add an already registered passport\"\r\n />\r\n \r\n \r\n );\r\n };\r\n\r\n render() {\r\n return this.renderPassportDetailsForm();\r\n }\r\n}\r\n","import {\r\n passportNumberValidator,\r\n expiresOnDatevalidator,\r\n displayNameValidator,\r\n isoPassportIssueAndIssuingCountryValidator,\r\n} from './Validators';\r\n\r\nexport default function validateAddEditPassportForm(obj) {\r\n const passportNumberResponse = passportNumberValidator(obj.paxNumber);\r\n const expiryDateResponse = expiresOnDatevalidator(obj.expiryDate);\r\n const displayNameResponse = displayNameValidator(obj.paxName);\r\n const nationalityResponse = isoPassportIssueAndIssuingCountryValidator(\r\n obj.nationality.code,\r\n );\r\n const issuingCountryResponse = isoPassportIssueAndIssuingCountryValidator(\r\n obj.issuingCountry.code, true,\r\n );\r\n const res = {\r\n errors: {},\r\n };\r\n if (passportNumberResponse.isError) {\r\n res.isError = passportNumberResponse.isError;\r\n res.errors.paxNumber = passportNumberResponse.message;\r\n }\r\n if (expiryDateResponse.isError) {\r\n res.isError = expiryDateResponse.isError;\r\n res.errors.expiryDate = expiryDateResponse.message;\r\n }\r\n if (displayNameResponse.isError) {\r\n res.isError = displayNameResponse.isError;\r\n res.errors.paxName = displayNameResponse.message;\r\n }\r\n if (nationalityResponse.isError) {\r\n res.isError = nationalityResponse.isError;\r\n res.errors.nationality = nationalityResponse.message;\r\n }\r\n if (issuingCountryResponse.isError) {\r\n res.isError = issuingCountryResponse.isError;\r\n res.errors.issuingCountry = issuingCountryResponse.message;\r\n }\r\n return res;\r\n}\r\n","import React, { Component } from 'react';\r\nimport PassportListingCard from './PassportListingCard';\r\nimport PassportDetailForm from './AddEditPassportDetailsForm';\r\n\r\nexport default class PassportListingSection extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isPassportDetailAddEdit: false,\r\n isAdd: false,\r\n isEdit: false,\r\n editFieldId: null,\r\n isDefaultEdit: false,\r\n };\r\n }\r\n\r\n toggleIsPassportAddEditDetails = (isAdd = false, isEdit = false, editId = null, isDefaultEdit = false) => {\r\n this.setState({\r\n isPassportDetailAddEdit: !this.state.isPassportDetailAddEdit,\r\n isAdd,\r\n isEdit,\r\n editFieldId: editId,\r\n isDefaultEdit,\r\n });\r\n }\r\n\r\n renderCards = () => {\r\n const { isPassportDetailAddEdit, isAdd, isEdit, editFieldId, isDefaultEdit } = this.state;\r\n const { user, updateUserProfileAction } = this.props;\r\n if (isPassportDetailAddEdit) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return this.renderCards();\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport CreditCardFlag from \"../../shared/CreditCardFlag\";\r\nimport MessagePopUp from \"../../shared/MessagePopUp\";\r\nimport ConfirmationPopUp from \"../../shared/ConfirmationPopUpNew\";\r\nimport SpinnerLoader from \"../../shared/spinnerLoader\";\r\nimport { isMobile } from \"react-device-detect\";\r\n\r\nexport default class CreditCardListingCard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popupMessage: \"\"\r\n };\r\n this.selectedId = null;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n nextProps.isAddCreditCardError &&\r\n this.props.addCreditCardLoadingError !==\r\n nextProps.addCreditCardLoadingError\r\n ) {\r\n window.UIkit.modal(\"#creditCardListingErrorPopUp\");\r\n }\r\n }\r\n\r\n closePopup = ref => {\r\n ref.hide();\r\n };\r\n\r\n setAsNewDefault = (id, dropdownId) => {\r\n const { user } = this.props.user;\r\n\r\n const { addCreditCardAction, creditCards } = this.props;\r\n\r\n const requestPayload = {\r\n type: null,\r\n defaultChecked: true,\r\n alias: creditCards.content[id].alias,\r\n isEdit: true,\r\n isSetDefault: true\r\n };\r\n if (isMobile) {\r\n window.UIkit.dropdown(`#${dropdownId}`).hide();\r\n }\r\n addCreditCardAction(user.userToken, requestPayload).then(\r\n () => { },\r\n this.handleApiErrors\r\n );\r\n };\r\n\r\n deleteCreditCard = id => {\r\n const { user } = this.props.user;\r\n\r\n const { deleteCreditCardAction, creditCards } = this.props;\r\n\r\n const requestPayload = {\r\n cardNumberLastFour: creditCards.content[id].cardNumberLastFour,\r\n cardBrandId: creditCards.content[id].cardBrandId,\r\n alias: id\r\n };\r\n\r\n deleteCreditCardAction(user.userToken, requestPayload).then(\r\n () => { },\r\n this.handleApiErrors\r\n );\r\n this.closePopup(this.creditCardDeletePopUp);\r\n };\r\n\r\n handleApiErrors = err => {\r\n this.setState({\r\n popupMessage: err\r\n });\r\n };\r\n\r\n getCreditCardImage = brandId => {\r\n return ;\r\n };\r\n\r\n renderDots = () => {\r\n let arr = [];\r\n for (let i = 0; i <= 11; i++) {\r\n arr.push();\r\n }\r\n return arr;\r\n };\r\n\r\n updateCreditCardDetails = (id, isDefaultEdit) => {\r\n const { toggleIsCreditCardAddEditDetails } = this.props;\r\n toggleIsCreditCardAddEditDetails(false, true, id, isDefaultEdit);\r\n };\r\n\r\n showDefaultDeletePrompt = (dropdownId) => {\r\n if (isMobile) {\r\n window.UIkit.dropdown(`#vistajet_card_dropdown_default`).hide();\r\n }\r\n this.defaultDeletePopup.show();\r\n };\r\n\r\n renderCreditCardListing = () => {\r\n const { toggleIsCreditCardAddEditDetails } = this.props;\r\n const { creditCards, isAddCreditCardLoading } = this.props;\r\n const { popupMessage } = this.state;\r\n return (\r\n
    \r\n {isAddCreditCardLoading &&\r\n
    \r\n \r\n
    }\r\n\r\n
    \r\n
    \r\n
    \r\n

    Payment Methods

    \r\n
    \r\n
    \r\n
    \r\n\r\n {/* \r\n
    \r\n

    \r\n Payment Methods\r\n

    \r\n
    \r\n
    */}\r\n\r\n
    \r\n
    \r\n {this.renderDefaultCreditCard()}\r\n
    \r\n
    \r\n\r\n {/*
    \r\n
    \r\n Default Payments\r\n {this.renderDefaultCreditCard()}\r\n
    \r\n
    */}\r\n {creditCards.hasOwnProperty(\"ids\") &&\r\n creditCards.ids.length > 1 &&\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Other Payments\r\n
    \r\n {this.renderOtherCards()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    }\r\n\r\n {/* {\r\n creditCards.hasOwnProperty('ids') && creditCards.ids.length > 1 && (\r\n
    \r\n
    \r\n Other Payments\r\n {this.renderOtherCards()}\r\n
    \r\n
    \r\n )\r\n } */}\r\n\r\n
    \r\n
    \r\n toggleIsCreditCardAddEditDetails(true, false)}\r\n >\r\n Add Card\r\n \r\n
    \r\n
    \r\n {\r\n this.creditCardDeletePopUp = creditCardDeletePopUp;\r\n }}\r\n leftButtonContent=\"Delete\"\r\n onLeftButtonClick={() => this.deleteCreditCard(this.selectedId)}\r\n rightButtonContent=\"Cancel\"\r\n onRightButtonClick={() => this.closePopup(this.creditCardDeletePopUp)}\r\n content=\"Are you sure you wish to remove this credit card?\"\r\n />\r\n {\r\n this.defaultDeletePopup = defaultDeletePopup;\r\n }}\r\n rightButtonContent=\"Cancel\"\r\n onRightButtonClick={() => this.closePopup(this.defaultDeletePopup)}\r\n content=\"Please select another credit card as default\"\r\n title=\"You can't delete your default credit card\"\r\n />\r\n \r\n \r\n );\r\n };\r\n\r\n showDeletePrompt = (id, dropdownId) => {\r\n if (isMobile) {\r\n window.UIkit.dropdown(`#${dropdownId}`).hide();\r\n }\r\n this.selectedId = id;\r\n this.creditCardDeletePopUp.show();\r\n };\r\n\r\n renderDefaultCreditCard = () => {\r\n const { creditCards } = this.props;\r\n if (!creditCards.hasOwnProperty(\"ids\") || creditCards.ids.length === 0) {\r\n return
    No credit card added
    ;\r\n }\r\n if (creditCards.hasOwnProperty(\"ids\") && creditCards.ids.length > 0) {\r\n const defaultCreditCardId = creditCards.defaultId;\r\n const card = creditCards.content[defaultCreditCardId];\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Default Payment\r\n
    \r\n
    \r\n
    \r\n {this.getCreditCardImage(card.cardBrandId)}\r\n

    \r\n {this.renderDots()}\r\n {card.cardNumberLastFour}\r\n

    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n
        \r\n
      • \r\n this.updateCreditCardDetails(defaultCreditCardId, true)}\r\n data-index={defaultCreditCardId}>\r\n \r\n \r\n Edit\r\n \r\n
      • \r\n
      • \r\n \r\n \r\n Delete\r\n \r\n
      • \r\n
      \r\n
      \r\n
    \r\n
    \r\n \r\n this.updateCreditCardDetails(defaultCreditCardId, true)}\r\n data-index={defaultCreditCardId}\r\n >\r\n \"\"\r\n \r\n \r\n \"\"\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n };\r\n\r\n renderOtherCards = () => {\r\n const { creditCards } = this.props;\r\n const defaultCreditCardId = creditCards.defaultId;\r\n return creditCards.ids.map((cardId, index) => {\r\n if (cardId != defaultCreditCardId) {\r\n const card = creditCards.content[cardId];\r\n const dropdownId = `vistajet_card_dropdown${index}`;\r\n return (\r\n
    \r\n
    \r\n {this.getCreditCardImage(card.cardBrandId)}\r\n

    \r\n {this.renderDots()}\r\n {card.cardNumberLastFour}\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n this.setAsNewDefault(cardId,dropdownId)}\r\n data-index={cardId}\r\n >\r\n Set as Default\r\n \r\n \r\n this.updateCreditCardDetails(cardId, false)}\r\n data-index={cardId}\r\n >\r\n \r\n \r\n this.showDeletePrompt(cardId)}\r\n data-index={cardId}\r\n >\r\n \"\"\r\n \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n );\r\n }\r\n });\r\n };\r\n\r\n render() {\r\n return this.renderCreditCardListing();\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport Select from 'react-select';\r\nimport MessagePopUp from '../../shared/MessagePopUp';\r\nimport ConfirmationPopUp from '../../shared/ConfirmationPopUpNew';\r\nimport CreditCardInputNumber from '../../shared/CreditCardInputNumber';\r\nimport MaskedTextField from '../../shared/MaskedTextField';\r\nimport { NEW_CARD_TYPES } from '../../../constants/CreditCardConstants';\r\nimport { replaceSpecialCharacterAndSpaces } from '../../../utils/stringUtils';\r\nimport SpinnerLoader from '../../shared/spinnerLoader';\r\n\r\nimport validateAddCreditCardDetailsForm from '../../../utils/Validators/AddCreditCardDetailsValidator';\r\nimport { LEFT_BUTTON_TEXT, RIGHT_BUTTON_TEXT, CONFIRMATION_TITLE, CONFIRMATION_MESSAGE } from '../../../constants/DirtyPopupConstant';\r\nimport dirtystateSingleTon from '../../../validators/validateDirty';\r\nimport SPAConstants from '../../../constants/SPAConstants';\r\n\r\nexport default class CreditCardAddEditDetailsForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n creditCardNumber: '',\r\n cvv: '',\r\n expiryDate: '',\r\n typeOfCardSelected: NEW_CARD_TYPES[1],\r\n defaultChecked: false,\r\n errors: {},\r\n popupMessage: '',\r\n isFieldsChanged: false,\r\n existsLastDigits: '',\r\n };\r\n const forState = {\r\n creditCardNumber: '',\r\n cvv: '',\r\n expiryDate: '',\r\n typeOfCardSelected: NEW_CARD_TYPES[1].value,\r\n defaultChecked: false,\r\n };\r\n this.oldState = Object.assign({}, forState);\r\n }\r\n\r\n componentDidMount() {\r\n const { isEdit } = this.props;\r\n if (isEdit) {\r\n this.populateValues();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n // this.props.creditCards !== nextProps.creditCards &&\r\n !nextProps.isAddCreditCardLoading\r\n && nextProps.isAddedCreditCard\r\n ) {\r\n const { toggleIsCreditCardAddEditDetails } = this.props;\r\n toggleIsCreditCardAddEditDetails();\r\n }\r\n if (\r\n this.props.addCreditCardLoadingError !== nextProps.addCreditCardLoadingError\r\n && nextProps.isAddCreditCardError\r\n ) {\r\n window.UIkit.modal('#creditCardErrorPopUp').show();\r\n }\r\n }\r\n\r\n handleError = (err) => {\r\n this.setState({\r\n popupMessage: err,\r\n });\r\n }\r\n\r\n populateValues = () => {\r\n const { editFieldId, creditCards } = this.props;\r\n const forState = {};\r\n forState.creditCardNumber = creditCards.content[editFieldId].alias;\r\n forState.expiryDate = creditCards.content[editFieldId].expiryDate;\r\n forState.typeOfCardSelected = {\r\n label: creditCards.content[editFieldId].type,\r\n value: creditCards.content[editFieldId].type,\r\n };\r\n forState.defaultChecked = creditCards.content[editFieldId].isDefault;\r\n this.oldState = Object.assign({}, forState, {\r\n cvv: '',\r\n });\r\n this.setState(forState);\r\n }\r\n\r\n handleCreditCardNumberChange = (e) => {\r\n const number = replaceSpecialCharacterAndSpaces(e.target.value);\r\n this.setState({ creditCardNumber: number }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleCVVChange = (e) => {\r\n this.setState({ cvv: e.target.value }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleExpiryDateChange = (e) => {\r\n this.setState({ expiryDate: e.target.value }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleCardTypeChange = (obj) => {\r\n this.setState({ typeOfCardSelected: obj }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n }\r\n\r\n handleDefaultCheck = () => {\r\n const { defaultChecked } = this.state;\r\n this.setState({\r\n defaultChecked: !defaultChecked,\r\n }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n }\r\n\r\n checkIfCardWithLastDigitExists = (event) => {\r\n event.preventDefault();\r\n const {\r\n creditCardNumber,\r\n } = this.state;\r\n const {\r\n creditCards,\r\n } = this.props;\r\n\r\n const lastFourDigits = Number(creditCardNumber.substr(creditCardNumber.length - 4));\r\n let exists = false;\r\n if (creditCards.hasOwnProperty('ids') && creditCards.ids.length > 0) {\r\n // check if card with last four digits exist\r\n exists = creditCards.ids.some((cardId) => creditCards.content[cardId].cardNumberLastFour == lastFourDigits);\r\n if (exists) {\r\n this.setState({\r\n existsLastDigits: lastFourDigits,\r\n }, () => {\r\n this.creditCardExistsPopUp.show();\r\n });\r\n } else {\r\n this.validateForm(event);\r\n }\r\n } else {\r\n this.validateForm(event);\r\n }\r\n }\r\n\r\n validateForm = (event) => {\r\n event.preventDefault();\r\n const {\r\n creditCardNumber,\r\n cvv,\r\n expiryDate,\r\n } = this.state;\r\n const {\r\n creditCards,\r\n editFieldId,\r\n } = this.props;\r\n const { isAdd } = this.props;\r\n let res = null;\r\n\r\n if (isAdd) {\r\n res = validateAddCreditCardDetailsForm({\r\n creditCardNumber,\r\n cvv,\r\n expiryDate,\r\n });\r\n } else {\r\n res = validateAddCreditCardDetailsForm({\r\n cvv,\r\n expiryDate,\r\n brandId: creditCards.content[editFieldId].cardBrandId,\r\n });\r\n }\r\n\r\n if (res.isError) {\r\n // set state of errors\r\n this.setState({\r\n errors: res,\r\n });\r\n } else {\r\n // API call to add credit card\r\n if (isAdd) {\r\n this.addCreditCard();\r\n } else {\r\n this.updateCreditCard();\r\n }\r\n }\r\n this.closePopup(this.creditCardExistsPopUp);\r\n }\r\n\r\n updateCreditCard = () => {\r\n const {\r\n creditCardNumber,\r\n cvv,\r\n expiryDate,\r\n defaultChecked,\r\n typeOfCardSelected,\r\n } = this.state;\r\n\r\n const {\r\n editFieldId,\r\n creditCards,\r\n addCreditCardAction,\r\n isEdit,\r\n } = this.props;\r\n\r\n const {\r\n user,\r\n } = this.props.user;\r\n\r\n const requestPayload = {\r\n creditCardNumber: creditCards.content[editFieldId].cardNumberLastFour,\r\n alias: creditCardNumber,\r\n cvv,\r\n expiryDate,\r\n defaultChecked,\r\n type: typeOfCardSelected.label,\r\n isEdit,\r\n };\r\n addCreditCardAction(user.userToken, requestPayload).then(() => { dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false) }, this.handleApiErrors);\r\n }\r\n\r\n addCreditCard = () => {\r\n const {\r\n creditCardNumber,\r\n cvv,\r\n expiryDate,\r\n defaultChecked,\r\n typeOfCardSelected,\r\n } = this.state;\r\n\r\n const requestPayload = {\r\n creditCardNumber,\r\n cvv,\r\n expiryDate,\r\n defaultChecked,\r\n type: typeOfCardSelected.label,\r\n };\r\n\r\n const {\r\n addCreditCardAction,\r\n } = this.props;\r\n\r\n const {\r\n user,\r\n } = this.props.user;\r\n\r\n addCreditCardAction(user.userToken, requestPayload).then(() => { dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false) }, this.handleApiErrors);\r\n }\r\n\r\n handleApiErrors = (err) => {\r\n this.setState({\r\n popupMessage: err,\r\n });\r\n }\r\n\r\n removeErrors = (e) => {\r\n e.preventDefault();\r\n if (this.state.errors && this.state.errors.isError) { // eslint-disable-line\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors[e.target.id] = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n };\r\n\r\n handleNext = () => {\r\n const { progressIncrement, updateProgressInWizard } = this.props;\r\n const {\r\n creditCardNumber,\r\n cvv,\r\n expiryDate,\r\n typeOfCardSelected,\r\n defaultChecked,\r\n } = this.state;\r\n const stateObject = {\r\n creditCardNumber,\r\n cvv,\r\n expiryDate,\r\n typeOfCardSelected,\r\n defaultChecked,\r\n };\r\n if (progressIncrement <= 3) {\r\n const value = progressIncrement + 1;\r\n updateProgressInWizard(value, { addCreditCardState: stateObject });\r\n }\r\n };\r\n\r\n compareOldAndNewValues = () => {\r\n const {\r\n isAdd,\r\n } = this.props;\r\n const {\r\n creditCardNumber,\r\n cvv,\r\n expiryDate,\r\n typeOfCardSelected,\r\n defaultChecked,\r\n isFieldsChanged,\r\n } = this.state;\r\n const newState = {\r\n creditCardNumber,\r\n cvv,\r\n expiryDate,\r\n typeOfCardSelected,\r\n defaultChecked,\r\n };\r\n const typeOfCardCheck = newState.typeOfCardSelected.value;\r\n const oldTypeOfCardCheck = isAdd\r\n ? this.oldState.typeOfCardSelected\r\n : this.oldState.typeOfCardSelected.value;\r\n\r\n if (\r\n (newState.creditCardNumber !== this.oldState.creditCardNumber\r\n || newState.expiryDate !== this.oldState.expiryDate\r\n || newState.cvv !== this.oldState.cvv\r\n || newState.defaultChecked !== this.oldState.defaultChecked\r\n || typeOfCardCheck !== oldTypeOfCardCheck\r\n )\r\n && !isFieldsChanged\r\n ) {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, true);\r\n this.setState({\r\n isFieldsChanged: true,\r\n });\r\n } else if (\r\n (newState.creditCardNumber === this.oldState.creditCardNumber\r\n && newState.expiryDate === this.oldState.expiryDate\r\n && newState.cvv === this.oldState.cvv\r\n && newState.defaultChecked === this.oldState.defaultChecked\r\n && typeOfCardCheck === oldTypeOfCardCheck\r\n )\r\n && isFieldsChanged\r\n ) {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false);\r\n this.setState({\r\n isFieldsChanged: false,\r\n });\r\n }\r\n }\r\n\r\n handleGoBack = () => {\r\n const { isFieldsChanged } = this.state;\r\n const { toggleIsCreditCardAddEditDetails } = this.props;\r\n if (isFieldsChanged) {\r\n this.creditCardGoBackPopUp.show();\r\n } else {\r\n toggleIsCreditCardAddEditDetails();\r\n }\r\n };\r\n\r\n goBackManageCreditCard = () => {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false);\r\n this.closePopup(this.creditCardGoBackPopUp);\r\n const { toggleIsCreditCardAddEditDetails } = this.props;\r\n toggleIsCreditCardAddEditDetails();\r\n }\r\n\r\n closePopup = (ref) => {\r\n ref.hide();\r\n }\r\n\r\n handleCancelAddCreditCard = () => {\r\n const { progressIncrement, updateProgressInWizard } = this.props;\r\n if (progressIncrement <= 3) {\r\n const value = progressIncrement + 1;\r\n updateProgressInWizard(value, [], false, false);\r\n }\r\n }\r\n\r\n renderForm = () => {\r\n const {\r\n creditCardNumber,\r\n cvv,\r\n expiryDate,\r\n typeOfCardSelected,\r\n defaultChecked,\r\n popupMessage,\r\n errors,\r\n isFieldsChanged,\r\n existsLastDigits,\r\n } = this.state;\r\n const {\r\n isAddCreditCardLoading,\r\n isAdd,\r\n editFieldId,\r\n creditCards,\r\n isDefaultEdit,\r\n } = this.props;\r\n const typeOfCardOptions = NEW_CARD_TYPES;\r\n const title = isAdd ? 'Add Card' : 'Edit Card';\r\n const promptText = `You already have a card ending with ${existsLastDigits}.Are you sure you want to add this card?`;\r\n const buttonText = isAdd ? 'Add Card' : 'Update Card';\r\n const buttonClass = isFieldsChanged\r\n ? 'uk-button change_password_button uk-width-1-1 uk-text-center vistajet_button_primary'\r\n : 'uk-button vistajet_button_primary vistajet_disabled change_password_button uk-width-1-1 uk-text-center';\r\n return (\r\n
    \r\n
    \r\n {\r\n isAddCreditCardLoading && (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n { /* \r\n \r\n
    \r\n

    \r\n {title}\r\n

    \r\n
    \r\n
    */ }\r\n\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n

    \r\n {title}\r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n errors.errors && errors.errors.creditCardNumber && (\r\n

    \r\n {errors.errors.creditCardNumber}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.cvv && (\r\n

    \r\n {errors.errors.cvv}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.expiryDate && (\r\n

    \r\n {errors.errors.expiryDate}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {buttonText}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n { this.creditCardGoBackPopUp = creditCardGoBackPopUp; }}\r\n leftButtonContent={LEFT_BUTTON_TEXT}\r\n onLeftButtonClick={() => this.closePopup(this.creditCardGoBackPopUp)}\r\n rightButtonContent={RIGHT_BUTTON_TEXT}\r\n onRightButtonClick={this.goBackManageCreditCard}\r\n title={CONFIRMATION_TITLE}\r\n content={CONFIRMATION_MESSAGE}\r\n />\r\n { this.creditCardExistsPopUp = creditCardExistsPopUp; }}\r\n leftButtonContent=\"Ok\"\r\n onLeftButtonClick={(event) => this.validateForm(event)}\r\n rightButtonContent=\"Cancel\"\r\n onRightButtonClick={() => this.closePopup(this.creditCardExistsPopUp)}\r\n title=\"Are you sure?\"\r\n content={promptText}\r\n />\r\n \r\n );\r\n };\r\n\r\n render() {\r\n return this.renderForm();\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport CreditCardListingCard from './CreditCardListingCard';\r\nimport CreditCardAddEditDetailsForm from './CreditCardAddEditDetailForm';\r\nimport MessagePopUp from '../../shared/MessagePopUp';\r\n\r\nexport default class CreditCardListingSection extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isCreditCardDetailAddEdit: false,\r\n isAdd: false,\r\n isEdit: false,\r\n editFieldId: null,\r\n popupMessage: '',\r\n isDefaultEdit: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { getCreditCardList } = this.props;\r\n getCreditCardList().then(() => {}, this.handleApiErrors);\r\n }\r\n\r\n handleApiErrors = (err) => {\r\n this.setState({\r\n popupMessage: err,\r\n }, () => {\r\n window.UIkit.modal('#AddEditCreditCardListingErrorPopUp').show();\r\n });\r\n }\r\n\r\n toggleIsCreditCardAddEditDetails = (isAdd = false, isEdit = false, editId = null, isDefaultEdit = false) => {\r\n this.setState({\r\n isCreditCardDetailAddEdit: !this.state.isCreditCardDetailAddEdit,\r\n isAdd,\r\n isEdit,\r\n editFieldId: editId,\r\n isDefaultEdit,\r\n });\r\n }\r\n\r\n renderCards = () => {\r\n const {\r\n isCreditCardDetailAddEdit,\r\n isAdd,\r\n isEdit,\r\n editFieldId,\r\n popupMessage,\r\n isDefaultEdit,\r\n } = this.state;\r\n const {\r\n user,\r\n addCreditCardAction,\r\n creditCards,\r\n deleteCreditCardAction,\r\n } = this.props;\r\n if (isCreditCardDetailAddEdit) {\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n return this.renderCards();\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { isMobile } from 'react-device-detect';\r\nimport MessagePopUp from '../../shared/MessagePopUp';\r\nimport SpinnerLoader from '../../shared/spinnerLoader';\r\nimport ValidateChangePasswordForm from '../../../utils/Validators/ChangePasswordValidator';\r\nimport { errorMessages } from \"../../../constants/ErrorMessageConstants\";\r\nimport dirtystateSingleTon from '../../../validators/validateDirty';\r\nimport SPAConstants from '../../../constants/SPAConstants';\r\n\r\nexport default class UserChangePasswordForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n oldPassword: '',\r\n oldPasswordType: 'password',\r\n newPassword: '',\r\n newPasswordType: 'password',\r\n retypeNewPassword: '',\r\n retypeNewPasswordType: 'password',\r\n errors: {},\r\n oldPasswordIconClass: 'vistajet_password_hide',\r\n newPasswordIconClass: 'vistajet_password_hide',\r\n retypePasswordIconClass: 'vistajet_password_hide',\r\n popupMessage: 'Your Request cannot be processed this time',\r\n isFieldsChanged: false,\r\n };\r\n const forState = {\r\n oldPassword: '',\r\n newPassword: '',\r\n retypeNewPassword: '',\r\n };\r\n this.oldState = Object.assign({}, forState);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (!nextProps.user.changePasswordRequired && nextProps.user.changePasswordSuccess\r\n && this.props.user.changePasswordSuccess !== nextProps.user.changePasswordSuccess) {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false);\r\n this.props.goToTabSelection(0);\r\n }\r\n if (this.props.user.changePasswordErrors !== nextProps.user.changePasswordErrors\r\n && nextProps.user.changePasswordErrors) {\r\n this.setState({\r\n popupMessage: nextProps.user.changePasswordErrorText\r\n ? nextProps.user.changePasswordErrorText\r\n : 'Your Request cannot be processed this time',\r\n }, () => {\r\n window.UIkit.modal('#UserPasswordUpdateErrorPopUp').show();\r\n });\r\n }\r\n }\r\n\r\n handleOldPasswordChange = (e) => {\r\n this.setState({ oldPassword: e.target.value }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleNewPasswordChange = (e) => {\r\n this.setState({ newPassword: e.target.value }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleRetypePasswordChange = (e) => {\r\n this.setState({ retypeNewPassword: e.target.value }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n };\r\n\r\n handleChangePassword = () => {\r\n const { oldPassword, newPassword, retypeNewPassword } = this.state;\r\n const { changePasswordAction } = this.props;\r\n const { username, userToken } = this.props.user.user;\r\n const res = ValidateChangePasswordForm({\r\n oldPassword,\r\n newPassword,\r\n retypeNewPassword,\r\n });\r\n if (res.isError) {\r\n this.setState({\r\n errors: res,\r\n });\r\n } else {\r\n const payload = {\r\n oldPassword,\r\n newPassword,\r\n retypeNewPassword,\r\n username,\r\n userToken,\r\n isProfile: true,\r\n };\r\n changePasswordAction(payload);\r\n }\r\n };\r\n\r\n removeErrors = (e) => {\r\n e.preventDefault();\r\n if (this.state.errors && this.state.errors.isError) { // eslint-disable-line\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors[e.target.id] = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n };\r\n\r\n toggleOldPasswordType = () => {\r\n this.setState(\r\n {\r\n oldPasswordType: (this.state.oldPasswordType === 'password') ? 'text' : 'password',\r\n oldPasswordIconClass: (this.state.oldPasswordType === 'password') ? 'vistajet_password_show' : 'vistajet_password_hide',\r\n },\r\n );\r\n };\r\n\r\n toggleNewPasswordType = () => {\r\n this.setState(\r\n {\r\n newPasswordType: (this.state.newPasswordType === 'password') ? 'text' : 'password',\r\n newPasswordIconClass: (this.state.newPasswordType === 'password') ? 'vistajet_password_show' : 'vistajet_password_hide',\r\n },\r\n );\r\n };\r\n\r\n toggleRetypePasswordType = () => {\r\n this.setState(\r\n {\r\n retypeNewPasswordType: (this.state.retypeNewPasswordType === 'password') ? 'text' : 'password',\r\n retypePasswordIconClass: (this.state.retypeNewPasswordType === 'password') ? 'vistajet_password_show' : 'vistajet_password_hide',\r\n },\r\n );\r\n };\r\n\r\n compareOldAndNewValues = () => {\r\n const {\r\n oldPassword,\r\n newPassword,\r\n retypeNewPassword,\r\n isFieldsChanged,\r\n } = this.state;\r\n const newState = {\r\n oldPassword,\r\n newPassword,\r\n retypeNewPassword,\r\n };\r\n\r\n if (\r\n (newState.oldPassword.toLowerCase() !== this.oldState.oldPassword.toLowerCase()\r\n || newState.newPassword.toLowerCase() !== this.oldState.newPassword.toLowerCase()\r\n || newState.retypeNewPassword.toLowerCase() !== this.oldState.retypeNewPassword.toLowerCase()\r\n )\r\n && !isFieldsChanged\r\n ) {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, true);\r\n this.setState({\r\n isFieldsChanged: true,\r\n });\r\n } else if (\r\n (newState.oldPassword.toLowerCase() === this.oldState.oldPassword.toLowerCase()\r\n && newState.newPassword.toLowerCase() === this.oldState.newPassword.toLowerCase()\r\n && newState.retypeNewPassword.toLowerCase() === this.oldState.retypeNewPassword.toLowerCase()\r\n )\r\n && isFieldsChanged\r\n ) {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false);\r\n this.setState({\r\n isFieldsChanged: false,\r\n });\r\n }\r\n }\r\n\r\n redirectToHome = () => {\r\n window.location = '/';\r\n };\r\n\r\n closePopup = (id) => {\r\n window.UIkit.modal(`#${id}`).hide();\r\n }\r\n\r\n renderChangePasswordForm = () => {\r\n const {\r\n oldPassword,\r\n newPassword,\r\n retypeNewPassword,\r\n retypeNewPasswordType,\r\n oldPasswordType,\r\n oldPasswordIconClass,\r\n newPasswordType,\r\n newPasswordIconClass,\r\n retypePasswordIconClass,\r\n popupMessage,\r\n errors,\r\n isFieldsChanged,\r\n } = this.state;\r\n const {\r\n isPasswordChangeLoading,\r\n } = this.props.user;\r\n const buttonClass = isFieldsChanged\r\n ? 'uk-button change_password_button uk-width-1-1 vistajet_button_primary'\r\n : 'uk-button vistajet_disabled uk-width-1-1 change_password_button vistajet_button_primary';\r\n let mobileErrorTextMarginStyle = {};\r\n if (\r\n isMobile\r\n && errors.errors\r\n && errors.errors.newPassword\r\n && (errorMessages.PASS_MAX_LENGTH == errors.errors.newPassword\r\n || errors.errors.newPassword == errorMessages.INVALID_PASS)) {\r\n mobileErrorTextMarginStyle = { marginBottom: 40 };\r\n }\r\n return (\r\n
    \r\n {\r\n isPasswordChangeLoading && (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n

    Change Password

    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.oldPassword && (\r\n

    \r\n {errors.errors.oldPassword}\r\n

    \r\n )\r\n }\r\n \r\n
    \r\n \r\n \r\n \r\n {\r\n errors.errors && errors.errors.newPassword && (\r\n

    \r\n {errors.errors.newPassword}\r\n

    \r\n )\r\n }\r\n \r\n
    \r\n \r\n \r\n \r\n {\r\n errors.errors && errors.errors.retypeNewPassword && (\r\n

    \r\n {errors.errors.retypeNewPassword}\r\n

    \r\n )\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Change Password\r\n \r\n \r\n
    \r\n \r\n );\r\n };\r\n\r\n render() {\r\n return this.renderChangePasswordForm();\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport VirtualizedSelect from 'react-virtualized-select';\r\nimport createFilterOptions from \"react-select-fast-filter-options\";\r\nimport \"react-virtualized-select/styles.css\";\r\nimport \"./react-select.css\";\r\nimport MessagePopUp from '../../shared/MessagePopUp';\r\nimport { convertToTitleCase } from '../../../utils/stringUtils';\r\nimport { CITY_ALREADY_ADDED } from '../../../constants/MessageConstants';\r\nimport SpinnerLoader from '../../shared/spinnerLoader';\r\nimport dirtystateSingleTon from '../../../validators/validateDirty';\r\nimport SPAConstants from '../../../constants/SPAConstants';\r\nimport cities from '../../../constants/CityConstants';\r\n\r\nconst options = cities.map((city) => {\r\n return {\r\n value: city.placeId,\r\n label: convertToTitleCase(`${city.cityName}, ${city.countryName}`)\r\n }\r\n});\r\nconst filterOptions = createFilterOptions({\r\n options\r\n});\r\nexport default class PushNotificationCard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n city: null,\r\n selectedCities: {},\r\n selectedCitiesDisplayNames: [],\r\n notifications: {},\r\n errors: {},\r\n disableToggle: false,\r\n popupMessage: 'Your Request cannot be processed this time',\r\n isFieldsChanged: false,\r\n };\r\n this.checkFormated = false;\r\n this.firstThreeCities = [];\r\n this.notificationOldState = {};\r\n this.notificationOldIdsState = {};\r\n this.citiesOldState = {};\r\n this.citiesOldIdsState = {};\r\n this.toggleOldState = null;\r\n }\r\n\r\n componentDidMount() {\r\n const { fetchPushNotification } = this.props;\r\n const { user } = this.props.user;\r\n fetchPushNotification(user.userToken).then(() => {\r\n this.populateValues();\r\n }, this.handleApiErrors);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n (this.props.notifications !== nextProps.notifications\r\n || this.props.cities !== nextProps.cities)\r\n && nextProps.isPushNotificationUpdated\r\n ) {\r\n this.props.goToTabSelection(0);\r\n }\r\n if (this.props.pushNotificationError !== nextProps.pushNotificationError\r\n && nextProps.isPushNotificationError) {\r\n window.UIkit.modal('#PushNotificationErrorPopUp').show();\r\n }\r\n }\r\n\r\n populateValues = () => {\r\n const { notifications, cities } = this.props;\r\n const { disablePushNotificationCities } = this.props.user;\r\n this.notificationOldState = JSON.parse(JSON.stringify(notifications));\r\n this.citiesOldState = (cities && Object.keys(cities))\r\n ? JSON.parse(JSON.stringify(cities))\r\n : {\r\n content: {},\r\n ids: [],\r\n };\r\n this.toggleOldState = disablePushNotificationCities;\r\n this.setState({\r\n notifications: Object.assign({}, notifications),\r\n selectedCities: (cities && Object.keys(cities))\r\n ? Object.assign({}, cities)\r\n : {\r\n content: {},\r\n ids: [],\r\n },\r\n disableToggle: disablePushNotificationCities,\r\n });\r\n }\r\n\r\n handleApiErrors = (err) => {\r\n this.setState({\r\n popupMessage: err,\r\n });\r\n };\r\n\r\n getCityDisplayName = (id) => {\r\n let displayName = '';\r\n cities.some((city) => {\r\n if (city.placeId === id) {\r\n displayName = convertToTitleCase(`${city.cityName}, ${city.countryName}`);\r\n return true;\r\n }\r\n return false;\r\n });\r\n return displayName;\r\n }\r\n\r\n isCityAdded = id => {\r\n const { selectedCities } = this.state;\r\n let isAdded = false;\r\n isAdded = selectedCities.ids.some((cityId) => {\r\n return (cityId === id && selectedCities.content[cityId].enabled);\r\n });\r\n return isAdded;\r\n }\r\n\r\n handleCityChange = value => {\r\n this.setState({\r\n city: value,\r\n });\r\n }\r\n\r\n handleCitySelectChange = value => {\r\n const { selectedCities } = this.state;\r\n const cityObj = Object.assign({}, selectedCities);\r\n if (!this.isCityAdded(value.value)) {\r\n /* Preventing state mutation */\r\n const ids = [...cityObj.ids];\r\n if (!cityObj.ids.some((id) => id === value.value)) {\r\n ids.push(value.value);\r\n Object.assign(cityObj, {ids});\r\n const newCityObj = {\r\n [value.value]: {\r\n cityId: value.value,\r\n enabled: true,\r\n },\r\n };\r\n cityObj.content = Object.assign({}, cityObj.content, newCityObj);\r\n } else {\r\n cityObj.content[value.value].enabled = true;\r\n }\r\n /* Preventing state mutation */\r\n this.setState({\r\n selectedCities: Object.assign({}, cityObj),\r\n }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n } else {\r\n const res = {\r\n errors: {},\r\n };\r\n res.isError = true;\r\n res.errors.city = CITY_ALREADY_ADDED;\r\n this.setState({\r\n errors: res,\r\n });\r\n }\r\n }\r\n\r\n handleNotificationRadioCheck = id => {\r\n const { notifications } = this.state;\r\n notifications.content[id].enabled = !notifications.content[id].enabled;\r\n this.setState({\r\n notifications\r\n }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n }\r\n\r\n removeSelectedCity = (id, index) => {\r\n const { selectedCities } = this.state;\r\n selectedCities.content[id].enabled = false;\r\n this.setState({\r\n selectedCities: Object.assign({}, selectedCities),\r\n }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n }\r\n\r\n removeErrors = (e) => {\r\n e.preventDefault();\r\n if (this.state.errors && this.state.errors.isError) { // eslint-disable-line\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors[e.target.id] = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n };\r\n\r\n removeCityError = () => {\r\n if (this.state.errors.isError) {\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors.city = null;\r\n remErrors.isError = false;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n }\r\n\r\n compareNotificationIds = (\r\n newNotificationState,\r\n oldNotificationState,\r\n ) => {\r\n let isChanged = false;\r\n if (newNotificationState.ids.length !== oldNotificationState.ids.length) {\r\n isChanged = true;\r\n return isChanged;\r\n } else {\r\n newNotificationState.ids.some((newId) => {\r\n if (newNotificationState.content[newId].enabled\r\n !== oldNotificationState.content[newId].enabled) {\r\n isChanged = true;\r\n return;\r\n }\r\n });\r\n }\r\n return isChanged;\r\n }\r\n\r\n compareCityids = (newCitiesState, oldCitiesState) => {\r\n let isChanged = false;\r\n if (newCitiesState.ids.length !== oldCitiesState.ids.length) {\r\n isChanged = true;\r\n return isChanged;\r\n } else {\r\n newCitiesState.ids.some((newId) => {\r\n if (newCitiesState.content[newId].enabled\r\n !== oldCitiesState.content[newId].enabled) {\r\n isChanged = true;\r\n return;\r\n }\r\n });\r\n }\r\n return isChanged;\r\n }\r\n\r\n compareOldAndNewValues = () => {\r\n const {\r\n selectedCities,\r\n notifications,\r\n disableToggle,\r\n isFieldsChanged,\r\n } = this.state;\r\n const newState = {\r\n selectedCities,\r\n notifications,\r\n disableToggle,\r\n };\r\n\r\n if (\r\n (this.compareNotificationIds(notifications, this.notificationOldState)\r\n || this.compareCityids(selectedCities, this.citiesOldState)\r\n || newState.disableToggle !== this.toggleOldState\r\n )\r\n && !isFieldsChanged\r\n ) {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, true);\r\n this.setState({\r\n isFieldsChanged: true,\r\n });\r\n } else if (\r\n (!this.compareNotificationIds(notifications, this.notificationOldState)\r\n && !this.compareCityids(selectedCities, this.citiesOldState)\r\n && newState.disableToggle === this.toggleOldState\r\n )\r\n && isFieldsChanged\r\n ) {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false);\r\n this.setState({\r\n isFieldsChanged: false,\r\n });\r\n }\r\n }\r\n\r\n redirectToHome = () => {\r\n window.location = '/';\r\n };\r\n\r\n closePopup = (id) => {\r\n window.UIkit.modal(`#${id}`).hide();\r\n }\r\n\r\n toggleDisablePreferredCities = () => {\r\n this.setState({\r\n disableToggle: !this.state.disableToggle,\r\n }, () => {\r\n this.compareOldAndNewValues();\r\n });\r\n }\r\n\r\n updateNotifications = () => {\r\n const { updateNotifications } = this.props;\r\n const { userToken } = this.props.user.user;\r\n const { notifications, selectedCities, disableToggle } = this.state;\r\n updateNotifications(userToken, notifications, selectedCities, disableToggle)\r\n .then(() => {dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false)}, this.handleApiErrors);\r\n }\r\n\r\n renderNotificationOptions = () => {\r\n const { notifications } = this.state;\r\n if (notifications &&\r\n Object.keys(notifications).length > 0 &&\r\n notifications.ids\r\n ) {\r\n return notifications.ids.map((id, index) => {\r\n if (id !== 4) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {notifications.content[id].displayName}\r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n });\r\n }\r\n }\r\n\r\n renderChips = () => {\r\n const { selectedCities } = this.state;\r\n if (selectedCities && Object.keys(selectedCities).length > 0 && selectedCities.ids && selectedCities.ids.length > 0) {\r\n return selectedCities.ids.map((cityChipId, index) => {\r\n return (\r\n selectedCities.content[cityChipId].enabled && (\r\n
    \r\n {this.getCityDisplayName(cityChipId)}\r\n this.removeSelectedCity(cityChipId, index)}\r\n >\r\n \r\n
    \r\n )\r\n );\r\n })\r\n }\r\n }\r\n\r\n renderPushNotificationCard = () => {\r\n const {\r\n popupMessage,\r\n errors,\r\n city,\r\n disableToggle,\r\n isFieldsChanged,\r\n } = this.state;\r\n const { isPushNotificationLoading } = this.props;\r\n const buttonClass = isFieldsChanged\r\n ? 'uk-button change_password_button uk-width-1-1 uk-text-center vistajet_button_primary'\r\n : 'uk-button vistajet_disabled uk-width-1-1 change_password_button vistajet_button_primary';\r\n return (\r\n
    \r\n {\r\n isPushNotificationLoading && (\r\n
    \r\n \r\n
    \r\n )\r\n } \r\n
    \r\n
    \r\n
    \r\n

    Notifications

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

    \r\n Preferred Cities\r\n

    \r\n
    \r\n
    \r\n Save your preferred cities for offers notifications\r\n
    \r\n
    \r\n
    \r\n {\r\n !disableToggle && (\r\n
    \r\n \r\n {\r\n errors.errors && errors.errors.city && (\r\n

    \r\n {errors.errors.city}\r\n

    \r\n )\r\n }\r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n {\r\n !disableToggle && (\r\n
    \r\n {this.renderChips()}\r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n

    Notifications

    \r\n
    \r\n
    \r\n {this.renderNotificationOptions()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Save Settings\r\n \r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n render() {\r\n return this.renderPushNotificationCard();\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport MessagePopUp from '../shared/MessagePopUp';\r\nimport UserDetailSection from './UserDetailsSection/UserDetailSection';\r\nimport PassportListingSection from './PassportSection/PassportListingSection';\r\nimport CreditCardListingSection from './UserCreditCardSection/CreditCardListingSection';\r\nimport UserChangePasswordForm from './ChangePassowordSection/ChangeUserPasswordForm';\r\nimport PushNotificationCard from './PushNotificationSection/PushNotificationCard';\r\nimport {\r\n USER_PROFILE_SUCCESSFULLY_UPDATED,\r\n PASSWORD_UPDATE_SUCCESS,\r\n UPDATE_SAVED,\r\n} from '../../constants/MessageConstants';\r\nimport { concatenateStrings } from '../../utils/stringUtils';\r\nimport {\r\n isGuest,\r\n isFspDirect,\r\n isFSP,\r\n isAdhoc,\r\n isVJ2,\r\n} from '../../utils/userUtils';\r\nimport ConfirmationPopup from '../shared/ConfirmationPopUpNew';\r\nimport { CONFIRMATION_TITLE, LEFT_BUTTON_TEXT, RIGHT_BUTTON_TEXT, CONFIRMATION_MESSAGE } from '../../constants/DirtyPopupConstant';\r\nimport dirtystateSingleTon from '../../validators/validateDirty';\r\nimport SPAConstants from '../../constants/SPAConstants';\r\n\r\nexport default class UserProfile extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n tabIndex: '0',\r\n popupMessage: '',\r\n tempIndex: '0'\r\n };\r\n this.shouldNotificationShow = false;\r\n this.userType = {\r\n isGuestUser: false,\r\n isAdhoc: false,\r\n isFspDirect: false,\r\n isFsp: false,\r\n isVjdirect: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getUserType();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n this.props.user.user !== nextProps.user.user\r\n && nextProps.user.isProfileUpdated\r\n && this.props.user.isProfileUpdated !== nextProps.user.isProfileUpdated\r\n && !this.shouldNotificationShow\r\n ) {\r\n if (nextProps.user.passportUpdateMessage) {\r\n this.showNotification(nextProps.user.passportUpdateMessage);\r\n } else {\r\n this.showNotification(USER_PROFILE_SUCCESSFULLY_UPDATED);\r\n }\r\n }\r\n if (!nextProps.user.changePasswordRequired && nextProps.user.changePasswordSuccess\r\n && this.props.user.changePasswordSuccess !== nextProps.user.changePasswordSuccess\r\n ) {\r\n this.showNotification(PASSWORD_UPDATE_SUCCESS);\r\n }\r\n if (\r\n nextProps.isAddedCreditCard\r\n && this.props.isAddedCreditCard !== nextProps.isAddedCreditCard\r\n && !nextProps.isAddCreditCardLoading\r\n && this.props.creditCardMessage !== nextProps.creditCardMessage\r\n ) {\r\n this.showNotification(nextProps.creditCardMessage);\r\n }\r\n if (\r\n nextProps.isDeletedCreditCard\r\n && this.props.isDeletedCreditCard !== nextProps.isDeletedCreditCard\r\n && !nextProps.isAddCreditCardLoading\r\n && this.props.creditCardMessage !== nextProps.creditCardMessage\r\n ) {\r\n this.showNotification(nextProps.creditCardMessage);\r\n }\r\n if (\r\n (this.props.notifications !== nextProps.notifications\r\n || this.props.cities !== nextProps.cities)\r\n && nextProps.isPushNotificationUpdated\r\n && this.props.isPushNotificationUpdated !== nextProps.isPushNotificationUpdated\r\n ) {\r\n this.showNotification(UPDATE_SAVED);\r\n }\r\n // if (this.props.accountDataError !== nextProps.accountDataError\r\n // && nextProps.isAccountDataFetchedError\r\n // ) {\r\n // this.setState({\r\n // popupMessage: nextProps.accountDataError,\r\n // }, () => {\r\n // window.UIkit.modal('#AccountStatusErrorPopUp').show();\r\n // });\r\n // }\r\n }\r\n\r\n getUserType = () => {\r\n const { user } = this.props;\r\n if (user && user.user) {\r\n this.userType.isGuestUser = isGuest(user.user);\r\n this.userType.isAdhoc = isAdhoc(user.user);\r\n this.userType.isFsp = isFSP(user.user);\r\n this.userType.isFspDirect = isFspDirect(user.user);\r\n this.userType.isVjdirect = isVJ2(user.user);\r\n }\r\n this.setState({\r\n reRender: true,\r\n });\r\n }\r\n\r\n showNotification = (message) => {\r\n window.UIkit.notification({\r\n message,\r\n status: 'danger',\r\n pos: 'top-center',\r\n timeout: 5000,\r\n });\r\n }\r\n\r\n toggleShowNotification = () => {\r\n this.shouldNotificationShow = !this.shouldNotificationShow;\r\n }\r\n\r\n handleTabChange = (e) => {\r\n const index = e.target.id;\r\n const isUserProfileDirty = dirtystateSingleTon.getDirty(SPAConstants.UserProfile);\r\n if (isUserProfileDirty) {\r\n this.setState({\r\n tempIndex: index\r\n }, () => {\r\n this.userProfilePopup.show();\r\n });\r\n\r\n } else {\r\n this.handleConfirmTabChange(index);\r\n }\r\n }\r\n\r\n handleConfirmTabChange = (tabIndex) => {\r\n dirtystateSingleTon.setDirty(SPAConstants.UserProfile, false);\r\n this.userProfilePopup.hide();\r\n this.setState({\r\n tabIndex,\r\n tempEvent: null\r\n });\r\n }\r\n\r\n goToTabSelection = (index) => {\r\n this.setState({\r\n tabIndex: index.toString(),\r\n });\r\n }\r\n\r\n renderSelectedTab = (index) => {\r\n const { user } = this.props;\r\n switch (Number(index)) {\r\n case 0: return (\r\n \r\n );\r\n case 1: return (\r\n \r\n );\r\n case 2: return (\r\n \r\n );\r\n case 3: return (\r\n \r\n );\r\n case 4: return (\r\n \r\n );\r\n default: return (\r\n
    \r\n );\r\n }\r\n }\r\n\r\n renderUserProfileScreen = () => {\r\n const { tabIndex, popupMessage } = this.state;\r\n const { user } = this.props.user;\r\n const { isAccountDataFetched, isAccountDataFetchedError, isAccountDataFail } = this.props;\r\n const isLoading = (!isAccountDataFetched && !isAccountDataFetchedError);\r\n\r\n const menuOptionText = {\r\n 0: 'My Account',\r\n 1: 'Manage Passport',\r\n 2: 'Change Password',\r\n 3: 'Notifications',\r\n 4: 'Payment Methods',\r\n };\r\n return (\r\n
    \r\n
    \r\n {\r\n (isLoading) && (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n {(isAccountDataFetched || isAccountDataFail) &&\r\n
    \r\n
    \r\n
    \r\n \r\n
    \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.userType.isFsp || this.userType.isFspDirect) && (\r\n
    • \r\n \r\n
    • \r\n )\r\n }\r\n {\r\n ((!this.userType.isFsp\r\n || this.userType.isFspDirect)\r\n && !this.userType.isGuestUser) && (\r\n
    • \r\n \r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {concatenateStrings(\r\n user && user.firstName,\r\n user && user.lastName,\r\n )}\r\n

    \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.userType.isFsp || this.userType.isFspDirect) && (\r\n
    • \r\n \r\n
    • \r\n )\r\n }\r\n {\r\n ((!this.userType.isFsp\r\n || this.userType.isFspDirect)\r\n && !this.userType.isGuestUser) && (\r\n
    • \r\n \r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.renderSelectedTab(tabIndex)}\r\n
    \r\n
    \r\n }\r\n
    \r\n { this.userProfilePopup = userProfilePopup; }}\r\n title={CONFIRMATION_TITLE}\r\n leftButtonContent={LEFT_BUTTON_TEXT}\r\n rightButtonContent={RIGHT_BUTTON_TEXT}\r\n onLeftButtonClick={() => this.userProfilePopup.hide()} // close form\r\n onRightButtonClick={() => this.handleConfirmTabChange(this.state.tempIndex)}\r\n content={CONFIRMATION_MESSAGE}\r\n />\r\n \r\n
    \r\n );\r\n };\r\n\r\n render() {\r\n return this.renderUserProfileScreen();\r\n }\r\n}\r\n","import { connect } from 'react-redux';\r\nimport withStore from '../components/withStore';\r\nimport UserProfile from '../components/UserProfile/UserProfile';\r\nimport * as actions from '../store/actions';\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n isPasswordChangeLoading,\r\n } = state.user;\r\n const { user } = state;\r\n const { creditCards, isAdded, isDeleted } = state.creditCardReducer;\r\n const { notifications, cities } = state.pushNotificationReduer;\r\n const {\r\n membershipAccountLoading,\r\n isDirectAccountBalanceError,\r\n isMemebershipAccountFetched,\r\n directAccoutBalanceError,\r\n accountData,\r\n } = state.directAccountBalance;\r\n return {\r\n user,\r\n isTokenError: state.token.isTokenError,\r\n tokenError: state.token.tokenError,\r\n isAuthError: state.token.isTokenAuthError,\r\n authError: state.token.tokenAuthError,\r\n isPasswordChangeLoading,\r\n creditCards,\r\n isAddedCreditCard: isAdded,\r\n isDeletedCreditCard: isDeleted,\r\n isAddCreditCardLoading: state.creditCardReducer.isLoading,\r\n isAddCreditCardError: state.creditCardReducer.isError,\r\n addCreditCardLoadingError: state.creditCardReducer.error,\r\n creditCardMessage: state.creditCardReducer.message,\r\n notifications,\r\n cities,\r\n pushNotificationFetched: state.pushNotificationReduer.isFetched,\r\n isPushNotificationLoading: state.pushNotificationReduer.isLoading,\r\n isPushNotificationError: state.pushNotificationReduer.isError,\r\n pushNotificationError: state.pushNotificationReduer.error,\r\n isPushNotificationUpdated: state.pushNotificationReduer.isUpdated,\r\n accountData,\r\n membershipAccountLoading,\r\n isDirectAccountBalanceError,\r\n isMemebershipAccountFetched,\r\n directAccoutBalanceError,\r\n isAccountDataFetched: state.user.isAccountDataFetched,\r\n isAccountDataFetchedError: state.user.isAccountDataFetchedError,\r\n isAccountDataFail: state.user.isAccountDataFail,\r\n accountDataError: state.user.accountDataError,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n fetchAdminToken: () => dispatch(actions.fetchAdminToken()),\r\n getToken: () => dispatch(actions.fetchToken()),\r\n authenticateTokenAction: token => dispatch(actions.authenticateTokenAction(token)),\r\n logout: token => dispatch(actions.logoutAction(token)),\r\n changePasswordAction: payload => dispatch(actions.changePasswordAction(payload)),\r\n getCreditCardList: () => dispatch(actions.getAllCreditCards()),\r\n addCreditCardAction: (token, payload) => dispatch(actions.addCreditCardAction(token, payload)),\r\n deleteCreditCardAction: (token, payload) => dispatch(actions.deleteCreditCardAction(\r\n token,\r\n payload,\r\n )),\r\n updateUserProfileAction: (\r\n payload,\r\n user,\r\n passports,\r\n flightLegId,\r\n paxOperationId,\r\n ) => dispatch(actions.updateUserProfileAction(\r\n payload,\r\n user,\r\n passports,\r\n flightLegId,\r\n paxOperationId,\r\n )),\r\n fetchPushNotification: (token) => dispatch(actions.fetchPushNotificationAction(token)),\r\n updateNotifications: (\r\n token,\r\n notifications,\r\n cities,\r\n disableToggle,\r\n ) => dispatch(actions.updatePushNotificationAction(\r\n token,\r\n notifications,\r\n cities,\r\n disableToggle,\r\n )),\r\n getDirectAccountStatement: (token, currentLength, isLoadMore) => dispatch(\r\n actions.MembershipAccountStatement(\r\n token,\r\n currentLength,\r\n isLoadMore,\r\n ),\r\n ),\r\n getAccountStatusAction: token => dispatch(actions.getAccountStatusAction(token)),\r\n };\r\n}\r\n\r\nconst UserProfileContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(UserProfile);\r\n\r\nexport default withStore(UserProfileContainer);\r\n","import moment from 'moment';\r\nimport React, { Component } from 'react';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport MessagePopUpNew from '../../../src/components/shared/MessagePopUpNew';\r\nimport { dateFormats } from '../../utils/dateUtils';\r\nimport { formatArrivalTime, formatDepartTime } from '../PlanAFlight/ThankyouScreen';\r\nimport Helpers from '../../utils/Helpers';\r\nimport { numberWithCommas } from '../../utils/parserUtils';\r\nimport { quoteQueryEmail, quoteQueryEmailSubject } from 'constants/PAFConstants';\r\nimport { RAF_PAGE_URL, QUOTE_SUMMARY_PAGE_URL } from '../../configs/constants';\r\nimport OffersMap from '../OfferMap';\r\nimport { saveToLocal } from '../../utils/cache';\r\nimport { QUOTE_OBJECT } from '../../constants/localStorageKeys';\r\nimport { getAircraftByField } from '../../utils/aircraftUtils';\r\nimport { Link, Element } from 'react-scroll';\r\nconst glex = \"/legacy/static/img/icons/GLEX-icon.svg\";\r\n\r\nclass ExpiredQuotes extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageNumber: 1,\r\n quotes: true,\r\n loadMore: false,\r\n showMap: {},\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { fetchQuotes } = this.props;\r\n const { pageNumber } = this.state;\r\n fetchQuotes('EXPIRED', pageNumber);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { quotes, isQuoteLoading, error, airportError, isQuoteLoadMoreLoading } = nextProps;\r\n if (!isQuoteLoading && (this.props.isQuoteLoading !== isQuoteLoading)) {\r\n if (!Object.keys(quotes).length) {\r\n this.setState({ quotes: false })\r\n } else if (Object.keys(quotes).length < 10) {\r\n this.setState({ loadMore: false })\r\n this.fetchAirports(quotes);\r\n } else {\r\n this.setState({ loadMore: true })\r\n this.fetchAirports(quotes);\r\n }\r\n }\r\n if (error || airportError) {\r\n this.messagePopup.show();\r\n }\r\n if (!isQuoteLoadMoreLoading && (this.props.isQuoteLoadMoreLoading !== isQuoteLoadMoreLoading)) {\r\n if (Object.keys(quotes).length === Object.keys(this.props.quotes).length) {\r\n this.setState({ loadMore: false })\r\n }\r\n else {\r\n this.fetchAirports(quotes);\r\n }\r\n }\r\n }\r\n\r\n fetchAirports = (quotes) => {\r\n const ids = [];\r\n Object.keys(quotes).forEach(quoteId => {\r\n const quote = quotes[quoteId];\r\n const { legs } = quote;\r\n legs.forEach(leg => {\r\n ids.push(leg.departureAirportId);\r\n ids.push(leg.arrivalAirportId);\r\n })\r\n })\r\n if (ids.length)\r\n this.props.getAirportById([...new Set(ids)]);\r\n }\r\n\r\n loadMore = () => {\r\n this.setState({ pageNumber: this.state.pageNumber + 1 }, () => {\r\n this.props.fetchQuotes('EXPIRED', this.state.pageNumber);\r\n });\r\n }\r\n\r\n handleEmailUs = (id) => {\r\n const emailUsWindow =\r\n window.open(`mailto:${quoteQueryEmail}?Subject=${quoteQueryEmailSubject} ${id}`);\r\n setTimeout(() => {\r\n emailUsWindow.close();\r\n }, 3000);\r\n }\r\n\r\n showMap = (id) => {\r\n const map = { ...this.state.showMap }\r\n map[id] = true;\r\n this.setState({\r\n showMap: map\r\n });\r\n }\r\n\r\n closeMap = (id) => {\r\n const map = { ...this.state.showMap }\r\n map[id] = false;\r\n this.setState({\r\n showMap: map\r\n });\r\n }\r\n\r\n requote = (quoteId) => {\r\n const URL = RAF_PAGE_URL + `?quoteId=${quoteId}&requote`;\r\n window.open(URL, '_self');\r\n }\r\n\r\n populateLegs = (legs) => {\r\n const { visitedAirportsFinder, aircraftsList } = this.props\r\n legs.forEach(leg => {\r\n leg.departureAirport = visitedAirportsFinder[leg.departureAirportId];\r\n leg.arrivalAirport = visitedAirportsFinder[leg.arrivalAirportId];\r\n leg.selectedAircraft = getAircraftByField(leg.aircraftId, aircraftsList);\r\n leg.arrivalTime = leg.arrivalAirportTimeLocal;\r\n leg.departTime = leg.departureAirportTimeLocal;\r\n leg.passengersCount = leg.passengers;\r\n });\r\n return legs;\r\n }\r\n\r\n sortQuotes = (quotes) => {\r\n const quoteArray = Object.values(quotes).sort(function (a, b) {\r\n const _a = a.requestedDate.split(\" \");\r\n const _b = b.requestedDate.split(\" \");\r\n const formattedDateA = moment(`${moment(_a[0], \"DD-MM-YYYY\").format('YYYY-MM-DD')}T${_a[1]}`);\r\n const formattedDateB = moment(`${moment(_b[0], \"DD-MM-YYYY\").format('YYYY-MM-DD')}T${_b[1]}`)\r\n return moment(formattedDateA).diff(moment(formattedDateB));\r\n }).reverse();\r\n return quoteArray.map(_quote => (\r\n this.renderQuoteList(_quote)\r\n ));\r\n }\r\n\r\n renderQuoteList = (quote) => {\r\n const { visitedAirportsFinder } = this.props;\r\n const { showMap } = this.state;\r\n const { legs } = quote;\r\n const firstLeg = legs[0];\r\n const lastLeg = legs[legs.length - 1];\r\n const formattedDate = moment(firstLeg.departureAirportTimeLocal.split('T')[0]).format(dateFormats.DDMMMYYYY);\r\n const departureAirport = visitedAirportsFinder[firstLeg.departureAirportId];\r\n const arrivalAirport = visitedAirportsFinder[lastLeg.arrivalAirportId];\r\n const time = legs.reduce((sum, element) => sum + Number(element.duration), 0);\r\n const arrivalTime = formatArrivalTime(lastLeg.departureAirportTimeLocal, lastLeg.arrivalAirportTimeLocal);\r\n const departTime = formatDepartTime(firstLeg.departureAirportTimeLocal);\r\n const isReturn = legs.length === 2 && firstLeg.departureAirportId === lastLeg.arrivalAirportId;\r\n const isMultiLeg = legs.length > 1 && isReturn === false;\r\n const formattedTime = `${Math.floor(time / 60)}h ${Helpers.roundTo5Minutes(\r\n Math.floor(time % 60)\r\n )}m`;\r\n const { requestedDate, quotedDate, expiryDate, currency, amount, id } = quote;\r\n const formattedRequestedDate = moment(moment(requestedDate.split(' ')[0], \"DD-MM-YYYY\")).format(dateFormats.DDMMMYYYY)\r\n const formattedQuotedDate = moment(moment(quotedDate.split(' ')[0], \"DD-MM-YYYY\")).format(dateFormats.DDMMMYYYY)\r\n const expireDiff = Math.floor(moment.duration(moment(expiryDate)\r\n .diff(moment())).asDays()) + 1;\r\n let expire = expireDiff > 0 ? `in ${expireDiff} Days` : 'Today';\r\n const passengersCount = firstLeg.passengers;\r\n const aircraftName = firstLeg.aircraftTypeName;\r\n const parsedAmount = numberWithCommas(amount);\r\n let iconClass = \"vistajet_departure_center\";\r\n if (isReturn) {\r\n iconClass = \"vistajet_departure_center vistajet_return_icon\";\r\n }\r\n else if (isMultiLeg) {\r\n iconClass = \"vistajet_departure_center vistajet_multicities_icon\";\r\n }\r\n\r\n return (
    \r\n\r\n
    div > .uk-card\">\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Subject to availability at the time of request\r\n
    \r\n
    \r\n
    \r\n {formattedDate}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {departureAirport ?\r\n
    \r\n {departureAirport.city}\r\n {departureAirport.name}\r\n
    :\r\n
    \r\n \r\n
    }\r\n
    \r\n
    \r\n
    \r\n {formattedTime}\r\n
    \r\n
    \r\n
    \r\n {arrivalAirport ?\r\n
    \r\n {arrivalAirport.city}\r\n {arrivalAirport.name}\r\n
    :\r\n
    \r\n \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {arrivalTime}\r\n
    \r\n
    \r\n {departTime}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {legs.length === 1 &&
    \r\n
    \r\n {passengersCount}\r\n
    \r\n
    \r\n \"\"\r\n {aircraftName}\r\n
    \r\n
    }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n {!showMap[id] &&\r\n
    \r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Ref#{id}
    \r\n
    Requested: {formattedRequestedDate}
    \r\n
    Quoted: {formattedQuotedDate}
    \r\n
    {currency} {parsedAmount}
    \r\n this.requote(id)}\r\n disabled={!departureAirport || !arrivalAirport}\r\n >\r\n Re-Quote\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {showMap[id] &&\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n\r\n
    );\r\n }\r\n\r\n onScroll(id) {\r\n const elementToScroll = document.getElementById(id);\r\n if (elementToScroll) elementToScroll.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n\r\n render() {\r\n const { isQuoteLoading, quotes, isQuoteLoadMoreLoading, error, airportError } = this.props;\r\n const { loadMore } = this.state;\r\n return (\r\n
    \r\n
    \r\n
    \r\n {isQuoteLoading\r\n ? (
    \r\n \r\n
    )\r\n : (
    \r\n {Object.keys(quotes).length ? this.sortQuotes(quotes)\r\n : (
    \r\n
    \r\n

    You have no expired quotes.

    \r\n
    \r\n
    )}\r\n
    \r\n {isQuoteLoadMoreLoading ? \r\n : loadMore &&\r\n \r\n }\r\n
    \r\n
    )}\r\n
    \r\n
    \r\n { this.messagePopup = messagePopup; }}\r\n content={error || airportError}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ExpiredQuotes","import { connect } from 'react-redux';\r\nimport * as actions from '../../store/actions';\r\nimport withStore from '../../components/withStore';\r\nimport ExpiredQuotes from '../../components/Quotes/ExpiredQuotes';\r\n\r\nfunction mapStateToProps(state) {\r\n const { isGoogleMapsApiLoaded } = state.googleMap;\r\n const { isAirportByIdLoading, visitedAirportsFinder, error } = state.visitedAirports;\r\n const { isQuoteLoading, isQuoteLoadMoreLoading, expiredQuotes, quoteError } = state.quotes;\r\n const { user } = state.user;\r\n const { aircraftsList } = state.aircrafts;\r\n return {\r\n user,\r\n isAirportByIdLoading,\r\n visitedAirportsFinder,\r\n isGoogleMapsApiLoaded,\r\n isQuoteLoading,\r\n isQuoteLoadMoreLoading,\r\n quotes: expiredQuotes,\r\n error: quoteError,\r\n airportError: error,\r\n aircraftsList,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n getAirportById: id => dispatch(actions.getAirportById(id)),\r\n onGoogleMapsApiLoaded: () => dispatch(actions.onGoogleMapsApiLoaded()),\r\n fetchQuotes: (quoteType, pageNum) => dispatch(actions.fetchQuotes(quoteType, pageNum)),\r\n };\r\n}\r\n\r\nconst ExpiredQuotesContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(ExpiredQuotes);\r\n\r\nexport default withStore(ExpiredQuotesContainer);\r\n","const getTopUpEmailBody = (info, customerName) => {\r\n const {\r\n bankName,\r\n currency,\r\n iban,\r\n referenceCode,\r\n swift,\r\n to,\r\n topUpAmount,\r\n } = info;\r\n\r\n return (\r\n `Hello,\\n\\nI would like to top up my VistaJet Direct flight credit.` +\r\n `\\nPlease transfer ${currency} ${topUpAmount} to the following account as soon as possible.` +\r\n `\\n\\nTo: ${to}` +\r\n `\\nIBAN: ${iban}` +\r\n `\\nSwift: ${swift}` +\r\n `\\nBank Name: ${bankName}` +\r\n `\\n\\nPlease use reference ${referenceCode} when making the transfer to VistaJet.` +\r\n `\\n\\nThank you,` +\r\n `\\n${customerName}`\r\n );\r\n};\r\nexport default getTopUpEmailBody;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport getTopUpEmailBody from 'utils/emailUtils';\r\nimport MessagePopUp from '../shared/MessagePopUpNew';\r\nimport ConfirmationPopup from '../shared/ConfirmationPopUpNew';\r\nimport { TOPUP_HISTORY_PAGE_URL } from '../../configs/constants';\r\nimport MaskedTextField from '../shared/MaskedTextField';\r\nimport createNumberMask from 'text-mask-addons/dist/createNumberMask';\r\nimport { saveToLocal } from \"../../utils/cache\";\r\nimport { TOP_UP_STATUS } from \"../../constants/localStorageKeys\";\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport dirtystateSingleTon from '../../validators/validateDirty';\r\nimport SPAConstants from '../../constants/SPAConstants';\r\nimport { CONFIRMATION_MESSAGE, RIGHT_BUTTON_TEXT, LEFT_BUTTON_TEXT } from '../../constants/DirtyPopupConstant';\r\n\r\nconst mask = createNumberMask({\r\n prefix: '',\r\n includeThousandsSeparator: true,\r\n integerLimit: 8,\r\n});\r\n\r\nclass TopUpAccount extends Component {\r\n\r\n static propTypes = {\r\n TopUpReference: PropTypes.func,\r\n TopUpAction: PropTypes.func,\r\n CancelTopUp: PropTypes.func,\r\n token: PropTypes.string,\r\n accountId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n openPopUpMessage: PropTypes.number,\r\n bankName: PropTypes.string,\r\n currency: PropTypes.string,\r\n iban: PropTypes.string,\r\n referenceCode: PropTypes.string,\r\n swift: PropTypes.string,\r\n to: PropTypes.string,\r\n topUpAmount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n topUpId:PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n topUpReferenceLoader: PropTypes.bool,\r\n disableAmountField: PropTypes.bool,\r\n user: PropTypes.object,\r\n modalId: PropTypes.string,\r\n topUpSubmittedLoader: PropTypes.bool,\r\n topUpCancelLoader: PropTypes.bool,\r\n confirmId: PropTypes.string,\r\n redirect: PropTypes.bool,\r\n fromDirectScreen: PropTypes.bool,\r\n topUpError: PropTypes.string,\r\n ClearTopUpError: PropTypes.func,\r\n };\r\n static defaultProps = {\r\n disableAmountField: false,\r\n topUpAmount: '',\r\n confirmId: 'ConfirmBox',\r\n }\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n topUpSentAmount: '',\r\n toTooltip: false,\r\n ibanTooltip: false,\r\n }\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n const { topUpSentAmount } = this.state\r\n if (nextProps.openPopUpMessage && !nextProps.fromDirectScreen) {\r\n this.redirect(nextProps.openPopUpMessage);\r\n }\r\n if (nextProps.topUpId && topUpSentAmount) {\r\n this.setState({\r\n topUpSentAmount: '',\r\n })\r\n }\r\n if (nextProps.topUpError) {\r\n this.validationPopUpTopUp.show();\r\n }\r\n }\r\n callAction = () => { \r\n const { token, accountId, TopUpReference } = this.props;\r\n const { topUpSentAmount } = this.state;\r\n TopUpReference(token, accountId, +topUpSentAmount, 'USD')\r\n }\r\n callSubmitted = () => {\r\n dirtystateSingleTon.setDirty(SPAConstants.TopUpAccount, false);\r\n const { token, topUpId, TopUpAction } = this.props;\r\n TopUpAction(token, topUpId);\r\n }\r\n amountChange = (event) => {\r\n const newValue = event.target.value.replace(/,/g, '');\r\n if(newValue !== '0') {\r\n dirtystateSingleTon.setDirty(SPAConstants.TopUpAccount, true);\r\n this.setState({\r\n topUpSentAmount: newValue,\r\n }) \r\n }\r\n }\r\n emailDetails = () => {\r\n const {\r\n bankName,\r\n currency,\r\n iban,\r\n referenceCode,\r\n swift,\r\n to,\r\n topUpAmount,\r\n } = this.props;\r\n const info = {\r\n bankName,\r\n currency,\r\n iban,\r\n referenceCode,\r\n swift,\r\n to,\r\n topUpAmount,\r\n }\r\n const {\r\n firstName='',\r\n lastName='',\r\n } = this.props.user;\r\n const subject = encodeURI('VistaJet transfer');\r\n const body = encodeURI(getTopUpEmailBody(info, `${firstName} ${lastName}`));\r\n const newWindow = window.open(`mailto:?subject=${subject}&body=${body}`);\r\n setTimeout(() => {\r\n newWindow.close();\r\n }, 3000);\r\n }\r\n copyToClipboard = (data) => {\r\n const { to, iban } = this.props;\r\n let text = '';\r\n if (data) {\r\n text = to;\r\n this.setState({\r\n toTooltip: true,\r\n });\r\n setTimeout(() => {\r\n this.setState({\r\n toTooltip: false,\r\n });\r\n }, 1000);\r\n } else {\r\n text = iban;\r\n this.setState({\r\n ibanTooltip: true,\r\n });\r\n setTimeout(() => {\r\n this.setState({\r\n ibanTooltip: false,\r\n });\r\n }, 1000);\r\n }\r\n navigator.clipboard.writeText(text);\r\n }\r\n redirect = (openPopUpMessage) => {\r\n this.changeWindowLocation(openPopUpMessage);\r\n }\r\n callCancelTopUp = () => {\r\n const { CancelTopUp, token, topUpId} = this.props;\r\n dirtystateSingleTon.setDirty(SPAConstants.TopUpAccount, false);\r\n this.hideConfirmationBox();\r\n CancelTopUp (token, topUpId);\r\n }\r\n showConfirmationBox = () => {\r\n this.confirmationPopUp.show();\r\n }\r\n hideConfirmationBox = () => {\r\n this.confirmationPopUp.hide();\r\n }\r\n changeWindowLocation = (openPopUpMessage) => {\r\n if (openPopUpMessage === 1) {\r\n saveToLocal('Top Up successful!',TOP_UP_STATUS);\r\n } else if (openPopUpMessage === 2) {\r\n saveToLocal('Top Up cancelled!',TOP_UP_STATUS);\r\n }\r\n window.location = TOPUP_HISTORY_PAGE_URL.url;\r\n }\r\n disableTopUpButton = () => {\r\n const { topUpSentAmount } = this.state;\r\n if (topUpSentAmount) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n renderButtonImage = () => {\r\n const { topUpReferenceLoader, topUpId } = this.props;\r\n let response = (\r\n \r\n );\r\n if (topUpReferenceLoader) {\r\n response = (\r\n
    \r\n );\r\n }\r\n else if (topUpId) {\r\n response = (\r\n \r\n );\r\n }\r\n return response;\r\n }\r\n hideModal = () => {\r\n const isTopUpAccountDirty = dirtystateSingleTon.getDirty(SPAConstants.TopUpAccount);\r\n if(isTopUpAccountDirty) {\r\n this.topUpDirtyPopup.show();\r\n } else {\r\n this.hideTopUpModal();\r\n } \r\n }\r\n hideTopUpModal = () => {\r\n dirtystateSingleTon.setDirty(SPAConstants.TopUpAccount, false);\r\n this.topUpDirtyPopup.hide();\r\n const { redirect, topUpAccountModal, TopUpModal } = this.props;\r\n if (TopUpModal) {\r\n TopUpModal.hide();\r\n } else {\r\n topUpAccountModal.hide();\r\n }\r\n if (redirect) {\r\n this.changeWindowLocation(0);\r\n }\r\n }\r\n clearErrorMessage = () => {\r\n this.props.ClearTopUpError();\r\n }\r\n makeModalTopClass = () => {\r\n const { modalId } = this.props;\r\n if (modalId) {\r\n return 'vistajet_modal vistajet_modal_medium'\r\n }\r\n return '';\r\n }\r\n makeModalSecondClass = () => {\r\n const { modalId } = this.props;\r\n if (modalId) {\r\n return '';\r\n }\r\n return 'uk-margin-medium-top uk-width-1-1 uk-width-4-5@s uk-width-1-2@m uk-margin-auto';\r\n }\r\n render() {\r\n const {\r\n bankName,\r\n iban,\r\n referenceCode,\r\n swift,\r\n to,\r\n topUpId,\r\n topUpAmount,\r\n disableAmountField,\r\n modalId,\r\n topUpSubmittedLoader,\r\n topUpCancelLoader,\r\n } = this.props;\r\n const { topUpSentAmount, toTooltip, ibanTooltip } = this.state;\r\n return (\r\n
    \r\n {this.confirmationPopUp=confirmationPopUp;}}\r\n />\r\n
    \r\n
    \r\n
    \r\n {\r\n (topUpSubmittedLoader || topUpCancelLoader) && \r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n {modalId ? Back : null}\r\n

    Top Up

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {this.renderButtonImage()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Please connect to your online banking or call your bank.

    \r\n

    Fill the amount field and use the reference number to make the transfer.

    \r\n
    \r\n \r\n
    Online bank transfer
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {topUpId ?
    \r\n
    \r\n
    To
    \r\n

    {to}

    \r\n \r\n { toTooltip &&\r\n
    Copied
    \r\n }\r\n
    \r\n\r\n
    \r\n
    IBAN
    \r\n

    {iban}

    \r\n \r\n { ibanTooltip &&\r\n
    Copied
    \r\n }\r\n
    \r\n\r\n
    \r\n
    Swift
    \r\n

    {swift}

    \r\n
    \r\n\r\n
    \r\n
    Bank Name
    \r\n

    {bankName}

    \r\n
    \r\n
    : null}\r\n
    \r\n

    \r\n SEPA transfers within Europe cost the same as local transfers.\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.validationPopUpTopUp=validationPopUpTopUp;}}\r\n onClose={this.clearErrorMessage}\r\n />\r\n {this.topUpDirtyPopup=topUpDirtyPopup;}}\r\n content={CONFIRMATION_MESSAGE}\r\n rightButtonContent={RIGHT_BUTTON_TEXT}\r\n onRightButtonClick = {() => this.hideTopUpModal()}\r\n leftButtonContent={LEFT_BUTTON_TEXT}\r\n onLeftButtonClick = {() => this.topUpDirtyPopup.hide()}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default TopUpAccount;\r\n","export const TOP_UP_STATUS = {\r\n PENDING: 1,\r\n COMPLETE: 2,\r\n EXPIRED: 3,\r\n WAITING_APPROVAL: 5,\r\n};\r\n\r\nexport const TOP_UP_STATUS_TYPE = {\r\n 1: 'PENDING',\r\n 2: 'COMPLETE',\r\n 3: 'EXPIRED',\r\n 5: 'WAITING FOR APPROVAL',\r\n};\r\n\r\nexport const MEMBERSHIP_TYPE = {\r\n 1: 'VistaJet Direct',\r\n 2: 'Global',\r\n 3: 'Regional',\r\n};\r\nexport const TOP_UP_PAYMENT_METHOD = 'Bank Transfer';\r\n","\r\nimport {\r\n TOP_UP_PAYMENT_METHOD,\r\n TOP_UP_STATUS_TYPE,\r\n MEMBERSHIP_TYPE,\r\n} from 'constants/topUpConstants';\r\nimport { garanteeArray } from '../utils/sourceUtils';\r\n\r\nexport const createTopUpNormalizer = response => {\r\n if (response && Object.keys(response).length > 0) {\r\n return ({\r\n swift: response.swift,\r\n bankName: response.bankName,\r\n currency: response.currency,\r\n topUpAmount: parseInt(response.transferAmount, 10),\r\n to: response.to,\r\n iban: response.iban,\r\n referenceCode: response.referenceCode,\r\n topUpId: response.topUpId,\r\n topUpStatusDesc: TOP_UP_STATUS_TYPE[1],\r\n paymentMethod: TOP_UP_PAYMENT_METHOD,\r\n });\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const topUpHistoryNormalizer = (response = { topUps: { topUp: {} } }) => {\r\n const topUps = garanteeArray(response.topUps.topUp).reduce((curr, item) => {\r\n const current = curr;\r\n const topUp = topUpNormalizer(item);\r\n if (topUp) {\r\n current.content[topUp.topUpId] = topUp;\r\n current.ids.push(topUp.topUpId);\r\n }\r\n return current;\r\n }, { content: {}, ids: [] });\r\n const currentBalance = response.currentBalance ?\r\n parseInt(response.currentBalance, 10) : 0;\r\n return {\r\n membershipAccount: {\r\n membershipSubType: MEMBERSHIP_TYPE[response.memberShipSubType],\r\n currentBalance,\r\n currency: response.currency,\r\n },\r\n topUps,\r\n };\r\n};\r\n\r\n\r\nexport const topUpNormalizer = topUp => {\r\n if (topUp && Object.keys(topUp).length > 0) {\r\n return ({\r\n bankName: topUp.bankName,\r\n currency: topUp.currency,\r\n swift: topUp.swift,\r\n iban: topUp.iban,\r\n membershipTypeId: topUp.membershipTypeId,\r\n paymentMethod: TOP_UP_PAYMENT_METHOD,\r\n referenceCode: topUp.referenceCode,\r\n to: topUp.to,\r\n topUpAmount: parseInt(topUp.topUpAmount, 10),\r\n topUpDate: topUp.topUpDate,\r\n topUpId: topUp.topUpId,\r\n topUpStatusDesc: TOP_UP_STATUS_TYPE[topUp.topUpStatusId],\r\n topUpStatusId: topUp.topUpStatusId,\r\n });\r\n }\r\n return undefined;\r\n};\r\n","import axios from \"axios\";\r\nimport { parseXmlStringToJson, jsonToXml } from \"utils/parserUtils\";\r\nimport {\r\n TopUpReferenceInit,\r\n TopUpReferenceSuccess,\r\n TopUpReferenceFail,\r\n TopUpInit,\r\n TopUpSuccess,\r\n TopUpFail,\r\n TopUpHistoryInit,\r\n TopUpHistorySuccess,\r\n TopUpHistoryFail,\r\n cancelReferenceCodeInit,\r\n cancelReferenceCodeSuccess,\r\n cancelReferenceCodeFail,\r\n} from \"store/actions/TopUpAccountActions\";\r\n\r\nimport { \r\n TOPUP_REFERENCE,\r\n TOPUP_SUBMITTED,\r\n TOPUP_HISTORY,\r\n TOPUP_CANCEL_REFERENCE\r\n} from \"configs/constants\";\r\n\r\nimport status from \"configs/status\";\r\nimport { handleServerErrors } from \"utils/sourceUtils\";\r\nimport {\r\n INVALID_DETAILS_EXCEPTION,\r\n SOMETHING_UNEXPECTED,\r\n} from \"../../constants/MessageConstants\";\r\nimport {\r\n INVALID_DETAILS_CODE\r\n} from \"../../constants/ServerCodeConstants\";\r\nimport { BAD_REQUEST, TIMEOUT_CODE, UNAUTHORIZED } from \"constants/ServerCodeConstants\";\r\nimport { createTopUpNormalizer, topUpHistoryNormalizer } from \"normalizers/TopUpNormalizer\";\r\n\r\nexport const topUpReferenceSource = (token, accountId, transferAmount, currency) => dispatch => {\r\n dispatch(TopUpReferenceInit());\r\n const options = {\r\n headers: {\r\n \"Content-Type\": \"application/xml\"\r\n },\r\n timeout: TIMEOUT_CODE.time\r\n };\r\n const requestPayload = jsonToXml({\r\n topUpReferenceRequestDto: {\r\n transferAmount,\r\n currency,\r\n accountId,\r\n }\r\n });\r\n\r\n axios\r\n .post(\r\n TOPUP_REFERENCE.replace(\"{token}\", token),\r\n requestPayload,\r\n options\r\n )\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n const parsedData = parseXmlStringToJson(response.data);\r\n const responseHeader =\r\n parsedData.topUpReferenceResponseDto.responseHeader;\r\n if (responseHeader.isError) {\r\n const error = responseHeader.statusCode;\r\n if (error === INVALID_DETAILS_CODE.code &&\r\n responseHeader.message === INVALID_DETAILS_EXCEPTION) {\r\n dispatch(TopUpReferenceFail(SOMETHING_UNEXPECTED));\r\n } else {\r\n dispatch(TopUpReferenceFail(handleServerErrors(error)));\r\n }\r\n } else {\r\n const responseBody =\r\n parsedData.topUpReferenceResponseDto;\r\n dispatch(TopUpReferenceSuccess(createTopUpNormalizer(responseBody)));\r\n } \r\n } else {\r\n dispatch(TopUpReferenceFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(TopUpReferenceFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(TopUpReferenceFail(handleServerErrors(UNAUTHORIZED)));\r\n }\r\n else dispatch(TopUpReferenceFail(handleServerErrors(BAD_REQUEST)));\r\n });\r\n};\r\n\r\n// Top_up Submitted\r\nexport const topUpSource = (token, topUpId) => dispatch => {\r\n dispatch(TopUpInit());\r\n const options = {\r\n headers: {\r\n \"Content-Type\": \"application/xml\"\r\n },\r\n timeout: TIMEOUT_CODE.time\r\n };\r\n const requestPayload = jsonToXml({\r\n topUpSubmitRequestDto: {\r\n topUpId,\r\n }\r\n });\r\n\r\n axios\r\n .post(\r\n TOPUP_SUBMITTED.replace(\"{token}\", token),\r\n requestPayload,\r\n options\r\n )\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n const parsedData = parseXmlStringToJson(response.data);\r\n const responseHeader =\r\n parsedData.topUpSubmitResponseDto.responseHeader;\r\n if (responseHeader.isError) {\r\n const error = responseHeader.statusCode;\r\n dispatch(TopUpFail(handleServerErrors(error)));\r\n } else {\r\n const data = 1;\r\n dispatch(TopUpSuccess(data));\r\n }\r\n } else {\r\n dispatch(TopUpFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(TopUpFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(TopUpFail(handleServerErrors(UNAUTHORIZED)));\r\n }\r\n else dispatch(TopUpFail(handleServerErrors(BAD_REQUEST)));\r\n });\r\n};\r\n// topUpHistorySource\r\nexport const topUpHistorySource = (token, accountId) => dispatch => {\r\n dispatch(TopUpHistoryInit());\r\n\r\n const options = {\r\n headers: {\r\n \"Content-Type\": \"application/xml\"\r\n },\r\n timeout: TIMEOUT_CODE.time\r\n };\r\n const requestPayload = jsonToXml({\r\n topUpHistoryRequestDto: {\r\n accountId,\r\n }\r\n });\r\n\r\n axios\r\n .post(\r\n TOPUP_HISTORY.replace(\"{token}\", token),\r\n requestPayload,\r\n options\r\n )\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n const parsedData = parseXmlStringToJson(response.data);\r\n const responseHeader =\r\n parsedData.topUpHistoryResponseDto.responseHeader;\r\n if (responseHeader.isError) {\r\n const error = responseHeader.statusCode;\r\n dispatch(TopUpHistoryFail(handleServerErrors(error)));\r\n } else {\r\n const data = parsedData.topUpHistoryResponseDto;\r\n dispatch(TopUpHistorySuccess(topUpHistoryNormalizer(data)));\r\n } \r\n } else {\r\n dispatch(TopUpHistoryFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(TopUpHistoryFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(TopUpHistoryFail(handleServerErrors(UNAUTHORIZED)));\r\n }\r\n else dispatch(TopUpHistoryFail(handleServerErrors(BAD_REQUEST)));\r\n });\r\n};\r\n\r\n//TopUpCancelReferenceCodeSource\r\nexport const topUpCancelReferenceCodeSource = (token, topUpId) => dispatch => {\r\n dispatch(cancelReferenceCodeInit());\r\n\r\n const options = {\r\n headers: {\r\n \"Content-Type\": \"application/xml\"\r\n },\r\n timeout: TIMEOUT_CODE.time\r\n };\r\n const requestPayload = jsonToXml({\r\n topUpCancelRequestDto: {\r\n topUpId,\r\n }\r\n });\r\n\r\n axios\r\n .post(\r\n TOPUP_CANCEL_REFERENCE.replace(\"{token}\", token),\r\n requestPayload,\r\n options\r\n )\r\n .then(response => {\r\n if (response.status === status.OK) {\r\n const parsedData = parseXmlStringToJson(response.data);\r\n const responseHeader =\r\n parsedData.topUpCancelResponseDto.responseHeader;\r\n if (responseHeader.isError) {\r\n const error = responseHeader.statusCode;\r\n dispatch(cancelReferenceCodeFail(handleServerErrors(error)));\r\n } else {\r\n const data = 2;\r\n dispatch(cancelReferenceCodeSuccess(data));\r\n }\r\n } else {\r\n dispatch(cancelReferenceCodeFail(handleServerErrors(BAD_REQUEST)));\r\n }\r\n })\r\n .catch(err => {\r\n if (err.code === TIMEOUT_CODE.status) {\r\n dispatch(cancelReferenceCodeFail(handleServerErrors(TIMEOUT_CODE.code)));\r\n } else if (+err.status === UNAUTHORIZED) {\r\n dispatch(cancelReferenceCodeFail(handleServerErrors(UNAUTHORIZED)));\r\n }\r\n else dispatch(cancelReferenceCodeFail(handleServerErrors(BAD_REQUEST)));\r\n });\r\n};\r\n","import { \r\n topUpReferenceSource,\r\n topUpSource,\r\n topUpHistorySource,\r\n topUpCancelReferenceCodeSource,\r\n } from '../sources/TopUpAccountSource';\r\nimport * as types from '../actionTypes';\r\n\r\nexport const TopUpReferenceInit = () => ({\r\n type: types.TOPUP_REFERENCE_INIT,\r\n});\r\n\r\nexport const TopUpReferenceSuccess = data => ({\r\n type: types.TOPUP_REFERENCE_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const TopUpReferenceFail = data => ({\r\n type: types.TOPUP_REFERENCE_FAIL,\r\n data,\r\n});\r\nexport const TopUpInit = () => ({\r\n type: types.TOPUP_INIT,\r\n});\r\n\r\nexport const TopUpSuccess = data => ({\r\n type: types.TOPUP_SUCCESS,\r\n data,\r\n});\r\n\r\nexport const TopUpFail = (data) => ({\r\n type: types.TOPUP_FAIL,\r\n data,\r\n});\r\n\r\nexport const TopUpHistoryInit = () => ({\r\n type: types.TOPUP_HISTORY_INIT,\r\n})\r\n\r\nexport const TopUpHistorySuccess = (data) => ({\r\n type: types.TOPUP_HISTORY_SUCCESS,\r\n data,\r\n})\r\n\r\nexport const TopUpHistoryFail = (data) => ({\r\n type: types.TOPUP_HISTORY_FAIL,\r\n data,\r\n})\r\n\r\nexport const cancelReferenceCodeInit = () => ({\r\n type: types.CANCEL_REFERENCE_CODE_INIT,\r\n})\r\n\r\nexport const cancelReferenceCodeSuccess = (data) => ({\r\n type: types.CANCEL_REFERENCE_CODE_SUCCESS,\r\n data,\r\n})\r\n\r\nexport const cancelReferenceCodeFail = (data) => ({\r\n type: types.CANCEL_REFERENCE_CODE_FAIL,\r\n data,\r\n})\r\n\r\nexport const TopUpViewAction = () => ({\r\n type: types.TOPUP_VIEW_ACTION,\r\n})\r\n\r\nexport const ClearTopUpError = () => ({\r\n type: types.CLEAR_TOPUP_ERROR,\r\n})\r\n\r\nexport const TopUpAction = (token, topUpId) => \r\n topUpSource(token, topUpId);\r\n\r\nexport const TopUpReferenceAction = (token, accountId, transferAmount, Currency) =>\r\n topUpReferenceSource(token, accountId, transferAmount, Currency);\r\n\r\nexport const TopUpHistory = (token, accountId) =>\r\n topUpHistorySource(token, accountId);\r\n\r\nexport const TopUpCancelReferenceCode = (token, topUpId) =>\r\n topUpCancelReferenceCodeSource(token, topUpId);\r\n\r\n","import { connect } from 'react-redux';\r\n\r\nimport withStore from '../components/withStore';\r\nimport TopUpAccount from '../components/AccountStatement/TopUpAccount';\r\nimport { \r\n TopUpReferenceAction,\r\n TopUpAction,\r\n TopUpCancelReferenceCode,\r\n ClearTopUpError \r\n} from '../store/actions/TopUpAccountActions';\r\nimport { getAccountId } from '../../src/utils/userUtils';\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.user;\r\n const accountId = user ? getAccountId(user) : null;\r\n const token = user ? user.userToken : null;\r\n const {\r\n swift,\r\n bankName,\r\n currency,\r\n topUpAmount,\r\n to,\r\n iban,\r\n referenceCode,\r\n topUpId,\r\n openPopUpMessage,\r\n topUpReferenceLoader,\r\n topUpSubmittedLoader,\r\n topUpCancelLoader,\r\n disableAmountField,\r\n topUpError,\r\n } = state.topUp;\r\n\r\n return {\r\n token,\r\n accountId,\r\n user,\r\n swift,\r\n bankName,\r\n currency,\r\n topUpAmount,\r\n to,\r\n iban,\r\n referenceCode,\r\n topUpId,\r\n openPopUpMessage,\r\n topUpReferenceLoader,\r\n topUpSubmittedLoader,\r\n topUpCancelLoader,\r\n disableAmountField,\r\n topUpError,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n TopUpReference: (token, accountId, transferAmount, Currency) =>\r\n dispatch(TopUpReferenceAction(token, accountId, transferAmount, Currency)),\r\n TopUpAction: (token, topUpId) =>\r\n dispatch(TopUpAction(token, topUpId)),\r\n CancelTopUp: (token, topUpId) => \r\n dispatch(TopUpCancelReferenceCode(token, topUpId)),\r\n ClearTopUpError: () =>\r\n dispatch(ClearTopUpError()),\r\n };\r\n}\r\n\r\nconst TopUpAccountContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(TopUpAccount);\r\n\r\nexport default withStore(TopUpAccountContainer);\r\n","\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SpinnerLoader from '../../components/shared/spinnerLoader';\r\nimport { getFiles } from '../../utils/fileUtils';\r\nimport { formatDate, dateFormats } from '../../utils/dateUtils';\r\nimport TopUpAccount from '../../components/AccountStatement/TopUpAccount';\r\nimport moment from 'moment';\r\nimport Modal from '../shared/Modal';\r\nimport MessagePopUp from \"../../components/shared/MessagePopUpNew\";\r\nimport { isAdhoc } from '../../utils/userUtils';\r\nimport { numberWithCommas } from '../../utils/parserUtils';\r\nimport { scrollFunctionForTable } from '../../utils/Helpers';\r\nimport { isMobile } from 'react-device-detect';\r\nimport {\r\n TOPUP_ACCOUNT_PAGE_URL,\r\n} from '../../configs/constants';\r\nimport { redirect } from '../Drawer';\r\n\r\nclass DirectAccountBalance extends Component {\r\n\r\n static propTypes = {\r\n token: PropTypes.string,\r\n membershipAccountLoading: PropTypes.bool,\r\n accountData: PropTypes.object,\r\n GetMembershipAccountStatement: PropTypes.func,\r\n moreTransactions: PropTypes.bool,\r\n loadingMoreTransactions: PropTypes.bool,\r\n //topup\r\n TopUpReference: PropTypes.func,\r\n TopUpAction: PropTypes.func,\r\n CancelTopUp: PropTypes.func,\r\n SetOpenPopupFalse: PropTypes.func,\r\n accountId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n bankName: PropTypes.string,\r\n currency: PropTypes.string,\r\n openPopUpMessage: PropTypes.number,\r\n iban: PropTypes.string,\r\n referenceCode: PropTypes.string,\r\n swift: PropTypes.string,\r\n to: PropTypes.string,\r\n topUpAmount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n topUpId: PropTypes.number,\r\n topUpReferenceLoader: PropTypes.bool,\r\n user: PropTypes.object,\r\n topUpSubmittedLoader: PropTypes.bool,\r\n topUpCancelLoader: PropTypes.bool,\r\n directAccoutBalanceError: PropTypes.string,\r\n ClearTopUpError: PropTypes.func,\r\n topUpError: PropTypes.string,\r\n };\r\n static defaultProps = {\r\n }\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n topUpIdState: 0,\r\n referenceCodeState: '',\r\n topUpAmountState: '',\r\n disableAmountState: false,\r\n }\r\n }\r\n componentDidMount() {\r\n const { token, GetMembershipAccountStatement } = this.props;\r\n GetMembershipAccountStatement(token, 0, false)\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n const { topUpIdState } = this.state;\r\n const { topUpId,topUpCancelLoader,topUpSubmittedLoader } = nextProps;\r\n if ((this.props.topUpId !== topUpId) &&\r\n (topUpId !== topUpIdState) &&\r\n !(topUpCancelLoader || topUpSubmittedLoader)) {\r\n this.setState({\r\n topUpIdState: nextProps.topUpId,\r\n referenceCodeState: nextProps.referenceCode,\r\n topUpAmountState: nextProps.topUpAmount,\r\n disableAmountState: true,\r\n })\r\n }\r\n if (nextProps.openPopUpMessage) {\r\n this.topUpAccountModal.hide();\r\n this.props.SetOpenPopupFalse();\r\n if (nextProps.openPopUpMessage === 1) {\r\n window.UIkit.notification({ message: `Top Up successful!`, timeout: 3000 });\r\n } else if(nextProps.openPopUpMessage === 2) {\r\n window.UIkit.notification({ message: `Top Up cancelled!`, timeout: 3000 });\r\n }\r\n }\r\n if (nextProps.directAccoutBalanceError) {\r\n this.validationPopUp.show();\r\n }\r\n }\r\n loadMoreTranscations = () => {\r\n const { token, GetMembershipAccountStatement, accountData } = this.props;\r\n GetMembershipAccountStatement(token, accountData.lineItems.length, true)\r\n }\r\n\r\n renderInvoices = () => {\r\n const { accountData, token } = this.props;\r\n let data = [];\r\n data = ((accountData || {}).lineItems || []).map((value) => {\r\n return (\r\n \r\n \r\n {formatDate(moment(value.documentDate), dateFormats.DDMMMYYYY)}\r\n \r\n \r\n {value.description}\r\n \r\n {value.currency} {numberWithCommas(value.amount)}\r\n \r\n {value.fileKey ?\r\n
      \r\n
    • \r\n \r\n
    • \r\n
    • \r\n \r\n
    • \r\n
    : null}\r\n {value.fileKey ?
      \r\n
    • \r\n
      \r\n \r\n
      \r\n
    : null}\r\n \r\n \r\n );\r\n });\r\n return data;\r\n }\r\n showTopup = () => {\r\n this.setState({\r\n disableAmountState: false,\r\n topUpIdState: 0,\r\n referenceCodeState: '',\r\n topUpAmountState: '',\r\n }, () => this.topUpAccountModal.show())\r\n }\r\n clearErrorMessage = () => {\r\n this.props.ClearTopUpError();\r\n }\r\n isComponentLoadingClass = () => {\r\n const { membershipAccountLoading } = this.props;\r\n if (membershipAccountLoading) {\r\n return 'vistajet_top_up';\r\n }\r\n return '';\r\n }\r\n render() {\r\n const {\r\n membershipAccountLoading,\r\n accountData,\r\n moreTransactions,\r\n loadingMoreTransactions,\r\n //topupData\r\n TopUpReference,\r\n TopUpAction,\r\n CancelTopUp,\r\n token,\r\n accountId,\r\n bankName,\r\n currency,\r\n iban,\r\n swift,\r\n to,\r\n user,\r\n topUpReferenceLoader,\r\n topUpSubmittedLoader,\r\n topUpCancelLoader,\r\n openPopUpMessage,\r\n topUpError,\r\n ClearTopUpError,\r\n } = this.props;\r\n const {\r\n topUpIdState,\r\n referenceCodeState,\r\n topUpAmountState,\r\n disableAmountState,\r\n } = this.state\r\n let adhocUser = '';\r\n if (user) {\r\n adhocUser = isAdhoc(user);\r\n }\r\n return (\r\n
    \r\n {this.topUpAccountModal=topUpAccountModal;}}\r\n classNames={{\r\n modal: 'topUpModalDirect',\r\n }}\r\n styles=\r\n {{modal :{background:'transparent', boxShadow: 'none'},\r\n overlay: {background: 'rgba(0, 0, 0, 0.2)'}}}\r\n showCloseIcon={false}\r\n focusTrapped={false}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n

    Direct Account Balance

    \r\n
    \r\n
    \r\n
    \r\n {\r\n (membershipAccountLoading) && \r\n
    \r\n \r\n
    \r\n }\r\n {!(((accountData || {}).lineItems || []).length && !membershipAccountLoading)?\r\n

    No transactions to show {!adhocUser ?\r\n : \"\"}

    :\r\n
    \r\n
    \r\n
    \r\n {!adhocUser ? \r\n
    Balance
    :\r\n

    {accountData.accountDisplayName}

    }\r\n {!adhocUser &&\r\n

    {accountData.currency} {numberWithCommas(accountData.currentBalance)}

    }\r\n
    \r\n
    \r\n {!adhocUser &&\r\n }\r\n
    \r\n
    \r\n
    \r\n

    Invoices

    \r\n
    \r\n { scrollFunctionForTable && scrollFunctionForTable() }\r\n \r\n \r\n {this.renderInvoices()}\r\n \r\n
    \r\n
    \r\n
    \r\n {moreTransactions ?\r\n : null}\r\n
    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.validationPopUp=validationPopUp;}}\r\n onClose={this.clearErrorMessage}\r\n />\r\n
    \r\n );\r\n\r\n }\r\n}\r\nexport default DirectAccountBalance;\r\n","import { connect } from 'react-redux';\r\nimport withStore from '../components/withStore';\r\n\r\nimport DirectAccountBalance from '../components/AccountStatement/DirectAccountBalance';\r\nimport { MembershipAccountStatement } from '../store/actions/DirectAccountBalanceActions';\r\nimport { \r\n TopUpReferenceAction,\r\n TopUpAction,\r\n TopUpCancelReferenceCode,\r\n TopUpViewAction,\r\n ClearTopUpError\r\n} from '../store/actions/TopUpAccountActions';\r\nimport { getAccountId } from '../../src/utils/userUtils';\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.user;\r\n const accountId = user ? getAccountId(user) : null;\r\n const token = user ? user.userToken : null;\r\n const { \r\n membershipAccountLoading,\r\n accountData,\r\n moreTransactions,\r\n loadingMoreTransactions,\r\n directAccoutBalanceError,\r\n } = state.directAccountBalance;\r\n const {\r\n swift,\r\n bankName,\r\n currency,\r\n topUpAmount,\r\n to,\r\n iban,\r\n referenceCode,\r\n topUpId,\r\n openPopUpMessage,\r\n topUpReferenceLoader,\r\n topUpSubmittedLoader,\r\n topUpCancelLoader,\r\n disableAmountField,\r\n topUpError,\r\n } = state.topUp;\r\n\r\n return {\r\n token,\r\n membershipAccountLoading,\r\n accountData,\r\n moreTransactions,\r\n loadingMoreTransactions,\r\n directAccoutBalanceError,\r\n //topup\r\n user,\r\n accountId,\r\n swift,\r\n bankName,\r\n currency,\r\n topUpAmount,\r\n to,\r\n iban,\r\n referenceCode,\r\n topUpId,\r\n openPopUpMessage,\r\n topUpReferenceLoader,\r\n topUpSubmittedLoader,\r\n topUpCancelLoader,\r\n disableAmountField,\r\n topUpError,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n GetMembershipAccountStatement: (token, currentLength, isLoadMore) =>\r\n dispatch(MembershipAccountStatement(token, currentLength, isLoadMore)),\r\n \r\n TopUpReference: (token, accountId, transferAmount, Currency) =>\r\n dispatch(TopUpReferenceAction(token, accountId, transferAmount, Currency)),\r\n\r\n TopUpAction: (token, topUpId) =>\r\n dispatch(TopUpAction(token, topUpId)),\r\n\r\n CancelTopUp: (token, topUpId) => \r\n dispatch(TopUpCancelReferenceCode(token, topUpId)),\r\n\r\n SetOpenPopupFalse : () =>\r\n dispatch(TopUpViewAction()),\r\n \r\n ClearTopUpError : () =>\r\n dispatch(ClearTopUpError()),\r\n };\r\n}\r\n\r\nconst DirectAccountBalanceContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(DirectAccountBalance);\r\n\r\nexport default withStore(DirectAccountBalanceContainer);\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport TopUpAccount from './TopUpAccount';\r\nimport moment from 'moment';\r\nimport { convertToTitleCase } from \"../../utils/stringUtils\";\r\nimport SpinnerLoader from '../../../src/components/shared/spinnerLoader';\r\nimport { removeFromLocal, getFromLocal, existInLocal } from \"../../utils/cache\";\r\nimport { TOP_UP_STATUS } from \"../../constants/localStorageKeys\";\r\nimport MessagePopUp from '../../../src/components/shared/MessagePopUpNew';\r\nimport Modal from '../../../src/components/shared/Modal';\r\nimport { numberWithCommas } from \"../../utils/parserUtils\";\r\nimport { scrollFunctionForTable } from '../../utils/Helpers';\r\n\r\nclass TopUpHistory extends Component {\r\n\r\n static propTypes = {\r\n token: PropTypes.string,\r\n accountId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n openPopUpMessage: PropTypes.number,\r\n topUpIds: PropTypes.array,\r\n topUpContent: PropTypes.object,\r\n membershipAccount: PropTypes.object,\r\n GetTopUpHistory: PropTypes.func,\r\n TopUpReference: PropTypes.func,\r\n TopUpAction: PropTypes.func,\r\n CancelTopUp: PropTypes.func,\r\n SetOpenPopupFalse: PropTypes.func,\r\n bankName: PropTypes.string,\r\n currency: PropTypes.string,\r\n iban: PropTypes.string,\r\n referenceCode: PropTypes.string,\r\n swift: PropTypes.string,\r\n to: PropTypes.string,\r\n topUpAmount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n topUpId: PropTypes.number,\r\n topUpReferenceLoader: PropTypes.bool,\r\n user: PropTypes.object,\r\n topUpHistoryLoader: PropTypes.bool,\r\n topUpSubmittedLoader: PropTypes.bool,\r\n topUpCancelLoader: PropTypes.bool,\r\n disableAmountField: PropTypes.bool,\r\n topUpHistoryError: PropTypes.string,\r\n ClearTopUpError: PropTypes.func,\r\n topUpError: PropTypes.string,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n topUpIdState: 0,\r\n referenceCodeState:'',\r\n topUpAmountState: '',\r\n disableAmountState: false,\r\n modalWithData : {\r\n amount: '',\r\n referenceCode: '',\r\n iban: '',\r\n bankName: '',\r\n swift: '',\r\n to: '',\r\n topUpId: '',\r\n currency: '',\r\n }\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { GetTopUpHistory, token, accountId, SetOpenPopupFalse } = this.props;\r\n GetTopUpHistory(token, accountId);\r\n if (existInLocal(TOP_UP_STATUS)) {\r\n SetOpenPopupFalse();\r\n window.UIkit.notification({message:`${getFromLocal(TOP_UP_STATUS)}`, timeout: 5000});\r\n removeFromLocal(TOP_UP_STATUS);\r\n }\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n const { topUpIdState } = this.state;\r\n if ((this.props.topUpId !== nextProps.toUpId) && \r\n (nextProps.topUpId !== topUpIdState)) {\r\n this.setState({\r\n topUpIdState: nextProps.topUpId,\r\n referenceCodeState: nextProps.referenceCode,\r\n topUpAmountState: nextProps.topUpAmount,\r\n })\r\n }\r\n if (nextProps.topUpHistoryError) {\r\n this.validationPopUpHistory.show(); \r\n }\r\n }\r\n openTopUp = () => {\r\n this.setState({\r\n disableAmountState: false,\r\n topUpIdState: 0,\r\n referenceCodeState: '',\r\n topUpAmountState: '',\r\n }, () => this.TopUpModal.show())\r\n }\r\n\r\n formatDate = (date) => {\r\n return (moment(date).format('DD MMM YYYY'));\r\n }\r\n clearErrorMessage = () => {\r\n this.props.ClearTopUpError();\r\n }\r\n setStateWithModalData = (data) => {\r\n this.setState({\r\n disableAmountState: true,\r\n modalWithData : {\r\n amount: data.topUpAmount,\r\n referenceCode: data.referenceCode,\r\n iban: data.iban,\r\n bankName: data.bankName,\r\n swift: data.swift,\r\n to: data.to,\r\n topUpId: data.topUpId,\r\n currency: data.currency,\r\n }\r\n }, () => this.TopUpModal.show())\r\n }\r\n getTopUpHistoryList() {\r\n const {\r\n topUpIds,\r\n topUpContent,\r\n } = this.props;\r\n let data = [];\r\n data = topUpIds.map((id) => {\r\n const line = topUpContent[id];\r\n return (\r\n \r\n \r\n {this.formatDate(line.topUpDate)}\r\n \r\n \r\n {line.paymentMethod}\r\n \r\n \r\n {line.currency} {numberWithCommas(line.topUpAmount)}\r\n \r\n \r\n {convertToTitleCase(line.topUpStatusDesc)}\r\n \r\n \r\n
      \r\n { (line.topUpStatusId === '' || line.topUpStatusId === 2 || line.topUpStatusId === 3) ? null :\r\n
    • }\r\n
    \r\n \r\n \r\n );\r\n });\r\n return data;\r\n}\r\n render() {\r\n const {\r\n TopUpReference,\r\n TopUpAction,\r\n CancelTopUp,\r\n token,\r\n accountId,\r\n openPopUpMessage,\r\n membershipAccount,//history\r\n bankName,\r\n currency,\r\n iban,\r\n swift,\r\n to,\r\n user,\r\n topUpReferenceLoader,\r\n topUpIds,\r\n topUpHistoryLoader,\r\n topUpSubmittedLoader,\r\n topUpCancelLoader,\r\n disableAmountField,\r\n topUpError,\r\n ClearTopUpError,\r\n } = this.props;\r\n const {\r\n topUpIdState,\r\n referenceCodeState,\r\n topUpAmountState,\r\n modalWithData = {},\r\n disableAmountState,\r\n } = this.state;\r\n\r\n return (\r\n
    \r\n {this.TopUpModal=TopUpModal;}}\r\n classNames={{\r\n modal: 'topUpModalDirect',\r\n }}\r\n styles=\r\n {{modal :{background:'transparent', boxShadow: 'none'},\r\n overlay: {background: 'rgba(0, 0, 0, 0.2)'}}}\r\n showCloseIcon={false}\r\n focusTrapped={false}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Top Up History

    \r\n
    \r\n
    \r\n {\r\n (topUpHistoryLoader) && \r\n
    \r\n \r\n
    \r\n }\r\n {(!topUpHistoryLoader) &&\r\n \r\n
    \r\n
    Balance
    \r\n

    {membershipAccount.currency} {numberWithCommas(membershipAccount.currentBalance)}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n

    Topup Transactions

    \r\n {(!topUpHistoryLoader) &&\r\n
    \r\n { scrollFunctionForTable && scrollFunctionForTable() }\r\n {(topUpIds && topUpIds.length) ?\r\n \r\n \r\n {this.getTopUpHistoryList()}\r\n \r\n
    :\r\n 'No Top Ups Available'\r\n }\r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.validationPopUpHistory=validationPopUpHistory;}}\r\n onClose={this.clearErrorMessage}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default TopUpHistory;\r\n","import { connect } from 'react-redux';\r\nimport withStore from '../components/withStore';\r\n\r\nimport TopUpHistory from '../components/AccountStatement/TopUpHistory';\r\nimport { GetTopUpHistory } from '../store/actions/TopUpHistoryActions';\r\nimport { \r\n TopUpReferenceAction,\r\n TopUpAction,\r\n TopUpCancelReferenceCode,\r\n TopUpViewAction,\r\n ClearTopUpError,\r\n} from '../store/actions/TopUpAccountActions';\r\nimport { getAccountId } from '../../src/utils/userUtils';\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.user;\r\n const accountId = user ? getAccountId(user) : null;\r\n const token = user ? user.userToken : null;\r\n const {\r\n swift,\r\n bankName,\r\n currency,\r\n topUpAmount,\r\n to,\r\n iban,\r\n referenceCode,\r\n topUpId,\r\n openPopUpMessage,\r\n topUpReferenceLoader,\r\n topUpSubmittedLoader,\r\n topUpCancelLoader,\r\n disableAmountField,\r\n topUpError,\r\n } = state.topUp;\r\n\r\n const { topUpIds,\r\n topUpContent,\r\n membershipAccount,\r\n topUpHistoryLoader,\r\n topUpHistoryError,\r\n } = state.topUpHistory;\r\n\r\n return {\r\n user,\r\n topUpError,\r\n token,\r\n accountId,\r\n openPopUpMessage,\r\n topUpIds,\r\n topUpContent,\r\n membershipAccount,\r\n swift,\r\n bankName,\r\n currency,\r\n topUpAmount,\r\n to,\r\n iban,\r\n referenceCode,\r\n topUpId,\r\n topUpReferenceLoader,\r\n topUpHistoryLoader,\r\n topUpSubmittedLoader,\r\n topUpCancelLoader,\r\n disableAmountField,\r\n topUpHistoryError,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n GetTopUpHistory: (token, accountId) =>\r\n dispatch(GetTopUpHistory(token, accountId)),\r\n\r\n TopUpReference: (token, accountId, transferAmount, Currency) =>\r\n dispatch(TopUpReferenceAction(token, accountId, transferAmount, Currency)),\r\n\r\n TopUpAction: (token, topUpId) =>\r\n dispatch(TopUpAction(token, topUpId)),\r\n\r\n CancelTopUp: (token, topUpId) => \r\n dispatch(TopUpCancelReferenceCode(token, topUpId)),\r\n\r\n SetOpenPopupFalse : () =>\r\n dispatch(TopUpViewAction()),\r\n\r\n ClearTopUpError : () =>\r\n dispatch(ClearTopUpError()),\r\n };\r\n}\r\n\r\nconst TopUpHistoryContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(TopUpHistory);\r\n\r\nexport default withStore(TopUpHistoryContainer);\r\n","import { \r\n topUpHistorySource,\r\n } from '../sources/TopUpAccountSource';\r\nimport * as types from '../actionTypes';\r\n\r\n\r\nexport const TopUpHistoryInit = () => ({\r\n type: types.TOPUP_HISTORY_INIT,\r\n})\r\n\r\nexport const TopUpHistorySuccess = (data) => ({\r\n type: types.TOPUP_HISTORY_SUCCESS,\r\n data,\r\n})\r\n\r\nexport const TopUpHistoryFail = (data) => ({\r\n type: types.TOPUP_HISTORY_FAIL,\r\n data,\r\n})\r\n\r\nexport const GetTopUpHistory = (token, accountId) =>\r\n topUpHistorySource(token, accountId);\r\n","import React, { Component } from 'react';\r\nimport Slider, { Handle } from 'rc-slider';\r\nimport Tooltip from 'rc-tooltip';\r\nimport 'rc-slider/assets/index.css';\r\n\r\nexport default class ProgramBuilderRangeSlider extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n min: props.min,\r\n max: props.max,\r\n step: props.step,\r\n returnCheckbox: false,\r\n sliderValue: 5,\r\n showYears: false,\r\n };\r\n }\r\n\r\n\r\n handleRangeSliderMax = value => {\r\n let { max } = this.state;\r\n const { returnCheckbox } = this.state;\r\n if (value === max) {\r\n max += 25;\r\n this.setState({\r\n max,\r\n });\r\n }\r\n this.setState({\r\n sliderValue: value,\r\n showYears: true,\r\n });\r\n if (returnCheckbox) value *= 2;\r\n const { onChange, data } = this.props;\r\n onChange(data, value); \r\n };\r\n\r\n handleRangeSlider = props => {\r\n const {\r\n value, dragging, index, ...restProps\r\n } = props;\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n handleReturnCheck = () => {\r\n const { returnCheckbox } = this.state;\r\n const { onChange, data } = this.props;\r\n this.setState({\r\n returnCheckbox: !returnCheckbox,\r\n },() => {\r\n const { returnCheckbox, sliderValue } = this.state;\r\n const value = returnCheckbox ? sliderValue * 2 : sliderValue;\r\n onChange(data, value);\r\n });\r\n };\r\n\r\n handleDropDown = (index) => {\r\n // window.UIkit.dropdown(`#range-slider-${index}`).show();\r\n };\r\n\r\n\r\n render() {\r\n const { data } = this.props;\r\n const {\r\n min, max, step, returnCheckbox, sliderValue, showYears\r\n } = this.state;\r\n const marks = {};\r\n marks[1] = min;\r\n marks[max] = max;\r\n\r\n return (\r\n
    \r\n
    \r\n

    this.handleDropDown(data)}>\r\n {\r\n returnCheckbox ? `${sliderValue} return flights per year` : showYears ? `${sliderValue} flights per year` : `How many times per year?`\r\n }\r\n

    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n );\r\n }\r\n}\r\n\r\nProgramBuilderRangeSlider.defaultProps = {\r\n min: 1,\r\n max: 25,\r\n step: 1,\r\n onChange: () => {\r\n },\r\n};\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport moment from 'moment';\r\nimport Helpers from '../../utils/Helpers';\r\nimport { LEG_ARRAY } from '../../constants/localStorageKeys';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport Stepper from 'components/Stepper';\r\nimport AirportSelectorWrapper from 'components/PlanAFlight/Wrappers/AirportSelectorWrapper';\r\nimport { saveToLocal } from '../../utils/cache';\r\nimport { PAF_PAGE_URL } from '../../configs/constants';\r\nimport 'rc-slider/assets/index.css';\r\nimport ProgramBuilderRangeSlider from './ProgramBuilderRangeSlider';\r\n\r\nclass ProgramBuilderWidget extends Component {\r\n static propTypes = {\r\n fetchVisitedAirports: PropTypes.func,\r\n visitedAirports: PropTypes.instanceOf(Array),\r\n };\r\n\r\n static defaultProps = {\r\n fetchVisitedAirports: undefined,\r\n visitedAirports: [],\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.orderExtIdentifier = Helpers.guid();\r\n this.initialLegStruct = {\r\n prevLeg: null,\r\n guid: Helpers.guid(),\r\n orderExtIdentifier: this.orderExtIdentifier,\r\n date: null,\r\n selectedAircraft: null,\r\n time: '',\r\n distance: null,\r\n duration: null,\r\n years: '',\r\n airportDistance: null,\r\n departureAirport: null,\r\n arrivalAirport: null,\r\n departTime: 'Invalid date',\r\n arrivalTime: 'Invalid date',\r\n minutes: '',\r\n hour: '',\r\n bookedFlightId: 0,\r\n passengersCount: 1,\r\n version: 0,\r\n isCanceled: false,\r\n isEditableLeg: true,\r\n isRequestFailed: false,\r\n isReturn: false,\r\n isWidgetFlow: false,\r\n validation: {\r\n isError: false,\r\n errorMsg: '',\r\n errorOn: {\r\n departure: null,\r\n arrival: null,\r\n departureArrival: null,\r\n departureArrivalSame: null,\r\n time: null,\r\n passenger: null,\r\n aircraft: null,\r\n date: null,\r\n },\r\n },\r\n };\r\n\r\n this.state = {\r\n legArray: [{ ...this.initialLegStruct }],\r\n disableReturn: true,\r\n popupErrorMessages: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.isAirportsFetched) {\r\n this.props.fetchVisitedAirports();\r\n }\r\n this.props.fetchVisitedAirports();\r\n }\r\n\r\n handleAirportSelect = (value, source, index) => {\r\n let { disableReturn } = this.state;\r\n const { legArray } = this.state;\r\n if (source === 'departure') {\r\n legArray[index].departureAirport = value;\r\n this.handleDurationChange(index);\r\n this.updateAiportsTime(index);\r\n if (legArray[index].passengersCount)\r\n this.updateAirCraftDetails(index);\r\n } else {\r\n legArray[index].arrivalAirport = value;\r\n if (legArray[index].departureAirport !== null) {\r\n disableReturn = false;\r\n }\r\n this.handleDurationChange(index);\r\n this.updateAiportsTime(index);\r\n if (legArray[index].passengersCount)\r\n this.updateAirCraftDetails(index);\r\n }\r\n this.setState({ legArray, disableReturn });\r\n };\r\n\r\n handleStepperChange = (value, legIndex) => {\r\n const { legArray } = this.state;\r\n legArray[legIndex].passengersCount = value;\r\n this.setState({ legArray });\r\n this.updateAirCraftDetails(legIndex);\r\n };\r\n\r\n selectPrefferedAirCraft = (legArray) => {\r\n let aircraftsList = Helpers.copy(this.props.aircraftsList);\r\n\r\n let maxPassengerCount = Math.max(...legArray.map((leg) => {\r\n return leg.passengersCount;\r\n }));\r\n\r\n let maxFlightDistance = Math.max(...legArray.map((leg) => {\r\n return leg.distance;\r\n }));\r\n\r\n /*Sort AirCrafts on the Basis on Range*/\r\n aircraftsList = aircraftsList.sort(function (a, b) {\r\n return a.maxRangeKm - b.maxRangeKm;\r\n });\r\n\r\n /*Filter on the basis of Range and Passenger*/\r\n const filter = {\r\n maxNumberOfPassengers: maxPassengerCount,\r\n maxRangeKm: maxFlightDistance,\r\n };\r\n\r\n let selectedAirCraft = aircraftsList.filter(function (item) {\r\n return item.maxNumberOfPassengers >= filter.maxNumberOfPassengers &&\r\n item.maxRangeKm >= filter.maxRangeKm\r\n }).shift();\r\n\r\n if (!selectedAirCraft) {\r\n selectedAirCraft = aircraftsList.pop();\r\n }\r\n\r\n return selectedAirCraft;\r\n };\r\n\r\n updateAirCraftDetails = (index) => {\r\n const { legArray } = this.state;\r\n\r\n this.handleDistanceChange(index);\r\n const prefferedAirCraft = this.selectPrefferedAirCraft(legArray);\r\n\r\n /*Put Selected Aircraft for all legs*/\r\n legArray.map((leg) => {\r\n leg.selectedAircraft = prefferedAirCraft;\r\n return leg;\r\n });\r\n\r\n this.handleDurationChange(index);\r\n this.updateAiportsTime(index);\r\n this.setState({\r\n legArray,\r\n });\r\n };\r\n\r\n handleDurationChange(index) {\r\n const { legArray } = this.state;\r\n if (\r\n legArray[index].departureAirport !== null\r\n && legArray[index].arrivalAirport !== null\r\n && legArray[index].selectedAircraft !== null\r\n ) {\r\n legArray[index].duration = Helpers.getFlightDuration(\r\n legArray[index].departureAirport,\r\n legArray[index].arrivalAirport,\r\n legArray[index].selectedAircraft,\r\n );\r\n this.setState({\r\n legArray,\r\n });\r\n }\r\n }\r\n\r\n handleDistanceChange(index) {\r\n const { legArray } = this.state;\r\n if (\r\n legArray[index].departureAirport !== null\r\n && legArray[index].arrivalAirport !== null\r\n ) {\r\n legArray[index].distance = Helpers.getAirportDistance(\r\n legArray[index].departureAirport,\r\n legArray[index].arrivalAirport\r\n );\r\n this.setState({\r\n legArray,\r\n });\r\n }\r\n }\r\n\r\n updateAiportsTime(legIndex) {\r\n const { legArray } = this.state;\r\n const leg = legArray[legIndex];\r\n const tmpObj = {\r\n departTime: 'Invalid date',\r\n arrivalTime: 'Invalid date',\r\n legIndex,\r\n };\r\n let departTime = 'etd';\r\n let arrivalTime = 'eta';\r\n if (!!leg.time && !!leg.date) {\r\n const datetimeString = `${moment.utc(leg.date).format('DD/MM/YYYY')} ${leg.time}`;\r\n if (leg.departureAirport !== null) {\r\n departTime = moment(`${datetimeString} +0000`, 'DD/MM/YYYY HH:mm Z')\r\n .utc()\r\n .format();\r\n\r\n tmpObj.departTime = departTime;\r\n }\r\n if (\r\n leg.departureAirport\r\n && leg.arrivalAirport\r\n && departTime\r\n && leg.selectedAircraft\r\n ) {\r\n arrivalTime = Helpers.getArrivalTime(\r\n departTime,\r\n leg.duration,\r\n leg.departureAirport,\r\n leg.arrivalAirport,\r\n );\r\n tmpObj.arrivalTime = arrivalTime;\r\n }\r\n legArray[legIndex].departTime = tmpObj.departTime;\r\n legArray[legIndex].arrivalTime = tmpObj.arrivalTime;\r\n\r\n this.setState({ legArray });\r\n }\r\n }\r\n\r\n refreshFormFields = (isReturnAdded = false) => {\r\n const { legArray } = this.state;\r\n legArray.push({\r\n ...this.initialLegStruct,\r\n isReturn: isReturnAdded,\r\n prevLeg: legArray[legArray.length - 1],\r\n departureAirport: isReturnAdded,\r\n arrivalAirport: isReturnAdded\r\n ? legArray[legArray.length - 1].departureAirport\r\n : null,\r\n });\r\n this.setState({\r\n legArray,\r\n disableReturn: !isReturnAdded,\r\n });\r\n };\r\n\r\n handleAddFlight = () => {\r\n const { legArray } = this.state;\r\n let isAddFlight = [];\r\n isAddFlight = legArray.map(flight => this.formValidatiion(flight));\r\n if (\r\n isAddFlight.every((isAddFlight) => {\r\n return isAddFlight;\r\n })\r\n ) {\r\n this.refreshFormFields();\r\n }\r\n };\r\n\r\n fieldValidator = value => {\r\n if (value === '' || value === null || value === [] || value === 0) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n formValidatiion = flightInfo => {\r\n if (\r\n this.fieldValidator(flightInfo.departureAirport)\r\n && this.fieldValidator(flightInfo.arrivalAirport)\r\n && this.fieldValidator(flightInfo.passengersCount)\r\n && this.fieldValidator(flightInfo.years)\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n submitLegArraytoProgramBuilder = () => {\r\n const { legArray } = this.state;\r\n const { onChange } = this.props;\r\n onChange({ legArray });\r\n };\r\n\r\n /* TODO */\r\n handlePlan = () => {\r\n const { legArray } = this.state;\r\n const { isLoggedIn } = this.props;\r\n const legs = legArray.map(leg => ({\r\n ...leg,\r\n isWidgetFlow: true,\r\n }));\r\n if (isLoggedIn) {\r\n saveToLocal(legs, LEG_ARRAY);\r\n window.open(PAF_PAGE_URL, '_self');\r\n } else {\r\n this.setState({\r\n legArray: legs,\r\n });\r\n window.UIkit.modal('#PAFModal').show();\r\n }\r\n };\r\n\r\n removeFlight = index => {\r\n const copyFlightArray = [...this.state.legArray];\r\n copyFlightArray.splice(index, 1);\r\n this.setState({ legArray: copyFlightArray });\r\n };\r\n\r\n renderButtons() {\r\n const { legArray } = this.state;\r\n let isFormSubmitable = false;\r\n let isButtonEnable = false;\r\n if (legArray.length > 0) {\r\n legArray.forEach(leg => {\r\n isFormSubmitable = this.formValidatiion(leg);\r\n });\r\n }\r\n const disableButtonClass = 'vistajet_button_disable';\r\n if (isFormSubmitable) {\r\n isButtonEnable = true;\r\n this.submitLegArraytoProgramBuilder();\r\n }\r\n return (\r\n
    \r\n \r\n Add Flight\r\n \r\n
    \r\n );\r\n }\r\n\r\n getSliderValue = (index, value) => {\r\n const { legArray } = this.state;\r\n legArray[index].years = value;\r\n this.setState({ legArray });\r\n };\r\n\r\n renderAddFlights() {\r\n const { legArray } = this.state;\r\n if (legArray.length > 0) {\r\n const renderBookedFlightRows = legArray.map((item, index) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n this.handleAirportSelect(value, source, index)\r\n }\r\n isAirportsFetched={this.props.isAirportsFetched}\r\n visitedAirports={this.props.visitedAirports}\r\n fetchVisitedAirports={this.props.fetchVisitedAirports}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n this.handleAirportSelect(value, source, index)\r\n }\r\n isAirportsFetched={this.props.isAirportsFetched}\r\n visitedAirports={this.props.visitedAirports}\r\n fetchVisitedAirports={this.props.fetchVisitedAirports}\r\n />\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.handleStepperChange(value, index)}\r\n />\r\n
    \r\n
    \r\n
    \r\n {legArray.length > 1 && (\r\n this.removeFlight(index)}\r\n >\r\n\r\n\r\n X\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n });\r\n return renderBookedFlightRows;\r\n }\r\n }\r\n\r\n render() {\r\n const { legArray } = this.state;\r\n return (\r\n
    \r\n {legArray.length > 0 && this.renderAddFlights()}\r\n {this.renderButtons()}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ProgramBuilderWidget;\r\n","import { connect } from 'react-redux';\r\n\r\nimport withStore from '../components/withStore';\r\nimport ProgramBuilderWidget from '../components/ProgramBuilder/ProgramBuilderWidget';\r\nimport * as actions from '../store/actions';\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n isLoading, offers, error, totalOffers,\r\n } = state.offers;\r\n const { regionId } = state.geocode;\r\n const locationNotDisabled = !state.geocode.locationDisabled;\r\n const loadingGeolocation = state.geocode.isLoading;\r\n const { visitedAirports, isAirportsFetched } = state.visitedAirports;\r\n const { isLoggedIn } = state.user;\r\n const {\r\n isGoogleMapsApiLoaded,\r\n isGooglePlacesAutocompleteBinded,\r\n } = state.googleMap;\r\n const { aircraftsList } = state.aircrafts;\r\n return {\r\n isAirportsFetched,\r\n isLoading,\r\n offers,\r\n error,\r\n totalOffers,\r\n regionId,\r\n locationNotDisabled,\r\n loadingGeolocation,\r\n visitedAirports,\r\n isGoogleMapsApiLoaded,\r\n isGooglePlacesAutocompleteBinded,\r\n isLoggedIn,\r\n tokenAuthLoading: state.token.isTokenAuthLoading,\r\n adminTokenLoading: state.token.isadminTokenLoading,\r\n registerLoading: state.registration.isLoading,\r\n aircraftsList,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n onGoogleMapsApiLoaded: () => dispatch(actions.onGoogleMapsApiLoaded()),\r\n onPlacesAutocompleteBinded: () => dispatch(actions.onPlacesAutocompleteBinded()),\r\n fetchVisitedAirports: () => dispatch(actions.fetchAllVisitedAirports()),\r\n fetchGeocode: () => dispatch(actions.fetchCountryGeocode()),\r\n };\r\n}\r\n\r\nconst ProgramBuilderWidgetContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(ProgramBuilderWidget);\r\n\r\nexport default withStore(ProgramBuilderWidgetContainer);\r\n","const DEFAULT_OPTIONS = {\r\n method: 'POST',\r\n}\r\n\r\nconst HIDDEN_STYLES = {\r\n display: 'none',\r\n position: 'absolute',\r\n left: '-900px',\r\n top: '-900px',\r\n}\r\n\r\nconst HIDDEN_STYLES_STRING = Object.entries(HIDDEN_STYLES).map(([prop, val]) => `${prop}: ${val}`).join(';')\r\n\r\n/**\r\n * Transport for POST cross-domain requests without CORS\r\n * by using approach with form submitted to hidden iframe, without reloading the page\r\n * @param {string} url\r\n * @param {Object} data\r\n * @param {Object} [options={}]\r\n * @return {}\r\n */\r\nexport default function PostTransport (url, data, options = {}) {\r\n if (!url) throw new Error('Missing param url')\r\n options = { ...DEFAULT_OPTIONS, ...options }\r\n\r\n let isFormSubmitted = false\r\n const id = String(Math.random()).replace('.', '')\r\n const frameId = `frame${id}`\r\n const formId = `form${id}`\r\n const container = document.createRange().createContextualFragment(`\r\n
    \r\n \r\n
    \r\n ${data ? Object.entries(data).map(([fieldName, value]) => ``) : ''}\r\n
    \r\n
    \r\n `);\r\n document.body.appendChild(container);\r\n\r\n const containerEl = document.getElementById(id)\r\n const form = document.getElementById(formId)\r\n const frame = document.getElementById(frameId)\r\n\r\n for (const field in { ...data }) {\r\n form.elements[field].value = data[field];\r\n }\r\n\r\n frame.addEventListener('load', () => {\r\n if (isFormSubmitted) document.body.removeChild(containerEl)\r\n });\r\n form.submit()\r\n isFormSubmitted = true\r\n return true\r\n}\r\n","import React, { Component } from 'react';\r\nimport Select from 'react-select';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport IntlTelphoneInput from \"../shared/PhoneNumberSelector\";\r\nimport cn from \"classnames\";\r\nimport { Salutation } from '../../constants/SignupConstants';\r\nimport {\r\n POLICY_URL_PAGE,\r\n TERMS_URL_PAGE,\r\n contactusEnv,\r\n} from '../../configs/constants';\r\n\r\nimport {\r\n getFirstChars,\r\n} from '../../utils/stringUtils';\r\nimport validateProgramBuilderDetailForm from '../../utils/Validators/ProgramBuilderDetailFormValidator';\r\nimport GeoLocation from \"../../utils/geolocation\";\r\nimport StateAbbreviation, { stateList } from '../../utils/stateUtils'\r\nimport PostTransport from '../../utils/postTransport'\r\n\r\nexport default class ProgramBuilderDetailForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n salutation: Salutation[0],\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n defaultCountry: null,\r\n country: \"\",\r\n state: \"\",\r\n phoneNumber: \"\",\r\n isPhoneNumberValid: false,\r\n marketingCheckbox: false,\r\n agreementCheckbox: false,\r\n errors: {},\r\n showSeeMoreButton: props.isLegArray,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n GeoLocation().then(pos => {\r\n if (!pos || !pos.region)\r\n return;\r\n this.setState({ stateCode: StateAbbreviation(pos.region) });\r\n }).catch(err => { });\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { onClearReducer } = this.props;\r\n if (this.props.isSuccess !== nextProps.isSuccess) {\r\n onClearReducer();\r\n // this.refreshFormFields();\r\n }\r\n if (nextProps.isLegArray) {\r\n this.enableSeeMoreButton(nextProps.legArray);\r\n } else {\r\n this.setState({ showSeeMoreButton: nextProps.isLegArray });\r\n }\r\n }\r\n\r\n fieldValidator = value => {\r\n if (value === '' || value === null || value === [] || value === 0) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n enableSeeMoreButton = (legs = null) => {\r\n const {\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n country,\r\n stateCode,\r\n phoneNumber,\r\n isPhoneNumberValid,\r\n agreementCheckbox,\r\n } = this.state;\r\n let legArray = legs ? legs : this.props.legArray;\r\n if (\r\n this.fieldValidator(salutation)\r\n && this.fieldValidator(firstName)\r\n && this.fieldValidator(lastName)\r\n && this.fieldValidator(email)\r\n && this.fieldValidator(phoneNumber)\r\n && this.fieldValidator(agreementCheckbox)\r\n && (country !== 'US' || stateCode)\r\n && agreementCheckbox\r\n && legArray\r\n && Object.keys(legArray).length > 0\r\n ) {\r\n this.setState({ showSeeMoreButton: true });\r\n } else {\r\n this.setState({ showSeeMoreButton: false });\r\n }\r\n };\r\n\r\n geoLookupCountryCode = (code) => {\r\n this.geoLookupCountryCode = code;\r\n }\r\n\r\n handleSalutationChange = (obj) => {\r\n this.setState({ salutation: obj });\r\n };\r\n\r\n handleFirstNameChange = (e) => {\r\n this.setState({ firstName: e.target.value }, this.enableSeeMoreButton);\r\n };\r\n\r\n handleLastNameChange = (e) => {\r\n this.setState({ lastName: e.target.value }, this.enableSeeMoreButton);\r\n };\r\n\r\n handleEmailChange = (e) => {\r\n this.setState({ email: e.target.value }, this.enableSeeMoreButton);\r\n };\r\n\r\n handlePhoneNumberChange = (status = true, phoneNumber, countryData) => {\r\n const phoneStrLength = phoneNumber.length;\r\n this.setState({\r\n country: phoneStrLength > 0 ? countryData.iso2.toUpperCase() : \"\",\r\n phoneNumber: getFirstChars(phoneNumber, 15, status),\r\n isPhoneNumberValid: status,\r\n requestACallBack: phoneStrLength > 0,\r\n }, this.enableSeeMoreButton);\r\n };\r\n\r\n handleStateChange = e => {\r\n this.setState({ stateCode: e.target.value }, this.enableSeeMoreButton)\r\n }\r\n\r\n removePhoneError = () => {\r\n if (this.state.errors.isError) {\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n if (remErrors.errors && remErrors.errors.phoneNumber) {\r\n remErrors.errors.phoneNumber = null;\r\n }\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError\r\n };\r\n this.setState({\r\n errors: newState\r\n });\r\n }\r\n };\r\n\r\n handleAgreementCheck = () => {\r\n const { agreementCheckbox } = this.state;\r\n this.setState({\r\n agreementCheckbox: !agreementCheckbox,\r\n }, this.enableSeeMoreButton);\r\n };\r\n\r\n handleMarketingCheck = () => {\r\n const { marketingCheckbox } = this.state;\r\n this.setState({\r\n marketingCheckbox: !marketingCheckbox,\r\n });\r\n };\r\n /*Validate and Submit Form*/\r\n validateForm = () => {\r\n const {\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n country,\r\n stateCode,\r\n phoneNumber,\r\n isPhoneNumberValid,\r\n agreementCheckbox,\r\n marketingCheckbox,\r\n } = this.state;\r\n //const { submit, onContactUsForm } = this.props;\r\n const { submit } = this.props;\r\n const res = validateProgramBuilderDetailForm({\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n country,\r\n stateCode,\r\n phoneNumber,\r\n isPhoneNumberValid,\r\n agreementCheckbox\r\n });\r\n if (res.isError) {\r\n // set state of errors\r\n this.setState({\r\n errors: res,\r\n });\r\n } else {\r\n // onContactUsForm(this.createPayload());\r\n try {\r\n window.dataLayer.push({ 'event': 'enquirySubmitted', 'enquiryType': 'Program Builder' });\r\n } catch (e) {\r\n console.warn(\"dataLayer push failed for 'Program Builder': \" + e)\r\n }\r\n this.submitHiddenForm();\r\n submit({\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n country,\r\n stateCode,\r\n phoneNumber,\r\n isPhoneNumberValid,\r\n agreementCheckbox,\r\n marketingCheckbox,\r\n });\r\n }\r\n };\r\n\r\n formatLegArray = (legs) => {\r\n return legs.legArray.map((leg) => {\r\n const passengersCount = Number(leg.passengersCount) || 0;\r\n return {\r\n from_airport_str: leg.departureAirport ? `${leg.departureAirport.cityAndCountry}, ${leg.departureAirport.name}` : '',\r\n from_airport: leg.departureAirport ? `${leg.departureAirport.icao}` : '',\r\n to_airport_str: leg.arrivalAirport ? `${leg.arrivalAirport.cityAndCountry}, ${leg.arrivalAirport.name}` : '',\r\n to_airport: leg.arrivalAirport ? `${leg.arrivalAirport.icao}` : '',\r\n out: null,\r\n back: null,\r\n date_time: null,\r\n no_passengers: passengersCount,\r\n ac_type: '',\r\n distance: null,\r\n count: leg.years\r\n };\r\n });\r\n }\r\n\r\n submitHiddenForm = () => {\r\n const payload = this.createPayload();\r\n PostTransport(payload.url, payload.data)\r\n\r\n var p = document.createElement('img');\r\n p.src = \"https://secure.adnxs.com/px?id=1090189&seg=17321571&redir=https%3A%2F%2Fpixel.mediaiqdigital.com%2Fpixel%3Fu1%3DProgramBuilderDetail%26u3%3D%26u4%3D%26pixel_id%3D1090189%26uid%3D%24%7BUID%7D&t=2\";\r\n p.width = 1;\r\n p.height = 1;\r\n document.body.appendChild(p);\r\n }\r\n\r\n createPayload = () => {\r\n const VALUE_ENV_MAP = {\r\n preproduction: {\r\n oid: '00D2z0000000TxX',\r\n url: 'https://test.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8',\r\n },\r\n production: {\r\n oid: '00D200000005jIW',\r\n url: 'https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8',\r\n }\r\n }\r\n\r\n const FIELDS_MAP = {\r\n //salutation: 'salutation',\r\n webSalutationText: (env) => (env === 'preproduction') ? '00N4G000006eYu2' : '00N4G000006eYu2',\r\n webSalutationOther: (env) => (env === 'preproduction') ? '00N4G000006eYty' : '00N4G000006eYty',\r\n greetingSalutation: '00N4G000006eQ6E',\r\n //title: 'title',\r\n firstName: 'first_name',\r\n lastName: 'last_name',\r\n //email: 'email',\r\n //company: 'company',\r\n phoneNumber: 'phone',\r\n message: 'description',\r\n marketingOptIn: (env) => (env === 'preproduction') ? '00N4G000006eYtx' : '00N4G000006eYtx',\r\n country: 'country_code',\r\n state: 'state_code',\r\n conversionURL: (env) => (env === 'preproduction') ? '00N4G000006eYtq' : '00N4G000006eYtq',\r\n googleSource: (env) => (env === 'preproduction') ? '00N4G000006eYu6' : '00N4G000006eYu6',\r\n googleMedium: (env) => (env === 'preproduction') ? '00N4G000006eYu5' : '00N4G000006eYu5',\r\n googleCampaign: (env) => (env === 'preproduction') ? '00N4G000006eYu3' : '00N4G000006eYu3',\r\n googleTerm: (env) => (env === 'preproduction') ? '00N4G000006eYu7' : '00N4G000006eYu7',\r\n customJSON: (env) => (env === 'preproduction') ? '00N4G000006eYtw' : '00N4G000006eYtw',\r\n flightsJSON: (env) => (env === 'preproduction') ? '00N4G000006eYts' : '00N4G000006eYts',\r\n vistajetAircraft: (env) => (env === 'preproduction') ? '00N4G000006eYu1' : '00N4G000006eYu1',\r\n internalNote: (env) => (env === 'preproduction') ? '00N4G000006eYtt' : '00N4G000006eYtt',\r\n callback: (env) => (env === 'preproduction') ? '00N4G000006eYtv' : '00N4G000006eYtv',\r\n origin: (env) => (env === 'preproduction') ? '00N4G000006eYtu' : '00N4G000006eYtu',\r\n type: (env) => (env === 'preproduction') ? '00N4G000006eYu0' : '00N4G000006eYu0',\r\n }\r\n\r\n const getValuePerEnv = (fieldName, env) => {\r\n const values = VALUE_ENV_MAP[env]\r\n if (!values || !values[fieldName]) {\r\n console.error(`Couldn't find ${fieldName} value for SalesForce`)\r\n return null\r\n }\r\n return values[fieldName]\r\n }\r\n\r\n const isFunction = (functionToCheck) => (typeof functionToCheck === 'function')\r\n\r\n const renameFields = (data, env) => {\r\n for (const field in { ...data }) {\r\n const value = data[field]\r\n const fieldName = FIELDS_MAP[field]\r\n if (isFunction(fieldName)) {\r\n // Use name of field depends on env\r\n data[fieldName(env)] = value\r\n delete data[field]\r\n } else if (fieldName) {\r\n data[fieldName] = value\r\n delete data[field]\r\n }\r\n }\r\n return data\r\n }\r\n\r\n const {\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n phoneNumber,\r\n country,\r\n stateCode,\r\n marketingCheckbox,\r\n agreementCheckbox\r\n } = this.state;\r\n\r\n const {\r\n legArray,\r\n } = this.props;\r\n const formattedLegArray = this.formatLegArray(legArray);\r\n\r\n const url = window.location;\r\n const utmData = new URLSearchParams(window.location.search);\r\n const countryCode = country === \"\" ? this.geoLookupCountryCode : country;\r\n\r\n let env = (window.globalEnv && window.globalEnv.toLowerCase()) || 'preproduction'\r\n if (!VALUE_ENV_MAP[env]) env = 'preproduction'\r\n\r\n\r\n const aircraft = this.props.suggestionData && this.props.suggestionData.airCraft ? this.props.suggestionData.airCraft.aircraftName : '';\r\n const hours = this.props.suggestionData && this.props.suggestionData.yearlyHours ? this.props.suggestionData.yearlyHours : 0;\r\n\r\n let data = {\r\n oid: getValuePerEnv('oid', env),\r\n salutation: salutation.label,\r\n firstName: firstName,\r\n lastName: lastName,\r\n email: email,\r\n company: \"\",\r\n phoneNumber: phoneNumber,\r\n message: \"\",\r\n marketingOptIn: marketingCheckbox,\r\n country: countryCode,\r\n state: countryCode === \"US\" ? stateCode : \"\",\r\n conversionURL: `${url.origin}${url.pathname}`,\r\n googleSource: utmData.get(\"utm_source\") || \"\",\r\n googleMedium: utmData.get(\"utm_medium\") || \"\",\r\n googleCampaign: utmData.get(\"utm_campaign\") || \"\",\r\n googleTerm: utmData.get(\"utm_term\") || \"\",\r\n customJSON: JSON.stringify({\r\n action: 'program builder',\r\n agreementCheckbox: agreementCheckbox,\r\n flights: formattedLegArray,\r\n aircraft: aircraft,\r\n hours: hours\r\n }),\r\n callback: '',\r\n origin: 'Web',\r\n type: 'Program Builder',\r\n\r\n retURL: 'https://www.vistajet.com/thankyou.txt',\r\n }\r\n\r\n return {\r\n url: getValuePerEnv('url', env),\r\n data: renameFields(data, env)\r\n };\r\n };\r\n\r\n generateSalutationOptions = () => {\r\n return Salutation.map((salutation) => {\r\n return {\r\n value: salutation.value,\r\n label: salutation.label,\r\n };\r\n });\r\n };\r\n\r\n removeErrors = (e) => {\r\n e.preventDefault();\r\n if (this.state.errors && this.state.errors.isError) {\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors[e.target.id] = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n };\r\n\r\n\r\n renderForm = () => {\r\n const salutationOptions = this.generateSalutationOptions();\r\n const {\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n country,\r\n stateCode,\r\n phoneNumber,\r\n isPhoneNumberValid,\r\n errors,\r\n defaultCountry,\r\n marketingCheckbox,\r\n agreementCheckbox,\r\n showSeeMoreButton,\r\n } = this.state;\r\n const { isLoading, programBuilder } = this.props;\r\n const hasStateField = country === 'US'\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n isLoading &&\r\n (\r\n
    \r\n )\r\n }\r\n
    \r\n {programBuilder}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n errors.errors && errors.errors.firstName && (\r\n

    \r\n {errors.errors.firstName}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.lastName && (\r\n

    \r\n {errors.errors.lastName}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.email && (\r\n

    \r\n {errors.errors.email}\r\n

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {errors.errors && errors.errors.phoneNumber && (\r\n

    {errors.errors.phoneNumber}

    \r\n )}\r\n
    \r\n {hasStateField && (\r\n
    \r\n \r\n \r\n {errors.errors && errors.errors.stateCode && (\r\n

    {errors.errors.stateCode}

    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n {\r\n errors.errors && errors.errors.agreementCheckbox && (\r\n

    \r\n {errors.errors.agreementCheckbox}\r\n

    \r\n )\r\n }\r\n {\r\n (\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n };\r\n\r\n render() {\r\n return this.renderForm();\r\n }\r\n}\r\n","import {\r\n validateSalutation,\r\n validateFirstName,\r\n validateLastName,\r\n validatePhone,\r\n validateCheckBox, validateEmailStartingFromUpperCase,\r\n validateStateCode,\r\n} from './Validators';\r\n\r\nexport default function validateProgramBuilderDetailForm(obj) {\r\n const salutationResponse = validateSalutation(obj.salutation.value);\r\n const firstNameResponse = validateFirstName(obj.firstName);\r\n const lastNameResponse = validateLastName(obj.lastName);\r\n const emailResponse = validateEmailStartingFromUpperCase(obj.email);\r\n const stateCodeResponse = validateStateCode(obj.stateCode, obj.country);\r\n let phoneNumberResponse;\r\n if (obj.phoneNumber != null) {\r\n phoneNumberResponse = validatePhone(\r\n obj.phoneNumber,\r\n obj.isPhoneNumberValid\r\n );\r\n }\r\n const agreementCheckboxResponse = validateCheckBox(obj.agreementCheckbox);\r\n const res = {\r\n errors: {},\r\n };\r\n if (salutationResponse.isError) {\r\n res.isError = salutationResponse.isError;\r\n res.errors.salutation = salutationResponse.message;\r\n }\r\n if (firstNameResponse.isError) {\r\n res.isError = firstNameResponse.isError;\r\n res.errors.firstName = firstNameResponse.message;\r\n }\r\n if (lastNameResponse.isError) {\r\n res.isError = lastNameResponse.isError;\r\n res.errors.lastName = lastNameResponse.message;\r\n }\r\n if (emailResponse.isError) {\r\n res.isError = emailResponse.isError;\r\n res.errors.email = emailResponse.message;\r\n }\r\n if (phoneNumberResponse && phoneNumberResponse.isError) {\r\n res.isError = phoneNumberResponse.isError;\r\n res.errors.phoneNumber = phoneNumberResponse.message;\r\n }\r\n if (agreementCheckboxResponse.isError) {\r\n res.isError = agreementCheckboxResponse.isError;\r\n res.errors.agreementCheckbox = agreementCheckboxResponse.message;\r\n }\r\n if (stateCodeResponse.isError) {\r\n res.isError = stateCodeResponse.isError;\r\n res.errors.stateCode = stateCodeResponse.message;\r\n } \r\n return res;\r\n}\r\n","/* eslint-disable operator-linebreak */\r\n/* eslint-disable jsx-a11y/anchor-is-valid */\r\n/* eslint-disable react/button-has-type */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable jsx-a11y/no-static-element-interactions */\r\nimport React, { Component } from 'react';\r\n\r\nexport default class ProgramBuilderDonutAndSuggestion extends Component {\r\n render() {\r\n const { data } = this.props;\r\n const { airCraft } = data;\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    \r\n {data.yearlyHours}\r\n

    \r\n

    \r\n Hours per year\r\n

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

    Flight Hours

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

    Recommended additional hours

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

    \r\n SUGGESTED AIRCRAFT\r\n

    \r\n \r\n
    \r\n
    \r\n
    \r\n {airCraft.aircraftName}\r\n
    \r\n \r\n Flying hours:\r\n {airCraft.flyingHours}\r\n \r\n \r\n {' '}\r\n Range:\r\n {airCraft.range}\r\n \r\n \r\n Maximum speed:\r\n {airCraft.maximumSpeed}\r\n \r\n \r\n Passenger capacity:\r\n {airCraft.passengerCapacity}\r\n {' | '}\r\n {airCraft.passengerCapacitySleeping}\r\n {' '}\r\n sleeping\r\n \r\n
    \r\n \r\n
    \r\n

    \r\n PROGRAM MEMBERSHIP\r\n

    \r\n
      \r\n
    • \r\n\r\n\r\n No depreciation or asset risk\r\n
    • \r\n
    • \r\n\r\n\r\n Transparent per hour cost\r\n
    • \r\n
    • \r\n\r\n\r\n Consistent, versatile fleet\r\n
    • \r\n
    • \r\n\r\n\r\n Ultra-personalised service\r\n
    • \r\n
    • \r\n\r\n\r\n 24/7 guaranteed availability\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport withStore from '../withStore';\r\nimport * as actions from '../../store/actions';\r\nimport ProgramBuilderWidgetContainer from '../../containers/ProgramBuilderWidget';\r\nimport ProgramBuilderDetailForm from './ProgramBuilderDetailForm';\r\nimport ProgramBuilderDonutAndSuggestion from './ProgramBuilderDonutAndSuggestion';\r\nimport { AIRCRAFT_DETAILS } from '../../mocks/aircraftDetails';\r\nimport Helpers from \"../../utils/Helpers\";\r\n\r\nclass ProgramBuilder extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n legArray: {},\r\n isLegArray: false,\r\n suggestionData: {},\r\n showSuggestions: false,\r\n personalInfo: {},\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n componentWillReceiveProps() {\r\n }\r\n\r\n updateLegArray = (legArray) => {\r\n this.setState({ legArray: this.copy(legArray), isLegArray: true }, () => this.prepareDonutData(false));\r\n };\r\n\r\n /* To deep copy an Object in tempArray */\r\n copy = (o) => {\r\n let output; let v; let\r\n key;\r\n output = Array.isArray(o) ? [] : {};\r\n for (key in o) {\r\n v = o[key];\r\n output[key] = (typeof v === 'object') ? this.copy(v) : v;\r\n }\r\n return output;\r\n };\r\n\r\n prepareDonutData = (showSuggestion) => {\r\n const { legArray } = this.state;\r\n\r\n const tempArray = this.copy(legArray.legArray);\r\n\r\n tempArray.map((leg) => {\r\n leg.duration = (parseFloat(leg.duration) / 60) * leg.years;\r\n return leg;\r\n });\r\n\r\n const routesHours = Helpers.roundUpTo(tempArray\r\n .map(v => v.duration)\r\n .reduce((sum, current) => sum + current, 0), 25);\r\n\r\n const extraHours = Helpers.roundUpTo(routesHours * 0.2, 5);\r\n\r\n if (showSuggestion) {\r\n this.setState({\r\n suggestionData: { yearlyHours: parseInt(routesHours + extraHours), airCraft: AIRCRAFT_DETAILS[tempArray[0].selectedAircraft.id] },\r\n showSuggestions: true,\r\n }, () => { document.getElementById('donut-suggestion').scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' }) });\r\n } else {\r\n this.setState({\r\n suggestionData: { yearlyHours: parseInt(routesHours + extraHours), airCraft: AIRCRAFT_DETAILS[tempArray[0].selectedAircraft.id] },\r\n showSuggestions: false,\r\n });\r\n }\r\n };\r\n\r\n submitSeeMore = (data) => {\r\n this.setState({ personalInfo: data });\r\n this.prepareDonutData(true);\r\n };\r\n\r\n render() {\r\n const {\r\n isLegArray, suggestionData, showSuggestions, legArray,\r\n } = this.state;\r\n const programBuilder = ;\r\n return (\r\n\r\n
    \r\n\r\n \r\n {\r\n showSuggestions && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n\r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { isLoading, isSuccess } = state.contactus;\r\n return {\r\n isLoading,\r\n isSuccess,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n onClearReducer: () => dispatch(actions.clearReducer()),\r\n onContactUsForm: payload => dispatch(actions.postContactUs(payload)),\r\n };\r\n}\r\n\r\nconst ProgramBuilderContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(ProgramBuilder);\r\n\r\nexport default withStore(ProgramBuilderContainer);","import { VJ_AIRCRAFTS } from '../mocks/aircraftDetails';\r\n\r\nconst OTHER_AIRCRAFTS = {\r\n 'Learjet 60XR': {\r\n price: 5000000,\r\n crew: 241800,\r\n fixed: 169400,\r\n variable: 2406,\r\n cabinlength: 17.6,\r\n cabinwidth: 5.9,\r\n cabinheight: 5.7,\r\n baggage: 55,\r\n range: 2405,\r\n speed: 536,\r\n pax: '9 passengers',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_350,\r\n },\r\n 'Citation Excel': {\r\n price: 12992205,\r\n crew: 241800,\r\n fixed: 169400,\r\n variable: 2406,\r\n cabinlength: 18.6,\r\n cabinwidth: 5.50,\r\n cabinheight: 5.66,\r\n baggage: 90,\r\n range: 2405,\r\n speed: 536,\r\n pax: '9 passengers',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_350,\r\n },\r\n 'Citation X': {\r\n price: 10000000,\r\n crew: 427656,\r\n fixed: 293125,\r\n variable: 3881,\r\n cabinlength: 23.70,\r\n cabinwidth: 5.60,\r\n cabinheight: 5.70,\r\n baggage: 72,\r\n range: 3070,\r\n speed: 700,\r\n pax: '10 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_350,\r\n },\r\n 'Hawker 750': {\r\n price: 4000000,\r\n crew: 241800,\r\n fixed: 181829,\r\n variable: 2804,\r\n comparablerate: 12265,\r\n cabinlength: 18.31,\r\n cabinwidth: 6.00,\r\n cabinheight: 5.74,\r\n baggage: 54,\r\n range: 2903,\r\n speed: 495,\r\n pax: '8 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_350,\r\n },\r\n 'Hawker 900XP': {\r\n price: 10000000,\r\n crew: 241800,\r\n fixed: 188815,\r\n variable: 2798,\r\n cabinlength: 21.3,\r\n cabinwidth: 6.00,\r\n cabinheight: 5.75,\r\n baggage: 40,\r\n range: 3685,\r\n speed: 505,\r\n pax: '8 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_350,\r\n },\r\n 'Hawker 4000': {\r\n price: 7500000,\r\n crew: 400400,\r\n fixed: 308555,\r\n variable: 3670,\r\n cabinlength: 25,\r\n cabinwidth: 6.5,\r\n cabinheight: 6,\r\n baggage: 108,\r\n range: 3208,\r\n speed: 555,\r\n pax: '10 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_350,\r\n },\r\n 'Citation Sovereign': {\r\n price: 15000000,\r\n crew: 241800,\r\n fixed: 209666,\r\n variable: 2698,\r\n cabinlength: 24.2,\r\n cabinwidth: 5.6,\r\n cabinheight: 5.7,\r\n baggage: 100,\r\n range: 3243,\r\n speed: 495,\r\n pax: '10 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_350,\r\n },\r\n 'Falcon 2000LX': {\r\n price: 31650000,\r\n crew: 388700,\r\n fixed: 306505,\r\n variable: 3077,\r\n comparablerate: 13730,\r\n cabinlength: 20.23,\r\n cabinwidth: 5.6,\r\n cabinheight: 5.7,\r\n baggage: 100,\r\n range: 3912,\r\n speed: 554,\r\n pax: '10 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_605,\r\n },\r\n 'Gulfstream 450': {\r\n price: 33000000,\r\n crew: 406900,\r\n fixed: 416934,\r\n variable: 5139,\r\n cabinlength: 45.1,\r\n cabinwidth: 7.3,\r\n cabinheight: 6.2,\r\n baggage: 169,\r\n range: 4341,\r\n speed: 547,\r\n pax: '14 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.GLOBAL_5000,\r\n },\r\n 'Challenger 350': {\r\n price: 25000000,\r\n crew: 400400,\r\n fixed: 304218,\r\n variable: 3244,\r\n cabinlength: 28.6,\r\n cabinwidth: 7.2,\r\n cabinheight: 6.1,\r\n baggage: 106,\r\n range: 3200,\r\n speed: 541,\r\n pax: '9 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_350,\r\n },\r\n 'Challenger 605': {\r\n price: 25000000,\r\n crew: 388700,\r\n fixed: 316570,\r\n variable: 3490,\r\n cabinlength: 28.3,\r\n cabinwidth: 8.2,\r\n cabinheight: 6.2,\r\n baggage: 114,\r\n range: 3995,\r\n speed: 541,\r\n pax: '12 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_605,\r\n },\r\n 'Falcon 2000': {\r\n price: 12500000,\r\n crew: 388700,\r\n fixed: 310782,\r\n variable: 3765,\r\n cabinlength: 26.3,\r\n cabinwidth: 7.7,\r\n cabinheight: 6.2,\r\n baggage: 134,\r\n range: 3052,\r\n speed: 551.223,\r\n pax: '8 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_605,\r\n },\r\n 'Falcon 2000EX': {\r\n price: 15000000,\r\n crew: 388700,\r\n fixed: 315222,\r\n variable: 3312,\r\n cabinlength: 26.3,\r\n cabinwidth: 7.7,\r\n cabinheight: 6.2,\r\n baggage: 131,\r\n range: 3425,\r\n speed: 562.731,\r\n pax: '8 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_605,\r\n },\r\n 'Challenger 850': {\r\n price: 20000000,\r\n crew: 388700,\r\n fixed: 398560,\r\n variable: 3991,\r\n cabinlength: 48.42,\r\n cabinwidth: 8.17,\r\n cabinheight: 6.08,\r\n baggage: 202,\r\n range: 2807,\r\n speed: 528,\r\n pax: '14 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_850,\r\n },\r\n 'Falcon 900EX': {\r\n price: 35000000,\r\n crew: 388700,\r\n fixed: 364982,\r\n variable: 3624,\r\n cabinlength: 32.9,\r\n cabinwidth: 7.7,\r\n cabinheight: 6.2,\r\n baggage: 127,\r\n range: 4057,\r\n speed: 545.469,\r\n pax: '12 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.GLOBAL_5000,\r\n },\r\n 'Falcon 900EX EASy': {\r\n price: 35000000,\r\n crew: 388700,\r\n fixed: 377882,\r\n variable: 3483,\r\n cabinlength: 32.9,\r\n cabinwidth: 7.7,\r\n cabinheight: 6.2,\r\n baggage: 127,\r\n range: 4469,\r\n speed: 545.469,\r\n pax: '12 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.GLOBAL_5000,\r\n },\r\n 'Global 5000': {\r\n price: 52000000,\r\n crew: 445900,\r\n fixed: 451680,\r\n variable: 5479,\r\n cabinlength: 45.7,\r\n cabinwidth: 8.17,\r\n cabinheight: 6.29,\r\n baggage: 195,\r\n range: 5200,\r\n speed: 590,\r\n pax: '13 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.GLOBAL_5000,\r\n },\r\n 'Global 6000': {\r\n price: 55000000,\r\n crew: 445900,\r\n fixed: 451680,\r\n variable: 5479,\r\n cabinlength: 48.4,\r\n cabinwidth: 8.17,\r\n cabinheight: 6.29,\r\n baggage: 195,\r\n range: 5998,\r\n speed: 590,\r\n pax: '15 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.GLOBAL_6000,\r\n },\r\n 'Global 7500': {\r\n price: 55000000,\r\n crew: 445900,\r\n fixed: 451680,\r\n variable: 5479,\r\n cabinlength: 48.4,\r\n cabinwidth: 8.17,\r\n cabinheight: 6.29,\r\n baggage: 195,\r\n range: 5998,\r\n speed: 590,\r\n pax: '15 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.GLOBAL_7500,\r\n }, \r\n 'Gulfstream 550': {\r\n price: 52500000,\r\n crew: 445900,\r\n fixed: 503705,\r\n variable: 4553,\r\n cabinlength: 42.6,\r\n cabinwidth: 7.3,\r\n cabinheight: 6.2,\r\n baggage: 226,\r\n range: 6708,\r\n speed: 561.58,\r\n pax: '16 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.GLOBAL_6000,\r\n },\r\n 'Falcon 7X': {\r\n price: 50000000,\r\n crew: 445900,\r\n fixed: 400195,\r\n variable: 3840,\r\n cabinlength: 48.4,\r\n cabinwidth: 8.17,\r\n cabinheight: 6.29,\r\n baggage: 195,\r\n range: 5850,\r\n speed: 561.58,\r\n pax: '15 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.GLOBAL_6000,\r\n },\r\n 'Legacy 600': {\r\n price: 20000000,\r\n crew: 401700,\r\n fixed: 374897,\r\n variable: 3493,\r\n cabinlength: 42.4,\r\n cabinwidth: 6.9,\r\n cabinheight: 6.0,\r\n baggage: 240,\r\n range: 3403,\r\n speed: 523.605,\r\n pax: '13 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_605,\r\n },\r\n 'Legacy 650': {\r\n price: 25000000,\r\n crew: 401700,\r\n fixed: 369597,\r\n variable: 3477,\r\n cabinlength: 42.4,\r\n cabinwidth: 6.9,\r\n cabinheight: 6.0,\r\n baggage: 286,\r\n range: 3900,\r\n speed: 523.605,\r\n pax: '13 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.CHALLENGER_850,\r\n },\r\n 'Gulfstream 650': {\r\n price: 72000000,\r\n crew: 482300,\r\n fixed: 506384,\r\n variable: 5364,\r\n comparablerate: 17230,\r\n cabinlength: 46.9,\r\n cabinwidth: 8.5,\r\n cabinheight: 6.35,\r\n baggage: 195,\r\n range: 7000,\r\n speed: 561.58,\r\n pax: '14 passengers',\r\n illustration: '',\r\n vjAirCraft: VJ_AIRCRAFTS.GLOBAL_6000,\r\n },\r\n};\r\n\r\nexport default OTHER_AIRCRAFTS;\r\n","import React, { Component } from 'react';\r\nimport Select from 'react-select';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport IntlTelphoneInput from \"../shared/PhoneNumberSelector\";\r\nimport cn from \"classnames\";\r\nimport { getFirstChars } from \"../../utils/stringUtils\";\r\nimport { Salutation } from '../../constants/SignupConstants';\r\nimport OTHER_AIRCRAFTS from '../../utils/OtherAircrafts';\r\nimport { TERMS_URL_PAGE, POLICY_URL_PAGE } from \"../../configs/constants\";\r\nimport validateCostCalculatorForm from \"../../utils/Validators/CostCalculatorFormValidator\";\r\nimport GeoLocation from \"../../utils/geolocation\";\r\nimport StateAbbreviation, { stateList } from '../../utils/stateUtils'\r\n\r\nconst aircrafts = [\r\n 'Challenger 350',\r\n 'Challenger 605',\r\n 'Challenger 850',\r\n 'Citation Excel',\r\n 'Citation Sovereign',\r\n 'Citation X',\r\n 'Falcon 2000',\r\n 'Falcon 2000EX',\r\n 'Falcon 2000LX',\r\n 'Falcon 7X',\r\n 'Falcon 900EX EASy',\r\n 'Falcon 900EX',\r\n 'Global 5000',\r\n 'Global 6000',\r\n 'Gulfstream 450',\r\n 'Gulfstream 550',\r\n 'Gulfstream 550',\r\n 'Gulfstream 650',\r\n 'Hawker 4000',\r\n 'Hawker 750',\r\n 'Hawker 900XP',\r\n 'Learjet 60XR',\r\n 'Legacy 600',\r\n 'Legacy 650',\r\n];\r\n\r\nexport default class CostCalculatorForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n aircraft: '',\r\n selectedAircraft: null,\r\n hours: '',\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n defaultCountry: null,\r\n country: \"\",\r\n state: \"\",\r\n phoneNumber: \"\",\r\n isPhoneNumberValid: false,\r\n possession: null,\r\n errors: {},\r\n salutation: Salutation[0],\r\n typeOfFlying: \"\",\r\n currentFlyingSolution: \"\",\r\n marketingCheckbox: false,\r\n privacyCheckbox: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n GeoLocation().then(pos => {\r\n if (!pos || !pos.region)\r\n return;\r\n this.setState({ stateCode: StateAbbreviation(pos.region) });\r\n }).catch(err => { });\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { onClearReducer } = this.props;\r\n if (this.props.isSuccess !== nextProps.isSuccess) {\r\n onClearReducer();\r\n // this.refreshFormFields();\r\n }\r\n }\r\n\r\n geoLookupCountryCode = (code) => {\r\n this.geoLookupCountryCode = code;\r\n }\r\n\r\n handleAircraftChange = aircraft => this.setState({ aircraft });\r\n\r\n handlePossessionChange = possession => this.setState({ possession });\r\n\r\n handleHoursChange = e => {\r\n let hours = e.target.value;\r\n hours = hours.replace(/[.]/g, '');\r\n if (!isNaN(hours) && hours.length <= 4) {\r\n this.setState({ hours });\r\n }\r\n };\r\n\r\n handleFirstNameChange = firstName => this.setState({ firstName });\r\n\r\n handleLastNameChange = lastName => this.setState({ lastName });\r\n\r\n handleEmailChange = email => this.setState({ email });\r\n\r\n handlePhoneNumberChange = (status = true, phoneNumber, countryData) => {\r\n const phoneStrLength = phoneNumber.length;\r\n this.setState({\r\n country: phoneStrLength > 0 ? countryData.iso2.toUpperCase() : \"\",\r\n phoneNumber: getFirstChars(phoneNumber, 15, status),\r\n isPhoneNumberValid: status,\r\n requestACallBack: phoneStrLength > 0,\r\n });\r\n };\r\n\r\n handleStateChange = e => {\r\n this.setState({ stateCode: e.target.value })\r\n }\r\n\r\n handleTypeOfFlyingChange = e => {\r\n this.setState({ typeOfFlying: e.target.value })\r\n }\r\n\r\n handleCurrentFlyingSolutionChange = e => {\r\n this.setState({ currentFlyingSolution: e.target.value })\r\n }\r\n\r\n removePhoneError = () => {\r\n if (this.state.errors.isError) {\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n if (remErrors.errors && remErrors.errors.phoneNumber) {\r\n remErrors.errors.phoneNumber = null;\r\n }\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError\r\n };\r\n this.setState({\r\n errors: newState\r\n });\r\n }\r\n };\r\n\r\n handleSalutationChange = salutation => this.setState({ salutation });\r\n\r\n handleMarketingCheck = marketingCheckbox => this.setState({ marketingCheckbox });\r\n\r\n handlePrivacyCheck = privacyCheckbox => this.setState({ privacyCheckbox });\r\n\r\n handleSubmit = () => {\r\n const { aircraft = '', hours, email,\r\n country,\r\n stateCode,\r\n phoneNumber,\r\n isPhoneNumberValid,\r\n firstName,\r\n lastName,\r\n salutation,\r\n privacyCheckbox,\r\n typeOfFlying,\r\n currentFlyingSolution\r\n } = this.state;\r\n const { updateData } = this.props;\r\n const res = validateCostCalculatorForm({\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n country,\r\n stateCode,\r\n phoneNumber,\r\n isPhoneNumberValid,\r\n privacyCheckbox,\r\n typeOfFlying,\r\n currentFlyingSolution\r\n });\r\n if (res.isError) {\r\n this.setState({\r\n errors: res,\r\n });\r\n } else {\r\n try {\r\n window.dataLayer.push({ 'event': 'enquirySubmitted', 'enquiryType': 'Cost Calculator' });\r\n } catch (e) {\r\n console.warn(\"dataLayer push failed for 'Cost Calculator': \" + e)\r\n }\r\n const selectedAircraft = OTHER_AIRCRAFTS[aircraft.value] || null;\r\n if (selectedAircraft && hours) {\r\n const costCalculatorPayload = this.createPayload();\r\n\r\n updateData({\r\n aircraft: {\r\n ...selectedAircraft,\r\n title: aircraft.value,\r\n },\r\n hours,\r\n payload: costCalculatorPayload,\r\n });\r\n\r\n var p = document.createElement('img');\r\n p.src = \"https://secure.adnxs.com/px?id=1090189&seg=17321571&redir=https%3A%2F%2Fpixel.mediaiqdigital.com%2Fpixel%3Fu1%3DCostCalculator%26u3%3D%26u4%3D%26pixel_id%3D1090189%26uid%3D%24%7BUID%7D&t=2\";\r\n p.width = 1;\r\n p.height = 1;\r\n document.body.appendChild(p);\r\n }\r\n }\r\n };\r\n\r\n createPayload = () => {\r\n const VALUE_ENV_MAP = {\r\n preproduction: {\r\n oid: '00D2z0000000TxX',\r\n url: 'https://test.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8',\r\n },\r\n production: {\r\n oid: '00D200000005jIW',\r\n url: 'https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8',\r\n }\r\n }\r\n\r\n const FIELDS_MAP = {\r\n //salutation: 'salutation',\r\n webSalutationText: (env) => (env === 'preproduction') ? '00N4G000006eYu2' : '00N4G000006eYu2',\r\n webSalutationOther: (env) => (env === 'preproduction') ? '00N4G000006eYty' : '00N4G000006eYty',\r\n greetingSalutation: '00N4G000006eQ6E',\r\n //title: 'title',\r\n firstName: 'first_name',\r\n lastName: 'last_name',\r\n //email: 'email',\r\n //company: 'company',\r\n phoneNumber: 'phone',\r\n message: 'description',\r\n marketingOptIn: (env) => (env === 'preproduction') ? '00N4G000006eYtx' : '00N4G000006eYtx',\r\n country: 'country_code',\r\n state: 'state_code',\r\n typeOfFlying: (env) => (env === 'preproduction') ? '00N2z00000CfdY3' : '00N4G000006rATd',\r\n currentFlyingSolution: (env) => (env === 'preproduction') ? '00N2z00000COAMx' : '00N4G000006rA1m',\r\n conversionURL: (env) => (env === 'preproduction') ? '00N4G000006eYtq' : '00N4G000006eYtq',\r\n googleSource: (env) => (env === 'preproduction') ? '00N4G000006eYu6' : '00N4G000006eYu6',\r\n googleMedium: (env) => (env === 'preproduction') ? '00N4G000006eYu5' : '00N4G000006eYu5',\r\n googleCampaign: (env) => (env === 'preproduction') ? '00N4G000006eYu3' : '00N4G000006eYu3',\r\n googleTerm: (env) => (env === 'preproduction') ? '00N4G000006eYu7' : '00N4G000006eYu7',\r\n customJSON: (env) => (env === 'preproduction') ? '00N4G000006eYtw' : '00N4G000006eYtw',\r\n flightsJSON: (env) => (env === 'preproduction') ? '00N4G000006eYts' : '00N4G000006eYts',\r\n vistajetAircraft: (env) => (env === 'preproduction') ? '00N4G000006eYu1' : '00N4G000006eYu1',\r\n internalNote: (env) => (env === 'preproduction') ? '00N4G000006eYtt' : '00N4G000006eYtt',\r\n callback: (env) => (env === 'preproduction') ? '00N4G000006eYtv' : '00N4G000006eYtv',\r\n origin: (env) => (env === 'preproduction') ? '00N4G000006eYtu' : '00N4G000006eYtu',\r\n type: (env) => (env === 'preproduction') ? '00N4G000006eYu0' : '00N4G000006eYu0',\r\n }\r\n\r\n const getValuePerEnv = (fieldName, env) => {\r\n const values = VALUE_ENV_MAP[env]\r\n if (!values || !values[fieldName]) {\r\n console.error(`Couldn't find ${fieldName} value for SalesForce`)\r\n return null\r\n }\r\n return values[fieldName]\r\n }\r\n\r\n const isFunction = (functionToCheck) => (typeof functionToCheck === 'function')\r\n\r\n const renameFields = (data, env) => {\r\n for (const field in { ...data }) {\r\n const value = data[field]\r\n const fieldName = FIELDS_MAP[field]\r\n if (isFunction(fieldName)) {\r\n // Use name of field depends on env\r\n data[fieldName(env)] = value\r\n delete data[field]\r\n } else if (fieldName) {\r\n data[fieldName] = value\r\n delete data[field]\r\n }\r\n }\r\n return data\r\n }\r\n\r\n const {\r\n salutation,\r\n firstName,\r\n lastName,\r\n email,\r\n phoneNumber,\r\n country,\r\n stateCode,\r\n marketingCheckbox,\r\n aircraft = '',\r\n privacyCheckbox,\r\n hours,\r\n typeOfFlying,\r\n currentFlyingSolution\r\n } = this.state;\r\n\r\n const url = window.location;\r\n const utmData = new URLSearchParams(window.location.search);\r\n const countryCode = country === \"\" ? this.geoLookupCountryCode : country;\r\n const selectedAircraft = OTHER_AIRCRAFTS[aircraft.value] || null;\r\n\r\n let env = (window.globalEnv && window.globalEnv.toLowerCase()) || 'preproduction'\r\n if (!VALUE_ENV_MAP[env]) env = 'preproduction'\r\n\r\n let data = {\r\n oid: getValuePerEnv('oid', env),\r\n salutation: salutation.label,\r\n firstName: firstName,\r\n lastName: lastName,\r\n email: email,\r\n company: \"\",\r\n phoneNumber: phoneNumber,\r\n message: \"\",\r\n typeOfFlying: typeOfFlying,\r\n currentFlyingSolution: currentFlyingSolution,\r\n marketingOptIn: marketingCheckbox,\r\n country: countryCode,\r\n state: countryCode === \"US\" ? stateCode : \"\",\r\n conversionURL: `${url.origin}${url.pathname}`,\r\n googleSource: utmData.get(\"utm_source\") || \"\",\r\n googleMedium: utmData.get(\"utm_medium\") || \"\",\r\n googleCampaign: utmData.get(\"utm_campaign\") || \"\",\r\n googleTerm: utmData.get(\"utm_term\") || \"\",\r\n customJSON: {\r\n action: \"cost calculator\",\r\n privacyCheck: privacyCheckbox,\r\n \"flight hours\": Number(hours),\r\n aircraft: aircraft.value,\r\n \"vj aircraft\": selectedAircraft.vjAirCraft.title,\r\n //\"buying stage\": possession.value,\r\n },\r\n callback: '',\r\n origin: 'Web',\r\n type: \"General Enquiry\",\r\n\r\n retURL: 'https://www.vistajet.com/thankyou.txt',\r\n }\r\n\r\n return {\r\n url: getValuePerEnv('url', env),\r\n data: renameFields(data, env)\r\n };\r\n };\r\n\r\n removeErrors = (e) => {\r\n e.preventDefault();\r\n if (this.state.errors && this.state.errors.isError) {\r\n const { errors } = this.state;\r\n const remErrors = errors;\r\n remErrors.errors[e.target.id] = null;\r\n const newState = {\r\n errors: remErrors.errors,\r\n isError: remErrors.isError,\r\n };\r\n this.setState({\r\n errors: newState,\r\n });\r\n }\r\n };\r\n\r\n\r\n isValidData = () => {\r\n const {\r\n aircraft,\r\n hours,\r\n salutation: {\r\n value,\r\n } = {},\r\n firstName,\r\n lastName,\r\n email,\r\n country,\r\n stateCode,\r\n phoneNumber,\r\n privacyCheckbox,\r\n } = this.state;\r\n return (aircraft.value && hours && `${value}` && firstName && lastName && email && phoneNumber && (country !== 'US' || stateCode) && privacyCheckbox);\r\n };\r\n\r\n generateSalutationOptions = () => {\r\n return Salutation.map((salutation) => {\r\n return {\r\n value: salutation.value,\r\n label: salutation.label,\r\n };\r\n });\r\n };\r\n\r\n generateAirCraftsOptions = () => {\r\n return aircrafts.map((aircraft) => {\r\n return {\r\n value: aircraft,\r\n label: aircraft,\r\n };\r\n });\r\n };\r\n\r\n render() {\r\n const salutationOptions = this.generateSalutationOptions();\r\n const airCraftsOption = this.generateAirCraftsOptions();\r\n const {\r\n hours,\r\n firstName,\r\n lastName,\r\n email,\r\n defaultCountry,\r\n phoneNumber,\r\n country,\r\n stateCode,\r\n aircraft,\r\n salutation,\r\n typeOfFlying,\r\n currentFlyingSolution,\r\n marketingCheckbox,\r\n privacyCheckbox,\r\n errors = {},\r\n } = this.state;\r\n const { isLoading, } = this.props;\r\n const hasStateField = country === 'US'\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Do you own an aircraft?
    \r\n

    Discover the
    VistaJet value

    \r\n
    \r\n

    Use the tool to analyze the value of membership compared to your existing private aviation solution.\r\n

    \r\n Our global infrastructure makes membership an efficient and cost-effective option, involving no depreciation and no asset risk.\r\n It offers guaranteed availability with as little as 24 hours’ notice, globally, on a consistent branded fleet, all at a fixed hourly rate.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n isLoading &&\r\n (\r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    */}\r\n\r\n
    \r\n
    \r\n

    Aircraft

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

    I fly approximately\r\n \r\n hours per year.\r\n

    \r\n
    \r\n
    \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.handleFirstNameChange(target.value)}\r\n onFocus={this.removeErrors}\r\n value={firstName}\r\n autoComplete=\"given-name\"\r\n required\r\n />\r\n \r\n {\r\n errors.errors && errors.errors.firstName && (\r\n

    {errors.errors.firstName}

    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n this.handleLastNameChange(target.value)}\r\n onFocus={this.removeErrors}\r\n value={lastName}\r\n autoComplete=\"family-name\"\r\n required\r\n />\r\n \r\n {\r\n errors.errors && errors.errors.lastName && (\r\n

    {errors.errors.lastName}

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n this.handleEmailChange(target.value)}\r\n onFocus={this.removeErrors}\r\n value={email}\r\n autoComplete=\"email\"\r\n required\r\n />\r\n \r\n {\r\n errors.errors && errors.errors.email && (\r\n

    {errors.errors.email}

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {errors.errors && errors.errors.phoneNumber && (\r\n

    {errors.errors.phoneNumber}

    \r\n )}\r\n
    \r\n {hasStateField && (\r\n
    \r\n \r\n \r\n {errors.errors && errors.errors.stateCode && (\r\n

    {errors.errors.stateCode}

    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.typeOfFlying && (\r\n

    {errors.errors.typeOfFlying}

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n {\r\n errors.errors && errors.errors.currentFlyingSolution && (\r\n

    {errors.errors.currentFlyingSolution}

    \r\n )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {\r\n validateSalutation,\r\n validateFirstName,\r\n validateLastName,\r\n validateEmailStartingFromUpperCase,\r\n validatePhone,\r\n validateCheckBox,\r\n validateStateCode,\r\n validateTypeOfFlying,\r\n validateCurrentFlyingSolution,\r\n} from './Validators';\r\n\r\nexport default function validateCostCalculatorForm(obj) {\r\n const salutationResponse = validateSalutation(obj.salutation.value);\r\n const firstNameResponse = validateFirstName(obj.firstName);\r\n const lastNameResponse = validateLastName(obj.lastName);\r\n const emailResponse = validateEmailStartingFromUpperCase(obj.email);\r\n const stateCodeResponse = validateStateCode(obj.stateCode, obj.country);\r\n const typeOfFlyingResponse = validateTypeOfFlying(obj.typeOfFlying);\r\n const currentFlyingSolutionResponse = validateCurrentFlyingSolution(obj.currentFlyingSolution);\r\n let phoneNumberResponse;\r\n if (obj.phoneNumber != null) {\r\n phoneNumberResponse = validatePhone(\r\n obj.phoneNumber,\r\n obj.isPhoneNumberValid\r\n );\r\n }\r\n const privacyCheckboxResponse = validateCheckBox(obj.privacyCheckbox);\r\n const res = {\r\n errors: {},\r\n };\r\n if (salutationResponse.isError) {\r\n res.isError = salutationResponse.isError;\r\n res.errors.salutation = salutationResponse.message;\r\n }\r\n if (firstNameResponse.isError) {\r\n res.isError = firstNameResponse.isError;\r\n res.errors.firstName = firstNameResponse.message;\r\n }\r\n if (lastNameResponse.isError) {\r\n res.isError = lastNameResponse.isError;\r\n res.errors.lastName = lastNameResponse.message;\r\n }\r\n if (emailResponse.isError) {\r\n res.isError = emailResponse.isError;\r\n res.errors.email = emailResponse.message;\r\n }\r\n if (phoneNumberResponse && phoneNumberResponse.isError) {\r\n res.isError = phoneNumberResponse.isError;\r\n res.errors.phoneNumber = phoneNumberResponse.message;\r\n }\r\n if (privacyCheckboxResponse.isError) {\r\n res.isError = privacyCheckboxResponse.isError;\r\n res.errors.privacyCheckbox = privacyCheckboxResponse.message;\r\n }\r\n if (stateCodeResponse.isError) {\r\n res.isError = stateCodeResponse.isError;\r\n res.errors.stateCode = stateCodeResponse.message;\r\n }\r\n if (typeOfFlyingResponse.isError) {\r\n res.isError = typeOfFlyingResponse.isError;\r\n res.errors.typeOfFlying = typeOfFlyingResponse.message;\r\n }\r\n if (currentFlyingSolutionResponse.isError) {\r\n res.isError = currentFlyingSolutionResponse.isError;\r\n res.errors.currentFlyingSolution = currentFlyingSolutionResponse.message;\r\n }\r\n return res;\r\n}\r\n","import React, { Component } from 'react';\r\nimport SpinnerLoader from '../shared/spinnerLoader';\r\nimport * as numeral from 'numeral';\r\nimport PostTransport from '../../utils/postTransport'\r\n\r\nexport default class CostComparisonCard extends Component {\r\n\r\n handleDiscoverMoreClick = url => window.open(url);\r\n\r\n feetToMetre = feet => (feet / 3.2808).toFixed(2);\r\n\r\n feetCubeToMetreCube = feet => (feet / 35.315).toFixed(2);\r\n\r\n nmToKm = nm => (nm / 0.53996).toFixed(0);\r\n\r\n mphToKmh = mph => (mph * 1.609344).toFixed(0);\r\n\r\n \r\n submitHiddenForm = () => {\r\n const { payload } = this.props;\r\n\r\n PostTransport(payload.url, payload.data)\r\n }\r\n\r\n getResult = ({\r\n price, fixed, variable, crew,\r\n }, vjAircraft) => {\r\n const { hours } = this.props;\r\n const finalCrew = hours > 200 ? crew * 2 : crew;\r\n const depreciation = price * 0.1;\r\n const saving = ((depreciation + fixed + ((hours * 1.2) * variable) + finalCrew) / hours) - vjAircraft.rate;\r\n const savingFormatted = numeral(Math.abs(saving)).format('0,0');\r\n const savingString = (saving < 0)\r\n ? `$${savingFormatted} additional cost per flight hour`\r\n : `$${savingFormatted} saving per flight hour`;\r\n\r\n let env = (window.globalEnv && window.globalEnv.toLowerCase());\r\n if (env === 'production')\r\n {\r\n this.props.payload.data['00N4G000006eYtw'].saving = savingString;\r\n this.props.payload.data['00N4G000006eYtw'].isSaving = (saving > 0);\r\n this.props.payload.data['00N4G000006eYtw'].amount = Math.round(Math.abs(saving));\r\n this.props.payload.data['00N4G000006eYtw'] = JSON.stringify(this.props.payload.data['00N4G000006eYtw'])\r\n } else {\r\n this.props.payload.data['00N4G000006eYtw'].saving = savingString;\r\n this.props.payload.data['00N4G000006eYtw'].isSaving = (saving > 0);\r\n this.props.payload.data['00N4G000006eYtw'].amount = Math.round(Math.abs(saving));\r\n this.props.payload.data['00N4G000006eYtw'] = JSON.stringify(this.props.payload.data['00N4G000006eYtw'])\r\n }\r\n this.submitHiddenForm();\r\n\r\n const tempString = (saving < 0)\r\n ? `Flying in a VistaJet ${vjAircraft.title} could cost an additional $${savingFormatted} per flight hour*`\r\n : `Flying in a VistaJet ${vjAircraft.title} could save you $${savingFormatted} per flight hour*`;\r\n return { __html: tempString };\r\n };\r\n\r\n render() {\r\n const { aircraft, isLoading } = this.props;\r\n if (!aircraft) return null;\r\n const { vjAirCraft } = aircraft;\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n isLoading &&\r\n (\r\n
    \r\n )\r\n }\r\n {aircraft.title}\r\n

    \r\n \r\n

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

    \r\n {`Your current solution`}\r\n

    \r\n

    \r\n {aircraft.title}\r\n

    \r\n
      \r\n
    • \r\n \r\n Passenger capacity:\r\n {' '}\r\n \r\n {aircraft.pax}\r\n
    • \r\n
    • \r\n \r\n {'Range: '}\r\n \r\n {aircraft.range}\r\n {' '}\r\n nm | {' '}\r\n {this.nmToKm(aircraft.range)}\r\n km\r\n
    • \r\n
    • \r\n \r\n Speed:\r\n {' '}\r\n \r\n {aircraft.speed}\r\n mph | {' '}\r\n {this.mphToKmh(aircraft.speed)}\r\n km/h\r\n
    • \r\n
    • \r\n \r\n Cabin Length:\r\n {' '}\r\n \r\n {aircraft.cabinlength}\r\n ft | {' '}\r\n {this.feetToMetre(aircraft.cabinlength)}\r\n m\r\n
    • \r\n
    • \r\n \r\n Cabin Height:\r\n {' '}\r\n \r\n {aircraft.cabinheight}\r\n ft | {' '}\r\n {this.feetToMetre(aircraft.cabinheight)}\r\n m\r\n
    • \r\n
    • \r\n \r\n Cabin Width:\r\n {' '}\r\n \r\n {aircraft.cabinwidth}\r\n ft | {' '}\r\n {this.feetToMetre(aircraft.cabinwidth)}\r\n m\r\n
    • \r\n
    • \r\n \r\n Baggage Capacity:\r\n {' '}\r\n \r\n {aircraft.baggage}\r\n ft\r\n \r\n 3\r\n \r\n {' '}\r\n {' '}\r\n | {' '}\r\n {this.feetCubeToMetreCube(aircraft.baggage)}\r\n m\r\n \r\n 3\r\n \r\n
    • \r\n
    \r\n\r\n
    \r\n
    \r\n

    \r\n {`The VistaJet solution`}\r\n

    \r\n

    \r\n {vjAirCraft.title}\r\n

    \r\n
      \r\n
    • \r\n \r\n Passenger capacity:\r\n {' '}\r\n \r\n {vjAirCraft.pax}\r\n
    • \r\n
    • \r\n \r\n Range:\r\n {' '}\r\n \r\n {vjAirCraft.range}\r\n nm | {' '}\r\n {this.nmToKm(vjAirCraft.range)}\r\n km\r\n
    • \r\n
    • \r\n \r\n Speed:\r\n {' '}\r\n \r\n {vjAirCraft.speed}\r\n mph | {' '}\r\n {this.mphToKmh(vjAirCraft.speed)}\r\n km/h\r\n
    • \r\n
    • \r\n \r\n Cabin Length:\r\n {' '}\r\n \r\n {vjAirCraft.cabinlength}\r\n ft | {' '}\r\n {this.feetToMetre(vjAirCraft.cabinlength)}\r\n m\r\n
    • \r\n
    • \r\n \r\n Cabin Height:\r\n {' '}\r\n \r\n {vjAirCraft.cabinheight}\r\n ft | {' '}\r\n {this.feetToMetre(vjAirCraft.cabinheight)}\r\n m\r\n
    • \r\n
    • \r\n \r\n Cabin Width:\r\n {' '}\r\n \r\n {vjAirCraft.cabinwidth}\r\n ft | {' '}\r\n {this.feetToMetre(vjAirCraft.cabinwidth)}\r\n m\r\n
    • \r\n
    • \r\n \r\n Baggage Capacity:\r\n {' '}\r\n \r\n {vjAirCraft.baggage}\r\n ft\r\n \r\n 3\r\n \r\n {' '}\r\n {' '}\r\n | {' '}\r\n {this.feetCubeToMetreCube(vjAirCraft.baggage)}\r\n m\r\n \r\n 3\r\n \r\n
    • \r\n
    \r\n this.handleDiscoverMoreClick(vjAirCraft.aircrafturl)}\r\n className=\"vistajet_button_default\"\r\n >\r\n Discover More\r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n * Estimated additional cost is for comparison purposes\r\n only and is not to be used as the basis\r\n for financial planning. Additional cost is based on 10% annual depreciation of list price,\r\n estimated variable costs and estimated fixed costs.\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport withStore from '../withStore';\r\nimport * as actions from '../../store/actions';\r\nimport CostCalculatorForm from './CostCalculatorForm';\r\nimport CostComparisonCard from './CostComparisonCard';\r\n\r\nclass CostCalculator extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedAircraft: null,\r\n hours: 0,\r\n payload: null,\r\n };\r\n }\r\n\r\n updateData = ({ aircraft, hours, payload }) => this.setState({ selectedAircraft: aircraft, hours, payload },\r\n () => {document.getElementById('comparision-card').scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' })}\r\n );\r\n\r\n render() {\r\n const { selectedAircraft = null, hours, payload } = this.state;\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { isLoading, isSuccess } = state.contactus;\r\n return {\r\n isLoading,\r\n isSuccess,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n onClearReducer: () => dispatch(actions.clearReducer()),\r\n onContactUsForm: payload => dispatch(actions.postContactUs(payload)),\r\n };\r\n}\r\n\r\nconst CostCalculatorContainer = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(CostCalculator);\r\n\r\nexport default withStore(CostCalculatorContainer);\r\n","import React, { Suspense } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { Provider } from 'react-redux';\r\nimport store from 'store/store';\r\n\r\n// import AppRoot from 'AppRoot';\r\n\r\nimport IsAuthenticatedContainer from \"containers/IsAuthenticatedContainer\";\r\nimport HeaderContainer from \"containers/HeaderContainer\";\r\nimport CoreContainer from \"containers/CoreContainer\";\r\n\r\nimport OffersContainer from \"containers/OffersContainer\";\r\nimport PAFContainer from \"containers/PAFContainer\";\r\nimport UpcomingItinerariesListingContainer from \"./containers/Itinerary/UpcomingItinerariesListingContainer\";\r\nimport PastItinerariesListingContainer from \"./containers/Itinerary/PastItinerariesListingContainer\";\r\nimport CancelledItinerariesListingContainer from \"./containers/Itinerary/CancelledItinerariesListingContainer\";\r\nimport ItineraryDetailsContainer from \"./containers/Itinerary/ItineraryDetailsContainer\";\r\nimport EntertainmentContainer from \"./containers/Itinerary/EntertainmentContainer\";\r\n\r\nimport SimpleRegistrationContainer from \"./containers/SimpleRegistrationContainer\";\r\nimport RegistrationConfirmContainer from \"./containers/RegistrationConfirmContainer\";\r\nimport ActiveQuotesContainer from \"./containers/Quotes/ActiveQuotesContainer\";\r\nimport { removeOffersForFSP } from \"./utils/userUtils\";\r\nimport PASContainer from \"./containers/PASContainer\";\r\nimport UserProfileContainer from './containers/UserProfileContainer';\r\nimport ExpiredQuotesContainer from \"./containers/Quotes/ExpiredQuotesContainer\";\r\nimport TopUpAccountContainer from \"./containers/TopUpAccountContainer\";\r\nimport DirectAccountBalanceContainer from \"./containers/DirectAccountBalanceContainer\";\r\nimport TopUpHistoryContainer from \"./containers/TopUpHistoryContainer\";\r\n\r\nimport ProgramBuilder from './components/ProgramBuilder/ProgramBuilder';\r\nimport CostCalculator from './components/CostCalculator/CostCalculator';\r\n\r\n//import FlightRequest from \"./features/flightRequest/flightRequest\";\r\nconst FlightRequest = React.lazy(() => import(/* webpackChunkName: \"flightRequest\" */\"./features/flightRequest/flightRequest\"));\r\n\r\nlet spaContainerObj = {\r\n 'root': {\r\n reactComp: ((root) =>
    ),\r\n isAuthenticated: false,\r\n },\r\n 'spa-topup-account': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-direct-account-balance': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-topup-history': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-paf-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-user-profile-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-offer-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: false,\r\n },\r\n 'spa-entertainment-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-upcoming-itineraries-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-past-itineraries-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-cancelled-itineraries-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-itinerary-details-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-simple-registration': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: false,\r\n },\r\n 'spa-simple-registration-confirm': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: false,\r\n },\r\n 'spa-program-account-statement': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-header-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: false,\r\n },\r\n 'spa-active-quotes-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-expired-quotes-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: true,\r\n },\r\n 'spa-program-builder': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: false,\r\n },\r\n 'spa-cost-calculator': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: false,\r\n },\r\n 'spa-core-container': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: false,\r\n }, \r\n}\r\n\r\nlet blocks = {\r\n 'vjr-flightRequest': {\r\n reactComp: ((root) => ),\r\n isAuthenticated: false,\r\n }\r\n}\r\n\r\nObject.keys(spaContainerObj).forEach(key => {\r\n const container = document.getElementById(key);\r\n if (container) {\r\n /* \r\n console.log(key);\r\n console.log(spaContainerObj[key].reactComp(container));\r\n console.log(container); \r\n */\r\n if (spaContainerObj[key].isAuthenticated === true) {\r\n ReactDOM.render({spaContainerObj[key].reactComp(container)}, container);\r\n } else {\r\n ReactDOM.render(spaContainerObj[key].reactComp(container), container);\r\n }\r\n }\r\n})\r\n\r\nObject.keys(blocks).forEach(key => {\r\n let containers = document.getElementsByClassName(key);\r\n if (containers !== null && containers !== undefined) {\r\n for (let container of containers) {\r\n if (blocks[key].isAuthenticated === true) {\r\n ReactDOM.render(Loading...}>{blocks[key].reactComp(container)}, container);\r\n } else {\r\n ReactDOM.render(Loading...}>{blocks[key].reactComp(container)}, container);\r\n }\r\n }\r\n }\r\n});\r\n\r\nremoveOffersForFSP();\r\n","import { types as CardType } from 'credit-card-type';\r\n\r\nexport const CREDIT_CARD_TYPE = {\r\n PERSONAL: 'Personal',\r\n BUSINESS: 'Business',\r\n};\r\n\r\nexport const NEW_CARD_TYPES = [\r\n {\r\n label: 'Personal', value: 'Personal',\r\n },\r\n {\r\n label: 'Business', value: 'Business',\r\n },\r\n];\r\n\r\nexport const CREDIT_CARD_TYPES = [\r\n CREDIT_CARD_TYPE.PERSONAL,\r\n CREDIT_CARD_TYPE.BUSINESS,\r\n];\r\n\r\nexport const CREDIT_CARD_BRANDS = [\r\n CardType.AMERICAN_EXPRESS,\r\n// CardType.DINERS_CLUB,\r\n// CardType.DISCOVER,\r\n CardType.MASTERCARD,\r\n CardType.VISA,\r\n];\r\n\r\nexport const CREDIT_CARD_BRAND_IDS = {};\r\nCREDIT_CARD_BRAND_IDS[CardType.AMERICAN_EXPRESS] = 1;\r\n// CREDIT_CARD_BRAND_IDS[CardType.DINERS_CLUB] = 2;\r\n// CREDIT_CARD_BRAND_IDS[CardType.DISCOVER] = 3;\r\nCREDIT_CARD_BRAND_IDS[CardType.MASTERCARD] = 4;\r\nCREDIT_CARD_BRAND_IDS[CardType.VISA] = 5;\r\n\r\nexport const CREDIT_CARD_BRAND_NAMES = {\r\n 1: 'AMERICAN EXPRESS',\r\n 2: 'DINERS CLUB',\r\n 3: 'DISCOVER',\r\n 4: 'MASTER',\r\n 5: 'VISA',\r\n};\r\n\r\n","import { capitalize } from \"utils/stringUtils\";\r\nexport const SHOW_AIRPPORTS_TO = 500;\r\nexport const MAX_AIRPORT_SEARCH = 500;\r\n\r\nconst formatAirport = ({\r\n city = '', icao, iso2 = '', name,\r\n} = {}) => {\r\n const capitalizeCity = capitalize(city);\r\n const country = iso2.substring(0, 2);\r\n const capitalizeName = capitalize(name);\r\n return `${capitalizeCity}, ${capitalizeName} (${icao}), ${country}`;\r\n};\r\n\r\nexport const handleFormatAirport = ({ city = \"\", country, icao, iso2, name } = {}) => {\r\n const capitalizeCity = capitalize(city);\r\n const capitalizeCountry = capitalize(country);\r\n const capitalizeName = capitalize(name);\r\n return `${capitalizeCity}, ${capitalizeName} (${icao}), ${iso2} ${capitalizeCountry}`;\r\n};\r\n\r\nexport const handleFormatFlyxoAirport = ({ city = \"\", country, icao, iso2, name } = {}) => {\r\n const capitalizeName = capitalize(name);\r\n return `${capitalizeName}`;\r\n};\r\n\r\nexport const showOnLabel = ({ city = \"\", iso2, name } = {}) => {\r\n const capitalizeCity = capitalize(city);\r\n const capitalizeName = capitalize(name);\r\n return `${capitalizeCity}, ${capitalizeName}, ${iso2}`;\r\n};\r\n\r\nexport const debounceOnChange = () => {\r\n let debounceTimer = null;\r\n return function(func, delay) {\r\n if (debounceTimer) clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(() => { func() }, delay);\r\n }\r\n}\r\nexport const debounceIt = debounceOnChange();\r\n\r\nexport const formatName = (value) => {\r\n const label = handleFormatFlyxoAirport(value)\r\n\r\n if (value.type === 'metropolitan-area-with-airports' || value.has_multiple_airports) {\r\n const country = value.country_code\r\n return `${label}${country ? `, ${country}` : ''} (Any airport)`\r\n }\r\n\r\n if (value.type === 'metropolitan-area') {\r\n return label\r\n }\r\n\r\n if (value.icao) {\r\n return `${value.ma_name || value.city} ${label} (${value.icao})`\r\n }\r\n}\r\n\r\n\r\nexport default formatAirport;\r\n","import creditCardType from 'credit-card-type';\r\n\r\nimport { CREDIT_CARD_BRANDS, CREDIT_CARD_BRAND_IDS } from '../constants/CreditCardConstants';\r\nimport { replaceSpecialCharacterAndSpaces } from './stringUtils';\r\n\r\nexport const getCreditCardTypes = (creditCardValue) => {\r\n const creditCardNumber = replaceSpecialCharacterAndSpaces(creditCardValue || 'undefined');\r\n return creditCardType(creditCardNumber).filter((creditCard) => {\r\n return CREDIT_CARD_BRANDS.indexOf(creditCard.type) >= 0;\r\n });\r\n};\r\n\r\nexport const getCreditCardType = (creditCardNumber) => {\r\n const types = getCreditCardTypes(creditCardNumber);\r\n return types.length === 1 ? types[0] : undefined;\r\n};\r\n\r\nexport const getCreditCardBrandId = (creditCardNumber) => {\r\n const creditCard = getCreditCardType(creditCardNumber);\r\n return creditCard ? CREDIT_CARD_BRAND_IDS[creditCard.type] : undefined;\r\n};\r\n\r\nexport const getPossibleBrandIds = (creditCardTypes = []) => creditCardTypes\r\n .map(creditCard => creditCard.type);\r\n\r\nexport const getDefaultCreditCard = (creditCard = {}) => {\r\n const {\r\n ids,\r\n defaultId,\r\n } = creditCard;\r\n if (ids && ids.size) {\r\n if (defaultId) {\r\n return defaultId;\r\n }\r\n return ids.first();\r\n }\r\n return null;\r\n};\r\n\r\nconst normalizePaymentAdditionalCharge = (charge) => {\r\n const {\r\n amount,\r\n cardBrandID,\r\n description,\r\n percentage,\r\n totalAmount,\r\n } = charge;\r\n return {\r\n amount,\r\n cardBrandID,\r\n description,\r\n percentage,\r\n totalAmount,\r\n };\r\n};\r\n\r\nexport const normalizePaymentAdditionalCharges = (charges = []) => charges\r\n .reduce((prev, charge) => {\r\n const previous = prev;\r\n const { cardBrandID } = charge;\r\n if (previous.ids.indexOf(cardBrandID) < 0) {\r\n previous.ids.push(cardBrandID);\r\n previous.content[cardBrandID] = normalizePaymentAdditionalCharge(charge);\r\n }\r\n return previous;\r\n }, { ids: [], content: {} });\r\n\r\nexport const findCreditCardByLastFourAndBrand = (\r\n creditCard = {}, lastFour, brandId,\r\n) => creditCard.cardNumberLastFour === lastFour\r\n && creditCard.cardBrandId === `${brandId}`;\r\n","\r\nimport CryptoJS from 'crypto-js';\r\nimport Cookies from 'universal-cookie';\r\n\r\nimport { ENCRYPTION_SECRET } from '../configs/constants';\r\nimport { isValidJSON } from './objectUtils';\r\n\r\nconst cookies = new Cookies();\r\n\r\nexport const saveToLocal = (data, key, isJson = true, isEncrypted = false) => {\r\n let saveData = data;\r\n //console.log(\"Saving to local:\");\r\n //console.log(JSON.stringify(data));\r\n if (data && isJson) {\r\n saveData = JSON.stringify(data);\r\n }\r\n if (saveData && isEncrypted) {\r\n saveData = CryptoJS.AES.encrypt(saveData, ENCRYPTION_SECRET).toString();\r\n }\r\n if (key === \"token\")\r\n cookies.set(key, saveData, { path: '/', sameSite: true });\r\n else\r\n global.localStorage.setItem(key, saveData);\r\n};\r\n\r\nexport const getFromLocal = (key, isJson = true, isEncrypted = false) => {\r\n let data;\r\n if (key === \"user\")\r\n {\r\n data = cookies.get(key, { doNotParse: true });\r\n if (data === \"set\")\r\n {\r\n data = window.epiSettings.reactUser;\r\n global.localStorage.setItem(key, data);\r\n cookies.set(key, \"authenticated\", { path: '/', sameSite: true });\r\n } else if (data !== \"authenticated\") {\r\n data = null;\r\n global.localStorage.setItem(key, data);\r\n cookies.set(key, \"\", { path: '/', sameSite: true });\r\n } else {\r\n data = global.localStorage.getItem(key);\r\n }\r\n }\r\n else if (key === \"token\")\r\n data = cookies.get(key, { doNotParse: true });\r\n else\r\n data = global.localStorage.getItem(key);\r\n const isValidJson = isValidJSON(data);\r\n if (data && isEncrypted && isValidJson === false) {\r\n const bytes = CryptoJS.AES.decrypt(data.toString(), ENCRYPTION_SECRET);\r\n data = bytes.toString(CryptoJS.enc.Utf8);\r\n }\r\n if (data && isJson) {\r\n data = JSON.parse(data);\r\n }\r\n //console.log(\"Getting from local (\" + key + \"):\");\r\n //console.log(JSON.stringify(data));\r\n return data;\r\n};\r\n\r\nexport const removeFromLocal = (key) => {\r\n cookies.remove(key, { path: '/', sameSite: true });\r\n};\r\n\r\nexport const existInLocal = key => cookies.get(key) != null;\r\n","/*eslint-disable */\r\nimport React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport IntlTelInput from 'react-intl-tel-input';\r\nimport 'react-intl-tel-input/dist/main.css';\r\n\r\n\r\nimport FloatingLabel from './FloatingLabel';\r\nimport UnderlineField from './UnderlineField';\r\nimport ErrorText from './ErrorText';\r\nimport HintText from './HintText';\r\n\r\nimport LoadLibPhoneNumber from '../../store/sources/LoadLibraryPhoneNumber';\r\nimport PhoneCountries from '../../constants/PhoneConstants';\r\nimport libphonenumber from '../../utils/libphonenumber';\r\n\r\n/* const mapCountries = [\r\n {\r\n from: ['um'],\r\n to: 'us',\r\n },\r\n {\r\n from: ['aq', 'hm'],\r\n to: 'nf',\r\n },\r\n {\r\n from: ['tf'],\r\n to: 'mq',\r\n },\r\n {\r\n from: ['bv'],\r\n to: 'no',\r\n },\r\n {\r\n from: ['pn', 'gs'],\r\n to: 'nz',\r\n },\r\n];\r\n\r\nfunction mapCountry(country) {\r\n const countryFound = mapCountries.find(map =>\r\n map.from.indexOf(country) >= 0 // eslint-disable-line\r\n ); // eslint-disable-line\r\n return countryFound ? countryFound.to : country;\r\n} */\r\n\r\nfunction isValid(value) {\r\n return Boolean(value || value === 0);\r\n}\r\n\r\nconst getStyles = (props, state) => {\r\n let border = '#CCC #BBB #AAA';\r\n\r\n if (state.isFocused) {\r\n border = '#888 #777 #666';\r\n }\r\n\r\n if (props.errorText) {\r\n border = 'rgb(224, 49, 83) rgb(198, 12, 48) rgb(161, 0, 32)';\r\n }\r\n\r\n const styles = {\r\n root: Object.assign({\r\n position: 'relative',\r\n backgroundColor: 'transparent',\r\n width: '100%',\r\n }, props.style),\r\n hintStyle: {\r\n\r\n },\r\n };\r\n\r\n return styles;\r\n};\r\n\r\nclass IntlTelphoneInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.intlTelInputRef = null;\r\n\r\n this.setIntlTelInputRef = element => {\r\n this.intlTelInputRef = element;\r\n this.intlTelInputRef && this.props.onLoaded && this.props.onLoaded(this.intlTelInputRef);\r\n };\r\n }\r\n\r\n static propTypes = {\r\n /**\r\n * Set the input's placeholder to an example number for the selected country.\r\n */\r\n autoPlaceholder: PropTypes.bool,\r\n\r\n /**\r\n * Value used to show the country selected.\r\n */\r\n defaultCountry: PropTypes.string,\r\n\r\n /**\r\n * Default value passed to element.\r\n */\r\n defaultValue: PropTypes.number,\r\n\r\n /**\r\n * Changes the css style if component is disabled.\r\n */\r\n disabled: PropTypes.bool,\r\n\r\n /**\r\n * Error text to be shown in case of some error occur.\r\n */\r\n errorText: PropTypes.string,\r\n\r\n /**\r\n * Inline error text style.\r\n */\r\n errorStyle: PropTypes.object,\r\n\r\n /**\r\n * Floating label component text.\r\n */\r\n floatingLabelText: PropTypes.string,\r\n\r\n /**\r\n * Floating label component style\r\n */\r\n floatingLabelStyle: PropTypes.object,\r\n\r\n /**\r\n * Sets the ID of the element.\r\n */\r\n id: PropTypes.string,\r\n\r\n /**\r\n * hintText element content.\r\n */\r\n hintText: PropTypes.string,\r\n\r\n /**\r\n * hintText element style.\r\n */\r\n hintStyle: PropTypes.object,\r\n\r\n /**\r\n * Callback function that is fired when component looses focus.\r\n */\r\n onBlur: PropTypes.func,\r\n\r\n /**\r\n * Callback function that is fired when component is changed.\r\n */\r\n onChange: PropTypes.func,\r\n\r\n /**\r\n * Callback function that is fired when flag is changed.\r\n */\r\n onFlagSelected: PropTypes.func,\r\n\r\n /**\r\n * Callback function that is fired when is focused.\r\n */\r\n onFocus: PropTypes.func,\r\n\r\n \r\n /**\r\n * Callback function that is fired when is loaded.\r\n */\r\n onLoaded: PropTypes.func,\r\n\r\n /**\r\n * UnderlineField component style.\r\n */\r\n underlineStyle: PropTypes.object,\r\n\r\n /**\r\n * Controls if underline should be show or not.\r\n */\r\n underlineShow: PropTypes.bool,\r\n\r\n /**\r\n * UnderlineField component style when it's focused.\r\n */\r\n underlineFocusStyle: PropTypes.object,\r\n\r\n /**\r\n * Value of the element.\r\n */\r\n value: PropTypes.string,\r\n\r\n style: PropTypes.object,\r\n\r\n /**\r\n * Value of tabIndex\r\n */\r\n tabIndex: PropTypes.number,\r\n\r\n /* Contact Us form check */\r\n isContactUsForm: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n nationalMode: false,\r\n preferredCountries: ['gb', 'us'],\r\n isContactUsForm: false,\r\n tabIndex: 0,\r\n };\r\n\r\n state = {\r\n isFocused: false,\r\n hasValue: isValid(this.props.value) || isValid(this.props.defaultValue), // eslint-disable-line\r\n };\r\n\r\n componentDidMount() {\r\n const {\r\n disabled,\r\n } = this.props;\r\n let { tel: telInput, flagDropDown } = this.intlTelInputRef;\r\n\r\n telInput = ReactDOM.findDOMNode(telInput);\r\n flagDropDown = ReactDOM.findDOMNode(flagDropDown);\r\n\r\n telInput.disabled = disabled;\r\n\r\n telInput.addEventListener('focus', this.handleFocus, false);\r\n telInput.addEventListener('blur', this.handleBlur, false);\r\n\r\n flagDropDown.addEventListener('click', this.handleFlagDropDownClick, false);\r\n\r\n LoadLibPhoneNumber.loadPhoneLib().then(() => {\r\n this.updateState(true);\r\n }, () => { });\r\n }\r\n\r\n loadJSONP = (url, callback) => {\r\n const ref = window.document.getElementsByTagName('script')[0];\r\n const script = window.document.createElement('script');\r\n script.src = `${url + (url.indexOf('?') + 1 ? '&' : '?')}callback=${callback}`;\r\n ref.parentNode.insertBefore(script, ref);\r\n script.onload = () => {\r\n script.remove();\r\n };\r\n };\r\n geoIpLookup = (callback) => {\r\n this.loadJSONP('https://ipinfo.io?token=255a3f1017fbb6', 'sendBack');\r\n const that = this;\r\n window.sendBack = (resp) => {\r\n const countryCode = (resp && resp.country) ? resp.country : '';\r\n that.props.geoLookupCountryCode && that.props.geoLookupCountryCode(countryCode);\r\n callback(countryCode);\r\n };\r\n };\r\n\r\n /* UNSAFE_componentWillReceiveProps(nextProps) {\r\n if (nextProps.defaultCountry &&\r\n nextProps.defaultCountry !== this.props.defaultCountry) {\r\n this.intlTelInputRef.setFlag(mapCountry(nextProps.defaultCountry.toLowerCase()));\r\n }\r\n this.setState({\r\n hasValue: isValid(nextProps.value) || isValid(nextProps.defaultValue),\r\n });\r\n } */\r\n\r\n componentDidUpdate() {\r\n const telInput = this.intlTelInputRef;\r\n ReactDOM.findDOMNode(telInput).disabled = this.props.disabled;\r\n }\r\n\r\n componentWillUnmount() {\r\n let { tel: telInput, flagDropDown } = this.intlTelInputRef;\r\n telInput = ReactDOM.findDOMNode(telInput);\r\n flagDropDown = ReactDOM.findDOMNode(flagDropDown);\r\n\r\n telInput.removeEventListener('focus', this.handleFocus, false);\r\n telInput.removeEventListener('blur', this.handleBlur, false);\r\n\r\n flagDropDown.removeEventListener('click', this.handleFlagDropDownClick, false);\r\n }\r\n\r\n updateState = (isReady) => {\r\n this.setState({ isReady });\r\n };\r\n\r\n getSelectedCountryData = () => {\r\n return this.intlTelInputRef?.selectedCountryData;\r\n }\r\n\r\n handleFocus = () => {\r\n this.setState({ isFocused: true });\r\n if (this.props.onFocus) this.props.onFocus();\r\n };\r\n\r\n handleBlur = () => {\r\n this.setState({ isFocused: false });\r\n if (this.props.onBlur) this.props.onBlur();\r\n };\r\n\r\n handleFlagDropDownClick = (e) => {\r\n if (this.props.disabled) {\r\n e.stopPropagation();\r\n }\r\n };\r\n\r\n handlePhoneNumberChange = (status, inputValue, countryData) => {\r\n let phone = inputValue || '';\r\n phone = phone.replace(/[^\\d+]/g, '');\r\n if (phone.indexOf('+') < 0 && !this.props.isContactUsForm) {\r\n phone = `+${countryData.dialCode}${phone}`;\r\n }\r\n this.setState((_state, props) => ({\r\n hasValue: isValid(props.value) || isValid(props.defaultValue),\r\n }));\r\n if (this.props.onChange && this.props.value !== phone) {\r\n this.props.onChange(status, phone, countryData);\r\n }\r\n };\r\n\r\n handleSelectedFlag = (inputValue, countryData) => {\r\n let phone = inputValue || '';\r\n phone = phone.replace(/[^\\d+]/g, '');\r\n if (phone.indexOf('+') < 0 && !this.props.isContactUsForm) {\r\n phone = `+${countryData.dialCode}${phone}`;\r\n }\r\n if (this.props.onFlagSelected) {\r\n this.props.onFlagSelected(phone, countryData);\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n autoPlaceholder,\r\n disabled,\r\n floatingLabelText,\r\n floatingLabelStyle,\r\n underlineShow,\r\n underlineStyle,\r\n underlineFocusStyle,\r\n errorStyle,\r\n errorText,\r\n hintText,\r\n hintStyle,\r\n value,\r\n style,\r\n ...other\r\n } = this.props;\r\n\r\n let formattedValue = value;\r\n if (this.state.isReady) {\r\n formattedValue = global.intlTelInputUtils.formatNumber(value, undefined,\r\n global.intlTelInputUtils.numberFormat.INTERNATIONAL);\r\n }\r\n\r\n // eslint-disable-next-line max-len\r\n const css = [`intl-tel-input intl-input-custom ${disabled ? 'intl-tel-input-disabled' : ''}`];\r\n const styles = getStyles(this.props, this.state);\r\n\r\n return (\r\n
    \r\n {floatingLabelText &&\r\n \r\n {floatingLabelText}\r\n }\r\n {hintText &&\r\n \r\n {hintText}\r\n \r\n }\r\n \r\n\r\n {underlineShow &&\r\n }\r\n \r\n {errorText}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default IntlTelphoneInput;\r\n","import {animateScroll as scroll} from 'react-scroll';\r\n\r\nexport function isMSBrowser(userAgent = global.navigator.userAgent) {\r\n return !!userAgent.match(/Trident/g) || !!userAgent.match(/MSIE/g) || !!userAgent.match(/Edge/g);\r\n}\r\n\r\nexport function isURLActive(pathname) {\r\n return window.location.hash.includes(pathname);\r\n}\r\n\r\n// Refernce Link:\r\n// http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\r\n\r\n// Opera 8.0+\r\nexport function isOpera() {\r\n return !!window.opr || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\r\n}\r\n\r\n// Firefox 1.0+\r\nexport function isFirefox() {\r\n return typeof InstallTrigger !== 'undefined';\r\n}\r\n\r\n// Internet Explorer 6-11\r\nexport function isIE() {\r\n return !!document.documentMode;\r\n}\r\n\r\nexport function isEdge() {\r\n return window.navigator.userAgent.indexOf('Edge') > -1;\r\n}\r\n\r\n// Chrome 1+\r\nexport function isChrome() {\r\n return !!window.chrome && !!window.chrome.webstore;\r\n}\r\n\r\n// Blink engine detection\r\nexport function isBlink() {\r\n return (isChrome() || isOpera()) && !!window.CSS;\r\n}\r\n// Safari\r\nexport function isSafari() {\r\n return (navigator.userAgent.indexOf('Safari') > 0\r\n && navigator.userAgent.indexOf('Chrome') === -1);\r\n}\r\n\r\n// export const scrollToSection = () => {\r\n// window.scroll({\r\n// top: 0,\r\n// left: 0,\r\n// behavior: 'smooth'\r\n// });\r\n// }\r\n\r\n\r\nconst SVS_B = (eAmt, where) => {\r\n if (where === \"center\" || where == \"\")\r\n window.scrollBy(0, eAmt / 2);\r\n if (where === \"top\")\r\n window.scrollBy(0, eAmt);\r\n}\r\n\r\nexport const scrollToSection = (time, where) => {\r\n const e = document.getElementById('spa-header-container');\r\n var eTop = e.getBoundingClientRect().top;\r\n var eAmt = eTop / 100;\r\n var curTime = 0;\r\n while (curTime <= time) {\r\n window.setTimeout(SVS_B, curTime, eAmt, where);\r\n curTime += time / 100;\r\n }\r\n}\r\n\r\nexport const scrollToTop = () => {\r\n scroll.scrollToTop();\r\n}\r\n\r\n","export const stateList = {\r\n 'Alaska': 'AK',\r\n 'Alabama': 'AL',\r\n 'Arkansas': 'AR',\r\n 'Arizona': 'AZ',\r\n 'California': 'CA',\r\n 'Colorado': 'CO',\r\n 'Connecticut': 'CT',\r\n 'District of Columbia': 'DC',\r\n 'Delaware': 'DE',\r\n 'Florida': 'FL',\r\n 'Georgia': 'GA',\r\n 'Guam': 'GU',\r\n 'Hawaii': 'HI',\r\n 'Iowa': 'IA',\r\n 'Idaho': 'ID',\r\n 'Illinois': 'IL',\r\n 'Indiana': 'IN',\r\n 'Kansas': 'KS',\r\n 'Kentucky': 'KY',\r\n 'Louisiana': 'LA',\r\n 'Massachusetts': 'MA',\r\n 'Maryland': 'MD',\r\n 'Maine': 'ME',\r\n 'Michigan': 'MI',\r\n 'Minnesota': 'MN',\r\n 'Missouri': 'MO',\r\n 'Mississippi': 'MS',\r\n 'Montana': 'MT',\r\n 'North Carolina': 'NC',\r\n 'North Dakota': 'ND',\r\n 'Nebraska': 'NE',\r\n 'New Hampshire': 'NH',\r\n 'New Jersey': 'NJ',\r\n 'New Mexico': 'NM',\r\n 'Nevada': 'NV',\r\n 'New York': 'NY',\r\n 'Ohio': 'OH',\r\n 'Oklahoma': 'OK',\r\n 'Oregon': 'OR',\r\n 'Pennsylvania': 'PA',\r\n 'Rhode Island': 'RI',\r\n 'South Carolina': 'SC',\r\n 'South Dakota': 'SD',\r\n 'Tennessee': 'TN',\r\n 'Texas': 'TX',\r\n 'Utah': 'UT',\r\n 'Virginia': 'VA',\r\n 'Vermont': 'VT',\r\n 'Washington': 'WA',\r\n 'Wisconsin': 'WI',\r\n 'West Virginia': 'WV',\r\n 'Wyoming': 'WY',\r\n}\r\n\r\nexport const australiaStateList = {\r\n 'Australian Capital Territory': 'ACT',\r\n 'New South Wales': 'NSW',\r\n 'Northern Territory': 'NT',\r\n 'Queensland': 'QLD',\r\n 'South Australia': 'SA',\r\n 'Tasmania': 'TAS',\r\n 'Victoria': 'VIC',\r\n 'Western Australia': 'WA',\r\n}\r\n\r\nexport const brazilStateList = {\r\n 'Acre': 'AC',\r\n 'Alagoas': 'AL',\r\n 'Amazonas': 'AM',\r\n 'Amapá': 'AP',\r\n 'Bahia': 'BA',\r\n 'Ceará': 'CE',\r\n 'Distrito Federal': 'DF',\r\n 'Espírito Santo': 'ES',\r\n 'Goiás': 'GO',\r\n 'Maranhão': 'MA',\r\n 'Minas Gerais': 'MG',\r\n 'Mato Grosso do Sul': 'MS',\r\n 'Mato Grosso': 'MT',\r\n 'Pará': 'PA',\r\n 'Paraíba': 'PB',\r\n 'Pernambuco': 'PE',\r\n 'Piauí': 'PI',\r\n 'Paraná': 'PR',\r\n 'Rio de Janeiro': 'RJ',\r\n 'Rio Grande do Norte': 'RN',\r\n 'Rondônia': 'RO',\r\n 'Roraima': 'RR',\r\n 'Rio Grande do Sul': 'RS',\r\n 'Santa Catarina': 'SC',\r\n 'Sergipe': 'SE',\r\n 'São Paulo': 'SP',\r\n 'Tocantins': 'TO',\r\n}\r\n\r\nexport const canadaStateList = {\r\n 'Alberta': 'AB',\r\n 'British Columbia': 'BC',\r\n 'Manitoba': 'MB',\r\n 'New Brunswick': 'NB',\r\n 'Newfoundland and Labrador': 'NL',\r\n 'Nova Scotia': 'NS',\r\n 'Northwest Territories': 'NT',\r\n 'Nunavut': 'NU',\r\n 'Ontario': 'ON',\r\n 'Prince Edward Island': 'PE',\r\n 'Quebec': 'QC',\r\n 'Saskatchewan': 'SK',\r\n 'Yukon Territories': 'YT',\r\n}\r\n\r\nexport const chinaStateList = {\r\n 'Beijing': '11',\r\n 'Tianjin': '12',\r\n 'Hebei': '13',\r\n 'Shanxi': '14',\r\n 'Nei Mongol': '15',\r\n 'Liaoning': '21',\r\n 'Jilin': '22',\r\n 'Heilongjiang': '23',\r\n 'Shanghai': '31',\r\n 'Jiangsu': '32',\r\n 'Zhejiang': '33',\r\n 'Anhui': '34',\r\n 'Fujian': '35',\r\n 'Jiangxi': '36',\r\n 'Shandong': '37',\r\n 'Henan': '41',\r\n 'Hubei': '42',\r\n 'Hunan': '43',\r\n 'Guangdong': '44',\r\n 'Guangxi': '45',\r\n 'Hainan': '46',\r\n 'Chongqing': '50',\r\n 'Sichuan': '51',\r\n 'Guizhou': '52',\r\n 'Yunnan': '53',\r\n 'Xizang': '54',\r\n 'Shaanxi': '61',\r\n 'Gansu': '62',\r\n 'Qinghai': '63',\r\n 'Ningxia': '64',\r\n 'Xinjiang': '65',\r\n 'Macao': '92',\r\n}\r\n\r\nexport const indiaStateList = {\r\n 'Andaman and Nicobar Islands': 'AN',\r\n 'Andhra Pradesh': 'AP',\r\n 'Arunachal Pradesh': 'AR',\r\n 'Assam': 'AS',\r\n 'Bihar': 'BR',\r\n 'Chandigarh': 'CH',\r\n 'Chhattisgarh': 'CT',\r\n 'Daman and Diu': 'DD',\r\n 'Delhi': 'DL',\r\n 'Dadra and Nagar Haveli': 'DN',\r\n 'Goa': 'GA',\r\n 'Gujarat': 'GJ',\r\n 'Himachal Pradesh': 'HP',\r\n 'Haryana': 'HR',\r\n 'Jharkhand': 'JH',\r\n 'Jammu and Kashmir': 'JK',\r\n 'Karnataka': 'KA',\r\n 'Kerala': 'KL',\r\n 'Lakshadweep': 'LD',\r\n 'Maharashtra': 'MH',\r\n 'Meghalaya': 'ML',\r\n 'Manipur': 'MN',\r\n 'Madhya Pradesh': 'MP',\r\n 'Mizoram': 'MZ',\r\n 'Nagaland': 'NL',\r\n 'Odisha': 'OR',\r\n 'Punjab': 'PB',\r\n 'Puducherry': 'PY',\r\n 'Rajasthan': 'RJ',\r\n 'Sikkim': 'SK',\r\n 'Tamil Nadu': 'TN',\r\n 'Telangana': 'TG',\r\n 'Tripura': 'TR',\r\n 'Uttar Pradesh': 'UP',\r\n 'Uttarakhand': 'UT',\r\n 'West Bengal': 'WB',\r\n}\r\n\r\nexport const irelandStateList = {\r\n 'Clare': 'CE',\r\n 'Cavan': 'CN',\r\n 'Cork': 'CO',\r\n 'Carlow': 'CW',\r\n 'Dublin': 'D',\r\n 'Donegal': 'DL',\r\n 'Galway': 'G',\r\n 'Kildare': 'KE',\r\n 'Kilkenny': 'KK',\r\n 'Kerry': 'KY',\r\n 'Longford': 'LD',\r\n 'Louth': 'LH',\r\n 'Limerick': 'LK',\r\n 'Leitrim': 'LM',\r\n 'Laois': 'LS',\r\n 'Meath': 'MH',\r\n 'Monaghan': 'MN',\r\n 'Mayo': 'MO',\r\n 'Offaly': 'OY',\r\n 'Roscommon': 'RN',\r\n 'Sligo': 'SO',\r\n 'Tipperary': 'TA',\r\n 'Waterford': 'WD',\r\n 'Westmeath': 'WH',\r\n 'Wicklow': 'WW',\r\n 'Wexford': 'WX',\r\n}\r\n\r\nexport const italyStateList = {\r\n 'Agrigento': 'AG',\r\n 'Alessandria': 'AL',\r\n 'Ancona': 'AN',\r\n 'Aosta': 'AO',\r\n 'Ascoli Piceno': 'AP',\r\n 'L\\'Aquila': 'AQ',\r\n 'Arezzo': 'AR',\r\n 'Asti': 'AT',\r\n 'Avellino': 'AV',\r\n 'Bari': 'BA',\r\n 'Bergamo': 'BG',\r\n 'Biella': 'BI',\r\n 'Belluno': 'BL',\r\n 'Benevento': 'BN',\r\n 'Bologna': 'BO',\r\n 'Brindisi': 'BR',\r\n 'Brescia': 'BS',\r\n 'Barletta-Andria-Trani': 'BT',\r\n 'Bolzano': 'BZ',\r\n 'Cagliari': 'CA',\r\n 'Campobasso': 'CB',\r\n 'Caserta': 'CE',\r\n 'Chieti': 'CH',\r\n 'Carbonia-Iglesias': 'CI',\r\n 'Caltanissetta': 'CL',\r\n 'Cuneo': 'CN',\r\n 'Como': 'CO',\r\n 'Cremona': 'CR',\r\n 'Cosenza': 'CS',\r\n 'Catania': 'CT',\r\n 'Catanzaro': 'CZ',\r\n 'Enna': 'EN',\r\n 'Forlì-Cesena': 'FC',\r\n 'Ferrara': 'FE',\r\n 'Foggia': 'FG',\r\n 'Florence': 'FI',\r\n 'Fermo': 'FM',\r\n 'Frosinone': 'FR',\r\n 'Genoa': 'GE',\r\n 'Gorizia': 'GO',\r\n 'Grosseto': 'GR',\r\n 'Imperia': 'IM',\r\n 'Isernia': 'IS',\r\n 'Crotone': 'KR',\r\n 'Lecco': 'LC',\r\n 'Lecce': 'LE',\r\n 'Livorno': 'LI',\r\n 'Lodi': 'LO',\r\n 'Latina': 'LT',\r\n 'Lucca': 'LU',\r\n 'Monza and Brianza': 'MB',\r\n 'Macerata': 'MC',\r\n 'Messina': 'ME',\r\n 'Milan': 'MI',\r\n 'Mantua': 'MN',\r\n 'Modena': 'MO',\r\n 'Massa and Carrara': 'MS',\r\n 'Matera': 'MT',\r\n 'Naples': 'NA',\r\n 'Novara': 'NO',\r\n 'Nuoro': 'NU',\r\n 'Ogliastra': 'OG',\r\n 'Oristano': 'OR',\r\n 'Olbia-Tempio': 'OT',\r\n 'Palermo': 'PA',\r\n 'Piacenza': 'PC',\r\n 'Padua': 'PD',\r\n 'Pescara': 'PE',\r\n 'Perugia': 'PG',\r\n 'Pisa': 'PI',\r\n 'Pordenone': 'PN',\r\n 'Prato': 'PO',\r\n 'Parma': 'PR',\r\n 'Pistoia': 'PT',\r\n 'Pesaro and Urbino': 'PU',\r\n 'Pavia': 'PV',\r\n 'Potenza': 'PZ',\r\n 'Ravenna': 'RA',\r\n 'Reggio Calabria': 'RC',\r\n 'Reggio Emilia': 'RE',\r\n 'Ragusa': 'RG',\r\n 'Rieti': 'RI',\r\n 'Rome': 'RM',\r\n 'Rimini': 'RN',\r\n 'Rovigo': 'RO',\r\n 'Salerno': 'SA',\r\n 'Siena': 'SI',\r\n 'Sondrio': 'SO',\r\n 'La Spezia': 'SP',\r\n 'Syracuse': 'SR',\r\n 'Sassari': 'SS',\r\n 'Savona': 'SV',\r\n 'Taranto': 'TA',\r\n 'Teramo': 'TE',\r\n 'Trento': 'TN',\r\n 'Turin': 'TO',\r\n 'Trapani': 'TP',\r\n 'Terni': 'TR',\r\n 'Trieste': 'TS',\r\n 'Treviso': 'TV',\r\n 'Udine': 'UD',\r\n 'Varese': 'VA',\r\n 'Verbano-Cusio-Ossola': 'VB',\r\n 'Vercelli': 'VC',\r\n 'Venice': 'VE',\r\n 'Vicenza': 'VI',\r\n 'Verona': 'VR',\r\n 'Medio Campidano': 'VS',\r\n 'Viterbo': 'VT',\r\n 'Vibo Valentia': 'VV',\r\n}\r\n\r\nexport const mexicoStateList = {\r\n 'Aguascalientes': 'AG',\r\n 'Baja California': 'BC',\r\n 'Baja California Sur': 'BS',\r\n 'Chihuahua': 'CH',\r\n 'Colima': 'CL',\r\n 'Campeche': 'CM',\r\n 'Coahuila': 'CO',\r\n 'Chiapas': 'CS',\r\n 'Federal District': 'DF',\r\n 'Durango': 'DG',\r\n 'Guerrero': 'GR',\r\n 'Guanajuato': 'GT',\r\n 'Hidalgo': 'HG',\r\n 'Jalisco': 'JA',\r\n 'Mexico State': 'ME',\r\n 'Michoacán': 'MI',\r\n 'Morelos': 'MO',\r\n 'Nayarit': 'NA',\r\n 'Nuevo León': 'NL',\r\n 'Oaxaca': 'OA',\r\n 'Puebla': 'PB',\r\n 'Querétaro': 'QE',\r\n 'Quintana Roo': 'QR',\r\n 'Sinaloa': 'SI',\r\n 'San Luis Potosí': 'SL',\r\n 'Sonora': 'SO',\r\n 'Tabasco': 'TB',\r\n 'Tlaxcala': 'TL',\r\n 'Tamaulipas': 'TM',\r\n 'Veracruz': 'VE',\r\n 'Yucatán': 'YU',\r\n 'Zacatecas': 'ZA',\r\n}\r\n\r\nexport default function GetStateList(stateFullName = '') {\r\n return stateList[stateFullName];\r\n}\r\n"],"sourceRoot":""}