{"version":3,"sources":["assets/timezoneConfig.js","assets/sound/pingSound.wav","constants.ts","utils/memory-storage.ts","utils/cookie-storage.ts","utils/storage-strategy.ts","utils/helpers.ts","utils/api-client.ts","setup.service.ts","conversation.service.tsx","reducer.ts","utils/context.service.ts","actions.ts","io.ts","AppContext.tsx","Styles.tsx","widget-container/widget-toggle.tsx","assets/images/bots-28.svg","utils/color-set.ts","utils/utils.service.ts","widget-container/widget-header/widget-header.tsx","widget-container/widget-footer/SendButtonIcon.tsx","widget-container/constants.ts","widget-container/widget-footer/date-input/date-input.tsx","widget-container/widget-footer/datetime-input/datetime-input.tsx","widget-container/widget-footer/time-input/time-input.tsx","widget-container/common-components/chat-button/chat-button.tsx","widget-container/widget-footer/select-list.tsx","widget-container/widget-modal/widget-modal.tsx","widget-container/widget-body/widget-message/message-helpers/interaction-multi-select/interaction-multi-select.tsx","widget-container/widget-footer/text-input.tsx","widget-container/widget-footer/phone-input/phone-input.tsx","widget-container/widget-footer/email-input/email-input.tsx","widget-container/widget-footer/widget-footer.tsx","assets/images/bots.svg","widget-container/widget-body/widget-message/action-interactions/end-conversation/end-conversation.tsx","widget-container/widget-body/widget-message/message-helpers/interaction-single-select/interaction-single-select.tsx","widget-container/widget-body/widget-message/message-helpers/text-message/text-message.tsx","widget-container/widget-body/widget-message/message-helpers/video-message/video-message.tsx","assets/images/play-button.png","widget-container/widget-body/widget-message/message-helpers/image-message/image-message.tsx","assets/images/document-icon.svg","widget-container/widget-body/widget-message/message-helpers/document-message/document-message.tsx","assets/images/url-default.svg","widget-container/widget-body/widget-message/message-helpers/url-message/url-message.tsx","utils/timezone.service.ts","widget-container/common-components/select-list-with-filter/select-list-with-filter.tsx","widget-container/common-components/select-list-with-filter/select-option.ts","widget-container/common-components/timezone-popup/timezone-popup.tsx","assets/images/no_Times.svg","assets/images/Error_icon.svg","assets/images/double_booking_icon.svg","widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.type.ts","widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.service.ts","widget-container/common-components/loader/loader.tsx","widget-container/widget-body/widget-message/action-interactions/schedule-action/schedule-action.tsx","widget-container/widget-body/widget-message/action-interactions/live-chat-action/live-chat-action.tsx","widget-container/widget-body/widget-message/action-interactions/require-consent/require-consent.tsx","widget-container/widget-body/widget-message/action-interactions/require-consent/consent-buttons.tsx","widget-container/widget-body/widget-message/question-interactions/timezone-question/timezone-question.tsx","utils/timeago.ts","widget-container/widget-body/widget-message/chat-timestamp/chat-timestamp.tsx","widget-container/widget-body/widget-message/action-interactions/deny-consent/view-again-button.tsx","widget-container/widget-body/widget-message/action-interactions/deny-consent/deny-consent.tsx","widget-container/widget-body/widget-message/answer-input/answer-input.tsx","widget-container/widget-body/widget-message/widget-message.tsx","widget-container/widget-body/widget-message/answer-input/live-chat-input.tsx","widget-container/widget-body/widget-body.tsx","widget-container/widget-notification/notification-message/notification-message.tsx","widget-container/widget-notification/widget-notification.tsx","widget-container/widget.tsx","App.tsx","registerServiceWorker.ts","index.tsx"],"names":["module","exports","TimeZones","Id","ShortName","Country","Region","CityList","TimeZone","DisplayOrder","HasDayLightSavings","CountryCallingCode","offset","startTimeMili","endTimeMili","PriorityCountryId","ConversationState","NotificationStyle","BotDisplayType","liveChatColours","LIVE_CHAT_CHANNEL","CONTACT_COOKIE_HEADER_KEY","SESSION_COOKIE_HEADER_KEY","ANALYTIC_COOKIE_HEADER_KEY","MemoryStorage","this","currentSession","storageData","analyticCookie","getAnalytics","sessionCookie","value","currentContact","contactCookie","currentAnalytics","analyticsSetting","CookieStorage","storage","window","parent","postMessage","type","values","name","expiry","expires","same_site","path","cookiesValues","push","StorageStrategy","strategy","createGuid","_p8","s","p","Math","random","toString","substr","ApiClient","url","options","client","updateOptions","credentials","httpVerb","fetchOptions","method","headers","body","JSON","stringify","fetch","updatedOptions","setupWidget","a","getStrategy","chSessionId","preview","getSession","chContactId","getContact","chAnalytics","post","process","pageUrl","pageTitle","websiteId","botId","directBot","response","json","success","sessionId","sessionCookieData","parse","get","e","contactCookieData","analyticCookieData","setValues","status","data","bot_id","botName","bot_name","accountId","account_id","conversationId","conversation_id","isFirstTime","is_first_time","conversationState","conversation_state","liveChatStatus","live_chat_status","showClosedWidgetInteractions","show_closed_widget_interactions","welcomeDisplayStyle","welcome_display_style","settings","getWebsiteSetting","website_id","session_timeout","oncehubBrandingUrl","branding_url","showPromotionalMessage","show_promotional_message","schedule_prefetch_config","toggles","id","companyName","company_name","colour","textColour","text_colour","shape","widgetIcon","widget_icon","botIcon","bot_icon","fetchConverasation","page","Error","total","pageSize","response_interactions","map","item","log_id","reverse","welcomeInteractions","i","length","message","sent_by","is_read","parseInt","SocketStatus","reducer","state","action","startTime","socket","messageFailed","preFetchedSlots","messageLimitExceeded","liveChatObj","liveChatchannel","liveChatAccepted","liveChatOwnerId","undefined","isLiveChatAbandoned","liveChatUserTyping","liveChatUsers","messages","Date","now","Restarting","CONNECTED","CONNECTING","DISCONNECTED","Active","messageHistory","open","Initialised","index","findIndex","message_id","interaction","interaction_type","action_type","schedule_status","schedule_fallback_message","schedule_confirm_data","contactId","Finished","bot","hasCloseNotifications","time_zone_id","timezoneId","messageIds","Set","nextMessages","has","filter","slotsData","closedByVisitor","showPopupCloseButton","cache","interaction_time","toISOString","website","setting","botDisplaySetting","hasOwnProperty","notificationStyle","NotificationBadgeOnly","getWebsiteId","contactFieldId","contact_field_id","contactFieldType","contact_field_type","Context","instance","randomId","createActions","dispatch","getState","lastAnswer","retryAnswerTimeout","nextMessageAt","ping","finished","connect","URL","io","protocol","host","pathname","transports","connectSocket","on","then","from_socket","addNextMessage","text","error","setTimeout","endConversation","max","clearTimeout","answer_id","ms","time","startedAt","current_interaction_id","interactionId","external_id","currentInteractionId","payload","eventId","session","is_preview","done","sessionSocket","emit","close","send","connected","nextInteraction","closeWidget","updateFirebaseScheduleInteraction","live_chat_message_key","updateMessage","disconnectFirebaseDb","disconnect","answer","content","liveChatResponse","user","question_type","is_live_chat_notification","setLiveChatResponse","liveChatChannel","user_name","liveChatHistory","liveChatAnswer","liveChatTimeout","setLiveChatOwner","ownerId","updateLiveChatUserTypingState","setContactId","triggerContactUpdate","contact","finishConversation","finished_by","updateTimezone","openWidget","isAnswerFromVisitor","interactionSeen","restart","resendLastMessage","scheduleResponse","initLiveChat","closeNotifications","cleanDoubleBookingError","heartbeat","timeout","loadPage","nextPage","ceil","closePopupBot","botDisplayType","getInstance","POPUP","openNewBot","setPreFetchedSlots","AppContext","React","createContext","NotificationBadgeWithWelcomeInteraction","standalone","ConversationContext","SocketServiceContext","add","remove","Promise","all","conversation","AppContextProvider","children","setInstance","useReducer","useEffect","socketService","stateRef","useRef","current","ref","useSocketService","appContext","cancelled","fetchData","widgetLoadingFinished","useMemo","conversationContext","Provider","className","style","Styles","useContext","color","textColor","memo","WidgetToggle","count","actions","onClick","xmlns","width","height","fill","fillRule","stroke","d","ColorSet","UtilsService","indexOf","split","IS_MOBILE","test","navigator","userAgent","cookieEnabled","document","cookie","disabled","SHORT_DAY_NAMES","MONTH_NAMES","SHORT_MONTH_NAMES","WidgetHeader","firstName","lastName","liveChatOwner","isBotDisplayPopup","handleBeforeUnload","addEventListener","removeEventListener","profileImage","toUpperCase","alt","src","botImg","trim","SendButton","active","viewBox","version","strokeWidth","transform","points","strokeLinecap","VADLIDATION_MESSAGES","dateFormatError","futureDateError","DEFAULT_TIMEZONE_ID","EMAILREGEXPATTERN","DATE_MASK","DATE_REGEX","DateInput","maskedInputRef","createRef","pipe","config","setValidation","props","date","substring","month","year","getFullYear","getMonth","getDate","allowOnlyFutureDate","getTime","onChange","keydown","event","keyCode","onSubmit","inputElement","focus","mask","placeholder","keepCharPositions","autoComplete","autoCorrect","guide","placeholderChar","onKeyDown","Component","DATETIME_MASK","DATE_TIME_REGEX","DatetimeInput","hours","minutes","am","setHours","setMinutes","TIME_MASK","TIME_REGEX","TimeInput","ChatButton","title","classNames","clickHandler","isDisabled","SelectList","useState","setHeight","el","querySelector","parentElement","updateHeight","clientHeight","useListHeight","setFilter","regex","RegExp","replace","filteredOptions","items","option_text","selected","setSelected","onOptionClick","single","onSelect","selectedItem","container","listener","target","contains","input","HTMLInputElement","chatContainer","inputs","currentTarget","maxHeight","checked","createPortal","WidgetModal","closeModal","show","modalMessage","optionMessage","errorMessage","min","InteractionMultiSelect","setError","option","datatype","Boolean","selection","TextInput","textarea","heightDiv","innerText","endsWith","clientWidth","shiftKey","preventDefault","tabIndex","contentEditable","COUNTRY_OPTIONS","Object","keys","COUNTRY","PhoneInput","question","welcomePhoneQuestion","setPhone","onError","visitorCountry","country","visitorCountryObject","getDefaultCountry","visitorCountryCode","getCountryCallingCode","countryList","setCountryList","setCountry","setValue","invalid","setInvalid","selectCountry","useCallback","code","inputEl","selectionStart","selectionEnd","dispatchEvent","Event","formatter","AsYouType","formattedInput","phoneNumber","getNumber","countryInfo","isValid","sort","x","y","EmailInput","emailInput","searchTimeout","findActiveQuestion","isEmojiDisabled","questionType","SelectInput","sendAnswer","selectProps","interaction_options","interaction_option_id","content_object_array","field_library_option_id","multi_choice_minimum","multi_choice_maximum","option_order","join","multi_interaction_options_answer_ids","multi_choice_type","createElement","Input","openSelectList","questionId","readOnly","require_in_future","checkValidation","errorMsg","phone","validatePhone","WidgetFooter","connecting","openEmoji","setState","stoppedTyping","updateIsTyping","err","updateState","next","showValidationMessage","welcomeMessage","welcomeQuestion","emojiDisabled","selectBox","editableBox","sendVisitorResponseInLiveChat","validationOption","messageText","newMessage","userType","sendMessage","notifyNewMessage","updateConversation","lastMessage","lastUpdatedTime","selectList","hidden","border","setTypingStatus","SendButtonIcon","href","rel","native","perLine","showPreview","emoji","EndConversation","isAbandoned","isClosedByAgent","InteractionSingleSelect","TextMessageComponent","messageId","VideoMessage","parameters","isFullScreen","isOpen","isPaused","autoPlay","playerRef","togglePlay","hasPlayerRef","video","play","pause","currentTime","mute","subscribeToStateChange","handleFullScreen","bind","prevState","isFullscreen","videoTitle","description","muted","showBotName","playsInline","videoUrl","mp4","ogg","disableDefaultControls","renderTitleBox","ImageMessage","imageRef","theme","arrow","backgroundColor","opacity","transition","arrow__direction__left","marginLeft","arrow__direction__right","marginRight","arrow__size__medium","borderRadius","marginTop","padding","background","footer","footerCount","toggleLightbox","setAttribute","top","images","imageUrl","caption","imageTitle","onClose","showImageCount","isNotificationInteraction","renderLightbox","DocumentMessage","fileName","documentUrl","pop","decodeURIComponent","download","appendChild","click","removeChild","DocumentIcon","MessageUrl","openLink","urlProps","display","urlDefaultImage","extractHostName","TimezoneService","convertNumberToMinutes","numberString","convertOffsetToDisplayString","hrs","mins","offsetMinute","getFullTimezoneString","hasDST","region","offsetString","getTimezoneStringByTimezoneId","tzId","timezone","TIMEZONES","tzString","timezoneObj","getTimezoneSettings","getSelectOptionRegionString","hasDst","eachDST","getOffsetAndDST","timeNow","timeZoneData","tzOffset","activeDST","find","DST","Number","getRegionData","tz","displayOrder","shortName","countryName","regionWithGMTAndDST","getTimezoneData","tzData","key","allCountriesString","regions","b","topCountriesString","TOP_COUNTRIES_IDS","reduce","prevArr","countryId","allCountriesData","topCountriesData","SelectListWithFilter","inputRef","customUlRef","customSelectDivRef","dropDownToggler","ulElm","selectedElm","scrollIntoView","customOuterDivElm","windowHeight","innerHeight","customOuterDimensions","getBoundingClientRect","lowerSectionHeight","parentDiv","classList","onCustomOptionClick","customSelectConfig","onOptionChange","optionValue","selectItems","forEach","optionText","filterItems","allOptions","placeholderText","selectedOptionText","showValidation","validationMessage","hasSelection","SelectListOption","params","TimezonePopup","tempSelectedCountry","tempSelectedRegionDetail","tempRegionList","dropdownCountryWithRegionList","dropdownRegionList","seperatorOption","selectOptionsForCountryList","selectOptionsForRegionList","placeholderTextForRegionsList","getStatesObj","selectedRegionDetails","selectedCountryName","selectedRegionNameWithGMTAndDST","showRegionValidation","getSelectedRegionsByTimezoneId","t","some","setDropdownCountryWithRegionList","concat","countryData","setDropdownRegionList","regionData","onCountryChange","newValue","resetRegionValidation","setCountryAndRegionByIndex","countryIndex","regionIndex","newRegionSelection","setRegionByIndex","selectedRegion","onRegionChange","onContinueBtnClick","timezoneString","closePopup","onCloseButtonClick","initializePopup","nextProps","stateObj","float","margin","dateToString","stringToDate","parts","nextDay","setDate","fetchSlots","request","lastAvailableDay","part","slots","dateSlots","pm","duration","confirmSlot","Loader","doubleBooking","confirmAPIPromise","findNextAvailableDay","selectedDatePosition","selectedSlot","blockTrackingId","firstDate","changeInDays","start","end","nextDate","position","slot","confirmClicked","promise","buttonText","scheduleStatus","smsChecked","modal","openModal","liveChatMessageKey","isNaN","DelayedLoader","setText","BackArrow","NextArrow","SlotDate","dates","getDay","Slots","setIndex","outerWidth","setPageSize","disableNext","disablePrev","viewNextAvailableDay","slice","timeStr","areSlotsAvailable","CalenderContent","timeZoneId","block","displayedDates","selectedDate","selectedDaySlots","nextDatesVisibility","changeSelectedDatePosition","prevDates","nextDates","emptyDate","fetchDate","includes","slotsDate","dateA","dateB","newFetchDateString","lastDateForSlot","slotOnDate","focusCount","ConfirmSlotContent","selectTimeSlotView","dateObjSummary","lowerTime","dateMonth","confirmationFullText","schedule_confirmation_title","confirmationText","smsNotificationToggle","schedule_sms_notification","smsOptInText","schedule_sms_opt_in_text","confirmationTextLength","smsOptInTextLength","contactInfo","contact_info","isEmpty","email","isInValid","emailState","setEmailState","first_name","last_name","nameState","setNameState","isConfirmedClicked","schedule_first_name","schedule_email","onEmailClick","isChecked","smsConsent","schedule_confirmation_button","confirming","confirm","getElementById","back","ConfirmationContent","confirmEventData","isCalendarEventCreated","dateObjSummarySplit","fullMonth","dayOfMonth","ErrorWhileFetchingContent","NoTimesIcon","ConversationEndedContent","ErrorWhileConfirmingContent","CONFIRM_ERROR_ICON","ErrorDoubleBookingContent","DOUBLE_BOOKING_ERROR_ICON","getSplittedName","fullName","splitName","ScheduleAction","last","preFetchdTimeslots","refs","initial_load","calendarVisible","initial_time_zone_change","fetchSlotPayload","startDate","endDate","panelId","panel_id","scheduleEventTypeExternalId","schedule_event_type_external_id","isInstantSchedule","catch","schedule_timeslot_fallback_button_text","updateData","blocked_meeting","relatedFilterTag","shouldRenderheading","contactInfoCopy","confirmOptions","trackingid","timeZoneString","resourcesLinkId","resourceLinkId","enableSmsNotification","blocked_meeting_data","isPanelMeeting","blockOptions","meetingLowerBoundary","meetingUpperBoundary","blockSlot","confirmation_data","panelTrackingId","interaction_text","schedule_action_event_type_meeting_length","timeoutInterval","sound","require","is_mount","LiveChatActionComponent","unSubscribeMessages","unSubscribeToTypingStatus","authToken","online_users","getInitializedLiveChatObj","getConversationDetail","liveChatConversation","deleteUnassignedPermission","timeout_period","acceptedBy","floor","slug","totalMessageCount","messageReadState","isTyping","messageCount","createConversation","createContact","sendMessageHistory","creationTime","userId","notifyOnlineUsers","setLiveChatHistory","subscribeToTypingStatus","onTypingStatusChanged","subscribeMessages","liveChatResponseForWidget","liveChatObject","OhLiveChat","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","init","readUpTo","getAllMessages","allLiveChatMessages","getUserDetail","userDetail","convertLiveChatMessageToInteraction","messageObject","oldMessageArray","sentByMessage","image_url","message_type","document_url","video_mp4","video_ogv","Audio","default","console","log","val","setLiveChatObj","RequireConsent","consentRef","bodyText","link","linkText","ConsentButtons","consented","onConsentClick","consentText","onMessageSent","requireConsent","messageContainer","closest","yesText","noText","TimeZoneQuestion","showModal","timezoneName","Timeago","ChatTimestamp","setNow","interval","setInterval","clearInterval","sentBy","ContactTimestamp","words","allowFuture","substitute","stringOrFunction","num","strings","str","isFunction","dateDifference","numbers","nowTime","timestrings","day","days","hour","minute","months","prefixAgo","prefixFromNow","seconds","suffixAgo","suffixFromNow","wordSeparator","years","abs","separator","prefix","suffix","round","functionToCheck","call","ViewAgainButton","viewed","viewAgainText","DenyConsent","AnswerInput","textBox","classes","validate","Select","setSticky","resizeCount","setResizeCount","hasContent","useLayoutEffect","renderMessageBody","video_ogg","renderImageMessage","renderDocumentMessage","renderUrlMessage","button_text","privacy_policy_link","privacy_policy_link_text","MessageExtras","deny_button_text","accept_button_text","view_again_button_text","twoDigits","messageTitle","startOfDay","getHours","getMinutes","toLocaleDateString","WidgetMessage","showTimestamp","isDefaultBotIcon","sticky","isHandOffInteraction","prefetchConfig","entries","entry","liveChatAgentAcceptsMessage","select","endChatWithoutMessage","colorCode","r","g","LiveChatInput","textDisabled","createPromotionalMessage","TypingIndication","liveChatUser","isBotTyping","started","showTimestampFactory","acceptMessageIndex","limitExceededMessage","isConvEnded","convEnded","WidgetBody","ended","endConv","textAlign","bar","scrollBar","scrollBarValues","getValues","scrollTop","scrollHeight","scrollToBottom","ID_PREFIX","renderTextComponent","renderMessageInteraction","NotificationMessage","renderQuestion","HorizontalTrack","WidgetNotification","unread","upperDiv","lowerDiv","lower","upper","observer","ResizeObserver","observe","scrollBarInner","removeListeners","handleWindowResize","addListeners","update","forceUpdate","autoHide","renderTrackHorizontal","findPos","header","chatHeaderHeight","isScrollUp","setTabTitle","Widget","popUpDisplay","root","threshold","showAlertBanner","firstUnreadMessageId","unreadAgentMsgCount","setUnreadAgentMsgCount","titleToggle","IntersectionObserver","isIntersecting","hideUnreadBanner","result","titleCount","msgStr","titleMsg","hasFocus","notifications","shouldShouldNotifications","restarting","stopPropagation","firstMessageId","widgetState","scrollId","firstMessageIdRef","lastMessageId","pos","getScrollHeight","getScrollTop","messageHeightOffset","useScrollManager","appState","updateReadCount","notificationEffect","removeWidget","openWidgetOnInit","sessionDuration","work","visibilityState","timeoutEffect","onScrollFrame","App","documentElement","location","hostname","match","analyticCookieCommand","callType","xmlhttp","XMLHttpRequest","onreadystatechange","readyState","getResponseHeader","setAnalytics","withCredentials","setRequestHeader","website_slug","cookieType","page_url","element","ReactDOM","unmountComponentAtNode","render","page_title","direct_bot","start_time","bot_display_type","REACT_APP_ENV","attributes","REACT_APP_WEBSITE_ID","REACT_APP_WIDGET_PREVIEW","REACT_APP_WIDGET_STANDALONE","REACT_APP_BOT_ID","serviceWorker","ready","registration","unregister","setStrategy"],"mappings":"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GACpBC,mBAAoB,QAGxB,IAAK,CACH,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,QACTC,OAAQ,QACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAK,CACH,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,SACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,QAGxB,IAAK,CACH,CACER,GAAI,MACJC,UAAW,KACXC,QAAS,WACTC,OAAQ,SACRC,SAAU,GACVC,SAAU,EACVC,aAAc,EACdC,mBAAoB,GACpBC,mBAAoB,UAK5BI,kBAAmB,CACjB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,S,28JCzoRJ,OAAe,cAA0B,uC,sMCE7BC,EAQAC,EAIAC,E,gHAZAF,K,gBAAAA,E,0BAAAA,E,mBAAAA,E,yBAAAA,M,cAQAC,K,sFAAAA,E,iDAAAA,M,cAIAC,K,gBAAAA,M,KAYL,IAAMC,EAAkB,CAC7B,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAqCWC,EAAoB,YA4BpBC,EAA4B,wBAC5BC,EAA4B,wBAC5BC,EAA6B,yB,gBC5I7BC,EAAb,+FAME,WACE,OAAOC,KAAKC,iBAPhB,uBAUE,SAAwBC,GACtB,IAAMC,EAAiBH,KAAKI,eAC5BJ,KAAKC,eAAiBC,EAAYG,cAAcC,MAChDN,KAAKO,eAAiBL,EAAYM,cAAcF,MAChDN,KAAKS,iBAAmBN,GAAkBD,EAAYC,eAAeG,QAdzE,wBAiBE,WACE,OAAON,KAAKO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","file":"static/js/main.d9ef867c.chunk.js","sourcesContent":["module.exports = {\n TimeZones: [\n {\n 1: [\n {\n Id: \"1\",\n ShortName: \"\",\n Country: \"(UTC/GMT)\",\n Region: \"\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"\",\n },\n ],\n 2: [\n {\n Id: \"2\",\n ShortName: \"AF\",\n Country: \"Afghanistan\",\n Region: \"Kabul\",\n CityList: \"\",\n TimeZone: 4.5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"93\",\n },\n ],\n 3: [\n {\n Id: \"3\",\n ShortName: \"AL\",\n Country: \"Albania\",\n Region: \"Tirane\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"355\",\n },\n ],\n 4: [\n {\n Id: \"4\",\n ShortName: \"DZ\",\n Country: \"Algeria\",\n Region: \"Algiers\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"213\",\n },\n ],\n 5: [\n {\n Id: \"5\",\n ShortName: \"AS\",\n Country: \"American Samoa\",\n Region: \"Pago Pago\",\n CityList: \"\",\n TimeZone: -11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1684\",\n },\n ],\n 6: [\n {\n Id: \"6\",\n ShortName: \"AD\",\n Country: \"Andorra\",\n Region: \"Andorra La Vella\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"376\",\n },\n ],\n 7: [\n {\n Id: \"7\",\n ShortName: \"AO\",\n Country: \"Angola\",\n Region: \"Luanda\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"244\",\n },\n ],\n 8: [\n {\n Id: \"8\",\n ShortName: \"AI\",\n Country: \"Anguilla\",\n Region: \"Crocus Hill\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1264\",\n },\n ],\n 9: [\n {\n Id: \"9\",\n ShortName: \"AG\",\n Country: \"Antigua and Barbuda\",\n Region: \"St. Johns\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1268\",\n },\n ],\n 10: [\n {\n Id: \"10\",\n ShortName: \"AR\",\n Country: \"Argentina\",\n Region: \"East (Buenos Aires)\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"54\",\n },\n ],\n 290: [\n {\n Id: \"290\",\n ShortName: \"AR\",\n Country: \"Argentina\",\n Region: \"San Luis\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"54\",\n },\n ],\n 291: [\n {\n Id: \"291\",\n ShortName: \"AR\",\n Country: \"Argentina\",\n Region: \"West, Jujuy\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"54\",\n },\n ],\n 11: [\n {\n Id: \"11\",\n ShortName: \"AM\",\n Country: \"Armenia\",\n Region: \"Yerevan\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"374\",\n },\n ],\n 12: [\n {\n Id: \"12\",\n ShortName: \"AW\",\n Country: \"Aruba\",\n Region: \"Oranjestad\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"297\",\n },\n ],\n 13: [\n {\n Id: \"13\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region: \"Western Australia (Perth)\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 6,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\",\n },\n ],\n 14: [\n {\n Id: \"14\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region: \"Northern Territory (Darwin, Alice Springs)\",\n CityList: \"\",\n TimeZone: 9.5,\n DisplayOrder: 4,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\",\n },\n ],\n 15: [\n {\n Id: \"15\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region: \"South Australia (Adelaide)\",\n CityList: \"\",\n TimeZone: 9.5,\n DisplayOrder: 3,\n HasDayLightSavings: [\n {\n offset: \"10.5\",\n startTimeMili: \"1349541000000\",\n endTimeMili: \"1365265800000\",\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1380990600000\",\n endTimeMili: \"1396715400000\",\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1412440200000\",\n endTimeMili: \"1428165000000\",\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1443889800000\",\n endTimeMili: \"1459614600000\",\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1475339400000\",\n endTimeMili: \"1491064200000\",\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1506789000000\",\n endTimeMili: \"1522513800000\",\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1538843400000\",\n endTimeMili: \"1554568200000\",\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1570293000000\",\n endTimeMili: \"1586017800000\",\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1601742600000\",\n endTimeMili: \"1617467400000\",\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1633192200000\",\n endTimeMili: \"1648917000000\",\n },\n {\n offset: \"10.5\",\n startTimeMili: \"1664641800000\",\n endTimeMili: \"1680366600000\",\n },\n ],\n CountryCallingCode: \"61\",\n },\n ],\n 16: [\n {\n Id: \"16\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region:\n \"New South Wales, Victoria, Tasmania (Sydney, Melbourne, Canberra, Hobart)\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"11\",\n startTimeMili: \"1349539200000\",\n endTimeMili: \"1365264000000\",\n },\n {\n offset: \"11\",\n startTimeMili: \"1380988800000\",\n endTimeMili: \"1396713600000\",\n },\n {\n offset: \"11\",\n startTimeMili: \"1412438400000\",\n endTimeMili: \"1428163200000\",\n },\n {\n offset: \"11\",\n startTimeMili: \"1443888000000\",\n endTimeMili: \"1459612800000\",\n },\n {\n offset: \"11\",\n startTimeMili: \"1475337600000\",\n endTimeMili: \"1491062400000\",\n },\n {\n offset: \"11\",\n startTimeMili: \"1506787200000\",\n endTimeMili: \"1522512000000\",\n },\n {\n offset: \"11\",\n startTimeMili: \"1538841600000\",\n endTimeMili: \"1554566400000\",\n },\n {\n offset: \"11\",\n startTimeMili: \"1570291200000\",\n endTimeMili: \"1586016000000\",\n },\n {\n offset: \"11\",\n startTimeMili: \"1601740800000\",\n endTimeMili: \"1617465600000\",\n },\n {\n offset: \"11\",\n startTimeMili: \"1633190400000\",\n endTimeMili: \"1648915200000\",\n },\n {\n offset: \"11\",\n startTimeMili: \"1664640000000\",\n endTimeMili: \"1680364800000\",\n },\n ],\n CountryCallingCode: \"61\",\n },\n ],\n 17: [\n {\n Id: \"17\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region: \"Queensland (Brisbane, Cairns)\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\",\n },\n ],\n 302: [\n {\n Id: \"302\",\n ShortName: \"AU\",\n Country: \"Australia\",\n Region: \"Central Western Time (Eucla)\",\n CityList: \"\",\n TimeZone: 8.75,\n DisplayOrder: 5,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\",\n },\n ],\n 18: [\n {\n Id: \"18\",\n ShortName: \"AT\",\n Country: \"Austria\",\n Region: \"Vienna, Salzburg\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"43\",\n },\n ],\n 19: [\n {\n Id: \"19\",\n ShortName: \"AZ\",\n Country: \"Azerbaijan\",\n Region: \"Baku\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"994\",\n },\n ],\n 20: [\n {\n Id: \"20\",\n ShortName: \"BS\",\n Country: \"Bahamas\",\n Region: \"Nassau\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1331449200000\",\n endTimeMili: \"1352008800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1362898800000\",\n endTimeMili: \"1383458400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394348400000\",\n endTimeMili: \"1414908000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425798000000\",\n endTimeMili: \"1446357600000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457852400000\",\n endTimeMili: \"1478412000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489302000000\",\n endTimeMili: \"1509861600000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520751600000\",\n endTimeMili: \"1541311200000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552201200000\",\n endTimeMili: \"1572760800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583650800000\",\n endTimeMili: \"1604210400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615705200000\",\n endTimeMili: \"1636264800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647154800000\",\n endTimeMili: \"1667714400000\",\n },\n ],\n CountryCallingCode: \"1242\",\n },\n ],\n 21: [\n {\n Id: \"21\",\n ShortName: \"BH\",\n Country: \"Bahrain\",\n Region: \"Manama\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"973\",\n },\n ],\n 22: [\n {\n Id: \"22\",\n ShortName: \"BD\",\n Country: \"Bangladesh\",\n Region: \"Dhaka\",\n CityList: \"\",\n TimeZone: 6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"880\",\n },\n ],\n 23: [\n {\n Id: \"23\",\n ShortName: \"BB\",\n Country: \"Barbados\",\n Region: \"Bridgetown\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 24: [\n {\n Id: \"24\",\n ShortName: \"BY\",\n Country: \"Belarus\",\n Region: \"Minsk\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"375\",\n },\n ],\n 25: [\n {\n Id: \"25\",\n ShortName: \"BE\",\n Country: \"Belgium\",\n Region: \"Brussels\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"32\",\n },\n ],\n 26: [\n {\n Id: \"26\",\n ShortName: \"BZ\",\n Country: \"Belize\",\n Region: \"Belize City\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"501\",\n },\n ],\n 27: [\n {\n Id: \"27\",\n ShortName: \"BJ\",\n Country: \"Benin\",\n Region: \"Cotonou\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"229\",\n },\n ],\n 28: [\n {\n Id: \"28\",\n ShortName: \"BM\",\n Country: \"Bermuda\",\n Region: \"Hamilton\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-3\",\n startTimeMili: \"1331445600000\",\n endTimeMili: \"1352005200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1362895200000\",\n endTimeMili: \"1383454800000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1394344800000\",\n endTimeMili: \"1414904400000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1425794400000\",\n endTimeMili: \"1446354000000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1457848800000\",\n endTimeMili: \"1478408400000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1489298400000\",\n endTimeMili: \"1509858000000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1520748000000\",\n endTimeMili: \"1541307600000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1552197600000\",\n endTimeMili: \"1572757200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1583647200000\",\n endTimeMili: \"1604206800000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1615701600000\",\n endTimeMili: \"1636261200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1647151200000\",\n endTimeMili: \"1667710800000\",\n },\n ],\n CountryCallingCode: \"1441\",\n },\n ],\n 29: [\n {\n Id: \"29\",\n ShortName: \"BT\",\n Country: \"Bhutan\",\n Region: \"Thimphu\",\n CityList: \"\",\n TimeZone: 6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"975\",\n },\n ],\n 30: [\n {\n Id: \"30\",\n ShortName: \"BO\",\n Country: \"Bolivia\",\n Region: \"La Paz\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"591\",\n },\n ],\n 31: [\n {\n Id: \"31\",\n ShortName: \"BA\",\n Country: \"Bosnia and Herzegovina\",\n Region: \"Sarajevo\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"387\",\n },\n ],\n 32: [\n {\n Id: \"32\",\n ShortName: \"BW\",\n Country: \"Botswana\",\n Region: \"Gaborone\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"267\",\n },\n ],\n 33: [\n {\n Id: \"33\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Fernando de Noronha (Vila dos Remedios)\",\n CityList: \"\",\n TimeZone: -2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\",\n },\n ],\n 34: [\n {\n Id: \"34\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Eastern Brazil (Fortaleza , Recife, Salvador)\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\",\n },\n ],\n 35: [\n {\n Id: \"35\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Central Brazil (Rio de Janeiro, Sao Paulo, Brasilia)\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\",\n },\n ],\n 36: [\n {\n Id: \"36\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Northern Brazil (Porto Velho, Boa Vista)\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 5,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\",\n },\n ],\n 37: [\n {\n Id: \"37\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Mato Grosso, Mato Grosso do Sul (Cuiaba, Campo Grande)\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 6,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\",\n },\n ],\n 301: [\n {\n Id: \"301\",\n ShortName: \"BR\",\n Country: \"Brazil\",\n Region: \"Santarem\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 4,\n HasDayLightSavings: [],\n CountryCallingCode: \"55\",\n },\n ],\n 39: [\n {\n Id: \"39\",\n ShortName: \"BN\",\n Country: \"Brunei Darussalam\",\n Region: \"Bandar Seri Begawan\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"673\",\n },\n ],\n 40: [\n {\n Id: \"40\",\n ShortName: \"BG\",\n Country: \"Bulgaria\",\n Region: \"Sofia\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"359\",\n },\n ],\n 41: [\n {\n Id: \"41\",\n ShortName: \"BF\",\n Country: \"Burkina Faso\",\n Region: \"Ouagadougou\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"226\",\n },\n ],\n 42: [\n {\n Id: \"42\",\n ShortName: \"BI\",\n Country: \"Burundi\",\n Region: \"Bujumbura\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"257\",\n },\n ],\n 43: [\n {\n Id: \"43\",\n ShortName: \"KH\",\n Country: \"Cambodia\",\n Region: \"Phnom Penh\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"855\",\n },\n ],\n 44: [\n {\n Id: \"44\",\n ShortName: \"CM\",\n Country: \"Cameroon\",\n Region: \"Yaounde\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"237\",\n },\n ],\n 46: [\n {\n Id: \"46\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Newfoundland Time (St. Johns)\",\n CityList: \"\",\n TimeZone: -3.5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-2.5\",\n startTimeMili: \"1331443800000\",\n endTimeMili: \"1352003400000\",\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1362893400000\",\n endTimeMili: \"1383453000000\",\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1394343000000\",\n endTimeMili: \"1414902600000\",\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1425792600000\",\n endTimeMili: \"1446352200000\",\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1457847000000\",\n endTimeMili: \"1478406600000\",\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1489296600000\",\n endTimeMili: \"1509856200000\",\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1520746200000\",\n endTimeMili: \"1541305800000\",\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1552195800000\",\n endTimeMili: \"1572755400000\",\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1583645400000\",\n endTimeMili: \"1604205000000\",\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1615699800000\",\n endTimeMili: \"1636259400000\",\n },\n {\n offset: \"-2.5\",\n startTimeMili: \"1647149400000\",\n endTimeMili: \"1667709000000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 47: [\n {\n Id: \"47\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Atlantic Time (Halifax, Fredericton)\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"-3\",\n startTimeMili: \"1331445600000\",\n endTimeMili: \"1352005200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1362895200000\",\n endTimeMili: \"1383454800000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1394344800000\",\n endTimeMili: \"1414904400000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1425794400000\",\n endTimeMili: \"1446354000000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1457848800000\",\n endTimeMili: \"1478408400000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1489298400000\",\n endTimeMili: \"1509858000000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1520748000000\",\n endTimeMili: \"1541307600000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1552197600000\",\n endTimeMili: \"1572757200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1583647200000\",\n endTimeMili: \"1604206800000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1615701600000\",\n endTimeMili: \"1636261200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1647151200000\",\n endTimeMili: \"1667710800000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 49: [\n {\n Id: \"49\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Atlantic Time - not observing DST (Blanc-Sablon)\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 50: [\n {\n Id: \"50\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Eastern Time (Toronto, Montreal, Quebec, Ottawa)\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 4,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1331449200000\",\n endTimeMili: \"1352008800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1362898800000\",\n endTimeMili: \"1383458400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394348400000\",\n endTimeMili: \"1414908000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425798000000\",\n endTimeMili: \"1446357600000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457852400000\",\n endTimeMili: \"1478412000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489302000000\",\n endTimeMili: \"1509861600000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520751600000\",\n endTimeMili: \"1541311200000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552201200000\",\n endTimeMili: \"1572760800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583650800000\",\n endTimeMili: \"1604210400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615705200000\",\n endTimeMili: \"1636264800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647154800000\",\n endTimeMili: \"1667714400000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 51: [\n {\n Id: \"51\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Central Time (Winnipeg)\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 6,\n HasDayLightSavings: [\n {\n offset: \"-5\",\n startTimeMili: \"1331452800000\",\n endTimeMili: \"1351839600000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1362902400000\",\n endTimeMili: \"1383462000000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1394352000000\",\n endTimeMili: \"1414911600000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1425801600000\",\n endTimeMili: \"1446364800000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1457856000000\",\n endTimeMili: \"1478419200000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1489305600000\",\n endTimeMili: \"1509868800000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1520755200000\",\n endTimeMili: \"1541314800000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1552204800000\",\n endTimeMili: \"1572764400000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1583654400000\",\n endTimeMili: \"1604214000000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1615708800000\",\n endTimeMili: \"1636268400000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1647158400000\",\n endTimeMili: \"1667718000000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 53: [\n {\n Id: \"53\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Central Time - not observing DST (Regina, Saskatoon)\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 7,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 55: [\n {\n Id: \"55\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Mountain Time (Edmonton, Calgary)\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 8,\n HasDayLightSavings: [\n {\n offset: \"-6\",\n startTimeMili: \"1331456400000\",\n endTimeMili: \"1352016000000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1362906000000\",\n endTimeMili: \"1383465600000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1394355600000\",\n endTimeMili: \"1414915200000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1425805200000\",\n endTimeMili: \"1446364800000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1457859600000\",\n endTimeMili: \"1478419200000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1489309200000\",\n endTimeMili: \"1509868800000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1520758800000\",\n endTimeMili: \"1541318400000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1552208400000\",\n endTimeMili: \"1572768000000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1583658000000\",\n endTimeMili: \"1604217600000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1615712400000\",\n endTimeMili: \"1636272000000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1647162000000\",\n endTimeMili: \"1667721600000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 56: [\n {\n Id: \"56\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Mountain Time - not observing DST (Fort St. John)\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 9,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 57: [\n {\n Id: \"57\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Pacific Time (Whitehorse)\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 10,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 303: [\n {\n Id: \"303\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Eastern Time - not observing DST (Coral Harbour)\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 5,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 304: [\n {\n Id: \"304\",\n ShortName: \"CA\",\n Country: \"Canada\",\n Region: \"Pacific Time (Vancouver)\",\n CityList: \"\",\n TimeZone: -8,\n DisplayOrder: 11,\n HasDayLightSavings: [\n {\n offset: \"-7\",\n startTimeMili: \"1331460000000\",\n endTimeMili: \"1352019600000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1362909600000\",\n endTimeMili: \"1383469200000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1394359200000\",\n endTimeMili: \"1414918800000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1425808800000\",\n endTimeMili: \"1446368400000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1457863200000\",\n endTimeMili: \"1478422800000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1489312800000\",\n endTimeMili: \"1509872400000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1520762400000\",\n endTimeMili: \"1541322000000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1552212000000\",\n endTimeMili: \"1572771600000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1583661600000\",\n endTimeMili: \"1604221200000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1615716000000\",\n endTimeMili: \"1636275600000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1647165600000\",\n endTimeMili: \"1667725200000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 58: [\n {\n Id: \"58\",\n ShortName: \"CV\",\n Country: \"Cape Verde\",\n Region: \"Praia\",\n CityList: \"\",\n TimeZone: -1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"238\",\n },\n ],\n 59: [\n {\n Id: \"59\",\n ShortName: \"KY\",\n Country: \"Cayman Islands\",\n Region: \"George Town\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 60: [\n {\n Id: \"60\",\n ShortName: \"CF\",\n Country: \"Central African Republic\",\n Region: \"Bangui\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"236\",\n },\n ],\n 61: [\n {\n Id: \"61\",\n ShortName: \"TD\",\n Country: \"Chad\",\n Region: \"NDjamena\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"235\",\n },\n ],\n 62: [\n {\n Id: \"62\",\n ShortName: \"CL\",\n Country: \"Chile\",\n Region: \"Santiago\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-3\",\n startTimeMili: \"1410062400000\",\n endTimeMili: \"1463281200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1471147200000\",\n endTimeMili: \"1494730800000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1502596800000\",\n endTimeMili: \"1526176800000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1534050000000\",\n endTimeMili: \"1554602400000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1567918800000\",\n endTimeMili: \"1586052000000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1599368400000\",\n endTimeMili: \"1617501600000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1630818000000\",\n endTimeMili: \"1648951200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1662267600000\",\n endTimeMili: \"1680400800000\",\n },\n ],\n CountryCallingCode: \"56\",\n },\n ],\n 63: [\n {\n Id: \"63\",\n ShortName: \"CL\",\n Country: \"Chile - Easter Island\",\n Region: \"Easter Island\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-5\",\n startTimeMili: \"1410062400000\",\n endTimeMili: \"1463281200000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1471147200000\",\n endTimeMili: \"1494730800000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1502596800000\",\n endTimeMili: \"1526180400000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1534042800000\",\n endTimeMili: \"1554606000000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1567911600000\",\n endTimeMili: \"1586055600000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1599361200000\",\n endTimeMili: \"1617505200000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1630810800000\",\n endTimeMili: \"1648954800000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1662260400000\",\n endTimeMili: \"1680404400000\",\n },\n ],\n CountryCallingCode: \"56\",\n },\n ],\n 64: [\n {\n Id: \"64\",\n ShortName: \"CN\",\n Country: \"China\",\n Region: \"Beijing, Shanghai, Chengdu\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"86\",\n },\n ],\n 65: [\n {\n Id: \"65\",\n ShortName: \"CX\",\n Country: \"Christmas Island\",\n Region: \"The Settlement\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\",\n },\n ],\n 66: [\n {\n Id: \"66\",\n ShortName: \"CC\",\n Country: \"Cocos (Keeling) Islands\",\n Region: \"West Island\",\n CityList: \"\",\n TimeZone: 6.5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"61\",\n },\n ],\n 67: [\n {\n Id: \"67\",\n ShortName: \"CO\",\n Country: \"Colombia\",\n Region: \"Bogota\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"57\",\n },\n ],\n 68: [\n {\n Id: \"68\",\n ShortName: \"KM\",\n Country: \"Comoros\",\n Region: \"Moroni\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"269\",\n },\n ],\n 69: [\n {\n Id: \"69\",\n ShortName: \"CD\",\n Country: \"Congo\",\n Region: \"Brazzaville\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"242\",\n },\n ],\n 70: [\n {\n Id: \"70\",\n ShortName: \"CD\",\n Country: \"Congo, The Democratic Republic of the\",\n Region: \"Eastern (Kananga, Kolwezi, Lubumbashi, Mbuji-Mayi)\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"243\",\n },\n ],\n 71: [\n {\n Id: \"71\",\n ShortName: \"CD\",\n Country: \"Congo, The Democratic Republic of the\",\n Region: \"Western (Kinshasa)\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"243\",\n },\n ],\n 72: [\n {\n Id: \"72\",\n ShortName: \"CK\",\n Country: \"Cook Islands\",\n Region: \"Rarotonga\",\n CityList: \"\",\n TimeZone: -10,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"682\",\n },\n ],\n 73: [\n {\n Id: \"73\",\n ShortName: \"CR\",\n Country: \"Costa Rica\",\n Region: \"San Jose\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"506\",\n },\n ],\n 75: [\n {\n Id: \"75\",\n ShortName: \"HR\",\n Country: \"Croatia\",\n Region: \"Zagreb\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"385\",\n },\n ],\n 76: [\n {\n Id: \"76\",\n ShortName: \"CU\",\n Country: \"Cuba\",\n Region: \"Havana\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1362891600000\",\n endTimeMili: \"1383454800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394341200000\",\n endTimeMili: \"1414904400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425790800000\",\n endTimeMili: \"1446354000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457845200000\",\n endTimeMili: \"1478408400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489294800000\",\n endTimeMili: \"1509858000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520748000000\",\n endTimeMili: \"1541307600000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552197600000\",\n endTimeMili: \"1572757200000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583647200000\",\n endTimeMili: \"1604206800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615701600000\",\n endTimeMili: \"1636261200000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647151200000\",\n endTimeMili: \"1667710800000\",\n },\n ],\n CountryCallingCode: \"53\",\n },\n ],\n 293: [\n {\n Id: \"293\",\n ShortName: \"CW\",\n Country: \"Curacao\",\n Region: \"Willemstad\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"599\",\n },\n ],\n 77: [\n {\n Id: \"77\",\n ShortName: \"CY\",\n Country: \"Cyprus\",\n Region: \"Nicosia\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"357\",\n },\n ],\n 78: [\n {\n Id: \"78\",\n ShortName: \"CZ\",\n Country: \"Czech Republic\",\n Region: \"Prague\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"420\",\n },\n ],\n 79: [\n {\n Id: \"79\",\n ShortName: \"DK\",\n Country: \"Denmark\",\n Region: \"Copenhagen\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"45\",\n },\n ],\n 80: [\n {\n Id: \"80\",\n ShortName: \"DJ\",\n Country: \"Djibouti\",\n Region: \"Djibouti\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"253\",\n },\n ],\n 81: [\n {\n Id: \"81\",\n ShortName: \"DM\",\n Country: \"Dominica\",\n Region: \"Roseau\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1767\",\n },\n ],\n 82: [\n {\n Id: \"82\",\n ShortName: \"DO\",\n Country: \"Dominican Republic\",\n Region: \"Santo Domingo\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1809\",\n },\n ],\n 83: [\n {\n Id: \"83\",\n ShortName: \"EC\",\n Country: \"Ecuador\",\n Region: \"Quito\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"593\",\n },\n ],\n 84: [\n {\n Id: \"84\",\n ShortName: \"EC\",\n Country: \"Ecuador - Galapagos Islands\",\n Region: \"Galapagos Islands\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"593\",\n },\n ],\n 85: [\n {\n Id: \"85\",\n ShortName: \"EG\",\n Country: \"Egypt\",\n Region: \"Cairo\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"20\",\n },\n ],\n 86: [\n {\n Id: \"86\",\n ShortName: \"SV\",\n Country: \"El Salvador\",\n Region: \"San Salvador\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"503\",\n },\n ],\n 87: [\n {\n Id: \"87\",\n ShortName: \"GQ\",\n Country: \"Equatorial Guinea\",\n Region: \"Malabo\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"240\",\n },\n ],\n 88: [\n {\n Id: \"88\",\n ShortName: \"ER\",\n Country: \"Eritrea\",\n Region: \"Asmara\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"291\",\n },\n ],\n 89: [\n {\n Id: \"89\",\n ShortName: \"EE\",\n Country: \"Estonia\",\n Region: \"Tallinn\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"372\",\n },\n ],\n 90: [\n {\n Id: \"90\",\n ShortName: \"ET\",\n Country: \"Ethiopia\",\n Region: \"Addis Ababa\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"251\",\n },\n ],\n 91: [\n {\n Id: \"91\",\n ShortName: \"FK\",\n Country: \"Falkland Islands (Malvinas)\",\n Region: \"Port Stanley\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"500\",\n },\n ],\n 92: [\n {\n Id: \"92\",\n ShortName: \"FO\",\n Country: \"Faroe Islands\",\n Region: \"Torshaven\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"298\",\n },\n ],\n 93: [\n {\n Id: \"93\",\n ShortName: \"FJ\",\n Country: \"Fiji\",\n Region: \"Suva\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"13\",\n startTimeMili: \"1319292000000\",\n endTimeMili: \"1327154400000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1350741600000\",\n endTimeMili: \"1358604000000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1382796000000\",\n endTimeMili: \"1390053600000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1414245600000\",\n endTimeMili: \"1422108000000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1445695200000\",\n endTimeMili: \"1453557600000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1478354400000\",\n endTimeMili: \"1484402400000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1509804000000\",\n endTimeMili: \"1515852000000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1541253600000\",\n endTimeMili: \"1547301600000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1573308000000\",\n endTimeMili: \"1578751200000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1608386400000\",\n endTimeMili: \"1610805600000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1636812000000\",\n endTimeMili: \"1642255200000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1668261600000\",\n endTimeMili: \"1673704800000\",\n },\n ],\n CountryCallingCode: \"679\",\n },\n ],\n 94: [\n {\n Id: \"94\",\n ShortName: \"FI\",\n Country: \"Finland\",\n Region: \"Helsinki\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"358\",\n },\n ],\n 95: [\n {\n Id: \"95\",\n ShortName: \"FR\",\n Country: \"France\",\n Region: \"Paris\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"33\",\n },\n ],\n 96: [\n {\n Id: \"96\",\n ShortName: \"GF\",\n Country: \"French Guiana\",\n Region: \"Cayenne\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"594\",\n },\n ],\n 97: [\n {\n Id: \"97\",\n ShortName: \"PF\",\n Country: \"French Polynesia\",\n Region: \"Gambier Islands\",\n CityList: \"\",\n TimeZone: -9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"689\",\n },\n ],\n 98: [\n {\n Id: \"98\",\n ShortName: \"PF\",\n Country: \"French Polynesia\",\n Region: \"Marquesas Islands\",\n CityList: \"\",\n TimeZone: -9.5,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"689\",\n },\n ],\n 99: [\n {\n Id: \"99\",\n ShortName: \"PF\",\n Country: \"French Polynesia\",\n Region:\n \"Society Archipelago (including Tahiti), Tuamotu Archipelago, Tubuai Islands\",\n CityList: \"\",\n TimeZone: -10,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"689\",\n },\n ],\n 100: [\n {\n Id: \"100\",\n ShortName: \"GA\",\n Country: \"Gabon\",\n Region: \"Libreville\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"241\",\n },\n ],\n 101: [\n {\n Id: \"101\",\n ShortName: \"GM\",\n Country: \"Gambia\",\n Region: \"Banjul\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"220\",\n },\n ],\n 102: [\n {\n Id: \"102\",\n ShortName: \"GE\",\n Country: \"Georgia\",\n Region: \"Tbilisi\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"995\",\n },\n ],\n 103: [\n {\n Id: \"103\",\n ShortName: \"DE\",\n Country: \"Germany\",\n Region: \"Berlin, Bonn, Frankfurt\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"49\",\n },\n ],\n 104: [\n {\n Id: \"104\",\n ShortName: \"GH\",\n Country: \"Ghana\",\n Region: \"Accra\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"233\",\n },\n ],\n 105: [\n {\n Id: \"105\",\n ShortName: \"GI\",\n Country: \"Gibraltar\",\n Region: \"Gibraltar\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351382400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445731200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"350\",\n },\n ],\n 106: [\n {\n Id: \"106\",\n ShortName: \"GR\",\n Country: \"Greece\",\n Region: \"Athens\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"30\",\n },\n ],\n 107: [\n {\n Id: \"107\",\n ShortName: \"GL\",\n Country: \"Greenland\",\n Region: \"Ittoqqortoormiit, Nerlerit Inaat (Scoresbysund)\",\n CityList: \"\",\n TimeZone: -1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"0\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1521943200000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1553997600000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1585447200000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1616896800000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1648346400000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"299\",\n },\n ],\n 108: [\n {\n Id: \"108\",\n ShortName: \"GL\",\n Country: \"Greenland\",\n Region: \"Greenland (Nuuk)\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"-2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1521936000000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1553990400000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1585440000000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1616889600000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1648339200000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"299\",\n },\n ],\n 109: [\n {\n Id: \"109\",\n ShortName: \"GL\",\n Country: \"Greenland\",\n Region: \"Pituffik (Thule)\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 3,\n HasDayLightSavings: [\n {\n offset: \"-3\",\n startTimeMili: \"1331445600000\",\n endTimeMili: \"1352005200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1362895200000\",\n endTimeMili: \"1383454800000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1394344800000\",\n endTimeMili: \"1414904400000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1425794400000\",\n endTimeMili: \"1446354000000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1457848800000\",\n endTimeMili: \"1478408400000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1489298400000\",\n endTimeMili: \"1509858000000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1520748000000\",\n endTimeMili: \"1541307600000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1552197600000\",\n endTimeMili: \"1572757200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1583647200000\",\n endTimeMili: \"1604206800000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1615701600000\",\n endTimeMili: \"1636261200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1647151200000\",\n endTimeMili: \"1667710800000\",\n },\n ],\n CountryCallingCode: \"299\",\n },\n ],\n 110: [\n {\n Id: \"110\",\n ShortName: \"GD\",\n Country: \"Grenada\",\n Region: \"Saint Georges\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1473\",\n },\n ],\n 111: [\n {\n Id: \"111\",\n ShortName: \"GP\",\n Country: \"Guadeloupe\",\n Region: \"Pointe-a-Pitre\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"590\",\n },\n ],\n 112: [\n {\n Id: \"112\",\n ShortName: \"GU\",\n Country: \"Guam\",\n Region: \"Hagatna\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1671\",\n },\n ],\n 113: [\n {\n Id: \"113\",\n ShortName: \"GT\",\n Country: \"Guatemala\",\n Region: \"Guatemala City\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"502\",\n },\n ],\n 298: [\n {\n Id: \"298\",\n ShortName: \"GG\",\n Country: \"Guernsey\",\n Region: \"St. Peter Port\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"44\",\n },\n ],\n 114: [\n {\n Id: \"114\",\n ShortName: \"GN\",\n Country: \"Guinea\",\n Region: \"Conakry\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"224\",\n },\n ],\n 115: [\n {\n Id: \"115\",\n ShortName: \"GW\",\n Country: \"Guinea-Bissau\",\n Region: \"Bissau\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"245\",\n },\n ],\n 116: [\n {\n Id: \"116\",\n ShortName: \"GY\",\n Country: \"Guyana\",\n Region: \"Georgetown\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"592\",\n },\n ],\n 117: [\n {\n Id: \"117\",\n ShortName: \"HT\",\n Country: \"Haiti\",\n Region: \"Port-au-Prince\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1362898800000\",\n endTimeMili: \"1383458400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394348400000\",\n endTimeMili: \"1414908000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425798000000\",\n endTimeMili: \"1446357600000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457852400000\",\n endTimeMili: \"1478412000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489302000000\",\n endTimeMili: \"1509861600000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520751600000\",\n endTimeMili: \"1541311200000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552201200000\",\n endTimeMili: \"1572760800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583650800000\",\n endTimeMili: \"1604210400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615705200000\",\n endTimeMili: \"1636264800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647154800000\",\n endTimeMili: \"1667714400000\",\n },\n ],\n CountryCallingCode: \"509\",\n },\n ],\n 118: [\n {\n Id: \"118\",\n ShortName: \"HN\",\n Country: \"Honduras\",\n Region: \"Tegucigalpa\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"504\",\n },\n ],\n 119: [\n {\n Id: \"119\",\n ShortName: \"HK\",\n Country: \"Hong Kong\",\n Region: \"Hong Kong\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"852\",\n },\n ],\n 120: [\n {\n Id: \"120\",\n ShortName: \"HU\",\n Country: \"Hungary\",\n Region: \"Budapest\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"36\",\n },\n ],\n 121: [\n {\n Id: \"121\",\n ShortName: \"IS\",\n Country: \"Iceland\",\n Region: \"Reykjavik\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"354\",\n },\n ],\n 122: [\n {\n Id: \"122\",\n ShortName: \"IN\",\n Country: \"India\",\n Region: \"New Delhi, Bangalore, Kolkata, Chennai, Mumbai\",\n CityList: \"\",\n TimeZone: 5.5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"91\",\n },\n ],\n 123: [\n {\n Id: \"123\",\n ShortName: \"ID\",\n Country: \"Indonesia\",\n Region: \"Central (Denpasar, Banjarmasin, Kupang, Makassar)\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"62\",\n },\n ],\n 124: [\n {\n Id: \"124\",\n ShortName: \"ID\",\n Country: \"Indonesia\",\n Region: \"Eastern (Ambon, Jayapura)\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"62\",\n },\n ],\n 125: [\n {\n Id: \"125\",\n ShortName: \"ID\",\n Country: \"Indonesia\",\n Region: \"Western (Jakarta, Medan, Surabaya)\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"62\",\n },\n ],\n 126: [\n {\n Id: \"126\",\n ShortName: \"IR\",\n Country: \"Iran, Islamic Republic of\",\n Region: \"Tehran\",\n CityList: \"\",\n TimeZone: 3.5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"4.5\",\n startTimeMili: \"1332275400000\",\n endTimeMili: \"1348169400000\",\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1363897800000\",\n endTimeMili: \"1379791800000\",\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1395433800000\",\n endTimeMili: \"1411327800000\",\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1426969800000\",\n endTimeMili: \"1442863800000\",\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1458505800000\",\n endTimeMili: \"1474399800000\",\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1490128200000\",\n endTimeMili: \"1506022200000\",\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1521667800000\",\n endTimeMili: \"1537554600000\",\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1553203800000\",\n endTimeMili: \"1569090600000\",\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1584739800000\",\n endTimeMili: \"1600626600000\",\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1616362200000\",\n endTimeMili: \"1632249000000\",\n },\n {\n offset: \"4.5\",\n startTimeMili: \"1647898200000\",\n endTimeMili: \"1663785000000\",\n },\n ],\n CountryCallingCode: \"98\",\n },\n ],\n 127: [\n {\n Id: \"127\",\n ShortName: \"IQ\",\n Country: \"Iraq\",\n Region: \"Baghdad\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"964\",\n },\n ],\n 128: [\n {\n Id: \"128\",\n ShortName: \"IE\",\n Country: \"Ireland\",\n Region: \"Dublin, Belfast\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"353\",\n },\n ],\n 299: [\n {\n Id: \"299\",\n ShortName: \"IM\",\n Country: \"Isle of Man\",\n Region: \"Douglas\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"44\",\n },\n ],\n 129: [\n {\n Id: \"129\",\n ShortName: \"IL\",\n Country: \"Israel\",\n Region: \"Jerusalem, Tel Aviv\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1333065600000\",\n endTimeMili: \"1348354800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364515200000\",\n endTimeMili: \"1382828400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1395964800000\",\n endTimeMili: \"1414278000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427414400000\",\n endTimeMili: \"1445727600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1458864000000\",\n endTimeMili: \"1477782000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490313600000\",\n endTimeMili: \"1509231600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521763200000\",\n endTimeMili: \"1540681200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553817600000\",\n endTimeMili: \"1572130800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585267200000\",\n endTimeMili: \"1603580400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616716800000\",\n endTimeMili: \"1635634800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648166400000\",\n endTimeMili: \"1667084400000\",\n },\n ],\n CountryCallingCode: \"972\",\n },\n ],\n 130: [\n {\n Id: \"130\",\n ShortName: \"IT\",\n Country: \"Italy\",\n Region: \"Milan, Rome\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"39\",\n },\n ],\n 74: [\n {\n Id: \"74\",\n ShortName: \"CI\",\n Country: \"Ivory Coast\",\n Region: \"Abidjan\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"225\",\n },\n ],\n 131: [\n {\n Id: \"131\",\n ShortName: \"JM\",\n Country: \"Jamaica\",\n Region: \"Kingston\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 132: [\n {\n Id: \"132\",\n ShortName: \"JP\",\n Country: \"Japan\",\n Region: \"Kyoto, Osaka, Tokyo, Yokohama\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"81\",\n },\n ],\n 300: [\n {\n Id: \"300\",\n ShortName: \"JE\",\n Country: \"Jersey\",\n Region: \"Saint Helier\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"44\",\n },\n ],\n 133: [\n {\n Id: \"133\",\n ShortName: \"US\",\n Country: \"Johnston Atoll (U.S.)\",\n Region: \"Johnston Atoll\",\n CityList: \"\",\n TimeZone: -10,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 134: [\n {\n Id: \"134\",\n ShortName: \"JO\",\n Country: \"Jordan\",\n Region: \"Amman\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1333058400000\",\n endTimeMili: \"1387490400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1395957600000\",\n endTimeMili: \"1414706400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427407200000\",\n endTimeMili: \"1446156000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459461600000\",\n endTimeMili: \"1477605600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490911200000\",\n endTimeMili: \"1509055200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1522364400000\",\n endTimeMili: \"1540504800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553814000000\",\n endTimeMili: \"1571954400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585263600000\",\n endTimeMili: \"1604008800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616713200000\",\n endTimeMili: \"1635458400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648767600000\",\n endTimeMili: \"1666908000000\",\n },\n ],\n CountryCallingCode: \"962\",\n },\n ],\n 135: [\n {\n Id: \"135\",\n ShortName: \"KZ\",\n Country: \"Kazakhstan\",\n Region: \"Eastern (Astana, Almaty, Qostanay, Qyzylorda)\",\n CityList: \"\",\n TimeZone: 6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 136: [\n {\n Id: \"136\",\n ShortName: \"KZ\",\n Country: \"Kazakhstan\",\n Region: \"Western (Aktobe, Aktau, Atyrau, Oral)\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 137: [\n {\n Id: \"137\",\n ShortName: \"KE\",\n Country: \"Kenya\",\n Region: \"Nairobi\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"254\",\n },\n ],\n 138: [\n {\n Id: \"138\",\n ShortName: \"KI\",\n Country: \"Kiribati\",\n Region: \"Tarawa\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"686\",\n },\n ],\n 139: [\n {\n Id: \"139\",\n ShortName: \"KP\",\n Country: \"Korea, Democratic Peoples Republic of\",\n Region: \"Pyongyang\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"850\",\n },\n ],\n 140: [\n {\n Id: \"140\",\n ShortName: \"KR\",\n Country: \"Korea, Republic of\",\n Region: \"Seoul\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"82\",\n },\n ],\n 292: [\n {\n Id: \"292\",\n ShortName: \"RS\",\n Country: \"Kosovo\",\n Region: \"Pristina\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1333155600000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"381\",\n },\n ],\n 141: [\n {\n Id: \"141\",\n ShortName: \"KW\",\n Country: \"Kuwait\",\n Region: \"Kuwait City\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"965\",\n },\n ],\n 142: [\n {\n Id: \"142\",\n ShortName: \"KG\",\n Country: \"Kyrgyzstan\",\n Region: \"Bishkek\",\n CityList: \"\",\n TimeZone: 6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"996\",\n },\n ],\n 143: [\n {\n Id: \"143\",\n ShortName: \"LA\",\n Country: \"Lao Peoples Democratic Republic\",\n Region: \"Vientiane\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"856\",\n },\n ],\n 144: [\n {\n Id: \"144\",\n ShortName: \"LV\",\n Country: \"Latvia\",\n Region: \"Riga\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"371\",\n },\n ],\n 145: [\n {\n Id: \"145\",\n ShortName: \"LB\",\n Country: \"Lebanon\",\n Region: \"Beirut\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332626400000\",\n endTimeMili: \"1351371600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364680800000\",\n endTimeMili: \"1382821200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1396130400000\",\n endTimeMili: \"1414270800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427580000000\",\n endTimeMili: \"1445720400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459029600000\",\n endTimeMili: \"1477774800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490479200000\",\n endTimeMili: \"1509224400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521932400000\",\n endTimeMili: \"1540670400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553986800000\",\n endTimeMili: \"1572120000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585436400000\",\n endTimeMili: \"1603569600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616886000000\",\n endTimeMili: \"1635624000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648335600000\",\n endTimeMili: \"1667073600000\",\n },\n ],\n CountryCallingCode: \"961\",\n },\n ],\n 146: [\n {\n Id: \"146\",\n ShortName: \"LS\",\n Country: \"Lesotho\",\n Region: \"Maseru\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"266\",\n },\n ],\n 147: [\n {\n Id: \"147\",\n ShortName: \"LR\",\n Country: \"Liberia\",\n Region: \"Monrovia\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"231\",\n },\n ],\n 148: [\n {\n Id: \"148\",\n ShortName: \"LY\",\n Country: \"Libyan Arab Jamahiriya\",\n Region: \"Tripoli\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"218\",\n },\n ],\n 149: [\n {\n Id: \"149\",\n ShortName: \"LI\",\n Country: \"Liechtenstein\",\n Region: \"Vaduz\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351382400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"423\",\n },\n ],\n 150: [\n {\n Id: \"150\",\n ShortName: \"LT\",\n Country: \"Lithuania\",\n Region: \"Vilnius\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"370\",\n },\n ],\n 151: [\n {\n Id: \"151\",\n ShortName: \"LU\",\n Country: \"Luxembourg\",\n Region: \"Luxembourg\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"352\",\n },\n ],\n 152: [\n {\n Id: \"152\",\n ShortName: \"MO\",\n Country: \"Macau\",\n Region: \"Macao\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"853\",\n },\n ],\n 153: [\n {\n Id: \"153\",\n ShortName: \"MK\",\n Country: \"Macedonia, The Former Yugoslav Republic Of\",\n Region: \"Skopje\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"389\",\n },\n ],\n 154: [\n {\n Id: \"154\",\n ShortName: \"MG\",\n Country: \"Madagascar\",\n Region: \"Antananarivo\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"261\",\n },\n ],\n 155: [\n {\n Id: \"155\",\n ShortName: \"MW\",\n Country: \"Malawi\",\n Region: \"Lilongwe\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"265\",\n },\n ],\n 156: [\n {\n Id: \"156\",\n ShortName: \"MY\",\n Country: \"Malaysia\",\n Region: \"Kuala Lumpur\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"60\",\n },\n ],\n 157: [\n {\n Id: \"157\",\n ShortName: \"MV\",\n Country: \"Maldives\",\n Region: \"Male\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"960\",\n },\n ],\n 158: [\n {\n Id: \"158\",\n ShortName: \"ML\",\n Country: \"Mali\",\n Region: \"Bamako\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"223\",\n },\n ],\n 159: [\n {\n Id: \"159\",\n ShortName: \"MT\",\n Country: \"Malta\",\n Region: \"Valletta\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"356\",\n },\n ],\n 160: [\n {\n Id: \"160\",\n ShortName: \"MH\",\n Country: \"Marshall Islands\",\n Region: \"Majuro\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"692\",\n },\n ],\n 161: [\n {\n Id: \"161\",\n ShortName: \"MQ\",\n Country: \"Martinique\",\n Region: \"Maputo\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"596\",\n },\n ],\n 162: [\n {\n Id: \"162\",\n ShortName: \"MR\",\n Country: \"Mauritania\",\n Region: \"Nouakchott\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"222\",\n },\n ],\n 163: [\n {\n Id: \"163\",\n ShortName: \"MU\",\n Country: \"Mauritius\",\n Region: \"Port Louis\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"230\",\n },\n ],\n 164: [\n {\n Id: \"164\",\n ShortName: \"YT\",\n Country: \"Mayotte\",\n Region: \"Mamoudzou\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"262\",\n },\n ],\n 165: [\n {\n Id: \"165\",\n ShortName: \"MX\",\n Country: \"Mexico\",\n Region:\n \"South, central and eastern (Mexico City, Guadalajara, Puebla)\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"-5\",\n startTimeMili: \"1333267200000\",\n endTimeMili: \"1351407600000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1365321600000\",\n endTimeMili: \"1382857200000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1396771200000\",\n endTimeMili: \"1414306800000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1428220800000\",\n endTimeMili: \"1445756400000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1459670400000\",\n endTimeMili: \"1477810800000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1491120000000\",\n endTimeMili: \"1509260400000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1522569600000\",\n endTimeMili: \"1540710000000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1554624000000\",\n endTimeMili: \"1572159600000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1586073600000\",\n endTimeMili: \"1603609200000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1617523200000\",\n endTimeMili: \"1635663600000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1648972800000\",\n endTimeMili: \"1667113200000\",\n },\n ],\n CountryCallingCode: \"52\",\n },\n ],\n 166: [\n {\n Id: \"166\",\n ShortName: \"MX\",\n Country: \"Mexico\",\n Region: \"Baja California Sur, Chihuahua, Nayarit, Sinaloa\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 3,\n HasDayLightSavings: [\n {\n offset: \"-6\",\n startTimeMili: \"1333270800000\",\n endTimeMili: \"1351411200000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1362906000000\",\n endTimeMili: \"1383465600000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1394355600000\",\n endTimeMili: \"1414915200000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1425805200000\",\n endTimeMili: \"1446364800000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1457859600000\",\n endTimeMili: \"1478419200000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1489309200000\",\n endTimeMili: \"1509868800000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1522573200000\",\n endTimeMili: \"1540713600000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1554627600000\",\n endTimeMili: \"1572163200000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1586077200000\",\n endTimeMili: \"1603612800000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1617526800000\",\n endTimeMili: \"1635667200000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1648976400000\",\n endTimeMili: \"1667116800000\",\n },\n ],\n CountryCallingCode: \"52\",\n },\n ],\n 167: [\n {\n Id: \"167\",\n ShortName: \"MX\",\n Country: \"Mexico\",\n Region: \"Baja California Norte (Ensenada, Tijuana)\",\n CityList: \"\",\n TimeZone: -8,\n DisplayOrder: 5,\n HasDayLightSavings: [\n {\n offset: \"-7\",\n startTimeMili: \"1331460000000\",\n endTimeMili: \"1352019600000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1362909600000\",\n endTimeMili: \"1383469200000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1394359200000\",\n endTimeMili: \"1414918800000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1425808800000\",\n endTimeMili: \"1446368400000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1457863200000\",\n endTimeMili: \"1478422800000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1489312800000\",\n endTimeMili: \"1509872400000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1520762400000\",\n endTimeMili: \"1541322000000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1552212000000\",\n endTimeMili: \"1572771600000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1583661600000\",\n endTimeMili: \"1604221200000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1615716000000\",\n endTimeMili: \"1636275600000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1647165600000\",\n endTimeMili: \"1667725200000\",\n },\n ],\n CountryCallingCode: \"52\",\n },\n ],\n 168: [\n {\n Id: \"168\",\n ShortName: \"MX\",\n Country: \"Mexico\",\n Region: \"Sonora (Hermosillo)\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 4,\n HasDayLightSavings: [],\n CountryCallingCode: \"52\",\n },\n ],\n 296: [\n {\n Id: \"296\",\n ShortName: \"MX\",\n Country: \"Mexico\",\n Region: \"Quintana Roo (Cancun, Cozumel, Isla Mujeres)\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"52\",\n },\n ],\n 169: [\n {\n Id: \"169\",\n ShortName: \"FM\",\n Country: \"Micronesia, Federated States Of\",\n Region: \"Kosrae, Pohnpei (Palikir, Kolonia)\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"691\",\n },\n ],\n 170: [\n {\n Id: \"170\",\n ShortName: \"FM\",\n Country: \"Micronesia, Federated States Of\",\n Region: \"Yap, Chuuk\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"691\",\n },\n ],\n 171: [\n {\n Id: \"171\",\n ShortName: \"001\",\n Country: \"Midway Islands (U.S.)\",\n Region: \"Midway Islands\",\n CityList: \"\",\n TimeZone: -11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"808\",\n },\n ],\n 172: [\n {\n Id: \"172\",\n ShortName: \"MD\",\n Country: \"Moldova, Republic of\",\n Region: \"Chisinau\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521936000000\",\n endTimeMili: \"1540684800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553990400000\",\n endTimeMili: \"1572134400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585440000000\",\n endTimeMili: \"1603584000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616889600000\",\n endTimeMili: \"1635638400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648339200000\",\n endTimeMili: \"1667088000000\",\n },\n ],\n CountryCallingCode: \"373\",\n },\n ],\n 173: [\n {\n Id: \"173\",\n ShortName: \"MC\",\n Country: \"Monaco\",\n Region: \"Monte Carlo\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"377\",\n },\n ],\n 174: [\n {\n Id: \"174\",\n ShortName: \"MN\",\n Country: \"Mongolia\",\n Region: \"Central and Eastern (Ulaanbaatar)\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"976\",\n },\n ],\n 175: [\n {\n Id: \"175\",\n ShortName: \"MN\",\n Country: \"Mongolia\",\n Region: \"Western (Olgiy, Hovd, Ulaangom)\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"976\",\n },\n ],\n 176: [\n {\n Id: \"176\",\n ShortName: \"ME\",\n Country: \"Montenegro\",\n Region: \"Podgorica\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"382\",\n },\n ],\n 177: [\n {\n Id: \"177\",\n ShortName: \"MS\",\n Country: \"Montserrat\",\n Region: \"Plymouth\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1664\",\n },\n ],\n 178: [\n {\n Id: \"178\",\n ShortName: \"MA\",\n Country: \"Morocco\",\n Region: \"Rabat, Casablanca, Tangier\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1376100000000\",\n endTimeMili: \"1380420000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1396144800000\",\n endTimeMili: \"1404007200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1406599200000\",\n endTimeMili: \"1411869600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1427594400000\",\n endTimeMili: \"1434592800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1437184800000\",\n endTimeMili: \"1445738400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1459044000000\",\n endTimeMili: \"1465092000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1468116000000\",\n endTimeMili: \"1477792800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1490493600000\",\n endTimeMili: \"1495850400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1498442400000\",\n endTimeMili: \"1509242400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1498874400000\",\n endTimeMili: \"1509242400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1521943200000\",\n endTimeMili: \"1526176800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1529200800000\",\n endTimeMili: \"1540692000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1560045600000\",\n endTimeMili: \"1587261600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1590890400000\",\n endTimeMili: \"1618106400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1621130400000\",\n endTimeMili: \"1648346400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1651975200000\",\n endTimeMili: \"1679191200000\",\n },\n ],\n CountryCallingCode: \"212\",\n },\n ],\n 179: [\n {\n Id: \"179\",\n ShortName: \"MZ\",\n Country: \"Mozambique\",\n Region: \"Maputo\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"258\",\n },\n ],\n 180: [\n {\n Id: \"180\",\n ShortName: \"MM\",\n Country: \"Myanmar\",\n Region: \"Rangoon\",\n CityList: \"\",\n TimeZone: 6.5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"95\",\n },\n ],\n 181: [\n {\n Id: \"181\",\n ShortName: \"NA\",\n Country: \"Namibia\",\n Region: \"Windhoek\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"264\",\n },\n ],\n 182: [\n {\n Id: \"182\",\n ShortName: \"NR\",\n Country: \"Nauru\",\n Region: \"Nauro\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"674\",\n },\n ],\n 295: [\n {\n Id: \"295\",\n ShortName: \"NP\",\n Country: \"Nepal\",\n Region: \"Kathmandu\",\n CityList: \"\",\n TimeZone: 5.75,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"977\",\n },\n ],\n 183: [\n {\n Id: \"183\",\n ShortName: \"NL\",\n Country: \"Netherlands\",\n Region: \"Amsterdam, Hague\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"31\",\n },\n ],\n 184: [\n {\n Id: \"184\",\n ShortName: \"AN\",\n Country: \"Netherlands Antilles\",\n Region: \"Bonaire, Curacao, Saba, Sint Eustatius, Sint Maarten\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"599\",\n },\n ],\n 185: [\n {\n Id: \"185\",\n ShortName: \"NC\",\n Country: \"New Caledonia\",\n Region: \"Noumea\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"687\",\n },\n ],\n 186: [\n {\n Id: \"186\",\n ShortName: \"NZ\",\n Country: \"New Zealand\",\n Region: \"Auckland, Wellington\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"13\",\n startTimeMili: \"1316872800000\",\n endTimeMili: \"1333202400000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1348927200000\",\n endTimeMili: \"1365256800000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1380376800000\",\n endTimeMili: \"1396706400000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1411826400000\",\n endTimeMili: \"1428156000000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1443276000000\",\n endTimeMili: \"1459605600000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1474725600000\",\n endTimeMili: \"1491055200000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1506175200000\",\n endTimeMili: \"1522504800000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1538229600000\",\n endTimeMili: \"1554559200000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1569679200000\",\n endTimeMili: \"1586008800000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1601128800000\",\n endTimeMili: \"1617458400000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1632578400000\",\n endTimeMili: \"1648908000000\",\n },\n {\n offset: \"13\",\n startTimeMili: \"1664028000000\",\n endTimeMili: \"1680357600000\",\n },\n ],\n CountryCallingCode: \"64\",\n },\n ],\n 187: [\n {\n Id: \"187\",\n ShortName: \"NI\",\n Country: \"Nicaragua\",\n Region: \"Managua\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"505\",\n },\n ],\n 188: [\n {\n Id: \"188\",\n ShortName: \"NE\",\n Country: \"Niger\",\n Region: \"Niamey\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"227\",\n },\n ],\n 189: [\n {\n Id: \"189\",\n ShortName: \"NG\",\n Country: \"Nigeria\",\n Region: \"Abuja, Kano\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"234\",\n },\n ],\n 190: [\n {\n Id: \"190\",\n ShortName: \"NU\",\n Country: \"Niue\",\n Region: \"Alofi\",\n CityList: \"\",\n TimeZone: -11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"683\",\n },\n ],\n 191: [\n {\n Id: \"191\",\n ShortName: \"NF\",\n Country: \"Norfolk Island\",\n Region: \"Kingston\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"12\",\n startTimeMili: \"1570287600000\",\n endTimeMili: \"1586012400000\",\n },\n {\n offset: \"12\",\n startTimeMili: \"1601737200000\",\n endTimeMili: \"1617462000000\",\n },\n {\n offset: \"12\",\n startTimeMili: \"1633186800000\",\n endTimeMili: \"1648911600000\",\n },\n {\n offset: \"12\",\n startTimeMili: \"1664636400000\",\n endTimeMili: \"1680361200000\",\n },\n ],\n CountryCallingCode: \"672\",\n },\n ],\n 192: [\n {\n Id: \"192\",\n ShortName: \"MP\",\n Country: \"Northern Mariana Islands\",\n Region: \"Saipan\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1670\",\n },\n ],\n 193: [\n {\n Id: \"193\",\n ShortName: \"NO\",\n Country: \"Norway\",\n Region: \"Oslo\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"47\",\n },\n ],\n 194: [\n {\n Id: \"194\",\n ShortName: \"OM\",\n Country: \"Oman\",\n Region: \"Muscat\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"968\",\n },\n ],\n 195: [\n {\n Id: \"195\",\n ShortName: \"PK\",\n Country: \"Pakistan\",\n Region: \"Islamabad, Karachi\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"92\",\n },\n ],\n 196: [\n {\n Id: \"196\",\n ShortName: \"PW\",\n Country: \"Palau\",\n Region: \"Koror\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"680\",\n },\n ],\n 197: [\n {\n Id: \"197\",\n ShortName: \"PS\",\n Country: \"Palestinian Territory\",\n Region: \"Gaza, Ramallah\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1333058400000\",\n endTimeMili: \"1349049600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364508000000\",\n endTimeMili: \"1380232800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1395957600000\",\n endTimeMili: \"1411682400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427407200000\",\n endTimeMili: \"1443128400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1458946800000\",\n endTimeMili: \"1477692000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459461600000\",\n endTimeMili: \"1474578000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490396400000\",\n endTimeMili: \"1509141600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490911200000\",\n endTimeMili: \"1506027600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521846000000\",\n endTimeMili: \"1540591200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553814000000\",\n endTimeMili: \"1572040800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585350000000\",\n endTimeMili: \"1603490400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616799600000\",\n endTimeMili: \"1635544800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648249200000\",\n endTimeMili: \"1666994400000\",\n },\n ],\n CountryCallingCode: \"970\",\n },\n ],\n 198: [\n {\n Id: \"198\",\n ShortName: \"PA\",\n Country: \"Panama\",\n Region: \"Panama City\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"507\",\n },\n ],\n 199: [\n {\n Id: \"199\",\n ShortName: \"PG\",\n Country: \"Papua New Guinea\",\n Region: \"Port Moresby\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"675\",\n },\n ],\n 200: [\n {\n Id: \"200\",\n ShortName: \"PY\",\n Country: \"Paraguay\",\n Region: \"Asuncion\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-3\",\n startTimeMili: \"1349582400000\",\n endTimeMili: \"1364094000000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1381032000000\",\n endTimeMili: \"1395543600000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1412481600000\",\n endTimeMili: \"1426993200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1443931200000\",\n endTimeMili: \"1459047600000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1475380800000\",\n endTimeMili: \"1490497200000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1506830400000\",\n endTimeMili: \"1521946800000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1538888400000\",\n endTimeMili: \"1553392800000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1570338000000\",\n endTimeMili: \"1584842400000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1601787600000\",\n endTimeMili: \"1616896800000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1633237200000\",\n endTimeMili: \"1648346400000\",\n },\n {\n offset: \"-3\",\n startTimeMili: \"1664686800000\",\n endTimeMili: \"1679796000000\",\n },\n ],\n CountryCallingCode: \"595\",\n },\n ],\n 201: [\n {\n Id: \"201\",\n ShortName: \"PE\",\n Country: \"Peru\",\n Region: \"Lima\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"51\",\n },\n ],\n 202: [\n {\n Id: \"202\",\n ShortName: \"PH\",\n Country: \"Philippines\",\n Region: \"Manila\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"63\",\n },\n ],\n 203: [\n {\n Id: \"203\",\n ShortName: \"001\",\n Country: \"Pitcairn\",\n Region: \"Adamstown\",\n CityList: \"\",\n TimeZone: -8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"870\",\n },\n ],\n 204: [\n {\n Id: \"204\",\n ShortName: \"PL\",\n Country: \"Poland\",\n Region: \"Warsaw, Krakow\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"48\",\n },\n ],\n 205: [\n {\n Id: \"205\",\n ShortName: \"PT\",\n Country: \"Portugal\",\n Region: \"Azores, Ponta Delgada\",\n CityList: \"\",\n TimeZone: -1,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"0\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1521943200000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1553997600000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1585447200000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1616896800000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"0\",\n startTimeMili: \"1648346400000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"351\",\n },\n ],\n 206: [\n {\n Id: \"206\",\n ShortName: \"PT\",\n Country: \"Portugal\",\n Region: \"Lisbon, Funchal\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"351\",\n },\n ],\n 207: [\n {\n Id: \"207\",\n ShortName: \"PR\",\n Country: \"Puerto Rico\",\n Region: \"San Juan\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 208: [\n {\n Id: \"208\",\n ShortName: \"QA\",\n Country: \"Qatar\",\n Region: \"Doha\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"974\",\n },\n ],\n 209: [\n {\n Id: \"209\",\n ShortName: \"RE\",\n Country: \"Reunion\",\n Region: \"Saint Denis\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"262\",\n },\n ],\n 210: [\n {\n Id: \"210\",\n ShortName: \"RO\",\n Country: \"Romania\",\n Region: \"Bucharest\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"40\",\n },\n ],\n 211: [\n {\n Id: \"211\",\n ShortName: \"RU\",\n Country: \"Russian Federation\",\n Region: \"Kaliningrad\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 11,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 212: [\n {\n Id: \"212\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Moscow, St. Petersburg\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 10,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 213: [\n {\n Id: \"213\",\n ShortName: \"RU\",\n Country: \"Russian Federation\",\n Region: \"Samara, Udmurtia\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 9,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 214: [\n {\n Id: \"214\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Yekaterinburg\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 8,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 215: [\n {\n Id: \"215\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Krasnoyarsk, Novosibirsk, Altai Republic, Altaskiy Kray\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 6,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 216: [\n {\n Id: \"216\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Omsk\",\n CityList: \"\",\n TimeZone: 6,\n DisplayOrder: 7,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 217: [\n {\n Id: \"217\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Irkutsk\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 5,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 218: [\n {\n Id: \"218\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Yakutsk\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 4,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 219: [\n {\n Id: \"219\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Vladivistok\",\n CityList: \"\",\n TimeZone: 10,\n DisplayOrder: 3,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 220: [\n {\n Id: \"220\",\n ShortName: \"\",\n Country: \"Russian Federation\",\n Region: \"Magadan, Sakha (Eastern)\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 2,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 221: [\n {\n Id: \"221\",\n ShortName: \"RU\",\n Country: \"Russian Federation\",\n Region: \"Chukot, Kamchatka, Koryak\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"7\",\n },\n ],\n 222: [\n {\n Id: \"222\",\n ShortName: \"RW\",\n Country: \"Rwanda\",\n Region: \"Kigali\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"250\",\n },\n ],\n 223: [\n {\n Id: \"223\",\n ShortName: \"GP\",\n Country: \"Saint Barthelemy\",\n Region: \"Gustavia\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"590\",\n },\n ],\n 224: [\n {\n Id: \"224\",\n ShortName: \"SH\",\n Country: \"Saint Helena\",\n Region: \"Jamestown\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"290\",\n },\n ],\n 225: [\n {\n Id: \"225\",\n ShortName: \"KN\",\n Country: \"Saint Kitts and Nevis\",\n Region: \"Basseterre\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1869\",\n },\n ],\n 226: [\n {\n Id: \"226\",\n ShortName: \"LC\",\n Country: \"Saint Lucia\",\n Region: \"Castries\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1758\",\n },\n ],\n 227: [\n {\n Id: \"227\",\n ShortName: \"PM\",\n Country: \"Saint Pierre and Miquelon\",\n Region: \"Saint Pierre\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-2\",\n startTimeMili: \"1331442000000\",\n endTimeMili: \"1352001600000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1362891600000\",\n endTimeMili: \"1383451200000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1394341200000\",\n endTimeMili: \"1414900800000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1425790800000\",\n endTimeMili: \"1446350400000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1457845200000\",\n endTimeMili: \"1478404800000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1489294800000\",\n endTimeMili: \"1509854400000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1520744400000\",\n endTimeMili: \"1541304000000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1552194000000\",\n endTimeMili: \"1572753600000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1583643600000\",\n endTimeMili: \"1604203200000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1615698000000\",\n endTimeMili: \"1636257600000\",\n },\n {\n offset: \"-2\",\n startTimeMili: \"1647147600000\",\n endTimeMili: \"1667707200000\",\n },\n ],\n CountryCallingCode: \"508\",\n },\n ],\n 228: [\n {\n Id: \"228\",\n ShortName: \"VC\",\n Country: \"Saint Vincent and The Grenadines\",\n Region: \"Kingstown\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1784\",\n },\n ],\n 229: [\n {\n Id: \"229\",\n ShortName: \"WS\",\n Country: \"Samoa\",\n Region: \"Apia\",\n CityList: \"\",\n TimeZone: 13,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"14\",\n startTimeMili: \"1380376800000\",\n endTimeMili: \"1396706400000\",\n },\n {\n offset: \"14\",\n startTimeMili: \"1411826400000\",\n endTimeMili: \"1428156000000\",\n },\n {\n offset: \"14\",\n startTimeMili: \"1443276000000\",\n endTimeMili: \"1459605600000\",\n },\n {\n offset: \"14\",\n startTimeMili: \"1474725600000\",\n endTimeMili: \"1491055200000\",\n },\n {\n offset: \"14\",\n startTimeMili: \"1506175200000\",\n endTimeMili: \"1522504800000\",\n },\n {\n offset: \"14\",\n startTimeMili: \"1538229600000\",\n endTimeMili: \"1554559200000\",\n },\n {\n offset: \"14\",\n startTimeMili: \"1569679200000\",\n endTimeMili: \"1586008800000\",\n },\n {\n offset: \"14\",\n startTimeMili: \"1601128800000\",\n endTimeMili: \"1617458400000\",\n },\n {\n offset: \"14\",\n startTimeMili: \"1632578400000\",\n endTimeMili: \"1648908000000\",\n },\n {\n offset: \"14\",\n startTimeMili: \"1664028000000\",\n endTimeMili: \"1680357600000\",\n },\n ],\n CountryCallingCode: \"685\",\n },\n ],\n 230: [\n {\n Id: \"230\",\n ShortName: \"SM\",\n Country: \"San Marino\",\n Region: \"San Marino\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"378\",\n },\n ],\n 231: [\n {\n Id: \"231\",\n ShortName: \"ST\",\n Country: \"Sao Tome and Principe\",\n Region: \"Sao Tome\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"239\",\n },\n ],\n 232: [\n {\n Id: \"232\",\n ShortName: \"SA\",\n Country: \"Saudi Arabia\",\n Region: \"Riyadh, Mecca\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"966\",\n },\n ],\n 233: [\n {\n Id: \"233\",\n ShortName: \"SN\",\n Country: \"Senegal\",\n Region: \"Dakar\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"221\",\n },\n ],\n 234: [\n {\n Id: \"234\",\n ShortName: \"RS\",\n Country: \"Serbia\",\n Region: \"Belgrade\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"381\",\n },\n ],\n 235: [\n {\n Id: \"235\",\n ShortName: \"SC\",\n Country: \"Seychelles\",\n Region: \"Victoria\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"248\",\n },\n ],\n 236: [\n {\n Id: \"236\",\n ShortName: \"SL\",\n Country: \"Sierra Leone\",\n Region: \"Freetown\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"232\",\n },\n ],\n 237: [\n {\n Id: \"237\",\n ShortName: \"SG\",\n Country: \"Singapore\",\n Region: \"Singapore City\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"65\",\n },\n ],\n 294: [\n {\n Id: \"294\",\n ShortName: \"SX\",\n Country: \"Sint Maarten\",\n Region: \"Philipsburg\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 238: [\n {\n Id: \"238\",\n ShortName: \"SK\",\n Country: \"Slovakia\",\n Region: \"Bratislava\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"421\",\n },\n ],\n 239: [\n {\n Id: \"239\",\n ShortName: \"SI\",\n Country: \"Slovenia\",\n Region: \"Ljubljana\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"386\",\n },\n ],\n 240: [\n {\n Id: \"240\",\n ShortName: \"SB\",\n Country: \"Solomon Islands\",\n Region: \"Honiara\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"677\",\n },\n ],\n 241: [\n {\n Id: \"241\",\n ShortName: \"SO\",\n Country: \"Somalia\",\n Region: \"Mogadishu\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"252\",\n },\n ],\n 242: [\n {\n Id: \"242\",\n ShortName: \"ZA\",\n Country: \"South Africa\",\n Region: \"Cape Town, Johannesburg, Pretoria\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"27\",\n },\n ],\n 243: [\n {\n Id: \"243\",\n ShortName: \"ES\",\n Country: \"Spain\",\n Region: \"Canary Islands\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"34\",\n },\n ],\n 244: [\n {\n Id: \"244\",\n ShortName: \"ES\",\n Country: \"Spain\",\n Region: \"Mainland (Madrid, Barcelona), Baleares, Melilla, Ceuta\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"34\",\n },\n ],\n 245: [\n {\n Id: \"245\",\n ShortName: \"LK\",\n Country: \"Sri Lanka\",\n Region: \"Colombo\",\n CityList: \"\",\n TimeZone: 5.5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"94\",\n },\n ],\n 246: [\n {\n Id: \"246\",\n ShortName: \"SD\",\n Country: \"Sudan\",\n Region: \"Khartoum\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"249\",\n },\n ],\n 247: [\n {\n Id: \"247\",\n ShortName: \"SR\",\n Country: \"Suriname\",\n Region: \"Paramaribo\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"597\",\n },\n ],\n 248: [\n {\n Id: \"248\",\n ShortName: \"SJ\",\n Country: \"Svalbard and Jan Mayen\",\n Region: \"Longyearbyen\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"47\",\n },\n ],\n 249: [\n {\n Id: \"249\",\n ShortName: \"SZ\",\n Country: \"Swaziland\",\n Region: \"Mbabane\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"268\",\n },\n ],\n 250: [\n {\n Id: \"250\",\n ShortName: \"SE\",\n Country: \"Sweden\",\n Region: \"Stockholm\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"46\",\n },\n ],\n 251: [\n {\n Id: \"251\",\n ShortName: \"CH\",\n Country: \"Switzerland\",\n Region: \"Zurich, Bern, Geneva\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"2\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"2\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"41\",\n },\n ],\n 252: [\n {\n Id: \"252\",\n ShortName: \"SY\",\n Country: \"Syrian Arab Republic\",\n Region: \"Damascus\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1333058400000\",\n endTimeMili: \"1351202400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364508000000\",\n endTimeMili: \"1383253200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1395957600000\",\n endTimeMili: \"1414702800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427407200000\",\n endTimeMili: \"1446152400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1458856800000\",\n endTimeMili: \"1477602000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490911200000\",\n endTimeMili: \"1509051600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1522364400000\",\n endTimeMili: \"1540497600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553814000000\",\n endTimeMili: \"1571947200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585263600000\",\n endTimeMili: \"1604001600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616713200000\",\n endTimeMili: \"1635451200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648162800000\",\n endTimeMili: \"1666900800000\",\n },\n ],\n CountryCallingCode: \"963\",\n },\n ],\n 253: [\n {\n Id: \"253\",\n ShortName: \"TW\",\n Country: \"Taiwan\",\n Region: \"Taipei\",\n CityList: \"\",\n TimeZone: 8,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"886\",\n },\n ],\n 254: [\n {\n Id: \"254\",\n ShortName: \"TJ\",\n Country: \"Tajikistan\",\n Region: \"Dushanbe\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"992\",\n },\n ],\n 255: [\n {\n Id: \"255\",\n ShortName: \"TZ\",\n Country: \"Tanzania, United Republic of\",\n Region: \"Dar es Salaam\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"255\",\n },\n ],\n 256: [\n {\n Id: \"256\",\n ShortName: \"TH\",\n Country: \"Thailand\",\n Region: \"Bangkok\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"66\",\n },\n ],\n 257: [\n {\n Id: \"257\",\n ShortName: \"TL\",\n Country: \"Timor-Leste\",\n Region: \"Dili\",\n CityList: \"\",\n TimeZone: 9,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"670\",\n },\n ],\n 258: [\n {\n Id: \"258\",\n ShortName: \"TG\",\n Country: \"Togo\",\n Region: \"Lome\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"228\",\n },\n ],\n 259: [\n {\n Id: \"259\",\n ShortName: \"TK\",\n Country: \"Tokelau\",\n Region: \"Fakaofo\",\n CityList: \"\",\n TimeZone: 13,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"690\",\n },\n ],\n 260: [\n {\n Id: \"260\",\n ShortName: \"TT\",\n Country: \"Trinidad and Tobago\",\n Region: \"Port-of-Spain\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 261: [\n {\n Id: \"261\",\n ShortName: \"TN\",\n Country: \"Tunisia\",\n Region: \"Tunis\",\n CityList: \"\",\n TimeZone: 1,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"216\",\n },\n ],\n 262: [\n {\n Id: \"262\",\n ShortName: \"TR\",\n Country: \"Turkey\",\n Region: \"Istanbul, Ankara\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"90\",\n },\n ],\n 263: [\n {\n Id: \"263\",\n ShortName: \"TM\",\n Country: \"Turkmenistan\",\n Region: \"Ashgabat\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"993\",\n },\n ],\n 264: [\n {\n Id: \"264\",\n ShortName: \"TC\",\n Country: \"Turks and Caicos Islands\",\n Region: \"Grand Turk\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1331449200000\",\n endTimeMili: \"1352008800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1362898800000\",\n endTimeMili: \"1383458400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394348400000\",\n endTimeMili: \"1414908000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425798000000\",\n endTimeMili: \"1446357600000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457852400000\",\n endTimeMili: \"1478412000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489302000000\",\n endTimeMili: \"1509861600000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520751600000\",\n endTimeMili: \"1541311200000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552201200000\",\n endTimeMili: \"1572760800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583650800000\",\n endTimeMili: \"1604210400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615705200000\",\n endTimeMili: \"1636264800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647154800000\",\n endTimeMili: \"1667714400000\",\n },\n ],\n CountryCallingCode: \"1649\",\n },\n ],\n 265: [\n {\n Id: \"265\",\n ShortName: \"TV\",\n Country: \"Tuvalu\",\n Region: \"Funafuti\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"688\",\n },\n ],\n 266: [\n {\n Id: \"266\",\n ShortName: \"UG\",\n Country: \"Uganda\",\n Region: \"Kampala\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"256\",\n },\n ],\n 267: [\n {\n Id: \"267\",\n ShortName: \"UA\",\n Country: \"Ukraine\",\n Region: \"Kiev\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"3\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"3\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"380\",\n },\n ],\n 268: [\n {\n Id: \"268\",\n ShortName: \"AE\",\n Country: \"United Arab Emirates\",\n Region: \"Abu Dhabi, Dubai\",\n CityList: \"\",\n TimeZone: 4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"971\",\n },\n ],\n 269: [\n {\n Id: \"269\",\n ShortName: \"GB\",\n Country: \"United Kingdom\",\n Region: \"London, Birmingham, Glasgow\",\n CityList: \"\",\n TimeZone: 0,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"1\",\n startTimeMili: \"1332637200000\",\n endTimeMili: \"1351386000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1364691600000\",\n endTimeMili: \"1382835600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1396141200000\",\n endTimeMili: \"1414285200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1427590800000\",\n endTimeMili: \"1445734800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1459040400000\",\n endTimeMili: \"1477789200000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1490490000000\",\n endTimeMili: \"1509238800000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1521939600000\",\n endTimeMili: \"1540688400000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1553994000000\",\n endTimeMili: \"1572138000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1585443600000\",\n endTimeMili: \"1603587600000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1616893200000\",\n endTimeMili: \"1635642000000\",\n },\n {\n offset: \"1\",\n startTimeMili: \"1648342800000\",\n endTimeMili: \"1667091600000\",\n },\n ],\n CountryCallingCode: \"44\",\n },\n ],\n 270: [\n {\n Id: \"270\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Eastern time\",\n CityList: \"\",\n TimeZone: -5,\n DisplayOrder: 1,\n HasDayLightSavings: [\n {\n offset: \"-4\",\n startTimeMili: \"1331449200000\",\n endTimeMili: \"1352008800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1362898800000\",\n endTimeMili: \"1383458400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1394348400000\",\n endTimeMili: \"1414908000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1425798000000\",\n endTimeMili: \"1446357600000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1457852400000\",\n endTimeMili: \"1478412000000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1489302000000\",\n endTimeMili: \"1509861600000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1520751600000\",\n endTimeMili: \"1541311200000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1552201200000\",\n endTimeMili: \"1572760800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1583650800000\",\n endTimeMili: \"1604210400000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1615705200000\",\n endTimeMili: \"1636264800000\",\n },\n {\n offset: \"-4\",\n startTimeMili: \"1647154800000\",\n endTimeMili: \"1667714400000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 271: [\n {\n Id: \"271\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Central time\",\n CityList: \"\",\n TimeZone: -6,\n DisplayOrder: 2,\n HasDayLightSavings: [\n {\n offset: \"-5\",\n startTimeMili: \"1331452800000\",\n endTimeMili: \"1352012400000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1362902400000\",\n endTimeMili: \"1383462000000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1394352000000\",\n endTimeMili: \"1414911600000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1425801600000\",\n endTimeMili: \"1446361200000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1457856000000\",\n endTimeMili: \"1478415600000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1489305600000\",\n endTimeMili: \"1509865200000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1520755200000\",\n endTimeMili: \"1541314800000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1552204800000\",\n endTimeMili: \"1572764400000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1583654400000\",\n endTimeMili: \"1604214000000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1615708800000\",\n endTimeMili: \"1636268400000\",\n },\n {\n offset: \"-5\",\n startTimeMili: \"1647158400000\",\n endTimeMili: \"1667718000000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 272: [\n {\n Id: \"272\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Arizona\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 4,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 273: [\n {\n Id: \"273\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Mountain time\",\n CityList: \"\",\n TimeZone: -7,\n DisplayOrder: 3,\n HasDayLightSavings: [\n {\n offset: \"-6\",\n startTimeMili: \"1331456400000\",\n endTimeMili: \"1352016000000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1362906000000\",\n endTimeMili: \"1383465600000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1394355600000\",\n endTimeMili: \"1414915200000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1425805200000\",\n endTimeMili: \"1446364800000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1457859600000\",\n endTimeMili: \"1478419200000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1489309200000\",\n endTimeMili: \"1509868800000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1520758800000\",\n endTimeMili: \"1541318400000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1552208400000\",\n endTimeMili: \"1572768000000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1583658000000\",\n endTimeMili: \"1604217600000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1615712400000\",\n endTimeMili: \"1636272000000\",\n },\n {\n offset: \"-6\",\n startTimeMili: \"1647162000000\",\n endTimeMili: \"1667721600000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 274: [\n {\n Id: \"274\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Pacific time\",\n CityList: \"\",\n TimeZone: -8,\n DisplayOrder: 5,\n HasDayLightSavings: [\n {\n offset: \"-7\",\n startTimeMili: \"1331460000000\",\n endTimeMili: \"1352019600000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1362909600000\",\n endTimeMili: \"1383469200000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1394359200000\",\n endTimeMili: \"1414918800000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1425808800000\",\n endTimeMili: \"1446368400000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1457863200000\",\n endTimeMili: \"1478422800000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1489312800000\",\n endTimeMili: \"1509872400000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1520762400000\",\n endTimeMili: \"1541322000000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1552212000000\",\n endTimeMili: \"1572771600000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1583661600000\",\n endTimeMili: \"1604221200000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1615716000000\",\n endTimeMili: \"1636275600000\",\n },\n {\n offset: \"-7\",\n startTimeMili: \"1647165600000\",\n endTimeMili: \"1667725200000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 275: [\n {\n Id: \"275\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Alaska\",\n CityList: \"\",\n TimeZone: -9,\n DisplayOrder: 6,\n HasDayLightSavings: [\n {\n offset: \"-8\",\n startTimeMili: \"1331463600000\",\n endTimeMili: \"1352023200000\",\n },\n {\n offset: \"-8\",\n startTimeMili: \"1362913200000\",\n endTimeMili: \"1383472800000\",\n },\n {\n offset: \"-8\",\n startTimeMili: \"1394362800000\",\n endTimeMili: \"1414922400000\",\n },\n {\n offset: \"-8\",\n startTimeMili: \"1425812400000\",\n endTimeMili: \"1446372000000\",\n },\n {\n offset: \"-8\",\n startTimeMili: \"1457866800000\",\n endTimeMili: \"1478426400000\",\n },\n {\n offset: \"-8\",\n startTimeMili: \"1489316400000\",\n endTimeMili: \"1509876000000\",\n },\n {\n offset: \"-8\",\n startTimeMili: \"1520766000000\",\n endTimeMili: \"1541325600000\",\n },\n {\n offset: \"-8\",\n startTimeMili: \"1552215600000\",\n endTimeMili: \"1572775200000\",\n },\n {\n offset: \"-8\",\n startTimeMili: \"1583665200000\",\n endTimeMili: \"1604224800000\",\n },\n {\n offset: \"-8\",\n startTimeMili: \"1615719600000\",\n endTimeMili: \"1636279200000\",\n },\n {\n offset: \"-8\",\n startTimeMili: \"1647169200000\",\n endTimeMili: \"1667728800000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 276: [\n {\n Id: \"276\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Alaska (Aleutian Islands)\",\n CityList: \"\",\n TimeZone: -10,\n DisplayOrder: 7,\n HasDayLightSavings: [\n {\n offset: \"-9\",\n startTimeMili: \"1394366400000\",\n endTimeMili: \"1414926000000\",\n },\n {\n offset: \"-9\",\n startTimeMili: \"1425816000000\",\n endTimeMili: \"1446375600000\",\n },\n {\n offset: \"-9\",\n startTimeMili: \"1457870400000\",\n endTimeMili: \"1478430000000\",\n },\n {\n offset: \"-9\",\n startTimeMili: \"1489320000000\",\n endTimeMili: \"1509879600000\",\n },\n {\n offset: \"-9\",\n startTimeMili: \"1520769600000\",\n endTimeMili: \"1541329200000\",\n },\n {\n offset: \"-9\",\n startTimeMili: \"1552219200000\",\n endTimeMili: \"1572778800000\",\n },\n {\n offset: \"-9\",\n startTimeMili: \"1583668800000\",\n endTimeMili: \"1604228400000\",\n },\n {\n offset: \"-9\",\n startTimeMili: \"1615723200000\",\n endTimeMili: \"1636282800000\",\n },\n {\n offset: \"-9\",\n startTimeMili: \"1647172800000\",\n endTimeMili: \"1667732400000\",\n },\n ],\n CountryCallingCode: \"1\",\n },\n ],\n 277: [\n {\n Id: \"277\",\n ShortName: \"US\",\n Country: \"United States\",\n Region: \"Hawaii\",\n CityList: \"\",\n TimeZone: -10,\n DisplayOrder: 8,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 278: [\n {\n Id: \"278\",\n ShortName: \"UY\",\n Country: \"Uruguay\",\n Region: \"Montevideo\",\n CityList: \"\",\n TimeZone: -3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"598\",\n },\n ],\n 279: [\n {\n Id: \"279\",\n ShortName: \"UZ\",\n Country: \"Uzbekistan\",\n Region: \"Tashkent\",\n CityList: \"\",\n TimeZone: 5,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"998\",\n },\n ],\n 280: [\n {\n Id: \"280\",\n ShortName: \"VU\",\n Country: \"Vanuatu\",\n Region: \"Port-Vila\",\n CityList: \"\",\n TimeZone: 11,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"678\",\n },\n ],\n 281: [\n {\n Id: \"281\",\n ShortName: \"VE\",\n Country: \"Venezuela\",\n Region: \"Caracas\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"58\",\n },\n ],\n 282: [\n {\n Id: \"282\",\n ShortName: \"VN\",\n Country: \"Vietnam\",\n Region: \"Hanoi, Ho Chi Minh City\",\n CityList: \"\",\n TimeZone: 7,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"84\",\n },\n ],\n 283: [\n {\n Id: \"283\",\n ShortName: \"VG\",\n Country: \"Virgin Islands, British\",\n Region: \"Road Town\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 284: [\n {\n Id: \"284\",\n ShortName: \"VI\",\n Country: \"Virgin Islands, U.S.\",\n Region: \"Charlotte Amamlie\",\n CityList: \"\",\n TimeZone: -4,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"1\",\n },\n ],\n 285: [\n {\n Id: \"285\",\n ShortName: \"001\",\n Country: \"Wake Island (U.S.)\",\n Region: \"Wake Islands\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"808\",\n },\n ],\n 286: [\n {\n Id: \"286\",\n ShortName: \"WF\",\n Country: \"Wallis and Futuna\",\n Region: \"Mata-Utu\",\n CityList: \"\",\n TimeZone: 12,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"681\",\n },\n ],\n 287: [\n {\n Id: \"287\",\n ShortName: \"YE\",\n Country: \"Yemen\",\n Region: \"Sanaa\",\n CityList: \"\",\n TimeZone: 3,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"967\",\n },\n ],\n 288: [\n {\n Id: \"288\",\n ShortName: \"ZM\",\n Country: \"Zambia\",\n Region: \"Lusaka\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"260\",\n },\n ],\n 289: [\n {\n Id: \"289\",\n ShortName: \"ZW\",\n Country: \"Zimbabwe\",\n Region: \"Harare\",\n CityList: \"\",\n TimeZone: 2,\n DisplayOrder: 1,\n HasDayLightSavings: [],\n CountryCallingCode: \"263\",\n },\n ],\n },\n ],\n PriorityCountryId: [\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"45\",\n \"46\",\n \"47\",\n \"48\",\n \"49\",\n \"50\",\n \"51\",\n \"52\",\n \"53\",\n \"54\",\n \"55\",\n \"56\",\n \"57\",\n \"95\",\n \"103\",\n \"269\",\n \"270\",\n \"271\",\n \"272\",\n \"273\",\n \"274\",\n \"275\",\n \"276\",\n \"277\",\n ],\n};\n","export default __webpack_public_path__ + \"static/media/pingSound.c365ca1c.wav\";","import { Interaction, Message, WebsiteSettings } from \"./interaction.interface\";\n\nexport enum ConversationState {\n Active = \"active\",\n Initialised = \"initialised\",\n /* these two status are not sent by server */\n Finished = \"finshed\",\n Restarting = \"Restarting\",\n}\n\nexport enum NotificationStyle {\n NotificationBadgeWithWelcomeInteraction = \"notification_badge_and_welcome_interactions\",\n NotificationBadgeOnly = \"notification_badge_only\",\n}\nexport enum BotDisplayType {\n POPUP = \"pop-up\",\n}\nexport interface IWidgetOptions {\n botId: null | string;\n pageUrl: string;\n websiteId: string;\n preview: boolean;\n pageTitle: string;\n directBot: boolean;\n}\n\nexport const liveChatColours = [\n \"#B731A9\",\n \"#00BFB2\",\n \"#7494EA\",\n \"#FF9785\",\n \"#F865B0\",\n \"#ffc57a\",\n \"#209DBA\",\n \"#EC4067\",\n \"#B5D6B2\",\n \"#AFBBF2\",\n \"#3ABEFF\",\n \"#CCD7C5\",\n \"#735CDD\",\n \"#C86FC9\",\n \"#028090\",\n \"#f9627d\",\n \"#3dd7df\",\n \"#A379C9\",\n \"#129490\",\n \"#ED217C\",\n \"#4A8FE7\",\n \"#EF8275\",\n \"#81B29A\",\n \"#3E6680\",\n \"#FBC2BB\",\n \"#F79AD3\",\n \"#FF9B42\",\n \"#7C98B6\",\n \"#A9F0D1\",\n \"#FEC0CE\",\n \"#82b0d6\",\n \"#6622CC\",\n \"#88A096\",\n \"#4D6CFA\",\n \"#FDC5F5\",\n \"#FB4D3D\",\n \"#817A80\",\n \"#3a9671\",\n \"#99E4D0\",\n \"#FFC482\",\n \"#2EC0F9\",\n \"#9368B7\",\n \"#CC92C2\",\n \"#FF6663\",\n \"#55ADA0\",\n \"#ff7b99\",\n \"#1EECB3\",\n \"#7F95D1\",\n];\n\nexport interface ISetupWidgetResponse {\n botId: null | string;\n botName: null | string;\n accountId: string;\n conversationId: string;\n isFirstTime: boolean;\n chSessionId: null | string;\n conversationState: ConversationState;\n liveChatStatus: string;\n showClosedWidgetInteractions: boolean;\n welcomeDisplayStyle: NotificationStyle;\n settings: WebsiteSettings;\n session_timeout: number;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n schedule_prefetch_config: Object;\n toggles: [];\n}\n\nexport interface FetchConversationResponse {\n response_interactions: Message[];\n welcomeInteractions: (Interaction & { log_id: number })[];\n total: number;\n pageSize: number;\n}\n\nexport const LOCAL_STORAGE_SESSION_KEY_PREFIX = \"ch_session\";\n\nexport const LOCAL_STORAGE_CONTACT_KEY_PREFIX = \"ch_contact\";\n\nexport const ANALYTICS_KEY_PREFIX = \"ch_analytics\";\nexport const CONSENT_ANALYTIC_COOKIE_VALUE = \"Analytics_is_ON_after_consent\";\nexport const ANALYTIC_COOKIE_VALUE = \"Analytics_is_ON\";\n\nexport const LIVE_CHAT_CHANNEL = \"live_chat\";\n\nexport interface Socket {\n on(event: string, fn: Function): void;\n emit(event: string, ...args: any[]): void;\n close(): void;\n connected: boolean;\n}\n\nexport interface Analytics {\n analytics_on_consent: boolean;\n}\n\nexport interface StorageData {\n contactCookie: CookieData;\n sessionCookie: CookieData;\n analyticCookie: CookieData;\n}\n\nexport interface CookieData {\n name: string;\n value: string;\n expires: string;\n same_site: string;\n path: string;\n secure: string;\n}\n\nexport const CONTACT_COOKIE_HEADER_KEY = \"set-co-contact-cookie\";\nexport const SESSION_COOKIE_HEADER_KEY = \"set-co-session-cookie\";\nexport const ANALYTIC_COOKIE_HEADER_KEY = \"set-co-analytic-cookie\";\n\nexport const RETRY_ANSWER_TIMEOUT = 10000;\n\nexport const mockSessionCookie = {\n same_site: \"strict\",\n path: \"/\",\n secure: false,\n name: \"ch_session_web-test\",\n value: \"test-session\",\n expires: \"2020-09-18T06:30:00.464Z\",\n};\nexport const mockContactCookie = {\n same_site: \"strict\",\n path: \"/\",\n secure: false,\n name: \"ch_contact_web-test\",\n value: \"test-contact\",\n expires: \"2020-12-17T06:00:00.463Z\",\n};\nexport const mockAnalyticCookie = {\n same_site: \"strict\",\n path: \"/\",\n secure: false,\n name: \"ch_analytic_web-test\",\n value: \"test-analytic\",\n expires: \"2020-12-17T06:00:00.463Z\",\n};\n","import { Analytics, StorageData } from \"../constants\";\nexport class MemoryStorage {\n static currentSession: string;\n static currentContact: string;\n static currentAnalytics: string;\n static analyticsSetting: Analytics;\n\n public static getSession() {\n return this.currentSession;\n }\n\n public static setValues(storageData: StorageData) {\n const analyticCookie = this.getAnalytics();\n this.currentSession = storageData.sessionCookie.value;\n this.currentContact = storageData.contactCookie.value;\n this.currentAnalytics = analyticCookie || storageData.analyticCookie.value;\n }\n\n public static getContact() {\n return this.currentContact;\n }\n\n public static setAnalytics(storageData: StorageData) {\n const analyticCookie = this.getAnalytics();\n this.currentContact = storageData.contactCookie.value;\n this.currentAnalytics = analyticCookie || storageData.analyticCookie.value;\n }\n\n public static getAnalytics() {\n return this.currentAnalytics;\n }\n}\n","import { Analytics, StorageData } from \"../constants\";\nimport { ICookie } from \"../interfaces/cookie\";\n\nexport class CookieStorage {\n static analyticsSetting: Analytics;\n static currentSession: string;\n static currentContact: string;\n static currentAnalytics: string;\n\n public static getSession(): string {\n return this.currentSession;\n }\n\n public static getContact(): string {\n return this.currentContact;\n }\n\n /**\n * Sets the analytics cookie\n */\n public static setAnalytics(storage: StorageData) {\n this.currentAnalytics = storage.analyticCookie.value;\n window.parent.postMessage(\n {\n type: \"setCookie\",\n values: [\n {\n name: storage.analyticCookie.name,\n expiry: storage.analyticCookie.expires,\n value: storage.analyticCookie.value,\n same_site: storage.analyticCookie.same_site,\n path: storage.analyticCookie.path,\n },\n {\n name: storage.contactCookie.name,\n expiry: storage.contactCookie.expires,\n value: storage.contactCookie.value,\n same_site: storage.analyticCookie.same_site,\n path: storage.analyticCookie.path,\n },\n ],\n },\n \"*\",\n );\n }\n\n /**\n * Gets the analytics cookie\n */\n public static getAnalytics(): string {\n return this.currentAnalytics;\n }\n\n public static setValues(storageData: StorageData) {\n let cookiesValues: ICookie[] = [];\n\n if (storageData.sessionCookie) {\n this.currentSession = storageData.sessionCookie.value;\n\n cookiesValues.push({\n name: storageData.sessionCookie.name,\n expiry: storageData.sessionCookie.expires,\n value: this.currentSession,\n same_site: storageData.sessionCookie.same_site,\n path: storageData.sessionCookie.path,\n });\n }\n\n if (storageData.contactCookie) {\n this.currentContact = storageData.contactCookie.value;\n\n cookiesValues.push({\n name: storageData.contactCookie.name,\n expiry: storageData.contactCookie.expires,\n value: this.currentContact,\n same_site: storageData.contactCookie.same_site,\n path: storageData.contactCookie.path,\n });\n }\n\n if (storageData.analyticCookie) {\n this.currentAnalytics = storageData.analyticCookie.value;\n\n cookiesValues.push({\n name: storageData.analyticCookie.name,\n expiry: storageData.analyticCookie.expires,\n value: this.currentAnalytics,\n same_site: storageData.analyticCookie.same_site,\n path: storageData.analyticCookie.path,\n });\n }\n\n window.parent.postMessage(\n {\n type: \"setCookie\",\n values: cookiesValues,\n },\n \"*\",\n );\n }\n}\n","import { MemoryStorage } from \"./memory-storage\";\nimport { CookieStorage } from \"./cookie-storage\";\n\nexport class StorageStrategy {\n private static strategy: MemoryStorage | CookieStorage = MemoryStorage;\n\n public static getStrategy(): any {\n return StorageStrategy.strategy;\n }\n\n public static setStrategy(): void {\n // As we are using first party cookies\n // We can always set cookies in normal and incognito mode\n StorageStrategy.strategy = CookieStorage;\n // if (navigator.cookieEnabled) {\n // StorageStrategy.strategy = CookieStorage;\n // } else {\n // StorageStrategy.strategy = MemoryStorage;\n // }\n }\n}\n","export function createGuid() {\n function _p8(s) {\n var p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n }\n return _p8(false) + _p8(true) + _p8(true) + _p8(false);\n}\n","import { createGuid } from \"./helpers\";\n\ninterface apiOptions {\n headers: {};\n body?: {};\n credentials?: boolean;\n}\n\ninterface fetchOptions {\n method: string;\n headers: {};\n body: string;\n credentials?: \"include\";\n}\n\nexport class ApiClient {\n static get(url: string, options: apiOptions) {\n return this.client(\n url,\n this.updateOptions(options),\n \"get\",\n options.credentials || false,\n );\n }\n\n static post(url: string, options: apiOptions) {\n return this.client(\n url,\n this.updateOptions(options),\n \"post\",\n options.credentials || false,\n );\n }\n\n private static client(\n url,\n options: apiOptions,\n httpVerb: string,\n credentials: boolean,\n ) {\n let fetchOptions: fetchOptions = {\n method: httpVerb,\n headers: options.headers,\n body: JSON.stringify(options.body),\n };\n if (credentials) {\n fetchOptions.credentials = \"include\";\n }\n return fetch(url, fetchOptions);\n }\n\n private static updateOptions(options: any) {\n let updatedOptions = { ...options };\n updatedOptions.headers = {\n ...options.headers,\n \"x-request-id\": createGuid(),\n };\n return updatedOptions;\n }\n}\n","import {\n IWidgetOptions,\n ISetupWidgetResponse,\n ANALYTIC_COOKIE_HEADER_KEY,\n CONTACT_COOKIE_HEADER_KEY,\n SESSION_COOKIE_HEADER_KEY,\n} from \"./constants\";\nimport { StorageStrategy } from \"./utils/storage-strategy\";\nimport { ApiClient } from \"./utils/api-client\";\n\n/**\n * Gets bot in current session\n * If botId is not found in response then there is no active bot and all other fields will be empty\n */\nexport async function setupWidget(\n options: IWidgetOptions,\n): Promise {\n const storage = StorageStrategy.getStrategy();\n let chSessionId = options.preview ? null : storage.getSession();\n let chContactId = options.preview ? null : storage.getContact();\n let chAnalytics = options.preview ? null : storage.getAnalytics();\n const response = await ApiClient.post(\n process.env.REACT_APP_SETTINGS_API + \"setup-widget\",\n {\n headers: {\n \"content-type\": \"application/json\",\n },\n body: {\n pageUrl: options.pageUrl,\n pageTitle: options.pageTitle,\n websiteId: options.websiteId,\n botId: options.botId,\n preview: options.preview,\n directBot: options.directBot,\n chContactId,\n chAnalytics,\n chSessionId,\n },\n credentials: true,\n },\n );\n\n const json = await response.json();\n if (json.success !== true) return null;\n\n let sessionId = null;\n let sessionCookieData;\n let contactCookieData;\n let analyticCookieData;\n\n try {\n sessionCookieData = JSON.parse(\n response.headers.get(SESSION_COOKIE_HEADER_KEY) || \"\",\n );\n sessionId = sessionCookieData.value;\n } catch (e) {\n sessionCookieData = null;\n }\n\n try {\n contactCookieData = JSON.parse(\n response.headers.get(CONTACT_COOKIE_HEADER_KEY) || \"\",\n );\n } catch (e) {\n contactCookieData = null;\n }\n\n try {\n analyticCookieData = JSON.parse(\n response.headers.get(ANALYTIC_COOKIE_HEADER_KEY) || \"\",\n );\n } catch (e) {\n analyticCookieData = null;\n }\n\n let storageData = {};\n\n if (options.preview) {\n storageData = {\n contactCookie: contactCookieData,\n sessionCookie: sessionCookieData,\n };\n } else {\n storageData = {\n contactCookie: contactCookieData,\n sessionCookie: sessionCookieData,\n analyticCookie: analyticCookieData,\n };\n }\n\n storage.setValues(storageData);\n\n if (response.status === 200 || response.status === 209) {\n return {\n botId: json.data.bot_id || null,\n botName: json.data.bot_name || null,\n accountId: json.data.account_id,\n conversationId: json.data.conversation_id,\n chSessionId: sessionId,\n isFirstTime: json.data.is_first_time,\n conversationState: json.data.conversation_state,\n liveChatStatus: json.data.live_chat_status || \"\",\n showClosedWidgetInteractions: json.data.show_closed_widget_interactions,\n welcomeDisplayStyle: json.data.welcome_display_style,\n settings: getWebsiteSetting(\n json.data.settings,\n json.data.website_id || options.websiteId,\n ),\n session_timeout: json.data.session_timeout,\n oncehubBrandingUrl: json.data.branding_url,\n showPromotionalMessage: json.data.show_promotional_message,\n schedule_prefetch_config: json.data.schedule_prefetch_config,\n toggles: json.data.toggles,\n };\n } else {\n return null;\n }\n}\n\nexport function getWebsiteSetting(data, websiteId) {\n return {\n id: websiteId,\n botName: data?.bot_name,\n companyName: data?.company_name,\n colour: data?.colour,\n textColour: data?.text_colour,\n shape: data?.shape,\n widgetIcon: data?.widget_icon,\n botIcon: data?.bot_icon,\n };\n}\n","import { FetchConversationResponse } from \"./constants\";\nimport { ApiClient } from \"./utils/api-client\";\nimport { StorageStrategy } from \"./utils/storage-strategy\";\nimport { Interaction } from \"./interaction.interface\";\n\n/** Fetches current conversation. In preview we don't fetch conversation */\nexport async function fetchConverasation(\n websiteId: string,\n page: number = 1,\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const url =\n process.env.REACT_APP_SETTINGS_API +\n \"response-interactions?page=\" +\n page +\n \"&website_id=\" +\n websiteId +\n \"&ch_session_id=\" +\n storage.getSession();\n const response = await ApiClient.get(url, {\n headers: {\n \"content-type\": \"application/json\",\n },\n });\n if (response.status !== 200) {\n throw new Error(\"Unexpected response from server\");\n }\n const total = response.headers.get(\"total\");\n const pageSize = response.headers.get(\"per-page\");\n if (total == null || pageSize == null) throw new Error();\n const json = await response.json();\n json.response_interactions = json.response_interactions.map((item) => ({\n ...item,\n id: item.log_id.toString(),\n }));\n json.response_interactions.reverse();\n const welcomeInteractions: (Interaction & { log_id: number })[] = [];\n for (let i = json.response_interactions.length - 1; i >= 0; i--) {\n const message = json.response_interactions[i];\n if (message.sent_by === \"bot\" && !message.is_read) {\n welcomeInteractions.push(message);\n }\n }\n return {\n response_interactions: json.response_interactions,\n welcomeInteractions: welcomeInteractions.reverse(),\n total: parseInt(total),\n pageSize: parseInt(pageSize),\n };\n}\n","import {\n Message,\n Interaction,\n ConfirmEventData,\n WebsiteSettings,\n Question,\n BotMessage, // release toggle name MakeBotsWorkAtScale\n} from \"./interaction.interface\";\nimport {\n NotificationStyle,\n ConversationState,\n LIVE_CHAT_CHANNEL,\n} from \"./constants\";\nimport {\n ErrorWhileBlocking,\n ErrorWhileConfirming,\n FetchSlotsAPIErrorResponse,\n} from \"./widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.type\";\nimport { getWebsiteSetting } from \"./setup.service\";\n\nexport enum SocketStatus {\n CONNECTED,\n DISCONNECTED,\n CONNECTING,\n}\n\nexport interface Bot {\n id: string | null;\n name: string | null;\n session_timeout: number;\n hasCloseNotifications: boolean;\n notificationStyle: NotificationStyle;\n}\n\nexport interface BotCache {\n botId: string;\n websiteId: string;\n website: unknown;\n welcomeInteractions: unknown[];\n botDisplaySetting: unknown;\n}\n\nexport interface IAppContext {\n standalone: boolean;\n preview: boolean;\n settings: WebsiteSettings;\n bot: Bot;\n accountId: string;\n conversationId: string;\n startedAt: null | number;\n liveChatStatus: string;\n state: ConversationState | null;\n socket: SocketStatus;\n open: boolean;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n liveChatchannel?: any;\n liveChatAccepted?: boolean;\n isLiveChatAbandoned?: boolean;\n liveChatUsers?: {};\n liveChatObj?: any;\n liveChatOwnerId?: string;\n liveChatUserTyping?: boolean;\n contactId?: string;\n schedule_prefetch_config?: Object;\n preFetchedSlots: Object;\n toggles: [];\n messageLimitExceeded: boolean;\n closedByVisitor?: boolean;\n botDisplayType?: string;\n showPopupCloseButton?: boolean;\n}\n\nexport interface IConversationContext {\n messages: Message[];\n welcomeInteractions?: [];\n messageFailed: boolean;\n pageSize: number;\n total: number;\n messageLimitExceeded: boolean;\n}\n\nexport interface AppState {\n closedByVisitor?: boolean;\n liveChatUsers?: {};\n startTime: number;\n startedAt: null | number;\n bot: null | Bot;\n accountId: string;\n conversationId: string;\n settings: null | WebsiteSettings;\n liveChatchannel?: any;\n liveChatAccepted?: boolean;\n isLiveChatAbandoned?: boolean;\n liveChatObj?: any;\n liveChatOwnerId?: string;\n liveChatUserTyping?: boolean;\n contactId?: string;\n messages: Message[];\n welcomeInteractions?: [];\n page: number;\n total: number;\n state: ConversationState | null;\n liveChatStatus: string;\n socket: SocketStatus;\n open: boolean;\n messageFailed: boolean;\n pageSize: number;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n schedule_prefetch_config?: Object;\n preFetchedSlots: {};\n toggles: [];\n messageLimitExceeded?: any;\n showPopupCloseButton?: boolean;\n preview?: boolean;\n}\n\nexport type AppAction =\n | {\n type: \"SETUP\";\n data: {\n bot: Bot;\n accountId: string;\n conversationId: string;\n settings: WebsiteSettings;\n messages: Message[];\n total: number;\n state: ConversationState;\n startedAt: number;\n liveChatStatus: string;\n open: boolean;\n pageSize: number;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n toggles: [];\n schedule_prefetch_config: Object;\n showPopupCloseButton?: boolean;\n };\n }\n | { type: \"RESTART\" }\n | { type: \"SOCKET_CONNECT\" }\n | { type: \"SOCKET_CONNECTING\" }\n | { type: \"SOCKET_DISCONNECT\" }\n | {\n type: \"NEW_MESSAGE\";\n liveChatchannel?: any;\n liveChatUsers?: any;\n message: Message;\n }\n | {\n type: \"LIVE_CHAT_HISTORY\";\n messageHistory: Message[];\n liveChatUsers?: any;\n liveChatchannel?: any;\n }\n | { type: \"BOT_RESPONSE\" }\n | { type: \"INITIATED\" }\n | { type: \"OPEN_WIDGET\" }\n | { type: \"OPEN_WIDGET_LINK\" }\n | { type: \"CLOSE_WIDGET\" }\n | { type: \"MESSAGE_FAILED\" }\n | {\n type: \"SCHEDULE_RESPONSE\";\n response:\n | ErrorWhileConfirming\n | ConfirmEventData\n | FetchSlotsAPIErrorResponse\n | ErrorWhileBlocking;\n }\n | { type: \"INIT_LIVE_CHAT\"; liveChatObj: any }\n | { type: \"LIVE_CHAT_TIMEOUT\" }\n | { type: \"LIVE_CHAT_ACCEPTED\" }\n | { type: \"ABANDONED_CHAT\" }\n | { type: \"CACHE\"; cache: BotCache }\n | { type: \"SET_LIVE_CHAT_OWNER\"; liveChatOwnerId: string }\n | { type: \"SET_LIVE_CHAT_USER_TYPING\"; liveChatUserTyping: boolean }\n | { type: \"SET_CONTACT_ID\"; contactId: string }\n | { type: \"END_CONVERSATION\" }\n | { type: \"INTERACTION_SEEN\" }\n | { type: \"CLOSED_NOTIFICATIONS\" }\n | { type: \"ANSWER_DELIVERED\"; id: string }\n | { type: \"RESEND_LAST_MESSAGE\" }\n | {\n type: \"UPDATE_TIMEZONE\";\n timezoneId: string;\n message_id?: string;\n }\n | { type: \"CLEAN_DOUBLE_BOOKING_ERROR\" }\n | { type: \"APPEND_MISSED_MESSAGE\"; messages: Message[] }\n | { type: \"LOADING_NEXT_PAGE\"; page: number }\n | { type: \"LOAD_PAGE\"; messages: Message[] }\n | { type: \"UPDATE_PREFETCH_SCHEDULE\"; slotsData: Object }\n | { type: \"MESSAGE_LIMIT_EXCEEDED\"; messageLimitExceeded: boolean }\n | { type: \"CLOSED_BY_VISITOR\" };\n\nexport function reducer(state: AppState, action: AppAction): AppState {\n switch (action.type) {\n case \"SETUP\":\n return {\n ...action.data,\n startTime: state.startTime,\n page: 1,\n accountId: action.data.accountId,\n conversationId: action.data.conversationId,\n socket: state.socket,\n messageFailed: false,\n preFetchedSlots: {},\n messageLimitExceeded: false,\n liveChatObj: null,\n liveChatchannel: null,\n liveChatAccepted: false,\n liveChatOwnerId: undefined,\n isLiveChatAbandoned: false,\n liveChatUserTyping: false,\n liveChatStatus: action.data.liveChatStatus,\n liveChatUsers: {},\n };\n case \"RESTART\":\n return {\n ...state,\n messages: [],\n page: 0,\n startTime: Date.now(),\n total: 0,\n state: ConversationState.Restarting,\n messageFailed: false,\n messageLimitExceeded: false,\n };\n case \"SOCKET_CONNECT\":\n return {\n ...state,\n socket: SocketStatus.CONNECTED,\n };\n case \"SOCKET_CONNECTING\":\n return {\n ...state,\n socket: SocketStatus.CONNECTING,\n };\n case \"SOCKET_DISCONNECT\":\n return {\n ...state,\n socket: SocketStatus.DISCONNECTED,\n };\n case \"INITIATED\":\n return {\n ...state,\n state: ConversationState.Active,\n };\n case \"NEW_MESSAGE\":\n return {\n ...state,\n liveChatchannel: action.liveChatchannel,\n liveChatUsers: action.liveChatUsers,\n messageFailed: false,\n total: state.total + 1,\n messageLimitExceeded: state.messageLimitExceeded,\n messages: [...state.messages, action.message],\n };\n case \"LIVE_CHAT_HISTORY\":\n return {\n ...state,\n liveChatUsers: action.liveChatUsers,\n liveChatchannel: action.liveChatchannel,\n total: state.total + action.messageHistory.length,\n messages: [...state.messages, ...action.messageHistory],\n };\n case \"OPEN_WIDGET\":\n return {\n ...state,\n open: true,\n state:\n state.state === ConversationState.Initialised\n ? ConversationState.Active\n : state.state,\n };\n case \"OPEN_WIDGET_LINK\":\n return {\n ...state,\n open: true,\n messages: [],\n page: 0,\n total: 0,\n state: ConversationState.Active,\n messageFailed: false,\n messageLimitExceeded: false,\n };\n case \"CLOSE_WIDGET\":\n return {\n ...state,\n open: false,\n };\n case \"MESSAGE_FAILED\":\n return {\n ...state,\n messageFailed: true,\n };\n case \"MESSAGE_LIMIT_EXCEEDED\":\n return {\n ...state,\n messageFailed: true,\n messageLimitExceeded: action.messageLimitExceeded || false,\n };\n case \"SCHEDULE_RESPONSE\": {\n const messages: Message[] = [...state.messages];\n let index = messages.findIndex(\n (message) => action.response.message_id === message.id,\n );\n if (index === -1) index = messages.length - 1;\n let message: Message = messages[index];\n if (message.sent_by !== \"bot\" && message.sent_by !== \"agent\")\n throw new Error();\n const interaction = { ...message.data } as Interaction;\n if (interaction.interaction_type !== \"action\") throw new Error();\n if (interaction.action_type !== \"schedule\") throw new Error();\n if (\"schedule_status\" in action.response) {\n interaction.schedule_status = action.response.schedule_status;\n interaction.schedule_fallback_message =\n action.response.schedule_fallback_message;\n } else {\n interaction.schedule_status = \"confirmed\";\n interaction.schedule_confirm_data = action.response;\n }\n message.data = interaction;\n messages[index] = message;\n return { ...state, messages };\n }\n case \"INIT_LIVE_CHAT\": {\n return {\n ...state,\n liveChatObj: action.liveChatObj,\n liveChatchannel: LIVE_CHAT_CHANNEL,\n };\n }\n case \"LIVE_CHAT_TIMEOUT\":\n return { ...state, liveChatObj: null, liveChatchannel: null };\n case \"LIVE_CHAT_ACCEPTED\":\n return { ...state, liveChatAccepted: true };\n case \"SET_LIVE_CHAT_OWNER\":\n return { ...state, liveChatOwnerId: action.liveChatOwnerId };\n case \"SET_LIVE_CHAT_USER_TYPING\":\n return { ...state, liveChatUserTyping: action.liveChatUserTyping };\n case \"SET_CONTACT_ID\":\n return { ...state, contactId: action.contactId };\n case \"CLEAN_DOUBLE_BOOKING_ERROR\": {\n const messages = [...state.messages];\n const message = { ...messages[messages.length - 1] };\n if (message.sent_by !== \"bot\") throw new Error();\n const interaction = { ...message.data } as Interaction;\n if (interaction.interaction_type !== \"action\") throw new Error();\n if (interaction.action_type !== \"schedule\") throw new Error();\n delete interaction.schedule_status;\n message.data = interaction;\n messages[messages.length - 1] = message;\n return { ...state, messages };\n }\n case \"END_CONVERSATION\":\n return { ...state, state: ConversationState.Finished };\n case \"ABANDONED_CHAT\":\n return {\n ...state,\n state: ConversationState.Finished,\n isLiveChatAbandoned: true,\n };\n case \"INTERACTION_SEEN\":\n return {\n ...state,\n messages: state.messages.map((message) => {\n if (message.sent_by === \"contact\") return message;\n if (message.is_read === true) return message;\n return { ...message, is_read: true };\n }),\n };\n case \"CLOSED_NOTIFICATIONS\":\n return {\n ...state,\n bot: state.bot && {\n ...state.bot,\n hasCloseNotifications: true,\n },\n };\n case \"ANSWER_DELIVERED\":\n return {\n ...state,\n messages: state.messages.map((message) =>\n message.id !== action.id\n ? message\n : {\n ...message,\n is_read: true,\n },\n ),\n };\n case \"RESEND_LAST_MESSAGE\":\n return {\n ...state,\n messageFailed: false,\n };\n case \"UPDATE_TIMEZONE\": {\n const messages: Message[] = [...state.messages];\n let index = messages.findIndex(\n (message) => action.message_id === message.id,\n );\n if (index === -1) index = messages.length - 1;\n let message: Message = messages[index];\n if (message.sent_by === \"contact\") return state;\n const interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"action\") return state;\n if (interaction.action_type !== \"schedule\") return state;\n messages[index] = {\n ...message,\n data: { ...interaction, time_zone_id: action.timezoneId },\n };\n return { ...state, messages };\n }\n case \"APPEND_MISSED_MESSAGE\": {\n const messages = [...state.messages];\n const messageIds = new Set(messages.map((message) => message.id));\n const nextMessages = action.messages;\n let total = state.total;\n for (let i = nextMessages.length - 1; i >= 0; i--) {\n const message = nextMessages[i];\n if (message.sent_by === \"bot\" && !messageIds.has(message.id)) {\n messages.push(message);\n total++;\n }\n }\n return { ...state, messages, total };\n }\n case \"LOADING_NEXT_PAGE\": {\n return { ...state, page: state.page + 1 };\n }\n case \"LOAD_PAGE\": {\n const messages = [...state.messages];\n const messageIds = new Set(messages.map((message) => message.id));\n const nextMessages = action.messages.filter(\n (message) => !messageIds.has(message.id),\n );\n return {\n ...state,\n messages: [...nextMessages, ...state.messages],\n total: state.total,\n };\n }\n case \"UPDATE_PREFETCH_SCHEDULE\": {\n return {\n ...state,\n preFetchedSlots: {\n ...state.preFetchedSlots,\n ...action.slotsData,\n },\n };\n }\n case \"CLOSED_BY_VISITOR\": {\n return {\n ...state,\n closedByVisitor: true,\n showPopupCloseButton: false,\n };\n }\n case \"CACHE\": {\n if (state.messages.length !== 0) return state;\n const messages = (\n action.cache.welcomeInteractions as any[]\n ).map((message) => ({\n ...message,\n id: message.log_id.toString(),\n interaction_time: new Date().toISOString(),\n }));\n const settings = getWebsiteSetting(\n action.cache.website,\n action.cache.websiteId,\n );\n overrideWebsiteBotIconWithDisplaySettingBotIcon(\n settings,\n action.cache.botDisplaySetting,\n );\n const bot = {\n name: settings.botName,\n id: action.cache.botId,\n hasCloseNotifications: true,\n session_timeout: 60 * 1000 * 1000,\n notificationStyle: NotificationStyle.NotificationBadgeOnly,\n };\n return { ...state, bot, messages, settings, total: messages.length };\n }\n default:\n throw new Error(\"Unknown action \" + JSON.stringify(action, null, 4));\n }\n}\n\nexport function initialAppState(): AppState {\n return {\n bot: null,\n accountId: \"\",\n conversationId: \"\",\n settings: null,\n messages: [],\n welcomeInteractions: [],\n page: 0,\n total: 0,\n pageSize: 15,\n state: ConversationState.Initialised,\n startedAt: null,\n liveChatStatus: \"\",\n socket: SocketStatus.DISCONNECTED,\n open: false,\n messageFailed: false,\n oncehubBrandingUrl: \"\",\n showPromotionalMessage: false,\n preFetchedSlots: {},\n toggles: [],\n messageLimitExceeded: false,\n startTime: Date.now(),\n };\n}\n\nfunction overrideWebsiteBotIconWithDisplaySettingBotIcon(\n setting,\n botDisplaySetting,\n) {\n if (botDisplaySetting && botDisplaySetting.hasOwnProperty(\"botIcon\")) {\n setting.botIcon = botDisplaySetting.botIcon;\n }\n}\n\nexport function getWebsiteId(state: AppState): string {\n if (state.settings === null) throw new Error();\n return state.settings.id;\n}\n\nexport function currentInteractionId(state: AppState): null | string {\n const messages = state.messages;\n let interactionId: string | null = null;\n for (let i = messages.length - 1; i >= 0 && interactionId === null; i--) {\n const message = messages[i];\n if (message.sent_by === \"agent\") {\n break;\n }\n if (\n message.sent_by === \"bot\" &&\n (message.data as Interaction).interaction_type != null\n ) {\n interactionId = (message.data as Interaction).external_id;\n }\n }\n return interactionId;\n}\n\n// release toggle name MakeBotsWorkAtScale\nexport function contactFieldId(state: AppState): null | string {\n const messages = state.messages;\n let contact_field_id: string | null = null;\n for (let i = messages.length - 1; i >= 0; i--) {\n const message = messages[i];\n if (message.sent_by === \"bot\") {\n contact_field_id = (message.data as Question).contact_field_id;\n break;\n }\n }\n return contact_field_id;\n}\n\nexport function contactFieldType(state: AppState): null | number {\n const messages = state.messages;\n let contact_field_type: number | null = null;\n for (let i = messages.length - 1; i >= 0; i--) {\n const message = messages[i];\n if (message.sent_by === \"bot\") {\n contact_field_type = (message.data as Question).contact_field_type;\n break;\n }\n }\n return contact_field_type;\n}\n","import { IWidgetOptions } from \"../constants\";\n\nexport class Context {\n private static instance: Context;\n\n private constructor(\n public websiteId,\n public preview,\n public pageUrl,\n public pageTitle,\n public botId,\n public directBot,\n ) {}\n\n public static getInstance(): Context {\n return Context.instance;\n }\n\n public static setInstance(options: IWidgetOptions): void {\n Context.instance = new Context(\n options.websiteId,\n options.preview,\n options.pageUrl,\n options.pageTitle,\n options.botId,\n options.directBot,\n );\n }\n}\n","import {\n AppAction,\n AppState,\n currentInteractionId,\n contactFieldId, // release toggle name MakeBotsWorkAtScale\n contactFieldType,\n getWebsiteId,\n} from \"./reducer\";\nimport {\n Interaction,\n Message,\n ConfirmEventData,\n} from \"./interaction.interface\";\nimport { Dispatch } from \"react\";\nimport {\n ErrorWhileBlocking,\n ErrorWhileConfirming,\n FetchSlotsAPIErrorResponse,\n} from \"./widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.type\";\nimport { fetchConverasation } from \"./conversation.service\";\nimport {\n ConversationState,\n Socket,\n RETRY_ANSWER_TIMEOUT,\n LIVE_CHAT_CHANNEL,\n BotDisplayType,\n} from \"./constants\";\nimport { connectSocket } from \"./io\";\nimport { StorageStrategy } from \"./utils/storage-strategy\";\nimport { IUser } from \"./interaction.interface\";\nimport { Context } from \"./utils/context.service\";\n\nexport type ContentObjForSingleOrMultiChoiceAnswer = {\n id: string;\n value: string;\n};\n\ninterface SocketContactDetails {\n email: string;\n first_name: string;\n last_name: string;\n}\n\nexport type ServerEvent =\n | {\n type: \"conversation_initiated\";\n }\n | {\n type: \"new_interaction\";\n }\n | {\n type: \"bot_response\";\n }\n | {\n type: \"interaction_error\";\n }\n | { type: \"end_conversation\" }\n | {\n type: \"all_interactions_send\";\n }\n | {\n type: \"answer_delivered\";\n };\n\ninterface AnswerEvent {\n type: \"answer\";\n answer_id: string;\n content?: string;\n content_object_array?: ContentObjForSingleOrMultiChoiceAnswer[];\n time_zone_id?: string;\n interaction_option_id?: number;\n multi_interaction_options_answer_ids?: number[];\n}\n\ntype ClientEvent =\n | AnswerEvent\n | {\n type: \"contact_update\";\n contact: object;\n }\n | {\n type: \"next_interaction\";\n }\n | {\n type: \"welcome_interactions_closed\";\n }\n | {\n type: \"finish_conversation\";\n finished_by: string;\n }\n | {\n type: \"update_timezone\";\n time_zone_id: string;\n }\n | {\n type: \"interaction_seen\";\n }\n | {\n type: \"heartbeat\";\n }\n | {\n type: \"initializing\";\n }\n | {\n type: \"live_chat_timeout\";\n };\n\nfunction randomId(): string {\n return (\n ((Math.random() * 1073741824) >>> 0).toString(36) +\n ((Math.random() * 1073741824) >>> 0).toString(36)\n );\n}\n\nexport type Actions = ReturnType;\n\nexport type Answer =\n | { content: string }\n | {\n content: string;\n interaction_option_id: number;\n content_object_array: ContentObjForSingleOrMultiChoiceAnswer[];\n }\n | {\n content: string;\n multi_interaction_options_answer_ids: number[];\n content_object_array: ContentObjForSingleOrMultiChoiceAnswer[];\n }\n | { content: string; time_zone_id: string };\n\nexport function createActions(\n dispatch: Dispatch,\n getState: () => AppState,\n) {\n let socket: null | Socket = null;\n let lastAnswer: AnswerEvent | null = null;\n let retryAnswerTimeout: any = null;\n let nextMessageAt = Date.now();\n let ping = 2500;\n let finished = false;\n let storage = StorageStrategy.getStrategy();\n\n function connect() {\n socket = connectSocket();\n\n dispatch({ type: \"SOCKET_CONNECTING\" });\n\n socket.on(\"connect\", () => dispatch({ type: \"SOCKET_CONNECT\" }));\n\n socket.on(\"disconnect\", () => dispatch({ type: \"SOCKET_DISCONNECT\" }));\n\n socket.on(\"reconnect\", () => {\n dispatch({ type: \"SOCKET_CONNECT\" });\n fetchConverasation(getWebsiteId(getState())).then((data) =>\n dispatch({\n type: \"APPEND_MISSED_MESSAGE\",\n messages: data.response_interactions,\n }),\n );\n });\n\n socket.on(\"conversation_initiated\", () => dispatch({ type: \"INITIATED\" }));\n\n socket.on(\n \"new_interaction\",\n (interaction: Interaction & { log_id: number }) => {\n if (\n interaction.interaction_type == \"action\" &&\n interaction.action_type == \"hand_off\"\n ) {\n interaction.from_socket = true;\n }\n\n return addNextMessage({\n id: interaction.log_id.toString(),\n sent_by: \"bot\",\n data: interaction,\n is_read: false,\n interaction_time: new Date().toISOString(),\n });\n },\n );\n\n socket.on(\"bot_response\", (data) =>\n addNextMessage({\n id: data.log_id.toString(),\n sent_by: \"bot\",\n data: {\n text: data.text,\n },\n is_read: false,\n interaction_time: new Date().toISOString(),\n }),\n );\n\n socket.on(\"interaction_error\", (data) =>\n addNextMessage({\n id: data.log_id.toString(),\n sent_by: \"bot\",\n data: {\n text: data.error,\n },\n is_read: false,\n interaction_time: new Date().toISOString(),\n }),\n );\n\n socket.on(\"end_conversation\", () => {\n setTimeout(endConversation, Math.max(0, nextMessageAt - Date.now()));\n });\n\n socket.on(\"answer_delivered\", (data) => {\n if (retryAnswerTimeout !== null) clearTimeout(retryAnswerTimeout);\n dispatch({ type: \"ANSWER_DELIVERED\", id: data.answer_id });\n nextMessageAt = Date.now() + 500; // Display the typing indicator for atleast 0.5 second before sending the next interaction\n });\n\n socket.on(\"all_interactions_send\", () => {\n setTimeout(endConversation, Math.max(0, nextMessageAt - Date.now()));\n });\n\n socket.on(\"pong\", (ms: number) => {\n ping = ms;\n });\n\n push({ type: \"initializing\" });\n return socket;\n }\n\n function addNextMessage(message: Message) {\n const time = nextMessageAt - Date.now();\n if (time <= 0) {\n nextMessageAt = Date.now() + 1000;\n dispatch({ type: \"NEW_MESSAGE\", message });\n } else {\n nextMessageAt += 1000;\n setTimeout(() => dispatch({ type: \"NEW_MESSAGE\", message }), time);\n }\n }\n\n function closePopupBot(botDisplayType) {\n if (\n Context.getInstance() &&\n Context.getInstance().directBot &&\n botDisplayType &&\n botDisplayType === BotDisplayType.POPUP\n ) {\n dispatch({ type: \"CLOSED_BY_VISITOR\" });\n window.parent.postMessage(\n {\n type: \"removeDialogOuter\",\n },\n \"*\",\n );\n endConversation();\n closeWidget();\n }\n }\n\n function disconnect() {\n socket?.close();\n socket = null;\n }\n\n function push({ type, ...data }: ClientEvent) {\n const state = getState();\n if (!state.startedAt) return;\n if (finished) return;\n let sessionId = storage.getSession();\n if (!sessionId) {\n endConversation();\n return;\n }\n if (socket === null) {\n socket = connect();\n }\n const current_interaction_id = currentInteractionId(state);\n // Current intercation id is null when live chat conversation is started\n // Prevent sending `interaction_seen` event for this scenario\n if (!current_interaction_id && type === \"interaction_seen\") {\n return;\n }\n const payload = {\n ...data,\n eventId: randomId(),\n website_id: getWebsiteId(state),\n current_interaction_id,\n contact_field_id: contactFieldId(state), // release toggle name MakeBotsWorkAtScale\n contact_field_type: contactFieldType(state),\n session: sessionId,\n is_preview: state.preview,\n };\n let done = false;\n const sessionSocket = socket;\n socket.emit(type, payload, () => {\n done = true;\n if (finished) sessionSocket.close();\n });\n const send = () => {\n if (socket !== sessionSocket || done) return;\n if (socket.connected) {\n socket.emit(type, payload, () => {\n done = true;\n if (finished) sessionSocket.close();\n });\n }\n setTimeout(send, ping * 2);\n };\n setTimeout(send, ping * 2);\n }\n\n function answer(answer: Answer) {\n const { state, startedAt } = getState();\n if (\n startedAt === null ||\n (state !== ConversationState.Active &&\n state !== ConversationState.Initialised)\n ) {\n return;\n }\n lastAnswer = {\n type: \"answer\",\n answer_id: randomId(),\n ...answer,\n };\n push(lastAnswer);\n dispatch({\n type: \"NEW_MESSAGE\",\n message: {\n sent_by: \"contact\",\n id: lastAnswer.answer_id,\n is_read: false,\n data: {\n text: answer.content,\n },\n interaction_time: new Date().toISOString(),\n },\n });\n retryAnswerTimeout = setTimeout(\n () => dispatch({ type: \"MESSAGE_FAILED\" }),\n RETRY_ANSWER_TIMEOUT,\n );\n }\n\n function liveChatHistory(messages, liveChatUsers, liveChatChannel) {\n dispatch({\n type: \"LIVE_CHAT_HISTORY\",\n messageHistory: messages,\n liveChatUsers: liveChatUsers,\n liveChatchannel: liveChatChannel,\n });\n }\n\n function messageLimitExceeded(messageLimitExceeded) {\n dispatch({\n type: \"MESSAGE_LIMIT_EXCEEDED\",\n messageLimitExceeded: messageLimitExceeded,\n });\n }\n\n function liveChatResponse(response: Answer, message, liveChatUsers) {\n const liveChatResponse: any = setLiveChatResponse(message, response);\n if (message.type === \"abandoned_chat\") {\n dispatch({\n type: \"ABANDONED_CHAT\",\n });\n }\n const liveChatChannel =\n message.type === \"end_chat\" || message.type === \"abandoned_chat\"\n ? \"\"\n : LIVE_CHAT_CHANNEL;\n if (message.type === \"end_chat\" || message.type === \"abandoned_chat\")\n endConversation();\n dispatch({\n type: \"NEW_MESSAGE\",\n liveChatchannel: liveChatChannel,\n liveChatUsers: liveChatUsers,\n message: {\n sent_by: \"agent\",\n user_name: \"Admin\",\n id: randomId(),\n is_read: liveChatResponse.is_live_chat_notification ? true : false,\n data: liveChatResponse,\n interaction_time: new Date().toISOString(),\n },\n });\n }\n\n function setLiveChatResponse(message, response) {\n const user: IUser = message.user;\n switch (message.type) {\n case \"end_chat\":\n case \"abandoned_chat\": {\n return {\n text: \"\",\n interaction_type: \"action\",\n action_type: \"end_conversation\",\n user: user,\n };\n }\n case \"text_message\": {\n return {\n text: response.content,\n interaction_type: \"question\",\n question_type: \"text\",\n user: user,\n };\n }\n case \"request_accepted\": {\n return {\n text: response.content,\n interaction_type: \"question\",\n question_type: \"text\",\n is_live_chat_notification: true,\n user: user,\n };\n }\n case \"schedule\": {\n return {\n ...message,\n interaction_type: \"action\",\n action_type: \"schedule\",\n user: user,\n };\n }\n default: {\n return {\n text: response.content,\n interaction_type: \"question\",\n question_type: \"text\",\n user: user,\n };\n }\n }\n }\n\n function liveChatAnswer(answer: Answer, liveChatchannel, liveChatUsers) {\n const messageLimitExceeded = getState().messageLimitExceeded;\n const state = getState().state;\n if (\n state !== ConversationState.Active &&\n state !== ConversationState.Initialised\n ) {\n return;\n }\n lastAnswer = {\n type: \"answer\",\n answer_id: randomId(),\n ...answer,\n };\n // push(lastAnswer);\n dispatch({\n type: \"NEW_MESSAGE\",\n liveChatchannel: liveChatchannel,\n liveChatUsers: liveChatUsers,\n message: {\n sent_by: \"contact\",\n user_name: \"Visitor\",\n id: lastAnswer.answer_id,\n is_read: messageLimitExceeded ? false : true,\n data: {\n text: answer.content,\n },\n interaction_time: new Date().toISOString(),\n },\n });\n }\n\n function setLiveChatOwner(ownerId) {\n dispatch({\n type: \"SET_LIVE_CHAT_OWNER\",\n liveChatOwnerId: ownerId,\n });\n }\n\n function updateLiveChatUserTypingState(status) {\n dispatch({\n type: \"SET_LIVE_CHAT_USER_TYPING\",\n liveChatUserTyping: status,\n });\n }\n\n function setContactId(contactId) {\n dispatch({\n type: \"SET_CONTACT_ID\",\n contactId: contactId,\n });\n }\n\n function triggerContactUpdate(contact: SocketContactDetails) {\n push({ type: \"contact_update\", contact });\n }\n\n function nextInteraction() {\n push({ type: \"next_interaction\" });\n }\n\n function finishConversation() {\n const { liveChatAccepted, isLiveChatAbandoned, closedByVisitor } =\n getState();\n let finished_by;\n if (isLiveChatAbandoned) {\n finished_by = \"abandon_by_visitor\";\n } else {\n finished_by = closedByVisitor\n ? \"Visitor\"\n : liveChatAccepted\n ? \"Agent\"\n : \"Bot\";\n }\n push({ type: \"finish_conversation\", finished_by });\n finished = true;\n }\n\n function timeout() {\n const { liveChatchannel } = getState();\n if (liveChatchannel) {\n return;\n }\n finished = true;\n dispatch({ type: \"ABANDONED_CHAT\" });\n dispatch({ type: \"END_CONVERSATION\" });\n if (socket !== null) {\n socket.close();\n socket = null;\n }\n }\n\n function updateTimezone(\n time_zone_id: string,\n live_chat_message_key?: string,\n message_id?: string,\n ) {\n push({ type: \"update_timezone\", time_zone_id });\n dispatch({\n type: \"UPDATE_TIMEZONE\",\n timezoneId: time_zone_id,\n message_id: message_id,\n });\n const { liveChatchannel } = getState();\n if (liveChatchannel && live_chat_message_key) {\n updateFirebaseScheduleInteraction(live_chat_message_key, {\n time_zone_id: time_zone_id,\n });\n }\n }\n\n function closeWidget() {\n dispatch({ type: \"CLOSE_WIDGET\" });\n }\n\n function openWidget() {\n const { messages, state, liveChatchannel } = getState();\n if (state == null) {\n dispatch({ type: \"OPEN_WIDGET\" });\n return;\n }\n const message = messages[messages.length - 1];\n if (message == null) {\n dispatch({ type: \"OPEN_WIDGET\" });\n nextInteraction();\n return;\n }\n const isAnswerFromVisitor = message.sent_by !== \"bot\" && message.is_read;\n\n if (!liveChatchannel && isAnswerFromVisitor) {\n // Catch for instant refresh after answering\n nextInteraction();\n }\n if (message.sent_by === \"bot\") {\n const interaction = message.data as Interaction;\n if (interaction.interaction_type === \"message\") {\n nextInteraction();\n } else if (interaction.interaction_type === \"action\") {\n if (interaction.action_type === \"schedule\") {\n if (interaction.schedule_status) {\n if (interaction.schedule_status !== \"slots_fetched\") {\n nextInteraction();\n }\n }\n }\n if (interaction.action_type === \"end_conversation\") {\n setTimeout(endConversation, Math.max(0, nextMessageAt - Date.now()));\n }\n }\n }\n dispatch({ type: \"OPEN_WIDGET\" });\n }\n\n function interactionSeen() {\n push({ type: \"interaction_seen\" });\n dispatch({ type: \"INTERACTION_SEEN\" });\n }\n\n function restart() {\n finished = false;\n if (socket) {\n socket.close();\n socket = null;\n }\n dispatch({ type: \"RESTART\" });\n }\n\n function openNewBot() {\n if (finished) {\n finished = false;\n if (socket) {\n socket.close();\n socket = null;\n }\n }\n }\n\n function resendLastMessage() {\n if (lastAnswer === null) throw new Error();\n nextMessageAt = Date.now() + 1000;\n dispatch({ type: \"RESEND_LAST_MESSAGE\" });\n nextMessageAt = Date.now() + 1000;\n push(lastAnswer);\n retryAnswerTimeout = setTimeout(\n () => dispatch({ type: \"MESSAGE_FAILED\" }),\n RETRY_ANSWER_TIMEOUT,\n );\n }\n\n function scheduleResponse(\n response:\n | ErrorWhileConfirming\n | ConfirmEventData\n | FetchSlotsAPIErrorResponse\n | ErrorWhileBlocking,\n live_chat_message_key?,\n ) {\n dispatch({ type: \"SCHEDULE_RESPONSE\", response });\n nextMessageAt = Date.now() + 2000;\n const { liveChatchannel } = getState();\n if (!liveChatchannel) {\n nextInteraction();\n } else if (live_chat_message_key) {\n let updateData = {};\n if (\"schedule_status\" in response) {\n updateData = { schedule_status: response.schedule_status };\n } else {\n updateData = {\n schedule_status: \"confirmed\",\n schedule_confirm_data: response,\n };\n }\n updateFirebaseScheduleInteraction(live_chat_message_key, updateData);\n }\n }\n\n function updateFirebaseScheduleInteraction(\n live_chat_message_key: string,\n data: any,\n ) {\n const { accountId, conversationId, liveChatObj } = getState();\n liveChatObj.updateMessage(\n accountId,\n conversationId,\n live_chat_message_key,\n data,\n );\n }\n\n function initLiveChat(liveChatObj) {\n dispatch({ type: \"INIT_LIVE_CHAT\", liveChatObj });\n }\n\n function liveChatAccepted() {\n dispatch({ type: \"LIVE_CHAT_ACCEPTED\" });\n }\n\n function liveChatTimeout() {\n disconnectFirebaseDb();\n push({ type: \"live_chat_timeout\" });\n dispatch({ type: \"LIVE_CHAT_TIMEOUT\" });\n nextInteraction();\n }\n\n function closeNotifications() {\n dispatch({ type: \"CLOSED_NOTIFICATIONS\" });\n push({ type: \"welcome_interactions_closed\" });\n }\n\n function endConversation() {\n dispatch({ type: \"END_CONVERSATION\" });\n }\n\n function cleanDoubleBookingError() {\n dispatch({ type: \"CLEAN_DOUBLE_BOOKING_ERROR\" });\n }\n\n function heartbeat() {\n push({ type: \"heartbeat\" });\n }\n\n function loadPage() {\n const state = getState();\n if (state.total === state.messages.length) return;\n let nextPage =\n state.messages.length % state.pageSize === 0\n ? state.messages.length / state.pageSize + 1\n : Math.ceil(state.messages.length / state.pageSize);\n if (state.page === nextPage) return;\n dispatch({ type: \"LOADING_NEXT_PAGE\", page: nextPage });\n if (state.settings == null) return;\n fetchConverasation(state.settings.id, nextPage).then((data) =>\n dispatch({\n type: \"LOAD_PAGE\",\n messages: data.response_interactions,\n }),\n );\n }\n\n function setPreFetchedSlots(slotsData) {\n dispatch({\n type: \"UPDATE_PREFETCH_SCHEDULE\",\n slotsData: slotsData,\n });\n }\n\n async function disconnectFirebaseDb() {\n const { liveChatObj } = getState();\n if (!liveChatObj) return;\n try {\n await liveChatObj.disconnect();\n } catch (err) {\n // Something might have gone wrong while disconnecting\n }\n }\n\n return {\n answer,\n liveChatResponse,\n liveChatHistory,\n liveChatAnswer,\n liveChatTimeout,\n liveChatAccepted,\n setLiveChatOwner,\n updateLiveChatUserTypingState,\n setContactId,\n nextInteraction,\n triggerContactUpdate,\n finishConversation,\n updateTimezone,\n closeWidget,\n openWidget,\n interactionSeen,\n restart,\n resendLastMessage,\n scheduleResponse,\n initLiveChat,\n updateFirebaseScheduleInteraction,\n closeNotifications,\n cleanDoubleBookingError,\n heartbeat,\n timeout,\n loadPage,\n closePopupBot,\n openNewBot,\n disconnect,\n setPreFetchedSlots,\n messageLimitExceeded,\n disconnectFirebaseDb,\n };\n}\n","import io from \"socket.io-client\";\nimport { Socket } from \"./constants\";\n\nexport function connectSocket(): Socket {\n const url = new URL(process.env.REACT_APP_SOCKET_API as string);\n const socket = io(url.protocol + \"//\" + url.host, {\n path: url.pathname + \"socket.io\",\n transports: [\"websocket\", \"polling\"],\n });\n return socket;\n}\n","import React, { useReducer, useMemo, useEffect, useRef, Dispatch } from \"react\";\nimport { setupWidget } from \"./setup.service\";\nimport { Message, WebsiteSettings } from \"./interaction.interface\";\nimport { fetchConverasation } from \"./conversation.service\";\nimport {\n IAppContext,\n Bot,\n reducer,\n IConversationContext,\n initialAppState,\n AppAction,\n AppState,\n SocketStatus,\n BotCache,\n} from \"./reducer\";\nimport { Actions, createActions } from \"./actions\";\nimport {\n ConversationState,\n IWidgetOptions,\n NotificationStyle,\n BotDisplayType,\n} from \"./constants\";\nimport { Context } from \"./utils/context.service\";\n\ninterface Props {\n botId: null | string;\n cache?: null | BotCache;\n preview: boolean;\n pageUrl: string;\n websiteId: string;\n pageTitle: string;\n children: React.ReactNode;\n open: boolean;\n directBot: boolean;\n startTime?: number;\n standalone: boolean;\n botDisplayType?: string;\n}\n\nexport const AppContext = React.createContext({\n bot: {\n id: \"test-bot\",\n name: \"test-bot\",\n session_timeout: 600,\n hasCloseNotifications: false,\n notificationStyle:\n NotificationStyle.NotificationBadgeWithWelcomeInteraction,\n },\n accountId: \"\",\n conversationId: \"\",\n open: false,\n preview: false,\n standalone: false,\n settings: {\n id: \"website-id\",\n botName: \"Test\",\n colour: \"#bf23af\",\n companyName: \"Default\",\n shape: \"speech\",\n textColour: \"#fff\",\n widgetIcon: \"co-widget-icon-1\",\n botIcon: null,\n },\n state: ConversationState.Active,\n startedAt: null,\n liveChatStatus: \"\",\n socket: SocketStatus.CONNECTED,\n oncehubBrandingUrl: \"\",\n showPromotionalMessage: false,\n preFetchedSlots: {},\n toggles: [],\n messageLimitExceeded: false,\n botDisplayType: \"\",\n});\n\nexport const ConversationContext = React.createContext({\n messages: [],\n welcomeInteractions: [],\n messageFailed: false,\n pageSize: 15,\n total: 0,\n messageLimitExceeded: false,\n});\n\nexport const SocketServiceContext = React.createContext(\n createActions(\n () => null,\n () => ({\n startedAt: null,\n startTime: Date.now(),\n bot: {\n id: \"bot-id\",\n name: \"bot-name\",\n notificationStyle:\n NotificationStyle.NotificationBadgeWithWelcomeInteraction,\n hasCloseNotifications: false,\n session_timeout: 600,\n },\n accountId: \"account-id\",\n conversationId: \"conversation-id\",\n settings: {\n id: \"website-id\",\n botName: \"Test\",\n colour: \"#bf23af\",\n companyName: \"Default\",\n shape: \"speech\",\n textColour: \"#fff\",\n widgetIcon: \"co-widget-icon-1\",\n botIcon: null,\n },\n messages: [],\n page: 0,\n total: 0,\n pageSize: 15,\n state: ConversationState.Initialised,\n liveChatStatus: \"\",\n socket: SocketStatus.CONNECTED,\n open: false,\n messageFailed: false,\n oncehubBrandingUrl: \"\",\n showPromotionalMessage: false,\n preFetchedSlots: {},\n toggles: [],\n messageLimitExceeded: false,\n }),\n ),\n);\n\nasync function fetchData(\n startedAt: number,\n websiteId: string,\n preview: boolean,\n pageUrl: string,\n pageTitle: string,\n botId: null | string,\n open: boolean = false,\n directBot: boolean = false,\n): Promise {\n if (!preview) {\n window.parent.postMessage(\n {\n type: \"updateIframe\",\n add: directBot ? [] : [\"no-bot\"],\n remove: directBot ? [\"no-bot\"] : [],\n },\n \"*\",\n );\n }\n\n const data = await setupWidget({\n websiteId,\n preview,\n pageTitle,\n pageUrl,\n botId,\n directBot,\n });\n if (!data) return null;\n\n window.parent.postMessage(\n {\n type: \"updateIframe\",\n add: data.botId || directBot ? [] : [\"no-bot\"],\n remove: data.botId || directBot ? [\"no-bot\"] : [],\n },\n \"*\",\n );\n\n if (data.botId == null) {\n return {\n bot: {\n id: data.botId,\n name: data.botName,\n hasCloseNotifications: false,\n session_timeout: 60 * 10 * 1000,\n notificationStyle: data.welcomeDisplayStyle,\n },\n startedAt,\n accountId: data.accountId,\n conversationId: data.conversationId,\n settings: data.settings,\n messages: [],\n welcomeInteractions: [],\n total: 0,\n state: data.conversationState,\n liveChatStatus: data.liveChatStatus,\n open: open,\n pageSize: 15,\n oncehubBrandingUrl: data.oncehubBrandingUrl,\n showPromotionalMessage: data.showPromotionalMessage,\n schedule_prefetch_config: data.schedule_prefetch_config,\n toggles: data.toggles,\n };\n }\n\n const [conversation] = await Promise.all([fetchConverasation(websiteId)]);\n if (preview) {\n return {\n bot: {\n id: data.botId,\n name: data.botName,\n hasCloseNotifications: false,\n session_timeout: 60 * 10 * 1000,\n notificationStyle: data.welcomeDisplayStyle,\n },\n startedAt,\n accountId: data.accountId,\n conversationId: data.conversationId,\n settings: data.settings,\n messages: conversation.response_interactions,\n total: conversation.response_interactions.length,\n state: data.conversationState,\n liveChatStatus: data.liveChatStatus,\n open: true,\n pageSize: 15,\n oncehubBrandingUrl: data.oncehubBrandingUrl,\n showPromotionalMessage: data.showPromotionalMessage,\n schedule_prefetch_config: data.schedule_prefetch_config,\n toggles: data.toggles,\n preview: true,\n };\n } else {\n return {\n bot: {\n id: data.botId,\n name: data.botName,\n hasCloseNotifications: !data.showClosedWidgetInteractions,\n session_timeout: data.session_timeout * 1000,\n notificationStyle: data.welcomeDisplayStyle,\n },\n startedAt,\n accountId: data.accountId,\n conversationId: data.conversationId,\n settings: data.settings,\n messages: conversation.response_interactions,\n welcomeInteractions: conversation.welcomeInteractions,\n total: conversation.total,\n state: data.conversationState,\n liveChatStatus: data.liveChatStatus,\n open: open,\n pageSize: conversation.pageSize,\n oncehubBrandingUrl: data.oncehubBrandingUrl,\n showPromotionalMessage: data.showPromotionalMessage,\n schedule_prefetch_config: data.schedule_prefetch_config,\n toggles: data.toggles,\n preview: false,\n };\n }\n}\n\nfunction useSocketService(state: AppState, dispatch: Dispatch) {\n let stateRef = useRef(state);\n stateRef.current = state;\n let ref = useRef(null);\n if (ref.current === null) {\n ref.current = createActions(dispatch, () => stateRef.current);\n }\n return ref.current;\n}\n\nexport function AppContextProvider({\n cache,\n botId,\n websiteId,\n preview,\n pageUrl,\n pageTitle,\n children,\n open,\n directBot,\n startTime,\n standalone,\n botDisplayType,\n}: Props) {\n const options: IWidgetOptions = {\n botId: botId,\n pageUrl: pageUrl,\n websiteId: websiteId,\n preview: preview,\n pageTitle: pageTitle,\n directBot: directBot,\n };\n Context.setInstance(options);\n const [state, dispatch] = useReducer(reducer, initialAppState());\n useEffect(() => {\n if (cache) dispatch({ type: \"CACHE\", cache });\n }, [cache]);\n\n useEffect(() => {\n if (directBot && (!state.bot?.id || botId === state.bot?.id)) {\n dispatch({ type: \"OPEN_WIDGET\" });\n }\n }, [startTime]);\n\n const socketService = useSocketService(state, dispatch);\n const isPopupBotClosed = () => !appContext?.showPopupCloseButton; // if close button for popup-bot is not showing it means popup-bot is closed\n useEffect(() => {\n if (!preview && botId && !standalone) {\n if (directBot && state.bot?.id === botId) {\n if (\n appContext?.botDisplayType === BotDisplayType.POPUP &&\n isPopupBotClosed()\n ) {\n dispatch({ type: \"OPEN_WIDGET_LINK\" });\n } else {\n return; // return if same bot link is clicked again\n }\n } else {\n dispatch({ type: \"OPEN_WIDGET_LINK\" }); // Open new direct bot link\n }\n } else if (state.startTime === state.startedAt) {\n return;\n }\n if (directBot) {\n socketService.disconnect();\n }\n let cancelled = false;\n fetchData(\n state.startTime,\n websiteId,\n preview,\n pageUrl,\n pageTitle,\n botId,\n open,\n directBot,\n ).then((data) => {\n if (cancelled) return;\n if (data == null) return;\n if (\n appContext?.botDisplayType === BotDisplayType.POPUP ||\n botDisplayType === BotDisplayType.POPUP\n ) {\n data.showPopupCloseButton = true;\n }\n dispatch({\n type: \"SETUP\",\n data,\n });\n window.parent.postMessage(\n { widgetLoadingFinished: \"widgetLoadingFinished\" },\n \"*\",\n );\n });\n return () => {\n cancelled = true;\n };\n }, [\n websiteId,\n preview,\n pageUrl,\n pageTitle,\n botId,\n startTime,\n state.startTime,\n state.startedAt,\n ]);\n\n const appContext: null | IAppContext = useMemo(\n () =>\n state.bot &&\n state.settings && {\n preview,\n standalone,\n botDisplayType,\n bot: state.bot,\n accountId: state.accountId,\n conversationId: state.conversationId,\n liveChatchannel: state.liveChatchannel,\n liveChatAccepted: state.liveChatAccepted,\n isLiveChatAbandoned: state.isLiveChatAbandoned,\n liveChatUsers: state.liveChatUsers,\n liveChatObj: state.liveChatObj,\n liveChatOwnerId: state.liveChatOwnerId,\n liveChatUserTyping: state.liveChatUserTyping,\n contactId: state.contactId,\n settings: state.settings,\n state: state.state,\n startedAt: state.startedAt,\n liveChatStatus: state.liveChatStatus,\n socket: state.socket,\n open: state.open,\n oncehubBrandingUrl: state.oncehubBrandingUrl,\n showPromotionalMessage: state.showPromotionalMessage,\n schedule_prefetch_config: state.schedule_prefetch_config,\n preFetchedSlots: state.preFetchedSlots,\n toggles: state.toggles,\n messageLimitExceeded: state.messageLimitExceeded,\n closedByVisitor: state.closedByVisitor,\n showPopupCloseButton: state.showPopupCloseButton,\n },\n [\n preview,\n standalone,\n botDisplayType,\n state.bot,\n state.accountId,\n state.conversationId,\n state.liveChatchannel,\n state.liveChatAccepted,\n state.isLiveChatAbandoned,\n state.liveChatOwnerId,\n state.liveChatUsers,\n state.liveChatObj,\n state.liveChatUserTyping,\n state.contactId,\n state.open,\n state.settings,\n state.state,\n state.startedAt,\n state.socket,\n state.oncehubBrandingUrl,\n state.showPromotionalMessage,\n state.schedule_prefetch_config,\n state.preFetchedSlots,\n state.toggles,\n state.messageLimitExceeded,\n state.closedByVisitor,\n state.showPopupCloseButton,\n ],\n );\n const conversationContext = useMemo(\n () => ({\n total: state.total,\n messages: state.messages,\n welcomeInteractions: state.welcomeInteractions || [],\n pageSize: state.pageSize,\n messageFailed: state.messageFailed,\n messageLimitExceeded: state.messageLimitExceeded,\n }),\n [\n state.total,\n state.messages,\n state.welcomeInteractions,\n state.pageSize,\n state.messageFailed,\n state.messageLimitExceeded,\n ],\n );\n\n useEffect(() => {\n if (open) {\n socketService.openNewBot();\n socketService.openWidget();\n }\n }, [state.bot]);\n return (\n appContext && (\n \n \n \n \n {children}\n \n \n \n \n )\n );\n}\n","import React, { useContext } from \"react\";\nimport { AppContext } from \"./AppContext\";\n\nfunction Styles() {\n const { colour: color, textColour: textColor } =\n useContext(AppContext).settings;\n return (\n \n );\n}\n\nexport default React.memo<{}>(Styles);\n","import React, { useContext } from \"react\";\nimport { AppContext, SocketServiceContext } from \"src/AppContext\";\n\ninterface Props {\n count: number;\n}\n\nfunction WidgetToggle({ count }: Props) {\n const {\n open,\n settings: { shape, textColour, widgetIcon },\n } = useContext(AppContext);\n const actions = useContext(SocketServiceContext);\n return (\n \n \n \n \n \n \n \n \n \n \n {count > 0 && {count}}\n \n );\n}\n\nexport default React.memo(WidgetToggle);\n","export default __webpack_public_path__ + \"static/media/bots-28.aebca506.svg\";","export const ColorSet = [\n \"#ffffff\",\n \"#fff4fe\",\n \"#fffaff\",\n \"#fffbff\",\n \"#fffcff\",\n \"#fffdff\",\n \"#fffeff\",\n \"#FFFAF0\",\n \"#F8F8FF\",\n \"#FFFFF0\",\n \"#FFFAFA\",\n \"#fffdf0\",\n \"#fffdf1\",\n \"#fffdf2\",\n \"#fffdf3\",\n \"#fffdf4\",\n \"#fffdf5\",\n \"#fffdf6\",\n \"#fffdf7\",\n \"#fffdf8\",\n \"#fffdf9\",\n \"#f9f8f4\",\n \"#fdfdfc\",\n \"#f9f9f9\",\n \"#f9f9f7\",\n \"#fdfdfc\",\n \"#fffffd\",\n \"#fffefb\",\n \"#fdfdfb\",\n \"#fbfbfb\",\n \"#fff8fe\",\n \"#fff7fe\",\n \"#fbfafb\",\n \"#fdf7fc\",\n \"#fdfdfd\",\n \"#fff9fe\",\n \"#fff5fe\",\n \"#fdfcfd\",\n \"#fdf9fd\",\n \"#fdfbfd\",\n \"#fbf3fa\",\n \"#fbfcfd\",\n \"#fdffec\",\n \"#feffff\",\n \"#fef9ff\",\n \"#fff9fd\",\n \"#fff5fb\",\n \"#fff8f6\",\n \"#fff6f6\",\n \"#fffaf9\",\n \"#fcffe9\",\n \"#fdfffe\",\n \"#fdfdff\",\n \"#f9fbff\",\n \"#fffaf6\",\n \"#e9fff4\",\n \"#f7f7f7\",\n];\n","export class UtilsService {\n static extractHostName(url): string {\n let hostname;\n // find & remove protocol (http, ftp, etc.) and get hostname\n\n if (url.indexOf(\"//\") > -1) {\n hostname = url.split(\"/\")[2];\n } else {\n hostname = url.split(\"/\")[0];\n }\n\n // find & remove port number\n hostname = hostname.split(\":\")[0];\n // find & remove \"?\"\n hostname = hostname.split(\"?\")[0];\n\n return hostname;\n }\n}\n\nexport const BROWSER_IS_SAFARI = (() => {\n return /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent);\n})();\n\nexport const ARE_COOKIES_DISABLED: boolean = (() => {\n if (typeof navigator !== \"undefined\" && \"cookieEnabled\" in navigator) {\n return navigator.cookieEnabled;\n }\n document.cookie = \"is_cookie_enabled=yes\";\n const disabled = document.cookie.indexOf(\"is_cookie_enabled\") === -1;\n if (!disabled) {\n document.cookie =\n \"is_cookie_enabled=yes; expires=Thu, 01-Jan-1970 00:00:00 GMT\";\n }\n return disabled;\n})();\n\nexport const IS_MOBILE =\n /(iphone|ipod|android|blackberry|windows ce|palm|symbian)/i.test(\n navigator.userAgent,\n );\n\nexport const DAY_NAMES = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n];\n\nexport const SHORT_DAY_NAMES = [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\",\n];\n\nexport const MONTH_NAMES = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nexport const SHORT_MONTH_NAMES = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n","import React, { useContext, useEffect } from \"react\";\nimport \"./widget-header.scss\";\nimport botImg from \"../../assets/images/bots-28.svg\";\nimport { AppContext, SocketServiceContext } from \"src/AppContext\";\nimport { ColorSet } from \"src/utils/color-set\";\nimport { IUser } from \"@oncehub/live-chat-util\";\nimport { BotDisplayType } from \"src/constants\";\nimport { Context } from \"src/utils/context.service\";\nimport { IS_MOBILE } from \"src/utils/utils.service\";\n\nfunction getNameInitials(firstName: string, lastName: string) {\n let f = firstName ? firstName.toString()[0] : \"\";\n let l = lastName ? lastName.toString()[0] : \"\";\n return (f + l).toUpperCase();\n}\n\nfunction WidgetHeader() {\n const { botIcon, companyName } = useContext(AppContext).settings;\n const {\n liveChatUsers,\n liveChatOwnerId,\n liveChatchannel,\n botDisplayType,\n showPopupCloseButton,\n } = useContext(AppContext);\n const { closeWidget, closePopupBot } = useContext(SocketServiceContext);\n const liveChatOwner: IUser =\n liveChatOwnerId && liveChatUsers ? liveChatUsers[liveChatOwnerId] : null;\n const { colour: color } = useContext(AppContext).settings;\n const isBotDisplayPopup = () =>\n botDisplayType && botDisplayType === BotDisplayType.POPUP;\n const handleBeforeUnload = (e) => {\n closePopupBot(botDisplayType);\n delete e[\"returnValue\"];\n };\n useEffect(() => {\n isBotDisplayPopup() &&\n window.addEventListener(\"beforeunload\", handleBeforeUnload);\n return () => {\n window.removeEventListener(\"beforeunload\", handleBeforeUnload);\n };\n }, [botDisplayType]);\n\n return (\n \n {Context.getInstance() &&\n Context.getInstance().directBot &&\n isBotDisplayPopup() ? (\n \"\"\n ) : (\n \n \n {(liveChatchannel &&\n liveChatOwner &&\n !liveChatOwner.profileImage &&\n getNameInitials(\n liveChatOwner.firstName,\n liveChatOwner.lastName,\n )) || (\n \n )}\n \n \n )}\n

\n {\" \"}\n {(liveChatchannel &&\n liveChatOwner &&\n `${liveChatOwner.firstName} (${companyName})`.trim()) ||\n companyName}{\" \"}\n

\n {!IS_MOBILE &&\n showPopupCloseButton &&\n Context.getInstance() &&\n Context.getInstance().directBot &&\n isBotDisplayPopup() ? (\n closePopupBot(botDisplayType)}\n >\n ) : (\n \"\"\n )}\n \n \n \n \n );\n}\n\nexport default React.memo<{}>(WidgetHeader);\n","import React, { useContext } from \"react\";\nimport { AppContext } from \"src/AppContext\";\nimport { ColorSet } from \"src/utils/color-set\";\n\ninterface Props {\n active: boolean;\n}\n\nfunction SendButton({ active }: Props) {\n const color = useContext(AppContext).settings.colour;\n return active ? (\n \n Send\n \n \n \n \n \n \n \n \n \n \n ) : (\n \n Send\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default React.memo(SendButton);\n","/* tslint:disable */\nimport { IMaskedInputs, IValidationMessage } from \"./widget-footer/input.model\";\n\nexport const VADLIDATION_MESSAGES: IValidationMessage = {\n date: {\n dateFormatError: \"Please enter a valid date with the format DD/MM/YYYY\",\n futureDateError: \"Please enter a date that is in the future\",\n },\n dateTime: {\n dateFormatError:\n \"Please enter a valid datetime with the format DD/MM/YYYY HH:MM PM\",\n futureDateError: \"Please enter a datetime that is in the future\",\n },\n email: \"Please enter a valid email address\",\n phone: \"Please enter a valid phone number\",\n time: \"Please enter a valid time with the format HH:MM PM\",\n};\n\nexport const MASKEDINPUTS_PROPS: IMaskedInputs = {\n date: {\n guide: true,\n placeholder: \"DD/MM/YYYY\",\n placeholderChar: \"\\u2000\",\n },\n dateTime: {\n guide: true,\n placeholder: \"DD/MM/YYYY HH:MM PM\",\n placeholderChar: \"\\u2000\",\n },\n time: {\n guide: true,\n placeholder: \"HH:MM PM\",\n placeholderChar: \"\\u2000\",\n },\n};\nexport const ID_PREFIX: string = \"co-message-\";\nexport const DEFAULT_TIMEZONE_ID = \"270\";\nexport const TIMEZONE_ID_COOKIE = \"timezoneId\";\n// eslint-disable-next-line\nexport const EMAILREGEXPATTERN =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n","import React from \"react\";\nimport MaskedInput from \"react-text-mask\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\n\ninterface IDateInputProps {\n setValidation: (message: null | string) => void;\n onChange: (text: string) => void;\n allowOnlyFutureDate: boolean;\n onSubmit(): void;\n}\n\nconst DATE_MASK = [/\\d/, /\\d/, \"/\", /\\d/, /\\d/, \"/\", /\\d/, /\\d/, /\\d/, /\\d/];\n\nexport const DATE_REGEX = /\\d{1,2}\\/\\d{1,2}\\/\\d{4}/;\n\nconst placeholderChar = \"\\u2000\";\n\nexport class DateInput extends React.Component {\n maskedInputRef: React.RefObject = React.createRef();\n\n componentDidUpdate() {\n if (\n this.maskedInputRef &&\n this.maskedInputRef.current &&\n this.maskedInputRef.current.inputElement\n ) {\n this.maskedInputRef.current.inputElement.focus();\n }\n }\n\n private pipe = (value: string, config: any): false | string => {\n const setValidation = this.props.setValidation;\n const dateFormatError = VADLIDATION_MESSAGES.date.dateFormatError;\n const date = parseInt(value.substring(0, 2));\n if (date > 31) {\n setValidation(dateFormatError);\n return false;\n }\n const month = parseInt(value.substring(3, 5));\n if (month > 12) {\n setValidation(dateFormatError);\n return false;\n }\n const year = parseInt(value.substring(6, 10));\n if (!DATE_REGEX.test(value)) {\n setValidation(null);\n return value;\n }\n const time = new Date(year, month - 1, date);\n const validity =\n time.getFullYear() === year &&\n time.getMonth() === month - 1 &&\n date === time.getDate();\n if (!validity) {\n setValidation(dateFormatError);\n return false;\n } else if (this.props.allowOnlyFutureDate && time.getTime() <= Date.now()) {\n setValidation(VADLIDATION_MESSAGES.date.futureDateError);\n return value;\n } else {\n setValidation(null);\n this.props.onChange(value);\n return value;\n }\n };\n\n render() {\n return (\n \n );\n }\n\n keydown = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n this.props.onSubmit();\n }\n };\n}\n","import React from \"react\";\nimport MaskedInput from \"react-text-mask\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\n\ninterface IDatetimeInputProps {\n setValidation: (message: null | string) => void;\n onChange: (text: string) => void;\n allowOnlyFutureDate: boolean;\n onSubmit(): void;\n}\n\nconst DATETIME_MASK = [\n /\\d/,\n /\\d/,\n \"/\",\n /\\d/,\n /\\d/,\n \"/\",\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n \" \",\n /\\d/,\n /\\d/,\n \":\",\n /\\d/,\n /\\d/,\n \" \",\n /a|A|p|P/,\n /m|M/,\n];\n\nexport const DATE_TIME_REGEX =\n /\\d{1,2}\\/\\d{1,2}\\/\\d{4} \\d{1,2}:\\d{1,2} (?:A|P)M/;\n\nconst placeholderChar = \"\\u2000\";\n\nexport class DatetimeInput extends React.Component {\n maskedInputRef: React.RefObject = React.createRef();\n\n componentDidUpdate() {\n if (\n this.maskedInputRef &&\n this.maskedInputRef.current &&\n this.maskedInputRef.current.inputElement\n ) {\n this.maskedInputRef.current.inputElement.focus();\n }\n }\n\n private pipe = (value: string, config: any): false | string => {\n value = value.toUpperCase();\n const setValidation = this.props.setValidation;\n const dateFormatError = VADLIDATION_MESSAGES.dateTime.dateFormatError;\n const date = parseInt(value.substring(0, 2));\n if (date > 31) {\n setValidation(dateFormatError);\n return false;\n }\n const month = parseInt(value.substring(3, 5));\n if (month > 12) {\n setValidation(dateFormatError);\n return false;\n }\n const year = parseInt(value.substring(6, 10));\n const hours = parseInt(value.substring(11, 13));\n if (hours > 12) {\n setValidation(dateFormatError);\n return false;\n }\n const minutes = parseInt(value.substring(14, 16));\n if (minutes > 60) {\n setValidation(dateFormatError);\n return false;\n }\n const am = value.substring(17, 18) === \"AM\";\n if (!DATE_TIME_REGEX.test(value)) {\n setValidation(null);\n return value;\n }\n const time = new Date(year, month - 1, date);\n const validity =\n time.getFullYear() === year &&\n time.getMonth() === month - 1 &&\n date === time.getDate();\n if (!validity) {\n setValidation(dateFormatError);\n return false;\n }\n if (am) {\n time.setHours(hours);\n } else {\n time.setHours(hours === 12 ? 12 : 12 + hours);\n }\n time.setMinutes(minutes);\n if (this.props.allowOnlyFutureDate && time.getTime() <= Date.now()) {\n setValidation(VADLIDATION_MESSAGES.dateTime.futureDateError);\n return value;\n } else {\n setValidation(null);\n this.props.onChange(value);\n return value;\n }\n };\n\n render() {\n return (\n \n );\n }\n\n keydown = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n this.props.onSubmit();\n }\n };\n}\n","import React from \"react\";\nimport MaskedInput from \"react-text-mask\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\n\ninterface TimeInputProps {\n setValidation: (message: null | string) => void;\n onChange: (text: string) => void;\n onSubmit: () => void;\n}\n\nconst TIME_MASK = [/\\d/, /\\d/, \":\", /\\d/, /\\d/, \" \", /a|A|p|P/, /m|M/];\n\nexport const TIME_REGEX = /\\d{1,2}:\\d{1,2} (?:A|P)M/;\n\nconst placeholderChar = \"\\u2000\";\n\nexport class TimeInput extends React.Component {\n maskedInputRef: React.RefObject = React.createRef();\n\n componentDidUpdate() {\n if (\n this.maskedInputRef &&\n this.maskedInputRef.current &&\n this.maskedInputRef.current.inputElement\n ) {\n this.maskedInputRef.current.inputElement.focus();\n }\n }\n\n private pipe = (value: string, config: any): false | string => {\n value = value.toUpperCase();\n const setValidation = this.props.setValidation;\n const error = VADLIDATION_MESSAGES.time;\n const hours = parseInt(value.substring(0, 2));\n if (hours > 12) {\n setValidation(error);\n return false;\n }\n const minutes = parseInt(value.substring(3, 5));\n if (minutes > 60) {\n setValidation(error);\n return false;\n }\n if (!TIME_REGEX.test(value)) {\n setValidation(null);\n return value;\n }\n if (hours === 0) {\n setValidation(error);\n } else {\n this.props.onChange(value);\n }\n return value;\n };\n\n render() {\n return (\n \n );\n }\n\n keydown = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n this.props.onSubmit();\n }\n };\n}\n","import \"./chat-button.scss\";\n\ninterface IChatButtonProps {\n clickHandler: () => void;\n title?: any;\n text: any;\n isDisabled?: boolean;\n isLoading?: boolean;\n classNames?: string;\n}\n\nexport const ChatButton = (props: IChatButtonProps) => (\n \n {props.text}\n \n);\n","import { useState, useEffect, useRef, useContext } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport \"../common-components/select-list-with-filter/select-list-with-filter.scss\";\nimport \"./select-list.scss\";\nimport { ChatButton } from \"../common-components/chat-button/chat-button\";\nimport { ColorSet } from \"src/utils/color-set\";\nimport { AppContext } from \"src/AppContext\";\ninterface InteractionOption {\n id: number | string;\n option_text: string;\n}\n\ninterface SingleSelectProps {\n single: true;\n items: T[];\n onSelect: (item: T) => void;\n close: () => void;\n}\n\ninterface MultiSelectProps {\n single: false;\n items: T[];\n onSelect: (items: T[]) => void;\n close: () => void;\n}\n\nexport type SelectListProps =\n | SingleSelectProps\n | MultiSelectProps;\n\nfunction useListHeight(standalone: boolean): number {\n const [height, setHeight] = useState(0);\n useEffect(() => {\n if (standalone) return;\n let el = document.querySelector(\".chat-content\");\n el = el && el.parentElement;\n if (!el) {\n return;\n }\n const updateHeight = () => setHeight((el as HTMLElement).clientHeight / 2);\n updateHeight();\n window.addEventListener(\"resize\", updateHeight);\n return () => window.removeEventListener(\"resize\", updateHeight);\n });\n return height;\n}\n\nfunction SelectList(props: SelectListProps) {\n const standalone = useContext(AppContext).standalone;\n const height = useListHeight(standalone);\n const [filter, setFilter] = useState(\"\");\n const regex = new RegExp(filter.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"), \"i\");\n const { colour: color } = useContext(AppContext).settings;\n const filteredOptions = props.items.filter((item) =>\n regex.test(item.option_text),\n );\n const [selected, setSelected] = useState<{ [id: string]: boolean }>({});\n const onOptionClick = (item: T): void => {\n if (props.single) {\n props.onSelect(item);\n } else {\n setSelected((selectedItem) => ({\n ...selectedItem,\n [item.id]: !selectedItem[item.id],\n }));\n }\n };\n const container = useRef(null);\n const close = props.close;\n useEffect(() => {\n const listener = (event: Event) => {\n if (event.target == null || container.current == null) return;\n if (\n container.current === event.target ||\n container.current.contains(event.target as any)\n ) {\n return;\n }\n close();\n };\n document.addEventListener(\"mousedown\", listener);\n return () => document.removeEventListener(\"mousedown\", listener);\n }, [close]);\n useEffect(() => {\n if (!container.current) return;\n const input = container.current.querySelector(\"input[type=text]\");\n if (input && input instanceof HTMLInputElement) input.focus();\n });\n const chatContainer = useRef(null);\n if (chatContainer.current === null) {\n chatContainer.current = document.querySelector(\"#chat-window\");\n }\n\n const inputs = (\n \n setFilter(event.currentTarget.value)}\n />\n {!props.single && (\n \n props.onSelect(props.items.filter((item) => selected[item.id]))\n }\n />\n )}\n \n );\n const content = (\n \n {standalone &&
{inputs}
}\n
    \n {props.single\n ? filteredOptions.map((item) => (\n
  • onOptionClick(item)}>\n {item.option_text}\n
  • \n ))\n : filteredOptions.map((item) => (\n
  • \n \n
  • \n ))}\n
\n {!standalone && inputs}\n \n );\n return standalone ? (\n
{content}
\n ) : (\n chatContainer.current && createPortal(content, chatContainer.current)\n );\n}\n\nexport default SelectList;\n","import React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport \"./widget-modal.scss\";\nimport { ChatButton } from \"../common-components/chat-button/chat-button\";\n\ninterface IWidgetModalProp {\n modalMessage: null | string;\n show: boolean;\n closeModal: () => void;\n}\n\nexport class WidgetModal extends React.Component {\n closeModal = () => {\n this.props.closeModal();\n };\n\n render() {\n const container = document.querySelector(\".chat-window\");\n return (\n this.props.show &&\n container &&\n createPortal(\n
\n
\n
\n \n \n \n

{this.props.modalMessage}

\n
\n
\n {ChatButton({\n text: \"Got it\",\n clickHandler: this.closeModal,\n })}\n
\n
\n
\n
,\n container,\n )\n );\n }\n}\n","import React, { useState, useContext } from \"react\";\nimport { ChatButton } from \"src/widget-container/common-components/chat-button/chat-button\";\nimport { WidgetModal } from \"src/widget-container/widget-modal/widget-modal\";\nimport { ColorSet } from \"src/utils/color-set\";\nimport { AppContext } from \"src/AppContext\";\n\nimport \"./interaction-multi-select.scss\";\n\ninterface Option {\n id: number;\n option_text: string;\n field_library_option_id: string;\n}\n\ninterface Props {\n min: null | number;\n max: null | number;\n options: Option[];\n onSelect: (selected: Option[]) => void;\n}\n\nexport function optionMessage(count: number): string {\n if (count === 1) {\n return \"1 option\";\n } else {\n return `${count} options`;\n }\n}\n\nexport function errorMessage(\n min: number,\n max: number | null,\n selected: number,\n): null | string {\n if (max === null) {\n if (selected < min) {\n return `You must select at least ${optionMessage(min)}`;\n } else {\n return null;\n }\n } else {\n if (selected >= min && selected <= max) {\n return null;\n } else {\n return `You must select at least ${optionMessage(\n min,\n )} and not more than ${optionMessage(max)}`;\n }\n }\n}\n\nfunction InteractionMultiSelect({ options, onSelect, min, max }: Props) {\n const [selected, setSelected] = useState<{ [id: number]: boolean }>({});\n const [error, setError] = useState(null);\n const toggle = (id: number) =>\n setSelected((selected) => ({ ...selected, [id]: !selected[id] }));\n const select = () => {\n const selection = options.filter((option) => Boolean(selected[option.id]));\n const error = errorMessage(min || 1, max, selection.length);\n setError(error);\n if (error === null) {\n onSelect(selection);\n }\n };\n const { colour: color } = useContext(AppContext).settings;\n return (\n
\n setError(null)}\n />\n
\n
    \n {options.map((option) => (\n \n \n \n ))}\n
\n \n \n
\n
\n
\n );\n}\n\nexport default React.memo(InteractionMultiSelect);\n","import React, { useEffect, useRef, useContext } from \"react\";\nimport { AppContext } from \"src/AppContext\";\nimport \"./text-input.scss\";\n\ninterface Props {\n value: string;\n onChange: (value: string) => void;\n onSubmit: () => void;\n}\n\nfunction TextInput({ value, onChange, onSubmit }: Props) {\n const textarea = useRef(null);\n const heightDiv = useRef(null);\n const open = useContext(AppContext).open;\n useEffect(() => {\n if (textarea.current) {\n textarea.current.focus();\n }\n }, []);\n useEffect(() => {\n if (!open) return;\n if (!(heightDiv.current && textarea.current)) return;\n heightDiv.current.innerText =\n value.endsWith(\"\\n\") || value.trim().length === 0 ? value + \"A\" : value;\n heightDiv.current.style.width = textarea.current.clientWidth + \"px\";\n textarea.current.style.height = heightDiv.current.clientHeight + \"px\";\n }, [open, value]);\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode !== 13) return;\n if (!event.shiftKey) {\n event.preventDefault();\n onSubmit();\n return;\n }\n };\n return (\n <>\n onChange(event.currentTarget.value)}\n />\n \n \n );\n}\n\nexport default React.memo(TextInput);\n","import React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { AsYouType, getCountryCallingCode } from \"libphonenumber-js\";\nimport COUNTRY from \"src/country-code.json\";\n\nimport SelectList from \"../select-list\";\n\nimport \"./phone-input.scss\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\nimport { PhoneQuestion } from \"src/interaction.interface\";\n\ninterface Props {\n question: PhoneQuestion;\n welcomePhoneQuestion: PhoneQuestion | null;\n onError: (message: null | string) => void;\n setPhone: (text: string) => void;\n onSubmit(): void;\n}\n\ninterface CountryOption {\n id: string;\n option_text: string;\n}\nconst COUNTRY_OPTIONS: CountryOption[] = Object.keys(\n COUNTRY,\n).map((id) => ({ id, option_text: COUNTRY[id] }));\n\nCOUNTRY_OPTIONS.sort((x, y) => {\n if (x.option_text > y.option_text) {\n return 1;\n } else if (x.option_text < y.option_text) {\n return -1;\n } else {\n return 1;\n }\n});\n\nfunction getDefaultCountry(country) {\n let visitorCountryObject;\n for (let i = 0; i < COUNTRY_OPTIONS.length; i++) {\n if (country && COUNTRY_OPTIONS[i].option_text === country) {\n visitorCountryObject = COUNTRY_OPTIONS[i];\n break;\n }\n }\n return visitorCountryObject;\n}\n\nfunction PhoneInput({\n question,\n welcomePhoneQuestion,\n setPhone,\n onError,\n onSubmit,\n}: Props) {\n const visitorCountry = getDefaultCountry(\n question.country ||\n (welcomePhoneQuestion ? welcomePhoneQuestion!.country : null),\n );\n const visitorCountryCode = visitorCountry\n ? `+${getCountryCallingCode(visitorCountry.id as any) as string}`\n : \"\";\n const [countryList, setCountryList] = useState(false);\n const [country, setCountry] = useState(\n null || visitorCountry,\n );\n const [value, setValue] = useState(\"\" || visitorCountryCode);\n const [invalid, setInvalid] = useState(true);\n const input = useRef(null);\n const selectCountry = useCallback((country: CountryOption) => {\n setCountry(country);\n setCountryList(false);\n setPhone(\"\");\n setInvalid(true);\n const code = getCountryCallingCode(country.id as any) as string;\n setValue(\"+\" + code);\n setTimeout(() => {\n let inputEl = input.current;\n if (inputEl === null) return;\n if (inputEl) inputEl.focus();\n inputEl.selectionStart = inputEl.selectionEnd = inputEl.value.length;\n }, 300);\n }, []);\n useEffect(() => {\n if (input.current && visitorCountry) {\n input.current.focus();\n }\n });\n\n const onClick = () => {\n if (country === null) {\n setCountryList(true);\n window.dispatchEvent(new Event(\"scrollToBottom\"));\n } else if (input.current) {\n input.current.focus();\n }\n };\n const change = (event: React.ChangeEvent) => {\n const formatter = new AsYouType();\n const formattedInput = formatter.input(event.currentTarget.value);\n const phoneNumber = formatter.getNumber();\n const countryInfo = formatter.country;\n let invalid = true;\n if (countryInfo && (!country || country.id !== countryInfo)) {\n setCountry({\n id: countryInfo as string,\n option_text: COUNTRY[countryInfo],\n });\n }\n if (phoneNumber && phoneNumber.isValid()) {\n invalid = false;\n }\n setInvalid(invalid);\n if (!invalid) onError(null);\n setValue(formattedInput);\n setPhone(formattedInput);\n };\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode !== 13) return;\n if (invalid) {\n onError(VADLIDATION_MESSAGES.phone);\n } else {\n onSubmit();\n }\n };\n return (\n
\n
\n {\n setCountryList(true);\n window.dispatchEvent(new Event(\"scrollToBottom\"));\n }}\n >\n {country && {country.id}}\n \n
\n \n
\n {countryList && (\n setCountryList(false)}\n onSelect={selectCountry}\n />\n )}\n \n );\n}\n\nexport default React.memo(PhoneInput);\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n VADLIDATION_MESSAGES,\n EMAILREGEXPATTERN,\n} from \"src/widget-container/constants\";\n\nexport interface Props {\n onError: (message: null | string) => void;\n onChange: (text: string) => void;\n onSubmit(): void;\n}\n\nfunction EmailInput({ onChange, onError, onSubmit }: Props) {\n const [value, setValue] = useState(\"\");\n const [invalid, setInvalid] = useState(true);\n const input = useRef(null);\n useEffect(() => {\n let inputEl = input.current;\n if (inputEl === null) return;\n if (inputEl) inputEl.focus();\n }, []);\n const change = (event: React.ChangeEvent) => {\n const emailInput = event.currentTarget.value;\n let invalid = true;\n if (emailInput) {\n invalid = !EMAILREGEXPATTERN.test(emailInput);\n } else {\n onError(null);\n }\n setInvalid(invalid);\n if (!invalid) onError(null);\n setValue(emailInput);\n onChange(emailInput);\n };\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === 13) {\n if (invalid) {\n onError(VADLIDATION_MESSAGES.email);\n } else {\n onError(null);\n onSubmit();\n }\n }\n };\n return (\n \n );\n}\n\nexport default React.memo(EmailInput);\n","import React, {\n useState,\n useContext,\n useCallback,\n useMemo,\n useEffect,\n} from \"react\";\nimport { Picker } from \"emoji-mart\";\nimport \"emoji-mart/css/emoji-mart.css\";\nimport {\n AppContext,\n ConversationContext,\n SocketServiceContext,\n} from \"src/AppContext\";\nimport {\n Message,\n Interaction,\n Question,\n SingleChoiceQuestion,\n MultiChoiceQuestion,\n InteractionOption,\n PhoneQuestion,\n} from \"src/interaction.interface\";\nimport { SocketStatus } from \"src/reducer\";\nimport { Answer } from \"src/actions\";\nimport { BotDisplayType, ConversationState } from \"src/constants\";\n\nimport \"./widget-footer.scss\";\nimport SendButtonIcon from \"./SendButtonIcon\";\nimport { DateInput } from \"./date-input/date-input\";\nimport { DatetimeInput } from \"./datetime-input/datetime-input\";\nimport { TimeInput } from \"./time-input/time-input\";\nimport SelectList, { SelectListProps } from \"./select-list\";\nimport { errorMessage } from \"../widget-body/widget-message/message-helpers/interaction-multi-select/interaction-multi-select\";\nimport { WidgetModal } from \"../widget-modal/widget-modal\";\nimport TextInput from \"./text-input\";\nimport PhoneInput from \"./phone-input/phone-input\";\nimport EmailInput from \"./email-input/email-input\";\nimport {\n VADLIDATION_MESSAGES,\n EMAILREGEXPATTERN,\n} from \"src/widget-container/constants\";\nimport { AsYouType } from \"libphonenumber-js\";\n// Enable this for development only\n// import { OhLiveChat, IMessage } from \"../../../src/live-chat-util\";\nimport { OhLiveChat, IMessage } from \"@oncehub/live-chat-util\";\nimport { Context } from \"src/utils/context.service\";\nimport { IS_MOBILE } from \"src/utils/utils.service\";\n\ninterface ValidationOptions {\n isValid: boolean;\n errorMsg: string;\n}\nexport interface State {\n openEmoji: boolean;\n text: string;\n validationMessage: null | string;\n}\n\ninterface InputProps {\n value: string;\n question: null | Question;\n welcomePhoneQuestion: null | PhoneQuestion;\n onSubmit: () => void;\n onChange: (value: string) => void;\n onError: (error: null | string) => void;\n openSelectList: () => void;\n}\n\ninterface SelectInputProps {\n question: SingleChoiceQuestion | MultiChoiceQuestion;\n sendAnswer: (answer: Answer) => void;\n close: () => void;\n}\n\nlet liveChatObj: OhLiveChat;\nlet searchTimeout;\n\nfunction findActiveQuestion(\n state: ConversationState | null,\n message?: Message | null,\n): null | Question {\n if (state !== ConversationState.Active) return null;\n if (message == null) return null;\n if (message.sent_by !== \"bot\") return null;\n const interaction: Interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"question\") return null;\n return interaction;\n}\n\nexport function isEmojiDisabled(\n questionType: null | Question[\"question_type\"],\n): boolean {\n switch (questionType) {\n case null:\n case \"multi_choice\":\n case \"single_choice\":\n case \"number\":\n case \"phone\":\n case \"date\":\n case \"time\":\n case \"datetime\":\n case \"email\":\n return true;\n default:\n return false;\n }\n}\n\nfunction SelectInput({\n question,\n sendAnswer: answer,\n close,\n}: SelectInputProps) {\n const [error, setError] = useState(null);\n const selectProps = useMemo((): SelectListProps => {\n if (question.question_type === \"single_choice\") {\n return {\n single: true,\n items: question.interaction_options,\n onSelect: (option) =>\n answer({\n content: option.option_text,\n interaction_option_id: option.id as number,\n content_object_array: [\n {\n id: option.field_library_option_id,\n value: option.option_text,\n },\n ],\n }),\n close,\n };\n } else {\n return {\n single: false,\n items: question.interaction_options,\n onSelect: (options) => {\n const error = errorMessage(\n question.multi_choice_minimum || 1,\n question.multi_choice_maximum,\n options.length,\n );\n setError(error);\n if (error === null) {\n options.sort((x, y) => x.option_order - y.option_order);\n answer({\n content: options.map((option) => option.option_text).join(\", \"),\n multi_interaction_options_answer_ids: options.map(\n (option) => option.id,\n ),\n content_object_array: options.map((option) => {\n return {\n id: option.field_library_option_id,\n value: option.option_text,\n };\n }),\n });\n }\n },\n close,\n };\n }\n }, [answer, close, question]);\n if (question.multi_choice_type !== \"list\") return null;\n return (\n <>\n setError(null)}\n />\n {React.createElement(SelectList, selectProps)}\n \n );\n}\n\nfunction Input({\n value,\n question,\n welcomePhoneQuestion,\n onChange,\n onError,\n onSubmit,\n openSelectList,\n}: InputProps) {\n let focus = false;\n const questionId = question && question.external_id;\n const appContext = useContext(AppContext);\n useEffect(() => {\n if (focus) {\n const input = document.querySelector(\".chat-footer input\");\n if (input !== null && input instanceof HTMLInputElement) input.focus();\n }\n }, [questionId, focus]);\n if (\n (question === null && !appContext.liveChatchannel) ||\n (question === null &&\n appContext.liveChatchannel &&\n !appContext.liveChatAccepted)\n ) {\n return ;\n } else if (\n question === null &&\n appContext.liveChatchannel &&\n appContext.liveChatAccepted &&\n !appContext.isLiveChatAbandoned\n ) {\n return ;\n } else if (\n (question && question.question_type === \"multi_choice\") ||\n (question && question.question_type === \"single_choice\")\n ) {\n if (question.multi_choice_type === \"list\") {\n return (\n \n );\n } else {\n return ;\n }\n } else if (question && question.question_type === \"date\") {\n return (\n \n );\n } else if (question && question.question_type === \"datetime\") {\n return (\n \n );\n } else if (question && question.question_type === \"time\") {\n return (\n \n );\n } else if (question && question.question_type === \"phone\") {\n return (\n \n );\n } else if (question && question.question_type === \"email\") {\n return (\n \n );\n }\n const changeValue = (event: React.SyntheticEvent) =>\n onChange(event.currentTarget.value);\n const onKeyDown = (event: React.KeyboardEvent) =>\n event.keyCode === 13 && onSubmit();\n focus = true;\n if (question && question.question_type === \"number\") {\n return (\n \n );\n } else if (question && question.question_type === \"text\") {\n return ;\n } else if (question && question.question_type === \"time_zone\") {\n focus = false;\n return ;\n } else {\n focus = false;\n return null;\n }\n}\n/**\n *\n * @param phone validate phone number validation\n */\nfunction validatePhone(phone) {\n const formatter = new AsYouType();\n formatter.input(phone);\n const phoneNumber = formatter.getNumber();\n return phoneNumber ? phoneNumber.isValid() : false;\n}\n/**\n *\n * @param questionType to identify the question type\n * @param input\n * Validating the input and returning object with error message and boolean isValid.\n */\nfunction checkValidation(\n questionType: null | Question[\"question_type\"],\n input,\n) {\n if (input.length === 0) return;\n let invalid: ValidationOptions = { isValid: false, errorMsg: \"\" };\n switch (questionType) {\n case \"email\":\n invalid.isValid = !EMAILREGEXPATTERN.test(input);\n invalid.errorMsg = VADLIDATION_MESSAGES.email;\n break;\n case \"phone\":\n invalid.isValid = !validatePhone(input);\n invalid.errorMsg = VADLIDATION_MESSAGES.phone;\n break;\n }\n return invalid;\n}\n\nfunction WidgetFooter() {\n const actions = useContext(SocketServiceContext);\n const appContext = useContext(AppContext);\n const botDisplayType = appContext.botDisplayType;\n const color = appContext.settings.colour;\n const connecting = appContext.socket === SocketStatus.CONNECTING;\n const [state, setState] = useState({\n openEmoji: false,\n text: \"\",\n error: null,\n openSelectList: false,\n });\n const debouncePeriod = 10000;\n const contactId: any = appContext.contactId;\n\n const setTypingStatus = () => {\n if (!searchTimeout) {\n try {\n liveChatObj.updateIsTyping(\n contactId,\n appContext.accountId,\n appContext.conversationId,\n true,\n );\n } catch (err) {\n // Firebase database obj might already be destroyed\n }\n }\n if (searchTimeout) clearTimeout(searchTimeout);\n searchTimeout = setTimeout(stoppedTyping, debouncePeriod);\n };\n\n const stoppedTyping = () => {\n try {\n liveChatObj.updateIsTyping(\n contactId,\n appContext.accountId,\n appContext.conversationId,\n false,\n );\n } catch (err) {\n // Firebase database obj might already be destroyed\n }\n searchTimeout = null;\n };\n const updateState = useCallback(\n (next: Partial) => setState((state) => ({ ...state, ...next })),\n [],\n );\n const showValidationMessage = state.error !== null;\n const { messages } = useContext(ConversationContext);\n const { welcomeInteractions } = useContext(ConversationContext);\n const message = messages[messages.length - 1];\n const welcomeMessage = welcomeInteractions\n ? welcomeInteractions[welcomeInteractions.length - 1]\n : null;\n const question = findActiveQuestion(appContext.state, message);\n const welcomeQuestion = findActiveQuestion(appContext.state, welcomeMessage);\n const welcomePhoneQuestion: PhoneQuestion | null =\n welcomeQuestion && welcomeQuestion.question_type === \"phone\"\n ? welcomeQuestion\n : null;\n const questionType = question && question.question_type;\n const emojiDisabled = isEmojiDisabled(questionType);\n const selectBox =\n questionType === \"single_choice\" || questionType === \"multi_choice\";\n let editableBox =\n questionType === \"text\" ||\n questionType === \"number\" ||\n questionType === \"email\" ||\n questionType === \"time\" ||\n questionType === \"datetime\" ||\n questionType === \"date\" ||\n questionType === \"phone\" ||\n questionType === \"time_zone\";\n let disabled =\n question === null || selectBox || state.text.trim().length === 0;\n if (appContext.liveChatchannel && !appContext.isLiveChatAbandoned) {\n disabled = state.text.trim().length === 0;\n editableBox = true;\n }\n const socket = useContext(SocketServiceContext);\n liveChatObj = appContext.liveChatObj;\n const sendAnswer = () => {\n const content = state.text.trim();\n if (content.length && appContext.liveChatchannel) {\n sendVisitorResponseInLiveChat(content);\n actions.heartbeat(); // sending heartbeat on visitor response while having live chat\n if (searchTimeout) {\n clearTimeout(searchTimeout);\n stoppedTyping();\n }\n setState({\n error: null,\n openEmoji: false,\n text: \"\",\n openSelectList: false,\n });\n } else if (!content.length && appContext.liveChatchannel) {\n return;\n } else {\n const validationOption = checkValidation(questionType, content);\n if (validationOption!.isValid) {\n updateState({ error: validationOption!.errorMsg } as any);\n return;\n }\n if (state.error === null) {\n socket.answer({ content });\n }\n setState({\n error: null,\n openEmoji: false,\n text: \"\",\n openSelectList: false,\n });\n }\n };\n\n const sendVisitorResponseInLiveChat = async (messageText) => {\n try {\n if (!appContext.liveChatchannel) {\n return;\n }\n const newMessage: IMessage = {\n type: \"text_message\",\n text: messageText,\n userType: \"Visitor\",\n contactId: appContext.contactId,\n };\n await liveChatObj.sendMessage(\n appContext.accountId,\n appContext.conversationId,\n newMessage,\n );\n liveChatObj.notifyNewMessage(\n appContext.accountId,\n appContext.conversationId,\n newMessage,\n );\n liveChatObj.updateConversation(\n appContext.accountId,\n appContext.conversationId,\n {\n lastMessage: newMessage,\n lastUpdatedTime: new Date().toISOString(),\n },\n );\n } catch (err) {\n socket.messageLimitExceeded(true);\n }\n };\n\n const openSelectList = () => updateState({ openSelectList: true } as any);\n const selectList = useMemo(() => {\n if (!state.openSelectList || question == null) return null;\n if (\n question.question_type !== \"single_choice\" &&\n question.question_type !== \"multi_choice\"\n ) {\n return null;\n }\n return (\n {\n setState({\n error: null,\n openEmoji: false,\n text: \"\",\n openSelectList: false,\n });\n socket.answer(answer);\n }}\n close={() => updateState({ openSelectList: false } as any)}\n />\n );\n }, [state.openSelectList, question, socket, updateState]);\n return (\n <>\n {selectList}\n \n \n {/*
\n \n
*/}\n \n {\n updateState({ text });\n if (appContext.liveChatAccepted) setTypingStatus();\n }}\n // @ts-ignore\n onError={(error) => updateState({ error })}\n />\n \n \n \n \n \n \n !emojiDisabled &&\n setState({ ...state, openEmoji: !state.openEmoji })\n }\n />\n {process.env.REACT_APP_SOLO_PHASE_ONE_TOGGLE === \"true\" &&\n appContext.oncehubBrandingUrl && (\n \n )}\n\n \n \n {state.openEmoji && (\n
\n {\n setState({\n ...state,\n openEmoji: false,\n text: state.text + (emoji as any).native,\n });\n }}\n />\n
\n )}\n \n \n );\n}\n\nexport default React.memo<{}>(WidgetFooter);\n","export default __webpack_public_path__ + \"static/media/bots.aebca506.svg\";","import { useEffect, useContext } from \"react\";\nimport { SocketServiceContext } from \"src/AppContext\";\nimport \"./end-conversation.scss\";\ninterface IEndChatProps {\n message: any;\n isAbandoned: boolean | undefined;\n}\nexport const EndConversation = (props: IEndChatProps) => {\n const socket = useContext(SocketServiceContext);\n\n useEffect(() => {\n if (isAbandoned() || isClosedByAgent()) {\n socket.disconnectFirebaseDb();\n }\n }, [props.message, props.isAbandoned]);\n\n const isAbandoned = () => {\n return props.message && props.message.user && props.isAbandoned;\n };\n\n const isClosedByAgent = () => {\n return props.message && props.message.user && !props.isAbandoned;\n };\n\n return (\n
\n
\n {isAbandoned() && `This conversation has been ended by the bot`}\n {isClosedByAgent() &&\n `This conversation has been closed by ${props.message.user.firstName}`}\n {!props.message && \"This conversation has been ended by the bot\"}\n {props.message &&\n !props.message.user &&\n \"This conversation has been ended by the bot\"}\n
\n
\n );\n};\n","import React, { useContext } from \"react\";\nimport { InteractionOption } from \"src/interaction.interface\";\n\nimport \"./interaction-single-select.scss\";\nimport { AppContext } from \"src/AppContext\";\nimport { ColorSet } from \"src/utils/color-set\";\n\ninterface Props {\n options: InteractionOption[];\n onSelect: (option: InteractionOption) => void;\n}\n\nfunction InteractionSingleSelect({ options, onSelect }: Props) {\n const { colour: color } = useContext(AppContext).settings;\n return (\n
    \n {options.map((option) => (\n onSelect(option)}\n className={`border-primary text-secondary ${\n ColorSet.indexOf(color) !== -1 ? \"border-enable light-color\" : \"\"\n }`}\n >\n {option.option_text}\n \n ))}\n
\n );\n}\n\nexport default React.memo(InteractionSingleSelect);\n","import * as React from \"react\";\n\nexport interface ITextMessageProps {\n messageId: string;\n text: string;\n}\n\nfunction TextMessageComponent(props: ITextMessageProps) {\n return (\n 7\n ? \"chat-message chat-message-align-left bg-primary text-primary border-primary\"\n : \"chat-message bg-primary text-primary border-primary\"\n }\n >\n {props.text}\n \n );\n}\n\nexport default React.memo(TextMessageComponent);\n","import * as React from \"react\";\nimport { Player, BigPlayButton, ControlBar } from \"video-react\";\n\nimport \"./video-message.scss\";\nimport \"video-react/dist/video-react.css\";\nimport PlayButtonImg from \"../../../../../assets/images/play-button.png\";\n\ninterface IVideoMessageProps {\n description?: string;\n videoTitle?: string;\n videoUrl: any;\n autoPlay: boolean;\n botName?: string;\n id: string;\n currentTime?: number;\n showBotName?: boolean;\n}\n\ninterface IVideoMessageState {\n isOpen: boolean;\n isPaused: boolean;\n isFullScreen: boolean;\n}\n\nexport class VideoMessage extends React.PureComponent<\n IVideoMessageProps,\n IVideoMessageState\n> {\n readonly state: IVideoMessageState = {\n isFullScreen: false,\n isOpen: false,\n isPaused: !this.props.autoPlay,\n };\n playerRef: any;\n constructor(parameters: IVideoMessageProps) {\n super(parameters);\n this.playerRef = React.createRef();\n }\n componentDidMount() {\n if (this.props.autoPlay) {\n setTimeout(() => {\n if (this.hasPlayerRef()) {\n const { video } = this.playerRef.current;\n if (this.props.currentTime) {\n (video.video as HTMLVideoElement).currentTime =\n this.props.currentTime;\n }\n this.mute(video);\n this.play(video);\n }\n }, 200);\n }\n if (this.hasPlayerRef()) {\n this.playerRef.current.subscribeToStateChange(\n this.handleFullScreen.bind(this),\n );\n }\n }\n\n handleFullScreen(state, prevState) {\n this.setState({ isFullScreen: state.isFullScreen });\n if (state.isFullscreen && !prevState.isFullscreen) {\n window.parent.postMessage(\n {\n type: \"updateIframe\",\n add: [\"co-iframe-full-screen\"],\n remove: [\"co-iframe-open\"],\n },\n \"*\",\n );\n } else if (!state.isFullscreen && prevState.isFullscreen) {\n window.parent.postMessage(\n {\n type: \"updateIframe\",\n add: [\"co-iframe-open\"],\n remove: [\"co-iframe-full-screen\"],\n },\n \"*\",\n );\n }\n }\n\n renderTitleBox() {\n if (this.props.videoTitle) {\n return (\n
\n \n {this.props.videoTitle}\n {this.props.description}\n \n
\n );\n }\n return null;\n }\n\n togglePlay = () => {\n if (this.hasPlayerRef()) {\n const { video } = this.playerRef.current;\n if (this.state.isPaused) {\n this.play(video);\n } else {\n this.pause(video);\n }\n }\n };\n\n mute(video: HTMLVideoElement) {\n video.muted = true;\n }\n\n play(video: HTMLVideoElement) {\n video.play();\n this.setState({\n isPaused: false,\n });\n }\n\n pause(video: HTMLVideoElement) {\n video.pause();\n this.setState({\n isPaused: true,\n });\n }\n\n render() {\n return (\n
\n \n
\n {this.props.showBotName && (\n {this.props.botName}\n )}\n
\n \n \n \n \n \n \n \n \"Play\"\n
\n
\n
\n {this.renderTitleBox()}\n \n \n );\n }\n\n private hasPlayerRef() {\n return this.playerRef.current !== null ? true : false;\n }\n}\n","export default \"data:image/png;base64,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\"","import * as React from \"react\";\nimport \"./image-message.scss\";\nimport Lightbox from \"react-images\";\n\nexport interface IImageMessageProps {\n imageTitle: null | string;\n imageUrl: string;\n isNotificationInteraction?: boolean;\n botName?: string;\n id: string;\n showBotName?: boolean;\n}\n\nexport interface IImageMessageState {\n isOpen: boolean;\n}\n\nexport class ImageMessage extends React.PureComponent<\n IImageMessageProps,\n IImageMessageState\n> {\n imageRef: React.RefObject = React.createRef();\n readonly state: IImageMessageState = {\n isOpen: false,\n };\n readonly theme = {\n // arrows\n arrow: {\n backgroundColor: \"rgba(255, 255, 255, 0.8)\",\n fill: \"#222\",\n opacity: 0.6,\n transition: \"opacity 200ms\",\n\n \":hover\": {\n opacity: 1,\n },\n },\n arrow__direction__left: { marginLeft: 10 },\n arrow__direction__right: { marginRight: 10 },\n arrow__size__medium: {\n borderRadius: 40,\n height: 40,\n marginTop: -20,\n\n \"@media (min-width: 768px)\": {\n height: 70,\n padding: 15,\n },\n },\n // container\n close: {\n \":hover\": {\n opacity: 1,\n },\n fill: \"#000000\",\n opacity: 0.6,\n transition: \"all 200ms\",\n },\n container: {\n background: \"rgba(255, 255, 255, 0.8)\",\n },\n\n // footer\n footer: {\n color: \"black\",\n },\n footerCount: {\n color: \"rgba(0, 0, 0, 0.6)\",\n },\n };\n\n toggleLightbox = () => {\n const isOpen = !this.state.isOpen;\n this.setState(\n {\n isOpen,\n },\n () => {\n setTimeout(() => {\n document.body.setAttribute(\"style\", \"\");\n });\n window.top.postMessage(\n {\n type: \"updateIframe\",\n add: isOpen ? [\"co-iframe-fullscreen\"] : [\"co-iframe-open\"],\n remove: isOpen ? [\"co-iframe-open\"] : [\"co-iframe-fullscreen\"],\n },\n \"*\",\n );\n },\n );\n };\n\n renderLightbox() {\n return (\n \n );\n }\n\n render() {\n return (\n
\n \n {!this.props.isNotificationInteraction && this.renderLightbox()}\n {this.props.showBotName && (\n {this.props.botName}\n )}\n \n \n
\n );\n }\n}\n","export default __webpack_public_path__ + \"static/media/document-icon.4b0f83a1.svg\";","/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable no-script-url */\nimport \"./../image-message/image-message.scss\";\nimport \"./document-message.scss\";\nimport DocumentIcon from \"./../../../../../assets/images/document-icon.svg\";\n\nexport interface IMessageDocumentProp {\n title: null | string;\n documentUrl: string;\n botName?: string;\n id: string;\n showBotName?: boolean;\n}\n\nexport const DocumentMessage = (props: IMessageDocumentProp) => {\n const downloadFile = () => {\n const a = document.createElement(\"a\");\n a.href = props.documentUrl;\n a.target = \"_blank\";\n a.rel = \"noreferrer noopener\";\n a.download = props.title || \"\";\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n };\n let fileName = props.documentUrl.split(\"/\").pop();\n fileName = fileName ? decodeURIComponent(fileName) : \"NA\";\n return (\n
\n \n {props.showBotName && (\n {props.botName}\n )}\n\n \n \n \"document\n \n \n {props.title}\n

{fileName}

\n
\n \n \n
\n );\n};\n","export default __webpack_public_path__ + \"static/media/url-default.a4938810.svg\";","/* eslint-disable no-script-url */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport * as React from \"react\";\nimport \"./url-message.scss\";\nimport urlDefaultImage from \"src/assets/images/url-default.svg\";\nimport { UtilsService } from \"./../../../../../utils/utils.service\";\n\nexport interface IMessageUrlProp {\n urlProps: {\n title: string;\n url: string;\n };\n id: string;\n imageTitle?: string;\n imageUrl: null | string;\n botName?: string;\n showBotName?: boolean;\n}\n\nexport class MessageUrl extends React.PureComponent {\n imageRef: React.RefObject = React.createRef();\n\n openLink = () => {\n const a = document.createElement(\"a\");\n a.href = this.props.urlProps.url;\n a.target = \"_blank\";\n a.rel = \"noreferrer noopener\";\n a.style.display = \"none\";\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n };\n\n render() {\n return (\n
\n \n
\n {this.props.showBotName && (\n {this.props.botName}\n )}\n \n
\n \n \n {this.props.urlProps.title}\n \n \n {UtilsService.extractHostName(this.props.urlProps.url)}\n \n \n \n
\n );\n }\n}\n","import {\n TimeZones as TIMEZONES,\n PriorityCountryId as TOP_COUNTRIES_IDS,\n} from \"src/assets/timezoneConfig.js\";\nimport { DEFAULT_TIMEZONE_ID } from \"src/widget-container/constants\";\n\nexport interface ITimezone {\n Id: string;\n ShortName: string;\n Country: string;\n Region: string;\n CityList: string;\n TimeZone: number;\n DisplayOrder: number;\n HasDayLightSavings: Array<{\n offset: string;\n startTimeMili: string;\n endTimeMili: string;\n }>;\n CountryCallingCode: string;\n}\n\nexport interface ITimezoneData {\n displayOrder: number;\n timezoneId: string;\n region: string;\n shortName: string;\n offset: string;\n isDisabled: boolean;\n countryName: string;\n regionWithGMTAndDST: string;\n}\nexport class TimezoneService {\n private static convertNumberToMinutes = (numberString: string) => {\n if (numberString.length === 1) {\n return ((+numberString / 10) * 60).toString();\n } else {\n return ((+numberString / 100) * 60).toString();\n }\n };\n\n private static convertOffsetToDisplayString = (offset: number | string) => {\n const [hrs, mins] = offset.toString().split(\".\");\n let offsetMinute: string = \"00\";\n if (mins) {\n offsetMinute = TimezoneService.convertNumberToMinutes(mins);\n }\n return `${offset > 0 ? \"+\" + hrs : hrs}:${offsetMinute}`;\n };\n\n static getFullTimezoneString = (\n offset: number,\n hasDST: boolean,\n country: string,\n region: string,\n ) => {\n const offsetString = TimezoneService.convertOffsetToDisplayString(offset);\n if (region) {\n return `(GMT${offsetString})${\n hasDST ? \" [DST] \" : \"\"\n } ${country}; ${region}`;\n } else {\n return `(GMT${offsetString})${hasDST ? \" [DST]; \" : \";\"} ${country}`;\n }\n };\n\n static getTimezoneStringByTimezoneId = (tzId: string) => {\n const [timezone] = TIMEZONES[0][tzId || DEFAULT_TIMEZONE_ID];\n let tzString = \"\";\n if (timezone) {\n const timezoneObj = timezone as ITimezone;\n const { offset, hasDST } =\n TimezoneService.getTimezoneSettings(timezoneObj);\n tzString = TimezoneService.getFullTimezoneString(\n offset,\n hasDST,\n timezoneObj.Country,\n timezoneObj.Region,\n );\n }\n return tzString;\n };\n\n static getSelectOptionRegionString = (region, offset: string, hasDst) => {\n const offsetString = TimezoneService.convertOffsetToDisplayString(offset);\n return `${region} (GMT${offsetString})${hasDst ? \" [DST]\" : \"\"}`.trim();\n };\n\n static getTimezoneSettings = (timezone: ITimezone) => {\n let offset = timezone.TimeZone;\n let hasDST = false;\n if (timezone.HasDayLightSavings && timezone.HasDayLightSavings.length) {\n const currentTime = Date.now();\n for (const eachDST of timezone.HasDayLightSavings) {\n if (\n currentTime >= +eachDST.startTimeMili &&\n currentTime <= +eachDST.endTimeMili\n ) {\n hasDST = true;\n offset = +eachDST.offset;\n }\n }\n }\n return {\n offset,\n hasDST,\n };\n };\n\n static getOffsetAndDST = (timeNow: number, timeZoneData: ITimezone) => {\n let tzOffset = timeZoneData.TimeZone.toString();\n let hasDST = false;\n if (\n timeZoneData.HasDayLightSavings &&\n timeZoneData.HasDayLightSavings.length\n ) {\n const activeDST = timeZoneData.HasDayLightSavings.find(\n (DST) =>\n Number(DST.startTimeMili) <= timeNow &&\n timeNow <= Number(DST.endTimeMili),\n );\n if (activeDST) {\n tzOffset = activeDST.offset;\n hasDST = true;\n }\n }\n return { offset: tzOffset, hasDST };\n };\n\n static getRegionData = (timezoneId: string): ITimezoneData => {\n const TimeZones: { [key: string]: ITimezone[] } = TIMEZONES[0];\n const timeNow = Date.now();\n const tz = TimeZones && TimeZones[timezoneId] && TimeZones[timezoneId][0];\n const { hasDST, offset } = TimezoneService.getOffsetAndDST(timeNow, tz);\n\n return {\n displayOrder: tz.DisplayOrder,\n timezoneId: tz.Id,\n region: tz.Region,\n shortName: tz.ShortName,\n offset,\n isDisabled: false,\n countryName: tz.Country,\n regionWithGMTAndDST: TimezoneService.getSelectOptionRegionString(\n tz.Region,\n offset,\n hasDST,\n ),\n };\n };\n\n static getTimezoneData = () => {\n const TimeZones: { [key: string]: ITimezone[] } = TIMEZONES[0];\n const tzData: {\n [key: string]: ITimezoneData[];\n } = {};\n\n for (const key in TimeZones) {\n if (key in TimeZones) {\n const tz = TimeZones && TimeZones[key] && TimeZones[key][0];\n if (tz && tz.Country) {\n tzData[tz.Country] = tzData[tz.Country] || [];\n tzData[tz.Country].push(TimezoneService.getRegionData(key));\n }\n }\n }\n\n // sort in display order and alphabetically\n const allCountriesString = Object.keys(tzData).sort();\n for (const country in tzData) {\n if (country in tzData) {\n const regions = tzData[country];\n if (regions && regions.length > 1) {\n regions.sort((a, b) => {\n return a.displayOrder - b.displayOrder;\n });\n }\n }\n }\n const topCountriesString = TOP_COUNTRIES_IDS.reduce(\n (prevArr: string[], countryId, i) => {\n if (\n TimeZones[countryId] &&\n TimeZones[countryId].length &&\n prevArr.indexOf(TimeZones[countryId][0].Country) === -1\n ) {\n prevArr.push(TimeZones[countryId][0].Country);\n }\n return prevArr;\n },\n [],\n );\n const allCountriesData: ITimezoneData[][] = allCountriesString.map(\n (countryName) => {\n return tzData[countryName];\n },\n );\n const topCountriesData: ITimezoneData[][] = topCountriesString.map(\n (countryName) => {\n return tzData[countryName];\n },\n );\n return {\n topCountriesData,\n allCountriesData,\n };\n };\n}\n","import * as React from \"react\";\nimport \"./select-list-with-filter.scss\";\nimport { SelectListOption } from \"./select-option\";\n\nexport interface ISelectListWithFilterProps {\n selectItems: any[];\n customSelectConfig: {\n selectedOptionText: string;\n allOptions: Array>;\n onOptionChange: (newOption: T, index, event?) => void;\n placeholderText: string;\n showValidation?: boolean;\n validationMessage?: string;\n };\n}\n\ninterface ISelectListWithFilterState {\n filterItems: JSX.Element[];\n isOpen: boolean;\n}\n\nexport class SelectListWithFilter extends React.Component<\n ISelectListWithFilterProps,\n ISelectListWithFilterState\n> {\n private inputRef: React.RefObject = React.createRef();\n private customUlRef: React.RefObject = React.createRef();\n private customSelectDivRef: React.RefObject =\n React.createRef();\n\n constructor(props: ISelectListWithFilterProps) {\n super(props);\n const selectItems: JSX.Element[] = [];\n this.props.selectItems.forEach((option, index) => {\n selectItems.push(\n
  • \n {option.optionText}\n
  • ,\n );\n });\n this.state = {\n filterItems: selectItems,\n isOpen: false,\n };\n }\n\n componentDidMount() {\n if (this.inputRef && this.inputRef.current) {\n (this.inputRef.current as HTMLElement).focus();\n }\n }\n\n private dropDownToggler = () => {\n this.setState(\n (prevState) => {\n return {\n isOpen: !prevState.isOpen,\n };\n },\n () => {\n const nowIsOpen = this.state.isOpen;\n if (nowIsOpen) {\n const ulElm = this.customUlRef.current;\n if (ulElm) {\n const selectedElm = ulElm.querySelector(\"li.selected\");\n if (selectedElm) {\n selectedElm.scrollIntoView();\n }\n const customOuterDivElm = this.customSelectDivRef.current;\n if (customOuterDivElm) {\n const windowHeight = window.innerHeight;\n const customOuterDimensions =\n customOuterDivElm.getBoundingClientRect();\n const customOuterTop = customOuterDimensions.top;\n const customOuterHeight = customOuterDimensions.height;\n const lowerSectionHeight =\n windowHeight - customOuterTop - customOuterHeight;\n const parentDiv = ulElm.parentElement;\n if (parentDiv) {\n if (ulElm.clientHeight < lowerSectionHeight) {\n parentDiv.classList.remove(\"open-top\");\n parentDiv.classList.add(\"open-bottom\");\n } else {\n parentDiv.classList.remove(\"open-bottom\");\n parentDiv.classList.add(\"open-top\");\n }\n }\n }\n }\n }\n },\n );\n };\n\n private onCustomOptionClick = (option: SelectListOption, index, e) => {\n this.setState({\n isOpen: false,\n });\n if (this.props.customSelectConfig) {\n this.props.customSelectConfig.onOptionChange(\n option.optionValue,\n index,\n e,\n );\n }\n };\n\n render() {\n const {\n allOptions,\n placeholderText,\n selectedOptionText,\n showValidation,\n validationMessage,\n } = this.props.customSelectConfig;\n const hasSelection =\n this.props.customSelectConfig.selectedOptionText.length > 0;\n return (\n
    \n 1 ? this.dropDownToggler : undefined}\n />\n\n \n 1 ? this.dropDownToggler : undefined}\n >\n \n {hasSelection ? selectedOptionText : placeholderText}\n

    \n
    \n \n
    \n
      \n {allOptions.map((option, index) => {\n return (\n \n {option.optionText}\n \n );\n })}\n
    \n
    \n \n \n );\n }\n}\n","export class SelectListOption {\n isDisabled: boolean;\n optionText: string;\n optionValue: T;\n constructor(params: {\n isDisabled: boolean;\n optionText: string;\n optionValue: T;\n }) {\n this.isDisabled = params.isDisabled;\n this.optionText = params.optionText;\n this.optionValue = params.optionValue;\n }\n}\n","import * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport \"./timezone-popup.scss\";\nimport {\n ITimezonePopupProps,\n ITimezonePopupStates,\n} from \"./timezone-popup.interface\";\nimport { TimezoneService, ITimezoneData } from \"src/utils/timezone.service\";\nimport { ChatButton } from \"../chat-button/chat-button\";\nimport { SelectListWithFilter } from \"../select-list-with-filter/select-list-with-filter\";\nimport { SelectListOption } from \"../select-list-with-filter/select-option\";\n\nexport class TimezonePopup extends React.Component<\n ITimezonePopupProps,\n ITimezonePopupStates\n> {\n private tempSelectedCountry: string;\n private tempSelectedRegionDetail: ITimezoneData;\n private tempRegionList: ITimezoneData[];\n private dropdownCountryWithRegionList: ITimezoneData[][] = [];\n private dropdownRegionList: ITimezoneData[] = [];\n private seperatorOption: ITimezoneData[] = [\n {\n countryName: \"-------------------------------------\",\n isDisabled: true,\n displayOrder: 0,\n offset: \"\",\n region: \"\",\n shortName: \"\",\n timezoneId: \"\",\n regionWithGMTAndDST: \"\",\n },\n ];\n private selectOptionsForCountryList: Array> =\n [];\n private selectOptionsForRegionList: Array> =\n [];\n placeholderTextForRegionsList = \"Please select time zone region\";\n constructor(props: ITimezonePopupProps) {\n super(props);\n this.initializePopup(props);\n const selectedRegionDetails = TimezoneService.getRegionData(\n props.timezoneId,\n );\n this.state = this.getStatesObj(selectedRegionDetails);\n this.tempSelectedCountry = this.state.selectedCountryName;\n this.tempSelectedRegionDetail = this.state.selectedRegionDetails;\n this.tempRegionList = this.dropdownRegionList;\n }\n\n initializePopup(props: ITimezonePopupProps) {\n this.setDropdownCountryWithRegionList();\n this.setDropdownRegionList(props.timezoneId);\n }\n\n componentDidUpdate(nextProps: ITimezonePopupProps) {\n const timezoneChanged = nextProps.timezoneId !== this.props.timezoneId;\n if (timezoneChanged) {\n this.setDropdownRegionList(nextProps.timezoneId);\n const selectedRegionDetails = TimezoneService.getRegionData(\n nextProps.timezoneId,\n );\n const stateObj = this.getStatesObj(selectedRegionDetails);\n this.tempSelectedCountry = stateObj.selectedCountryName;\n this.tempSelectedRegionDetail = stateObj.selectedRegionDetails;\n this.tempRegionList = this.dropdownRegionList;\n this.setState(stateObj);\n }\n }\n\n getStatesObj = (\n selectedRegionDetails: ITimezoneData,\n ): ITimezonePopupStates => {\n return {\n selectedCountryName: selectedRegionDetails.countryName,\n selectedRegionNameWithGMTAndDST:\n selectedRegionDetails.regionWithGMTAndDST,\n selectedRegionDetails,\n showRegionValidation: false,\n };\n };\n\n getSelectedRegionsByTimezoneId = (tzId: string) => {\n return this.dropdownCountryWithRegionList.find((t) => {\n const hasSelectedRegions = t.some((e) => e.timezoneId === tzId);\n return hasSelectedRegions;\n });\n };\n\n setDropdownCountryWithRegionList = () => {\n const { allCountriesData, topCountriesData } =\n TimezoneService.getTimezoneData();\n this.dropdownCountryWithRegionList = topCountriesData.concat(\n [this.seperatorOption],\n allCountriesData,\n );\n this.selectOptionsForCountryList = this.dropdownCountryWithRegionList.map(\n (countryData, index) => {\n const option = new SelectListOption({\n isDisabled: countryData[0].isDisabled,\n optionText: countryData[0].countryName,\n optionValue: countryData[0],\n });\n return option;\n },\n );\n };\n\n setDropdownRegionList = (tzId: string) => {\n this.dropdownRegionList = this.getSelectedRegionsByTimezoneId(\n tzId,\n ) as ITimezoneData[];\n this.selectOptionsForRegionList = this.dropdownRegionList.map(\n (regionData, index) => {\n const option = new SelectListOption({\n isDisabled: regionData.isDisabled,\n optionText: regionData.regionWithGMTAndDST,\n optionValue: regionData,\n });\n return option;\n },\n );\n };\n\n onCountryChange = (newValue: ITimezoneData, index: number) => {\n this.resetRegionValidation();\n this.setCountryAndRegionByIndex(index);\n };\n\n setCountryAndRegionByIndex = (countryIndex: number, regionIndex = 0) => {\n const newRegionSelection =\n this.dropdownCountryWithRegionList[countryIndex][regionIndex];\n this.dropdownRegionList = this.dropdownCountryWithRegionList[countryIndex];\n this.selectOptionsForRegionList = this.dropdownRegionList.map(\n (regionData, index) => {\n const option = new SelectListOption({\n isDisabled: regionData.isDisabled,\n optionText: regionData.regionWithGMTAndDST,\n optionValue: regionData,\n });\n return option;\n },\n );\n this.setState({\n selectedCountryName: newRegionSelection.countryName,\n });\n if (this.dropdownRegionList.length > 1) {\n this.setState({\n selectedRegionNameWithGMTAndDST: \"\",\n });\n } else {\n this.setRegionByIndex(0);\n }\n };\n\n setRegionByIndex = (regionIndex: number) => {\n const selectedRegion = this.dropdownRegionList[regionIndex];\n this.setState({\n selectedRegionNameWithGMTAndDST: selectedRegion.regionWithGMTAndDST,\n selectedRegionDetails: selectedRegion,\n });\n };\n\n onRegionChange = (newValue: ITimezoneData, index: number) => {\n this.resetRegionValidation();\n this.setRegionByIndex(index);\n };\n\n resetRegionValidation = () => {\n this.setState({\n showRegionValidation: false,\n });\n };\n\n onContinueBtnClick = () => {\n if (\n this.state.selectedCountryName &&\n this.state.selectedRegionNameWithGMTAndDST\n ) {\n const tzId = this.state.selectedRegionDetails.timezoneId;\n const timezoneString =\n TimezoneService.getTimezoneStringByTimezoneId(tzId);\n this.tempSelectedCountry = this.state.selectedCountryName;\n this.tempSelectedRegionDetail = this.state.selectedRegionDetails;\n this.tempRegionList = this.dropdownRegionList;\n this.props.closePopup(tzId, timezoneString);\n } else {\n this.setState({\n showRegionValidation: true,\n });\n }\n };\n\n onCloseButtonClick = () => {\n this.setState({\n selectedCountryName: this.tempSelectedCountry,\n selectedRegionDetails: this.tempSelectedRegionDetail,\n selectedRegionNameWithGMTAndDST:\n this.tempSelectedRegionDetail.regionWithGMTAndDST,\n });\n this.dropdownRegionList = this.tempRegionList;\n this.props.closePopup();\n };\n render() {\n const container = document.querySelector(\".chat-window\");\n return (\n container &&\n createPortal(\n
    \n
    \n

    \n Your time zone\n \n

    \n

    All times will be displayed according to your time zone:

    \n \n\n \n
    \n \n
    \n
    \n
    ,\n container,\n )\n );\n }\n}\n","export default __webpack_public_path__ + \"static/media/no_Times.d9349db9.svg\";","export default __webpack_public_path__ + \"static/media/Error_icon.3dda98a7.svg\";","export default __webpack_public_path__ + \"static/media/double_booking_icon.3bf28f2f.svg\";","import { ConfirmEventData, ContactInfo } from \"src/interaction.interface\";\n\nexport interface FetchSlotsOptions {\n startDate: number;\n endDate: number;\n timeZoneId?: string;\n websiteId: string;\n interactionId?: string;\n initial_load: boolean;\n panelId?: string;\n scheduleEventTypeExternalId?: string;\n isInstantSchedule?: boolean;\n}\n\nexport interface Slot {\n timeStr: string;\n startTime: number;\n duration: number;\n dateString: string;\n dateObjSummary: string;\n resourceLinkId: any;\n}\n\nexport type FetchSlotsAPISuccessResponse = {\n success: true;\n slots: {\n [date: string]: Slot[];\n };\n /** date in d/m/yyyy format */\n lastAvailableDay: Date;\n};\n\nexport type FetchSlotsAPIErrorResponse = {\n schedule_status: \"error_while_fetching_slots\";\n schedule_fallback_message: string;\n message_id?: string;\n};\n\nexport type FetchSlotsAPIResponse =\n | FetchSlotsAPISuccessResponse\n | FetchSlotsAPIErrorResponse;\n\nexport interface ConfirmOptions {\n trackingid?: any;\n duration: number;\n timeZoneId: string;\n timeZoneString: string;\n startTime: number;\n websiteId: string;\n interactionId?: string;\n dateObjSummary: string;\n resourcesLinkId: any;\n enableSmsNotification: boolean;\n contactInfo: ContactInfo;\n blocked_meeting_data?: string;\n scheduleEventTypeExternalId?: string;\n isPanelMeeting?: boolean;\n isInstantSchedule?: boolean;\n}\n\nexport interface BlockOptions {\n meetingIds?: any;\n duration: number;\n dateObjSummary: string;\n resourcesLinkId: any;\n meetingLowerBoundary: number;\n meetingUpperBoundary: number;\n interactionId?: string;\n scheduleEventTypeExternalId?: string;\n panelId?: string;\n isInstantSchedule?: boolean;\n blocked_meeting_data?: string;\n contactInfo: ContactInfo;\n}\n\nexport interface DoubleBookingResponse {\n schedule_status: \"error_double_booking\";\n schedule_fallback_message: string;\n schedule_timeslot_fallback_button_text: string;\n}\n\nexport interface ErrorWhileConfirming {\n schedule_status: \"error_while_confirming\";\n schedule_fallback_message: string;\n message_id?: string;\n}\n\nexport interface ErrorWhileBlocking {\n schedule_status: \"error_while_blocking_time\";\n schedule_fallback_message: string;\n message_id?: string;\n}\n\nexport type ConfirmAPIResponse =\n | DoubleBookingResponse\n | ErrorWhileConfirming\n | ConfirmEventData;\n\nexport type BlockAPIResponse =\n | DoubleBookingResponse\n | ErrorWhileBlocking\n | BlockAPIData;\n\nexport type BlockAPIData = {\n confirmation_data: ConfirmationData;\n blocked_meeting_data: any;\n};\n\nexport type ConfirmationData = {\n bookingTrackingId: string;\n panelTrackingId: string;\n};\n\nexport function dateToString(date: Date): string {\n return date.getFullYear() + \"-\" + date.getMonth() + \"-\" + date.getDate();\n}\n\nexport function stringToDate(date: string): Date {\n const parts = date.split(\"-\");\n return new Date(parseInt(parts[0]), parseInt(parts[1]), parseInt(parts[2]));\n}\n\nexport function nextDay(date: string) {\n const next = stringToDate(date);\n next.setDate(next.getDate() + 1);\n return dateToString(next);\n}\n","import { ApiClient } from \"../../../../../utils/api-client\";\nimport {\n Slot,\n FetchSlotsOptions,\n FetchSlotsAPIResponse,\n ConfirmOptions,\n ConfirmAPIResponse,\n BlockOptions,\n BlockAPIResponse,\n} from \"./slots.type\";\nimport { StorageStrategy } from \"../../../../../utils/storage-strategy\";\n\nexport async function fetchSlots(\n options: FetchSlotsOptions,\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const chSessionId = storage.getSession();\n if (chSessionId == null) {\n throw new Error(\"Session not found\");\n }\n const request = await ApiClient.post(\n `${process.env.REACT_APP_SETTINGS_API}schedule-times/fetch-times`,\n {\n headers: {\n \"content-type\": \"application/json\",\n },\n body: { ...options, chSessionId },\n },\n );\n const json = await request.json();\n if (!json.success) {\n return json;\n }\n const lastAvailableDay: [number, number, number] = json.data.lastAvailableDay\n .split(\"-\")\n .map((part: string) => parseInt(part));\n lastAvailableDay.reverse();\n const slots: { [date: string]: Slot[] } = {};\n for (const date in json.data.slots) {\n const dateSlots: Slot[] = [];\n const { am, pm, duration } = json.data.slots[date];\n if (am) {\n dateSlots.push(...am);\n }\n if (pm) {\n dateSlots.push(...pm);\n }\n for (let i = dateSlots.length - 1; i >= 0; i--) {\n dateSlots[i].duration = duration;\n }\n slots[date] = dateSlots;\n }\n\n return {\n slots,\n success: true,\n lastAvailableDay: new Date(...lastAvailableDay),\n };\n}\n\nexport async function confirmSlot(\n options: ConfirmOptions,\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const chSessionId = storage.getSession();\n if (chSessionId == null) {\n throw new Error(\"Session not found\");\n }\n const request = await ApiClient.post(\n `${process.env.REACT_APP_SETTINGS_API}schedule-times/confirm`,\n {\n headers: {\n \"content-type\": \"application/json\",\n },\n body: { ...options, chSessionId },\n },\n );\n const json = await request.json();\n return json.data;\n}\n\nexport async function blockSlot(\n options: BlockOptions,\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const chSessionId = storage.getSession();\n if (chSessionId == null) {\n throw new Error(\"Session not found\");\n }\n const request = await ApiClient.post(\n `${process.env.REACT_APP_SETTINGS_API}schedule-times/block-meeting-time`,\n {\n headers: {\n \"content-type\": \"application/json\",\n },\n body: { ...options, chSessionId },\n },\n );\n const json = await request.json();\n return json.data;\n}\n","import \"./loader.scss\";\nimport { ILoaderProps } from \"./loader.interface\";\n\nexport const Loader = (props: ILoaderProps) => {\n return (\n
    \n
    \n
    \n \n
    \n
    {props.text ? props.text : \"\"}
    \n
    \n
    \n );\n};\n","/* eslint-disable jsx-a11y/heading-has-content */\n/* eslint-disable no-script-url */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {\n useReducer,\n useMemo,\n useState,\n useCallback,\n useContext,\n useEffect,\n useRef,\n Dispatch,\n} from \"react\";\n\nimport {\n ScheduleInteraction,\n ConfirmEventData,\n ScheduleStatus,\n} from \"src/interaction.interface\";\nimport { TimezoneService } from \"src/utils/timezone.service\";\nimport { TimezonePopup } from \"src/widget-container/common-components/timezone-popup/timezone-popup\";\nimport { SocketServiceContext, AppContext } from \"src/AppContext\";\nimport { DEFAULT_TIMEZONE_ID } from \"src/widget-container/constants\";\nimport NoTimesIcon from \"src/assets/images/no_Times.svg\";\nimport CONFIRM_ERROR_ICON from \"src/assets/images/Error_icon.svg\";\nimport DOUBLE_BOOKING_ERROR_ICON from \"src/assets/images/double_booking_icon.svg\";\n\nimport \"./schedule-action.scss\";\n\nimport {\n Slot,\n nextDay,\n stringToDate,\n dateToString,\n ConfirmAPIResponse,\n FetchSlotsAPISuccessResponse,\n FetchSlotsOptions,\n BlockOptions,\n ConfirmOptions,\n} from \"./slots.type\";\n\nimport { confirmSlot, fetchSlots, blockSlot } from \"./slots.service\";\nimport { Loader } from \"src/widget-container/common-components/loader/loader\";\nimport { ChatButton } from \"src/widget-container/common-components/chat-button/chat-button\";\nimport {\n MONTH_NAMES,\n SHORT_MONTH_NAMES,\n SHORT_DAY_NAMES,\n} from \"src/utils/utils.service\";\nimport { ConversationState } from \"src/constants\";\nimport { ColorSet } from \"src/utils/color-set\";\nimport {\n EMAILREGEXPATTERN,\n VADLIDATION_MESSAGES,\n} from \"src/widget-container/constants\";\n\ntype SelectedDatePosition = 0 | 1 | 2;\n\ninterface Props {\n last: boolean;\n interaction: ScheduleInteraction;\n messageId?: string;\n}\n\ninterface State {\n lastAvailableDay: null | Date;\n findNextAvailableDay: boolean;\n slots: {\n [date: string]: undefined | null | Slot[];\n };\n firstDate: string;\n selectedDatePosition: SelectedDatePosition;\n selectedSlot: null | Slot;\n confirmAPIPromise: null | Promise;\n blockTrackingId: null | String;\n doubleBooking: null | {\n message: string;\n buttonText: string;\n };\n smsChecked: boolean;\n confirmClicked?: boolean;\n scheduleStatus: ScheduleStatus | null;\n}\n\ntype Action =\n | { type: \"RESET_SLOTS\" }\n | { type: \"CHANGE_FIRST_DATE\"; changeInDays: number }\n | { type: \"SET_FIRST_DATE\"; value: string; position: number }\n | {\n type: \"SLOTS\";\n data: FetchSlotsAPISuccessResponse;\n start: string;\n end: string;\n }\n | { type: \"LOADING_SLOTS\"; start: string; end: string }\n | {\n type: \"SELECTED_DATE_POSITION\";\n position: SelectedDatePosition;\n }\n | { type: \"START_CONFIRMATION\"; promise: Promise }\n | { type: \"CONFIRM_CLICKED\" }\n | { type: \"RESET_CONFIRM_CLICKED\" }\n | { type: \"BLOCK_SLOT\"; data: String }\n | { type: \"SELECT_SLOT\"; slot: null | Slot }\n | { type: \"DOUBLE_BOOKING\"; message: string; buttonText: string }\n | { type: \"BACK_DOUBLE_BOOKING\" }\n | { type: \"SET_SMS\"; value: boolean }\n | { type: \"FIND_NEXT_AVAILABLE_DAY\"; value: boolean }\n | { type: \"UPDATE_SCHEDULE_STATUS\"; value: ScheduleStatus };\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case \"RESET_SLOTS\": {\n return {\n ...state,\n lastAvailableDay: null,\n slots: {},\n doubleBooking: null,\n confirmAPIPromise: null,\n findNextAvailableDay: true,\n selectedDatePosition: 0,\n selectedSlot: null,\n blockTrackingId: null,\n firstDate: dateToString(new Date()),\n };\n }\n case \"CHANGE_FIRST_DATE\": {\n const date = stringToDate(state.firstDate);\n date.setDate(date.getDate() + action.changeInDays);\n return {\n ...state,\n selectedDatePosition: 0,\n firstDate: dateToString(date),\n };\n }\n case \"SLOTS\": {\n const next: State = {\n ...state,\n lastAvailableDay: action.data.lastAvailableDay,\n slots: { ...state.slots, ...action.data.slots },\n };\n for (let date = action.start; date !== action.end; ) {\n next.slots[date] = next.slots[date] || [];\n const nextDate = stringToDate(date);\n nextDate.setDate(nextDate.getDate() + 1);\n date = dateToString(nextDate);\n }\n return next;\n }\n case \"LOADING_SLOTS\": {\n const next: State = {\n ...state,\n slots: { ...state.slots },\n };\n for (let date = action.start; date !== action.end; ) {\n next.slots[date] = null;\n const nextDate = stringToDate(date);\n nextDate.setDate(nextDate.getDate() + 1);\n date = dateToString(nextDate);\n }\n return next;\n }\n case \"SELECTED_DATE_POSITION\":\n return { ...state, selectedDatePosition: action.position };\n case \"SELECT_SLOT\":\n return { ...state, selectedSlot: action.slot };\n case \"CONFIRM_CLICKED\":\n return { ...state, confirmClicked: true };\n case \"RESET_CONFIRM_CLICKED\":\n return { ...state, confirmClicked: false };\n case \"START_CONFIRMATION\":\n return { ...state, confirmAPIPromise: action.promise };\n case \"BLOCK_SLOT\":\n return { ...state, blockTrackingId: action.data };\n case \"DOUBLE_BOOKING\": {\n return {\n ...state,\n doubleBooking: {\n message: action.message,\n buttonText: action.buttonText,\n },\n selectedSlot: null,\n confirmAPIPromise: null,\n };\n }\n case \"BACK_DOUBLE_BOOKING\": {\n return {\n ...state,\n doubleBooking: null,\n confirmAPIPromise: null,\n selectedSlot: null,\n slots: {},\n };\n }\n case \"FIND_NEXT_AVAILABLE_DAY\":\n return { ...state, findNextAvailableDay: action.value };\n case \"SET_FIRST_DATE\":\n const position = (state.selectedDatePosition + action.position) % 3;\n const date = stringToDate(action.value);\n date.setDate(date.getDate() - position);\n return {\n ...state,\n firstDate: dateToString(date),\n selectedDatePosition: position as any,\n };\n case \"UPDATE_SCHEDULE_STATUS\":\n return { ...state, scheduleStatus: action.value };\n case \"SET_SMS\":\n return { ...state, smsChecked: action.value };\n default:\n throw new Error();\n }\n}\n\nfunction TimeZone(props: {\n timezoneId: string;\n liveChatMessageKey?: string;\n messageId?: string;\n}) {\n const actions = useContext(SocketServiceContext);\n const appContext = useContext(AppContext);\n const timezone = useMemo(\n () => TimezoneService.getTimezoneStringByTimezoneId(props.timezoneId),\n [props.timezoneId],\n );\n const [modal, openModal] = useState(false);\n useEffect(() => {\n if (!appContext.open) {\n openModal(false);\n }\n }, [appContext]);\n const closePopup = useCallback(\n (timezoneId: string) => {\n if (timezoneId != null) {\n actions.updateTimezone(\n timezoneId,\n props.liveChatMessageKey,\n props.messageId,\n );\n }\n openModal(false);\n },\n [actions],\n );\n /** remove this when time_zone_id issue is resolved */\n if (isNaN(parseInt(props.timezoneId))) {\n actions.updateTimezone(DEFAULT_TIMEZONE_ID);\n return null;\n }\n return (\n
    \n {modal && (\n \n )}\n

    openModal(true)}>{timezone}

    \n
    {timezone}
    \n
    \n );\n}\n\nfunction DelayedLoader() {\n const [text, setText] = useState(\"\");\n useEffect(() => {\n const timeout = setTimeout(() => {\n setText(\"Still retrieving... this may take a few more seconds\");\n }, 5000);\n return () => clearTimeout(timeout);\n }, []);\n return ;\n}\n\nfunction BackArrow(props: { disabled: boolean; onClick?: () => void }) {\n const isDisabled = props.disabled;\n return (\n \n \n \n \n \n );\n}\n\nfunction NextArrow(props: { disabled: boolean; onClick?: () => void }) {\n const disabled = props.disabled;\n return (\n \n \n \n \n \n );\n}\n\ninterface SlotDateProps {\n dates: string[];\n position: number;\n selected: number;\n disabled: boolean;\n onClick: (position: number) => void;\n}\n\nfunction SlotDate(props: SlotDateProps) {\n const disabled = props.disabled;\n const date = stringToDate(props.dates[props.position]);\n return (\n
  • \n {SHORT_DAY_NAMES[date.getDay()]}\n props.onClick(props.position)}\n >\n {date.getDate()}\n \n
  • \n );\n}\n\nfunction Slots(props: {\n items: Slot[];\n onSelect: (item: Slot) => void;\n dispatch: Dispatch;\n viewNextAvailableDay: boolean;\n}) {\n const [index, setIndex] = useState(0);\n const [pageSize, setPageSize] = useState(\n window.outerWidth <= 650 ? 4 : 6,\n );\n useEffect(() => {\n const listener = () => {\n setPageSize(window.outerWidth <= 650 ? 4 : 6);\n };\n window.addEventListener(\"resize\", listener);\n return () => {\n window.removeEventListener(\"resize\", listener);\n };\n }, []);\n const items = props.items;\n const disableNext = index + pageSize >= items.length;\n const disablePrev = index - pageSize < 0;\n return (\n <>\n
    \n {items.length === 0 ? (\n \n
    No times available on this day
    \n

    \n {!props.viewNextAvailableDay && (\n \n props.dispatch({\n type: \"FIND_NEXT_AVAILABLE_DAY\",\n value: true,\n })\n }\n >\n View next available day\n \n )}\n

    \n
    \n ) : (\n
      \n {items.slice(index, index + pageSize).map((item, index) => (\n props.onSelect(item)}\n key={index}\n >\n {item.timeStr}\n \n ))}\n
    \n )}\n \n
    \n setIndex(index - pageSize)}\n >\n Earlier times\n \n setIndex(index + pageSize)}\n >\n Later times\n \n
    \n \n );\n}\n\ninterface CalenderContentProps {\n slots: {\n [date: string]: undefined | null | Slot[];\n };\n firstDate: string;\n timeZoneId: string;\n selectedDatePosition: SelectedDatePosition;\n fetchSlots: (date: string) => void;\n dispatch: Dispatch;\n lastAvailableDay: null | Date;\n findNextAvailableDay: boolean;\n block: (slot: Slot) => void;\n liveChatMessageKey?: string;\n messageId?: string;\n toggles: Array;\n}\n\nfunction areSlotsAvailable(slots: null | undefined | Slot[]): boolean {\n if (slots === null || slots === undefined) return true;\n return slots.length !== 0;\n}\n\nfunction CalenderContent({\n dispatch,\n slots,\n lastAvailableDay,\n findNextAvailableDay,\n firstDate,\n timeZoneId,\n fetchSlots,\n selectedDatePosition,\n block,\n liveChatMessageKey,\n messageId,\n toggles,\n}: CalenderContentProps) {\n const displayedDates = useMemo(() => {\n const displayedDates: string[] = [firstDate, nextDay(firstDate)];\n displayedDates[2] = nextDay(displayedDates[1]);\n return displayedDates;\n }, [firstDate]);\n const selectedDate = displayedDates[selectedDatePosition];\n const date = stringToDate(selectedDate);\n const selectedDaySlots = slots[selectedDate];\n const selectSlot = (slot: Slot) => {\n block(slot);\n dispatch({ type: \"SELECT_SLOT\", slot });\n };\n const nextDatesVisibility =\n lastAvailableDay &&\n lastAvailableDay.getTime() >\n stringToDate(displayedDates[displayedDates.length - 1]).getTime();\n const changeSelectedDatePosition = (position: SelectedDatePosition) =>\n dispatch({ type: \"SELECTED_DATE_POSITION\", position });\n let prevDates: undefined | { (): void } = undefined;\n let nextDates: undefined | { (): void } = undefined;\n if (stringToDate(firstDate).getTime() > Date.now()) {\n prevDates = () => dispatch({ type: \"CHANGE_FIRST_DATE\", changeInDays: -3 });\n }\n if (nextDatesVisibility) {\n nextDates = () => dispatch({ type: \"CHANGE_FIRST_DATE\", changeInDays: 3 });\n }\n const emptyDate = displayedDates.find((date) => !slots[date]);\n const fetchDate =\n emptyDate && slots[emptyDate] === undefined ? emptyDate : null;\n if (selectedDaySlots && findNextAvailableDay) {\n dispatch({ type: \"FIND_NEXT_AVAILABLE_DAY\", value: false });\n }\n useEffect(() => {\n if (\n toggles.includes(\"PRELOAD_TIME_SLOTS_TOGGLE\") &&\n !liveChatMessageKey &&\n nextDatesVisibility\n ) {\n const slotsDate = Object.keys(slots).sort(function (a, b): number {\n const dateA = stringToDate(a);\n const dateB = stringToDate(b);\n if (dateA < dateB) {\n return -1;\n }\n if (dateA > dateB) {\n return 1;\n }\n return 0;\n });\n if (slotsDate.length > 3) {\n if (displayedDates.includes(slotsDate[slotsDate.length - 3])) {\n const newFetchDate = slotsDate[slotsDate.length - 1];\n const start = stringToDate(newFetchDate);\n start.setDate(start.getDate() + 1);\n const newFetchDateString = dateToString(start);\n if (slots[newFetchDateString] === undefined) {\n fetchSlots(dateToString(start));\n }\n }\n }\n }\n }, [displayedDates, fetchSlots, slots, nextDatesVisibility]);\n\n let lastDateForSlot = 0;\n for (let i = displayedDates.length - 1; i >= 0; i--) {\n if (areSlotsAvailable(slots[displayedDates[i]])) {\n lastDateForSlot = i;\n break;\n }\n }\n useEffect(() => {\n if (fetchDate) {\n fetchSlots(fetchDate);\n }\n }, [fetchDate, fetchSlots]);\n useEffect(() => {\n if (!findNextAvailableDay) return;\n let date = selectedDate;\n let position = 0;\n while (true) {\n const slotOnDate = slots[date];\n if (slotOnDate === undefined) {\n return dispatch({ type: \"SET_FIRST_DATE\", value: date, position });\n } else if (slotOnDate === null) {\n return;\n } else if (slotOnDate.length === 0) {\n date = nextDay(date);\n } else {\n return dispatch({ type: \"SET_FIRST_DATE\", value: date, position });\n }\n position++;\n }\n }, [dispatch, findNextAvailableDay, selectedDate, slots]);\n return (\n
    \n \n
    \n {!!emptyDate && }\n {!emptyDate && selectedDaySlots && (\n <>\n

    \n {MONTH_NAMES[date.getMonth()]} {date.getFullYear()}\n

    \n
    \n \n
      \n \n \n \n
    \n \n
    \n = lastDateForSlot\n }\n />\n \n )}\n
    \n
    \n );\n}\n\ninterface ConfirmSlotContentProps {\n slot: Slot;\n back: () => void;\n confirming: boolean;\n timezoneId: string;\n interaction: ScheduleInteraction;\n confirm: (slot: Slot, nameState?, emailState?) => void;\n isChecked: boolean;\n smsConsent: () => void;\n blockTrackingId: any;\n isConfirmedClicked?: boolean;\n toggles: Array;\n}\n\nfunction onEmailClick(event: React.ChangeEvent) {\n return !EMAILREGEXPATTERN.test(event.currentTarget.value)\n ? VADLIDATION_MESSAGES.email\n : null;\n}\n\nlet focusCount = 0;\nfunction ConfirmSlotContent(props: ConfirmSlotContentProps) {\n const { slot, timezoneId } = props;\n window.dispatchEvent(new Event(\"scrollToBottom\"));\n const timezone = TimezoneService.getTimezoneStringByTimezoneId(timezoneId);\n const dateObjSummary = slot.dateObjSummary.split(\",\");\n const time = dateObjSummary.pop();\n const lowerTime = time?.split(\"-\")[0];\n const date = dateObjSummary.join(\",\");\n const dateMonth = date.split(\",\")[0] + \",\" + date.split(\",\")[1];\n const { colour: color } = useContext(AppContext).settings;\n const confirmationFullText = props.interaction.schedule_confirmation_title;\n let confirmationText = props.interaction.schedule_confirmation_title;\n const smsNotificationToggle = props.interaction.schedule_sms_notification;\n let smsOptInText = props.interaction.schedule_sms_opt_in_text;\n const confirmationTextLength = (confirmationText || \"\").toString().length;\n const smsOptInTextLength = (smsOptInText || \"\").toString().length;\n const blockTrackingId = props.blockTrackingId;\n const contactInfo = props.interaction.contact_info || {};\n const [emailState, setEmailState] = useState({\n text: \"\",\n isEmpty: contactInfo && contactInfo.email ? false : true,\n isInValid: false,\n });\n const [nameState, setNameState] = useState({\n text: \"\",\n isEmpty:\n contactInfo && contactInfo.first_name && contactInfo.last_name\n ? false\n : true,\n });\n const emailChange = (event: React.ChangeEvent) => {\n focusCount = 1;\n if (!event.currentTarget.value) {\n setEmailState({\n isEmpty: true,\n isInValid: false,\n text: \"\",\n });\n } else {\n if (onEmailClick(event)) {\n setEmailState({\n isEmpty: false,\n isInValid: true,\n text: event.currentTarget.value,\n });\n } else {\n setEmailState({\n isEmpty: false,\n isInValid: false,\n text: event.currentTarget.value,\n });\n }\n }\n };\n const nameChange = (event: React.ChangeEvent) => {\n focusCount = 1;\n !event.currentTarget.value\n ? setNameState({ text: \"\", isEmpty: true })\n : setNameState({ text: event.currentTarget.value, isEmpty: false });\n };\n const chatOnceFallbackQuestionToggle = props.toggles.includes(\n \"CHATONCE_FALLBACK_QUESTIONS_TOGGLE\",\n );\n let selectTimeSlotView;\n if (!chatOnceFallbackQuestionToggle) {\n selectTimeSlotView = (\n = 32 ? \"multi-line-title\" : \"\"\n }`}\n >\n
    \n
    \n
    \n {confirmationText}\n \n
    \n

    {date}

    \n

    {time}

    \n \n {timezone}\n {/*
    {timezone}
    */}\n
    \n {smsNotificationToggle ? (\n
    \n \n
    \n ) : (\n ``\n )}\n \n ) : (\n props.interaction.schedule_confirmation_button\n )\n }\n isDisabled={props.confirming}\n classNames={`confirm-meeting-button ${\n props.confirming ? \"loading-button\" : \"\"\n }`}\n clickHandler={() => props.confirm(props.slot)}\n />\n
    \n \n \n );\n } else {\n selectTimeSlotView = (\n = 32 ? \"multi-line-title\" : \"\"\n }`}\n >\n
    \n
    \n

    \n \n {dateMonth}, {lowerTime}\n \n

    \n \n {timezone}\n {/*
    {timezone}
    */}\n
    \n
    \n {((contactInfo && !contactInfo.first_name) ||\n (contactInfo && !contactInfo.last_name)) && (\n \n \n \n {props.isConfirmedClicked && nameState.isEmpty && (\n
    Required.
    \n )}\n
    \n )}\n {contactInfo && !contactInfo.email && (\n \n \n \n {props.isConfirmedClicked && emailState.isInValid && (\n
    \n {VADLIDATION_MESSAGES.email}\n
    \n )}\n {props.isConfirmedClicked && emailState.isEmpty && (\n
    Required.
    \n )}\n
    \n )}\n \n {smsNotificationToggle ? (\n
    \n \n
    \n ) : (\n ``\n )}\n \n props.confirm(props.slot, nameState, emailState)\n }\n />\n \n \n \n );\n }\n if (focusCount <= 0) {\n if (\n (contactInfo && !contactInfo.first_name) ||\n (contactInfo && !contactInfo.last_name)\n ) {\n document.getElementById(\"name\")?.focus();\n } else if (contactInfo && !contactInfo.email) {\n document.getElementById(\"emailAddress\")?.focus();\n }\n }\n\n if (confirmationTextLength > 70 || smsOptInTextLength > 56) {\n confirmationText = (confirmationText || \"\").slice(0, 70);\n smsOptInText = (smsOptInText || \"\").slice(0, 56);\n }\n\n return (\n
    \n
    \n \n \n \n \n Back\n \n
    \n
    \n {!blockTrackingId ? : selectTimeSlotView}\n
    \n );\n}\n\nfunction ConfirmationContent(props: { confirmEventData: ConfirmEventData }) {\n const { email, timeZoneId, dateObjSummary, isCalendarEventCreated } =\n props.confirmEventData;\n const timezone = TimezoneService.getTimezoneStringByTimezoneId(timeZoneId);\n const dateObjSummarySplit = dateObjSummary.split(\",\");\n const time = dateObjSummarySplit.pop();\n const date = dateObjSummarySplit.join(\",\");\n const fullMonth =\n MONTH_NAMES[SHORT_MONTH_NAMES.indexOf(dateObjSummary.substring(5, 8))];\n const dayOfMonth = parseInt(dateObjSummary.substring(9, 11));\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    {fullMonth}

    \n

    {dayOfMonth}

    \n \n
    \n
    \n
    Your meeting is confirmed!
    \n

    {date}

    \n

    {time}

    \n
    \n {timezone}\n
    {timezone}
    \n
    \n
    \n {isCalendarEventCreated\n ? \"An event has been added to your calendar\"\n : \"An email has been sent to\"}\n {\":\"}\n
    \n {email}\n
    {email}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ErrorWhileFetchingContent() {\n return (\n
    \n
    \n
    \n
    \n
    \n \"\"\n
    \n
    No times are currently available
    \n

    We will contact you to arrange a time to meet.

    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ConversationEndedContent() {\n return (\n
    \n
    \n
    \n
    \n
    \n \"\"\n
    \n
    Due to inactivity, this conversation has ended
    \n

    \n Please refresh the page to renew the chat and schedule your\n meeting.\n

    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ErrorWhileConfirmingContent({ message }: { message?: string }) {\n return (\n
    \n
    \n
    \n
    \n
    \n \"\"\n
    \n
    {message}
    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ErrorDoubleBookingContent(props: {\n message: string;\n dispatch: Dispatch;\n buttonText?: string;\n}) {\n return (\n
    \n
    \n props.dispatch({ type: \"BACK_DOUBLE_BOOKING\" })}\n >\n \n \n \n Back\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    {props.message}
    \n \n props.dispatch({ type: \"BACK_DOUBLE_BOOKING\" })\n }\n classNames=\"confirm-meeting-button select-new-time\"\n />\n
    \n
    \n
    \n
    \n );\n}\n\n/**\n * Function that returns the name initials\n * @param name contact name\n */\nfunction getSplittedName(name) {\n let fullName = {\n first_name: \"\",\n last_name: \"\",\n };\n if (name) {\n const splitName = name.split(\" \");\n fullName.first_name = splitName[0];\n fullName.last_name = splitName[1];\n }\n return fullName;\n}\n\nfunction ScheduleAction({ interaction, last, messageId }: Props) {\n const appContext = useContext(AppContext);\n const actions = useContext(SocketServiceContext);\n const preFetchdTimeslots =\n appContext.preFetchedSlots &&\n appContext.preFetchedSlots[interaction.external_id];\n const toggles = appContext.toggles;\n const lastAvailableDay = preFetchdTimeslots?.data.lastAvailableDay || null;\n const slots = preFetchdTimeslots?.data.slots || {};\n for (\n let date = preFetchdTimeslots?.start;\n date !== preFetchdTimeslots?.end;\n\n ) {\n slots[date] = slots[date] || [];\n const nextDate = stringToDate(date);\n nextDate.setDate(nextDate.getDate() + 1);\n date = dateToString(nextDate);\n }\n\n const [state, dispatch] = useReducer(reducer, {\n slots: slots,\n lastAvailableDay: lastAvailableDay,\n firstDate: dateToString(new Date()),\n selectedDatePosition: 0,\n selectedSlot: null,\n confirmAPIPromise: null,\n blockTrackingId: null,\n doubleBooking: null,\n smsChecked: false,\n findNextAvailableDay: true,\n scheduleStatus: null,\n });\n const refs = useRef<{\n initial_load: boolean;\n time_zone_id: string;\n calendarVisible: boolean;\n initial_time_zone_change: boolean;\n }>({\n initial_load: !preFetchdTimeslots,\n time_zone_id: interaction.time_zone_id,\n calendarVisible: false,\n initial_time_zone_change: true,\n });\n refs.current.time_zone_id = interaction.time_zone_id;\n const name = (nameState, type) => {\n if (interaction.contact_info && interaction.contact_info[`${type}`]) {\n return getSplittedName(nameState.text)[`${type}`]\n ? getSplittedName(nameState.text)[`${type}`]\n : interaction.contact_info[`${type}`];\n }\n return getSplittedName(nameState.text)[`${type}`];\n };\n const email = (emailState) => {\n if (emailState.text) {\n return emailState.text;\n }\n return interaction.contact_info.email;\n };\n const confirm = (slot: Slot, nameState?, emailState?) => {\n dispatch({\n type: \"CONFIRM_CLICKED\",\n });\n let contactInfoCopy;\n if (nameState && emailState) {\n const contactInfo = interaction.contact_info || {};\n contactInfoCopy = JSON.parse(JSON.stringify(contactInfo));\n if (\n interaction.contact_info &&\n Object.keys(interaction.contact_info).length === 0\n ) {\n contactInfoCopy.first_name = getSplittedName(nameState.text).first_name;\n contactInfoCopy.last_name = getSplittedName(nameState.text).last_name;\n contactInfoCopy.email = emailState.text;\n } else {\n contactInfoCopy.first_name = name(nameState, \"first_name\");\n contactInfoCopy.last_name = name(nameState, \"last_name\");\n contactInfoCopy.email = email(emailState);\n }\n } else {\n contactInfoCopy = interaction.contact_info;\n }\n\n let confirmOptions: ConfirmOptions = {\n trackingid: state.blockTrackingId,\n duration: slot.duration,\n startTime: slot.startTime,\n websiteId: appContext.settings.id,\n dateObjSummary: slot.dateObjSummary,\n timeZoneId: interaction.time_zone_id,\n timeZoneString: TimezoneService.getTimezoneStringByTimezoneId(\n interaction.time_zone_id,\n ),\n resourcesLinkId: slot.resourceLinkId,\n enableSmsNotification: state.smsChecked,\n contactInfo: contactInfoCopy,\n };\n\n if (appContext.liveChatchannel) {\n confirmOptions.blocked_meeting_data = interaction.blocked_meeting;\n confirmOptions.scheduleEventTypeExternalId =\n interaction.schedule_event_type_external_id;\n confirmOptions.isPanelMeeting = true;\n confirmOptions.isInstantSchedule = true;\n } else {\n confirmOptions.interactionId = interaction.external_id;\n }\n // condition condition where confirm UI when sending schedule directly\n if (nameState && emailState) {\n if (!nameState.isEmpty && !emailState.isEmpty && !emailState.isInValid) {\n actions.triggerContactUpdate({\n first_name: contactInfoCopy.first_name,\n last_name: contactInfoCopy.last_name,\n email: contactInfoCopy.email,\n });\n dispatch({\n type: \"START_CONFIRMATION\",\n promise: confirmSlot(confirmOptions),\n });\n }\n } else {\n // condition where confirm UI for when fallback questions are asked before sending schedule\n dispatch({\n type: \"START_CONFIRMATION\",\n promise: confirmSlot(confirmOptions),\n });\n }\n };\n\n const block = (slot: Slot) => {\n let blockOptions: BlockOptions = {\n duration: slot.duration,\n meetingLowerBoundary: slot.startTime,\n meetingUpperBoundary: slot.startTime + slot.duration,\n resourcesLinkId: slot.resourceLinkId,\n dateObjSummary: slot.dateObjSummary,\n contactInfo: interaction.contact_info,\n };\n\n if (appContext.liveChatchannel) {\n blockOptions.scheduleEventTypeExternalId =\n interaction.schedule_event_type_external_id;\n blockOptions.panelId = interaction.panel_id;\n blockOptions.isInstantSchedule = true;\n if (interaction.blocked_meeting) {\n blockOptions.blocked_meeting_data = interaction.blocked_meeting;\n }\n } else {\n blockOptions.interactionId = interaction.external_id;\n }\n\n blockSlot(blockOptions)\n .then((data) => {\n if (\"schedule_status\" in data) {\n if (data.schedule_status === \"error_double_booking\") {\n dispatch({\n type: \"DOUBLE_BOOKING\",\n message: data.schedule_fallback_message,\n buttonText: data.schedule_timeslot_fallback_button_text,\n });\n } else if (data.schedule_status === \"error_while_blocking_time\") {\n actions.scheduleResponse(\n { ...data, message_id: messageId },\n interaction.live_chat_message_key,\n );\n interaction.schedule_fallback_message =\n data.schedule_fallback_message;\n dispatch({\n type: \"UPDATE_SCHEDULE_STATUS\",\n value: \"error_while_blocking_time\",\n });\n }\n } else if (!(\"schedule_status\" in data)) {\n dispatch({\n type: \"BLOCK_SLOT\",\n data: data.confirmation_data.panelTrackingId,\n });\n interaction.blocked_meeting = data.blocked_meeting_data;\n interaction.live_chat_message_key &&\n actions.updateFirebaseScheduleInteraction(\n interaction.live_chat_message_key,\n {\n blocked_meeting: data.blocked_meeting_data,\n schedule_status: \"blocked_meeting_time\",\n },\n );\n dispatch({\n type: \"UPDATE_SCHEDULE_STATUS\",\n value: \"blocked_meeting_time\",\n });\n }\n })\n .catch(() => {\n actions.scheduleResponse(\n {\n schedule_status: \"error_while_blocking_time\",\n schedule_fallback_message: \"Something went wrong\",\n message_id: messageId,\n },\n interaction.live_chat_message_key,\n );\n dispatch({\n type: \"UPDATE_SCHEDULE_STATUS\",\n value: \"error_while_blocking_time\",\n });\n });\n };\n\n const fetch = useCallback(\n (date: string) => {\n const start = stringToDate(date);\n start.setDate(start.getDate() - 1);\n const end = new Date(start.getTime());\n end.setDate(end.getDate() + 7);\n dispatch({\n type: \"LOADING_SLOTS\",\n start: date,\n end: dateToString(end),\n });\n let fetchSlotPayload: FetchSlotsOptions = {\n websiteId: appContext.settings.id,\n timeZoneId: interaction.time_zone_id,\n startDate: start.getTime(),\n endDate: end.getTime(),\n initial_load: refs.current.initial_load,\n };\n\n if (appContext.liveChatchannel) {\n fetchSlotPayload.panelId = interaction.panel_id;\n fetchSlotPayload.scheduleEventTypeExternalId =\n interaction.schedule_event_type_external_id;\n fetchSlotPayload.isInstantSchedule = true;\n } else {\n fetchSlotPayload.interactionId = interaction.external_id;\n }\n fetchSlots(fetchSlotPayload)\n .then((data) => {\n if (\"schedule_status\" in data) {\n if (\n refs.current.calendarVisible &&\n interaction.time_zone_id === refs.current.time_zone_id\n ) {\n actions.scheduleResponse(\n {\n ...data,\n message_id: messageId,\n },\n interaction.live_chat_message_key,\n );\n }\n dispatch({\n type: \"UPDATE_SCHEDULE_STATUS\",\n value: data.schedule_status,\n });\n } else {\n dispatch({\n type: \"SLOTS\",\n data,\n start: dateToString(start),\n end: dateToString(end),\n });\n interaction.live_chat_message_key &&\n actions.updateFirebaseScheduleInteraction(\n interaction.live_chat_message_key,\n { schedule_status: \"slots_fetched\" },\n );\n dispatch({\n type: \"UPDATE_SCHEDULE_STATUS\",\n value: \"slots_fetched\",\n });\n }\n })\n .catch(() => {\n actions.scheduleResponse(\n {\n message_id: messageId,\n schedule_status: \"error_while_fetching_slots\",\n schedule_fallback_message: \"Something went wrong\",\n },\n interaction.live_chat_message_key,\n );\n dispatch({\n type: \"UPDATE_SCHEDULE_STATUS\",\n value: \"error_while_fetching_slots\",\n });\n });\n refs.current.initial_load = false;\n },\n [\n actions,\n appContext.settings.id,\n interaction.external_id,\n interaction.time_zone_id,\n ],\n );\n useEffect(() => {\n if (!refs.current.initial_time_zone_change) {\n dispatch({ type: \"RESET_SLOTS\" });\n } else {\n refs.current.initial_time_zone_change = false;\n }\n }, [interaction.time_zone_id]);\n useEffect(() => {\n if (state.confirmAPIPromise == null) return;\n let cancelled = false;\n state.confirmAPIPromise\n .then((data) => {\n if (cancelled) return;\n if (\n \"schedule_status\" in data &&\n data.schedule_status === \"error_double_booking\"\n ) {\n dispatch({\n type: \"DOUBLE_BOOKING\",\n message: data.schedule_fallback_message,\n buttonText: data.schedule_timeslot_fallback_button_text,\n });\n } else {\n actions.scheduleResponse(\n { ...data, message_id: messageId },\n interaction.live_chat_message_key,\n );\n let updateData = {};\n if (\"schedule_status\" in data) {\n updateData = { schedule_status: \"error_while_confirming\" };\n interaction.schedule_fallback_message =\n data.schedule_fallback_message;\n } else {\n updateData = {\n schedule_status: \"confirmed\",\n blocked_meeting: null,\n schedule_confirm_data: {\n ...data.schedule_confirm_data,\n relatedFilterTag: data[\"relatedFilterTag\"],\n },\n };\n interaction.schedule_confirm_data = data;\n }\n interaction.live_chat_message_key &&\n actions.updateFirebaseScheduleInteraction(\n interaction.live_chat_message_key,\n updateData,\n );\n\n dispatch({\n type: \"UPDATE_SCHEDULE_STATUS\",\n value: updateData[\"schedule_status\"],\n });\n }\n })\n .catch(() => {\n if (cancelled) return;\n actions.scheduleResponse(\n {\n message_id: messageId,\n schedule_status: \"error_while_confirming\",\n schedule_fallback_message: \"Something went wrong\",\n },\n interaction.live_chat_message_key,\n );\n dispatch({\n type: \"UPDATE_SCHEDULE_STATUS\",\n value: \"error_while_confirming\",\n });\n });\n return () => {\n cancelled = true;\n };\n }, [actions, state.confirmAPIPromise]);\n let shouldRenderheading: boolean = true;\n let content: React.ReactNode = null;\n if (\n interaction.schedule_status === \"error_while_fetching_slots\" ||\n state.scheduleStatus === \"error_while_fetching_slots\"\n ) {\n content = ;\n } else if (\n interaction.schedule_status === \"error_while_confirming\" ||\n interaction.schedule_status === \"error_while_blocking_time\" ||\n state.scheduleStatus === \"error_while_confirming\" ||\n state.scheduleStatus === \"error_while_blocking_time\"\n ) {\n content = (\n \n );\n } else if (interaction.schedule_confirm_data) {\n shouldRenderheading = false;\n content = (\n \n );\n } else if (appContext.state !== ConversationState.Active) {\n content = ;\n } else if (state.doubleBooking) {\n content = (\n \n );\n } else if (state.selectedSlot) {\n content = (\n {\n dispatch({ type: \"RESET_CONFIRM_CLICKED\" });\n dispatch({ type: \"SELECT_SLOT\", slot: null });\n dispatch({\n type: \"BLOCK_SLOT\",\n data: \"\",\n });\n }}\n smsConsent={() => {\n state.smsChecked\n ? dispatch({ type: \"SET_SMS\", value: false })\n : dispatch({ type: \"SET_SMS\", value: true });\n }}\n isChecked={state.smsChecked}\n blockTrackingId={state.blockTrackingId}\n toggles={toggles}\n isConfirmedClicked={state.confirmClicked}\n />\n );\n } else if (last || appContext.liveChatchannel) {\n refs.current.calendarVisible = true;\n content = (\n \n );\n }\n return (\n
    \n
    \n {shouldRenderheading && (\n

    \n \n {interaction.interaction_text}\n \n \n | {interaction.schedule_action_event_type_meeting_length} minutes\n \n

    \n )}\n {content}\n
    \n
    \n );\n}\n\nexport default React.memo(ScheduleAction);\n","import React, { useContext, useEffect } from \"react\";\nimport { LIVE_CHAT_CHANNEL } from \"src/constants\";\nimport {\n AppContext,\n SocketServiceContext,\n ConversationContext,\n} from \"src/AppContext\";\nimport { Context } from \"../../../../../utils/context.service\";\nimport { liveChatColours } from \"src/constants\";\n\nimport { HandOff, Interaction, Message } from \"src/interaction.interface\";\n// Enable this for development only\n// import {\n// IConversation,\n// OhLiveChat,\n// IMessage,\n// } from \"src/live-chat-util\";\nimport { IConversation, OhLiveChat, IMessage } from \"@oncehub/live-chat-util\";\nconst sound = require(\"../../../../../assets/sound/pingSound.wav\");\n\nlet liveChatObj: OhLiveChat;\nlet timeoutInterval: NodeJS.Timeout;\nlet is_mount = true;\ninterface ILiveChatActionProps {\n last: boolean;\n interaction: HandOff;\n}\n\nfunction LiveChatActionComponent({ interaction, last }: ILiveChatActionProps) {\n const appContext = useContext(AppContext);\n const socket = useContext(SocketServiceContext);\n let liveChatUsers = appContext.liveChatUsers || {};\n const { messages } = useContext(ConversationContext);\n\n useEffect(() => {\n return () => {\n if (liveChatObj) {\n try {\n liveChatObj.unSubscribeMessages(\n appContext.accountId,\n appContext.conversationId,\n );\n liveChatObj.unSubscribeToTypingStatus(\n appContext.accountId,\n appContext.conversationId,\n );\n } catch (error) {\n // Firebase database obj might already be destroyed\n }\n }\n is_mount = false;\n if (timeoutInterval) {\n clearTimeout(timeoutInterval);\n }\n };\n }, []);\n\n const initLiveChat = async (authToken: string) => {\n try {\n let accountId = appContext.accountId;\n let conversationId = appContext.conversationId;\n is_mount = true;\n\n if (!interaction.online_users || interaction.online_users.length === 0) {\n socket.liveChatTimeout();\n return;\n }\n\n liveChatObj = await getInitializedLiveChatObj(authToken);\n\n const liveChatConversation = (await liveChatObj.getConversationDetail(\n accountId,\n conversationId,\n )) as IConversation;\n\n // if two back to back live chat are placed we delete unassigned permission to prevent child added and modified callback from calling again\n if (liveChatConversation && interaction.from_socket) {\n liveChatObj.deleteUnassignedPermission(accountId, conversationId);\n }\n\n if (!liveChatConversation || interaction.from_socket) {\n const conversation: IConversation = {\n id: conversationId,\n contactId: interaction.contact.id,\n timeout: interaction.timeout_period,\n status: \"initiated\",\n acceptedBy: \"\",\n color:\n liveChatColours[Math.floor(Math.random() * liveChatColours.length)],\n lastMessage: {\n type: \"text_message\",\n text: messages.length\n ? messages[messages.length - 1].data[\"interaction_text\"]\n : \"\",\n userType:\n messages[messages.length - 1].sent_by == \"bot\"\n ? \"Bot_Agent\"\n : \"Bot_Visitor\",\n contactId: \"CTC-1234\",\n },\n bot: {\n slug: appContext.bot.id || \"\",\n pageUrl: Context.getInstance().pageUrl,\n name: appContext.bot.name || \"\",\n pageTitle: Context.getInstance().pageTitle,\n },\n totalMessageCount: 0,\n messageReadState: null,\n isTyping: { [interaction.contact.id]: false },\n messageCount: 0,\n };\n // Get all the available agents and send available users to be added to unassigned permissions\n liveChatObj.createConversation(\n accountId,\n conversation,\n interaction.online_users,\n );\n if (is_mount) {\n timeoutInterval = setTimeout(async () => {\n if (is_mount) {\n const conversation = (await liveChatObj.getConversationDetail(\n accountId,\n conversationId,\n )) as IConversation;\n\n if (!conversation || !conversation.acceptedBy) {\n setTimeout(() => {\n if (is_mount) {\n socket.liveChatTimeout();\n }\n }, 5000);\n }\n }\n }, interaction.timeout_period * 1000);\n }\n liveChatObj.createContact(accountId, interaction.contact);\n sendMessageHistory();\n\n // update conversation to current time to reduce time delay in inbox\n await liveChatObj.updateConversation(accountId, conversationId, {\n creationTime: new Date().toISOString(),\n });\n\n // Get all the available agents and notify `request` only to available users\n interaction.online_users.forEach((userId) => {\n liveChatObj.notifyOnlineUsers(userId, accountId, conversationId);\n });\n }\n\n if (liveChatConversation && !interaction.from_socket) {\n setLiveChatHistory(\n accountId,\n conversationId,\n liveChatConversation.messageReadState\n ? liveChatConversation.messageReadState[interaction.contact.id]\n : 0,\n );\n try {\n liveChatObj.updateIsTyping(\n liveChatConversation.contactId,\n accountId,\n conversationId,\n false,\n );\n } catch (err) {\n // Firebase database obj might already be destroyed\n }\n if (!liveChatConversation.acceptedBy && is_mount) {\n timeoutInterval = setTimeout(async () => {\n if (is_mount) {\n const conversation = (await liveChatObj.getConversationDetail(\n accountId,\n conversationId,\n )) as IConversation;\n\n if (!conversation || !conversation.acceptedBy) {\n setTimeout(() => {\n if (is_mount) {\n socket.liveChatTimeout();\n }\n }, 5000);\n }\n }\n }, new Date(liveChatConversation.creationTime || \"\").getTime() + interaction.timeout_period * 1000 - new Date().getTime());\n } else {\n socket.liveChatAccepted();\n socket.setLiveChatOwner(liveChatConversation.acceptedBy);\n liveChatObj.subscribeToTypingStatus(\n accountId,\n conversationId,\n onTypingStatusChanged(liveChatConversation.acceptedBy),\n );\n }\n }\n\n liveChatObj.subscribeMessages(\n accountId,\n conversationId,\n liveChatResponseForWidget,\n );\n } catch (e) {\n // Continuing conversation if there is any error in live chat\n socket.nextInteraction();\n }\n return liveChatObj;\n };\n\n async function getInitializedLiveChatObj(authToken) {\n const liveChatObject = new OhLiveChat(\n {\n apiKey: process.env.REACT_APP_FIREBASE_API_KEY || \"\",\n authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN || \"\",\n databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL || \"\",\n projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID || \"\",\n storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET || \"\",\n messagingSenderId:\n process.env.REACT_APP_FIREBASE_MESSAGEING_SENDER_ID || \"\",\n appId: process.env.REACT_APP_FIREBASE_APP_ID || \"\",\n },\n authToken || \"\",\n );\n\n await liveChatObject.init();\n return liveChatObject;\n }\n\n async function setLiveChatHistory(accountId, conversationId, readUpTo) {\n const messageHistory: Message[] = [];\n const allLiveChatMessages = (await liveChatObj.getAllMessages(\n accountId,\n conversationId,\n )) as any;\n const keys = Object.keys(allLiveChatMessages);\n for (let i = 0; i < keys.length; i++) {\n const message = allLiveChatMessages[keys[i]];\n if (message.userType === \"Admin\") {\n if (liveChatUsers[message.userId]) {\n message.user = liveChatUsers[message.userId];\n } else {\n const userDetail = await liveChatObj.getUserDetail(\n appContext.accountId,\n message.userId,\n );\n liveChatUsers[message.userId] = userDetail;\n message.user = userDetail || {};\n }\n messageHistory.push({\n sent_by: \"bot\",\n user_name: \"Admin\",\n id: randomId(),\n is_read:\n i < readUpTo || message.type === \"request_accepted\" ? true : false,\n data: convertLiveChatMessageToInteraction(message, keys[i]),\n interaction_time: new Date().toISOString(),\n });\n } else if (message.userType === \"Visitor\") {\n messageHistory.push({\n sent_by: \"contact\",\n user_name: \"Visitor\",\n id: randomId(),\n is_read: true,\n data: {\n text: message.text,\n },\n interaction_time: new Date().toISOString(),\n });\n }\n }\n socket.liveChatHistory(\n messageHistory,\n liveChatUsers,\n messageHistory.length ? LIVE_CHAT_CHANNEL : \"\",\n );\n }\n\n function convertLiveChatMessageToInteraction(\n message,\n key,\n ): Interaction | { text: string } {\n switch (message.type) {\n case \"schedule\": {\n return {\n ...message,\n interaction_type: \"action\",\n action_type: \"schedule\",\n live_chat_message_key: key,\n };\n }\n default: {\n return {\n interaction_text: message.text,\n interaction_type: \"question\",\n question_type: \"text\",\n user: message.user,\n is_live_chat_notification: message.type === \"request_accepted\",\n external_id: \"\",\n contact_field_id: \"\",\n contact_field_type: 0,\n };\n }\n }\n }\n\n function randomId(): string {\n return (\n ((Math.random() * 1073741824) >>> 0).toString(36) +\n ((Math.random() * 1073741824) >>> 0).toString(36)\n );\n }\n\n const sendMessageHistory = () => {\n let accountId = appContext.accountId;\n let conversationId = appContext.conversationId;\n // save previous message before Live Chat\n let oldMessageArray = [] as any;\n let messageObject: IMessage;\n messages.forEach((message: any) => {\n let sentByMessage: any =\n message.sent_by === \"contact\" ? \"Bot_Visitor\" : \"Bot_Agent\";\n if (\n message.data.image_url &&\n message.data.message_type === \"image_message\"\n ) {\n messageObject = {\n type: message.data.message_type,\n userType: sentByMessage,\n contactId: \"test\",\n image_url: message.data.image_url,\n creationTime: message.interaction_time,\n };\n oldMessageArray.push(messageObject);\n } else if (\n message.data.image_url &&\n message.data.message_type === \"url\"\n ) {\n messageObject = {\n type: message.data.message_type,\n userType: sentByMessage,\n contactId: \"test\",\n url: message.data.url,\n image_url: message.data.image_url,\n title: message.data.title,\n creationTime: message.interaction_time,\n };\n oldMessageArray.push(messageObject);\n } else if (\n message.data.document_url &&\n message.data.message_type === \"document_message\"\n ) {\n messageObject = {\n type: message.data.message_type,\n userType: sentByMessage,\n contactId: \"test\",\n document_url: message.data.document_url,\n title: message.data.title,\n creationTime: message.interaction_time,\n };\n oldMessageArray.push(messageObject);\n } else if (\n message.data.video_mp4 &&\n message.data.message_type === \"video_message\"\n ) {\n messageObject = {\n type: message.data.message_type,\n userType: sentByMessage,\n contactId: \"test\",\n video_mp4: message.data.video_mp4,\n video_ogv: message.data.video_ogv,\n creationTime: message.interaction_time,\n };\n oldMessageArray.push(messageObject);\n } else if (message.data.action_type === \"schedule\") {\n messageObject = {\n type: message.data.action_type,\n userType: sentByMessage,\n contactId: \"test\",\n contact_info: message.data.contact_info,\n interaction_text: message.data.interaction_text,\n time_zone_id: message.data.time_zone_id,\n schedule_fallback_message: message.data.schedule_fallback_message,\n schedule_action_event_type_meeting_length:\n message.data.schedule_action_event_type_meeting_length,\n schedule_status: message.data.schedule_status,\n schedule_confirmation_title: message.data.schedule_confirmation_title,\n schedule_confirmation_button:\n message.data.schedule_confirmation_button,\n schedule_sms_notification: message.data.schedule_sms_notification,\n schedule_sms_opt_in_text: message.data.schedule_sms_opt_in_text,\n creationTime: message.interaction_time,\n };\n if (message.data.schedule_confirm_data) {\n messageObject.schedule_confirm_data =\n message.data.schedule_confirm_data;\n }\n oldMessageArray.push(messageObject);\n } else {\n messageObject = {\n type: \"text_message\",\n userType: sentByMessage,\n contactId: \"test\",\n text: message.data.interaction_text\n ? message.data.interaction_text\n : message.data.text,\n creationTime: message.interaction_time,\n };\n oldMessageArray.push(messageObject);\n }\n });\n liveChatObj.sendMessageHistory(accountId, conversationId, oldMessageArray);\n };\n\n const liveChatResponseForWidget = async (message, key?) => {\n if (message.type === \"request_accepted\") {\n clearTimeout(timeoutInterval);\n socket.liveChatAccepted();\n socket.setLiveChatOwner(message.userId);\n liveChatObj.subscribeToTypingStatus(\n appContext.accountId,\n appContext.conversationId,\n onTypingStatusChanged(message.userId),\n );\n }\n if (message.userType === \"Admin\") {\n // Fetch user's information\n try {\n const audio = new Audio(sound.default);\n audio.play();\n } catch (error) {\n console.log(error);\n }\n if (key) {\n message.live_chat_message_key = key;\n }\n if (liveChatUsers[message.userId]) {\n message.user = liveChatUsers[message.userId];\n } else {\n const userDetail = message.userId\n ? await liveChatObj.getUserDetail(\n appContext.accountId,\n message.userId,\n )\n : {};\n liveChatUsers[message.userId] = userDetail;\n message.user = userDetail || {};\n }\n socket.liveChatResponse(\n { content: message.text },\n message,\n liveChatUsers,\n );\n } else {\n socket.liveChatAnswer(\n { content: message.text },\n LIVE_CHAT_CHANNEL,\n liveChatUsers,\n );\n }\n };\n\n function onTypingStatusChanged(ownerId) {\n return (data) => {\n if (data && data.val()) {\n socket.updateLiveChatUserTypingState(data.val()[ownerId] || false);\n }\n };\n }\n\n useEffect(() => {\n if (!last) return; // If live interaction is the last message in conversation\n async function setLiveChatObj() {\n if (!process.env.REACT_APP_FIREBASE_DATABASE_URL) {\n console.log(\n \"Firebase credentials are not set. Not initiating live chat!!\",\n );\n return;\n }\n const liveChatObj = await initLiveChat(interaction.contact[\"auth_token\"]);\n socket.initLiveChat(liveChatObj);\n socket.setContactId(interaction.contact.id);\n }\n setLiveChatObj();\n }, [socket]);\n\n return (\n 7\n ? \"live-chat-action chat-message chat-message-align-left bg-primary text-primary border-primary\"\n : \"live-chat-action chat-message bg-primary text-primary border-primary\"\n }\n >\n {interaction.interaction_text}\n \n );\n}\n\nexport default React.memo(LiveChatActionComponent);\n","import * as React from \"react\";\n\ninterface IRequireConsentProps {\n bodyText: string;\n title: string;\n link: string;\n linkText: string;\n id: string;\n}\n\nexport class RequireConsent extends React.PureComponent<\n IRequireConsentProps,\n any\n> {\n consentRef: React.RefObject = React.createRef();\n\n render() {\n return (\n \n \n {this.props.title}\n \n {this.props.bodyText}\n \n {this.props.link && this.props.linkText && (\n \n {this.props.linkText}\n \n )}\n \n \n );\n }\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from \"react\";\nimport \"./require-consent.scss\";\n\ninterface IConsentButtonsProps {\n onMessageSent: (message: string) => void;\n noText: string;\n yesText: string;\n}\n\ninterface IConsentButtonsState {\n consented: boolean;\n}\n\nexport class ConsentButtons extends React.Component<\n IConsentButtonsProps,\n IConsentButtonsState\n> {\n readonly state: IConsentButtonsState = {\n consented: false,\n };\n\n componentDidMount() {\n const requireConsent = document.querySelector(\".require-consent\");\n if (requireConsent) {\n const messageContainer = requireConsent.closest(\".message-container\");\n if (messageContainer) {\n messageContainer.scrollIntoView();\n }\n }\n }\n onConsentClick = (consentText: string) => {\n this.props.onMessageSent(consentText);\n this.setState({\n consented: true,\n });\n };\n render() {\n return (\n !this.state.consented && (\n \n \n {this.props.yesText}\n \n \n {this.props.noText}\n \n \n )\n );\n }\n}\n","import React, { useState, useContext } from \"react\";\nimport { TimezonePopup } from \"src/widget-container/common-components/timezone-popup/timezone-popup\";\nimport { DEFAULT_TIMEZONE_ID } from \"src/widget-container/constants\";\nimport { SocketServiceContext, AppContext } from \"src/AppContext\";\nimport { ConversationState } from \"src/constants\";\n\nimport \"./timezone-question.scss\";\n\nexport interface ITimezoneQuestionProps {\n text: string;\n buttonText: string;\n disabled: boolean;\n}\n\nfunction TimeZoneQuestion(props: ITimezoneQuestionProps) {\n const actions = useContext(SocketServiceContext);\n const disabled =\n useContext(AppContext).state !== ConversationState.Active || props.disabled;\n const [modal, showModal] = useState(false);\n const onClosePopup = (timezoneId?: string, timezoneName?: string) => {\n showModal(false);\n if (!timezoneId || !timezoneName) return;\n actions.updateTimezone(timezoneId);\n actions.answer({\n content: timezoneName,\n time_zone_id: timezoneId,\n });\n };\n return (\n \n

    {props.text}

    \n showModal(true)}\n >\n {props.buttonText}\n \n {!disabled && modal && (\n \n )}\n
    \n );\n}\n\nexport default React.memo(TimeZoneQuestion);\n","export class Timeago {\n static get = (\n input: number,\n now: number,\n allowFuture: boolean = false,\n ): string => {\n const substitute = (stringOrFunction: any, num: number, strings: any) => {\n const str = Timeago.isFunction(stringOrFunction)\n ? stringOrFunction(num, dateDifference)\n : stringOrFunction;\n const value = (strings.numbers && strings.numbers[num]) || num;\n return str.replace(/%d/i, value);\n };\n const nowTime = now;\n const date = new Date(input).getTime();\n // refreshMillis= 6e4, //A minute\n\n const timestrings = {\n day: \"a day\",\n days: \"%d days\",\n hour: \"an hour\",\n hours: \"%d hours\",\n minute: \"a minute\",\n minutes: \"%d minutes\",\n month: \"a month\",\n months: \"%d months\",\n prefixAgo: null,\n prefixFromNow: null,\n seconds: \"just now\",\n suffixAgo: \"ago\",\n suffixFromNow: \"from now\",\n wordSeparator: undefined,\n year: \"a year\",\n years: \"%d years\",\n };\n const dateDifference = nowTime - date;\n let words;\n const seconds = Math.abs(dateDifference) / 1000;\n const minutes = seconds / 60;\n const hours = minutes / 60;\n const days = hours / 24;\n const years = days / 365;\n const separator =\n timestrings.wordSeparator === undefined ? \" \" : timestrings.wordSeparator;\n\n // var timestrings = this.settings.timestrings;\n let prefix = timestrings.prefixAgo;\n let suffix = timestrings.suffixAgo;\n\n if (allowFuture) {\n if (dateDifference < 0) {\n prefix = timestrings.prefixFromNow;\n suffix = timestrings.suffixFromNow;\n }\n }\n\n words =\n (seconds < 45 &&\n substitute(timestrings.seconds, Math.round(seconds), timestrings)) ||\n (seconds < 90 && substitute(timestrings.minute, 1, timestrings)) ||\n (minutes < 45 &&\n substitute(timestrings.minutes, Math.round(minutes), timestrings)) ||\n (minutes < 90 && substitute(timestrings.hour, 1, timestrings)) ||\n (hours < 24 &&\n substitute(timestrings.hours, Math.round(hours), timestrings)) ||\n (hours < 42 && substitute(timestrings.day, 1, timestrings)) ||\n (days < 30 &&\n substitute(timestrings.days, Math.round(days), timestrings)) ||\n (days < 45 && substitute(timestrings.month, 1, timestrings)) ||\n (days < 365 &&\n substitute(timestrings.months, Math.round(days / 30), timestrings)) ||\n (years < 1.5 && substitute(timestrings.year, 1, timestrings)) ||\n substitute(timestrings.years, Math.round(years), timestrings);\n\n return words === \"just now\"\n ? [prefix, words].join(separator)\n : [prefix, words, suffix].join(separator);\n // conditional based on optional argument\n // if (somethingElse) {\n // out = out.toUpperCase();\n // }\n // return out;\n };\n\n static isFunction = (functionToCheck: any) => {\n return (\n functionToCheck &&\n {}.toString.call(functionToCheck) === \"[object Function]\"\n );\n };\n}\n","import React, { useContext, useEffect, useState } from \"react\";\nimport { Timeago } from \"src/utils/timeago\";\nimport {\n AppContext,\n ConversationContext,\n SocketServiceContext,\n} from \"src/AppContext\";\nimport { ConversationState } from \"../../../../constants\";\nimport { IUser } from \"@oncehub/live-chat-util\";\n\ninterface IChatTimestampProps {\n sentBy: \"bot\" | \"contact\" | \"agent\";\n time: number;\n is_read: boolean;\n id: string;\n}\n\nfunction ChatTimestamp(props: IChatTimestampProps) {\n const botName = useContext(AppContext).settings.botName;\n const [now, setNow] = useState(Date.now());\n useEffect(() => {\n const interval = setInterval(() => {\n setNow(Date.now());\n }, 45 * 1000);\n return () => {\n clearInterval(interval);\n };\n }, []);\n const { liveChatUsers, liveChatOwnerId } = useContext(AppContext);\n const liveChatOwner: IUser =\n liveChatOwnerId && liveChatUsers ? liveChatUsers[liveChatOwnerId] : null;\n return (\n

    \n {props.sentBy === \"bot\" && (\n <>\n {botName}, {Timeago.get(props.time, now)}\n \n )}\n {props.sentBy === \"agent\" && (\n <>\n {liveChatOwner.firstName}, {Timeago.get(props.time, now)}\n \n )}\n {props.sentBy === \"contact\" && (\n \n )}\n

    \n );\n}\n\nfunction ContactTimestamp(props: {\n time: number;\n is_read: boolean;\n now: number;\n id: string;\n}): any {\n const { messageFailed, messageLimitExceeded, messages } =\n useContext(ConversationContext);\n const conversationState = useContext(AppContext).state;\n const actions = useContext(SocketServiceContext);\n const lastMessage = messages[messages.length - 1];\n\n if (\n messageLimitExceeded &&\n messageFailed &&\n (!props.is_read || lastMessage.id === props.id)\n ) {\n return (\n \n Sending failed due to an error\n \n );\n }\n\n if (props.is_read) {\n if (!messageLimitExceeded)\n return \"Delivered\" + Timeago.get(props.time, props.now);\n return null;\n } else if (messageFailed) {\n if (conversationState === ConversationState.Finished) {\n return (\n <>\n \n Sending failed\n \n \n );\n } else {\n return (\n <>\n \n Sending failed…\n {\" \"}\n \n Click to retry\n \n \n );\n }\n } else {\n return \"Sending...\";\n }\n}\n\nexport default React.memo(ChatTimestamp);\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from \"react\";\n\nimport \"../require-consent/require-consent.scss\";\n\ninterface IViewAgainButtonProps {\n onMessageSent: (message: string) => void;\n viewAgainText: string;\n}\n\ninterface IViewAgainButtonState {\n viewed: boolean;\n}\n\nexport class ViewAgainButton extends React.Component<\n IViewAgainButtonProps,\n IViewAgainButtonState\n> {\n readonly state: IViewAgainButtonState = {\n viewed: false,\n };\n\n componentDidMount() {\n const requireConsent = document.querySelector(\".require-consent\");\n if (requireConsent) {\n const messageContainer = requireConsent.closest(\".message-container\");\n if (messageContainer) {\n messageContainer.scrollIntoView();\n }\n }\n }\n onConsentClick = (consentText: string) => {\n this.props.onMessageSent(consentText);\n this.setState({\n viewed: true,\n });\n };\n render() {\n return (\n !this.state.viewed && (\n \n \n {this.props.viewAgainText}\n \n \n )\n );\n }\n}\n","import * as React from \"react\";\n\ninterface IDenyConsentProps {\n bodyText: string;\n id: string;\n}\n\nexport class DenyConsent extends React.PureComponent {\n consentRef: React.RefObject = React.createRef();\n\n render() {\n return (\n \n {this.props.bodyText}\n \n );\n }\n}\n","import { useContext, useEffect, useMemo, useReducer, useState } from \"react\";\nimport { Picker } from \"emoji-mart\";\nimport \"emoji-mart/css/emoji-mart.css\";\nimport { AppContext, SocketServiceContext } from \"src/AppContext\";\nimport { ConversationState } from \"src/constants\";\nimport {\n InteractionOption,\n Message,\n MultiChoiceQuestion,\n Question,\n SingleChoiceQuestion,\n} from \"src/interaction.interface\";\nimport SendButtonIcon from \"src/widget-container/widget-footer/SendButtonIcon\";\nimport { DateInput } from \"src/widget-container/widget-footer/date-input/date-input\";\nimport { DatetimeInput } from \"src/widget-container/widget-footer/datetime-input/datetime-input\";\nimport { TimeInput } from \"src/widget-container/widget-footer/time-input/time-input\";\nimport EmailInput from \"src/widget-container/widget-footer/email-input/email-input\";\nimport PhoneInput from \"src/widget-container/widget-footer/phone-input/phone-input\";\nimport TextInput from \"src/widget-container/widget-footer/text-input\";\nimport {\n EMAILREGEXPATTERN,\n VADLIDATION_MESSAGES,\n} from \"src/widget-container/constants\";\nimport { AsYouType } from \"libphonenumber-js\";\nimport \"./answer-input.scss\";\nimport SelectList, {\n SelectListProps,\n} from \"src/widget-container/widget-footer/select-list\";\nimport { Answer } from \"src/actions\";\nimport { errorMessage } from \"../message-helpers/interaction-multi-select/interaction-multi-select\";\nimport { isEmojiDisabled } from \"src/widget-container/widget-footer/widget-footer\";\nimport { WidgetModal } from \"src/widget-container/widget-modal/widget-modal\";\n\ninterface Props {\n message: Message;\n question: Question;\n}\n\ninterface State {\n text: string;\n openEmoji: boolean;\n openSelectList: boolean;\n validationMessage: null | string;\n}\n\ntype Action = Partial;\n\nfunction reducer(state: State, action: Action): State {\n return { ...state, ...action };\n}\n\ninterface InputProps {\n id: string;\n disabled: boolean;\n value: string;\n question: Question;\n onChange: (value: string) => void;\n onSubmit: () => void;\n onError: (message: null | string) => void;\n}\n\ninterface SelectInputProps {\n question: SingleChoiceQuestion | MultiChoiceQuestion;\n sendAnswer: (answer: Answer) => void;\n close: () => void;\n}\n\nfunction SelectInput({\n question,\n sendAnswer: answer,\n close,\n}: SelectInputProps) {\n const [error, setError] = useState(null);\n const selectProps = useMemo((): null | SelectListProps => {\n if (question.question_type === \"single_choice\") {\n return {\n single: true,\n items: question.interaction_options,\n onSelect: (option) =>\n answer({\n content: option.option_text,\n interaction_option_id: option.id as number,\n content_object_array: [\n {\n id: option.field_library_option_id,\n value: option.option_text,\n },\n ],\n }),\n close,\n };\n } else {\n return {\n single: false,\n items: question.interaction_options,\n onSelect: (options) => {\n const error = errorMessage(\n question.multi_choice_minimum || 1,\n question.multi_choice_maximum,\n options.length,\n );\n setError(error);\n if (error === null) {\n options.sort((x, y) => x.option_order - y.option_order);\n answer({\n content: options.map((option) => option.option_text).join(\", \"),\n multi_interaction_options_answer_ids: options.map(\n (option) => option.id,\n ),\n content_object_array: options.map((option) => {\n return {\n id: option.field_library_option_id,\n value: option.option_text,\n };\n }),\n });\n }\n },\n close,\n };\n }\n }, [answer, close, question]);\n if (question.multi_choice_type !== \"list\") return null;\n return (\n <>\n setError(null)}\n />\n {selectProps && }\n \n );\n}\n\nfunction Input({\n id,\n value,\n question,\n onChange,\n onSubmit,\n onError,\n disabled,\n}: InputProps) {\n let focus = false;\n useEffect(() => {\n if (focus) {\n const input = document.querySelector(\".standalone-chat-msg input\");\n if (input !== null && input instanceof HTMLInputElement) input.focus();\n }\n }, [id, focus]);\n if (disabled) {\n return ;\n } else if (question.question_type === \"date\") {\n return (\n \n );\n } else if (question.question_type === \"datetime\") {\n return (\n \n );\n } else if (question.question_type === \"time\") {\n return (\n \n );\n } else if (question.question_type === \"email\") {\n return (\n \n );\n } else if (question.question_type === \"phone\") {\n return (\n \n );\n }\n const changeValue = (event: React.SyntheticEvent) =>\n onChange(event.currentTarget.value);\n const onKeyDown = (event: React.KeyboardEvent) =>\n event.keyCode === 13 && onSubmit();\n focus = true;\n if (question && question.question_type === \"number\") {\n return (\n \n );\n } else if (question && question.question_type === \"text\") {\n return ;\n } else {\n focus = false;\n return null;\n }\n}\n\nfunction validate(question: Question, content: string): null | string {\n switch (question.question_type) {\n case \"email\":\n if (!EMAILREGEXPATTERN.test(content)) {\n return VADLIDATION_MESSAGES.email;\n } else {\n return null;\n }\n case \"phone\":\n const formatter = new AsYouType();\n formatter.input(content);\n const phoneNumber = formatter.getNumber();\n if (phoneNumber && phoneNumber.isValid()) {\n return null;\n } else {\n return VADLIDATION_MESSAGES.phone;\n }\n default:\n return null;\n }\n}\n\nconst AnswerInput: React.FC = ({ message, question }) => {\n const questionType = question.question_type;\n const appContext = useContext(AppContext);\n const socket = useContext(SocketServiceContext);\n const [{ text, openEmoji, validationMessage, openSelectList }, dispatch] =\n useReducer(reducer, {\n text: \"\",\n openEmoji: false,\n openSelectList: false,\n validationMessage: null,\n });\n const textBox =\n appContext.state !== ConversationState.Finished &&\n (questionType === \"text\" ||\n questionType === \"number\" ||\n questionType === \"email\" ||\n questionType === \"time\" ||\n questionType === \"datetime\" ||\n questionType === \"date\" ||\n questionType === \"phone\");\n const emojiDisabled = isEmojiDisabled(questionType);\n const selectList = useMemo(() => {\n if (openSelectList) return null;\n if (\n (question.question_type !== \"single_choice\" &&\n question.question_type !== \"multi_choice\") ||\n question.multi_choice_type === \"quick_replies\"\n ) {\n return null;\n }\n return (\n {\n dispatch({\n text: \"\",\n openEmoji: false,\n validationMessage: null,\n });\n socket.answer(answer);\n }}\n close={() => dispatch({ openSelectList: false })}\n />\n );\n }, [openSelectList, question, socket]);\n const disabled =\n appContext.state !== ConversationState.Active || text.trim().length === 0;\n let classes =\n \"chat-message standalone-chat-msg bg-primary text-primary border-primary\";\n if (validationMessage) classes += \" error\";\n if (emojiDisabled) classes += \" emoji-disabled\";\n const sendAnswer = () => {\n const content = text.trim();\n if (content.length === 0) return;\n const validationMessage = validate(question, content);\n if (validationMessage !== null) {\n dispatch({ validationMessage });\n } else {\n socket.answer({ content });\n dispatch({ validationMessage: null, openEmoji: false, text: \"\" });\n }\n };\n return (\n \n \n {selectList}\n {validationMessage !== null && (\n {validationMessage}\n )}\n {textBox && (\n <>\n \n dispatch({ text })}\n disabled={appContext.startedAt === null}\n onError={(validationMessage) => dispatch({ validationMessage })}\n />\n \n \n \n \n \n {\n if (!emojiDisabled) {\n dispatch({ openEmoji: !openEmoji });\n window.dispatchEvent(new Event(\"scrollToBottom\"));\n }\n }}\n />\n Press enter to send\n \n \n )}\n {openEmoji && (\n
    \n {\n dispatch({\n openEmoji: false,\n text: text + (emoji as any).native,\n });\n }}\n />\n
    \n )}\n
    \n );\n};\n\nexport default AnswerInput;\n","import React, { useState, useContext, useLayoutEffect, useEffect } from \"react\";\nimport { Message, Interaction, TextQuestion } from \"src/interaction.interface\";\nimport { AppContext, SocketServiceContext } from \"src/AppContext\";\nimport { Actions, Answer } from \"src/actions\";\n\nimport \"./widget-message.scss\";\nimport InteractionSingleSelect from \"./message-helpers/interaction-single-select/interaction-single-select\";\nimport InteractionMultiSelect from \"./message-helpers/interaction-multi-select/interaction-multi-select\";\nimport TextMessageComponent from \"./message-helpers/text-message/text-message\";\nimport { VideoMessage } from \"./message-helpers/video-message/video-message\";\nimport { ImageMessage } from \"./message-helpers/image-message/image-message\";\nimport { DocumentMessage } from \"./message-helpers/document-message/document-message\";\nimport { MessageUrl } from \"./message-helpers/url-message/url-message\";\nimport ScheduleAction from \"./action-interactions/schedule-action/schedule-action\";\nimport LiveChatAction from \"./action-interactions/live-chat-action/live-chat-action\";\nimport { RequireConsent } from \"./action-interactions/require-consent/require-consent\";\nimport { ConsentButtons } from \"./action-interactions/require-consent/consent-buttons\";\nimport TimezoneQuestion from \"./question-interactions/timezone-question/timezone-question\";\nimport ChatTimestamp from \"./chat-timestamp/chat-timestamp\";\nimport { ViewAgainButton } from \"./action-interactions/deny-consent/view-again-button\";\nimport { DenyConsent } from \"./action-interactions/deny-consent/deny-consent\";\nimport { ConversationState, BotDisplayType } from \"src/constants\";\nimport AnswerInput from \"./answer-input/answer-input\";\nimport {\n dateToString,\n stringToDate,\n} from \"./action-interactions/schedule-action/slots.type\";\nimport { fetchSlots } from \"./action-interactions/schedule-action/slots.service\";\nimport { Context } from \"src/utils/context.service\";\nimport { IS_MOBILE } from \"src/utils/utils.service\";\n\ninterface Props {\n last: boolean;\n data: Message;\n botIcon: string;\n socket: Actions;\n showTimestamp: boolean;\n isDefaultBotIcon: boolean;\n}\n\ninterface SelectProps {\n message: Message;\n sendAnswer: (answer: Answer) => void;\n setSticky: (sticky: boolean) => void;\n}\n\nfunction Select({ message, sendAnswer, setSticky }: SelectProps): any {\n const appContext = useContext(AppContext);\n const standalone = appContext.standalone;\n const [resizeCount, setResizeCount] = useState(0);\n const open = appContext.open && appContext.state === ConversationState.Active;\n let hasContent = false;\n useEffect(() => {\n if (!open) return;\n const listener = () => setResizeCount((count) => count + 1);\n window.addEventListener(\"resize\", listener);\n return () => window.removeEventListener(\"resize\", listener);\n }, [open]);\n useLayoutEffect(() => {\n if (!open || !hasContent || standalone) return;\n const container = document.getElementById(\"message-scroll-container\");\n const messageContainer = document.getElementById(message.id);\n if (container === null || messageContainer === null) return;\n setSticky(messageContainer.clientHeight / container.clientHeight < 0.6);\n }, [open, message.id, hasContent, setSticky, resizeCount, standalone]);\n useEffect(() => () => setSticky(false), [setSticky]);\n if (!open) return null;\n if (message.sent_by !== \"bot\") {\n return null;\n }\n const interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"question\") return null;\n if (interaction.question_type === \"single_choice\") {\n hasContent = interaction.multi_choice_type === \"quick_replies\";\n return (\n hasContent && (\n \n sendAnswer({\n content: option.option_text,\n interaction_option_id: option.id,\n content_object_array: [\n {\n id: option.field_library_option_id,\n value: option.option_text,\n },\n ],\n })\n }\n />\n )\n );\n } else if (interaction.question_type === \"multi_choice\") {\n hasContent = interaction.multi_choice_type === \"quick_replies\";\n return (\n interaction.multi_choice_type === \"quick_replies\" && (\n \n sendAnswer({\n content: options.map((option) => option.option_text).join(\", \"),\n multi_interaction_options_answer_ids: options.map(\n (option) => option.id,\n ),\n content_object_array: options.map((option) => {\n return {\n id: option.field_library_option_id,\n value: option.option_text,\n };\n }),\n })\n }\n min={interaction.multi_choice_minimum}\n max={interaction.multi_choice_maximum}\n options={interaction.interaction_options}\n />\n )\n );\n } else {\n return null;\n }\n}\n\nfunction renderVideoMessage(id: string, video_mp4: string, video_ogg: string) {\n return (\n
    \n \n
    \n );\n}\n\nfunction renderImageMessage(id: string, src: string, title: null | string) {\n return ;\n}\n\nfunction renderDocumentMessage(id: string, url: string, title: null | string) {\n return ;\n}\n\nfunction renderUrlMessage(\n id: string,\n url: string,\n imageUrl: string | null,\n title: string,\n) {\n return (\n \n );\n}\n\nfunction renderMessageBody(\n message: Message,\n last: boolean,\n preview: boolean,\n standalone: boolean,\n): JSX.Element {\n if (message.sent_by === \"contact\") {\n return (\n \n );\n }\n const interaction = message.data;\n if (\"text\" in interaction) {\n return (\n \n );\n }\n if (interaction.interaction_type === \"message\") {\n if (interaction.message_type === \"video_message\") {\n return renderVideoMessage(\n message.id,\n interaction.video_mp4,\n interaction.video_ogv,\n );\n } else if (interaction.message_type === \"image_message\") {\n return renderImageMessage(\n message.id,\n interaction.image_url,\n interaction.title,\n );\n } else if (interaction.message_type === \"document_message\") {\n return renderDocumentMessage(\n message.id,\n interaction.document_url,\n interaction.title,\n );\n } else if (interaction.message_type === \"url\") {\n return renderUrlMessage(\n message.id,\n interaction.url,\n interaction.image_url,\n interaction.title,\n );\n } else {\n return (\n \n );\n }\n } else if (interaction.interaction_type === \"question\") {\n if (interaction.question_type === \"time_zone\") {\n return (\n \n );\n } else if (standalone && last) {\n return ;\n } else {\n return (\n \n );\n }\n } else {\n if (interaction.action_type === \"schedule\") {\n return (\n \n );\n } else if (interaction.action_type === \"ask_consent\") {\n return (\n \n );\n } else if (interaction.action_type === \"deny_consent\") {\n return (\n \n );\n } else if (interaction.action_type === \"end_conversation\") {\n return (\n \n );\n } else if (interaction.action_type === \"hand_off\") {\n if (preview) {\n return (\n \n );\n } else {\n return ;\n }\n } else {\n throw new Error(\"Unknown message\");\n }\n }\n}\n\nfunction MessageExtras({\n message,\n sendAnswer,\n}: {\n message: Message;\n sendAnswer: (answer: Answer) => void;\n}) {\n if (message.sent_by === \"contact\") return null;\n const interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"action\") return null;\n if (interaction.action_type === \"ask_consent\") {\n return (\n sendAnswer({ content })}\n yesText={interaction.accept_button_text}\n />\n );\n } else if (interaction.action_type === \"deny_consent\") {\n return (\n sendAnswer({ content })}\n />\n );\n } else {\n return null;\n }\n}\n\nfunction twoDigits(x: number): string {\n return x > 9 ? x.toString() : \"0\" + x.toString();\n}\n\nfunction messageTitle(message: Message): string | undefined {\n if (message.sent_by === \"bot\") {\n const interaction = message.data as Interaction;\n if (interaction.interaction_type === \"action\") {\n if (interaction.action_type === \"schedule\") return;\n }\n }\n const date = new Date(message.interaction_time);\n const startOfDay = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n );\n const hours = date.getHours();\n const time = `${twoDigits(\n hours === 0 ? 12 : hours > 12 ? hours - 12 : hours,\n )}:${twoDigits(date.getMinutes())} ${hours >= 12 ? \"PM\" : \"AM\"}`;\n if (date.getTime() < startOfDay.getTime()) {\n return date.toLocaleDateString() + \" \" + time;\n } else {\n return time;\n }\n}\n\nfunction endChatWithoutMessage(data): boolean {\n const interaction = data.data;\n if (interaction.action_type === \"end_conversation\") {\n const text = interaction.interaction_text;\n if (text === null || text === undefined || text === \"\") {\n return true;\n }\n }\n return false;\n}\n\nfunction liveChatAgentAcceptsMessage(message) {\n return (\n
  • \n

    \n {message.user && message.user.firstName} has joined the\n conversation\n

    \n
  • \n );\n}\n\nfunction liveChatPreviewMessage() {\n return (\n
  • \n
    \n

    \n \n \n Live chat does not take place in preview mode, the timeout message\n will follow.\n \n

    \n
    \n
  • \n );\n}\n\nfunction getNameInitials(firstName: string, lastName: string) {\n let f = firstName ? firstName[0] : \"\";\n let l = lastName ? lastName[0] : \"\";\n return (f + l).toUpperCase();\n}\n\nfunction WidgetMessage({\n data,\n last,\n botIcon,\n socket,\n showTimestamp,\n isDefaultBotIcon,\n}: Props) {\n const appContext = useContext(AppContext);\n const botDisplayType = appContext.botDisplayType;\n const actions = useContext(SocketServiceContext);\n const message = data.data as TextQuestion;\n const [sticky, setSticky] = useState(false);\n const isHandOffInteraction =\n data.data[\"interaction_type\"] === \"action\" &&\n data.data[\"action_type\"] === \"hand_off\" &&\n appContext.preview;\n useEffect(() => {\n if (last && isHandOffInteraction) {\n socket.nextInteraction();\n }\n }, [isHandOffInteraction]);\n const fetch = (date: string, interactionId: string) => {\n const start = stringToDate(date);\n start.setDate(start.getDate() - 1);\n const end = new Date(start.getTime());\n end.setDate(end.getDate() + 7);\n fetchSlots({\n websiteId: appContext.settings.id,\n interactionId: interactionId,\n startDate: start.getTime(),\n endDate: end.getTime(),\n initial_load: true,\n }).then((data) => {\n if (!(\"schedule_status\" in data)) {\n const slotsData = {};\n slotsData[interactionId] = {\n data,\n start: dateToString(start),\n end: dateToString(end),\n };\n actions.setPreFetchedSlots(slotsData);\n }\n });\n };\n\n useEffect(() => {\n const prefetchConfig = appContext.schedule_prefetch_config;\n if (prefetchConfig) {\n Object.entries(prefetchConfig).forEach((entry) => {\n const key = entry[0];\n const prefetchInteraction = entry[1][\"prefetch_at_interaction\"];\n if (prefetchInteraction === message.external_id) {\n fetch(dateToString(new Date()), key);\n }\n });\n }\n }, [message.external_id]);\n\n if (\n message.interaction_type === \"question\" &&\n message.is_live_chat_notification\n ) {\n return liveChatAgentAcceptsMessage(message);\n }\n const select = last && (\n