{"version":3,"sources":["components/styled.js","components/header/components/styled.js","services/api-http.js","components/logos/index.js","context/WebchatContext.js","components/header/Header.js","pages/login/components/regex.js","pages/login/components/styled.js","store/page/actions.js","store/user/actions.js","store/conversation/actions.js","store/user/reducer.js","store/config/reducer.js","store/conversation/reducer.js","store/survey/reducer.js","store/reduce/getNameFileReduce.js","store/rootReducer.js","store/page/reducer.js","store/hours/reducer.js","store/index.js","services/constraints/answeredConversation.js","services/api-socket.js","services/http/queueClient.js","store/hours/action.js","services/constraints/tranferredClient.js","services/constraints/attendantSendMessage.js","services/constraints/endCoversationClient.js","services/constraints/answerSurvey.js","store/survey/actions.js","pages/login/Login.js","services/send-message-bot.js","pages/queue/components/styled.js","components/loader/style.js","components/loader/index.js","pages/queue/Queue.js","pages/wait/components/styled.js","pages/wait/Wait.js","pages/conversation/components/upload/style.js","pages/conversation/components/upload/index.js","store/action/getNameFile.js","pages/conversation/components/AudioSender/components/styled.js","pages/conversation/components/AudioSender/index.js","pages/conversation/components/styled.js","components/message/Message.js","components/message/message-image/style.js","components/message/message-image/MessgeImage.js","components/message/message-file/style.js","components/message/message-file/index.js","components/message/message-link/index.js","components/message/message-option/styled.js","components/message/message-option/MessageOption.js","components/message/message-audio/style.js","components/message/message-audio/index.js","components/message/message-video/style.js","components/message/message-video/MessageVideo.js","pages/conversation/Conversation.js","pages/customer-experience-survey/components/SurveyRating/components/styled.js","pages/customer-experience-survey/service/index.js","pages/customer-experience-survey/components/SurveyRating/components/FlexRating/assets/index.js","pages/customer-experience-survey/components/SurveyRating/components/FlexRating/assets/styled.js","pages/customer-experience-survey/components/SurveyRating/components/FlexRating/index.js","pages/customer-experience-survey/components/SurveyRating/index.js","pages/customer-experience-survey/style.js","pages/customer-experience-survey/CustumerExperienceSurvey.js","pages/end/components/styled.js","pages/end/End.js","services/get-config-chat.js","store/config/actions.js","App.js","util/events.js","index.js"],"names":["G4FullWindow","styled","div","_templateObject","_taggedTemplateLiteral","G4Container","label","_templateObject2","props","color","_templateObject3","modeWebchatFull","size","page","Hours","_templateObject4","G4LogoOpen","button","_templateObject5","concat","G4Header","header","G4Avatar","img","G4HeaderItens","onlineAtendent","apiHttp","axios","create","baseURL","process","apiHttpNotOpen","apiIntegration","apiNps","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","record","result","__await","then","unwrapped","error","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","getLogoChatURL","_ref","_asyncToGenerator","_callee","_data$data","_data$data$data","data","externalSource","_context","get","logoChat","image","Image","onload","src","apply","arguments","getLogoFlexiaURL","_ref2","_callee2","_data$data2","_data$data2$data","_context2","profilePic","WebchatContext","createContext","WebchatContextProvider","children","_useState","useState","_useState2","_slicedToArray","setModeWebchatFull","React","createElement","Provider","changeToggle","newValue","Header","minimize","logoFlexiaURL","setLogoFlexiaURL","useContext","useEffect","source","console","config","useSelector","hours","hoursOfOut","Fragment","chatOpen","alt","className","botName","FaMinus","onClick","event","preventDefault","minus","regex","RegExp","telephone","G4Form","form","G4LoginImgDiv","G4LoginImg","ContentInput","border","G4InputForm","input","MessageErro","_templateObject6","G4Button","_templateObject7","nextPage","payload","loginAction","email","telefone","logged","addIdConversation","idConversa","addMessages","messages","addSessionId","sessionId","INITIAL_STATE","queue","socketId","positionQueue","timeBegin","timeEnd","useBot","id","conversationAttendant","conversationId","survey","active","rootReducer","combineReducers","action","user","_objectSpread","produce","draft","conversation","getNameFileReduce","store","createStore","window","__REDUX_DEVTOOLS_EXTENSION__","conversaAtendida","now","Date","newMessages","localStorage","setItem","mensagens","map","hora_da_mensagem","dispatch","SOCKET_IO_URL","apiSocket","io","path","on","_event$conversa","_event$conversa2","conversa","_id","fila","foraHorario","addQueue","httpApi","response","posicao","log","entrouFilaCliente","_event$message","atendenteEnviaMenssagem","message","removeItem","setTimeout","conversa_id","initSurvey","Login","inputFocus","setInputFocus","_useState3","_useState4","logoURL","setLogoURL","useDispatch","search","useLocation","_useForm","useForm","register","handleSubmit","errors","setValue","styleIcon","transition","modifiedFocusTrue","e","_defineProperty","target","modifiedFocusFalse","restoreConversation","conversas","getItem","conversaNaoAtendida","id_socket_cliente","cliente","nome","idSessao","String","_queryString$parse","queryString","parse","tel","onSubmit","replace","FaUser","style","onFocus","onBlur","placeholder","ref","required","MdEmail","pattern","FaPhoneAlt","maxLength","colorFocus","onChange","maskInputTelephone","G4QueueImgDiv","G4QueueImg","G4ContainerSelect","G4Erros","p","G4QueueButton","loop","keyframes","Spinner","picker","Loader","Queue","queues","setQueues","mobile","origem","platform","navigator","isMobile","browserName","socketApi","emit","navegador","plataforma","disabled","teste","G4ContainerWait","G4WaitImg","G4Footer","span","Wait","FaHourglassHalf","Container","PreviewUploadImage","attrs","PreviewUploadVideo","PreviewUploadFile","HeaderUpload","Upload","forwardRef","file","stateFile","cleanUplaod","stateUploadName","preview","setPreview","messagesEndRef","useRef","clearPreviewUpload","current","scrollIntoView","behavior","index","MdClose","FaFilePdf","width","height","controls","AudioInput","AudioTime","ButtonAudio","intervalId","Mp3Recorder","MicRecorder","bitRate","useRecorder","setRecording","isRecording","setIsRecording","timeCount","setTimeCount","start","nowTime","setInterval","startTime","differenceFromNow","differenceInSeconds","minutes","Math","floor","seconds","getFomattedDigit","digit","padStart","getTime","clearInterval","title","BsFillMicFill","getMp3","_ref3","blob","dateNow","formatedData","FormData","append","toLocaleDateString","toLocaleTimeString","post","headers","mensagem","AiFillCheckCircle","FaStopCircle","ContainerBody","G4ContainerMessages","ProfileBallon","Arrow","option","ContentMessages","DropContainer","G4ContentInput","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","G4InputMessage","_templateObject13","isRecordingAudio","_templateObject14","G4Cliente","_templateObject15","isVideo","G4Atendente","_templateObject16","G4Wait","_templateObject17","Message","time","text","content","hour","minute","hour12","MessageImageStyle","href","MessageFile","cursor","open","ContentOption","MessageOption","options","cliente_ou_atendente","texto","chatId","MessageAudio","Audio","player","setPlayer","duration","setDuration","_useState5","_useState6","setTime","_useState7","_useState8","setNowValue","audio","play","paused","pause","formatedTime","toString","formatedDuration","MdPlayArrow","MdPause","min","max","step","onLoadedData","currentTarget","toFixed","onTimeUpdate","currentTime","alert","MessageVideoStyle","Conversation","socket","useMemo","setClientTyping","attendantTyping","setAttendantTyping","valueInput","setValueInput","_useState9","_useState10","defaultValues","scrollToBottom","phone","formulario","_response$data$data$_","_useState11","_useState12","previewImages","setPreviewImages","_useState13","_useState14","stateUpload","setStateUpload","_useState15","_useState16","setStateUploadName","digitando","response_type","MessageImage","background","MessageLink","MessageVideo","autoComplete","sendMessageBot","escrita_por","sendMessageAttendant","Dropzone","onDropAccepted","files","selectedImagesPreview","Array","from","URL","createObjectURL","accept","getRootProps","getInputProps","FaPaperclip","assign","MdSend","isSecureContext","AudioSender","G4ContainerCustomerExperience","G4CustomerExperienceImgDiv","G4CustomerExperienceImg","G4FormCustomerExperience","G4TextAreaCustomerExperience","textarea","G4TextAriaLabel","G4ButtonCustomerExperience","G4CenteredDiv","G4QuestionTag","_createClass","SurveyService","_classCallCheck","getTags","getSurveyConfig","surveyId","sendInquiry","satisfactionStyles","makeStyles","iconFilled","iconFilled1","iconFilled2","iconFilled3","iconFilled4","iconFilled5","iconHover","iconHover1","iconHover2","iconHover3","iconHover4","iconHover5","npsStyles","iconFilled6","iconFilled7","iconFilled8","iconFilled9","iconFilled10","iconHover6","iconHover7","iconHover8","iconHover9","iconHover10","RatingBox","FlexRating","setRate","rate","hover","setHover","qtdStars","setQtdStars","satisfacaoStyle","npsStyle","iconFilledVar","setIconFilled","iconHoverVar","setIconHover","Rating","precision","getPropsFilledSatisfacao","getPropsFilledNPS","onChangeActive","newHover","getPropsHoverSatisfacao","getPropsHoverNPS","classes","SurveyRating","surveyConfig","optionTags","setOptionTags","questionTag","setQuestionTag","selectedTags","setSelectedTags","observation","setObservation","aux","answers","el","arrayTag","tag","question_tag","question","type_survey","MultipleSelectChips","htmlFor","rows","cols","channel","tags","_toConsumableArray","res","CustumerExperienceSurvey","setSurveyConfig","G4ContainerEnd","G4EndImgDiv","G4EndImg","G4FooterEnd","End","ativado","nome_atendente","cor","addConfig","App","eventName","listener","setChatOpen","openChat","document","addEventListener","zIndex","FaComments","ReactDOM","render","BrowserRouter","getElementById"],"mappings":"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","file":"static/js/main.0c45c214.chunk.js","sourcesContent":["import styled from \"styled-components\";\n\nexport const G4FullWindow = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n`\n\nexport const Switch = styled.label`\n \n position: relative;\n display: inline-block;\n width: 60px;\n height: 34px;\n \n input {\n opacity: 0;\n width: 0;\n height: 0;\n }\n\n .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #ccc;\n -webkit-transition: .4s;\n transition: .4s;\n }\n\n .slider:before {\n position: absolute;\n content: \"\";\n height: 26px;\n width: 26px;\n left: 4px;\n bottom: 4px;\n background-color: white;\n -webkit-transition: .4s;\n transition: .4s;\n }\n\n input:checked + .slider {\n background-color: ${(props) => props.color ? props.color : '#2196F3'};\n }\n\n input:focus + .slider {\n box-shadow: ${(props) => props.color ? props.color : '#2196F3'};\n }\n\n input:checked + .slider:before {\n -webkit-transform: translateX(26px);\n -ms-transform: translateX(26px);\n transform: translateX(26px);\n }\n\n .slider.round {\n border-radius: 34px;\n }\n\n .slider.round:before {\n border-radius: 50%;\n }\n\n`\n\nexport const G4Container = styled.div`\n position: ${props => (props.modeWebchatFull ? 'relative' : 'fixed')};\n background-color: #fff;\n padding-top: ${props => (props.modeWebchatFull ? '10px' : 'none')};\n bottom: ${props => (props.modeWebchatFull ? '1rem' : '3rem')};\n right: ${props => (props.modeWebchatFull ? 'none' : '7rem')};\n box-shadow: 1px 1px 10px 2px rgba(0, 0, 0, 0.22);\n transition: height 0.5s 0.5s, opacity 600ms 0.4s;\n display: ${props => props.size ? 'block' : 'none'};\n border-radius: 10px 10px 10px 10px;\n box-sizing: border-box;\n z-index: 20000;\n\n @media screen and (min-width: 1440px) {\n width: ${props => \n props.modeWebchatFull && props.page !== 'Conversation' ? '40rem'\n : props.modeWebchatFull && props.page === 'Conversation' ? '87.5rem'\n : '325px'\n };\n \n height: ${props => \n props.modeWebchatFull && props.page !== 'Conversation' ? '30rem'\n : props.modeWebchatFull && props.page === 'Conversation' ? 'auto'\n : '465px'\n };\n }\n\n @media (min-width: 992px) and (max-width: 1439px) {\n width: ${props => \n props.modeWebchatFull && props.page !== 'Conversation' ? '25rem'\n : props.modeWebchatFull && props.page === 'Conversation' ? '62.5rem'\n : '325px'\n };\n \n height: ${props => \n props.modeWebchatFull && props.page !== 'Conversation' ? '25rem'\n : props.modeWebchatFull && props.page === 'Conversation' ? 'none'\n : '465px'\n };\n\n }\n\n @media screen and (max-width: 991px) {\n width: ${props => (props.modeWebchatFull ? '90%' : '325px')};\n height: ${props => (props.modeWebchatFull ? 'auto' : '465px')};\n }\n`;\n\nexport const Hours = styled.div`\n font-size: 10px;\n margin-top: 10px;\n text-align: right;\n margin-left: 5px;\n font-family: roboto;\n`;\n\nexport const G4LogoOpen = styled.button`\n cursor: pointer;\n position: fixed;\n bottom: 3rem;\n right: 7rem;\n border: #fff solid 5px;\n border-radius: 50%;\n padding: 5px;\n width: 5rem;\n height: 5rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n ${(props) => props.color && `background: ${props.color};`}\n`;\n","import styled from \"styled-components\";\n\nexport const G4Header = styled.header`\n width: 100%;\n height: ${(props) => props.modeWebchatFull ? '60px' : '42px'};\n\n @media screen and (min-width: 1440px) {\n margin-bottom: ${(props) => props.modeWebchatFull ? '50px' : 'none'};\n\n }\n\n border-radius: 10px 10px 0 0;\n display: flex;\n color: white;\n align-items: center;\n background: ${props => (props.modeWebchatFull ? props.modeWebchatFull : props.color)};\n\n .minimize {\n margin-left: auto;\n margin-right: 10px;\n align-items: center;\n display: flex;\n justify-content: space-between;\n }\n\n svg {\n cursor: pointer;\n }\n`;\n\nexport const G4Avatar = styled.img`\n height: ${(props) => props.modeWebchatFull ? '60px' : '50px'};\n margin: ${(props) => props.modeWebchatFull ? '0px 0px 0px 25px' : '-30px 0px 0px 25px'};\n border-radius: 50%;\n border: 2px solid rgba(0, 0, 0, 0.21);\n background: white;\n`;\n\nexport const G4HeaderItens = styled.div`\n display: flex;\n align-items: center;\n font-size: ${(props) => props.modeWebchatFull ? '24px' : '17px'};\n color: ${(props) => props.modeWebchatFull ? '#32325d' : 'none'};\n\n .circleOnline {\n height: 12px;\n width: 12px;\n background-color: ${props => props.onlineAtendent ? '#c05353' : '#34fe60'};\n border-radius: 50%;\n margin: ${(props) => props.modeWebchatFull ? '0 10px -35px -12px' : '0 10px 0 -12px'};\n }\n`;\n","import axios from \"axios\";\n\nexport const apiHttp = axios.create({\n baseURL: `${process.env.REACT_APP_CHANNEL_URL}`,\n});\n\nexport const apiHttpNotOpen = axios.create({\n baseURL: `${process.env.REACT_APP_PROXY_URL}`,\n});\n\nexport const apiIntegration = axios.create({\n baseURL: `${process.env.REACT_APP_CHAT_INTEGRATION}`,\n});\n\nexport const apiNps = axios.create({\n baseURL: `${process.env.REACT_APP_SURVEY_URL}`,\n});\n","import { apiHttpNotOpen } from \"../../services/api-http\";\n\nconst getExternalSource = (logoURL) => {\n const baseURL = process.env.REACT_APP_CONFIGURATION_URL;\n\n return `${baseURL}${logoURL}`;\n};\n\nexport const getLogoChatURL = async () => {\n const data = await apiHttpNotOpen.get(\"api/open/configurations/webchat\");\n\n const externalSource = data?.data?.data?.logoChat;\n\n return new Promise((resolve) => {\n const image = new Image();\n\n image.onload = () => {\n resolve(image.src);\n };\n\n image.src = externalSource;\n });\n};\n\nexport const getLogoFlexiaURL = async () => {\n const data = await apiHttpNotOpen.get(\"api/open/configurations/webchat\");\n\n const externalSource = data?.data?.data?.profilePic;\n\n return new Promise((resolve) => {\n const image = new Image();\n\n image.onload = () => {\n resolve(image.src);\n };\n\n image.src = externalSource;\n });\n};\n","import React, { createContext, useState} from \"react\";\n\nexport const WebchatContext = createContext();\n\nconst isFullScreen = process.env.REACT_APP_FULLSCREEN_MODE === 'true';\n\nexport function WebchatContextProvider( {children} ){\n const [modeWebchatFull, setModeWebchatFull] = useState(isFullScreen)\n\n const changeToggle = (newValue) => {\n setModeWebchatFull(!newValue);\n };\n\n return (\n \n {children}\n \n )\n\n}\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport \"./components/Header.css\";\nimport { G4Header, G4Avatar, G4HeaderItens } from \"./components/styled\";\nimport { getLogoFlexiaURL } from \"../logos/index\";\n\nimport { FaMinus } from \"react-icons/fa\";\nimport { useContext } from \"react\";\nimport { WebchatContext } from \"../../context/WebchatContext\";\n//import { clearConversation } from '../../store/conversation/actions';\n\nconst Header = ({ minimize, size }) => {\n const [logoFlexiaURL, setLogoFlexiaURL] = useState(null);\n \n const {modeWebchatFull} = useContext(WebchatContext);\n \n useEffect(() => {\n getLogoFlexiaURL()\n .then((source) => {\n setLogoFlexiaURL(source);\n })\n .catch(() => console.error(\"[LOGIN FORM] Error loading flexia logo\"));\n }, []);\n\n const config = useSelector((state) => state.config);\n const hours = useSelector((state) => state.hoursOfOut);\n //const dispatch = useDispatch();\n function minus(event) {\n event.preventDefault();\n minimize(false);\n }\n\n return (\n <>\n \n
\n
\n \n
\n
\n \n
\n
\n {config.botName}\n
\n \n
\n minus(event)}\n size=\"23\"\n color=\"#fff\"\n type=\"button\"\n />\n
\n \n \n );\n};\n\nexport default Header;\n","export const regex = new RegExp(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/);\nexport const telephone = new RegExp(/^(\\(\\d{2}\\))?(\\d{5}-\\d{4})/);","import styled from \"styled-components\";\n\nexport const G4Form = styled.form`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-size: 20px;\n height: ${props => (props.modeWebchatFull ? 'none%' : '423px')};\n background: #fff;\n border-radius: 0 0 13px 13px;\n\n .g4-inputWithIcon {\n height: 40px;\n width: 90%;\n background: #e7e7e7;\n display: flex;\n transition: ease 0.3s;\n border: 1px solid transparent;\n border-radius: 13px;\n justify-content: center;\n align-items: center;\n }\n\n .g4-inputWithIcon + .g4-inputWithIcon {\n margin-top: 7px;\n }\n`;\n\nexport const G4LoginImgDiv = styled.div`\n text-align: center;\n justify-content: center;\n display: flex;\n vertical-align: middle;\n width: 100%;\n height: 172px;\n background-color: #fff;\n`;\n\nexport const G4LoginImg = styled.div`\n width: 200px;\n height: 170px;\n background: url(${props => props.src});\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: contain;\n`;\n\nexport const ContentInput = styled.div`\n display: flex;\n justify-content: space-around;\n align-items: center;\n background: #e7e7e7;\n width: ${props => (props.modeWebchatFull ? '80%' : '90%')};\n border: 1px solid ${props => props.border};\n border-radius: 7px;\n height: 43px;\n padding-left: 5px;\n margin-top: ${props => (props.modeWebchatFull ? '10px' : '5px')};\n\n input:-webkit-autofill,\n input:-webkit-autofill:hover,\n input:-webkit-autofill:focus {\n transition: background-color 5000s ease-in-out 0s;\n }\n`;\n\nexport const G4InputForm = styled.input`\n width: 80%;\n border-radius: 2px;\n padding: 5px;\n outline: none;\n border: 0;\n transition: 0.3s;\n background: #e7e7e7;\n transition: all 0.3s ease-out;\n`;\n\nexport const MessageErro = styled.label`\n font-size: 13px;\n margin: 1px auto 3px 24px;\n font-family: Roboto;\n font-weight: 600;\n color: red;\n height: ${(props) => props.size};\n transition: ease-in 0.3s;\n`;\n\nexport const G4Button = styled.button`\n padding: 10px 20px;\n font-size: 20px;\n font-family: Roboto;\n margin-top: ${props => (props.modeWebchatFull ? '30px' : 'auto')};\n margin-left: ${props => (props.modeWebchatFull ? 0 : 'auto')};\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n color: #fff;\n overflow: hidden;\n transition: 0.8s;\n height: ${props => (props.modeWebchatFull ? '60px' : '42px')};\n width: ${props => (props.modeWebchatFull ? '40%' : '100%')};\n border-radius: ${props => (props.modeWebchatFull ? '6px' : '0px 0px 10px 10px')};\n\n ${(props) => props.color && `background: ${props.color};`}\n ${(props) => props.color && `border: 1px solid ${props.color};`}\n \n &:focus {\n outline: 0;\n }\n\n @media screen and (min-width: 1440px) {\n margin-top: ${(props) => props.modeWebchatFull ? '60px' : 'none'};\n \n }\n`;\n\n// &:hover {\n// ${(props) => props.hoverColor && `background: ${props.hoverColor};`}\n// ${(props) => props.hoverColor && `border: 1px solid ${props.hoverColor};`}\n// }\n","export function nextPage(page) {\n return {\n type: '@page/NEXT_PAGE',\n payload: page\n };\n}","export function loginAction(name,email,telefone) {\n return {\n type: '@login/LOGIN',\n payload: {\n name,\n email,\n telefone,\n logged: true\n }\n };\n}\n\nexport function addQueue(queue) {\n return {\n type: '@login/ADD_QUEUE',\n payload: {\n queue\n }\n };\n}\n\nexport function addIdConversation(idConversa) {\n return {\n type: '@login/ADD_ID_CONVERSATION',\n payload: {\n idConversa\n }\n };\n}\n\nexport function positionQueue(positionQueue) {\n return {\n type: '@login/POSITION_QUEUE',\n payload: {\n positionQueue\n }\n };\n}\n\nexport function socketId(socketId) {\n return {\n type: '@login/SOCKET_ID',\n payload: {\n socketId\n }\n };\n}","export function addMessages(messages){\n return {\n type:'@conversation/ADD_MESSAGE',\n payload: {\n messages\n }\n }\n}\n\nexport function addId(id){\n return {\n type:'@conversation/ADD_ID',\n payload: {\n id\n }\n }\n}\n\nexport function addSessionId(sessionId){\n return {\n type:'@conversation/ADD_SESSION_ID',\n payload: {\n sessionId\n }\n }\n}\n\nexport function addConversationAttendant(){\n return {\n type: '@conversation/ADD_CONVERSATION_ATTENDANT',\n payload: {\n conversationAttendant: true\n }\n }\n}\n\nexport function clearConversation(){\n return {\n type: '@conversation/CLEAR_CONVERSATION',\n }\n}","const INITIAL_STATE = {\n name:'',\n email:'',\n queue:'',\n idConversa:'',\n socketId:'',\n logged: false,\n positionQueue: 0,\n telefone: ''\n}\n\nexport default function user(state = INITIAL_STATE, action){\n switch (action.type) {\n case '@login/LOGIN':\n return {\n ...state,\n ...action.payload,\n }\n case '@login/ADD_QUEUE':\n return {\n ...state,\n ...action.payload\n }\n case '@login/ADD_ID_CONVERSATION':\n return {\n ...state,\n ...action.payload\n }\n case '@login/POSITION_QUEUE':\n return {\n ...state,\n ...action.payload\n } \n case '@login/SOCKET_ID':\n return {\n ...state,\n ...action.payload\n } \n default:\n return state;\n }\n}\n","import { produce } from \"immer\";\n\nconst INITIAL_STATE = {\n timeBegin: \"\",\n timeEnd: \"\",\n color: \"lightgrey\",\n useBot: false,\n botName: \"\"\n};\n\nexport default function page(state = INITIAL_STATE, action) {\n switch (action.type) {\n case \"@config/ADD_CONFIG\":\n return produce(state, (draft) => {\n draft.color = action.payload.color;\n draft.useBot = action.payload.useBot;\n draft.botName = action.payload.botName;\n });\n default:\n return state;\n }\n}\n","import produce from 'immer';\n\nconst INITIAL_STATE = {\n messages: [],\n id:'',\n sessionId:'',\n conversationAttendant:false\n}\n\nexport default function conversation(state = INITIAL_STATE,action){ \n switch(action.type){\n case '@conversation/ADD_MESSAGE':\n return produce(state, draft => {\n draft.messages = draft.messages.concat(action.payload.messages)\n });\n case '@conversation/ADD_SESSION_ID':\n return produce(state, draft => {\n draft.sessionId = action.payload.sessionId\n });\n case '@conversation/ADD_CONVERSATION_ATTENDANT':\n return produce(state, draft => {\n draft.conversationAttendant = action.payload.conversationAttendant\n });\n case '@conversation/CLEAR_CONVERSATION':\n return produce(state, draft => {\n draft.messages = [];\n draft.id = '';\n });\n default:\n return state;\n }\n}","import produce from \"immer\";\n\nconst INITIAL_STATE = {\n conversationId: \"\",\n survey: {},\n active: false,\n};\n\nexport default function conversation(state = INITIAL_STATE, action) {\n switch (action.type) {\n case \"@survey/INIT_SURVEY\":\n return produce(state, (draft) => {\n draft.conversationId = action.payload.conversationId;\n draft.survey = action.payload.survey;\n draft.active = action.payload.active;\n });\n default:\n return state;\n }\n}\n","const INITIAL_STATE = {\n name: ''\n}\n\nexport default function getNameFileReduce(state=INITIAL_STATE, action){\n switch(action.type){\n case 'GET_NAME_FILE':\n //console.log(\"filtro:\",action.payload)\n return action.payload.name\n default:\n return state\n\n }\n}\n","import { combineReducers } from \"redux\";\n\nimport page from \"./page/reducer\";\nimport user from \"./user/reducer\";\nimport config from \"./config/reducer\";\nimport conversation from \"./conversation/reducer\";\nimport survey from \"./survey/reducer\";\nimport hoursOfOut from './hours/reducer';\nimport getNameFileReduce from \"./reduce/getNameFileReduce\";\n\n\n\nconst rootReducer = combineReducers({\n page,\n user,\n survey,\n config,\n conversation,\n hoursOfOut,\n getNameFileReduce\n});\n\nexport default rootReducer;\n","const INITIAL_STATE = 'Login'\n\nexport default function page(state = INITIAL_STATE, action) {\n switch (action.type) {\n case '@page/NEXT_PAGE':\n return action.payload;\n default:\n return state;\n }\n}\n","const INITIAL_STATE = false\n\nexport default function hoursOfOut(state = INITIAL_STATE, action) {\n switch (action.type) {\n case '@HOURS_OF_OUT':\n return action.payload;\n default:\n return state;\n }\n}\n","import { createStore } from 'redux';\nimport rootReducer from './rootReducer';\n\nconst store = createStore(rootReducer,\n window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n\nexport default store;","import { nextPage } from \"../../store/page/actions\";\nimport { addMessages } from \"../../store/conversation/actions\";\nimport { addConversationAttendant } from \"../../store/conversation/actions\";\n\nimport store from \"../../store\";\nconst CONVERSATION = \"Conversation\";\n\nexport default function conversaAtendida(event) {\n let now = new Date();\n let newMessages = [];\n localStorage.setItem( \"conversationAttendant\", true)\n \n if (event.mensagens.length > 0) {\n newMessages = event.mensagens.map((event) => {\n if (!event.hora_da_mensagem) {\n return { ...event, hora_da_mensagem: now };\n } else {\n return event;\n }\n });\n }\n\n store.dispatch(addConversationAttendant());\n store.dispatch(nextPage(CONVERSATION));\n store.dispatch(addMessages(newMessages));\n}\n","import io from \"socket.io-client\";\n\nimport conversaAtendida from \"./constraints/answeredConversation\";\nimport atendenteEnviaMenssagem from \"./constraints/attendantSendMessage\";\nimport encerrarCoversaCliente from \"./constraints/endCoversationClient\";\nimport clienteTranferido from \"./constraints/tranferredClient\";\nimport entrouFilaCliente from \"./http/queueClient\";\nimport responderSurvey from \"./constraints/answerSurvey\";\n\nimport store from \"../store\";\n\nconst SOCKET_IO_URL = `${process.env.REACT_APP_PROXY_URL}public`;\nconst apiSocket = io(SOCKET_IO_URL, {\n path: \"/flex-chat-integration-socket\",\n});\n\n// const apiSocketOpen = io(SOCKET_IO_URL, {\n// path: \"/flex-chat-integration-socket/open\",\n// });\n\napiSocket.on(\"connect\", (event) => {\n apiSocket.on(\"entrou_na_fila_cliente\", (event) => {\n entrouFilaCliente(event);\n });\n\n apiSocket.on(\"cliente_transferido\", (event) => {\n clienteTranferido(event);\n });\n\n apiSocket.on(\"conversa_transferida\", (event) => {});\n\n apiSocket.on(\"conversa_atendida_cliente\", (event) => {\n conversaAtendida(event);\n });\n\n apiSocket.on(\"atendente_enviou_mensagem\", (event) => {\n let now = new Date();\n\n const newEvent = event?.message?.hora_da_mensagem\n ? [event.message]\n : [{ ...event, hora_da_mensagem: now }];\n\n atendenteEnviaMenssagem(newEvent);\n });\n\n apiSocket.on(\"encerrar_conversa_cliente\", (event) => {\n localStorage.removeItem(\"IdConversation\");\n setTimeout(() => {\n encerrarCoversaCliente(event);\n }, 5000);\n localStorage.setItem(\"conversationAttendant\", \"false\");\n });\n\n apiSocket.on(\"send_survey\", (event) => {\n responderSurvey(event.conversa_id, event.survey, true);\n });\n});\n\n// store.dispatch(loginAction('asdf','qwer@qwe.com'));\nexport default apiSocket;\n","//import io from \"socket.io-client\";\n\nimport { apiHttp as httpApi } from \"../../services/api-http\";\nimport { hoursOfOut } from \"../../store/hours/action\";\n\nimport {\n positionQueue,\n addQueue,\n addIdConversation,\n //socketId,\n} from \"../../store/user/actions\";\nimport store from \"../../store/\";\n\nexport default function entrouFilaCliente(event) {\n let id = event.conversa?._id ? event.conversa._id : '';\n let queue = event.conversa?.fila ? event.conversa.fila : '';\n\n store.dispatch(hoursOfOut(event.foraHorario ? event.foraHorario : false));\n\n store.dispatch(addQueue(queue));\n store.dispatch(addIdConversation(id));\n\n httpApi\n .get(`/conversa/posicaoDaConversaNaFila/${queue}/${id}`)\n .then((response) => {\n store.dispatch(positionQueue(response.data.posicao));\n })\n .catch((err) => {\n console.log(\"err: \", err);\n });\n}\n","export function hoursOfOut(bool) {\n return {\n type: '@HOURS_OF_OUT',\n payload: bool\n };\n }","\nimport { addConversationAttendant } from '../../store/conversation/actions';\nimport { nextPage } from '../../store/page/actions';\nimport store from '../../store';\n\nconst WAIT = 'Wait';\n\nexport default function clienteTranferido(event){\n store.dispatch(addConversationAttendant());\n store.dispatch(nextPage(WAIT));\n}","import { addMessages } from '../../store/conversation/actions';\nimport store from '../../store'\n\nexport default function atendenteEnviaMenssagem(event) {\n store.dispatch(addMessages(event));\n}","import { nextPage } from '../../store/page/actions';\nimport store from '../../store';\n\nconst CUSTOMER_EXPERIENCE = 'CustomerExperience';\n\nexport default function encerrarCoversaCliente(event){\n store.dispatch(nextPage(CUSTOMER_EXPERIENCE));\n\n}","import { initSurvey } from \"../../store/survey/actions\";\nimport store from \"../../store\";\n\nexport default function responderSurvey(conversationId, survey, active) {\n store.dispatch(initSurvey(conversationId, survey, active));\n}\n","export function initSurvey(conversationId, survey, active) {\n return {\n type: \"@survey/INIT_SURVEY\",\n payload: {\n conversationId,\n survey,\n active,\n },\n };\n}\n","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useForm } from \"react-hook-form\";\nimport \"./components/Login.css\";\nimport { getLogoChatURL } from \"../../components/logos\";\nimport { regex, telephone } from \"./components/regex\";\nimport { FaUser, FaPhoneAlt } from \"react-icons/fa\";\nimport { MdEmail } from \"react-icons/md\";\nimport {\n G4Form,\n G4LoginImgDiv,\n G4LoginImg,\n G4Button,\n G4InputForm,\n MessageErro,\n ContentInput,\n} from \"./components/styled\";\nimport { nextPage } from \"../../store/page/actions\";\nimport { addIdConversation, loginAction, socketId } from \"../../store/user/actions\";\nimport { useLocation } from \"react-router-dom\";\nimport queryString from \"query-string\";\nimport { apiHttp } from \"../../services/api-http\";\nimport conversaAtendida from \"../../services/constraints/answeredConversation\";\nimport apiSocket from \"../../services/api-socket\";\nimport store from \"../../store\";\nimport { addSessionId } from \"../../store/conversation/actions\";\nimport conversaNaoAtendida from \"../../services/send-message-bot\";\nimport { useContext } from \"react\";\nimport { WebchatContext } from \"../../context/WebchatContext\";\n\nconst QUEUE = \"Queue\";\nconst CONVERSATION = \"Conversation\";\n\nconst Login = () => {\n const {modeWebchatFull} = useContext(WebchatContext);\n \n const [inputFocus, setInputFocus] = useState({\n name: false,\n email: false,\n telephone: false,\n });\n const [logoURL, setLogoURL] = useState(null);\n const config = useSelector((state) => state.config);\n const dispatch = useDispatch();\n const { search } = useLocation();\n const { register, handleSubmit, errors, setValue } = useForm({\n // mode: \"onChange\"\n });\n const styleIcon = {\n transition: \"all 0.5s ease-out\",\n };\n\n useEffect(() => {\n function restoreConversation(conversas) {\n if(localStorage.getItem(\"conversationAttendant\") === \"true\"){\n conversaAtendida(conversas);\n \n } else {\n conversaNaoAtendida(conversas);\n }\n dispatch(socketId(conversas.id_socket_cliente));\n dispatch(loginAction(conversas.cliente.nome, conversas.cliente.email, conversas.cliente.telefone))\n dispatch(addSessionId(conversas.idSessao));\n dispatch(addIdConversation(String(conversas._id)));\n }\n \n apiSocket.on(\"connect\", () => {\n if(localStorage.getItem(\"IdConversation\")){\n apiHttp\n .get(`/v2/conversa/pegaConversasAbertas/${localStorage.getItem(\"IdConversation\")}/${apiSocket.id}`)\n .then((response) => {\n //dispatch(nextPage(CONVERSATION));\n Object.keys(response.data.conversa).length &&\n restoreConversation(response.data.conversa);\n \n }).catch(() => console.error(\"[RESTAURING CONVERSATION] error restoring conversations\"))\n // } else {\n // localStorage.setItem(\"IdConversation\", iresponse.data._d)\n // console.log(\"nao existe aberto\")\n }\n })\n\n \n }, [dispatch])\n\n useEffect(() => {\n const { nome, email, tel } = queryString.parse(search);\n\n if (nome) setValue(\"name\", nome);\n if (email) setValue(\"email\", email);\n if (tel) setValue(\"telephone\", tel);\n }, [search, setValue]);\n\n useEffect(() => {\n getLogoChatURL()\n .then((source) => {\n setLogoURL(source);\n })\n .catch(() => console.error(\"[LOGIN FORM] Error loading chat logo\"));\n }, []);\n\n function login({ name, email, telephone }) {\n dispatch(loginAction(name, email, telephone.replace(/\\D+/g, \"\")));\n if (config.useBot) {\n dispatch(nextPage(CONVERSATION));\n } else {\n dispatch(nextPage(QUEUE));\n }\n }\n\n \n function modifiedFocusTrue(e) {\n setInputFocus({\n ...inputFocus,\n [e.target.name]: true,\n });\n }\n\n function modifiedFocusFalse(e) {\n var name = e.target.name;\n var value = e.target.value;\n if (name === \"name\" && value === \"\") {\n setInputFocus({\n ...inputFocus,\n [e.target.name]: false,\n });\n } else if (name === \"email\" && value === \"\") {\n setInputFocus({\n ...inputFocus,\n [e.target.name]: false,\n });\n } else if (name === \"telephone\" && value === \"\") {\n setInputFocus({\n ...inputFocus,\n [e.target.name]: false,\n });\n }\n }\n\n function maskInputTelephone(value) {\n value = value.replace(/\\D/g, \"\"); //Remove tudo o que não é dígito\n value = value.replace(/^(\\d{2})(\\d)/g, \"($1)$2\"); //Coloca parênteses em volta dos dois primeiros dígitos\n value = value.replace(/(\\d{5})(\\d{4})$/, \"$1-$2\"); //Coloca hífen entre o quarto e o quinto dígitos\n return value;\n }\n\n return (\n <>\n \n \n {!modeWebchatFull && (\n \n \n \n )}\n \n\n \n \n modifiedFocusTrue(event)}\n onBlur={(event) => modifiedFocusFalse(event)}\n name=\"name\"\n type=\"text\"\n placeholder=\"Nome\"\n ref={register({ required: true })}\n />\n \n {\n \n {errors.name ? \"Nome é obrigatório\" : \"\"}\n \n }\n\n \n \n modifiedFocusTrue(event)}\n onBlur={(event) => modifiedFocusFalse(event)}\n type=\"text\"\n placeholder=\"Email\"\n ref={register({\n required: \"Email é obrigatório\",\n pattern: {\n value: regex,\n message: \"Entre com um email válido\",\n },\n })}\n />\n \n {\n \n {errors.email ? errors.email.message : \"\"}\n \n }\n\n \n \n modifiedFocusTrue(event)}\n onBlur={(event) => modifiedFocusFalse(event)}\n maxLength={14}\n colorFocus={\"#000\"}\n onChange={(event) => {\n const { value } = event.target;\n event.target.value = maskInputTelephone(value);\n }}\n type=\"text\"\n placeholder=\"Telefone\"\n ref={register({\n required: true,\n pattern: {\n value: telephone,\n message: \"Entre com um telefone válido\",\n },\n })}\n />\n \n {\n \n {errors.telephone ? \"Telefone é obrigatório\" : \"\"}\n \n }\n \n Iniciar\n \n \n \n );\n};\n\nexport default Login;","import { nextPage } from \"../store/page/actions\";\nimport { addMessages } from \"../store/conversation/actions\";\nimport { addConversationAttendant } from \"../store/conversation/actions\";\n\nimport store from \"../store\";\nconst CONVERSATION = \"Conversation\";\n\nexport default function conversaNaoAtendida(event) {\n let now = new Date();\n let newMessages = [];\n localStorage.setItem( \"conversationAttendant\", false)\n if (event.mensagens.length > 0) {\n newMessages = event.mensagens.map((event) => {\n if (!event.hora_da_mensagem) {\n return { ...event, hora_da_mensagem: now };\n } else {\n return event;\n }\n });\n }\n\n store.dispatch(addConversationAttendant());\n store.dispatch(nextPage(CONVERSATION));\n store.dispatch(addMessages(newMessages));\n}","import styled from \"styled-components\";\n\nexport const G4QueueImgDiv = styled.div`\n text-align: center;\n justify-content: center;\n display: flex;\n vertical-align: middle;\n width: 100%;\n height: 200px;\n`;\n\nexport const G4QueueImg = styled.div`\n width: 200px;\n height: 170px;\n background: url(${(props) => props.src});\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: contain;\n`;\n\nexport const G4ContainerSelect = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: calc(465px - 42px);\n width: 100%;\n text-align: center;\n\n form {\n justify-content: center;\n align-items: center;\n height: 300px;\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n select {\n background: #f0f2f5;\n font-size: 0.9rem;\n border: none;\n transition: border-color 0.2s;\n transition: filter 0.2s;\n border: 1px solid transparent;\n outline: none;\n &:hover {\n border: 1px solid #d7d7d7;\n border-radius: 0.25rem;\n border-color: \"#d7d7d7\";\n cursor: pointer;\n filter: brightness(0.9);\n }\n }\n`;\n\nexport const G4Erros = styled.p`\n text-align: left;\n margin-left: 11px;\n font-family: Roboto, sans-serif;\n color: #f40f02;\n`;\n\nexport const G4QueueButton = styled.button`\n padding: 10px 20px;\n cursor: pointer;\n margin-top: auto;\n height: 42px;\n font-size: 20px;\n font-family: \"Roboto\", sans-serif;\n color: #fff;\n transition: 0.3s;\n bottom: 0px;\n width: 100%;\n border-radius: 0px 0px 10px 10px;\n\n ${(props) => props.color && `border: 1px solid ${props.color};`}\n ${(props) => props.color && `background: ${props.color};`}\n\n &:focus {\n outline: 0;\n }\n`;\n\n// &:hover {\n// background: #09793c;\n// border: 1px solid #09793c;\n// }\n","import styled, { keyframes } from \"styled-components\";\n\nconst loop = keyframes`\n to {\n transform: rotate(360deg);\n }\n`;\n\nexport const Spinner = styled.div`\n margin-top: 20px;\n height: 40px;\n width: 40px;\n border-radius: 50%;\n border: 5px solid rgba(0, 0, 0, 0.1);\n border-left-color: ${(props) => props.picker};\n animation: ${loop} 1s linear infinite;\n margin-bottom: 10px;\n`;\n","import React from \"react\";\nimport { useSelector } from 'react-redux';\nimport { Spinner } from './style';\n\nconst Loader = () => {\n const config = useSelector((state) => state.config);\n return ;\n};\n\nexport default Loader;\n","import React, { useState, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useForm } from \"react-hook-form\";\nimport { isMobile, browserName } from \"react-device-detect\";\nimport { apiHttp } from \"../../services/api-http\";\nimport { getLogoChatURL } from \"../../components/logos\";\nimport \"./components/Queue.css\";\nimport {\n G4QueueImgDiv,\n G4QueueImg,\n G4ContainerSelect,\n G4Erros,\n G4QueueButton,\n} from \"./components/styled\";\nimport socketApi from \"../../services/api-socket\";\nimport { nextPage } from \"../../store/page/actions\";\n\nimport Loader from \"../../components/loader\";\n\nconst WAIT = \"Wait\";\n\nconst Queue = () => {\n const user = useSelector((state) => state.user);\n const config = useSelector((state) => state.config);\n const [logoURL, setLogoURL] = useState(null);\n const dispatch = useDispatch();\n\n const [queues, setQueues] = useState([]);\n const { register, handleSubmit, errors } = useForm();\n\n useEffect(() => {\n getLogoChatURL()\n .then((source) => {\n setLogoURL(source);\n })\n .catch(() => console.error(\"[LOGIN FORM] Error loading chat logo\"));\n }, []);\n\n function logInQueue({ queue }) {\n let mobile;\n let origem;\n let platform = navigator.platform;\n\n if (isMobile) {\n origem = browserName;\n mobile = true;\n } else {\n origem = browserName;\n mobile = false;\n }\n\n socketApi.emit(\"entrar_na_fila\", {\n nome: user.name,\n email: user.email,\n fila: queue,\n telefone: user.telefone,\n navegador: origem,\n plataforma: platform,\n isMobile: mobile,\n });\n\n dispatch(nextPage(WAIT));\n }\n\n useEffect(() => {\n apiHttp\n .get(\"/filas\")\n .then((response) => {\n setQueues(response.data);\n })\n .catch((err) => {\n console.log(\"err: \", err);\n });\n }, []);\n\n return (\n \n \n \n \n\n
\n {queues.length === 0 ? (\n \n ) : (\n \n \n {queues.map((queue) => (\n \n ))}\n \n )}\n {errors.queue && {errors.queue.message}}\n {queues.length === 0 ? (\n \n Entrar na fila\n \n ) : (\n \n Entrar na fila\n \n )}\n \n
\n );\n};\n\nexport default Queue;\n","import styled, { keyframes } from \"styled-components\";\n\nconst teste = keyframes`\n to {\n transform: rotate(180deg);\n }\n`;\n\nexport const G4ContainerWait = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex-direction: column;\n border-radius: 10px;\n font-size: 20px;\n height: calc(465px - 42px);\n font-family: Roboto, sans-serif;\n\n .NotAtendent {\n margin-top: 10px;\n }\n\n .iconNotAtendent {\n animation: ${teste} 1.2s infinite;\n }\n\n .textContent {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 130px;\n width: 84%;\n }\n`;\n\nexport const G4WaitImg = styled.div`\n width: 200px;\n height: 170px;\n margin-bottom: 30px;\n background: url(${(props) => props.src});\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: contain;\n`;\n\nexport const LoadWait = styled.span`\n animation: blinker 2s linear infinite;\n font-size: 18px;\n`;\n\nexport const G4Footer = styled.div`\n height: 42px;\n font-size: 20px;\n font-family: \"montserrat\";\n /* margin: 10px; */\n color: #fff;\n position: absolute;\n overflow: hidden;\n transition: 0.8s;\n bottom: 0px;\n width: 100%;\n border-radius: 0px 0px 10px 10px;\n\n ${(props) => props.color && `border: 1px solid ${props.color};`}\n ${(props) => props.color && `background: ${props.color};`}\n`;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport \"./components/Wait.css\";\nimport { getLogoChatURL } from \"../../components/logos\";\nimport { G4ContainerWait, G4WaitImg, G4Footer } from \"./components/styled\";\nimport { FaHourglassHalf } from \"react-icons/fa\";\nimport Loader from \"../../components/loader\";\n\nconst Wait = () => {\n const [logoURL, setLogoURL] = useState(null);\n\n const user = useSelector((state) => state.user);\n const config = useSelector((state) => state.config);\n const hours = useSelector((state) => state.hoursOfOut);\n\n useEffect(() => {\n getLogoChatURL()\n .then((source) => {\n setLogoURL(source);\n })\n .catch(() => console.error(\"[LOGIN FORM] Error loading chat logo\"));\n }, []);\n\n return (\n \n \n\n {!hours ? (\n
\n {user.positionQueue === 0 && user.positionQueue === 0 ? (\n <>\n \n Transferindo para atendente\n \n ) : (\n <>\n \n {user.positionQueue &&\n `Olá, \n ${user.name},`}\n \n {user.positionQueue &&\n `você está na posição ${user.positionQueue} na fila atendimento`}\n \n )}\n
\n ) : (\n <>\n \n \n \n )}\n\n \n
\n );\n};\n\nexport default Wait;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n height: 460px;\n width: 100%;\n background: #DCDCDC;\n\n .g4-content-upload {\n height: 200px;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n`;\n\nexport const DropContainer = styled.div.attrs({\n className: \"dropZone\"\n})`\n\n width: 30px;\n text-align: center;\n height: 20px;\n cursor: pointer;\n\n :focus{\n outline: 0; \n }\n`;\n\nexport const PreviewUploadImage = styled.div`\n max-height: ${(props) => props.modeWebchatFull ? '90%' : 'none'};\n max-width: ${(props) => props.modeWebchatFull ? '40%' : 'none'};\n height: ${(props) => props.modeWebchatFull ? '250px' : '130px'};\n width: ${(props) => props.modeWebchatFull ? '250px' : '130px'};\n border-radius: 5px;\n background-image: url(${props => props.src});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: 50% 50%;\n`\n\nexport const PreviewUploadVideo = styled.div`\n height: 200px;\n width: 300px;\n border-radius: 5px;\n background-image: url(${props => props.src});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: 50% 50%; \n`\n\nexport const PreviewUploadFile = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n h4 {\n font-family: Roboto, sans-serif;\n padding-top: 4px;\n padding-left: 8px;\n }\n`\n\nexport const HeaderUpload = styled.div`\n color: #fff;\n height: 40px;\n display: flex;\n align-items: center;\n\n ${(props) => props.color && `background: ${props.color};`}\n\n h4 {\n margin-left: 20px;\n font-family: Roboto, sans-serif;\n padding-top: 4px;\n }\n\n svg {\n cursor: pointer;\n margin-left: auto;\n margin-right: 20px;\n }\n`;","import React, { useEffect, useState, useRef, forwardRef } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { getNameFile } from \"../../../../store/action/getNameFile\";\nimport { MdClose } from \"react-icons/md\";\nimport { FaFilePdf } from \"react-icons/fa\";\nimport {\n Container,\n HeaderUpload,\n PreviewUploadImage,\n PreviewUploadFile,\n PreviewUploadVideo,\n} from \"./style\";\nimport { useContext } from \"react\";\nimport { WebchatContext } from \"../../../../context/WebchatContext\";\n\nconst Upload = forwardRef(\n ({ file, stateFile, cleanUplaod, stateUploadName }) => {\n const dispatch = useDispatch();\n const [preview, setPreview] = useState([]);\n const messagesEndRef = useRef();\n const config = useSelector((state) => state.config);\n\n const modeWebchatFull = useContext(WebchatContext);\n\n\n const scrollToBottom = () => {\n messagesEndRef.current.scrollIntoView({ behavior: \"smooth\" });\n };\n useEffect(() => {\n dispatch(getNameFile(stateUploadName));\n }, [stateUploadName, dispatch]);\n\n useEffect(() => {\n setPreview(file);\n }, [file]);\n\n useEffect(() => {\n if (preview.length !== 0) {\n scrollToBottom();\n }\n }, [preview]);\n\n function clearPreviewUpload() {\n setPreview([]);\n cleanUplaod();\n }\n return (\n <>\n {preview.map((image, index) => {\n return (\n \n \n

Pré-vizualização

\n \n
\n
\n {(stateFile.type === \"image/jpeg\" ||\n stateFile.type === \"image/jpg\" ||\n stateFile.type === \"image/png\") && (\n \n )}\n {stateFile.type === \"application/pdf\" && (\n \n \n

{stateFile.name}

\n
\n )}\n {stateFile.type === \"video/mp4\" && (\n \n {/*

{stateFile.name}

*/}\n \n
\n )}\n
\n
\n );\n })}\n \n );\n }\n);\n\nexport default Upload;\n","export function getNameFile(name){\n\n return {\n type: 'GET_NAME_FILE',\n payload: {name}\n }\n}\n","import styled from 'styled-components';\n\nexport const AudioInput = styled.div`\n display: flex;\n justify-content: center;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n\n .controlBtn {\n font-size: 30px;\n margin: 0;\n }\n\n .blinker {\n width: 8px;\n //margin: 30px 2px 0 -5px;\n height: 8px;\n background-color: #d9534f;\n border-radius: 50%;\n animation: blinker 1s linear infinite;\n }\n\n @keyframes blinker {\n 50% {\n opacity: 0;\n }\n`;\n\nexport const AudioTime = styled.div`\n font-size: 12px;\n //margin-top: 25px;\n`;\n\nexport const ButtonAudio = styled.button`\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n transition: 0.8s;\n width: 30px;\n height: 30px;\n border: 0;\n\n ${(props) => props.color && `background: ${props.color};`}\n \n svg {\n transition: color .25s;\n }\n \n &:disabled {\n cursor: default;\n }\n\n &:focus {\n outline: 0;\n }\n`\n","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { BsFillMicFill } from \"react-icons/bs\";\nimport { AiFillCheckCircle } from \"react-icons/ai\";\nimport { FaStopCircle } from \"react-icons/fa\";\nimport { AudioInput, AudioTime, ButtonAudio } from \"./components/styled\";\nimport { differenceInSeconds } from \"date-fns\";\n\n//import ConversationService from '../../../../../ServicePanel/service/index';\n//import { addMessageConversationInAttendance } from 'store/action/conversation-in-attendance-action';\nimport MicRecorder from \"mic-recorder-to-mp3\";\nimport axios from \"axios\";\nimport {\n addMessages,\n addSessionId,\n} from \"../../../../store/conversation/actions\";\nimport { apiIntegration } from \"../../../../services/api-http\";\nlet intervalId = null;\nconst Mp3Recorder = new MicRecorder({ bitRate: 128 });\n\nconst useRecorder = ({ id, setRecording }) => {\n const [isRecording, setIsRecording] = useState(false);\n const [timeCount, setTimeCount] = useState(\"00:00\");\n const dispatch = useDispatch();\n const config = useSelector((state) => state.config);\n\n const getTime = (startTime) => {\n let differenceFromNow = differenceInSeconds(\n new Date(),\n new Date(startTime)\n );\n\n const minutes = Math.floor(differenceFromNow / 60);\n differenceFromNow -= minutes * 60;\n const seconds = Math.floor(differenceFromNow);\n\n function getFomattedDigit(digit) {\n return `${String(digit).padStart(2, \"0\")}`;\n }\n\n return `${getFomattedDigit(minutes)}:${getFomattedDigit(seconds)}`;\n };\n\n useEffect(() => {\n if (isRecording) {\n Mp3Recorder.start()\n .then()\n .catch((e) => console.error(e));\n const nowTime = new Date();\n intervalId = setInterval(() => {\n setTimeCount(getTime(nowTime));\n }, 1000);\n } else {\n clearInterval(intervalId);\n intervalId = null;\n setTimeCount(\"00:00\");\n }\n }, [isRecording]);\n\n const startRecording = () => {\n setIsRecording(true);\n setRecording(true);\n };\n\n const stopRecording = () => {\n Mp3Recorder.stop();\n setIsRecording(false);\n setRecording(false);\n };\n\n const sendRecording = () => {\n try {\n Mp3Recorder.stop()\n .getMp3()\n .then(([buffer, blob]) => {\n const dateNow = new Date();\n const formatedData = new FormData();\n\n formatedData.append(\"file\", blob);\n formatedData.append(\"chatId\", id); //body\n formatedData.append(\"cliente_ou_atendente\", \"cliente\"); //\n formatedData.append(\"escrita_por\", localStorage.getItem(\"name\"));\n formatedData.append(\n \"legenda\",\n `audio_cliente_${dateNow.toLocaleDateString(\n \"pt-br\"\n )}-${dateNow.toLocaleTimeString(\"pt-br\")}`\n );\n formatedData.append(\"response_type\", \"audio\");\n formatedData.append(\"type\", \"audio\");\n\n // ConversationService.uploadFile(formatedData)\n // .then((res) => {\n // dispatch(addMessageConversationInAttendance({ ...res.data }, id));\n // })\n // .catch((err) => {\n // console.log(err);\n // });\n apiIntegration\n .post(\"/webchat/message/midia\", formatedData, {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n })\n .then((response) => {\n const mensagem = {\n ...response.data.data,\n hora_da_mensagem: new Date().getTime(),\n };\n dispatch(addMessages(mensagem));\n\n //setValueInput(\"\");\n })\n .catch((error) => {\n console.log(\"teve erro\", error);\n });\n })\n .catch((e) => console.log(e));\n } catch (err) {\n console.error(err);\n }\n\n setIsRecording(false);\n setRecording(false);\n };\n\n return (\n <>\n {!isRecording && (\n \n \n \n )}\n\n {isRecording && (\n \n \n \n \n\n
\n\n {timeCount}\n\n \n \n \n \n )}\n \n );\n};\n\nexport default useRecorder;\n","import styled from \"styled-components\";\n\nexport const ContainerBody = styled.div`\n height: ${props => (props.modeWebchatFull ? 'none' : `calc(465px - 42px)`)};\n padding: ${props => (props.modeWebchatFull ? '10px' : 'none')};\n`;\n\nexport const G4ContainerMessages = styled.div`\n position: relative;\n\n @media (min-width: 992px) and (max-width: 1439px) {\n height: ${(props) => props.modeWebchatFull ? '40vh' : 'none'};\n }\n\n height: ${props => (props.modeWebchatFull ? '50vh' : '368px')};\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n behavior: smooth;\n\n ::-webkit-scrollbar {\n width: 8px;\n }\n ::-webkit-scrollbar-thumb {\n background: #C0C0C0;\n border-radius: 10px;\n }\n ::-webkit-ms-scrollbar {\n width: 8px;\n }\n ::-webkit-ms-scrollbar-thumb {\n background: #C0C0C0;\n border-radius: 10px;\n }\n ::-webkit-o-scrollbar {\n width: 8px;\n }\n ::-webkit-o-scrollbar-thumb {\n background: #C0C0C0;\n border-radius: 10px;\n }\n \n .loaderContent {\n width: 100%;\n display: flex;\n justify-content: center;\n margin-top: 120px;\n align-items: center;\n }\n`;\n\nexport const ProfileBallon = styled.img`\n width: 40px;\n height: 40px;\n background:\t#C0C0C0;\n border-radius: 50%;\n margin-left: 4px;\n margin-top: 12px;\n margin-bottom: auto;\n`;\n\nexport const Arrow = styled.div`\n height: 30px;\n width: 30px;\n background:\t${props => props.option ? 'transparent' : '#f9f9f9'};\n transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n -webkit-transform: rotate(45deg);\n margin: 15px -34px auto 11px;\n`;\n\nexport const ContentMessages = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const DropContainer = styled.div.attrs({\n className: \"dropZone\",\n})`\n width: 30px;\n text-align: center;\n height: 20px;\n cursor: pointer;\n\n :focus {\n outline: 0;\n }\n`;\n\nexport const Container = styled.div`\n height: 460px;\n width: 100%;\n\n .g4-content-upload {\n height: 200px;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n`;\n\nexport const PreviewUploadImage = styled.div`\n height: 130px;\n width: 130px;\n border-radius: 5px;\n background-image: url(${(props) => props.src});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: 50% 50%;\n`;\n\nexport const PreviewUploadFile = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n h4 {\n font-family: Roboto, sans-serif;\n }\n`;\n\n// export const HeaderUpload = styled.div`\n// background: #e84e0f;\n// color: #fff;\n// height: 40px;\n// display: flex;\n// align-items: center;\n\n// h4 {\n// margin-left: 20px;\n// font-family: Roboto, sans-serif;\n// }\n\n// svg {\n// cursor: pointer;\n// margin-left: auto;\n// margin-right: 20px;\n// }\n// `;\n\nexport const G4TextRealTime = styled.div`\n min-height: 20px;\n font-style: italic;\n margin-left: 10px;\n margin-top: 10px;\n`;\n\nexport const G4Typing = styled.span`\n animation: blinker 1s linear infinite;\n`;\n\nexport const G4ContentInput = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 10px 10px 0 10px;\n padding: 3px 3px 3px 10px;\n\n #sendButtonConversationG4 > button {\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n transition: 0.8s;\n width: 30px;\n height: 30px;\n border: 0;\n }\n`;\n\nexport const G4InputMessage = styled.input`\n height: 35px;\n flex: 1;\n margin: 0 0 0 10px;\n border: 0;\n outline: none;\n padding: 8px;\n box-sizing: border-box;\n transition: 0.3s;\n resize: none;\n\n ${(props) => props.isRecordingAudio && `width: 90px;`}\n`;\n\nexport const G4Button = styled.button`\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n transition: 0.8s;\n width: 30px;\n height: 30px;\n border: 0;\n\n ${(props) => props.color && `background: ${props.color};`}\n \n svg {\n transition: color .25s;\n }\n \n &:disabled {\n cursor: default;\n display: none;\n }\n\n &:focus {\n outline: 0;\n }\n`;\n\nexport const G4Cliente = styled.div`\n min-width: ${props => (props.modeWebchatFull ? '200px' : 'none')}; \n max-width: ${props => (props.modeWebchatFull ? '500px' : '255px')};\n\n padding: 8px;\n margin: 5px;\n border-radius: 8px 0px 8px 8px;\n margin-left: auto;\n color: #000;\n box-shadow: 1px;\n background: #E7E7E7;\n //${(props) => props.color && `background: ${props.color};`}\n\n ${({ isVideo }) => isVideo && `\n max-width: 320px;\n padding: 4px;\n `}\n\n`;\n\nexport const G4Atendente = styled.div`\n z-index: 3;\n background: #F9F9F9;\n min-width: ${(props) => props.modeWebchatFull ? '200px' : 'none'};\n max-width: ${(props) => props.modeWebchatFull ? '500px' : '255px'};\n display: ${(props) => (props.size ? props.size : \"\")};\n border-radius: 9px;\n padding: 8px;\n margin: 5px;\n margin-right: auto;\n\n align-self: flex-start;\n color: #2f4f4f;\n`;\n\nexport const G4Wait = styled.div`\n font-family: Raleway;\n margin: 10px 5px 0 5px;\n border-radius: 5px;\n padding: 5px;\n color: #fff;\n\n ${(props) => props.color && `background: ${props.color};`}\n`;\n","import React from \"react\";\nimport \"./Message.css\";\nimport {\n G4Cliente,\n G4Wait,\n G4Atendente,\n} from \"../../pages/conversation/components/styled\";\nimport { useSelector } from \"react-redux\";\n\nimport { Hours } from \"../styled\";\nimport { useContext } from \"react\";\nimport { WebchatContext } from \"../../context/WebchatContext\";\n\nconst Message = ({ time, user, text, size }) => {\n const config = useSelector((state) => state.config);\n const {modeWebchatFull} = useContext(WebchatContext);\n \n const content = (\n <>\n
{text}
\n \n {new Date(time).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false,\n })}\n \n \n );\n\n return (\n <>\n {user === \"cliente\" && (\n {content}\n )}\n {user === \"atendente\" && {content}}\n {user === \"wait\" && {content}}\n \n );\n};\n\nexport default Message;\n","import styled from \"styled-components\";\n\nexport const MessageImageStyle = styled.div`\n background-repeat: no-repeat;\n background-size: cover;\n background-position: 50% 50%;\n background-image: url(${(props) => props.src});\n height: 240px;\n width: 240px;\n padding: 10px;\n border-radius: 5px;\n\n @media screen and (min-width: 1440px) {\n height: ${(props) => props.modeWebchatFull ? '400px' : 'none'};\n width: ${(props) => props.modeWebchatFull ? '400px' : 'none'};\n }\n\n #date_G4_flex {\n font-size: 10px;\n margin-top: 10px;\n text-align: right;\n margin-left: 5px;\n font-family: roboto;\n }\n`;\n","import React from \"react\";\nimport { MessageImageStyle } from \"./style\";\nimport { useSelector } from \"react-redux\";\nimport {\n G4Cliente,\n G4Wait,\n G4Atendente,\n} from \"../../../pages/conversation/components/styled\";\nimport { Hours } from \"../../styled\";\nimport { WebchatContext } from \"../../../context/WebchatContext\";\nimport { useContext } from \"react\";\n\n\nconst Message = ({ time, source, user }) => {\n const config = useSelector((state) => state.config);\n const {modeWebchatFull} = useContext(WebchatContext);\n const content = (\n <>\n \n \n \n \n {new Date(time).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false,\n })}\n \n \n );\n\n return (\n <>\n {user === \"cliente\" && (\n {content}\n )}\n {user === \"atendente\" && {content}}\n {user === \"wait\" && {content}}\n \n );\n};\n\nexport default Message;\n","import styled from 'styled-components';\n\nexport const Upload = styled.div`\n height: 50px;\n width: 200px;\n display: flex;\n justify-content: start;\n font-size: 16px;\n\n a + a {\n margin-top: 10px;\n }\n\n a {\n color: #f00;\n font-family: Roboto, sans-serif;\n justify-content: center;\n align-items: center;\n display: flex;\n text-decoration: none;\n }\n\n p {\n font-size: 14px;\n margin-left: 5px;\n word-break: break-all;\n }\n`;","import React from \"react\";\nimport { FaFilePdf } from \"react-icons/fa\";\nimport { useSelector } from \"react-redux\";\nimport { Upload } from \"./style\";\nimport {\n G4Cliente,\n G4Wait,\n G4Atendente,\n} from \"../../../pages/conversation/components/styled\";\n\nimport { Hours } from \"../../styled\";\n\nconst MessageFile = ({ file, user, time }) => {\n const nameFile = useSelector((state) => state.getNameFileReduce);\n const config = useSelector((state) => state.config);\n const content = (\n <>\n \n \n \n

\n Clique aqui\n

\n
\n
\n \n {new Date(time).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false,\n })}\n \n \n );\n\n return (\n <>\n {user === \"cliente\" && (\n {content}\n )}\n {user === \"atendente\" && {content}}\n {user === \"wait\" && {content}}\n \n );\n};\n\nexport default MessageFile;\n","import React from \"react\";\nimport \"./Message.css\";\nimport {\n G4Cliente,\n G4Wait,\n G4Atendente,\n} from \"../../../pages/conversation/components/styled\";\nimport { useSelector } from \"react-redux\";\n\nconst Message = (props) => {\n const config = useSelector((state) => state.config);\n\n const content = (\n <>\n window.open(props.text, \"_blank\")}\n >\n {props.text}\n \n
\n {new Date(props.time).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false,\n })}\n
\n \n );\n\n return (\n <>\n {props.user === \"cliente\" && (\n {content}\n )}\n {props.user === \"atendente\" && {content}}\n {props.user === \"wait\" && {content}}\n \n );\n};\n\nexport default Message;\n","import styled from 'styled-components';\n\nexport const ContentOption = styled.div`\n\n .g4-message-option-link {\n color: #395c76;\n text-decoration: none;\n font-family: Roboto;\n font-size: 13px;\n }\n`;","import React from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\n// import \"./MessageOption.css\";\nimport { addMessages } from \"../../../store/conversation/actions\";\nimport { apiHttp, apiIntegration } from \"../../../services/api-http\";\nimport {\n G4Cliente,\n G4Wait,\n G4Atendente,\n} from \"../../../pages/conversation/components/styled\";\n\nimport { ContentOption } from \"./styled\";\n\nconst MessageOption = (props) => {\n const dispatch = useDispatch();\n\n const user = useSelector((state) => state.user);\n const config = useSelector((state) => state.config);\n\n function sendMessageBot(message) {\n dispatch(\n addMessages([\n {\n cliente_ou_atendente: \"cliente\",\n texto: message,\n hora_da_mensagem: new Date().getTime(),\n },\n ])\n );\n\n apiIntegration\n .post(\"/webchat/message/text\", {\n chatId: user.idConversa,\n message: message,\n })\n .catch((err) => {\n console.log(\"err: \", err);\n });\n }\n\n const content = (\n <>\n \n sendMessageBot(props.options)}\n >\n {props.options}\n \n\n {/* sendMessageBot(props.options)}\n >\n {props.options}\n */}\n \n \n );\n\n return (\n <>\n {props.user === \"cliente\" && (\n {content}\n )}\n {props.user === \"atendente\" && {content}}\n {props.user === \"wait\" && {content}}\n \n );\n};\n\nexport default MessageOption;\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n\n .times {\n font-family: 'Roboto';\n font-size: 10px;\n }\n`;\n\nexport const MessageAudio = styled.div`\n max-width: 255px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: space-around;\n\n .seekbar {\n -webkit-appearance: none; /* Override default CSS styles */\n height: 4px;\n width: 230px; /* Full-width */\n background-color: #fff; /* Grey background */\n outline: none;\n border-radius: 20%;\n opacity: 0.7; /* Set transparency (for mouse-over effects on hover) */\n }\n\n .seekbar::-webkit-slider-thumb {\n -webkit-appearance: none;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: ${(props) => props.color};\n \n }\n\n .seekbar::-ms-thumb {\n -webkit-appearance: none;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: ${(props) => props.color};\n }\n`;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { MessageAudio, Container } from \"./style\";\nimport { useSelector } from \"react-redux\";\nimport {\n G4Cliente,\n G4Wait,\n G4Atendente,\n} from \"../../../pages/conversation/components/styled\";\n\nimport { MdPause, MdPlayArrow } from \"react-icons/md\";\nimport { Hours } from \"../../styled\";\n\nconst Audio = (props) => {\n const config = useSelector((state) => state.config);\n const [player, setPlayer] = useState(false);\n const [duration, setDuration] = useState(0);\n const [time, setTime] = useState(0);\n const [nowValue, setNowValue] = useState(0);\n\n const audio = useRef();\n\n useEffect(() => {\n if(time === duration){\n setPlayer(false);\n }\n }, [duration, time])\n\n function play(){\n if (audio.current.paused) {\n setPlayer(!player);\n audio.current.play();\n } else {\n audio.current.pause();\n setPlayer(!player);\n }\n };\n\n function valueCurrent(e) {\n setNowValue(e.target.value);\n }\n\n function getDuration(e) {\n // const percent = ((e.currentTarget.currentTime / e.currentTarget));\n const time = e.currentTarget.currentTime /// 60\n\n setTime((time/60).toFixed(2));\n if(time === duration){\n alert(\"terminou\");\n }\n }\n\n const formatedTime = time.toString().replace('.',':');\n const formatedDuration = duration.toString().replace('.',':');\n\n const content = (\n \n \n {player === false && \n \n }\n {player !== false && time !== duration &&\n \n }\n \n \n \n {player ? \n (
{formatedTime}
) : \n (
{formatedDuration}
)} \n
\n );\n\n return (\n <>\n {props.user === \"cliente\" && (\n {content}\n )}\n {props.user === \"atendente\" && {content}}\n {props.user === \"wait\" && {content}}\n \n );\n};\n\nexport default Audio;\n","import styled from \"styled-components\";\n\nexport const MessageVideoStyle = styled.div`\n /* background-repeat: no-repeat;\n background-size: cover;\n background-position: 50% 50%;\n background-image: url(${(props) => props.src}); */\n\n max-height: ${(props) => props.modeWebchatFull ? '400px' : '320px'};\n max-width: ${(props) => props.modeWebchatFull ? '400px' : '320px'};\n padding: 10px;\n border-radius: 5px;\n /* @media screen and (min-width: 1440px) {\n height: ${(props) => props.modeWebchatFull ? '400px' : 'none'};\n width: ${(props) => props.modeWebchatFull ? '400px' : 'none'};\n } */\n .date {\n font-size: 10px;\n margin-top: 26px;\n text-align: right;\n margin-left: 5px;\n font-family: roboto;\n }\n`;\n","import React from \"react\";\nimport { MessageImageStyle, MessageVideoStyle } from \"./style\";\nimport { useSelector } from \"react-redux\";\nimport {\n G4Cliente,\n G4Wait,\n G4Atendente,\n} from \"../../../pages/conversation/components/styled\";\nimport { Hours } from \"../../styled\";\nimport { useContext } from \"react\";\nimport { WebchatContext } from \"../../../context/WebchatContext\";\n\nconst Message = ({ time, source, user }) => {\n const config = useSelector((state) => state.config);\n const {modeWebchatFull} = useContext(WebchatContext);\n\n const content = (\n <>\n \n \n \n \n \n {new Date(time).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false,\n })}\n \n \n );\n\n return (\n <>\n {user === \"cliente\" && (\n {content}\n )}\n {user === \"atendente\" && {content}}\n {user === \"wait\" && {content}}\n \n );\n};\n\nexport default Message;\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useForm } from \"react-hook-form\";\nimport { isMobile, browserName } from \"react-device-detect\";\nimport axios from \"axios\";\nimport { apiHttp, apiIntegration } from \"../../services/api-http\";\nimport Dropzone from \"react-dropzone\";\nimport { FaPaperclip } from \"react-icons/fa\";\nimport { MdSend } from \"react-icons/md\";\nimport Upload from \"./components/upload/index\";\nimport AudioSender from \"./components/AudioSender/index\";\nimport Message from \"../../components/message/Message\";\nimport MessageImage from \"../../components/message/message-image/MessgeImage\";\nimport MessageFile from \"../../components/message/message-file/index\";\nimport MessageLink from \"../../components/message/message-link/index\";\nimport MessageOption from \"../../components/message/message-option/MessageOption\";\nimport MessageAudio from \"../../components/message/message-audio/index\";\nimport MessageVideo from \"../../components/message/message-video/MessageVideo\";\nimport {\n DropContainer,\n G4ContainerMessages,\n G4ContentInput,\n G4InputMessage,\n G4Button,\n ContentMessages,\n ProfileBallon,\n Arrow,\n ContainerBody,\n} from \"./components/styled\";\nimport \"./components/Conversation.css\";\nimport apiSocket from \"../../services/api-socket\";\nimport { addMessages, addSessionId } from \"../../store/conversation/actions\";\nimport { addIdConversation } from \"../../store/user/actions\";\nimport { getLogoFlexiaURL } from \"../../components/logos/index\";\nimport Loader from \"../../components/loader\";\nimport { useContext } from \"react\";\nimport { WebchatContext } from \"../../context/WebchatContext\";\nimport { io } from \"socket.io-client\";\n\nconst Conversation = ({ size }) => {\n const messagesEndRef = useRef();\n const [logoFlexiaURL, setLogoFlexiaURL] = useState(null);\n const SOCKET_IO_URL = `${process.env.REACT_APP_PROXY_URL}`;\n\n const socket = useMemo(() => {\n return io(SOCKET_IO_URL, {\n path: \"/channel\",\n });\n }, [SOCKET_IO_URL]);\n\n useEffect(() => {\n socket.on(\"connect\", () => {});\n }, [socket]);\n\n const dispatch = useDispatch();\n\n const user = useSelector((state) => state.user);\n const conversation = useSelector((state) => state.conversation);\n const config = useSelector((state) => state.config);\n\n const { modeWebchatFull } = useContext(WebchatContext);\n\n const [clientTyping, setClientTyping] = useState(false);\n const [attendantTyping, setAttendantTyping] = useState(false);\n const [valueInput, setValueInput] = useState(\"\");\n const [recording, setRecording] = useState(false);\n const { register, handleSubmit, reset } = useForm({\n defaultValues: {\n message: \"\",\n },\n });\n const scrollToBottom = () => {\n messagesEndRef.current.scrollIntoView({ behavior: \"smooth\" });\n };\n\n useEffect(() => {\n getLogoFlexiaURL()\n .then((source) => {\n setLogoFlexiaURL(source);\n })\n .catch(() => console.error(\"[LOGIN FORM] Error loading flexia logo\"));\n }, []);\n\n useEffect(() => {\n let mobile;\n let origem;\n let platform = navigator.platform;\n\n if (isMobile) {\n origem = browserName;\n mobile = true;\n } else {\n origem = browserName;\n mobile = false;\n }\n\n if (config.useBot && !conversation.conversationAttendant) {\n apiIntegration\n .post(\"/webchat/init-chat\", {\n name: user.name,\n email: user.email,\n phone: user.telefone,\n formulario: true,\n navegador: origem,\n plataforma: platform,\n isMobile: mobile,\n socketId: apiSocket.id,\n message: \"Olá {Site} \",\n })\n .then((response) => {\n dispatch(addMessages(response.data.data.mensagens));\n dispatch(addIdConversation(response.data.data.id));\n dispatch(addSessionId(response.data.data.idSessao));\n localStorage.setItem(\n \"IdConversation\",\n response.data.data._id ?? response.data.data.id\n );\n localStorage.setItem(\n \"conversationAttendant\",\n conversation.conversationAttendant\n );\n })\n .catch((err) => {\n console.log(\"err: \", err);\n });\n }\n }, [\n config.useBot,\n conversation.conversationAttendant,\n dispatch,\n user.email,\n user.name,\n user.telefone,\n ]);\n\n useEffect(() => {\n scrollToBottom();\n }, [conversation]);\n\n //inicio conversar com atendente\n function sendMessageAttendant(message) {\n const mensagem = {\n texto: message,\n response_type: \"text\",\n cliente_ou_atendente: \"cliente\",\n hora_da_mensagem: new Date().getTime(),\n escrita_por: user.name,\n };\n\n apiIntegration\n .post(\"/webchat/message/text\", {\n chatId: user.idConversa,\n message: message,\n })\n .catch((err) => {\n console.log(\"err: \", err);\n });\n\n // apiSocket.emit(\"cliente_enviar_mensagem\", {\n // idDaConversa: user.idConversa,\n // mensagem,\n // });\n\n dispatch(addMessages([mensagem]));\n\n reset();\n }\n //fim conversar com atendente\n\n //inicio conversar com bot\n function sendMessageBot(message) {\n dispatch(\n addMessages([\n {\n cliente_ou_atendente: \"cliente\",\n texto: message,\n hora_da_mensagem: new Date().getTime(),\n },\n ])\n );\n\n apiIntegration\n .post(\"/webchat/message/text\", {\n chatId: user.idConversa,\n message: message,\n })\n .catch((err) => {\n console.log(\"err: \", err);\n });\n\n reset();\n }\n //fim conversar com bot\n\n const [previewImages, setPreviewImages] = useState([]);\n const [stateUpload, setStateUpload] = useState([]);\n const [stateUploadName, setStateUploadName] = useState({});\n\n useEffect(() => {\n scrollToBottom();\n }, [previewImages]);\n\n const loadUpload = (files) => {\n setStateUpload(files[0]);\n setStateUploadName(files[0].name);\n\n if (!files) {\n return;\n }\n\n const selectImages = Array.from(files);\n\n const selectedImagesPreview = selectImages.map((image) => {\n return URL.createObjectURL(image);\n });\n setPreviewImages(selectedImagesPreview);\n setValueInput(\"valor\");\n };\n\n function sendUpload() {\n const data = new FormData();\n data.append(\"file\", stateUpload);\n data.append(\"chatId\", user.idConversa);\n data.append(\"cliente_ou_atendente\", \"cliente\");\n data.append(\"escrita_por\", user.name);\n data.append(\"legenda\", \"\");\n\n if (\n stateUpload.type === \"image/jpeg\" ||\n stateUpload.type === \"image/jpg\" ||\n stateUpload.type === \"image/png\"\n ) {\n data.append(\"type\", \"image\");\n } else if (stateUpload.type === \"application/pdf\") {\n data.append(\"type\", \"file\");\n } else if (stateUpload.type === \"video/mp4\") {\n data.append(\"type\", \"video\");\n }\n\n apiIntegration\n .post(\"/webchat/message/midia\", data, {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n })\n .then((response) => {\n const mensagem = {\n ...response.data.data,\n hora_da_mensagem: new Date().getTime(),\n };\n dispatch(addMessages(mensagem));\n\n setValueInput(\"\");\n })\n .catch((error) => {\n console.log(\"teve erro\", error);\n });\n\n setStateUpload([]);\n setPreviewImages([]);\n }\n\n useEffect(() => {\n apiSocket.on(\"digitando_atendente\", (data) => {\n setClientTyping(data.digitando);\n });\n apiSocket.on(\"parou_digitar_atendente\", (data) => {\n setClientTyping(data.digitando);\n });\n }, []);\n\n function sendMessage({ message }) {\n if (config.useBot && !conversation.conversationAttendant) {\n sendMessageBot(message);\n setValueInput(\"\");\n } else {\n sendMessageAttendant(message);\n setValueInput(\"\");\n socket.emit(\"parou_digitar\", user.idConversa);\n setAttendantTyping(false);\n }\n }\n\n function cleanUplaod() {\n setStateUpload([]);\n setPreviewImages([]);\n }\n\n const handleMessageChange = (event) => {\n const text = event.target.value;\n\n setValueInput(text);\n if (text.length !== 0 && attendantTyping === false) {\n setAttendantTyping(true);\n socket.emit(\"digitando\", user.idConversa);\n } else if (text.length === 0) {\n setAttendantTyping(false);\n socket.emit(\"parou_digitar\", user.idConversa);\n }\n };\n\n return (\n \n \n {conversation.messages.length === 0 ? (\n
\n \n
\n ) : (\n conversation.messages.map((message, index) => {\n if (message.response_type === \"image\") {\n return (\n \n {message.cliente_ou_atendente === \"atendente\" && (\n <>\n \n \n \n )}\n \n \n );\n } else if (message.response_type === \"file\") {\n return (\n \n {message.cliente_ou_atendente === \"atendente\" && (\n <>\n \n \n \n )}\n \n \n );\n } else if (message.response_type === \"option\") {\n return (\n \n {message.cliente_ou_atendente === \"atendente\" && (\n
\n )}\n {message.cliente_ou_atendente === \"atendente\" && (\n \n )}\n \n \n );\n } else if (message.response_type === \"link\") {\n return (\n \n {message.cliente_ou_atendente === \"atendente\" && (\n \n )}\n {message.cliente_ou_atendente === \"atendente\" && }\n \n \n );\n } else if (message.response_type === \"audio\") {\n return (\n \n {message.cliente_ou_atendente === \"atendente\" && (\n \n )}\n {message.cliente_ou_atendente === \"atendente\" && }\n \n \n );\n } else if (message.response_type === \"video\") {\n return (\n \n {message.cliente_ou_atendente === \"atendente\" && (\n <>\n \n \n \n )}\n \n \n );\n } else {\n return (\n \n {message.cliente_ou_atendente === \"atendente\" && (\n \n )}\n {message.cliente_ou_atendente === \"atendente\" && }\n \n \n );\n }\n })\n )}\n\n \n\n
\n \n\n {/* \n {/* {clientTyping && (\n <>\n o atendente está digitando\n ...\n \n )} */}\n {/* / */}\n\n \n \n {stateUpload.length === 0 && (\n \n {({ getRootProps, getInputProps }) => (\n \n \n \n \n )}\n \n )}\n {stateUpload.length === 0 ? (\n \n ) : (\n \n )}\n {valueInput !== \"\" ? (\n \n \n \n ) : (\n <>\n {window.isSecureContext === true && (\n \n )}\n\n \n \n \n \n )}\n \n \n \n );\n};\n\nexport default Conversation;\n","import styled from \"styled-components\";\n\nexport const G4ContainerCustomerExperience = styled.div`\n display: flex;\n flex-direction: column;\n font-family: Roboto, sans-serif;\n font-size: 15px;\n overflow-y: scroll;\n height: 100%;\n align-items: center;\n box-sizing: border-box;\n`;\n\nexport const G4CustomerExperienceImgDiv = styled.div`\n text-align: center;\n justify-content: center;\n display: flex;\n vertical-align: middle;\n width: 100%;\n height: 100px;\n`;\n\nexport const G4CustomerExperienceImg = styled.img`\n max-width: 150px;\n max-height: 80px;\n margin: auto;\n`;\n\nexport const G4FormCustomerExperience = styled.form`\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const G4TextAreaCustomerExperience = styled.textarea`\n border: 1px solid #888;\n padding: 5px;\n margin-top: 2px;\n margin-bottom: 50px;\n border-radius: 6px;\n width: 90%;\n resize: none;\n\n &:focus {\n outline: 0;\n }\n`;\n\nexport const G4TextAriaLabel = styled.label`\n width: 90%;\n`;\n\nexport const G4ButtonCustomerExperience = styled.button`\n padding: 10px 20px;\n margin-left: 0px;\n font-size: 20px;\n font-family: \"Roboto\", sans-serif;\n cursor: pointer;\n color: #fff;\n position: absolute;\n overflow: hidden;\n transition: 0.8s;\n bottom: 0px;\n right: 0;\n height: 42px;\n width: 100%;\n border-radius: 0px 0px 10px 10px;\n\n ${(props) => props.color && `background: ${props.color};`}\n ${(props) => props.color && `border: 1px solid ${props.color};`}\n\n &:focus {\n outline: 0;\n }\n`;\n\n// &:hover {\n// background: #09793c;\n// border: 1px solid #09793c;\n// }\n\nexport const ForgotContainer = styled.div`\n display: flex;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n\n .img-logo-g4flex {\n text-align: center;\n margin-bottom: 25px;\n }\n\n .g4-button {\n background-color: #3f51b5;\n border-color: #3f51b5;\n }\n\n .g4-button:hover {\n background-color: #757de8;\n border-color: #757de8;\n }\n`;\n\nexport const FormContainer = styled.div`\n flex-basis: 70%;\n display: flex;\n flex-direction: column;\n margin: 50px;\n`;\n\nexport const G4CenteredDiv = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 90%;\n text-align: center;\n`;\n\nexport const G4QuestionTag = styled.div`\n margin-top: 15px;\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 90%;\n text-align: center;\n`;\n","import { apiNps } from '../../../services/api-http';\n\n\nclass SurveyService {\n getTags = () => {\n return apiNps.get(`tags`);\n };\n\n getSurveyConfig = (surveyId) => {\n return apiNps.get(`configuration/survey/${surveyId}`);\n };\n\n sendInquiry = (conversationId, surveyId, data) => {\n return apiNps.post(\n `satisfaction/survey/answer/${conversationId}/${surveyId}`,\n data\n );\n };\n}\n\nexport default new SurveyService();\n","import { makeStyles } from '@material-ui/core/styles';\n\nexport const satisfactionStyles = makeStyles({\n iconFilled: {},\n iconFilled1: { color: '#d9534f' },\n iconFilled2: { color: '#d9534f' },\n iconFilled3: { color: '#d9534f' },\n iconFilled4: { color: '#f0ad4e' },\n iconFilled5: { color: '#5cb85c' },\n iconHover: {},\n iconHover1: { color: '#d9534f' },\n iconHover2: { color: '#d9534f' },\n iconHover3: { color: '#d9534f' },\n iconHover4: { color: '#f0ad4e' },\n iconHover5: { color: '#5cb85c' }\n});\n\nexport const npsStyles = makeStyles({\n iconFilled: {},\n iconFilled1: { color: '#d9534f' },\n iconFilled2: { color: '#d9534f' },\n iconFilled3: { color: '#d9534f' },\n iconFilled4: { color: '#d9534f' },\n iconFilled5: { color: '#d9534f' },\n iconFilled6: { color: '#d9534f' },\n iconFilled7: { color: '#f0ad4e' },\n iconFilled8: { color: '#f0ad4e' },\n iconFilled9: { color: '#5cb85c' },\n iconFilled10: { color: '#5cb85c' },\n iconHover: {},\n iconHover1: { color: '#d9534f' },\n iconHover2: { color: '#d9534f' },\n iconHover3: { color: '#d9534f' },\n iconHover4: { color: '#d9534f' },\n iconHover5: { color: '#d9534f' },\n iconHover6: { color: '#d9534f' },\n iconHover7: { color: '#f0ad4e' },\n iconHover8: { color: '#f0ad4e' },\n iconHover9: { color: '#5cb85c' },\n iconHover10: { color: '#5cb85c' }\n});\n\nexport const getPropsHoverNPS = (newHover, npsStyle) => {\n switch (true) {\n case newHover <= 1: {\n return npsStyle.iconHover1;\n }\n case newHover <= 2 && newHover > 1: {\n return npsStyle.iconHover2;\n }\n case newHover <= 3 && newHover > 2: {\n return npsStyle.iconHover3;\n }\n case newHover <= 4 && newHover > 3: {\n return npsStyle.iconHover4;\n }\n case newHover <= 5 && newHover > 4: {\n return npsStyle.iconHover5;\n }\n case newHover <= 6 && newHover > 5: {\n return npsStyle.iconHover6;\n }\n case newHover <= 7 && newHover > 6: {\n return npsStyle.iconHover7;\n }\n case newHover <= 8 && newHover > 7: {\n return npsStyle.iconHover8;\n }\n case newHover <= 9 && newHover > 8: {\n return npsStyle.iconHover9;\n }\n case newHover <= 10 && newHover > 9: {\n return npsStyle.iconHover10;\n }\n default:\n break;\n }\n};\n\nexport const getPropsFilledNPS = (newValue, npsStyle) => {\n switch (true) {\n case newValue <= 1: {\n return npsStyle.iconFilled1;\n }\n case newValue <= 2 && newValue > 1: {\n return npsStyle.iconFilled2;\n }\n case newValue <= 3 && newValue > 2: {\n return npsStyle.iconFilled3;\n }\n case newValue <= 4 && newValue > 3: {\n return npsStyle.iconFilled4;\n }\n case newValue <= 5 && newValue > 4: {\n return npsStyle.iconFilled5;\n }\n case newValue <= 6 && newValue > 5: {\n return npsStyle.iconFilled6;\n }\n case newValue <= 7 && newValue > 6: {\n return npsStyle.iconFilled7;\n }\n case newValue <= 8 && newValue > 7: {\n return npsStyle.iconFilled8;\n }\n case newValue <= 9 && newValue > 8: {\n return npsStyle.iconFilled9;\n }\n case newValue <= 10 && newValue > 9: {\n return npsStyle.iconFilled10;\n }\n default:\n break;\n }\n};\n\nexport const getPropsHoverSatisfacao = (newHover, npsStyle) => {\n switch (true) {\n case newHover <= 1: {\n return npsStyle.iconHover1;\n }\n case newHover <= 2 && newHover > 1: {\n return npsStyle.iconHover2;\n }\n case newHover <= 3 && newHover > 2: {\n return npsStyle.iconHover3;\n }\n case newHover <= 4 && newHover > 3: {\n return npsStyle.iconHover4;\n }\n case newHover <= 5 && newHover > 4: {\n return npsStyle.iconHover5;\n }\n default:\n break;\n }\n};\n\nexport const getPropsFilledSatisfacao = (newValue, npsStyle) => {\n switch (true) {\n case newValue <= 1: {\n return npsStyle.iconFilled1;\n }\n case newValue <= 2 && newValue > 1: {\n return npsStyle.iconFilled2;\n }\n case newValue <= 3 && newValue > 2: {\n return npsStyle.iconFilled3;\n }\n case newValue <= 4 && newValue > 3: {\n return npsStyle.iconFilled4;\n }\n case newValue <= 5 && newValue > 4: {\n return npsStyle.iconFilled5;\n }\n default:\n break;\n }\n};\n","import styled from 'styled-components';\n\nexport const RatingBox = styled.div`\n height: 35px;\n width: 35px;\n min-width: 35px;\n display: flex;\n justify-content: center;\n align-items: center;\n tex-align: center;\n`;\n\n\n\n","import React, { useEffect, useState } from \"react\";\nimport { Rating } from \"@material-ui/lab\";\nimport {\n npsStyles,\n satisfactionStyles,\n getPropsHoverNPS,\n getPropsFilledNPS,\n getPropsHoverSatisfacao,\n getPropsFilledSatisfacao,\n} from \"./assets\";\nimport { RatingBox } from \"./assets/styled\";\n\nconst FlexRating = ({ setRate, rate, type }) => {\n const [hover, setHover] = useState(-1);\n const [qtdStars, setQtdStars] = useState(0);\n\n const satisfacaoStyle = satisfactionStyles();\n const npsStyle = npsStyles();\n\n const [iconFilledVar, setIconFilled] = useState(null);\n const [iconHoverVar, setIconHover] = useState(null);\n\n useEffect(() => {\n switch (type) {\n case \"satisfacao\":\n setQtdStars(5);\n break;\n case \"nps\":\n setQtdStars(10);\n break;\n default:\n break;\n }\n }, [type, npsStyle, satisfacaoStyle]);\n\n return (\n <>\n
\n \n

\n {hover !== -1 ? hover : rate !== 0 && rate}\n

\n
\n
\n
\n {\n setRate(newValue);\n switch (type) {\n case \"satisfacao\":\n setIconFilled(\n getPropsFilledSatisfacao(newValue, satisfacaoStyle)\n );\n break;\n case \"nps\":\n setIconFilled(getPropsFilledNPS(newValue, npsStyle));\n break;\n default:\n break;\n }\n }}\n onChangeActive={(event, newHover) => {\n setHover(newHover);\n switch (type) {\n case \"satisfacao\":\n setIconHover(\n getPropsHoverSatisfacao(newHover, satisfacaoStyle)\n );\n break;\n case \"nps\":\n setIconHover(getPropsHoverNPS(newHover, npsStyle));\n break;\n default:\n break;\n }\n }}\n classes={{\n iconFilled: iconFilledVar,\n iconHover: iconHoverVar,\n }}\n />\n
\n \n );\n};\n\nexport default FlexRating;\n","import React, { useState, useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport {\n G4ContainerCustomerExperience,\n G4FormCustomerExperience,\n G4CustomerExperienceImgDiv,\n G4CustomerExperienceImg,\n G4TextAreaCustomerExperience,\n G4ButtonCustomerExperience,\n G4TextAriaLabel,\n G4CenteredDiv,\n G4QuestionTag,\n} from \"./components/styled\";\nimport \"./components/SurveyRating.css\";\nimport { getLogoChatURL } from \"../../../../components/logos\";\nimport { nextPage } from \"../../../../store/page/actions\";\nimport MultipleSelectChips from \"@bit/lubuskie.material-ui.multiple-select-chips\";\nimport SurveyService from \"../../service\";\nimport FlexRating from \"./components/FlexRating\";\n\nconst END = \"End\";\n\nconst SurveyRating = ({ conversationId, surveyConfig, color }) => {\n const dispatch = useDispatch();\n const [optionTags, setOptionTags] = useState(null);\n const [questionTag, setQuestionTag] = useState(\"\");\n const [rate, setRate] = useState(0);\n const [selectedTags, setSelectedTags] = useState([]);\n const [observation, setObservation] = useState(\"\");\n const [logoURL, setLogoURL] = useState(null);\n\n useEffect(() => {\n getLogoChatURL()\n .then((source) => {\n setLogoURL(source);\n })\n .catch(() => console.error(\"[LOGIN FORM] Error loading chat logo\"));\n }, []);\n\n useEffect(() => {\n let aux = false;\n setSelectedTags([]);\n\n surveyConfig.answers.forEach((el) => {\n if (el[\"rate\"] === rate) {\n let arrayTag = [];\n el[\"tags\"] &&\n el[\"tags\"].forEach((tag) => {\n arrayTag.push({ label: tag.name, value: tag });\n });\n setOptionTags(arrayTag);\n setQuestionTag(el.question_tag);\n aux = true;\n }\n });\n\n if (rate === null || aux === false) {\n setQuestionTag(null);\n setOptionTags(null);\n }\n }, [rate, surveyConfig]);\n\n const npsSubmit = (event) => {\n event.preventDefault();\n if (rate < 1) {\n console.log(`Por favor, atribua uma pontuação!`);\n } else {\n const formatedData = {\n channel: \"chat\",\n observation: observation,\n rate: rate,\n type_survey: surveyConfig.type_survey,\n tags: [...selectedTags],\n name: surveyConfig.name,\n };\n\n SurveyService.sendInquiry(conversationId, surveyConfig._id, formatedData)\n .then((res) => {\n dispatch(nextPage(END));\n })\n .catch((err) => {\n console.log(err.response.data.message);\n });\n }\n };\n\n const handleMessageChange = (event) => {\n setObservation(event.target.value);\n };\n\n return (\n \n \n \n \n\n \n \n

{surveyConfig.question}

\n
\n\n \n\n \n {optionTags && optionTags.length > 0 &&
{questionTag}
}\n
\n
\n {optionTags && (\n \n )}\n
\n\n \n

Deseja adicionar algum comentário?

\n
\n \n \n Enviar\n \n
\n
\n );\n};\n\nexport default SurveyRating;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: calc(465px - 42px);\n width: 100%;\n`;","import React, { useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\n//import ChatRating from \"./components/ChatRating\";\nimport SurveyRating from \"./components/SurveyRating\";\nimport { nextPage } from \"../../store/page/actions\";\nimport { Container } from \"./style\";\n\nconst END = \"End\";\n\nconst CustumerExperienceSurvey = () => {\n const config = useSelector((state) => state.config);\n const survey = useSelector((state) => state.survey);\n const [surveyConfig, setSurveyConfig] = useState();\n const dispatch = useDispatch();\n\n if (survey.active === false) {\n dispatch(nextPage(END));\n }\n\n useEffect(() => {\n setSurveyConfig({\n survey: { ...survey.survey },\n conversationId: survey.conversationId,\n active: survey.active,\n });\n }, [survey, dispatch]);\n\n return (\n \n {surveyConfig && surveyConfig.active === true && (\n <>\n \n \n )}\n \n );\n};\n\nexport default CustumerExperienceSurvey;\n","import styled from \"styled-components\";\n\nexport const G4ContainerEnd = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n height: calc(465px - 42px);\n\n p {\n width: 90%;\n margin-top: 20px;\n font-size: 18px;\n font-family: \"Roboto\", sans-serif;\n }\n`;\n\nexport const G4EndImgDiv = styled.div`\n text-align: center;\n justify-content: center;\n display: flex;\n vertical-align: middle;\n width: 100%;\n height: 200px;\n`;\n\nexport const G4EndImg = styled.div`\n width: 200px;\n height: 170px;\n background: url(${props => props.src});\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: contain;\n`;\n\nexport const G4FooterEnd = styled.div`\n height: 42px;\n width: 100%;\n position: absolute;\n bottom: 0px;\n border-radius: 0px 0px 10px 10px;\n\n ${(props) => props.color && `background: ${props.color};`}\n`;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport \"./components/End.css\";\nimport { getLogoChatURL } from \"../../components/logos\";\nimport {\n G4ContainerEnd,\n G4EndImgDiv,\n G4EndImg,\n G4FooterEnd,\n} from \"./components/styled\";\n\nconst End = () => {\n const config = useSelector((state) => state.config);\n const [logoURL, setLogoURL] = useState(null);\n\n useEffect(() => {\n getLogoChatURL()\n .then((source) => {\n setLogoURL(source);\n })\n .catch(() => console.error(\"[LOGIN FORM] Error loading chat logo\"));\n }, []);\n\n return (\n \n \n \n \n\n

\n Obrigado por entrar em contato conosco, estaremos sempre à disposição!\n 😀\n

\n \n
\n );\n};\n\nexport default End;\n","import { apiHttpNotOpen } from \"./api-http\";\n\nimport store from \"../store\";\nimport { addConfig } from \"../store/config/actions\";\n\napiHttpNotOpen\n .get(\"api/open/configurations/webchat\")\n .then((response) => {\n // const color = 'true';\n const useBot = response.data.data.ativado;\n const botName = response.data.data.nome_atendente;\n const color = response.data.data.cor || \"#2C984A\";\n // const useBot = false;\n\n store.dispatch(addConfig(color, useBot, botName));\n })\n .catch((err) => {\n console.log(err);\n });\n","export function addConfig(color, useBot, botName) {\n return {\n type: '@config/ADD_CONFIG',\n payload: {\n color,\n useBot,\n botName\n }\n };\n}","import React, { useEffect, useState, useContext } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport \"./App.css\";\nimport \"./App.scss\";\nimport { G4Container, G4FullWindow, G4LogoOpen, Switch } from \"./components/styled\";\nimport \"./config/ReactotronConfig\";\nimport Header from \"./components/header/Header\";\nimport Login from \"./pages/login/Login\";\nimport Queue from \"./pages/queue/Queue\";\nimport Wait from \"./pages/wait/Wait\";\nimport Conversation from \"./pages/conversation/Conversation\";\nimport CustumerExperienceSurvey from \"./pages/customer-experience-survey/CustumerExperienceSurvey\";\nimport End from \"./pages/end/End\";\nimport { FaComments } from \"react-icons/fa\";\n\nimport { WebchatContext } from \"./context/WebchatContext\"; \n\nimport \"./services/get-config-chat\";\nimport { subscribe } from \"./util/events\";\nimport { G4LoginImg, G4LoginImgDiv } from \"./pages/login/components/styled\";\nimport { getLogoChatURL } from \"./components/logos\";\n\nconst LOGIN = \"Login\";\nconst QUEUE = \"Queue\";\nconst WAIT = \"Wait\";\nconst CONVERSATION = \"Conversation\";\nconst CUSTOMER_EXPERIENCE = \"CustomerExperience\";\nconst END = \"End\";\n\nconst App = () => {\n const page = useSelector((state) => state.page);\n const config = useSelector((state) => state.config);\n const [chatOpen, setChatOpen] = useState(true);\n const [logoURL, setLogoURL] = useState(null);\n const { modeWebchatFull } = useContext(WebchatContext)\n \n subscribe(\"openWebChat\", () => openChat());\n\n function openChat() {\n setChatOpen(true);\n }\n\n function minimize(value) {\n setChatOpen(value);\n }\n\n useEffect(() => {\n getLogoChatURL()\n .then((source) => {\n setLogoURL(source);\n })\n .catch(() => console.error(\"[LOGIN FORM] Error loading chat logo\"));\n }, []);\n\n return ( \n <>\n {/* \n \n \n */}\n {modeWebchatFull ? (\n \n \n \n \n \n \n
\n {page === LOGIN ? : \"\"}\n {page === QUEUE ? : \"\"}\n {page === WAIT ? : \"\"}\n {page === CONVERSATION ? (\n \n ) : (\n \"\"\n )}\n {page === CUSTOMER_EXPERIENCE ? : \"\"}\n {page === END ? : \"\"}\n \n \n ) : (\n
\n {!chatOpen && config.color !== \"\" && (\n {\n openChat();\n }}\n >\n {\n openChat();\n }}\n size=\"40\"\n color=\"#fff\"\n />\n \n )}\n\n \n
\n {page === LOGIN ? : \"\"}\n {page === QUEUE ? : \"\"}\n {page === WAIT ? : \"\"}\n {page === CONVERSATION ? (\n \n ) : (\n \"\"\n )}\n {page === CUSTOMER_EXPERIENCE ? : \"\"}\n {page === END ? : \"\"}\n \n
\n )}\n \n )\n};\n\nexport default App;\n","function subscribe(eventName, listener) {\n document.addEventListener(eventName, listener);\n}\n\nexport {subscribe};","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Router } from \"react-router-dom\";\nimport App from \"./App\";\nimport { Provider } from \"react-redux\";\nimport store from \"./store\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport { WebchatContextProvider, } from \"./context/WebchatContext\";\n\nReactDOM.render(\n \n \n \n \n \n \n ,\n document.getElementById(\"chat-g4\")\n);\n"],"sourceRoot":""}