{"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","ratePlanCode","setRatePlanCode","datesData","setDatesData","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","fromDateData","toDateData","renderFooter","background","margin","FormGroup","Label","Input","bookingEngineUrl","childrenValue","parseInt","childrenAge","arr","element","handleChangeChildrenAge","placeholder","childAge","bookingUrl","roomBookingEngineCode","hashIndex","slice","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","sendtobot","log","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","ChangeBotLanguage","largeWindow","inputHint","showTypingTextBox","livechat","startLivechat","twiliochat","startTwiliochat","signalrchat","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","detectedLang","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.f5ef3b87.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 = {\r\n\r\n locale: 'mi',\r\n pluralRuleFunction(e, t) {\r\n return t && e === 1 ? 'one' : 'other';\r\n }\r\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, sendtobot) => {\r\n console.log('change')\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 if (sendtobot) {\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 }\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=${this.state.googleAnalytics.utmSource !== undefined\r\n ? this.state.googleAnalytics.utmSource\r\n : \"\"\r\n }&utm_medium=${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=${this.state.googleAnalytics.utmSource !== undefined\r\n ? this.state.googleAnalytics.utmSource\r\n : \"\"\r\n }&utm_medium=${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=${this.state.googleAnalytics.utmSource !== undefined\r\n ? this.state.googleAnalytics.utmSource\r\n : \"\"\r\n }&utm_medium=${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,false);\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,true)\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 if (webviewPayload.title === \"New Lang Detect\") {\r\n callbacks.ChangeBotLanguage(webviewPayload.url);\r\n } \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 ChangeBotLanguage:this.ChangeBotLanguage.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 ChangeBotLanguage(detectedLang){\r\n console.log(\"detectedLang\",detectedLang)\r\n this.setState({ lang: detectedLang }); \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":""}