{"version":3,"sources":["lang/locales/en_US.js","lang/locales/es_ES.js","lang/locales/zh-ZH.js","lang/locales/fr-FR.js","lang/locales/zh-HK.js","lang/locales/mi-MI.js","lang/locales/id_ID.js","lang/locales/hi_HI.js","lang/locales/af-AF.js","lang/locales/de-DE.js","lang/locales/ja-JA.js","lang/locales/ko-KO.js","lang/locales/th-TH.js","lang/locales/tl-TL.js","lang/locales/vi-VI.js","lang/locales/ar-AR.js","lang/locales/ru-RU.js","lang/locales/fi_FI.js","ChatBubble.js","Extensions/WebViewExtension/WebViewExtension.js","Extensions/WebViewExternalExtension/WebViewExternalExtension.js","Extensions/ChatSuggestionExtension/ChatSuggestionExtension.js","helpers/IntlMessages.js","ChatComponent/PersistentMenu.js","ChatComponent/PropertyPopup.js","lang/entries/en-US.js","lang/entries/es-ES.js","lang/entries/zh-ZH.js","lang/entries/fr-FR.js","lang/entries/zh-HK.js","lang/entries/mi-MI.js","lang/entries/mi.js","lang/entries/id-ID.js","lang/entries/hi-HI.js","lang/entries/af-AF.js","lang/entries/de-DE.js","lang/entries/ja-JA.js","lang/entries/ko-KO.js","lang/entries/th-TH.js","lang/entries/tl-TL.js","lang/entries/vi-VI.js","lang/entries/ar-AR.js","lang/entries/ru-RU.js","lang/index.js","lang/entries/fi-FI.js","BookingApp.js","ChatWindowTypingIndicator.js","ChatWindowParticipantTagger.js","ChatWindowCardAction.js","helpers/Translate.js","MsUiComponents/CustomHeroCardButtonCol.js","MsUiComponents/CustomHeroCardButtonRow.js","MsUiComponents/CustomHeroCard.js","Extensions/FileUploadExtension/FileUploadCard.js","MsUiComponents/CustomMessage.js","MsUiComponents/CustomVideoCard.js","Extensions/AttachmentMiddleware.js","ChatComponent/AmaduesAvailability.js","ChatComponent/CheckAvailablity.js","ChatComponent/ServicePopup.js","ChatComponent/FeedbackPopup.js","Extensions/AutoCompleteExtension/AutoCompleteExtension.js","ChatComponent/ThumbFeedback.js","ChatWindow.js","ChatBubbleComponent/SildeBubble.js","ChatStore.js","index.js","Extensions/ChatAppExtensions.js","ChatApp.js"],"names":["module","exports","ChatBubble","props","handleMouseEnter","setState","hover","handleMouseLeave","state","nudgeavtar","botPosition","bubble_clicked","bind","nudge_clicked","hint_close","nudgeavtar_clicked","window","addEventListener","windowBuddbleMessage","event","data","startsWith","this","postMessage","onOpened","e","stopPropagation","hintClosed","msg","parent","undefined","botSettings","bubbleSettings","bubblePosition","mobile","alignInMobile","position","toLowerCase","sideInMobile","bottomInMobile","align","side","bottom","scrollAnimation","enabled","beforeAnimationTop","afterAnimationTop","disabledChatbot","className","onClick","currentNudge","eyeCatcher","messages","map","alt","src","url","fadeIn","style","backgroundColor","backGroundColor","color","textColor","paddingTop","backGroundColorHover","textColorHover","onMouseEnter","onMouseLeave","ReactHtmlParser","text","backgroundImage","urls","icon","Component","WebViewExtension","popUpHeight","title","webview","height","hideHeader","largeWindowHideHeader","findInputTimerId","setInterval","chatbox","document","getElementById","inputs","querySelectorAll","inputRegion","length","popUp","getElementsByClassName","clientHeight","clearInterval","close","oldProps","closing","setTimeout","api","setExtension","styling","containerStyling","messenger","animationName","top","fill","indexOf","colours","headerText","xlinkHref","header","width","WebViewExternalExtension","webviewExt","isMobile","openInternalView","openExternalView","receiveWindowMessage","opened","closeExternalView","settings","mode","payload","JSON","stringify","ChatSuggestionExtension","searchTerm","bottomMargin","filteredSuggestions","maximised","suggestions","getSuggestionCallback","processUserInput","onSuggestionClicked","updateSuggestions","value","target","time","input","match","filtered","options","filter","suggestion","doesSuggestionMatch","name","exactMatch","find","synonyms","some","syn","term","sendActivity","type","question","borderColor","key","injectIntl","withRef","PersistentMenu","menuOpen","persistentMenu","handleMenuClick","persistentMenuEnabled","botSite","cookiesDetail","mindate","Date","getFullYear","useState","currentYear","MenuClick","itemType","items","BotSiteClick","item","itemIndex","callToActions","i","payLoad","menu","menuIndex","xmlns","viewBox","fillRule","d","IntlMessages","id","version","preserveAspectRatio","transform","stroke","x","y","multilingual","href","PropertyPopup","setCheckAvailability","isCheckedAvailability","active","open_property_popup","pid","localStorage","getItem","property_state_store","bookingApp","rooms","adults","children","selectProperty","elem","selectedPid","setPropertyPopUp","forceUpdate","setItem","lStore","PROPERTYID","PROPERTYNAME","label","callbacks","getStore","dispatch","pname","close_property_popup","GetServiceAvailable","sendDates","toggle","open","close_pop","hotel","properties","property","dates","kids","room_app","index","EnLang","enMessages","locale","appLocaleData","EsLang","esMessages","ChLang","chMessages","FrLang","MiLang","miMessages","pluralRuleFunction","t","IdLang","HiLang","hiMessages","AfLang","DeLang","deMessages","JaLang","jaMessages","KoLang","koMessages","ThLang","thMessages","TlLang","tlMessages","ViLang","viMessages","ArLang","arMessages","RuLang","ruMessages","AppLocale","en","enLang","es","esLang","zh","chLang","fr","frLang","hk","twLang","mi","miLang","idLang","hi","hiLang","af","afLang","ar","arLang","de","deLang","ja","jaLang","ko","koLang","th","thLang","tl","tlLang","vi","viLang","ru","ruLang","fi","fiMessages","addLocaleData","customStyles","control","base","boxShadow","next","activeTyping","removeTypingIndicator","Object","values","messageList","querySelector","console","error","last","appendChild","tag","createElement","innerHTML","setAttribute","getTypingBox","addTypingIndicator","indicator","parentNode","removeChild","INTERVAL_TIMER","SAVE_FEEDBACK","process","ChatWindowParticipantTagger","botName","botImage","gid","iid","addParticipantTags","msChatwindow","messageBubbles","row","includes","isFirst","isFirstOfBlock","alreadyHasTag","getUserTag","getBotTag","insertBefore","isLast","alreadyHasFeed","statusDiv","msgId","conId","elementName","markdownTextLen","feedback_response","btnShow","messageType","li","parentElement","bubbleWidth","isAdaptingCard","isZenDesk","childdiv","herocard","getAttribute","videocard","getBotFeedBack","classList","add","attecMsg","formMsg","groupForm","herocardCarousel","videocardCarousel","append","display","remove","split","tags","tagBody","tagBodyResponse","tagFeedbackText","innerText","TanslateWasHelpFullText","likeButton","dislikeButton","orignalBtn","body","groupId","messageId","feedback","fetch","method","headers","Accept","getOldFeed","parse","new_chat_state","getIndex","findIndex","push","feedback_popup","feedBackButton","action","cardAction","indexWebView","jsonData","substring","webViewUrl","Translate","lang","setText","translationDone","setTranslationDone","useEffect","q","then","m","json","k","output","CustomHeroCardButtonCol","btn","heroButtonBackground","heroButtonText","heroButtonBackgroundHover","heroButtonTextHover","CustomHeroCardButtonRow","md","require","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","CustomHeroCard","showmore","showless","button","googleAnalytics","lastIndexOf","utmSource","utmMedium","substr","lastChild","scrollIntoView","behavior","block","servicePopup","addLinks","location","availblityForm","GroupId","PropertyId","Button","clickButton","Creator","roomId","SetId","productId","promoId","addonId","imageUrl","images","feedbackbody","webConfig","data-activity-id","data-con-id","conversationId","data-feedback","data-view-btn","replyToId","data-msg-type","cardActivitiesSummary","data-inzendesk","inZenDesk","renderInline","textAlign","textDecoration","cursor","fontSize","buttons","actionsRow","FileUploadCard","files","used","content","uploadRef","React","createRef","selectFile","filesChanged","uploadFiles","current","click","fileList","attachments","file","formData","FormData","uploadUrl","uploadR","ok","status","uploadId","replaceAll","contentType","activity","meta","isMulti","allowMultiple","accept","onChange","ref","multiple","class","f","CustomMessage","text-len","render","CustomVideoCard","card","allowFullScreen","media","toString","replace","AttachmentMiddleware","directLine","attachment","conversation","summary","months","currentDate","moment","format","AmaduesAvailability","integration","closeAvailblityForm","promoCode","setPromoCode","roomTypeCode","setRoomTypeCode","setAdults","setChildren","nights","setNights","children_age","setChildren_age","disableDays","setDisableDays","disableCheckInDate","setDisableCheckInDate","showModel","setShowModel","year","month","day","date","minimumDate","loading","setLoading","from","to","selectedDayRange","setSelectedDayRange","handleDisableDaysChange","fromDate","toDate","elements","AMADUES","response","isCheckOutDate","obj","attributes","nodeValue","isAvailable","rate","minRate","lst","statusCode","leftButton","yearSelector","monthSelector","newDate","monthYear","adult_count","children_count","roomCode","endOf","preventDefault","subtract","startOf","ShowRatesSelectedRoom","propertyId","pi","languageCode","result","providerRoomCode","calculateNights","startDate","endDate","start","end","dayCount","setDate","getDate","Row","Col","xs","disabledDays","night","fromDateStr","toDateStr","dateFormat","renderFooter","background","margin","FormGroup","Label","Input","bookingEngineUrl","childrenValue","parseInt","childrenAge","arr","element","handleChangeChildrenAge","placeholder","childAge","bookingUrl","roomBookingEngineCode","hashIndex","slice","RatePlanCode","checkInDate","checkOutDate","childrens","creator","CheckAvailablity","handleAdultsChange","handleChildrenChange","handlePromoCodeChange","submit","open_availblity_popup","Found","ShowRates","language","ServicePopup","open_service_popup","close_serivce_popup","conversation_id","serviceData","setServiceData","SERVICES_URL","services","handleClickDetail","imageLink","backgroundPosition","backgroundSize","FeedbackPopup","setZchatFeedback","comments","inputData","setInputData","like","dislike","setColor","handleSend","handleSkip","AutoCompleteExtension","ignoreClickOnMeElement","contains","border","ThumbFeedback","handleFeedBackResponse","handleCancelFeedbackResponse","changeleaveFeedbackMessage","phone","email","comment","inputdata","getPlaceholder","handleChange","Form","onSubmit","handleSubmit","required","styleOptions","bubbleBorderRadius","bubbleTextColor","bubbleBackground","bubbleFromUserBorderRadius","bubbleFromUserBackground","bubbleFromUserTextColor","sendBoxTextColor","sendBoxBorderTop","sendBoxBorderBottom","sendBoxButtonColor","sendBoxButtonColorOnFocus","sendBoxButtonColorOnHover","sendBoxPlaceholderColor","paddingWide","hideUploadButton","timestampColor","sendBoxBackground","bubbleBorderColor","bubbleFromUserBorderColor","suggestedActionLayout","suggestedActionHeight","suggestedActionBorderRadius","suggestedActionBorderWidth","suggestedActionBackground","suggestedActionTextColor","localeOptions","desc","code","ChatWindow","handleVisitorEmailChange","handleVisitorNameChange","handleVisitorPhoneNumerChange","val","str","charCodeAt","phoneNumber","handleVisitorCheckBoxChange","consentGiven","checked","hadleVisitorFirstNameChange","firstName","hadleVisitorLastNameChange","lastName","hadleVisitorZipCodeChange","zipCode","handleChangeLanguage","findLanguage","langLocale","language_state_store","persistentMenuData","menuItem","close_language_popup","open_language_popup","end_clicked","hide_bot_confirm","leaveFeedbackMessage","getMessageTranslate","leaveFeedback","leaveMessage","directline","source","requesterName","requesterEmail","requesterPhoneNumber","notes","cache","res","ticketId","message","Math","random","catch","err","msgpayload","vid","sid","cid","toISOString","agentId","propertyStore","isServiceAvailable","setBubbleToShrinkIn","ask_close","menu_open","ask_bot_hide","visitorPopupState","languageOptions","sort","dynamicSort","open_ZChatfeedback_popup","bubble_type","availblityData","zChatfeedbackData","isButtonDisable","endChat","confirm_cookies","cookies_state_store","hideBot","close_bot_ask_hide","onClosed","bot_restartClick","menu_popup_open","menu_popup_Close","close_confirmed","endClicked","close_service_popup","OpenServicePopUp","popupclose_confirmed","closeClicked","refresh","refreshClicked","close_cancel","close_clicked","close_cardapp","card_app","close_roomapp","cookies_understood","setAvailblity","sendFeedbackZenDeskChat","cookies_details","cookiesURL","bob_site","poweredByURL","movetotop","els","scrollTo","save_visitor","a","user","visitor_state_store","link","intervalId","sendButtonDiv","styleSheets","insertRule","closeIcon","closeIconHover","minimizeIcon","minimizeIconHover","sendIcon","sendIconHover","getdiv","inTwiliochat","features","fixedResponses","form","main","_set","len","span","disableButton","outline","padding","disabled","opacity","div_sendBoxTextCount","marginLeft","call","focus","addOnUpsells","divcurated","getMainDiv","formdiv","createCuratedDiv","sortOrder","b","el","languages","langCode","selectedLang","bubbleType","ignoreClickOnMeElementVisitor","googleAnalyticsIntegration","prevProps","prevState","availblity","openZChat_popup","property_popup","bot_restart","currentAppLocale","store","inputEnabled","user_id","loadingLivechat","agentName","connectionError","inactivePopupOne","inactivePopupTwo","resize_full","resize_actual","botBackground","botUser","botUserText","botBot","botBotText","hideSendBoxInMobile","hideTypingTextBox","hideSendBox","sendBoxButton","sendBoxText","sendBoxBottomBorder","sendBoxButtonFocus","sendBoxButtonHover","timeStamp","sendBoxPlaceHolder","suggestionBackground","suggestionText","createCssRules","customStyle","resize","transition","refreshIcon","hideRoomDetail","zIndex","webCookies","paddingBottom","inactivePopUpWarning","role","aria-label","inactivePopUpSession","moveTop","userID","typingIndicatorMiddleware","ChatWindowTypingIndicator","cardActionMiddleware","ChatWindowCardAction","attachmentMiddleware","extensions","_api","visitorPopup","visitorSettings","subTitle","fields","fIndex","field","bsSize","mandatory","CustomInput","checkboxText","clipRule","buttonText","verticalAlign","webPoweredBy1","SildeBubble","iseffect","setIsEffect","setNudgeAvtar","dir","intervalOne","intervalTwo","BMB_LOG_URL","BMB_ROOMTYPE_URL","incomingActivity","enableChat","scrollChat","dl","getChatState","isRecentActivity","channelData","suggestionUi","suggestedActions","suggestionsPayload","now","liveChat","startZenDeskChat","webView","webviewPayload","availabilityData","largeWindow","inputHint","showTypingTextBox","livechat","startLivechat","twiliochat","startTwiliochat","signalrchat","log","startSignalRchat","setAgentId","bmbLogMessage","isInTwiliochat","endTwilio","isInSignalRchat","endSignalRChat","getPID","getRoomTypes","showBookingForm","BMB_Property_URL","getGID","ari","applicable","roomdata","timestamp","handled","makePayment","splice","filterAttachments","valueOf","outgoingBackChannelEvents","getIID","getAgentId","bmbLogMessageBot","AgentCheck","eventName","getDirectLineConversation","BMB_Conversation_URL","agentStatus","dispatchAgentOnlineEvents","importStore","stored","CHAT_STATE","activities","processStoredActivities","sendHistoryToZendesk","storeState","zendesk","sendChatMsg","getChatStore","chatCallbacks","forceNewState","createStore","connectionStatus","setConnectionStatus","propertyName","propertyNameStorage","addScrollEvent","onConnect","hideTextCount","getBotSettings","clearTimeout","setInactivePopupOne","parseFloat","seconds","setInactivePopupTwo","liveChatSetings","getLiveChatSettings","provider","noAgentOnline","AgentOnline","n","AgentOnlineNext","isInLivechat","channelId","sendMessage","customId","String","isInZendeskChat","invoke","groupname","extension","getExtension","outgoingActivity","setSuggestedActions","incomingLivechat","author","incomingTwiliochat","incomingSignalchat","incomingZendeskchat","disableChat","endedLivechat","livechatTyping","twiliochatTyping","signalchatTyping","removeItem","disconnectChat","sendTwilioTypingIndicator","sendZendeskTypingIndicator","sendSignalRTypingIndicator","localStorageLanguage","LANGUAGE","predictiveSearch","keyword","domain","DOMAIN","TypeTwiliochat","getState","parent_location","parent_title","parent_referrer","defaultOpen","previewMode","serviceview","ChatAppExtensions","chatApp","chatAppProps","publicIp","GROUP_URL","PROPERTIES_URL","ChatApp","reinit","chatBindings","setInLivechat","setInTwiliochat","setInSignalRchat","closeInactivePopupOne","extensionName","details","callback","booking","liveChatSettings","available","hideRoom","showHideMoveToTop","loadedExtensions","OPENED","IDENTITY","CREDENTIALS","LIVECHAT_STARTED","COOKIES","EXTENSIONS","BOTCLICK","LIVECHATMESSAGESTAMP","LIVECHATCLIENT","VISITORDETAILS","ZENDESKGROUP","started","inLiveChat","createChatSessionStartUp","animation","bubbleToFadeIn","integrationSettings","blockChatbot","getAPI","visitorPopUp","inTwilioChat","inSignalRChat","twilioAccessToken","twilioChatId","signalRChatId","botclick","zendeskDepartment","zendeskChatNew","windowMessage","openChatWindow","startConversation","prodata","scrollTop","scrollHeight","els1","show","botConversationId","v4","ip","page_title","identity","req","whiteListedIpAddresses","departmentId","userLang","navigator","userLanguage","defaultLanguage","level","reqProperties","resultProperties","finalResult","forEach","p","r","displayOrder","domains","priority","sortfinalResult","o","groupCall","group","nudges","SideMenuItem","MenuData","menus","menuEnabled","MenuDataItem","sideItem","Storage","nudge","disabledInMobile","disabledInDesktop","delayInMillisecondsInMobile","delayInMilliseconds","clearTags","closeChat","destroy","closed","reload","twilioConversationId","recordClick","stop","createZchat","token","uid","Authorization","DirectLine","registerPageLoad","runNudges","zChat","account_key","accountKey","zenDeskFunctions","uuid","twilioConversionId","protocol","JsonHubProtocol","transport","HttpTransportType","WebSockets","LongPolling","logMessageContent","logger","LogLevel","Error","hubConnection","HubConnectionBuilder","withUrl","withHubProtocol","withAutomaticReconnect","build","info","connection","recipient","on","identityBody","tokenResponse","twilioToken","accessToken","ConversationsClient","create","twilioClient","typing","sendTyping","department","preChat","visitorInfo","display_name","setVisitorInfo","newPage","zendeskDefaultDepartment","setVisitorDefaultDepartment","detail","getServingAgentsInfo","nick","queue_position","myInterval","myIntervalBusy","getConnectionStatus","LivechatSDK","license","agent","setVisitorData","pageUrl","pageTitle","customProperties","ReferringWebsite","GroupID","IntegrationID","VisitorID","SessionID","ConversationID","getPredictedAgent","sendChatStore","txt","ConnectionStatus","FailedToConnect","ExpiredToken","Ended","sessionId","integrationId","hide_bot","params","decodeURIComponent","decodeURL","referrer","preview","custom","ReactDOM"],"mappings":"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","file":"static/js/main.4f8512f2.chunk.js","sourcesContent":["module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"Restart your chat conversation\",\r\n \"chat.endall\":\"End Chat\",\r\n \"chat.cancel\":\"Cancel\",\r\n \"chat.cookie\":\"This digital assistant uses cookies to ensure you get the best experience\",\r\n \"chat.learn\":\"Learn more\",\r\n \"chat.minimize\":\"Minimize\",\r\n \"chat.hide\":\"Close\",\r\n \"chat.hidebot.text\":\"Close will make the avatar disappear for 15 minutes\",\r\n \"chat.hidebot\":\"Close (Hide) Avatar\",\r\n \"chat.restart\":\"Restart\",\r\n \"switch.language\":\"Switch Language\",\r\n \"switch.property\":\"Switch Property\",\r\n \"restart.converstation\":\"Restart Conversation\",\r\n \"chat.endtext\":\"Are you sure you want to end the current chat?\",\r\n \"check.availabity\":\"Check Availability\",\r\n \"check.availabity.submit\":\"Submit\",\r\n \"check.availabity.cancel\":\"Cancel\",\r\n \"check.availabity.adults\":\"Adults (13+)\",\r\n \"check.availabity.children\":\"Children\",\r\n \"check.availabity.child.age\":\"Age - child\",\r\n \"feedback.leave\":\"Leave Feedback\",\r\n \"feedback.leave.message\":\"Leave Message\",\r\n};\r\n","module.exports = {\r\n \"chat.end\":\"Reinicie su conversación de chat\",\r\n \"chat.endall\":\"Chat finalizado\",\r\n \"chat.cancel\":\"Cancelar\",\r\n \"chat.cookie\":\"Este asistente digital utiliza cookies para garantizar que obtenga la mejor experiencia\",\r\n \"chat.learn\":\"Aprende más\",\r\n \"chat.minimize\":\"Minimizar\",\r\n \"chat.hide\":\"Cerca\",\r\n \"chat.hidebot.text\":\"Cerrar hará que la avatar desaparezca durante 15 minutos.\",\r\n \"chat.hidebot\":\"Cerrar robot\",\r\n \"chat.restart\":\"Reiniciar\",\r\n \"switch.language\":\"Cambiar de idioma\",\r\n \"switch.property\":\"Cambiar propiedad\",\r\n \"restart.converstation\":\"Reiniciar conversación\",\r\n \"chat.endtext\":\"¿Está seguro de que desea finalizar el chat actual?\",\r\n \"check.availabity\":\"Consultar disponibilidad\",\r\n \"check.availabity.submit\":\"Enviar\",\r\n \"check.availabity.cancel\":\"Cancelar\",\r\n \"check.availabity.adults\":\"Adultas (13+)\",\r\n \"check.availabity.children\":\"Niñas\",\r\n \"check.availabity.child.age\":\"Edad - niña\",\r\n \"feedback.leave\":\"Deja un comentario\",\r\n \"feedback.leave.message\":\"Deja un mensaje\"\r\n};\r\n","module.exports = {\r\n \"chat.end\":\"重新开始您的聊天对话\",\r\n \"chat.cancel\":\"取消\",\r\n \"chat.endall\":\"结束聊天\",\r\n \"chat.cookie\":\"此数字助理使用 cookie 来确保您获得最佳体验\",\r\n \"chat.learn\":\"了解更多\",\r\n \"chat.minimize\":\"最小化\",\r\n \"chat.hide\":\"关\",\r\n \"chat.hidebot.text\":\"关闭将使头像消失 15 分钟\",\r\n \"chat.hidebot\":\"关闭机器人\",\r\n \"chat.restart\":\"重新开始\",\r\n \"switch.language\":\"切换语言\",\r\n \"switch.property\":\"开关属性\",\r\n \"restart.converstation\":\"重新开始聊天\",\r\n \"chat.endtext\":\"您确定要结束当前聊天吗?\",\r\n \"check.availabity\":\"检查可用性\",\r\n \"check.availabity.submit\":\"提交\",\r\n \"check.availabity.cancel\":\"取消\",\r\n \"check.availabity.adults\":\"成年人 (13+)\",\r\n \"check.availabity.children\":\"孩子们\",\r\n \"check.availabity.child.age\":\"年龄 - 儿童\",\r\n \"feedback.leave\":\"留下反饋信息\",\r\n \"feedback.leave.message\":\"请留言\",\r\n};\r\n","module.exports = {\r\n \"chat.end\":\"Redémarrez votre conversation de chat\",\r\n \"chat.endall\":\"Mettre fin à la discussion\",\r\n \"chat.cancel\":\"Annuler\",\r\n \"chat.cookie\":\"Cet assistant numérique utilise des cookies pour vous garantir la meilleure expérience\",\r\n \"chat.learn\":\"Apprendre encore plus\",\r\n \"chat.minimize\":\"Minimiser\",\r\n \"chat.hide\":\"proche\",\r\n \"chat.hidebot.text\":\"Fermer fera disparaître l'avatar pendant 15 minutes\",\r\n \"chat.hidebot\":\"Fermer le robot\",\r\n \"chat.restart\":\"Redémarrer\",\r\n \"switch.language\":\"Changer de langue\",\r\n \"switch.property\":\"Changer de propriété\",\r\n \"restart.converstation\":\"Redémarrer la conversation\",\r\n \"chat.endtext\":\"Voulez-vous vraiment mettre fin au chat en cours ?\",\r\n \"check.availabity\":\"Consultar disponibilidad\",\r\n \"check.availabity.submit\":\"Enviar\",\r\n \"check.availabity.cancel\":\"Annuler\",\r\n \"check.availabity.adults\":\"Adultes (13+)\",\r\n \"check.availabity.children\":\"Enfants\",\r\n \"check.availabity.child.age\":\"Âge - Enfant\",\r\n \"feedback.leave\":\"Laisser les commentaires\",\r\n \"feedback.leave.message\":\"Laissez un message\",\r\n};\r\n","module.exports = {\r\n \"chat.end\":\"重新開始您的聊天對話\",\r\n \"chat.cancel\":\"取消\",\r\n \"chat.endall\":\"結束聊天\",\r\n \"chat.cookie\":\"此數字助理使用 cookie 來確保您獲得最佳體驗\",\r\n \"chat.learn\":\"了解更多\",\r\n \"chat.minimize\":\"最小化\",\r\n \"chat.hide\":\"關\",\r\n \"chat.hidebot.text\":\"關閉將使頭像消失 15 分鐘\",\r\n \"chat.hidebot\":\"關閉機器人\",\r\n \"chat.restart\":\"重新開始\",\r\n \"switch.language\":\"切換語言\",\r\n \"switch.property\":\"開關屬性\",\r\n \"restart.converstation\":\"重啟轉換\",\r\n \"chat.endtext\":\"您確定要結束當前聊天嗎?\",\r\n \"check.availabity\":\"檢查可用性\",\r\n \"check.availabity.submit\":\"提交\",\r\n \"check.availabity.cancel\":\"取消\",\r\n \"check.availabity.adults\":\"成年人 (13+)\",\r\n \"check.availabity.children\":\"孩子們\",\r\n \"check.availabity.child.age\":\"年齡 - 兒童\",\r\n \"feedback.leave\":\"留下反馈信息\",\r\n \"feedback.leave.message\":\"請留言\",\r\n};\r\n","module.exports = {\r\n \"chat.end\":\"Tīmataria anō tō kōrerorerorero\",\r\n \"chat.endall\":\"Whakamutua te Korero\",\r\n \"chat.cancel\":\"Whakakore\",\r\n \"chat.cookie\":\"Ma tenei kaiawhina mamati e whakamahi nga pihikete kia pai ai to wheako\",\r\n \"chat.learn\":\"Ako atu\",\r\n \"chat.minimize\":\"Whakaiti\",\r\n \"chat.hide\":\"Katia\",\r\n \"chat.hidebot.text\":\"Kati ka ngaro te avatar mo te 15 meneti\",\r\n \"chat.hidebot\":\"Katia Bot\",\r\n \"chat.restart\":\"Tīmata anō\",\r\n \"switch.language\":\"Whakawhiti Reo\",\r\n \"switch.property\":\"whakawhiti taonga\",\r\n \"restart.converstation\":\"Tīmataria anō te Whakawhitiwhiti\",\r\n \"chat.endtext\":\"Kei te tino hiahia koe ki te whakamutu i te korerorero onāianei?\",\r\n \"check.availabity\":\"Tirohia te waatea\",\r\n \"check.availabity.submit\":\"Tukuna\",\r\n \"check.availabity.cancel\":\"Whakakore\",\r\n \"check.availabity.adults\":\"Nga pakeke (13+)\",\r\n \"check.availabity.children\":\"Tamariki\",\r\n \"check.availabity.child.age\":\"Tau - Tamariki\",\r\n \"feedback.leave\":\"Waiho Urupare\",\r\n \"feedback.leave.message\":\"Waiho Karere\",\r\n};\r\n","module.exports = {\r\n \"chat.end\":\"Mulai ulang percakapan obrolan Anda\",\r\n \"chat.endall\":\"Akhiri Obrolan\",\r\n \"chat.cancel\":\"Membatalkan\",\r\n \"chat.cookie\":\"Asisten digital ini menggunakan cookie untuk memastikan Anda mendapatkan pengalaman terbaik\",\r\n \"chat.learn\":\"Belajarlah lagi\",\r\n \"chat.minimize\":\"Memperkecil\",\r\n \"chat.hide\":\"Menutup\",\r\n \"chat.hidebot.text\":\"Tutup akan membuat avatar menghilang selama 15 menit\",\r\n \"chat.hidebot\":\"Tutup Bot\",\r\n \"chat.restart\":\"Mengulang kembali\",\r\n \"switch.language\":\"Ganti Bahasa\",\r\n \"switch.property\":\"Beralih Properti\",\r\n \"restart.converstation\":\"Mulai ulang Percakapan\",\r\n \"chat.endtext\":\"Apakah Anda yakin ingin mengakhiri obrolan saat ini?\",\r\n \"check.availabity\":\"Cek ketersediaan\",\r\n \"check.availabity.submit\":\"Kirim\",\r\n \"check.availabity.cancel\":\"Membatalkan\",\r\n \"check.availabity.adults\":\"Dewasa (13+)\",\r\n \"check.availabity.children\":\"Anak-anak\",\r\n \"check.availabity.child.age\":\"Usia - Anak\",\r\n \"feedback.leave\":\"Tinggalkan umpan balik\",\r\n \"feedback.leave.message\":\"Tinggalkan pesan\",\r\n};\r\n","module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"बातचीत समाप्त करें\",\r\n \"chat.endall\":\"बातचीत बंद करें\",\r\n \"chat.cancel\":\"रद्द करें\",\r\n \"chat.cookie\":\"यह डिजिटल सहायक यह सुनिश्चित करने के लिए कुकीज़ का उपयोग करता है कि आपको सबसे अच्छा अनुभव मिले\",\r\n \"chat.learn\":\"और अधिक जानें\",\r\n \"chat.minimize\":\"छोटा करें\",\r\n \"chat.hide\":\"बंद करें\",\r\n \"chat.hidebot.text\":\"करीब 15 मिनट के लिए अवतार गायब कर देगा।\",\r\n \"chat.hidebot\":\"बोट बंद करें\",\r\n \"chat.restart\":\"पुनर्प्रारंभ करें\",\r\n \"switch.language\":\"भाषा बदलें\",\r\n \"switch.property\":\"संपत्ति बदले\",\r\n \"restart.converstation\":\"वार्तालाप को पुनरारंभ करें\",\r\n \"chat.endtext\":\"क्या आप वाकई वर्तमान चैट को समाप्त करना चाहते हैं?\",\r\n \"check.availabity\":\"उपलब्धता जांचें\",\r\n \"check.availabity.submit\":\"प्रस्तुत करना\",\r\n \"check.availabity.cancel\":\"रद्द करें\",\r\n \"check.availabity.adults\":\"वयस्कों (13+)\",\r\n \"check.availabity.children\":\"बच्चे\",\r\n \"check.availabity.child.age\":\"आयु - बच्चा\",\r\n \"feedback.leave\":\"प्रतिक्रिया दें\",\r\n \"feedback.leave.message\":\"संदेश छोड़ें\",\r\n};\r\n","module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"Herbegin jou kletsgesprek\",\r\n \"chat.endall\":\"Beëindig klets\",\r\n \"chat.cancel\":\"Kanselleer\",\r\n \"chat.cookie\":\"Hierdie digitale assistent gebruik koekies om te verseker dat u die beste ervaring kry\",\r\n \"chat.learn\":\"Leer meer\",\r\n \"chat.minimize\":\"Minimaliseer\",\r\n \"chat.hide\":\"Naby\",\r\n \"chat.hidebot.text\":\"Close sal die avatar vir 15 minute laat verdwyn\",\r\n \"chat.hidebot\":\"Maak Bot toe\",\r\n \"chat.restart\":\"Begin oor\",\r\n \"switch.language\":\"Van taal wisselen\",\r\n \"switch.property\":\"Verander eiendom\",\r\n \"restart.converstation\":\"Herbegin omskakeling\",\r\n \"chat.endtext\":\"Is jy seker jy wil die huidige klets beëindig?\",\r\n \"check.availabity\":\"Gaan Beskikbaarheid na\",\r\n \"check.availabity.submit\":\"Indien\",\r\n \"check.availabity.cancel\":\"Kanselleer\",\r\n \"check.availabity.adults\":\"Volwassenes (13+)\",\r\n \"check.availabity.children\":\"Kinders\",\r\n \"check.availabity.child.age\":\"Ouderdom - kind\",\r\n \"feedback.leave\":\"Los terugvoer\",\r\n \"feedback.leave.message\":\"Los Boodskap\",\r\n};\r\n","module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"Starten Sie Ihr Chat-Gespräch neu\",\r\n \"chat.endall\":\"Ende des Gesprächs\",\r\n \"chat.cancel\":\"Abbrechen\",\r\n \"chat.cookie\":\"Dieser digitale Assistent verwendet Cookies, um sicherzustellen, dass Sie die beste Erfahrung machen\",\r\n \"chat.learn\":\"Mehr erfahren\",\r\n \"chat.minimize\":\"Minimieren\",\r\n \"chat.hide\":\"Nah dran\",\r\n \"chat.hidebot.text\":\"Schließen lässt den Avatar für 15 Minuten verschwinden\",\r\n \"chat.hidebot\":\"Bot schließen\",\r\n \"chat.restart\":\"Neu starten\",\r\n \"switch.language\":\"Sprache wechseln\",\r\n \"switch.property\":\"Eigenschaften wechseln\",\r\n \"restart.converstation\":\"Starten Sie die Konvertierung neu\",\r\n \"chat.endtext\":\"Möchten Sie den aktuellen Chat wirklich beenden?\",\r\n \"check.availabity\":\"Verfügbarkeit prüfen\",\r\n \"check.availabity.submit\":\"Einreichen\",\r\n \"check.availabity.cancel\":\"Absagen\",\r\n \"check.availabity.adults\":\"Erwachsene (13+)\",\r\n \"check.availabity.children\":\"Kinder\",\r\n \"check.availabity.child.age\":\"Alter - Kind\",\r\n \"feedback.leave\":\"Hinterlasse Kommentar\",\r\n \"feedback.leave.message\":\"Nachricht hinterlassen\",\r\n};\r\n","module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"チャットの会話を再開する\",\r\n \"chat.endall\":\"チャットを終了する\",\r\n \"chat.cancel\":\"キャンセル\",\r\n \"chat.cookie\":\"このデジタルアシスタントはCookieを使用して、最高のエクスペリエンスを提供します\",\r\n \"chat.learn\":\"もっと詳しく知る\",\r\n \"chat.minimize\":\"最小化\",\r\n \"chat.hide\":\"近い\",\r\n \"chat.hidebot.text\":\"閉じるとアバターが 15 分間消えます\",\r\n \"chat.hidebot\":\"ボットを閉じる\",\r\n \"chat.restart\":\"再起動\",\r\n \"switch.language\":\"言語の切り替え\",\r\n \"switch.property\":\"スイッチプロパティ\",\r\n \"restart.converstation\":\"会話を再開する\",\r\n \"chat.endtext\":\"現在のチャットを終了してもよろしいですか?\",\r\n \"check.availabity\":\"空室状況を確認する\",\r\n \"check.availabity.submit\":\"送信\",\r\n \"check.availabity.cancel\":\"キャンセル\",\r\n \"check.availabity.adults\":\"大人 (13+)\",\r\n \"check.availabity.children\":\"子供\",\r\n \"check.availabity.child.age\":\"年齢 - 子\",\r\n \"feedback.leave\":\"フィードバックを残す\",\r\n \"feedback.leave.message\":\"メッセージを残す\",\r\n};\r\n","module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"채팅 대화 다시 시작\",\r\n \"chat.endall\":\"채팅 종료\",\r\n \"chat.cancel\":\"취소\",\r\n \"chat.cookie\":\"이 디지털 비서는 쿠키를 사용하여 최고의 경험을 보장합니다.\",\r\n \"chat.learn\":\"더 알아보기\",\r\n \"chat.minimize\":\"최소화\",\r\n \"chat.hide\":\"닫다\",\r\n \"chat.hidebot.text\":\"닫기를 누르면 아바타가 15분 동안 사라집니다.\",\r\n \"chat.hidebot\":\"봇 닫기\",\r\n \"chat.restart\":\"재시작\",\r\n \"switch.language\":\"언어 전환\",\r\n \"switch.property\":\"속성 전환\",\r\n \"restart.converstation\":\"대화 다시 시작\",\r\n \"chat.endtext\":\"현재 채팅을 종료하시겠습니까?\",\r\n \"check.availabity\":\"가용성 확인\",\r\n \"check.availabity.submit\":\"제출하다\",\r\n \"check.availabity.cancel\":\"취소\",\r\n \"check.availabity.adults\":\"성인 (13+)\",\r\n \"check.availabity.children\":\"어린이들\",\r\n \"check.availabity.child.age\":\"나이 - 아이\",\r\n \"feedback.leave\":\"피드백 남기기\",\r\n \"feedback.leave.message\":\"메시지 남기기\",\r\n};\r\n","module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"เริ่มการสนทนาของคุณใหม่\",\r\n \"chat.endall\":\"สิ้นสุดการแชท\",\r\n \"chat.cancel\":\"ยกเลิก\",\r\n \"chat.cookie\":\"ผู้ช่วยดิจิทัลนี้ใช้คุกกี้เพื่อให้แน่ใจว่าคุณได้รับประสบการณ์ที่ดีที่สุด\",\r\n \"chat.learn\":\"เรียนรู้เพิ่มเติม\",\r\n \"chat.minimize\":\"ย่อเล็กสุด\",\r\n \"chat.hide\":\"ปิด I\",\r\n \"chat.hidebot.text\":\"ปิดจะทำให้อวาตาร์หายไปเป็นเวลา 15 นาที\",\r\n \"chat.hidebot\":\"ปิดบอท\",\r\n \"chat.restart\":\"เริ่มต้นใหม่\",\r\n \"switch.language\":\"เปลี่ยนภาษา\",\r\n \"switch.property\":\"เปลี่ยนคุณสมบัติ\",\r\n \"restart.converstation\":\"เริ่มการสนทนาใหม่\",\r\n \"chat.endtext\":\"คุณแน่ใจหรือไม่ว่าต้องการสิ้นสุดการแชทปัจจุบัน\",\r\n \"check.availabity\":\"ตรวจสอบห้องว่าง\",\r\n \"check.availabity.submit\":\"ส่ง\",\r\n \"check.availabity.cancel\":\"ยกเลิก\",\r\n \"check.availabity.adults\":\"ผู้ใหญ่ (13+)\",\r\n \"check.availabity.children\":\"เด็ก\",\r\n \"check.availabity.child.age\":\"อายุ - เด็ก\",\r\n \"feedback.leave\":\"แสดงความคิดเห็น\",\r\n \"feedback.leave.message\":\"ทิ้งข้อความไว้\",\r\n};\r\n","module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"I-restart ang iyong pag-uusap sa chat\",\r\n \"chat.endall\":\"Tapusin ang Chat\",\r\n \"chat.cancel\":\"Kanselahin\",\r\n \"chat.cookie\":\"Gumagamit ang cookies ng digital na ito ng cookies upang matiyak na makukuha mo ang pinakamahusay na karanasan\",\r\n \"chat.learn\":\"Matuto nang higit pa\",\r\n \"chat.minimize\":\"I-minimize\",\r\n \"chat.hide\":\"Isara\",\r\n \"chat.hidebot.text\":\"Ang pagsara ay gagawing mawala ang avatar sa loob ng 15 minuto\",\r\n \"chat.hidebot\":\"Isara ang Bot\",\r\n \"chat.restart\":\"I-restart\",\r\n \"switch.language\":\"Lumipat ng Wika\",\r\n \"switch.property\":\"Lumipat ng Ari-arian\",\r\n \"restart.converstation\":\"I-restart ang Conversation\",\r\n \"chat.endtext\":\"Sigurado ka bang gusto mong tapusin ang kasalukuyang chat?\",\r\n \"check.availabity\":\"Suriin ang Availability\",\r\n \"check.availabity.submit\":\"Ipasa\",\r\n \"check.availabity.cancel\":\"Kanselahin\",\r\n \"check.availabity.adults\":\"Matanda (13+)\",\r\n \"check.availabity.children\":\"Mga bata\",\r\n \"check.availabity.child.age\":\"Edad - Bata\",\r\n \"feedback.leave\":\"Mag-iwan ng opinyon\",\r\n \"feedback.leave.message\":\"Mag-iwan ng mensahe\",\r\n};\r\n","module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"Khởi động lại cuộc trò chuyện của bạn\",\r\n \"chat.endall\":\"Kết thúc trò chuyện\",\r\n \"chat.cancel\":\"Hủy bỏ\",\r\n \"chat.cookie\":\"Trợ lý kỹ thuật số này sử dụng cookie để đảm bảo bạn có được trải nghiệm tốt nhất\",\r\n \"chat.learn\":\"Tìm hiểu thêm\",\r\n \"chat.minimize\":\"Giảm thiểu\",\r\n \"chat.hide\":\"Đóng\",\r\n \"chat.hidebot.text\":\"Đóng sẽ làm cho hình đại diện biến mất trong 15 phút\",\r\n \"chat.hidebot\":\"Đóng Bot\",\r\n \"chat.restart\":\"Khởi động lại\",\r\n \"switch.language\":\"Chuyển đổi ngôn ngữ\",\r\n \"switch.property\":\"Chuyển đổi thuộc tính\",\r\n \"restart.converstation\":\"Khởi động lại hội thoại\",\r\n \"chat.endtext\":\"Bạn có chắc chắn muốn kết thúc cuộc trò chuyện hiện tại không?\",\r\n \"check.availabity\":\"Sẵn sàng kiểm tra\",\r\n \"check.availabity.submit\":\"Nộp\",\r\n \"check.availabity.cancel\":\"Hủy bỏ\",\r\n \"check.availabity.adults\":\"Người lớn (13+)\",\r\n \"check.availabity.children\":\"Bọn trẻ\",\r\n \"check.availabity.child.age\":\"Tuổi - Trẻ em\",\r\n \"feedback.leave\":\"Để lại phản hồi\",\r\n \"feedback.leave.message\":\"Để lại tin nhắn\",\r\n};\r\n","module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"أعد بدء محادثة الدردشة الخاصة بك\",\r\n \"chat.endall\":\"نهاية المحادثة\",\r\n \"chat.cancel\":\"يلغي\",\r\n \"chat.cookie\":\"يستخدم هذا المساعد الرقمي ملفات تعريف الارتباط لضمان حصولك على أفضل تجربة\",\r\n \"chat.learn\":\"يتعلم أكثر\",\r\n \"chat.minimize\":\"تصغير\",\r\n \"chat.hide\":\"يغلق\",\r\n \"chat.hidebot.text\":\"إغلاق سيجعل الصورة الرمزية تختفي لمدة 15 دقيقة\",\r\n \"chat.hidebot\":\"إغلاق (إخفاء) الصورة الرمزية\",\r\n \"chat.restart\":\"اعادة البدء\",\r\n \"switch.language\":\"تبديل اللغة\",\r\n \"switch.property\":\"تبديل الممتلكات\",\r\n \"restart.converstation\":\"أعد تشغيل المحادثة\",\r\n \"chat.endtext\":\"هل أنت متأكد أنك تريد إنهاء الدردشة الحالية؟\",\r\n \"check.availabity\":\"التحقق من الصلاحية\",\r\n \"check.availabity.submit\":\"إرسال\",\r\n \"check.availabity.cancel\":\"يلغي\",\r\n \"check.availabity.adults\":\"الكبار (13+)\",\r\n \"check.availabity.children\":\"أطفال\",\r\n \"check.availabity.child.age\":\"العمر - الطفل\",\r\n \"feedback.leave\":\"اترك تقييم للخدمة\",\r\n \"feedback.leave.message\":\"اترك رسالة\",\r\n};","module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"Перезапустите чат\",\r\n \"chat.endall\":\"Конец чат\",\r\n \"chat.cancel\":\"Отмена\",\r\n \"chat.cookie\":\"Этот цифровой помощник использует файлы cookie, чтобы обеспечить вам наилучшие впечатления.\",\r\n \"chat.learn\":\"Учить больше\",\r\n \"chat.minimize\":\"Свести к минимуму\",\r\n \"chat.hide\":\"Закрывать\",\r\n \"chat.hidebot.text\":\"Close заставит аватар исчезнуть на 15 минут.\",\r\n \"chat.hidebot\":\"Закрыть (скрыть) аватар\",\r\n \"chat.restart\":\"Начать сначала\",\r\n \"switch.language\":\"Смена языка\",\r\n \"switch.property\":\"Переключить свойство\",\r\n \"restart.converstation\":\"Перезапустить разговор\",\r\n \"chat.endtext\":\"Вы уверены, что хотите завершить текущий чат?\",\r\n \"check.availabity\":\"Проверить наличие свободных мест\",\r\n \"check.availabity.submit\":\"Представлять на рассмотрение\",\r\n \"check.availabity.cancel\":\"Отмена\",\r\n \"check.availabity.adults\":\"Взрослые (13+)\",\r\n \"check.availabity.children\":\"Дети\",\r\n \"check.availabity.child.age\":\"Возраст - ребенок\",\r\n \"feedback.leave\":\"Оставьте отзыв\",\r\n \"feedback.leave.message\":\"Оставить сообщение\",\r\n};\r\n","module.exports = {\r\n /* 01.General */\r\n \"chat.end\":\"Aloita chat-keskustelu uudelleen\",\r\n \"chat.endall\":\"Lopeta keskustelu\",\r\n \"chat.cancel\":\"Peruuttaa\",\r\n \"chat.cookie\":\"Tämä digitaalinen avustaja käyttää evästeitä varmistaakseen, että saat parhaan käyttökokemuksen\",\r\n \"chat.learn\":\"Lue lisää\",\r\n \"chat.minimize\":\"Minimoida\",\r\n \"chat.hide\":\"kiinni\",\r\n \"chat.hidebot.text\":\"Sulje poistaa avatarin 15 minuutiksi\",\r\n \"chat.hidebot\":\"Sulje (Piilota) Avatar\",\r\n \"chat.restart\":\"Uudelleenkäynnistää\",\r\n \"switch.language\":\"Vaihda kieltä\",\r\n \"switch.property\":\"Vaihda omaisuutta\",\r\n \"restart.converstation\":\"Aloita keskustelu uudelleen\",\r\n \"chat.endtext\":\"Haluatko varmasti lopettaa nykyisen keskustelun?\",\r\n \"check.availabity\":\"Tarkista saatavuus\",\r\n \"check.availabity.submit\":\"Lähetä\",\r\n \"check.availabity.cancel\":\"Peruuttaa\",\r\n \"check.availabity.adults\":\"Aikuiset (13+)\",\r\n \"check.availabity.children\":\"Lapset\",\r\n \"check.availabity.child.age\":\"Ikä - lapsi\",\r\n \"feedback.leave\":\"Jätä palautetta\",\r\n \"feedback.leave.message\":\"Jätä viesti\",\r\n};\r\n","import React, { Component, Fragment } from \"react\";\r\nimport ReactHtmlParser from \"react-html-parser\";\r\nimport \"./ChatBubble.css\";\r\n\r\nexport default class ChatBubble extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n hover: false,\r\n nudgeavtar: false,\r\n botPosition:\"right\"\r\n };\r\n this.bubble_clicked = this.bubble_clicked.bind(this);\r\n this.nudge_clicked = this.nudge_clicked.bind(this);\r\n this.hint_close = this.hint_close.bind(this);\r\n this.nudgeavtar_clicked = this.nudgeavtar_clicked.bind(this);\r\n // Listen to messages\r\n window.addEventListener(\r\n \"message\",\r\n this.windowBuddbleMessage.bind(this),\r\n false\r\n );\r\n }\r\n\r\n windowBuddbleMessage(event) {\r\n if (\r\n typeof event.data === \"string\" &&\r\n event.data.startsWith(\"nudgepopup:\")\r\n ) {\r\n this.setState({ nudgeavtar: true });\r\n }\r\n }\r\n\r\n nudgeavtar_clicked() {\r\n this.setState({ nudgeavtar: false });\r\n this.postMessage(`nudgeminimized`);\r\n }\r\n\r\n bubble_clicked() {\r\n this.props.onOpened();\r\n }\r\n\r\n nudge_clicked() {\r\n this.props.onOpened();\r\n }\r\n\r\n hint_close(e) {\r\n e.stopPropagation();\r\n this.props.hintClosed();\r\n }\r\n\r\n handleMouseEnter = () => {\r\n this.setState({ hover: true });\r\n };\r\n handleMouseLeave = () => {\r\n this.setState({ hover: false });\r\n };\r\n /**\r\n * Posts a message to the parent window, if this window has one\r\n * @param {*} msg\r\n */\r\n postMessage(msg) {\r\n if (window.parent) {\r\n window.parent.postMessage(msg, \"*\");\r\n }\r\n }\r\n\r\n /**\r\n * Listens to component changes, sends iframe custom styles\r\n */\r\n componentDidMount() {\r\n //if (prevProps.botSettings !== this.props.botSettings) {\r\n if (\r\n this.props.botSettings.bubbleSettings !== undefined &&\r\n this.props.botSettings.bubbleSettings !== null\r\n ) {\r\n //Post Message to set the Alignment of bubble iframe\r\n if (\r\n this.props.botSettings.bubbleSettings.bubblePosition !== undefined &&\r\n this.props.botSettings.bubbleSettings.bubblePosition !== null\r\n ) {\r\n const bubblePosition =\r\n this.props.botSettings.bubbleSettings.bubblePosition;\r\n if (this.props.mobile === \"true\") {\r\n this.setState({botPosition: bubblePosition.alignInMobile===\"Left\"?this.props.position+\"_\"+bubblePosition.alignInMobile.toLowerCase():this.props.position});\r\n this.postMessage(\r\n `chatbotalign:${bubblePosition.alignInMobile}|side:${bubblePosition.sideInMobile}|bottom:${bubblePosition.bottomInMobile}`\r\n );\r\n } else {\r\n this.setState({botPosition:bubblePosition.align===\"Left\"?this.props.position+\"_\"+bubblePosition.align.toLowerCase():this.props.position});\r\n this.postMessage(\r\n `chatbotalign:${bubblePosition.align}|side:${bubblePosition.side}|bottom:${bubblePosition.bottom}`\r\n );\r\n }\r\n \r\n }\r\n //Post Message to set the animation settings iframe\r\n if (\r\n this.props.botSettings.bubbleSettings.scrollAnimation !== undefined &&\r\n this.props.botSettings.bubbleSettings.scrollAnimation !== null\r\n ) {\r\n const scrollAnimation =\r\n this.props.botSettings.bubbleSettings.scrollAnimation;\r\n if (scrollAnimation.enabled === true) {\r\n this.postMessage(\r\n `chatbotscrollanimation|${scrollAnimation.beforeAnimationTop}|${scrollAnimation.afterAnimationTop}`\r\n );\r\n }\r\n }\r\n } else {\r\n this.postMessage(`chatbotremoveposition`);\r\n }\r\n //}\r\n }\r\n\r\n render() {\r\n return !this.props.disabledChatbot ? (\r\n this.state.nudgeavtar === false ? (\r\n
\r\n {this.props.currentNudge\r\n ? this.props.currentNudge.eyeCatcher.messages.map((msg) => {\r\n return typeof msg === \"string\" ? (\r\n
\r\n {msg}\r\n
\r\n
\r\n ) : (\r\n
\r\n \"\"\r\n
\r\n );\r\n })\r\n : \"\"}\r\n {this.props.botSettings !== undefined ? (\r\n this.props.botSettings.bubbleSettings !== undefined &&\r\n this.props.botSettings.bubbleSettings !== null &&\r\n this.props.botSettings.bubbleSettings.enabled ? (\r\n \r\n \r\n {ReactHtmlParser(this.props.botSettings.bubbleSettings.text)}\r\n \r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n
\r\n )}\r\n \r\n ) : (\r\n
\r\n
\r\n \r\n )\r\n ) : null;\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\n\r\nimport \"./WebViewExtension.css\";\r\n\r\nexport const WEB_VIEW_EXT_ID = \"WEB_VIEW\";\r\n\r\nexport default class WebViewExtension extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n // bottomMargin: 0,\r\n popUpHeight: 0,\r\n title: props.webview.title,\r\n url: props.webview.url,\r\n height: props.webview.height,\r\n hideHeader: props.webview.largeWindowHideHeader,\r\n };\r\n\r\n \r\n // Resize box to sit above input\r\n this.findInputTimerId = setInterval(() => {\r\n let chatbox = document.getElementById(\"chat_box\");\r\n\r\n if (!chatbox) {\r\n return;\r\n }\r\n\r\n let inputs = chatbox.querySelectorAll(\"input\");\r\n let inputRegion = chatbox.querySelectorAll(\"[role='form']\");\r\n\r\n if (inputs.length < 1 || inputRegion.length < 1) {\r\n return;\r\n }\r\n\r\n let popUp = document.getElementsByClassName(\"chat_popup booking_popup\");\r\n\r\n if (popUp.length) {\r\n this.setState({\r\n popUpHeight: popUp[0].clientHeight,\r\n });\r\n }\r\n\r\n // this.setState({\r\n // bottomMargin: inputRegion[0].clientHeight\r\n // });\r\n\r\n clearInterval(this.findInputTimerId);\r\n }, 50);\r\n\r\n this.close = this.close.bind(this);\r\n }\r\n\r\n componentDidUpdate(oldProps) {\r\n if (!this.props.webview) {\r\n return;\r\n }\r\n\r\n if (\r\n !oldProps.webview ||\r\n oldProps.webview.title !== this.props.webview.title ||\r\n oldProps.webview.url !== this.props.webview.url ||\r\n oldProps.webview.height !== this.props.webview.height ||\r\n oldProps.webview.largeWindowHideHeader !==\r\n this.props.webview.largeWindowHideHeader\r\n ) {\r\n this.setState({\r\n title: this.props.webview.title,\r\n url: this.props.webview.url,\r\n height: this.props.webview.height,\r\n hideHeader: this.props.webview.largeWindowHideHeader,\r\n });\r\n }\r\n }\r\n\r\n close() {\r\n this.setState({\r\n closing: true,\r\n });\r\n // Allow animation to play\r\n setTimeout(() => {\r\n this.setState({\r\n closing: false,\r\n });\r\n\r\n this.props.api.setExtension(WEB_VIEW_EXT_ID, undefined);\r\n }, 800);\r\n }\r\n\r\n render() {\r\n const color = this.props.styling;\r\n let containerStyling = {\r\n // bottom: this.state.bottomMargin,\r\n // height: 'calc(' + this.state.height + '% - ' + (this.state.bottomMargin + this.state.popUpHeight) + 'px)',\r\n height: this.props.messenger === true ?\r\n this.state.hideHeader !== undefined && this.state.hideHeader === true ? \"calc(100vh - 1px)\" : \"calc(100vh - 55px)\" : \"calc(\" + this.state.height + \"% - \" + 0 + \"px)\",\r\n animationName: this.state.closing ? \"slide-down\" : \"slide-up\",\r\n top: this.props.messenger === true ?\r\n this.state.hideHeader !== undefined && this.state.hideHeader === true ? \"0px\" : \"16px\" : \"\"\r\n };\r\n\r\n return (\r\n
\r\n {this.state.hideHeader !== undefined &&\r\n this.state.hideHeader === true ? (\r\n
\r\n 0\r\n ? \"white\"\r\n : color.colours.headerText || \"black\",\r\n }}\r\n className=\"web-view-close-svg\"\r\n >\r\n \r\n \r\n
\r\n ) : (\r\n \r\n {this.state.title} \r\n
\r\n {/* \r\n \r\n */}\r\n \r\n
\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { WEB_VIEW_EXT_ID } from '../WebViewExtension/WebViewExtension';\r\n\r\nexport const WEB_VIEW_EX_EXT_ID = \"WEB_VIEW_EXTERNAL\";\r\n\r\nexport default class WebViewExternalExtension extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n if (props.webviewExt) {\r\n if (props.api.isMobile() == \"true\") {\r\n this.openInternalView(props.webviewExt.title, props.webviewExt.url, props.api,props.webviewExt.largeWindowHideHeader);\r\n } else {\r\n this.openExternalView(props.webviewExt, props.styling);\r\n }\r\n }\r\n\r\n window.addEventListener(\"message\", this.receiveWindowMessage.bind(this), false);\r\n }\r\n\r\n receiveWindowMessage(event) {\r\n if (typeof event.data === 'string' && event.data.startsWith('closeWebView')) {\r\n this.props.api.setExtension(WEB_VIEW_EX_EXT_ID, undefined);\r\n }\r\n\r\n if (typeof event.data === 'string' && event.data.startsWith('fallbackWebView')) {\r\n this.props.api.setExtension(WEB_VIEW_EXT_ID,\r\n {\r\n title: this.props.webviewExt.title,\r\n url: this.props.webviewExt.url,\r\n height: 100\r\n });\r\n\r\n setTimeout(() => { this.props.api.setExtension(WEB_VIEW_EX_EXT_ID, undefined) }, 10);\r\n }\r\n }\r\n\r\n componentDidUpdate(oldProps) {\r\n if (!this.props.opened) {\r\n this.closeExternalView();\r\n }\r\n\r\n if (!this.props.webviewExt) {\r\n return;\r\n }\r\n if (!oldProps.webviewExt ||\r\n oldProps.webviewExt.title !== this.props.webviewExt.title ||\r\n oldProps.webviewExt.url !== this.props.webviewExt.url) {\r\n\r\n if (this.props.api.isMobile()===true) {\r\n this.openInternalView(this.props.webviewExt.title, this.props.webviewExt.url, this.props.api, this.props.largeWindowHideHeader);\r\n } else {\r\n this.openExternalView(this.props.webviewExt, this.props.styling);\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.closeExternalView();\r\n }\r\n\r\n openInternalView(title, url, api, largeWindowHideHeader) {\r\n // Switch to inline view (for mobile) \r\n api.setExtension(WEB_VIEW_EXT_ID, { title, url, height: 100, largeWindowHideHeader: largeWindowHideHeader });\r\n setTimeout(() => api.setExtension(WEB_VIEW_EX_EXT_ID, undefined), 10); // Immediate successive calls cause state issues :(\r\n }\r\n\r\n openExternalView(settings, styling) {\r\n if (settings.mode == undefined || settings.mode === null) {\r\n let payload = {\r\n title: settings.title,\r\n url: settings.url,\r\n styling,\r\n hideHeader: settings.largeWindowHideHeader\r\n };\r\n this.postMessage(\"openWebView:\" + JSON.stringify(payload));\r\n }\r\n else {\r\n let payload = {\r\n title: settings.title,\r\n url: settings.url,\r\n mode: settings.mode,\r\n styling,\r\n hideHeader: settings.largeWindowHideHeader\r\n };\r\n this.postMessage(\"WebViewMode:\" + JSON.stringify(payload));\r\n }\r\n }\r\n\r\n closeExternalView() {\r\n this.postMessage(\"closeWebView\");\r\n }\r\n\r\n render() {\r\n return
\r\n }\r\n\r\n postMessage(msg) {\r\n if (window.parent) {\r\n window.parent.postMessage(msg, '*');\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport './ChatSuggestionExtension.css';\r\n\r\nexport const CHAT_SUGGESTION_EXT_ID = \"CHAT_SUGGESTION\";\r\n\r\nexport default class ChatSuggestionExtension extends Component {\r\n constructor (props) {\r\n super();\r\n\r\n this.state = {\r\n searchTerm: '',\r\n bottomMargin: 0,\r\n filteredSuggestions: [],\r\n maximised: false\r\n };\r\n\r\n if (props.suggestions) {\r\n props.suggestions.getSuggestionCallback = this.processUserInput.bind(this);\r\n }\r\n\r\n this.onSuggestionClicked.bind(this);\r\n\r\n // Finds the input box and listens to it\r\n // Hacky, but WebChat doesn't expose an API for listening to input\r\n this.findInputTimerId = setInterval(() => {\r\n let chatbox = document.getElementById(\"chat_box\");\r\n if (!chatbox) {\r\n return;\r\n }\r\n let inputs = chatbox.querySelectorAll(\"input\");\r\n let inputRegion = chatbox.querySelectorAll(\"[role='form']\")\r\n \r\n if (inputs.length < 1 || inputRegion.length < 1) {\r\n return;\r\n }\r\n \r\n this.setState({\r\n bottomMargin: inputRegion[0].clientHeight\r\n });\r\n this.updateSuggestions(inputs[0].value);\r\n\r\n inputs[0].addEventListener(\"input\", (event) => {\r\n this.updateSuggestions(event.target.value);\r\n });\r\n\r\n clearInterval(this.findInputTimerId);\r\n }, 50); \r\n }\r\n\r\n componentDidUpdate(oldProps) {\r\n if (!this.props.suggestions) {\r\n return;\r\n }\r\n \r\n if (oldProps.suggestions.time !== this.props.suggestions.time) {\r\n this.updateSuggestions(this.state.searchTerm);\r\n this.setState({ maximised: false });\r\n this.props.suggestions.getSuggestionCallback = this.processUserInput.bind(this);\r\n }\r\n }\r\n\r\n processUserInput(input) {\r\n if (!this.props.suggestions) {\r\n return;\r\n }\r\n\r\n let filtered = this.props.suggestions.options\r\n .filter(suggestion => this.doesSuggestionMatch(suggestion, input));\r\n \r\n let match;\r\n if (filtered.length === 1) {\r\n match = filtered[0].name;\r\n } else {\r\n let exactMatch = filtered.find(suggestion => suggestion.name.toLowerCase() === input.toLowerCase() ||\r\n (suggestion.synonyms && suggestion.synonyms.some(syn => syn.toLowerCase() === input.toLowerCase())));\r\n \r\n match = exactMatch ? exactMatch.name : undefined;\r\n }\r\n\r\n if (!match && filtered.length < 1) {\r\n this.updateSuggestions('');\r\n }\r\n return match;\r\n }\r\n\r\n updateSuggestions (text) {\r\n this.setState({\r\n searchTerm: text,\r\n maximised: (text.length > 0),\r\n filteredSuggestions: this.props.suggestions.options\r\n .filter(suggestion => this.doesSuggestionMatch(suggestion, text))\r\n });\r\n }\r\n\r\n doesSuggestionMatch(suggestion, text) {\r\n let searchable = [...(suggestion.synonyms ? suggestion.synonyms.map(syn => syn.toLowerCase()) : []), suggestion.name.toLowerCase()];\r\n\r\n return searchable.some(term => term.startsWith(text.toLowerCase()));\r\n }\r\n\r\n onSuggestionClicked(suggestion) {\r\n this.props.api.sendActivity({\r\n type: 'WEB_CHAT/SEND_MESSAGE',\r\n payload: { text: suggestion }\r\n });\r\n }\r\n\r\n render () { \r\n const color = this.props.styling;\r\n return
\r\n {\r\n this.state.maximised ?\r\n
\r\n
\r\n { this.props.suggestions.question }\r\n
{ this.setState({ maximised: !this.state.maximised })}}> \r\n { this.state.maximised ? \"Hide\" : '' }\r\n
\r\n
\r\n {\r\n this.state.filteredSuggestions.map(suggestion =>\r\n
{this.onSuggestionClicked(suggestion.name)}}>\r\n
\r\n
\r\n { suggestion.name }\r\n
\r\n
\r\n )\r\n }\r\n
\r\n :\r\n ''\r\n }\r\n
\r\n }\r\n}","import React from 'react';\r\nimport { FormattedMessage, injectIntl } from 'react-intl';\r\n\r\nconst InjectMassage = props => ;\r\n\r\nexport default injectIntl(InjectMassage, {\r\n withRef: false\r\n});\r\n","import React, { useState, useEffect, Component, Fragment } from \"react\";\r\nimport IntlMessages from \"../helpers/IntlMessages\";\r\n\r\nexport default function PersistentMenu({ menuOpen, persistentMenu, persistentMenuEnabled,\r\n handleMenuClick, botSettings, cookiesDetail, botSite }) {\r\n const mindate = new Date().getFullYear();\r\n const [currentYear, setCurrentYear] = useState(mindate)\r\n const MenuClick = (itemType, items) => {\r\n var data = {\r\n itemType: itemType,\r\n items: items\r\n }\r\n handleMenuClick(data);\r\n };\r\n const cookiesDetailClick = (url) => {\r\n cookiesDetail(url);\r\n };\r\n const BotSiteClick = (url) => {\r\n botSite(url);\r\n };\r\n return (\r\n \r\n {persistentMenu.length > 0 && (\r\n
\r\n
\r\n {persistentMenu.map((item, itemIndex) => (\r\n
\r\n {item.callToActions.filter((i)=>i.payLoad!==\"select_property\" && i.payLoad!==\"switch_language\" && i.payLoad!==\"restart\" && i.payLoad!==\"hidebot\").map((menu,menuIndex)=>(\r\n \r\n ))}\r\n {item.callToActions.filter((i) => i.payLoad === \"select_property\" || i.payLoad === \"switch_language\" || i.payLoad === \"restart\" || i.payLoad === \"hidebot\").map((menu, menuIndex) => (\r\n \r\n {menu.payLoad !== \"switch_language\" &&\r\n \r\n }\r\n {botSettings && botSettings.multilingual && menu.payLoad === \"switch_language\" &&\r\n \r\n }\r\n \r\n ))}\r\n
\r\n ))}\r\n \r\n
\r\n
\r\n )}\r\n
\r\n )\r\n}","import React, { Component } from \"react\";\r\nimport IntlMessages from \"../helpers/IntlMessages\";\r\n//import \"./BookingApp.css\";\r\n//import Select from \"react-select\";\r\n\r\nexport default class PropertyPopup extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n active: this.props.open_property_popup,\r\n isCheckedAvailability: this.props.isCheckedAvailability || false,\r\n pid:\r\n localStorage.getItem(this.props.property_state_store) !== undefined &&\r\n localStorage.getItem(this.props.property_state_store) !== null\r\n ? localStorage.getItem(this.props.property_state_store)\r\n : \"\",\r\n };\r\n\r\n if (!this.props.bookingApp.rooms) {\r\n this.props.bookingApp.rooms = 1;\r\n this.props.bookingApp.adults = 1;\r\n this.props.bookingApp.children = 0;\r\n }\r\n\r\n this.selectProperty = (elem) => {\r\n this.props.bookingApp.selectedPid = elem;\r\n this.props.setPropertyPopUp(false);\r\n this.forceUpdate();\r\n localStorage.setItem(this.props.bookingApp.lStore.PROPERTYID, elem.value);\r\n localStorage.setItem(\r\n this.props.bookingApp.lStore.PROPERTYNAME,\r\n elem.label\r\n );\r\n\r\n this.props.bookingApp.callbacks.getStore().dispatch({\r\n type: \"WEB_CHAT/SEND_EVENT\",\r\n payload: {\r\n name: \"webchat/update\",\r\n value: {\r\n pid: elem.value,\r\n pname: elem.label,\r\n },\r\n },\r\n });\r\n this.setState({ active: false });\r\n this.props.close_property_popup();\r\n this.props.GetServiceAvailable(this.props.property_state_store);\r\n };\r\n this.sendDates = this.sendDates.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n }\r\n\r\n // componentDidUpdate = (prevProps, prevState, snapshot) => {\r\n // if (\r\n // this.props.room_app &&\r\n // this.props.room_app.reinit &&\r\n // this.state.active !== true\r\n // ) {\r\n // this.setState({ active: this.props.room_app.reinit });\r\n // this.setState({ open: this.props.room_app.reinit });\r\n // }\r\n // };\r\n\r\n // FIXME:\r\n // This EventListener is to ensure that the pop up window closes when the user enters the input box at the bottom. But it will affect the input in the pop up window.\r\n // FIXME:\r\n // componentDidMount = () => {\r\n // window.addEventListener(\"input\", this.close_pop.bind(this), false);\r\n // };\r\n\r\n toggle() {\r\n const { active } = this.state;\r\n this.setState({ active: !active });\r\n this.setState({ open: !active });\r\n this.props.setPropertyPopUp(false);\r\n this.props.close_pop(); \r\n this.props.close_property_popup();\r\n }\r\n close_pop(event) {\r\n if (this.state.active) {\r\n this.setState({ active: false });\r\n this.setState({ open: false });\r\n this.props.setPropertyPopUp(false);\r\n this.props.close_pop();\r\n this.props.close_property_popup();\r\n }\r\n }\r\n\r\n sendDates() {\r\n var hotel = {};\r\n if (this.props.bookingApp.selectedPid) {\r\n hotel = this.state.properties.find(\r\n (property) => property.pid === this.props.bookingApp.selectedPid\r\n );\r\n }\r\n this.props.bookingApp.callbacks.getStore().dispatch({\r\n type: \"WEB_CHAT/SEND_EVENT\",\r\n payload: {\r\n name: \"webchat/booking-details\",\r\n value: {\r\n hotel: hotel.name,\r\n dates: this.props.bookingApp.dates,\r\n rooms: this.props.bookingApp.rooms,\r\n adults: this.props.bookingApp.adults,\r\n kids: this.props.bookingApp.kids,\r\n },\r\n },\r\n });\r\n //this.close();\r\n this.close_pop();\r\n }\r\n\r\n setCheckAvailability = (isCheckedAvailability) => {\r\n this.setState({ isCheckedAvailability: isCheckedAvailability });\r\n };\r\n\r\n render() {\r\n var { room_app } = this.props;\r\n var { selectedPid } = this.props.bookingApp;\r\n var hotel = \"\";\r\n if (selectedPid) {\r\n hotel = this.props.bookingApp.properties.find(\r\n (property) => property.pid === selectedPid\r\n );\r\n }\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {this.props.bookingApp.properties &&\r\n this.props.bookingApp.properties.map((elem, index) => (\r\n this.selectProperty(elem)}\r\n key={index}\r\n >\r\n {elem.label}\r\n {this.state.pid === elem.value ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n ))}\r\n
\r\n \r\n \r\n \r\n //
\r\n // \r\n //
\r\n // {this.props.bookingApp.properties && (\r\n // \r\n // )}\r\n //
\r\n //
\r\n // {(room_app && room_app.details.length > 0) ||\r\n // this.props.bookingApp.properties !== undefined ? (\r\n // \r\n // {this.state.active ? (\r\n // \r\n // ) : (\r\n // \r\n // )}\r\n // \r\n // ) : null}\r\n // \r\n );\r\n }\r\n}\r\n","import appLocaleData from 'react-intl/locale-data/en';\r\nimport enMessages from '../locales/en_US';\r\n\r\nconst EnLang = {\r\n messages: {\r\n ...enMessages\r\n },\r\n locale: 'en-US',\r\n data: appLocaleData\r\n};\r\nexport default EnLang;","import appLocaleData from 'react-intl/locale-data/es';\r\nimport esMessages from '../locales/es_ES';\r\n\r\nconst EsLang = {\r\n messages: {\r\n ...esMessages\r\n },\r\n locale: 'es-ES',\r\n data: appLocaleData\r\n};\r\nexport default EsLang;","import appLocaleData from 'react-intl/locale-data/zh';\r\nimport chMessages from '../locales/zh-ZH';\r\n\r\nconst ChLang = {\r\n messages: {\r\n ...chMessages\r\n },\r\n locale: 'zh-ZH',\r\n data: appLocaleData\r\n};\r\nexport default ChLang;","import appLocaleData from 'react-intl/locale-data/fr';\r\nimport chMessages from '../locales/fr-FR';\r\n\r\nconst FrLang = {\r\n messages: {\r\n ...chMessages\r\n },\r\n locale: 'fr-FR',\r\n data: appLocaleData\r\n};\r\nexport default FrLang;","import appLocaleData from 'react-intl/locale-data/zh';\r\nimport chMessages from '../locales/zh-HK';\r\n\r\nconst ChLang = {\r\n messages: {\r\n ...chMessages\r\n },\r\n locale: 'zh-HK',\r\n data: appLocaleData\r\n};\r\nexport default ChLang;","import { mi } from './mi';\r\nimport miMessages from '../locales/mi-MI';\r\n\r\nconst MiLang = {\r\n messages: {\r\n ...miMessages\r\n },\r\n locale: 'mi-MI',\r\n data: mi\r\n};\r\nexport default MiLang;","export const mi = {\n\n locale: 'mi',\n pluralRuleFunction(e, t) {\n return t && e === 1 ? 'one' : 'other';\n }\n}","import appLocaleData from 'react-intl/locale-data/id';\r\nimport enMessages from '../locales/id_ID';\r\n\r\nconst IdLang = {\r\n messages: {\r\n ...enMessages\r\n },\r\n locale: 'id-ID',\r\n data: appLocaleData\r\n};\r\nexport default IdLang;","import appLocaleData from 'react-intl/locale-data/hi';\r\nimport hiMessages from '../locales/hi_HI';\r\n\r\nconst HiLang = {\r\n messages: {\r\n ...hiMessages\r\n },\r\n locale: 'hi-HI',\r\n data: appLocaleData\r\n};\r\nexport default HiLang;","import appLocaleData from 'react-intl/locale-data/af';\r\nimport enMessages from '../locales/af-AF';\r\n\r\nconst AfLang = {\r\n messages: {\r\n ...enMessages\r\n },\r\n locale: 'af-AF',\r\n data: appLocaleData\r\n};\r\nexport default AfLang;","import appLocaleData from 'react-intl/locale-data/de';\r\nimport deMessages from '../locales/de-DE';\r\n\r\nconst DeLang = {\r\n messages: {\r\n ...deMessages\r\n },\r\n locale: 'de-DE',\r\n data: appLocaleData\r\n};\r\nexport default DeLang;","import appLocaleData from 'react-intl/locale-data/ja';\r\nimport jaMessages from '../locales/ja-JA';\r\n\r\nconst JaLang = {\r\n messages: {\r\n ...jaMessages\r\n },\r\n locale: 'ja-JA',\r\n data: appLocaleData\r\n};\r\nexport default JaLang;","import appLocaleData from 'react-intl/locale-data/ko';\r\nimport koMessages from '../locales/ko-KO';\r\n\r\nconst KoLang = {\r\n messages: {\r\n ...koMessages\r\n },\r\n locale: 'ko-KO',\r\n data: appLocaleData\r\n};\r\nexport default KoLang;","import appLocaleData from 'react-intl/locale-data/th';\r\nimport thMessages from '../locales/th-TH';\r\n\r\nconst ThLang = {\r\n messages: {\r\n ...thMessages\r\n },\r\n locale: 'th-TH',\r\n data: appLocaleData\r\n};\r\nexport default ThLang;","import appLocaleData from 'react-intl/locale-data/tl';\r\nimport tlMessages from '../locales/tl-TL';\r\n\r\nconst TlLang = {\r\n messages: {\r\n ...tlMessages\r\n },\r\n locale: 'tl-TL',\r\n data: appLocaleData\r\n};\r\nexport default TlLang;","import appLocaleData from 'react-intl/locale-data/vi';\r\nimport viMessages from '../locales/vi-VI';\r\n\r\nconst ViLang = {\r\n messages: {\r\n ...viMessages\r\n },\r\n locale: 'vi-VI',\r\n data: appLocaleData\r\n};\r\nexport default ViLang;","import appLocaleData from 'react-intl/locale-data/ar';\r\nimport arMessages from '../locales/ar-AR';\r\n\r\nconst ArLang = {\r\n messages: {\r\n ...arMessages\r\n },\r\n locale: 'ar-AR',\r\n data: appLocaleData\r\n};\r\nexport default ArLang;","import appLocaleData from 'react-intl/locale-data/ru';\r\nimport ruMessages from '../locales/ru-RU';\r\n\r\nconst RuLang = {\r\n messages: {\r\n ...ruMessages\r\n },\r\n locale: 'ru-RU',\r\n data: appLocaleData\r\n};\r\nexport default RuLang;","import { addLocaleData } from \"react-intl\";\r\nimport enLang from \"./entries/en-US\";\r\nimport esLang from \"./entries/es-ES\";\r\nimport chLang from \"./entries/zh-ZH\";\r\nimport frLang from \"./entries/fr-FR\";\r\nimport twLang from \"./entries/zh-HK\";\r\nimport miLang from \"./entries/mi-MI\";\r\nimport idLang from \"./entries/id-ID\";\r\nimport hiLang from \"./entries/hi-HI\";\r\n\r\nimport afLang from \"./entries/af-AF\";\r\nimport deLang from \"./entries/de-DE\";\r\nimport jaLang from \"./entries/ja-JA\";\r\nimport koLang from \"./entries/ko-KO\";\r\nimport thLang from \"./entries/th-TH\";\r\nimport tlLang from \"./entries/tl-TL\";\r\nimport viLang from \"./entries/vi-VI\";\r\nimport arLang from \"./entries/ar-AR\";\r\nimport ruLang from \"./entries/ru-RU\";\r\nimport fiLang from \"./entries/fi-FI\";\r\n\r\nconst AppLocale = {\r\n en: enLang,\r\n es: esLang,\r\n zh: chLang,\r\n fr: frLang,\r\n hk: twLang,\r\n mi: miLang,\r\n id: idLang,\r\n hi: hiLang,\r\n af:afLang,\r\n ar:arLang,\r\n de:deLang,\r\n ja:jaLang,\r\n ko:koLang,\r\n th:thLang,\r\n tl:tlLang,\r\n vi:viLang,\r\n ru:ruLang,\r\n fi:fiLang,\r\n};\r\naddLocaleData(AppLocale.en.data);\r\naddLocaleData(AppLocale.es.data);\r\naddLocaleData(AppLocale.zh.data);\r\naddLocaleData(AppLocale.fr.data);\r\naddLocaleData(AppLocale.hk.data);\r\naddLocaleData(AppLocale.mi.data);\r\naddLocaleData(AppLocale.id.data);\r\naddLocaleData(AppLocale.hi.data);\r\naddLocaleData(AppLocale.af.data);\r\naddLocaleData(AppLocale.ar.data);\r\naddLocaleData(AppLocale.de.data);\r\naddLocaleData(AppLocale.ja.data);\r\naddLocaleData(AppLocale.ko.data);\r\naddLocaleData(AppLocale.th.data);\r\naddLocaleData(AppLocale.tl.data);\r\naddLocaleData(AppLocale.vi.data);\r\naddLocaleData(AppLocale.ru.data);\r\naddLocaleData(AppLocale.fi.data);\r\n\r\nexport default AppLocale;\r\n","import appLocaleData from 'react-intl/locale-data/fi';\r\nimport fiMessages from '../locales/fi_FI';\r\n\r\nconst FiLang = {\r\n messages: {\r\n ...fiMessages\r\n },\r\n locale: 'fi-FI',\r\n data: appLocaleData\r\n};\r\nexport default FiLang;","import React, { Component } from \"react\";\r\nimport \"./BookingApp.css\";\r\nimport Select from \"react-select\";\r\n\r\nconst customStyles = {\r\n control: base => ({\r\n ...base,\r\n borderColor: \"#ccc\",\r\n boxShadow: \"0 0 0 1 #ccc\",\r\n \"&:hover\": {\r\n borderColor: \"#ccc\"\r\n }\r\n })\r\n};\r\n\r\nexport default class BookingApp extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n active: this.props.bookingApp.open,\r\n isCheckedAvailability: this.props.isCheckedAvailability || false\r\n };\r\n\r\n if (!this.props.bookingApp.rooms) {\r\n this.props.bookingApp.rooms = 1;\r\n this.props.bookingApp.adults = 1;\r\n this.props.bookingApp.children = 0;\r\n }\r\n\r\n this.selectProperty = event => {\r\n this.props.bookingApp.selectedPid = event;\r\n this.forceUpdate();\r\n localStorage.setItem(\r\n this.props.bookingApp.lStore.PROPERTYID,\r\n event.value\r\n );\r\n localStorage.setItem(\r\n this.props.bookingApp.lStore.PROPERTYNAME,\r\n event.label\r\n );\r\n\r\n this.props.bookingApp.callbacks.getStore().dispatch({\r\n type: \"WEB_CHAT/SEND_EVENT\",\r\n payload: {\r\n name: \"webchat/update\",\r\n value: {\r\n pid: event.value,\r\n pname: event.label\r\n }\r\n }\r\n });\r\n this.setState({ active: false }); \r\n };\r\n this.toggle = this.toggle.bind(this);\r\n this.sendDates = this.sendDates.bind(this);\r\n }\r\n\r\n componentDidUpdate = (prevProps, prevState, snapshot) => {\r\n if (\r\n this.props.room_app &&\r\n this.props.room_app.reinit &&\r\n this.state.active !== true\r\n ) {\r\n this.setState({ active: this.props.room_app.reinit });\r\n this.setState({ open: this.props.room_app.reinit });\r\n }\r\n };\r\n\r\n // FIXME:\r\n // This EventListener is to ensure that the pop up window closes when the user enters the input box at the bottom. But it will affect the input in the pop up window.\r\n // FIXME:\r\n // componentDidMount = () => {\r\n // window.addEventListener(\"input\", this.close_pop.bind(this), false);\r\n // };\r\n\r\n toggle() {\r\n const { active } = this.state;\r\n this.setState({ active: !active });\r\n this.setState({ open: !active });\r\n this.props.close_pop();\r\n }\r\n close_pop(event) {\r\n if (this.state.active) {\r\n this.setState({ active: false });\r\n this.setState({ open: false });\r\n this.props.close_pop();\r\n }\r\n }\r\n\r\n sendDates() {\r\n var hotel = {};\r\n if (this.props.bookingApp.selectedPid) {\r\n hotel = this.state.properties.find(\r\n property => property.pid === this.props.bookingApp.selectedPid\r\n );\r\n }\r\n this.props.bookingApp.callbacks.getStore().dispatch({\r\n type: \"WEB_CHAT/SEND_EVENT\",\r\n payload: {\r\n name: \"webchat/booking-details\",\r\n value: {\r\n hotel: hotel.name,\r\n dates: this.props.bookingApp.dates,\r\n rooms: this.props.bookingApp.rooms,\r\n adults: this.props.bookingApp.adults,\r\n kids: this.props.bookingApp.kids\r\n }\r\n }\r\n });\r\n this.close();\r\n }\r\n\r\n setCheckAvailability = isCheckedAvailability => {\r\n this.setState({ isCheckedAvailability: isCheckedAvailability });\r\n };\r\n\r\n render() {\r\n var { room_app } = this.props;\r\n var { selectedPid } = this.props.bookingApp; \r\n\r\n var hotel = \"\";\r\n if (selectedPid) {\r\n hotel = this.props.bookingApp.properties.find(\r\n property => property.pid === selectedPid\r\n );\r\n } \r\n\r\n return (\r\n
\r\n \r\n
\r\n {this.props.bookingApp.properties && (\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n );\r\n}","import React, { Component, Fragment } from \"react\";\r\n\r\nimport \"./AutoCompleteExtension.css\";\r\n\r\nexport const CHAT_AUTOCOMPLETE_EXT_ID = \"CHAT_AUTOCOMPLETE\";\r\n\r\nexport default class AutoCompleteExtension extends Component {\r\n constructor(props) {\r\n super();\r\n\r\n this.state = {\r\n searchTerm: \"\",\r\n bottomMargin: 0,\r\n filteredSuggestions: [],\r\n maximised: false,\r\n };\r\n\r\n this.onSuggestionClicked.bind(this);\r\n\r\n // Finds the input box and listens to it\r\n // Hacky, but WebChat doesn't expose an API for listening to input\r\n this.findInputTimerId = setInterval(() => {\r\n let chatbox = document.getElementById(\"chat_box\");\r\n if (!chatbox) {\r\n return;\r\n }\r\n let inputs = chatbox.querySelectorAll(\"input\");\r\n let inputRegion = chatbox.querySelectorAll(\"[role='form']\");\r\n\r\n if (inputs.length < 1 || inputRegion.length < 1) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n bottomMargin: inputRegion[0].clientHeight,\r\n });\r\n this.updateSuggestions();\r\n clearInterval(this.findInputTimerId);\r\n }, 50);\r\n }\r\n\r\n componentDidUpdate(oldProps) {\r\n if (!this.props.suggestions) {\r\n return;\r\n }\r\n\r\n if (oldProps.suggestions !== this.props.suggestions) {\r\n this.updateSuggestions();\r\n }\r\n }\r\n\r\n updateSuggestions() {\r\n this.setState({\r\n maximised: this.props.suggestions.length > 0 ? true : false,\r\n filteredSuggestions: this.props.suggestions,\r\n });\r\n }\r\n\r\n onSuggestionClicked(suggestion) {\r\n this.props.api.sendActivity({\r\n type: \"WEB_CHAT/SEND_MESSAGE\",\r\n payload: { text: suggestion },\r\n });\r\n this.props.api.sendActivity({\r\n type: \"WEB_CHAT/SET_SEND_BOX\",\r\n payload: { text: \"\" },\r\n });\r\n this.setState({ maximised: !this.state.maximised });\r\n }\r\n\r\n componentDidMount() {\r\n const self = this;\r\n var ignoreClickOnMeElement = document.getElementById(\"chat_box\");\r\n if (\r\n ignoreClickOnMeElement !== null &&\r\n ignoreClickOnMeElement !== undefined\r\n ) {\r\n document.addEventListener(\"click\", function (event) {\r\n if (self.state.maximised === true) {\r\n var isClickInsideElement = ignoreClickOnMeElement.contains(\r\n event.target\r\n );\r\n if (isClickInsideElement) {\r\n self.setState({ maximised: false });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const color = this.props.styling;\r\n return (\r\n \r\n {this.state.maximised && this.state.filteredSuggestions.length > 0 ? (\r\n \r\n \r\n
\r\n
\r\n
\r\n {\" \"}\r\n {\" \"}\r\n
\r\n Suggestions \r\n
\r\n {this.state.filteredSuggestions.map((suggestion) => (\r\n {\r\n this.onSuggestionClicked(suggestion.response);\r\n }}\r\n >\r\n
\r\n \r\n {\" \"}\r\n
\r\n
\r\n {\" \"}\r\n {suggestion.response}{\" \"}\r\n
\r\n
\r\n \r\n ))}\r\n \r\n \r\n {\r\n this.setState({ maximised: !this.state.maximised });\r\n }}\r\n >\r\n {this.state.maximised ? \"Hide\" : \"\"}\r\n \r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n","import React, { useState, useEffect, Component, Fragment } from \"react\";\r\nimport { Form } from \"reactstrap\";\r\nimport IntlMessages from \"../helpers/IntlMessages\";\r\nimport \"../ChatWindowNew.css\";\r\nexport default function ThumbFeedback({\r\n handleFeedBackResponse,\r\n handleCancelFeedbackResponse,\r\n locale,\r\n changeleaveFeedbackMessage,\r\n}) {\r\n const [inputdata, setInputData] = useState({\r\n name: \"\",\r\n phone: \"\",\r\n email: \"\",\r\n comment: \"\",\r\n });\r\n\r\n const getPlaceholder = (value) => {\r\n switch (locale) {\r\n case \"af\":\r\n if (value === \"name\") {\r\n return \"Jou naam\";\r\n }\r\n if (value === \"phone\") {\r\n return \"Jou telefoonnommer\";\r\n }\r\n if (value === \"email\") {\r\n return \"Jou epos\";\r\n }\r\n if (value === \"comment\") {\r\n return \"'n Kort opsomming van jou versoek\";\r\n }\r\n case \"ar\":\r\n if (value === \"name\") {\r\n return \"اسمك\";\r\n }\r\n if (value === \"phone\") {\r\n return \"رقم تليفونك\";\r\n }\r\n if (value === \"email\") {\r\n return \"بريدك الالكتروني\";\r\n }\r\n if (value === \"comment\") {\r\n return \"ملخص مختصر لطلبك\";\r\n }\r\n case \"de\":\r\n if (value === \"name\") {\r\n return \"Ihr Name\";\r\n }\r\n if (value === \"phone\") {\r\n return \"Deine Telefonnummer\";\r\n }\r\n if (value === \"email\") {\r\n return \"Deine E-Mail\";\r\n }\r\n if (value === \"comment\") {\r\n return \"Eine kurze Zusammenfassung Ihrer Anfrage\";\r\n }\r\n case \"es\":\r\n if (value === \"name\") {\r\n return \"Su nombre\";\r\n }\r\n if (value === \"phone\") {\r\n return \"Su número de teléfono\";\r\n }\r\n if (value === \"email\") {\r\n return \"Tu correo electrónico\";\r\n }\r\n if (value === \"comment\") {\r\n return \"Un breve resumen de su solicitud\";\r\n }\r\n case \"fi\":\r\n if (value === \"name\") {\r\n return \"Sinun nimesi\";\r\n }\r\n if (value === \"phone\") {\r\n return \"Puhelinnumerosi\";\r\n }\r\n if (value === \"email\") {\r\n return \"Sähköpostisi\";\r\n }\r\n if (value === \"comment\") {\r\n return \"Lyhyt yhteenveto pyynnöstäsi\";\r\n }\r\n case \"fr\":\r\n if (value === \"name\") {\r\n return \"votre nom\";\r\n }\r\n if (value === \"phone\") {\r\n return \"Votre numéro de téléphone\";\r\n }\r\n if (value === \"email\") {\r\n return \"Votre e-mail\";\r\n }\r\n if (value === \"comment\") {\r\n return \"Un bref résumé de votre demande\";\r\n }\r\n case \"hi\":\r\n if (value === \"name\") {\r\n return \"आपका नाम\";\r\n }\r\n if (value === \"phone\") {\r\n return \"आपका फोन नंबर\";\r\n }\r\n if (value === \"email\") {\r\n return \"आपका ईमेल\";\r\n }\r\n if (value === \"comment\") {\r\n return \"आपके अनुरोध का संक्षिप्त सारांश\";\r\n }\r\n case \"id\":\r\n if (value === \"name\") {\r\n return \"Namamu\";\r\n }\r\n if (value === \"phone\") {\r\n return \"Nomor telepon Anda\";\r\n }\r\n if (value === \"email\") {\r\n return \"Email mu\";\r\n }\r\n if (value === \"comment\") {\r\n return \"Ringkasan singkat permintaan Anda\";\r\n }\r\n case \"ja\":\r\n if (value === \"name\") {\r\n return \"あなたの名前\";\r\n }\r\n if (value === \"phone\") {\r\n return \"あなたの電話番号\";\r\n }\r\n if (value === \"email\") {\r\n return \"あなたのメールアドレス\";\r\n }\r\n if (value === \"comment\") {\r\n return \"リクエストの簡単な概要\";\r\n }\r\n case \"ko\":\r\n if (value === \"name\") {\r\n return \"당신의 이름\";\r\n }\r\n if (value === \"phone\") {\r\n return \"전화 번호\";\r\n }\r\n if (value === \"email\") {\r\n return \"귀하의 이메일\";\r\n }\r\n if (value === \"comment\") {\r\n return \"귀하의 요청에 대한 간략한 요약\";\r\n }\r\n case \"mi\":\r\n if (value === \"name\") {\r\n return \"To Ingoa\";\r\n }\r\n if (value === \"phone\") {\r\n return \"To Tau Waea\";\r\n }\r\n if (value === \"email\") {\r\n return \"To Email\";\r\n }\r\n if (value === \"comment\") {\r\n return \"He whakarāpopototanga poto o tō tono\";\r\n }\r\n case \"ru\":\r\n if (value === \"name\") {\r\n return \"Ваше имя\";\r\n }\r\n if (value === \"phone\") {\r\n return \"Ваш номер телефона\";\r\n }\r\n if (value === \"email\") {\r\n return \"Ваш адрес электронной почты\";\r\n }\r\n if (value === \"comment\") {\r\n return \"Краткое описание вашего запроса\";\r\n }\r\n case \"tl\":\r\n if (value === \"name\") {\r\n return \"Ang pangalan mo\";\r\n }\r\n if (value === \"phone\") {\r\n return \"Iyong numero ng telepono\";\r\n }\r\n if (value === \"email\") {\r\n return \"Ang email mo\";\r\n }\r\n if (value === \"comment\") {\r\n return \"Isang maikling buod ng iyong kahilingan\";\r\n }\r\n case \"th\":\r\n if (value === \"name\") {\r\n return \"ชื่อของคุณ\";\r\n }\r\n if (value === \"phone\") {\r\n return \"หมายเลขโทรศัพท์ของคุณ\";\r\n }\r\n if (value === \"email\") {\r\n return \"อีเมลของคุณ\";\r\n }\r\n if (value === \"comment\") {\r\n return \"สรุปคำขอของคุณโดยย่อ\";\r\n }\r\n case \"vi\":\r\n if (value === \"name\") {\r\n return \"Tên của bạn\";\r\n }\r\n if (value === \"phone\") {\r\n return \"Số điện thoại của bạn\";\r\n }\r\n if (value === \"email\") {\r\n return \"Email của bạn\";\r\n }\r\n if (value === \"comment\") {\r\n return \"Tóm tắt ngắn gọn về yêu cầu của bạn\";\r\n }\r\n case \"zh\":\r\n if (value === \"name\") {\r\n return \"你的名字\";\r\n }\r\n if (value === \"phone\") {\r\n return \"你的电话号码\";\r\n }\r\n if (value === \"email\") {\r\n return \"你的邮件\";\r\n }\r\n if (value === \"comment\") {\r\n return \"您的请求的简要摘要\";\r\n }\r\n case \"zh-TW\":\r\n if (value === \"name\") {\r\n return \"你的名字\";\r\n }\r\n if (value === \"phone\") {\r\n return \"你的電話號碼\";\r\n }\r\n if (value === \"email\") {\r\n return \"你的郵件\";\r\n }\r\n if (value === \"comment\") {\r\n return \"您的請求的簡要摘要\";\r\n }\r\n default:\r\n if (value === \"name\") {\r\n return \"Your Name\";\r\n }\r\n if (value === \"phone\") {\r\n return \"Your Phone Number\";\r\n }\r\n if (value === \"email\") {\r\n return \"Your Email\";\r\n }\r\n if (value === \"comment\") {\r\n return \"A brief summary of your request\";\r\n }\r\n }\r\n };\r\n const handleChange = (e) => {\r\n if (e.target.name === \"name\") {\r\n setInputData({ ...inputdata, name: e.target.value });\r\n } else if (e.target.name === \"phone\") {\r\n setInputData({ ...inputdata, phone: e.target.value });\r\n } else if (e.target.name === \"email\") {\r\n setInputData({ ...inputdata, email: e.target.value });\r\n } else if (e.target.name === \"comment\") {\r\n setInputData({ ...inputdata, comment: e.target.value });\r\n changeleaveFeedbackMessage(e.target.value);\r\n }\r\n };\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n var body = \"\";\r\n if (inputdata.name !== \"\") {\r\n body = body + \"\\r\\n Name: \" + inputdata.name;\r\n }\r\n if (inputdata.phone !== \"\") {\r\n body = body + \"\\r\\n Phone Number: \" + inputdata.phone;\r\n }\r\n if (inputdata.email !== \"\") {\r\n body = body + \"\\r\\n Email: \" + inputdata.email;\r\n }\r\n if (inputdata.comment !== \"\") {\r\n body =\r\n body + \"\\r\\n A brief summary of your request: \" + inputdata.comment;\r\n } \r\n handleFeedBackResponse(\r\n body,\r\n inputdata.name,\r\n inputdata.phone,\r\n inputdata.email\r\n );\r\n setInputData({\r\n ...inputdata,\r\n name: \"\",\r\n phone: \"\",\r\n email: \"\",\r\n comment: \"\",\r\n });\r\n };\r\n const handleCancel = () => {\r\n setInputData({\r\n ...inputdata,\r\n name: \"\",\r\n phone: \"\",\r\n email: \"\",\r\n comment: \"\",\r\n });\r\n handleCancelFeedbackResponse();\r\n };\r\n return (\r\n
\r\n

\r\n \r\n

\r\n
handleSubmit(e)}>\r\n
\r\n handleChange(e)}\r\n required={\"required\"}\r\n >\r\n
\r\n
\r\n handleChange(e)}\r\n required={\"required\"}\r\n >\r\n
\r\n
\r\n handleChange(e)}\r\n required={\"required\"}\r\n >\r\n
\r\n
\r\n handleChange(e)}\r\n required={\"required\"}\r\n >\r\n
\r\n handleSubmit(e)}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, { Component, Fragment } from \"react\";\r\nimport ReactWebChat from \"botframework-webchat\";\r\n//import BookingApp from \"./BookingApp\";\r\nimport \"./ChatWindow.css\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./ChatWindowNew.css\";\r\nimport WebViewExtension, {\r\n WEB_VIEW_EXT_ID,\r\n} from \"./Extensions/WebViewExtension/WebViewExtension\";\r\nimport WebViewExternalExtension, {\r\n WEB_VIEW_EX_EXT_ID,\r\n} from \"./Extensions/WebViewExternalExtension/WebViewExternalExtension\";\r\nimport ChatSuggestionExtension, {\r\n CHAT_SUGGESTION_EXT_ID,\r\n} from \"./Extensions/ChatSuggestionExtension/ChatSuggestionExtension\";\r\nimport PersistentMenu from \"./ChatComponent/PersistentMenu\";\r\nimport PropertyPopup from \"./ChatComponent/PropertyPopup\";\r\nimport { IntlProvider } from \"react-intl\";\r\nimport AppLocale from \"./lang\";\r\nimport {\r\n DropdownMenu,\r\n DropdownItem,\r\n DropdownToggle,\r\n UncontrolledDropdown,\r\n Row,\r\n Col,\r\n Input,\r\n FormGroup,\r\n Label,\r\n Form,\r\n Button,\r\n CustomInput,\r\n} from \"reactstrap\";\r\nimport BookingApp from \"./BookingApp\";\r\nimport ChatWindowTypingIndicator from \"./ChatWindowTypingIndicator\";\r\nimport ChatWindowParticipantTagger from \"./ChatWindowParticipantTagger\";\r\nimport ChatWindowCardAction from \"./ChatWindowCardAction\";\r\nimport Translate from \"./helpers/Translate\";\r\nimport { AttachmentMiddleware } from \"./Extensions/AttachmentMiddleware\";\r\nimport IntlMessages from \"./helpers/IntlMessages\";\r\nimport ReactHtmlParser from \"react-html-parser\";\r\nimport CheckAvailablity from \"./ChatComponent/CheckAvailablity\";\r\nimport ServicePopup from \"./ChatComponent/ServicePopup\";\r\nimport FeedbackPopup from \"./ChatComponent/FeedbackPopup\";\r\nimport AutoCompleteExtension, {\r\n CHAT_AUTOCOMPLETE_EXT_ID,\r\n} from \"./Extensions/AutoCompleteExtension/AutoCompleteExtension\";\r\nimport ThumbFeedback from \"./ChatComponent/ThumbFeedback\";\r\nconst TRANSLATE_URL = process.env.REACT_APP_API_URL + \"/google-translate\";\r\nconst ANALYTICS_URL = process.env.REACT_APP_API_URL + \"/google-analytics\";\r\nconst VISITOR_URL = process.env.REACT_APP_API_URL + \"/visitors\";\r\nconst ADDLINK_URL = process.env.REACT_APP_API_URL + \"/links\";\r\nconst SERVICES_URL = process.env.REACT_APP_API_URL + \"/searchallservice\";\r\nconst LEAVE_FEEDBACK = process.env.REACT_APP_API_URL + \"/save-leavefeedback\";\r\nconst styleOptions = {\r\n backgroundColor: \"#e9eef4\",\r\n bubbleBorderRadius: 8,\r\n bubbleTextColor: \"#353f48\",\r\n bubbleBackground: \"#fff\",\r\n bubbleFromUserBorderRadius: 8,\r\n bubbleFromUserBackground: \"#dfcf92\",\r\n bubbleFromUserTextColor: \"#353f48\",\r\n sendBoxTextColor: \"#000\",\r\n sendBoxBorderTop: \"solid 1px #fff\",\r\n sendBoxBorderBottom: \"\",\r\n sendBoxButtonColor: \"#767676\",\r\n sendBoxButtonColorOnFocus: \"#333\",\r\n sendBoxButtonColorOnHover: \"#333\",\r\n sendBoxPlaceholderColor: \"#767676\",\r\n paddingWide: 20,\r\n hideUploadButton: true,\r\n timestampColor: \"#767676\",\r\n sendBoxBackground: \"#fff\",\r\n bubbleBorderColor: \"#E6E6E6\",\r\n bubbleFromUserBorderColor: \"#E6E6E6\",\r\n suggestedActionLayout: \"stacked\",\r\n suggestedActionHeight: 30,\r\n suggestedActionBorderRadius: \"50vh\",\r\n suggestedActionBorderWidth: 0,\r\n suggestedActionBackground: \"#fff\",\r\n suggestedActionTextColor: \"#353f48\",\r\n};\r\n\r\nconst localeOptions = [\r\n { id: \"en\", name: \"English\", desc: \"English\", code: \"en\", locale: \"en\" },\r\n { id: \"hi\", name: \"Hindi\", desc: \"हिंदी\", code: \"hi\", locale: \"hi\" },\r\n {\r\n id: \"id\",\r\n name: \"Indonesian\",\r\n desc: \"bahasa Indonesia\",\r\n code: \"id\",\r\n locale: \"id\",\r\n },\r\n { id: \"es\", name: \"Spanish\", desc: \"Español\", code: \"es\", locale: \"es\" },\r\n { id: \"fr\", name: \"French\", desc: \"français\", code: \"fr\", locale: \"fr\" },\r\n { id: \"de\", name: \"German\", desc: \"Deutsche\", code: \"de\", locale: \"de\" },\r\n { id: \"zh\", name: \"Chinese\", desc: \"简体中文\", code: \"ZH-簡\", locale: \"zh\" },\r\n {\r\n id: \"vi\",\r\n name: \"Vietnamese\",\r\n desc: \"Tiếng Việt\",\r\n code: \"vi\",\r\n locale: \"vi\",\r\n },\r\n { id: \"th\", name: \"Thai\", desc: \"ไทย\", code: \"th\", locale: \"th\" },\r\n { id: \"ja\", name: \"Japanese\", desc: \"日本語\", code: \"ja\", locale: \"ja\" },\r\n {\r\n id: \"zh-TW\",\r\n name: \"Chinese (Traditional)\",\r\n desc: \"繁體中文\",\r\n code: \"ZH-繁\",\r\n locale: \"hk\",\r\n },\r\n {\r\n id: \"tl\",\r\n name: \"Tagalog (Filipino)\",\r\n desc: \"Tagalog (Filipino)\",\r\n code: \"tl\",\r\n locale: \"tl\",\r\n },\r\n { id: \"af\", name: \"Afrikaans\", desc: \"Afrikaans\", code: \"af\", locale: \"af\" },\r\n { id: \"ko\", name: \"Korean\", desc: \"한국어\", code: \"ko\", locale: \"ko\" },\r\n { id: \"mi\", name: \"Maori\", desc: \"Maori\", code: \"mi\", locale: \"mi\" },\r\n { id: \"ar\", name: \"Arabic\", desc: \"عربي\", code: \"ar\", locale: \"ar\" },\r\n { id: \"ru\", name: \"Russian\", desc: \"Русский\", code: \"ru\", locale: \"ru\" },\r\n { id: \"fi\", name: \"Finnish\", desc: \"Suomalainen\", code: \"fi\", locale: \"fi\" },\r\n];\r\n\r\nexport default class ChatWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.props.bookingApp.callbacks.close = () => {\r\n this.props.bookingApp.open = false;\r\n this.forceUpdate();\r\n };\r\n this.props.setBubbleToShrinkIn();\r\n localStorage.setItem(this.props.language_state_store, this.props.lang);\r\n this.state = {\r\n ask_close: false,\r\n menu_open: false,\r\n ask_bot_hide: false,\r\n language: this.props.lang,\r\n languageCode: \"\",\r\n langLocale: \"\",\r\n visitorPopupState: true,\r\n googleAnalytics: {},\r\n name: \"\",\r\n email: \"\",\r\n phoneNumber: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n zipCode: \"\",\r\n consentGiven: false,\r\n languageOptions: localeOptions.sort(this.dynamicSort(\"name\")),\r\n persistentMenuData: [],\r\n open_language_popup: false,\r\n open_property_popup: false,\r\n open_availblity_popup: false,\r\n open_service_popup: false,\r\n open_ZChatfeedback_popup: false,\r\n bubble_type: \"\",\r\n availblityData: null,\r\n zChatfeedbackData: null,\r\n isServiceAvailable: false,\r\n isButtonDisable: false,\r\n leaveFeedbackMessage: \"\",\r\n endChat: false,\r\n };\r\n\r\n this.state.confirm_cookies =\r\n localStorage.getItem(this.props.cookies_state_store) !== \"yes\";\r\n\r\n this.hide_bot_confirm = () => {\r\n this.setState({ ask_bot_hide: false });\r\n this.props.hideBot();\r\n };\r\n this.close_bot_ask_hide = () => {\r\n this.setState({ ask_bot_hide: false });\r\n this.props.onClosed();\r\n };\r\n this.end_clicked = () => {\r\n this.setState({ ask_close: true });\r\n this.setState({ menu_open: false });\r\n if (this.props.messenger === true) {\r\n this.props.bot_restartClick();\r\n }\r\n };\r\n this.menu_popup_open = () => {\r\n this.setState({ menu_open: true });\r\n this.setState({ ask_close: false });\r\n };\r\n this.menu_popup_Close = () => {\r\n this.setState({ menu_open: false });\r\n };\r\n this.close_confirmed = () => {\r\n if (this.props.inZenDesk) {\r\n this.setState({\r\n ask_close: false,\r\n open_ZChatfeedback_popup: true,\r\n endChat: true,\r\n });\r\n } else {\r\n this.setState({ ask_close: false });\r\n this.props.endClicked();\r\n }\r\n };\r\n this.close_language_popup = () => {\r\n this.setState({ open_language_popup: false });\r\n };\r\n this.open_language_popup = () => {\r\n this.setState({ open_language_popup: true });\r\n };\r\n this.close_property_popup = () => {\r\n this.setState({ open_property_popup: false });\r\n };\r\n this.close_service_popup = () => {\r\n this.setState({ open_service_popup: false });\r\n };\r\n this.OpenServicePopUp = () => {\r\n this.setState({ open_service_popup: true });\r\n };\r\n this.popupclose_confirmed = () => {\r\n this.setState({ ask_close: false });\r\n this.props.closeClicked();\r\n };\r\n this.refresh = () => {\r\n this.props.refreshClicked();\r\n };\r\n this.close_cancel = () => {\r\n this.setState({ ask_close: false });\r\n };\r\n this.close_clicked = () => {\r\n this.setState({ ask_bot_hide: true });\r\n //this.props.onClosed();\r\n };\r\n this.close_cardapp = () => {\r\n this.setState({ card_app: undefined });\r\n };\r\n this.close_roomapp = () => {\r\n this.setState({ room_app: undefined });\r\n };\r\n this.cookies_understood = () => {\r\n localStorage.setItem(this.props.cookies_state_store, \"yes\");\r\n this.setState({ confirm_cookies: false });\r\n };\r\n this.availblityForm = (data) => {\r\n this.setState({ open_availblity_popup: true, availblityData: data });\r\n };\r\n this.closeAvailblityForm = () => {\r\n this.setState({ open_availblity_popup: false });\r\n this.props.setAvailblity(undefined);\r\n };\r\n\r\n this.setZchatFeedback = (data) => {\r\n this.setState({\r\n open_ZChatfeedback_popup: false,\r\n zChatfeedbackData: data,\r\n });\r\n this.props.sendFeedbackZenDeskChat(data, this.state.endChat);\r\n };\r\n\r\n this.cookies_details = (cookiesURL) => {\r\n this.addLinks(cookiesURL);\r\n if (window.parent) {\r\n window.parent.postMessage(\"openUrl:\" + cookiesURL + \"\", \"*\");\r\n } else {\r\n window.location = cookiesURL;\r\n }\r\n };\r\n\r\n this.bob_site = (poweredByURL) => {\r\n this.addLinks(poweredByURL);\r\n if (window.parent) {\r\n window.parent.postMessage(\"openUrl:\" + poweredByURL + \"\", \"*\");\r\n } else {\r\n window.location = poweredByURL;\r\n }\r\n };\r\n\r\n this.movetotop = () => {\r\n var els = document.getElementsByClassName(\r\n \"webchat__basic-transcript__scrollable\"\r\n );\r\n for (var el of els) {\r\n el.scrollTo({ top: 0, behavior: \"smooth\" });\r\n }\r\n };\r\n\r\n this.save_visitor = async (event) => {\r\n event.preventDefault();\r\n var user = {\r\n iid: this.props.iid,\r\n gid: this.props.gid,\r\n pid: this.props.pid,\r\n name: this.state.name,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n zipCode: this.state.zipCode,\r\n email: this.state.email,\r\n phoneNumber: this.state.phoneNumber,\r\n consentGiven: this.state.consentGiven,\r\n };\r\n this.setState({ visitorPopupState: false, isButtonDisable: true });\r\n const req = await fetch(`${VISITOR_URL}/${this.props.vid}`, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n user: user,\r\n }),\r\n });\r\n\r\n localStorage.setItem(\r\n this.props.visitor_state_store,\r\n JSON.stringify(user)\r\n );\r\n };\r\n\r\n this.addLinks = async (link) => {\r\n const req = await fetch(`${ADDLINK_URL}`, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n id: this.props.directline.conversationId,\r\n groupId: this.props.gid,\r\n link: link,\r\n }),\r\n });\r\n };\r\n // Adds bot/user tags and icon to conversation blocks\r\n let tagger = new ChatWindowParticipantTagger(\r\n this.props.botSettings.name,\r\n this.props.botSettings.urls.icon,\r\n this.props.gid,\r\n this.props.iid,\r\n this.props.mobile\r\n );\r\n tagger.start();\r\n }\r\n\r\n createCssRules() {\r\n let intervalId = setInterval(() => {\r\n let sendButtonDiv = document.getElementsByClassName(\r\n \"webchat__icon-button\"\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .chat_header_btn_resize i{\r\n color:${this.props.botSettings.colours.closeIcon} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .chat_header_btn_resize i:hover{\r\n color:${this.props.botSettings.colours.closeIconHover} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .chat_header_btn_end svg {\r\n fill: ${this.props.botSettings.colours.closeIcon} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .chat_header_btn_end svg:hover {\r\n fill: ${this.props.botSettings.colours.closeIconHover} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .header_icon svg {\r\n fill: ${this.props.botSettings.colours.closeIcon} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .header_icon svg:hover {\r\n fill: ${this.props.botSettings.colours.closeIconHover} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .chat_header_btn_close svg {\r\n fill: ${this.props.botSettings.colours.minimizeIcon} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .chat_header_btn_close svg:hover {\r\n fill: ${this.props.botSettings.colours.minimizeIconHover} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .chat_header_btn_language svg {\r\n fill: ${this.props.botSettings.colours.minimizeIcon} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .chat_header_btn_language svg:hover {\r\n fill: ${this.props.botSettings.colours.minimizeIconHover} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .chat_header_menuitem svg {\r\n fill: ${this.props.botSettings.colours.minimizeIcon} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .chat_header_menuitem svg:hover {\r\n fill: ${this.props.botSettings.colours.minimizeIconHover} !important;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .webchat__send-icon {\r\n opacity:1;\r\n fill: ${this.props.botSettings.colours.sendIcon} !important;\r\n cursor: pointer;\r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `\r\n .webchat__send-icon:hover {\r\n fill: ${this.props.botSettings.colours.sendIconHover} !important;\r\n \r\n }\r\n `,\r\n 0\r\n );\r\n document.styleSheets[0].insertRule(\r\n `.main {\r\n margin-left: 13px;\r\n margin-right: 13px;\r\n border-bottom-left-radius: 8px;\r\n border-bottom-right-radius: 8px;\r\n border-top-left-radius: 8px;\r\n border-top-right-radius: 8px;\r\n }`,\r\n 0\r\n );\r\n if (sendButtonDiv.length !== 0) {\r\n sendButtonDiv[0].innerHTML =\r\n \"\";\r\n clearInterval(intervalId);\r\n }\r\n }, 1000);\r\n\r\n const getdiv = document.getElementsByClassName(\r\n \"webchat__send-text-box-count\"\r\n );\r\n if (\r\n this.props.inTwiliochat === false &&\r\n this.props.inZenDesk === false &&\r\n this.props.botSettings.features.fixedResponses === true\r\n ) {\r\n if (getdiv === null || getdiv.length === 0) {\r\n const form = document.querySelector(\"form\");\r\n const main = document.getElementsByClassName(\"main\");\r\n if (form !== null) {\r\n const button = document.getElementsByClassName(\r\n \"webchat__icon-button\"\r\n );\r\n let disableButton = document.createElement(\"button\");\r\n main[0].appendChild(disableButton);\r\n disableButton.type = \"button\";\r\n disableButton.style.display = \"none\";\r\n disableButton.style.backgroundColor = \"Transparent\";\r\n disableButton.style.border = \"0\";\r\n disableButton.style.outline = \"0\";\r\n disableButton.style.padding = \"0\";\r\n disableButton.style.width = \"40px\";\r\n disableButton.disabled = \"disabled\";\r\n disableButton.style.opacity = \"0.4\";\r\n disableButton.innerHTML =\r\n \"\";\r\n\r\n const msgBox = document.getElementsByClassName(\r\n \"webchat__send-box-text-box__input\"\r\n );\r\n const input = msgBox[0];\r\n form.setAttribute(\"id\", \"form_send\");\r\n\r\n let div_sendBoxTextCount = document.createElement(\"div\");\r\n document\r\n .getElementById(\"form_send\")\r\n .appendChild(div_sendBoxTextCount);\r\n div_sendBoxTextCount.classList.add(\"webchat__send-text-box-count\");\r\n div_sendBoxTextCount.setAttribute(\r\n \"id\",\r\n \"webchat__send-text-box-count\"\r\n );\r\n const span = document.createElement(\"span\");\r\n div_sendBoxTextCount.appendChild(span);\r\n span.setAttribute(\"id\", \"span-count\");\r\n span.style.marginLeft = \"5px\";\r\n span.style.fontSize = \"14px\";\r\n\r\n function _set() {\r\n var len = this.value.replace(/ /g, \"\").length || 0;\r\n let totalLen = 70;\r\n if (len <= 40) {\r\n span.style.color = \"green\";\r\n button[0].style.display = \"block\";\r\n disableButton.style.display = \"none\";\r\n len = this.value !== \"\" ? 40 - len : \"\";\r\n } else {\r\n button[0].style.display = \"none\";\r\n disableButton.style.display = \"block\";\r\n span.style.color = \"red\";\r\n len = \"-\" + (30 - (totalLen - len));\r\n }\r\n span.innerHTML = len;\r\n }\r\n if (input !== null && input !== \"\") {\r\n input.addEventListener(\"keyup\", (e) => {\r\n if (\r\n this.props.inTwiliochat === false &&\r\n this.props.inZenDesk === false\r\n ) {\r\n document.getElementById(\r\n \"webchat__send-text-box-count\"\r\n ).style.display = \"block\";\r\n let len = input.value.replace(/ /g, \"\").length;\r\n if (len <= 70) {\r\n _set.call(input);\r\n }\r\n }\r\n });\r\n input.addEventListener(\"keypress\", (e) => {\r\n if (\r\n this.props.inTwiliochat === false &&\r\n this.props.inZenDesk === false\r\n ) {\r\n let len = input.value.replace(/ /g, \"\").length;\r\n if (len >= 70) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n } else if (len > 40) {\r\n if (e.key === \"Enter\") {\r\n input.focus();\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n } else {\r\n if (document.getElementById(\"webchat__send-text-box-count\") !== null) {\r\n document.getElementById(\"webchat__send-text-box-count\").style.display =\r\n \"none\";\r\n }\r\n }\r\n if (\r\n this.props.botSettings.features.addOnUpsells &&\r\n this.state.isServiceAvailable\r\n ) {\r\n const divcurated = document.getElementsByClassName(\r\n \"webchat__send-curated-option\"\r\n );\r\n if (divcurated === null || divcurated.length === 0) {\r\n const getMainDiv = document.getElementsByClassName(\"main\");\r\n const formdiv = document.getElementById(\"form_send\");\r\n if (getMainDiv !== null && getMainDiv.length > 0 && formdiv !== null) {\r\n let createCuratedDiv = document.createElement(\"div\");\r\n formdiv.parentNode.insertBefore(createCuratedDiv, formdiv);\r\n createCuratedDiv.className = \"webchat__send-curated-option\";\r\n createCuratedDiv.innerHTML =\r\n \"\" +\r\n \"\" +\r\n \"\" +\r\n \"\" +\r\n \" \";\r\n createCuratedDiv.addEventListener(\"click\", (e) => {\r\n this.setState({ open_service_popup: true });\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n dynamicSort(property) {\r\n var sortOrder = 1;\r\n if (property[0] === \"-\") {\r\n sortOrder = -1;\r\n property = property.substr(1);\r\n }\r\n return function (a, b) {\r\n /* next line works with strings and numbers,\r\n * and you may want to customize it to your needs\r\n */\r\n var result =\r\n a[property] < b[property] ? -1 : a[property] > b[property] ? 1 : 0;\r\n return result * sortOrder;\r\n };\r\n }\r\n\r\n handleVisitorEmailChange = (e) => {\r\n this.setState({ email: e.target.value });\r\n };\r\n handleVisitorNameChange = (e) => {\r\n this.setState({ name: e.target.value });\r\n };\r\n handleVisitorPhoneNumerChange = (e) => {\r\n let val = true;\r\n let str = e.target.value.split(\"\");\r\n for (let i = 0; i < str.length; i++) {\r\n let code = str[i];\r\n code = code.charCodeAt(0);\r\n if (\r\n (code >= 48 || code === 45 || code === 40 || code === 41) &&\r\n (code <= 57 || code === 45 || code === 40 || code === 41)\r\n )\r\n val = true;\r\n else val = false;\r\n }\r\n if (val) this.setState({ phoneNumber: e.target.value });\r\n };\r\n handleVisitorCheckBoxChange = (e) => {\r\n this.setState({ consentGiven: e.target.checked });\r\n };\r\n hadleVisitorFirstNameChange = (e) => {\r\n this.setState({ firstName: e.target.value });\r\n };\r\n hadleVisitorLastNameChange = (e) => {\r\n this.setState({ lastName: e.target.value });\r\n };\r\n hadleVisitorZipCodeChange = (e) => {\r\n this.setState({ zipCode: e.target.value });\r\n };\r\n\r\n handleChangeLanguage = (id) => {\r\n const findLanguage = localeOptions.find((elem) => {\r\n return elem.id === id;\r\n });\r\n\r\n if (findLanguage) {\r\n this.setState({\r\n language: findLanguage.id,\r\n languageCode: findLanguage.code,\r\n langLocale: findLanguage.locale,\r\n });\r\n }\r\n\r\n localStorage.setItem(this.props.language_state_store, findLanguage.id);\r\n\r\n this.props.bookingApp.callbacks.getStore().dispatch({\r\n type: \"WEB_CHAT/SEND_EVENT\",\r\n payload: {\r\n name: \"webchat/lang-update\",\r\n value: {\r\n lang: id,\r\n },\r\n },\r\n });\r\n if (\r\n this.props.persistentMenu.filter((i) => i.locale.includes(id)).length > 0\r\n ) {\r\n let menu = this.props.persistentMenu.filter((i) => i.locale.includes(id));\r\n this.setState({\r\n persistentMenuData: menu,\r\n });\r\n } else {\r\n let menu = this.props.persistentMenu.filter((i) =>\r\n i.locale.includes(\"default\")\r\n );\r\n let menuItem = [];\r\n menu[0].callToActions.map((item) => {\r\n var input = item.title;\r\n if (input !== \"\") {\r\n if (id === \"en\") {\r\n menuItem.push({\r\n title: item.title,\r\n type: item.type,\r\n payLoad: item.payLoad,\r\n url: item.url,\r\n });\r\n } else {\r\n if (\r\n item.payLoad !== \"select_property\" &&\r\n item.payLoad !== \"switch_language\" &&\r\n item.payLoad !== \"restart\" &&\r\n item.payLoad !== \"hidebot\"\r\n ) {\r\n const req = fetch(TRANSLATE_URL, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n q: input,\r\n target: id,\r\n }),\r\n });\r\n req.then((m) => {\r\n m.json().then((k) => {\r\n menuItem.push({\r\n title: k.output,\r\n type: item.type,\r\n payLoad: item.payLoad,\r\n url: item.url,\r\n });\r\n });\r\n });\r\n } else {\r\n menuItem.push({\r\n title: item.title,\r\n type: item.type,\r\n payLoad: item.payLoad,\r\n url: item.url,\r\n });\r\n }\r\n }\r\n this.setState({\r\n persistentMenuData: [\r\n {\r\n locale: id,\r\n callToActions: menuItem,\r\n },\r\n ],\r\n });\r\n }\r\n });\r\n }\r\n this.close_language_popup();\r\n };\r\n\r\n handleMenuClick = (data) => {\r\n if (data.itemType === \"postback\") {\r\n if (data.items.payLoad === \"switch_language\") {\r\n this.setState({ open_language_popup: true });\r\n } else if (data.items.payLoad === \"select_property\") {\r\n this.setState({ open_property_popup: true });\r\n } else if (data.items.payLoad === \"restart\") {\r\n this.end_clicked();\r\n } else if (data.items.payLoad === \"hidebot\") {\r\n this.hide_bot_confirm();\r\n } else {\r\n this.props.bookingApp.callbacks.getStore().dispatch({\r\n type: \"WEB_CHAT/SEND_MESSAGE\",\r\n payload: {\r\n text: data.items.payLoad,\r\n },\r\n });\r\n }\r\n } else {\r\n if (data.items.url.includes(\"utm_source\") === false) {\r\n if (\r\n data.items.url !== \"\" &&\r\n this.state.googleAnalytics !== undefined &&\r\n this.state.googleAnalytics !== null &&\r\n this.state.googleAnalytics.utmSource !== undefined\r\n ) {\r\n var options = data.items.url.lastIndexOf(\"&\");\r\n if (data.items.url.indexOf(\"?\") == \"-1\") {\r\n data.items.url =\r\n data.items.url +\r\n `?utm_source=${\r\n this.state.googleAnalytics.utmSource !== undefined\r\n ? this.state.googleAnalytics.utmSource\r\n : \"\"\r\n }&utm_medium=${\r\n this.state.googleAnalytics.utmMedium !== undefined\r\n ? this.state.googleAnalytics.utmMedium\r\n : \"\"\r\n }`;\r\n } else if (data.items.url.indexOf(\"&\") == \"-1\") {\r\n data.items.url =\r\n data.items.url +\r\n `&utm_source=${\r\n this.state.googleAnalytics.utmSource !== undefined\r\n ? this.state.googleAnalytics.utmSource\r\n : \"\"\r\n }&utm_medium=${\r\n this.state.googleAnalytics.utmMedium !== undefined\r\n ? this.state.googleAnalytics.utmMedium\r\n : \"\"\r\n }`;\r\n } else {\r\n data.items.url =\r\n data.items.url.substr(0, data.items.url.lastIndexOf(\"&\")) +\r\n `&utm_source=${\r\n this.state.googleAnalytics.utmSource !== undefined\r\n ? this.state.googleAnalytics.utmSource\r\n : \"\"\r\n }&utm_medium=${\r\n this.state.googleAnalytics.utmMedium !== undefined\r\n ? this.state.googleAnalytics.utmMedium\r\n : \"\"\r\n }` +\r\n data.items.url.substr(data.items.url.lastIndexOf(\"&\"));\r\n }\r\n }\r\n }\r\n this.addLinks(data.items.url);\r\n if (window.parent) {\r\n window.parent.postMessage(\"openUrl:\" + data.items.url + \"\", \"*\");\r\n } else {\r\n window.location = data.items.url;\r\n }\r\n }\r\n };\r\n handleCancelFeedbackResponse = () => {\r\n this.setState({ leaveFeedbackMessage: \"\" });\r\n let feedback_popup = document.getElementById(\"feedback_popup\");\r\n feedback_popup.style.display = \"none\";\r\n };\r\n getMessageTranslate = (value) => {\r\n switch (this.state.language) {\r\n case \"af\":\r\n return (\r\n \"Dankie dat jy vir ons jou navraag gestuur het! Ons vra om verskoning dat dit nie dadelik beantwoord is nie, ons span werk tans daaraan en sal so gou moontlik na jou terugkom! Jou kaartjienommer is \" +\r\n value +\r\n \"\"\r\n );\r\n case \"ar\":\r\n return (\r\n \"\" +\r\n value +\r\n \" شكرا لك على إرسال استفسارك إلينا! نعتذر عن عدم الرد على الفور، ويعمل فريقنا حاليًا على حل المشكلة وسيقوم بالرد عليك في أقرب وقت ممكن! رقم التذكرة الخاص بك هو\"\r\n );\r\n case \"de\":\r\n return (\r\n \"Vielen Dank für Ihre Anfrage! Wir entschuldigen uns dafür, dass Ihre Anfrage nicht sofort beantwortet wurde. Unser Team arbeitet derzeit daran und wird sich so schnell wie möglich bei Ihnen melden! Ihre Ticketnummer lautet \" +\r\n value +\r\n \"\"\r\n );\r\n case \"es\":\r\n return (\r\n \"¡Gracias por enviarnos tu consulta! Lamentamos que no haya sido respondida de inmediato, nuestro equipo está trabajando actualmente en ello y se comunicará con usted lo antes posible. Su número de billete es \" +\r\n value +\r\n \"\"\r\n );\r\n case \"fi\":\r\n return (\r\n \"Kiitos, että lähetit meille kyselysi! Pahoittelemme, ettei siihen heti vastattu. Tiimimme työskentelee parhaillaan asian parissa ja ottaa sinuun yhteyttä mahdollisimman pian! Lippusi numero on \" +\r\n value +\r\n \"\"\r\n );\r\n case \"fr\":\r\n return (\r\n \"Merci de nous avoir envoyé votre demande ! Nous sommes désolés de ne pas avoir reçu de réponse immédiate, notre équipe y travaille actuellement et vous répondra dans les plus brefs délais ! Votre numéro de billet est \" +\r\n value +\r\n \"\"\r\n );\r\n case \"hi\":\r\n return (\r\n \"हमें अपनी जांच भेजने के लिए धन्यवाद! हम क्षमा चाहते हैं कि इसका उत्तर सीधे नहीं दिया गया, हमारी टीम वर्तमान में इस पर काम कर रही है और जल्द से जल्द आपसे संपर्क करेगी! आपका टिकट नंबर है \" +\r\n value +\r\n \"\"\r\n );\r\n case \"id\":\r\n return (\r\n \"Terima kasih telah mengirimkan pertanyaan Anda kepada kami! Kami mohon maaf karena tidak langsung dijawab, tim kami sedang mengerjakannya dan akan menghubungi Anda sesegera mungkin! Nomor tiket Anda adalah \" +\r\n value +\r\n \"\"\r\n );\r\n case \"ja\":\r\n return (\r\n \"お問い合わせをお送りいただきありがとうございます。すぐに回答できなかったことをお詫び申し上げます。現在、チームが対応中ですので、できるだけ早くご連絡いたします。あなたのチケット番号は \" +\r\n value +\r\n \"\"\r\n );\r\n case \"ko\":\r\n return (\r\n \"문의사항을 보내주셔서 감사합니다! 즉시 답변을 드리지 못한 점 사과드립니다. 현재 팀에서 작업 중이므로 최대한 빨리 답변해 드리겠습니다. 귀하의 티켓 번호는 다음과 같습니다 \" +\r\n value +\r\n \"\"\r\n );\r\n case \"mi\":\r\n return (\r\n \"Mauruuru koe mo te tuku mai i to patai! E mihi ana matou na te mea kaore i whakautua tonutia, kei te mahi tonu ta matou roopu i tenei wa ka hoki wawe mai ki a koe! Ko to nama tikiti \" +\r\n value +\r\n \"\"\r\n );\r\n case \"ru\":\r\n return (\r\n \"Спасибо, что отправили нам свой запрос! Приносим извинения, что не ответили сразу, наша команда сейчас работает над этим и свяжется с вами как можно скорее! Номер вашего билета \" +\r\n value +\r\n \"\"\r\n );\r\n case \"tl\":\r\n return (\r\n \"Salamat sa pagpapadala sa amin ng iyong katanungan! Humihingi kami ng paumanhin na hindi ito agad nasagot, kasalukuyang ginagawa ito ng aming team at babalikan ka sa lalong madaling panahon! Ang iyong numero ng tiket ay \" +\r\n value +\r\n \"\"\r\n );\r\n case \"th\":\r\n return (\r\n \"ขอบคุณสำหรับการส่งคำถามของคุณถึงเรา! เราต้องขออภัยที่ไม่ได้ตอบกลับทันที ทีมงานของเรากำลังดำเนินการอยู่และจะติดต่อกลับโดยเร็วที่สุด! หมายเลขตั๋วของคุณคือ \" +\r\n value +\r\n \"\"\r\n );\r\n case \"vi\":\r\n return (\r\n \"Cảm ơn bạn đã gửi cho chúng tôi yêu cầu của bạn! Chúng tôi xin lỗi vì nó không được trả lời ngay lập tức, nhóm của chúng tôi hiện đang giải quyết vấn đề này và sẽ liên hệ lại với bạn sớm nhất có thể! Số vé của bạn là \" +\r\n value +\r\n \"\"\r\n );\r\n case \"zh\":\r\n return (\r\n \"感谢您向我们发送您的询问!对于未能立即回复您的问题,我们深表歉意,我们的团队目前正在处理该问题,并将尽快回复您!您的票号是 \" +\r\n value +\r\n \"\"\r\n );\r\n case \"zh-TW\":\r\n return (\r\n \"感謝您向我們發送您的詢問!對於未能立即回覆您的問題,我們深表歉意,我們的團隊目前正在處理該問題,並將盡快回覆您!您的票號是 \" +\r\n value +\r\n \"\"\r\n );\r\n default:\r\n return (\r\n \"Thank you for sending us your enquiry! We do apologise that it was not answered straightaway, our team is currently working on it and will get back to you as soon as possible! Your ticket number is \" +\r\n value +\r\n \"\"\r\n );\r\n }\r\n };\r\n handleFeedBackResponse = (body, name, phone, email) => { \r\n let button = document.getElementById(\"feedback_button\");\r\n if (button !== null && button.value !== undefined) {\r\n document.getElementById(\"feedback_popup_body\").classList.remove(\"area\");\r\n document.getElementById(\"feedback_popup_body\").classList.add(\"closepop\");\r\n let feedback_popup = document.getElementById(\"feedback_popup\");\r\n feedback_popup.style.display = \"none\";\r\n var leaveFeedback = {\r\n groupId: this.props.gid,\r\n messageId: button.value,\r\n leaveMessage: this.state.leaveFeedbackMessage,\r\n };\r\n try {\r\n fetch(`${LEAVE_FEEDBACK}`, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(leaveFeedback),\r\n });\r\n } catch (error) {}\r\n\r\n var payload = {\r\n groupId: this.props.gid,\r\n propertyId: this.props.pid,\r\n conversationId: this.props.directline.conversationId,\r\n source: \"WebSite\",\r\n tags: [\"Query\"],\r\n requesterName: name,\r\n requesterEmail: email,\r\n requesterPhoneNumber: phone,\r\n notes: body,\r\n creator: \"Bot\",\r\n };\r\n fetch(process.env.REACT_APP_API_URL + \"/tickets\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cache: \"no-cache\",\r\n body: JSON.stringify(payload),\r\n }).then((response) => {\r\n response.json().then((res) => {\r\n var msg = `${this.getMessageTranslate(res.result.ticketId)}`;\r\n\r\n fetch(process.env.REACT_APP_API_URL + \"/sendmessageactivityByBot\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n conversationId: this.props.directline.conversationId,\r\n message: \"\" + msg + \"\",\r\n from: Math.random(),\r\n summary: \"Fallback\",\r\n }),\r\n }).catch((err) => {\r\n console.error(\"Bmb ticket creation failed :(.\");\r\n console.error(err);\r\n });\r\n var msgpayload = {\r\n gid: this.props.gid,\r\n iid: this.props.iid,\r\n pid: this.props.pid,\r\n vid: this.props.vid,\r\n sid: this.props.sid,\r\n cid: this.props.directline.conversationId,\r\n time: new Date().toISOString(),\r\n source: \"Bot\",\r\n message: msg,\r\n tag: \"\",\r\n agentId: \"\",\r\n };\r\n fetch(process.env.REACT_APP_API_URL + \"/saveMessage\", {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(msgpayload),\r\n }).catch((err) => {\r\n console.error(\"Bmb livechat logging failed :(.\");\r\n console.error(err);\r\n });\r\n });\r\n });\r\n this.setState({ leaveFeedbackMessage: \"\" });\r\n }\r\n };\r\n componentDidMount() {\r\n const filtered = this.state.languageOptions.filter((el) => {\r\n return this.props.botSettings.languages.indexOf(el.id) !== -1;\r\n });\r\n var langCode = this.state.language;\r\n const selectedLang = this.state.languageOptions.filter(\r\n (el) => el.id === this.state.language\r\n );\r\n if (selectedLang.length > 0) {\r\n this.setState({\r\n languageOptions: filtered,\r\n languageCode: selectedLang[0].code,\r\n langLocale: selectedLang[0].locale,\r\n });\r\n } else {\r\n this.setState({ languageOptions: filtered });\r\n }\r\n if (\r\n this.props.persistentMenu !== undefined ||\r\n this.props.persistentMenu !== null\r\n ) {\r\n if (this.state.persistentMenuData.length === 0) {\r\n if (\r\n this.props.persistentMenu.filter((i) => i.locale.includes(langCode))\r\n .length > 0\r\n ) {\r\n let menu = this.props.persistentMenu.filter((i) =>\r\n i.locale.includes(langCode)\r\n );\r\n this.setState({\r\n persistentMenuData: menu,\r\n });\r\n } else {\r\n let menu = this.props.persistentMenu.filter((i) =>\r\n i.locale.includes(\"default\")\r\n );\r\n let menuItem = [];\r\n menu[0].callToActions.map((item) => {\r\n var input = item.title;\r\n if (input !== \"\") {\r\n if (langCode === \"en\") {\r\n menuItem.push({\r\n title: item.title,\r\n type: item.type,\r\n payLoad: item.payLoad,\r\n url: item.url,\r\n });\r\n } else {\r\n if (\r\n item.payLoad !== \"select_property\" &&\r\n item.payLoad !== \"switch_language\" &&\r\n item.payLoad !== \"restart\" &&\r\n item.payLoad !== \"hidebot\"\r\n ) {\r\n const req = fetch(TRANSLATE_URL, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n q: input,\r\n target: langCode,\r\n }),\r\n });\r\n req.then((m) => {\r\n m.json().then((k) => {\r\n menuItem.push({\r\n title: k.output,\r\n type: item.type,\r\n payLoad: item.payLoad,\r\n url: item.url,\r\n });\r\n });\r\n });\r\n } else {\r\n menuItem.push({\r\n title: item.title,\r\n type: item.type,\r\n payLoad: item.payLoad,\r\n url: item.url,\r\n });\r\n }\r\n }\r\n this.setState({\r\n persistentMenuData: [\r\n {\r\n locale: langCode,\r\n callToActions: menuItem,\r\n },\r\n ],\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (\r\n this.props.botSettings !== undefined ||\r\n this.props.botSettings !== null\r\n ) {\r\n if (\r\n this.props.botSettings.bubbleSettings !== undefined &&\r\n this.props.botSettings.bubbleSettings !== null\r\n ) {\r\n if (\r\n this.props.botSettings.bubbleSettings.bubbleType !== undefined &&\r\n this.props.botSettings.bubbleSettings.bubbleType !== null\r\n ) {\r\n this.setState({\r\n bubble_type: this.props.botSettings.bubbleSettings.bubbleType,\r\n });\r\n } else {\r\n this.setState({ bubble_type: \"Bubble\" });\r\n }\r\n }\r\n }\r\n const self = this;\r\n var ignoreClickOnMeElement = document.getElementById(\"chat_box\");\r\n if (\r\n ignoreClickOnMeElement !== null &&\r\n ignoreClickOnMeElement !== undefined\r\n ) {\r\n document.addEventListener(\"click\", function (event) {\r\n if (self.state.ask_bot_hide === true) {\r\n var isClickInsideElement = ignoreClickOnMeElement.contains(\r\n event.target\r\n );\r\n if (isClickInsideElement) {\r\n self.setState({ ask_bot_hide: false });\r\n }\r\n }\r\n });\r\n }\r\n\r\n var ignoreClickOnMeElementVisitor =\r\n document.getElementById(\"chat_box_visitor\");\r\n if (\r\n ignoreClickOnMeElementVisitor !== null &&\r\n ignoreClickOnMeElementVisitor !== undefined\r\n ) {\r\n document.addEventListener(\"click\", function (event) {\r\n if (self.state.ask_bot_hide === true) {\r\n var isClickInsideElement = ignoreClickOnMeElementVisitor.contains(\r\n event.target\r\n );\r\n if (isClickInsideElement) {\r\n self.setState({ ask_bot_hide: false });\r\n }\r\n }\r\n });\r\n }\r\n if (this.props.pid !== undefined && this.props.pid !== null) {\r\n this.GetServiceAvailable(this.props.property_state_store);\r\n }\r\n\r\n const req = fetch(ANALYTICS_URL, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n propertyId: this.props.pid,\r\n groupId: this.props.gid,\r\n }),\r\n });\r\n req.then((m) => {\r\n m.json().then((k) => {\r\n if (\r\n k.googleAnalyticsIntegration !== undefined &&\r\n k.googleAnalyticsIntegration !== null\r\n ) {\r\n this.setState({ googleAnalytics: k.googleAnalyticsIntegration });\r\n }\r\n });\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (\r\n prevProps.availblity !== this.props.availblity &&\r\n this.props.availblity !== undefined\r\n ) {\r\n this.availblityForm(this.props.availblity);\r\n }\r\n\r\n if (prevProps.openZChat_popup !== this.props.openZChat_popup) {\r\n this.setState({ open_ZChatfeedback_popup: this.props.openZChat_popup });\r\n }\r\n\r\n if (prevProps.property_popup !== this.props.property_popup) {\r\n this.setState({ open_property_popup: this.props.property_popup });\r\n }\r\n if (prevProps.lang !== this.props.lang && this.props.lang !== undefined) {\r\n this.handleChangeLanguage(this.props.lang);\r\n }\r\n\r\n if (prevProps.bot_restart !== this.props.bot_restart) {\r\n this.setState({ ask_close: this.props.bot_restart });\r\n }\r\n }\r\n\r\n GetServiceAvailable = (propertyStore) => {\r\n var pid = \"\";\r\n if (\r\n localStorage.getItem(propertyStore) !== undefined &&\r\n localStorage.getItem(propertyStore) !== null\r\n ) {\r\n pid = localStorage.getItem(propertyStore);\r\n }\r\n if (pid !== \"\") {\r\n fetch(\r\n SERVICES_URL +\r\n \"?groupId=\" +\r\n this.props.gid +\r\n \"&propertyId=\" +\r\n pid +\r\n \"&languageCode=en\"\r\n )\r\n .then((response) => response.json())\r\n .then((json) => {\r\n if (json.result.length > 0) {\r\n this.setState({ isServiceAvailable: true });\r\n } else {\r\n this.setState({ isServiceAvailable: false });\r\n }\r\n });\r\n } else {\r\n this.setState({ isServiceAvailable: false });\r\n }\r\n };\r\n render() {\r\n //console.log(this.props.inZenDesk , this.state.open_ZChatfeedback_popup);\r\n const currentAppLocale =\r\n AppLocale[this.state.langLocale === \"\" ? \"en\" : this.state.langLocale];\r\n var {\r\n store,\r\n directline,\r\n inputEnabled,\r\n user_id,\r\n loadingLivechat,\r\n agentName,\r\n mobile,\r\n botSettings,\r\n bookingApp,\r\n room_app,\r\n close_pop,\r\n opened,\r\n connectionError,\r\n inactivePopupOne,\r\n inactivePopupTwo,\r\n persistentMenuEnabled,\r\n resize_full,\r\n resize_actual,\r\n } = this.props;\r\n\r\n var { ask_close, menu_open, confirm_cookies, ask_bot_hide } = this.state;\r\n\r\n if (botSettings !== undefined) {\r\n styleOptions.backgroundColor = botSettings.colours.botBackground;\r\n styleOptions.bubbleFromUserBackground = botSettings.colours.botUser;\r\n styleOptions.bubbleFromUserBorderColor = botSettings.colours.botUser;\r\n styleOptions.bubbleFromUserTextColor = botSettings.colours.botUserText;\r\n styleOptions.bubbleBackground = botSettings.colours.botBot;\r\n styleOptions.bubbleBorderColor = botSettings.colours.botBot;\r\n styleOptions.bubbleTextColor = botSettings.colours.botBotText;\r\n if (mobile === \"true\") {\r\n if (botSettings.hideSendBoxInMobile === true) {\r\n this.props.hideTypingTextBox();\r\n }\r\n } else {\r\n if (botSettings.hideSendBox === true) {\r\n this.props.hideTypingTextBox();\r\n }\r\n }\r\n\r\n if (\r\n localStorage.getItem(this.props.property_state_store) === undefined ||\r\n localStorage.getItem(this.props.property_state_store) === null\r\n ) {\r\n this.props.hideTypingTextBox();\r\n }\r\n\r\n if (botSettings.colours.sendBoxButton)\r\n styleOptions.sendBoxButtonColor = botSettings.colours.sendBoxButton;\r\n if (botSettings.colours.sendBoxText)\r\n styleOptions.sendBoxTextColor = botSettings.colours.sendBoxText;\r\n if (botSettings.colours.sendBoxBottomBorder) {\r\n styleOptions.sendBoxBorderBottom = `solid 1px ${botSettings.colours.sendBoxBottomBorder}`;\r\n styleOptions.sendBoxBorderTop = \"\";\r\n }\r\n if (botSettings.colours.sendBoxButtonFocus)\r\n styleOptions.sendBoxButtonColorOnFocus =\r\n botSettings.colours.sendBoxButtonFocus;\r\n if (botSettings.colours.sendBoxButtonHover)\r\n styleOptions.sendBoxButtonColorOnHover =\r\n botSettings.colours.sendBoxButtonHover;\r\n if (botSettings.colours.timeStamp)\r\n styleOptions.timestampColor = botSettings.colours.timeStamp;\r\n if (botSettings.colours.sendBoxPlaceHolder)\r\n styleOptions.sendBoxPlaceholderColor =\r\n botSettings.colours.sendBoxPlaceHolder;\r\n if (botSettings.colours.sendBoxBackground)\r\n styleOptions.sendBoxBackground = botSettings.colours.sendBoxBackground;\r\n\r\n if (botSettings.colours.suggestionBackground)\r\n styleOptions.suggestedActionBackground =\r\n botSettings.colours.suggestionBackground;\r\n\r\n if (botSettings.colours.suggestionText)\r\n styleOptions.suggestedActionTextColor =\r\n botSettings.colours.suggestionText;\r\n\r\n this.createCssRules();\r\n }\r\n return (\r\n \r\n \r\n {\" \"}\r\n \r\n {botSettings !== undefined ? (\r\n <>\r\n {!this.props.messenger && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\" \"}\r\n {agentName || botSettings.name}{\" \"}\r\n {\" \"}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {this.props.customStyle === \"\" && mobile !== \"true\" ? (\r\n \r\n {!this.props.resize ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ) : null}\r\n {botSettings.multilingual ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n {this.props.customStyle !== \"\" ? (\r\n \r\n {\" \"}\r\n \r\n ) : null}\r\n \r\n )}\r\n\r\n {menu_open ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {ask_close ? (\r\n {\r\n this.setState({ ask_close: false });\r\n if (this.props.messenger) {\r\n this.props.bot_restartClick();\r\n }\r\n }}\r\n >\r\n \r\n

\r\n {\"\"}\r\n \r\n {\"\"}\r\n

\r\n

\r\n \r\n

\r\n \r\n {\"\"}\r\n \r\n {\"\"}\r\n \r\n \r\n {\"\"}\r\n \r\n {\"\"}\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {this.state.open_ZChatfeedback_popup && (\r\n \r\n )}\r\n {this.state.open_language_popup && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {botSettings.multilingual\r\n ? this.state.languageOptions.map((elem, index) => {\r\n return (\r\n \r\n this.handleChangeLanguage(elem.id)\r\n }\r\n key={index}\r\n >\r\n {elem.desc}\r\n {this.state.language === elem.id ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n })\r\n : this.state.languageOptions\r\n .filter((i) =>\r\n i.id.includes(this.state.language)\r\n )\r\n .map((elem, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n \r\n \r\n \r\n )}\r\n\r\n {this.state.open_property_popup && (\r\n \r\n )}\r\n {this.state.open_availblity_popup && (\r\n \r\n )}\r\n {this.state.open_service_popup && (\r\n \r\n )}\r\n \r\n \r\n this.handleFeedBackResponse(e, name, phone, email)\r\n }\r\n handleCancelFeedbackResponse={() =>\r\n this.handleCancelFeedbackResponse()\r\n }\r\n locale={this.state.language}\r\n changeleaveFeedbackMessage={(e) =>\r\n this.setState({ leaveFeedbackMessage: e })\r\n }\r\n >\r\n \r\n \r\n {confirm_cookies && !this.props.messenger ? (\r\n \r\n
\r\n {\" \"}\r\n .{\" \"}\r\n \r\n this.cookies_details(botSettings.urls.webCookies)\r\n }\r\n >\r\n {\" \"}\r\n {\" \"}\r\n {\" \"}\r\n
\r\n \r\n {\" \"}\r\n X{\" \"}\r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {ask_bot_hide ? (\r\n this.setState({ ask_bot_hide: false })}\r\n style={{ zIndex: 5, padding: \"0.5em\", display: \"block\" }}\r\n >\r\n
\r\n \r\n {\" \"}\r\n {\" \"}\r\n
\r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n \r\n {botSettings.inactivePopUpWarning &&\r\n botSettings.inactivePopUpWarning.enabled === true &&\r\n inactivePopupOne && (\r\n \r\n
\r\n \r\n {\" \"}\r\n ⚠️{\" \"}\r\n {\" \"}\r\n

\r\n \r\n {this.state.language === \"en\" ? (\r\n botSettings.inactivePopUpWarning.message\r\n ) : (\r\n \r\n )}\r\n {\" \"}\r\n
\r\n \r\n {\" \"}\r\n {this.state.language === \"en\" ? (\r\n \"Close\"\r\n ) : (\r\n \r\n )}{\" \"}\r\n

\r\n \r\n \r\n )}\r\n {botSettings.inactivePopUpSession &&\r\n botSettings.inactivePopUpSession.enabled === true &&\r\n inactivePopupTwo && (\r\n \r\n
\r\n \r\n {\" \"}\r\n ⚠️{\" \"}\r\n {\" \"}\r\n

\r\n \r\n {this.state.language === \"en\" ? (\r\n botSettings.inactivePopUpSession.message\r\n ) : (\r\n \r\n )}\r\n {\" \"}\r\n
\r\n \r\n {\" \"}\r\n {this.state.language === \"en\" ? (\r\n \"Restart\"\r\n ) : (\r\n \r\n )}{\" \"}\r\n

\r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n {\" \"}\r\n ⚠️{\" \"}\r\n {\" \"}\r\n

\r\n \r\n Your session has expired due to inactivity\r\n {\" \"}\r\n
\r\n \r\n {\" \"}\r\n Restart{\" \"}\r\n

\r\n \r\n \r\n {this.props.moveTop === true && (\r\n this.movetotop()}\r\n >\r\n \r\n \r\n )}\r\n \r\n {directline && !loadingLivechat ? (\r\n \r\n ) : this.props.customStyle !== \"\" ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n )}\r\n {\r\n //@TODO automate extension management\r\n this.props.extensions[CHAT_SUGGESTION_EXT_ID] ? (\r\n \r\n ) : (\r\n \"\"\r\n )\r\n }\r\n {\r\n //@TODO automate extension management\r\n this.props.extensions[CHAT_AUTOCOMPLETE_EXT_ID] ? (\r\n \r\n ) : (\r\n \"\"\r\n )\r\n }\r\n {this.props.extensions[WEB_VIEW_EXT_ID] ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {this.props.extensions[WEB_VIEW_EX_EXT_ID] ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {\" \"}\r\n {this.state.visitorPopupState === true &&\r\n botSettings.visitorPopup === true && (\r\n \r\n \r\n {botSettings.visitorSettings !== null && (\r\n
this.save_visitor(e)}>\r\n

\r\n {\" \"}\r\n {this.state.language === \"en\" ? (\r\n botSettings.visitorSettings.title\r\n ) : (\r\n \r\n )}{\" \"}\r\n

\r\n {this.state.language === \"en\" ? (\r\n ReactHtmlParser(\r\n botSettings.visitorSettings.subTitle\r\n )\r\n ) : (\r\n \r\n )}{\" \"}\r\n {botSettings.visitorSettings.fields.map(\r\n (elem, fIndex) => {\r\n if (elem.field === \"Name\") {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else if (elem.field === \"FirstName\") {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else if (elem.field === \"LastName\") {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else if (elem.field === \"Email\") {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else if (elem.field === \"PhoneNumber\") {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else if (elem.field === \"ZipCode\") {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n )}\r\n \r\n \r\n )\r\n ) : this.state.language === \"en\" ? (\r\n \"I want to receive offers or promotions from the hotel by email or text messages.\"\r\n ) : (\r\n \r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.language === \"en\" ? (\r\n botSettings.visitorSettings.buttonText\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n {this.props.customStyle === \"\" ? (\r\n \r\n {this.props.messenger ? (\r\n \r\n this.bob_site(\r\n \"https://www.myma.ai/?utm_source=messenger&utm_medium=branding&utm_campaign=clicks\"\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n this.bob_site(\r\n \"https://www.myma.ai/?utm_source=messenger&utm_medium=branding&utm_campaign=clicks\"\r\n )\r\n }\r\n >\r\n {\" \"}\r\n {this.props.gid !==\r\n \"df96582a-c1d2-4be7-abc5-af820013452c\" &&\r\n this.props.gid !==\r\n \"56431a33-0783-46e0-ab83-afb0016d3b58\" &&\r\n this.props.gid !==\r\n \"a7e06370-a3bc-43ef-ba88-afb100137eca\" &&\r\n this.props.gid !==\r\n \"3af8dc3a-2be5-456e-82b5-afc60145e4ad\" &&\r\n this.props.gid !==\r\n \"af402810-8902-473b-a487-b04301549dac\" &&\r\n this.props.gid !==\r\n \"4f042507-dc0c-4dfc-abe6-b07a01689612\" &&\r\n this.props.gid !==\r\n \"4d44c1aa-dc7c-415f-80e8-b08f0149ad66\" &&\r\n this.props.gid !==\r\n \"c1032caf-7739-4567-932d-b0b40050d671\" && (\r\n \r\n \r\n Empowered by\r\n
{\" \"}\r\n \r\n \r\n )}\r\n \r\n {(this.props.gid ===\r\n \"df96582a-c1d2-4be7-abc5-af820013452c\" ||\r\n this.props.gid ===\r\n \"56431a33-0783-46e0-ab83-afb0016d3b58\" ||\r\n this.props.gid ===\r\n \"a7e06370-a3bc-43ef-ba88-afb100137eca\" ||\r\n this.props.gid ===\r\n \"3af8dc3a-2be5-456e-82b5-afc60145e4ad\" ||\r\n this.props.gid ===\r\n \"af402810-8902-473b-a487-b04301549dac\" ||\r\n this.props.gid ===\r\n \"4f042507-dc0c-4dfc-abe6-b07a01689612\" ||\r\n this.props.gid ===\r\n \"4d44c1aa-dc7c-415f-80e8-b08f0149ad66\" ||\r\n this.props.gid ===\r\n \"c1032caf-7739-4567-932d-b0b40050d671\") && (\r\n \r\n {botSettings.text.webPoweredBy1}{\" \"}\r\n \r\n \r\n )}{\" \"}\r\n
\r\n \r\n )}\r\n \r\n ) : null}\r\n \r\n ) : this.props.customStyle !== \"\" ? (\r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n )}\r\n {\" \"}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import React, { Component, Fragment, useState, useEffect } from \"react\";\r\nimport ReactHtmlParser from \"react-html-parser\";\r\nimport \"./SildeBubble.css\";\r\nimport \"../bootstrap.min.css\";\r\n\r\nexport default function SildeBubble({\r\n onOpened, hintClosed, currentNudge, fadeIn, botSettings, position, mobile, disabledChatbot\r\n}) {\r\n const [iseffect,setIsEffect]=useState(true);\r\n const [hover, setHover] = useState(false);\r\n const [nudgeavtar, setNudgeAvtar] = useState(false);\r\n /**\r\n * Posts a message to the parent window, if this window has one\r\n * @param {*} msg\r\n */\r\n const postMessage = (msg) => {\r\n if (window.parent) {\r\n window.parent.postMessage(msg, \"*\");\r\n }\r\n }\r\n useEffect(() => {\r\n if(iseffect)\r\n {\r\n window.addEventListener(\r\n \"message\",\r\n windowBuddbleMessage,\r\n false\r\n );\r\n if (\r\n botSettings.bubbleSettings !== undefined &&\r\n botSettings.bubbleSettings !== null\r\n ) {\r\n //Post Message to set the Alignment of bubble iframe\r\n if (\r\n botSettings.bubbleSettings.bubblePosition !== undefined &&\r\n botSettings.bubbleSettings.bubblePosition !== null\r\n ) {\r\n const bubblePosition =\r\n botSettings.bubbleSettings.bubblePosition;\r\n postMessage(\r\n `chatbotalign:${bubblePosition.align}|side:${bubblePosition.side}|bottom:${bubblePosition.bottom}|top:350`\r\n );\r\n }\r\n //Post Message to set the animation settings iframe\r\n if (\r\n botSettings.bubbleSettings.scrollAnimation !== undefined &&\r\n botSettings.bubbleSettings.scrollAnimation !== null\r\n ) {\r\n const scrollAnimation =\r\n botSettings.bubbleSettings.scrollAnimation;\r\n if (scrollAnimation.enabled === true) {\r\n postMessage(\r\n `chatbotscrollanimation|${scrollAnimation.beforeAnimationTop}|${scrollAnimation.afterAnimationTop}`\r\n );\r\n }\r\n }\r\n } else {\r\n postMessage(`chatbotremoveposition`);\r\n }\r\n setIsEffect(false);\r\n }\r\n \r\n }, [botSettings])\r\n\r\n const windowBuddbleMessage = (event) => {\r\n if (\r\n typeof event.data === \"string\" &&\r\n event.data.startsWith(\"nudgepopup:\")\r\n ) {\r\n setNudgeAvtar(true);\r\n }\r\n }\r\n const nudgeavtar_clicked = () => {\r\n setNudgeAvtar(false);\r\n postMessage(`nudgeminimized`);\r\n }\r\n const bubble_clicked = () => {\r\n onOpened();\r\n }\r\n\r\n const nudge_clicked = () => {\r\n onOpened();\r\n }\r\n\r\n const hint_close = (e) => {\r\n e.stopPropagation();\r\n hintClosed();\r\n }\r\n\r\n const handleMouseEnter = () => {\r\n setHover(true);\r\n };\r\n const handleMouseLeave = () => {\r\n setHover(false);\r\n };\r\n return !disabledChatbot ? \r\n !nudgeavtar ?(\r\n \r\n
\r\n
\r\n
\r\n \r\n Message\r\n
\r\n
\r\n
\r\n
\r\n ):null : null;\r\n}","import { createStore } from \"botframework-webchat\";\r\nimport { WEB_VIEW_EXT_ID } from \"./Extensions/WebViewExtension/WebViewExtension\";\r\nimport { WEB_VIEW_EX_EXT_ID } from \"./Extensions/WebViewExternalExtension/WebViewExternalExtension\";\r\nimport { CHAT_SUGGESTION_EXT_ID } from \"./Extensions/ChatSuggestionExtension/ChatSuggestionExtension\";\r\nimport { CHAT_AUTOCOMPLETE_EXT_ID } from \"./Extensions/AutoCompleteExtension/AutoCompleteExtension\";\r\nconst BMB_LOG_URL = process.env.REACT_APP_API_URL + \"/saveMessage\";\r\nconst BMB_ROOMTYPE_URL = process.env.REACT_APP_API_URL + \"/properties\";\r\nconst BMB_Property_URL = process.env.REACT_APP_API_URL + \"/property\";\r\nconst BMB_Conversation_URL = process.env.REACT_APP_API_URL + \"/conversation\";\r\nconst BMB_AutoComplete_URL = process.env.REACT_APP_API_URL + \"/chatsuggestions\";\r\n/**\r\n * Activity from Microsoft Directline\r\n */\r\nfunction incomingActivity(dispatch, next, action, callbacks) {\r\n callbacks.enableChat(); // Enables the input box, effective when the first message from the bot arrives\r\n callbacks.setExtension(CHAT_AUTOCOMPLETE_EXT_ID, undefined);\r\n callbacks.scrollChat();\r\n var dl = callbacks.getChatState().directline;\r\n if (\r\n isRecentActivity(action) &&\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.channelData\r\n ) {\r\n // Suggestion UI\r\n if (action.payload.activity.channelData.suggestionUi) {\r\n action.payload.activity.suggestedActions = []; // hide dafault suggestion style\r\n let suggestionsPayload = action.payload.activity.channelData.suggestionUi;\r\n suggestionsPayload.time = Date.now();\r\n suggestionsPayload.question = action.payload.activity.text;\r\n callbacks.setExtension(CHAT_SUGGESTION_EXT_ID, suggestionsPayload);\r\n } else if (action.payload.activity.channelData.liveChat) {\r\n callbacks.startZenDeskChat();\r\n }\r\n // Web View\r\n if (action.payload.activity.channelData.webView) {\r\n let webviewPayload = action.payload.activity.channelData.webView;\r\n if (webviewPayload.title === \"Booking Url\") {\r\n if (window.parent) {\r\n window.parent.postMessage(`openUrl:${webviewPayload.url}`, \"*\");\r\n } else {\r\n window.location = webviewPayload.url;\r\n }\r\n } else if (webviewPayload.title === \"Availability\") {\r\n callbacks.setAvailblity(webviewPayload.availabilityData);\r\n } else if (webviewPayload.title === \"LocationPopUp\") {\r\n callbacks.setPropertyPopUp(true);\r\n } else {\r\n if (webviewPayload.largeWindow) {\r\n callbacks.setExtension(WEB_VIEW_EX_EXT_ID, webviewPayload);\r\n } else {\r\n callbacks.setExtension(WEB_VIEW_EXT_ID, webviewPayload);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (\r\n isRecentActivity(action) &&\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.suggestedActions\r\n ) {\r\n if (action.payload.activity.inputHint === \"Recommender\") {\r\n callbacks.hideTypingTextBox();\r\n }\r\n } else if (\r\n isRecentActivity(action) &&\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.type &&\r\n action.payload.activity.type === \"message\" &&\r\n action.payload.activity.from.role === \"bot\"\r\n ) {\r\n callbacks.showTypingTextBox();\r\n }\r\n\r\n if (\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.text &&\r\n action.payload.activity.text.startsWith(\"Transferring you to a human\")\r\n ) {\r\n if (!callbacks.getChatState().livechat) {\r\n callbacks.startLivechat();\r\n }\r\n } else if (\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.text &&\r\n action.payload.activity.text === dl.conversationId &&\r\n action.payload.activity.name === undefined\r\n ) {\r\n if (!callbacks.getChatState().twiliochat) {\r\n callbacks.startTwiliochat(\r\n dl.conversationId,\r\n action.payload.activity.from.id\r\n );\r\n }\r\n } else if (\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.text &&\r\n action.payload.activity.text === dl.conversationId &&\r\n action.payload.activity.name &&\r\n action.payload.activity.name === \"signalRConversation\"\r\n ) {\r\n if (!callbacks.getChatState().signalrchat) {\r\n console.log(\"startChat\");\r\n callbacks.startSignalRchat(\r\n dl.conversationId,\r\n action.payload.activity.from.id\r\n );\r\n }\r\n } else if (\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.text &&\r\n action.payload.activity.text.startsWith(\"Agent\") &&\r\n action.payload.activity.text.indexOf(\"has joined\") > 0\r\n ) {\r\n callbacks.setAgentId(action.payload.activity.from.id);\r\n bmbLogMessage(action.payload.activity.text, \"Visitor\", callbacks);\r\n } else if (\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.text &&\r\n action.payload.activity.text.startsWith(\"Agent\") &&\r\n action.payload.activity.text.indexOf(\"left the conversation\") > 0\r\n ) {\r\n if (callbacks.isInTwiliochat() === true) {\r\n callbacks.endTwilio();\r\n } else if (callbacks.isInSignalRchat() === true) {\r\n callbacks.endSignalRChat();\r\n }\r\n } else if (\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.text &&\r\n action.payload.activity.text.startsWith(\"Ok, I’ll show you our rooms12\")\r\n ) {\r\n var propertyId = callbacks.getPID();\r\n if (propertyId === undefined || propertyId === \"\") {\r\n var property = localStorage.getItem(\r\n callbacks.getChatState().lStore.PROPERTYID\r\n );\r\n if (property !== undefined && property != null) {\r\n propertyId = property;\r\n }\r\n }\r\n\r\n fetch(BMB_ROOMTYPE_URL + \"/\" + propertyId + \"/rooms\", {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then((response) => response.json())\r\n .then((json) => {\r\n callbacks.getRoomTypes(json.rooms);\r\n callbacks.showBookingForm(false, false);\r\n });\r\n } else if (callbacks.getChatState().getRoomTypes) {\r\n if (\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.text &&\r\n action.payload.activity.text.startsWith(\"I can answer your questions\")\r\n ) {\r\n var propertyId = callbacks.getPID();\r\n if (propertyId === undefined || propertyId === \"\") {\r\n var property = localStorage.getItem(\r\n callbacks.getChatState().lStore.PROPERTYID\r\n );\r\n if (property !== undefined && property != null) {\r\n propertyId = property;\r\n }\r\n }\r\n fetch(BMB_ROOMTYPE_URL + \"/\" + propertyId + \"/rooms\", {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then((response) => response.json())\r\n .then((json) => callbacks.getRoomTypes(json.rooms));\r\n } else if (\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.text &&\r\n action.payload.activity.text.startsWith(\r\n \"Ok, Please fill the information to check availability\"\r\n )\r\n ) {\r\n var propertyId = callbacks.getPID();\r\n if (propertyId === undefined || propertyId === \"\") {\r\n var property = localStorage.getItem(\r\n callbacks.getChatState().lStore.PROPERTYID\r\n );\r\n if (property !== undefined && property != null) {\r\n propertyId = property;\r\n }\r\n }\r\n\r\n fetch(\r\n BMB_Property_URL +\r\n \"/\" +\r\n propertyId +\r\n \"?groupId=\" +\r\n callbacks.getGID() +\r\n \"\",\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n }\r\n )\r\n .then((response) => response.json())\r\n .then((json) => {\r\n if (\r\n json.property.ari.applicable === \"Y\" &&\r\n json.property.ari.type === \"URL\"\r\n ) {\r\n //Show Room Details\r\n fetch(BMB_ROOMTYPE_URL + \"/\" + propertyId + \"/rooms\", {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then((response) => response.json())\r\n .then((roomdata) => callbacks.getRoomTypes(roomdata.rooms));\r\n } else if (\r\n json.property.ari.applicable === \"Y\" &&\r\n json.property.ari.type === \"CHATUI\"\r\n ) {\r\n //Show Availablity Popup\r\n callbacks.showBookingForm(true, true);\r\n callbacks.getRoomTypes([]);\r\n }\r\n });\r\n }\r\n } else if (\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.text &&\r\n action.payload.activity.text.startsWith(\r\n \"Ok, Please fill the information to check availability\"\r\n )\r\n ) {\r\n var propertyId = callbacks.getPID();\r\n if (propertyId === undefined || propertyId === \"\") {\r\n var property = localStorage.getItem(\r\n callbacks.getChatState().lStore.PROPERTYID\r\n );\r\n if (property !== undefined && property != null) {\r\n propertyId = property;\r\n }\r\n }\r\n\r\n fetch(\r\n BMB_Property_URL +\r\n \"/\" +\r\n propertyId +\r\n \"?groupId=\" +\r\n callbacks.getGID() +\r\n \"\",\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n }\r\n )\r\n .then((response) => response.json())\r\n .then((json) => {\r\n if (\r\n json.property.ari.applicable === \"Y\" &&\r\n json.property.ari.type === \"URL\"\r\n ) {\r\n //Show Room Details\r\n fetch(BMB_ROOMTYPE_URL + \"/\" + propertyId + \"/rooms\", {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then((response) => response.json())\r\n .then((roomdata) => callbacks.getRoomTypes(roomdata.rooms));\r\n } else if (\r\n json.property.ari.applicable === \"Y\" &&\r\n json.property.ari.type === \"CHATUI\"\r\n ) {\r\n //Show Availablity Popup\r\n callbacks.showBookingForm(true, true);\r\n callbacks.getRoomTypes([]);\r\n }\r\n });\r\n }\r\n\r\n if (\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.attachments\r\n ) {\r\n filterAttachments(dispatch, action.payload.activity, callbacks);\r\n }\r\n\r\n return next(action);\r\n}\r\n\r\nfunction isRecentActivity(action) {\r\n if (\r\n !(\r\n action.payload &&\r\n action.payload.activity &&\r\n action.payload.activity.timestamp\r\n )\r\n ) {\r\n return false;\r\n }\r\n\r\n let time = new Date(action.payload.activity.timestamp);\r\n return Date.now() - time.valueOf() < 6000;\r\n}\r\n\r\n/**\r\n * Manages custom handling of attachments for new activities\r\n */\r\nfunction filterAttachments(dispatch, activity, callbacks) {\r\n if (Date.now() - Date.parse(activity.timestamp) > 10000) {\r\n return; // Assume anything sent >10s ago is stale (e.g. reloaded when app opened)\r\n }\r\n\r\n for (var i = 0; i < activity.attachments.length; i++) {\r\n let attachment = activity.attachments[i];\r\n let remove = false;\r\n switch (attachment.contentType) {\r\n case \"ako.bob.payment\":\r\n attachment.content.handled = true;\r\n remove = true;\r\n callbacks.makePayment(attachment.content, () => {\r\n dispatch({\r\n type: \"WEB_CHAT/SEND_MESSAGE\",\r\n payload: {\r\n name: \"ako/sentpayment\",\r\n text: \"Test\",\r\n },\r\n });\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (remove) {\r\n activity.attachments.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Activity going back channel Events, normally to Microsoft Directline but this method may not redirect for WebView\r\n */\r\nfunction outgoingBackChannelEvents(dispatch, next, action, callbacks) {\r\n if (action.payload.name === \"webchat/openWebView\") {\r\n var payload = {\r\n url: action.payload.value.url,\r\n title: action.payload.value.title,\r\n mode: action.payload.value.mode,\r\n largeWindowHideHeader: action.payload.value.largeWindowHideHeader,\r\n };\r\n payload.largeWindow = true;\r\n callbacks.setExtension(WEB_VIEW_EX_EXT_ID, payload);\r\n return;\r\n }\r\n if (action.payload.name === \"webchat/booking\") {\r\n var dl = callbacks.getChatState().directline;\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: callbacks.getChatState().user_id, name: \"\", role: \"user\" },\r\n id: `${Math.random()}`,\r\n text: action.payload.value.msg,\r\n timestamp: new Date().toISOString(),\r\n type: \"message\",\r\n };\r\n bmbLogMessageBot(\"Booking\", action.payload.value.msg, \"Visitor\", callbacks);\r\n\r\n //return next({ payload: { activity }, type: \"DIRECT_LINE/INCOMING_ACTIVITY\" });\r\n return;\r\n } else {\r\n return next(action);\r\n }\r\n}\r\n\r\n// Some activities should be modified when they are reloaded from storage\r\n// (this gives them different behaviour than when sent in the first place)\r\nfunction processStoredActivities(stored) {\r\n for (let activity of stored.activities) {\r\n if (activity.attachments) {\r\n for (let attachment of activity.attachments) {\r\n if (attachment.contentType === \"ako/file-upload-prompt\") {\r\n attachment.content.used = true;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setSuggestedActions(dispatch, next, action, callbacks) {\r\n if (\r\n !action.payload.suggestedActions ||\r\n action.payload.suggestedActions.length < 1\r\n ) {\r\n return next(action);\r\n }\r\n\r\n setTimeout(() => next(action), 500);\r\n}\r\n\r\nfunction AgentCheck(status, callbacks, eventName, dispatch) {\r\n var gid = callbacks.getGID();\r\n var conversationId = callbacks.getDirectLineConversation();\r\n return fetch(\r\n BMB_Conversation_URL + \"/\" + conversationId + \"?groupId=\" + gid + \"\",\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n }\r\n )\r\n .then((response) => response.json())\r\n .then((json) => {\r\n if (json !== undefined) {\r\n if (\r\n json.conversation.agentStatus === status ||\r\n json.conversation.agentStatus === \"None\"\r\n ) {\r\n dispatchAgentOnlineEvents(dispatch, eventName);\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n dispatchAgentOnlineEvents(dispatch, eventName);\r\n return false;\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Activity going outwards, normally to Microsoft Directline but this method may redirect to livechat\r\n */\r\nfunction outgoingActivity(dispatch, next, action, callbacks) {\r\n callbacks.hideTextCount();\r\n callbacks.setExtension(CHAT_AUTOCOMPLETE_EXT_ID, undefined);\r\n\r\n // If livechat enabled, route user messages into incoming activities so they get displayed, do not continue this action\r\n const botSettings = callbacks.getBotSettings();\r\n\r\n if (\r\n botSettings.inactivePopUpWarning &&\r\n botSettings.inactivePopUpWarning.enabled === true\r\n ) {\r\n clearTimeout(intervalOne);\r\n intervalOne = setTimeout(() => {\r\n // Notify bot the user has been inactive\r\n callbacks.setInactivePopupOne();\r\n }, parseFloat(botSettings.inactivePopUpWarning.seconds) * 1000);\r\n }\r\n\r\n if (\r\n botSettings.inactivePopUpSession &&\r\n botSettings.inactivePopUpSession.enabled === true\r\n ) {\r\n clearTimeout(intervalTwo);\r\n intervalTwo = setTimeout(() => {\r\n // Notify bot the user has been inactive\r\n callbacks.setInactivePopupTwo();\r\n }, parseFloat(botSettings.inactivePopUpSession.seconds) * 1000);\r\n }\r\n\r\n if (action.payload.text === \"Human Chat\") {\r\n const liveChatSetings = callbacks.getLiveChatSettings();\r\n if (liveChatSetings !== undefined && liveChatSetings.provider == \"0\") {\r\n const noAgentOnline = setTimeout(() => {\r\n clearTimeout(noAgentOnline);\r\n AgentCheck(\"RequestSent\", callbacks, \"no_agent_online\", dispatch).then(\r\n (m) => {\r\n if (m) {\r\n const AgentOnline = setTimeout(() => {\r\n clearTimeout(AgentOnline);\r\n AgentCheck(\r\n \"RequestReceived\",\r\n callbacks,\r\n \"agent_online_not_accepted\",\r\n dispatch\r\n ).then((n) => {\r\n if (!n) {\r\n const AgentOnlineNext = setTimeout(() => {\r\n clearTimeout(AgentOnlineNext);\r\n AgentCheck(\r\n \"RequestReceived\",\r\n callbacks,\r\n \"agent_online_busy\",\r\n dispatch\r\n );\r\n }, 60 * 1000);\r\n }\r\n });\r\n }, 20 * 1000);\r\n }\r\n }\r\n );\r\n }, 10 * 1000);\r\n }\r\n }\r\n\r\n if (callbacks.isInLivechat() === true) {\r\n var dl = callbacks.getChatState().directline;\r\n\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: callbacks.getChatState().user_id, name: \"\", role: \"user\" },\r\n id: `${Math.random()}`,\r\n text: action.payload.text,\r\n timestamp: new Date().toISOString(),\r\n type: \"message\",\r\n };\r\n\r\n // Log msg\r\n bmbLogMessage(action.payload.text, \"Visitor\", callbacks);\r\n\r\n callbacks.getChatState().livechat.sendMessage({\r\n text: action.payload.text,\r\n customId: String(Math.random()),\r\n });\r\n\r\n return next({\r\n payload: { activity },\r\n type: \"DIRECT_LINE/INCOMING_ACTIVITY\",\r\n });\r\n } else if (callbacks.isInTwiliochat() === true) {\r\n var dl = callbacks.getChatState().directline;\r\n //console.log(dl)\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: callbacks.getChatState().user_id, name: \"\", role: \"user\" },\r\n id: `${Math.random()}`,\r\n text: action.payload.text,\r\n timestamp: new Date().toISOString(),\r\n type: \"message\",\r\n };\r\n\r\n // Log msg\r\n bmbLogMessage(action.payload.text, \"Visitor\", callbacks);\r\n callbacks.getChatState().twiliochat.sendMessage(action.payload.text);\r\n\r\n return next({\r\n payload: { activity },\r\n type: \"DIRECT_LINE/INCOMING_ACTIVITY\",\r\n });\r\n } else if (callbacks.isInZendeskChat() === true) {\r\n var dl = callbacks.getChatState().directline;\r\n //console.log(dl)\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: callbacks.getChatState().user_id, name: \"\", role: \"user\" },\r\n id: `${Math.random()}`,\r\n text: action.payload.text,\r\n timestamp: new Date().toISOString(),\r\n type: \"message\",\r\n };\r\n\r\n // Log msg\r\n bmbLogMessage(action.payload.text, \"Visitor\", callbacks);\r\n callbacks.getChatState().zendesk.sendChatMsg(action.payload.text);\r\n\r\n return next({\r\n payload: { activity },\r\n type: \"DIRECT_LINE/INCOMING_ACTIVITY\",\r\n });\r\n } else if (callbacks.isInSignalRchat() === true) {\r\n var dl = callbacks.getChatState().directline;\r\n //console.log(dl)\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: callbacks.getChatState().user_id, name: \"\", role: \"user\" },\r\n id: `${Math.random()}`,\r\n text: action.payload.text,\r\n timestamp: new Date().toISOString(),\r\n type: \"message\",\r\n };\r\n\r\n // Log msg\r\n bmbLogMessage(action.payload.text, \"Visitor\", callbacks);\r\n console.log(\"callbacks.getPID()\",callbacks.getPID())\r\n var propertyId = callbacks.getPID();\r\n if (propertyId === undefined || propertyId === \"\") {\r\n var property = localStorage.getItem(\r\n callbacks.getChatState().lStore.PROPERTYID\r\n );\r\n if (property !== undefined && property != null) {\r\n propertyId = property;\r\n }\r\n }\r\n callbacks\r\n .getChatState()\r\n .signalrchat.invoke(\"SendConversationMessageToAgent\", {\r\n groupname: dl.conversationId,\r\n message: action.payload.text,\r\n groupId: callbacks.getGID(),\r\n propertyId: propertyId,\r\n agentId: callbacks.getAgentId(),\r\n });\r\n\r\n return next({\r\n payload: { activity },\r\n type: \"DIRECT_LINE/INCOMING_ACTIVITY\",\r\n });\r\n } else if (action.payload && action.payload.text) {\r\n let extension = callbacks.getExtension(CHAT_SUGGESTION_EXT_ID);\r\n\r\n if (extension && extension.getSuggestionCallback) {\r\n let suggestion = extension.getSuggestionCallback(action.payload.text);\r\n\r\n if (suggestion) {\r\n action.payload.text = suggestion;\r\n callbacks.setExtension(CHAT_SUGGESTION_EXT_ID, undefined);\r\n } else {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n return next(action);\r\n}\r\n\r\n/**\r\n * Incoming Twilio Chat\r\n */\r\nfunction incomingTwiliochat(dispatch, next, action, callbacks) {\r\n if (action.payload) {\r\n var msg = action.payload;\r\n // Send agent chats via store\r\n if (msg.sid) {\r\n var dl = callbacks.getChatState().directline;\r\n if (dl !== undefined && dl.conversationId !== undefined) {\r\n if (msg.author !== `${dl.conversationId}_user`) {\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: \"twiliochat\", name: \"\", role: \"bot\" },\r\n id: `${Math.random()}`,\r\n text: msg.body,\r\n timestamp: new Date().toISOString(),\r\n type: \"message\",\r\n };\r\n // Log with bmb API\r\n bmbLogMessage(msg.body, \"Agent\", callbacks);\r\n return dispatch({\r\n payload: { activity },\r\n type: \"DIRECT_LINE/INCOMING_ACTIVITY\",\r\n });\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Incoming Twilio Chat\r\n */\r\nfunction incomingSignalchat(dispatch, next, action, callbacks) {\r\n if (action.payload) {\r\n var msg = action.payload;\r\n // Send agent chats via store\r\n var dl = callbacks.getChatState().directline;\r\n if (dl !== undefined && dl.conversationId !== undefined) {\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: \"signalchat\", name: \"\", role: \"bot\" },\r\n id: `${Math.random()}`,\r\n text: msg,\r\n timestamp: new Date().toISOString(),\r\n type: \"message\",\r\n };\r\n // Log with bmb API\r\n bmbLogMessage(msg, \"Agent\", callbacks);\r\n return dispatch({\r\n payload: { activity },\r\n type: \"DIRECT_LINE/INCOMING_ACTIVITY\",\r\n });\r\n }\r\n }\r\n}\r\n\r\nfunction incomingZendeskchat(dispatch, next, action, callbacks) {\r\n if (action.payload) {\r\n var msg = action.payload;\r\n // Send agent chats via store\r\n\r\n var dl = callbacks.getChatState().directline;\r\n if (dl !== undefined && dl.conversationId !== undefined) {\r\n //if (msg.author !== `${dl.conversationId}_user`) {\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: `${Math.random()}`, name: \"\", role: \"bot\" },\r\n id: `${Math.random()}`,\r\n text: msg,\r\n timestamp: new Date().toISOString(),\r\n type: \"message\",\r\n };\r\n // Log with bmb API\r\n\r\n bmbLogMessage(msg, \"Agent\", callbacks);\r\n return dispatch({\r\n payload: { activity },\r\n type: \"DIRECT_LINE/INCOMING_ACTIVITY\",\r\n });\r\n //}\r\n }\r\n }\r\n return next(action);\r\n}\r\n\r\n/**\r\n * Incoming Twilio Chat\r\n */\r\nfunction TypeTwiliochat(dispatch, next, action, callbacks) {\r\n if (callbacks.isInTwiliochat() === true) {\r\n callbacks.sendTwilioTypingIndicator();\r\n } else if (callbacks.isInZendeskChat() === true) {\r\n callbacks.sendZendeskTypingIndicator();\r\n } else if (callbacks.isInSignalRchat() === true) {\r\n callbacks.sendSignalRTypingIndicator();\r\n } else {\r\n if (action.payload.text.length > 3) {\r\n const botSettings = callbacks.getBotSettings();\r\n var localStorageLanguage = localStorage.getItem(\r\n callbacks.getChatState().lStore.LANGUAGE\r\n );\r\n if (\r\n botSettings.features.predictiveSearch &&\r\n botSettings.features.predictiveSearch === true &&\r\n localStorageLanguage === \"en\"\r\n ) {\r\n fetch(BMB_AutoComplete_URL, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n keyword: action.payload.text,\r\n domain: localStorage.getItem(\r\n callbacks.getChatState().lStore.DOMAIN\r\n ),\r\n }),\r\n })\r\n .then((response) => response.json())\r\n .then((json) => {\r\n //console.log(json.data)\r\n callbacks.setExtension(CHAT_AUTOCOMPLETE_EXT_ID, json.data);\r\n });\r\n } else {\r\n callbacks.setExtension(CHAT_AUTOCOMPLETE_EXT_ID, undefined);\r\n }\r\n } else {\r\n callbacks.setExtension(CHAT_AUTOCOMPLETE_EXT_ID, undefined);\r\n }\r\n }\r\n return next(action);\r\n}\r\n\r\n/**\r\n * Incoming livechat from Livechatinc\r\n */\r\nfunction incomingLivechat(dispatch, next, action, callbacks) {\r\n if (action.payload) {\r\n var msg = action.payload;\r\n\r\n // Send agent chats via store\r\n if (!msg.customId) {\r\n var dl = callbacks.getChatState().directline;\r\n\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: \"livechat\", name: \"\", role: \"bot\" },\r\n id: `${Math.random()}`,\r\n text: msg.text,\r\n timestamp: new Date().toISOString(),\r\n type: \"message\",\r\n };\r\n\r\n // Log with bmb API\r\n bmbLogMessage(msg.text, \"Agent\", callbacks);\r\n\r\n return dispatch({\r\n payload: { activity },\r\n type: \"DIRECT_LINE/INCOMING_ACTIVITY\",\r\n });\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Incoming typing indicator from livechat\r\n */\r\nfunction livechatTyping(dispatch, next, action, callbacks) {\r\n var dl = callbacks.getChatState().directline;\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: \"livechat\", name: \"\", role: \"bot\" },\r\n id: `${Math.random()}`,\r\n timestamp: new Date().toISOString(),\r\n type: \"typing\",\r\n };\r\n\r\n return next({ payload: { activity }, type: \"DIRECT_LINE/INCOMING_ACTIVITY\" });\r\n}\r\n\r\n/**\r\n * Incoming typing indicator from livechat\r\n */\r\nfunction twiliochatTyping(dispatch, next, action, callbacks) {\r\n var dl = callbacks.getChatState().directline;\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: \"twilio\", name: \"\", role: \"bot\" },\r\n id: `${Math.random()}`,\r\n timestamp: new Date().toISOString(),\r\n type: \"typing\",\r\n };\r\n\r\n return next({ payload: { activity }, type: \"DIRECT_LINE/INCOMING_ACTIVITY\" });\r\n}\r\n\r\n/**\r\n * Incoming typing indicator from livechat\r\n */\r\nfunction signalchatTyping(dispatch, next, action, callbacks) {\r\n var dl = callbacks.getChatState().directline;\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: \"signalr\", name: \"\", role: \"bot\" },\r\n id: `${Math.random()}`,\r\n timestamp: new Date().toISOString(),\r\n type: \"typing\",\r\n };\r\n\r\n return next({ payload: { activity }, type: \"DIRECT_LINE/INCOMING_ACTIVITY\" });\r\n}\r\n\r\n/**\r\n * Livechatinc terminated\r\n */\r\nfunction endedLivechat(dispatch, next, action, callbacks) {\r\n var dl = callbacks.getChatState().directline;\r\n var activity = {\r\n channelId: \"directline\",\r\n conversation: { id: dl.conversationId },\r\n from: { id: \"livechat\", name: \"\", role: \"bot\" },\r\n id: `${Math.random()}`,\r\n text: 'The agent has ended the chat. Press \"End Chat\" above to finish or restart.',\r\n timestamp: new Date().toISOString(),\r\n type: \"message\",\r\n };\r\n callbacks.showBookingForm(false, false);\r\n callbacks.disableChat();\r\n\r\n return next({ payload: { activity }, type: \"DIRECT_LINE/INCOMING_ACTIVITY\" });\r\n}\r\n\r\nfunction dispatchAgentOnlineEvents(dispatch, name) {\r\n dispatch({\r\n type: \"WEB_CHAT/SEND_EVENT\",\r\n payload: {\r\n name: name,\r\n value: {},\r\n },\r\n });\r\n}\r\n\r\n/**\r\n * When directline first connects\r\n */\r\nfunction onConnect(dispatch, callbacks) {\r\n callbacks.setExtension(CHAT_AUTOCOMPLETE_EXT_ID, undefined);\r\n callbacks.setAvailblity(undefined);\r\n var propertyId = callbacks.getPID();\r\n var propertyName = \"\";\r\n\r\n if (propertyId === undefined || propertyId === \"\") {\r\n var property = localStorage.getItem(\r\n callbacks.getChatState().lStore.PROPERTYID\r\n );\r\n if (property !== undefined && property != null) {\r\n propertyId = property;\r\n }\r\n }\r\n\r\n var propertyNameStorage = localStorage.getItem(\r\n callbacks.getChatState().lStore.PROPERTYNAME\r\n );\r\n if (propertyNameStorage !== undefined && propertyNameStorage != null) {\r\n propertyName = propertyNameStorage;\r\n }\r\n\r\n dispatch({\r\n type: \"WEB_CHAT/SEND_EVENT\",\r\n payload: {\r\n name: \"webchat/join\",\r\n value: {\r\n language: \"en-US\",\r\n gid: callbacks.getGID(),\r\n iid: callbacks.getIID(),\r\n pid: propertyId,\r\n vid: callbacks.getChatState().vid,\r\n sid: callbacks.getChatState().sid,\r\n lang: callbacks.getChatState().lang,\r\n pname: propertyName,\r\n },\r\n },\r\n });\r\n\r\n callbacks.addScrollEvent();\r\n}\r\n\r\n/**\r\n * End the Chat\r\n */\r\nfunction disconnectChat(dispatch, next, action, callbacks) {\r\n localStorage.removeItem(callbacks.getChatState().lStore.CHAT_STATE);\r\n return next(action);\r\n}\r\n\r\nfunction importStore(callbacks) {\r\n var stored;\r\n try {\r\n stored = localStorage.getItem(callbacks.getChatState().lStore.CHAT_STATE);\r\n stored = JSON.parse(stored);\r\n //console.log(stored)\r\n processStoredActivities(stored);\r\n } catch (e) {\r\n } finally {\r\n if (!stored) {\r\n stored = {};\r\n }\r\n if (typeof stored !== \"object\") {\r\n stored = {};\r\n }\r\n }\r\n return stored;\r\n}\r\n\r\n/**\r\n * For logging livechat messages with the BMB backend\r\n */\r\nfunction bmbLogMessage(message, source, callbacks) {\r\n var propertyId = callbacks.getPID();\r\n if (propertyId === undefined || propertyId === \"\") {\r\n var property = localStorage.getItem(\r\n callbacks.getChatState().lStore.PROPERTYID\r\n );\r\n if (property !== undefined && property != null) {\r\n propertyId = property;\r\n }\r\n }\r\n var payload = {\r\n gid: callbacks.getGID(),\r\n iid: callbacks.getIID(),\r\n pid: propertyId,\r\n vid: callbacks.getChatState().vid,\r\n sid: callbacks.getChatState().sid,\r\n cid: callbacks.getChatState().directline.conversationId,\r\n time: new Date().toISOString(),\r\n source: source,\r\n message: message,\r\n tag: \"Human Chat\",\r\n agentId: callbacks.getAgentId(),\r\n };\r\n\r\n fetch(BMB_LOG_URL, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(payload),\r\n }).catch((err) => {\r\n console.error(\"Bmb livechat logging failed :(.\");\r\n console.error(err);\r\n });\r\n}\r\n\r\n/**\r\n * For logging booking messages with the BMB backend\r\n */\r\nfunction bmbLogMessageBot(tag, message, source, callbacks) {\r\n var propertyId = callbacks.getPID();\r\n if (propertyId === undefined || propertyId === \"\") {\r\n var property = localStorage.getItem(\r\n callbacks.getChatState().lStore.PROPERTYID\r\n );\r\n if (property !== undefined && property != null) {\r\n propertyId = property;\r\n }\r\n }\r\n var payload = {\r\n gid: callbacks.getGID(),\r\n iid: callbacks.getIID(),\r\n pid: propertyId,\r\n vid: callbacks.getChatState().vid,\r\n sid: callbacks.getChatState().sid,\r\n cid: callbacks.getChatState().directline.conversationId,\r\n time: new Date().toISOString(),\r\n source: source,\r\n message: message,\r\n tag: tag,\r\n agentId: callbacks.getAgentId(),\r\n };\r\n fetch(BMB_LOG_URL, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(payload),\r\n }).catch((err) => {\r\n console.error(\"Bmb livechat logging failed :(.\");\r\n console.error(err);\r\n });\r\n}\r\n/**\r\n * Sends a stored message history to the given livechat instance\r\n * @param {*} store React store state\r\n * @param {*} livechat LivechatSDK instance\r\n */\r\nexport function sendChatStore(storeState, livechat) {\r\n for (var activity of storeState.activities) {\r\n var text = \"\";\r\n\r\n // Build message from activity\r\n if (activity.type === \"message\") {\r\n if (activity.from && activity.from.role) {\r\n text += activity.from.role + \": \";\r\n }\r\n\r\n if (activity.text) {\r\n text += activity.text;\r\n }\r\n\r\n if (activity.attachments) {\r\n // console.log(\"activity.attachments\",activity.attachments)\r\n for (var attachment of activity.attachments) {\r\n if (\r\n attachment.contentType === \"application/vnd.microsoft.card.hero\"\r\n ) {\r\n if (attachment.content.title) {\r\n text += \"Card Title: \" + attachment.content.title + \"\\r\\n\";\r\n }\r\n if (attachment.content.text) {\r\n text += attachment.content.text;\r\n }\r\n }\r\n }\r\n }\r\n\r\n livechat.sendMessage({\r\n text: text,\r\n customId: String(Math.random()),\r\n });\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Sends a stored message history to the given livechat instance\r\n * @param {*} store React store state\r\n * @param {*} livechat LivechatSDK instance\r\n */\r\nexport function sendHistoryToZendesk(storeState, zendesk) {\r\n for (var activity of storeState.activities) {\r\n var text = \"\";\r\n\r\n // Build message from activity\r\n if (activity.type === \"message\") {\r\n if (activity.from && activity.from.role) {\r\n text += activity.from.role + \": \";\r\n }\r\n\r\n if (activity.text) {\r\n text += activity.text;\r\n }\r\n\r\n if (activity.attachments) {\r\n for (var attachment of activity.attachments) {\r\n if (\r\n attachment.contentType === \"application/vnd.microsoft.card.hero\"\r\n ) {\r\n if (attachment.content.title) {\r\n text += \"Card Title: \" + attachment.content.title + \"\\r\\n\";\r\n }\r\n if (attachment.content.text) {\r\n text += attachment.content.text + \"\\r\\n\";\r\n }\r\n }\r\n }\r\n }\r\n zendesk.sendChatMsg(text);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Creates the Redux store used by the MS Chat widget\r\n * Some additional functionality is implemented as middleware, all in this file\r\n */\r\nlet intervalOne;\r\nlet intervalTwo;\r\nexport default function getChatStore(chatCallbacks, forceNewState) {\r\n var stored = forceNewState ? {} : importStore(chatCallbacks);\r\n\r\n let store = createStore(stored, ({ dispatch }) => (next) => (action) => {\r\n if (!action) {\r\n return next(action);\r\n }\r\n\r\n if (\r\n action.type === \"DIRECT_LINE/UPDATE_CONNECTION_STATUS\" &&\r\n typeof action.payload?.connectionStatus === \"number\"\r\n ) {\r\n chatCallbacks.setConnectionStatus(action.payload.connectionStatus);\r\n }\r\n\r\n switch (action.type) {\r\n case \"DIRECT_LINE/CONNECT_FULFILLED\":\r\n onConnect(dispatch, chatCallbacks);\r\n break;\r\n case \"DIRECT_LINE/INCOMING_ACTIVITY\":\r\n return incomingActivity(dispatch, next, action, chatCallbacks);\r\n case \"WEB_CHAT/SEND_MESSAGE\":\r\n return outgoingActivity(dispatch, next, action, chatCallbacks);\r\n case \"WEB_CHAT/SET_SUGGESTED_ACTIONS\":\r\n return setSuggestedActions(dispatch, next, action, chatCallbacks);\r\n case \"LIVECHAT/NEW_MESSAGE\":\r\n return incomingLivechat(dispatch, next, action, chatCallbacks);\r\n case \"TWILIO/NEW_MESSAGE\":\r\n return incomingTwiliochat(dispatch, next, action, chatCallbacks);\r\n case \"SIGNALR/NEW_MESSAGE\":\r\n return incomingSignalchat(dispatch, next, action, chatCallbacks);\r\n case \"ZENDESK/NEW_MESSAGE\":\r\n return incomingZendeskchat(dispatch, next, action, chatCallbacks);\r\n case \"WEB_CHAT/SEND_EVENT\":\r\n return outgoingBackChannelEvents(dispatch, next, action, chatCallbacks);\r\n case \"LIVECHAT/CHAT_END\":\r\n return endedLivechat(dispatch, next, action, chatCallbacks);\r\n case \"LIVECHAT/TYPING\":\r\n return livechatTyping(dispatch, next, action, chatCallbacks);\r\n case \"TWILIO/TYPING\":\r\n return twiliochatTyping(dispatch, next, action, chatCallbacks);\r\n case \"SIGNALR/TYPING\":\r\n return signalchatTyping(dispatch, next, action, chatCallbacks);\r\n case \"DIRECT_LINE/DISCONNECT_FULFILLED\":\r\n return disconnectChat(dispatch, next, action, chatCallbacks);\r\n case \"WEB_CHAT/SET_SEND_BOX\":\r\n return TypeTwiliochat(dispatch, next, action, chatCallbacks);\r\n default:\r\n // Nothing to do\r\n break;\r\n }\r\n localStorage.setItem(\r\n chatCallbacks.getChatState().lStore.CHAT_STATE,\r\n JSON.stringify(chatCallbacks.getState())\r\n );\r\n return next(action);\r\n });\r\n return store;\r\n}\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nimport ChatApp from \"./ChatApp\";\r\n\r\nimport \"./index.css\";\r\n\r\n/**\r\n * Accesses data handed into frame via URL\r\n * gid - required\r\n * iid - required\r\n * pid - optional, bot will ask user about which pid to use for the given iid if pid not supplied\r\n */\r\nfunction decodeURL() {\r\n if (!window.location.href.split(\"?\")[1]) {\r\n console.log(\"No data passed in to Chat element :(.\");\r\n return;\r\n }\r\n var params = window.location.href.split(\"?\")[1].split(\"&\");\r\n var data = {};\r\n for (var x in params) {\r\n data[params[x].split(\"=\")[0]] = decodeURIComponent(params[x].split(\"=\")[1]);\r\n }\r\n return data;\r\n}\r\nvar parent_location,\r\n parent_title,\r\n gid,\r\n iid,\r\n pid,\r\n mobile,\r\n parent_referrer,\r\n defaultOpen,\r\n position,\r\n customStyle,\r\n previewMode,\r\n serviceview,\r\n messenger;\r\nvar data = decodeURL();\r\nif (data) {\r\n parent_referrer = data.referrer;\r\n parent_location = data.location;\r\n parent_title = data.title;\r\n gid = data.gid;\r\n pid = data.pid;\r\n iid = data.iid;\r\n mobile = data.mobile;\r\n defaultOpen = data.open ? true : false;\r\n previewMode = data.preview ? data.preview : false;\r\n position = data.position === \"left\" ? \"chat_area_left\" : \"chat_area\";\r\n customStyle = data.custom ? \"custom\" : \"\";\r\n serviceview = data.serviceview === \"true\" ? true : false;\r\n messenger = data.messenger === \"true\" ? true : false;\r\n}\r\n\r\nif (!gid || !iid) {\r\n // gid = \"12848620-d54c-4be7-bebc-ac44014c964c\";\r\n // pid = \"e655dab2-987b-4683-ad9b-599814b414b6\";\r\n gid = \"73574010-2f33-4b41-8b8a-09d18b025a56\"\r\n //gid = \"f49d1df2-f9b3-416e-a366-adf7ef6e7c63\";\r\n //pid = \"e655dab2-987b-4683-ad9b-599814b414b6\";\r\n //iid = 'f206b9ac-ad8a-4b41-9c00-c885d86ab7fe';\r\n // iid = \"290542d7-e9bc-4609-a437-e859a7d12d83\";\r\n // iid = '306574d2-7370-4a74-a0fc-b8ca2b850d8b';\r\n mobile = true;\r\n iid = '2ddcb06d-8a79-46dc-ab38-367080ca3f78';\r\n //iid='1b429f53-0d99-4f62-90d5-f92ab96e8d9d';\r\n //iid = \"b4974ef9-3ad4-4205-ab07-f4711f118c54\";\r\n defaultOpen = false;\r\n position = \"chat_area\";\r\n customStyle = \"\";\r\n serviceview = false;\r\n}\r\n// Make sure frame is open when the bot is being interacted with (see chatplugin.js)\r\nwindow.addEventListener(\"click\", () => {\r\n window.postMessage(\"chatbotwindowOpen\");\r\n});\r\n\r\nReactDOM.render(\r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n","export default class ChatAppExtensions {\r\n static getAPI(chatApp, chatAppProps) { \r\n let isMobile = chatAppProps.mobile;\r\n return {\r\n setExtension: chatApp.setExtension.bind(chatApp),\r\n sendActivity: activity => { chatApp.state.store.dispatch(activity) },\r\n isMobile: () => isMobile\r\n }\r\n }\r\n}","import { DirectLine, ConnectionStatus } from \"botframework-directlinejs\";\r\nimport React, { Component, Fragment } from \"react\";\r\nimport ChatBubble from \"./ChatBubble\";\r\nimport ChatWindow from \"./ChatWindow\";\r\nimport SildeBubble from \"./ChatBubbleComponent/SildeBubble\";\r\nimport getChatStore, { sendChatStore, sendHistoryToZendesk } from \"./ChatStore\";\r\nimport * as uuid from \"uuid/v4\";\r\nimport * as LivechatSDK from \"@livechat/livechat-visitor-sdk\";\r\nimport * as zChat from \"zendesk-chat-sdk\";\r\nimport ChatAppExtensions from \"./Extensions/ChatAppExtensions\";\r\nimport ChatWindowParticipantTagger from \"./ChatWindowParticipantTagger\";\r\nimport { Client as ConversationsClient } from \"@twilio/conversations\";\r\nimport {\r\n JsonHubProtocol,\r\n HttpTransportType,\r\n HubConnectionBuilder,\r\n LogLevel,\r\n} from \"@microsoft/signalr\";\r\nconst SIGNALR_URL =process.env.REACT_APP_SIGNALR_URL;\r\nconst publicIp = require(\"public-ip\");\r\nconst TOKEN_GEN_URL = process.env.REACT_APP_API_URL + \"/getToken\";\r\nconst GROUP_URL = process.env.REACT_APP_API_URL + \"/group\";\r\nconst TWILIO_TOKEN_GEN_URL = process.env.REACT_APP_API_URL + \"/twilio-token\";\r\nconst TWILIO_END_CONVERSATION =\r\n process.env.REACT_APP_API_URL + \"/endTwilioConversation\";\r\nconst PAGE_VISIT_URL = process.env.REACT_APP_API_URL + \"/pageLoaded\";\r\nconst PROPERTIES_URL = process.env.REACT_APP_API_URL + \"/properties\";\r\nconst BOT_CLICKS = process.env.REACT_APP_API_URL + \"/botclick\";\r\nconst MS_REFRESH_URL =\r\n \"https://directline.botframework.com/v3/directline/tokens/refresh\";\r\nconst LIVECHAT_LICENSE = 9036740;\r\nconst LIVECHAT_GROUP = 72;\r\n/**\r\n * Main chat app, runs with the page\r\n */\r\nexport default class ChatApp extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n chatBindings: {\r\n startLivechat: this.startLivechat.bind(this),\r\n startTwiliochat: this.startTwiliochat.bind(this),\r\n startSignalRchat: this.startSignalRchat.bind(this),\r\n endTwilio: this.endTwilio.bind(this),\r\n endSignalRChat: this.endSignalRChat.bind(this),\r\n setAgentId: this.setAgentId.bind(this),\r\n enableChat: this.enableChat.bind(this),\r\n disableChat: this.disableChat.bind(this),\r\n getState: this.getState.bind(this),\r\n setInLivechat: this.setInLivechat.bind(this),\r\n isInLivechat: this.isInLivechat.bind(this),\r\n isInTwiliochat: this.isInTwiliochat.bind(this),\r\n isInSignalRchat: this.isInSignalRchat.bind(this),\r\n sendTwilioTypingIndicator: this.sendTwilioTypingIndicator.bind(this),\r\n sendZendeskTypingIndicator: this.sendZendeskTypingIndicator.bind(this),\r\n sendSignalRTypingIndicator: this.sendSignalRTypingIndicator.bind(this),\r\n setInTwiliochat: this.setInTwiliochat.bind(this),\r\n setInSignalRchat: this.setInSignalRchat.bind(this),\r\n getChatState: this.getChatState.bind(this),\r\n setExtension: this.setExtension.bind(this),\r\n setAvailblity: this.setAvailblity.bind(this),\r\n hideTypingTextBox: this.hideTypingTextBox.bind(this),\r\n showTypingTextBox: this.showTypingTextBox.bind(this),\r\n setConnectionStatus: this.setConnectionStatus.bind(this),\r\n setInactivePopupOne: this.setInactivePopupOne.bind(this),\r\n setInactivePopupTwo: this.setInactivePopupTwo.bind(this),\r\n closeInactivePopupOne: this.closeInactivePopupOne.bind(this),\r\n hideTextCount: this.hideTextCount.bind(this),\r\n startZenDeskChat: this.startZenDeskChat.bind(this),\r\n isInZendeskChat: this.isInZendeskChat.bind(this),\r\n setPropertyPopUp: this.setPropertyPopUp.bind(this),\r\n getExtension: (extensionName) => this.state.extensions[extensionName],\r\n makePayment: (details, callback) => {\r\n this.setState({\r\n makePayment: {\r\n details,\r\n callback,\r\n close: () => {\r\n this.setState({ makePayment: undefined });\r\n },\r\n },\r\n });\r\n },\r\n getRoomTypes: (details) => {\r\n this.setState({\r\n getRoomTypes: {\r\n details,\r\n reinit: true,\r\n },\r\n });\r\n var booking = this.state.bookingApp;\r\n booking.open = true;\r\n\r\n this.setState({\r\n bookingApp: booking,\r\n });\r\n },\r\n getGID: () => {\r\n return this.props.gid;\r\n },\r\n getIID: () => {\r\n return this.props.iid;\r\n },\r\n getPID: () => {\r\n return this.props.pid;\r\n },\r\n getAgentId: () => {\r\n return this.state.agentId;\r\n },\r\n getBotSettings: () => {\r\n return this.state.botSettings;\r\n },\r\n getLiveChatSettings: () => {\r\n return this.state.liveChatSettings;\r\n },\r\n getDirectLineConversation: () => {\r\n return this.state.directline.conversationId;\r\n },\r\n isCheckedAvailability: false,\r\n hideRoomDetail: false,\r\n showBookingForm: (available, hideRoom) => {\r\n this.setState({\r\n isCheckedAvailability: available,\r\n hideRoomDetail: hideRoom,\r\n });\r\n },\r\n scrollChat: this.scrollChat,\r\n addScrollEvent: this.addScrollEvent,\r\n showHideMoveToTop: this.showHideMoveToTop.bind(this),\r\n },\r\n };\r\n const iid = props.iid;\r\n\r\n const lStore = {\r\n // per-integration constants used for localstorage identifiers\r\n OPENED: iid + \"-opened\",\r\n IDENTITY: iid + \"-identity\",\r\n CHAT_STATE: iid + \"-chatstate\",\r\n CREDENTIALS: iid + \"-credentials\",\r\n LIVECHAT_STARTED: iid + \"-livechatStarted\",\r\n COOKIES: iid + \"-cookies\",\r\n PROPERTYID: iid + \"-property\",\r\n PROPERTYNAME: iid + \"-propertyName\",\r\n EXTENSIONS: iid + \"-extensions\",\r\n LANGUAGE: iid + \"-language\",\r\n DOMAIN: iid + \"-domain\",\r\n BOTCLICK: iid + \"-botclick\",\r\n LIVECHATMESSAGESTAMP: iid + \"-livechatmessagetimestamp\",\r\n LIVECHATCLIENT: iid + \"-livechatclient\",\r\n VISITORDETAILS: iid + \"-visitor\",\r\n ZENDESKGROUP: iid + \"-zendeskgroup\",\r\n };\r\n\r\n let loadedExtensions;\r\n try {\r\n loadedExtensions = JSON.parse(localStorage.getItem(lStore.EXTENSIONS));\r\n } catch {}\r\n if (!loadedExtensions) {\r\n loadedExtensions = {};\r\n }\r\n\r\n this.state = {\r\n lStore: lStore,\r\n opened:\r\n this.props.defaultOpen ||\r\n (this.props.mobile == \"false\" &&\r\n localStorage.getItem(lStore.OPENED) === \"open\"),\r\n messages: [],\r\n directline: undefined,\r\n started: false,\r\n chatBindings: this.state.chatBindings,\r\n inputEnabled: false,\r\n inLiveChat: false,\r\n livechat: undefined,\r\n loadingLivechat: false,\r\n makePayment: false,\r\n getRoomTypes: undefined,\r\n createChatSessionStartUp: false,\r\n animation: {\r\n bubbleToFadeIn: true,\r\n },\r\n integrationSettings: undefined,\r\n blockChatbot: false,\r\n extensions: {\r\n ...loadedExtensions,\r\n _api: ChatAppExtensions.getAPI(this, this.props),\r\n },\r\n connectionError: false,\r\n visitorPopUp: false,\r\n inTwilioChat: false,\r\n inSignalRChat: false,\r\n twiliochat: undefined,\r\n signalrchat: undefined,\r\n twilioAccessToken: undefined,\r\n twilioChatId: undefined,\r\n signalRChatId: undefined,\r\n disabledChatbot: false,\r\n inactivePopupOne: false,\r\n inactivePopupTwo: false,\r\n moveTop: false,\r\n persistentMenu: null,\r\n persistentMenuEnabled: false,\r\n agentId: \"\",\r\n resize: false,\r\n botclick: false,\r\n inZenDesk: false,\r\n zendesk: undefined,\r\n liveChatSettings: undefined,\r\n zendeskDepartment: \"\",\r\n zendeskChatNew: true,\r\n availblity: undefined,\r\n open_ZChatfeedback_popup: false,\r\n property_popup: false,\r\n bot_restart: false,\r\n };\r\n\r\n // getChatStore needs state.lStore to be set first for it to work\r\n this.state.store = getChatStore(this.state.chatBindings);\r\n\r\n this.state.bookingApp = {\r\n open: false,\r\n callbacks: {\r\n getStore: () => {\r\n return this.state.store;\r\n },\r\n },\r\n chatBindings: this.state.chatBindings,\r\n lStore: lStore,\r\n };\r\n\r\n // Tell parent iframe opened state\r\n this.state.opened\r\n ? this.postMessage(\"chatbotwindowOpen\")\r\n : this.postMessage(\"chatbotwindowClose\");\r\n\r\n // Listen to messages\r\n window.addEventListener(\"message\", this.windowMessage.bind(this), false);\r\n }\r\n\r\n /**\r\n * Start conversation on mount\r\n */\r\n componentDidMount() {\r\n if (!this.state.started) {\r\n this.setState({ started: true });\r\n\r\n if (this.props.openChatWindow === true) {\r\n this.opened();\r\n this.postMessage(\"chatbotwindowOpen\");\r\n }\r\n this.startConversation(true);\r\n }\r\n // if (this.props.messenger === true) {\r\n // this.setState({ opened: false });\r\n // }\r\n }\r\n\r\n /**\r\n * Listens to component changes, sends opened status to parent frame for resizing\r\n * (frame on client site must shrink to not cover content when chat minimised)\r\n */\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevState.opened !== this.state.opened) {\r\n this.state.opened\r\n ? this.postMessage(\"chatbotwindowOpen\")\r\n : this.postMessage(\"chatbotwindowClose\");\r\n }\r\n }\r\n\r\n /**\r\n * Handles messages from the window (i.e. from the containing iframe)\r\n */\r\n windowMessage(event) {\r\n if (event.data.toString().startsWith(\"lang_code:\")) {\r\n this.setState({ lang: event.data.substring(\"10\") });\r\n }\r\n if (event.data.toString().startsWith(\"msg_property:\")) {\r\n var prodata = JSON.parse(event.data.substring(\"13\"));\r\n if (prodata === null) {\r\n console.log(this.state.bookingApp.properties);\r\n //this.selectProperty(this.state.bookingApp.properties)\r\n } else {\r\n this.selectProperty(prodata);\r\n }\r\n }\r\n console.log(event.data);\r\n if (!this.state.opened && event.data === \"chatwindowOpened\") {\r\n this.setState({ opened: true });\r\n }\r\n if (event.data === \"chatwindowOpenedInMsg\") {\r\n this.opened();\r\n }\r\n if (event.data === \"bot_restart\") {\r\n this.setState({ bot_restart: true });\r\n }\r\n if (\r\n typeof event.data === \"string\" &&\r\n event.data.startsWith(\"update-styling:\")\r\n ) {\r\n let payload = event.data.substr(15);\r\n this.setState({ integrationSettings: JSON.parse(payload) });\r\n }\r\n if (\r\n typeof event.data === \"string\" &&\r\n event.data.startsWith(\"nudge_message:\")\r\n ) {\r\n setTimeout(() => {\r\n this.state.store.dispatch({\r\n type: \"WEB_CHAT/SEND_MESSAGE\",\r\n payload: {\r\n text: event.data.replace(\"nudge_message:\", \"\"),\r\n },\r\n });\r\n }, 4000);\r\n }\r\n if (typeof event.data === \"string\" && event.data.startsWith(\"message:\")) {\r\n this.opened();\r\n\r\n setTimeout(() => {\r\n this.state.store.dispatch({\r\n type: \"WEB_CHAT/SEND_MESSAGE\",\r\n payload: {\r\n text: event.data.replace(\"message:\", \"\"),\r\n },\r\n });\r\n }, 4000);\r\n }\r\n }\r\n\r\n /**\r\n * Scrolls chat to bottom, achieves this slightly messily by selecting using CSS selectors\r\n */\r\n scrollChat() {\r\n var els = document.getElementsByClassName(\"css-y1c0xs\");\r\n for (var el of els) {\r\n if (el.classList.contains(\"css-ca0rlf\")) {\r\n el.scrollTop = el.scrollHeight;\r\n }\r\n }\r\n }\r\n\r\n addScrollEvent() {\r\n var els1 = document.getElementsByClassName(\r\n \"webchat__basic-transcript__scrollable\"\r\n );\r\n els1[0].addEventListener(\"scroll\", () => {\r\n if (els1[0].scrollTop > 100) {\r\n this.showHideMoveToTop(true);\r\n } else {\r\n this.showHideMoveToTop(false);\r\n }\r\n });\r\n if (els1[0].scrollTop > 100) {\r\n this.showHideMoveToTop(true);\r\n } else {\r\n this.showHideMoveToTop(false);\r\n }\r\n }\r\n\r\n showHideMoveToTop(show) {\r\n this.setState({ moveTop: show });\r\n }\r\n\r\n hideTypingTextBox() {\r\n // this.setState({ moveTop: true });\r\n var els = document.getElementsByClassName(\"main\");\r\n if (els.length > 0) {\r\n for (var el of els) {\r\n if (el.classList.contains(\"main\")) {\r\n el.style.display = \"none\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n hideTextCount() {\r\n var els = document.getElementById(\"span-count\");\r\n if (els !== null) {\r\n els.innerText = \"\";\r\n }\r\n }\r\n\r\n showTypingTextBox() {\r\n var els = document.getElementsByClassName(\"main\");\r\n if (els.length > 0) {\r\n for (var el of els) {\r\n if (el.classList.contains(\"main\")) {\r\n el.style.display = \"flex\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n setAvailblity(payload) {\r\n this.setState({ availblity: payload });\r\n }\r\n\r\n setPropertyPopUp(payLoad) {\r\n this.setState({ property_popup: payLoad });\r\n }\r\n\r\n setExtension(extensionName, payload) {\r\n let extensions = {\r\n ...this.state.extensions,\r\n [extensionName]: payload,\r\n };\r\n this.setState({ extensions });\r\n\r\n localStorage.setItem(\r\n this.state.lStore.EXTENSIONS,\r\n JSON.stringify(extensions)\r\n );\r\n }\r\n\r\n dynamicSort(property) {\r\n var sortOrder = 1;\r\n if (property[0] === \"-\") {\r\n sortOrder = -1;\r\n property = property.substr(1);\r\n }\r\n return function (a, b) {\r\n /* next line works with strings and numbers,\r\n * and you may want to customize it to your needs\r\n */\r\n var result =\r\n a[property] < b[property] ? -1 : a[property] > b[property] ? 1 : 0;\r\n return result * sortOrder;\r\n };\r\n }\r\n selectProperty = (elem) => {\r\n this.state.bookingApp.selectedPid = elem;\r\n this.forceUpdate();\r\n localStorage.setItem(this.state.bookingApp.lStore.PROPERTYID, elem.value);\r\n localStorage.setItem(this.state.bookingApp.lStore.PROPERTYNAME, elem.label);\r\n\r\n this.state.bookingApp.callbacks.getStore().dispatch({\r\n type: \"WEB_CHAT/SEND_EVENT\",\r\n payload: {\r\n name: \"webchat/update\",\r\n value: {\r\n pid: elem.value,\r\n pname: elem.label,\r\n },\r\n },\r\n });\r\n };\r\n /**\r\n * Registers that the user visited the page, manages visitor ID/session ID\r\n * vid/sid are persisted between sessions, sid is changed if the conversation ID expires\r\n */\r\n async registerPageLoad(botConversationId) {\r\n const ip = await publicIp.v4();\r\n var user = {\r\n iid: this.props.iid,\r\n gid: this.props.gid,\r\n vid: undefined,\r\n sid: undefined,\r\n locale: \"en-US\",\r\n parent_location: this.props.parent_location,\r\n parent_referrer: this.props.parent_referrer,\r\n page_title: this.props.parent_title,\r\n ip: ip,\r\n botConversationId: botConversationId,\r\n };\r\n\r\n var identity = localStorage.getItem(this.state.lStore.IDENTITY);\r\n if (identity) {\r\n try {\r\n identity = JSON.parse(identity);\r\n user.vid = identity.vid;\r\n user.sid = identity.sid;\r\n } catch (e) {\r\n user.vid = undefined;\r\n user.sid = undefined;\r\n }\r\n }\r\n\r\n const req = await fetch(PAGE_VISIT_URL, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n user: user,\r\n }),\r\n });\r\n\r\n var result = await req.json();\r\n this.postMessage(\"chatbotConId:\" + botConversationId);\r\n if (result && result.vid && result.sid) {\r\n if (this.props.previewMode == \"false\") {\r\n this.setState({ disabledChatbot: result.disabled });\r\n }\r\n\r\n if (user.sid !== result.sid) {\r\n localStorage.removeItem(this.state.lStore.BOTCLICK);\r\n }\r\n //Restrict Bot based upon the IP Address\r\n if (result.whiteListedIpAddresses.length > 0) {\r\n if (result.whiteListedIpAddresses.find((x) => x === ip) === undefined) {\r\n this.setState({ blockChatbot: true });\r\n }\r\n }\r\n\r\n localStorage.setItem(this.state.lStore.IDENTITY, JSON.stringify(result));\r\n\r\n if (\r\n result.liveChatSettings !== undefined &&\r\n result.liveChatSettings.enabled === true &&\r\n result.liveChatSettings.provider == \"1\"\r\n ) {\r\n localStorage.setItem(\r\n this.state.lStore.ZENDESKGROUP,\r\n result.liveChatSettings.zendesk.departmentId\r\n );\r\n }\r\n\r\n var localStorageLanguage = localStorage.getItem(\r\n this.state.lStore.LANGUAGE\r\n );\r\n\r\n var lang = \"\";\r\n var userLang = navigator.language || navigator.userLanguage;\r\n console.log(\"userLang\", userLang);\r\n if (\r\n userLang != undefined &&\r\n userLang != \"\" &&\r\n result.botSettings.languages.length > 0\r\n ) {\r\n if (userLang.indexOf(\"-\") > 0 && userLang.includes(\"en\")) {\r\n //ENGLISH\r\n lang = \"en\";\r\n } else if (userLang === \"zh-CN\") {\r\n //SC\r\n if (\r\n result.botSettings.languages.filter((m) => m === \"zh\").length > 0\r\n ) {\r\n lang = \"zh\";\r\n }\r\n } else if (userLang === \"zh-TW\") {\r\n //TC\r\n if (\r\n result.botSettings.languages.filter((m) => m === \"zh-TW\").length > 0\r\n ) {\r\n lang = \"zh-TW\";\r\n }\r\n } else {\r\n if (userLang.indexOf(\"-\") > 0) {\r\n userLang = userLang.split(\"-\")[0];\r\n if (\r\n result.botSettings.languages.filter((m) => m === userLang)\r\n .length > 0\r\n ) {\r\n lang = userLang;\r\n }\r\n } else if (\r\n result.botSettings.languages.filter((m) => m === userLang).length >\r\n 0\r\n ) {\r\n lang = userLang;\r\n }\r\n }\r\n }\r\n\r\n try {\r\n if (localStorageLanguage) {\r\n this.setState({\r\n vid: result.vid,\r\n sid: result.sid,\r\n lang: localStorageLanguage,\r\n });\r\n } else {\r\n this.setState({\r\n vid: result.vid,\r\n sid: result.sid,\r\n lang: lang === \"\" ? result.botSettings.defaultLanguage : lang,\r\n });\r\n }\r\n } catch (e) {\r\n this.setState({\r\n vid: result.vid,\r\n sid: result.sid,\r\n lang: lang === \"\" ? result.botSettings.defaultLanguage : lang,\r\n });\r\n }\r\n\r\n if (\r\n (this.props.pid === \"\" || this.props.pid === undefined) &&\r\n result.level === \"Group\" &&\r\n result.properties.length > 1\r\n ) {\r\n this.state.bookingApp.open = true;\r\n\r\n const reqProperties = await fetch(\r\n PROPERTIES_URL + \"/\" + this.props.gid,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n }\r\n );\r\n\r\n var resultProperties = await reqProperties.json();\r\n\r\n const finalResult = [];\r\n result.properties.forEach((p) => {\r\n resultProperties.properties.forEach((r) => {\r\n if (p === r.id) {\r\n finalResult.push({\r\n value: r.id,\r\n label: r.name,\r\n displayOrder: r.displayOrder,\r\n domain:\r\n r.domains != undefined &&\r\n r.domains.length > 0 &&\r\n r.domains.filter((m) => m.priority === 1).length > 0\r\n ? r.domains.filter((m) => m.priority === 1)[0].type\r\n : \"\",\r\n });\r\n }\r\n });\r\n });\r\n\r\n const sortfinalResult = finalResult.sort(\r\n this.dynamicSort(\"displayOrder\")\r\n );\r\n if (sortfinalResult.length > 0) {\r\n var property = localStorage.getItem(this.state.lStore.PROPERTYID);\r\n this.setState({ pid: property });\r\n if (property) {\r\n let obj = sortfinalResult.find((o) => o.value === property);\r\n this.state.bookingApp.selectedPid = obj;\r\n } else {\r\n const groupCall = await fetch(GROUP_URL + \"/\" + this.props.gid, {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n });\r\n\r\n var groupData = await groupCall.json();\r\n //If not group level domain setup\r\n if (groupData.group.domain === \"\") {\r\n this.state.bookingApp.selectedPid = sortfinalResult[0];\r\n this.setState({\r\n pid: sortfinalResult[0].value,\r\n });\r\n localStorage.setItem(\r\n this.state.lStore.PROPERTYID,\r\n sortfinalResult[0].value\r\n );\r\n localStorage.setItem(\r\n this.state.lStore.DOMAIN,\r\n sortfinalResult[0].domain\r\n );\r\n }\r\n }\r\n\r\n try {\r\n var propertyName = localStorage.getItem(\r\n this.state.lStore.PROPERTYNAME\r\n );\r\n if (propertyName) {\r\n let obj = sortfinalResult.find((o) => o.label === propertyName);\r\n localStorage.setItem(this.state.lStore.PROPERTYNAME, obj.label);\r\n } else {\r\n const groupCall = await fetch(GROUP_URL + \"/\" + this.props.gid, {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n });\r\n\r\n var groupData = await groupCall.json();\r\n //If not group level domain setup\r\n if (groupData.group.domain === \"\") {\r\n localStorage.setItem(\r\n this.state.lStore.PROPERTYNAME,\r\n sortfinalResult[0].label\r\n );\r\n }\r\n }\r\n } catch (e) {\r\n const groupCall = await fetch(GROUP_URL + \"/\" + this.props.gid, {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n });\r\n\r\n var groupData = await groupCall.json();\r\n if (groupData.group.domain === \"\") {\r\n localStorage.setItem(\r\n this.state.lStore.PROPERTYNAME,\r\n sortfinalResult[0].label\r\n );\r\n }\r\n }\r\n }\r\n\r\n this.state.bookingApp.properties = sortfinalResult;\r\n } else if (\r\n (this.props.pid === \"\" || this.props.pid === undefined) &&\r\n result.properties.length === 1\r\n ) {\r\n const reqProperties = await fetch(\r\n PROPERTIES_URL + \"/\" + this.props.gid,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n }\r\n );\r\n\r\n var resultProperties = await reqProperties.json();\r\n result.properties.forEach((p) => {\r\n resultProperties.properties.forEach((r) => {\r\n if (p === r.id) {\r\n localStorage.setItem(this.state.lStore.PROPERTYNAME, r.name);\r\n localStorage.setItem(this.state.lStore.PROPERTYID, r.id);\r\n localStorage.setItem(\r\n this.state.lStore.DOMAIN,\r\n r.domains != undefined &&\r\n r.domains.length > 0 &&\r\n r.domains.filter((m) => m.priority === 1).length > 0\r\n ? r.domains.filter((m) => m.priority === 1)[0].type\r\n : \"\"\r\n );\r\n this.setState({ pid: r.id });\r\n }\r\n });\r\n });\r\n } else if (this.props.pid !== \"\" && this.props.pid !== undefined) {\r\n const reqProperties = await fetch(\r\n PROPERTIES_URL + \"/\" + this.props.gid,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n }\r\n );\r\n\r\n var resultProperties = await reqProperties.json();\r\n resultProperties.properties.forEach((r) => {\r\n if (this.props.pid === r.id) {\r\n localStorage.setItem(this.state.lStore.PROPERTYNAME, r.name);\r\n localStorage.setItem(this.state.lStore.PROPERTYID, r.id);\r\n localStorage.setItem(\r\n this.state.lStore.DOMAIN,\r\n r.domains != undefined &&\r\n r.domains.length > 0 &&\r\n r.domains.filter((m) => m.priority === 1).length > 0\r\n ? r.domains.filter((m) => m.priority === 1)[0].type\r\n : \"\"\r\n );\r\n this.setState({ pid: r.id });\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (result.nudges) {\r\n this.setState({ nudges: result.nudges });\r\n }\r\n if (result.botSettings) {\r\n this.setState({ botSettings: result.botSettings });\r\n }\r\n if (result.liveChatSettings) {\r\n this.setState({ liveChatSettings: result.liveChatSettings });\r\n }\r\n if (result.persistentMenu) {\r\n let SideMenuItem = [];\r\n if (\r\n (this.props.pid === \"\" || this.props.pid === undefined) &&\r\n result.level === \"Group\" &&\r\n result.properties.length > 1\r\n ) {\r\n SideMenuItem = [\r\n {\r\n type: \"postback\",\r\n title: \"Switch Language\",\r\n payLoad: \"switch_language\",\r\n url: \"\",\r\n },\r\n {\r\n type: \"postback\",\r\n title: \"Switch Property\",\r\n payLoad: \"select_property\",\r\n url: \"\",\r\n },\r\n {\r\n type: \"postback\",\r\n title: \"Restart Chat\",\r\n payLoad: \"restart\",\r\n url: \"\",\r\n },\r\n {\r\n type: \"postback\",\r\n title: \"Hide Bot\",\r\n payLoad: \"hidebot\",\r\n url: \"\",\r\n },\r\n ];\r\n } else if (\r\n (this.props.pid === \"\" || this.props.pid === undefined) &&\r\n result.properties.length === 1\r\n ) {\r\n SideMenuItem = [\r\n {\r\n type: \"postback\",\r\n title: \"Switch Language\",\r\n payLoad: \"switch_language\",\r\n url: \"\",\r\n },\r\n {\r\n type: \"postback\",\r\n title: \"Restart Chat\",\r\n payLoad: \"restart\",\r\n url: \"\",\r\n },\r\n {\r\n type: \"postback\",\r\n title: \"Hide Bot\",\r\n payLoad: \"hidebot\",\r\n url: \"\",\r\n },\r\n ];\r\n } else if (this.props.pid !== \"\" || this.props.pid !== undefined) {\r\n SideMenuItem = [\r\n {\r\n type: \"postback\",\r\n title: \"Switch Language\",\r\n payLoad: \"switch_language\",\r\n url: \"\",\r\n },\r\n {\r\n type: \"postback\",\r\n title: \"Restart Chat\",\r\n payLoad: \"restart\",\r\n url: \"\",\r\n },\r\n {\r\n type: \"postback\",\r\n title: \"Hide Bot\",\r\n payLoad: \"hidebot\",\r\n url: \"\",\r\n },\r\n ];\r\n }\r\n\r\n let MenuData = [];\r\n if (\r\n result.persistentMenu.menus.length > 0 &&\r\n result.persistentMenu.menuEnabled\r\n ) {\r\n result.persistentMenu.menus.map((item, index) => {\r\n let MenuDataItem = [];\r\n item.callToActions.map((menu) => {\r\n MenuDataItem.push({\r\n type: menu.type,\r\n title: menu.title,\r\n payLoad: menu.payLoad,\r\n url: menu.url,\r\n });\r\n });\r\n SideMenuItem.map((sideItem) => {\r\n MenuDataItem.push({\r\n type: sideItem.type,\r\n title: sideItem.title,\r\n payLoad: sideItem.payLoad,\r\n url: sideItem.url,\r\n });\r\n });\r\n\r\n MenuData.push({\r\n locale: item.locale,\r\n callToActions: MenuDataItem,\r\n });\r\n });\r\n } else {\r\n let MenuDataItem = [];\r\n SideMenuItem.map((sideItem) => {\r\n MenuDataItem.push({\r\n type: sideItem.type,\r\n title: sideItem.title,\r\n payLoad: sideItem.payLoad,\r\n url: sideItem.url,\r\n });\r\n });\r\n MenuData.push({\r\n locale: \"default\",\r\n callToActions: MenuDataItem,\r\n });\r\n }\r\n this.setState({\r\n persistentMenu: MenuData,\r\n persistentMenuEnabled: result.persistentMenu.menuEnabled,\r\n });\r\n }\r\n return;\r\n }\r\n\r\n runNudges() {\r\n if (!this.state.nudges || this.state.opened || this.state.disabledChatbot) {\r\n return;\r\n }\r\n if (typeof Storage !== \"undefined\") {\r\n this.postMessage(\"totalnudges:\" + this.state.nudges.length);\r\n }\r\n this.state.nudges.forEach((nudge) => {\r\n if (\r\n this.props.mobile === \"true\"\r\n ? !nudge.disabledInMobile\r\n : !nudge.disabledInDesktop\r\n ) {\r\n setTimeout(\r\n () => {\r\n if (\r\n nudge.eyeCatcher &&\r\n nudge.eyeCatcher.response &&\r\n nudge.eyeCatcher.response.messages\r\n ) {\r\n if (\r\n nudge.buttons !== null &&\r\n nudge.buttons !== undefined &&\r\n this.props.mobile == \"false\" &&\r\n nudge.buttons.length > 0\r\n ) {\r\n this.postMessage(\r\n \"nudgebutton:\" +\r\n JSON.stringify({\r\n text: nudge.eyeCatcher.response.messages,\r\n buttons: nudge.buttons,\r\n botSettings: this.state.botSettings,\r\n })\r\n );\r\n } else {\r\n this.postMessage(\r\n \"eyecatcher:\" +\r\n JSON.stringify(nudge.eyeCatcher.response.messages)\r\n );\r\n }\r\n }\r\n },\r\n this.props.mobile === \"true\"\r\n ? nudge.delayInMillisecondsInMobile\r\n : nudge.delayInMilliseconds\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Posts a message to the parent window, if this window has one\r\n * @param {*} msg\r\n */\r\n postMessage(msg) {\r\n if (window.parent) {\r\n window.parent.postMessage(msg, \"*\");\r\n }\r\n }\r\n\r\n refresh() {\r\n new ChatWindowParticipantTagger().clearTags();\r\n localStorage.removeItem(this.state.lStore.CHAT_STATE);\r\n localStorage.removeItem(this.props.iid + \"-chatfeedback\");\r\n this.setState({\r\n extensions: { _api: ChatAppExtensions.getAPI(this, this.props) },\r\n });\r\n localStorage.removeItem(this.state.lStore.EXTENSIONS);\r\n this.state.chatBindings.showBookingForm(false, false);\r\n if (this.state.livechat) {\r\n this.state.livechat.closeChat();\r\n this.state.livechat.destroy();\r\n this.setState({\r\n inputEnabled: false,\r\n inLiveChat: false,\r\n started: false,\r\n inTwilioChat: false,\r\n twiliochat: undefined,\r\n livechat: undefined,\r\n loadingLivechat: false,\r\n agentName: undefined,\r\n getRoomTypes: undefined,\r\n store: getChatStore(this.state.chatBindings, true),\r\n });\r\n }\r\n localStorage.removeItem(this.state.lStore.CREDENTIALS);\r\n localStorage.removeItem(this.state.lStore.LIVECHAT_STARTED);\r\n localStorage.removeItem(this.state.lStore.PROPERTYID);\r\n localStorage.removeItem(this.state.lStore.PROPERTYNAME);\r\n localStorage.removeItem(this.state.lStore.LANGUAGE);\r\n localStorage.removeItem(this.state.lStore.LIVECHATCLIENT);\r\n localStorage.removeItem(this.state.lStore.BOTCLICK);\r\n localStorage.removeItem(this.state.lStore.LIVECHATMESSAGESTAMP);\r\n this.setState({\r\n getRoomTypes: undefined,\r\n });\r\n if (this.state.zendesk !== undefined) {\r\n // this.state.zendesk.un(\"connection_update\", function (status) {\r\n // console.log(status);\r\n // });\r\n // this.state.zendesk.un(\"chat\", function (detail) {\r\n // console.log(detail);\r\n // });\r\n this.state.zendesk.endChat();\r\n }\r\n this.setState({\r\n getRoomTypes: undefined,\r\n botSettings: undefined,\r\n inactivePopupOne: false,\r\n inactivePopupTwo: false,\r\n moveTop: false,\r\n inTwilioChat: false,\r\n twiliochat: undefined,\r\n twilioChatId: undefined,\r\n agentId: \"\",\r\n inZenDesk: false,\r\n zendesk: undefined,\r\n });\r\n this.closed();\r\n window.location.reload();\r\n }\r\n\r\n /**\r\n * Deletes stored credentials and restarts\r\n */\r\n\r\n end() {\r\n new ChatWindowParticipantTagger().clearTags();\r\n localStorage.removeItem(this.state.lStore.CHAT_STATE);\r\n localStorage.removeItem(this.props.iid + \"-chatfeedback\");\r\n this.setState({\r\n extensions: { _api: ChatAppExtensions.getAPI(this, this.props) },\r\n });\r\n localStorage.removeItem(this.state.lStore.EXTENSIONS);\r\n this.state.chatBindings.showBookingForm(false, false);\r\n if (this.state.livechat) {\r\n this.state.livechat.closeChat();\r\n this.state.livechat.destroy();\r\n this.setState({\r\n inputEnabled: false,\r\n inLiveChat: false,\r\n started: false,\r\n livechat: undefined,\r\n loadingLivechat: false,\r\n agentName: undefined,\r\n getRoomTypes: undefined,\r\n moveTop: false,\r\n store: getChatStore(this.state.chatBindings, true),\r\n });\r\n }\r\n if (this.state.twiliochat) {\r\n this.state.twiliochat.sendMessage(\"The user has left the conversation.\");\r\n\r\n fetch(TWILIO_END_CONVERSATION, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({ twilioConversationId: this.state.twilioChatId }),\r\n }).then((res) => {});\r\n this.setState({\r\n inputEnabled: false,\r\n inTwilioChat: false,\r\n twiliochat: undefined,\r\n twilioChatId: undefined,\r\n started: false,\r\n livechat: undefined,\r\n loadingLivechat: false,\r\n agentName: undefined,\r\n getRoomTypes: undefined,\r\n store: getChatStore(this.state.chatBindings, true),\r\n });\r\n }\r\n if (this.state.signalrchat) {\r\n this.state.signalrchat.invoke(\"SendConversationMessageToAgent\", {\r\n groupname: this.state.directline.conversationId,\r\n message: \"The user has left the conversation.\",\r\n });\r\n //this.state.signalrchat.stop(); \r\n this.setState({\r\n inputEnabled: false,\r\n inSignalRChat: false,\r\n signalrchat: undefined,\r\n signalRChatId: undefined,\r\n started: false,\r\n livechat: undefined,\r\n loadingLivechat: false,\r\n agentName: undefined,\r\n getRoomTypes: undefined,\r\n store: getChatStore(this.state.chatBindings, true),\r\n });\r\n }\r\n localStorage.removeItem(this.state.lStore.CREDENTIALS);\r\n localStorage.removeItem(this.state.lStore.LIVECHAT_STARTED);\r\n localStorage.removeItem(this.state.lStore.PROPERTYID);\r\n localStorage.removeItem(this.state.lStore.PROPERTYNAME);\r\n localStorage.removeItem(this.state.lStore.LANGUAGE);\r\n localStorage.removeItem(this.state.lStore.BOTCLICK);\r\n localStorage.removeItem(this.state.lStore.LIVECHATCLIENT);\r\n localStorage.removeItem(this.state.lStore.LIVECHATMESSAGESTAMP);\r\n this.setState({ directline: undefined });\r\n this.setState({ botclick: false });\r\n\r\n if (this.state.zendesk !== undefined) {\r\n // zChat.un(\"connection_update\", function (status) {console.log(status)});\r\n // zChat.un(\"chat\", function (status) {console.log(status)});\r\n // this.state.zendesk.un(\"connection_update\", function (status) {\r\n // console.log(status);\r\n // });\r\n // this.state.zendesk.un(\"chat\", function (detail) {\r\n // console.log(detail);\r\n // });\r\n this.state.zendesk.endChat();\r\n }\r\n this.setState({\r\n getRoomTypes: undefined,\r\n botSettings: undefined,\r\n inactivePopupOne: false,\r\n inactivePopupTwo: false,\r\n moveTop: false,\r\n inTwilioChat: false,\r\n twiliochat: undefined,\r\n twilioChatId: undefined,\r\n agentId: \"\",\r\n inZenDesk: false,\r\n openZChat_popup: false,\r\n open_ZChatfeedback_popup: false,\r\n property_popup: false,\r\n //zendesk: undefined,\r\n });\r\n // this.closed();\r\n setTimeout(() => {\r\n this.startConversation(false).then((m) => {\r\n this.recordClick();\r\n });\r\n }, 50);\r\n }\r\n\r\n endTwilio() {\r\n this.setState({\r\n inTwilioChat: false,\r\n twiliochat: undefined,\r\n twilioChatId: undefined,\r\n agentId: \"\"\r\n });\r\n }\r\n\r\n endSignalRChat() {\r\n this.state.signalrchat.stop();\r\n this.setState({\r\n inSignalRChat: false,\r\n signalrchat: undefined,\r\n signalRChatId: undefined,\r\n agentId: \"\",\r\n });\r\n }\r\n\r\n setAgentId(id) {\r\n this.setState({\r\n agentId: id,\r\n });\r\n }\r\n\r\n close_pop = () => {\r\n var getRoomTypes = this.state.getRoomTypes\r\n ? this.state.getRoomTypes\r\n : undefined;\r\n if (getRoomTypes) {\r\n getRoomTypes.reinit = false;\r\n this.setState({ getRoomTypes: getRoomTypes });\r\n }\r\n };\r\n /**\r\n * Attempts to restore any stored chat, otherwise will fetch a new token and restart\r\n */\r\n async startConversation(createZchat) {\r\n // Existing token\r\n try {\r\n var stored = JSON.parse(\r\n localStorage.getItem(this.state.lStore.CREDENTIALS)\r\n );\r\n\r\n if (stored && stored.token && stored.uid) {\r\n this.setState({ user_id: stored.uid });\r\n\r\n // Attempt to refresh the token\r\n var msg = await fetch(MS_REFRESH_URL, {\r\n method: \"POST\",\r\n headers: {\r\n Authorization: \"Bearer \" + stored.token,\r\n },\r\n });\r\n var body = await msg.json();\r\n\r\n if (msg.status === 200 && body && body.token) {\r\n this.setState({ directline: new DirectLine({ token: body.token }) });\r\n\r\n //console.log(\"directline NEW\", body.conversationId);\r\n localStorage.setItem(\r\n this.state.lStore.CREDENTIALS,\r\n JSON.stringify({\r\n token: body.token,\r\n uid: stored.uid,\r\n })\r\n );\r\n await this.registerPageLoad(body.conversationId);\r\n this.runNudges();\r\n //console.log(\"bbbbbbbbbbbb\");\r\n if (\r\n this.state.liveChatSettings !== undefined &&\r\n this.state.liveChatSettings.enabled === true &&\r\n this.state.liveChatSettings.provider == \"1\" &&\r\n createZchat === true\r\n ) {\r\n var connection_status = zChat.getConnectionStatus();\r\n if (connection_status == \"closed\") {\r\n zChat.init({\r\n account_key: this.state.liveChatSettings.zendesk.accountKey,\r\n });\r\n if (\r\n localStorage.getItem(this.state.lStore.LIVECHAT_STARTED) ===\r\n \"yes\"\r\n ) {\r\n this.zenDeskFunctions(\r\n zChat,\r\n this.state.liveChatSettings.zendesk.departmentId\r\n );\r\n }\r\n }\r\n this.setState({\r\n zendesk: zChat,\r\n zendeskDepartment:\r\n this.state.liveChatSettings.zendesk.departmentId,\r\n });\r\n }\r\n return; // QUIT FLOW if session succesfully recovered\r\n }\r\n }\r\n } catch {}\r\n\r\n // If session has expired/never existed\r\n\r\n if (this.props.openChatWindow === false) {\r\n this.closed();\r\n }\r\n this.setState({\r\n store: getChatStore(this.state.chatBindings, true),\r\n inputEnabled: false,\r\n inLiveChat: false,\r\n started: false,\r\n livechat: undefined,\r\n loadingLivechat: false,\r\n agentName: undefined,\r\n });\r\n\r\n localStorage.removeItem(this.state.lStore.LIVECHAT_STARTED);\r\n\r\n const res = await fetch(TOKEN_GEN_URL, {\r\n method: \"POST\",\r\n });\r\n\r\n const data = await res.json();\r\n var token = data.directline.token;\r\n\r\n var uid = uuid();\r\n this.setState({ user_id: uid });\r\n this.setState({ directline: new DirectLine({ token: token }) });\r\n\r\n localStorage.setItem(\r\n this.state.lStore.CREDENTIALS,\r\n JSON.stringify({\r\n token,\r\n uid,\r\n })\r\n );\r\n await this.registerPageLoad(data.directline.conversationId);\r\n this.runNudges();\r\n\r\n if (\r\n this.state.liveChatSettings !== undefined &&\r\n this.state.liveChatSettings.enabled === true &&\r\n this.state.liveChatSettings.provider == \"1\" &&\r\n createZchat === true\r\n ) {\r\n var connection_status = zChat.getConnectionStatus();\r\n //console.log(\"aaaaaaaaa\");\r\n if (connection_status == \"closed\") {\r\n zChat.init({\r\n account_key: this.state.liveChatSettings.zendesk.accountKey,\r\n });\r\n }\r\n this.setState({\r\n zendesk: zChat,\r\n zendeskDepartment: this.state.liveChatSettings.zendesk.departmentId,\r\n });\r\n }\r\n }\r\n\r\n startSignalRchat(conversationId, twilioConversionId) {\r\n const protocol = new JsonHubProtocol();\r\n const transport =\r\n HttpTransportType.WebSockets | HttpTransportType.LongPolling;\r\n const options = {\r\n transport,\r\n logMessageContent: true,\r\n logger: LogLevel.Error,\r\n };\r\n\r\n // create the connection instance\r\n const hubConnection = new HubConnectionBuilder()\r\n .withUrl(`${SIGNALR_URL}/api`, options)\r\n .withHubProtocol(protocol)\r\n .withAutomaticReconnect()\r\n .build();\r\n var uid = uuid();\r\n //startSignalRConnection(connection);\r\n hubConnection.start().then(() => {\r\n console.info(\"SignalR Connected\");\r\n console.log(hubConnection.connection);\r\n hubConnection\r\n .invoke(\"JoinConversation\", {\r\n recipient: uid,\r\n groupname: conversationId,\r\n })\r\n .catch(function (err) {\r\n console.error(err.toString());\r\n });\r\n hubConnection.on(\"SignalRChatAgentMessage\", (message) => {\r\n console.log(\"message to agent\", message);\r\n });\r\n hubConnection.on(\"UserTyping\", (message) => {\r\n console.log(\"user typing\", message);\r\n });\r\n hubConnection.on(\"AgentTyping\", (message) => {\r\n console.log(\"agent typing\", message);\r\n this.state.store.dispatch({\r\n type: \"SIGNALR/TYPING\",\r\n });\r\n });\r\n hubConnection.on(\"SignalRChatUserMessage\", (message) => {\r\n console.log(\"message to user\", message);\r\n this.state.store.dispatch({\r\n type: \"SIGNALR/NEW_MESSAGE\",\r\n payload: message,\r\n });\r\n });\r\n\r\n this.setState({ inSignalRChat: true });\r\n this.setState({\r\n signalrchat: hubConnection,\r\n });\r\n });\r\n }\r\n\r\n startTwiliochat(conversationId, twilioConversionId) {\r\n if (this.state.twilioChatId === undefined) {\r\n this.setState({ inTwilioChat: true, twilioChatId: twilioConversionId });\r\n var identityBody = {\r\n identity: `${conversationId}_user`,\r\n };\r\n\r\n fetch(TWILIO_TOKEN_GEN_URL, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(identityBody),\r\n }).then((tokenResponse) => {\r\n tokenResponse.json().then((twilioToken) => {\r\n this.setState({ twilioAccessToken: twilioToken.accessToken });\r\n ConversationsClient.create(twilioToken.accessToken).then(\r\n (twilioClient) => {\r\n twilioClient.on(\"conversationJoined\", (conversation) => {\r\n this.setState({\r\n twiliochat: conversation,\r\n });\r\n conversation.on(\"messageAdded\", (msg) => {\r\n this.state.store.dispatch({\r\n type: \"TWILIO/NEW_MESSAGE\",\r\n payload: msg.state,\r\n });\r\n });\r\n conversation.on(\"typingStarted\", (msg) => {\r\n this.state.store.dispatch({\r\n type: \"TWILIO/TYPING\",\r\n });\r\n });\r\n // conversation.on(\"typingEnded\", (msg) => {\r\n // console.log(\"typingEnded\")\r\n // });\r\n });\r\n }\r\n );\r\n });\r\n });\r\n }\r\n }\r\n\r\n setInTwiliochat(status) {\r\n this.setState({ inTwilioChat: status });\r\n }\r\n\r\n setInSignalRchat(status) {\r\n this.setState({ inSignalRChat: status });\r\n }\r\n\r\n isInTwiliochat() {\r\n return this.state.inTwilioChat;\r\n }\r\n\r\n isInSignalRchat() {\r\n return this.state.inSignalRChat;\r\n }\r\n\r\n sendTwilioTypingIndicator() {\r\n this.state.twiliochat.typing();\r\n }\r\n\r\n sendSignalRTypingIndicator() {\r\n this.state.signalrchat.invoke(\"UserTyping\", {\r\n groupname: this.state.directline.conversationId,\r\n message: \"typing\",\r\n });\r\n }\r\n\r\n sendZendeskTypingIndicator() {\r\n this.state.zendesk.sendTyping(true);\r\n }\r\n\r\n zenDeskFunctions(zendesk, department) {\r\n this.setState({ inZenDesk: true });\r\n const self = this;\r\n localStorage.setItem(self.state.lStore.LIVECHAT_STARTED, \"yes\");\r\n if (\r\n localStorage.getItem(self.state.lStore.VISITORDETAILS) !== null &&\r\n localStorage.getItem(self.state.lStore.VISITORDETAILS) !== undefined\r\n ) {\r\n const preChat = JSON.parse(\r\n localStorage.getItem(self.state.lStore.VISITORDETAILS)\r\n );\r\n var visitorInfo = {\r\n display_name:\r\n preChat.name === \"\"\r\n ? preChat.firstName + \" \" + preChat.lastName\r\n : preChat.name,\r\n };\r\n if (preChat.email !== \"\") {\r\n visitorInfo.email = preChat.email;\r\n }\r\n if (preChat.phoneNumber !== \"\") {\r\n visitorInfo.phone = preChat.phoneNumber;\r\n }\r\n\r\n zendesk.setVisitorInfo(visitorInfo, function (err) {});\r\n }\r\n\r\n var newPage = {\r\n title: this.props.parent_title,\r\n url: this.props.parent_location,\r\n };\r\n\r\n zChat.sendVisitorPath(newPage, function (err) {});\r\n var zendeskDefaultDepartment = \"\";\r\n if (\r\n localStorage.getItem(self.state.lStore.ZENDESKGROUP) !== null &&\r\n localStorage.getItem(self.state.lStore.ZENDESKGROUP) !== undefined &&\r\n localStorage.getItem(self.state.lStore.ZENDESKGROUP) !== \"\"\r\n ) {\r\n zendeskDefaultDepartment = localStorage.getItem(\r\n self.state.lStore.ZENDESKGROUP\r\n );\r\n const zendeskStartChat = setTimeout(() => {\r\n zendesk.setVisitorDefaultDepartment(\r\n parseInt(zendeskDefaultDepartment),\r\n (err) => {\r\n if (\r\n localStorage.getItem(self.state.lStore.LIVECHAT_STARTED) === \"yes\"\r\n ) {\r\n zendesk.sendChatMsg(\"bot:Resuming chat as page is refreshed\");\r\n } else {\r\n sendHistoryToZendesk(self.state.store.getState(), zendesk);\r\n localStorage.setItem(self.state.lStore.LIVECHAT_STARTED, \"yes\");\r\n }\r\n }\r\n );\r\n }, 2000);\r\n } else {\r\n sendHistoryToZendesk(self.state.store.getState(), zendesk);\r\n localStorage.setItem(self.state.lStore.LIVECHAT_STARTED, \"yes\");\r\n }\r\n // if (department !== \"\") {\r\n // zChat.setVisitorDefaultDepartment(parseInt(department));\r\n // }\r\n // sendHistoryToZendesk(self.state.store.getState(), zendesk);\r\n\r\n if (self.state.zendeskChatNew === true) {\r\n self.setState({ zendeskChatNew: false });\r\n zendesk.on(\"chat\", function (detail) {\r\n if (detail.type === \"chat.msg\") {\r\n const agents = zendesk.getServingAgentsInfo();\r\n if (agents.length > 0 && self.state.inZenDesk === false) {\r\n self.setState({\r\n inZenDesk: true,\r\n });\r\n localStorage.setItem(self.state.lStore.LIVECHAT_STARTED, \"yes\");\r\n }\r\n if (detail.nick !== \"visitor\") {\r\n if (\r\n localStorage.getItem(self.state.lStore.LIVECHATMESSAGESTAMP) ===\r\n null ||\r\n (localStorage.getItem(self.state.lStore.LIVECHATMESSAGESTAMP) !==\r\n null &&\r\n parseInt(detail.timestamp) >=\r\n parseInt(\r\n localStorage.getItem(self.state.lStore.LIVECHATMESSAGESTAMP)\r\n ))\r\n ) {\r\n self.state.store.dispatch({\r\n type: \"ZENDESK/NEW_MESSAGE\",\r\n payload: detail.msg,\r\n });\r\n localStorage.setItem(\r\n self.state.lStore.LIVECHATMESSAGESTAMP,\r\n detail.timestamp\r\n );\r\n }\r\n }\r\n } else if (detail.type === \"typing\" && self.state.inZenDesk === true) {\r\n self.state.store.dispatch({\r\n type: \"LIVECHAT/TYPING\",\r\n });\r\n } else if (\r\n detail.type === \"chat.memberjoin\" &&\r\n self.state.inZenDesk === true\r\n ) {\r\n if (detail.nick !== \"visitor\") {\r\n if (\r\n localStorage.getItem(self.state.lStore.LIVECHATMESSAGESTAMP) ===\r\n null ||\r\n (localStorage.getItem(self.state.lStore.LIVECHATMESSAGESTAMP) !==\r\n null &&\r\n parseInt(detail.timestamp) >\r\n parseInt(\r\n localStorage.getItem(self.state.lStore.LIVECHATMESSAGESTAMP)\r\n ))\r\n ) {\r\n self.state.store.dispatch({\r\n type: \"ZENDESK/NEW_MESSAGE\",\r\n payload:\r\n \"Agent \" + detail.display_name + \" has joined the chat\",\r\n });\r\n }\r\n }\r\n } else if (\r\n detail.type === \"chat.memberleave\" &&\r\n self.state.inZenDesk === true\r\n ) {\r\n if (detail.nick !== \"visitor\") {\r\n if (\r\n localStorage.getItem(self.state.lStore.LIVECHATMESSAGESTAMP) ===\r\n null ||\r\n (localStorage.getItem(self.state.lStore.LIVECHATMESSAGESTAMP) !==\r\n null &&\r\n parseInt(detail.timestamp) >\r\n parseInt(\r\n localStorage.getItem(self.state.lStore.LIVECHATMESSAGESTAMP)\r\n ))\r\n ) {\r\n self.state.store.dispatch({\r\n type: \"ZENDESK/NEW_MESSAGE\",\r\n payload: \"Agent \" + detail.display_name + \" has left the chat\",\r\n });\r\n const agents = zendesk.getServingAgentsInfo();\r\n if (agents.length === 0) {\r\n localStorage.removeItem(self.state.lStore.LIVECHAT_STARTED);\r\n self.setState({\r\n inZenDesk: false,\r\n open_ZChatfeedback_popup: true,\r\n });\r\n }\r\n }\r\n }\r\n } else if (\r\n detail.type === \"chat.request.rating\" &&\r\n self.state.inZenDesk === true\r\n ) {\r\n self.setState({\r\n open_ZChatfeedback_popup: true,\r\n });\r\n }\r\n if (\r\n detail.type === \"chat.queue_position\" &&\r\n self.state.inZenDesk === true\r\n ) {\r\n if (zChat.getQueuePosition() !== 0) {\r\n if (zChat.getQueuePosition() === 1) {\r\n self.state.store.dispatch({\r\n type: \"ZENDESK/NEW_MESSAGE\",\r\n payload: \"You are next in queue now\",\r\n });\r\n } else {\r\n self.state.store.dispatch({\r\n type: \"ZENDESK/NEW_MESSAGE\",\r\n payload: \"Your position in queue is \" + detail.queue_position,\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n localStorage.setItem(this.state.lStore.LIVECHATCLIENT, zendesk);\r\n const myInterval = setInterval(function () {\r\n if (zChat.getQueuePosition() === 0) {\r\n clearInterval(myInterval);\r\n } else {\r\n clearInterval(myInterval);\r\n self.state.store.dispatch({\r\n type: \"WEB_CHAT/SEND_EVENT\",\r\n payload: {\r\n name: \"agent_online_not_accepted\",\r\n },\r\n value: {},\r\n });\r\n const myIntervalBusy = setInterval(function () {\r\n if (zChat.getQueuePosition() === 0) {\r\n clearInterval(myIntervalBusy);\r\n } else {\r\n clearInterval(myIntervalBusy);\r\n self.setState({ inZenDesk: false });\r\n self.state.store.dispatch({\r\n type: \"WEB_CHAT/SEND_EVENT\",\r\n payload: {\r\n name: \"agent_online_busy\",\r\n },\r\n value: {},\r\n });\r\n }\r\n }, 60 * 1000);\r\n }\r\n }, 20 * 1000);\r\n }\r\n\r\n startZenDeskChat() {\r\n const self = this;\r\n if (self.state.zendesk.getConnectionStatus() === \"connected\") {\r\n self.zenDeskFunctions(self.state.zendesk, self.state.zendeskDepartment);\r\n } else {\r\n self.state.zendesk.on(\"connection_update\", function (status) {\r\n if (status === \"connected\") {\r\n this.zenDeskFunctions(\r\n self.state.zendesk,\r\n self.state.zendeskDepartment\r\n );\r\n } else if (status === \"closed\") {\r\n //self.state.zendesk.reconnect();\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * When called, starts the livechat session to replace the bot\r\n */\r\n startLivechat() {\r\n this.setState({ inLiveChat: true });\r\n // this.setState({ inLiveChat: true, loadingLivechat: true });\r\n this.setState({\r\n livechat: LivechatSDK.init({\r\n license: LIVECHAT_LICENSE,\r\n group: LIVECHAT_GROUP,\r\n }),\r\n });\r\n\r\n this.state.livechat.on(\"agent_changed\", (agent) => {\r\n this.setState({ agentName: agent.name });\r\n });\r\n\r\n this.state.livechat.setVisitorData({\r\n name: \"Book me Wallis\",\r\n pageUrl: this.props.parent_location,\r\n pageTitle: this.props.parent_title,\r\n customProperties: {\r\n ReferringWebsite: this.props.parent_referrer,\r\n GroupID: this.props.gid,\r\n IntegrationID: this.props.iid,\r\n VisitorID: this.state.vid,\r\n SessionID: this.state.sid,\r\n ConversationID: this.state.directline.conversationId,\r\n },\r\n });\r\n\r\n // Register listeners, and send welcome message when ready\r\n this.state.livechat.on(\"ready\", () => {\r\n // this.setState({ loadingLivechat: false });\r\n this.state.livechat.getPredictedAgent().then((agent) => {\r\n this.setState({ agentName: agent.name });\r\n });\r\n\r\n // Tell agent we are online and user that agent is connected\r\n if (localStorage.getItem(this.state.lStore.LIVECHAT_STARTED) !== \"yes\") {\r\n localStorage.setItem(this.state.lStore.LIVECHAT_STARTED, \"yes\");\r\n\r\n sendChatStore(this.state.store.getState(), this.state.livechat);\r\n\r\n this.state.livechat.sendMessage({\r\n text: \"User requesting human transfer.\",\r\n customId: String(Math.random()),\r\n });\r\n\r\n this.state.livechat.getPredictedAgent().then((agent) => {\r\n var txt = agent.name\r\n ? `Agent ${agent.name} has joined`\r\n : `An agent has joined`;\r\n this.state.store.dispatch({\r\n type: \"LIVECHAT/NEW_MESSAGE\",\r\n payload: { text: txt },\r\n });\r\n });\r\n }\r\n\r\n // Forward messages to directline\r\n this.state.livechat.on(\"new_message\", (msg) => {\r\n this.state.store.dispatch({\r\n type: \"LIVECHAT/NEW_MESSAGE\",\r\n payload: msg,\r\n });\r\n });\r\n\r\n // Forward typing indicators to directline\r\n this.state.livechat.on(\"typing_indicator\", () => {\r\n this.state.store.dispatch({\r\n type: \"LIVECHAT/TYPING\",\r\n });\r\n });\r\n\r\n // Fire end chat event\r\n this.state.livechat.on(\"chat_ended\", (msg) => {\r\n this.state.store.dispatch({\r\n type: \"LIVECHAT/CHAT_END\",\r\n payload: msg,\r\n });\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Various setters/getters for children to take as props\r\n * Mostly used by the ChatStore.js\r\n */\r\n enableChat() {\r\n this.setState({ inputEnabled: true });\r\n }\r\n disableChat() {\r\n this.setState({ inputEnabled: false });\r\n }\r\n\r\n getState() {\r\n return this.state.store.getState();\r\n }\r\n getChatState() {\r\n return this.state;\r\n }\r\n\r\n setConnectionStatus(status) {\r\n if (\r\n status === ConnectionStatus.FailedToConnect ||\r\n status === ConnectionStatus.ExpiredToken ||\r\n status === ConnectionStatus.Ended\r\n ) {\r\n this.setState({ connectionError: true });\r\n } else {\r\n this.setState({ connectionError: false });\r\n }\r\n }\r\n\r\n setInactivePopupOne() {\r\n this.setState({ inactivePopupOne: true });\r\n }\r\n closeInactivePopupOne() {\r\n this.setState({ inactivePopupOne: false });\r\n }\r\n\r\n setInactivePopupTwo() {\r\n this.setState({ inactivePopupOne: false, inactivePopupTwo: true });\r\n }\r\n\r\n opened() {\r\n this.setState({ opened: true });\r\n this.postMessage(\"chatbotwindowOpen\");\r\n localStorage.setItem(this.state.lStore.OPENED, \"open\");\r\n this.recordClick();\r\n }\r\n\r\n recordClick() {\r\n if (\r\n this.state.sid !== undefined &&\r\n this.state.botclick === false &&\r\n localStorage.getItem(this.state.lStore.BOTCLICK) !== \"true\"\r\n ) {\r\n const req = fetch(`${BOT_CLICKS}`, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n groupId: this.props.gid,\r\n sessionId: this.state.sid,\r\n integrationId: this.props.iid,\r\n }),\r\n });\r\n localStorage.setItem(this.state.lStore.BOTCLICK, \"true\");\r\n this.setState({ botclick: false });\r\n }\r\n }\r\n\r\n closed() {\r\n if (this.state.resize === true) {\r\n this.resize_actual();\r\n }\r\n this.postMessage(\"chatbotwindowClose\");\r\n if (!this.props.defaultOpen) {\r\n this.setState({ opened: false });\r\n localStorage.removeItem(this.state.lStore.OPENED);\r\n }\r\n this.setState({ botclick: false });\r\n setTimeout(() => {\r\n this.runNudges();\r\n }, 1000);\r\n }\r\n\r\n hide_bot() {\r\n if (this.state.resize === true) {\r\n this.resize_actual();\r\n }\r\n this.postMessage(\"chatbotHide\");\r\n setTimeout(() => {\r\n this.postMessage(\"chatbotwindowClose\");\r\n }, 1000);\r\n this.setState({ opened: false });\r\n localStorage.removeItem(this.state.lStore.OPENED);\r\n setTimeout(() => {\r\n this.runNudges();\r\n }, 930000);\r\n }\r\n resize_full() {\r\n this.setState({ resize: true });\r\n this.postMessage(\"resizefull\");\r\n }\r\n resize_actual() {\r\n this.setState({ resize: false });\r\n this.postMessage(\"resizeactual\");\r\n }\r\n\r\n setInLivechat(status) {\r\n this.setState({ inLiveChat: status });\r\n }\r\n isInZendeskChat() {\r\n return this.state.inZenDesk;\r\n }\r\n isInLivechat() {\r\n return this.state.inLiveChat;\r\n }\r\n\r\n hintClosed() {\r\n this.setState({ currentNudge: undefined });\r\n }\r\n\r\n sendFeedbackZenDeskChat(data, endChat) {\r\n const self = this;\r\n if (data.status === \"send\") {\r\n if (data.rate !== \"\") {\r\n zChat.sendChatRating(data.rate);\r\n }\r\n if (data.comments !== \"\") {\r\n zChat.sendChatComment(data.comments);\r\n }\r\n }\r\n self.setState({ open_ZChatfeedback_popup: false });\r\n if (endChat) {\r\n self.end();\r\n }\r\n }\r\n /**\r\n * Renders either the ChatWindow or the \"ChatBubble\" (bubble, pop up messages, etc visible when chat isn't)\r\n */\r\n render() {\r\n const {\r\n opened,\r\n directline,\r\n store,\r\n inputEnabled,\r\n user_id,\r\n loadingLivechat,\r\n agentName,\r\n currentNudge,\r\n makePayment,\r\n animation,\r\n botSettings,\r\n bookingApp,\r\n getRoomTypes,\r\n pid,\r\n blockChatbot,\r\n disabledChatbot,\r\n persistentMenu,\r\n persistentMenuEnabled,\r\n } = this.state;\r\n const { mobile } = this.props;\r\n return (\r\n
\r\n {botSettings && !blockChatbot && persistentMenu ? (\r\n \r\n {\r\n this.setState({\r\n animation: { ...this.state.animation, bubbleToFadeIn: false },\r\n });\r\n }}\r\n botSettings={botSettings}\r\n room_app={getRoomTypes}\r\n close_pop={this.close_pop}\r\n isCheckedAvailability={this.state.isCheckedAvailability}\r\n hideRoomDetail={this.state.hideRoomDetail}\r\n customStyle={this.props.customStyle}\r\n refreshClicked={this.refresh.bind(this)}\r\n extensions={this.state.extensions}\r\n connectionError={this.state.connectionError}\r\n inactivePopupOne={this.state.inactivePopupOne}\r\n inactivePopupTwo={this.state.inactivePopupTwo}\r\n sid={this.state.sid}\r\n vid={this.state.vid}\r\n gid={this.props.gid}\r\n iid={this.props.iid}\r\n api={ChatAppExtensions.getAPI(this, this.props)}\r\n hideTypingTextBox={this.hideTypingTextBox}\r\n lang={this.state.lang}\r\n moveTop={this.state.moveTop}\r\n persistentMenu={persistentMenu}\r\n persistentMenuEnabled={persistentMenuEnabled}\r\n inTwiliochat={this.state.inTwilioChat}\r\n resize={this.state.resize}\r\n resize_full={this.resize_full.bind(this)}\r\n resize_actual={this.resize_actual.bind(this)}\r\n hideBot={this.hide_bot.bind(this)}\r\n availblity={this.state.availblity}\r\n setAvailblity={this.setAvailblity.bind(this)}\r\n inZenDesk={this.state.inZenDesk}\r\n sendFeedbackZenDeskChat={this.sendFeedbackZenDeskChat.bind(this)}\r\n openZChat_popup={this.state.open_ZChatfeedback_popup}\r\n property_popup={this.state.property_popup}\r\n setPropertyPopUp={this.setPropertyPopUp.bind(this)}\r\n messenger={this.props.messenger}\r\n bot_restartClick={() => {\r\n this.setState({ bot_restart: false });\r\n }}\r\n bot_restart={this.state.bot_restart}\r\n />\r\n {!opened &&\r\n !blockChatbot &&\r\n this.props.serviceview === false &&\r\n botSettings.bubbleSettings !== undefined &&\r\n botSettings.bubbleSettings !== null &&\r\n botSettings.bubbleSettings.bubbleType !== undefined &&\r\n botSettings.bubbleSettings.bubbleType !== null &&\r\n (botSettings.bubbleSettings.bubbleType === \"Bubble\" ? (\r\n \r\n ) : (\r\n \r\n ))}\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {blockChatbot ? (\r\n

\r\n Access restricted: You need to be connected to the hotel's WiFi\r\n network to start chatting with the digital assistant. Please connect\r\n your device to the hotel's WiFi and try again.\r\n

\r\n ) : null}\r\n
\r\n );\r\n }\r\n}\r\n"],"sourceRoot":""}